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.

gefragt 12 Mär '14, 10:57

Sylvan's gravatar image

Sylvan
284513
Akzeptiert: 75%

bearbeitet 14 Mär '14, 11:23

Clemens's gravatar image

Clemens
19.0k113060


Ich habe Joseph Wright diese Frage gestellt. Seine Antwort war:

Ah, that's a bit tricky!

In der Tat ist siunitx hier konsistent mit NFSS, aber mit Opentype-Fonts kann man sich leider nicht völlig auf NFSS verlassen:

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 \addfontfeatures{Numbers={Monospaced}} (mit LuaLaTeX) \EU1/LinuxLibertineO(0)/m/n/10 ist und hinterher \EU1/LinuxLibertineO(1)/m/n/10, bleibt \rmdefault gleich, nämlich in beiden Fällen LinuxLibertineO(0). Eigentlich auch logisch: man ändert die Default-Schrift ja nicht.

Eine mögliche Lösung wäre, \rmdefault lokal umzudefinieren:

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}

alt text

Permanenter link

beantwortet 14 Mär '14, 11:22

Clemens's gravatar image

Clemens
19.0k113060

bearbeitet 14 Mär '14, 11:25

Müsste Joseph jetzt eigentlich die Upvotes bekommen? ;-D

(14 Mär '14, 18:39) Speravir

@Speravir Steht alles im Chat-Transkript :)

(14 Mär '14, 18:40) Clemens

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, 05: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, 06:19) Clemens

Na das klingt doch auch ganz gut. Bis dahin kann ich mir sicher so behelfen. Danke Dir und Joseph.

(17 Mär '14, 09:40) Sylvan
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×69
×24
×7

Frage gestellt: 12 Mär '14, 10:57

Frage wurde angeschaut: 2,799 Mal

Zuletzt aktualisiert: 17 Mär '14, 09:40