PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schriftgröße von Matrizen ändern



AureusPhoenix
01-12-2011, 19:15
Hi Leute,
ich hab da ein sehr bescheidenes Problem. Und zwar scheint sich die Schriftgröße in Matrizen nicht mittels \scriptstyle oder \scriptscriptstyle verkleinern zu lassen.

Ich habe bereits ein paar Dinge versucht.
Es scheint so zu sein, das matrix bzw. pmatrix auf die Textschriftgröße zugreifen. Wenn ich also vor meiner Matheumgebung die Schriftgröße runter setze, dann wird auch der Inhalt der Matrix kleiner. Leider aber auch die Formel-Nummerierung und alles weitere in der Formel. Was funktionieren würde ist, vor jedes Element der Matrix ein \scriptstyle zu setzen. Da würde ich aber blöd werden bei locker 20 4x4 Matrizen.

Hat einer von euch ne Lösung, wie ich \scriptstyle auf die gesamte Matrix-Umgebung anwenden kann?

Schonmal vielen Dank!
Grüße Aureus

PS: Hier noch schnell das obligatorische Minimalbeispiel zum probieren


\documentclass[]{scrartcl}

\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}


\begin{document}

Ohne was:
\begin{align}
\begin{pmatrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & 0 & 1 \\
\end{pmatrix}
\end{align}

\bigskip

Funktioniert nicht (nur die Klammern ändern ein wenig ihre Gestalt):
\begin{align}
\scriptscriptstyle
\begin{pmatrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & 0 & 1 \\
\end{pmatrix}
\end{align}

\bigskip

Jedes Element einzeln ändern würde gehen:
\begin{align}
\begin{pmatrix}
1 & 0 & 0 \\
0 & \scriptscriptstyle 1 & 0 \\
0 & 0 & 1 \\
\end{pmatrix}
\end{align}

\bigskip

Schriftgröße vorher ändern ginge auch (mit entsprechenden Nachteilen)
\tiny
\begin{align}
\begin{pmatrix}
1 & 0 & 0 \\
0 & \scriptscriptstyle 1 & 0 \\
0 & 0 & 1 \\
\end{pmatrix}
\end{align}

\end{document}

AureusPhoenix
05-12-2011, 12:10
Hat keiner ne Idee ???

hakaze
05-12-2011, 12:25
MIr zwar nicht so ganz klar, warum du alles so klein haben möchtest, aber möglicherweise reicht schon smallmatrix (aus amsmath).
Ansonsten hat Herberts "Standard"-Werk (http://www.tex.ac.uk/tex-archive/info/math/voss/mathmode/Mathmode.pdf) vielleicht noch 'ne Lösung für dich.

AureusPhoenix
05-12-2011, 13:57
Mmh ... also so richtig hat mich das auch nicht weiter gebracht.
Ich denke, das man mit den *-Befehlen aus dem mathtools Paket was anfangen könnte. Da man da die Spaltenausrichtung direkt beeinflussen kann, muss es doch sicher auch irgendwie möglich sein, dort die Schriftgröße zu übergeben.

Eine andere, eher Quick-and-Dirty Variante, die ich ausprobiert habe, ist folgende:

Ich hab die Matrix einfach mittels scalebox um einen gewissen Faktor skaliert. Leider scheitere ich damit, mir eine neue Matrixumgebung zu schreiben, die das ein wenig abkürzt. Ich hab versucht das mit NewEnviron zu machen, da ich so das scalebox einfach einbauen kann, aber leider ohne Erfolg. Hier ein entsprechendes Minimalbeispiel:



\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{environ}
\usepackage{graphicx}

\NewEnviron{mymatrix}{\scalebox{0.5}{\ensuremath{\ begin{pmatrix}\BODY\end{pmatrix}}}}

\begin{document}

\begin{align}
\intertext{Funktioniert:}
\scalebox{0.5}{\ensuremath{%
\begin{pmatrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & 0 & 1
\end{pmatrix}}}\bigskip%
%
\intertext{Funktioniert nicht:}
%\begin{mymatrix}
%1 & 0 & 0 \\
%0 & 1 & 0 \\
%0 & 0 & 1
%\end{mymatrix}
\end{align}

\end{document}


Weis jemand warum das nicht funktioniert?
Bzw. hat noch jemand ne Idee, mit der ich vielleicht über das erwähnte mathtools-Paket was machen kann? Die allerletzte Option wäre dann meiner Meinung nach, die Definitionen aus amsmath raus zu kopieren und irgendwie die Schriftgröße als optionales Argument einzubauen.

Nochmal vielen Dank!
Grüße

hakaze
05-12-2011, 15:14
So, ich auch nochmal ein bisschen gespielt... wie es aussieht, ändert \scriptsciptstyle nur das nächstfolgende Zeichen. "Normale" Fontgrößenänderungen außerhalb der Matheumgebung ändern auch die Größe der Label.
Ich habe das mal so gelöst:
\begin{align} \tiny
\begin{pmatrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & 0 & 1 \\
\end{pmatrix}
\end{align}Das zwar auch nicht soo schön und gibt eine Warnung wegen der Verwendung von \tiny innerhalb der Matheumgebung. Es führt aber zu dem Ergebnis, was du wolltest (oder?).

EDIT: Dank Stackexchange (http://tex.stackexchange.com/questions/24076/how-to-properly-resize-a-matrix) bin ich noch auf diese Lösung (ohne Warnung im Log) gestoßen:
\begin{align}\mbox{\tiny$
\begin{pmatrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & 0 & 1 \\
\end{pmatrix}$}
\end{align}

AureusPhoenix
05-12-2011, 15:31
Super! Danke, das hilft mir schonmal weiter.

Hat noch jemand ne Idee zu meinem Problem mit NewEnviron? Dann könnte man das nämlich auch etwas einfacher in form einer "mymatrix"-Umgebung schreiben.