我对 TeX 完全陌生,刚开始使用我在 github 上找到的简历模板。在该模板中,有一个类文件,其中包含环境“cventries”和命令“cventry”:
\newcommand*{\cventry}[5]{
\setlength\tabcolsep{0pt}
\setlength{\extrarowheight}{0pt}
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} L{12.5cm} R{4.5cm}}
\ifempty{#2#3}
{\entrypositionstyle{#1} & \entrydatestyle{#4} \\}
{\entrytitlestyle{#2} & \entrylocationstyle{#3} \\
\entrypositionstyle{#1} & \entrydatestyle{#4} \\}
\multicolumn{2}{L{17cm}}{\descriptionstyle{#5}} \\
\end{tabular*}
}
现在,这基本上在屏幕上呈现如下
Title Location
Position Date
Description
但我希望每当我不填写位置或日期字段时它就呈现如下状态:
Title Date
Description
因此,简而言之,我想知道我是否需要执行另一个命令或使用 \ifempty 的一些组合来实现这一点。在此先感谢您的帮助。
哦,如果你需要更多背景信息来回答我的问题,这是完整的类文件
答案1
通过仅提供代码片段,它使事情变得困难,因为我们必须想象所有未定义的命令可能意味着什么。
首先,我假设问题中有一个拼写错误,你想要的是位置或地点缺席(因为如果没有日期你为什么想要日期)。
然后我假设这些\Xstyle
命令仅仅是文本样式......这是一个非常安全的假设。
我也假设了一个合理的定义\ifempty
,但它可能不是你的课程所假设的。
最后,我不得不修改表格的格式,因为L
和R
列未定义。在这些情况下,我将这些列类型替换为p
。在实际实施修复时,您应该将它们改回原来的状态。
代码中已经有测试 if 标题和位置不存在,所以我嵌套了两个额外的测试,如果位置为空,如果不是,则位置为空。我这样做是因为问题指定了一个或者缺少字段的条件,而不是和健康)状况。
这是 MWE。
\documentclass{article}
\usepackage{array}
\def\entrypositionstyle#1{\textit{#1}}
\def\entrytitlestyle#1{\textbf{#1}}
\def\entrylocationstyle#1{\textit{\textbf{#1}}}
\def\entrydatestyle#1{\textsc{#1}}
\def\descriptionstyle#1{\textup{#1}}
\def\ifempty#1#2#3{\ifx\relax#1\relax#2\else#3\fi}
\newcommand*{\cventry}[5]{
\setlength\tabcolsep{0pt}
\setlength{\extrarowheight}{0pt}
% \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} L{12.5cm} R{4.5cm}}
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} p{12.5cm} p{4.5cm}}
\ifempty{#2#3}
{\entrypositionstyle{#1} & \entrydatestyle{#4} \\}% WHEN TITLE & LOCATION EMPTY
{%
\ifempty{#1}{\entrytitlestyle{#2} & \entrydatestyle{#4} \\}% WHEN POSITION EMPTY
{%
\ifempty{#3}{\entrytitlestyle{#2} & \entrydatestyle{#4} \\}% WHEN LOC EMPTY
{%
\entrytitlestyle{#2} & \entrylocationstyle{#3} \\
\entrypositionstyle{#1} & \entrydatestyle{#4} \\%
}
}
}
% \multicolumn{2}{L{17cm}}{\descriptionstyle{#5}} \\
\multicolumn{2}{p{17cm}}{\descriptionstyle{#5}} \\
\end{tabular*}
}
\begin{document}
\cventry{position}{title}{location}{date}{description}
\par\hrulefill\par
\cventry{position}{}{}{date}{description}
\par\hrulefill\par
\cventry{}{title}{location}{date}{description}
\par\hrulefill\par
\cventry{position}{title}{}{date}{description}
\end{document}