From 0cc5200a21639a60d4cceb36a9001c1fd6ac1524 Mon Sep 17 00:00:00 2001 From: Sergei Mikhailov Date: Tue, 9 Jul 2019 15:22:36 +0300 Subject: [PATCH] readme update --- README.md | 395 ++----------------------------------------------- TODO.md | 25 ---- docs/README.md | 390 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 402 insertions(+), 408 deletions(-) delete mode 100644 TODO.md create mode 100644 docs/README.md diff --git a/README.md b/README.md index 09e0236..0e01cdb 100644 --- a/README.md +++ b/README.md @@ -1,390 +1,19 @@ -Стиль LaTeX для оформления отчетов о НИР, расчётно-пояснительной записки к курсовым и дипломным работам (ГОСТ 7.32-2001 и ГОСТ РВ 15.110-2003) -=========== +# Отчет НИРМА 2018-2019 (618268) -Ориентирован на студентов IT специальностей, научных работников и др. кому необходимо составлять документы по ГОСТ 7.32-2001 или ГОСТ РВ 15.110-2003. +Сборка итогового документа производится при помощи системы верстки XeLaTex. +Если необходимо создать pdf-файл на локальной машине, то инструкцию по сборке можно найти в `docs/readme.md`. -Изначально был написан в расчёте на `pdfLaTeX`, с коммита `23b1612` добавлена поддержка `XeLaTeX`. Помимо стилей содержит "рыбу" РПЗ (в той же папке `tex`). +## Необходимые файлы (и директории) для работы -Также имеются необходимые макеты (layout) для [LyX](http://ru.wikipedia.org/wiki/LyX) (редактор, редактирование в котором больше похоже на работу в `Microsoft Word`, чем на написание `LaTeX` кода, но результат получается такой же хороший, как в `LaTeX`). Для использования `LyX` также нужно скопировать стили LaTeX (из папки `tex`). +1. `graphics\img` - хранилище изображений +2. `src` - исходный код листингов +3. `tex` - .tex файлы. Сам отчет содержится в файлах формата `XX-.tex`, например `20-scenarios.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. +1. Создать собственную ветку от ветки "master" +2. Вносить изменения в своей ветке. Необходимо править или добавлять текст, вставлять картинки/листинги. Если есть возможность - то и верстать таблицы, в противном случае просто приложить в ветку doc-файл с таблицей. +3. При окончании изменений - послать pull request на слияние веток. -## Участие в проекте +## Распределение задач -Стиль распространяется "как есть". В случае обнаружения несостыковок с ГОСТом, обнаружении багов, а также если есть вопросы по использованию, не отражённые в документации, заводите, пожалуйста, 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 . - -(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) diff --git a/TODO.md b/TODO.md deleted file mode 100644 index 3910d50..0000000 --- a/TODO.md +++ /dev/null @@ -1,25 +0,0 @@ -* реализовать красиво исполнителей и руководителей (с местом для - подписи) -* исправить заголовок для Приложений (\chapter после \appendix) -* проверить межстрочные интервалы и пр. размеры по ГОСТ: - - межстрочные интервалы везде; - - размеры и расстояния между блоками на титульном листе и в списке - исполнителей; -* вариант титульного листа с СОГЛАСОВАНО вместо УТВЕРЖДАЮ -* проверить многостраничные таблицы (longtable): - - подписи продолжений - -* реализовать возможность продолжения титульного листа на - след.страницы (как сказано в ГОСТ) -* разобраться с вариантом титульного листа с одним исполнителем (как - сказано в ГОСТ) -* реализовать \part со своими титульными листами (как в примере в ГОСТ) - - Кстати, титульные листы получают номера страниц? - - Делать ли титульный лист сразу после \part или по явной команде \maketitle -* (в моих системах) провести эксперимент с подключением шрифтов Times на имеющихся системах -* "литературное программирование": оформить пакет (возможно, стандартным - образом как dtx) в виде вставок кода в текст ГОСТа -- чтобы можно - было читать и понимать чем в коде удовлетворяются какие требования - ГОСТа, а какие -- остаются нереализованными (к нашему удобству, его - хорошие люди в виде текста уже выложили - ) diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..09e0236 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,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 . + +(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) -- GitLab