Помогите мне переписать эту команду?

Помогите мне переписать эту команду?

так что я совсем новичок в 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}

введите описание изображения здесь

Связанный контент