Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .github/workflows/compile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,10 @@ jobs:
steps:
- uses: actions/checkout@v3

- uses: cachix/install-nix-action@v31

- name: Compile PDF files
run: PREFIX=install make install
run: nix-shell --run "PREFIX=install make install"

- name: Upload PDF files
uses: actions/upload-artifact@v4
Expand Down
6 changes: 3 additions & 3 deletions Homeworks/homeworktemplate.sty
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,18 @@

% fonts
\setmainfont[
Path=/workdir/Fonts/computer-modern/,
Path=Fonts/computer-modern/,
BoldFont=cmunbx.ttf,
ItalicFont=cmunti.ttf,
BoldItalicFont=cmunbi.ttf,
]{cmunrm.ttf}
\setsansfont[
Path=/workdir/Fonts/computer-modern/,
Path=Fonts/computer-modern/,
BoldFont=cmunsx.ttf,
ItalicFont=cmunsi.ttf,
]{cmunss.ttf}
\setmonofont[
Path=/workdir/Fonts/Fira-Mono/,
Path=Fonts/Fira-Mono/,
Scale=0.8
]{FiraMono-Regular.ttf}

Expand Down
32 changes: 8 additions & 24 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ ROOT_DIR := $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
all \
build \
clean \
dockerimage \
help \
hw-1 \
hw-2 \
Expand Down Expand Up @@ -126,30 +125,15 @@ hw-3: hw-3.pdf
prj-auth-lib: prj-auth-lib.pdf
prj-enc-exch: prj-enc-exch.pdf

dockerimage:
docker build \
--build-arg UID=$(shell id -u) \
--build-arg GID=$(shell id -g) \
-t cppdevcourse/texlive:latest \
$(ROOT_DIR)

%.pdf: Dockerfile

define generate_pdf
$(MAKE) dockerimage
docker run \
--rm \
-u $(shell id -u):$(shell id -g) \
-v $(ROOT_DIR):/workdir/ \
-e TEXINPUTS='/workdir//:' \
cppdevcourse/texlive:latest \
latexmk \
-halt-on-error \
-shell-escape \
-verbose \
-lualatex \
-jobname=$(subst .pdf,,$2) \
$1
TEXINPUTS='$(shell pwd)//:' \
latexmk \
-halt-on-error \
-shell-escape \
-verbose \
-lualatex \
-jobname=$(subst .pdf,,$2) \
$1
endef

pr-1.pdf: \
Expand Down
2 changes: 1 addition & 1 deletion Presentations/3-Fundamental-types/fundamental_types.tex
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
\usepackage[flushleft]{threeparttable}
\usepackage{emoji}

\setemojifont{AppleColorEmoji.ttf}[Path=/workdir/Fonts/]
\setemojifont{AppleColorEmoji.ttf}[Path=Fonts/]

\renewcommand{\arraystretch}{1.2}

Expand Down
4 changes: 2 additions & 2 deletions Presentations/presentationtemplate.sty
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@

% fonts
\setsansfont[
Path=/workdir/Fonts/dejavu-sans/,
Path=Fonts/dejavu-sans/,
BoldFont=DejaVuSans-Bold.ttf,
ItalicFont=DejaVuSans-Oblique.ttf,
BoldItalicFont=DejaVuSans-BoldOblique.ttf,
]{DejaVuSans.ttf}
\setmonofont[
Path=/workdir/Fonts/Fira-Mono/,
Path=Fonts/Fira-Mono/,
BoldFont=FiraMono-Medium.ttf,
]{FiraMono-Regular.ttf}

Expand Down
6 changes: 3 additions & 3 deletions Projects/projectstemplate.sty
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,18 @@

% fonts
\setmainfont[
Path=/workdir/Fonts/computer-modern/,
Path=Fonts/computer-modern/,
BoldFont=cmunbx.ttf,
ItalicFont=cmunti.ttf,
BoldItalicFont=cmunbi.ttf,
]{cmunrm.ttf}
\setsansfont[
Path=/workdir/Fonts/computer-modern/,
Path=Fonts/computer-modern/,
BoldFont=cmunsx.ttf,
ItalicFont=cmunsi.ttf,
]{cmunss.ttf}
\setmonofont[
Path=/workdir/Fonts/Fira-Mono/,
Path=Fonts/Fira-Mono/,
Scale=0.8
]{FiraMono-Regular.ttf}

Expand Down
11 changes: 8 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,18 @@

## Зависимости

- Docker
- Пакетный менеджер [Nix](https://nix.dev/install-nix.html)

Все необходимые для генерации документов пакеты и система компьютерной верстки LuaTeX устанавливаются в docker-образ
автоматически при выполнении команд `make`.
Все остальные зависимости (texlive, GNU Make) устанавливаются при помощи Nix.

## Генерация документов

Для создания ad-hoc окружения с зависимостями проекта:

```sh
nix-shell
```

Для генерации всех pdf-файлов проекта в корневой директории проекта выполнить команду:

```sh
Expand Down
16 changes: 16 additions & 0 deletions shell.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
let
pkgsTarball = fetchTarball {
url = "https://github.com/NixOS/nixpkgs/tarball/nixos-25.05";
sha256 = "0555pg9zcr3aazyxqb6g6q8vq3lc5zz3rnqx8ga1i3bs2q04yb4q";
};
pkgs = import pkgsTarball {
config = {}; overlays = [];
};
in

pkgs.mkShellNoCC {
packages = with pkgs; [
texliveFull
gnumake
];
}