如何突出显示(着色)配置文件(如 .ini 或 .conf)的语法?

如何突出显示(着色)配置文件(如 .ini 或 .conf)的语法?

我需要在 LaTeX 中突出显示包含参数行及其值的文件的语法。假设我有以下文件:

# some comment
parameter1 = value of parameter1
parameter2 = some another value
# and so on ...

是否可以用三种颜色来着色:一种用于注释,一种用于参数名称,一种用于其值?

答案1

如果有人感兴趣的话,这里有一个 ConTeXt 解决方案。vim模块使用 vim 编辑器提供语法高亮,它支持大量语言,因此无需创建自己的解析样式。

\usemodule[vim]

\definevimtyping[INI][syntax=dosini]


\starttext
\startINI
# some comment
parameter1 = value of parameter1
parameter2 = some another value
# and so on ...
\stopINI
\stoptext

这使

在此处输入图片描述

vim 模块自动缓存结果,因此不会造成明显的性能损失。

答案2

为了给你一个起点,我制作了以下 MWE 来展示包的可能性listings。第一个例子展示了如何在包中使用现有的语言listings,第二个例子展示了如何定义一种新的语言username与包一起使用listings来突出显示代码。

\documentclass{article}

\usepackage{listings}
\usepackage{xcolor,showframe}

\lstdefinestyle{ConfigFiles}{% define own style
  language={[LaTeX]TeX},
  basicstyle=\small\ttfamily,
  linewidth=0.9\linewidth,
  breaklines=true,
  keywordstyle=\color{blue}\bfseries,
  identifierstyle=\color{magenta},
  commentstyle=\color{cyan},
  backgroundcolor=\color{yellow!10},
  tabsize=2,
  morekeywords = {parameter},
}

\lstdefinelanguage{username}{% new language for listings
  morekeywords={parameter1,parameter2,wert},
  sensitive=false,
  morecomment=[l]{\#},      % comment
  morestring=[b]",          % string def
}

\begin{document}

First example with \texttt{lstlisting} and language \LaTeX:

\begin{lstlisting}[style=ConfigFiles]
% File name.tex
\documentclass{article}
\usepackage{listings}
\lstdefinestyle{ConfigFiles}{
  language={[LaTeX]TeX},       % comment
  keywordstyle=\color{blue},   % comment
  basicstyle=\small\ttfamily,
  tabsize=2,
  parameter=wert,
  morekeywords = {parameter},
}
\begin{document}               % comment
Text "text" text               % comment
\end{document}
\end{lstlisting}

Second example with new language \texttt{username}:

\begin{lstlisting}[language={username},keywordstyle=\color{blue},stringstyle=\color{green}]
# some comment
parameter1 = value of parameter1
parameter2 = some another value
parameter3 = wert
# and so on "and so on" ...
\end{lstlisting}

\end{document} 

相关内容