Wie kann ich Code mit Ausrichtung und Syntaxhervorhebung auflisten?

Wie kann ich Code mit Ausrichtung und Syntaxhervorhebung auflisten?

Ich möchte Code effektiv in einer proportionalen Schriftart mit Syntaxhervorhebung und horizontaler Ausrichtung setzen. Wie kann ich das tun?

Das PaketInseratebietet Syntaxhervorhebung, aber keine Ausrichtung. Wenn ich eine proportionale Schriftart verwende, gibt es meines Wissens keine Möglichkeit, Text horizontal auszurichten.

Die UmgebungTabulatortasteermöglicht die Ausrichtung, aber keine automatische Syntaxhervorhebung. Wenn ich Farben haben möchte, muss ich sie manuell einfügen. Außerdem ist das Innere vonTabulatortasteist normaler Text, daher werden Anführungszeichen und Apostrophe geändert und Leerzeichen werden zu einem einzelnen Leerzeichen reduziert.

Ich habe es nicht geschafft, diese beiden Umgebungen zu kombinieren. Jedes Mal wurde es nicht kompiliert oder sah falsch aus.


Hier ist ein Beispiel, wie es aussehen soll. Ich habe es mit Tabulatoren, einigen Workarounds und manueller Hervorhebung erstellt.

Beispiel einer Codeauflistung in proportionaler Schriftart mit Ausrichtung und Syntaxhervorhebung

Wenn ich die Hervorhebungen und Workarounds entferne, lautet der Code wie folgt:

\begin{tabbing}
    (defclass request () \\
    \hspace{1.5em} \= ( \= (url \= :reader request-url \\
        \>  \>  \> :initarg :url \\
        \>  \>  \> :type string} \\
        \>  \>  \> :documentation "Request URL.") \\
        \>  \> (method \= :reader request-method \\
        \>  \>  \> :initarg :method \\
        \>  \>  \> :initform :get \\
        \>  \>  \> :type keyword\\
        \>  \>  \> :documentation "Request method, e.g :get, :post.") \\
        \>  \> (parameters \= :reader request-parameters \\
        \>  \>  \> :initarg :parameters \\
        \>  \>  \> :initform nil \\
        \>  \>  \> :type association-list \\
        \>  \>  \> :documentation "The request parameters, as an association list.")) \\
        \> (:documentation "A general HTTP request."))
\end{tabbing}

verwandte Informationen