我正在使用minted
包导入一些代码以及使用 ASCII 艺术的图像。我用标题包裹了它们\inputminted
,\figure
一切正常。
我唯一做不到的是将 ASCII 艺术图形居中。我试过了:
\begin{figure}[ht]
\begin{center}
\inputminted[fontsize=\scriptsize]{text}{./samples/styles.txt}
\end{center}
\caption{Example programming styles}
\end{figure}
答案1
Pygmentize 输出包含和的文件\begin{Verbatim}
,并且\end{Verbatim}
更改它是不可能的。但我们可以利用fancyvrb
的功能:
\documentclass{article}
\usepackage{minted}
\begin{document}
\begin{figure}[htp]
\centering
\RecustomVerbatimEnvironment{Verbatim}{BVerbatim}{}
\inputminted[fontsize=\scriptsize]{latex}{./inpmint.tex}
\caption{Example programming styles}
\end{figure}
\end{document}
我使用 LaTeX 文件本身作为示例:Verbatim
环境被“重新定制”以改为使用BVerbatim
。在环境中执行此操作figure
可确保环境在之后恢复到其以前的含义\end{figure}
。
答案2
另一种选择是使用 changepage 包和 adjustwidth 环境,
\usepackage{changepage}
\begin{adjustwidth}{.3\textwidth}{}
\end{adjustwidth}
答案3
此解决方案使用已知(估计)大小的 minipage 来包装 minted。我给出了 minted 包的列表环境的示例,但它同样适用于数字。
专业版:可以显示来自 minted 的行号(与@egreg 的解决方案不同)
反对意见:您必须知道/猜测/估计最长行的大小(对于\begin{minted}...\end{minted}
直接放入环境中的文本来说很容易,见下文)。
\documentclass{article}
\usepackage{minted}
\begin{document}
\begin{listing}[H]
\centering
\begin{minipage}[t]{.7\textwidth}% !!! you have to estimate this value !!!
\inputminted[fontsize=\scriptsize,linenos,
firstline=4,lastline=11]{latex}{./test.tex}
\end{minipage}
\caption{Guessing the line length}
\end{listing}
% If on the other hand you use \begin{minted}...\end{minted} it is easy to
% measure the longest line with \widthof{...}:
\begin{listing}[H]
\centering
\begin{minipage}[t]{\widthof{\texttt{\scriptsize if you have all the lines in your tex file}}}
\begin{minted}[linenos,fontsize=\scriptsize]{latex}
use
\widthof{\texttt{the longest line}}
instead of
.7\textwidth
if you have all the lines in your tex file
\end{minted}
\end{minipage}
\caption{Measuring the line length}
\end{listing}
\end{document}