我制作了一个在 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}