.png)
- Ich verwende Linux Libertine Schriftart (vom System) mit
XeTeX.
- Im Textkörper verwende ich
OldStyle
Ziffern, während ich auchLining
in den Tabellen Ziffern haben möchte. - Ich setze Tabellen, die einige Zellen mit
\bfseries
Text enthalten.
Allerdings \addfontfeature
wird die Einstellung nur auf normalen Text angewendet, nicht jedoch auf Text, der in gesetzt ist \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}
Dies ergibt:
Wie kann ich \addfontfeatures{Numbers={Lining}}
die Anwendung auf den gesamten Text einer Gruppe einstellen?
Antwort1
Das Problem ist ohne Tabelle reproduzierbar:
\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}
Wie Sie sehen, setzt der Aufruf von \normalfont
die Funktionen auf den anfangs angegebenen Wert zurück. Der \bfseries
Befehl führt aus \fontseries{\bfdefault}\selectfont
, wodurch die ausgewählte Funktion ungültig wird.
Ich rate dazu, dies \addfontfeatures
nach Möglichkeit zu vermeiden, selbst wenn dies zu einer Duplizierung des Codes führt.
\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}
Antwort2
Verwenden
\documentclass{scrartcl}
\usepackage{array,booktabs,fontspec}
\usepackage[oldstyle]{libertine}
\defaultfontfeatures{Ligatures=Common}
\begin{document}
\begin{table}[!htb]
\libertineLF
\begin{tabular}{>{\bfseries}ll} \toprule
123 & 31234 \\ \bottomrule
\end{tabular}
\end{table}
\end{document}