Шаблон LaTeX для оформления отчетов о НИР, расчётно-пояснительной записки к курсовым и дипломным работам (ГОСТ 7.32-2017 и ГОСТ РВ 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 --recurse-submodules https://github.com/latex-g7-32/latex-g7-32
Или скачать zip:
https://github.com/latex-g7-32/latex-g7-32/archive/refs/heads/7.32-2017-dev.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:
mkdir build
.cd build
.cmake .. && make
. PDF появится
в /path/to/latex-g7-32/build/rpz.pdf
(он же rpz.pdf в текущем каталоге).make
.cmake ..
перед make
.build
.При использовании make
:
make
. PDF появится
в /path/to/latex-g7-32/rpz.pdf
.make clean
.
Проверяйте их наличие с помощью git status --ignored
, временные файлы не
сконцентрированы в одном каталоге в этом случае.Нативный 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 (обратитесь к документации вашего дистрибутиве) создайте образ:
latex_g7_32="/path/to/latex-g7-32"
docker build -t latex-g7-32 -f "$latex_g7_32/docker/Dockerfile" "$latex_g7_32"
Все необходимые зависимости будут установлены внутри образа.
Затем сборку можно будет осуществлять следующим образом:
gio trash "$latex_g7_32/results"
docker run --volume "$latex_g7_32":/doc latex-g7-32
Созданные файлы появятся в каталоге /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
).
Алексей Томин
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.)
Ростислав Листеренко (сообщения об ошибках)
Стиль разрабатывается при поддержке "Дизайн-центр МФТИ", НТКТеХЛАБ.
@qrilka: порт второй версии на XeLaTeX
@petethepig: порт урезанной третьей версии ("под себя") на XeLaTeX