我正在尝试使用 tcolorbox 和 minted 制作一个无标题列表。我制作了一个宏来自动执行该任务,并将片段的标题作为可选参数。
我的目标是,当可选参数为空时,不打印标题(也不在列表列表中注册列表)。
我不知道该怎么做,因为无法在 tcolorbox 声明中添加 ifcase。
这是我的 MWE:
\documentclass{article}
\usepackage[most,minted]{tcolorbox}
\usepackage{listings}
\usepackage{filecontents}
\begin{filecontents*}{helloworld.java}
public class HelloWorld {
// A 'Hello World' in Java
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
\end{filecontents*}
\AtBeginDocument{
\newtcbinputlisting[blend into=listings]{\mylisting}[2][]{%
listing engine=minted,
listing file={#2},
listing only,
breakable,
title={Listing \thetcbcounter: #1},
list text=#1,
label={lst:\thetcbcounter},
detach title,
listing above comment,
comment=\centering\tcbtitletext,
enhanced jigsaw,
sharp corners,
boxrule=0.4pt,
top=0pt,
bottom=0pt,
minted language=java,
minted style=colorful,
minted options={%
tabsize=2,
fontsize=\footnotesize,
xleftmargin=2em,
autogobble=true,
numbers=left,
numbersep=5pt,
fontsize=\footnotesize,
breaklines=true,
},
left=-2em,
left skip=1em,
width=\linewidth-1em,}
}
\begin{document}
\lstlistoflistings
\section{Test}
\mylisting{helloworld.java} % This should not have a caption
\mylisting[Hello world]{helloworld.java}
\end{document}
我该怎么做?如您所见,MWE 中的第一个列表确实有一个空标题,而它不应该有。