我正在修改 moderncv 简历模板,在 \makecell 中使用 \textit 时遇到编译错误。
这是我对 cventry 的重新定义。错误发生在第 4 行,第一个 \makecell 内。
\renewcommand{\cventry}[9][a]{
\begin{tabularx}{\linewidth}{X r}
{\bfseries #4} & {\itshape #2}\\
\makecell[l]{\textit{#3}\ifthenelse{\equal{#6}{}}{}{, #6}} & \makecell[r]{\itshape #5}\\
\ifstrequal{#9}{1}{\small#8}
\ifstrequal{#9}{2}{}{\small#7}
\end{tabularx}
\ifstrequal{#1}{a}{\par\vspace{\gaplength}}{\par\vspace{-4pt}}
}
我将其调用如下:
\cventry{Overall dates}{Position 1, Location 2\\ Position 2, Location 2}{Company}{Position 1 dates \\ Position 2 dates}{}{
\begin{itemize}
\item content
\end{itemize}
}{}{}
我正在使用 \makecell 使位置 1/位置 2 及其日期位于不同的行中。我希望位置及其日期为斜体。我尝试了 {\itshape 位置 1 // 位置 2],但第二行(位置 2)上的文本没有使用 \itshape 变为斜体。
我收到的错误是“缺少 }”和“忘记 \endgroup”。任何帮助都将不胜感激。
编辑:下面是 cventry 的文档类定义。
\newcommand{\cventry}[9]{}
答案1
你的定义
\renewcommand{\cventry}[9][a]{
\begin{tabularx}{\linewidth}{X r}
{\bfseries #4} & {\itshape #2} \\
\makecell[l]{\textit{#3}\ifthenelse{\equal{#6}{}}{}{, #6}} &
\makecell[r]{\itshape #5} \\
\ifstrequal{#9}{1}{\small#8}
\ifstrequal{#9}{2}{}{\small#7}
\end{tabularx}
\ifstrequal{#1}{a}{\par\vspace{\gaplength}}{\par\vspace{-4pt}}
}
仅用于\makecell
参数#3
、#5
和#6
。但是,使用类似
\cventry
% #1 is empty and defaults to 'a'
{Overall dates} % #2
{Position 1, Location 2 \\ Position 2, Location 2} % #3
{Company} % #4
{Position 1 dates \\ Position 2 dates} % #5
{} % #6
{% #7
\begin{itemize}
\item content
\end{itemize}
}
{} % #8
{} % #9
你的论点#3
最终会变成(扩展为)
\makecell[l]{%
\textit{Position 1, Location 2 \\ Position 2, Location 2}%
\ifthenelse{\equal{#6}{}}{}{, #6}%
}
这是不允许的。您不能使用\textit{<stuff> \\ <more stuff>}
。相反,请对 进行以下定义\cventry
:
\renewcommand{\cventry}[9][a]{%
\begin{tabularx}{\linewidth}{X r}
\bfseries #4 & \itshape #2 \\
\itshape\makecell[l]{#3\ifthenelse{\equal{#6}{}}{}{, #6}} &
\itshape\makecell[r]{#5} \\
\small\ifstrequal{#9}{1}{}{#8}%
\ifstrequal{#9}{2}{}{#7}
\end{tabularx}
\ifstrequal{#1}{a}{\par\vspace{\gaplength}}{\par\vspace{-4pt}}
}
注意字体开关的放置方式外部的\makecell
定义,从而将其应用于每一行。