
Ich bin also völlig neu bei TeX und habe gerade angefangen, eine Lebenslaufvorlage zu verwenden, die ich auf GitHub gefunden habe. In dieser Vorlage gibt es eine Klassendatei mit einer Umgebung „cventries“ und einem Befehl „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*}
}
Das Ergebnis sieht auf dem Bildschirm im Wesentlichen so aus:
Title Location
Position Date
Description
Ich möchte aber, dass es immer so dargestellt wird, wenn ich die Felder „Position“ oder „Datum“ nicht ausfülle:
Title Date
Description
Kurz gesagt frage ich mich, ob ich einen anderen Befehl eingeben oder eine Kombination aus \ifempty verwenden muss, um dies zu erreichen. Vielen Dank im Voraus für jede Hilfe.
Oh, und falls Sie zur Beantwortung meiner Frage zusätzlichen Kontext benötigen,hier ist die vollständige Klassendatei
Antwort1
Da nur ein Codefragment bereitgestellt wird, ist es schwierig, da wir uns vorstellen müssen, was all die undefinierten Befehle bedeuten könnten.
Zuerst nahm ich einen Tippfehler in der Frage an, dass Sie das alternative Format wollten, wenn Position oderSTANDORTfehlten (denn warum sollten Sie das Datum wollen, wenn das Datum fehlte).
Dann bin ich davon ausgegangen, dass es sich bei den \Xstyle
Befehlen lediglich um Textstile handelt … das ist eine ziemlich sichere Annahme.
Ich bin auch von einer vernünftigen Definition von ausgegangen \ifempty
, aber diese entspricht möglicherweise nicht der Annahme Ihrer Klasse.
Schließlich musste ich das Format der Tabelle ändern, da die Spalten L
und R
nicht definiert waren. In diesen Fällen habe ich diese Spaltentypen durch ersetzt p
. Wenn Sie Ihren Fix tatsächlich implementieren, sollten Sie diese wieder in den ursprünglichen Zustand zurückversetzen.
Der Code hatte bereits einen Test, wenn der TitelUNDStandort fehlten, also habe ich zwei zusätzliche Tests verschachtelt, wenn die Position leer war, und wenn nicht, wenn der Standort leer war. Ich habe es so gemacht, da die Frage einenODERBedingung für die fehlenden Felder, nicht einUNDZustand.
Hier ist das 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}