PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schriftgröße im array



Lebostein
22-10-2010, 08:14
Hallo,

laut Dokumentation handelt es sich beim array um eine Umgebung für den mathematischen Modus. Im mathematischen Modus kann die Schriftgröße ja über \scriptstyle verkleinert werden. Leider hat dieser Befehl keine Auswirkungen auf das array! Eine andere Idee war \scriptsize. Funktioniert super, leider meldet Latex eine Warnung, dass \scriptsize im mathematischen Modus nicht erlaubt ist. Wie bekommt man denn nun sauber die Matrixeinträge kleiner? Es gibt zwar die Umgebung smallmatrix, aber da hab ich Probleme, die Elemente rechtsbündig auszurichten bzw. gleich große Abstände zu generieren. Aus irgend einem Grund akzeptiert smallmatrix die Spaltendefinitionen nicht (basieren nicht alle Matrixumgebungen auf der array-Umgebung?).


\documentclass[a4paper]{article}
\usepackage{array}
\usepackage{amsmath}
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}}

\begin{document}

Mit scriptstyle (funktioniert nicht):
\begin{equation*}
A \frac{L}{H} \cdot \biggl[
{\scriptstyle
\begin{array}{*{8}{R{3mm}}}
-2 & 0 & 0 & -2 & 0 & 0 & 0 & 4 \\
1 & 0 & 0 & -1 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0
\end{array}}
\biggr] \cdot u_x
\end{equation*}

Mit scriptsize (funktioniert, aber Fehlermeldung):
\begin{equation*}
A \frac{L}{H} \cdot \biggl[
{\scriptsize
\begin{array}{*{8}{R{3mm}}}
-2 & 0 & 0 & -2 & 0 & 0 & 0 & 4 \\
1 & 0 & 0 & -1 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0
\end{array}}
\biggr] \cdot u_x
\end{equation*}

Mit smallmatrix (Formatierungsprobleme):
\begin{equation*}
A \frac{L}{H} \cdot \biggl[
\begin{smallmatrix}%{*{8}{R{3mm}}}
-2 & 0 & 0 & -2 & 0 & 0 & 0 & 4 \\
1 & 0 & 0 & -1 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0
\end{smallmatrix}
\biggr] \cdot u_x
\end{equation*}

\end{document}


Danke!

voss
22-10-2010, 08:33
Hallo,

laut Dokumentation handelt es sich beim array um eine Umgebung für den mathematischen Modus. Im mathematischen Modus kann die Schriftgröße ja über \scriptstyle verkleinert werden. Leider hat dieser Befehl keine Auswirkungen auf das array! Eine andere Idee war \scriptsize. Funktioniert super, leider meldet Latex eine Warnung, dass \scriptsize im mathematischen Modus nicht erlaubt ist. Wie bekommt man denn nun sauber die Matrixeinträge kleiner? Es gibt zwar die Umgebung smallmatrix, aber da hab ich Probleme, die Elemente rechtsbündig auszurichten bzw. gleich große Abstände zu generieren. Aus irgend einem Grund akzeptiert smallmatrix die Spaltendefinitionen nicht (basieren nicht alle Matrixumgebungen auf der array-Umgebung?).



\begin{array}{*{8}{>{$\scriptstyle}R{3mm}<{$}}}

Herbert

Lebostein
22-10-2010, 09:07
\begin{array}{*{8}{>{$\scriptstyle}R{3mm}<{$}}}

Herbert
Damit werden schon mal die Einträge kleiner. Leider werden die vertikalen Abstände entsprechend der normalen Schriftgröße belassen...

ellocco
22-10-2010, 09:41
So bekomme ich keine Fehlermeldung:

...
\newcolumntype{S}[1]{>{\raggedleft\ensuremath\scriptstyle\arraybackslash }p{#1}}
...
Mit neuer Spaltendeklaration \textbf{S}:
\begin{equation*}
A \frac{L}{H} \cdot \biggl[
{\scriptsize
\begin{array}{*{8}{S{3mm}}}
-2 & 0 & 0 & -2 & 0 & 0 & 0 & 4 \\
1 & 0 & 0 & -1 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0
\end{array}}
\biggr] \cdot u_x
\end{equation*}

Lebostein
22-10-2010, 15:09
@ellocco: Tschuldige, ich meinte "Warnung", habe aber fälschlicherweise "Fehlermeldung" geschrieben. Der Code von dir produziert exakt die gleiche Warnung wie meine zweite Variante aus dem ersten Beitrag:

LaTeX Font Warning: Command \scriptsize invalid in math mode on input line...

Darf man dass den ignorieren? Was ist denn mit der smallmatrix. Warum kann man denn diese nicht wie ein array formatieren. Scheinbar haben alle Matrizenumgebungen aus amsmath (matrix, bmatrix usw.) dieses Problem, sie akzeptieren keine Spaltenformatierung... gibt es dafür eine Lösung?



\documentclass[a4paper]{article}
\usepackage{amsmath}

\begin{document}

amsmath ist toll!
\begin{equation}
\begin{bmatrix}1&0\\0&1\end{bmatrix}
\end{equation}

amsmath ist ... wie ist das mit der Ausrichtung rechtsbuendig?
\begin{equation}
\begin{bmatrix}-1&0\\0&1\end{bmatrix}
\end{equation}

\end{document}

u_fischer
22-10-2010, 15:27
Viele Warnungen kann man ignorieren. Wenn sie dich aber sehr stört: Bei Herberts Lösung kannst du den Zeilenabstand verringern, indem du \arraystretch lokal änderst. Du kannst auch den Mathemodus z.B. mit einer \mbox verlassen, \scriptsize ausführen, und dann wieder in den Mathemodus wechseln:


\documentclass[a4paper]{article}
\usepackage{array}
\usepackage{amsmath}
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}}

