XeTeX + fontspec: Mathfont im Dokument temporär wechseln

Formelsatz für Mathematik, Naturwissenschaften und Technik


casualcoder
Forum-Anfänger
Forum-Anfänger
Beiträge: 20
Registriert: So 13. Feb 2011, 18:30

XeTeX + fontspec: Mathfont im Dokument temporär wechseln

Beitrag von casualcoder »

'n Abend,

nachdem ich zunächst hier 'nen Thread eröffnet hatte, der aber zu 50 % hierher gehört,
stelle ich das Thema nochmal rein:

Ich brauche in einem Dokument zur Beschriftung von Tabellen den Inline-Mathemodus,
die Schrift dazu habe ich im Dokument per
\setmathfont(Digits,Latin)[Uppercase=Italic,Lowercase=Italic]{Minion Pro}
\setmathfont(Greek)[Uppercase=Regular,Lowercase=Italic]{Minion Pro}
festgelegt. Nun möchte ich innerhalb der Tabellen-Umgebung (\newenvironment{mytable})
es irgendwie hinbekommen, dass Inline-Mathetext dort in einer anderen Schriftart, nämlich
der Myriad Pro, erscheint. Der übrige Inhalt, also z.B. Titel bzw. "Tabellenkörper" (tabular)
wird durch eine einzige fontspec-Anweisung entsprechend behandelt.

Alle Kommandos, auf die ich beim Recherchieren gestoßen bin, scheinen nur global, also
in der Präambel eingebunden, zu greifen, jedenfalls meckert latex das an, wenn ich es
kompiliere.

Irgendwelche Tipps?

Gruß,
casualcoder


Edit:
Bild und Minibeispiel zur Verdeutlichung ergänzt.
\documentclass[parskip=half]{scrreprt}
\usepackage{amsmath}
\usepackage{mathspec}
\usepackage{xltxtra}

%% Beschriftung für Tabellen ...
% [...]

%% Verwendete Schriften
\setmainfont[Ligatures=Common,Numbers=OldStyle]{Minion Pro}
\setmathfont(Digits,Latin)[Uppercase=Italic,Lowercase=Italic]{Minion Pro}
\setmathfont(Greek)[Uppercase=Regular,Lowercase=Italic]{Minion Pro}
\setsansfont[Numbers=OldStyle,Scale=0.80]{Myriad Pro}

\usepackage{tabularx}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}} % zentriert mit Breitenangabe
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}} % linksbündig mit Breitenangabe
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}} % rechtsbündig mit Breitenangabe

\newenvironment{mytable}[1][hbt]{%
    \begin{table}[#1]
        \centering
		  \fontspec[Scale=0.80]{Myriad Pro} % bis auf Mathe!
        \footnotesize
}{%
   \end{table}
} 

\begin{document}

\begin{mytable}[h]
    \caption{Foobar}
	 \label{foobar}
	 \begin{tabular}{C{0.5cm} R{1.1cm} R{1.1cm} R{1.1cm}}
	 	\firsthline
	 	&  $e_{i0}$ & $e_{x\min}$ & $\bar{e}_{0}$\\
	 	\hline
	 	1 & 100.500 & 45.000 & 9.500\\
	 	2 &   8.200 & 42.100 & 20.000\\
	 	\lasthline
	 \end{tabular}\\
\end{mytable}

\end{document}
Dateianhänge
optik_aktuell.png
optik_aktuell.png (6.61 KiB) 1574 mal betrachtet
Zuletzt geändert von casualcoder am Fr 18. Feb 2011, 12:45, insgesamt 1-mal geändert.

casualcoder
Forum-Anfänger
Forum-Anfänger
Beiträge: 20
Registriert: So 13. Feb 2011, 18:30

Beitrag von casualcoder »

Anmerkung:

Den (Inline-)Mathemodus lokal, d.h. innerhalb solch einer mytable-Umgebung auf die Sans-Schrift zu
legen, brauche ich, weil ich nicht weiß, wie ich tiefgestellte Strings wie in der Grafik bzw. \bar{} mit
anderen Mitteln (z.B. fontspec) umsetzen kann. :(

Zwar existiert ein e mit horizontalem Strich drüber als Unicode-Zeichen (allerdings unterscheidet sich die
Optik von der Variante \bar{e}), den Rest der Spaltenbeschriftung bekomme ich aber mit Unicode alleine
nicht umgesetzt ...


Update 1:

Mit der zusätzlichen Präambel-Anweisung
\setmathsf{Myriad Pro}

lässt sich später im Dokument so
$\mathsf{e_{i0}}$

die Schrift Myriad Pro aktivieren.

Problematisch ist aber:
Es funktioniert nur mittelprächtig, im Beispiel werden z.B. skalare Werte, hier die 0, immer noch im
mathrm-Font wiedergegeben, in meinem Fall in Minion Pro.


Update 2/Lösung:
Ein möglicher Weg ist hier erläutert.

Antworten