Ich verwende LuaTeX, um kleine Rechnungen innerhalb eines LaTeX-Dokuments durchzuführen. Die Eingabe von Dezimalzahlen folgt dem angelsächsischen System. Wie erhält man das Ergebnis nach deutscher Schreibweise (im unteren Beispiel also 5,2 bzw. 10,4).

Open in Online-Editor
\documentclass{article}
\usepackage{amsmath}   
\usepackage{luacode}

\begin{document}
\directlua{a=5.2} Sei $a=\directlua{tex.sprint(a)}$.
Dann gilt $2 \cdot a=\directlua{tex.sprint(2*a)}$.
\end{document}

gefragt 13 Dez '16, 22:34

typ42's gravatar image

typ42
38341927
Akzeptiert-Rate: 33%

bearbeitet 14 Dez '16, 07:35

saputello's gravatar image

saputello
11.1k154365


Im Resultat einfach . mit {,} ersetzen mittels gsub. Die zusätzlichen geschweiften Klammern sorgen dafür, dass hinter dem Komma kein größerer Abstand eingefügt wird.

Damit man den Punkt ersetzen kann muss man das gsub-Pattern %. verwenden. Mit \directlua gibt es keinen einfachen Weg das Prozentzeichen reinzuschmuggeln, aber mit \luaexec aus dem luacode-Paket kann man einfach \% schreiben.

Open in Online-Editor
\documentclass{article}
\usepackage{luacode}

\begin{document}
\directlua{a=5.2} Sei $a=\directlua{tex.sprint(a)}$.
Dann gilt $2 \cdot a=\luaexec{tex.sprint(string.gsub(2*a, "\%.", "{,}"))}$.
\end{document}

alt text


Alternativ kann man die Ausgabe auf TeX-Ebene verarbeiten. Hier bietet sich siunitx an, welches mit der Option locale=DE automatisch auf deutsche Konvention bei Einheiten und Dezimaltrennern umschaltet.

Open in Online-Editor
\documentclass{article}
\usepackage[locale=DE]{siunitx}

\begin{document}
\directlua{a=5.2} Sei $a=\directlua{tex.sprint(a)}$.
Dann gilt $2 \cdot a=\num{\directlua{tex.sprint(2*a)}}$.
\end{document}

alt text

Permanenter link

beantwortet 13 Dez '16, 22:44

Henri's gravatar image

Henri
15.7k133943
Akzeptiert-Rate: 46%

bearbeitet 13 Dez '16, 22:53

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:

×27
×2

gestellte Frage: 13 Dez '16, 22:34

Frage wurde gesehen: 5,174 Mal

zuletzt geändert: 13 Dez '16, 22:53