Tikzcd 图表与 amscd

Tikzcd 图表与 amscd

我对 tikz 环境还不太熟悉,但根据本网站优秀专家的建议,我尝试用 tikzcd 包构建的交换图替换所有用 amscd 包构建的交换图。

不幸的是,我注意到 tickcd IMHO 中默认选择的箭头长度在某些情况下看起来不如 amscd 中的箭头长度好看。

这是 MWE

\documentclass[11pt]{amsart}
\usepackage{amscd}

\usepackage{tikz-cd}

\begin{document}

\[\begin{CD}
    \kappa(q)=B_{q}/qB_{q}@<<< B_{q}\\
    @AAA @AAA\\
    B\otimes \kappa(p)=B_{p}/pB_{p}@<<< B\otimes A_{p}\\
    @AAA @AAA \\
    \kappa(p)=A_{p}/pA_{p}@<<< A_{p}
\end{CD}\]

\[\begin{tikzcd}
\kappa(q)=B_{q}/qB_{q}& B_{q}\ar[l]\\
B\otimes \kappa(p)=B_{p}/pB_{p}\ar[u]& B\otimes A_{p}\ar[u]\ar[l]\\
\kappa(p)=A_{p}/pA_{p}\ar[u]&A_{p}\ar[u]\ar[l]
\end{tikzcd}\]

\end{document} 

这是我的问题:我知道我可以摆弄 tikzcd 图表中每个水平箭头的长度,以便使它们整齐对齐并大致相同,就像它们出现在 amscd 包中一样(似乎选择了列中水平箭头的最小长度)。我希望在整个图表或/和文档级别默认使用此行为。我该怎么办?

编辑:按照 egreg 的建议,现在我只想知道 tikzcd 中是否有一个图表和/或整个文档的默认参数,允许箭头尾部和尖端和节点之间留出更多空间(与狭窄选项相反?)?我在文档中没有看到这一点。

答案1

作为埃格尔提及his commenttikz-cd使箭头延伸以填充可用空间并且(我同意他的观点)这是一个理想的功能。

关于问题的第二部分,您可以使用\tikzcdset将选项传递给路径/tikz/commutative diagrams,以便它们影响所有tikzcd图表;对于您的问题,您可以使用shorten

\tikzcdset{
  shorten >= 5pt,
  shorten <= 5pt,
}

完整示例:

\documentclass[11pt]{amsart}
\usepackage{amscd}
\usepackage{tikz-cd}

\tikzcdset{
  shorten >= 5pt,
  shorten <= 5pt,
}

\begin{document}

\[\begin{CD}
    \kappa(q)=B_{q}/qB_{q}@<<< B_{q}\\
    @AAA @AAA\\
    B\otimes \kappa(p)=B_{p}/pB_{p}@<<< B\otimes A_{p}\\
    @AAA @AAA \\
    \kappa(p)=A_{p}/pA_{p}@<<< A_{p}
\end{CD}\]

\[\begin{tikzcd}
\kappa(q)=B_{q}/qB_{q}& B_{q}\ar[l]\\
B\otimes \kappa(p)=B_{p}/pB_{p}\ar[u]& B\otimes A_{p}\ar[u]\ar[l]\\
\kappa(p)=A_{p}/pA_{p}\ar[u]&A_{p}\ar[u]\ar[l]
\end{tikzcd}\]

\end{document}

在此处输入图片描述

如果您想在本地使用此选项,请在可选参数中使用它们tikzcd

\documentclass[11pt]{amsart}
\usepackage{amscd}
\usepackage{tikz-cd}

\begin{document}

\[\begin{CD}
    \kappa(q)=B_{q}/qB_{q}@<<< B_{q}\\
    @AAA @AAA\\
    B\otimes \kappa(p)=B_{p}/pB_{p}@<<< B\otimes A_{p}\\
    @AAA @AAA \\
    \kappa(p)=A_{p}/pA_{p}@<<< A_{p}
\end{CD}\]

\[\begin{tikzcd}[  shorten >= 5pt,shorten <= 5pt]
\kappa(q)=B_{q}/qB_{q}& B_{q}\ar[l]\\
B\otimes \kappa(p)=B_{p}/pB_{p}\ar[u]& B\otimes A_{p}\ar[u]\ar[l]\\
\kappa(p)=A_{p}/pA_{p}\ar[u]&A_{p}\ar[u]\ar[l]
\end{tikzcd}\]

\end{document}

答案2

还有psmatrix解决方案,来自pst-node。这里有两种写这个图的方法。与 tikz-cd 相反,代码的结构首先描述节点,然后描述箭头;

\documentclass[11pt]{amsart}

\usepackage{mathtools}
\usepackage{pst-node}
\usepackage{auto-pst-pdf}

\begin{document}
\psset{linewidth=0.6pt, arrowinset=0.2, arrowsize=2.5pt 2, arrows=->,nodesep=4pt}
\[
  \begin{psmatrix}
    %%% Nodes
    \kappa(q)=B_{q}/qB_{q}& B_{q}\\
    B\otimes \kappa(p)=B_{p}/pB_{p} & B\otimes A_{\mathrlap{p}}\\
    \kappa(p)=A_{p}/pA_{p}&A_{p}
    %%% Vertical arrows
    \ncline{2,1}{1,1}\ncline{2,2}{1,2}
    \ncline{3,1}{2,1}\ncline{3,2}{2,2}
    %%% Horizontal arrows
    \ncline{2,2}{2,1}
    \psset{nodesep=8pt}\ncline{1,2}{1,1}\ncline{3,2}{3,1}
  \end{psmatrix}\]


  \vskip1cm
  \[
    \begin{psmatrix}
      %%% Nodes
      \mathllap{\kappa(q)=}B_{q}/qB_{q}& B_{q}\\
      \mathllap{B\otimes \kappa(p)=}B_{p}/pB_{p} & B\otimes A_{p}\\
      \mathllap{\kappa(p)=}A_{p}/pA_{p}&A_{p}
      %%% Vertical arrows
      \ncline{2,1}{1,1}\ncline{2,2}{1,2}
      \ncline{3,1}{2,1}\ncline{3,2}{2,2}
      %%% Horizontal arrows
      \ncline{2,2}{2,1}
      \psset{nodesep=8pt}\ncline{1,2}{1,1}\ncline{3,2}{3,1}
    \end{psmatrix}\]

\end{document} 

在此处输入图片描述

相关内容