Am besten ich beginne mal mit einem kleinen Beispiel: Open in writeLaTeX
\documentclass[parskip=half]{scrartcl} \usepackage{fontspec, etoolbox, amsmath, siunitx} \defaultfontfeatures{Numbers = {Proportional}} % Standardmäßig \setmainfont{Linux Libertine O} \AtBeginEnvironment{tabular}{\addfontfeatures{Numbers={Monospaced}}} \sisetup{detect-all = true, mode = text, group-digits = false,} \begin{document} \section*{Text-Mode:} 11111\\ 22222 \section*{Table:} \begin{tabular} {@{}l} 11111\\ 22222\\ \end{tabular} \section*{Table + siunitx} \begin{tabular} {@{}l} \num{11111}\\ \num{22222}\\ \end{tabular} \section*{siunitx} \num{11111}\\ \num{22222} \section{Math-Mode:} \( \begin{matrix} 11111\\ 22222\\ \end{matrix} \) \end{document} Ich möchte, im Fließtext proportionale Nummern setzen. In Tabellen hingegen prinzipiell nur Monospace-Ziffern. In Verbindung mit Siunitx klappt das leider nicht da ich es nicht hinbekomme das SIUnitx die jeweils aktuellen Font-Features verwendet. Heißt: Außerhalb von Tabellen setzt Siunitx korrekt proportionale Nummern - innerhalb von Tabellen jedoch leider auch, obwohl dort die Font-Features umdefiniert wurden. |
Ich habe Joseph Wright diese Frage gestellt. Seine Antwort war:
In der Tat ist Open in writeLaTeX
% arara: lualatex \documentclass{article} \usepackage{fontspec,siunitx} \defaultfontfeatures{Numbers = {Proportional}} \setmainfont{Linux Libertine O} \sisetup{ detect-all = true , mode = text, group-digits = false, } \begin{document} 11111 \num{11111} {\rmfamily 11111} \end{document} Während die Schrift vor Aufruf von Eine mögliche Lösung wäre, Open in writeLaTeX
% arara: lualatex \documentclass{article} \usepackage{fontspec,siunitx} \defaultfontfeatures{Numbers = {Proportional}} \setmainfont{Linux Libertine O} \newcommand*\tabularfont{% \def\rmdefault{LinuxLibertineO(1)}% \addfontfeatures{Numbers={Monospaced}}% } \sisetup{ detect-all = true , mode = text, group-digits = false, } \begin{document} 11111 \num{11111} {\rmfamily 11111} {\addfontfeatures{Numbers={Monospaced}}% 11111 \num{11111} {\rmfamily 11111}} {\def\rmdefault{LinuxLibertineO(1)}% 11111 \num{11111} {\rmfamily 11111}} {\tabularfont 11111 \num{11111} {\rmfamily 11111}} \end{document} beantwortet 14 Mär '14, 16:22 cgnieder Müsste Joseph jetzt eigentlich die Upvotes bekommen? ;-D
(14 Mär '14, 23:39)
Speravir
Danke für die Antwort. habe es nun so gelöst, dass ich AtBeginEnvironment{tabular} noch die Zeile defrmdefault{LinuxLibertineO(1)} hinzugefügt habe. Kennt vielleicht jemand noch eine Möglichkeit wie ich dort nicht explizit die Schrift kennen muss, sondern den Schriftnamen dynamisch von der MainFont ableiten kann? Also konkret: Wenn die MainFont nicht die Libertine ist - gibt es eine Lösung wo ich in AtBeginEnvironment nichts mehr ändern muss?
(17 Mär '14, 10:34)
Sylvan
@Sylvan Joseph hat die Arbeit an v3 aufgenommen und meinte, das diese Art Problem in v3 gelöst sein sollte. Vielleicht reicht es also, einfach ein halbes Jahr zu warten.
(17 Mär '14, 11:19)
cgnieder
Na das klingt doch auch ganz gut. Bis dahin kann ich mir sicher so behelfen. Danke Dir und Joseph.
(17 Mär '14, 14:40)
Sylvan
|