Стиль LaTeX для оформления отчетов о НИР, расчётно-пояснительной записки к курсовым и дипломным работам (ГОСТ 7.32-2001 и ГОСТ РВ 15.110-2003)
Ориентирован на студентов IT специальностей, научных работников и др. кому необходимо составлять документы по ГОСТ 7.32-2001 или ГОСТ РВ 15.110-2003.
Изначально был написан в расчёте на pdfLaTeX, с коммита 23b1612 добавлена поддержка XeLaTeX. Помимо стилей содержит "рыбу" РПЗ (в той же папке tex).
Также имеются необходимые макеты (layout) для LyX (редактор, редактирование в котором больше похоже на работу в Microsoft Word, чем на написание LaTeX кода, но результат получается такой же хороший, как в LaTeX). Для использования LyX также нужно скопировать стили LaTeX (из папки tex).
См. вкладку Релизы.
Спасибо @KMax, теперь можно попробовать шаблон в 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:
Или взять из релизов. Однако, релизы формируются с течением времени и могут содержать существенно устаревшую версию.
Скопировать файлы:
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/.
amssymb amsmath caption flafter footmisc hyperref icomma iftex graphicx longtable underscore etoolbox lastpage titlesec flafter amssymb amsmath color mfirstuc nomencl
texlive-latex texlive-iftex
cmap babel mathtext pscyr ucs
Для придания таймовского вида нужно установить соотв. шрифты (пакет cyrtimes.sty), в Debian/Ubuntu это пакет scalable-cyrfonts-tex. Если этого пакета нет, оно использует стандартную гарнитуру CM.
cm-unicode-fonts minted polyglossia xecyr
cm-unicode-fonts texlive-minted texlive-polyglossia texlive-xecyr
inkscape dia graphviz python pygments
lyx
python3.4
На текущий момент не работает см. #26.
Копирует (или перемещает) файлы со стилями в общую 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 необходимо установить следующие зависимости:
-
babun — не обязательно.
-
cmake — не обязательно при использовании
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. -
python — при использовании 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 файл должен выглядеть так:
@echo off
P:\ath\to\ghostscript\gswin32c.exe %*(ВНИМАНИЕ: именно gswin32c.exe, не gswin32.exe.) Можно просто скопировать
gswin32c.exe в gs.exe и добавить каталог с ними в $PATH.
В случае использования python из babun вам дополнительно нужен в $PATH
pygmentize.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:
-
Откройте babun.
-
Войдите в каталог с проектом с помощью
cd /path/to/latex-g7-32. -
При использовании cmake:
- Создайте каталог build:
mkdir build. - Войдите в него:
cd build. - Соберите проект:
cmake .. && make. PDF появится в/path/to/latex-g7-32/build/rpz.pdf(он же rpz.pdf в текущем каталоге). - При изменении tex файлов и картинок/диаграмм/… можно собирать просто
с помощью
make. - При добавлении файлов/картинок/диаграмм нужно опять использовать
cmake ..передmake. - Для очистки от сгенерированных файлов можно просто удалить каталог
build.
При использовании
make:- Проект (пере)собирается просто
make. PDF появится в/path/to/latex-g7-32/rpz.pdf. - Для очистки от сгенерированных файлов можно использовать
make clean. Проверяйте их наличие с помощьюgit status --ignored, временные файлы не сконцентрированы в одном каталоге в этом случае.
- Создайте каталог build:
Нативный CMake:
-
Откройте
cmd.exe. -
Войдите в каталог с проектом с помощью:
-
D:, гдеD:— буква диска, на котором лежит проект. Данная часть предназначена для переключения текущего диска: вcmd.exeу каждого диска свой текущий каталог, текущий каталогcmd.exeявляется текущим каталогом текущего диска.Под
D:здесь понимается буквально: “введите командуD:и нажмите ввод”. -
cd D:\path\to\latex-g7-32.
-
-
Создайте каталог
build:mkdir build. -
Войдите в него:
cd build. -
Запустите
cmake ... Т.к. в отличие от *nix систем (cygwin (babun) можно считать относящимся к таковым в определённой степени) на Windows нет «стандартного make», то вполне возможно, что простоcmake ..сделает не то, что нужно. Для GNU make из WinAVR, использовавшегося автором нужно было использовать командуcmake .. -G "Unix Makefiles". Список возможных генераторов можно получить либо на сайте CMake, либо указавcmakeзаведомо несуществующий генератор: к примеру,cmake -G xxx_nonexistent_generator_xxx(внимание, поведение может измениться в новой версии CMake). На сайте информация предоставлена более подробно. -
Запустите
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.
После установки и настройки docker (обратитесь к документации вашего дистрибутиве) создайте образ:
cd /path/to/latex-g7-32
cd docker
docker build -t somename .Все необходимые зависимости будут установлены внутри образа.
Затем сборку можно будет осуществлять следующим образом:
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.
Минимальные требования: сам скрипт и 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/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, чтобы документ, использующий шрифты, быстрее компилировался.
Опции класса документа, устанавливающие шрифты:
-
При использовании XeLaTeX:
astra(по умолчанию) — свободные шрифты Astra Sans, Astra Serif, Liberation Mono.times— Шрифты Times New Roman, Arial, Courier New. Необходимо, чтобы у вас был подписан лицензионный договор с правообладателем шрифтов — компанией Monotype Imaging Inc.cm— Шрифты CMU, которые обычно включены в TeX Live.
-
При использовании PdfLaTeX:
times(по умолчанию) — шрифты из пакета cyrtimes: Nimbus Roman и Nimbus Sans.pscyr— шрифты из пакета pscyr: Antiqua PSCyr, Textbook PSCyr, ERKurier PSCyr.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).
Алексей Томин
3a. Доработка кафедры ИУ7
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. Разные мелочи.
According to the requirements of ГОСТ 7.32-2001 ред. 2009 года.pdf and some other random wishes. -- Ivan Zakharyaschev [email protected].
(Read the git log... I tried to explain each change clearly.)
6b. Сборка при помощи latexmkmod, Windows+Linux,
Ростислав Листеренко (сообщения об ошибках)
Стиль разрабатывается при поддержке "Дизайн-центр МФТИ", НТКТеХЛАБ.
@qrilka: порт второй версии на XeLaTeX
@petethepig: порт урезанной третьей версии ("под себя") на XeLaTeX