将 \inputminted 置于图形中心?

将 \inputminted 置于图形中心?

我正在使用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}

在此处输入图片描述

相关内容