Seite 1 von 2

Schrift für table ändern

Verfasst: Mi 16. Feb 2011, 22:20
von casualcoder
Hallo zusammen,

nachdem ich goLaTeX eine Menge guter Ideen im Zusammenhang mit Tabellen entnommen habe, habe ich ein wenig herumprobiert
und bin jetzt in der Situation, dass ich Tabellen in meinem Dokument generell in der vordefinierten Nichtserifenschrift (das wäre die
Myriad Pro) setzen möchte, und zwar, und das ist das Problem daran, auch für Inline-Mathetext innerhalb der tabular-Umgebung.

Ich habe probeweise mit fontspec-Anweisungen experimentiert, aber das ist
a) unübersichtlich und
b) umständlich, da für jede einzelne Tabelle durchzuführen.
(Auch bleibt der Inline-Mathetext so unverändert.)

Das geht sicherlich eleganter.

Folgendes Minibeispiel hierzu:
\documentclass[parskip=half]{scrreprt}
\usepackage{amsmath}
\usepackage{mathspec}
\usepackage{xltxtra}

\defaultfontfeatures{Mapping=tex-text}
\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[Scale=MatchLowercase,Numbers=OldStyle]{Myriad Pro}

\usepackage{polyglossia}
\setmainlanguage[spelling=new, latesthyphen=true]{german}

\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 

\usepackage{caption}[2010/01/14]
% labelfont noch um "sf" (=Sans Serif Font) ergänzen
\captionsetup{labelfont={small,bf}, textfont={small}, tablename=Tab., format=plain}

\begin{document}
\renewcommand{\arrayrulewidth}{0.25pt}

\begin{table}[h]
\fontspec{Myriad Pro} % nur diese Schrift verwenden
\centering
\footnotesize
	\caption{Minimalbeispiel-Tabelle}
\begin{tabular}
{ C{0.5cm} R{1.0cm} R{1.0cm} R{1.0cm} R{1.0cm} R{1.0cm} R{1.0cm} }
\firsthline
\textit{\#} & $a_{1}$ & $b_{1}$ & $c_{1}$\\
\hline
1 & 100.500 & 45.000 & 9.500\\
2 & 80.200 & 42.100 & 20.000\\
\lasthline
\end{tabular}\\
\vspace{0.1cm}\scriptsize Quellenangabe mit Jahresangabe hier
\end{table}

\end{document}
Wie würdet ihr:

1. Die Schriftart für Table (wobei ich caption separat anpasse) und
2. Inline-Mathetext innerhalb der Tabular-Umgebung

auf Myriad Pro setzen?

Vielen Dank für eure Tipps!

casualcoder

Verfasst: Mi 16. Feb 2011, 23:09
von Sepp99
Bei den Komaklassen geht das imho so (nur Beispiele!):
\setkomafont{captionlabel}{\bfseries}	%Abb, Tab fett
\addtokomafont{caption}{\footnotesize}%Schrift für Abb, Tab
\setkomafont{captionlabel}{\bfseries\sffamily}%Abb, Tab fett
Näheres in der KOMAscript-Anleitung (scrguide) unter den oa. Stichworten.

Gruß, Sepp.-[/code]

Verfasst: Do 17. Feb 2011, 11:59
von casualcoder
Sepp99 hat geschrieben:Bei den Komaklassen geht das imho so (nur Beispiele!):
\setkomafont{captionlabel}{\bfseries}	%Abb, Tab fett
\addtokomafont{caption}{\footnotesize}%Schrift für Abb, Tab
\setkomafont{captionlabel}{\bfseries\sffamily}%Abb, Tab fett
Hm, welche Vorteile hat diese Variante?
Wie ich herausbekommen habe, bewirkt die geänderte Zeile
\captionsetup{labelfont={small,bf,sf}, textfont={small,sf}, tablename=Tab., format=plain}
aus obigem Minibeispiel genau das.

Aktuell sieht das Ergebnis aus wie im angefügten Bild.
Mit der caption bin ich zufrieden.

Als störend empfinde ich die rot eingekreisten Begriffe, die ich leider als Inline-Mathetext setzen muss.

Die Table-Umgebung (oranger Kasten), soll mittels globaler Anweisung auf Myriad Pro eingestellt werden.
Die Zeile \fontspec{Myriad Pro} nach jedem \begin{table} ... ist mir zu fehleranfällig, gerade für größere Dokumente.

Weißt du eine Möglichkeit das umzusetzen?

Danke,
casualcoder

Verfasst: Do 17. Feb 2011, 14:02
von Sepp99
Das sieht mir aber eher nach einemMathefont-Problem aus.
Sepp.-

Verfasst: Do 17. Feb 2011, 14:31
von iTob
Das hat er ja auch gesagt ;)

Als Idee: Du könntest dir eine neue Tabellenumgebung definieren, in der zu Anfang die Umstellungen gemacht werden. Dann kannst du später alles global ändern oder eben auch nicht …
Für deine Mathe-Schrift-problem hab ich aber auch keine Lösung. Kenne mich mit XeLaTeX aber auch gar nicht aus.

Verfasst: Do 17. Feb 2011, 15:18
von casualcoder
Hallo iTob,

genau so wird es wohl gehen, damit ich das "Konstrukt" gesondert ansprechen kann,
etwa Schrift-Eigenschaften. Nur ist mir die LaTeX-Syntax dafür nicht vertraut genug.

Eigentlich macht (Xe)LaTeX ja exakt das, was ich ihm auftrage:
  • Minion Pro für regulären Text & Mathematisches
  • Myriad Pro für Sans
Dummerweise kann ich den Tabellenkopf nur mittels Inline-Mathe korrekt beschriften;
d.h. Buchstabe + optional Ziffer[n] im Index sowie \bar{...} für andere Angaben ...
Ich weiß nicht, wie ich das mit fontspec-Optionen umsetzen könnte.

In CSS-Syntax ausgedrückt; was ich suche, ist folgendes:
table math-mode{ font-family: Myriad Pro; }

Gruß,
casualcoder

