Como posso listar o código com alinhamento e destaque de sintaxe?

Como posso listar o código com alinhamento e destaque de sintaxe?

Gostaria de compor efetivamente o código em uma fonte proporcional com realce de sintaxe e alinhamento horizontal. Como eu posso fazer isso?

O pacotelistagensoferece destaque de sintaxe, mas não alinhamento. Se eu usar uma fonte proporcional, não há como alinhar o texto horizontalmente, até onde eu sei.

O ambientetabulaçãopermite alinhamento, mas não realce automático de sintaxe. Se eu quiser ter cores, preciso colocá-las manualmente. Além disso, o interiortabulaçãoé texto normal, portanto, aspas e apóstrofos são alterados e o espaço em branco é reduzido a um único espaço.

Não consegui combinar esses dois ambientes. Todas as vezes, ele não compilava ou parecia errado.


Aqui está um exemplo de como deveria ser. Eu fiz isso com tabulação usando algumas soluções alternativas e realce manual.

exemplo de listagem de código em fonte proporcional com alinhamento e realce de sintaxe

Se eu remover o destaque e as soluções alternativas, o código será este:

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

informação relacionada