-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
242 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
#!/bin/bash | ||
# Dieses Script macht ein Diff zwischen der Übergebenen Satzung in verschiedenen | ||
# Versionen | ||
|
||
help(){ | ||
echo "Benutzung: $0 [<version-alt> [<version-neu>]] Ordnung" | ||
echo | ||
echo "Mache ein Diff für das angegebene Dokument." | ||
echo "Optional können ein oder zwei Versionen angegeben werden mit bzw." | ||
echo "zwischen denen verglichen wird. Standardmäßig wird mit HEAD verglichen." | ||
} | ||
|
||
case "$1" in | ||
-h|--help) | ||
help | ||
exit 0 | ||
;; | ||
esac | ||
|
||
if [ $# -lt 1 ] | ||
then | ||
echo "Fehler: Brauche mindestens ein Argument" | ||
echo | ||
help | ||
exit 1 | ||
fi | ||
|
||
if [ $# -gt 3 ] | ||
then | ||
echo "Fehler: Kann mit mehr als drei Argumenten nichts anfangen" | ||
echo | ||
help | ||
exit 1 | ||
fi | ||
|
||
basedir="$(dirname "$0")" | ||
ordnung="${!#%/}" | ||
|
||
# Parse Versions-Strings | ||
if [ $# -gt 1 -a "$1" ] | ||
then | ||
alt="$1" | ||
else | ||
alt="HEAD" | ||
fi | ||
versions=("-r" "$alt") | ||
|
||
if [ $# -gt 2 -a \( "$1" -a "$2" \) ] | ||
then | ||
neu="$2" | ||
versions+=("-r" "$neu") | ||
fi | ||
|
||
# Erzeuge ein Arbeitsverzeichnis in /tmp | ||
tmpdir="$(mktemp -d --tmpdir "latexdiff.$ordnung.XXXXXXXXXX")" | ||
|
||
# Kopiere das template ins Arbeitsverzeichnis | ||
cp "$basedir/latexdiff_template.tex" "$tmpdir/$ordnung.diff.tex" | ||
|
||
# Führe latexdiff-git aus | ||
latexdiff-git --encoding=utf8 --packages=hyperref --exclude-safecmd='ref' --append-textcmd='stupadate,publishdate,jurchanges,jurparagraph,jursubparagraph,jursection' --dir="$tmpdir/" "${versions[@]}" "$basedir/$ordnung/document.core.tex" | ||
|
||
# Wenn zwei Versionen verglichen werden hinterlässt latexdiff-git Müll | ||
# => aufräumen | ||
if [ "$neu" ] | ||
then | ||
rm "$basedir/$ordnung/document.core-oldtmp-"*".tex" | ||
fi | ||
|
||
# Verschiebe das Diff und lösche Unterordner | ||
mv "$tmpdir/$ordnung/document.core.tex" "$tmpdir/document.core.diff.tex" | ||
rmdir "$tmpdir/$ordnung/" | ||
|
||
# Baue das Diff-PDF | ||
cd "$tmpdir" | ||
rubber --pdf --warn misc "$tmpdir/$ordnung.diff.tex" | ||
|
||
echo "Das Diff liegt in $tmpdir/" | ||
xdg-open "$tmpdir/$ordnung.diff.pdf" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,152 @@ | ||
%% Diese Datei dient dazu Diffs aus latex zu generieren. Sie wird mit dem | ||
%% latexdiff.sh-Skript benutzt | ||
|
||
\documentclass[ | ||
a4paper, | ||
parskip=half, | ||
numbers=noenddot, | ||
% titlepage, | ||
% twoside, % Benutze diese Optionen für Booklet-Layout | ||
% BCOR=2mm, % Auskommentiert für bessere Bildschirmdarstellung | ||
DIV=12, | ||
]{scrartcl} | ||
|
||
\synctex=1 | ||
|
||
%%% rubber: module xelatex | ||
\usepackage{ifxetex} | ||
\ifxetex | ||
\usepackage{fontspec}% provides font selecting commands | ||
%\setmainfont[Mapping=tex-text]{Adobe Garamond Pro} | ||
%\setsansfont[Mapping=tex-text]{Myriad Pro} | ||
\else | ||
\usepackage[T1]{fontenc} | ||
\usepackage[utf8]{inputenc} | ||
\fi | ||
|
||
\usepackage[ngerman]{babel} | ||
|
||
% Wir brauchen scrjura aus den koma-script-Klassen in mindestens Version 0.7 | ||
% sonst werden auch einzelne Absätze nummeriert. Falls nicht vorhanden unter | ||
% http://mirrors.ctan.org/install/macros/latex/contrib/koma-script.tds.zip | ||
% runterladen und in ~/texmf/ entpacken (evtl. noch "texhash ~/texmf/" ausführen) | ||
\usepackage[juratotoc,juratocindent=0pt,ref=parlong,ref=nosentence]{scrjura}[2013/11/04] | ||
|
||
% Verwende multicol für den Zwei-Spalten-Satz | ||
% Erlaubt Umschaltung innerhalb der Seite und gleicht die Spalten aus | ||
\usepackage{multicol} | ||
% Setze Abstand zwischen Spalten | ||
\setlength{\columnsep}{5mm} | ||
|
||
% Für leichteres Programmieren | ||
\usepackage{xifthen} | ||
|
||
% Für "schöne" Brüche, z.B. bei 2/3-Mehrheit | ||
\usepackage{xfrac} | ||
|
||
% Großbuchstaben für die Untergliederungen | ||
\renewcommand{\thesection}{\Alph{section}} | ||
|
||
% Setze einen kleinen Abstand \, zwischen Zahl und Buchstabe bei Paragraphen | ||
\renewcommand*{\thecontractSubParagraph}{% | ||
{\theParagraph\texorpdfstring{\,}{}\alph{contractSubParagraph}}} | ||
|
||
% Größerer Abstand zwischen Paragraphennummer und -titel im Inhaltsverzeichnis | ||
\renewcommand{\numberline}[1]{\makebox[2.5em][l]{#1}} | ||
|
||
|
||
% Aus irgendeinem Grund werden chapters nicht als Absatz in einem Paragraphen | ||
% fehlinterpretiert sections aber schon und dementsprechend wird vor ihnen eine | ||
% Absatznummer eingefügt => definiere eigenen Befehl (macht es auch einfacher | ||
% wenn man doch wieder scrbook und chapters will) | ||
\newcommand{\jursection}[1]{\parnumberfalse\section{#1}\parnumbertrue} | ||
|
||
% Dieses Kommando setzt einen Paragraphen | ||
% Eigentlich gibt es dazu \Paragraph aus scrjura aber das hat eine komische Argument-Syntax weshalb das nicht ganz so gut mit latexdiff zusammen zu bringen ist und auch irgendwie doof zu benutzen ist. Dieses Kommando reicht eigentlich alle Parameter einfach nur an scrjura weiter aber nimmt den Titel als normales Argument und erlaubt weitere Argumente im optionalen Argument zu übergeben | ||
\newcommand{\jurparagraph}[2][]{% | ||
\ifthenelse{\isempty{#2}}{\Paragraph{#1}}{\Paragraph{title={#2}, #1}}% | ||
} | ||
\newcommand{\jursubparagraph}[2][]{% | ||
\ifthenelse{\isempty{#2}}{\SubParagraph{#1}}{\SubParagraph{title={#2}, #1}}% | ||
} | ||
|
||
|
||
\usepackage[unicode, pdfusetitle, pdfborder={0 0 0}, bookmarksnumbered]{hyperref} | ||
\author{} | ||
|
||
|
||
% Befehle für Metainformationen | ||
\makeatletter | ||
\newcommand*{\@stupadate}{Noch nicht beschlossen} | ||
\newcommand*{\@publishdate}{Noch nicht veröffentlicht} | ||
\newcommand*{\@jurchanges}{Noch nicht veröffentlicht} | ||
\newcommand*{\stupadate}[1]{\renewcommand*{\@stupadate}{#1}} | ||
\newcommand*{\publishdate}[1]{\renewcommand*{\@publishdate}{#1}} | ||
\newcommand*{\jurchanges}[1]{\renewcommand*{\@jurchanges}{Eingearbeitete Änderungen:\begin{itemize}#1\end{itemize}}} | ||
|
||
|
||
% Diese Umgebung umschließt das eigentliche Dokument. Argument ist der Titel, optional noch ein Kurztitel | ||
\newenvironment{jurdoc}[2][]{% begin{jurdoc} | ||
\ifthenelse{\isempty{#1}}{\def\@jurshorttitle{#2}}{\def\@jurshorttitle{#1}} | ||
|
||
\title{Änderungen zur \@jurshorttitle} | ||
|
||
\maketitle | ||
|
||
\begin{center} | ||
\begin{tabular}{ll} | ||
Beschluss: & \@stupadate \\ | ||
Veröffentlichung: & \@publishdate \\ | ||
\end{tabular} | ||
\end{center} | ||
|
||
\@jurchanges | ||
|
||
Im Folgenden wird aus Gründen der besseren Lesbarkeit ausschließlich die weibliche Form verwendet. Dabei ist jede andere Form impliziert. Die Geschlechtsdefinition obliegt jeder Person selbst. | ||
|
||
\begin{multicols}{2} | ||
\tableofcontents | ||
\end{multicols} | ||
|
||
\bigskip | ||
|
||
\begin{multicols}{2}% | ||
\begin{contract}% | ||
\setcounter{Paragraph}{0}% | ||
% | ||
}{% end{jurdoc} | ||
\end{contract}% | ||
\end{multicols}% | ||
}% Ende von jurdoc | ||
|
||
\makeatother | ||
|
||
% DIF Präambel für latexdiff | ||
\RequirePackage[normalem]{ulem} | ||
\RequirePackage{color}\definecolor{RED}{rgb}{1,0,0}\definecolor{BLUE}{rgb}{0,0,1} | ||
\DeclareRobustCommand{\DIFaddtex}[1]{{\color{blue}\uwave{#1}}\linebreak[0]} | ||
\DeclareRobustCommand{\DIFdeltex}[1]{{\color{red}\sout{#1}}\linebreak[0]} | ||
|
||
\providecommand{\DIFaddbegin}{} | ||
\providecommand{\DIFaddend}{} | ||
\providecommand{\DIFdelbegin}{} | ||
\providecommand{\DIFdelend}{} | ||
|
||
\providecommand{\DIFaddFL}[1]{\DIFadd{#1}} | ||
\providecommand{\DIFdelFL}[1]{\DIFdel{#1}} | ||
\providecommand{\DIFaddbeginFL}{} | ||
\providecommand{\DIFaddendFL}{} | ||
\providecommand{\DIFdelbeginFL}{} | ||
\providecommand{\DIFdelendFL}{} | ||
|
||
\providecommand{\DIFadd}[1]{\texorpdfstring{\DIFaddtex{#1}}{#1}} | ||
\providecommand{\DIFdel}[1]{\texorpdfstring{\DIFdeltex{#1}}{}} | ||
|
||
|
||
\begin{document} | ||
|
||
|
||
\input{document.core.diff.tex} | ||
|
||
|
||
\end{document} |