Newer
Older
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
Стиль LaTeX для оформления отчетов о НИР, расчётно-пояснительной записки к курсовым и дипломным работам (ГОСТ 7.32-2001 и ГОСТ РВ 15.110-2003)
===========
Ориентирован на студентов IT специальностей, научных работников и др. кому необходимо составлять документы по ГОСТ 7.32-2001 или ГОСТ РВ 15.110-2003.
Изначально был написан в расчёте на `pdfLaTeX`, с коммита `23b1612` добавлена поддержка `XeLaTeX`. Помимо стилей содержит "рыбу" РПЗ (в той же папке `tex`).
Также имеются необходимые макеты (layout) для [LyX](http://ru.wikipedia.org/wiki/LyX) (редактор, редактирование в котором больше похоже на работу в `Microsoft Word`, чем на написание `LaTeX` кода, но результат получается такой же хороший, как в `LaTeX`). Для использования `LyX` также нужно скопировать стили LaTeX (из папки `tex`).
## Результат
См. вкладку [Релизы](https://github.com/rominf/latex-g7-32/releases).
### Попробовать online
Спасибо [@KMax](https://github.com/rominf/latex-g7-32/issues/11), теперь [можно попробовать](https://www.sharelatex.com/project/54885f204b9308be064f025e) шаблон в ShareLaTeX.
## Участие в проекте
Стиль распространяется "как есть". В случае обнаружения несостыковок с ГОСТом, обнаружении багов, а также если есть вопросы по использованию, не отражённые в документации, заводите, пожалуйста, issue. Pull requests принимаются.
## Установка
Скачать последнюю версию.
C помощью git:
```
git clone https://github.com/latex-g7-32/latex-g7-32
```
Или скачать zip:
```
https://github.com/latex-g7-32/latex-g7-32/archive/master.zip:
```
Или взять из [релизов](https://github.com/rominf/latex-g7-32/releases).
Однако, релизы формируются с течением времени и могут содержать существенно устаревшую версию.
Скопировать файлы:
`G2-105.sty G7-32.cls G7-32.sty GostBase.clo gosttitleGostRV15-110mipt.sty gosttitleGostRV15-110.sty local-minted.sty` в локальный texmf.
Для линукс это будет `$HOME/texmf/`.
Для Виндовс `C:\Users\USERNAME\texmf\`.
Проверить это можно командой `kpsewhich -var-value=TEXMFHOME`.
Относительно texmf путь будет `texmf/tex/latex/latex-g7-32/`.
### Зависимости
#### Основные для стилевого файла
##### LaTeX пакеты
```
amssymb amsmath caption flafter footmisc hyperref icomma iftex graphicx longtable underscore etoolbox lastpage titlesec flafter amssymb amsmath color mfirstuc nomencl
```
###### openSUSE
```
texlive-latex texlive-iftex
```
#### pdfLaTeX-версия
##### LaTeX пакеты
```
cmap babel mathtext pscyr ucs
```
Для придания таймовского вида нужно установить соотв. шрифты (пакет `cyrtimes.sty`), в Debian/Ubuntu это пакет `scalable-cyrfonts-tex`. Если этого пакета нет, оно использует стандартную гарнитуру CM.
#### XeLaTeX-версия
##### LaTeX пакеты
```
cm-unicode-fonts minted polyglossia xecyr
```
###### openSUSE
```
cm-unicode-fonts texlive-minted texlive-polyglossia texlive-xecyr
```
##### Программы
```
inkscape dia graphviz python pygments
```
#### LyX
```
lyx
```
#### Установочный скрипт
```
python3.4
```
На текущий момент не работает см. [#26](https://github.com/rominf/latex-g7-32/issues/11).
Копирует (или перемещает) файлы со стилями в общую `texmf` папку, макеты `LyX` в папку с настройками `LyX`. Для получения помощи вызовите `install.py --help`.
## Использование РПЗ
После изменения РПЗ создайте директорию build в корне проекта, затем `cd ./build & cmake .. && make`. В ней появится файл РПЗ - rpz.pdf. Cmake по умолчанию собирает с xelatex.
После изменения РПЗ запустите `make` в корне. Результатом будет `rpz.pdf`. Если требуется использование `pdfLaTeX` то в `Makefile` надо поменять в третье строке `xelatex` на `pdflatex`.
### Редактор
Можно использовать любой редактор, например, `Kile`. На комманду `cd .. && make` вешается горячая клавиша и создаётся проект с корректным главным документом.
## Установка и использование под Windows
Для работы в Windows необходимо установить следующие зависимости:
1. [dwimperl](http://dwimperl.com/windows.html)
2. [texlive](https://www.tug.org/texlive/windows.html)
3. [inkscape](https://inkscape.org/ru/download/)
4. [dia](http://dia-installer.de/)
5. [graphviz](http://www.graphviz.org/Download_windows.php)
6. [ghostscript](https://ghostscript.com/download/gsdnld.html)
7. [babun](http://babun.github.io/) — не обязательно.
8. [cmake](https://cmake.org/download/) — не обязательно при использовании
`babun`, обязательно при работе без него. В случае с `babun` нужно
использовать `pact install cmake`, а не самостоятельную установку из
установщика на сайте. В любом случае необходимо либо иметь babun+make, либо
babun+cmake, либо cmake.
Внимание: CMake не собирает ничего сам, он генерирует скрипты для make (и
ряда других программ), только он умеет использовать разные диалекты: nmake
(из Visual Studio), mingw32-make, MSYS make, … Поэтому что‐то из этого нужно
также установить. На данный момент сборка проверялась для `babun+cmake`,
`babun+make` и просто нативного `cmake`. В последнем случае использовалась
утилита `make` из пакета WinAVR, идентифицирующаяся как GNU make.
9. [python](https://www.python.org/downloads/windows/) — при использовании babun
не нужно, он уже установлен там.
После установки python установить его пакет pygments.
После установки всех зависимостей необходимо добавить их в $PATH. Установщики
некоторых (texlive, cmake и dwimperl) делают это сами (но, возможно, требуется
установка галочки), для остальных нужно редактировать реестр, либо изменять PATH
временно. В PATH помещаются каталоги, в которых находятся следующие файлы:
`inkscape.exe`, `dia.exe`, `dot.exe`, `python.exe`.
Ghostscript предоставляет файлы gswin32.exe и gswin32c.exe, однако для работы
нужно иметь файл gs.exe или gs.bat где‐то в $PATH. В случае с bat файл должен
выглядеть так:
```bat
@echo off
P:\ath\to\ghostscript\gswin32c.exe %*
```
(ВНИМАНИЕ: именно `gswin32c.exe`, не `gswin32.exe`.) Можно просто скопировать
`gswin32c.exe` в `gs.exe` и добавить каталог с ними в `$PATH`.
В случае использования python из babun вам дополнительно нужен в `$PATH`
`pygmentize.bat` следующего содержания:
```bat
@echo off
C:\Users\{user}\.babun\cygwin\bin\python2.7.exe C:\Users\{user}\.babun\cygwin\bin\pygmentize %*
```
(замените `{user}` на своего пользователя). Что нужно в случае использования
python без babun я не знаю, но исполняемый файл pygmentize должен быть
в `$PATH`.
После того, как `$PATH` станет содержать пути ко всем необходимым исполняемым
файлам можно будет использовать выбранную систему сборки для создания PDF‐файла.
В случае с babun+[c]make:
1. Откройте babun.
2. Войдите в каталог с проектом с помощью `cd /path/to/latex-g7-32`.
3. При использовании cmake:
1. Создайте каталог build: `mkdir build`.
2. Войдите в него: `cd build`.
3. Соберите проект: `cmake .. && make`. PDF появится
в `/path/to/latex-g7-32/build/rpz.pdf` (он же rpz.pdf в текущем каталоге).
4. При изменении tex файлов и картинок/диаграмм/… можно собирать просто
с помощью `make`.
5. При *добавлении* файлов/картинок/диаграмм нужно опять использовать `cmake
..` перед `make`.
6. Для очистки от сгенерированных файлов можно просто удалить каталог
`build`.
При использовании `make`:
1. Проект (пере)собирается просто `make`. PDF появится
в `/path/to/latex-g7-32/rpz.pdf`.
2. Для очистки от сгенерированных файлов можно использовать `make clean`.
Проверяйте их наличие с помощью `git status --ignored`, временные файлы не
сконцентрированы в одном каталоге в этом случае.
Нативный CMake:
1. Откройте `cmd.exe`.
2. Войдите в каталог с проектом с помощью:
1. `D:`, где `D:` — буква диска, на котором лежит проект. Данная часть
предназначена для переключения текущего диска: в `cmd.exe` у каждого диска
свой текущий каталог, текущий каталог `cmd.exe` является текущим каталогом
текущего диска.
Под `D:` здесь понимается буквально: “введите команду `D:` и нажмите
ввод”.
2. `cd D:\path\to\latex-g7-32`.
3. Создайте каталог `build`: `mkdir build`.
4. Войдите в него: `cd build`.
5. Запустите `cmake ..`. Т.к. в отличие от \*nix систем (cygwin (babun) можно
считать относящимся к таковым в определённой степени) на Windows нет
«стандартного make», то вполне возможно, что просто `cmake ..` сделает не то,
что нужно. Для GNU make из WinAVR, использовавшегося автором нужно было
использовать команду `cmake .. -G "Unix Makefiles"`. Список возможных
генераторов можно получить либо [на сайте CMake][cgens], либо указав `cmake`
заведомо несуществующий генератор: к примеру, `cmake -G
xxx_nonexistent_generator_xxx` (внимание, поведение может измениться в новой
версии CMake). На сайте информация предоставлена более подробно.
6. Запустите `make`. В зависимости от того, какой генератор есть у вас в системе
вместо `make` может оказаться `nmake` (распространяется с Visual Studio,
соответствует `cmake .. -G "NMake Makefiles"`) или `mingw32-make`
(распространяется с компилятором mingw32, соответствует `cmake .. -G "MinGW
Makefiles"`).
PDF файл появится в текущем каталоге (т.е. `D:\path\to\latex-g7-32\build`)
под названием `rpz.pdf`.
[cgens]: https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html
## Сборка с использованием Docker
После установки и настройки docker (обратитесь к документации вашего
дистрибутиве) создайте образ:
```Shell
cd /path/to/latex-g7-32
cd docker
docker build -t somename .
```
Все необходимые зависимости будут установлены внутри образа.
Затем сборку можно будет осуществлять следующим образом:
```Shell
rm -f /path/to/latex-g7-32/results
docker run --volume /path/to/latex-g7-32/:/doc/ somename
```
Созданные файлы появятся в каталоге `/path/to/latex-g7-32/results`, его
необходимо удалять перед пересборкой. При сборке этим методом шаблон собирается
четырьмя способами: (make, cmake) × (pdflatex, xelatex), если вам достаточно
какого‐то одного, то можно изменить `docker/build.sh`.
## Альтернативная система сборки
Имеется также альтернативная система сборки с помощью модифицированного скрипта [latexmkmod](https://github.com/dvarubla/latexmkmod).
Минимальные требования: сам скрипт и TeX Live.
Сначала нужно установить этот скрипт. На Linux достаточно скопировать файл `latexmkmod.pl` в utils/latexmkmod. На Windows в дополнение к этому ещё нужно добавить в `PATH` интерпретатор Perl. Он обычно включён в TeX Live, может находиться, например, в C:\texlive\2017\tlpkg\tlperl\bin
Для сборки выполнить либо `build.sh` (Linux), либо `build.bat` (Windows): создастся директория build и в ней будет PDF файл.
Если в командной строке указать опцию `-bd mybuilddir`, то выходные файлы будут в директории mybuilddir. Если указана опция `-up`, то используется PdfLaTeX вместо XeLaTeX. Опция `-rcd ..` указывает относительный путь к текущей директории относительно директории с выходными файлами, полезно, если в Windows текущая директория содержит русские буквы.
Опции latexmk также доступны (например, `-c` убирает выходные файлы)
Если установлен только TeX Live, то вместо изображений dot, dia, svg отобразятся заглушки и листингов с кодом не будет. Чтобы появились изображения, нужно установить Graphviz, Dia и Inkscape.
Чтобы появились листинги кода при использовании XeLaTeX, нужно дополнительно установить: Python 2 и Pygments (`pip install pygments`). Если используется PdfLaTeX, нужно установить iconv.
Пути к исполняемым файлам всех программ должны быть в `PATH`, при необходимости нужно их добавить туда вручную. Пример содержимого этой переменной:
`C:\Python27\;C:\Python27\Scripts;C:\texlive\2017\tlpkg\tlperl\bin;C:\texlive\2017\bin\win32;C:\Program Files (x86)\GnuWin32\bin;C:\Program Files\Inkscape;C:\Program Files (x86)\Dia\bin;C:\Program Files (x86)\Graphviz2.38\bin;`
## Использование LyX
Откройте `lyx/rpz.lyx` и редактируйте.
В первый раз необходимо настроить параметры вызова XeLaTeX, для того, чтобы `minted` работал.
Настроки -> Обработка файлов -> Конверторы -> LaTeX (XeTeX) -> PDF (XeTeX) -> Изменить -> Преобразователь: `xelatex -shell-escape $$i`.
## Шрифты
В отчёте можно использовать свободный аналог Times New Roman - PT Astra, они находятся в репозитории в каталоге fonts.
На линуксе устанавливаются в `$HOME/.fonts/` затем выполнить команды `fc-cache -f -v` и `luaotfload-tool -u -f`.
На Windows шрифты нужно скопировать в каталог C:\Windows\Fonts и также желательно выполнить команду `fc-cache -f -v`, чтобы документ, использующий шрифты, быстрее компилировался.
Опции класса документа, устанавливающие шрифты:
1. При использовании XeLaTeX:
1. `astra` (по умолчанию) — свободные шрифты Astra Sans, Astra Serif, Liberation Mono.
2. `times` — Шрифты Times New Roman, Arial, Courier New. Необходимо, чтобы у вас был подписан лицензионный договор с правообладателем шрифтов — компанией Monotype Imaging Inc.
3. `cm` — Шрифты CMU, которые обычно включены в TeX Live.
2. При использовании PdfLaTeX:
1. `times` (по умолчанию) — шрифты из пакета cyrtimes: Nimbus Roman и Nimbus Sans.
2. `pscyr` — шрифты из пакета pscyr: Antiqua PSCyr, Textbook PSCyr, ERKurier PSCyr.
3. `cm` — шрифты CM, которые обычно включены в TeX Live.
Если какой-то шрифт не найден, то вместо него будет использоваться соответствующий шрифт CM.
Эти опции нужно задавать в `\documentclass`, например так: `\documentclass[utf8x, times, 14pt]{G7-32}`
## Печать
Для подготовки к печать варианты сборки с помощью Makefile и CMake имеют цель
`printpdfs`. При её использовании (`make printpdfs` либо из корня репозитория,
либо из каталога build в случае CMake) дополнительно создаётся до трёх PDF
файлов рядом с `rpz.pdf`: `rpz.gs.pdf`, `rpz.gs-color.pdf` и `rpz.gs-gray.pdf`:
- `rpz.gs.pdf` содержит все страницы, как и `rpz.pdf`, но использует меньше
возможностей PDF: известно, что при печати `rpz.pdf` средствами некоторых
принтеров, поддерживающих печать PDF с flash‐карты с графов может пропасть
русский текст.
- `rpz.gs-color.pdf` гарантированно содержит все «цветные» страницы, а также
некоторые нецветные — inkscape создаёт чёрно‐белые PDF, которые ghostscript
почему‐то считает нужным печатать цветными красками.
- `rpz.gs-gray.pdf` содержит страницы, которые можно печатать, имея только
чёрную краску.
Для работы `printpdfs` требуется наличие ghostscript (команд `gs` или
`gswin32c`).
## Авторы
### 1. Первая версия
Алексей Томин
### 2. Доработка "дебианщика"
[Михаил Конник](http://mydebianblog.blogspot.ru/2008/09/732-2001-latex.html)
### 3a. Доработка кафедры [ИУ7](http://iu7.bmstu.ru)
|[Всеволод Крищенко](http://web.archive.org/web/20100424031801/http://sevik.ru/latex/)|
-------------------
[Иван Коротков](https://github.com/tw33dl3dee)
#### Changelog
```
1. Заработали cases и tabular;
2. Добавлена опция utf8;
3. Комментарии в UTF-8;
4. Изменены отступы после тире в description;
5. Добавлен \paragraph;
6. Уменьшены отспупы после заголовков и учеличены --- до (хотя это, возможно, и нарушает 7-32);
7. Сделаны отсупы в оглалвнеии (ГОСТ эту тему обходит, как мы поняли);
8. \normalfont;
9. Добавлен раздел "Приложения".
9. Makefile для автоматизации рутины;
10. Рисунки (обрезка, конвертация dia, dot, svg);
11. Стили для листингов;
12. Разные мелочи.
```
### 3b. Добавление layouts LyX
[Расим (Brotherofken)](http://habrahabr.ru/post/116517/)
### 4. GitHub, поддержка XeLaTeX, LyX
[Роман Инфлянскас](https://github.com/rominf)
### 5. Further fixes, tweaks and development
According to the requirements of
ГОСТ 7.32-2001 ред. 2009 года.pdf and some other random wishes.
-- Ivan Zakharyaschev <imz@altlinux.org>.
(Read the git log... I tried to explain each change clearly.)
### 6a. Сборка под при помощи Сmake, Windows+cygwin, CMakeLists.txt, а также сборка с docker
[Николай Павлов](https://github.com/ZyX-I)
### 6b. Сборка при помощи [latexmkmod](https://github.com/dvarubla/latexmkmod), Windows+Linux,
[dvarubla](https://github.com/dvarubla)
## Благодарности
[Ростислав Листеренко](https://github.com/kaedvann) (сообщения об ошибках)
Стиль разрабатывается при поддержке ["Дизайн-центр МФТИ"](http://miptdesigncenter.tilda.ws), [НТКТеХЛАБ](http://ntktechlab.org).
## См. также
### Статьи
[Записки дебианщика](http://mydebianblog.blogspot.nl/2008/11/latex.html)
### Репозитории
[@qrilka: порт второй версии на `XeLaTeX`](https://github.com/qrilka/G7-32)
[@petethepig: порт урезанной третьей версии ("под себя") на `XeLaTeX`](https://github.com/petethepig/diploma)
### Классы LaTeX для написания диссертаций
[Russian-Phd-LaTeX-Dissertation-Template](https://github.com/AndreyAkinshin/Russian-Phd-LaTeX-Dissertation-Template)
[Класс для диссертаций disser](https://github.com/polariton/disser)