Da ich Berichte sowohl in englisch wie auch in deutsch schreiben muss, möchte ich mir ein Template erstellen, bei dem ich einmal die Sprache einstelle - hier in der Variablen DocLang. In Abhängigkeit vom Wert der Variablen sollen bei diversen einzubindenden Paketen, der Wert von bestimmten Optionen angepasst werden.

Wenn ich die Optionen bei siunitx in Abhängigkeit einer Variablen haben will, kommt es zu einer Fehlermeldung. Die Fehlermeldugn lässt sich mit folgendem Code reproduzieren:

Open in writeLaTeX
\documentclass{standalone}
\usepackage{etoolbox}
\usepackage{siunitx}

\begin{document}

\newcommand\DocLang{german}

%\sisetup{locale = DE} % Funktioniert
%\sisetup{locale = US} % Funktioniert
\sisetup{locale = \ifstrequal{\DocLang}{german}{DE}{US}}
\num{1.23}

\end{document}

Bei dem Paket biblatex habe ich ein ähnliches Problem, lediglich eine andere Fehlermeldung.

Hat jemand eine Idee?

gefragt 29 Apr '14, 10:06

dzaic's gravatar image

dzaic
631104853
Akzeptiert-Rate: 42%

bearbeitet 29 Apr '14, 10:11


Nimm den Befehl \ifdefstring, wenn nur das erste Argument ein Makro ist, und verwende das \sisetup in den Argumenten der Abfrage:

Open in writeLaTeX
\documentclass[margin=2pt]{standalone}
\usepackage{etoolbox}
\usepackage{siunitx}

\newcommand\DocLang{german}

\ifdefstring{\DocLang}{german}{\sisetup{locale = DE}}{\sisetup{locale = US}}

\begin{document}
\num{1.23}
\end{document}

oder analog zum Vorschlag von @Ulrike Fischer bei deiner Folgefrage

Open in writeLaTeX
\documentclass[margin=2pt]{standalone}
\newcommand\DocLanguage{english}

\usepackage{siunitx}

\newcommand\germansettings{%
  \sisetup{locale = DE}%
}

\newcommand\englishsettings{%
  \sisetup{locale = US}%
}

\csname \DocLanguage settings\endcsname

\begin{document}
\num{1.23}
\end{document}

Blockquote

Permanenter link

beantwortet 29 Apr '14, 10:21

esdd's gravatar image

esdd
17.7k254256
Akzeptiert-Rate: 62%

bearbeitet 29 Apr '14, 15:21

Merci! Dies funktioniert jedoch leider nur bei Paketen, wo ich die Optionen nicht direkt bei usepackage angeben muss. Bei biblatex habe ich bisher keinen Weg gefunden, die Optionen auf diese Weise mitzuteilen.

(29 Apr '14, 10:48) dzaic
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×34
×14
×5

gestellte Frage: 29 Apr '14, 10:06

Frage wurde gesehen: 9,106 Mal

zuletzt geändert: 29 Apr '14, 15:21