\begin{document}

\begin{equation*}
A \frac{L}{H} \cdot \biggl[
{\renewcommand\arraystretch{0.7}%
\begin{array}{*{8}{>{$\scriptstyle}R{3mm}<{$}}}
-2 & 0 & 0 & -2 & 0 & 0 & 0 & 4 \\
1 & 0 & 0 & -1 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0
\end{array}}
\biggr] \cdot u_x
\end{equation*}

\begin{equation*}
A \frac{L}{H} \cdot \biggl[
\mbox{\scriptsize$%
\begin{array}{*{8}{R{3mm}}}
-2 & 0 & 0 & -2 & 0 & 0 & 0 & 4 \\
1 & 0 & 0 & -1 & 0 & 0 & 0 & 0 \\
0 & 0 & 0 & 0 & 0 & 0 & 0 & 0
\end{array}$}
\biggr] \cdot u_x
\end{equation*}

\end{document}

Lebostein
22-10-2010, 15:38
Vielen Dank Ulrike! Zwei Lösungen, die mich voll und ganz zufrieden stellen.

Oh man, man merkt Latex deutlich an, dass es aus Tausenden von Schnippseln von verschiedenen Autoren, die jeweils andere Herangehensweisen vertreten, über mehrere Jahrzehnte lang zusammengeflickt wurde... jetzt weiß ich auch, warum so viele lieber Abstand davon halten. Eigentlich ne Katastrophe, wenn die Ergebnisse nicht so überzeugend wären...

u_fischer
22-10-2010, 15:48
Oh man, man merkt Latex deutlich an, dass es aus Tausenden von Schnippseln von verschiedenen Autoren, die jeweils andere Herangehensweisen vertreten, über mehrere Jahrzehnte lang zusammengeflickt wurde

Nun, das mag zwar stimmen. Aber bei deinem Beispiel hier sieht man das nicht. Da sieht man nur, dass wenn du 3 Autoren fragst, wie eine Formel auszusehen hat, 6 verschiedene Antworten bekommst - und dass LaTeX so flexibel ist, dass man all diese Versionen auch hinbekommt, wenn auch einige mit etwas mehr Mühe als andere.

ellocco
22-10-2010, 16:00
@ellocco: Tschuldige, ich meinte "Warnung", habe aber fälschlicherweise "Fehlermeldung" geschrieben. Der Code von dir produziert exakt die gleiche Warnung wie meine zweite Variante aus dem ersten Beitrag:

LaTeX Font Warning: Command \scriptsize invalid in math mode on input line...
...

Da war ich zu hastig, jetzt ist mir klar, daß ich da einen gedanklichen Fehler
gemacht habe, Du hattest ja einen Textbefehl in der Matheumgebung und
nicht umgekehrt.
Die zweite Lösung von Ulrike ist ja ganz schön creativ, super!

voss
22-10-2010, 18:01
Oh man, man merkt Latex deutlich an, dass es aus Tausenden von Schnippseln von verschiedenen Autoren, die jeweils andere Herangehensweisen vertreten, über mehrere Jahrzehnte lang zusammengeflickt wurde... jetzt weiß ich auch, warum so viele lieber Abstand davon halten. Eigentlich ne Katastrophe, wenn die Ergebnisse nicht so überzeugend wären...

Nein! Das ist falsch, was du sagst!
LaTeX ist von etwas mehr als einer Handvoll Personen erstellt worden
und amsmath faktisch nur von einer Person!
Du hast lediglich durch TeX die Freiheit _alles_ neu und anders zu machen;
denn du schreibst keinen Text sondern programmierst ihn. Also gibt
es faktisch zu jedem Problem \infty viele Lösungen ...

Herbert