
Ich muss die Schriftgröße mitten im Dokument ändern. Das Problem ist, dass die Zeichen in der Inline-Mathematik im Vergleich zum Textmodus gestreckt (breiter) werden, egal welche Methode ich ausprobiert habe, und das sieht schlecht aus (und verschwendet Seitenfläche). Wie kann ich das beheben?
Hier ist ein MWE:
\documentclass{scrbook}
\usepackage{unicode-math}
\begin{document}
Same character width:\\
123456789012345678901234567890\\
$ 123456789012345678901234567890 $\par
\KOMAoptions{fontsize=10}
% or other change in size like \footnotesize \LARGE etc
Different character width:\\
123456789012345678901234567890\\
$ 123456789012345678901234567890 $\par
\end{document}
Antwort1
Sie können Unicode-Mathematik zwingen, für die Zahlen die normale moderne lateinische Textschriftart zu verwenden:
\documentclass{scrbook}
\usepackage{unicode-math}
\setmathfont{Latin Modern Math}
\setmathfont[range={"0030-"0039}]{Latin Modern Roman}
\setmathfont[range=\int]{Latin Modern Math} %last font should be a math font
\begin{document}
Same character width:\\
123456789012345678901234567890\\
$ 123456789012345678901234567890 $\par
\KOMAoptions{fontsize=10}
Different character width:\\
123456789012345678901234567890\\
$ 123456789012345678901234567890 x^3$\par
\end{document}
Bearbeiten
Eigentlich ist der Bereichsbefehl nicht erforderlich. Das einfache Einstellen der mathematischen Schriftart, wie es egreg in seiner Antwort tut, löst das Problem für mich in einem modernen Tex-System:
\documentclass{scrbook}
\usepackage{unicode-math}
\setmathfont{Latin Modern Math}
\begin{document}
Same character width:\\
123456789012345678901234567890\\
$ 123456789012345678901234567890 $\par
\KOMAoptions{fontsize=10}
Different character width:\\
123456789012345678901234567890\\
$ 123456789012345678901234567890 x^3$\par
\end{document}
Bearbeiten 2
Nach genauerem Hinsehen (und Testen anderer Schriftgrößen) habe ich die Ursache des Problems gefunden: Unicode-Mathematik richtet die Mathematik mit unterschiedlichen „Mathematikstilen“ ein. Kleinere Schriftgrößen verwenden z. B. +ssty=0;
und dies führt zu breiteren Ziffern (das ist ein Feature, kein Fehler. Breitere Zeichen sind in kleinen Größen besser lesbar).
Wenn man also die Gesamtschriftgröße ändert, muss man die Mathematikschriftarten erneut einrichten:
\documentclass[fontsize=11pt]{scrbook}
\usepackage{unicode-math}
\setmathfont{Latin Modern Math}
\begin{document}
Same character width:\\
123456789012345678901234567890 abc\\
$ 123456789012345678901234567890 abc$
\KOMAoptions{fontsize=9}
\setmathfont{Latin Modern Math}
Different character width:\\
123456789012345678901234567890 abc\\
$ 123456789012345678901234567890 abc$
\end{document}
Bei den Latin Modern Fonts, bei denen die Textschriften optische Größen haben, besteht dennoch ein Unterschied.
Antwort2
Sie müssen lediglich die mathematische Schriftart angeben. Der Grund dafür kann ein Fehler sein unicode-math
(oder eine Folge der Funktionsweise fontsize=10
).
\documentclass{scrbook}
\usepackage{unicode-math}
\setmathfont{Latin Modern Math}
\begin{document}
Same character width:\\
123456789012345678901234567890\\
$ 123456789012345678901234567890 $\par
\KOMAoptions{fontsize=10}
% or other change in size like \footnotesize \LARGE etc
Different character width:\\
123456789012345678901234567890\\
$ 123456789012345678901234567890 $\par
\end{document}
Die kleine Verschiebung in den Anzeigen scheint auf einen Fehler in der Schriftart „Latin Modern Math“ zurückzuführen zu sein.
\sbox0{78}\showbox0
\sbox0{$78$}\showbox0
mit der normalen scrbook
Einstellung (11pt), dann bekomme ich
\hbox(7.40219+0.24089)x10.95
.\EU1/lmr/m/n/10.95 78
für die erste Kiste, während ich
\hbox(7.40219+0.2409)x11.09236
.\mathon
.\EU1/LatinModernMath(0)/m/n/10.95 glyph#24
.\kern0.14235
.\EU1/LatinModernMath(0)/m/n/10.95 glyph#25
.\mathoff
Der Größenunterschied beträgt 11.09236 - 10.95 = 0.14236
(der Unterschied beträgt 1sp aufgrund binärer Arithmetik, nicht relevant). Der Kern wird zwischen 7 undbeliebigZiffer. Zwischen den Ziffern wird kein weiteres Kerning eingefügt.