使用以下代码
\documentclass{standalone}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}
\arrow[loop left]{l}{\mathrm{id}_A} \ar{r}A &
B\times C \arrow[loop right]{r}{\mathrm{id}_{B\times C}}
\end{tikzcd}
\end{document}
我得到:
我想修复箭头,使它们具有独立于源对象的相同大小,并优先考虑大箭头。
我迄今为止的尝试都没有什么效果:
\documentclass{standalone}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}
\arrow[loop left]{l}{\mathrm{id}_A} \ar{r}A \hspace{.5cm}&
{B\times C\arrow[loop right]{r}{\mathrm{id}_{B\times C}} }
\end{tikzcd}
\begin{tikzcd}
\arrow[loop left]{l}{\mathrm{id}_A} \ar{r}A &
\hspace{-.7cm}{B\times \hspace{-1.9cm}}& {C\arrow[loop right]{r}{\mathrm{id}_{B\times C}} }
\end{tikzcd}
\end{document}
答案1
恐怕您必须手动设置开始和结束锚点。我想不出更好的解决方案:
% arara: pdflatex
\documentclass{standalone}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[cells={nodes={}}]
\arrow[loop left, distance=3em, start anchor={[yshift=-1ex]west}, end anchor={[yshift=1ex]west}]{}{\mathrm{id}_A} \arrow{r} A
& B\times C\arrow[loop right, distance=3em, start anchor={[yshift=1ex]east}, end anchor={[yshift=-1ex]east}]{}{\mathrm{id}_{B\times C}}
\end{tikzcd}
\end{document}
为了更好地控制箭头,您可以定义[out=-150, in=150, loop, distance=3em,...]
。