使用 tikz-cd 制作的居中图

使用 tikz-cd 制作的居中图

我在方程环境中使用了 tikzcd,这样图表应该放在新行上并居中,但我不知道为什么它没有完全居中。这是我的代码:

\documentclass{article}
\usepackage{tikz}
\usepackage{tikz-cd}
\usetikzlibrary{matrix,arrows}
\begin{document}
The diagram is not perfectly centered:
\[
\begin{tikzcd}
H^0(U\cup V) \rar & H^0(U)\oplus H^0(V) \rar & H^0(U\cap V) 
\ar[out=-20, in=160]{dll} \\
H^1(U\cup V) \rar & H^1(U)\oplus H^1(V)\rar & H^1(U\cap V) 
\ar[out=-20, in=160]{dll} \\
H^2(U\cup V) \rar & H^2(U)\oplus H^2(V)\rar & H^2(U\cap V) 
\end{tikzcd} 
\]
\end{document}

图表稍微偏向页面右侧。有人知道如何修复这个问题吗?

答案1

原因是弯曲的箭头定义了辅助坐标,这些坐标位于图表绘制部分之外很远的地方,因此图表包含大量空白,其宽度实际上比文本块的宽度更宽。查看日志,您会看到有关 的警告。Overfull \hbox (72.53682pt too wide)要可视化这一点,请添加backgroundsTikZ 库,并将其添加[show background rectangle]到环境选项中tikzcd。(请参阅下面的代码。)

要修复此问题,请将绘制箭头overlay的命令添加到选项中\ar。此选项意味着在定义图表的边界框时不会考虑这些命令。

在此处输入图片描述

\documentclass{article}
\usepackage{tikz-cd}
\usetikzlibrary{matrix,arrows,backgrounds}
\begin{document}
The diagram is not perfectly centered:
\[
\begin{tikzcd}[show background rectangle]
H^0(U\cup V) \rar & H^0(U)\oplus H^0(V) \rar & H^0(U\cap V) 
\ar[out=-20, in=160]{dll} \\
H^1(U\cup V) \rar & H^1(U)\oplus H^1(V)\rar & H^1(U\cap V) 
\ar[out=-20, in=160]{dll} \\
H^2(U\cup V) \rar & H^2(U)\oplus H^2(V)\rar & H^2(U\cap V) 
\end{tikzcd} 
\]
The diagram is centered:
\[
\begin{tikzcd}[show background rectangle]
H^0(U\cup V) \rar & H^0(U)\oplus H^0(V) \rar & H^0(U\cap V) 
\ar[overlay,out=-20, in=160]{dll} \\
H^1(U\cup V) \rar & H^1(U)\oplus H^1(V)\rar & H^1(U\cap V) 
\ar[overlay,out=-20, in=160]{dll} \\
H^2(U\cup V) \rar & H^2(U)\oplus H^2(V)\rar & H^2(U\cap V) 
\end{tikzcd} 
\]
\end{document}

答案2

使用 制作的交换图不存在这样的问题pstricks。加载auto-pst-pdf使您能够使用 进行编译pdflatex,前提是使用-shell-escape开关 (TeX Live、MacTeX) 或启动它--enable-write18

\documentclass{article}

\usepackage[showframe]{geometry}%
\usepackage{pst-node, auto-pst-pdf}%

\begin{document}

\[\begin{psmatrix}[rowsep =5ex]
    H^0(U \cup V) & H^0(U) \oplus H^0(V) & H^0(U \cap V)\pnode[0,0.15]{S1}\\
    \pnode[0,0.08]{S2}H^1(U \cup V) & H^1(U) \oplus H^1(V) & H^1(U \cap V)\pnode[0,0.15]{S3} \\
    \pnode[0,0.08]{S4}H^2(U \cup V) & H^2(U) \oplus H^2(V) & H^2(U \cap V)
    \psset{arrows=->, linewidth=0.5pt, nodesep=4pt, arrowinset=0.12}
    \ncline{1,1}{1,2}\ncline{1,2}{1,3}
    \ncline{2,1}{2,2}\ncline{2,2}{2,3}
    \ncline{3,1}{3,2}\ncline{3,2}{3,3}
    \psset{angleA=-15,angleB=165, ncurv=0.8, nodesepB=2pt}
    \nccurve[angleA=-15,angleB=165, ncurv=0.8, nodesepB=2pt]{S1}{S2}%{1,3}{2,1}
    \nccurve{S3}{S4}
  \end{psmatrix}\]

\end{document}

在此处输入图片描述

相关内容