Initial commit after repo split

master
Gandalf 2021-03-13 15:34:07 +01:00
commit 05a5b8b0dd
8 changed files with 492 additions and 0 deletions

311
.gitignore vendored Normal file
View File

@ -0,0 +1,311 @@
# Custom entries
test.*
# ---> TeX
## Core latex/pdflatex auxiliary files:
*.aux
*.lof
*.log
*.lot
*.fls
*.out
*.toc
*.fmt
*.fot
*.cb
*.cb2
.*.lb
## Intermediate documents:
*.dvi
*.xdv
*-converted-to.*
# these rules might exclude image files for figures etc.
# *.ps
# *.eps
# *.pdf
## Generated if empty string is given at "Please type another file name for output:"
.pdf
## Bibliography auxiliary files (bibtex/biblatex/biber):
*.bbl
*.bcf
*.blg
*-blx.aux
*-blx.bib
*.run.xml
## Build tool auxiliary files:
*.fdb_latexmk
*.synctex
*.synctex(busy)
*.synctex.gz
*.synctex.gz(busy)
*.pdfsync
## Build tool directories for auxiliary files
# latexrun
latex.out/
## Auxiliary and intermediate files from other packages:
# algorithms
*.alg
*.loa
# achemso
acs-*.bib
# amsthm
*.thm
# beamer
*.nav
*.pre
*.snm
*.vrb
# changes
*.soc
# comment
*.cut
# cprotect
*.cpt
# elsarticle (documentclass of Elsevier journals)
*.spl
# endnotes
*.ent
# fixme
*.lox
# feynmf/feynmp
*.mf
*.mp
*.t[1-9]
*.t[1-9][0-9]
*.tfm
#(r)(e)ledmac/(r)(e)ledpar
*.end
*.?end
*.[1-9]
*.[1-9][0-9]
*.[1-9][0-9][0-9]
*.[1-9]R
*.[1-9][0-9]R
*.[1-9][0-9][0-9]R
*.eledsec[1-9]
*.eledsec[1-9]R
*.eledsec[1-9][0-9]
*.eledsec[1-9][0-9]R
*.eledsec[1-9][0-9][0-9]
*.eledsec[1-9][0-9][0-9]R
# glossaries
*.acn
*.acr
*.glg
*.glo
*.gls
*.glsdefs
*.lzo
*.lzs
# uncomment this for glossaries-extra (will ignore makeindex's style files!)
# *.ist
# gnuplottex
*-gnuplottex-*
# gregoriotex
*.gaux
*.gtex
# htlatex
*.4ct
*.4tc
*.idv
*.lg
*.trc
*.xref
# hyperref
*.brf
# knitr
*-concordance.tex
# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files
# *.tikz
*-tikzDictionary
# listings
*.lol
# luatexja-ruby
*.ltjruby
# makeidx
*.idx
*.ilg
*.ind
# minitoc
*.maf
*.mlf
*.mlt
*.mtc[0-9]*
*.slf[0-9]*
*.slt[0-9]*
*.stc[0-9]*
# minted
_minted*
*.pyg
# morewrites
*.mw
# nomencl
*.nlg
*.nlo
*.nls
# pax
*.pax
# pdfpcnotes
*.pdfpc
# sagetex
*.sagetex.sage
*.sagetex.py
*.sagetex.scmd
# scrwfile
*.wrt
# sympy
*.sout
*.sympy
sympy-plots-for-*.tex/
# pdfcomment
*.upa
*.upb
# pythontex
*.pytxcode
pythontex-files-*/
# tcolorbox
*.listing
# thmtools
*.loe
# TikZ & PGF
*.dpth
*.md5
*.auxlock
# todonotes
*.tdo
# vhistory
*.hst
*.ver
# easy-todo
*.lod
# xcolor
*.xcp
# xmpincl
*.xmpi
# xindy
*.xdy
# xypic precompiled matrices and outlines
*.xyc
*.xyd
# endfloat
*.ttt
*.fff
# Latexian
TSWLatexianTemp*
## Editors:
# WinEdt
*.bak
*.sav
# Texpad
.texpadtmp
# LyX
*.lyx~
# Kile
*.backup
# gummi
.*.swp
# KBibTeX
*~[0-9]*
# TeXnicCenter
*.tps
# auto folder when using emacs and auctex
./auto/*
*.el
# expex forward references with \gathertags
*-tags.tex
# standalone packages
*.sta
# Makeindex log files
*.lpz
# xwatermark package
*.xwm
# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib
# option is specified. Footnotes are the stored in a file with suffix Notes.bib.
# Uncomment the next line to have this generated file ignored.
#*Notes.bib
# ---> Vim
# Swap
[._]*.s[a-v][a-z]
!*.svg # comment out if you don't need vector files
[._]*.sw[a-p]
[._]s[a-rt-v][a-z]
[._]ss[a-gi-z]
[._]sw[a-p]
# Session
Session.vim
Sessionx.vim
# Temporary
.netrwhist
*~
# Auto-generated tag files
tags
# Persistent undo
[._]*.un~

3
Adressen/Adressen.csv Normal file
View File

@ -0,0 +1,3 @@
handle,Name,Anrede,Adresse,FaxNr,TelNr,Closing,parent
AGdn,"AG Düren","Damen und Herren","August-Klotz-Str. 14\\52349 Düren",02421 493-6001,02421 493-0,"Mit der Ihnen gebührenden Hochachtung",LGac
LGac,"Landgericht Aachen","Damen und Herren","Adalbertsteinweg 92\\52070 Aachen",0241 9425-80000,0241 9425-0,"Mit der Ihnen gebührenden Hochachtung",OLGHamm
1 handle Name Anrede Adresse FaxNr TelNr Closing parent
2 AGdn AG Düren Damen und Herren August-Klotz-Str. 14\\52349 Düren 02421 493-6001 02421 493-0 Mit der Ihnen gebührenden Hochachtung LGac
3 LGac Landgericht Aachen Damen und Herren Adalbertsteinweg 92\\52070 Aachen 0241 9425-80000 0241 9425-0 Mit der Ihnen gebührenden Hochachtung OLGHamm

86
README.md Normal file
View File

@ -0,0 +1,86 @@
# Letterhead
Letterhead sammelt Vorlagen und eine Adressverwaltung für mein privates Aktenverwaltungssystem.
## LaTeX
Mein neuer Briefkopf arbeitet mit der Komascript-Klasse `scrlttr2`.
Die Dateigestaltung ist noch chaotisch und superprovisorisch
### Schnittstellen
Einige Schnittstellen verwenden -offen oder verdeckt- Komavariablen:
`yourref` für das **Aktenzeichen**. Dieses wird als per `setkomavar{yourref}` gesetzt, kann aber als `\az` ausgelesen werden.
Anders das **Briefdatum**, das nur als Komavariable `yourmail` angesprochen wird.
Der `subject`-Befehl aus `letter` wurde als Wrapper um `setkomavar{subject}` reimplementiert.
Die **automatische Adresswahl** ist erst halb implementiert, soll aber über das Kommando `\receive` passieren:
`\receive*{<handle>}`
: `<handle>` ist ein Primärschlüssel aus der Datenbank in `Adressen.csv`, deren Pfad aktuell noch hardcoded ist.
`\receive{<handle>}`
: in dieser Version ist `<handle>` ein Funktionshandle `INH` aus der Datei `DECKBLATT.csv`
### Templates
`\einspruch{<Art>}`
: `<Art>` sollte `Strafbefehl` oder `Bußgeldbescheid` sein. Aktenzeichen und Briefdatum sollten über die Schnittstellen, am Besten über `\receive` vorher gesetzt sein, da dieser Befehl diese Werte per Schnittstelle abruft.
`\rechtsmittel[<Art>]{<Datum>}{protokoll}`
: `<Art>` defaults to `zunächst unbestimmtes Rechtsmittel`. Sonst hier `Revision`, `Berufung` oder `Rechtsbeschwerde` eintragen. `protokoll` ist einzutragen, wenn gleichzeitig die Zusendung des Protokolls beantragt werden soll, ansonsten leere Klammern lassen.
## Adressdatenbank
Angedacht ist folgendes Konzept:
Eine zentrale Adressdatenbank:
```
Adressen.csv
============
handle,Name,Anrede,Adresse,FaxNr,TelNr,Closing,parent
```
Wo `handle` und `parent` datenbankinterne Schlüssel sind, `parent` enthält das `handle` der nächsthöheren Hierarchieebene: Bei Personen die zugehörige Behörde/Organisation, bei Gerichten das zuständige Rechtsmittelgericht.
Eine durch `wiedervorlagen.sh` per cron@boot erstellte Übersicht der nächsten Termine:
```
Wiedervorlagen.md
=================
Datum | Typ | Gegenseite/Gericht | deren Az | mein Az | PATH
------------------------------------------------------------
13.12.21 | harte Frist | AG Düren | 13 Js 43/21 | Bullshit/21 | ~/Dokumente/Strafrecht/Bullshit
15.12.21 | weiche Frist | VG Köln | 5 K 161/20 | Blubb/20 | ~/Dokumente/Verwaltungsklagen/Blubb
24.12.21 | Wiedervorlage | IM NRW | 352351354-18 | Schleierfahndung | ~/Dokumente/Recherche/Hambi
6.1.22 | Hauptverhandlung| AG Düren | 13 Js 43/21 | Bullshit/21 | ~/Dokumente/Strafrecht/Bullshit
```
In jedem Aktenordner zwei Dateien
```
DECKBLATT.csv
=============
INH,handle,aktenzeichen,zuständig
```
Wo `INH ∈ {AG,LG,StA,OLG,BVerfG,VG,OVG,GEG,SG}` und `zuständig='+'` in der Zeile des aktuellen Hauptbrieffeindes.
```
Wiedervorlagen.csv
==================
Datum,Typ,rec,erledigt
```
Diese enthält die Daten, die von `wiedervorlagen.sh` in die zentrale `Wiedervorlagen.md` kompiliert werden.
Im Internformat möglicherweise unsortiert und möglicherweise alte Termine. Evtl. werden auch Wiedervorlagen, die keine Fristsachen sind,
nicht im Vorraus in die Übersicht einsortiert, mal schauen.
### Skripte
#### `wiedervorlagen.sh`
Sammelt, wie schon erwähnt, bei jedem Rechnerneustart (`cron@boot`) aus der gesamten Dateistruktur alle Wiedervorlagen zusammen und baut eine
Markdown-formatierte Übersicht. Oder ein anderes Format? An sich könnte er das auch per `LaTeX` oder als `svg` in das Hintergrundbild schummeln…
Holt sich die Aktenzeichen aus `DECKBLATT.csv`
#### address.sh
Führt durch die Eintragung in die Adressdatenbank oder gibt einzelne Werte aus selbiger zurück. (Zur Verwendung durch `sipgate-cli` zB)
#### init.sh
Führt durch die Anlage eines Deckblattes~~ und stellt sicher, dass die korrekte Gerichtshierarchie eingetragen ist~~.
#### rechtsmittel.sh
Tut, in einer Akte aufgerufen, zwei Dinge:
1. ein Fax unter Verwendung der LaTeX-Templates `\einspruch` bzw. `\rechtsmittel` anlegen,
* zur Kontrolle anzeigen und
* wegfaxen
2. das `DECKBLATT.csv` aktualisieren. Wenn nötig (per `address.sh`?) die Daten des Rechtsmittelgerichts erfragen.
#### erinnermich.sh
Füllt die Datei `Wiedervorlagen.csv` mit Nutzieingaben.

3
latex/DECKBLATT.csv Normal file
View File

@ -0,0 +1,3 @@
INH,handle,az,stand
ME,me,foo,
AG,AGdn,bar,+
1 INH handle az stand
2 ME me foo
3 AG AGdn bar +

9
latex/einspruch.tex Normal file
View File

@ -0,0 +1,9 @@
\newcommand{\einspruch}[1]{Hiermit lege ich Einspruch gegen den #1 Az. \az\ vom \usekomavar{yourmail} ein.
Ich beantrage zum Zwecke der Akteneinsicht nach §\,149\,Abs.\,7\,StPO die Zusendung der vollständigen Verfahrensakte bzw. Kopien davon an meine Adresse.}
\usepackage{ifthen}
\newcommand{\rechtsmittel}[3][zunächst unbestimmtes Rechtsmittel]{Hiermit lege ich #1 gegen das Urteil vom #2 unter dem Aktenzeichen \az\ ein.
\ifthenelse{\equal{#3}{protokoll}}{Ich beantrage zugleich die Zusendung des vollständigen Protokolls der Hauptverhandlung an meine Adresse.}\
}

4
latex/empfaenger.tex Normal file
View File

@ -0,0 +1,4 @@
\newcommand{\adresse}{AG sowieso\\Scheißstraße\\Doofland}
\setkomavar{yourref}{foo}
\setkomavar{myref}{bar}
%\KOMAoption{priority}{priority}

51
latex/letterhead.cls Normal file
View File

@ -0,0 +1,51 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{letterhead}[2021/03/15 scrlttr2 derived letter class for automatisation of legal letters]
\RequirePackage{ifthen}
\RequirePackage{datatool}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrlttr2}}
\ProcessOptions\relax
\LoadClass{scrlttr2}
\setkomavar*{yourref}{Aktenzeichen}
\setkomavar*{myref}{Mein Zeichen}
\newcommand{\subject}[1]{\setkomavar{subject}{#1}}
\newcommand{\az}{\usekomavar{yourref}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Adress detection
%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand*{\receivestar}[1]{
\DTLloaddb{adressen}{/home/bernhardt/Entwicklung/Letterhead/Adressen/Adressen.csv}
\DTLassignfirstmatch{adressen}{handle}{#1}{\Name=Name,\Adresse=Adresse,\FaxNr=FaxNr,\TelNr=TelNr,\Opening=Anrede,\Closing=Closing}
}
\newcommand*{\receivenostar}[1][+]{
\DTLloaddb{deckblatt}{DECKBLATT.csv}
\ifthenelse{\equal{#1}{+}}{%
\DTLassignfirstmatch{deckblatt}{stand}{+}{\handle=handle,\aktenzeichen=az}%
}{%
\DTLassignfirstmatch{deckblatt}{INH}{#1}{\handle=handle,\aktenzeichen=az}%
}
\DTLassignfirstmatch{deckblatt}{INH}{ME}{\myref=az}
\DTLloaddb{adressen}{/home/bernhardt/Entwicklung/Letterhead/Adressen/Adressen.csv}
\xDTLassignfirstmatch{adressen}{handle}{\handle}{\Name=Name,\Adresse=Adresse,\FaxNr=FaxNr,\TelNr=TelNr,\Opening=Anrede,\Closing=Closing}
\setkomavar{yourref}{\aktenzeichen}
\setkomavar{myref}{\myref}
}
\newcommand*{\receive}{\@ifstar{\receivestar}{\receivenostar}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Templates
%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\einspruch}[1]{Hiermit lege ich Einspruch gegen den #1 Az. \az\ vom \usekomavar{yourmail} ein.
Ich beantrage zum Zwecke der Akteneinsicht nach §\,149\,Abs.\,7\,StPO die Zusendung der vollständigen Verfahrensakte bzw. Kopien davon an meine Adresse.}
\newcommand{\rechtsmittel}[3][zunächst unbestimmtes Rechtsmittel]{Hiermit lege ich #1 gegen das Urteil vom #2 unter dem Aktenzeichen \az\ ein.
\ifthenelse{\equal{#3}{protokoll}}{Ich beantrage zugleich die Zusendung des vollständigen Protokolls der Hauptverhandlung an meine Adresse.}\
}

25
latex/receive.tex Normal file
View File

@ -0,0 +1,25 @@
\usepackage{datatool}
\usepackage{ifthen}
\newcommand*{\receivestar}[1]{
\DTLloaddb{adressen}{/home/bernhardt/Entwicklung/Letterhead/Adressen/Adressen.csv}
\DTLassignfirstmatch{adressen}{handle}{#1}{\Name=Name,\Adresse=Adresse,\FaxNr=FaxNr,\TelNr=TelNr,\Opening=Anrede,\Closing=Closing}
}
\newcommand*{\receivenostar}[1][+]{
\DTLloaddb{deckblatt}{DECKBLATT.csv}
\ifthenelse{\equal{#1}{+}}{%
\DTLassignfirstmatch{deckblatt}{stand}{+}{\handle=handle,\aktenzeichen=az}%
}{%
\DTLassignfirstmatch{deckblatt}{INH}{#1}{\handle=handle,\aktenzeichen=az}%
}
\DTLassignfirstmatch{deckblatt}{INH}{ME}{\myref=az}
\DTLloaddb{adressen}{/home/bernhardt/Entwicklung/Letterhead/Adressen/Adressen.csv}
\xDTLassignfirstmatch{adressen}{handle}{\handle}{\Name=Name,\Adresse=Adresse,\FaxNr=FaxNr,\TelNr=TelNr,\Opening=Anrede,\Closing=Closing}
\setkomavar{yourref}{\aktenzeichen}
\setkomavar{myref}{\myref}
}
\makeatletter
\newcommand*{\receive}{\@ifstar{\receivestar}{\receivenostar}}
\makeatother