XeLaTeX + \ifthenelse:

XeLaTeX + \ifthenelse:

我使用 XelaTeX 制作我的简历。

目前,我想更新它并在一个文档中同时包含斯洛伐克语和英语简历。

我希望将一种语言的所有字符串分组在序言中,另一种语言也一样。(也就是说,我不想在后面有字符串\begin{document})。

我想\cvlang使用创建\def \cvlang {sk} % Options: en | sk。这样我就可以很容易地在语言之间切换。

现在,我不知道如何检查的当前值是多少\cvlang。我想创建类似这样的东西(if语法借用自 Javascript;合并了一些 TeX 命令):

if (\cvlang == "sk"){
  \def \lgdatebirthplace {Dátum a miesto\\ narodenia}
  \def \lgaddress {Adresa}
  \def \lgphone {Telefón}
  \def \lgemail {Email}
}else if{
  \def \lgdatebirthplace {Date and place of birth}
  \def \lgaddress {Address}
  \def \lgphone {Phone}
  \def \lgemail {Email}
}

我不关心包/命令/语法——它可以是任何东西。

我尝试使用ifthen该包,但是在 PDF 编译时出现一些错误:

\usepackage{ifthen}
\ifthenelse{\equal{\lang}{sk}}{
    \def \lgdatebirthplace {Dátum a miesto\\ narodenia}
    \def \lgaddress {Adresa}
    \def \lgphone {Telefón}
    \def \lgemail {Email}
}{
  \def \lgdatebirthplace {Date and place of birth}
  \def \lgaddress {Address}
  \def \lgphone {Phone}
  \def \lgemail {Email}
}%

我尝试使用pdftexcmds包,但是这也不起作用:

% \usepackage{pdftexcmds}
% \ifnum\pdf@strcmp{\cvlang}{sk}{
  \def \lgdatebirthplace {Dátum a miesto\\ narodenia}
  \def \lgaddress {Adresa}
  \def \lgphone {Telefón}
  \def \lgemail {Email}
\else
  \def \lgdatebirthplace {Date and place of birth}
  \def \lgaddress {Address}
  \def \lgphone {Phone}
  \def \lgemail {Email}
\fi

我检查并尝试实施的问题和答案:-测试两个完全展开的字符串是否相等

PS—我对 TeX 还很陌生,从未在其中使用过任何条件语句。

答案1

这里不需要 ifthen。将你的定义添加到 babel 接口中:

\documentclass{book}
\usepackage[english]{babel}
%\usepackage[slovak]{babel}
\addto\extrasslovak{%
 \def \lgdatebirthplace {Dátum a miesto}}
\addto\extrasenglish{%
 \def \lgdatebirthplace {Date and place of birth}}

\begin{document}
\lgdatebirthplace

\end{document}

相关内容