Hay muchos ejemplos del coproducto en tikz con bordes rectos, sin embargo no encuentro ninguno (que funcione) o sin un paquete especial (que no sea tikz) para el producto. Sólo me gustaría poder reproducir esta imagen de unproductoen tikz, o posiblemente otro método que sea fácil de entender para actualizar y agregar flechas si es necesario.
Intenté convertir lo siguiente en el diagrama que me gustaría, sin embargo, todas las flechas y todo se juntan (las flechas son extremadamente pequeñas). Mi idea era extender $\prod_{i \in I} A_i$ hacia la izquierda y luego, por supuesto, cambiar los símbolos. Tenga en cuenta que obtuve lo siguiente deaquí:
\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}
Respuesta1
¿Algo como esto?
Tenga en cuenta que el uso de la positioning
biblioteca y la sintaxis actualizada <direction>=of <place>
ayuda inmediatamente con el espaciado. Aquí sólo fue necesario un ajuste más para aumentar un poco la altura. El resto es sólo cuestión de ajustar la posición de las etiquetas, por ejemplo, below
o above
y usarlas sloped
para las 2 que requieren esa opción.
\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}
Respuesta2
Ya que estás haciendo diagramas conmutativos, te sugiero que uses un paquete dedicado como el potentetikz-cd
(construido sobre TikZ) que le ofrece una sintaxis más conveniente, limpia y corta, así como funciones listas para usar para sus diagramas. Un pequeño ejemplo con su producto:
\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}
El resultado: