직선 모서리가 있는 tikz의 부산물에 대한 많은 예가 있지만 해당 제품에 대한 특수 패키지(tikz 제외)가 없거나 작동하는 제품을 찾을 수 없습니다. 나는 이 사진을 재현할 수 있었으면 좋겠다.제품tikz에서 또는 필요한 경우 화살표를 업데이트하고 추가하기 위해 이해하기 쉬운 다른 방법이 있을 수 있습니다.
나는 다음을 내가 원하는 다이어그램으로 바꾸려고 노력했지만 모든 화살표와 모든 것이 함께 밀립니다(화살표는 매우 작습니다). 내 생각은 $\prod_{i \in I} A_i$를 왼쪽으로 확장한 다음 물론 기호를 변경하는 것이었습니다. 나는 다음에서 다음을 얻었습니다.여기:
\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}
답변1
이 같은?
positioning
라이브러리와 업데이트된 구문을 사용하면 <direction>=of <place>
간격 조정에 즉시 도움이 됩니다. 높이를 약간 높이려면 실제로 한 번만 추가 조정이 필요했습니다. 나머지는 예를 들어 below
또는 레이블의 위치를 조정하고 해당 옵션이 필요한 2에 above
사용하는 문제입니다.sloped
\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}
답변2
교환 다이어그램을 작성하고 있으므로 강력한 패키지와 같은 전용 패키지를 사용하는 것이 좋습니다.tikz-cd
(TikZ를 기반으로 구축됨) 더욱 편리하고 깔끔하며 짧은 구문을 제공할 뿐만 아니라 다이어그램에 바로 사용할 수 있는 기능도 제공합니다. 귀하의 제품에 대한 작은 예:
\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}
결과: