.png)
- Estoy usando la fuente Linux Libertine (del sistema) con
XeTeX.
- En el cuerpo, uso
OldStyle
números mientras quieroLining
números en las tablas. - Estoy escribiendo tablas que tienen algunas celdas con
\bfseries
texto.
Sin embargo, la \addfontfeature
configuración solo se aplica al texto normal, pero no al texto configurado en formato \bfseries
.
MWE
\documentclass{scrartcl}
\usepackage{array,booktabs,fontspec}
\setmainfont[Ligatures={Common},Numbers={OldStyle}]{Linux Libertine O}
\begin{document}
\begin{table}
\addfontfeature{Numbers={Lining}}
\begin{tabular}{>{\bfseries}ll} \toprule
3 & 3 \\ \bottomrule
\end{tabular}
\end{table}
\end{document}
Esto produce:
¿Cómo puedo configurar \addfontfeatures{Numbers={Lining}}
para que se aplique a todo el texto de un grupo?
Respuesta1
El problema es reproducible sin una tabla:
\documentclass{scrartcl}
\usepackage{array,booktabs,fontspec}
\setmainfont[Ligatures={Common},Numbers={OldStyle}]{Linux Libertine O}
\begin{document}
1234567890
{\addfontfeatures{Numbers=Lining}
1234567890
\normalfont 1234567890
\bfseries 1234567890}
1234567890
\end{document}
Como puede ver, la llamada \normalfont
restablece las funciones a lo que se indicó al principio. El \bfseries
comando \fontseries{\bfdefault}\selectfont
anula la característica elegida.
Mi consejo es evitarlo \addfontfeatures
siempre que sea posible, incluso a costa de duplicar algún código.
\documentclass{scrartcl}
\usepackage{array,booktabs,fontspec}
\setmainfont[Ligatures={Common},Numbers={OldStyle}]{Linux Libertine O}
\newfontfamily{\mainlining}[Ligatures=Common,Numbers=Lining]{Linux Libertine O}
\begin{document}
\begin{table}
\mainlining
\begin{tabular}{>{\bfseries}ll}
\toprule
3 & 3 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}