如何在 tcolorbox 的 dispExample 环境中禁用 minted 突出显示?

如何在 tcolorbox 的 dispExample 环境中禁用 minted 突出显示?

我现在正在制作一个小型 LaTeX 包的文档,其中包含包documentation中的库tcolorbox,但在没有任何语法高亮的情况下打印示例代码时遇到了困难。

根据G. Poore 的回答,我们可以设置语言来text关闭颜色,可以通过以下方式指定/tcb/minted language钥匙于是我尝试像下面的MWE一样重新定义相应的值(前两个只是为了比较)。

\documentclass{article}
\usepackage[all]{tcolorbox}
\tcbset{listing engine=minted}
\begin{document}
\begin{tcblisting}{minted language=text}
  \begin{equation}
    \int_{-\infty}^{\infty} \exp (-x^2) \, dx = \sqrt{\pi}
  \end{equation}
\end{tcblisting}
\begin{dispExample}
  \begin{equation}
    \int_{-\infty}^{\infty} \exp (-x^2) \, dx = \sqrt{\pi}
  \end{equation}
\end{dispExample}
\tcbset{
  docexample/.add style={}{
    fontlower=\normalsize,
    minted language=text,
    documentation minted options={
      autogobble=true,
      fontsize=\small
    }
  }
}
\begin{dispExample}
  \begin{equation}
    \int_{-\infty}^{\infty} \exp (-x^2) \, dx = \sqrt{\pi}
  \end{equation}
\end{dispExample}
\end{document}

排版这个pdflatex -shell-escape给了我

MWE 的输出

可以看到,minted language=text第三个框中的选项似乎无效,而其他键值设置(例如fontlower=\normalsize)有效。此外,minted language=text在正常环境下有效tcblisting

我怎样才能找到风格的关键.add style?我做错了什么?minted languagedocexample

我本可以直接在 Thomas F. Sturm 教授的 GitHub 存储库中提出这个问题,但我使用 TeX.SX 希望有更多人会看到。

更新:

感谢@egreg的回答,我发现我的问题在于tcolorbox和的组合newtxtt(经过一番调查,其他等宽字体也证实了同样的行为)。考虑这个MWE:

\documentclass{article}
\usepackage[all]{tcolorbox}
\usepackage{newtxtt}
\tcbset{
  listing engine=minted,
  docexample/.add style={}{
    fontlower=\normalsize,
    minted language=latex,
    documentation minted options={
      autogobble=true,
      fontsize=\small,
      style=bw,
    }
  }
}
\begin{document}
\begin{dispExample}
  \begin{equation}
    \int_{-\infty}^{\infty} \exp (-x^2) \, dx = \sqrt{\pi}
  \end{equation}
\end{dispExample}
\end{document}

style=bw这给出了粗体形式的控制序列,尽管已指定,但我不喜欢。

第二个 MWE 的输出

重现此问题的等宽字体包括

  • 导游 (\usepackage{courier}),
  • 似曾相识(\usepackage{dejavu}),
  • 费拉(\usepackage{firamono}),
  • Incondolata(\usepackage{zi4})和
  • 源代码专业版 ( \usepackage{sourcecodepro}),

而 Latin Modern 和 Droid 则不会引发该问题。

又一次更新

这个问题的第二部分现在有自己的线程

答案1

目前,该documentation库假定所有(铸造)文本都是latex语言。因此,minted language故意不对dispExample环境产生影响。

尽管如此,我还是将其视为一项功能请求,以与 相同的方式使其可配置documentation minted options

以下补丁引入了一个新选项documentation minted language,该选项将集成到tcolorbox版本4.03及更高版本中:

\documentclass{article}
\usepackage[all]{tcolorbox}
\begin{document}

\makeatletter

\tcbset{
  documentation minted language/.store in=\kvtcb@docminted@language,
  documentation minted language=latex,
}

\def\tcb@minted@doc@usetemplisting{%
  \tcb@minted@input@listing{\kvtcb@docmintoptions}{\kvtcb@docminted@language}{\kvtcb@tempfile}{\kvtcb@docmintstyle}%
}

\tcbset{listing engine=minted}

\makeatother

\begin{tcblisting}{minted language=text}
  \begin{equation}
    \int_{-\infty}^{\infty} \exp (-x^2) \, dx = \sqrt{\pi}
  \end{equation}
\end{tcblisting}

\begin{dispExample}
  \begin{equation}
    \int_{-\infty}^{\infty} \exp (-x^2) \, dx = \sqrt{\pi}
  \end{equation}
\end{dispExample}

\tcbset{
  docexample/.add style={}{
    fontlower=\normalsize,
    documentation minted language=text,
    documentation minted options={
      autogobble=true,
      fontsize=\small
    }
  }
}

\begin{dispExample}
  \begin{equation}
    \int_{-\infty}^{\infty} \exp (-x^2) \, dx = \sqrt{\pi}
  \end{equation}
\end{dispExample}

\end{document}

在此处输入图片描述

答案2

您想要传递style=bwpygmentize

\documentclass{article}
\usepackage[all]{tcolorbox}
\tcbset{
  listing engine=minted,
  docexample/.add style={}{
    fontlower=\normalsize,
    minted language=latex, % <--------
    documentation minted options={
      autogobble=true,
      fontsize=\small,
      style=bw, % <-------
    }
  }
}
\begin{document}

\begin{dispExample}
\begin{equation}
  \int_{-\infty}^{\infty} \exp (-x^2) \, dx = \sqrt{\pi}
\end{equation}
\end{dispExample}

\end{document}

在此处输入图片描述

相关内容