Compare commits

..

47 Commits

Author SHA1 Message Date
bdb72b2e2a [CI] Remove docs build 2025-12-23 08:40:37 +01:00
5169d20bed [CI] Update workflow
Some checks failed
Build docs / build_docs (push) Failing after 15s
2025-12-23 07:20:58 +01:00
86f080a705 [CI] Try fix
Some checks failed
Build docs / build_docs (push) Failing after 7s
2025-12-23 07:09:40 +01:00
23037f11f6 [CI] Use upstream action
Some checks failed
Build docs / build_docs (push) Failing after 10s
2025-12-23 07:01:47 +01:00
8b4d775d1a [CI] Add back login
Some checks failed
Build docs / build_docs (push) Failing after 2s
2025-12-22 21:49:37 +01:00
3406ad8951 [CI] Remove login
Some checks failed
Build docs / build_docs (push) Failing after 5s
2025-12-22 21:48:18 +01:00
495f3a8503 [CI] Try to fix
Some checks failed
Build docs / build_docs (push) Failing after 6s
2025-12-22 21:41:00 +01:00
7101d5f017 [CI] Update
Some checks failed
Build docs / build_docs (push) Failing after 8s
2025-12-22 21:08:07 +01:00
d3ebc929a0 [CI] Move to newer latex action
Some checks failed
Build docs / build_docs (push) Failing after 8s
2025-12-22 21:04:53 +01:00
284d957a92 [CI] Debugging
Some checks failed
Build docs / build_docs (push) Failing after 7s
2025-12-22 20:57:53 +01:00
dc62654e42 [CI] Try another fix
Some checks failed
Build docs / build_docs (push) Failing after 7s
2025-12-22 20:54:45 +01:00
6b052b8152 [CI] Use updated latex workflow
Some checks failed
Build docs / build_docs (push) Failing after 8s
2025-12-22 20:52:19 +01:00
100f16afda [CI] Fix syntax error
Some checks failed
Build docs / build_docs (push) Failing after 8s
2025-12-22 18:31:19 +01:00
491cdd9441 [CI] Fix syntax
Some checks failed
Build docs / build_docs (push) Failing after 3s
2025-12-22 18:30:30 +01:00
ca9fd7a66f [CI] Sign into registry 2025-12-22 18:29:49 +01:00
7bf361ccd4 [CI] Fix more syntax errors
Some checks failed
Build docs / build_docs (push) Failing after 6s
2025-12-22 18:23:12 +01:00
c0134e47c2 [CI] Fix syntax error
Some checks failed
Build docs / build_docs (push) Failing after 3s
2025-12-22 18:22:02 +01:00
e2974cea74 [CI] Trigger
Some checks failed
Build docs / build_docs (push) Failing after 0s
2025-12-22 18:21:24 +01:00
6394ce2591 [CI] Try fix 2025-12-22 18:21:08 +01:00
4db6733865 Trigger
Some checks failed
Build docs / build_docs (push) Failing after 0s
2025-12-22 18:19:56 +01:00
7a73c73687 [CI] Add docs auto-build 2025-12-22 18:19:27 +01:00
24b4fe0959 [CI] Trigger
All checks were successful
Build helpers / build_docs (push) Successful in 4s
2025-12-22 17:49:56 +01:00
43819d942c [CI] Remove latex compile action 2025-12-22 15:49:27 +01:00
7ee9152f41 [CI] Debug docs
Some checks failed
Build Docs / build_docs (push) Failing after 7s
2025-12-22 15:34:37 +01:00
1518007fe2 [CI] Debug docs
Some checks failed
Build Docs / build_docs (push) Failing after 6s
2025-12-22 15:14:22 +01:00
3864d838d6 [CI] Debug docs
Some checks failed
Build Docs / build_docs (push) Failing after 8s
2025-12-22 15:13:00 +01:00
98b3e7ee66 [CI] Do not build helpers if no corresponding files changed
Some checks failed
Build Docs / build_docs (push) Failing after 6s
2025-12-22 15:12:16 +01:00
dca911c00b [CI] Debug docs build
Some checks failed
Build Docs / build_docs (push) Failing after 6s
Build helpers / build_docs (push) Successful in 5s
2025-12-22 15:10:18 +01:00
bb42a2e803 [CI] Fix helpers auto-build
All checks were successful
Build helpers / build_docs (push) Successful in 5s
2025-12-22 15:04:35 +01:00
8a238d1a8c [CI] Debugging
Some checks failed
Build helpers / build_docs (push) Failing after 5s
2025-12-22 15:03:47 +01:00
e64a76745a [CI] Build fixes
Some checks failed
Build helpers / build_docs (push) Failing after 8s
2025-12-22 15:01:19 +01:00
978039b0d0 [CI] Add
Some checks failed
Build helpers / build_docs (push) Failing after 1m9s
Build Docs / build_docs (push) Failing after 2m44s
2025-12-22 14:54:57 +01:00
cc78cee14f [Math] Add conditioning shortcut 2025-12-22 08:20:10 +01:00
962989468b [Math] Improve argmin command 2025-12-22 07:46:03 +01:00
b05be21b92 [Math] Add argmin command 2025-12-22 07:38:10 +01:00
2be8109e90 [Build] Run build 2025-12-04 11:28:06 +01:00
a0893a9887 [Core] Add smaller loader 2025-12-04 11:27:57 +01:00
73b33777e3 [Math] Fix conflicts 2025-11-11 13:05:38 +01:00
54f58f0b3a [Math] Add more shortcuts for mathbb 2025-11-11 12:16:25 +01:00
5a696f57c4 [Style] Remove shortcut, conflicted 2025-11-11 09:12:59 +01:00
cf5879b9a4 [Style] Actually add shortcut & build 2025-11-11 09:11:29 +01:00
d600d6d8f3 [Style] Add shortcut for italic and bold 2025-11-11 09:10:20 +01:00
6e6bdba382 [Core] Remove unneeded packages 2025-11-11 09:05:26 +01:00
66725558bb [Include] Add deprecation warning and fix loading through old method 2025-11-10 11:49:57 +01:00
491adc1744 [Style] Add url and href highlighting 2025-11-10 09:15:13 +01:00
47ed047c7e [Docs] Update for new import scheme 2025-11-03 16:16:32 +01:00
b8473c5f68 [Build] Improve helper import 2025-11-03 16:07:03 +01:00
28 changed files with 2125 additions and 826 deletions

View File

@@ -0,0 +1,21 @@
name: Build helpers
on:
push:
paths:
- 'main/**'
- 'extra/**'
jobs:
build_helpers:
runs_on: ubuntu-latest
steps:
- name: Set up Git repository
uses: actions/checkout@v6
- name: Run build
run: ./build.sh
- name: Upload compiled helpers
uses: actions/git-auto-commit-action@v7
with:
commit_message: "[skip ci] Build helpers on push"
file_pattern: '*.tex'
commit_user_name: Helpers compiler [bot]
commit_user_email: actions@janishutz.com

View File

@@ -8,51 +8,61 @@ echo "
█ █▄▄▄█ █ █ █ █ ▄▄▄██ █ █ ▄ █ ▄▄▄█ █▄▄▄█ ▄▄▄█ ▄▄▄█ ▄▄ █▄▄▄▄▄ █ █ █▄▄▄█ █ █ █ █ ▄▄▄██ █ █ ▄ █ ▄▄▄█ █▄▄▄█ ▄▄▄█ ▄▄▄█ ▄▄ █▄▄▄▄▄ █
█ █ ▄ █ █ █ █ █▄▄▄█ ▄ █ █ █ █ █ █▄▄▄█ █ █ █ █▄▄▄█ █ █ █▄▄▄▄▄█ █ █ █ ▄ █ █ █ █ █▄▄▄█ ▄ █ █ █ █ █ █▄▄▄█ █ █ █ █▄▄▄█ █ █ █▄▄▄▄▄█ █
█▄▄▄▄▄▄▄█▄█ █▄▄█ █▄▄▄█ █▄▄▄▄▄▄▄█▄▄█ █▄▄█ █▄▄█ █▄▄█▄▄▄▄▄▄▄█▄▄▄▄▄▄▄█▄▄▄█ █▄▄▄▄▄▄▄█▄▄▄█ █▄█▄▄▄▄▄▄▄█ █▄▄▄▄▄▄▄█▄█ █▄▄█ █▄▄▄█ █▄▄▄▄▄▄▄█▄▄█ █▄▄█ █▄▄█ █▄▄█▄▄▄▄▄▄▄█▄▄▄▄▄▄▄█▄▄▄█ █▄▄▄▄▄▄▄█▄▄▄█ █▄█▄▄▄▄▄▄▄█
==> Building <==
" "
mkdir dist/ mkdir dist/
cat ./janishutz-helpers.sty >./dist/janishutz-helpers-minimal.sty echo "
% ▄▄▄ ▄▄▄▄▄▄ ▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄▄▄▄▄▄ ▄▄▄ ▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄ ▄▄▄▄▄▄ ▄▄▄▄▄▄▄
% █ █ █ █ █ █ █▄█ █ █ █ █ █ █ █ █ █ █ ▄ █ █ █
% █ █ █ ▄ █▄ ▄█ ▄▄▄█ █ █ █▄█ █ ▄▄▄█ █ █ ▄ █ ▄▄▄█ █ █ █ █ ▄▄▄▄▄█
% █ █ █ █▄█ █ █ █ █ █▄▄▄█ █ █ █ █▄▄▄█ █ █ █▄█ █ █▄▄▄█ █▄▄█▄█ █▄▄▄▄▄
% █ █▄▄▄█ █ █ █ █ ▄▄▄██ █ █ ▄ █ ▄▄▄█ █▄▄▄█ ▄▄▄█ ▄▄▄█ ▄▄ █▄▄▄▄▄ █
% █ █ ▄ █ █ █ █ █▄▄▄█ ▄ █ █ █ █ █ █▄▄▄█ █ █ █ █▄▄▄█ █ █ █▄▄▄▄▄█ █
% █▄▄▄▄▄▄▄█▄█ █▄▄█ █▄▄▄█ █▄▄▄▄▄▄▄█▄▄█ █▄▄█ █▄▄█ █▄▄█▄▄▄▄▄▄▄█▄▄▄▄▄▄▄█▄▄▄█ █▄▄▄▄▄▄▄█▄▄▄█ █▄█▄▄▄▄▄▄▄█
" > ./dist/minimal.tex
# Build minimal scope # Build minimal scope
echo "" >>./dist/janishutz-helpers-minimal.sty cat ./main/core.tex >>./dist/minimal.tex
cat ./config/config.tex >>./dist/janishutz-helpers-minimal.sty echo "" >>./dist/minimal.tex
echo "" >>./dist/janishutz-helpers-minimal.sty cat ./config/config.tex >>./dist/minimal.tex
cat ./main/core.tex >>./dist/janishutz-helpers-minimal.sty echo "" >>./dist/minimal.tex
echo "" >>./dist/janishutz-helpers-minimal.sty cat ./main/style/style.tex >>./dist/minimal.tex
cat ./main/style/style.tex >>./dist/janishutz-helpers-minimal.sty echo "" >>./dist/minimal.tex
echo "" >>./dist/janishutz-helpers-minimal.sty cat ./main/style/common.tex >>./dist/minimal.tex
cat ./main/style/common.tex >>./dist/janishutz-helpers-minimal.sty
# Build most
cat ./dist/minimal.tex >./dist/most.tex
echo "" >>./dist/most.tex
cat ./main/math.tex >>./dist/most.tex
echo "" >>./dist/most.tex
cat ./main/cs.tex >>./dist/most.tex
echo "" >>./dist/most.tex
cat ./main/index.tex >>./dist/most.tex
echo "" >>./dist/most.tex
cat ./main/style/counters.tex >>./dist/most.tex
echo "" >>./dist/most.tex
cat ./main/style/cs.tex >>./dist/most.tex
echo "" >>./dist/most.tex
cat ./main/style/math.tex >>./dist/most.tex
echo "" >>./dist/most.tex
cat ./main/style/language.tex >>./dist/most.tex
echo "" >>./dist/most.tex
cat ./main/tables.tex >>./dist/most.tex
# Build recommended # Build recommended
cat ./dist/janishutz-helpers-minimal.sty >./dist/janishutz-helpers-recommended.sty cat ./dist/most.tex >./dist/recommended.tex
echo "" >>./dist/janishutz-helpers-recommended.sty echo "" >>./dist/recommended.tex
cat ./main/math.tex >>./dist/janishutz-helpers-recommended.sty cat ./extra/bib.tex >>./dist/recommended.tex
echo "" >>./dist/janishutz-helpers-recommended.sty echo "" >>./dist/recommended.tex
cat ./main/cs.tex >>./dist/janishutz-helpers-recommended.sty cat ./extra/glossary.tex >>./dist/recommended.tex
echo "" >>./dist/janishutz-helpers-recommended.sty
cat ./main/index.tex >>./dist/janishutz-helpers-recommended.sty
echo "" >>./dist/janishutz-helpers-recommended.sty
cat ./main/style/counters.tex >>./dist/janishutz-helpers-recommended.sty
echo "" >>./dist/janishutz-helpers-recommended.sty
cat ./main/style/cs.tex >>./dist/janishutz-helpers-recommended.sty
echo "" >>./dist/janishutz-helpers-recommended.sty
cat ./main/style/math.tex >>./dist/janishutz-helpers-recommended.sty
echo "" >>./dist/janishutz-helpers-recommended.sty
cat ./main/style/language.tex >>./dist/janishutz-helpers-recommended.sty
echo "" >>./dist/janishutz-helpers-recommended.sty
cat ./extra/bib.tex >>./dist/janishutz-helpers-recommended.sty
echo "" >>./dist/janishutz-helpers-recommended.sty
cat ./extra/glossary.tex >>./dist/janishutz-helpers-recommended.sty
# Build full # Build full
cat ./dist/janishutz-helpers-recommended.sty >./dist/janishutz-helpers-full.sty cat ./dist/recommended.tex >./dist/full.tex
echo "" >>./dist/janishutz-helpers-full.sty echo "" >>./dist/full.tex
cat ./extra/minted.tex >>./dist/janishutz-helpers-full.sty cat ./extra/minted.tex >>./dist/full.tex
# Copy letter # Copy letter
cp ./scopes/letter.tex ./dist/janishutz-helpers-letters.sty cp ./scopes/letter.tex ./dist/letter.tex
echo "==> Done" echo "==> Done"

