TikZ-cd 中的对称三角形

TikZ-cd 中的对称三角形

我想用 tikzcd 绘制一个交换三角形,其中的条目大小不同。

 \[
  \begin{tikzcd}[column sep=15pt]
  \mathcal{C} \ar{rr}  \ar{dr} & & S(\tau) \ar{dl} \\
   & \mathsf{Set} &
  \end{tikzcd}
 \]

这会产生轻微的不对称(右侧的箭头更倾斜,中间的条目不在中间):

在此处输入图片描述

一种解决方案是使用以下 tikzcd 选项:

 cells={nodes={align=center,text width=\widthof{$S(\tau)$}}}

输出如下:

在此处输入图片描述

但是现在箭头不是从左侧入口开始的。该如何解决?

答案1

更新

Ti 中提到了此功能Z手册,即III.20.3.2。

\begin{tikzcd}[column sep={1cm,between origins}]
    \mathcal{C}\ar{rr}\ar{dr} && S(\tau,..............)\ar{dl} \\
    & \mathsf{Set}
\end{tikzcd}

旧答案

列分隔符&接受可选参数。就像\\[6pt]does 一样,&[6]添加当前的 col sep6...pt默认。

\documentclass[tikz,border=9]{standalone}
\usepackage{tikz-cd}
\begin{document}
    \begin{tikzcd}[column sep=15pt]
        \mathcal{C}\ar{rr}\ar{dr} &[6]& S(\tau)\ar{dl} \\
        & \mathsf{Set}
    \end{tikzcd}
\end{document}

答案2

您可以添加[start anchor={[xshift=-5pt]}]来移动箭头的起点。

平均能量损失

\documentclass{article}
\usepackage{tikz-cd}
\begin{document}
 \[
  \begin{tikzcd}[column sep=15pt,cells={nodes={align=center,text width=\widthof{$S(\tau)$}}}]
  \mathcal{C} \ar[start anchor={[xshift=-5pt]}]{rr}  \ar{dr} & & S(\tau) \ar{dl} \\
   & \mathsf{Set} &
  \end{tikzcd}
 \]
\end{document} 

在此处输入图片描述

答案3

为了实现箭头的真正对称,您必须增加左上节点的宽度和高度。

% arara: pdflatex

\documentclass{article}
\usepackage{mathtools}
\usepackage{tikz-cd}

\begin{document}
\[
\begin{tikzcd}[column sep=15pt]
      \phantom{S(\tau)}\mathllap{\mathcal{C}}\ar{rr}\ar{dr} & & S(\tau)\ar{dl} \\
    & \textsf{Set}
\end{tikzcd}
\]
\end{document}

如您所见,对角箭头的起点和终点完全相同(但却是镜像的)。

在此处输入图片描述

答案4

我提出一个针对psmatrix环境的解决方案:

\documentclass[pdf]{article}
\usepackage{pst-node}

\begin{document}

\[ \psset{arrows=->, arrowinset=0.25, linewidth=0.6pt, nodesep=2pt, rowsep=0.9cm, colsep=0.7cm}
\begin{psmatrix}
  \ \mathcal C & & S(\tau) \\%
   & \mathsf {Set}
%%%
 \ncline[nodesepB=1.5pt]{1,1}{1,3} \ncline{1,1}{2,2}
 \ncline[nodesepA=1pt]{1,3}{2,2}
\end{psmatrix}
\]
\end{document} 

在此处输入图片描述

相关内容