Problem mit \tagged innerhalb von \cventry. Führt zu einem Fehler (nur bei einigen Argumenten)

Problem mit \tagged innerhalb von \cventry. Führt zu einem Fehler (nur bei einigen Argumenten)

Ich beabsichtige, das -Paket zu verwenden tagging, um meinen Lebenslauf zu organisieren, je nachdem, in welcher Sprache ich ihn beispielsweise benötige. Das Problem damit \tagged{}ist \cventry, dass es beim 2. und 6. Argument einwandfrei funktioniert, beim 3., 4. und 5. jedoch nicht ... seltsam.

Im beigefügten MWE cventry{2016}funktioniert das erste einwandfrei, das zweite jedoch {2015}nicht. Kann irgendjemand das Problem lösen? Danke!

\documentclass[11pt,a4paper,sans]{moderncv}
\moderncvstyle{classic}
\usepackage{tagging}
\firstname{John}
\familyname{Doe}
\title{MWE}
%-----------------------------------------------
\begin{document}
\makecvtitle

\usetag{EN} %Three possible tags: EN, DE, SP

\section{Education}

\cventry{2016}
{\tagged{EN}{Mathematics}\tagged{DE}{Mathematik}\tagged{SP}{Matem\'aticas}}
{University}
{USA}
{(unfinished)}
{\tagged{EN}{Research}\tagged{DE}{Forschung} \tagged{SP}{Investigaci\'on}}

\cventry{2015}
{Pilot}
{\tagged{EN}{Academy}\tagged{DE}{Pilotschule} \tagged{SP}{Academia}} %uncommenting THIS LINE causes error
{}
{}
{}
{}

\end{document}

Antwort1

Die Standarddefinition von \cventryVerwendungen \ifthenelse, die Ihre Eingabe nicht verarbeiten können:

Standarddefinition

\renewcommand*{\cventry}[7][.25em]{%
  \cvitem[#1]{#2}{%
    {\bfseries#3}%
    \ifthenelse{\equal{#4}{}}{}{, {\slshape#4}}%
    \ifthenelse{\equal{#5}{}}{}{, #5}%
    \ifthenelse{\equal{#6}{}}{}{, #6}%
    .\strut%
    \ifx&#7&%
    \else{\newline{}\begin{minipage}[t]{\linewidth}\small#7\end{minipage}}\fi}}

Verwenden Sie \ifxstattdessen:

\makeatletter
\renewcommand*{\cventry}[7][.25em]{%
  \cvitem[#1]{#2}{%
    {\bfseries#3}%
    \ifx&#4&\else{, {\slshape#4}}\fi%
    \ifx&#5&\else{, #5}\fi%
    \ifx&#6&\else{, #6}\fi%
    .\strut%
    \ifx&#7&%
    \else{\newline{}\begin{minipage}[t]{\linewidth}\small#7\end{minipage}}\fi%
  }%
}
\makeatother

Vollständiger Code:

\documentclass[11pt,a4paper,sans]{moderncv}

\moderncvstyle{classic}
\usepackage{tagging} 

\makeatletter
\renewcommand*{\cventry}[7][.25em]{%
  \cvitem[#1]{#2}{%
    {\bfseries#3}%
    \ifx&#4&\else{, {\slshape#4}}\fi%
    \ifx&#5&\else{, #5}\fi%
    \ifx&#6&\else{, #6}\fi%
    .\strut%
    \ifx&#7&%
    \else{\newline{}\begin{minipage}[t]{\linewidth}\small#7\end{minipage}}\fi%
  }%
}
\makeatother


\firstname{John}
\familyname{Doe}
\title{MWE}


%-----------------------------------------------
\begin{document}
\makecvtitle

\usetag{EN} %Three possible tags: EN, DE, SP

\section{Education}

\cventry{2016}
{\tagged{EN}{Mathematics}\tagged{DE}{Mathematik}\tagged{SP}{Matem\'aticas}}
{University}
{USA}
{(unfinished)}
{\tagged{EN}{Research}\tagged{DE}{Forschung} \tagged{SP}{Investigaci\'on}}

\cventry{2015}
{Pilot}
{\tagged{EN}{Academy}\tagged{DE}{Pilotschule} \tagged{SP}{Academia}} %uncommenting THIS LINE causes error
{}
{}
{}
{}

\end{document}

verwandte Informationen