Мені потрібно виділити вихідний код у LaTeX. Пакет, listings
здається, є найкращим вибором для більшості випадків використання, і для мене це було досі.
Однак зараз мені потрібна більша гнучкість. Взагалі те, що я шукаю, - це справжній лексер. Зокрема, мені потрібно (для власного визначення мови) визначити (і виділити!) Власні стилі чисел. listings
не дозволяє виділити числа в коді. Однак мені потрібно створити щось подібне:
listings
також не може впоратися з довільними роздільниками для рядків. Розглянемо наступний дійсний код Ruby:
s = %q!this is a string.!
Тут !
можна замінити практично будь-який роздільник.
(Це listings
не вдається вирішити Unicode також дуже неприємно, але це інша проблема.)
В ідеалі я шукаю розширення, listings
яке дозволяє мені надати більш складні правила лексингу. Але забороняючи це, я також шукаю життєздатні альтернативи.
Інші потоки запропонували використовувати Pygments, які можуть виробляти вихід LaTeX. Є навіть пакет - texments
- щоб полегшити перехід.
Однак у цьому гостро не вистачає можливостей. Зокрема, мене цікавлять listings
нумерація рядків -style, посилання на рядок вихідного коду та можливість вбудовування LaTeX у вихідний код (параметри texcl
та mathescape
в listings
).
Як приклад, ось набір вихідного коду, в listings
якому показано деякі речі, які також повинна забезпечувати заміна:
["Бічне доповнення", змінене з біт-твінглінг-хаків]