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