在 tcblisting 中突出显示/强调字符串

在 tcblisting 中突出显示/强调字符串

我如何强调字符串技術清單就像在环境中使用“moredelim”选项一样lstlisting?目标是能够在特定情况下在特定环境中对任意字符串进行排序技術清單

使用该listings软件包我可以执行以下操作:

\documentclass[]{scrbook}
\usepackage{xcolor}
\usepackage{listings}
\lstdefinestyle{somebox}{
    frame=single,
    moredelim=**[is][\color{green}]{@}{@},
}    

\begin{document}
\begin{lstlisting}[style=somebox]
    black @green@ black
\end{lstlisting}
\end{document}

在此处输入图片描述

现在,我想像这样使用该listingstcolorbox

\documentclass[]{scrbook}
\usepackage[most]{tcolorbox}
\newtcblisting{somebox}{
    listing only,
    listing options={style=tcblatex}
}

\begin{document}
\begin{somebox}
black green black
\end{somebox}
\end{document}

在此处输入图片描述

tcolorbox不知道“moredelim”:

\documentclass[]{scrbook}
\usepackage[most]{tcolorbox}
\newtcblisting{somebox}{
    listing only,
    listing options={style=tcblatex},
    moredelim=**[is][\color{green}]{@}{@}
}

\begin{document}
\begin{somebox}
black @green@ black
\end{somebox}
\end{document}

错误是:

软件包 pgfkeys 错误:我不知道密钥“/tcb/moredelim”,你将其拼写错误。\begin{somebox}

答案1

您必须在键的参数内传递列表选项listings options。如果您想在本地更改列表选项,您可以通过可选参数传递它(在 moredelim 的参数周围加上括号以保护 []):

\documentclass[]{scrbook}
\usepackage[most]{tcolorbox}
\newtcblisting{somebox}[1][]{
    listing only,
    listing options={style=tcblatex,moredelim={**[is][\color{green}]{@}{@}},#1},
}

\begin{document}
\begin{somebox}
black @green@ black
\end{somebox}


\begin{somebox}[moredelim={**[is][\color{red}]{@}{@}}]
black @green@ black
\end{somebox}

\end{document}

在此处输入图片描述

答案2

您可以定义新的列表语言

\lstdefinelanguage{mylang}
{
    moredelim=**[is][\color{green}]{@}{@}
}

并在listing options你的\newtcblisting

\newtcblisting{somebox}{
    listing only,
    listing options={style=tcblatex,language=mylang}
}

平均能量损失

\documentclass[]{scrbook}
\usepackage[most]{tcolorbox}

\lstdefinelanguage{mylang}
{
    moredelim=**[is][\color{green}]{@}{@}
}

\newtcblisting{somebox}{
    listing only,
    listing options={style=tcblatex,language=mylang}
}

\begin{document}
\begin{somebox}
black @green@ black
\end{somebox}
\end{document} 

输出

在此处输入图片描述

相关内容