PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fehler mit moderncv



monoceros84
10-04-2007, 20:04
Hallo,

ich habe eine Frage zur Dokumentklasse moderncv. Es geht um die Erstellung eines Lebenslaufes. Für die Einträge werden verschiedene Kommandos definiert (relevanter Auszug):

> % usage (inside section): \cvline{leftmark}{text}
> \newcommand*{\cvline}[2]{%
> \if@firstcvline%
> \@firstcvlinefalse%
> \\[-1em]% ugly hack to remove spaces before the first line
> \else%
> \\\fi%
> \begin{minipage}[t]{\hintscolumnwidth}\raggedleft\hintfont{#1}\end{mi nipage}&\begin{minipage}[t]{\maincolumnwidth}#2\end{minipage}}

> % usage (inside section): \cvitem{leftmark}{text}
> \newcommand*{\cvitem}[2]{%
> \if@firstcvline
> \else
> \\[-0.75em]\fi
> \cvline{#1}{#2}}

> % usage : \cventry{years}{degree/job title}{institution/employer}{localization}{optionnal: grade/...}{optional: comment/job description}
> \newcommand*{\cventry}[6]{%
> \cvitem{#1}{%
> {\bfseries#2}%
> \ifthenelse{\equal{#3}{}}{}{, {\slshape#3}}%
> \ifthenelse{\equal{#4}{}}{}{, #4}%
> \ifthenelse{\equal{#5}{}}{}{, #5}%
> .%
> \ifthenelse{\equal{#6}{}}{}{\\\begin{minipage}[t]{\textwidth}\small#6\end{minipage}}}}

\cvline ist also für die eigentliche Darstellung der Einträge verantwortlich. Mit \cventry kann man einen Eintrag schön formatiert wie im Kommentar %usage... einfügen, letztendlich greift die Funktion aber nur wieder auf \cvline zurück.

Nun zu meiner Frage: Wenn ich im letzten Argument von \cventry einen Zeilenumbruch einfüge, tritt folgender Fehler auf:

> ! Argument of \@iiminipage has an extra }.
> <inserted text>
> \par
> l.52 ...line data logging of\\power cycling tests}

Dazu relevanter Code:
> \cventry{2007\\(in progress)}{Student research project}{}{}{}{Online data logging of\\power cycling tests}

Das seltsame an der Sache ist, dass ich im ersten Argument (bei der Zeitangabe) durchaus einen Zeilenumbruch einfügen kann.

Wo also ist der Fehler? Ich erkenne bei den beiden minipage-Befehlen in \cvline keinen relevanten Unterschied...

Danke für eure Hilfe!

Mathias

localghost
10-04-2007, 20:47
Ich erhalte den Fehler auch. Aber Du kannst das mit dem Befehl \newline umgehen.

\cventry{2007\\(in progress)}{Student research project}{}{}{}{Online data logging of\newline power cycling tests}
Das funktoniert bei mir. Scheinbar verweigert die verwendete minipage-Umgebung hier einen Zeilenumbruch mit "\\". Interessant wäre jetzt, ob dieses Verhalten bei der normalen Verwendung auch auftritt.

monoceros84
10-04-2007, 20:59
Super, danke! Das mit newline funktioniert... Ich hatte mit jetzt zwischenzeitlich so geholfen, dass ich mir neue Umgebungen definiert habe, die einfach noch ein Argument abfragen und eine zusätzliche Minipage anhängen ;) Aber das ist nicht sonderlich elegant...

Was meinst du eigentlich mit "normaler Verwendung"?

localghost
10-04-2007, 21:17
Damit meine ich nur die Verwendung von einer minipage-Umgebung im laufenden Quelltext. Wenn ich also die Seite in einer bestimmten Region aufteilen will und bestimmte Eigenschaften brauche, nehme ich eine minipage-Umgebung. Eigentlich macht die Dokumentklasse moderncv nichts anderes. Ich verwende nicht so oft minipages. Aber ich glaube zu wissen, dass dort ein Zeilenumbruch mit "\\" akzeptiert wird. Warum also hier nicht?

monoceros84
10-04-2007, 22:28
Ja, prinzipiell funktioniert ein \\-Befehl in einer minipage-Umgebung. Zu sehen ist das auch, wenn man im ersten Argument von cventry einen Umbruch einfügt {2007\\(in progress)}, der normal dargestellt wird. Das ist ja nur eine minipage-Umgebung...
Ich habe mich erst gefragt, ob das vielleicht an der Schriftgrößen-Anpassung und damit an den Umgebenden {}-Klammern liegen kann \hintfont{#1}, aber das gleiche bei #2 eingefügt funzt nicht...
Wie gesagt, ich habe keine Ahnung :(