Reduzieren Sie die Größe eines Tikz-Quiver-Diagramms

Reduzieren Sie die Größe eines Tikz-Quiver-Diagramms

Der folgende Tikz-Quiver-Code erscheint zu groß, wenn er in Latex kompiliert wird. Gibt es eine Möglichkeit, ihn zu reduzieren?

Danke

\documentclass{article}
\usepackage{tikz-cd}
\begin{document}

\[\begin{tikzcd}[cramped]
    &&&&&&&&&&& {v_7} \\
    \\
    &&&&&&&&&&& {v_1} \\
    \\
    &&&&&&&&&&& {v_4} \\
    \\
    &&&&&&&&&&& {v_{10}} \\
    \\
    &&&&&&&&& {v_{11}} &&&& {v_{12}} \\
    &&&&&& {v_5} &&&&&&&&&& {v_6} \\
    &&& {v_2} &&&&&&&&&&&&&&&& {v_3} \\
    {v_8} &&&&&&&&&&&&&&&&&&&&&& {v_9}
    \arrow[no head, from=7-12, to=9-10]
    \arrow[no head, from=7-12, to=9-14]
    \arrow[no head, from=9-10, to=9-14]
    \arrow[no head, from=5-12, to=10-7]
    \arrow[no head, from=5-12, to=10-17]
    \arrow[no head, from=10-7, to=10-17]
    \arrow[no head, from=3-12, to=11-4]
    \arrow[no head, from=3-12, to=11-20]
    \arrow[no head, from=11-4, to=11-20]
    \arrow[no head, from=1-12, to=12-23]
    \arrow[no head, from=1-12, to=12-1]
    \arrow[no head, from=12-1, to=12-23]
\end{tikzcd}\]

\end{document}

Bildbeschreibung hier eingeben

Antwort1

\documentclass[tikz, border=1cm]{standalone}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[cramped, sep=tiny]
&&&&&&&&&&& {v_7} \\
\\
&&&&&&&&&&& {v_1} \\
\\
&&&&&&&&&&& {v_4} \\
\\
&&&&&&&&&&& {v_{10}} \\
\\
&&&&&&&&& {v_{11}} &&&& {v_{12}} \\
&&&&&& {v_5} &&&&&&&&&& {v_6} \\
&&& {v_2} &&&&&&&&&&&&&&&& {v_3} \\
{v_8} &&&&&&&&&&&&&&&&&&&&&& {v_9}
\arrow[no head, from=7-12, to=9-10]
\arrow[no head, from=7-12, to=9-14]
\arrow[no head, from=9-10, to=9-14]
\arrow[no head, from=5-12, to=10-7]
\arrow[no head, from=5-12, to=10-17]
\arrow[no head, from=10-7, to=10-17]
\arrow[no head, from=3-12, to=11-4]
\arrow[no head, from=3-12, to=11-20]
\arrow[no head, from=11-4, to=11-20]
\arrow[no head, from=1-12, to=12-23]
\arrow[no head, from=1-12, to=12-1]
\arrow[no head, from=12-1, to=12-23]
\end{tikzcd}
\end{document}

Dreieckiges kumulatives Diagramm

Antwort2

Hier ist eine andere Möglichkeit, dies zu tun.

Ergebnis

Der Code am Ende zeigt nur ein Dreieck, das funktionieren würde, wenn Sie es in einer tikzpictureUmgebung verwenden würden:

% ~~~ just one triangle ~~~~~~~~~~~~~~~~~~~~~~~
    \draw ( 90:1) node[txt]{$v_1$} -- 
          (200:2) node[txt]{$v_2$} -- 
          (340:2) node[txt]{$v_3$} -- cycle;
  • Polarkoordinaten verwenden
  • Zeichnen Sie von (90:1) über (200:2) bis (340:2) und schließen und beenden Sie ( ;) diesen Pfad
  • Setzen Sie jedes Mal ein , nodewenn Sie an der nächsten Position sind (achten Sie auf fehlende \)
  • Verwenden Sie für diesen Knoten einen Stil, der nur etwas weiße Farbe füllt
  • Platzieren Sie einen Text, hier im Mathematikmodus$ .. $

Wenn man ein zweites zeichnet UND im Hinblick auf Refactoring darüber nachdenkt, erscheint die Verwendung eines TeX-Makros sinnvoll:

  • Tikz\deftendenziell vorzuziehen \newcommand, sicherlich aus einem Grund
  • um die Dinge einfach zu halten, übergebe ich nur die vertikale Länge und 3 Indizes (das könnte sicherlich noch weiter verfeinert werden)
  • wodurch dasselbe Dreieck wie folgt abstrahiert wird:
\def\triag#1#2#3#4{% y-length, 3 indices
    \draw ( 90:#1  ) node[txt]{$v_{#2}$} -- %
          (200:2*#1) node[txt]{$v_{#3}$} -- %
          (340:2*#1) node[txt]{$v_{#4}$} -- cycle;}%

Rufen Sie diese Dreiecke abschließend so oft auf, wie Sie möchten, und zwar innerhalb einer tikzpictureUmgebung, die sich in eine Reihe der genannten \draw ... ;Pfade erweitert:

\documentclass[10pt,border=3mm,tikz]{standalone}

\def\triag#1#2#3#4{% y-length, 3 indices
    \draw ( 90:#1  ) node[txt]{$v_{#2}$} -- %
          (200:2*#1) node[txt]{$v_{#3}$} -- %
          (340:2*#1) node[txt]{$v_{#4}$} -- cycle;}%

\begin{document}
 \begin{tikzpicture}[
    txt/.style={fill=white},
 ]
    \triag{.5}{10}{11}{12}
    \triag{1  }{4}{5}{6}
    \triag{1.5}{1}{2}{3}
    \triag{2  }{7}{8}{9}
 \end{tikzpicture}
\end{document}

% ~~~ just one triangle ~~~~~~~~~~~~~~~~~~~~~~~
%   \draw ( 90:1) node[txt]{$v_1$} -- 
%         (200:2) node[txt]{$v_2$} -- 
%         (340:2) node[txt]{$v_3$} -- cycle;

% ~~~ later refactored using a TeX macro \triag ~~~

verwandte Informationen