【问题标题】:LaTeX listings package: different style for constants/classes/variablesLaTeX 列表包:常量/类/变量的不同样式
【发布时间】:2010-07-14 18:06:40
【问题描述】:

我正在使用listings 包进行语法高亮显示,使用以下参数进行设置:

\lstset{
  language=Java,
  captionpos=b,
  tabsize=3,
  frame=lines,
  numbers=left,
  numberstyle=\tiny,
  numbersep=5pt,
  breaklines=true,
  showstringspaces=false,
  basicstyle=\footnotesize,
  identifierstyle=\color{magenta},
  keywordstyle=\bfseries,
  commentstyle=\color{darkgreen},
  stringstyle=\color{red}
}

这很好用,结果是:

我想要的是,常量MIN_PIXELSMAX_PROCESSING_TIME 用不同的颜色设置样式,而类名RectangleBitmap 等用另一种颜色设置样式。如果我能把数字涂上颜色也很好,但这不是我的主要关注点。

有什么办法吗?

【问题讨论】:

    标签: latex package tex listings


    【解决方案1】:

    列表只能通过关键字起作用,因此不可能。

    Minted 使用 python 库 (Pygments) 并且可以进行任何类型的突出显示,因为它能够理解代码而不仅仅是关键字。

    【讨论】:

    • 感谢您的建议。我一直在寻找专门针对listings 的解决方案,但我会在未来考虑minted
    • 我对@9​​87654324@ 的一些其他问题感到恼火,所以我也切换到minted。安装很痛苦,但绝对值得!
    【解决方案2】:

    来自列表文档(第 20 页):\lstset{morecomment=[s][\color{blue}]{/*+}{*/}, morecomment=[s][\color{red}]{/*-}{*/}} 您可以尝试设置morekeywords 并为特定关键字赋予正确的颜色。

    【讨论】:

    • 很好的建议,我会试试看。如果可能的话,我更喜欢基于正则表达式的方法,否则我需要在lstset 中指定所有类名和常量。
    • 这行得通!我能够突出显示特定的关键字;例如对于MIN_PIXELS 我用过:morecomment=[s][\color{darkblue}]{MIN_PIXELS}{\ }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    • 1970-01-01
    • 2012-05-19
    相关资源
    最近更新 更多