用方括号突出显示代码

用方括号突出显示代码

我想在工作中显示一些 .ini 文件。ini 文件使用方括号。我尝试使用 \lstdefinelanguage,但我无法处理它。这是我之前尝试过的,据我所知它应该可以工作,但实际上却不行:

\documentclass{article}

\usepackage{color}
\usepackage{listings}

\lstdefinelanguage{Ini}
{
        tag=[s][],
        tagstyle=\color{blue}\bfseries,
        usekeywordsintag=true
}

\lstset{
    language=Ini
}

\begin{document}

\begin{lstlisting}
[test]
a=15
b=4
[test1]
c=25
d=5
[test2]
e=50
f=5
\end{lstlisting}

\end{document}

它看起来应该是这样的:

在此处输入图片描述

突出关键词背后的背景并不是那么必要,但却是一个很好的噱头。

我不明白的一个问题是 Latex 应该如何处理这种情况:

\begin{lstlisting}[language=Ini]
[test]
a=1
\end{lstlisting}

latex 的属性与内容怎么区别?

答案1

文档listings(第 44 页)提到,关键标签是特定于语言的(针对 HTML),因此您需要使其适用于您的语言

\documentclass{article}
\usepackage{xcolor}
\usepackage{listings}

\lstdefinelanguage{Ini}
{
  basicstyle=\ttfamily\small,
  columns=fullflexible,
  tag=[s]{[]},
  tagstyle=\color{blue}\bfseries,
  usekeywordsintag=true
}[html]

\lstset{
    language=Ini
}

\begin{document}

\begin{lstlisting}
[test]
a=15
b=4
[test1]
c=25
d=5
[test2]
e=50
f=5
\end{lstlisting}

\end{document}

在此处输入图片描述

关于你的最后一个问题,“LaTeX 应该如何处理这种情况”

\begin{lstlisting}[language=Ini]
[test]
a=1
\end{lstlisting}

lstlisting推迟逐字材料的处理,直到读取了的可选参数lstlisting

相关内容