XeLaTeX + \ifthenelse:

XeLaTeX + \ifthenelse:

私は履歴書を作成するために XelaTeX を使用します。

現在、私はそれを更新し、スロバキア語と英語の両方の履歴書を 1 つのドキュメント内に収めたいと考えています。

一方の言語のすべての文字列をプリアンブルにグループ化し、もう一方の言語でも同様にします。(つまり、 の後に文字列を配置したくないのです\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

私が確認し、実装しようとした質問と回答: -完全に展開された2つの文字列が等しいかどうかをテストする場合

PS—私は TeX の初心者で、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}

関連情報