Ajude-me a reescrever este comando?

Ajude-me a reescrever este comando?

então sou completamente novo no TeX e comecei a usar um modelo de currículo que encontrei no github. Dentro desse modelo, há um arquivo de classe com um ambiente “cventries” e um comando “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*}
}

Agora, isso essencialmente é renderizado na tela como esta

 Title                                Location                           
 Position                             Date 
 Description

mas quero que seja renderizado assim sempre que não preencher os campos de posição ou data:

 Title                                Date
 Description

Então, resumindo, estou me perguntando se preciso fazer outro comando ou usar alguma combinação de \ifempty para que isso aconteça. Agradecemos antecipadamente por qualquer ajuda.

Ah, e se você precisar de algum contexto adicional para responder à minha pergunta,aqui está o arquivo completo da classe

Responder1

Fornecer apenas um fragmento de código torna tudo mais difícil, porque temos que imaginar o que todos os comandos indefinidos podem significar.

Primeiro, presumi um erro de digitação na pergunta de que você queria o formato alternativo se posição ouLOCALIZAÇÃOestavam ausentes (por que você desejaria a data se a data estivesse ausente).

Então presumi que os \Xstylecomandos eram apenas estilos de texto... essa é uma suposição bastante segura.

Também assumi uma definição razoável de \ifempty, mas pode não ser o que sua classe assume.

Por fim, tive que modificar o formato da tabela, pois as colunas Le Rnão estavam definidas. Nesses casos, substituí esses tipos de colunas por p. Ao realmente implementar sua correção, você deve alterá-la de volta ao que era.

O código já teve um teste if titleElocation estavam ausentes, então aninhei dois testes adicionais, se a posição estivesse vazia e, se não, se o local estivesse vazio. Eu fiz assim, pois a pergunta especificava umOUcondição nos campos ausentes, não umaEdoença.

Aqui está o 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}

insira a descrição da imagem aqui

informação relacionada