1089
dist/full.tex vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,164 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{janishutz-helpers}[2.0.0] % ▄▄▄ ▄▄▄▄▄▄ ▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄▄▄▄▄▄ ▄▄▄ ▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄ ▄▄▄▄▄▄ ▄▄▄▄▄▄▄
% █ █ █ █ █ █ █▄█ █ █ █ █ █ █ █ █ █ █ ▄ █ █ █
% █ █ █ ▄ █▄ ▄█ ▄▄▄█ █ █ █▄█ █ ▄▄▄█ █ █ ▄ █ ▄▄▄█ █ █ █ █ ▄▄▄▄▄█
% █ █ █ █▄█ █ █ █ █ █▄▄▄█ █ █ █ █▄▄▄█ █ █ █▄█ █ █▄▄▄█ █▄▄█▄█ █▄▄▄▄▄
% █ █▄▄▄█ █ █ █ █ ▄▄▄██ █ █ ▄ █ ▄▄▄█ █▄▄▄█ ▄▄▄█ ▄▄▄█ ▄▄ █▄▄▄▄▄ █
% █ █ ▄ █ █ █ █ █▄▄▄█ ▄ █ █ █ █ █ █▄▄▄█ █ █ █ █▄▄▄█ █ █ █▄▄▄▄▄█ █
% █▄▄▄▄▄▄▄█▄█ █▄▄█ █▄▄▄█ █▄▄▄▄▄▄▄█▄▄█ █▄▄█ █▄▄█ █▄▄█▄▄▄▄▄▄▄█▄▄▄▄▄▄▄█▄▄▄█ █▄▄▄▄▄▄▄█▄▄▄█ █▄█▄▄▄▄▄▄▄█
% ▄▄█▀▀▀█▄█
% ▄██▀ ▀█
% ██▀ ▀ ▄██▀██▄▀███▄███ ▄▄█▀██
% ██ ██▀ ▀██ ██▀ ▀▀ ▄█▀ ██
% ██▄ ██ ██ ██ ██▀▀▀▀▀▀
% ▀██▄ ▄▀██▄ ▄██ ██ ██▄ ▄
% ▀▀█████▀ ▀█████▀▄████▄ ▀█████▀
% This file contains all necessary dependencies for the document to compile (at all) and some core macros
% Imports %
\typeout{[Core] Importing!}
\usepackage[table, dvipsnames]{xcolor}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{subcaption}
\usepackage[export]{adjustbox}
\usepackage[most]{tcolorbox}
\usepackage{cancel}
\usepackage{dsfont}
\usepackage{amssymb}
\usepackage{mathrsfs}
\usepackage{ulem}
\usepackage{soul}
\usepackage{parskip}
\usepackage{fancyhdr}
\usepackage{lastpage}
\usepackage{tocloft}
\usepackage{wasysym}
\usepackage{wrapfig}
\usepackage{multicol}
\usepackage{ifthen}
\usepackage[hidelinks]{hyperref}
\usepackage{enumitem}
\usepackage{gensymb}
\usepackage{pifont}
% Language Switching. Currently only English and German are supported
% See docs for how to use
\newcounter{lang}
\newcommand{\setLang}[1]{
\edef\lang{#1}
\edef\en{en}
\edef\de{de}
\ifx\lang\en
\typeout{[Lang Switcher] Loading English}
\setcounter{lang}{1}
\else
\ifx\lang\de
\typeout{[Lang Switcher] Loading German}
\setcounter{lang}{2}
\usepackage[ngerman]{babel}
\else
\typeout{[Lang Switcher] No such language!}
\fi
\fi
}
\newcommand{\loadLang}{
\ifnum\value{lang}<2{
\typeout{[Lang Loader] Loaded English}
}\else {
\typeout{[Lang Loader] Loaded German}
\setcounter{lang}{2}
}
\fi
}
% Create config counters / variables. See the config file for changing them
\newcounter{numberingConfig}
\newcounter{numberSubsections}
\newcounter{descriptorShadeStrength}
\newcounter{shadeStrength}
% Set up the latex document, configure author, title (as first argument), as well as headers and footers
\newcommand{\setup}[1]{
\typeout{[Setup] Setting up...}
\loadLang
\usepackage[a4paper,textwidth=17.5cm,textheight=25cm,includehead]{geometry}
\title{\Huge \textbf{#1}}
\author{\authorTitle}
\makeatletter
\makeatother
\fancyhead{}
\fancyhead[L]{#1}
\fancyhead[R]{\authorHeaders}
\fancyfoot{}
\fancyfoot[L]{\today}
\fancyfoot[R]{\thepage\ /\ \pageref{LastPage}}
\fancypagestyle{plain}{%
\fancyhead{}
\fancyhead[L]{#1}
\fancyhead[R]{\authorHeaders}
\fancyfoot{}
\fancyfoot[L]{\today}
\fancyfoot[R]{\thepage\ /\ \pageref{LastPage}}
}
}
% Start document command (required)
\newcommand{\startDocument}{
\maketitle
\startDocumentNoTitle
}
\newcommand{\startDocumentNoTitle}{
\pagestyle{fancy}
\thispagestyle{fancy}
}
% Set up the latex document, only configuring the author, title and page size
\newcommand{\setupBarebones}[1]{
\loadLang
\usepackage[a4paper,textwidth=17.5cm,textheight=25cm,includehead]{geometry}
\title{\Huge \textbf{#1}}
\author{\authorTitle}
}
% Set up the latex document for exam summaries (Extra wide body, small margins, no header)
\newcommand{\setupCheatSheet}[1]{
\loadLang
\usepackage[a4paper,textwidth=20cm,textheight=28.5cm]{geometry}
\title{\Huge \textbf{#1}}
\author{\authorTitle}
}
% ────────────────────────────────────────────────────────────────────
% ╭────────────────────────────────────────────────╮
% │ Translatation │
% ╰────────────────────────────────────────────────╯
\newcommand{\translate}[2]{\ifnum\value{lang}<2{#1}\else{#2}\fi}
\newcommand{\tr}[2]{\translate{#1}{#2}}
% ┌ ┐
% │ Translation aids (commonly used) │
% └ ┘
\newcommand{\trif}{\translate{if }{falls }}
\newcommand{\trIf}{\translate{If }{Falls }}
\newcommand{\trLet}{\translate{Let }{Sei }}
\newcommand{\trLets}{\translate{Let }{Seien }}
\newcommand{\trFor}{\translate{For }{Für }}
\newcommand{\trfor}{\translate{for }{für }}
\newcommand{\trand}{\translate{and }{und }}
\newcommand{\tror}{\translate{or }{oder }}
\newcommand{\trst}{\translate{s.t. }{s.d. }}
\newcommand{\trsuchthat}{\translate{such that }{so dass }}
\newcommand{\trwith}{\translate{with }{mit }}
% ___ ___ % ___ ___
% ( _ \ / ___)_ % ( _ \ / ___)_
@@ -46,158 +205,6 @@
% The colour-saturation of the shade command (default = 20) % The colour-saturation of the shade command (default = 20)
\setcounter{shadeStrength}{20} \setcounter{shadeStrength}{20}
% ▄▄█▀▀▀█▄█
% ▄██▀ ▀█
% ██▀ ▀ ▄██▀██▄▀███▄███ ▄▄█▀██
% ██ ██▀ ▀██ ██▀ ▀▀ ▄█▀ ██
% ██▄ ██ ██ ██ ██▀▀▀▀▀▀
% ▀██▄ ▄▀██▄ ▄██ ██ ██▄ ▄
% ▀▀█████▀ ▀█████▀▄████▄ ▀█████▀
% This file contains all necessary dependencies for the document to compile (at all) and some core macros
% Imports %
\typeout{[Core] Importing!}
\RequirePackage[table, dvipsnames]{xcolor}
\RequirePackage{amsmath}
\RequirePackage{graphicx}
\RequirePackage{subcaption}
\RequirePackage[export]{adjustbox}
\RequirePackage[most]{tcolorbox}
\RequirePackage{cancel}
\RequirePackage{dsfont}
\RequirePackage{amssymb}
\RequirePackage{mathrsfs}
\RequirePackage{lipsum}
\RequirePackage{ulem}
\RequirePackage{soul}
\RequirePackage{parskip}
\RequirePackage{fancyhdr}
\RequirePackage{lastpage}
\RequirePackage{tocloft}
\RequirePackage{wasysym}
\RequirePackage{wrapfig}
\RequirePackage{multicol}
\RequirePackage{ifthen}
\RequirePackage[hidelinks]{hyperref}
\RequirePackage{enumitem}
\RequirePackage{gensymb}
\RequirePackage{pifont}
% Language Switching. Currently only English and German are supported
% See docs for how to use
\newcounter{lang}
\typeout{Loading helpers}
% TODO: Fix this up
\newcommand{\setLang}[1]{
\edef\lang{#1}
\edef\en{en}
\edef\de{de}
\ifx\lang\en
\typeout{[Lang Switcher] Loading English}
\setcounter{lang}{1}
\else
\ifx\lang\de
\typeout{[Lang Switcher] Loading German}
\setcounter{lang}{2}
\input{\dir/main/lang/de}
\else
\typeout{[Lang Switcher] No such language!}
\fi
\fi
}
\newcommand{\loadLang}{
\ifnum\value{lang}<2{
\typeout{[Lang Loader] Loaded English}
}\else {
\typeout{[Lang Loader] Loaded German}
\setcounter{lang}{2}
}
\fi
}
% Create config counters / variables. See the config file for changing them
\newcounter{numberingConfig}
\newcounter{numberSubsections}
\newcounter{descriptorShadeStrength}
\newcounter{shadeStrength}
% Set up the latex document, configure author, title (as first argument), as well as headers and footers
\newcommand{\setup}[1]{
\typeout{[Setup] Setting up...}
\loadLang
\RequirePackage[a4paper,textwidth=17.5cm,textheight=25cm,includehead]{geometry}
\title{\Huge \textbf{#1}}
\author{\authorTitle}
\makeatletter
\makeatother
\fancyhead{}
\fancyhead[L]{#1}
\fancyhead[R]{\authorHeaders}
\fancyfoot{}
\fancyfoot[L]{\today}
\fancyfoot[R]{\thepage\ /\ \pageref{LastPage}}
\fancypagestyle{plain}{%
\fancyhead{}
\fancyhead[L]{#1}
\fancyhead[R]{\authorHeaders}
\fancyfoot{}
\fancyfoot[L]{\today}
\fancyfoot[R]{\thepage\ /\ \pageref{LastPage}}
}
}
% Start document command (required)
\newcommand{\startDocument}{
\maketitle
\pagestyle{fancy}
\thispagestyle{fancy}
}
% Set up the latex document, only configuring the author, title and page size
\newcommand{\setupBarebones}[1]{
\loadLang
\RequirePackage[a4paper,textwidth=17.5cm,textheight=25cm,includehead]{geometry}
\title{\Huge \textbf{#1}}
\author{\authorTitle}
}
% Set up the latex document for exam summaries (Extra wide body, small margins, no header)
\newcommand{\setupCheatSheet}[1]{
\loadLang
\RequirePackage[a4paper,textwidth=20cm,textheight=28.5cm]{geometry}
\title{\Huge \textbf{#1}}
\author{\authorTitle}
}
% ────────────────────────────────────────────────────────────────────
% ╭────────────────────────────────────────────────╮
% │ Translatation │
% ╰────────────────────────────────────────────────╯
\newcommand{\translate}[2]{\ifnum\value{lang}<2{#1}\else{#2}\fi}
\newcommand{\tr}[2]{\translate{#1}{#2}}
% ┌ ┐
% │ Translation aids (commonly used) │
% └ ┘
\newcommand{\trif}{\translate{if }{falls }}
\newcommand{\trIf}{\translate{If }{Falls }}
\newcommand{\trLet}{\translate{Let }{Sei }}
\newcommand{\trLets}{\translate{Let }{Seien }}
\newcommand{\trFor}{\translate{For }{Für }}
\newcommand{\trfor}{\translate{for }{für }}
\newcommand{\trand}{\translate{and }{und }}
\newcommand{\tror}{\translate{or }{oder }}
\newcommand{\trst}{\translate{s.t. }{s.d. }}
\newcommand{\trsuchthat}{\translate{such that }{so dass }}
\newcommand{\trwith}{\translate{with }{mit }}
%░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ %░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
%░░░ ░░░░░ ░░░░░░░░░░░░░ ░░░░░░░░░░░ %░░░ ░░░░░ ░░░░░░░░░░░░░ ░░░░░░░░░░░
%▒ ▒▒▒▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒ %▒ ▒▒▒▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒
@@ -210,35 +217,35 @@
% Global style configs for tcolorbox (to reduce bloat) % Global style configs for tcolorbox (to reduce bloat)
\newcommand{\usetcolorboxes}{ \newcommand{\usetcolorboxes}{
\tcbset{ \tcbset{
mainboxstyle/.style={ mainboxstyle/.style={
arc=3mm, arc=3mm,
colback=red!5!white, colback=red!5!white,
colframe=red!75!black, colframe=red!75!black,
colbacktitle=red!75!black, colbacktitle=red!75!black,
fonttitle=\bfseries, fonttitle=\bfseries,
enhanced, enhanced,
attach boxed title to top left={yshift=-2mm,xshift=5mm}, attach boxed title to top left={yshift=-2mm,xshift=5mm},
breakable, breakable,
top=0.4cm, top=0.4cm,
} }
} }
\tikzset{ \tikzset{
overlaystyle/.style={ overlaystyle/.style={
draw=red!75!black, draw=red!75!black,
thick, thick,
fill=red!75!black, fill=red!75!black,
left, left,
anchor=east, anchor=east,
text=white, text=white,
rounded corners=1mm, rounded corners=1mm,
font=\bfseries, font=\bfseries,
xshift=-5mm, xshift=-5mm,
yshift=1mm, yshift=1mm,
inner xsep=3mm, inner xsep=3mm,
inner ysep=1.5mm inner ysep=1.5mm
} }
} }
} }
% -------------------- % % -------------------- %
@@ -265,16 +272,16 @@
% Add a color shade (similar to \fhlc, but nicer boxes) % Add a color shade (similar to \fhlc, but nicer boxes)
\newcommand{\background}[3]{\tcbox[on line, \newcommand{\background}[3]{\tcbox[on line,
boxsep=2pt, boxsep=2pt,
left=0pt, left=0pt,
right=0pt, right=0pt,
top=0pt, top=0pt,
bottom=0pt, bottom=0pt,
colframe=white, colframe=white,
frame empty, frame empty,
colback=#1!#2!white, colback=#1!#2!white,
highlight math style={enhanced} highlight math style={enhanced}
] {\textbf{#3}}} ] {\textbf{#3}}}
% Abstraction of background, where the brightness is set to 20% % Abstraction of background, where the brightness is set to 20%
\newcommand{\shade}[2]{\background{#1}{\arabic{shadeStrength}}{#2}} \newcommand{\shade}[2]{\background{#1}{\arabic{shadeStrength}}{#2}}
@@ -292,6 +299,12 @@
% Add a colorbox around your text with the color specified. Text is bold and underlined % Add a colorbox around your text with the color specified. Text is bold and underlined
\newcommand{\fhlc}[2]{\textbf{\underline{\colorbox{#1}{#2}}}} \newcommand{\fhlc}[2]{\textbf{\underline{\colorbox{#1}{#2}}}}
% Draw box around links. First arg link, second arg display
\newcommand{\hlhref}[2]{\color{MidnightBlue}\fbox{\href{#1}{#2}}\color{black}}
% Same for urls (just one arg tho)
\newcommand{\hlurl}[1]{\color{MidnightBlue}\fbox{\url{#1}}\color{black}}
% Spacing (horizontal) % Spacing (horizontal)
\newcommand{\smallhspace}{\hspace{2mm}} \newcommand{\smallhspace}{\hspace{2mm}}
\newcommand{\mediumhspace}{\hspace{5mm}} \newcommand{\mediumhspace}{\hspace{5mm}}
@@ -303,14 +316,14 @@
% Print a table of contents as a tcolorbox % Print a table of contents as a tcolorbox
\newcommand{\printtoc}[1]{ \newcommand{\printtoc}[1]{
\renewcommand{\cfttoctitlefont}{} \renewcommand{\cfttoctitlefont}{}
\renewcommand{\cftaftertoctitle}{\vspace{-0.75cm}} \renewcommand{\cftaftertoctitle}{\vspace{-0.75cm}}
\renewcommand{\contentsname}{} \renewcommand{\contentsname}{}
\begin{tcolorbox}[colback=black!5!white,colbacktitle=#1!75!black,coltitle=black,enhanced,attach boxed title to top center={yshift=-2mm}, \begin{tcolorbox}[colback=black!5!white,colbacktitle=#1!75!black,coltitle=black,enhanced,attach boxed title to top center={yshift=-2mm},
title={\Large \ifnum\value{lang}<2{Contents}\else {Inhaltsverzeichnis}\fi},fonttitle=\bfseries,breakable] title={\Large \ifnum\value{lang}<2{Contents}\else {Inhaltsverzeichnis}\fi},fonttitle=\bfseries,breakable]
\hspace{1cm} \hspace{1cm}
\tableofcontents \tableofcontents
\end{tcolorbox} \end{tcolorbox}
} }
%▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ %▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄

View File

@@ -1,5 +1,164 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{janishutz-helpers}[2.0.0] % ▄▄▄ ▄▄▄▄▄▄ ▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄▄▄▄▄▄ ▄▄▄ ▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄ ▄▄▄▄▄▄ ▄▄▄▄▄▄▄
% █ █ █ █ █ █ █▄█ █ █ █ █ █ █ █ █ █ █ ▄ █ █ █
% █ █ █ ▄ █▄ ▄█ ▄▄▄█ █ █ █▄█ █ ▄▄▄█ █ █ ▄ █ ▄▄▄█ █ █ █ █ ▄▄▄▄▄█
% █ █ █ █▄█ █ █ █ █ █▄▄▄█ █ █ █ █▄▄▄█ █ █ █▄█ █ █▄▄▄█ █▄▄█▄█ █▄▄▄▄▄
% █ █▄▄▄█ █ █ █ █ ▄▄▄██ █ █ ▄ █ ▄▄▄█ █▄▄▄█ ▄▄▄█ ▄▄▄█ ▄▄ █▄▄▄▄▄ █
% █ █ ▄ █ █ █ █ █▄▄▄█ ▄ █ █ █ █ █ █▄▄▄█ █ █ █ █▄▄▄█ █ █ █▄▄▄▄▄█ █
% █▄▄▄▄▄▄▄█▄█ █▄▄█ █▄▄▄█ █▄▄▄▄▄▄▄█▄▄█ █▄▄█ █▄▄█ █▄▄█▄▄▄▄▄▄▄█▄▄▄▄▄▄▄█▄▄▄█ █▄▄▄▄▄▄▄█▄▄▄█ █▄█▄▄▄▄▄▄▄█
% ▄▄█▀▀▀█▄█
% ▄██▀ ▀█
% ██▀ ▀ ▄██▀██▄▀███▄███ ▄▄█▀██
% ██ ██▀ ▀██ ██▀ ▀▀ ▄█▀ ██
% ██▄ ██ ██ ██ ██▀▀▀▀▀▀
% ▀██▄ ▄▀██▄ ▄██ ██ ██▄ ▄
% ▀▀█████▀ ▀█████▀▄████▄ ▀█████▀
% This file contains all necessary dependencies for the document to compile (at all) and some core macros
% Imports %
\typeout{[Core] Importing!}
\usepackage[table, dvipsnames]{xcolor}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{subcaption}
\usepackage[export]{adjustbox}
\usepackage[most]{tcolorbox}
\usepackage{cancel}
\usepackage{dsfont}
\usepackage{amssymb}
\usepackage{mathrsfs}
\usepackage{ulem}
\usepackage{soul}
\usepackage{parskip}
\usepackage{fancyhdr}
\usepackage{lastpage}
\usepackage{tocloft}
\usepackage{wasysym}
\usepackage{wrapfig}
\usepackage{multicol}
\usepackage{ifthen}
\usepackage[hidelinks]{hyperref}
\usepackage{enumitem}
\usepackage{gensymb}
\usepackage{pifont}
% Language Switching. Currently only English and German are supported
% See docs for how to use
\newcounter{lang}
\newcommand{\setLang}[1]{
\edef\lang{#1}
\edef\en{en}
\edef\de{de}
\ifx\lang\en
\typeout{[Lang Switcher] Loading English}
\setcounter{lang}{1}
\else
\ifx\lang\de
\typeout{[Lang Switcher] Loading German}
\setcounter{lang}{2}
\usepackage[ngerman]{babel}
\else
\typeout{[Lang Switcher] No such language!}
\fi
\fi
}
\newcommand{\loadLang}{
\ifnum\value{lang}<2{
\typeout{[Lang Loader] Loaded English}
}\else {
\typeout{[Lang Loader] Loaded German}
\setcounter{lang}{2}
}
\fi
}
% Create config counters / variables. See the config file for changing them
\newcounter{numberingConfig}
\newcounter{numberSubsections}
\newcounter{descriptorShadeStrength}
\newcounter{shadeStrength}
% Set up the latex document, configure author, title (as first argument), as well as headers and footers
\newcommand{\setup}[1]{
\typeout{[Setup] Setting up...}
\loadLang
\usepackage[a4paper,textwidth=17.5cm,textheight=25cm,includehead]{geometry}
\title{\Huge \textbf{#1}}
\author{\authorTitle}
\makeatletter
\makeatother
\fancyhead{}
\fancyhead[L]{#1}
\fancyhead[R]{\authorHeaders}
\fancyfoot{}
\fancyfoot[L]{\today}
\fancyfoot[R]{\thepage\ /\ \pageref{LastPage}}
\fancypagestyle{plain}{%
\fancyhead{}
\fancyhead[L]{#1}
\fancyhead[R]{\authorHeaders}
\fancyfoot{}
\fancyfoot[L]{\today}
\fancyfoot[R]{\thepage\ /\ \pageref{LastPage}}
}
}
% Start document command (required)
\newcommand{\startDocument}{
\maketitle
\startDocumentNoTitle
}
\newcommand{\startDocumentNoTitle}{
\pagestyle{fancy}
\thispagestyle{fancy}
}
% Set up the latex document, only configuring the author, title and page size
\newcommand{\setupBarebones}[1]{
\loadLang
\usepackage[a4paper,textwidth=17.5cm,textheight=25cm,includehead]{geometry}
\title{\Huge \textbf{#1}}
\author{\authorTitle}
}
% Set up the latex document for exam summaries (Extra wide body, small margins, no header)
\newcommand{\setupCheatSheet}[1]{
\loadLang
\usepackage[a4paper,textwidth=20cm,textheight=28.5cm]{geometry}
\title{\Huge \textbf{#1}}
\author{\authorTitle}
}
% ────────────────────────────────────────────────────────────────────
% ╭────────────────────────────────────────────────╮
% │ Translatation │
% ╰────────────────────────────────────────────────╯
\newcommand{\translate}[2]{\ifnum\value{lang}<2{#1}\else{#2}\fi}
\newcommand{\tr}[2]{\translate{#1}{#2}}
% ┌ ┐
% │ Translation aids (commonly used) │
% └ ┘
\newcommand{\trif}{\translate{if }{falls }}
\newcommand{\trIf}{\translate{If }{Falls }}
\newcommand{\trLet}{\translate{Let }{Sei }}
\newcommand{\trLets}{\translate{Let }{Seien }}
\newcommand{\trFor}{\translate{For }{Für }}
\newcommand{\trfor}{\translate{for }{für }}
\newcommand{\trand}{\translate{and }{und }}
\newcommand{\tror}{\translate{or }{oder }}
\newcommand{\trst}{\translate{s.t. }{s.d. }}
\newcommand{\trsuchthat}{\translate{such that }{so dass }}
\newcommand{\trwith}{\translate{with }{mit }}
% ___ ___ % ___ ___
% ( _ \ / ___)_ % ( _ \ / ___)_
@@ -46,158 +205,6 @@
% The colour-saturation of the shade command (default = 20) % The colour-saturation of the shade command (default = 20)
\setcounter{shadeStrength}{20} \setcounter{shadeStrength}{20}
% ▄▄█▀▀▀█▄█
% ▄██▀ ▀█
% ██▀ ▀ ▄██▀██▄▀███▄███ ▄▄█▀██
% ██ ██▀ ▀██ ██▀ ▀▀ ▄█▀ ██
% ██▄ ██ ██ ██ ██▀▀▀▀▀▀
% ▀██▄ ▄▀██▄ ▄██ ██ ██▄ ▄
% ▀▀█████▀ ▀█████▀▄████▄ ▀█████▀
% This file contains all necessary dependencies for the document to compile (at all) and some core macros
% Imports %
\typeout{[Core] Importing!}
\RequirePackage[table, dvipsnames]{xcolor}
\RequirePackage{amsmath}
\RequirePackage{graphicx}
\RequirePackage{subcaption}
\RequirePackage[export]{adjustbox}
\RequirePackage[most]{tcolorbox}
\RequirePackage{cancel}
\RequirePackage{dsfont}
\RequirePackage{amssymb}
\RequirePackage{mathrsfs}
\RequirePackage{lipsum}
\RequirePackage{ulem}
\RequirePackage{soul}
\RequirePackage{parskip}
\RequirePackage{fancyhdr}
\RequirePackage{lastpage}
\RequirePackage{tocloft}
\RequirePackage{wasysym}
\RequirePackage{wrapfig}
\RequirePackage{multicol}
\RequirePackage{ifthen}
\RequirePackage[hidelinks]{hyperref}
\RequirePackage{enumitem}
\RequirePackage{gensymb}
\RequirePackage{pifont}
% Language Switching. Currently only English and German are supported
% See docs for how to use
\newcounter{lang}
\typeout{Loading helpers}
% TODO: Fix this up
\newcommand{\setLang}[1]{
\edef\lang{#1}
\edef\en{en}
\edef\de{de}
\ifx\lang\en
\typeout{[Lang Switcher] Loading English}
\setcounter{lang}{1}
\else
\ifx\lang\de
\typeout{[Lang Switcher] Loading German}
\setcounter{lang}{2}
\input{\dir/main/lang/de}
\else
\typeout{[Lang Switcher] No such language!}
\fi
\fi
}
\newcommand{\loadLang}{
\ifnum\value{lang}<2{
\typeout{[Lang Loader] Loaded English}
}\else {
\typeout{[Lang Loader] Loaded German}
\setcounter{lang}{2}
}
\fi
}
% Create config counters / variables. See the config file for changing them
\newcounter{numberingConfig}
\newcounter{numberSubsections}
\newcounter{descriptorShadeStrength}
\newcounter{shadeStrength}
% Set up the latex document, configure author, title (as first argument), as well as headers and footers
\newcommand{\setup}[1]{
\typeout{[Setup] Setting up...}
\loadLang
\RequirePackage[a4paper,textwidth=17.5cm,textheight=25cm,includehead]{geometry}
\title{\Huge \textbf{#1}}
\author{\authorTitle}
\makeatletter
\makeatother
\fancyhead{}
\fancyhead[L]{#1}
\fancyhead[R]{\authorHeaders}
\fancyfoot{}
\fancyfoot[L]{\today}
\fancyfoot[R]{\thepage\ /\ \pageref{LastPage}}
\fancypagestyle{plain}{%
\fancyhead{}
\fancyhead[L]{#1}
\fancyhead[R]{\authorHeaders}
\fancyfoot{}
\fancyfoot[L]{\today}
\fancyfoot[R]{\thepage\ /\ \pageref{LastPage}}
}
}
% Start document command (required)
\newcommand{\startDocument}{
\maketitle
\pagestyle{fancy}
\thispagestyle{fancy}
}
% Set up the latex document, only configuring the author, title and page size
\newcommand{\setupBarebones}[1]{
\loadLang
\RequirePackage[a4paper,textwidth=17.5cm,textheight=25cm,includehead]{geometry}
\title{\Huge \textbf{#1}}
\author{\authorTitle}
}
% Set up the latex document for exam summaries (Extra wide body, small margins, no header)
\newcommand{\setupCheatSheet}[1]{
\loadLang
\RequirePackage[a4paper,textwidth=20cm,textheight=28.5cm]{geometry}
\title{\Huge \textbf{#1}}
\author{\authorTitle}
}
% ────────────────────────────────────────────────────────────────────
% ╭────────────────────────────────────────────────╮
% │ Translatation │
% ╰────────────────────────────────────────────────╯
\newcommand{\translate}[2]{\ifnum\value{lang}<2{#1}\else{#2}\fi}
\newcommand{\tr}[2]{\translate{#1}{#2}}
% ┌ ┐
% │ Translation aids (commonly used) │
% └ ┘
\newcommand{\trif}{\translate{if }{falls }}
\newcommand{\trIf}{\translate{If }{Falls }}
\newcommand{\trLet}{\translate{Let }{Sei }}
\newcommand{\trLets}{\translate{Let }{Seien }}
\newcommand{\trFor}{\translate{For }{Für }}
\newcommand{\trfor}{\translate{for }{für }}
\newcommand{\trand}{\translate{and }{und }}
\newcommand{\tror}{\translate{or }{oder }}
\newcommand{\trst}{\translate{s.t. }{s.d. }}
\newcommand{\trsuchthat}{\translate{such that }{so dass }}
\newcommand{\trwith}{\translate{with }{mit }}
%░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ %░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
%░░░ ░░░░░ ░░░░░░░░░░░░░ ░░░░░░░░░░░ %░░░ ░░░░░ ░░░░░░░░░░░░░ ░░░░░░░░░░░
%▒ ▒▒▒▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒ %▒ ▒▒▒▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒
@@ -210,35 +217,35 @@
% Global style configs for tcolorbox (to reduce bloat) % Global style configs for tcolorbox (to reduce bloat)
\newcommand{\usetcolorboxes}{ \newcommand{\usetcolorboxes}{
\tcbset{ \tcbset{
mainboxstyle/.style={ mainboxstyle/.style={
arc=3mm, arc=3mm,
colback=red!5!white, colback=red!5!white,
colframe=red!75!black, colframe=red!75!black,
colbacktitle=red!75!black, colbacktitle=red!75!black,
fonttitle=\bfseries, fonttitle=\bfseries,
enhanced, enhanced,
attach boxed title to top left={yshift=-2mm,xshift=5mm}, attach boxed title to top left={yshift=-2mm,xshift=5mm},
breakable, breakable,
top=0.4cm, top=0.4cm,
} }
} }
\tikzset{ \tikzset{
overlaystyle/.style={ overlaystyle/.style={
draw=red!75!black, draw=red!75!black,
thick, thick,
fill=red!75!black, fill=red!75!black,
left, left,
anchor=east, anchor=east,
text=white, text=white,
rounded corners=1mm, rounded corners=1mm,
font=\bfseries, font=\bfseries,
xshift=-5mm, xshift=-5mm,
yshift=1mm, yshift=1mm,
inner xsep=3mm, inner xsep=3mm,
inner ysep=1.5mm inner ysep=1.5mm
} }
} }
} }
% -------------------- % % -------------------- %
@@ -265,16 +272,16 @@
% Add a color shade (similar to \fhlc, but nicer boxes) % Add a color shade (similar to \fhlc, but nicer boxes)
\newcommand{\background}[3]{\tcbox[on line, \newcommand{\background}[3]{\tcbox[on line,
boxsep=2pt, boxsep=2pt,
left=0pt, left=0pt,
right=0pt, right=0pt,
top=0pt, top=0pt,
bottom=0pt, bottom=0pt,
colframe=white, colframe=white,
frame empty, frame empty,
colback=#1!#2!white, colback=#1!#2!white,
highlight math style={enhanced} highlight math style={enhanced}
] {\textbf{#3}}} ] {\textbf{#3}}}
% Abstraction of background, where the brightness is set to 20% % Abstraction of background, where the brightness is set to 20%
\newcommand{\shade}[2]{\background{#1}{\arabic{shadeStrength}}{#2}} \newcommand{\shade}[2]{\background{#1}{\arabic{shadeStrength}}{#2}}
@@ -292,6 +299,12 @@
% Add a colorbox around your text with the color specified. Text is bold and underlined % Add a colorbox around your text with the color specified. Text is bold and underlined
\newcommand{\fhlc}[2]{\textbf{\underline{\colorbox{#1}{#2}}}} \newcommand{\fhlc}[2]{\textbf{\underline{\colorbox{#1}{#2}}}}
% Draw box around links. First arg link, second arg display
\newcommand{\hlhref}[2]{\color{MidnightBlue}\fbox{\href{#1}{#2}}\color{black}}
% Same for urls (just one arg tho)
\newcommand{\hlurl}[1]{\color{MidnightBlue}\fbox{\url{#1}}\color{black}}
% Spacing (horizontal) % Spacing (horizontal)
\newcommand{\smallhspace}{\hspace{2mm}} \newcommand{\smallhspace}{\hspace{2mm}}
\newcommand{\mediumhspace}{\hspace{5mm}} \newcommand{\mediumhspace}{\hspace{5mm}}
@@ -303,14 +316,14 @@
% Print a table of contents as a tcolorbox % Print a table of contents as a tcolorbox
\newcommand{\printtoc}[1]{ \newcommand{\printtoc}[1]{
\renewcommand{\cfttoctitlefont}{} \renewcommand{\cfttoctitlefont}{}
\renewcommand{\cftaftertoctitle}{\vspace{-0.75cm}} \renewcommand{\cftaftertoctitle}{\vspace{-0.75cm}}
\renewcommand{\contentsname}{} \renewcommand{\contentsname}{}
\begin{tcolorbox}[colback=black!5!white,colbacktitle=#1!75!black,coltitle=black,enhanced,attach boxed title to top center={yshift=-2mm}, \begin{tcolorbox}[colback=black!5!white,colbacktitle=#1!75!black,coltitle=black,enhanced,attach boxed title to top center={yshift=-2mm},
title={\Large \ifnum\value{lang}<2{Contents}\else {Inhaltsverzeichnis}\fi},fonttitle=\bfseries,breakable] title={\Large \ifnum\value{lang}<2{Contents}\else {Inhaltsverzeichnis}\fi},fonttitle=\bfseries,breakable]
\hspace{1cm} \hspace{1cm}
\tableofcontents \tableofcontents
\end{tcolorbox} \end{tcolorbox}
} }
%▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ %▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
@@ -382,15 +395,31 @@
% BB shortcuts (for number spaces, etc) % BB shortcuts (for number spaces, etc)
\newcommand{\A}{\mathbb{A}}
\newcommand{\B}{\mathbb{B}}
\newcommand{\C}{\mathbb{C}} \newcommand{\C}{\mathbb{C}}
\newcommand{\D}{\mathbb{D}} \newcommand{\D}{\mathbb{D}}
\newcommand{\E}{\mathbb{E}} \newcommand{\E}{\mathbb{E}}
\newcommand{\F}{\mathbb{F}}
\newcommand{\G}{\mathbb{G}}
\renewcommand{\H}{\mathbb{H}}
\newcommand{\I}{\mathbb{I}} \newcommand{\I}{\mathbb{I}}
\newcommand{\J}{\mathbb{J}} \newcommand{\J}{\mathbb{J}}
\newcommand{\K}{\mathbb{K}}
\renewcommand{\L}{\mathbb{L}}
\newcommand{\M}{\mathbb{M}}
\newcommand{\N}{\mathbb{N}} \newcommand{\N}{\mathbb{N}}
\renewcommand{\O}{\mathbb{O}}
\renewcommand{\P}{\mathbb{P}}
\newcommand{\Q}{\mathbb{Q}} \newcommand{\Q}{\mathbb{Q}}
\newcommand{\R}{\mathbb{R}} \newcommand{\R}{\mathbb{R}}
\renewcommand{\S}{\mathbb{S}}
\newcommand{\T}{\mathbb{T}}
\newcommand{\U}{\mathbb{U}}
\newcommand{\V}{\mathbb{V}} \newcommand{\V}{\mathbb{V}}
\newcommand{\W}{\mathbb{W}}
\newcommand{\X}{\mathbb{X}}
\newcommand{\Y}{\mathbb{Y}}
\newcommand{\Z}{\mathbb{Z}} \newcommand{\Z}{\mathbb{Z}}
% Caligraphic % Caligraphic
@@ -422,7 +451,10 @@
\newcommand{\cZ}{\mathcal{Z}} \newcommand{\cZ}{\mathcal{Z}}
% other useful shortcuts % other useful shortcuts
\newcommand{\elementstack}[2]{\genfrac{}{}{0pt}{}{#1}{#2}}
\newcommand{\8}{\infty} \newcommand{\8}{\infty}
\newcommand{\cond}{\text{cond}}
\newcommand{\argmin}[1]{\underset{#1}{\text{argmin}}}
\newcommand{\dx}{\text{ d}} \newcommand{\dx}{\text{ d}}
\newcommand{\floor}[1]{\left\lfloor #1 \right\rfloor} \newcommand{\floor}[1]{\left\lfloor #1 \right\rfloor}
\newcommand{\ceil}[1]{\left\lceil #1 \right\rceil} \newcommand{\ceil}[1]{\left\lceil #1 \right\rceil}
@@ -450,7 +482,6 @@
\newcommand{\limhz}{\limit{h}{0}} \newcommand{\limhz}{\limit{h}{0}}
\newcommand{\liminfni}{\liminf_{n \rightarrow \infty}} \newcommand{\liminfni}{\liminf_{n \rightarrow \infty}}
\newcommand{\limsupni}{\limsup_{n \rightarrow \infty}} \newcommand{\limsupni}{\limsup_{n \rightarrow \infty}}
\newcommand{\elementstack}[2]{\genfrac{}{}{0pt}{}{#1}{#2}}
\DeclareMathOperator\arctanh{arctanh} \DeclareMathOperator\arctanh{arctanh}
\DeclareMathOperator\arccosh{arccosh} \DeclareMathOperator\arccosh{arccosh}
\DeclareMathOperator\arcsinh{arcsinh} \DeclareMathOperator\arcsinh{arcsinh}
@@ -461,13 +492,13 @@
% ░▒█▄▄▀░░▀▀░░▀░░▒▀░█░░░░░▀▀▀░░▀░░▀▀▀░▀░▀▀░░░▒█▄▄▄█░▀▀▀░▀▀▀░▀▀▀░▀░░▀░▀▀▀░▀▀▀ % ░▒█▄▄▀░░▀▀░░▀░░▒▀░█░░░░░▀▀▀░░▀░░▀▀▀░▀░▀▀░░░▒█▄▄▄█░▀▀▀░▀▀▀░▀▀▀░▀░░▀░▀▀▀░▀▀▀
% Extra imports % Extra imports
\RequirePackage{stmaryrd} \usepackage{stmaryrd}
\RequirePackage{algorithm} \usepackage{algorithm}
\RequirePackage{algpseudocodex} \usepackage{algpseudocodex}
\RequirePackage{setspace} \usepackage{setspace}
\RequirePackage{verbatim} \usepackage{verbatim}
\RequirePackage{turnstile} \usepackage{turnstile}
\RequirePackage{forloop} \usepackage{forloop}
\newcommand{\Indent}{\hspace{\algorithmicindent}} \newcommand{\Indent}{\hspace{\algorithmicindent}}
@@ -500,8 +531,8 @@
% For using index package % For using index package
\newcommand{\prepareIndex}{ \newcommand{\prepareIndex}{
\RequirePackage[T1]{fontenc} \usepackage[T1]{fontenc}
\RequirePackage{imakeidx} \usepackage{imakeidx}
\makeindex \makeindex
} }
@@ -517,8 +548,8 @@
% ▐███▌▐█▌.▐▌▐█▄█▌██▐█▌ ▐█▌·▐█▄▄▌▐█•█▌ % ▐███▌▐█▌.▐▌▐█▄█▌██▐█▌ ▐█▌·▐█▄▄▌▐█•█▌
% ·▀▀▀ ▀█▄▀▪ ▀▀▀ ▀▀ █▪ ▀▀▀ ▀▀▀ .▀ ▀ % ·▀▀▀ ▀█▄▀▪ ▀▀▀ ▀▀ █▪ ▀▀▀ ▀▀▀ .▀ ▀
\RequirePackage{xstring} \usepackage{xstring}
\RequirePackage{etoolbox} \usepackage{etoolbox}
% tcolorbox and other stylistic elements (i.e. inline versions of them) that have counters % tcolorbox and other stylistic elements (i.e. inline versions of them) that have counters
\newcounter{lemma}[section] \newcounter{lemma}[section]
\newcounter{definition}[section] \newcounter{definition}[section]
@@ -964,40 +995,36 @@
\newtcolorbox{forms}[2][]{mainboxstyle,colback=red!5!white,colframe=red!75!black,colbacktitle=red!75!black,title={\large #2}, \newtcolorbox{forms}[2][]{mainboxstyle,colback=red!5!white,colframe=red!75!black,colbacktitle=red!75!black,title={\large #2},
overlay={\node[overlaystyle,draw=red!75!black,fill=red!75!black] at (frame.north east) {\large \translate{Forms}{Formen}};},#1} overlay={\node[overlaystyle,draw=red!75!black,fill=red!75!black] at (frame.north east) {\large \translate{Forms}{Formen}};},#1}
% ___ _ _____ _ _ % _____ _ _
% ( _ \ _( ) (_ _) ( ) ( ) % (_ _) ( ) (_ )
% | (_) )_) |_ | | __ \ \/ / % | | _ _| |_ | | __ ___
% | _ (| | _ \ | | / __ \ ) ( % | | / _ ) _ \ | | / __ \ __)
% | (_) ) | |_) ) | | ( ___// /\ \ % | | ( (_| | |_) )| |( ___/__ \
% (____/(_)_ __/ (_) \____)_) (_) % (_) \__ _)_ __/(___)\____)____/
% Configs if you want to use BibTeX. Not included in any default configs.
\newcommand{\setupBibtex}[1]{ \usepackage{booktabs}
\usepackage{biblatex}
\usepackage[nottoc, numbib]{tocbibind} % Create new table. #1 Layout, #2 title row
\addbibresource{#1} \newenvironment{tables}[2]{
\begin{center}
\begin{tabular}{#1}
\toprule
#2 \\
\midrule
}{
\bottomrule
\end{tabular}
\end{center}
} }
\newcommand{\printbib}{ % Create new table in table env. #1 layout, #2 title row, #3 caption
\addcontentsline{toc}{section}{\translate{Sources}{Quellen}} \newenvironment{fullTable}[3]{
\printbibliography[title=\translate{Sources}{Quellen}] \edef\tableCaption{#3}
} \begin{table}[h!]
\begin{tables}{#1}{#2}
}{
%░▒█▀▀█░█░░▄▀▀▄░█▀▀░█▀▀░█▀▀▄░█▀▀▄░█░░█ \end{tables}
%░▒█░▄▄░█░░█░░█░▀▀▄░▀▀▄░█▄▄█░█▄▄▀░█▄▄█ \caption{\tableCaption}
%░▒█▄▄▀░▀▀░░▀▀░░▀▀▀░▀▀▀░▀░░▀░▀░▀▀░▄▄▄▀ \end{table}
% Add glossaries functionality
\newcommand{\setupGlossary}{
\usepackage[nonumberlist, toc]{glossaries}
\usepackage[nottoc, numbib]{tocbibind}
\makenoidxglossaries
}
\newcommand{\printGlossary}{
\glsaddall
\printnoidxglossaries
} }

View File

@@ -1,5 +1,164 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{janishutz-helpers}[2.0.0] % ▄▄▄ ▄▄▄▄▄▄ ▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄▄▄▄▄▄ ▄▄▄ ▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄ ▄▄▄▄▄▄ ▄▄▄▄▄▄▄
% █ █ █ █ █ █ █▄█ █ █ █ █ █ █ █ █ █ █ ▄ █ █ █
% █ █ █ ▄ █▄ ▄█ ▄▄▄█ █ █ █▄█ █ ▄▄▄█ █ █ ▄ █ ▄▄▄█ █ █ █ █ ▄▄▄▄▄█
% █ █ █ █▄█ █ █ █ █ █▄▄▄█ █ █ █ █▄▄▄█ █ █ █▄█ █ █▄▄▄█ █▄▄█▄█ █▄▄▄▄▄
% █ █▄▄▄█ █ █ █ █ ▄▄▄██ █ █ ▄ █ ▄▄▄█ █▄▄▄█ ▄▄▄█ ▄▄▄█ ▄▄ █▄▄▄▄▄ █
% █ █ ▄ █ █ █ █ █▄▄▄█ ▄ █ █ █ █ █ █▄▄▄█ █ █ █ █▄▄▄█ █ █ █▄▄▄▄▄█ █
% █▄▄▄▄▄▄▄█▄█ █▄▄█ █▄▄▄█ █▄▄▄▄▄▄▄█▄▄█ █▄▄█ █▄▄█ █▄▄█▄▄▄▄▄▄▄█▄▄▄▄▄▄▄█▄▄▄█ █▄▄▄▄▄▄▄█▄▄▄█ █▄█▄▄▄▄▄▄▄█
% ▄▄█▀▀▀█▄█
% ▄██▀ ▀█
% ██▀ ▀ ▄██▀██▄▀███▄███ ▄▄█▀██
% ██ ██▀ ▀██ ██▀ ▀▀ ▄█▀ ██
% ██▄ ██ ██ ██ ██▀▀▀▀▀▀
% ▀██▄ ▄▀██▄ ▄██ ██ ██▄ ▄
% ▀▀█████▀ ▀█████▀▄████▄ ▀█████▀
% This file contains all necessary dependencies for the document to compile (at all) and some core macros
% Imports %
\typeout{[Core] Importing!}
\usepackage[table, dvipsnames]{xcolor}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{subcaption}
\usepackage[export]{adjustbox}
\usepackage[most]{tcolorbox}
\usepackage{cancel}
\usepackage{dsfont}
\usepackage{amssymb}
\usepackage{mathrsfs}
\usepackage{ulem}
\usepackage{soul}
\usepackage{parskip}
\usepackage{fancyhdr}
\usepackage{lastpage}
\usepackage{tocloft}
\usepackage{wasysym}
\usepackage{wrapfig}
\usepackage{multicol}
\usepackage{ifthen}
\usepackage[hidelinks]{hyperref}
\usepackage{enumitem}
\usepackage{gensymb}
\usepackage{pifont}
% Language Switching. Currently only English and German are supported
% See docs for how to use
\newcounter{lang}
\newcommand{\setLang}[1]{
\edef\lang{#1}
\edef\en{en}
\edef\de{de}
\ifx\lang\en
\typeout{[Lang Switcher] Loading English}
\setcounter{lang}{1}
\else
\ifx\lang\de
\typeout{[Lang Switcher] Loading German}
\setcounter{lang}{2}
\usepackage[ngerman]{babel}
\else
\typeout{[Lang Switcher] No such language!}
\fi
\fi
}
\newcommand{\loadLang}{
\ifnum\value{lang}<2{
\typeout{[Lang Loader] Loaded English}
}\else {
\typeout{[Lang Loader] Loaded German}
\setcounter{lang}{2}
}
\fi
}
% Create config counters / variables. See the config file for changing them
\newcounter{numberingConfig}
\newcounter{numberSubsections}
\newcounter{descriptorShadeStrength}
\newcounter{shadeStrength}
% Set up the latex document, configure author, title (as first argument), as well as headers and footers
\newcommand{\setup}[1]{
\typeout{[Setup] Setting up...}
\loadLang
\usepackage[a4paper,textwidth=17.5cm,textheight=25cm,includehead]{geometry}
\title{\Huge \textbf{#1}}
\author{\authorTitle}
\makeatletter
\makeatother
\fancyhead{}
\fancyhead[L]{#1}
\fancyhead[R]{\authorHeaders}
\fancyfoot{}
\fancyfoot[L]{\today}
\fancyfoot[R]{\thepage\ /\ \pageref{LastPage}}
\fancypagestyle{plain}{%
\fancyhead{}
\fancyhead[L]{#1}
\fancyhead[R]{\authorHeaders}
\fancyfoot{}
\fancyfoot[L]{\today}
\fancyfoot[R]{\thepage\ /\ \pageref{LastPage}}
}
}
% Start document command (required)
\newcommand{\startDocument}{
\maketitle
\startDocumentNoTitle
}
\newcommand{\startDocumentNoTitle}{
\pagestyle{fancy}
\thispagestyle{fancy}
}
% Set up the latex document, only configuring the author, title and page size
\newcommand{\setupBarebones}[1]{
\loadLang
\usepackage[a4paper,textwidth=17.5cm,textheight=25cm,includehead]{geometry}
\title{\Huge \textbf{#1}}
\author{\authorTitle}
}
% Set up the latex document for exam summaries (Extra wide body, small margins, no header)
\newcommand{\setupCheatSheet}[1]{
\loadLang
\usepackage[a4paper,textwidth=20cm,textheight=28.5cm]{geometry}
\title{\Huge \textbf{#1}}
\author{\authorTitle}
}
% ────────────────────────────────────────────────────────────────────
% ╭────────────────────────────────────────────────╮
% │ Translatation │
% ╰────────────────────────────────────────────────╯
\newcommand{\translate}[2]{\ifnum\value{lang}<2{#1}\else{#2}\fi}
\newcommand{\tr}[2]{\translate{#1}{#2}}
% ┌ ┐
% │ Translation aids (commonly used) │
% └ ┘
\newcommand{\trif}{\translate{if }{falls }}
\newcommand{\trIf}{\translate{If }{Falls }}
\newcommand{\trLet}{\translate{Let }{Sei }}
\newcommand{\trLets}{\translate{Let }{Seien }}
\newcommand{\trFor}{\translate{For }{Für }}
\newcommand{\trfor}{\translate{for }{für }}
\newcommand{\trand}{\translate{and }{und }}
\newcommand{\tror}{\translate{or }{oder }}
\newcommand{\trst}{\translate{s.t. }{s.d. }}
\newcommand{\trsuchthat}{\translate{such that }{so dass }}
\newcommand{\trwith}{\translate{with }{mit }}
% ___ ___ % ___ ___
% ( _ \ / ___)_ % ( _ \ / ___)_
@@ -46,158 +205,6 @@
% The colour-saturation of the shade command (default = 20) % The colour-saturation of the shade command (default = 20)
\setcounter{shadeStrength}{20} \setcounter{shadeStrength}{20}
% ▄▄█▀▀▀█▄█
% ▄██▀ ▀█
% ██▀ ▀ ▄██▀██▄▀███▄███ ▄▄█▀██
% ██ ██▀ ▀██ ██▀ ▀▀ ▄█▀ ██
% ██▄ ██ ██ ██ ██▀▀▀▀▀▀
% ▀██▄ ▄▀██▄ ▄██ ██ ██▄ ▄
% ▀▀█████▀ ▀█████▀▄████▄ ▀█████▀
% This file contains all necessary dependencies for the document to compile (at all) and some core macros
% Imports %
\typeout{[Core] Importing!}
\RequirePackage[table, dvipsnames]{xcolor}
\RequirePackage{amsmath}
\RequirePackage{graphicx}
\RequirePackage{subcaption}
\RequirePackage[export]{adjustbox}
\RequirePackage[most]{tcolorbox}
\RequirePackage{cancel}
\RequirePackage{dsfont}
\RequirePackage{amssymb}
\RequirePackage{mathrsfs}
\RequirePackage{lipsum}
\RequirePackage{ulem}
\RequirePackage{soul}
\RequirePackage{parskip}
\RequirePackage{fancyhdr}
\RequirePackage{lastpage}
\RequirePackage{tocloft}
\RequirePackage{wasysym}
\RequirePackage{wrapfig}
\RequirePackage{multicol}
\RequirePackage{ifthen}
\RequirePackage[hidelinks]{hyperref}
\RequirePackage{enumitem}
\RequirePackage{gensymb}
\RequirePackage{pifont}
% Language Switching. Currently only English and German are supported
% See docs for how to use
\newcounter{lang}
\typeout{Loading helpers}
% TODO: Fix this up
\newcommand{\setLang}[1]{
\edef\lang{#1}
\edef\en{en}
\edef\de{de}
\ifx\lang\en
\typeout{[Lang Switcher] Loading English}
\setcounter{lang}{1}
\else
\ifx\lang\de
\typeout{[Lang Switcher] Loading German}
\setcounter{lang}{2}
\input{\dir/main/lang/de}
\else
\typeout{[Lang Switcher] No such language!}
\fi
\fi
}
\newcommand{\loadLang}{
\ifnum\value{lang}<2{
\typeout{[Lang Loader] Loaded English}
}\else {
\typeout{[Lang Loader] Loaded German}
\setcounter{lang}{2}
}
\fi
}
% Create config counters / variables. See the config file for changing them
\newcounter{numberingConfig}
\newcounter{numberSubsections}
\newcounter{descriptorShadeStrength}
\newcounter{shadeStrength}
% Set up the latex document, configure author, title (as first argument), as well as headers and footers
\newcommand{\setup}[1]{
\typeout{[Setup] Setting up...}
\loadLang
\RequirePackage[a4paper,textwidth=17.5cm,textheight=25cm,includehead]{geometry}
\title{\Huge \textbf{#1}}
\author{\authorTitle}
\makeatletter
\makeatother
\fancyhead{}
\fancyhead[L]{#1}
\fancyhead[R]{\authorHeaders}
\fancyfoot{}
\fancyfoot[L]{\today}
\fancyfoot[R]{\thepage\ /\ \pageref{LastPage}}
\fancypagestyle{plain}{%
\fancyhead{}
\fancyhead[L]{#1}
\fancyhead[R]{\authorHeaders}
\fancyfoot{}
\fancyfoot[L]{\today}
\fancyfoot[R]{\thepage\ /\ \pageref{LastPage}}
}
}
% Start document command (required)
\newcommand{\startDocument}{
\maketitle
\pagestyle{fancy}
\thispagestyle{fancy}
}
% Set up the latex document, only configuring the author, title and page size
\newcommand{\setupBarebones}[1]{
\loadLang
\RequirePackage[a4paper,textwidth=17.5cm,textheight=25cm,includehead]{geometry}
\title{\Huge \textbf{#1}}
\author{\authorTitle}
}
% Set up the latex document for exam summaries (Extra wide body, small margins, no header)
\newcommand{\setupCheatSheet}[1]{
\loadLang
\RequirePackage[a4paper,textwidth=20cm,textheight=28.5cm]{geometry}
\title{\Huge \textbf{#1}}
\author{\authorTitle}
}
% ────────────────────────────────────────────────────────────────────
% ╭────────────────────────────────────────────────╮
% │ Translatation │
% ╰────────────────────────────────────────────────╯
\newcommand{\translate}[2]{\ifnum\value{lang}<2{#1}\else{#2}\fi}
\newcommand{\tr}[2]{\translate{#1}{#2}}
% ┌ ┐
% │ Translation aids (commonly used) │
% └ ┘
\newcommand{\trif}{\translate{if }{falls }}
\newcommand{\trIf}{\translate{If }{Falls }}
\newcommand{\trLet}{\translate{Let }{Sei }}
\newcommand{\trLets}{\translate{Let }{Seien }}
\newcommand{\trFor}{\translate{For }{Für }}
\newcommand{\trfor}{\translate{for }{für }}
\newcommand{\trand}{\translate{and }{und }}
\newcommand{\tror}{\translate{or }{oder }}
\newcommand{\trst}{\translate{s.t. }{s.d. }}
\newcommand{\trsuchthat}{\translate{such that }{so dass }}
\newcommand{\trwith}{\translate{with }{mit }}
%░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ %░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
%░░░ ░░░░░ ░░░░░░░░░░░░░ ░░░░░░░░░░░ %░░░ ░░░░░ ░░░░░░░░░░░░░ ░░░░░░░░░░░
%▒ ▒▒▒▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒ %▒ ▒▒▒▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒
@@ -210,35 +217,35 @@
% Global style configs for tcolorbox (to reduce bloat) % Global style configs for tcolorbox (to reduce bloat)
\newcommand{\usetcolorboxes}{ \newcommand{\usetcolorboxes}{
\tcbset{ \tcbset{
mainboxstyle/.style={ mainboxstyle/.style={
arc=3mm, arc=3mm,
colback=red!5!white, colback=red!5!white,
colframe=red!75!black, colframe=red!75!black,
colbacktitle=red!75!black, colbacktitle=red!75!black,
fonttitle=\bfseries, fonttitle=\bfseries,
enhanced, enhanced,
attach boxed title to top left={yshift=-2mm,xshift=5mm}, attach boxed title to top left={yshift=-2mm,xshift=5mm},
breakable, breakable,
top=0.4cm, top=0.4cm,
} }
} }
\tikzset{ \tikzset{
overlaystyle/.style={ overlaystyle/.style={
draw=red!75!black, draw=red!75!black,
thick, thick,
fill=red!75!black, fill=red!75!black,
left, left,
anchor=east, anchor=east,
text=white, text=white,
rounded corners=1mm, rounded corners=1mm,
font=\bfseries, font=\bfseries,
xshift=-5mm, xshift=-5mm,
yshift=1mm, yshift=1mm,
inner xsep=3mm, inner xsep=3mm,
inner ysep=1.5mm inner ysep=1.5mm
} }
} }
} }
% -------------------- % % -------------------- %
@@ -265,16 +272,16 @@
% Add a color shade (similar to \fhlc, but nicer boxes) % Add a color shade (similar to \fhlc, but nicer boxes)
\newcommand{\background}[3]{\tcbox[on line, \newcommand{\background}[3]{\tcbox[on line,
boxsep=2pt, boxsep=2pt,
left=0pt, left=0pt,
right=0pt, right=0pt,
top=0pt, top=0pt,
bottom=0pt, bottom=0pt,
colframe=white, colframe=white,
frame empty, frame empty,
colback=#1!#2!white, colback=#1!#2!white,
highlight math style={enhanced} highlight math style={enhanced}
] {\textbf{#3}}} ] {\textbf{#3}}}
% Abstraction of background, where the brightness is set to 20% % Abstraction of background, where the brightness is set to 20%
\newcommand{\shade}[2]{\background{#1}{\arabic{shadeStrength}}{#2}} \newcommand{\shade}[2]{\background{#1}{\arabic{shadeStrength}}{#2}}
@@ -292,6 +299,12 @@
% Add a colorbox around your text with the color specified. Text is bold and underlined % Add a colorbox around your text with the color specified. Text is bold and underlined
\newcommand{\fhlc}[2]{\textbf{\underline{\colorbox{#1}{#2}}}} \newcommand{\fhlc}[2]{\textbf{\underline{\colorbox{#1}{#2}}}}
% Draw box around links. First arg link, second arg display
\newcommand{\hlhref}[2]{\color{MidnightBlue}\fbox{\href{#1}{#2}}\color{black}}
% Same for urls (just one arg tho)
\newcommand{\hlurl}[1]{\color{MidnightBlue}\fbox{\url{#1}}\color{black}}
% Spacing (horizontal) % Spacing (horizontal)
\newcommand{\smallhspace}{\hspace{2mm}} \newcommand{\smallhspace}{\hspace{2mm}}
\newcommand{\mediumhspace}{\hspace{5mm}} \newcommand{\mediumhspace}{\hspace{5mm}}
@@ -303,14 +316,14 @@
% Print a table of contents as a tcolorbox % Print a table of contents as a tcolorbox
\newcommand{\printtoc}[1]{ \newcommand{\printtoc}[1]{
\renewcommand{\cfttoctitlefont}{} \renewcommand{\cfttoctitlefont}{}
\renewcommand{\cftaftertoctitle}{\vspace{-0.75cm}} \renewcommand{\cftaftertoctitle}{\vspace{-0.75cm}}
\renewcommand{\contentsname}{} \renewcommand{\contentsname}{}
\begin{tcolorbox}[colback=black!5!white,colbacktitle=#1!75!black,coltitle=black,enhanced,attach boxed title to top center={yshift=-2mm}, \begin{tcolorbox}[colback=black!5!white,colbacktitle=#1!75!black,coltitle=black,enhanced,attach boxed title to top center={yshift=-2mm},
title={\Large \ifnum\value{lang}<2{Contents}\else {Inhaltsverzeichnis}\fi},fonttitle=\bfseries,breakable] title={\Large \ifnum\value{lang}<2{Contents}\else {Inhaltsverzeichnis}\fi},fonttitle=\bfseries,breakable]
\hspace{1cm} \hspace{1cm}
\tableofcontents \tableofcontents
\end{tcolorbox} \end{tcolorbox}
} }
%▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ %▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
@@ -382,15 +395,31 @@
% BB shortcuts (for number spaces, etc) % BB shortcuts (for number spaces, etc)
\newcommand{\A}{\mathbb{A}}
\newcommand{\B}{\mathbb{B}}
\newcommand{\C}{\mathbb{C}} \newcommand{\C}{\mathbb{C}}
\newcommand{\D}{\mathbb{D}} \newcommand{\D}{\mathbb{D}}
\newcommand{\E}{\mathbb{E}} \newcommand{\E}{\mathbb{E}}
\newcommand{\F}{\mathbb{F}}
\newcommand{\G}{\mathbb{G}}
\renewcommand{\H}{\mathbb{H}}
\newcommand{\I}{\mathbb{I}} \newcommand{\I}{\mathbb{I}}
\newcommand{\J}{\mathbb{J}} \newcommand{\J}{\mathbb{J}}
\newcommand{\K}{\mathbb{K}}
\renewcommand{\L}{\mathbb{L}}
\newcommand{\M}{\mathbb{M}}
\newcommand{\N}{\mathbb{N}} \newcommand{\N}{\mathbb{N}}
\renewcommand{\O}{\mathbb{O}}
\renewcommand{\P}{\mathbb{P}}
\newcommand{\Q}{\mathbb{Q}} \newcommand{\Q}{\mathbb{Q}}
\newcommand{\R}{\mathbb{R}} \newcommand{\R}{\mathbb{R}}
\renewcommand{\S}{\mathbb{S}}
\newcommand{\T}{\mathbb{T}}
\newcommand{\U}{\mathbb{U}}
\newcommand{\V}{\mathbb{V}} \newcommand{\V}{\mathbb{V}}
\newcommand{\W}{\mathbb{W}}
\newcommand{\X}{\mathbb{X}}
\newcommand{\Y}{\mathbb{Y}}
\newcommand{\Z}{\mathbb{Z}} \newcommand{\Z}{\mathbb{Z}}
% Caligraphic % Caligraphic
@@ -422,7 +451,10 @@
\newcommand{\cZ}{\mathcal{Z}} \newcommand{\cZ}{\mathcal{Z}}
% other useful shortcuts % other useful shortcuts
\newcommand{\elementstack}[2]{\genfrac{}{}{0pt}{}{#1}{#2}}
\newcommand{\8}{\infty} \newcommand{\8}{\infty}
\newcommand{\cond}{\text{cond}}
\newcommand{\argmin}[1]{\underset{#1}{\text{argmin}}}
\newcommand{\dx}{\text{ d}} \newcommand{\dx}{\text{ d}}
\newcommand{\floor}[1]{\left\lfloor #1 \right\rfloor} \newcommand{\floor}[1]{\left\lfloor #1 \right\rfloor}
\newcommand{\ceil}[1]{\left\lceil #1 \right\rceil} \newcommand{\ceil}[1]{\left\lceil #1 \right\rceil}
@@ -450,7 +482,6 @@
\newcommand{\limhz}{\limit{h}{0}} \newcommand{\limhz}{\limit{h}{0}}
\newcommand{\liminfni}{\liminf_{n \rightarrow \infty}} \newcommand{\liminfni}{\liminf_{n \rightarrow \infty}}
\newcommand{\limsupni}{\limsup_{n \rightarrow \infty}} \newcommand{\limsupni}{\limsup_{n \rightarrow \infty}}
\newcommand{\elementstack}[2]{\genfrac{}{}{0pt}{}{#1}{#2}}
\DeclareMathOperator\arctanh{arctanh} \DeclareMathOperator\arctanh{arctanh}
\DeclareMathOperator\arccosh{arccosh} \DeclareMathOperator\arccosh{arccosh}
\DeclareMathOperator\arcsinh{arcsinh} \DeclareMathOperator\arcsinh{arcsinh}
@@ -461,13 +492,13 @@
% ░▒█▄▄▀░░▀▀░░▀░░▒▀░█░░░░░▀▀▀░░▀░░▀▀▀░▀░▀▀░░░▒█▄▄▄█░▀▀▀░▀▀▀░▀▀▀░▀░░▀░▀▀▀░▀▀▀ % ░▒█▄▄▀░░▀▀░░▀░░▒▀░█░░░░░▀▀▀░░▀░░▀▀▀░▀░▀▀░░░▒█▄▄▄█░▀▀▀░▀▀▀░▀▀▀░▀░░▀░▀▀▀░▀▀▀
% Extra imports % Extra imports
\RequirePackage{stmaryrd} \usepackage{stmaryrd}
\RequirePackage{algorithm} \usepackage{algorithm}
\RequirePackage{algpseudocodex} \usepackage{algpseudocodex}
\RequirePackage{setspace} \usepackage{setspace}
\RequirePackage{verbatim} \usepackage{verbatim}
\RequirePackage{turnstile} \usepackage{turnstile}
\RequirePackage{forloop} \usepackage{forloop}
\newcommand{\Indent}{\hspace{\algorithmicindent}} \newcommand{\Indent}{\hspace{\algorithmicindent}}
@@ -500,8 +531,8 @@
% For using index package % For using index package
\newcommand{\prepareIndex}{ \newcommand{\prepareIndex}{
\RequirePackage[T1]{fontenc} \usepackage[T1]{fontenc}
\RequirePackage{imakeidx} \usepackage{imakeidx}
\makeindex \makeindex
} }
@@ -517,8 +548,8 @@
% ▐███▌▐█▌.▐▌▐█▄█▌██▐█▌ ▐█▌·▐█▄▄▌▐█•█▌ % ▐███▌▐█▌.▐▌▐█▄█▌██▐█▌ ▐█▌·▐█▄▄▌▐█•█▌
% ·▀▀▀ ▀█▄▀▪ ▀▀▀ ▀▀ █▪ ▀▀▀ ▀▀▀ .▀ ▀ % ·▀▀▀ ▀█▄▀▪ ▀▀▀ ▀▀ █▪ ▀▀▀ ▀▀▀ .▀ ▀
\RequirePackage{xstring} \usepackage{xstring}
\RequirePackage{etoolbox} \usepackage{etoolbox}
% tcolorbox and other stylistic elements (i.e. inline versions of them) that have counters % tcolorbox and other stylistic elements (i.e. inline versions of them) that have counters
\newcounter{lemma}[section] \newcounter{lemma}[section]
\newcounter{definition}[section] \newcounter{definition}[section]
@@ -964,6 +995,40 @@
\newtcolorbox{forms}[2][]{mainboxstyle,colback=red!5!white,colframe=red!75!black,colbacktitle=red!75!black,title={\large #2}, \newtcolorbox{forms}[2][]{mainboxstyle,colback=red!5!white,colframe=red!75!black,colbacktitle=red!75!black,title={\large #2},
overlay={\node[overlaystyle,draw=red!75!black,fill=red!75!black] at (frame.north east) {\large \translate{Forms}{Formen}};},#1} overlay={\node[overlaystyle,draw=red!75!black,fill=red!75!black] at (frame.north east) {\large \translate{Forms}{Formen}};},#1}
% _____ _ _
% (_ _) ( ) (_ )
% | | _ _| |_ | | __ ___
% | | / _ ) _ \ | | / __ \ __)
% | | ( (_| | |_) )| |( ___/__ \
% (_) \__ _)_ __/(___)\____)____/
\usepackage{booktabs}
% Create new table. #1 Layout, #2 title row
\newenvironment{tables}[2]{
\begin{center}
\begin{tabular}{#1}
\toprule
#2 \\
\midrule
}{
\bottomrule
\end{tabular}
\end{center}
}
% Create new table in table env. #1 layout, #2 title row, #3 caption
\newenvironment{fullTable}[3]{
\edef\tableCaption{#3}
\begin{table}[h!]
\begin{tables}{#1}{#2}
}{
\end{tables}
\caption{\tableCaption}
\end{table}
}
% ___ _ _____ _ _ % ___ _ _____ _ _
% ( _ \ _( ) (_ _) ( ) ( ) % ( _ \ _( ) (_ _) ( ) ( )
% | (_) )_) |_ | | __ \ \/ / % | (_) )_) |_ | | __ \ \/ /
@@ -1001,21 +1066,3 @@
\glsaddall \glsaddall
\printnoidxglossaries \printnoidxglossaries
} }
\usepackage{minted}
\usepackage{fancyvrb}
\newcommand{\inlinecode}[1]{\shade{gray}{\texttt{#1}}}
\newenvironment{code}[1]{
\VerbatimEnvironment
\begin{minted}[
autogobble,
breaklines,
breakindentnchars=2,
frame=lines,
framesep=2mm,
mathescape,
baselinestretch=1.1,
linenos]{#1}}
{\end{minted}}

Binary file not shown.

View File

@@ -1,8 +1,6 @@
\documentclass{article} \documentclass{article}
\newcommand{\dir}{~/projects/latex} \input{~/projects/latex/dist/full.tex}
\input{\dir/include.tex}
\load{full}
\setup{Docs - \LaTeX \hspace{0mm} helpers} \setup{Docs - \LaTeX \hspace{0mm} helpers}
\setLang{en} \setLang{en}
@@ -35,9 +33,9 @@ The timecomplexity commands have been updated to require math environment. You c
and \verb|/\\text{\\tc\([olt]\){\(.*\)}}/\\tc\1{\2}/g| and \verb|/\\text{\\tc\([olt]\){\(.*\)}}/\\tc\1{\2}/g|
\subsection{Labels \& Environments} \subsection{Labels \& Environments}
The counter environments can now be referenced (see \ref{sec:counters}). The counter environments can now be referenced (see \ref{sec:counters}).
Due to the new requirements set out by that addition, it is now no longer possible to manually update the counters using Due to the new requirements set out by that addition, it is now no longer possible to manually update the counters using
\verb|\setcounter|. \verb|\setcounter|.
Use the below regex to replace all occurrences of \verb|\setcounter| with the new format. Use the below regex to replace all occurrences of \verb|\setcounter| with the new format.
Please note that this will overwrite \textit{all} occurrences of \verb|\setcounter| with the specific old format with \verb|\setLabelNumber|: Please note that this will overwrite \textit{all} occurrences of \verb|\setcounter| with the specific old format with \verb|\setLabelNumber|:

View File

@@ -31,6 +31,7 @@
\item \verb|\setupCheatSheet|\{\textit{string}\} Prepare the document with smaller borders and no headers / footers. \textit{string} is the title \item \verb|\setupCheatSheet|\{\textit{string}\} Prepare the document with smaller borders and no headers / footers. \textit{string} is the title
\item \verb|\setupBarebones|\{\textit{string}\} Minimal setup, only borders and title set \item \verb|\setupBarebones|\{\textit{string}\} Minimal setup, only borders and title set
\item \verb|\startDocument| Initialize the document. Has to be called after \verb|\begin{document}| \item \verb|\startDocument| Initialize the document. Has to be called after \verb|\begin{document}|
\item \verb|\startDocumentNoTile| Initialize the document without printing the title. Has to be called after \verb|\begin{document}|
\item \verb|\usetcolorboxes| Initialize tcolorboxes. In main body, if you want to use fancy boxes. (requires \texttt{most} or up) \item \verb|\usetcolorboxes| Initialize tcolorboxes. In main body, if you want to use fancy boxes. (requires \texttt{most} or up)
\item \verb|\translate|\{\textit{string}\}\{\textit{string}\} First \textit{string} is English, second \textit{string} is German. Switches automatically based on language selected \item \verb|\translate|\{\textit{string}\}\{\textit{string}\} First \textit{string} is English, second \textit{string} is German. Switches automatically based on language selected
\item \verb|\tr|\{\textit{string}\}\{\textit{string}\} Shorthand for \verb|\translate| \item \verb|\tr|\{\textit{string}\}\{\textit{string}\} Shorthand for \verb|\translate|

View File

@@ -5,9 +5,7 @@ You can type \texttt{latex-prepare} and press tab, if you have installed the VSC
\begin{minted}{latex} \begin{minted}{latex}
\documentclass{article} \documentclass{article}
\newcommand{\dir}{~/path/to/helper} % TODO: Change your path here! No trailing slashes! \input{~/projects/latex/dist/recommended.tex} % TODO: Change here your inclusion level and path
\input{\dir/include.tex}
\load{recommended} % TODO: Change the inclusion level (if necessary), see below
\setup{Type your title here} \setup{Type your title here}
@@ -19,15 +17,19 @@ Type your \LaTeX here
\end{document} \end{document}
\end{minted} \end{minted}
The \verb|\load| command takes one parameter, which can be one of the following: On the line with the TODO, you can change the import path, as well as scope.
Simply replace the ``recommended'' with any of the below.
\begin{itemize} \begin{itemize}
\item \texttt{minimal} Just the core styling and core functionality. \item \texttt{minimal} Just the core styling and core functionality.
\item \texttt{most} Includes Math, CS, Language and all styling. \item \texttt{most} Includes Math, CS, Language and all styling.
\item \texttt{recommended} The recommended setup. Includes BibTeX in addition to what is in most \item \texttt{recommended} The recommended setup. Includes BibTeX in addition to what is in most
\item \texttt{all} If you want to also include glossaries or code with highlighting \item \texttt{full} If you want to also include glossaries or code with highlighting
\item \texttt{letter} If you want to typeset a letter (see \ref{sec:letters}) \item \texttt{letter} If you want to typeset a letter (see \ref{sec:letters})
\end{itemize} \end{itemize}
If you are using the old import style, you can use the \verb|\load| command with these options
\subsection{Configuration} \subsection{Configuration}
You can set a global config in config file in helper files directory. The file is located at You can set a global config in config file in helper files directory. The file is located at

View File

@@ -1,3 +1,6 @@
% ┌ ┐
% │ Minted │
% └ ┘
\usepackage{minted} \usepackage{minted}
\usepackage{fancyvrb} \usepackage{fancyvrb}

View File

@@ -1,3 +1,42 @@
% Loader % Loader
\usepackage{currfile} \ClassWarning{janishutz-helpers}{Using legacy loading method. Please see the docs for updating}
\usepackage{\currfileabsdir janishutz-helpers} \newcommand{\load}[1]{
\edef\recommended{recommended}
\edef\minimal{minimal}
\edef\most{most}
\edef\full{full}
\edef\letters{letter}
\edef\temp{#1}
\ifx \temp\recommended
\typeout{[CustomLaTeXHelperLoader]: Loading config recommended}
\input{\dir/scopes/recommended.tex}
\loadRecommended
\else
\ifx \temp\minimal
\typeout{[CustomLaTeXHelperLoader]: Loading config minimal}
\input{\dir/scopes/minimal.tex}
\loadMinimal
\else
\ifx \temp\most
\typeout{[CustomLaTeXHelperLoader]: Loading config most}
\input{\dir/scopes/most.tex}
\loadMost
\else
\ifx \temp\full
\typeout{[CustomLaTeXHelperLoader]: Loading config full}
\input{\dir/scopes/full.tex}
\loadFull
\else
\ifx \temp\letters
\typeout{[CustomLaTeXHelperLoader]: Loading config letter}
\input{\dir/scopes/minimal.tex}
\loadMinimal
\input{\dir/scopes/letter.tex}
\else
\typeout{[CustomLaTeXHelperLoader]: INVALID CONFIG SPECIFIED, NOTHING LOADED!}
\fi
\fi
\fi
\fi
\fi
}

View File

@@ -1,2 +0,0 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{janishutz-helpers}[2.0.0]

View File

@@ -9,41 +9,39 @@
% This file contains all necessary dependencies for the document to compile (at all) and some core macros % This file contains all necessary dependencies for the document to compile (at all) and some core macros
% Imports % % Imports %
\typeout{[Core] Importing!} \typeout{[Core] Importing!}
\RequirePackage[table, dvipsnames]{xcolor} \usepackage[table, dvipsnames]{xcolor}
\RequirePackage{amsmath} \usepackage{amsmath}
\RequirePackage{graphicx} \usepackage{graphicx}
\RequirePackage{subcaption} \usepackage{subcaption}
\RequirePackage[export]{adjustbox} \usepackage[export]{adjustbox}
\RequirePackage[most]{tcolorbox} \usepackage[most]{tcolorbox}
\RequirePackage{cancel} \usepackage{cancel}
\RequirePackage{dsfont} \usepackage{dsfont}
\RequirePackage{amssymb} \usepackage{amssymb}
\RequirePackage{mathrsfs} \usepackage{mathrsfs}
\RequirePackage{lipsum} \usepackage{ulem}
\RequirePackage{ulem} \usepackage{soul}
\RequirePackage{soul} \usepackage{parskip}
\RequirePackage{parskip} \usepackage{fancyhdr}
\RequirePackage{fancyhdr} \usepackage{lastpage}
\RequirePackage{lastpage} \usepackage{tocloft}
\RequirePackage{tocloft} \usepackage{wasysym}
\RequirePackage{wasysym} \usepackage{wrapfig}
\RequirePackage{wrapfig} \usepackage{multicol}
\RequirePackage{multicol} \usepackage{ifthen}
\RequirePackage{ifthen} \usepackage[hidelinks]{hyperref}
\RequirePackage[hidelinks]{hyperref} \usepackage{enumitem}
\RequirePackage{enumitem} \usepackage{gensymb}
\RequirePackage{gensymb} \usepackage{pifont}
\RequirePackage{pifont}
% Language Switching. Currently only English and German are supported % Language Switching. Currently only English and German are supported
% See docs for how to use % See docs for how to use
\newcounter{lang} \newcounter{lang}
\typeout{Loading helpers}
% TODO: Fix this up
\newcommand{\setLang}[1]{ \newcommand{\setLang}[1]{
\edef\lang{#1} \edef\lang{#1}
\edef\en{en} \edef\en{en}
@@ -55,7 +53,7 @@
\ifx\lang\de \ifx\lang\de
\typeout{[Lang Switcher] Loading German} \typeout{[Lang Switcher] Loading German}
\setcounter{lang}{2} \setcounter{lang}{2}
\input{\dir/main/lang/de} \usepackage[ngerman]{babel}
\else \else
\typeout{[Lang Switcher] No such language!} \typeout{[Lang Switcher] No such language!}
\fi \fi
@@ -83,7 +81,7 @@
\newcommand{\setup}[1]{ \newcommand{\setup}[1]{
\typeout{[Setup] Setting up...} \typeout{[Setup] Setting up...}
\loadLang \loadLang
\RequirePackage[a4paper,textwidth=17.5cm,textheight=25cm,includehead]{geometry} \usepackage[a4paper,textwidth=17.5cm,textheight=25cm,includehead]{geometry}
\title{\Huge \textbf{#1}} \title{\Huge \textbf{#1}}
\author{\authorTitle} \author{\authorTitle}
\makeatletter \makeatletter
@@ -107,6 +105,10 @@
% Start document command (required) % Start document command (required)
\newcommand{\startDocument}{ \newcommand{\startDocument}{
\maketitle \maketitle
\startDocumentNoTitle
}
\newcommand{\startDocumentNoTitle}{
\pagestyle{fancy} \pagestyle{fancy}
\thispagestyle{fancy} \thispagestyle{fancy}
} }
@@ -114,7 +116,7 @@
% Set up the latex document, only configuring the author, title and page size % Set up the latex document, only configuring the author, title and page size
\newcommand{\setupBarebones}[1]{ \newcommand{\setupBarebones}[1]{
\loadLang \loadLang
\RequirePackage[a4paper,textwidth=17.5cm,textheight=25cm,includehead]{geometry} \usepackage[a4paper,textwidth=17.5cm,textheight=25cm,includehead]{geometry}
\title{\Huge \textbf{#1}} \title{\Huge \textbf{#1}}
\author{\authorTitle} \author{\authorTitle}
} }
@@ -122,7 +124,7 @@
% Set up the latex document for exam summaries (Extra wide body, small margins, no header) % Set up the latex document for exam summaries (Extra wide body, small margins, no header)
\newcommand{\setupCheatSheet}[1]{ \newcommand{\setupCheatSheet}[1]{
\loadLang \loadLang
\RequirePackage[a4paper,textwidth=20cm,textheight=28.5cm]{geometry} \usepackage[a4paper,textwidth=20cm,textheight=28.5cm]{geometry}
\title{\Huge \textbf{#1}} \title{\Huge \textbf{#1}}
\author{\authorTitle} \author{\authorTitle}
} }

View File

@@ -4,13 +4,13 @@
% ░▒█▄▄▀░░▀▀░░▀░░▒▀░█░░░░░▀▀▀░░▀░░▀▀▀░▀░▀▀░░░▒█▄▄▄█░▀▀▀░▀▀▀░▀▀▀░▀░░▀░▀▀▀░▀▀▀ % ░▒█▄▄▀░░▀▀░░▀░░▒▀░█░░░░░▀▀▀░░▀░░▀▀▀░▀░▀▀░░░▒█▄▄▄█░▀▀▀░▀▀▀░▀▀▀░▀░░▀░▀▀▀░▀▀▀
% Extra imports % Extra imports
\RequirePackage{stmaryrd} \usepackage{stmaryrd}
\RequirePackage{algorithm} \usepackage{algorithm}
\RequirePackage{algpseudocodex} \usepackage{algpseudocodex}
\RequirePackage{setspace} \usepackage{setspace}
\RequirePackage{verbatim} \usepackage{verbatim}
\RequirePackage{turnstile} \usepackage{turnstile}
\RequirePackage{forloop} \usepackage{forloop}
\newcommand{\Indent}{\hspace{\algorithmicindent}} \newcommand{\Indent}{\hspace{\algorithmicindent}}

View File

@@ -10,8 +10,8 @@
% For using index package % For using index package
\newcommand{\prepareIndex}{ \newcommand{\prepareIndex}{
\RequirePackage[T1]{fontenc} \usepackage[T1]{fontenc}
\RequirePackage{imakeidx} \usepackage{imakeidx}
\makeindex \makeindex
} }

View File

@@ -1 +0,0 @@
\RequirePackage[ngerman]{babel}

View File

@@ -9,15 +9,31 @@
% BB shortcuts (for number spaces, etc) % BB shortcuts (for number spaces, etc)
\newcommand{\A}{\mathbb{A}}
\newcommand{\B}{\mathbb{B}}
\newcommand{\C}{\mathbb{C}} \newcommand{\C}{\mathbb{C}}
\newcommand{\D}{\mathbb{D}} \newcommand{\D}{\mathbb{D}}
\newcommand{\E}{\mathbb{E}} \newcommand{\E}{\mathbb{E}}
\newcommand{\F}{\mathbb{F}}
\newcommand{\G}{\mathbb{G}}
\renewcommand{\H}{\mathbb{H}}
\newcommand{\I}{\mathbb{I}} \newcommand{\I}{\mathbb{I}}
\newcommand{\J}{\mathbb{J}} \newcommand{\J}{\mathbb{J}}
\newcommand{\K}{\mathbb{K}}
\renewcommand{\L}{\mathbb{L}}
\newcommand{\M}{\mathbb{M}}
\newcommand{\N}{\mathbb{N}} \newcommand{\N}{\mathbb{N}}
\renewcommand{\O}{\mathbb{O}}
\renewcommand{\P}{\mathbb{P}}
\newcommand{\Q}{\mathbb{Q}} \newcommand{\Q}{\mathbb{Q}}
\newcommand{\R}{\mathbb{R}} \newcommand{\R}{\mathbb{R}}
\renewcommand{\S}{\mathbb{S}}
\newcommand{\T}{\mathbb{T}}
\newcommand{\U}{\mathbb{U}}
\newcommand{\V}{\mathbb{V}} \newcommand{\V}{\mathbb{V}}
\newcommand{\W}{\mathbb{W}}
\newcommand{\X}{\mathbb{X}}
\newcommand{\Y}{\mathbb{Y}}
\newcommand{\Z}{\mathbb{Z}} \newcommand{\Z}{\mathbb{Z}}
% Caligraphic % Caligraphic
@@ -49,7 +65,10 @@
\newcommand{\cZ}{\mathcal{Z}} \newcommand{\cZ}{\mathcal{Z}}
% other useful shortcuts % other useful shortcuts
\newcommand{\elementstack}[2]{\genfrac{}{}{0pt}{}{#1}{#2}}
\newcommand{\8}{\infty} \newcommand{\8}{\infty}
\newcommand{\cond}{\text{cond}}
\newcommand{\argmin}[1]{\underset{#1}{\text{argmin}}}
\newcommand{\dx}{\text{ d}} \newcommand{\dx}{\text{ d}}
\newcommand{\floor}[1]{\left\lfloor #1 \right\rfloor} \newcommand{\floor}[1]{\left\lfloor #1 \right\rfloor}
\newcommand{\ceil}[1]{\left\lceil #1 \right\rceil} \newcommand{\ceil}[1]{\left\lceil #1 \right\rceil}
@@ -77,7 +96,6 @@
\newcommand{\limhz}{\limit{h}{0}} \newcommand{\limhz}{\limit{h}{0}}
\newcommand{\liminfni}{\liminf_{n \rightarrow \infty}} \newcommand{\liminfni}{\liminf_{n \rightarrow \infty}}
\newcommand{\limsupni}{\limsup_{n \rightarrow \infty}} \newcommand{\limsupni}{\limsup_{n \rightarrow \infty}}
\newcommand{\elementstack}[2]{\genfrac{}{}{0pt}{}{#1}{#2}}
\DeclareMathOperator\arctanh{arctanh} \DeclareMathOperator\arctanh{arctanh}
\DeclareMathOperator\arccosh{arccosh} \DeclareMathOperator\arccosh{arccosh}
\DeclareMathOperator\arcsinh{arcsinh} \DeclareMathOperator\arcsinh{arcsinh}

View File

@@ -5,8 +5,8 @@
% ▐███▌▐█▌.▐▌▐█▄█▌██▐█▌ ▐█▌·▐█▄▄▌▐█•█▌ % ▐███▌▐█▌.▐▌▐█▄█▌██▐█▌ ▐█▌·▐█▄▄▌▐█•█▌
% ·▀▀▀ ▀█▄▀▪ ▀▀▀ ▀▀ █▪ ▀▀▀ ▀▀▀ .▀ ▀ % ·▀▀▀ ▀█▄▀▪ ▀▀▀ ▀▀ █▪ ▀▀▀ ▀▀▀ .▀ ▀
\RequirePackage{xstring} \usepackage{xstring}
\RequirePackage{etoolbox} \usepackage{etoolbox}
% tcolorbox and other stylistic elements (i.e. inline versions of them) that have counters % tcolorbox and other stylistic elements (i.e. inline versions of them) that have counters
\newcounter{lemma}[section] \newcounter{lemma}[section]
\newcounter{definition}[section] \newcounter{definition}[section]

View File

@@ -10,35 +10,35 @@
% Global style configs for tcolorbox (to reduce bloat) % Global style configs for tcolorbox (to reduce bloat)
\newcommand{\usetcolorboxes}{ \newcommand{\usetcolorboxes}{
\tcbset{ \tcbset{
mainboxstyle/.style={ mainboxstyle/.style={
arc=3mm, arc=3mm,
colback=red!5!white, colback=red!5!white,
colframe=red!75!black, colframe=red!75!black,
colbacktitle=red!75!black, colbacktitle=red!75!black,
fonttitle=\bfseries, fonttitle=\bfseries,
enhanced, enhanced,
attach boxed title to top left={yshift=-2mm,xshift=5mm}, attach boxed title to top left={yshift=-2mm,xshift=5mm},
breakable, breakable,
top=0.4cm, top=0.4cm,
} }
} }
\tikzset{ \tikzset{
overlaystyle/.style={ overlaystyle/.style={
draw=red!75!black, draw=red!75!black,
thick, thick,
fill=red!75!black, fill=red!75!black,
left, left,
anchor=east, anchor=east,
text=white, text=white,
rounded corners=1mm, rounded corners=1mm,
font=\bfseries, font=\bfseries,
xshift=-5mm, xshift=-5mm,
yshift=1mm, yshift=1mm,
inner xsep=3mm, inner xsep=3mm,
inner ysep=1.5mm inner ysep=1.5mm
} }
} }
} }
% -------------------- % % -------------------- %
@@ -65,16 +65,16 @@
% Add a color shade (similar to \fhlc, but nicer boxes) % Add a color shade (similar to \fhlc, but nicer boxes)
\newcommand{\background}[3]{\tcbox[on line, \newcommand{\background}[3]{\tcbox[on line,
boxsep=2pt, boxsep=2pt,
left=0pt, left=0pt,
right=0pt, right=0pt,
top=0pt, top=0pt,
bottom=0pt, bottom=0pt,
colframe=white, colframe=white,
frame empty, frame empty,
colback=#1!#2!white, colback=#1!#2!white,
highlight math style={enhanced} highlight math style={enhanced}
] {\textbf{#3}}} ] {\textbf{#3}}}
% Abstraction of background, where the brightness is set to 20% % Abstraction of background, where the brightness is set to 20%
\newcommand{\shade}[2]{\background{#1}{\arabic{shadeStrength}}{#2}} \newcommand{\shade}[2]{\background{#1}{\arabic{shadeStrength}}{#2}}
@@ -92,6 +92,12 @@
% Add a colorbox around your text with the color specified. Text is bold and underlined % Add a colorbox around your text with the color specified. Text is bold and underlined
\newcommand{\fhlc}[2]{\textbf{\underline{\colorbox{#1}{#2}}}} \newcommand{\fhlc}[2]{\textbf{\underline{\colorbox{#1}{#2}}}}
% Draw box around links. First arg link, second arg display
\newcommand{\hlhref}[2]{\color{MidnightBlue}\fbox{\href{#1}{#2}}\color{black}}
% Same for urls (just one arg tho)
\newcommand{\hlurl}[1]{\color{MidnightBlue}\fbox{\url{#1}}\color{black}}
% Spacing (horizontal) % Spacing (horizontal)
\newcommand{\smallhspace}{\hspace{2mm}} \newcommand{\smallhspace}{\hspace{2mm}}
\newcommand{\mediumhspace}{\hspace{5mm}} \newcommand{\mediumhspace}{\hspace{5mm}}
@@ -103,12 +109,12 @@
% Print a table of contents as a tcolorbox % Print a table of contents as a tcolorbox
\newcommand{\printtoc}[1]{ \newcommand{\printtoc}[1]{
\renewcommand{\cfttoctitlefont}{} \renewcommand{\cfttoctitlefont}{}
\renewcommand{\cftaftertoctitle}{\vspace{-0.75cm}} \renewcommand{\cftaftertoctitle}{\vspace{-0.75cm}}
\renewcommand{\contentsname}{} \renewcommand{\contentsname}{}
\begin{tcolorbox}[colback=black!5!white,colbacktitle=#1!75!black,coltitle=black,enhanced,attach boxed title to top center={yshift=-2mm}, \begin{tcolorbox}[colback=black!5!white,colbacktitle=#1!75!black,coltitle=black,enhanced,attach boxed title to top center={yshift=-2mm},
title={\Large \ifnum\value{lang}<2{Contents}\else {Inhaltsverzeichnis}\fi},fonttitle=\bfseries,breakable] title={\Large \ifnum\value{lang}<2{Contents}\else {Inhaltsverzeichnis}\fi},fonttitle=\bfseries,breakable]
\hspace{1cm} \hspace{1cm}
\tableofcontents \tableofcontents
\end{tcolorbox} \end{tcolorbox}
} }

View File

@@ -6,8 +6,7 @@
% (_) \__ _)_ __/(___)\____)____/ % (_) \__ _)_ __/(___)\____)____/
\RequirePackage{booktabs} \usepackage{booktabs}
\RequirePackage{tabulary}
% Create new table. #1 Layout, #2 title row % Create new table. #1 Layout, #2 title row
\newenvironment{tables}[2]{ \newenvironment{tables}[2]{

5
scopes/full.tex Normal file
View File

@@ -0,0 +1,5 @@
\newcommand{\loadFull}{
\input{\dir/scopes/recommended.tex}
\loadRecommended
\input{\dir/extra/minted.tex}
}

7
scopes/minimal.tex Normal file
View File

@@ -0,0 +1,7 @@
\newcommand{\loadMinimal}{
\typeout{[CustomLaTeXHelperLoader]: Loaded minimal}
\input{\dir/main/core.tex}
\input{\dir/config/config.tex}
\input{\dir/main/style/style.tex}
\input{\dir/main/style/common.tex}
}

13
scopes/most.tex Normal file
View File

@@ -0,0 +1,13 @@
\newcommand{\loadMost}{
\typeout{[CustomLaTeXHelperLoader]: Loaded most}
\input{\dir/scopes/minimal.tex}
\loadMinimal
\input{\dir/main/math.tex}
\input{\dir/main/cs.tex}
\input{\dir/main/index.tex}
\input{\dir/main/tables.tex}
\input{\dir/main/style/counters.tex}
\input{\dir/main/style/cs.tex}
\input{\dir/main/style/math.tex}
\input{\dir/main/style/language.tex}
}

7
scopes/recommended.tex Normal file
View File

@@ -0,0 +1,7 @@
\newcommand{\loadRecommended}{
\typeout{[CustomLaTeXHelperLoader]: Loaded recommended}
\input{\dir/scopes/most.tex}
\loadMost
\input{\dir/extra/bib.tex}
\input{\dir/extra/glossary.tex}
}

View File

@@ -1 +0,0 @@
# TODO: Make this script extend tex path

View File

@@ -3,9 +3,7 @@
"prefix": "latex-prepare", "prefix": "latex-prepare",
"body": [ "body": [
"\\documentclass{article}\n", "\\documentclass{article}\n",
"\\newcommand{\\dir}{~/projects/latex} % IMPORTANT: No trailing slashes!", "\\input{~/projects/latex/dist/recommended.tex}\n",
"\\input{\\dir/include.tex}",
"\\load{recommended}\n",
"\\setup{$1}\n", "\\setup{$1}\n",
"\\begin{document}", "\\begin{document}",
"\\startDocument", "\\startDocument",
@@ -430,9 +428,7 @@
"prefix": "latex-letter", "prefix": "latex-letter",
"body": [ "body": [
"\\documentclass[12pt,a4paper]{scrlttr2}\n", "\\documentclass[12pt,a4paper]{scrlttr2}\n",
"\\newcommand{\\dir}{~/projects/latex} % IMPORTANT: No trailing slashes!", "\\input{~/projects/latex/dist/letter.tex}\n",
"\\input{\\dir/include.tex}",
"\\load{letter}\n",
"% Subject", "% Subject",
"\\setkomavar{subject}{$1}", "\\setkomavar{subject}{$1}",
"\\begin{document}\\raggedright", "\\begin{document}\\raggedright",