カスタムコマンドに「終了する行がありません」

カスタムコマンドに「終了する行がありません」

私は LaTeX で履歴書を作成中で、職歴を入力できるコマンドを定義しました。唯一の問題は、以下に示すように、項目別リストを使用しようとすると、 が表示されることです。また、何らかの理由で、"! 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}"を使用して手動で改行を追加する必要があります。\\

私のTex文書のコード:

\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}

私のクラスドキュメントのコード:

\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}%
    }\\}

答え1

問題は、 が\begin{itemize} ... \end{itemize}テキスト行ではないため、\\その後に配置できないことです。環境は独立しているため、常に段落の後、別の段落の前に配置されます。

\\これは、の後に を使用したためにエラーが発生していることを意味します。を使用している場合は、マクロの最後に を#4使用する必要はありません。 マクロを次のように再定義します。\\\vspace{\parsep}

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

編集:ただし、これは別の問題を引き起こす可能性があります (警告)。現在、表の 2 番目の列の幅は 12 cm で、1 番目の列は任意の長さに伸縮できます。そのため、1 番目の列のテキストが 2 番目の列を「押しのける」たびに、hbox がオーバーフルになります。hbox のオーバーフルを解消するには、1 番目の列にも固定長を定義する必要があります。両方の列を合わせても行幅を超えないようにする必要があります。次のようにします。

\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}%
}}

ここで、0.3 + colsep + 0.63 はおよそ 1 行の幅になります。

関連情報