Geschweifte Klammern um Teile einer Matrix setzen

Tabellen und Grafiken erstellen und anordnen


Lorenzo von Mattahorn
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Di 24. Mär 2020, 12:45

Geschweifte Klammern um Teile einer Matrix setzen

Beitrag von Lorenzo von Mattahorn »

Hallo,

Ich habe mir die Frage gestellt, wie ich um eine Matrix geschweifte Klammern setzen kann. Mein Beispiel ist unten angegeben. Ich würde gerne über die Matrix zwei geschweifte Klammern setzen, zum einen über den Teil A ... A und zum anderen über den Teil L ... L.
Ebenso würde ich das ganze gerne rechts neben der Matrix machen, um den Block der M's zu beschriften.
Kann mir da vielleicht jemand weiterhelfen?

$
\left(
\begin{array}{cccccccc}
S & S & A & ... & A & L & ... & L \\
S & A & A & ... & A & L & ... & L \\
S & A & A & ... & A & L & ... & L \\
\vdots & \vdots & \vdots & \ & \vdots & \vdots & & \vdots \\
S & A & A & ... & A & L & ... & L \\
K & K & K & ... & K & M & ... & M \\
\vdots & \vdots & \vdots & \ & \vdots & \vdots & & \vdots \\
K & K & K & ... & K & M & ... & M \\
\end{array}
\right)
$
Zuletzt geändert von Lorenzo von Mattahorn am Di 24. Mär 2020, 20:56, insgesamt 2-mal geändert.

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Zumindest die waagerechten Klammern können auch ohne pgf/TikZ und dessen Bibliotheken eingefügt werden. Meine Ergänzung Deines unvollständigen Beispiels zeichnet eine der gewünschten Klammern mithilfe der erwähnten Unterstützung:
\documentclass[border=8mm]{standalone}
\usepackage{mathtools}% lädt amsmath
\usepackage{tikz}
\usetikzlibrary{tikzmark,decorations.pathreplacing}

\begin{document}
$
\begin{pmatrix}
S & S & \tikzmarknode{al}{A} & \dots & \tikzmarknode{ar}{A} & L & \dots & L \\
S & A & A & \dots & A & L & \dots & L \\
S & A & A & \dots &/A & L & \dots & L \\
\vdots & \vdots & \vdots & \ & \vdots & \vdots & & \vdots \\
S & A & A & \dots & A & L & \dots & L \\
K & K & K & \dots & K & M & \dots & M \\
\vdots & \vdots & \vdots & \ & \vdots & \vdots & & \vdots \\
K & K & K & \dots & K & M & \dots & M \\
\end{pmatrix}
$
\begin{tikzpicture}[
    overlay, 
    remember picture, 
    decoration={brace, amplitude=5pt}, 
%    thick
]
\draw [decorate, transform canvas={yshift=2pt}] 
    (al.north)  -- node [above=5pt] {Text} (ar.north)
;
\end{tikzpicture}
\end{document} 

Lorenzo von Mattahorn
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Di 24. Mär 2020, 12:45

Beitrag von Lorenzo von Mattahorn »

Vielen Dank für die Antwort!
Bleibt nur die Frage wie das mit den senkrechten geht :)

Lorenzo von Mattahorn
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Di 24. Mär 2020, 12:45

Zufriedenstellend gelöst

Beitrag von Lorenzo von Mattahorn »

Mit der Hilfe des usepackage blockarray habe ich mir das alles zusammengebastelt.
Danke nochmal für den Tipp mit Tikz.

[code]
\documentclass[11pt, footsepline=false]{scrartcl}
\usepackage{mathtools}% lädt amsmath
\usepackage{tikz}
\usepackage{blkarray}
\usetikzlibrary{tikzmark,decorations.pathreplacing}

\begin{document}
$
\begin{blockarray}{ccccccccc}
\begin{block}{(cccccccc)c}
S & S & \tikzmarknode{xxx}{S} & \dots & \tikzmarknode{xxxx}{S} & \tikzmarknode{yyy}{S} & \dots & \tikzmarknode{yyyy}{S} & \ \\
S & S & S & \dots & S & S & \dots & S & \ \\
S & S & S & \dots & S & S & \dots & S & \tikzmarknode{zzz}{ \ } \\
\vdots & \vdots & \vdots & \ & \vdots & \vdots & & \vdots & \ \\
S & S & S & \dots & S & S & \dots & S & \tikzmarknode{zzzz}{ \ } \\
S & S & S & \dots & S & S & \dots & S & \tikzmarknode{jjj}{ \ } \\
\vdots & \vdots & \vdots & \ & \vdots & \vdots & & \vdots & \ \\
S & S & S & \dots & S & S & \dots & S & \tikzmarknode{jjjj}{ \ } \\
\end{blockarray}
$
\begin{tikzpicture}[
overlay,
remember picture,
decoration={brace, amplitude=5pt},
% thick
]
\draw [decorate, transform canvas={yshift=3pt}]
(xxx.north) -- node [above=5pt] {Text} (xxxx.north)
;
\end{tikzpicture}
\begin{tikzpicture}[
overlay,
remember picture,
decoration={brace, amplitude=5pt},
% thick
]
\draw [decorate, transform canvas={yshift=3pt}]
(yyy.north) -- node [above=5pt] {Text} (yyyy.north)
;
\end{tikzpicture}
\begin{tikzpicture}[
overlay,
remember picture,
decoration={brace, amplitude=5pt},
% thick
]
\draw [decorate, transform canvas={yshift=2pt}]
(zzz.north) -- node [right=5pt] {Text} (zzzz.north)
;
\end{tikzpicture}
\begin{tikzpicture}[
overlay,
remember picture,
decoration={brace, amplitude=5pt},
% thick
]
\draw [decorate, transform canvas={yshift=2pt}]
(jjj.north) -- node [right=5pt] {Text} (jjjj.north)
;
\end{tikzpicture}
\end{document}
[/code]

Sorry, dass das mit Code nicht funktioniert, bin wohl zu dumm dafür.
Zuletzt geändert von Lorenzo von Mattahorn am Fr 27. Mär 2020, 14:48, insgesamt 1-mal geändert.

Gast

Beitrag von Gast »

Der Anfangstag wird immer ohne / geschrieben, also [code]Hier steht der Code[/code] und nicht [/code]Hier steht der Code[/code]. Siehe auch: Wie kann ich Code in meinem Beitrag hervorheben?

Und wenn eine Frage erledigt ist und auch die Antwort genannt wurde, wäre es schön, wenn du auch selbst den Status passend setzen würdest, was ich hiermit getan habe.

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

In Deinem Fall wäre die Beschäftigung mit den Tutorien in der Dokumentation von pgf/TikZ sinnvoll. Die Dokumentation von tikzmark kann Dir helfen, zu verstehen, was \tikzmarknode macht.

Du brauchst die Umgebung tikzpicture nur einmal. Wenn man bei einem Knoten eine Himmelsrichtung ansprechen kann, dann wird es wohl auch noch andere geben.

Antworten