Es gibt viele Beispiele für das Nebenprodukt in Tikz mit geraden Kanten, ich kann jedoch keines finden (das funktioniert) oder ohne ein spezielles Paket (außer Tikz) für das Produkt. Ich möchte nur in der Lage sein, dieses Bild einesProduktin Tikz oder möglicherweise einer anderen Methode, die leicht zu verstehen ist, um bei Bedarf Pfeile zu aktualisieren und hinzuzufügen.
Ich habe versucht, das Folgende in das Diagramm umzuwandeln, das ich gerne hätte, aber alle Pfeile und alles andere werden zusammengeschoben (die Pfeile sind extrem klein). Mein Gedanke war, $\prod_{i \in I} A_i$ nach links zu verlängern und dann natürlich die Symbole zu ändern. Beachten Sie, dass ich das Folgende erhalten habe vonHier:
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\node (C) {$C$};
\node (P) [below of=C] {$\prod_{i \in I} A_i$};
\node (Ai) [right of=P] {$A_i$};
\draw[->] (C) to node {$f_i$} (Ai);
\draw[->, dashed] (C) to node [swap] {$\langle f_i \rangle_{i \in I}$} (P);
\draw[->] (P) to node [swap] {$\pi_i$} (Ai);
\end{tikzpicture}
\end{document}
Antwort1
Etwas wie das?
Beachten Sie, dass die Verwendung der positioning
Bibliothek und der aktualisierten Syntax <direction>=of <place>
sofort beim Abstand hilft. Hier war eigentlich nur eine weitere Anpassung erforderlich, um die Höhe etwas zu erhöhen. Der Rest ist nur eine Frage der Feinabstimmung der Position der Beschriftungen, z. B. below
oder above
und der Verwendung sloped
für die 2, die diese Option erfordern.
\documentclass[tikz, border=5pt]{standalone}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\node (s) {$S$};
\node (xy) [below=2 of s] {$X \times Y$};
\node (x) [left=of xy] {$X$};
\node (y) [right=of xy] {$Y$};
\draw[->] (s) to node [sloped, above] {$f_y$} (y);
\draw[<-] (x) to node [sloped, above] {$f_x$} (s);
\draw[->, dashed] (s) to node {$(f_x,f_y)$} (xy);
\draw[->] (xy) to node [below] {$\pi_X$} (x);
\draw[->] (xy) to node [below] {$\pi_Y$} (y);
\end{tikzpicture}
\end{document}
Antwort2
Da Sie kommutative Diagramme erstellen, würde ich Ihnen empfehlen, ein spezielles Paket wie das leistungsstarketikz-cd
(basierend auf TikZ), die Ihnen eine bequemere, sauberere und kürzere Syntax sowie gebrauchsfertige Funktionen für Ihre Diagramme bieten. Ein kleines Beispiel mit Ihrem Produkt:
\documentclass[border=5pt]{standalone}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[row sep=huge]
& S\ar[dl,"f_{x}",swap,sloped] \ar[dr,"f_{y}",sloped] \ar[d,dashed,"{(f_{x},f_{y})}" description] & \\
X & X\times Y\ar[l,"\pi_{X}"] \ar[r,"\pi_{Y}",swap] & Y
\end{tikzcd}
\end{document}
Das Ergebnis: