.png)
- Estou usando a fonte Linux Libertine (do sistema) com
XeTeX.
- No corpo, estou usando
OldStyle
numerais enquanto queroLining
numerais nas tabelas. - Estou compondo tabelas que possuem algumas células com
\bfseries
texto.
No entanto, a \addfontfeature
configuração só é aplicada ao texto normal, mas não ao texto definido no 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}
Isso produz:
Como posso definir \addfontfeatures{Numbers={Lining}}
a aplicação a todo o texto de um grupo?
Responder1
O problema é reproduzível sem tabela:
\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 você pode ver, a chamada para \normalfont
redefine os recursos de volta ao que foi declarado no início. O \bfseries
comando faz \fontseries{\bfdefault}\selectfont
o que anula o recurso escolhido.
Meu conselho é evitar \addfontfeatures
sempre que possível, mesmo ao custo de alguma duplicação de 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}