Мне нужно выделить исходный код в LaTeX. Пакет, listingsкажется, лучший выбор для большинства вариантов использования, и для меня это было до сих пор.
Однако сейчас мне нужно больше гибкости. Вообще то, что я ищу, это настоящий лексер. В частности, мне нужно (для определения собственного языка) определить (и выделить!) Собственные стили чисел. listingsне позволяет выделять цифры в коде. Тем не менее, мне нужно произвести что-то вроде этого:

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