minted 环境 varwidth 环境内部

minted 环境 varwidth 环境内部

有没有办法将minted环境合并到环境中?我为代码片段设置了彩色背景,并且根据我上一个问题的答案,varwidth我确实设法将minted环境放在了环境中:minipage

minted 环境 minipage 环境内部

但是,手动调整每个代码片段的 minipage 宽度确实很令人沮丧。我尝试使用minted环境包装varwidth环境minted.sty,但出现了一些奇怪的错误。

答案1

作为起点,您可以使用以下重新定义。也许有人可以改进我的代码:

\documentclass{article}
\usepackage{minted,varwidth}
\makeatletter
\newenvironment{mintedshort}[2][]
 {\VerbatimEnvironment%
  \renewcommand{\minted@proglang}[1]{#2}%
  \minted@resetoptions%
  \setkeys{minted@opt}{#1}%
  \begin{VerbatimOut}[codes={\catcode`\^^I=12}]{\jobname.pyg}}%
 {\end{VerbatimOut}%
  \minted@pygmentize@short{\minted@proglang{}}%
  \DeleteFile{\jobname.pyg}}

\newcommand\minted@pygmentize@short[2][\jobname.pyg]{%
  \def\minted@cmd{pygmentize -l #2 -f latex -F tokenmerge
    \minted@opt{gobble} \minted@opt{texcl} \minted@opt{mathescape}
    \minted@opt{startinline} \minted@opt{funcnamehighlighting}
    \minted@opt{linenos} -P "verboptions=\minted@opt{extra}"
    -o \jobname.out.pyg #1}%
  \immediate\write18{\minted@cmd}%
  \begingroup%
    \setbox0=\hbox{%
     \let\Verbatim\BVerbatim%
     \let\endVerbatim\endBVerbatim%
      \input{\jobname.out.pyg}%
    }%
   \box0%
   \endgroup%
  \DeleteFile{\jobname.out.pyg}}
\makeatother

\begin{document}

\hrulefill
\begin{mintedshort}{latex}
\tableofcontents
\part{Part}
\chapter{Chapter}
\section{Section}
\end{mintedshort}
\hrulefill

\end{document}

在此处输入图片描述

相关内容