\begin{figure}
\centerline
\begin{verbatim}
for (int a = 0; a < 10; a++)
for (int b = 0; b < 10; b++)
...
\end{verbatim}
\caption{C++ code}
\end{figure}
我希望图形居中,因此我添加了\centerline
。但这会导致错误。我该如何修复?
答案1
您可以使用fancyvrb
包装特点;在本例中,BVerbatim
包装逐字材料的环境:
\documentclass{article}
\usepackage{fancyvrb}
\begin{document}
\begin{figure}
\centering
\begin{BVerbatim}
for (int a = 0; a < 10; a++)
for (int b = 0; b < 10; b++)
...
\end{BVerbatim}
\caption{C++ code}
\end{figure}
\noindent A\hrulefill B% just for visual guide
\end{document}
答案2
以下解决方案基于包varwidth
:
\documentclass{article}
\usepackage{varwidth}
\begin{document}
\begin{figure}
\centering
\begin{varwidth}{\linewidth}
\begin{verbatim}
for (int a = 0; a < 10; a++)
for (int b = 0; b < 10; b++)
...
\end{verbatim}
\end{varwidth}
\caption{C++ code}
\end{figure}
\end{document}
在包的帮助下verbatim
这也可以放入新的环境定义中:
\documentclass{article}
\usepackage{varwidth}
\usepackage{verbatim}
\newenvironment{centerverbatim}{%
\par
\centering
\varwidth{\linewidth}%
\verbatim
}{%
\endverbatim
\endvarwidth
\par
}
\begin{document}
\begin{figure}
\begin{centerverbatim}
for (int a = 0; a < 10; a++)
for (int b = 0; b < 10; b++)
...
\end{centerverbatim}
\caption{C++ code}
\end{figure}
\end{document}