diff options
26 files changed, 336 insertions, 0 deletions
diff --git a/templates/latex/presentation/%INIT_APPLICATION_NAME.tex b/templates/latex/presentation/%INIT_APPLICATION_NAME.tex new file mode 100644 index 0000000..a04a7dd --- /dev/null +++ b/templates/latex/presentation/%INIT_APPLICATION_NAME.tex @@ -0,0 +1,60 @@ +% LTeX: language=%INIT_LANGUAGE +\documentclass[ + a4paper, 12pt, + draft, + % final, + hyperref={ pdflang=%INIT_DATE_TIME_LANGUAGE }, +]{beamer} + +\input{headers/preamble.tex} +\input{headers/preamble_local.tex} + +\title{\textbf{%INIT_APPLICATION_NAME_STYLIZED}} +\author{%INIT_AUTHOR_NAME \\ +\href{mailto:%INIT_AUTHOR_EMAIL}{%INIT_AUTHOR_EMAIL}\\[1cm] +{\small Supervisor: TODO}} +\date{\DTMToday} + +% For the copyright section +\SetYears{%INIT_YEAR} +\SetAuthors{%INIT_AUTHOR_NAME} + +\logo{\includegraphics[height=1cm]{references/images/logo}} + +\usetheme[block=fill]{moloch} + +% \setbeameroption{hide notes} % Only slides +% \setbeameroption{show only notes} % Only notes +% \setbeameroption{show notes on second screen} % Both + +\pdfpcsetup{ + % Other settings can be package options, or can go here + duration=10, +} + +\makeatletter +\hypersetup{ + pdftitle={\@title}, + pdfsubject={}, + pdfauthor={\@authors}, + pdfkeywords={TODO}, +} +\makeatother + +\includeonly { + % lpm::next_chapter_includeonly_marker +} + +\begin{document} +\input{content/static/title} + +% lpm::next_chapter_marker + +\input{content/static/questions} + +\appendix +\begin{frame} + \printbibliography + \printindex +\end{frame} +\end{document} diff --git a/templates/latex/presentation/.envrc b/templates/latex/presentation/.envrc new file mode 120000 index 0000000..db044c7 --- /dev/null +++ b/templates/latex/presentation/.envrc @@ -0,0 +1 @@ +../../../common/.envrc \ No newline at end of file diff --git a/templates/latex/presentation/.gitignore b/templates/latex/presentation/.gitignore new file mode 100644 index 0000000..539b891 --- /dev/null +++ b/templates/latex/presentation/.gitignore @@ -0,0 +1,8 @@ +# build +/result +/build + +/resources.local + +# dev env +.direnv diff --git a/templates/latex/presentation/.reuse b/templates/latex/presentation/.reuse new file mode 120000 index 0000000..d538161 --- /dev/null +++ b/templates/latex/presentation/.reuse @@ -0,0 +1 @@ +../../../common/.reuse \ No newline at end of file diff --git a/templates/latex/presentation/README.md b/templates/latex/presentation/README.md new file mode 120000 index 0000000..d250a7b --- /dev/null +++ b/templates/latex/presentation/README.md @@ -0,0 +1 @@ +../../../common/README.md \ No newline at end of file diff --git a/templates/latex/presentation/build.sh b/templates/latex/presentation/build.sh new file mode 120000 index 0000000..4220aab --- /dev/null +++ b/templates/latex/presentation/build.sh @@ -0,0 +1 @@ +../../../common/scripts/latex/build.sh \ No newline at end of file diff --git a/templates/latex/presentation/cog.toml b/templates/latex/presentation/cog.toml new file mode 120000 index 0000000..a5be520 --- /dev/null +++ b/templates/latex/presentation/cog.toml @@ -0,0 +1 @@ +../../../common/cog.toml \ No newline at end of file diff --git a/templates/latex/presentation/content/static/questions.tex b/templates/latex/presentation/content/static/questions.tex new file mode 100644 index 0000000..40c3803 --- /dev/null +++ b/templates/latex/presentation/content/static/questions.tex @@ -0,0 +1,10 @@ +% LTeX: language=%INIT_LANGUAGE + +{ +\logo{} + +\begin{frame}[standout] + % TODO change to your needed language + \shadowtext{Questions?} +\end{frame} +} diff --git a/templates/latex/presentation/content/static/title.tex b/templates/latex/presentation/content/static/title.tex new file mode 100644 index 0000000..30ad3d9 --- /dev/null +++ b/templates/latex/presentation/content/static/title.tex @@ -0,0 +1,28 @@ +% LTeX: language=%INIT_LANGUAGE + +\maketitle + +% \begin{frame}{Content} +% \setbeamertemplate{section in toc}[sections numbered] +% \tableofcontents[hideallsubsections] +% \end{frame} + +\begin{frame}[fragile]{Copyright} + % TODO: Translate this section (or remove this comment, if your language of choice is English) + + This presentation is available under: + \begin{center} + \url{%INIT_HOME_PAGE} + \end{center} + + \makeatletter + Copyright \textcopyright{} \@authors{} \@years{}\\ + \ \\ + This work is licensed under the terms of the %INIT_SPDX_LICENSE_IDENTIFIER licence. + The licence text can be found online at \url{%INIT_LICENSE_URL}. + \ + \makeatother + + % TODO match the logo to your real license + \begin{center}\ccbysa\end{center} +\end{frame} diff --git a/templates/latex/presentation/flake.nix b/templates/latex/presentation/flake.nix new file mode 100644 index 0000000..8bdb11b --- /dev/null +++ b/templates/latex/presentation/flake.nix @@ -0,0 +1,139 @@ +{ + description = "%INIT_DESCRIPTION"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; + + treefmt-nix = { + url = "github:numtide/treefmt-nix"; + inputs = { + nixpkgs.follows = "nixpkgs"; + }; + }; + flake_version_update = { + url = "git+https://codeberg.org/soispha/flake_version_update.git"; + inputs = { + systems.follows = "systems"; + nixpkgs.follows = "nixpkgs"; + flake-utils.follows = "flake-utils"; + }; + }; + lpm = { + url = "git+https://codeberg.org/bpeetz/lpm.git"; + inputs = { + nixpkgs.follows = "nixpkgs"; + flake-compat.follows = "flake-compat"; + flake-utils.follows = "flake-utils"; + rust-overlay.follows = "rust-overlay"; + crane.follows = "crane"; + systems.follows = "systems"; + }; + }; + + # inputs for following + systems = { + url = "github:nix-systems/x86_64-linux"; # only evaluate for this system + }; + flake-compat = { + url = "github:edolstra/flake-compat"; + flake = false; + }; + flake-utils = { + url = "github:numtide/flake-utils"; + inputs = { + systems.follows = "systems"; + }; + }; + crane = { + url = "github:ipetkov/crane"; + inputs = { + nixpkgs.follows = "nixpkgs"; + }; + }; + rust-overlay = { + url = "github:oxalica/rust-overlay"; + inputs = { + nixpkgs.follows = "nixpkgs"; + flake-utils.follows = "flake-utils"; + }; + }; + }; + + outputs = { + self, + nixpkgs, + flake-utils, + treefmt-nix, + lpm, + flake_version_update, + ... + }: + flake-utils.lib.eachDefaultSystem (system: let + pkgs = nixpkgs.legacyPackages.${system}; + + # This version is set automatically on `cog bump --auto`; + version = "v%INIT_APPLICATION_VERSION"; # GUIDING VERSION STRING + + # TODO reduce to the needed ones + texlive = pkgs.texlive.combined.scheme-full; + + treefmtEval = import ./treefmt.nix {inherit treefmt-nix pkgs;}; + + build = pkgs.stdenv.mkDerivation { + pname = "%INIT_APPLICATION_NAME"; + inherit version; + src = ./.; + + buildInputs = [ + texlive + ]; + + # Run local + preferLocalBuild = true; + allowSubstitutes = false; + + buildPhase = '' + # TODO: I have no idea, why calling it with `./build.sh` does not work <2024-03-20> + bash ./build.sh + ''; + + installPhase = '' + install -D "./build/%INIT_APPLICATION_NAME.pdf" "$out/%INIT_APPLICATION_NAME.pdf"; + ''; + }; + in { + packages.default = build; + + checks = { + inherit build; + formatting = treefmtEval.config.build.check self; + }; + + formatter = treefmtEval.config.build.wrapper; + + devShells.default = pkgs.mkShell { + env = { + FONTCONFIG_FILE = pkgs.makeFontsConf { + fontDirectories = [ + "${pkgs.fira-mono}/share/fonts/opentype" + "${pkgs.fira}/share/fonts/opentype" + ]; + }; + }; + + packages = with pkgs; [ + cocogitto + reuse + flake_version_update.packages."${system}".default + lpm.packages."${system}".default + texlive + + wl-mirror + + zathura + + pdfpc + ]; + }; + }); +} diff --git a/templates/latex/presentation/git_template b/templates/latex/presentation/git_template new file mode 120000 index 0000000..50f92d9 --- /dev/null +++ b/templates/latex/presentation/git_template @@ -0,0 +1 @@ +../../../common/git_template \ No newline at end of file diff --git a/templates/latex/presentation/headers/preamble.tex b/templates/latex/presentation/headers/preamble.tex new file mode 120000 index 0000000..c042d48 --- /dev/null +++ b/templates/latex/presentation/headers/preamble.tex @@ -0,0 +1 @@ +../../../../common/latex/preamble.tex \ No newline at end of file diff --git a/templates/latex/presentation/headers/preamble/beamer b/templates/latex/presentation/headers/preamble/beamer new file mode 120000 index 0000000..5ab5a9c --- /dev/null +++ b/templates/latex/presentation/headers/preamble/beamer @@ -0,0 +1 @@ +../../../../../common/latex/preamble/beamer \ No newline at end of file diff --git a/templates/latex/presentation/headers/preamble/core b/templates/latex/presentation/headers/preamble/core new file mode 120000 index 0000000..f7f9f73 --- /dev/null +++ b/templates/latex/presentation/headers/preamble/core @@ -0,0 +1 @@ +../../../../../common/latex/preamble/core \ No newline at end of file diff --git a/templates/latex/presentation/headers/preamble/mod.tex b/templates/latex/presentation/headers/preamble/mod.tex new file mode 100644 index 0000000..a8d5fc7 --- /dev/null +++ b/templates/latex/presentation/headers/preamble/mod.tex @@ -0,0 +1,2 @@ +\input{headers/preamble/beamer/mod.tex} +\input{headers/preamble/core/mod.tex} diff --git a/templates/latex/presentation/headers/preamble_local.tex b/templates/latex/presentation/headers/preamble_local.tex new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/templates/latex/presentation/headers/preamble_local.tex diff --git a/templates/latex/presentation/init b/templates/latex/presentation/init new file mode 120000 index 0000000..6b3141c --- /dev/null +++ b/templates/latex/presentation/init @@ -0,0 +1 @@ +../../../common/init \ No newline at end of file diff --git a/templates/latex/presentation/init.local b/templates/latex/presentation/init.local new file mode 120000 index 0000000..e1f9d58 --- /dev/null +++ b/templates/latex/presentation/init.local @@ -0,0 +1 @@ +../../../common/inits/latex/init.local \ No newline at end of file diff --git a/templates/latex/presentation/lpm.toml b/templates/latex/presentation/lpm.toml new file mode 100644 index 0000000..56e40fb --- /dev/null +++ b/templates/latex/presentation/lpm.toml @@ -0,0 +1,37 @@ +main_file = "%INIT_APPLICATION_NAME.tex" + +[templates] +section = ''' +%! TEX root = ../../../%INIT_APPLICATION_NAME.tex +% LTeX: language=%INIT_LANGUAGE + +\begin{frame}{lpm::new_section_name} % lpm::current_date + \setbeamercolor{itemize/enumerate body}{fg=gray} + + \begin{enumerate}[<+-|alert@+>] + \item + \end{enumerate} +\end{frame} +''' + +chapter = """ +%! TEX root = ../../../%INIT_APPLICATION_NAME.tex +% LTeX: language=%INIT_LANGUAGE + +% Chapter (lpm::current_date) +\section{lpm::new_chapter_name} +""" + +figure = ''' +% LTeX: language=%INIT_LANGUAGE +\documentclass{standalone} + +\input{../headers/preamble.tex} +\input{../headers/preamble_local.tex} + +\begin{document} % lpm::current_date (lpm::new_figure_name) +\begin{tikzpicture} + \draw node[left] {ping?} (0,0) -- (3,0) node[right] {Pong!} ; +\end{tikzpicture} +\end{document} +''' diff --git a/templates/latex/presentation/present.sh b/templates/latex/presentation/present.sh new file mode 100755 index 0000000..19b17e5 --- /dev/null +++ b/templates/latex/presentation/present.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env sh + +killall swayidle +pgrep gammastep | xargs kill + +# This avoids the `task` run in the `.zshrc` +export NVIM="true" + +wl-mirror HDMI-A-1 & + +pdfpc --windowed=both ./build/%INIT_APPLICATION_NAME.pdf & +riverctl send-to-output -current-tags next + +# vim: ft=sh diff --git a/templates/latex/presentation/references/reference.bib b/templates/latex/presentation/references/reference.bib new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/templates/latex/presentation/references/reference.bib diff --git a/templates/latex/presentation/scripts/fix_notes.sh b/templates/latex/presentation/scripts/fix_notes.sh new file mode 100755 index 0000000..c5caf5b --- /dev/null +++ b/templates/latex/presentation/scripts/fix_notes.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env sh + +# Compiling this document with pdflatex, will leave all utf8 chars in the `\note`s +# mangled. But, `pdfpc` interprets them as markdown, thus replacing all of them with their +# respective html entities results in them looking correct in during the presentation. +# +# This script automatically replaces them in the source files. +# +# # Known Bugs +# It does not account for `\note`s spanning multiple lines. So, for example, this would not +# be fixed: +# ```latex +# \note { +# Ästhetik ist hierbei nicht mit den Wundern der Kunst zu verwechseln. +# } +# ``` + +rg '\\note' --files-with-matches | while IFS= read -r file; do + [ "$(basename "$file")" = "$(basename "$0")" ] && continue + + echo "Fixing: '$file'" + sed --in-place 's/^\(.*\)\\note\(.*\){\(.*\)}/printf "%s\\\\\\note%s{%s}" "\1" "\2" "$( echo "\3" | sed "s@ä@\\\ä\;@g" | sed "s@ö@\\\ö\;@g" | sed "s@ü@\\\ü\;@g" | sed "s@Ä@\\\Ä\;@g" | sed "s@Ö@\\\Ö\;@g" | sed "s@Ü@\\\Ü\;@g" | sed "s@ß@\\\ß\;@g" | sed "s@→@\\\&rarr\;@g" )"/eg' "$file" +done diff --git a/templates/latex/presentation/shell_line_editor.sh b/templates/latex/presentation/shell_line_editor.sh new file mode 120000 index 0000000..e2ec043 --- /dev/null +++ b/templates/latex/presentation/shell_line_editor.sh @@ -0,0 +1 @@ +../../../common/shell_line_editor.sh \ No newline at end of file diff --git a/templates/latex/presentation/treefmt.nix b/templates/latex/presentation/treefmt.nix new file mode 120000 index 0000000..01b71f7 --- /dev/null +++ b/templates/latex/presentation/treefmt.nix @@ -0,0 +1 @@ +../../../common/treefmt.nix \ No newline at end of file diff --git a/templates/latex/presentation/update.sh b/templates/latex/presentation/update.sh new file mode 120000 index 0000000..e84e4e3 --- /dev/null +++ b/templates/latex/presentation/update.sh @@ -0,0 +1 @@ +../../../common/scripts/update.sh \ No newline at end of file diff --git a/templates/latex/presentation/watch.sh b/templates/latex/presentation/watch.sh new file mode 120000 index 0000000..fa5d4ea --- /dev/null +++ b/templates/latex/presentation/watch.sh @@ -0,0 +1 @@ +../../../common/scripts/latex/watch.sh \ No newline at end of file |