自定义命令中“这里没有结束的线”

自定义命令中“这里没有结束的线”

我正在用 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}%
}}

编辑:但是,这可能会导致另一个问题(警告)。目前,表格的第二列宽度为 12 厘米,而第一列可以拉伸到任意长度。因此,每次第一列中的文本“推开”第二列时,您都会得到一个水平盒子溢出的情况。要消除水平盒子溢出的问题,您还必须为第一列定义一个固定长度。您必须以这样的方式执行此操作,即两列加起来不会超过行宽。您可以这样做:

\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 个线宽。

相关内容