我知道这个问题已被问过几次,但我试图在我的 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 机制不对这些对进行括号匹配,所以第一个]
将关闭可选参数。