当没有设置列表语言时,如何避免使用默认样式?

当没有设置列表语言时,如何避免使用默认样式?

当定义了全局listings样式后,即使没有使用任何语言,标识符的颜色也会与数字不同。如何避免这种情况?

\documentclass{最小}
\usepackage{列表}
\usepackage{xcolor}
\lstset{identifierstyle=\color{紫色}}
\开始{文档}
\lstset{语言=}
\开始{列表}
123 你好世界 456
\结束{列表}
\结束{文档}
在此处输入图片描述

答案1

正如 @jubobs 所评论的,Listings 对待语言风格分别地。

  • 通过定义语言,您告诉 Listings 它应该如何分析代码;例如"string in quotation marks"//comment after double slashes
  • 通过定义风格,你告诉 Listings 应该如何排版代码;例如“字符串变为斜体”并且//评论缩小

回到你的问题,除非你发出另一个时尚设置或当前组终止,否则时尚设置是永久的。同样,除非你分配另一种语言、当前组终止或你发出包含语言分配的时尚设置,否则语言分配也是永久的。

总之,管理语言和风格的最系统的方法可能是定义一个详尽的风格,其中包含语言分配及其相关的风格设置。(就像语言-IDE 对一样。)现在您可以在两者之间切换IDE风格和毫无风格的风格

\documentclass{minimal}
\usepackage{listings,xcolor}
\begin{document}

\lstdefinestyle{my IDE setting}{
    language=Asymptote,
    identifierstyle=\color{purple}
}
\lstdefinelanguage{Asymptote}{
    keywords={draw,fill},
    morecomment=[l]{//}
}

\lstset{style=my IDE setting}
\lstinline{123 hello world 456}

\lstset{style=}
\lstinline{123 hello world 456}

\end{document}

答案2

根据@jubobs的建议,一个解决方案是定义一个none重置全局定义的样式的语言名称。

\documentclass{最小}
\usepackage{列表}
\usepackage{xcolor}
\lstset{identifierstyle=\color{紫色}}
\lstdefinelanguage{无}{
  标识符样式=
}
\开始{文档}
\lstset{语言=无}
\开始{列表}
123 你好世界 456
\结束{列表}
\结束{文档}
在此处输入图片描述

相关内容