Я хотел бы эффективно набрать код пропорциональным шрифтом с подсветкой синтаксиса и горизонтальным выравниванием. Как это сделать?
Пакетспискипредлагает подсветку синтаксиса, но не выравнивание. Если я использую пропорциональный шрифт, то, насколько мне известно, нет возможности выровнять текст по горизонтали.
Окружающая средатабуляцияпозволяет выравнивание, но не автоматическую подсветку синтаксиса. Если я хочу иметь цвета, мне нужно вручную их туда поместить. Также внутритабуляция— это обычный текст, поэтому кавычки и апострофы изменяются, а пробелы сжимаются до одного пробела.
Мне не удалось объединить эти две среды. Каждый раз это не компилировалось или выглядело неправильно.
Вот пример того, как это должно выглядеть. Я сделал это с помощью табуляции, используя некоторые обходные пути и ручное выделение.
Если убрать выделение и обходные пути, то код будет таким:
\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}