Tikzcd 图表给我:main.tex 中的排版问题 太宽错误

Tikzcd 图表给我:main.tex 中的排版问题 太宽错误

我制作了一个在 pdf 中看起来不错的图表。但是现在 latex 一直告诉我它太宽了,我不知道如何压缩它。

\[
\begin{tikzcd} 
                                                                            &F_{4}=G_{4} \arrow{dr} \arrow{dl} \arrow{d} \\
\triangle_{3,1}(F_{4})=\triangle_{3,1}(G_{4}) \arrow{d} \arrow{dr}          &\triangle_{2,2}(F_{4})=\triangle_{2,2}(G_{4})    \arrow{dl} \arrow{dr}     \arrow{d}        &\triangle_{1,3}(F_{4})=\triangle_{1,3}(G_{4}) \arrow{d} \arrow{dl}\\
\triangle_{2,1,1}(F_{4})=\triangle_{2,1,1}(G_{4})  \arrow{dr}               & \triangle_{1,2,1}(F_{4})=\triangle_{1,2,1}(G_{4})         \arrow{d}                        & \triangle_{1,1,2}(F_{4})=\triangle_{1,1,2}(G_{4}) \arrow{dl}\\
                                                                            & \triangle_{1,1,1,1}(F_{4})=\triangle_{1,1,1,1}(G_{4})
\end{tikzcd}
\]

答案1

假设您正在使用 documentclass article,我没有收到错误,而是收到警告:

\hbox 过满(54.60153pt 太宽)

这意味着您的图表将向边距延伸 54.6 点。也许您可以接受这种情况。但显然,为了保持边距,最好减少这个悬垂部分。

如果您的图像太宽,您可以减少列分隔值column sep=。如果您想保持图形的大小比例,您可能需要同时减少列和行分隔符(如我的第三个示例所示)。

如果你还想扩展节点(不建议这样做),你可以看看包括外部化的 TikZ 图像或这个问题的答案

% arara: pdflatex

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

\begin{document}
\[
\begin{tikzcd} 
                                                                            &F_{4}=G_{4} \arrow{dr} \arrow{dl} \arrow{d} \\
\triangle_{3,1}(F_{4})=\triangle_{3,1}(G_{4}) \arrow{d} \arrow{dr}          &\triangle_{2,2}(F_{4})=\triangle_{2,2}(G_{4})    \arrow{dl} \arrow{dr}     \arrow{d}        &\triangle_{1,3}(F_{4})=\triangle_{1,3}(G_{4}) \arrow{d} \arrow{dl}\\
\triangle_{2,1,1}(F_{4})=\triangle_{2,1,1}(G_{4})  \arrow{dr}               & \triangle_{1,2,1}(F_{4})=\triangle_{1,2,1}(G_{4})         \arrow{d}                        & \triangle_{1,1,2}(F_{4})=\triangle_{1,1,2}(G_{4}) \arrow{dl}\\
                                                                            & \triangle_{1,1,1,1}(F_{4})=\triangle_{1,1,1,1}(G_{4})
\end{tikzcd}
\]
\[
\begin{tikzcd}[column sep=tiny] % or small, scriptsize...
& F_4=G_4 \arrow{dr} \arrow{dl} \arrow{d} \\
\triangle_{3,1}(F_4)=\triangle_{3,1}(G_4) \arrow{d} &\triangle_{2,2}(F_4)=\triangle_{2,2}(G_4) \arrow{dl} \arrow{d} & \triangle_{1,3}(F_4)=\triangle_{1,3}(G_4) \arrow{d} \arrow{dl}\\
\triangle_{2,1,1}(F_4)=\triangle_{2,1,1}(G_4) \arrow{dr} & \triangle_{1,2,1}(F_4)=\triangle_{1,2,1}(G_4) \arrow{d} \arrow[<-,crossing over]{ul} & \triangle_{1,1,2}(F_4)=\triangle_{1,1,2}(G_4) \arrow{dl} \arrow[<-,crossing over]{ul}\\
& \triangle_{1,1,1,1}(F_4)=\triangle_{1,1,1,1}(G_4)
\end{tikzcd}
\]
\[
\begin{tikzcd}[row sep=small, column sep=tiny] % or scriptsize...
& F_4=G_4 \arrow{dr} \arrow{dl} \arrow{d} \\
\triangle_{3,1}(F_4)=\triangle_{3,1}(G_4) \arrow{d} &\triangle_{2,2}(F_4)=\triangle_{2,2}(G_4) \arrow{dl} \arrow{d} & \triangle_{1,3}(F_4)=\triangle_{1,3}(G_4) \arrow{d} \arrow{dl}\\
\triangle_{2,1,1}(F_4)=\triangle_{2,1,1}(G_4) \arrow{dr} & \triangle_{1,2,1}(F_4)=\triangle_{1,2,1}(G_4) \arrow{d} \arrow[<-,crossing over]{ul} & \triangle_{1,1,2}(F_4)=\triangle_{1,1,2}(G_4) \arrow{dl} \arrow[<-,crossing over]{ul}\\
& \triangle_{1,1,1,1}(F_4)=\triangle_{1,1,1,1}(G_4)
\end{tikzcd}
\]
\end{document}

在此处输入图片描述

最后两张图片仍然有 18.6 pt 的悬垂。就我个人而言,我可以忍受这一点。如果您想摆脱它,请缩放字体大小(如 Torbjørn 所述),使用我上面链接的答案中的一些缩放比例,或者尝试重新表述您的图表。

使用 xy-pic 编辑

这是包的相同代码xy。我只是减小了列分隔大小。当然,您\xymatrixrowsep{}也可以引入。

% arara: pdflatex

\documentclass{article}
\usepackage[all,pdf,cmtip]{xy}
\usepackage{showframe}

\begin{document}
\[
\xymatrixcolsep{0.03in}
\xymatrix{%
& F_4=G_4 \ar[dr] \ar[dl] \ar[d] \\
\triangle_{3,1}(F_4)=\triangle_{3,1}(G_4) \ar[d] \ar[dr] & \triangle_{2,2}(F_4)=\triangle_{2,2}(G_4) \ar[dl]|\hole \ar[dr]     \ar[d] & \triangle_{1,3}(F_4)=\triangle_{1,3}(G_4) \ar[d] \ar[dl]|\hole\\
\triangle_{2,1,1}(F_{4})=\triangle_{2,1,1}(G_{4})  \ar[dr] & \triangle_{1,2,1}(F_{4})=\triangle_{1,2,1}(G_{4}) \ar[d] & \triangle_{1,1,2}(F_{4})=\triangle_{1,1,2}(G_{4}) \ar[dl]\\
& \triangle_{1,1,1,1}(F_{4})=\triangle_{1,1,1,1}(G_{4})
}
\]
\end{document}

在此处输入图片描述

相关内容