Мне нужно выделить исходный код в LaTeX. Пакет listings
кажется лучшим выбором для большинства случаев использования, и для меня так было до сих пор.
Однако теперь мне нужно больше гибкости. Как правило, мне нужен настоящий лексер. В частности, мне нужно (для определения собственного языка) определить (и выделить!) Собственные стили чисел. listings
не позволяет выделять числа в коде. Однако мне нужно создать что-то вроде этого:
listings
также не справляется с произвольными разделителями для строк. Рассмотрим следующий допустимый код Ruby:
s = %q!this is a string.!
Здесь !
можно заменить почти любым разделителем.
(То, что listings
не может обрабатывать Unicode, тоже довольно неприятно, но это уже другая проблема.)
В идеале я ищу расширение listings
, которое позволяет мне предоставлять более сложные правила лексирования. Но кроме этого, я также ищу жизнеспособные альтернативы.
Другие темы предложили использовать Pygments, которые могут создавать выходные данные LaTeX. Существует даже пакет - texments
- для облегчения перехода.
Однако в этом катастрофически не хватает возможностей. В частности, меня интересуют нумерация строк в стиле listings
, ссылки на строки исходного кода и возможность встраивания LaTeX в исходный код (параметры texcl
и mathescape
в listings
).
В качестве примера приведем исходный код, набранный с listings
, в котором показаны некоторые вещи, которые должна предоставить замена:
[«добавление сбоку» изменено из взломов Bit Twiddling] < / sub>