![自定义命令中“这里没有结束的线”](https://linux22.com/image/298775/%E8%87%AA%E5%AE%9A%E4%B9%89%E5%91%BD%E4%BB%A4%E4%B8%AD%E2%80%9C%E8%BF%99%E9%87%8C%E6%B2%A1%E6%9C%89%E7%BB%93%E6%9D%9F%E7%9A%84%E7%BA%BF%E2%80%9D.png)
我正在用 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 个线宽。