Видео ролики бесплатно онлайн

Free video online

Официальный сайт ejnews 24/7/365

Смотреть видео бесплатно

h0rr0rr_drag0n 24.04.2010 21:30

СкриптыСкрипт, подсвечивающий исходный код для LaTeX'а.

В одном прошлом посте был найден нормально работающий способ, позволяющий вставлять расцвеченный код в LaTeX документ при помощи утилиты source-highlight. Но есть один недостаток - приходится самому вызывать эту утилиту для множества исходных файлов, а затем копировать вывод утилиты или путь к полученному tex-файлу в свой основной LaTeX документ.
В результате, как тру-ленивый линуксоид, я написал скрипт, который делает часть основной работы за меня.

Скрипт ищет исходники в текущем каталоге, создает "подсвеченные" tex-файлы и выводит на консоль команды, которые стоит вставить в LaTeX документ, чтобы получить расцвеченные исходники.
При наличии в текущем каталоге одного файла main.c, мы получим следующий вывод:
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
main.c : C source file

==============================================================

Insert this commands to your LaTeX document:

% Listing for main.c
\begin{tabular}{p{130mm}}
\rowcolor<gray>{0.7} \textbf{Листинг:} main.c \\
\end{tabular}
\input{/home/drag0n/test/latex-colorized/main.c.tex}


==============================================================

insert this string to LaTeX preamble:
\usepackage<usenames>{color}
\usepackage{colortbl}
</usenames></gray>



В текущем каталоге, будет создан каталог latex-сolorized, с расцвеченным кодом. При вставке соответствующих строк в LaTeX документ, мы получим это:
=latex-output

В данный момент, скрипт поддерживает обработку исходников на C, Java и Bash. Добавить поддержку других языков достаточно просто путем добавления еще одной ветки в единственное условие выбора case/esac в скрипте.

Код скрипта:
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/bin/bash

SH=source-highlight
DIR=latex-colorized

if < ! -d "$DIR" >; then
mkdir $DIR &&gt; /dev/null
fi

for SOURCEFILE in *; do
EXTENSION=`echo $SOURCEFILE | sed -r 's/.+\.(.*)/\1/g'`
case $EXTENSION in
"c")
echo "$SOURCEFILE : C source file"
$SH --src-lang=c --out-format=latexcolor --input=$SOURCEFILE \
--output=$DIR/$SOURCEFILE.tex --line-number
;;
"h")
echo "$SOURCEFILE : Header file"
$SH --src-lang=c --out-format=latexcolor --input=$SOURCEFILE \
--output=$DIR/$SOURCEFILE.tex --line-number
;;
"java")
echo "$SOURCEFILE : Java source file"
$SH --src-lang=java --out-format=latexcolor --input=$SOURCEFILE \
--output=$DIR/$SOURCEFILE.tex --line-number
;;
"sh")
echo "$SOURCEFILE : Bash script file"
$SH --src-lang=bash --out-format=latexcolor --input=$SOURCEFILE \
--output=$DIR/$SOURCEFILE.tex --line-number
;;
esac
done

echo
echo "=============================================================="
echo
echo "Insert this commands to your LaTeX document:"
echo
cd $DIR
for FILE in *; do
echo '% Listing for '"`echo $FILE | sed -r 's/(.*)\.tex/\1/g'`"
echo '\begin{tabular}{p{130mm}}'
echo '\rowcolor<gray>{0.7} \textbf{Листинг:} '"`echo $FILE | sed -r 's/(.*)\.tex/\1/g'`"' \'
echo '\end{tabular}'
echo '\input{'`pwd`'/'$FILE'}'
echo
done

echo
echo "=============================================================="
echo
echo "insert this string to LaTeX preamble:"
echo '\usepackage<usenames>{color}'
echo '\usepackage{colortbl}'
echo
</usenames></gray>



Тэги: bash code latex
+ 5 -
Похожие Поделиться

digiwhite 24.04.2010 22:13 #
+ 2 -
Раскройте для меня, для подготовки чего это используется? Создание в конечном итоге бумажной документации по коду?
chemikadze 25.04.2010 10:19 #
+ 0 -
А для чего же еще?)
digiwhite 25.04.2010 10:29 #
+ 0 -
А подсветка синтаксиса тогда зачем? Хотя... в pdf сконвертировать же можно потом, так?
chemikadze 25.04.2010 10:35 #
+ 1 -
Или PostScript, по вкусу. Потом печатаем, получаем няшненькие исходники, препод/шеф/RMS доволен.
kstep 25.04.2010 02:36 #
+ 3 -
В коде нарушен принцип DRY. Надо как минимум вынести операцию:echo "$SOURCEFILE : Bash script file"
$SH --src-lang=bash --out-format=latexcolor --input=$SOURCEFILE \
--output=$DIR/$SOURCEFILE.tex --line-number
в отдельную процедуру.
cblp 25.04.2010 13:10 #
+ 1 -
Поддерживаю. И "--out-format=latexcolor --line-number" в $SH вписать.
chemikadze 25.04.2010 10:21 #
+ 2 -
Аффтар, спасибо. Как раз собирался в LaTeX верстать лабу, все думал как код подсвечивать.

Смотреть онлайн бесплатно

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн