在列表列表中指定分隔符以使某些文本以粗体显示

在列表列表中指定分隔符以使某些文本以粗体显示

我知道这个问题已被问过几次,但我试图在我的 lstlisting 环境中指定一些粗体文本。

虽然这在 中运行得很好%\lstset{morecomment=[s][\bfseries]{@@}{@@}},但我试图使 listings 更改仅在该环境中本地进行。根据 listings 包文档,lstlistings必须通过方括号传递 的可选参数。但由于我的命令中已经有方括号,因此我需要用花括号将这些括号括起来。

尽管我正确地遵循了建议,但以下小型工作示例无法编译并因此错误而崩溃File ended while scanning use of \lst@Delim@delim

\documentclass{report}
\usepackage{listings}
\begin{document}    
\begin{lstlisting}[{morecomment=[s][keywordstyle]{@@}{@@}}] 
Some test loru
@@ hello world @@
lorem ipsum
\end{lstlisting}
\end{document}

另外(也许这需要我为此专门提出一个问题),这两个字符@@显示在文本的渲染版本中。我不希望这两个字符出现。

最后,渲染后的粗体版本(后面附有部分 Objective-C 代码)对我来说不够粗。我已经尝试了几个技巧和一些附加包,但对结果并不满意。我需要更改字体吗?如果需要,您推荐我使用哪种等宽字体来代替我使用的默认字体?

在此处输入图片描述

答案1

约瑟夫已经告诉您如何在本地进行更改。

不过,这里还有一些提示。

你需要

moredelim={[is][keywordstyle]{@@}{@@}}

并不是

morecomment={[s][keywordstyle]{@@}{@@}}

来实现你想要的。

梅威瑟:

\documentclass{report}
\usepackage{listings}
\begin{document}
\begin{lstlisting}[moredelim={[is][keywordstyle]{@@}{@@}}]
Some test loru
@@ hello world @@
lorem ipsum
\end{lstlisting}
\end{document} 

在此处输入图片描述

答案2

参数部分需要用括号括起来

\documentclass{report}
\usepackage{listings}
\begin{document}    
\begin{lstlisting}[morecomment={[s][keywordstyle]{@@}{@@}}]
Some test loru
@@ hello world @@
lorem ipsum
\end{lstlisting}
\end{document}

其工作原理是“隐藏”解析器中的内部[...]对:因为 LaTeX2e 机制不对这些对进行括号匹配,所以第一个]将关闭可选参数。

相关内容