Usando Linux Libertine en modo matemático con Unicode-math (XeLaTeX)

Usando Linux Libertine en modo matemático con Unicode-math (XeLaTeX)

Estoy intentando utilizar la fuente Linux Libertine para mi tesis. De hecho, Libertine tiene símbolos matemáticos, pero no logré usarlos correctamente en Unicode-Math. El siguiente ejemplo resume mis intentos de agregar progresivamente símbolos de la fuente y resalta los fallos. Soy consciente de que algunos de los problemas no se pudieron resolver porque la fuente OTF no es totalmente compatible con las matemáticas, pero tal vez algunos de los problemas se puedan resolver utilizando trucos avanzados de TeX. Los dos problemas principales son los acentos y corchetes; Puedo tolerar que se tomen otros símbolos de otra fuente.

\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}

Intentando representar una fórmula matemática compleja usando Linux Libertine

Respuesta1

No utilice nada más que símbolos alfanuméricos de fuentes matemáticas que no sean OpenType como Linux Libertine. Paréntesis, operadores grandes (suma, integrales, etc.), acentos amplios, raíces, etc., todos necesitan consideraciones especiales que sólo son envidiables en fuentes matemáticas OpenType completas.

En general, si desea la más alta calidad de composición tipográfica matemática, utilice sólo fuentes matemáticas completas, como puede ver incluso en el primer ejemplo de Libertine los acentos y el grado raíz están apagados.

XITS Math podría ser una mejor combinación que la fuente Latin Modern más clara.

Respuesta2

Es posible que las cosas hayan cambiado desde que se hizo esta pregunta y creo que solo aborda una parte, pero estaba en una situación similar (quería usar Linux Libertine en una tesis) y sentí un gran alivio cuando encontré el paquete.newtx, que proporciona numerosas mejoras para configurar las matemáticas en una gran variedad de fuentes, centrándose en Linux Libertine en particular.

Utilizo XeLaTeX y en resumen (el preámbulo en el documento verdadero tiene más de 100 líneas en este punto…) pongo lo siguiente en el preámbulo:

\usepackage[libertine]{newtxmath}
\usepackage[no-math]{fontspec}
\setmainfont{Linux Libertine O}

y de repente más o menos todos los problemas de kerning y más en modo matemático se resolvieron por defecto.

Me atrevería a decir que Linux Libertine es prácticamente inutilizable para documentos que incluyen matemáticas sin el newtxesfuerzo. Uno puede pasar horas y horas agregando saltos, espacios y kerns manualmente, o puede cargar archivos newtxmath.

No conozco los aspectos internos de la definición de métricas para fuentes en modo matemático, por lo que podría estar técnicamente equivocado, pero creo que sería una mejora enorme para Linux Libertine si pudiera incluir las funciones de kerning de este paquete externo en la línea principal. fuente. Casi todos los caracteres configurados en modo matemático son problemáticos sin él.

Espero que quienes encuentren esta pregunta exploren este paquete a fondo.

Respuesta3

Pruebe el nuevo TeX Gyre Pagella Math que forma parte de TL 2012:

\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}

ingrese la descripción de la imagen aquí

Respuesta4

El mantenedor del libertinepaquete CTAN, que también es elde factomantenedor de las fuentes Libertine, recomienda usar

\usepackage{unicode-math}
\setmathfont[Scale=MatchUppercase]{libertinusmath-regular.otf}

para "matemáticas compatibles" en XeTeX o LuaTeX. La fuente libertinusmath-regular.otf pertenece a lafuentes-libertinusPaquete CTAN. Si tuviera control total sobre las opciones de fuente en el documento en el que estoy trabajando ahora mismo, probablemente cambiaría a esas opciones por completo; Libertinus es una bifurcación de la familia Libertine con "muchos errores corregidos" y mucho más brillo estilístico.

información relacionada