¿Ayúdame a reescribir este comando?

¿Ayúdame a reescribir este comando?

Así que soy completamente nuevo en TeX y acabo de comenzar a usar una plantilla de currículum que encontré en github. Dentro de esa plantilla, hay un archivo de clase con un entorno "cventries" y un 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*}
}

Ahora, esto esencialmente se representa en la pantalla así.

 Title                                Location                           
 Position                             Date 
 Description

pero quiero que se muestre así cada vez que no complete los campos de posición o fecha:

 Title                                Date
 Description

Entonces, en pocas palabras, me pregunto si necesito crear otro comando o usar alguna combinación de \ifempty para que esto suceda. Gracias de antemano por cualquier ayuda.

Ah, y si necesitas algún contexto adicional para responder mi pregunta,aquí está el archivo de clase completo

Respuesta1

Al proporcionar solo un fragmento de código, resulta difícil, porque tenemos que imaginar qué podrían significar todos los comandos no definidos.

Primero asumí un error tipográfico en la pregunta de que querías el formato alternativo si la posición oUBICACIÓNestaban ausentes (ya que ¿por qué querrías la fecha si la fecha estuviera ausente)?

Luego supuse que los \Xstylecomandos eran simplemente estilos de texto... esa es una suposición bastante segura.

También asumí una definición razonable de \ifempty, pero puede que no sea lo que supone su clase.

Finalmente tuve que modificar el formato de la tabla, ya que no estaban definidas las columnas L. REn esos casos, reemplacé esos tipos de columnas por p. Cuando realmente implemente su solución, debe volver a cambiarlos como estaban.

El código ya tenía un título de prueba.YLa ubicación estaba ausente, por lo que anidé dos pruebas adicionales, si la posición estaba vacía y, si no, si la ubicación estaba vacía. Lo hice de esta manera ya que la pregunta especificaba unOcondición en los campos faltantes, no unaYcondición.

Aquí está el 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}

ingrese la descripción de la imagen aquí

información relacionada