h0rr0rr_drag0n 24.04.2010 21:30
Скрипты — Скрипт, подсвечивающий исходный код для LaTeX'а.
В одном прошлом посте был найден нормально работающий способ, позволяющий вставлять расцвеченный код в LaTeX документ при помощи утилиты source-highlight. Но есть один недостаток - приходится самому вызывать эту утилиту для множества исходных файлов, а затем копировать вывод утилиты или путь к полученному tex-файлу в свой основной LaTeX документ.В результате, как тру-ленивый линуксоид, я написал скрипт, который делает часть основной работы за меня.
Скрипт ищет исходники в текущем каталоге, создает "подсвеченные" tex-файлы и выводит на консоль команды, которые стоит вставить в LaTeX документ, чтобы получить расцвеченные исходники.
При наличии в текущем каталоге одного файла main.c, мы получим следующий вывод:
В текущем каталоге, будет создан каталог latex-сolorized, с расцвеченным кодом. При вставке соответствующих строк в LaTeX документ, мы получим это:
В данный момент, скрипт поддерживает обработку исходников на C, Java и Bash. Добавить поддержку других языков достаточно просто путем добавления еще одной ветки в единственное условие выбора case/esac в скрипте.
Код скрипта:
digiwhite 24.04.2010 22:13 #
+ 2 -
Раскройте для меня, для подготовки чего это используется? Создание в конечном итоге бумажной документации по коду?
А подсветка синтаксиса тогда зачем? Хотя... в pdf сконвертировать же можно потом, так?
Или PostScript, по вкусу. Потом печатаем, получаем няшненькие исходники, препод/шеф/RMS доволен.
В коде нарушен принцип DRY. Надо как минимум вынести операцию:
echo "$SOURCEFILE : Bash script file"
$SH --src-lang=bash --out-format=latexcolor --input=$SOURCEFILE \
--output=$DIR/$SOURCEFILE.tex --line-number
в отдельную процедуру.
Поддерживаю. И "--out-format=latexcolor --line-number" в $SH вписать.
Аффтар, спасибо. Как раз собирался в LaTeX верстать лабу, все думал как код подсвечивать.