
Wenn ich XeTeX mit fontspec
und verwende unicode-math
, möchte ich die Hauptschriftart des Dokuments für für verwenden.Ziffern(Zahlen) im Mathematikmodus. Außerdem möchte ich \text{}
im Mathematikmodus Zeilennummern verwenden, während die Standardeinstellung für das Dokument OldStyle-Nummern sind. Wie kann ich dieses Verhalten erreichen?
Ich habe es mit dem Einfügen versucht \setmathfont[range=\mathup/{num}]{Linux Libertine O}
, aber es bringt nicht das gewünschte Ergebnis.
Hier ist ein MWE, das auf die Probleme hinweist:
\documentclass{article}
\usepackage{iftex}
\usepackage{libertine}
\usepackage{fontspec}
\setmainfont[Numbers=OldStyle]{Linux Libertine O}
\usepackage{amsmath}
\usepackage{unicode-math}
% Here I try to set up the normal text font for digits in mathmode:
\setmathfont[range=\mathup/{num}]{Linux Libertine O}
\parindent0pt
\begin{document}
This is \ifXeTeX XeTeX\fi\ifLuaTeX LuaTeX\fi
with \fontname\font
\bigskip
Text numbers:
0123456789; italic: \textit{0123456789}; bold: \textbf{0123456789}
Text numbers lining:
\liningnums{0123456789; italic: \textit{0123456789}; bold:
\textbf{0123456789}}
Numbers in mathmode: $0123456789$ (ok)\\
mathit: $\mathit{0123456789}$ (wrong font)\\
mathbf: $\mathbf{0123456789}$ (wrong font)\\
mathrm: $\mathrm{0123456789}$ (wrong font)\\
text (math): $\text{0123456789}$ (should be lining)
In big equation, fonts for big brackets $\big( \Big( \bigg( \Bigg($ are
missing:
\[
\left(\frac{12a}{34b}\right)
\]
\end{document}
Mit XeTeX ergibt sich Folgendes:
Es gibt also drei Probleme:
Linux Libertine O
für Ziffern, die nicht in\mathrm
,\mathit
,\mathbf
usw. vorkommen.- Die großen Klammern funktionieren nicht. (Weitere Informationen hierzu finden Sie weiter unten.)
- Gibt es eine Möglichkeit, Zeilennummern im Mathematikmodus zu erreichen,
\text{}
obwohl der Dokumentnummernstil OldStyle ist?
Was Problem 1 betrifft, liegt dies daran, dass range=\mathup/{num}
es nur auf aufrecht stehenden mathematischen Text angewendet wird. Weiß jemand, wie man diesen Befehl für alle Zahlen in allen Bereichen anwendet? Die Verwendung von „only“ range={num}
führt zu einem Fehler.
Zu Problem 2 habe ich noch zwei weitere Informationen. A) Wenn ich LuaTeX auf die gleiche Datei anwende, werden die Klammernerscheinen, jedoch ohne skaliert zu werden:
B) Wenn ich die Zeile auskommentiere \setmathfont[range=\mathup/{num}]{Linux Libertine O}
, tritt das Problem überhaupt nicht auf. Das lässt darauf schließen, dass der Klammermechanismus durch die Änderung der Schriftart für Zahlen beeinträchtigt wird, was aber nicht der Fall sein sollte, oder?
Dieses Problem ist übrigens nicht spezifisch für . Es trat auch auf, als ich als Hauptschriftart für Dokumente Linux Libertine O
verwendete .SabonNextLTPro
Antwort1
Bis irgendjemand eine Idee hat, möchte ich in der Zwischenzeit einen Workaround vorstellen. Im Grunde wird mathspec
statt auf zurückgegriffen unicode-math
. Fast alles funktioniert sofort und in nur drei Zeilen:
\documentclass{article}
\usepackage{iftex}
\usepackage[no-math]{fontspec}
\usepackage{libertine}
\setmainfont[Numbers=OldStyle]{Linux Libertine O}
\usepackage{amsmath}
\usepackage{mathspec}
\setmathfont(Digits){Linux Libertine O}
\parindent0pt
\begin{document}
This is \ifXeTeX XeTeX\fi\ifLuaTeX LuaTeX\fi
with \fontname\font
\bigskip
Text numbers:
0123456789; italic: \textit{0123456789}; bold: \textbf{0123456789}
Text numbers lining:
\liningnums{0123456789; italic: \textit{0123456789}; bold:
\textbf{0123456789}}
Numbers in mathmode: $0123456789$ (ok)\\
mathit: $\mathit{0123456789}$ (correct font but no italic)\\
mathbf: $\mathbf{0123456789}$ (correct font but no boldface)\\
mathrm: $\mathrm{0123456789}$ (ok)\\
text (math): $\text{0123456789}$ (should be lining)
In equations, testing fonts for big brackets $\big( \Big( \bigg( \Bigg($:
\[
\left(\frac{12a}{34b}\right)
\]
\end{document}