1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
|
\documentclass[english,ngerman]{tudscrartcl}
\iftutex
\usepackage{fontspec}
\else
\usepackage[T1]{fontenc}
\usepackage[ngerman=ngerman-x-latest]{hyphsubst}
\fi
\usepackage{tudscrtutorial}
\lstset{%
inputencoding=utf8,extendedchars=true,
literate=%
{ä}{{\"a}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
{Ä}{{\"A}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
{~}{{\textasciitilde}}1 {ß}{{\ss}}1
}
\usepackage{mathswap}
\usepackage{bookmark}
\begin{document}
\begin{Bundle}{\Package{mathswap}}
\date{07.11.2016}
\author{Falk Hanisch\thanks{\noexpand\scriptsize\noexpand\mailto{\tudscrmail}}}
\title{Änderung der Trennzeichen im Mathematikmodus}
\makeatletter
\begingroup%
\def\and{, }%
\let\thanks\@gobble%
\let\footnote\@gobble%
\hypersetup{%
pdfauthor = {\@author},%
pdftitle = {\@title},%
pdfsubject = {Mathematiksatz in LaTeX},%
pdfkeywords = {LaTeX, \TUDScript, Tutorial, Mathematiksatz},%
}%
\endgroup%
\markright{\@title}
\makeatother
\StartTutorial[%
Werden in einer wissenschaftlichen Abhandlung vielerlei Daten importiert und
beispielsweise tabellarisch dargestellt, kann es durchaus sein, dass diese
importierten Datensätze bezüglich der darin enthaltenen Gruppierungs- und
Dezimaltrennzeichen nicht dem Zahlenformat entsprechen, welches für die
verwendete Dokumentsprache normalerweise notwendig wäre.
Dieses Tutorial behandelt die typografischen Eigenheiten von Gruppierungs-
und Dezimaltrennzeichen bei der Angabe von Zahlen in einem
\hologo{LaTeXe}"=Dokument. Sowohl bei der Einbindung von externen Daten als
auch bei der Erstellung von fremdsprachigen Dokumenten ist dies ein durchaus
relevantes Thema. Um sich die manuelle Konvertierung der Daten zu ersparen,
kann alternativ dazu die Möglichkeit genutzt werden, dies mit Hilfe von
\hologo{LaTeXe} selbst zu bewerkstelligen.
Es wird beschrieben, wie das \TUDScript-Paket \Package{mathswap}'manual' für
diese Zwecke genutzt werden kann. Wird es in einer der \TUDScript-Klassen
geladen, so wird das angenommene Zahlenformat an die gewählte Dokumentsprache
angepasst. Alternativ dazu kann auch das Paket \Package{ionumbers}()'manual'
verwendet werden.
]
Bevor das eigentliche Tutorial beginnt, werden sowohl eine Dokumentklasse als
auch die für jedes \hologo{pdfLaTeX}-Dokument meiner Meinung nach sinnvollen
Pakete geladen.
%
\begin{Preamble}
\documentclass[english,ngerman]{tudscrartcl}% andere Klassen möglich
\usepackage{iftex}
\iftutex
\usepackage{fontspec}
\else
\usepackage[T1]{fontenc}
\usepackage[ngerman=ngerman-x-latest]{hyphsubst}
\fi
\usepackage{babel}
\usepackage{microtype}
\end{Preamble}
%
Zusätzlich wird das Paket \Package{mathswap}'manual' aus dem \TUDScript-Bundle
geladen, welches die Änderung der Gruppierungs- und Dezimaltrennzeichen im
Mathematikmodus ermöglicht. Dadurch werden einerseits Zahlen im zur jeweiligen
Dokumentsprache gehörigen Format typografisch korrekt gesetzt. Andererseits ist
es so möglich, Zahlen im englischen Format typografisch korrekt in deutschen
Texten zu setzen~-- et vice versa.
%
\begin{Preamble}
\usepackage{mathswap}
\end{Preamble}
%
\addsec{Typografisch korrekte Ausgabe für deutschsprachige Dokumente}
%
Für dieses Tutorial wird zunächst angenommen, dass die wissenschaftlichen
Abhandlung in deutscher Sprache verfasst wird. Ohne die Nutzung eines
speziellen Paketes zur Ausgabeformatierung von Zahlen werden diese durch
\hologo{LaTeXe} im mathematischen Modus bei der Angabe im deutschen
Zahlenformat~-- Punkt~(\PValue{.}) als Gruppierungs- und Komma~(\PValue{,}) als
Dezimaltrennzeichen~-- folgendermaßen ausgegeben:%
\footnote{%
Da in der Präambel dieses Dokumentes das Paket \Package{mathswap}'manual'
bereits geladen wurde, wird mit \Macro{mathswapoff}'manual' auf das
Standardverhalten von \hologo{LaTeXe} geschaltet. Die Funktionalität wird mit
\Macro{mathswapon}'manual' wieder aktiviert.%
}
%
\CodePreamble{%
Ohne \Package{mathswap}'manual' keine typografische Zifferngruppierung%
}
\begin{Trunk*}
\mathswapoff
\(4.523,58\)
\mathswapon
\end{Trunk*}
%
Mit dem Paket \Package{mathswap}'manual' wird das Ziel verfolgt, unabhängig vom
genutzten Zahlenformat für die Eingabe, eine typografisch korrekte Ausgabe zu
erzeugen. Wird das Paket zusammen mit einer \TUDScript-Klasse verwendet, werden
die Gruppierungs- und Dezimaltrennzeichen bei der Eingabe im Mathematikmodus
sprachabhängig interpretiert. Bei der Nutzung einer \KOMAScript-Dokumentklasse
respektive einer \hologo{LaTeX}-Standardklasse werden diese im Mathematikmodus
immer nach dem englischen Zahlenformat~-- Komma~(\PValue{,}) als Gruppierungs-
und Punkt~(\PValue{,}) als Dezimaltrennzeichen~-- betrachtet.
Da dieses Dokument mit einer \TUDScript-Klasse (\TUDClassName) gesetzt wird und
die Spracheinstellung~\PValue{ngerman} gewählt wurde, wird für die folgenden
Zahlen das deutsche Eingabeformat angenommen. Wird nun die bereits zuvor
verwendete Zahl bei aktiver Funktionalität von \Package{mathswap}'manual' im
Mathematikmodus angegeben werden, so wird diese den typografischen Konventionen
folgend~-- halbes Leerzeichen zur Zahlengruppierung und Komma ohne umgebenden
Leerraum als Dezimaltrennzeichen~-- entsprechend ausgegeben:
%
\CodePreamble{%
Zifferngruppierung korrekt (Spracheinstellung~\PValue{ngerman})%
}
\begin{Trunk*}
\(4.523,58\)
\end{Trunk*}
%
Wird die gleiche Zahl in englischer Formatierung angegeben, funktioniert dies
nicht mehr:
%
\CodePreamble{%
Zifferngruppierung falsch (Spracheinstellung~\PValue{ngerman})%
}
\begin{Trunk*}
\(4,523.58\)
\end{Trunk*}
%
Um nun Zahlen, welche in englischer Formatierung eingegeben oder importiert
werden, in deutschsprachigen Dokumenten typografisch korrekt auszugeben, können
die beiden Befehle \Macro{commaswap}[\PParameter{\dots}]'manual' sowie
\Macro{dotswap}[\PParameter{\dots}]'manual' genutzt werden. Mit diesen lässt
sich festlegen, wie die im Mathematikmodus zur Zifferngruppierung eingegeben
Trennzeichen~-- Komma~(\PValue{,}) und Punkt~(\PValue{.})~-- substituiert
werden sollen, um damit die gewünschte Typografie zu erhalten. Die Argumente
der beiden Befehle geben also an, wodurch im mathematischen Modus Komma und
Punkt bei der Ausgabe ersetzt werden sollen.
Im englischen Zahlenformat wird bei der Eingabe das Komma~(\PValue{,}) als
Gruppierungs- und der Punkt~(\PValue{.}) als Dezimaltrennzeichen genutzt. Bei
der Ausgabe für deutschsprachige Dokumente nach den typografischen Konventionen
muss folglich das Komma durch ein halbes Leerzeichen (\Macro*{,}) ersetzt
werden. Dies lässt sich mit \Macro{commaswap}[\PParameter{\Macro*{,}}]
bewerkstelligen. Der Punkt ist demzufolge mit einem Komma durch die Angabe von
\Macro{dotswap}[\PParameter{,}] zu ersetzen:%
\footnote{%
Die Verwendung von \Macro*{begingroup} und \Macro*{endgroup} führt hierbei
dazu, dass die Änderungen der beiden Trennzeichen nur lokal innerhalb dieser
Gruppe erfolgt.
}
%
\CodePreamble{%
Englisches Zahlenformat in korrekter deutscher Zifferngruppierung%
}
\begin{Trunk*}
\begingroup
\commaswap{\,}
\dotswap{,}
\(4,523.58\)
\endgroup
\end{Trunk*}
%
Somit können in einem deutschsprachigen Dokument Zahlen im englischen Format
problemlos verwendet beziehungsweise importiert und dennoch typografisch
korrekt gesetzt werden.
%
\addsec{Typografisch korrekte Ausgabe für englischsprachige Dokumente}
%
Wird das Paket \Package{mathswap}'manual' zusammen mit einer \TUDScript-Klasse
verwendet, werden die Gruppierungs- und Dezimaltrennzeichen im Mathematikmodus
sprachabhängig definiert. Wird also die Dokumentsprache auf \PValue{english}
gesetzt, so werden die Trennzeichen standardmäßig nach dem englischsprachigen
Zahlenformat interpretiert.
%
\CodePreamble{%
Zifferngruppierung (Spracheinstellung~\PValue{english})%
}
\begin{Trunk*}
\begingroup
\selectlanguage{english}%
\(4,523.58\)\newline
\(4.523,58\)
\endgroup
\end{Trunk*}
%
Für englischsprachige Dokumente wird für die Auszeichnung der Gruppierung von
Ziffern ebenfalls ein halbes Leerzeichen und als Dezimaltrennzeichen ein Punkt
verwendet. Werden nun Zahlen in der deutschen Formatierung eingelesen, so muss
folglich das Komma durch einen Punkt \Macro{commaswap}[\PParameter{.}] und der
Punkt mit \Macro{dotswap}[\PParameter{\Macro*{,}}] durch ein halbes Leerzeichen
ersetzt werden:%
%
\CodePreamble{%
Deutsches Zahlenformat in korrekter englischer Zifferngruppierung%
}
\begin{Trunk*}
\begingroup
\selectlanguage{english}%
\commaswap{.}
\dotswap{\,}
\(4.523,58\)
\endgroup
\end{Trunk*}
%
\FinishTutorial
\ListOfToDo
\end{Bundle}
\end{document}
|