
так что я совсем новичок в 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
. При фактической реализации исправления вам следует изменить их обратно такими, какими они были.
В коде уже был заголовок test ifИlocation отсутствовали, поэтому я вложил два дополнительных теста, если position были пусты, и если нет, если location были пусты. Я сделал это таким образом, поскольку в вопросе указывалосьИЛИусловие на отсутствующие поля, а неИсостояние.
Вот МВЭ.
\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}