Helfen Sie mir, diesen Befehl neu zu schreiben?

Helfen Sie mir, diesen Befehl neu zu schreiben?

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 \XstyleBefehlen 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 Lund Rnicht 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}

Bildbeschreibung hier eingeben

verwandte Informationen