6

I want to show some .ini file in my work. The ini file works with squared brackets. I try to use \lstdefinelanguage but I can't handle it. That is what I try before and in my understanding it should work but it doesn't:

\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}

That is how it should look:

enter image description here

Highlight the background behind the keywords wouldn't be that necessary but a nice gimmick.

An problem what I don't understand is how should Latex handle this case:

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

How can latex difference between the property and the content?

3
7

The listings documentation (page 44) mentions that the key tag is language specific (to HTML), so you need to make it available to your language

\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}

enter image description here

Regarding your last question,"how should LaTeX handle this case"

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

lstlisting postpones the processing for verbatim material until having read the optional argument for lstlisting.

1
  • Is there a way to have the equal sign highlighted in red? – Agostino Sep 8 '15 at 23:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.