我需要使用的正确格式包括行\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
。