我正在尝试使用该包在交换图中添加标题xypic
。但是它不起作用。我编写了以下代码:
\documentclass[a4paper,12pt]{article}
\usepackage{xypic}
\begin{document}
\xymatrix{ A \ar[r] \ar[d]& B\ar[d] \\
C \ar[r]& D
}
\caption{commutative diagram}
\label{fig1}
From \ref{fig1} we...
\end{document}
有没有办法在图表中创建标题和交叉引用?
答案1
问题是你不能简单地\caption
在文档中随意添加一个。仅举一个问题,Latex 无法知道它应该是什么的标题。你至少有两个解决方案可以解决这个问题。
从代码来看,最自然的方式是使用figure
环境。它是通常用于插图的环境,带有标题和标签。
您的 MWE 将会变成:
\documentclass[a4paper,12pt]{article}
\usepackage{xypic}
\begin{document}
\begin{figure}
\xymatrix{ A \ar[r] \ar[d]& B\ar[d] \\
C \ar[r]& D
}
\caption{commutative diagram}
\label{fig1}
\end{figure}
From \ref{fig1} we...
\end{document}
请注意,此解决方案有一个大的问题。figure
环境是浮动环境,这意味着您永远无法将图片准确定位在您想要的位置。
我想,人们会期望交换图的排版位置与代码中出现的位置完全一致。但人们也不会期望交换图有标题。因此,如果浮动内容无关紧要(即,如果交换图是插图而不是文本的一部分),则可以跳过下面的第二个解决方案。
否则,它就在这里。您可以跳过环境figure
,但您必须告诉 latex 标题的用途。一种选择是使用包\captionof
中的环境caption
(这个包的作用远不止定义这个命令,但这就是我们在这里所需要的)。
因此,你的例子就变成:
\documentclass[a4paper,12pt]{article}
\usepackage{xypic}
\usepackage{caption}
\begin{document}
\xymatrix{ A \ar[r] \ar[d]& B\ar[d] \\
C \ar[r]& D
}
\captionof{figure}{commutative diagram}
\label{fig1}
From \ref{fig1} we...
\end{document}
您可以在此处找到更多详细信息TeX FAQ 条目。