Das listings
Paket hebt Schlüsselwörter im Quellcode automatisch hervor und sorgt für ein ansprechendes Aussehen. Ist es möglich, das Programm automatisch einzurücken? listings
Wenn beispielsweise in der folgende Code eingegeben wird,
#include<stdio.h>
void main()
{
printf("\n Hello World");
}
Die Ausgabe sollte
#include<stdio.h>
void main()
{
printf("\n Hello World");
}
Ist listings
das möglich und wenn ja, wie muss ich es konfigurieren?
Antwort1
Das listings
Paket stellt diese Funktionalität bereit; siehe Abschnitt 5.6 des Handbuchs. Stellen Sie sicher, dass der Aspekt geladen ist. Dies kann entweder durch Übergabe als Paketoption an formats
erfolgen ,formats
listings
\usepackage[formats]{listings}
oder mit dem \lstloadaspects
MakronachLaden des listings
Pakets,
\usepackage{listings}
...
\lstloadaspects{formats}
Verwenden Sie dann das \lstdefineformat
Makro, um ein „Format“ zu definieren, also Anweisungen, was listings
beim Auftreten bestimmter Zeichen geschehen soll. Die unten gezeigte Formatdefinition stammt direkt aus dem Handbuch.
Beachten Sie, dass diese Funktion experimentell bleibt. Laut Handbuch
Die automatische Formatierung des Quellcodes ist alles andere als gut. Erstens gibt es keine allgemeinen Regeln, wie Quellcode formatiert werden soll. Daher müssen „Formatdefinitionen“ flexibel sein. Diese Flexibilität erfordert eine komplexe Schnittstelle, einen leistungsstarken „Formatdefinitionsparser“ und viele Codezeilen im Hintergrund. Derzeit sind die Formatdefinitionen nicht flexibel genug (möglicherweise nicht die Definitionen, sondern die Ergebnisse).
\documentclass{article}
\usepackage[formats]{listings}
\lstdefineformat{C}
{
\{=\newline\string\newline\indent,%
\}=\newline\noindent\string\newline,%
;=[\ ]\string\space,%
}
\lstset{basicstyle=\ttfamily}
\usepackage{filecontents}
\begin{filecontents*}{sample.c}
#include<stdio.h>
void main()
{
printf("\n Hello World");
}
\end{filecontents*}
\begin{document}
\section*{``Raw'' listing}
\lstinputlisting{sample.c}
\section*{With automatic formatting}
\lstinputlisting[format=C]{sample.c}
\end{document}