Bemerkungen

Bemerkungen

Wie kann ich den folgenden Matrixtyp zeichnen, ohne die horizontale Ausrichtung der Spalteneinträge zu ändern:

|   c11 c12 c13   c14   c15 c16   c17 | c18 c19 | |
|   c21 c22 c23   c24 | c25 c26 | c27   c28 c29   |
|   c31 c32 c33   c34 | c35 c36 | c37   c38 c39   |
| | c41 c42 c43 | c44   c45 c46   c47   c48 c49   |

Bemerkung: Innerhalb der Hauptmatrix gibt es drei Untermatrizen:

Untermatrix 1: c18 bis c19
Untermatrix 2: c25 bis c36
Untermatrix 3: c41 bis c43

wobei |als große Klammern (und angezeigt wird ).

Dieses Problem unterscheidet sich von Matrix in einer Matrix.

Antwort1

Bemerkungen

Ich hoffe, ich habe Ihre Erklärung richtig verstanden.

Mithilfe einer bestimmten \tikzmarkTikZ calligraphy-Bibliothek von Andrew Stacey können Sie die folgende Ausgabe erzielen. Sie müssen den Vorgang latexmehrere Male wiederholen, um die richtige Positionierung zu erzielen.

Implementierung

\documentclass{standalone}
\usepackage{amsmath,tikz}
\usetikzlibrary{decorations,calligraphy}
\newcommand\tikzmark[2]{\tikz[remember picture,baseline=(#1.base)]{\node[inner sep=0pt] (#1) {#2};}}
\begin{document}
$
\begin{pmatrix}
    c11  & c12 & c13  & c14 & c15                   & c16                   & c17 & (c18 & c19) \\
    c12  & c22 & c23  & c24 & \tikzmark{c25}{$c25$} & \tikzmark{c26}{$c26$} & c27 & c28  & c29  \\
    c13  & c32 & c33  & c34 & \tikzmark{c35}{$c35$} & \tikzmark{c36}{$c36$} & c37 & c38  & c39  \\
    (c14 & c42 & c43) & c44 & c45                   & c46                   & c47 & c48  & c49  \\
\end{pmatrix}
$
\begin{tikzpicture}[remember picture,overlay]
    \draw[thick,decorate,decoration={calligraphic straight parenthesis}] (c35.south west) -- (c25.north west);
    \draw[thick,decorate,decoration={calligraphic straight parenthesis}] (c26.north east) -- (c36.south east);
\end{tikzpicture}
\end{document}

Ausgabe

Bildbeschreibung hier eingeben


Mit der calcBibliothek können Sie den schlechten Abstand für die TikZ-Klammern kompensieren, indem Sie einen Versatz von .2emwie in hinzufügen

\begin{tikzpicture}[remember picture,overlay]
    \draw[thick,decorate,decoration={calligraphic straight parenthesis}] ($(c35.south west)+(-.2em,0)$) -- ($(c25.north west)+(-.2em,0)$);
    \draw[thick,decorate,decoration={calligraphic straight parenthesis}] ($(c26.north east)+(.2em,0)$) -- ($(c36.south east)+(.2em,0)$);
\end{tikzpicture}

das erzeugt

Bildbeschreibung hier eingeben


Im Hinblick auf den Kommentar von Christopher Creutzig hier eine weitere Lösung (unter Verwendung von tikzmark), bei der keine Klammern in die Matrix eingegeben werden müssen.

\documentclass{standalone}
\usepackage{amsmath,tikz}
\usetikzlibrary{calc,decorations,calligraphy}
\newcommand\tikzmark[2]{\tikz[remember picture,baseline=(#1.base)]{\node[inner sep=0pt] (#1) {#2};}}
\begin{document}
$
\begin{pmatrix}
    c11                   & c12 & c13                   & c14 & c15                   & c16                   & c17 & \tikzmark{c18}{$c18$} & \tikzmark{c19}{$c19$} \\
    c12                   & c22 & c23                   & c24 & \tikzmark{c25}{$c25$} & \tikzmark{c26}{$c26$} & c27 & c28                   & c29                   \\
    c13                   & c32 & c33                   & c34 & \tikzmark{c35}{$c35$} & \tikzmark{c36}{$c36$} & c37 & c38                   & c39                   \\
    \tikzmark{c14}{$c14$} & c42 & \tikzmark{c43}{$c43$} & c44 & c45                   & c46                   & c47 & c48                   & c49                   \\
\end{pmatrix}
$
\begin{tikzpicture}[remember picture,overlay]
    \draw[thick,decorate,decoration={calligraphic straight parenthesis}] ($(c35.south west)+(-.2em,0)$) -- ($(c25.north west)+(-.2em,0)$);
    \draw[thick,decorate,decoration={calligraphic straight parenthesis}] ($(c26.north east)+(.2em,0)$) -- ($(c36.south east)+(.2em,0)$);
    \node[left=.2em] at (c14) {$($};
    \node[left=.2em] at (c18) {$($};
    \node[right=.2em] at (c19) {$)$};
    \node[right=.2em] at (c43) {$)$};
\end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben

Antwort2

Das folgende MWE fügt die Klammern (..) in der entsprechenden Größe ein:

Bildbeschreibung hier eingeben

\documentclass{article}
\begin{document}
\[
  \left(\begin{array}{@{\hspace*{1ex}}*{9}{c}@{\hspace*{1ex}}}
    c_{11} & c_{12} & c_{13} & c_{14} & c_{15} & c_{16} & c_{17} & \llap{$\bigl($}c_{18} & c_{19}\rlap{$\bigr)$} \\
    c_{21} & c_{22} & c_{23} & c_{24} & \llap{\raisebox{\dimexpr\ht\strutbox-\height}[0pt][0pt]{$\biggl($}}c_{25} & 
      c_{26}\rlap{\raisebox{\dimexpr\ht\strutbox-\height}[0pt][0pt]{$\biggr)$}} & c_{27} & c_{28} & c_{29} \\
    c_{31} & c_{32} & c_{33} & c_{34} & c_{35} & c_{36} & c_{37} & c_{38} & c_{39} \\
    \llap{$\bigl($}c_{41} & c_{42} & c_{43}\rlap{$\bigr)$} & c_{44} & c_{45} & c_{46} & c_{47} & c_{48} & c_{49}
  \end{array}\right)
\]
\end{document}

Durch Überlappung kann der horizontale Abstand beibehalten werden, während die Größe der Klammern mithilfe ihrer \big*-Äquivalente angepasst wird.

Antwort3

Mit {pNiceMatrix}of nicematrixund dem integrierten Befehl \SubMatrix.

\documentclass{article}
\usepackage{nicematrix}

\begin{document}
$\begin{pNiceMatrix}[margin]
c11 & c12 & c13 & c14 & c15 & c16 & c17 & c18 & c19 \\
c12 & c22 & c23 & c24 & c25 & c26 & c27 & c28 & c29 \\
c13 & c32 & c33 & c34 & c35 & c36 & c37 & c38 & c39 \\
c14 & c42 & c44 & c45 & c46 & c47 & c48 & c48 & c49 
\CodeAfter
  \SubMatrix({1-7}{1-8})
  \SubMatrix({2-5}{3-6})
  \SubMatrix({4-1}{4-3})
\end{pNiceMatrix}$
\end{document}

Ausgabe des obigen Codes

verwandte Informationen