如何通过更改箭头的位置和长度来修改 tikz-cd 图

如何通过更改箭头的位置和长度来修改 tikz-cd 图

考虑以下交换图的代码,然后是输出。

\documentclass{amsart}
\usepackage{tikz-cd}
\begin{document}
\[
\begin{tikzcd}
A \arrow[r, leftrightarrow, "\alpha"] \arrow[d, "\int^a_b", swap] & C\quad(\subseteq S) \arrow[d, "\int^c_d"]\\
B \arrow[r, leftrightarrow, "\beta", swap] & D\quad(\subseteq T)
\end{tikzcd}
\]
\end{document}

交换图

我很高兴能通过以下方式帮助修改输出。

  1. 右边的向下箭头应该向左移动,以便看起来连接CD
  2. 向下的箭头应该更长。
  3. 积分符号应该更长。

答案1

你可以

  1. C分别放入(\subseteq S)不同的单元格中,
  2. 改变列和行之间的距离,
  3. 添加\displaystyle到积分中。

要得到

\documentclass{amsart}
\usepackage{tikz-cd}
\begin{document}
\[
\begin{tikzcd}[column sep={8mm,between origins},row sep=1.2cm]
A \arrow[rr, leftrightarrow, "\alpha"] \arrow[d, "\displaystyle\int^a_b", swap]
&& C \arrow[d, "\displaystyle\int^c_d"] &(\subseteq S) \\
B \arrow[rr, leftrightarrow, "\beta", swap] && D &(\subseteq T)
\end{tikzcd}
\]
\end{document}

在此处输入图片描述

答案2

我不太擅长钛Z,但希望以下内容能解决你的前两个问题

\documentclass{amsart}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (0,0) node {$A$};
\draw (1.5,0) node {$C$};
\draw (0,-1.5) node {$B$};
\draw (1.5,-1.5) node {$D$};
\draw (2.5,0) node {$(\subseteq S)$};
\draw (2.5,-1.5) node {$(\subseteq T)$};
\draw[<->] (0.2,0) -- (1.3,0);
\draw[<->] (0.2,-1.5) -- (1.3,-1.5);
\draw[->] (0,-0.2) -- (0,-1.3);
\draw[->] (1.5,-0.2) -- (1.5,-1.3);
\begin{scriptsize}
    \draw (0.75,0) node[above] {$\alpha$};
    \draw (0.75,-1.5) node[below] {$\beta$};
    \draw (0,-0.75) node[left] {$\int_b^a$};
    \draw (1.5,-0.75) node[right] {$\int_d^c$};
\end{scriptsize}
\end{tikzpicture}
\end{document}

在此处输入图片描述

对于问题 3:从我的角度来看,如果延长符号,积分符号会看起来更糟糕一些,因为它不适合ab等。但是,如果您真的想延长符号,我建议放大整个符号:

\documentclass{amsart}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (0,0) node {$A$};
\draw (1.5,0) node {$C$};
\draw (0,-1.5) node {$B$};
\draw (1.5,-1.5) node {$D$};
\draw (2.5,0) node {$(\subseteq S)$};
\draw (2.5,-1.5) node {$(\subseteq T)$};
\draw[<->] (0.2,0) -- (1.3,0);
\draw[<->] (0.2,-1.5) -- (1.3,-1.5);
\draw[->] (0,-0.2) -- (0,-1.3);
\draw[->] (1.5,-0.2) -- (1.5,-1.3);
\begin{scriptsize}
    \draw (0.75,0) node[above] {$\alpha$};
    \draw (0.75,-1.5) node[below] {$\beta$};
\end{scriptsize}
%\begin{small}
    \draw (0,-0.75) node[left] {$\int_b^a$};
    \draw (1.5,-0.75) node[right] {$\int_d^c$};
%\end{small}
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案3

  1. 使用该选项重新定位箭头shift right。(参见tikz-cd手册。)
  2. 使用该选项延伸向下的箭头row sep。(参见tikz-cd手册。)
  3. 使用拉伸积分符号scalerel,如上所述这里

此外,

  1. 可以使用选项调整箭头与其标签之间的距离outer sep,如上所述这里
  2. 可以使用例如 来更改箭头尖端arrow style=tikz, >=Latex。(请参阅tikz-cd手册。)

修改后的代码如下。

\documentclass{amsart}
\usepackage{tikz-cd}
\usepackage{scalerel}
\def\stretchint#1{\vcenter{\hbox{\stretchto[440]{\displaystyle\int}{#1}}}}
\begin{document}
\[
\begin{tikzcd}[row sep = huge, column sep = large, outer sep = 1mm, arrow style=tikz, >=Latex]
A \arrow[r, leftrightarrow, "\alpha"] \arrow[d, "\stretchint{3ex}^a_{\hspace{-1.5mm}b}", swap] & C\quad(\subseteq S) \arrow[d, "\stretchint{3ex}^c_{\hspace{-1.5mm}d}", shift right = .6cm]\\
B \arrow[r, leftrightarrow, "\beta", swap] & D\quad(\subseteq T)
\end{tikzcd}
\]
\end{document}

格式化图表

相关内容