在 tikz-cd 中,当不同列中的列具有不同的“垂直框”大小时,如何实现箭头替换符号的垂直对齐?

在 tikz-cd 中,当不同列中的列具有不同的“垂直框”大小时,如何实现箭头替换符号的垂直对齐?

我处于一个相当特殊/特殊的情况:出于美观的原因,我希望 tikz-cd 图中某些条目使用“大”符号(在我的情况下,我使用带下标的\displaystyle版本\varinjlim,但这个问题对于例如大和符号的工作方式类似)。在相同的有时候,我想用符号代替一些箭头(在我的情况下,我使用符号\cong)。为此,我使用答案这个问题

由于这些符号不会填满行之间的所有空间,因此图表的外观很大程度上取决于它们的垂直位置。我的问题是,其中一个条目中大符号的垂直范围导致不同列中箭头替换符号之间出现垂直偏移,这看起来非常丑陋。我想知道是否有适当的方法来纠正这个问题——\mathrlap也许是某种符合 精神的方法?

这是一个最小的工作示例:

\documentclass{article}
\usepackage{tikz-cd}
\begin{document} 
\begin{tikzcd}
    \displaystyle \sum_\epsilon \ar[draw=none]{d}[sloped,auto=false]{\cong} 
    & A
    \ar[draw=none]{d}[sloped,auto=false]{\cong} \\
    B
    & C
\end{tikzcd}
\end{document}

答案1

您可以简单地使用\smash大符号,并row height根据需要进行调整。此外,我pstricks根据psmatrix环境提出了一种解决方案,来自pst-node。它允许对标签的位置进行更精细的控制。我想也可以用来实现TikZ,但我对它了解不够多:

\documentclass{article}
\usepackage{mathtools}
\usepackage{tikz-cd}
\usepackage{pst-node, auto-pst-pdf}

 \begin{document}

\[ \begin{tikzcd}[row sep=0.8cm]
  \displaystyle\smash{\sum_\epsilon} \ar[draw=none]{d}[sloped, auto=false,  near end]{ ≅ }
  & A
  \ar[draw=none]{d}[sloped,auto=false,  near end]{\cong} \\
  B
  & C
  \end{tikzcd}\]

  \[  \begin{psmatrix}[rowsep=0.65cm, colsep=1cm]
    \sum_\epsilon & A \\
    B & C %
    \ncline[linestyle=none]{1,1}{2,1}\ncput*[nrot=:U, npos=0.35]{\cong}
    \ncline[linestyle=none]{1,2}{2,2}\ncput*[nrot=:U, npos=0.6]{\cong}  
    \end{psmatrix}
  \]

\end{document} 

在此处输入图片描述

答案2

我想出了一个丑陋的“蛮力”方法来解决这个问题。它基本上使用一点\hspace来对齐两个符号,将它们放在两个都在“错误”的位置。用眼睛检查垂直对齐情况,然后对两者使用一点,\hspace将它们放在“正确”的位置。请注意,这种方法非常费力,并且不能很好地推广到更大的图表,因此显然应该希望有比这更好的解决方案。

MWE 变为以下内容:

\documentclass{article}
\usepackage{tikz-cd}
\begin{document} 
\begin{tikzcd}
    \displaystyle \sum_\epsilon \ar[draw=none]{d}[sloped,auto=false]{\hspace{-0.3cm}\cong} 
    & A
    \ar[draw=none]{d}[sloped,auto=false]{\hspace{-0.3cm}\cong\hspace{-0.435cm}} \\
    B
    & C
\end{tikzcd}
\end{document}

输出如下所示:

在此处输入图片描述

相关内容