Verfasst: Do 17. Feb 2011, 17:13
von iTob
Also für die eigene Umgebung schlage ich vor, eine „neue“ Gleitumgebung zu definieren
\newenvironment[1][hbt]{mytable}{%
    \begin{table}[#1]
        \centering%?
        % Fontkram
}{%
    \end{table}
}
% im Dok. ...
\begin{mytable}[bt]% oder eben ohne opt. Arg.
    \begin{tabular}{ccc}
        % Inhalt
    \end{tabular}
    \caption{...}\label
\end{mytable}
(ungetestet …)

Und darin müsstest du dann doch mit fontspec auch die Matheschrift ändern können oder nicht?!

Grüße
Tobi

Verfasst: Do 17. Feb 2011, 18:09
von casualcoder
Hallo iTob,

danke für die Antwort! Hab deine Vorgabe nach Doktor-Guttenberg-Manier plagiiert und
mein Minibeispiel folgendermaßen angepasst:
\documentclass[parskip=half]{scrreprt}
\usepackage{amsmath}
\usepackage{mathspec}
\usepackage{xltxtra}

\usepackage{caption}[2010/01/14]
\captionsetup{labelfont={small,bf,sf}, textfont={small,sf}, tablename=Tab., format=plain}

\defaultfontfeatures{Mapping=tex-text}
\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[Scale=MatchLowercase,Numbers=OldStyle]{Myriad Pro} 

\usepackage{polyglossia}
\setmainlanguage[babelshorthands=true, spelling=new, latesthyphen=true]{german}

\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[1][hbt]{mytable}{%
	\begin{table}[#1]
		\centering
		\footnotesize
		% Hier Fontkram:
		\fontspec{Myriad Pro} % deckt bis auf Mathe alles ab
}{%
	\end{table}
}

\begin{document}

%\renewcommand{\arrayrulewidth}{0.25pt}
%\renewcommand{\arraystretch}{1.1}

\begin{mytable}[h]
    \caption{Minimalbeispiel-Tabelle 2}
	 \label{foo}
    \begin{tabular}{ C{0.5cm} R{1.0cm} R{1.0cm} R{1.0cm} R{1.0cm} R{1.0cm} R{1.0cm} }
        % Inhalt
			\firsthline
			\textit{\#}   &	$a_{1}$ &	$b_{1}$ &  $c_{1}$\\
			\hline
							1 &	100.500 &    45.000 &	 9.500\\
							2 &	 80.200 &	 42.100 &	20.000\\
			\lasthline
	 \end{tabular}\\
	 %\vspace{0.1cm}\tiny Quellenangabe mit Jahresangabe hier
\end{mytable}

\end{document}
Kurzfassung: Es läuft nicht (fehlerlos) durch.

Langfassung:

! Missing number, treated as zero.
! You can't use `macro parameter character #' in vertical mode.
! LaTeX Error: Missing \begin{document}.
! You can't use `macro parameter character #' in horizontal mode.
! You can't use a prefix with `the character 0'.
! LaTeX Error: Missing \begin{document}.

Zusätzlich findet sich in der minbsp_golatex.log der Fehlerhinweis
! Illegal parameter number in definition of \@fps.

Bizarrerweise erhalte ich die Fehlerausgabe im TeXnicCenter aber nur, wenn ich die (wohl korrekte)
fontspec-Anweisung auskommentiere, sonst erscheint keine Ausgabe, und die Kompilierung hängt
sich stillschweigend auf ...

Irgendwelche Tipps für mich, woran das liegen könnte?

Danke,
casualcoder

Verfasst: Do 17. Feb 2011, 18:44
von iTob
Kann ja auch nicht gehen, wenn ich dir die Umgebung falsch definiere :oops:

So muss das:
\documentclass[parskip=half]{scrreprt} 
\usepackage{amsmath} 
\usepackage{mathspec} 
\usepackage{xltxtra} 

\usepackage{caption}[2010/01/14] 
\captionsetup{labelfont={small,bf,sf}, textfont={small,sf}, tablename=Tab., format=plain} 

\defaultfontfeatures{Mapping=tex-text} 
\setmainfont[Ligatures=Common,Numbers=OldStyle]{Georgia} 
\setmathfont(Digits,Latin)[Uppercase=Italic,Lowercase=Italic]{Georgia} 
\setmathfont(Greek)[Uppercase=Regular,Lowercase=Italic]{Georgia} 
\setsansfont[Scale=MatchLowercase,Numbers=OldStyle]{Arial Unicode MS}


\usepackage{polyglossia} 
\setmainlanguage[babelshorthands=true, spelling=new, latesthyphen=true]{german} 

\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 
        % Fontkram
	    \fontspec{Arial Unicode MS} % deckt bis auf Mathe alles ab   
        \footnotesize
}{% 
   \end{table} 
} 

\begin{document} 

%\renewcommand{\arrayrulewidth}{0.25pt} 
%\renewcommand{\arraystretch}{1.1} 

\begin{mytable}[h] 
    \caption{Minimalbeispiel-Tabelle 2} 
    \label{foo} 
    \begin{tabular}{C{0.5cm}R{1.0cm}R{1.0cm}R{1.0cm}R{1.0cm}R{1.0cm}R{1.0cm}} 
        % Inhalt 
         \firsthline 
         \textit{\#}   &   $a_{1}$ &   $b_{1}$ &  $c_{1}$\\ 
         \hline 
                     1 &   100.500 &    45.000 &    9.500\\ 
                     2 &    80.200 &    42.100 &   20.000\\ 
         \lasthline 
    \end{tabular}\\ 
    %\vspace{0.1cm}\tiny Quellenangabe mit Jahresangabe hier 
\end{mytable} 

\end{document}
(Deine Schriften hab ich nicht, daher hab ich andere genommen)

Für dein Mathe-Schrift-Problem ist mir aber auch noch keine Lösung eingefallen. Es muss doch möglich sein, die Matheschrift lokal zu ändern, so wie es mit der Hauptschrift auch geht …

Als schlechter Workaround:
\textit{a}\textsubscript{2} statt $a_2$

Tobi

Verfasst: Do 17. Feb 2011, 19:17
von casualcoder
Danke iTob,

das sieht schon sehr gut aus! :)

Nur mit dem Mathemodus, das ist wohl eine härtere Nuss ...

Damit du eine Vorstellung hast, welche Symbole ich benötige habe ich mal ein paar eingesetzt.
Außerdem, das fiel mir erst jetzt auf, wird aus unerfindlichen Gründen der Zahlenwert 8.200
nicht korrekt rechts ausgerichtet, bizarr.

Liegt allerdings nicht (nur) an der mytable-Umgebung ...

Vielen Dank noch mal, ich probier mal ein paar Dinge aus...

casualcoder