Skip to content

Автогенератор звітів для НУ "ЛП"

License

Notifications You must be signed in to change notification settings

miliukhin/lpnu_doc_templates

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Автогенератор звітів для НУ "ЛП"

Щоб моментально робити нудні документи.

Устрій:

  • parts/ --- Шаблони доків
    • звіт із шапкою
    • звіт із титульною сторінкою
    • презентація
    • першосеместровий звіт (malyota.tex)
  • settings/ --- Налаштування
    • baseinfo.tex --- Персональні настройки, обов'язкові до редагування
    • преамбула, настройки шрифтів та шаблони для pandoc
  • styles/ --- стилі бібліографій до використання з pandoc
  • bin/ --- скрипти
    • gen-report --- Скрипт-генерувальник доків
      1. визначає тип роботи за назвою каталога, в якому користувач його запускає.
      2. Копіює шаблон відповідного документа та підставляє в нього значення теж базуючись на шляху,і відкриває документ редактором текстів (визначеним змінною $EDITOR)
      3. Вставляє код і рисунки у документ.
    • compiler --- скрипт для компіляції документів
    • dirgen --- створює каталоги для робіт на кшталт дицсципліна/lab/lab_1

Setup

Спершу треба визначити середовищну змінну UNI, адже вона використовується і в шаблонах, і в скриптах:

export UNI="шлях/до/репо/з/макулатурою"

У мене --- "$HOME/Documents/uni".

Додайте це до профілю своєї оболонки (~/.profile, ~/.zprofile, ...).

Далі клонуємо цей репо в $UNI/.templates:

git clone https://github.com/miliukhin/lpnu_doc_templates $UNI/.templates

Скрипти переносите куди вам зручно, або можете клонувати мої конфіги з репозиторія https://github.com/miliukhin/dots. Тоді вони будуть у ~/.local/bin/.

Вставте свої дані (прізвище, ім'я, групу, дисципліни й викладачів, які приймають роботи з них) в файл settings/baseinfo.tex.

Usage

Генерування звітів базується на шляхах, тому шляхи до робіт мають бути або $UNI/дисципліна/тип_номер або $UNI/дисципліна/тип/тип_номер .

Для початку створімо в $UNI каталог для робіт із якоїсь дисципліни. Наприклад, захист інформації: infosec, і в ній каталог lab_1. Шлях буде такий:

/home/sasha/Documents/uni/infosec/lab_1
^-------$UNI------------^ |       |   ^- номер роботи
                          |       - тип роботи
                          - дисципліна

Можна згенерувати скільки завгодно номерів робіт за допомогою скрипта dirgen. Я так і роблю, бо так і швидко, і завжди дотримана структура шляху.

Коли ми запускаємо gen-report у каталозі infosec/lab_1, скрипт підставляє в документ infosec як дисципліну, Lab як тип роботи і 1 як її номер:

- \newcommand\Type{\Lab}
- \Work{infosec}
- \newcommand\Number{1}

Команда \Work визначена в baseinfo.tex, і для компіляції нам треба прописати в ній значення, які вона підставить у документ, отримавши аргумент infosec:

  • повну назву дисципліни,
  • тип роботи
  • викладача, який її приймає.

Тому в baseinfo.tex пишемо:

		{infosec}{
			\newcommand\Discipline{Інформаційна секта}
			\IfStrEqCase{\Type}{
				{\Lab}{
					\newcommand\Instructor{Інфосектант Володимирович}
				}
				{\Pract}{
					\newcommand\Instructor{<++>}
				}
			}
		}

Тепер можемо компілювати!

Компіляція

TeX

Для базової компіляції достатньо pdflatex, якщо хочете спеціальні шрифти --- збираєте за допомогою xelatex. В такому випадку для автоматичного під'єднання файлу font_styles.tex треба розкоментувати перевірку компілятора у преамбулі.

Для роботи пакунку minted потрібно встановити python-pygments надати компілятору аргумент -shell-escape.

У більшості випадків цієї команди достатньо:

pdflatex -shell-escape НАЗВА_ФАЙЛУ.tex

Markdown

Скористайтеся скриптом compiler із цього репо для збірки звітів, писаних мовою Markdown.

Бібліоґрафії

Шлях до бібліоґрафії та стилю її оформлення (необов'язково) можна вказати в метаданих документа:

bibliography: '/шлях/до/бібліографії.bib'
csl: /шлях/до/csl.csl

Або задавати параметрами:

pandoc --bibliography=refs.bib --csl=mystyle.csl -o out.pdf doc.md

До речі, за допомогою pandoc можна використовувати файли csl і з документами, зверстаними LaTeX.

Посилання

About

Автогенератор звітів для НУ "ЛП"

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published