如何使用多个命令生成称呼、标题(如果不为空)和姓名

如何使用多个命令生成称呼、标题(如果不为空)和姓名

我尝试生成带有头衔(如果有)、名字和姓名的姓名。但是称呼后面没有空格。

在此处输入图片描述

如果没有标题,\def\cvTitel{}一切都很好: 在此处输入图片描述

我的代码如下:

\documentclass[10pt]{article}
\usepackage[ngerman]{babel}
\usepackage{xifthen}


\def\cvSetName{nachname}

\newcommand{\cvAnrede}{Herr}
\newcommand{\cvTitel}{}
\newcommand{\cvVorname}{Max}
\newcommand{\cvNachname}{Mustermann}

\newcommand{\cvSetTitel}[1]{\ifthenelse{\isempty{#1}}{}{#1}%
}

\newcommand{\setName}[1]{%
  \ifthenelse{\equal{#1}{nachname}}{\cvAnrede \cvSetTitel{\cvTitel} \cvNachname }{\cvVorname }%
}

\newcommand{\setCompleteName}[1]{%
  \ifthenelse{\equal{#1}{nachname}}{\cvSetTitel{\cvTitel} \cvVorname \cvNachname }{\cvVorname }%
}

\newcommand{\cvName}{\setName{\cvSetName} }
\newcommand{\cvFullName}{\setCompleteName{\cvSetName}}


\begin{document}
\raggedright
Bereits während seines Studiums hat \cvName vielseitige Erfahrungen in der Softwareindustrie gesammelt. 
\end{document}

答案1

这边走?

\documentclass[10pt]{article}
\usepackage[ngerman]{babel}
\usepackage{xifthen}
\usepackage{etoolbox}

\def\cvSetName{nachname}

\newcommand{\cvAnrede}{Herr}
\newcommand{\cvTitel}{}
\newcommand{\cvVorname}{Max}
\newcommand{\cvNachname}{Mustermann}

\newcommand{\cvSetTitel}[1]{\ifdefempty{#1}{}{#1\ }%
}

\newcommand{\setName}[1]{%
  \ifthenelse{\equal{#1}{nachname}}{\cvAnrede\ \cvSetTitel{\cvTitel}\cvNachname\ }{\cvVorname\ }%
}

\newcommand{\setCompleteName}[1]{%
  \ifthenelse{\equal{#1}{nachname}}{\cvSetTitel{\cvTitel}\cvVorname\ \cvNachname\ }{\cvVorname\ }%
}

\newcommand{\cvName}{\setName{\cvSetName}}
\newcommand{\cvFullName}{\setCompleteName{\cvSetName}}


\begin{document}
\raggedright
\section{Without title}

Bereits während seines Studiums hat \cvName vielseitige Erfahrungen in der Softwareindustrie gesammelt. 

Full name: \cvFullName something after 

\section{With title}
\renewcommand{\cvAnrede}{Herr}
\renewcommand{\cvTitel}{Dr}
\renewcommand{\cvVorname}{Max}
\renewcommand{\cvNachname}{Mustermann}

Bereits während seines Studiums hat \cvName vielseitige Erfahrungen in der Softwareindustrie gesammelt. 

Full name: \cvFullName something after 
\end{document}

在此处输入图片描述

相关内容