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