2010-09-22 9 views
0

J'ai défini de nouvelles commandes dans un document comme suit:erreur latex résultant de paramètre non existant

%--------------------------------------------------------- 
\newcommand{\thetmpone}{} 
\newcommand{\thetmptwo}{} 
\newcommand{\tmpone}[1]{\renewcommand{\thetmpone}{#1}} 
\newcommand{\tmptwo}[1]{\renewcommand{\thetmptwo}{#1}} 
%--------------------------------------------------------- 
\newcommand{\datatype}[2]{#2% Data type. Parameters are name, and a datatype attribute block. 
    #1\\* is \thetmpone\par % 
    \thetmptwo\par}% 
%--------------------------------------------------------- 
\newcommand{\arbitarydtab}[0]{% Data type attribute block (dtab) for arbitary. 
    \tmpone{arbitary.} % 
    \tmptwo{Used for identifiers that have no intrinsic meaning.}}% 
%--------------------------------------------------------- 

Mes données de test:

\datatype{test arbitary}{\arbitarydtab} 
\datatype{}{\arbitarydtab} 

Cela donne lieu à deux problèmes:

le deuxième cas de test formate le document comme souhaité mais génère l'erreur suivante:

! LaTeX Error: There's no line here to end. 

See the LaTeX manual or LaTeX Companion for explanation. 
Type H <return> for immediate help. 

Quel est le problème avec mon codage ici? De plus, si j'utilise le deuxième cas de test (seulement), alors changez-le pour qu'il soit le même que le cas de test un, cette erreur continue, même si le paramètre est maintenant là. Qu'est-ce qui cause la persistance de l'erreur?

+0

http://tex.stackexchange.com/ –

+0

Merci - Je vérifierai ce site pour de futures requêtes. –

Répondre

1

Insérer \leavevmode après #1:

%--------------------------------------------------------- 
\newcommand{\datatype}[2]{#2% Data type. Parameters are name, and a datatype attribute block. 
    #1\leavevmode\\* is \thetmpone\par % 
    \thetmptwo\par}% 
%--------------------------------------------------------- 

\\* ne fonctionne pas si elle est utilisée après la ligne vide.