„Hier gibt es keine Zeile zum Beenden“ im benutzerdefinierten Befehl

„Hier gibt es keine Zeile zum Beenden“ im benutzerdefinierten Befehl

Ich arbeite an der Erstellung eines Lebenslaufs in LaTeX und habe einen Befehl definiert, mit dem ich meine Berufserfahrung eingeben kann. Das einzige Problem ist, dass ich jedes Mal, wenn ich versuche, eine detaillierte Liste zu verwenden, wie unten zu sehen, die Fehlermeldung erhalte . Aus irgendeinem Grund "! LaTeX Error: There's no line here to end.See the LaTeX manual or LaTeX Companion for explanation.Type H <return> for immediate help.... To Be Added}"muss ich Zeilenumbrüche auch manuell einfügen .\\

Code für mein Tex-Dokument:

\section{Related Experience}

\begin{entrylist}
  \experience
    {Jan 2014 – Present}
    {IT Systems}
    {Chocolate Covered Alien Co.; Mars, PA}
    {\textbf{Responsibilities:}\\
    \begin{itemize}
        \item Cook aliens to a nice texture
        \item Chocolate cover said aliens
    \end{itemize}}
    {\textbf{Key Achievements:}\\
    \begin{itemize}
        \item Ate chocolate covered aliens without the boss finding out
    \end{itemize}}
    \end{entrylist}

Code für mein Klassendokument:

\newenvironment{entrylist}{%
    \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}ll}
}{%
    \end{tabular*}
}

\newcommand{\experience}[5]{%
    \textbf{#1}&\parbox[t]{12cm}{%
        \textbf{#2}\\%
        \textit{#3}\\%
        #4\\%
        #5\vspace{\parsep}%
    }\\}

Antwort1

Das Problem ist, dass es \begin{itemize} ... \end{itemize}sich nicht um eine Textzeile handelt und Sie daher nichts \\dahinter einfügen können. Die Umgebungen stehen allein, daher werden sie immer nach einem Absatz und vor einem anderen platziert.

Das bedeutet, dass das \\von Ihnen verwendete „after“ #4den Fehler verursacht. Außerdem brauchen Sie „after“ nicht \\am Ende Ihres Makros, wenn Sie verwenden \vspace{\parsep}. Definieren Sie Ihr Makro neu wie folgt:

\newcommand{\experience}[5]{%
    \textbf{#1}&\parbox[t]{12cm}{%
        \textbf{#2}\newline%
        \textit{#3}\newline%
        #4%
        #5\vspace{\parsep}%
}}

BEARBEITEN:Dies kann jedoch ein anderes Problem verursachen (Warnung). Derzeit ist die zweite Spalte der Tabelle 12 cm breit und die erste Spalte kann beliebig lang sein. Sie erhalten also jedes Mal eine übervolle Hbox, wenn der Text in der ersten Spalte die zweite Spalte „wegschiebt“. Um die übervolle Hbox loszuwerden, müssen Sie auch für die erste Spalte eine feste Länge definieren. Sie müssen dies so tun, dass beide Spalten zusammen die Zeilenbreite nicht überschreiten. Sie können es wie folgt tun:

\newcommand{\experience}[5]{%
    \parbox[t]{0.3\linewidth}{\textbf{#1}}&\parbox[t]{0.63\linewidth}{%
        \textbf{#2}\newline%
        \textit{#3}\newline%
        #4%
        #5\vspace{\parsep}%
}}

Wobei 0,3 + colsep + 0,63 ungefähr einer Zeilenbreite entspricht.

verwandte Informationen