From 004ff1ec58dec1d80bd33261a06a4d56b15a412e Mon Sep 17 00:00:00 2001 From: AntonObersteiner Date: Fri, 3 Feb 2023 12:18:34 +0100 Subject: [PATCH 01/19] update title (format and spacing) - not by me --- protokoll/fsrprotokoll.cls | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/protokoll/fsrprotokoll.cls b/protokoll/fsrprotokoll.cls index f51e259..cb2d945 100644 --- a/protokoll/fsrprotokoll.cls +++ b/protokoll/fsrprotokoll.cls @@ -37,6 +37,13 @@ {0pt} {*0.5} {-5pt} +\titleformat{\subsubsection} + {\normalfont\rmfamily\bfseries} + {}{0em}{} +\titlespacing{\subsubsection} + {0pt} + {*0.5} + {-9pt} \makeatletter \newcommand*{\insertheaderrule}{\rlap{\rule[-.5\normalbaselineskip]{\textwidth}{.4pt}}} From 99a2a392f3b7d7261ba58c48a93be62539c3ab73 Mon Sep 17 00:00:00 2001 From: AntonObersteiner Date: Fri, 3 Feb 2023 12:22:03 +0100 Subject: [PATCH 02/19] update \quorum, add \meetingPlace and \meetingBreak --- protokoll/fsrprotokoll.cls | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/protokoll/fsrprotokoll.cls b/protokoll/fsrprotokoll.cls index cb2d945..aecbd46 100644 --- a/protokoll/fsrprotokoll.cls +++ b/protokoll/fsrprotokoll.cls @@ -84,6 +84,7 @@ } \newcommand*{\quorum}[2] { + Die Sitzungsleitung eröffnet die Sitzung. \newcount\quorateThreshold \quorateThreshold=#2 Es sind #1 von #2 Mitgliedern mit aktivem Stimmrecht anwesend. @@ -103,10 +104,12 @@ \vspace*{1cm}% \textbf{\Large Protokoll zur FSR--Sitzung vom \the\date}% - Sitzungsleitung: \the\chairperson \,| % + Sitzungsleitung: \the\chairperson \, | % Protokoll: \the\clerks% - Sitzungsbeginn: \the\meetingStart \,| Sitzungsende: \the\meetingEnd% + Sitzungsbeginn: \the\meetingStart \, | Sitzungsende: \the\meetingEnd% + + Sitzungsort: \the\meetingPlace % required by FSO \end{center}% \textbf{Anwesende:} \the\attendees% \, (\the\attendeesNumber \, von 17)% @@ -275,6 +278,11 @@ \textit{[#1 erscheint zur Sitzung]}% } } + +\newcommand*{\meetingBreak}[1] { + \textit{Die Sitzung wird für #1 Minuten unterbrochen.}% +} + \newcommand*{\signature} { \vfill \noindent\rule{6.5cm}{0.3pt} \hfill \noindent\rule{6.5cm}{0.3pt} @@ -298,6 +306,7 @@ \newtoks\clerks \newtoks\meetingStart \newtoks\meetingEnd +\newtoks\meetingPlace \newtoks\attendees \newtoks\excused \newtoks\unexcused From d0d3aec7614eb68bf62e4284cc2816a1ecb925f5 Mon Sep 17 00:00:00 2001 From: AntonObersteiner Date: Fri, 3 Feb 2023 12:24:30 +0100 Subject: [PATCH 03/19] expand 'Antrag': 'FA' now with money, and \voteSubmitter --- protokoll/fsrprotokoll.cls | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/protokoll/fsrprotokoll.cls b/protokoll/fsrprotokoll.cls index aecbd46..51e9c01 100644 --- a/protokoll/fsrprotokoll.cls +++ b/protokoll/fsrprotokoll.cls @@ -147,7 +147,7 @@ \textbf{Antrag}% } {% \immediate\write\exportdata{ money_limit: ##1}% - \textbf{Finanzantrag}% + \textbf{Finanzantrag über \EUR{##1} -- Antrag}% }% } \newcommand{\voteText}[1]{% @@ -207,12 +207,15 @@ \textbf{Antrag}% } {% \immediate\write\exportdata{ money_limit: ##1}% - \textbf{Finanzantrag}% + \textbf{Finanzantrag über \EUR{##1} - Antrag}% }% } \newcommand*{\voteText}[1]{% \immediate\write\exportdata{ text: "##1"}% ##1\vspace{\baselineskip}\\}% + \newcommand*{\voteSubmitter}[1]{% + \immediate\write\exportdata{ submitter: "##1"}% + \textbf{Antragsteller\_in: }##1\vspace{\baselineskip}\\}% \newcommand*{\voteReason}[1]{% \immediate\write\exportdata{ rationale: "##1"}% \textbf{Begründung: }##1\vspace{\baselineskip}\\}% From 387806ac7aeab94e97b8af767397c048b6fb0819 Mon Sep 17 00:00:00 2001 From: AntonObersteiner Date: Fri, 3 Feb 2023 12:27:27 +0100 Subject: [PATCH 04/19] add automatic vote numbering, therefore v0.2.1 \newcounter{votenumber} \initVoteNumber for the first lines of the protocol automatic increment in every vote and vote-two-thirds environment some documentation at the end and references to that Protokoll-Vorlage entsprechend angepasst und erweitert --- protokoll/fsrprotokoll.cls | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/protokoll/fsrprotokoll.cls b/protokoll/fsrprotokoll.cls index 51e9c01..9c2fe01 100644 --- a/protokoll/fsrprotokoll.cls +++ b/protokoll/fsrprotokoll.cls @@ -1,5 +1,5 @@ % vim: ft=tex -\ProvidesClass{fsrprotokoll}[2018/03/05 Klasse fuer FSR Protokolle v0.2] +\ProvidesClass{fsrprotokoll}[2018/03/05 Klasse fuer FSR Protokolle v0.2.1] \LoadClass{scrartcl} \RequirePackage[utf8]{inputenc} @@ -138,8 +138,13 @@ \immediate\write\exportdata{-} \begin{lrbox}{\mybox}\begin{minipage}{.985\textwidth} \newcommand*{\voteNumber}[1]{% - \immediate\write\exportdata{ decision_id: "\the\year/##1"}% - \textbf{\the\year\,/\,##1:}\\% + %see section VOTENUMBER at the end + \ifthenelse{\equal{##1}{}}{}{% else (argument is not empty) + \setcounter{votenumber}{##1}% + }% + \immediate\write\exportdata{ decision_id: "\the\year/\thevotenumber"}% + \textbf{\the\year\,/\,\thevotenumber:}\\% + \stepcounter{votenumber}% }% \newcommand*{\voteMoney}[1]{% \ifthenelse{\equal{##1}{}} {% @@ -198,8 +203,13 @@ \immediate\write\exportdata{-} \begin{lrbox}{\mybox}\begin{minipage}{.985\textwidth} \newcommand*{\voteNumber}[1]{% - \immediate\write\exportdata{ decision_id: "\the\year/##1"}% - \textbf{\the\year\,/\,##1:}\\% + %see section VOTENUMBER at the end + \ifthenelse{\equal{##1}{}}{}{% else (argument is not empty) + \setcounter{votenumber}{##1}% + }% + \immediate\write\exportdata{ decision_id: "\the\year/\thevotenumber"}% + \textbf{\the\year\,/\,\thevotenumber:}\\% + \stepcounter{votenumber}% }% \newcommand*{\voteMoney}[1]{% \ifthenelse{\equal{##1}{}} {% @@ -292,7 +302,14 @@ \noindent\makebox[6.5cm][l]{Sitzungsleitung} \hfill \noindent\makebox[6.5cm][l]{Protokoll} } +%see section VOTENUMBER at the end +\newcommand*{\initVoteNumber}[1] { + \setcounter{votenumber}{#1} +} + \AtBeginDocument{% + %see section VOTENUMBER at the end + \newcounter{votenumber} \immediate\newwrite\exportdata% \immediate\openout\exportdata=tmp.txt\relax } @@ -317,3 +334,12 @@ \newtoks\guests \endinput +%documentation on VOTENUMBERS (version 0.2 -> 0.2.1, Author: Anton Obersteiner) +%votes are numbered within one year. use \initVoteCount{num} at the beginning +%of your protocol to set this counter to num, otherwise the counter starts at 0. +%each vote is automatically numbered 20YY / and then +%increments the counter *if you call \voteNumber{} in your vote environment*. +%if you call votenumber with an argument: \voteNumber{num}, the counter is reset to that value +%and increments from there in the votes after. +%for backwards compatibility, the argument is not optional (would require \voteNumber[] syntax), +%but the argument to the {} is ignored if empty. From 67decddb6dcb52b07f3ff8464f8825f3244dc672 Mon Sep 17 00:00:00 2001 From: AntonObersteiner Date: Fri, 3 Feb 2023 12:38:31 +0100 Subject: [PATCH 05/19] add command \invisible for white-on-white text --- protokoll/fsrprotokoll.cls | 4 ++++ protokoll/protokoll.tex | 14 +++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/protokoll/fsrprotokoll.cls b/protokoll/fsrprotokoll.cls index 9c2fe01..53f854d 100644 --- a/protokoll/fsrprotokoll.cls +++ b/protokoll/fsrprotokoll.cls @@ -17,6 +17,7 @@ \RequirePackage[autostyle=true,german=quotes]{csquotes} % https://github.com/AndyClifton/AccessibleMetaClass/blob/master/accessibilityMeta.sty \RequirePackage[tagged]{accessibilityMeta} +\RequirePackage{xcolor} \parindent 0pt \parskip 1ex @@ -302,6 +303,9 @@ \noindent\makebox[6.5cm][l]{Sitzungsleitung} \hfill \noindent\makebox[6.5cm][l]{Protokoll} } +\definecolor{MyWhite}{HTML}{FFFFFF} +\newcommand{\invisible}[1]{\textcolor{MyWhite}{#1}} + %see section VOTENUMBER at the end \newcommand*{\initVoteNumber}[1] { \setcounter{votenumber}{#1} diff --git a/protokoll/protokoll.tex b/protokoll/protokoll.tex index de9428e..460370e 100644 --- a/protokoll/protokoll.tex +++ b/protokoll/protokoll.tex @@ -14,11 +14,19 @@ %%!sitzungsleitung,protokoll: Das Protokoll ist fertig und kann unterschrieben werden! :) \date{} % DD.MM.YYYY -\attendeesNumber{} % Anzahl anwesender Mitglieder -\chairperson{} -\clerks{} + +% irrelevant, da \quorate broken ist und wir eh \quorum verwenden müssen (Anton O) +%\attendeesNumber{} % Anzahl anwesender Mitglieder, +\chairperson{} % Sitzungsleitung +\clerks{} % Protokoll \meetingStart{} % HH:MM \meetingEnd{} % HH:MM +\meetingPlace{APB/1004} % Raum der Sitzung, normalerweise der Ratssaal + +% Nummer des letzten Antrags aus dem letztem Protokoll + 1, +% sonst \initVoteNumber des letzten Protokolls kopieren +\initVoteNumber{26} + % Liste anwesender Mitglieder \attendees{} \excused{} From 3bdc642e472753c1ff365d1ae49c6a9901845f97 Mon Sep 17 00:00:00 2001 From: AntonObersteiner Date: Fri, 3 Feb 2023 12:39:37 +0100 Subject: [PATCH 06/19] add command \election --- protokoll/fsrprotokoll.cls | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/protokoll/fsrprotokoll.cls b/protokoll/fsrprotokoll.cls index 53f854d..c7ebcf5 100644 --- a/protokoll/fsrprotokoll.cls +++ b/protokoll/fsrprotokoll.cls @@ -278,6 +278,25 @@ \end{minipage}\end{lrbox}\fbox{\usebox{\mybox}} } +% election command - not an environment! +\newcommand{\election}[3] {% + \begin{lrbox}{\mybox}\begin{minipage}{.985\textwidth} + \ifthenelse{\isempty{#1}}{}{% + \textbf{#1. Wahlgang:}\\[7pt] + } + \begin{tabularx}{\linewidth}{p{.275\linewidth}|c|c|c|l} + \textbf{Kandidat\_in} & \textbf{Dafür} & \textbf{Dagegen} & + \textbf{Enthaltungen} & \textbf{Ergebnis} \\ + \hline + #2 + \end{tabularx}% + \ifthenelse{\isempty{#3}}{}{% + \\[7pt] + #3 + } + \end{minipage}\end{lrbox}\fbox{\usebox{\mybox}} +} + \newcommand*{\away}[1] { \ifthenelse{\the\numexpr \countInlineItems{#1} > 1} {% \textit{[#1 verlassen die Sitzung]}% From fbb7cdaf49ba1687c1ba40cdec814a463f0506b5 Mon Sep 17 00:00:00 2001 From: AntonObersteiner Date: Fri, 3 Feb 2023 12:42:46 +0100 Subject: [PATCH 07/19] add command \textInString for future use could be used to make \appear and \away sensitive to Person1 und Person2 --- protokoll/fsrprotokoll.cls | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/protokoll/fsrprotokoll.cls b/protokoll/fsrprotokoll.cls index c7ebcf5..6209e2e 100644 --- a/protokoll/fsrprotokoll.cls +++ b/protokoll/fsrprotokoll.cls @@ -59,6 +59,14 @@ \includegraphics[height=4em]{tudlogo}% } } +% from https://tex.stackexchange.com/questions/566641/test-for-substring-with-expl3-in-argument-of-setlength +\newcommand{\textInString}[2]{% + \ifnum\pdfmatch{#1}{#2}=1 + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi +} \makeatother \pagestyle{fsrProtokoll} From a15f3d703497fec3a42c36342d7cb05a2456e354 Mon Sep 17 00:00:00 2001 From: "anton.obersteiner" Date: Sat, 4 Feb 2023 11:10:29 +0100 Subject: [PATCH 08/19] anton-cls-updates (#1) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - add long-used changes from Share LaTeX (title format, meetingBreak, meetingPlace) - add vote numbering system (-> v0.2.1) - add \invisible and \election - move Sitzungseröffnung into \quorum - comments on initials of protokoll.tex Co-authored-by: AntonObersteiner Reviewed-on: https://git.ifsr.de/struktur/tex-templates/pulls/1 Co-authored-by: anton.obersteiner Co-committed-by: anton.obersteiner --- protokoll/fsrprotokoll.cls | 94 ++++++++++++++++++++++++++++++++++---- protokoll/protokoll.tex | 16 +++++-- 2 files changed, 96 insertions(+), 14 deletions(-) diff --git a/protokoll/fsrprotokoll.cls b/protokoll/fsrprotokoll.cls index f51e259..6209e2e 100644 --- a/protokoll/fsrprotokoll.cls +++ b/protokoll/fsrprotokoll.cls @@ -1,5 +1,5 @@ % vim: ft=tex -\ProvidesClass{fsrprotokoll}[2018/03/05 Klasse fuer FSR Protokolle v0.2] +\ProvidesClass{fsrprotokoll}[2018/03/05 Klasse fuer FSR Protokolle v0.2.1] \LoadClass{scrartcl} \RequirePackage[utf8]{inputenc} @@ -17,6 +17,7 @@ \RequirePackage[autostyle=true,german=quotes]{csquotes} % https://github.com/AndyClifton/AccessibleMetaClass/blob/master/accessibilityMeta.sty \RequirePackage[tagged]{accessibilityMeta} +\RequirePackage{xcolor} \parindent 0pt \parskip 1ex @@ -37,6 +38,13 @@ {0pt} {*0.5} {-5pt} +\titleformat{\subsubsection} + {\normalfont\rmfamily\bfseries} + {}{0em}{} +\titlespacing{\subsubsection} + {0pt} + {*0.5} + {-9pt} \makeatletter \newcommand*{\insertheaderrule}{\rlap{\rule[-.5\normalbaselineskip]{\textwidth}{.4pt}}} @@ -51,6 +59,14 @@ \includegraphics[height=4em]{tudlogo}% } } +% from https://tex.stackexchange.com/questions/566641/test-for-substring-with-expl3-in-argument-of-setlength +\newcommand{\textInString}[2]{% + \ifnum\pdfmatch{#1}{#2}=1 + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi +} \makeatother \pagestyle{fsrProtokoll} @@ -77,6 +93,7 @@ } \newcommand*{\quorum}[2] { + Die Sitzungsleitung eröffnet die Sitzung. \newcount\quorateThreshold \quorateThreshold=#2 Es sind #1 von #2 Mitgliedern mit aktivem Stimmrecht anwesend. @@ -96,10 +113,12 @@ \vspace*{1cm}% \textbf{\Large Protokoll zur FSR--Sitzung vom \the\date}% - Sitzungsleitung: \the\chairperson \,| % + Sitzungsleitung: \the\chairperson \, | % Protokoll: \the\clerks% - Sitzungsbeginn: \the\meetingStart \,| Sitzungsende: \the\meetingEnd% + Sitzungsbeginn: \the\meetingStart \, | Sitzungsende: \the\meetingEnd% + + Sitzungsort: \the\meetingPlace % required by FSO \end{center}% \textbf{Anwesende:} \the\attendees% \, (\the\attendeesNumber \, von 17)% @@ -128,8 +147,13 @@ \immediate\write\exportdata{-} \begin{lrbox}{\mybox}\begin{minipage}{.985\textwidth} \newcommand*{\voteNumber}[1]{% - \immediate\write\exportdata{ decision_id: "\the\year/##1"}% - \textbf{\the\year\,/\,##1:}\\% + %see section VOTENUMBER at the end + \ifthenelse{\equal{##1}{}}{}{% else (argument is not empty) + \setcounter{votenumber}{##1}% + }% + \immediate\write\exportdata{ decision_id: "\the\year/\thevotenumber"}% + \textbf{\the\year\,/\,\thevotenumber:}\\% + \stepcounter{votenumber}% }% \newcommand*{\voteMoney}[1]{% \ifthenelse{\equal{##1}{}} {% @@ -137,7 +161,7 @@ \textbf{Antrag}% } {% \immediate\write\exportdata{ money_limit: ##1}% - \textbf{Finanzantrag}% + \textbf{Finanzantrag über \EUR{##1} -- Antrag}% }% } \newcommand{\voteText}[1]{% @@ -188,8 +212,13 @@ \immediate\write\exportdata{-} \begin{lrbox}{\mybox}\begin{minipage}{.985\textwidth} \newcommand*{\voteNumber}[1]{% - \immediate\write\exportdata{ decision_id: "\the\year/##1"}% - \textbf{\the\year\,/\,##1:}\\% + %see section VOTENUMBER at the end + \ifthenelse{\equal{##1}{}}{}{% else (argument is not empty) + \setcounter{votenumber}{##1}% + }% + \immediate\write\exportdata{ decision_id: "\the\year/\thevotenumber"}% + \textbf{\the\year\,/\,\thevotenumber:}\\% + \stepcounter{votenumber}% }% \newcommand*{\voteMoney}[1]{% \ifthenelse{\equal{##1}{}} {% @@ -197,12 +226,15 @@ \textbf{Antrag}% } {% \immediate\write\exportdata{ money_limit: ##1}% - \textbf{Finanzantrag}% + \textbf{Finanzantrag über \EUR{##1} - Antrag}% }% } \newcommand*{\voteText}[1]{% \immediate\write\exportdata{ text: "##1"}% ##1\vspace{\baselineskip}\\}% + \newcommand*{\voteSubmitter}[1]{% + \immediate\write\exportdata{ submitter: "##1"}% + \textbf{Antragsteller\_in: }##1\vspace{\baselineskip}\\}% \newcommand*{\voteReason}[1]{% \immediate\write\exportdata{ rationale: "##1"}% \textbf{Begründung: }##1\vspace{\baselineskip}\\}% @@ -254,6 +286,25 @@ \end{minipage}\end{lrbox}\fbox{\usebox{\mybox}} } +% election command - not an environment! +\newcommand{\election}[3] {% + \begin{lrbox}{\mybox}\begin{minipage}{.985\textwidth} + \ifthenelse{\isempty{#1}}{}{% + \textbf{#1. Wahlgang:}\\[7pt] + } + \begin{tabularx}{\linewidth}{p{.275\linewidth}|c|c|c|l} + \textbf{Kandidat\_in} & \textbf{Dafür} & \textbf{Dagegen} & + \textbf{Enthaltungen} & \textbf{Ergebnis} \\ + \hline + #2 + \end{tabularx}% + \ifthenelse{\isempty{#3}}{}{% + \\[7pt] + #3 + } + \end{minipage}\end{lrbox}\fbox{\usebox{\mybox}} +} + \newcommand*{\away}[1] { \ifthenelse{\the\numexpr \countInlineItems{#1} > 1} {% \textit{[#1 verlassen die Sitzung]}% @@ -268,13 +319,28 @@ \textit{[#1 erscheint zur Sitzung]}% } } + +\newcommand*{\meetingBreak}[1] { + \textit{Die Sitzung wird für #1 Minuten unterbrochen.}% +} + \newcommand*{\signature} { \vfill \noindent\rule{6.5cm}{0.3pt} \hfill \noindent\rule{6.5cm}{0.3pt} \noindent\makebox[6.5cm][l]{Sitzungsleitung} \hfill \noindent\makebox[6.5cm][l]{Protokoll} } +\definecolor{MyWhite}{HTML}{FFFFFF} +\newcommand{\invisible}[1]{\textcolor{MyWhite}{#1}} + +%see section VOTENUMBER at the end +\newcommand*{\initVoteNumber}[1] { + \setcounter{votenumber}{#1} +} + \AtBeginDocument{% + %see section VOTENUMBER at the end + \newcounter{votenumber} \immediate\newwrite\exportdata% \immediate\openout\exportdata=tmp.txt\relax } @@ -291,6 +357,7 @@ \newtoks\clerks \newtoks\meetingStart \newtoks\meetingEnd +\newtoks\meetingPlace \newtoks\attendees \newtoks\excused \newtoks\unexcused @@ -298,3 +365,12 @@ \newtoks\guests \endinput +%documentation on VOTENUMBERS (version 0.2 -> 0.2.1, Author: Anton Obersteiner) +%votes are numbered within one year. use \initVoteCount{num} at the beginning +%of your protocol to set this counter to num, otherwise the counter starts at 0. +%each vote is automatically numbered 20YY / and then +%increments the counter *if you call \voteNumber{} in your vote environment*. +%if you call votenumber with an argument: \voteNumber{num}, the counter is reset to that value +%and increments from there in the votes after. +%for backwards compatibility, the argument is not optional (would require \voteNumber[] syntax), +%but the argument to the {} is ignored if empty. diff --git a/protokoll/protokoll.tex b/protokoll/protokoll.tex index de9428e..9cc1fd4 100644 --- a/protokoll/protokoll.tex +++ b/protokoll/protokoll.tex @@ -14,11 +14,19 @@ %%!sitzungsleitung,protokoll: Das Protokoll ist fertig und kann unterschrieben werden! :) \date{} % DD.MM.YYYY -\attendeesNumber{} % Anzahl anwesender Mitglieder -\chairperson{} -\clerks{} + +% irrelevant, da \quorate broken ist und wir eh \quorum verwenden müssen (Anton O) +%\attendeesNumber{} % Anzahl anwesender Mitglieder, +\chairperson{} % Sitzungsleitung +\clerks{} % Protokoll \meetingStart{} % HH:MM \meetingEnd{} % HH:MM +\meetingPlace{APB/1004} % Raum der Sitzung, normalerweise der Ratssaal + +% Nummer des letzten Antrags aus dem letztem Protokoll + 1, +% sonst \initVoteNumber des letzten Protokolls kopieren +\initVoteNumber{26} + % Liste anwesender Mitglieder \attendees{} \excused{} @@ -30,8 +38,6 @@ \maketitle -Die Sitzungsleitung eröffnet die Sitzung. - \quorum{}{} % Feststellung der Beschlussfähigkeit {#Anwesende}{#NichtRuhende} \section{Protokollkontrolle und Überprüfung gefasster Beschlüsse} From c4767ae6694f66955f8189fb71ed64aba630a4d5 Mon Sep 17 00:00:00 2001 From: AntonObersteiner Date: Tue, 28 Mar 2023 17:31:53 +0200 Subject: [PATCH 09/19] update to currently used form fsrprotokoll.cls - environment vote-two-thirds - orthography - warnings protokoll.tex - Revision comments - defaults for meeting start, room, attendees, guests - more and clearer comments (hopefully clearer) --- protokoll/fsrprotokoll.cls | 74 ++++++++++++++++++++++++++++++++++++-- protokoll/protokoll.tex | 65 +++++++++++++++++++++++++-------- 2 files changed, 122 insertions(+), 17 deletions(-) diff --git a/protokoll/fsrprotokoll.cls b/protokoll/fsrprotokoll.cls index 6209e2e..4ef6bbb 100644 --- a/protokoll/fsrprotokoll.cls +++ b/protokoll/fsrprotokoll.cls @@ -170,6 +170,74 @@ \newcommand*{\voteSubmitter}[1]{% \immediate\write\exportdata{ submitter: "##1"}% \textbf{Antragsteller\_in: }##1\vspace{\baselineskip}\\}% + \newcommand*{\voteReason}[1]{% + \immediate\write\exportdata{ rationale: "##1"}% + \ifthenelse{\equal{##1}{}}{}{% + \textbf{Begründung: }##1\vspace{\baselineskip}\\}% + }% + \newcommand*{\voting}[4][]{ + \textbf{Abstimmung: }% + \ifthenelse{\equal{##2}{} \AND \equal{##3}{} \AND \equal{##4}{}} {% + \immediate\write\exportdata{ v_yes: 0}% + \immediate\write\exportdata{ v_no: 0}% + \immediate\write\exportdata{ v_neutral: 0}% + \immediate\write\exportdata{ accepted: 1}% + Der Antrag wurde ohne Gegenrede\ifthenelse{\equal{##1}{}}{ }{ ##1 }angenommen.% + } {% + \immediate\write\exportdata{ v_yes: ##2}% + \immediate\write\exportdata{ v_no: ##3}% + \immediate\write\exportdata{ v_neutral: ##4}% + Dafür: ##2, Dagegen: ##3, Enthaltungen: ##4% + \\% + \setcounter{x}{##3+##4}% + \ifnum##2>\arabic{x}% + {% + \immediate\write\exportdata{ accepted: 1}% + Der Antrag wurde ##1 angenommen. + }% + \else% + { + \immediate\write\exportdata{ accepted: 0}% + Der Antrag wurde ##1 abgelehnt. + }% + \fi% + }% + }% + \newcommand*{\voteComment}[1]{% + \immediate\write\exportdata{ comment: "##1"}% + ##1 + }% +} { + \end{minipage}\end{lrbox}\fbox{\usebox{\mybox}} +} + +\newenvironment{vote-two-thirds} {% + \immediate\write\exportdata{-} + \begin{lrbox}{\mybox}\begin{minipage}{.985\textwidth} + \newcommand*{\voteNumber}[1]{% + %see section VOTENUMBER at the end + \ifthenelse{\equal{##1}{}}{}{% else (argument is not empty) + \setcounter{votenumber}{##1}% + }% + \immediate\write\exportdata{ decision_id: "\the\year/\thevotenumber"}% + \textbf{\the\year\,/\,\thevotenumber:}\\% + \stepcounter{votenumber}% + }% + \newcommand*{\voteMoney}[1]{% + \ifthenelse{\equal{##1}{}} {% + \immediate\write\exportdata{ money_limit: NULL}% + \textbf{Antrag}% + } {% + \immediate\write\exportdata{ money_limit: ##1}% + \textbf{Finanzantrag über \EUR{##1} - Antrag}% + }% + } + \newcommand*{\voteText}[1]{% + \immediate\write\exportdata{ text: "##1"}% + ##1\vspace{\baselineskip}\\}% + \newcommand*{\voteSubmitter}[1]{% + \immediate\write\exportdata{ submitter: "##1"}% + \textbf{Antragsteller\_in: }##1\vspace{\baselineskip}\\}% \newcommand*{\voteReason}[1]{% \immediate\write\exportdata{ rationale: "##1"}% \textbf{Begründung: }##1\vspace{\baselineskip}\\}% @@ -255,12 +323,12 @@ \ifnum##1>\arabic{x}% {% \immediate\write\exportdata{ accepted: 1}% - Der Antrag wurde mit einer 2/3 Mehrheit angenommen. + Der Antrag wurde mit einer 2/3-Mehrheit angenommen. }% \else% { \immediate\write\exportdata{ accepted: 0}% - Der Antrag wurde abgelehnt, da keine 2/3 Mehrheit zustande kam. + Der Antrag wurde abgelehnt, da keine 2/3-Mehrheit zustande kam. }% \fi% }% @@ -332,6 +400,8 @@ \definecolor{MyWhite}{HTML}{FFFFFF} \newcommand{\invisible}[1]{\textcolor{MyWhite}{#1}} +\newcommand{\warning}[1]{\textbf{\textsc{\textcolor{red}{#1}}}} +\newcommand{\warn}{\warning{warn}} %see section VOTENUMBER at the end \newcommand*{\initVoteNumber}[1] { diff --git a/protokoll/protokoll.tex b/protokoll/protokoll.tex index 9cc1fd4..1d2864d 100644 --- a/protokoll/protokoll.tex +++ b/protokoll/protokoll.tex @@ -9,6 +9,11 @@ % außerdem unter latest verlinkt. +% Revision: +% hier mit Datum und Anmerkungen eintragen, wenn ihr drübergelesen habt + + + \begin{document} %%!sitzungsleitung,protokoll: Das Protokoll ist fertig und kann unterschrieben werden! :) @@ -19,35 +24,59 @@ %\attendeesNumber{} % Anzahl anwesender Mitglieder, \chairperson{} % Sitzungsleitung \clerks{} % Protokoll -\meetingStart{} % HH:MM +\meetingStart{18:45} % HH:MM \meetingEnd{} % HH:MM -\meetingPlace{APB/1004} % Raum der Sitzung, normalerweise der Ratssaal +\meetingPlace{Online via BBB, zusätzlich im APB/1004} % Raum der Sitzung, per Default der Ratssaal % Nummer des letzten Antrags aus dem letztem Protokoll + 1, % sonst \initVoteNumber des letzten Protokolls kopieren \initVoteNumber{26} % Liste anwesender Mitglieder -\attendees{} +\attendees{% + Hamdaan Shaikh, + Helene Hausmann, + Himanshu Kaloni, + Jakob Steinberg, + Joachim Stramke, + Johanna Berger, + Johanna Schmidt, + Jonas Frei, + Fabian Naumann, + Lucas Fugmann, + Lydia Will, + Macy Schreiber, + Marco Lehner, + Rajasekar Sankar, + Reiner Stolle, + Rouven Seifert, + Tom Fiedler, + Vincent Kruse, + Wolfgang Walter +} \excused{} \unexcused{} % Liste Ruhender \resting{} % Liste anwesender Gäste -\guests{Matthias Stuhlbein} +\guests{% + Matthias Stuhlbein, + Jonas Gaffke, + Anton Obersteiner +} \maketitle -\quorum{}{} % Feststellung der Beschlussfähigkeit {#Anwesende}{#NichtRuhende} +\quorum{}{} % Feststellung der Beschlussfähigkeit {#Anwesende}{#NichtRuhende = 19 - #Ruhende} \section{Protokollkontrolle und Überprüfung gefasster Beschlüsse} -% Es gibt nichts zu beanstanden, das Protokoll vom XX.YY.ZZZZ wird bestätigt. +% Es gibt nichts zu beanstanden, das Protokoll vom DD.MM.YYYY wird bestätigt. %\section{Gäste} \section{Berichte der Ämter} \subsection{Sprecher\_innen} -\subsection{Struktur} +\subsection{Strukturer\_innen} \subsection{Finanzer\_innen} @@ -62,12 +91,17 @@ % \section{Berichte aus den Gremien} % \subsection{Studierendenrat (StuRa)} -% \subsection{Fakultätsrat (FR)} +% \subsection{Fakultätsrat (FakRat)} + +% \subsection{Studienkommission (StuKo)} + \section{Stand der Veranstaltungen} \section{Weitere anstehende Termine} +\section{Kanboard Aufgaben} + \section{Sonstiges} \signature @@ -76,8 +110,8 @@ % % Die Reihenfolge muss beibehalten werden. % \begin{vote} % \voteMoney{} % {Betrag (ohne \EUR)} nur bei Finanzantrag, sonst leer lassen -% \voteNumber{} % {#Antrag} -% \voteText{} +% \voteNumber{} % {#Antrag}, leer lassen für automatisches Hochzählen +% \voteText{} % Bei Finanzanträgen auch im Text die Summe angeben % \voteSubmitter{} % optional % \voteReason{} % \voting{}{}{} % {#Dafür}{#Dagegen}{#Enth.}, leer lassen für 'ohne Gegenrede angenommen' @@ -86,8 +120,8 @@ % \begin{vote-two-thirds} % \voteMoney{} % {Betrag (ohne \EUR)} nur bei Finanzantrag, sonst leer lassen -% \voteNumber{} % {#Antrag} -% \voteText{} +% \voteNumber{} % {#Antrag}, leer lassen für automatisches Hochzählen +% \voteText{} % Bei Finanzanträgen auch im Text die Summe angeben % \voteSubmitter{} % optional % \voteReason{} % \voting{}{}{} % {#Dafür}{#Dagegen}{#Enth.}, leer lassen für 'ohne Gegenrede angenommen' @@ -96,11 +130,12 @@ % \begin{poll} % \pollText{} -% \voting{}{} % {#Dafür}{#Dagegen} +% \voting{}{} % {#Dafür}{#Dagegen} In Meinungsbildern gibt es kein Enthalten % \end{poll} -% \appear{eintreffende Person(en)} -% \away{Sitzung verlassende Person(en)} +% \appear{eintreffende Person(en)} % Komma für Plural nötig +% \away{Sitzung verlassende Person(en)} % Komma für Plural nötig +% \meetingBreak{Länge der Sitzungspause in Minuten} % \EUR{#Betrag} <- Bitte ausschließlich so Geldbeträge in Euro angeben % KEIN \emph, \textbf, o.ä. in (sub)section titles! (breaks accessibilityMeta package) From a210daf816317c8b8de93b61056e8a6096ae0d72 Mon Sep 17 00:00:00 2001 From: AntonObersteiner Date: Tue, 27 Jun 2023 11:07:41 +0200 Subject: [PATCH 10/19] \leave=\away, can force plural; \subtopic --- protokoll/fsrprotokoll.cls | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/protokoll/fsrprotokoll.cls b/protokoll/fsrprotokoll.cls index 4ef6bbb..8987843 100644 --- a/protokoll/fsrprotokoll.cls +++ b/protokoll/fsrprotokoll.cls @@ -45,6 +45,10 @@ {0pt} {*0.5} {-9pt} +% im Fließtext Unterthema hervorheben #NEU +\newcommand{\subtopic}[1]{\textbf{#1}} +% weil häufig \leave verwendet wird. #NEU +\newcommand{\leave}[2][]{\away[#1]{#2}} \makeatletter \newcommand*{\insertheaderrule}{\rlap{\rule[-.5\normalbaselineskip]{\textwidth}{.4pt}}} @@ -116,7 +120,7 @@ Sitzungsleitung: \the\chairperson \, | % Protokoll: \the\clerks% - Sitzungsbeginn: \the\meetingStart \, | Sitzungsende: \the\meetingEnd% + Sitzungsbeginn: \the\meetingStart \, Uhr | Sitzungsende: \the\meetingEnd \, Uhr% Sitzungsort: \the\meetingPlace % required by FSO \end{center}% @@ -373,11 +377,11 @@ \end{minipage}\end{lrbox}\fbox{\usebox{\mybox}} } -\newcommand*{\away}[1] { - \ifthenelse{\the\numexpr \countInlineItems{#1} > 1} {% - \textit{[#1 verlassen die Sitzung]}% +\newcommand*{\away}[2][] { + \ifthenelse{\the\numexpr \countInlineItems{#2} > 1 \OR \NOT \equal{#1}{}} {% + \textit{[#2 verlassen die Sitzung]}% } {% - \textit{[#1 verlässt die Sitzung]}% + \textit{[#2 verlässt die Sitzung]}% } } \newcommand*{\appear}[1] { From 29f7d31f7dcb5d3da0bb879283a5a5e9a05673e9 Mon Sep 17 00:00:00 2001 From: AntonObersteiner Date: Tue, 27 Jun 2023 11:14:14 +0200 Subject: [PATCH 11/19] add the accessibilityMeta package being used allows testing locally --- protokoll/accessibilityMeta.sty | 2107 +++++++++++++++++++++++++++++++ 1 file changed, 2107 insertions(+) create mode 100644 protokoll/accessibilityMeta.sty diff --git a/protokoll/accessibilityMeta.sty b/protokoll/accessibilityMeta.sty new file mode 100644 index 0000000..a5ac2ff --- /dev/null +++ b/protokoll/accessibilityMeta.sty @@ -0,0 +1,2107 @@ +%% accessibilityMeta.sty +%% Additions and changes are copyright 2015 Andrew Clifton +%% Code from accessibility.sty copyright 2007 Babett Schalitz (see below) +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Andrew Clifton. +% +% This work consists of the file accessibilityMeta.sty. +% +% The file accessibilityMeta.sty is a derived work under the terms of the +% LPPL. It is based on version 1 of accessibility.sty by Babett Schalitz. +% A copy of accessibility.sty is available from http://www.babs.gmxhome.de/download/da_pdftex/accessibility.sty. + +\ProvidesPackage{accessibilityMeta}[2015/08/16 v. 1.0] +\NeedsTeXFormat{LaTeX2e} + +\RequirePackage{xkeyval} +\RequirePackage{ifthen} +\RequirePackage{count1to} + +\advance\count1 by 1 + +\newcounter{StructTree}% +\pdfobj reserveobjnum% +\setcounter{StructTree}{\pdflastobj}% +\xdef\Karray{}% + +\newcounter{ObjHelp}% + +\newcounter{TaggedObj}%[page] + +\newboolean{ACCESSProblems} \setboolean{ACCESSProblems}{false}% +\gdef\DocumentLanguage{}% +\gdef\ActualLanguage{}% +\newif\ifLanguageDiff \global\LanguageDifffalse% +\gdef\LanguageCode{}% +\newboolean{@tagged@pdf} \setboolean{@tagged@pdf}{false}% +\newboolean{@right@pdfversion} \setboolean{@tagged@pdf}{false}% +\newboolean{@Access@pdf} \setboolean{@Access@pdf}{false}% +\newif\ifPDFDetailedStructure \global\PDFDetailedStructuretrue% +\DeclareOption{flatstructure}{\global\PDFDetailedStructurefalse}% +\DeclareOption{highstructure}{\global\PDFDetailedStructuretrue}% +\DeclareOption{tagged}{\setboolean{@tagged@pdf}{true}}% +\DeclareOption{untagged}{\setboolean{@tagged@pdf}{false}}% +\DeclareOption*{% + \PackageWarning{accessibilityMeta}{Unknown Option \CurrentOption}}% +\ProcessOptions\relax% + + +\ifthenelse{\isundefined{\pdfoutput}}{% + %latex with dvips + \setboolean{@right@pdfversion}{false}% + }{\ifthenelse{\number\pdfoutput<1}{% + %pdflatex in DVI mode + \setboolean{@right@pdfversion}{false}% + }{%pdflatex in PDF mode + \ifthenelse{\pdftexversion<120}{% + \PackageError{accessibilityMeta}% + {pdfTeX/pdfLaTeX version >= 1.20 required for direct PDF outut}% + {Try to install a more recent version!}% + }{% + %It is the right version + \setboolean{@right@pdfversion}{true}% + }% + }% +} + +\ifthenelse{\boolean{@right@pdfversion} \and \boolean{@tagged@pdf}}{% + \setboolean{@Access@pdf}{true}% +}{% + \setboolean{@Access@pdf}{false}% +} + +\newboolean{@KOMAScriptClass} \setboolean{@KOMAScriptClass}{false}% + +\@ifclassloaded{scrreprt} {\setboolean{@KOMAScriptClass}{true}}{}% +\@ifclassloaded{scrbook} {\setboolean{@KOMAScriptClass}{true}}{}% +\@ifclassloaded{scrartcl} {\setboolean{@KOMAScriptClass}{true}}{}% +\ifthenelse{\boolean{@KOMAScriptClass}}{% + \PackageInfo{accessibilityMeta}{KOMAscript Klasse}}{}% + +\newboolean{@StandardClass} \setboolean{@StandardClass}{false}% + +\@ifclassloaded{report} {\setboolean{@StandardClass}{true}}{}% +\@ifclassloaded{book} {\setboolean{@StandardClass}{true}}{}% +\@ifclassloaded{article}{\setboolean{@StandardClass}{true}}{}% + +\ifthenelse{\boolean{@StandardClass}}{% + \PackageInfo{accessibilityMeta}{Standardklasse}}{}% + +\pdfcompresslevel=0% Damit wird die PDF-Quelldatei lesbar +\pdfoptionpdfminorversion=6% Bestimmt die PDF - Version der Ausgabe + %\pdfadjustspacing=0% 0, 1 oder 2 ?nderung nicht erkannt + +\newcommand{\alt}[1]{\xdef\altAttr{#1}}% +\newcommand{\newhref}[3]{\xdef\altAttr{#2}\href{#1}{#3}}% + % +\@ifundefined{thead}{% + \newcommand{\thead}[1]{% + \global\TableHeadCelltrue% + \textbf{#1}}% +}{% + \let\originalthead\thead + \renewcommand{\thead}{% + \global\TableHeadCelltrue% + \originalthead}% +} + +\newcount\@stackdepth \@stackdepth=0% +\def\accessPushStack#1#2#3#4{% + \ifnum \@stackdepth >15\relax% + \PackageWarning{accessibilityMeta}{too deep}% + \else% + \global\advance\@stackdepth\@ne% + \fi% + {\expandafter\xdef\csname StackA\romannumeral\the\@stackdepth\endcsname{#1}}% + {\expandafter\xdef\csname StackB\romannumeral\the\@stackdepth\endcsname{#2}}% + {\expandafter\xdef\csname StackC\romannumeral\the\@stackdepth\endcsname{#3}}% + {\expandafter\xdef\csname StackD\romannumeral\the\@stackdepth\endcsname{#4}}% +}% + +\def\accessPopStack#1#2#3#4{% + \ifnum \the\@stackdepth <1\relax% + \global\let#1\empty% + \global\let#2\empty% + \global\let#3\empty% + \global\let#4\empty% + \else% + \xdef#1{\csname StackA\romannumeral\the\@stackdepth\endcsname}% + \xdef#2{\csname StackB\romannumeral\the\@stackdepth\endcsname}% + \xdef#3{\csname StackC\romannumeral\the\@stackdepth\endcsname}% + \xdef#4{\csname StackD\romannumeral\the\@stackdepth\endcsname}% + %Variablen wieder leeren + {\expandafter\xdef\csname StackA\romannumeral\the\@stackdepth\endcsname{}}% + {\expandafter\xdef\csname StackB\romannumeral\the\@stackdepth\endcsname{}}% + {\expandafter\xdef\csname StackC\romannumeral\the\@stackdepth\endcsname{}}% + {\expandafter\xdef\csname StackD\romannumeral\the\@stackdepth\endcsname{}}% + \global\advance\@stackdepth\m@ne% + \fi% +}% + +\def\accessReadTopStack#1#2#3{% + \ifnum \the\@stackdepth <1\relax% + \global\let#1\empty% + \global\let#2\empty% + \global\let#3\empty% + \else% + \xdef#1{\csname StackA\romannumeral\the\@stackdepth\endcsname}% + \xdef#2{\csname StackB\romannumeral\the\@stackdepth\endcsname}% + \xdef#3{\csname StackC\romannumeral\the\@stackdepth\endcsname}% + \fi% +}% + + +\newenvironment{PDFStructObj}[2]{% #1 StructType #2 Title + \ifTextActive{\endPDFMarkContent\endPDFTextObj}\fi% + \pdfobj reserveobjnum% Objektnummer reservieren + \setcounter{ObjHelp}{\pdflastobj}% + \expandafter\xdef\csname PDF@#1@Array\endcsname{}% + \accessPushStack{#1}{\theObjHelp}{PDF@#1@Array}{#2}%drauftun +}% +{%andere Ebenen Schlie?en + \accessPopStack\StructElem\Objnum\KidsArray\Title %runterholen + \ifx \StructElem\empty% + \PackageWarning{accessibilityMeta}{empty \string\PopStack ?}% + \else% + %\convertLanguageInCode{\languagename}% + \gdef\TitleHelp{}% + \if \Title\empty \else% + \gdef\TitleHelp{/T (\Title)}% + \fi% + \ifnum \@stackdepth <1\relax% + \xdef\ParentElem{\theStructTree}% + \xdef\ParentArray{Karray}% + \else% + \accessReadTopStack\ParentStructElem\ParentElem\ParentArray% + \fi% + \immediate \pdfobj useobjnum\number\Objnum{<>}% + \pdfrefobj\Objnum% + \expandafter\xdef\csname \ParentArray\endcsname{% + \csname \ParentArray\endcsname \space \Objnum\space 0 R}% + \fi% +} + +\newcommand{\sectionInDepth}[2]{% + \csname #2\endcsname=100% + \ifthenelse{\equal{#1}{Document}}{\csname #2\endcsname=\m@ne}{}% + \ifthenelse{\equal{#1}{Part}}{\csname #2\endcsname=0}{}% + \ifthenelse{\equal{#1}{Chapter}}{\csname #2\endcsname=1}{}% + \ifthenelse{\equal{#1}{Section}}{\csname #2\endcsname=2}{}% + \ifthenelse{\equal{#1}{Subsection}}{\csname #2\endcsname=3}{}% + \ifthenelse{\equal{#1}{Subsubsection}}{\csname #2\endcsname=4}{}% + \ifthenelse{\equal{#1}{Paragraph}}{\csname #2\endcsname=5}{}% + \ifthenelse{\equal{#1}{Subparagraph}}{\csname #2\endcsname=6}{}% + \ifthenelse{\equal{#1}{Div}}{\csname #2\endcsname=7}{}% +} + + +\newcount\@bool% +\newcount\@elem% +\newcount\@elemi% +\newcommand{\closeUntilPDFStruct}[1]{% + \ifTextActive% + \endPDFMarkContent% + \endPDFTextObj% + \fi% + %Schleife + \@bool=0% + \sectionInDepth{#1}{@elemi}% + \ifnum \@elemi=100 \@bool=1 \fi% + \global\advance\@elemi\m@ne% + \@whilenum \@bool =0\do{% + \accessReadTopStack\StructElem\Objnum\KidsArray% + \sectionInDepth{\StructElem}{@elem}% + \ifthenelse{\@elem >\@elemi}{% + \endPDFStructObj% + }{% + \@bool=1% + }% + \if #1\empty \@bool=1 \fi% + \ifthenelse{\equal{#1}{\StructElem}}{\@bool=1}{}% + }% +} + +\xdef\TextType{}% +\newcounter{TextObjNum}% +\xdef\TextArray{}% +\newif\ifTextActive \TextActivefalse% +\newif\ifSpezialTextActive \SpezialTextActivefalse% + +\newenvironment*{PDFTextObj}{% + %altes Textobj beenden, immer max. ein Textobj aktiv + \ifTextActive \endPDFMarkContent\endPDFTextObj\fi% + %neues anfangen + \global\TextActivetrue% + \pdfobj reserveobjnum% Objektnummer reservieren + \setcounter{TextObjNum}{\pdflastobj}% + \xdef\TextArray{}% + \xdef\TextType{P}% kein TextTxp --> P +}% +{% + \ifTextActive% + \ifnum \@stackdepth <1\relax% + \xdef\ParentElem{\theStructTree}% + \xdef\ParentArray{Karray}% + %\PackageWarning{accessibilityMeta}{stackdepth<1}% + \else% + \accessReadTopStack\ParentStructElem\ParentElem\ParentArray% + \fi% + %\convertLanguageInCode{\languagename}% + \immediate \pdfobj useobjnum\theTextObjNum{<>}% + \pdfrefobj \theTextObjNum% + \expandafter\xdef\csname \ParentArray\endcsname{% + \csname \ParentArray\endcsname \space \theTextObjNum\space 0 R}% + \global\TextActivefalse% + \fi% +} + + +\xdef\altAttr{}% +\xdef\titleAttr{}% +\newenvironment*{PDFSpezialTextObj}[1]{% + \ifTextActive \endPDFMarkContent\endPDFTextObj\fi% + %neues anfangen + \global\SpezialTextActivetrue% + \pdfobj reserveobjnum% Objektnummer reservieren + \setcounter{TextObjNum}{\pdflastobj}% + \xdef\TextArray{}% + \xdef\TextType{#1}% +}% +{% + %\gdef\LanguageHelp{}% + %\ifLanguageDiff% + % \gdef\LanguageHelp{\LanguageCode}% + %\fi% + % \convertLanguageInCode{\languagename}% + \gdef\AltHelp{}% + \ifthenelse{\equal{\altAttr}{}}{}{% + \gdef\AltHelp{/Alt(\altAttr)}% + }% + \gdef\TitleHelp{}% + \ifthenelse{\equal{\titleAttr}{}}{}{% + \gdef\TitleHelp{/T(\titleAttr)}% + }% + \ifnum \@stackdepth <1\relax% + \xdef\ParentElem{\theStructTree}% + \xdef\ParentArray{Karray}% + \else% + \accessReadTopStack\ParentStructElem\ParentElem\ParentArray% + \fi% + \immediate \pdfobj useobjnum\theTextObjNum{<>}% + \pdfrefobj \theTextObjNum% + \expandafter\xdef\csname \ParentArray\endcsname{% + \csname \ParentArray\endcsname \space \theTextObjNum\space 0 R}% + \global\SpezialTextActivefalse% + \xdef\TextType{}% + \EveryparReset% + \xdef\altAttr{}% wieder leeren + \xdef\titleAttr{}% wieder leeren +} + +\xdef\lastEveryparType{}% +\xdef\HelpBool{}% +\xdef\Type{}% +\newcounter{PDFReferenceObjNum}% +\xdef\ReferenceArray{}% +\newenvironment*{PDFInlineObjInText}[1]{% + %alte einstellung merken + \xdef\lastEveryparType{\everyparStructElem}% + \xdef\HelpBool{\InlineObj}% + \xdef\Type{#1}% + \ifthenelse{\equal{\Type}{Reference} \or \equal{\Type}{Link}}{% + \pdfobj reserveobjnum% + \setcounter{PDFReferenceObjNum}{\pdflastobj}% + \setcounter{ObjNum}{\theTaggedObj}% + \EveryparConfig{#1}{obj}% + }{% + \EveryparConfig{#1}{true}% + }% + \PDFMarkContent% kein everypar +}% +{% + \endPDFMarkContent% + \ifthenelse{\equal{\Type}{Reference} \or \equal{\Type}{Link}}{% + \xdef\ReferenceArray{<>}% + \ifthenelse{\pdftexversion>139}{% + \setcounter{ObjHelp}{\pdflastlink}% %<< /Type /OBJR /Obj 600 0 R >> + %\PackageWarning{accessibilityMeta}{Objektnummer vom letzten Link: \theObjHelp}% + \ifthenelse{\theObjHelp>0}{% + \xdef\ReferenceArray{\ReferenceArray\space <>}% + }{}% + }{}% + \writeComplexTextObj{\thePDFReferenceObjNum}% + {\ReferenceArray}% + {/Reference}{\theTextObjNum}{NoPage}% + \xdef\TextArray{\TextArray \theObjHelp\space 0 R \space}% + }{}% + % alte einstellung wiederherstellen + \EveryparConfig{\lastEveryparType}{\HelpBool}% + \PDFMarkContent% +} + + +\newcommand{\EveryparConfig}[2]{% + \xdef\everyparStructElem{#1}% + \xdef\InlineObj{#2}% +} + +%%Setzt die Variablen auf die Standardwerte f?r eine normale Texterkennung. +\newcommand{\EveryparReset}{% + \xdef\everyparStructElem{P}% + \xdef\InlineObj{false}% +} + +\newif\ifMarkContentOpen \MarkContentOpenfalse% +\xdef\everyparStructElem{P}% +\xdef\InlineObj{false}% +\newenvironment{PDFMarkContent}{% + \ifMarkContentOpen \endPDFMarkContent\fi% + \global\MarkContentOpentrue% + \ifthenelse{\equal{\everyparStructElem}{}}{\EveryparReset}{}% + \pdfliteral{/\everyparStructElem\space <> BDC}% + \ifthenelse{\equal{\InlineObj}{false}}{% Text + %\ifthenelse{\equal{\themypage}{\thepage}}{}{% + %\PackageWarning{accessibilityMeta}{unterschiedlich \thepage<>\themypage; MCID \theTaggedObj} + %}% + \xdef\TextArray{\TextArray \space <>}% + }{}% + \ifthenelse{\equal{\InlineObj}{true}}{% inline-Objekt + \writePDFLeafObj{\theTaggedObj}{\everyparStructElem}% + }{}% + \stepcounter{TaggedObj}% +}% +{% + \ifMarkContentOpen% + \pdfliteral{EMC}% + \global\MarkContentOpenfalse% + \fi% +} + +\newcommand*{\writePDFLeafObj}[2]{% + %\gdef\LanguageHelp{}% + %\ifLanguageDiff% + % \gdef\LanguageHelp{\LanguageCode}% + %\fi% + % \convertLanguageInCode{\languagename}% + \gdef\AltHelp{}% + \ifthenelse{\equal{\altAttr}{}}{}{% + \gdef\AltHelp{/Alt(\altAttr)}% + }% + \gdef\TitleHelp{}% + \ifthenelse{\equal{\titleAttr}{}}{}{% + \gdef\TitleHelp{/T(\titleAttr)}% + }% + \immediate \pdfobj {<> % + /S /#2 % + \space\LanguageCode % + \space\TitleHelp % + \space\AltHelp>>}% + \setcounter{ObjHelp}{\pdflastobj}% + \pdfrefobj \pdflastobj% + \xdef\TextArray{\TextArray \space \theObjHelp\space 0 R}% + \xdef\altAttr{}% + \xdef\titleAttr{}% +} + + +\newcommand*{\writeComplexTextObj}[5]{% + \ifthenelse{\equal{#5}{Page}}{% Seitenreferenz angeben + \immediate \pdfobj useobjnum#1{<>}% + }{%keine Seitenreferenz angeben + \immediate \pdfobj useobjnum#1{<>}% + }% + \setcounter{ObjHelp}{\pdflastobj}% + \pdfrefobj \pdflastobj% +} + + %\newcounter{ParCounter}[page]% +\newcounter{ParCounter}% +\newif\ifnumberingpars \numberingparstrue% +\newif\ifnpar \npartrue% + +\ifthenelse{\boolean{@Access@pdf}}{% + \let\originaleverypar\everypar% + \newtoks\npeverypar% + \npeverypar{}% + % Call everypar with the argument extended with the toks + \def\everypar#1{% + \originaleverypar{#1\ifnumberingpars\the\npeverypar\fi}}% + \npeverypar{% + \ifnpar{% + \stepcounter{ParCounter}% + %\pdfliteral{/Artifact BMC}% + % \llap{\small\arabic{ParCounter}\qquad}% + %\pdfliteral{EMC}% + \ifSpezialTextActive\else \PDFTextObj \fi% + \PDFMarkContent% + }\fi% + }% +}{} +\AtBeginDocument{% +\PDFStructObj{Document}{\empty}% +\everypar{}% +} + +\ifthenelse{\boolean{@Access@pdf}}{% + \AtEndDocument{% + \closeUntilPDFStruct{Document}% + \newcounter{ClassMap}% + \pdfobj reserveobjnum% neues Objekt Reservieren + \setcounter{ClassMap}{\pdflastobj}% + \immediate \pdfobj useobjnum \theClassMap{<<% + /Normal <> % + /CM1 <> % + /CM2 <> % + /CM3 <> % + /CM4 <> % + >>} \pdfrefobj \pdflastobj% + %\global\setcounter{ClassMap}{\pdflastobj}% + \pdfobj {<<% + /IndexItem /Span % Indexeintr?ge + /TOF /TOC % Table of Figures + /TOFI /TOCI % Table of Figures Eintrag + /TOT /TOC % Table of Tables + /TOTI /TOCI % Table of Tables Eintrag++ + /Titlepage /Sect % Titlepage + /Bibliography /L % Bibligraphy + /BibItem /LI % BibligraphyItem + /ParagraphSpan /Span % geteilte Paragraphen am Seitenumbruch + /Footnote /Note % Fu?notentext + /Chapter /Sect% + /Section /Sect% + /Subsection /Sect% + /Subsubsection /Sect% + /Float /Div% + /L1 /L% + /L2 /L% + /L3 /L% + /L4 /L% + /L5 /L% + >>} \pdfrefobj \pdflastobj% + \setcounter{ObjHelp}{\pdflastobj}% + \immediate \pdfobj useobjnum \theStructTree{% + <> % TODO Viel komplizierter + /ParentTreeNextKey 1 % berechnen + /K [\Karray] % + >>}\pdfrefobj\pdflastobj% + \pdfcatalog{% + /StructTreeRoot \theStructTree\space 0 R% + /MarkInfo <>% + %/PieceInfo<>% + %/MarkInfo <>% + %/Metadata \theStructTree\space 0 R% + }% + \ifthenelse{\boolean{ACCESSProblems}}{% + \PackageWarningNoLine{accessibilityMeta}{% + @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\MessageBreak + @@ There were non-defined Figure Alt-Tags! @@\MessageBreak + @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@}% + }{}% + }% +}{} + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcount\linenopenalty\linenopenalty=-100000% +\mathchardef\linenopenaltypar=32000% + % + %%%%%%%%%%%%%Ver?ndern der Outputroutine%%%%%%%%%%%%%%%%%%%%%%%% +\ifthenelse{\boolean{@Access@pdf}}{% + \let\@tempa\output% + \newtoks\output% + \let\@AC@output\output% + \output=\expandafter{\the\@tempa}% + % + \@tempa={% + % LineNoTest + \let\@@par\@@@par% + \ifnum\interlinepenalty<-\linenopenaltypar% + \advance\interlinepenalty-\linenopenalty% + \@AC@nobreaktrue% + \fi% + \@tempswatrue% + \ifnum\outputpenalty>-\linenopenaltypar\else% + \ifnum\outputpenalty>-188000\relax% + \@tempswafalse% + \fi% + \fi% + \if@tempswa% + % LineNoLaTeXOutput + \ifnum \holdinginserts=\thr@@ % + \global\holdinginserts-\thr@@ % + \unvbox\@cclv % + \ifnum \outputpenalty=\@M \else \penalty\outputpenalty \fi % + \else% + \if@twocolumn \let\@makecol\@AC@makecol \fi% + \the\@AC@output % + \ifnum \holdinginserts=-\thr@@ % + \global\holdinginserts\thr@@ \fi % + \fi% + \else % + %MakeLineNo + \boxmaxdepth\maxdimen\setbox\z@\vbox{\unvbox\@cclv}% + \@tempdima\dp\z@ \unvbox\z@% + \sbox\@tempboxa{\hb@xt@\z@{\makeLineNumber}}% + \stepcounter{linenumber}% + \stepcounter{abslinenumber}% + \ht\@tempboxa\z@ \@AC@depthbox % + \count@\lastpenalty % + \ifnum\outputpenalty=-\linenopenaltypar % + \ifnum\count@=\z@ \else % + \xdef\@AC@parpgbrk{% + \penalty\the\count@% + \global\let\noexpand\@AC@parpgbrk% + \noexpand\@AC@screenoff@pen}% + \fi% + \else% + \@tempcnta\outputpenalty% + \advance\@tempcnta -\linenopenalty% + \penalty \ifnum\count@<\@tempcnta \@tempcnta \else \count@ \fi % + \fi% + \fi% + }% + \def\@AC@nobreaktrue{\let\if@nobreak\iftrue} % + % + \def\@AC@depthbox{% + \dp\@tempboxa=\@tempdima% + \nointerlineskip \kern-\@tempdima \box\@tempboxa} % + % + \def\@AC@screenoff@pen{% + \ifdim\lastskip=\z@ % + \@tempdima\prevdepth \setbox\@tempboxa\null % + \@AC@depthbox \fi}% + % + \global\let\@AC@parpgbrk\@AC@screenoff@pen % +}{}% + % + %%%%%%%%%%%%%Initializieren der Variablen%%%%%%%%%%%%%%%%%%%%%%% + % + %Zeilennummer + \newcounter{linenumber}% + \newcounter{abslinenumber}% + %Seitennummer + \newcount\c@AC@truepage % + \global\advance\c@AC@truepage\@ne %mit eins beginnen + %\g@addto@macro\cl@page{\global\c@AC@truepage\c@page}% + \g@addto@macro\cl@page{\global\advance\c@AC@truepage\@ne}% + \@addtoreset{AC@truepage}{@ckpt}% + % + \newcounter{mypage}% + \setcounter{mypage}{\@ne}% + \g@addto@macro\cl@page{\global\c@mypage\c@page}% + \@addtoreset{mypage}{@ckpt}% + % + %%%%%%%%%%%%%Schreiben der Zeilennummmern%%%%%%%%%%%%%%%%%%%%%%% +\ifthenelse{\boolean{@Access@pdf}}{% + \def\makeLineNumber{% + \protected@write\@auxout{}{\string\@AC{\the\c@linenumber}{\noexpand\the\c@AC@truepage}}% + \testNumberedPage% + %Schreibt die Zeilennummern + %\hss{\normalfont\tiny\sffamily\thelinenumber\quad}% + }% +}{}% + % + %%%%%%%%%%%%%%Absatz +\newif\ifLastLineStop \LastLineStopfalse% +\newcounter{LastPar}% + +\newcommand{\EndPage}[1]{% + \ifMarkContentOpen% + \endPDFMarkContent% + \global\LastLineStoptrue% + \setcounter{LastPar}{\noexpand\theParCounter}% + \else% + \global\LastLineStopfalse% + \fi% + \if@twocolumn \else% + \stepcounter{mypage}% + \fi% +}% + +\newcommand{\BeginPage}{% + \ifLastLineStop% + \ifnum \theParCounter=\theLastPar% + \pdfliteral{/P <> BDC}% + \global\MarkContentOpentrue% + \xdef\TextArray{\TextArray \space <>}% + \stepcounter{TaggedObj}% + \fi% + \fi% +}% + +\ifthenelse{\boolean{@Access@pdf}}{% + \let\original@startcolumn\@startcolumn% + \renewcommand{\@startcolumn}{% + \BeginPage% + \original@startcolumn% + }% +}{}% + + %%%%%%%%%%%%%%Berichtigung der Seitennummer%%%%%%%%%%%%%%%%%%%%%% +\ifthenelse{\boolean{@Access@pdf}}{% + \def\LastNumberedPage{first}% + \def\AC@Pfirst{\nextAC\relax}% + % + \let\lastAC\relax % compare to last line on this page + \let\firstAC\relax % compare to first line on this page + \let\pageAC\relax % get the page number, compute the linenumber + \let\nextAC\relax % move to the next page + % + \AtEndDocument{\let\@AC\@gobbletwo} % + % + \def\@AC#1#2{{\expandafter\@@AC% + \csname AC@P#2C\@AC@column\expandafter\endcsname% + \csname AC@PO#2\endcsname% + {#1}{#2}}}% + % + \def\@@AC#1#2#3#4{\ifx#1\relax% + \ifx#2\relax\gdef#2{#3}\fi% + \expandafter\@@@AC\csname AC@P\LastNumberedPage\endcsname#1% + \xdef#1{\lastAC{#3}\firstAC{#3}% + \pageAC{#4}{\@AC@column}{#2}\nextAC\relax}% + \else% + \def\lastAC##1{\noexpand\lastAC{#3}}% + \xdef#1{#1}% + \fi% + \xdef\LastNumberedPage{#4C\@AC@column}% + }% + % + \def\@@@AC#1#2{{\def\nextAC##1{\noexpand\nextAC\noexpand#2}% + \xdef#1{#1}}}% + % + \def\NumberedPageCache{\AC@Pfirst}% + % + \def\testLastNumberedPage#1{% + \ifnum#1<\c@linenumber% + \let\firstAC\@gobble% + \fi% + \ifnum#1=\c@linenumber% + \EndPage{#1}% + \fi% + }% + % + \def\testFirstNumberedPage#1{% + \ifnum#1>\c@linenumber% + \def\nextAC##1{\testNextNumberedPage\AC@Pfirst}% + \else% + \let\nextAC\@gobble% + \def\pageAC{\gotNumberedPage{#1}}% + \fi% + }% + % + \long\def \@gobblethree #1#2#3{}% + % + \def\testNumberedPage{% + \let\lastAC\testLastNumberedPage% + \let\firstAC\testFirstNumberedPage% + \let\pageAC\@gobblethree% + \let\nextAC\testNextNumberedPage% + \NumberedPageCache% + }% + % + \def\testNextNumberedPage#1{% + \ifx#1\relax% + \global\def\NumberedPageCache{\gotNumberedPage0000}% + \PackageWarning{accessibilityMeta}{Changed paragraphs, rerun to get it right}% + \else% + \global\let\NumberedPageCache#1% + \fi% + \testNumberedPage% + }% + % + \def\gotNumberedPage#1#2#3#4{% + \ifodd \if@twocolumn #3\else #2\fi\relax\fi% + \advance\c@linenumber\@ne % Nummerierung ab 1 sonst ab 0 + \advance\c@linenumber-#4\relax% + }% +}{}% + % + %%%%%%%%%%%%%%Spaltenerkennung%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifthenelse{\boolean{@Access@pdf}}{% + \def\@AC@col{\def\@AC@column} % + \@AC@col{1}% + % + \AtBeginDocument{\let\@AC@orig@makecol\@makecol} % + % + \def\@AC@makecol{% + \@AC@orig@makecol + \setbox\@outputbox \vbox{% + \boxmaxdepth \@maxdepth% + \protected@write\@auxout{}{% + \string\@AC@col{\if@firstcolumn1\else2\fi}% + }% + \box\@outputbox % + }}% +}{}% + % + %%%%%%%%%%%%%%Absatzerkennung%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifthenelse{\boolean{@Access@pdf}}{% + \let\@@@par\@@par% + \newcount\linenoprevgraf% + % + \def\linenumberpar{% + \ifvmode \@@@par \else % + \ifinner \@@@par \else% + \xdef\@AC@outer@holdins{\the\holdinginserts}% + \advance \interlinepenalty \linenopenalty% + \linenoprevgraf \prevgraf% + \global \holdinginserts \thr@@ % + \@@@par% + \ifnum\prevgraf>\linenoprevgraf% + \penalty-\linenopenaltypar% + \fi% + \@AC@parpgbrk % + \global\holdinginserts\@AC@outer@holdins% + \advance\interlinepenalty -\linenopenalty% + \fi% + \fi}% + % + \AtEndOfPackage{% + \xdef\@AC@outer@holdins{\the\holdinginserts}% + \let\@@par\linenumberpar% + \ifx\@par\@@@par\let\@par\linenumberpar\fi% + \ifx\par\@@@par\let\par\linenumberpar\fi% + }% +}{}% + % + %%%%%%%%%%%%%%Formelbehandlung%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\linenomath{% + \ifnum\interlinepenalty>-\linenopenaltypar + \global\holdinginserts\thr@@ + \advance\interlinepenalty \linenopenalty + \ifhmode % + \advance\predisplaypenalty \linenopenalty + \fi + \advance\postdisplaypenalty \linenopenalty + \advance\interdisplaylinepenalty \linenopenalty + \fi + \ignorespaces +}% + +\def\endlinenomath{% + \global\holdinginserts\@AC@outer@holdins % + \global\@ignoretrue +} + +\ifthenelse{\boolean{@Access@pdf}}{% + \@ifundefined{mathindent}{% + \let\AC@displaymath\[% + \let\AC@enddisplaymath\]% + \renewcommand\[{\begin{linenomath}\AC@displaymath}% + \renewcommand\]{\AC@enddisplaymath\end{linenomath}}% + % + \let\AC@equation\equation% + \let\AC@endequation\endequation% + \renewenvironment{equation}% + {\linenomath\AC@equation}% + {\AC@endequation\endlinenomath}% + }{}% + % + \let\AC@eqnarray\eqnarray% + \let\AC@endeqnarray\endeqnarray% + \renewenvironment{eqnarray}% + {\linenomath\AC@eqnarray}% + {\AC@endeqnarray\endlinenomath}% + % + \advance\maxdeadcycles 100% +}{}% + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifthenelse{\boolean{@Access@pdf}}{% + \let\originalnewpage\newpage% + \renewcommand{\newpage}{% + \endPDFMarkContent% + \originalnewpage% + }% +}{}% + +\newenvironment{PDFSect}[2]{% + \ifPDFDetailedStructure% + \closeUntilPDFStruct{#1}% + \PDFStructObj{#1}{#2}% + \fi% + \PDFSpezialTextObj{H}% + \EveryparConfig{H}{false}% +}% +{% + \endPDFMarkContent% + \endPDFSpezialTextObj% +} + +\ifthenelse{\boolean{@Access@pdf}}{% + \@ifundefined{chapter}{% es gibt keine Chapter z.B. in Article-Klassen + }{% + \let\originalchapter\chapter% + \renewcommand{\chapter}{%Sortiert die verschiedenen Aufrufe + \@ifstar{\originalchapterWithStar}%\chapter*{Beispielkapitel} + {\@ifnextchar[%] + {\originalchapterWithTwoOption}%\chapter[BspKap]{Beispielkapitel} + {\originalchapterWithOption}%\chapter{Beispielkapitel} + }% + }% + }% +}{} + +\newcommand{\originalchapterWithStar}[1]{% + \PDFSect{Chapter}{#1}\originalchapter*{#1}\endPDFSect}% +\newcommand{\originalchapterWithTwoOption}[2]{% + \PDFSect{Chapter}{#1}\originalchapter[#1]{#2}\endPDFSect}% +\newcommand{\originalchapterWithOption}[1]{% + \PDFSect{Chapter}{#1}\originalchapter{#1}\endPDFSect}% + +\ifthenelse{\boolean{@Access@pdf}}{% + \@ifundefined{addchap}{% es gibt keine Chapter z.B. in Article-Klassen + }{% + \let\originaladdchap\addchap% + \renewcommand{\addchap}{% + \@ifstar{\originaladdchapWithStar}% + {\@ifnextchar[%] + {\originaladdchapWithTwoOption}% + {\originaladdchapWithOption}% + }% + }% + }% +}{} + +\newcommand{\originaladdchapWithStar}[1]{% + \PDFSect{Chapter}{#1} \originaladdchap*{#1} \endPDFSect}% +\newcommand{\originaladdchapWithTwoOption}[2]{% + \PDFSect{Chapter}{#1} \originaladdchap[#1]{#2} \endPDFSect}% +\newcommand{\originaladdchapWithOption}[1]{% + \PDFSect{Chapter}{#1} \originaladdchap{#1} \endPDFSect}% + +\ifthenelse{\boolean{@Access@pdf}}{% + \@ifundefined{set@preamble}{% es gibt keine set@preamble au?erhalb des KOMA-Scripts + }{% + \let\originaluse@preamble\use@preamble% + \renewcommand{\use@preamble}[1]{% + \EveryparConfig{P}{true}% + \originaluse@preamble{#1}% + \EveryparConfig{H}{false}% + }% + }% +}{} + +\ifthenelse{\boolean{@Access@pdf}}{% + \let\originalsection\section% + \renewcommand{\section}{% + \@ifstar{\originalsectionWithStar}% + {\@ifnextchar[%] + {\originalsectionWithTwoOption}% + {\originalsectionWithOption}% + }% + }% +}{} + +\newcommand{\originalsectionWithStar}[1]% + {\PDFSect{Section}{#1} \originalsection*{#1} \endPDFSect}% +\newcommand{\originalsectionWithTwoOption}[2]% + {\PDFSect{Section}{#1} \originalsection[#1]{#2} \endPDFSect}% +\newcommand{\originalsectionWithOption}[1]% + {\PDFSect{Section}{#1} \originalsection{#1} \endPDFSect}% + +\ifthenelse{\boolean{@Access@pdf}}{% + \let\originalsubsection\subsection% + \renewcommand{\subsection}{% + \@ifstar{\originalsubsectionWithStar}% + {\@ifnextchar[%] + {\originalsubsectionWithTwoOption}% + {\originalsubsectionWithOption}% + }% + }% +}{} + +\newcommand{\originalsubsectionWithStar}[1]% + {\PDFSect{Subsection}{#1} \originalsubsection*{#1} \endPDFSect}% +\newcommand{\originalsubsectionWithTwoOption}[2]% + {\PDFSect{Subsection}{#1} \originalsubsection[#1]{#2} \endPDFSect}% +\newcommand{\originalsubsectionWithOption}[1]% + {\PDFSect{Subsection}{#1} \originalsubsection{#1} \endPDFSect}% + +\ifthenelse{\boolean{@Access@pdf}}{% + \let\originalsubsubsection\subsubsection% + \renewcommand{\subsubsection}{% + \@ifstar{\originalsubsubsectionWithStar}% + {\@ifnextchar[%] + {\originalsubsubsectionWithTwoOption}% + {\originalsubsubsectionWithOption}% + }% + }% +}{} + +\newcommand{\originalsubsubsectionWithStar}[1]% + {\PDFSect{Subsubsection}{#1} \originalsubsubsection*{#1} \endPDFSect}% +\newcommand{\originalsubsubsectionWithTwoOption}[2]% + {\PDFSect{Subsubsection}{#1} \originalsubsubsection[#1]{#2} \endPDFSect}% +\newcommand{\originalsubsubsectionWithOption}[1]% + {\PDFSect{Subsubsection}{#1} \originalsubsubsection{#1} \endPDFSect}% + +\newenvironment{PDFParSect}[2]{% + %\ifPDFDetailedStructure% + % \closeUntilPDFStruct{#1}% + % \PDFStructObj{#1}{#2}% + %\fi% + \PDFTextObj% + \EveryparConfig{P}{false}% + \PDFMarkContent% +}% +{% + %\endPDFMarkContent% erst durch everypar + %\endPDFTextObj% +} + +\ifthenelse{\boolean{@Access@pdf}}{% + \let\originalparagraph\paragraph% + \renewcommand{\paragraph}{% + \@ifstar{\originalparagraphWithStar}% + {\@ifnextchar[%] + {\originalparagraphWithTwoOption}% + {\originalparagraphWithOption}% + }% + }% +}{} + +\newcommand{\originalparagraphWithStar}[1]% + {\PDFParSect{Paragraph}{#1} \originalparagraph*{#1} \endPDFParSect}% +\newcommand{\originalparagraphWithTwoOption}[2]% + {\PDFParSect{Paragraph}{#1} \originalparagraph[#1]{#2} \endPDFParSect}% +\newcommand{\originalparagraphWithOption}[1]% + {\PDFParSect{Paragraph}{#1} \originalparagraph{#1} \endPDFParSect}% + +\ifthenelse{\boolean{@Access@pdf}}{% + \let\originalsubparagraph\subparagraph% + \renewcommand{\subparagraph}{% + \@ifstar{\originalsubparagraphWithStar}% + {\@ifnextchar[%] + {\originalsubparagraphWithTwoOption}% + {\originalsubparagraphWithOption}% + }% + }% +}{} + +\newcommand{\originalsubparagraphWithStar}[1]% + {\PDFParSect{Subparagraph}{#1} \originalsubparagraph*{#1} \endPDFParSect}% +\newcommand{\originalsubparagraphWithTwoOption}[2]% + {\PDFParSect{Subparagraph}{#1} \originalsubparagraph[#1]{#2} \endPDFParSect}% +\newcommand{\originalsubparagraphWithOption}[1]% + {\PDFParSect{Subparagraph}{#1} \originalsubparagraph{#1} \endPDFParSect}% + +\ifthenelse{\boolean{@Access@pdf}}{% + \@ifundefined{minisec}{}{% + \let\originalminisec\minisec% + \renewcommand{\minisec}{% + \@ifstar{\originalminisecWithStar}% + {\@ifnextchar[%] + {\originalminisecWithTwoOption}% + {\originalminisecWithOption}% + }% + }% + }% +}{} + +\newcommand{\originalminisecWithStar}[1]% + {\PDFSpezialTextObj{H}\EveryparConfig{H}{false}% + \originalminisec*{#1} \endPDFSpezialTextObj}% +\newcommand{\originalminisecWithTwoOption}[2]% + {\PDFSpezialTextObj{H}\EveryparConfig{H}{false}% + \originalminisec[#1]{#2} \endPDFSpezialTextObj}% +\newcommand{\originalminisecWithOption}[1]% + {\PDFSpezialTextObj{H}\EveryparConfig{H}{false}% + \originalminisec{#1} \endPDFSpezialTextObj}% + + +\ifthenelse{\boolean{@Access@pdf}}{% + \let\originalquote\quote% + \let\originalendquote\endquote% + \renewenvironment*{quote}% + {\PDFSpezialTextObj{Quote}\EveryparConfig{Quote}{false}\originalquote}% + {\endPDFMarkContent\originalendquote\endPDFSpezialTextObj}% + % + \let\originalquotation\quotation% + \let\originalendquotation\endquotation% + \renewenvironment*{quotation}% + {\PDFSpezialTextObj{Quote}\EveryparConfig{Quote}{false}\originalquotation}% + {\endPDFMarkContent\originalendquotation\endPDFSpezialTextObj}% + % + \let\originalverse\verse% + \let\originalendverse\endverse% + \renewenvironment*{verse}% + {\PDFSpezialTextObj{Quote}\EveryparConfig{Quote}{false}\originalverse}% + {\endPDFMarkContent\originalendverse\endPDFSpezialTextObj}% +}{} + +%%begin{verbatim} +%%end{verbatim} +\ifthenelse{\boolean{@Access@pdf}}{% + \let\originalverbatim\@verbatim% + \renewcommand{\@verbatim}{% + %\PDFStructObj{Div}{\empty}% + \PDFSpezialTextObj{Code}% + \originalverbatim% + }% + \let\originalendverbatim\endverbatim% + \renewcommand{\endverbatim}{% + \endPDFMarkContent% + \originalendverbatim% + \endPDFSpezialTextObj% + %\endPDFStructObj% + }% + \expandafter\let\csname endverbatim*\endcsname =\endverbatim% +}{} + +\ifthenelse{\boolean{@Access@pdf}}{% + \@ifpackageloaded{listings}{% + \let\originallstinputlisting\lstinputlisting% + \renewcommand{\lstinputlisting}[2][]{% + \PDFSpezialTextObj{Code}% + \PackageWarning{accessibilityMeta}{Codeinput}% + \originallstinputlisting[#1]{#2}% + \PackageWarning{accessibilityMeta}{codeinput}% + \endPDFMarkContent% + \endPDFSpezialTextObj% + }% + %lst@EndProcessListing + \let\originallstenv@Process\lstenv@Process% + \renewcommand{\lstenv@Process}{% + \PDFSpezialTextObj{Code}% + \PackageWarning{accessibilityMeta}{begin code}% + \originallstenv@Process% + }% + \let\originallstenv@End\lstenv@End% + \renewcommand{\lstenv@End}{% + \originallstenv@End% + \endPDFMarkContent% + \endPDFSpezialTextObj% + \PackageWarning{accessibilityMeta}{end code}% + }% + %lstinline!var i:integer;! + }{}% +}{} + + +\ifthenelse{\boolean{@Access@pdf}}{% + \@ifpackageloaded{thmbox}{% + \PackageWarning{accessibilityMeta}% + {The thmbox-package isn't yet supported.}% + }{}% + \@ifpackageloaded{theorem}{% + \newcommand{\@myendtheorem}{% + \@endtheorem% + \endPDFSpezialTextObj% + }%TODO ungetestet + \let\original@thm\@thm% + \gdef\@thm#1#2{% + \PDFSpezialTextObj{Div}% + \EveryparConfig{H}{true}% + \PDFMarkContent% + \global \expandafter \let \csname end#1\endcsname \@myendtheorem% + \original@thm{#1}{#2}% + }% + }{%without theorem-package + \let\original@begintheorem\@begintheorem% + \renewcommand{\@begintheorem}{% + \PDFSpezialTextObj{Div}% + \EveryparConfig{H}{true}% + \PDFMarkContent% + \EveryparConfig{P}{true}% + \original@begintheorem% + }% + \let\original@opargbegintheorem\@opargbegintheorem% + \renewcommand{\@opargbegintheorem}{% + \PDFSpezialTextObj{Div}% + \EveryparConfig{H}{true}% + \PDFMarkContent% + \EveryparConfig{P}{true}% + \original@opargbegintheorem% + }% + \let\original@endtheorem\@endtheorem% + \renewcommand{\@endtheorem}{% + \original@endtheorem% + \endPDFSpezialTextObj% + }% + }% +}{} + +\newif\ifItemActive \ItemActivefalse% +\newcounter{ListDepth}% + +\newenvironment{PDFList}{% + \ifItemActive \closeItem\fi% + %Liste beginnen + \addtocounter{ListDepth}{1}% + %\PDFStructObj{L}{\empty}% Sonst Fehler bei Zugriffspr?fung AA + \PDFStructObj{L\arabic{ListDepth}}{\empty}% + %\PDFStructObj{L\romannumeral\theListDepth}{\empty}% +}{% + \ifItemActive \closeItem\fi% + %Liste beenden + \endPDFStructObj% + \addtocounter{ListDepth}{-1}% +} + +\newenvironment{PDFListLabel}{% + \ifItemActive \closeItem\fi% + \PDFStructObj{LI}{\empty}% + \global\ItemActivetrue% + \PDFSpezialTextObj{Lbl}% + \EveryparConfig{Lbl}{false}% + \PDFMarkContent% +}{% + \endPDFMarkContent% + \endPDFSpezialTextObj% + \PDFSpezialTextObj{LBody}% + \EveryparConfig{LBody}{false}% + %\PDFMarkContent{LBody}% wird ?ber everypar erledigt +}% + +\newcommand{\closeItem}{% Altes Item abschlie?en + \endPDFMarkContent% + \endPDFSpezialTextObj%{LBody} + \endPDFStructObj% + \global\ItemActivefalse% +} + +\ifthenelse{\boolean{@Access@pdf}}{% + \let\originalitemize\itemize% + \let\originalenditemize\enditemize% + \renewenvironment{itemize}% + {\begin{PDFList}\originalitemize}% + {%\ifItemActive \closeItem\fi% + \originalenditemize\end{PDFList}}% + % + \let\originallabelitemi\labelitemi% + \renewcommand{\labelitemi}{% + \begin{PDFListLabel} \originallabelitemi \end{PDFListLabel}}% + \let\originallabelitemii\labelitemii% + \renewcommand{\labelitemii}{% + \begin{PDFListLabel} \originallabelitemii \end{PDFListLabel}}% + \let\originallabelitemiii\labelitemiii% + \renewcommand{\labelitemiii}{% + \begin{PDFListLabel} \originallabelitemiii \end{PDFListLabel}}% + \let\originallabelitemiv\labelitemiv% + \renewcommand{\labelitemiv}{% + \begin{PDFListLabel} \originallabelitemiv \end{PDFListLabel}}% + % + \let\originalenumerate\enumerate% + \let\originalendenumerate\endenumerate% + \renewenvironment{enumerate}% + {\begin{PDFList}\originalenumerate}% + {%\ifItemActive \closeItem\fi% + \originalendenumerate\end{PDFList}}% + % + \let\originallabelenumi\labelenumi% + \renewcommand{\labelenumi}{% + \begin{PDFListLabel} \originallabelenumi \end{PDFListLabel}}% + \let\originallabelenumii\labelenumii% + \renewcommand{\labelenumii}{% + \begin{PDFListLabel} \originallabelenumii \end{PDFListLabel}}% + \let\originallabelenumiii\labelenumiii% + \renewcommand{\labelenumiii}{% + \begin{PDFListLabel} \originallabelenumiii \end{PDFListLabel}}% + \let\originallabelenumiv\labelenumiv% + \renewcommand{\labelenumiv}{% + \begin{PDFListLabel} \originallabelenumiv \end{PDFListLabel}}% + % + \let\originaldescription\description% + \let\originalenddescription\enddescription% + \renewenvironment{description}% + {\begin{PDFList}\originaldescription}% + {%\ifItemActive \closeItem\fi% + \originalenddescription\end{PDFList}}% + % + \let\originaldescriptionlabel\descriptionlabel% aus scrrept + \renewcommand{\descriptionlabel}[1]{% + \begin{PDFListLabel} \originaldescriptionlabel{#1} \end{PDFListLabel}}% +}{} + +\ifthenelse{\boolean{@Access@pdf}}{% + \let\originalFormulaBegin\[% + \renewcommand*{\[}{% + \PDFSpezialTextObj{Formula} + \EveryparConfig{Formula}{false}%% + \originalFormulaBegin% + }% + \let\originalFormulaEnd\]% + \renewcommand*{\]}{% + \endPDFMarkContent + \originalFormulaEnd% + \endPDFSpezialTextObj% + }% + \let\originalequation\equation% + \let\originalendequation\endequation% + \renewenvironment{equation}% + {\PDFSpezialTextObj{Formula}\EveryparConfig{Formula}{false}\originalequation}% + {\endPDFMarkContent\originalendequation\endPDFSpezialTextObj}% + % + \let\originaleqnarray\eqnarray% + \let\originalendeqnarray\endeqnarray% + \renewenvironment{eqnarray}% + {%\def&{\originalamp}% --> das bringt den Fehler inaccessibile + \PackageWarning{accessibilty}{Die eqnarray-Umgebung sollte nicht mehr % + verwendet werden, sie gilt als veraltet. (vgl. Autorenanleitung).}% + \PDFSpezialTextObj{Formula}\EveryparConfig{Formula}{false}\originaleqnarray}% + {\endPDFMarkContent\originalendeqnarray\endPDFSpezialTextObj}% +}{}% + +\ifthenelse{\boolean{@Access@pdf}}{% + \let\original@float\@float% + \let\originalend@float\end@float% + \renewenvironment*{@float}[1]{% + \PDFStructObj{Float}{\csname #1name\endcsname}% + %\global\numberingparsfalse% + \original@float{#1}% + }{% + \originalend@float% + \endPDFMarkContent% + %\global\numberingparstrue% + \endPDFStructObj% + }% +}{} + +\ifthenelse{\boolean{@Access@pdf}}{% + \let\original@@makecaption\@makecaption% +% \renewcommand{\@makecaption}[3]{% Wieso Definition mit drei Argumenten???? nur zwei geht mit listings + \renewcommand{\@makecaption}[2]{% + \global\numberingparsfalse% + \PDFSpezialTextObj{Caption}% + \EveryparConfig{Caption}{false}% + \PDFMarkContent% + \PackageWarning{accessibilityMeta}{begin makecaption}% +% \original@@makecaption{#1}{#2}{#3}% + \original@@makecaption{#1}{#2}%{#3}% + \PackageWarning{accessibilityMeta}{end makecaption}% + \endPDFMarkContent% + \endPDFSpezialTextObj%{Caption}% + \global\numberingparstrue% + }% +}{} + +\newif\ifTableHeadCell \global\TableHeadCellfalse% +\newif\ifTableLineActive \global\TableLineActivefalse% +\newif\ifTableCellActive \global\TableCellActivefalse% +\newif\ifAfterKill \global\AfterKillfalse% + +\newenvironment{PDFTable}{% + \global\numberingparsfalse% + \PDFStructObj{Table}{\empty}% + \PDFStructObj{TBody}{\empty}% + \global\TableLineActivefalse% + \global\TableCellActivefalse% +}{% + \ifTableLineActive\endPDFTableLine\fi% + \endPDFStructObj%{TBody}{\empty}% + \endPDFStructObj%{Table}{\empty}% + \global\numberingparstrue% +}% + +\newenvironment{PDFTableLine}{% + \ifTableCellActive\endPDFTableCell\fi% + \ifTableLineActive\endPDFTableLine\fi% + \global\TableLineActivetrue% + \PDFStructObj{TR}{\empty}% +}{% + \ifTableLineActive% + \endPDFStructObj% + \global\TableLineActivefalse% + \fi% +}% + +\newenvironment{PDFTableCell}{% + \ifTableCellActive\endPDFTableCell\fi% + \global\TableCellActivetrue% + \PDFSpezialTextObj{TD}% + \EveryparConfig{TD}{false}% + \PDFMarkContent% +}{% + \ifTableCellActive% + \endPDFMarkContent% + \ifTableHeadCell% + \xdef\TextType{TH}% + \global\TableHeadCellfalse% + \fi% + \endPDFSpezialTextObj%{TD}% + \global\TableCellActivefalse% + \fi% +}% + +\def\originalamp{&}% +\catcode`\&=\active% +\def&{\originalamp}% + +\ifthenelse{\boolean{@Access@pdf}}{% + \let\originaltabular\tabular% + \let\originalendtabular\endtabular% + \renewenvironment*{tabular}{% + \def&{\endPDFTableCell\originalamp\PDFTableCell}% + \PDFTable% + \PDFTableLine% + \PDFTableCell% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \originaltabular% + }{% + %\pdfliteral{EMC}% + \originalendtabular% + \def&{\originalamp}% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifTableCellActive\endPDFTableCell\fi% + \ifTableLineActive\endPDFTableLine\fi% + \endPDFTable% + }% + \@ifpackageloaded{array}{% + \let\originalaryend\@arraycr% + \renewcommand*{\@arraycr}{\endPDFTableCell% + \endPDFTableLine\PDFTableLine\PDFTableCell\originalaryend}% + }{% wenn kein anderes Tabellen-Package + \let\originaltabend\@tabularcr% + \renewcommand*{\@tabularcr}{\endPDFTableCell% + \endPDFTableLine\PDFTableLine\PDFTableCell\originaltabend}% + }% + % \@ifpackageloaded{tabularx}{% + % \PackageWarning{accessibity}% + % {The tabularx-package isn't yet fully supported.% + % You can use the tabular-environemt but not the tabularx.} + % }{}% + % \@ifpackageloaded{longtable}{% + % \PackageWarning{accessibity}% + % {The longtable-package isn't yet supported.} + % %\tabularnewline \endhead\endfirsthead\endfoot\endlastfoor + % }{}% +}{}% + +\ifthenelse{\boolean{@Access@pdf}}{% + \let\originaltabbing\tabbing% + \let\originalendtabbing\endtabbing% + \renewenvironment*{tabbing}{% + \PDFTable% + \let\originalkill\kill% + \renewcommand{\kill}{\global\AfterKilltrue% + \originalkill%% + }% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \originaltabbing% + }{% + \originalendtabbing% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \endPDFTable% + }% + \let\original@startfield\@startfield% + \renewcommand{\@startfield}{% + \original@startfield \ifAfterKill\PDFTableCell\fi% + }% + \let\original@stopfield\@stopfield% + \renewcommand{\@stopfield}{% + \ifAfterKill\endPDFTableCell\fi \original@stopfield% + }% + \let\original@startline\@startline% + \renewcommand{\@startline}{% + \ifAfterKill\PDFTableLine\fi \original@startline% + }% + \let\original@stopline\@stopline% + \renewcommand{\@stopline}{% + \original@stopline \ifAfterKill\endPDFTableLine\fi% + }% +}{} + + +\ifthenelse{\boolean{@Access@pdf}}{% + \let\originalemph\emph% + \renewcommand{\emph}[1]{% + \begin{PDFInlineObjInText}{Span}% + \originalemph{#1}% + \end{PDFInlineObjInText}% + }% +}{} + +\ifthenelse{\boolean{@Access@pdf}}{% + \@ifpackageloaded{hyperref}{% + \let\original@setref\@setref% + \renewcommand{\@setref}[3]{% + \begin{PDFInlineObjInText}{Reference}% + \original@setref{#1}{#2}{#3}% + \end{PDFInlineObjInText}}% + %Linkziele% + %\let\originalhyper@anchorstart\hyper@anchorstart% + %\renewcommand{\hyper@anchorstart}{\pdfliteral{/Span <> BDC EMC}\originalhyper@anchorstart}% + %\let\originalhyper@anchorend\hyper@anchorend% + %\renewcommand{\hyper@anchorend}{\originalhyper@anchorend\pdfliteral{/Span <> BDC EMC}}% + % Eintr?ge im TOC, LOF, LOT + %\let\originalhyper@linkstart\hyper@linkstart% + %\renewcommand{\hyper@linkstart}{% + % \begin{PDFInlineObjInText}{Reference}% + % \originalhyper@linkstart}% + %\let\originalhyper@linkend\hyper@linkend% + %\renewcommand{\hyper@linkend}{% + % \originalhyper@linkend% + % \end{PDFInlineObjInText}}% + %\useacronym --> Kurzform, Glossarseitezahlen, indexseitenzahlen, Glossareintr?ge, Hyperlink + \let\originalhyperlink\hyperlink% + \renewcommand*{\hyperlink}[2]{% + \ifIndexItemActive\else\begin{PDFInlineObjInText}{Reference}\fi% + %Wenn Index -- folgender Aufruf + % hyperlink{page.\the\toks@}{\the\toks@}% + %Bringt Fehler + \originalhyperlink{#1}{#2}%\relax% + \ifIndexItemActive\else\end{PDFInlineObjInText}\fi% + }% + %href pdfobleme mit pdf 1.3 \@urlbordercolor nicht definiert + \let\originalhyper@linkurl\hyper@linkurl% + \renewcommand{\hyper@linkurl}[2]{% + \begin{PDFInlineObjInText}{Link}% + \originalhyper@linkurl{#1}{#2}% + \end{PDFInlineObjInText}}% + % + \let\originalhyper@linkfile\hyper@linkfile% + \renewcommand{\hyper@linkfile}[3]{% + \begin{PDFInlineObjInText}{Link}% + \originalhyper@linkfile{#1}{#2}{#3}% + \end{PDFInlineObjInText}}% + %Seitenzahlen in Index, anders da anschlie?end keine Texterkennung n?tig. + %eigentlich ?ber hyperlink m?glich + \let\originalhyperpage\hyperpage% + \renewcommand{\hyperpage}[1]{% + \EveryparConfig{Reference}{true}% + \PDFMarkContent% kein everypar + \originalhyperpage{#1}% + \endPDFMarkContent}% + % URL + \let\originalnolinkurl\nolinkurl% + \renewcommand{\nolinkurl}[1]{% + \begin{PDFInlineObjInText}{Link}% + \originalnolinkurl{#1}% + \end{PDFInlineObjInText}}% + }{% ohne hyperref + \let\originalref\ref% + \renewcommand{\ref}[1]{% + \begin{PDFInlineObjInText}{Reference}% + \originalref{#1}% + \end{PDFInlineObjInText}}% + % + \let\originalpageref\pageref% + \renewcommand{\pageref}[1]{% + \begin{PDFInlineObjInText}{Reference}% + \originalpageref{#1}% + \end{PDFInlineObjInText}}% + }% +}{} +\ifthenelse{\boolean{@Access@pdf}}{% + \let\originalcite\cite% + \renewcommand{\cite}[2][__empty__]{% #1 Name des Eintages + \begin{PDFInlineObjInText}{Reference}% + \ifthenelse{\equal{#1}{__empty__}}% + {\originalcite{#2}}% + {\originalcite[#1]{#2}}% + \end{PDFInlineObjInText}% + }% +}{} + +\ifthenelse{\boolean{@Access@pdf}}{% + \let\originalverb\verb% + \renewcommand{\verb}{% + \begin{PDFInlineObjInText}{Code}% + \originalverb% + }% + \let\originalverb@egroup\verb@egroup% + \renewcommand{\verb@egroup}{% + \originalverb@egroup% + \end{PDFInlineObjInText}% + }% +}{} + + \let\originalFormulaTextBegin\(% + \renewcommand*{\(}{% + \PDFInlineObjInText{Formula}% + \originalFormulaTextBegin% + }% + \let\originalFormulaTextEnd\)% + \renewcommand*{\)}{% + \originalFormulaTextEnd% + \endPDFInlineObjInText% + }% + + +\newcounter{PDFFootnotemark}% +\newcounter{PDFFootnotetext}% +\newcounter{ObjNum} + +\newenvironment{PDFFootnote}{% + \global\numberingparsfalse% + \pdfobj reserveobjnum% + \setcounter{PDFFootnotemark}{\pdflastobj}% + \pdfobj reserveobjnum% + \setcounter{PDFFootnotetext}{\pdflastobj}% +}{% + %\EveryparConfig{\lastEveryparType}{\HelpBool}% + \global\numberingparstrue% + \EveryparConfig{\lastEveryparType}{false}% + \PDFMarkContent% +} + +\newenvironment{PDFFootnoteReference}{% + \xdef\HelpBool{\InlineObj}% + \EveryparConfig{Reference}{obj}% + \setcounter{ObjNum}{\theTaggedObj}% + \PDFMarkContent% +}{% + \endPDFMarkContent% + \writeComplexTextObj{\thePDFFootnotemark}% + {\theObjNum \space \thePDFFootnotetext \space 0 R}% + {/Reference}{\theTextObjNum}{Page}% + \xdef\TextArray{\TextArray \theObjHelp\space 0 R \space}% +} + +\newenvironment{PDFFootnoteText}{% + \EveryparConfig{Note}{obj}% + \setcounter{ObjNum}{\theTaggedObj}% + \PDFMarkContent% +}{% + \endPDFMarkContent% + \writeComplexTextObj% + {\thePDFFootnotetext}{\theObjNum}% + {/Footnote}{\thePDFFootnotemark}{Page}% +} + +\ifthenelse{\boolean{@Access@pdf}}{% + \let\original@footnotemark\@footnotemark% + %Fu?notenreferenz im Text + \renewcommand{\@footnotemark}{% + \begin{PDFFootnoteReference}% + \original@footnotemark% + \end{PDFFootnoteReference}% + }% + \let\original@makefntext\@makefntext% + %Fu?notentext am Seitenende + \renewcommand{\@makefntext}[1]{% + \begin{PDFFootnoteText}% + \original@makefntext{#1}% + \end{PDFFootnoteText}% + }% + \let\originalfootnote\footnote% + \def\footnote{\@ifnextchar[{\@@xxfootnote}{\@@xfootnote}}% + \def\@@xxfootnote[#1]#2{% + \begin{PDFFootnote}% + \originalfootnote[#1]{#2}% + \end{PDFFootnote}% + }% + \def\@@xfootnote#1{% + \begin{PDFFootnote}% + \originalfootnote{#1}% + \end{PDFFootnote}% + }% +}{} + +\ifthenelse{\boolean{@Access@pdf}}{% + \let\original@starttoc\@starttoc% + \renewcommand{\@starttoc}[1]{% + \ifthenelse{\equal{#1}{toc}}{% Table of content + \PDFSpezialTextObj{TOC}\EveryparConfig{TOCI}{true}% + }{}% + \ifthenelse{\equal{#1}{lot}}{% List of Tables + \PDFSpezialTextObj{TOT}\EveryparConfig{TOTI}{true}% + }{}% + \ifthenelse{\equal{#1}{lof}}{% List of figures + \PDFSpezialTextObj{TOF}\EveryparConfig{TOFI}{true}% + }{}% + %\ifthenelse{\equal{#1}{brf}}{}}{}% Bibliography + \original@starttoc{#1}% + \ifthenelse{\equal{#1}{toc} \or \equal{#1}{lot} \or \equal{#1}{lof}}{% + \endPDFMarkContent% + \endPDFSpezialTextObj% + }{}% + }% +}{} + +\ifthenelse{\boolean{@Access@pdf}}{% + \let\originalcontentsline\contentsline + \@ifpackageloaded{hyperref}{%then: Mit hyperref + \renewcommand{\contentsline}[4]{% + \originalcontentsline{#1}{#2}{#3\protect\endPDFMarkContent}{#4}% + }% + }{%else: ohne Hyperref + \renewcommand{\contentsline}[3]{% + \originalcontentsline{#1}{#2}{#3\protect\endPDFMarkContent}% + }% + }% +}{} + +\newif\ifBibItemActive \BibItemActivefalse% +\ifthenelse{\boolean{@Access@pdf}}{% + \let\originalthebibliography\thebibliography% + \let\originalendthebibliography\endthebibliography% + \renewenvironment{thebibliography}{% + \originalthebibliography% + %\PDFStructObj{Bibliography}% geht hier nicht in bibitem realisiert + }{% + \originalendthebibliography% + \endPDFMarkContent% + \endPDFSpezialTextObj%{\LBody} + \endPDFStructObj%{\BibItem} + \global\BibItemActivefalse% + \endPDFStructObj%{Bibliography} + }% +}{} + +\ifthenelse{\boolean{@Access@pdf}}{% + \let\originalbibitem\bibitem% + \renewcommand{\bibitem}[2][__empty__]{% #1 [Label] #2 Eintrag + \ifBibItemActive% schon welche + \endPDFMarkContent% + \endPDFSpezialTextObj%{\LBody} + \endPDFStructObj%{\BibItem} + \global\BibItemActivefalse% + \else% erstes Item + \PDFStructObj{Bibliography}{\empty}% + \fi% + \global\BibItemActivetrue% + \PDFStructObj{BibItem}{\empty}% + \PDFSpezialTextObj{Lbl}% + \EveryparConfig{Lbl}{false}% + \PDFMarkContent% + \ifthenelse{\equal{#1}{__empty__}}% + {\originalbibitem{#2}}% + {\originalbibitem[#1]{#2}}% + %\endPDFMarkContent% Zu fr?h, Text wird erst mit everypar gestetzt + \endPDFSpezialTextObj% + \PDFSpezialTextObj{LBody}% + \EveryparConfig{LBody}{false}% + %\PDFMarkContent{LBody}% wird ?ber everypar erledigt + }% +}{} +\newif\ifIndexItemActive \IndexItemActivefalse% + +\ifthenelse{\boolean{@Access@pdf}}{% + \let\originaltheindex\theindex% + \let\originalendtheindex\endtheindex% + \renewenvironment{theindex}{% + \expandafter\originaltheindex\relax% + }{% + \endPDFMarkContent% + \originalendtheindex% + \ifIndexItemActive% + \endPDFSpezialTextObj% + \global\IndexItemActivefalse% + \fi + \endPDFStructObj%{Index}% + }% +}{} + +\ifthenelse{\boolean{@Access@pdf}}{% + \let\original@idxitem\@idxitem% + \renewcommand*\@idxitem{% + \ifIndexItemActive% schon welche + \endPDFMarkContent% + \endPDFSpezialTextObj% + \global\IndexItemActivefalse% + \else% erstes Item + \PDFStructObj{Index}% + \fi% + \global\IndexItemActivetrue% + \PDFSpezialTextObj{IndexEntry}% + \EveryparConfig{IndexEntry}{false}% + \original@idxitem% + }% +}{} + +\newenvironment*{PDFPageArtefakt}{% + \pdfliteral{/Artifact <> BDC}% +}{% + \pdfliteral{EMC}% +} + +\ifthenelse{\boolean{@Access@pdf}}{% + \let\original@thehead\@thehead% + \renewcommand*{\@thehead}{% + \ifthenelse{\equal{\original@thehead}{\empty}}{}{% + \begin{PDFPageArtefakt}% + \original@thehead% + \end{PDFPageArtefakt}% + }% + }% + \let\original@thefoot\@thefoot% + \renewcommand*{\@thefoot}{% + \ifthenelse{\equal{\original@thefoot}{\empty}}{}{% + \begin{PDFPageArtefakt}% + \original@thefoot% + \end{PDFPageArtefakt}% + }% + }% +}{} +\newenvironment*{PDFLayoutArtefakt}{% + \numberingparsfalse% + \pdfliteral{/Artifact <> BDC}% +}{% + \pdfliteral{EMC}% + \numberingparstrue% +} + +\ifthenelse{\boolean{@Access@pdf}}{% + \let\originaldotfill\dotfill% + \renewcommand*{\dotfill}{% + \begin{PDFLayoutArtefakt}% + \originaldotfill% + \end{PDFLayoutArtefakt}% + }% + \let\originalfootnoterule\footnoterule% + \renewcommand*\footnoterule{% + \let\hrule\originalhrule% + \begin{PDFLayoutArtefakt}% + \originalfootnoterule% + \end{PDFLayoutArtefakt}% + \let\originalhrule\hrule% + }% + %\vrule height1ex depth0pt width1ex + %\hrule height1ex depth0pt width1ex + % + %hrulefill, hline cline, toprule, midrule, bottomrule, cmidrule? greifen auf hrule zu + %Klappt nicht immer mit Argument?bergabe + \let\originalhrule\hrule% + \def\hrule#1#2{% + \ifthenelse{\equal{#2}{\z@}}{}{\begin{PDFLayoutArtefakt}}% + \originalhrule#1#2% + \ifthenelse{\equal{#2}{\z@}}{}{\end{PDFLayoutArtefakt}}% + }% + + %vline (2), @arrayrule(2?) greift auf vrule zu + %Klappt nicht mit Argument?bergabe + %\let\originalvrule\vrule% + %\def\vrule#1#2{% + % \begin{PDFLayoutArtefakt}% + % \originalvrule#1#2% + % \end{PDFLayoutArtefakt}% +}{} +\ifthenelse{\boolean{@Access@pdf}}{% + \def\@dottedtocline#1#2#3#4#5{% + \ifnum #1>\c@tocdepth \else% + \vskip \z@ \@plus.2\p@% + {\leftskip #2\relax \rightskip \@tocrmarg % + \parfillskip -\rightskip% + \parindent #2\relax\@afterindenttrue% + \interlinepenalty\@M% + \leavevmode% + \@tempdima #3\relax% + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip% + {#4}\nobreak% + \begin{PDFLayoutArtefakt}% + \leaders\hbox{$\m@th \mkern % + \@dotsep mu\hbox{.}\mkern \@dotsep mu$}\hfill% + \end{PDFLayoutArtefakt}% + \nobreak% + \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}% + \par}% + \fi% + }% +}{} + +\ifthenelse{\boolean{@Access@pdf}}{% + \let\originalmaketitle\maketitle% + \renewcommand{\maketitle}{% + \PDFStructObj{Div}{Titlepage}% + \EveryparConfig{P}{false}% + % + \originalmaketitle% + \endPDFMarkContent% + \endPDFStructObj% + }% +}{}% +\ifthenelse{\boolean{@Access@pdf}}{% + \@ifpackageloaded{graphicx}{% + \let\originalincludegraphics\includegraphics% + \renewcommand{\includegraphics}[2][__empty__]{% + \global\numberingparsfalse% + % \PDFInlineObjInText{Figure}% + \PDFSpezialTextObj{Figure}% + \EveryparConfig{Figure}{false}% + \PDFMarkContent% + \ifthenelse{\equal{#1}{__empty__}}% + {\originalincludegraphics{#2}}% + {\originalincludegraphics[#1]{#2}}% + % \endPDFInlineObjInText% + \endPDFMarkContent% + \endPDFSpezialTextObj%{Figure}% + \global\numberingparstrue% + }% + }{}% +}{} + +\ifthenelse{\boolean{@Access@pdf}}{% + \let\originalpicture\picture% + \let\originalendpicture\endpicture% + \renewenvironment{picture}{% + \global\numberingparsfalse% + \PDFSpezialTextObj{Figure}% + \EveryparConfig{Figure}{false}% + \PDFMarkContent% + \originalpicture% + }{% + \originalendpicture% + \endPDFMarkContent% + \endPDFSpezialTextObj%{Figure}% + \global\numberingparstrue% + }% +}{} + + +\newcommand{\convertLanguageInCode}[1]{% + \gdef\LanguageCode{}% + % + \ifthenelse{\equal{#1}{\string danish}}{\gdef\LanguageCode{/Lang(DA)}}{}% + \ifthenelse{\equal{#1}{\string german}}{\gdef\LanguageCode{/Lang(DE)}}{}% + \ifthenelse{\equal{#1}{\string ngerman}}{\gdef\LanguageCode{/Lang(DE)}}{}% + \ifthenelse{\equal{#1}{\string germanb}}{\gdef\LanguageCode{/Lang(DE)}}{}% + \ifthenelse{\equal{#1}{\string austrian}}{\gdef\LanguageCode{/Lang(DE)}}{}% + \ifthenelse{\equal{#1}{\string naustrian}}{\gdef\LanguageCode{/Lang(DE)}}{}% + \ifthenelse{\equal{#1}{\string english}}{\gdef\LanguageCode{/Lang(EN)}}{}% + \ifthenelse{\equal{#1}{\string USenglish}}{\gdef\LanguageCode{/Lang(EN-US)}}{}% + \ifthenelse{\equal{#1}{\string american}}{\gdef\LanguageCode{/Lang(EN-US)}}{}% + \ifthenelse{\equal{#1}{\string UKenglish}}{\gdef\LanguageCode{/Lang(EN-GB)}}{}% + \ifthenelse{\equal{#1}{\string british}}{\gdef\LanguageCode{/Lang(EN-GB)}}{}% + \ifthenelse{\equal{#1}{\string canadian}}{\gdef\LanguageCode{/Lang(EN)}}{}% + \ifthenelse{\equal{#1}{\string australian}}{\gdef\LanguageCode{/Lang(EN)}}{}% + \ifthenelse{\equal{#1}{\string newzealand}}{\gdef\LanguageCode{/Lang(EN)}}{}% + \ifthenelse{\equal{#1}{\string finnish}}{\gdef\LanguageCode{/Lang(FI)}}{}% + \ifthenelse{\equal{#1}{\string french}}{\gdef\LanguageCode{/Lang(FR)}}{}% + \ifthenelse{\equal{#1}{\string francais}}{\gdef\LanguageCode{/Lang(FR)}}{}% + \ifthenelse{\equal{#1}{\string canadien}}{\gdef\LanguageCode{/Lang(FR)}}{}% + \ifthenelse{\equal{#1}{\string acadian}}{\gdef\LanguageCode{/Lang(FR)}}{}% + \ifthenelse{\equal{#1}{\string italian}}{\gdef\LanguageCode{/Lang(IT)}}{}% + \ifthenelse{\equal{#1}{\string norsk}}{\gdef\LanguageCode{/Lang(NO)}}{}% + \ifthenelse{\equal{#1}{\string nynorsk}}{\gdef\LanguageCode{/Lang(NO)}}{}% + \ifthenelse{\equal{#1}{\string portuges}}{\gdef\LanguageCode{/Lang(PT)}}{}% + \ifthenelse{\equal{#1}{\string portuguese}}{\gdef\LanguageCode{/Lang(PT)}}{}% + \ifthenelse{\equal{#1}{\string brazilian}}{\gdef\LanguageCode{/Lang(PT-BR)}}{}% + \ifthenelse{\equal{#1}{\string brazil}}{\gdef\LanguageCode{/Lang(PT-BR)}}{}% + \ifthenelse{\equal{#1}{\string swedish}}{\gdef\LanguageCode{/Lang(SV)}}{}% + \ifthenelse{\equal{#1}{\string spanish}}{\gdef\LanguageCode{/Lang(ES)}}{}% + \ifthenelse{\equal{#1}{\string japanese}}{\gdef\LanguageCode{/Lang (JA)}}{}% + \ifthenelse{\equal{#1}{\string dutch}}{\gdef\LanguageCode{/Lang(NL)}}{}% + % + % No support in babel: + % Chinese /Lang(ZH) + % Korean /Lang (KO) + % + \ifthenelse{\equal{\LanguageCode}{}}{% + % Comparing \languagename is tricky (see babel documentation for \languagename for details), + % so give the user a hint here to use the babel package to fix the error. + \PackageWarning{accessibilityMeta}{You may need to use the babel package or the chosen language % + (#1) is not supported by Adobe Acrobat Reader 6.}% + }{}% +} + +\ifthenelse{\boolean{@Access@pdf}}{% + \AtBeginDocument{% + \gdef\DocumentLanguage{\languagename}% + \gdef\ActualLanguage{\languagename}% + \convertLanguageInCode{\languagename}% + \pdfcatalog{% Catalog dictionary of PDF output. + \LanguageCode% Setzt die Sprache + }% + }% +}{} + +\newcommand{\recognizeLanguageChange}[1]{% + \ifthenelse{\equal{#1}{\ActualLanguage}}{% + %keine ?nderung zu vorher + }{% + \gdef\ActualLanguage{#1}% + \convertLanguageInCode{\languagename}}% + \ifthenelse{\equal{#1}{\DocumentLanguage}}{% + \global\LanguageDifffalse% + }{% + \global\LanguageDifftrue% + }% +} +\ifthenelse{\boolean{@Access@pdf}}{% + \@ifpackageloaded{babel}{% + \let\originalselectlanguage\selectlanguage% + \renewcommand{\selectlanguage}[1]{% + \originalselectlanguage{#1}% + \recognizeLanguageChange{#1}% + }% + \let\originalotherlanguage\otherlanguage% + \let\originalendotherlanguage\otherlanguage% + \long\def\otherlanguage#1{% + \csname selectlanguage \endcsname{#1}% + \ignorespaces% + \recognizeLanguageChange{#1}% + }% + \long\def\endotherlanguage{% + \originalTeX% + \global\@ignoretrue\ignorespaces% + \recognizeLanguageChange{\languagename}% + }% + \let\originalforeignlanguage\foreignlanguage% + \renewcommand{\foreignlanguage}[2]{% + \convertLanguageInCode{\string #1}% + \pdfliteral{/Span <<\LanguageCode>> BDC}% + \originalforeignlanguage{#1}{#2}% + \pdfliteral{EMC}% + \convertLanguageInCode{\languagename}% + }% + }{}% +}{} + +\ifthenelse{\boolean{@Access@pdf}}{% + \@ifpackageloaded{glossary}{% + \let\originalnewacronym\newacronym% + \renewcommand{\newacronym}[4][]{% + %%%%% Originaldefinition +\ifthenelse{\equal{#1}{}}{\renewcommand\@acrnmcmd{#2}}{% +\renewcommand\@acrnmcmd{#1}}% + \xdef\expansion{#3}% +\@ifundefined{\@acrnmcmd}{% +\expandafter\newcommand\csname\@acrnmcmd short\endcsname{% +\protect\pdfliteral{/Span <> BDC}% +#2% +\protect\pdfliteral{EMC}% +\protect\glsxspace}% +\expandafter\newcommand\csname\@acrnmcmd @nx@short\endcsname{% +\protect\pdfliteral{/Span <> BDC}% +#2% +\protect\pdfliteral{EMC}}% +\expandafter\newcommand\csname\@acrnmcmd long\endcsname{% +#3\protect\glsxspace} +\expandafter\newcommand\csname\@acrnmcmd @nx@long\endcsname{#3} +\def\@acrn@entry{#4}% +{% +\expandafter\@gls@getdescr\expandafter{\@acrn@entry}% +\let\glodesc\@glo@desc% +\def\glolong{#3}% +\@onelevel@sanitize\glolong +\def\gloshort{\noexpand\acronymfont{#2}}% +\@onelevel@sanitize\gloshort +\expandafter\protected@xdef\expandafter\@acrnamefmt{\@acronymnamefmt} +\expandafter\protected@xdef\expandafter\@acrdesc{\@acronymdescfmt} +}% +\@acr@addtolist{\@acrnmcmd} +\@glo@tb=\expandafter{\@acrn@entry}% +\protected@edef\@acr@glsentry{name={\@acrnamefmt},% +format=glsnumformat,sort={\@acrnmcmd},\the\@glo@tb,% +description={\@acrdesc}}% +\@glo@tb=\expandafter{\@acr@glsentry}% +\newboolean{\@acrnmcmd first}\setboolean{\@acrnmcmd first}{true} +\expandafter\protected@edef\csname \@acrnmcmd\endcsname{% +\noexpand\@ifstar{\csname @s@\@acrnmcmd\endcsname}{% +\csname @\@acrnmcmd\endcsname}} +\ifglshyperacronym % hyperlinks +\expandafter\protected@edef\csname @\@acrnmcmd\endcsname{% +\noexpand\ifthenelse{\noexpand\boolean{\@acrnmcmd first}}{% +\csname\@acrnmcmd @nx@long\endcsname\noexpand\@acrnmins\ +(\noexpand\xacronym{\the\@glo@tb}{% +\noexpand\acronymfont{\csname\@acrnmcmd @nx@short\endcsname}% +})\noexpand\unsetacronym{\@acrnmcmd}% +}{\noexpand\xacronym{\the\@glo@tb}{% +\noexpand\acronymfont{\csname\@acrnmcmd @nx@short\endcsname}% +\noexpand\@acrnmins}}\noexpand\glsxspace} +\expandafter\protected@edef\csname @s@\@acrnmcmd\endcsname{% +\noexpand\ifthenelse{\noexpand\boolean{\@acrnmcmd first}}{% +\noexpand\expandafter\noexpand\MakeUppercase +\csname\@acrnmcmd @nx@long\endcsname\noexpand\@acrnmins\ +(\noexpand\xacronym{\the\@glo@tb}{% +\noexpand\acronymfont{\csname\@acrnmcmd @nx@short\endcsname}% +})% +\noexpand\unsetacronym{\@acrnmcmd}}{% +\noexpand\xacronym{\the\@glo@tb}{% +\noexpand\acronymfont{\noexpand\expandafter\noexpand\MakeUppercase +\csname\@acrnmcmd @nx@short\endcsname}% +\noexpand\@acrnmins}}\noexpand\glsxspace} +\else % no hyperlinks +\expandafter\protected@edef\csname @\@acrnmcmd\endcsname{% +\noexpand\ifthenelse{\noexpand\boolean{\@acrnmcmd first}}{% +\csname\@acrnmcmd @nx@long\endcsname\noexpand\@acrnmins\ +(\noexpand\acronym{\the\@glo@tb}{% +\noexpand\acronymfont{\csname\@acrnmcmd @nx@short\endcsname}% +})\noexpand\unsetacronym{\@acrnmcmd}% +}{\noexpand\acronym{\the\@glo@tb}{% +\noexpand\acronymfont{\csname\@acrnmcmd @nx@short\endcsname}% +\noexpand\@acrnmins}}% +\noexpand\glsxspace} +\expandafter\protected@edef\csname @s@\@acrnmcmd\endcsname{% +\noexpand\ifthenelse{\noexpand\boolean{\@acrnmcmd first}}{% +\noexpand\expandafter +\noexpand\MakeUppercase +\csname\@acrnmcmd @nx@long\endcsname\noexpand\@acrnmins\ +(\noexpand\acronym{\the\@glo@tb}{% +\noexpand\acronymfont{\csname\@acrnmcmd @nx@short\endcsname}% +})% +\noexpand\unsetacronym{\@acrnmcmd}}{% +\noexpand\acronym{\the\@glo@tb}{% +\noexpand\acronymfont{\noexpand\expandafter\noexpand\MakeUppercase +\csname\@acrnmcmd @nx@short\endcsname}% +\noexpand\@acrnmins}}\noexpand\glsxspace} +\fi +}{% +\PackageError{glossary}{Command '\expandafter\string +\csname\@acrnmcmd\endcsname' already defined}{% +The command name specified by \string\newacronym already exists.}}} + %%%%% Originaldefinition + }{}% +}{} + + +% The count1to package confuses hyperref (see hyperref README), so fix \theH<...>: +\@ifpackageloaded{hyperref}{% + \AtBeginDocument{% + \ifthenelse{\isundefined{\theHchapter}}{\newcommand{\theHchapter}{0}}{}% + \renewcommand*{\theHsection}{\theHchapter.\arabic{section}}% + \renewcommand*{\theHsubsection}{\theHsection.\arabic{subsection}}% + \renewcommand*{\theHsubsubsection}{\theHsubsection.\arabic{subsubsection}}% + \renewcommand*{\theHparagraph}{\theHsubsubsection.\arabic{paragraph}}% + \renewcommand*{\theHsubparagraph}{\theHparagraph.\arabic{subparagraph}}% + }% +}% + +\endinput +%% +%% End of file `accessibilityMeta.sty'. From b2eb145ded682f625d8a1e127e46178405f03dbb Mon Sep 17 00:00:00 2001 From: AntonObersteiner Date: Tue, 27 Jun 2023 11:18:52 +0200 Subject: [PATCH 12/19] remove duplicate vote-two-thirds --- protokoll/fsrprotokoll.cls | 65 -------------------------------------- 1 file changed, 65 deletions(-) diff --git a/protokoll/fsrprotokoll.cls b/protokoll/fsrprotokoll.cls index 8987843..c07e22a 100644 --- a/protokoll/fsrprotokoll.cls +++ b/protokoll/fsrprotokoll.cls @@ -215,71 +215,6 @@ \end{minipage}\end{lrbox}\fbox{\usebox{\mybox}} } -\newenvironment{vote-two-thirds} {% - \immediate\write\exportdata{-} - \begin{lrbox}{\mybox}\begin{minipage}{.985\textwidth} - \newcommand*{\voteNumber}[1]{% - %see section VOTENUMBER at the end - \ifthenelse{\equal{##1}{}}{}{% else (argument is not empty) - \setcounter{votenumber}{##1}% - }% - \immediate\write\exportdata{ decision_id: "\the\year/\thevotenumber"}% - \textbf{\the\year\,/\,\thevotenumber:}\\% - \stepcounter{votenumber}% - }% - \newcommand*{\voteMoney}[1]{% - \ifthenelse{\equal{##1}{}} {% - \immediate\write\exportdata{ money_limit: NULL}% - \textbf{Antrag}% - } {% - \immediate\write\exportdata{ money_limit: ##1}% - \textbf{Finanzantrag über \EUR{##1} - Antrag}% - }% - } - \newcommand*{\voteText}[1]{% - \immediate\write\exportdata{ text: "##1"}% - ##1\vspace{\baselineskip}\\}% - \newcommand*{\voteSubmitter}[1]{% - \immediate\write\exportdata{ submitter: "##1"}% - \textbf{Antragsteller\_in: }##1\vspace{\baselineskip}\\}% - \newcommand*{\voteReason}[1]{% - \immediate\write\exportdata{ rationale: "##1"}% - \textbf{Begründung: }##1\vspace{\baselineskip}\\}% - \newcommand*{\voting}[3]{\textbf{Abstimmung: }% - \ifthenelse{\equal{##1}{} \AND \equal{##2}{} \AND \equal{##3}{}} {% - \immediate\write\exportdata{ v_yes: 0}% - \immediate\write\exportdata{ v_no: 0}% - \immediate\write\exportdata{ v_neutral: 0}% - \immediate\write\exportdata{ accepted: 1}% - Der Antrag wurde ohne Gegenrede angenommen.% - } {% - \immediate\write\exportdata{ v_yes: ##1}% - \immediate\write\exportdata{ v_no: ##2}% - \immediate\write\exportdata{ v_neutral: ##3}% - Dafür: ##1, Dagegen: ##2, Enthaltungen: ##3% - \\% - \setcounter{x}{##2+##3}% - \ifnum##1>\arabic{x}% - {% - \immediate\write\exportdata{ accepted: 1}% - Der Antrag wurde angenommen. - }% - \else% - { - \immediate\write\exportdata{ accepted: 0}% - Der Antrag wurde abgelehnt. - }% - \fi% - }% - }% - \newcommand*{\voteComment}[1]{% - \immediate\write\exportdata{ comment: "##1"}% - ##1 - }% -} { - \end{minipage}\end{lrbox}\fbox{\usebox{\mybox}} -} - \newenvironment{vote-two-thirds} {% \immediate\write\exportdata{-} \begin{lrbox}{\mybox}\begin{minipage}{.985\textwidth} From 08c0304bcabff10628e3d6e6dde74bf134a1e23f Mon Sep 17 00:00:00 2001 From: AntonObersteiner Date: Wed, 8 Nov 2023 18:26:53 +0100 Subject: [PATCH 13/19] add first draft for missing-signatures doc --- protokoll/fehlende_unterschriften.tex | 104 ++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 protokoll/fehlende_unterschriften.tex diff --git a/protokoll/fehlende_unterschriften.tex b/protokoll/fehlende_unterschriften.tex new file mode 100644 index 0000000..81cf6bb --- /dev/null +++ b/protokoll/fehlende_unterschriften.tex @@ -0,0 +1,104 @@ +\documentclass{scrartcl} + +\usepackage[utf8]{inputenc} +\usepackage[ngerman]{babel} +\usepackage[T1]{fontenc} +\usepackage[a4paper,top=3cm,left=3cm,right=3cm,bottom=3cm]{geometry} +\usepackage{eurosym} +\usepackage{graphicx} +\usepackage{xifthen} +\usepackage{titlesec} +\usepackage{expl3} +\usepackage{xparse} +\usepackage{tabularx} +\usepackage[hidelinks]{hyperref} +\usepackage[autostyle=true,german=quotes]{csquotes} +\usepackage[table]{xcolor} + +\parindent 0pt +\parskip 1ex + +\newcommand{\leadingzero}[1]{\ifnum #1<10 0\the#1\else\the#1\fi} + +\makeatletter +\newcommand*{\insertheaderrule}{\rlap{\rule[-.5\normalbaselineskip]{\textwidth}{.4pt}}} +\def\ps@fsrProtokoll{% + \def\@oddhead{\insertheaderrule% + Fehlende Unterschriften in Protokollen \leadingzero{\day}.\leadingzero{\month}.\the\year \hfill Fachschaftsrat Informatik% + } +} +\def\ps@fsrProtokollTitlePage{% + \def\@oddhead{\insertheaderrule% + \includegraphics[height=4em]{assets/fsrlogo}\hfill% + \includegraphics[height=4em]{assets/tudlogo}% + } +} +\makeatother +\pagestyle{fsrProtokoll} + +% titlepage +\renewcommand*{\maketitle}{% + \begin{titlepage}% + \thispagestyle{fsrProtokollTitlePage} + \begin{center}% + \vspace*{.5cm}% + { + \textbf{ + \Large Fehlende Unterschriften in Protokollen bis zum + \leadingzero{\day}.\leadingzero{\month}.\the\year + } + } + \end{center}% + \end{titlepage}% + \hypersetup{% + pdfauthor=Fachschaftsrat Informatik, + pdftitle=Fehlende Unterschriften in Protokollen bis zum \leadingzero{\day}.\leadingzero{\month}.\the\year + } +} +\let\endtitlepage\relax + + +\begin{document} + +\pagenumbering{gobble} + +\maketitle + +\renewcommand{\arraystretch}{1.19} + +\rowcolors{2}{gray!25}{white} +\begin{tabularx}{\linewidth}{|X|X|X|} +\hline +\rowcolor{gray!50} +\textbf{Kürzel, Person} +\\ \hline + +AO Anton Obersteiner \\ \hline +FN Fabian Naumann\\ \hline +HS Hamdaan Shaikh\\ \hline +HeH Helene Hausmann\\ \hline +HK Himanshu Kaloni\\ \hline +JaS Jakob Steinberg\\ \hline +JoS Joachim Stramke\\ \hline +JB Johanna Berger\\ \hline +JF Jonas Frei\\ \hline +JG Jonas Gaffke\\ \hline +LF Lyn Fugmann\\ \hline +LW Lydia Will\\ \hline +MS Macy Schreiber\\ \hline +ML Marco Lehner\\ \hline +RS Rajasekar Sankar\\ \hline +RS Reiner Stolle\\ \hline +RS Rouven Seifert\\ \hline +TF Tom Fiedler\\ \hline +VK Vincent Kruse\\ \hline +WW Wolfgang Walter\\ \hline +\\ \hline +\\ \hline +\\ \hline +\\ \hline +\\ \hline +\\ \hline +\end{tabularx} + +\end{document} From e7d0b717028601032ee57288a5f0dca2a56f97e6 Mon Sep 17 00:00:00 2001 From: AntonObersteiner Date: Wed, 8 Nov 2023 18:27:33 +0100 Subject: [PATCH 14/19] missing assets for header --- protokoll/assets/fsrlogo.pdf | Bin 0 -> 5762 bytes protokoll/assets/tudlogo.pdf | Bin 0 -> 4424 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100755 protokoll/assets/fsrlogo.pdf create mode 100755 protokoll/assets/tudlogo.pdf diff --git a/protokoll/assets/fsrlogo.pdf b/protokoll/assets/fsrlogo.pdf new file mode 100755 index 0000000000000000000000000000000000000000..8eee05d8e5da785620453840c16c1bc1596ee90a GIT binary patch literal 5762 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 K;@XBfpnn0O(9R72 literal 0 HcmV?d00001 From 0db35f6bfc31a54f14b9371b90ad29c67bab3cf6 Mon Sep 17 00:00:00 2001 From: R S Date: Fri, 9 Aug 2024 15:54:03 +0200 Subject: [PATCH 15/19] added Zustimmung_Klausur_Upload Template for Prof Signature --- .../Zustimmung_Klausur_Upload.tex | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 Zustimmung_Klausur_Upload/Zustimmung_Klausur_Upload.tex diff --git a/Zustimmung_Klausur_Upload/Zustimmung_Klausur_Upload.tex b/Zustimmung_Klausur_Upload/Zustimmung_Klausur_Upload.tex new file mode 100644 index 0000000..109251a --- /dev/null +++ b/Zustimmung_Klausur_Upload/Zustimmung_Klausur_Upload.tex @@ -0,0 +1,51 @@ +\documentclass[a4paper,12pt]{article} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{lmodern} +\usepackage{graphicx} +\usepackage{geometry} +\graphicspath{{./ressources/}} +\geometry{left=2.5cm, right=2.5cm, top=2.5cm, bottom=2.5cm} +\pagenumbering{gobble} + +\begin{document} +\includegraphics[height=4em]{fsrlogo}\hfill% +\includegraphics[height=4em]{tudlogo}% + +\vspace{3cm} + +\begin{center} + \LARGE\textbf{Einverständniserklärung zur Veröffentlichung von Altklausuren} +\end{center} + +\vspace{2cm} + +\noindent +\textbf{Erklärung:} + +\noindent +Ich, \underline{\hspace{5cm}}, erteile hiermit mein Einverständnis, dass die von mir erstellte Klausur vom \underline{\hspace{2cm}} im Modul \underline{\hspace{2cm}} und ggf. dazugehörige Lösungsvorschläge von den Studierenden des Fachbereichs Informatik auf dem FTP-Server des iFSR hochgeladen, gespeichert und unter den Studierenden der TU Dresden zu Prüfungszwecken verteilt werden dürfen. + +\vspace{0.5cm} + +\noindent +\textbf{Bedingungen:} +\begin{itemize} + \item Dieses Einverständnis gilt ausschließlich für die oben genannte Klausur. + \item Die Klausuren dürfen ausschließlich von den Studierenden der TU Dresden zu Lern- und Übungszwecken verwendet werden. + \item Es ist nicht gestattet, die Klausuren für kommerzielle Zwecke zu nutzen oder außerhalb des Studierendenkreises der TU Dresden zu verbreiten. + \item Die Zustimmung kann jederzeit schriftlich widerrufen werden. Nach Widerruf werden die entsprechenden Klausuren umgehend vom FTP-Server entfernt. +\end{itemize} + +\vspace{1cm} + +\noindent +\begin{tabbing} +\hspace{8cm} \= \kill +Ort, Datum: \underline{\hspace{5cm}} \> Unterschrift: \underline{\hspace{5cm}} \\ +\\ +Name des Professors / der Professorin: \underline{\hspace{5cm}} \\ +\\ +Professur: \underline{\hspace{5cm}} \\ +\end{tabbing} +\end{document} \ No newline at end of file From af83437b321d0f32306b2b6a6e74368d2f99f694 Mon Sep 17 00:00:00 2001 From: R S Date: Fri, 9 Aug 2024 16:01:12 +0200 Subject: [PATCH 16/19] added TUD and iFSR Logo in ./ressources/ --- Zustimmung_Klausur_Upload/ressources/fsrlogo.pdf | Bin 0 -> 5762 bytes Zustimmung_Klausur_Upload/ressources/tudlogo.pdf | Bin 0 -> 4424 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Zustimmung_Klausur_Upload/ressources/fsrlogo.pdf create mode 100644 Zustimmung_Klausur_Upload/ressources/tudlogo.pdf diff --git a/Zustimmung_Klausur_Upload/ressources/fsrlogo.pdf b/Zustimmung_Klausur_Upload/ressources/fsrlogo.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8eee05d8e5da785620453840c16c1bc1596ee90a GIT binary patch literal 5762 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 K;@XBfpnn0O(9R72 literal 0 HcmV?d00001 From 508aa3e5b4804fe43b6d48dbebdec06380dcfca4 Mon Sep 17 00:00:00 2001 From: AntonObersteiner Date: Fri, 9 Aug 2024 16:05:07 +0200 Subject: [PATCH 17/19] add linebreaks and hyphen options --- Zustimmung_Klausur_Upload/Zustimmung_Klausur_Upload.tex | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Zustimmung_Klausur_Upload/Zustimmung_Klausur_Upload.tex b/Zustimmung_Klausur_Upload/Zustimmung_Klausur_Upload.tex index 109251a..85a58df 100644 --- a/Zustimmung_Klausur_Upload/Zustimmung_Klausur_Upload.tex +++ b/Zustimmung_Klausur_Upload/Zustimmung_Klausur_Upload.tex @@ -24,7 +24,11 @@ \textbf{Erklärung:} \noindent -Ich, \underline{\hspace{5cm}}, erteile hiermit mein Einverständnis, dass die von mir erstellte Klausur vom \underline{\hspace{2cm}} im Modul \underline{\hspace{2cm}} und ggf. dazugehörige Lösungsvorschläge von den Studierenden des Fachbereichs Informatik auf dem FTP-Server des iFSR hochgeladen, gespeichert und unter den Studierenden der TU Dresden zu Prüfungszwecken verteilt werden dürfen. +Ich, \underline{\hspace{5cm}}, erteile hiermit mein Einverständnis, +dass die von mir erstellte Klausur vom \underline{\hspace{2cm}} im Modul +\underline{\hspace{2cm}} und ggf.\ dazugehörige Lösungs\-vor\-schläge +von den Studierenden des Fachbereichs Informatik auf dem FTP-Server des iFSR hochgeladen, +gespeichert und unter den Studierenden der TU Dresden zu Prüfungszwecken verteilt werden dürfen. \vspace{0.5cm} @@ -48,4 +52,4 @@ Name des Professors / der Professorin: \underline{\hspace{5cm}} \\ \\ Professur: \underline{\hspace{5cm}} \\ \end{tabbing} -\end{document} \ No newline at end of file +\end{document} From 550acea85b27243923a835b72d9e6b94c1b6fe62 Mon Sep 17 00:00:00 2001 From: tenksom Date: Sat, 10 Aug 2024 11:58:08 +0200 Subject: [PATCH 18/19] adding condition for the publication of an exam --- Zustimmung_Klausur_Upload/Zustimmung_Klausur_Upload.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Zustimmung_Klausur_Upload/Zustimmung_Klausur_Upload.tex b/Zustimmung_Klausur_Upload/Zustimmung_Klausur_Upload.tex index 85a58df..a6b93ff 100644 --- a/Zustimmung_Klausur_Upload/Zustimmung_Klausur_Upload.tex +++ b/Zustimmung_Klausur_Upload/Zustimmung_Klausur_Upload.tex @@ -29,7 +29,7 @@ dass die von mir erstellte Klausur vom \underline{\hspace{2cm}} im Modul \underline{\hspace{2cm}} und ggf.\ dazugehörige Lösungs\-vor\-schläge von den Studierenden des Fachbereichs Informatik auf dem FTP-Server des iFSR hochgeladen, gespeichert und unter den Studierenden der TU Dresden zu Prüfungszwecken verteilt werden dürfen. - +Die Prüfungen sind dabei nur aus dem Uni-Netz erreichbar. \vspace{0.5cm} \noindent From 0694bafd4aef6e293d30f8a26bd1d3da139be38d Mon Sep 17 00:00:00 2001 From: AntoniaObersteiner Date: Mon, 12 Aug 2024 01:30:14 +0200 Subject: [PATCH 19/19] more filling space, linebreaks, minor text-changes --- .../Zustimmung_Klausur_Upload.tex | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Zustimmung_Klausur_Upload/Zustimmung_Klausur_Upload.tex b/Zustimmung_Klausur_Upload/Zustimmung_Klausur_Upload.tex index a6b93ff..41792d4 100644 --- a/Zustimmung_Klausur_Upload/Zustimmung_Klausur_Upload.tex +++ b/Zustimmung_Klausur_Upload/Zustimmung_Klausur_Upload.tex @@ -24,18 +24,18 @@ \textbf{Erklärung:} \noindent -Ich, \underline{\hspace{5cm}}, erteile hiermit mein Einverständnis, -dass die von mir erstellte Klausur vom \underline{\hspace{2cm}} im Modul -\underline{\hspace{2cm}} und ggf.\ dazugehörige Lösungs\-vor\-schläge +Ich, \underline{\hspace{7cm}}, \\ erteile hiermit mein Einverständnis, +dass die von mir erstellte Klausur vom \underline{\hspace{2cm}} \\ in der Prüfung +\underline{\hspace{8cm}} \\ und ggf.\ dazugehörige Lösungs\-vor\-schläge von den Studierenden des Fachbereichs Informatik auf dem FTP-Server des iFSR hochgeladen, gespeichert und unter den Studierenden der TU Dresden zu Prüfungszwecken verteilt werden dürfen. -Die Prüfungen sind dabei nur aus dem Uni-Netz erreichbar. +Die Klausuren sind dabei nur aus dem Uni-Netz erreichbar. \vspace{0.5cm} \noindent \textbf{Bedingungen:} \begin{itemize} - \item Dieses Einverständnis gilt ausschließlich für die oben genannte Klausur. + \item Diese Einverständnis bezieht sich ausschließlich auf die oben genannte Klausur. \item Die Klausuren dürfen ausschließlich von den Studierenden der TU Dresden zu Lern- und Übungszwecken verwendet werden. \item Es ist nicht gestattet, die Klausuren für kommerzielle Zwecke zu nutzen oder außerhalb des Studierendenkreises der TU Dresden zu verbreiten. \item Die Zustimmung kann jederzeit schriftlich widerrufen werden. Nach Widerruf werden die entsprechenden Klausuren umgehend vom FTP-Server entfernt. @@ -48,8 +48,8 @@ Die Prüfungen sind dabei nur aus dem Uni-Netz erreichbar. \hspace{8cm} \= \kill Ort, Datum: \underline{\hspace{5cm}} \> Unterschrift: \underline{\hspace{5cm}} \\ \\ -Name des Professors / der Professorin: \underline{\hspace{5cm}} \\ +Name des Professors / der Professorin: \underline{\hspace{7cm}} \\ \\ -Professur: \underline{\hspace{5cm}} \\ +Professur: \underline{\hspace{9cm}} \\ \end{tabbing} \end{document}