forked from latex-g7-32/latex-g7-32
-
Notifications
You must be signed in to change notification settings - Fork 0
/
listings.inc.tex
76 lines (67 loc) · 2.75 KB
/
listings.inc.tex
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
% 8 Листинги
\usepackage{listings}
% Значения по умолчанию
\lstset{
basicstyle= \footnotesize,
breakatwhitespace=true,% разрыв строк только на whitespacce
breaklines=true, % переносить длинные строки
% captionpos=b, % подписи снизу -- вроде не надо
inputencoding=koi8-r,
numbers=left, % нумерация слева
numberstyle=\footnotesize,
showspaces=false, % показывать пробелы подчеркиваниями -- идиотизм 70-х годов
showstringspaces=false,
showtabs=false, % и табы тоже
stepnumber=1,
tabsize=4, % кому нужны табы по 8 символов?
frame=single
}
% Стиль для псевдокода: строчки обычно короткие, поэтому размер шрифта побольше
\lstdefinestyle{pseudocode}{
basicstyle=\small,
keywordstyle=\color{black}\bfseries\underbar,
language=Pseudocode,
numberstyle=\footnotesize,
commentstyle=\footnotesize\it
}
% Стиль для обычного кода: маленький шрифт
\lstdefinestyle{realcode}{
basicstyle=\scriptsize,
numberstyle=\footnotesize
}
% Стиль для коротких кусков обычного кода: средний шрифт
\lstdefinestyle{simplecode}{
basicstyle=\footnotesize,
numberstyle=\footnotesize
}
% Стиль для BNF
\lstdefinestyle{grammar}{
basicstyle=\footnotesize,
numberstyle=\footnotesize,
stringstyle=\bfseries\ttfamily,
language=BNF
}
% Определим свой язык для написания псевдокодов на основе Python
\lstdefinelanguage[]{Pseudocode}[]{Python}{
morekeywords={each,empty,wait,do},% ключевые слова добавлять сюда
morecomment=[s]{\{}{\}},% комменты {а-ля Pascal} смотрятся нагляднее
literate=% а сюда добавлять операторы, которые хотите отображать как мат. символы
{->}{\ensuremath{$\rightarrow$}~}2%
{<-}{\ensuremath{$\leftarrow$}~}2%
{:=}{\ensuremath{$\leftarrow$}~}2%
{<--}{\ensuremath{$\Longleftarrow$}~}2%
}[keywords,comments]
% Свой язык для задания грамматик в BNF
\lstdefinelanguage[]{BNF}[]{}{
morekeywords={},
morecomment=[s]{@}{@},
morestring=[b]",%
literate=%
{->}{\ensuremath{$\rightarrow$}~}2%
{*}{\ensuremath{$^*$}~}2%
{+}{\ensuremath{$^+$}~}2%
{|}{\ensuremath{$|$}~}2%
}[keywords,comments,strings]
% Подписи к листингам на русском языке.
\renewcommand\lstlistingname{Листинг}
\renewcommand\lstlistlistingname{Листинги}