如何同时使用 tikz-cd 和 \mathsurround?

如何同时使用 tikz-cd 和 \mathsurround?

我需要使用的正确格式包括行\mathsurround=2pt,但这会破坏环境中的箭头位置tikzcd。我可以通过恢复默认行为或手动在交换图中放置箭头来暂时关闭 \mathsurround 吗?

下面是使用 \mathsurround 后箭头位置看起来有多糟糕的例子: 箭头向右移动的交换方块

上面的图像是通过以下方式生成的:

\documentclass{article}
\usepackage{tikz}
\usepackage{tikz-cd}
\mathsurround=2pt

\begin{document}
  \[
    \begin{tikzcd}
      B_{\sigma} (\bar{n}_{\bullet}) \ar[r, "\mathrm{diag}"] \ar[d, "\mathbf{y}_{\mathbf{i}_{\sigma}}" left] &
      B (n_{\bullet}) \ar[d, "\mathbf{y}_{\mathbf{i}}"]
      \\
      A_0^{\mathbf{i}_{\sigma}} (\bar{n}_{\bullet}) \ar[r,  "\iota"] &
      A_0^{\mathbf{i}} (n_{\bullet})
    \end{tikzcd}
  \]
\end{document}

答案1

在每个环境下设置\mathsurround为零tikz

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

\setlength{\mathsurround}{30pt}
\AtBeginEnvironment{tikzcd}{\setlength{\mathsurround}{0pt}}

\begin{document}

Text $0=0$ text
\[
\begin{tikzcd}
B_{\sigma} (\bar{n}_{\bullet}) 
  \arrow[r, "\mathrm{diag}"] 
  \arrow[d, "\mathbf{y}_{\mathbf{i}_{\sigma}}" left] &
B (n_{\bullet}) \arrow[d, "\mathbf{y}_{\mathbf{i}}"]
\\
A_0^{\mathbf{i}_{\sigma}} (\bar{n}_{\bullet}) 
  \arrow[r,  "\iota"] &
A_0^{\mathbf{i}} (n_{\bullet})
\end{tikzcd}
\]
Text $0=0$ text

\end{document}

在此处输入图片描述

的值\mathsurround被设置为一个巨大的值只是为了清楚地表明设置在环境之后恢复tikzcd

相关内容