我现在正在制作一个小型 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
给了我
可以看到,minted language=text
第三个框中的选项似乎无效,而其他键值设置(例如fontlower=\normalsize
)有效。此外,minted language=text
在正常环境下有效tcblisting
。
我怎样才能找到风格的关键.add style
?我做错了什么?minted language
docexample
我本可以直接在 Thomas F. Sturm 教授的 GitHub 存储库中提出这个问题,但我使用 TeX.SX 希望有更多人会看到。
更新:
感谢@egreg的回答,我发现我的问题在于tcolorbox
和的组合(经过一番调查,其他等宽字体也证实了同样的行为)。考虑这个MWE:newtxtt
\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
这给出了粗体形式的控制序列,尽管已指定,但我不喜欢。
重现此问题的等宽字体包括
- 导游 (
\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=bw
给pygmentize
:
\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}