
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 \Xstyle
comandos 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
. R
En 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}