Ich versuche, die Linux-Schriftart Libertine für meine Abschlussarbeit zu verwenden. Libertine hat tatsächlich mathematische Symbole, aber ich habe es nicht geschafft, sie in Unicode-Mathematik richtig zu verwenden. Das folgende Beispiel fasst meine Versuche zusammen, nach und nach Symbole aus der Schriftart hinzuzufügen, und zeigt die Fehler auf. Mir ist bewusst, dass einige der Probleme nicht gelöst werden konnten, da die OTF-Schriftart Mathematik nicht vollständig unterstützt, aber vielleicht könnten einige der Probleme mit fortgeschrittenen TeX-Tricks gelöst werden. Die beiden Hauptprobleme sind die Akzente und Klammern; ich kann es tolerieren, wenn andere Symbole aus einer anderen Schriftart übernommen werden.
\documentclass{article}
\usepackage{amsmath}
\usepackage{xcolor}
\setlength{\parindent}{0pt}
\usepackage{fontspec}
\usepackage[partial=upright,nabla=upright]{unicode-math}
\newcommand{\sample}{\[ \underbrace{\frac{\partial y}{\partial x}R(x)^2}_{\text{Foo}} = \left[ \sum_{i=0}^\infty \tilde{f}_i \arcsin\left( \alpha_i^3 x \right) \right]^{-1} \sqrt[6]{\int \nabla y\times\mathbf{\theta}(y) \mathrm{d}\phi} \geq \mathring{\Omega}_\ell [d]\]}
\begin{document}
\sample
This is a correct rendering using Latin Modern. Let's try to add some Libertine\ldots
\setmainfont[Mapping=tex-text]{Linux Libertine O}
\setmathfont[range=\mathit/{latin,Latin,num,Greek,greek}]{Linux Libertine O Italic}
\setmathfont[range=\mathup/{latin,Latin,num,Greek,greek}]{Linux Libertine O}
\setmathfont[range=\mathbfup/{latin,Latin,num,Greek,greek}]{Linux Libertine O Bold}
\setmathfont[range=\mathbfit/{latin,Latin,num,Greek,greek}]{Linux Libertine O Bold Italic}
\setmathfont[range={"0300-"036F}]{Linux Libertine O}% Accents - won't compile correctly without this line
\setmathfont[range={"003D,"00D7,"2202,"2207,"2212,"221E,"2265}]{Linux Libertine O} % some more symbols, they work properly
% U+003D Equal sign
% U+00D7 Cross
% U+2202 Partial
% U+2207 Nabla
% U+2212 Minus
% U+221E Infinity
% U+2265 Greater or equal
\sample
\textcolor{red}{Problem 1:} accents are off (ugly hack: use \texttt{\backslash skew})\\
\textcolor{red}{Problem 2:} brackets are still in LM; at least the normal sized brackets must match the text, so let's add parentheses \& square brackets:
\setmathfont[range={"0028,"0029,"005B,"005D}]{Linux Libertine O}
\sample
\textcolor{red}{Problem 3:} only the right parenthesis extends\\
\textcolor{red}{Problem 4:} the underbrace became gibberish\\
Possible fix to 3 \& 4: include the extending brackets from `Miscellaneous Technical' unicode block (\texttt{U+239B}--\texttt{U+23AA}); unfortunately it doesn't change anything.
\medskip
Libertine has a summation and integral symbol, let's try to use them:
\setmathfont[range={"2211,"222B}]{Linux Libertine O}
\sample
\textcolor{red}{Problem 5:} the summation symbol is too small; Note that the integral symbol was broken to an top and bottom parts (both exist in the font), but there are no top and bottom parts of the summation symbol in this font.
\end{document}
Antwort1
Verwenden Sie ausschließlich alphanumerische Symbole aus nicht OpenType-Mathematikschriften wie Linux Libertine. Klammern, große Operatoren (Summation, Integrale usw.), breite Akzente, Wurzeln usw. erfordern spezielle Überlegungen, die nur bei vollständig OpenType-Mathematikschriften beneidenswert sind.
Wenn Sie beim Mathematiksatz die höchste Qualität erzielen möchten, verwenden Sie grundsätzlich nur vollständige Mathematikschriften. Wie Sie sehen, sind sogar im ersten Libertine-Beispiel die Akzente und der Grundgrad falsch.
XITS Math passt möglicherweise besser als die hellere Schriftart Latin Modern.
Antwort2
Die Dinge haben sich möglicherweise geändert, seit diese Frage gestellt wurde, und ich glaube, sie beantwortet nur einen Teil davon, aber ich war in einer ähnlichen Situation (ich wollte Linux Libertine in einer Abschlussarbeit verwenden) und ich war sehr erleichtert, als ich das Paket fandnewtx
, das zahlreiche Verbesserungen für die Festlegung mathematischer Werte in einer großen Auswahl an Schriftarten bietet, mit besonderem Schwerpunkt auf Linux Libertine.
Ich verwende XeLaTeX und schreibe kurz gesagt (die Präambel im eigentlichen Dokument ist an dieser Stelle über 100 Zeilen lang…) Folgendes in die Präambel:
\usepackage[libertine]{newtxmath}
\usepackage[no-math]{fontspec}
\setmainfont{Linux Libertine O}
und plötzlich waren mehr oder weniger alle Kerning-Probleme und mehr im Mathematikmodus standardmäßig behoben.
Ich würde sogar so weit gehen und sagen, dass Linux Libertine für Dokumente, die Mathematik enthalten, ohne diesen newtx
Aufwand praktisch unbrauchbar ist. Man kann stundenlang damit verbringen, manuell Sprünge, Leerzeichen und Unterschneidungen hinzuzufügen, oder man kann laden newtxmath
.
Ich kenne die internen Details der Definition von Metriken für Schriftarten im Mathematikmodus nicht, daher kann es sein, dass ich mich technisch irre, aber ich glaube, dass es eine enorme Verbesserung für Linux Libertine wäre, wenn es die Kerning-Funktionen aus diesem externen Paket in die Hauptschriftart integrieren könnte. Fast jeder Zeichensatz im Mathematikmodus ist ohne dieses Paket problematisch.
Ich hoffe, dass diejenigen, die diese Frage finden, dieses Paket gründlich untersuchen.
Antwort3
Probieren Sie das neue TeX Gyre Pagella Math aus, das Teil von TL 2012 ist:
\documentclass{article}
\usepackage{amsmath}
\usepackage{xcolor}
\setlength{\parindent}{0pt}
\usepackage[partial=upright,nabla=upright]{unicode-math}
\setmainfont{Linux Libertine O}
\setmonofont{LinMonoO}
\setmathfont{TG Pagella Math}
\setmathfont[range={\mathcal,\mathbfcal},StylisticSet=1]{XITS Math}
\def\Macro#1{\texttt{\textbackslash#1}}
\begin{document}
\[ \underbrace{\frac{\partial y}{\partial x}R(x)^2}_{\text{Foo}} = \left[ \sum_{i=0}^\infty \tilde{f}_i \arcsin\left( \alpha_i^3 x \right) \right]^{-1} \sqrt[6]{\int \nabla y\times\mathbf{\theta}(y) \mathrm{d}\phi} \geq \mathring{\Omega}_\ell [d]
\]
\Macro{mathscr}: $\mathscr{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$\\
\Macro{mathscr}: $\mathscr{abcdefghijklmnopqrstuvwxyz}$\\
\Macro{mathbfscr}: $\mathbfscr{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$\\
\Macro{mathbfscr}: $\mathbfscr{abcdefghijklmnopqrstuvwxyz}$
\bigskip
\Macro{mathcal} and \Macro{mathbfcal}
\texttt{StylisticSet=1}: $\mathcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$\\
\texttt{StylisticSet=1}: $\mathbfcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$
\setmathfont[range={\mathcal,\mathbfcal},StylisticSet=2]{XITS Math}
\texttt{StylisticSet=2}: $\mathcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$\\
\texttt{StylisticSet=2}: $\mathbfcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$
\end{document}
Antwort4
Der Betreuer des libertine
CTAN-Pakets, der auch derde factoBetreuer der Libertine-Schriftarten, empfiehlt die Verwendung
\usepackage{unicode-math}
\setmathfont[Scale=MatchUppercase]{libertinusmath-regular.otf}
für "kompatible Mathematik" in XeTeX oder LuaTeX. Die Schriftart libertinusmath-regular.otf gehört zurLibertinus-SchriftartenCTAN-Paket. Wenn ich die volle Kontrolle über die Schriftartenauswahl in dem Dokument hätte, an dem ich gerade herumbastele, würde ich wahrscheinlich ganz darauf umsteigen; Libertinus ist ein Fork der Libertine-Familie mit „vielen behobenen Fehlern“ und einer Menge mehr stilistischem Bling-Bling.