summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-10-14 03:01:58 +0000
committerNorbert Preining <norbert@preining.info>2022-10-14 03:01:58 +0000
commit1c0d5e0721918b8ee790c9f1c11f1543e0403322 (patch)
tree945544ad8dae56580c1578e1d2c96c7fe0fc29eb /macros
parentba720f8eaac74c537fb16f8556e4cf0ab4cd8235 (diff)
CTAN sync 202210140301
Diffstat (limited to 'macros')
-rw-r--r--macros/latex/contrib/abntexto/README.txt (renamed from macros/latex/contrib/abntexto/README)6
-rw-r--r--macros/latex/contrib/abntexto/abntexto-manual.pdfbin144264 -> 246005 bytes
-rw-r--r--macros/latex/contrib/abntexto/abntexto-manual.tex115
-rw-r--r--macros/latex/contrib/abntexto/abntexto.bib1
-rw-r--r--macros/latex/contrib/abntexto/abntexto.cls101
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdfbin870624 -> 886664 bytes
-rw-r--r--macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex236
-rw-r--r--macros/latex/contrib/proflycee/tex/ProfLycee.sty476
-rw-r--r--macros/latex/contrib/unigrazpub/DEMO-monografie.pdfbin0 -> 39150 bytes
-rw-r--r--macros/latex/contrib/unigrazpub/DEMO-sammelband.pdfbin0 -> 50311 bytes
-rw-r--r--macros/latex/contrib/unigrazpub/LICENSE.md409
-rw-r--r--macros/latex/contrib/unigrazpub/README.md55
-rw-r--r--macros/latex/contrib/unigrazpub/examples/monografie/DEMO-monografie.tex66
-rw-r--r--macros/latex/contrib/unigrazpub/examples/monografie/impressum.tex78
-rw-r--r--macros/latex/contrib/unigrazpub/examples/monografie/kapitel1.tex77
-rw-r--r--macros/latex/contrib/unigrazpub/examples/monografie/literatur.bib33
-rw-r--r--macros/latex/contrib/unigrazpub/examples/sammelband/DEMO-sammelband.tex59
-rw-r--r--macros/latex/contrib/unigrazpub/examples/sammelband/beitrag1.bib54
-rw-r--r--macros/latex/contrib/unigrazpub/examples/sammelband/beitrag1.tex139
-rw-r--r--macros/latex/contrib/unigrazpub/examples/sammelband/impressum.tex77
-rw-r--r--macros/latex/contrib/unigrazpub/unigrazpub.dtx934
-rw-r--r--macros/latex/contrib/unigrazpub/unigrazpub.ins40
-rw-r--r--macros/latex/contrib/unigrazpub/unigrazpub.pdfbin0 -> 49815 bytes
23 files changed, 2849 insertions, 107 deletions
diff --git a/macros/latex/contrib/abntexto/README b/macros/latex/contrib/abntexto/README.txt
index c726532934..850a1cd3f3 100644
--- a/macros/latex/contrib/abntexto/README
+++ b/macros/latex/contrib/abntexto/README.txt
@@ -1,8 +1,8 @@
Public Domain Software
-2022-10-06
-1.2.0-alpha
+2022-10-12
+1.2.1-alpha
Elayson
-abntexto dot classe at gmail dot com
+abntexto.classe at gmail.com
The abntexto is a LaTeX class for the elaboration of academic works according
to the guidelines of the Associação Brasileira de Normas Técnicas (ABNT). \ No newline at end of file
diff --git a/macros/latex/contrib/abntexto/abntexto-manual.pdf b/macros/latex/contrib/abntexto/abntexto-manual.pdf
index 1756b85168..79ea6ff35f 100644
--- a/macros/latex/contrib/abntexto/abntexto-manual.pdf
+++ b/macros/latex/contrib/abntexto/abntexto-manual.pdf
Binary files differ
diff --git a/macros/latex/contrib/abntexto/abntexto-manual.tex b/macros/latex/contrib/abntexto/abntexto-manual.tex
index d054cf73fc..7d9d2b3153 100644
--- a/macros/latex/contrib/abntexto/abntexto-manual.tex
+++ b/macros/latex/contrib/abntexto/abntexto-manual.tex
@@ -4,14 +4,14 @@
\usepackage[brazil]{babel}
\usepackage[T1]{fontenc}
-\usepackage{tgheros} \def\familydefault{\sfdefault}
-\usepackage{inconsolata}
+\usepackage{newtxtext}
+\usepackage{newtxmath}
\usepackage{lipsum} \def\lip{\lipsum[1][1-2]}
\usepackage{graphicx}
\usepackage[cmyk]{xcolor}
\usepackage[style=abnt]{biblatex} \addbibresource{abntexto.bib}
\usepackage[colorlinks]{hyperref}
-%\let\href=\relax
+%\let\href=\relax \newdimen\bibitemsep \def\textcite#1{{\bfseries#1}}
% MARKUP
% ================================================
@@ -25,12 +25,6 @@
\def\arg{\cc{arg}}
\def\opt{\kk{opt}}
-\def\argi{\cc{argi}}
-\def\argii{\cc{argii}}
-\def\argiii{\cc{argiii}}
-\def\opti{\kk{opti}}
-\def\optii{\kk{optii}}
-\def\optiii{\kk{optiii}}
\def\ccval#1{{\ttnoligs \{#1\}}}
\def\kkval#1{{\ttnoligs [#1]}}
\def\pkg#1{{\ttnoligs #1}}
@@ -43,7 +37,7 @@
\def\verbcatcodes{\let\do=\dodef \dospecials \catcode`\|=0 }
{\catcode`\^^M=13
- \gdef\verbpercent#1^^M{{\bfseries\color{graycomment}\@percentchar#1^^M}}
+ \gdef\verbpercent#1^^M{{\color{graycomment}\itshape\@percentchar#1^^M}}
}
\long\def\codeon{\par\begingroup \verbcatcodes
@@ -85,7 +79,7 @@
\sizeselectordef\LARGE{25pt}{30pt}
\definecolor{graybar}{gray}{0.75}
-\definecolor{graycomment}{gray}{1}
+\definecolor{graycomment}{gray}{.2}
\legendplacedef{code}{Código}{Lista de códigos}{cód.\,#1}{loc}
\def\loclabelwidth{10.6ex}
@@ -98,8 +92,6 @@
\widowpenalty=10000
\let\cite=\textcite
-\def\appendixlabelwidth{7.2em}
-
\def\bibfont{\singlesp}
\bibitemsep=18pt
@@ -118,12 +110,12 @@
abntexto\\[0.4em] \Large\itshape\mdseries
Classe para {\upshape\LaTeX}\\[2em] \normalfont\large
Elayson\\[1ex]
- \href{mailto:abntexto.classe@gmail.com}{abntexto dot classe at gmail dot com}\\[2.5ex]
+ \href{mailto:abntexto.classe@gmail.com}{abntexto.classe at gmail.com}\\[2.5ex]
\today\par}
\vskip3in
-{\centering \large\ttfamily 1.2.0-alpha\par}
+{\centering \large\ttfamily 1.2.1-alpha\par}
\newpage
@@ -152,7 +144,7 @@ Digite as linhas em \ref{vb:início} e use \pkg{abntexto}.
\usepackage[brazil]{babel} % para obter os padrões de hifenização corretos
\usepackage[T1]{fontenc}
-\usepackage{newtxtext} % fontes New TX, semelhante a Times
+\usepackage{newtxtext} % fontes New TX, semelhantes a Times
\usepackage{newtxmath}
\begin{document}
@@ -162,13 +154,13 @@ Digite as linhas em \ref{vb:início} e use \pkg{abntexto}.
\section{Fonte tipográfica}
-O tamanho da fonte é 12\,pt de imediato e pode ser configurado com o comando \cs\setfontsize\arg\ sendo que 12\,pt é a única opção disponível. Mas, se você deseja outro tamanho de fonte, crie-o usando \cs\fontsizedef\cc{size}\cc{defs}. Além disso, com os seletores de tamanho \cs\normalsize\ e \cs\small\ que configuram 12\,pt e 10\,pt, nessa ordem, é possível mudar o tamanho da fonte no corpo do documento.
+O tamanho da fonte é 12\,pt de imediato e pode ser configurado com o comando \cs\setfontsize\cc{size} sendo que 12\,pt é a única opção disponível. Mas, se você deseja outro tamanho de fonte, crie-o usando \cs\fontsizedef\cc{size}\cc{defs}. Além disso, com os seletores de tamanho \cs\normalsize\ e \cs\small\ que configuram 12\,pt e 10\,pt, nessa ordem, é possível mudar o tamanho da fonte no corpo do documento.
O espaçamento é de um e meio e pode ser alterado para dois com \cs\spacing\ccval{2}, por exemplo. Os atalhos \cs\singlesp, \cs\onehalfsp\ e \cs\doublesp\ estão disponíveis. Note que o espaçamento simples não tem o mesmo valor que o espaçamento um, portanto, \cs\singlesp\ é diferente de \cs\spacing\ccval{1}! Os atalhos \cs\onehalfsp\ e \cs\doublesp\ tem o mesmo significado de \cs\spacing\ccval{1.5} e \cs\spacing\ccval{2}.
\section{\emph{Layout}}
-A folha é A4 por padrão e as margens esquerda e direita são de 3\,cm, 2\,cm para páginas ímpares e de 2\,cm, 3\,cm para páginas pares, respectivamente. Além disso, as margens superior e inferior têm, nessa ordem, 3\,cm, 2\,cm para todo o documento. Todas essas medidas podem ser alteradas com a macro \cs\paper\ que deve ser usada assim: \cs\paper\ccval{left=0cm,right=0cm,top=0cm,botttom=0cm}.
+A folha é A4 por padrão e as margens esquerda e direita são de 3\,cm, 2\,cm para páginas ímpares e de 2\,cm, 3\,cm para páginas pares, respectivamente. Além disso, as margens superior e inferior têm, nessa ordem, 3\,cm, 2\,cm para todo o documento. Todas essas medidas podem ser alteradas com a macro \cs\paper\ que deve ser usada assim: \cs\paper\ccval{left=0cm, right=0cm, top=0cm, botttom=0cm}.
Além das chaves anteriores também existe \cs{twoside} que é booleana, ou seja, aceita os valores \cs{true} ou \cs{false} e serve para ativar o modo de impressão em duas folhas aonde as medidas das margens horizontais se invertem nas páginas pares. Ao não informar um valor para \cs{twoside} subentende-se que seja \cs{true}, portanto \cs\paper\ccval{twoside} equivale a \cs\paper\ccval{twoside=true} e esse princípio também se aplica a outras chaves booleanas.
@@ -258,11 +250,13 @@ Use \cs\place\ para inserir áreas de legenda como mostrado em \ref{vb:place}. M
\end{document}
\codeoff
-O leitor pode querer definir uma nova área de legenda usando, por exemplo: \cs\legendplacedef\ccval{diagram}\ccval{Diagrama}\ccval{Lista de diagramas}\ccval{diag.\cs\,\cs#1}\ccval{lod} que vai criar o comando \cs\makelod\ para escrever no documento as entradas do arquivo auxiliar .lod.
+O leitor pode querer definir uma nova área de legenda usando, por exemplo, a instrução: \cs\legendplacedef\ccval{diagram}\ccval{Diagrama}\ccval{Lista de diagramas}\ccval{diag.\cs\,\cs#1}\ccval{lod} que vai criar o comando \cs\makelod\ para escrever no documento as entradas do arquivo auxiliar .lod.
+
+%*
\section{Formatação de {\ttfamily\protect\textbackslash cite} e referências}
-Até o momento o \pkg{abntexto} não possui macros para formatação de \cs\cite\ e referências. Utilize \cs{\usepackage\{abnt2cite\}} ou \cs{\usepackage[style=abnt]\{biblatex\}}.
+Até o momento o \pkg{abntexto} não possui macros para formatação de \cs\cite\ e referências. Utilize \cs{\usepackage[style=abnt]\{biblatex\}}.
\section{Citações}
@@ -271,18 +265,89 @@ Para inserir aspas em citações diretas use \cs\qt\ccval{texto}. Mas, se tratan
\newpage
\corrprinton
-\printbibliography
+%\printbibliography
\corrprintoff
\newpage
\appendix
+\section{\emph{Feedback}}
+Sugestões, relatos de \emph{bugs} e doações são bem-vindas.
+
\section{Código-fonte}
-Em progresso\dots
+\makeatletter
+\newcount\seccount \def\thesec{\the\seccount}
+\def\extlabelwidth{4ex}
+\def\extlabelbox#1{\hbox to\extlabelwidth{#1~---~\hfil}}
+\def\l@subsection#1#2{\smartaboveskip{\penalty351}{\vskip1em plus1pt}%
+ \begingroup
+ \usetocifont \nobreak
+ \extlineshape \relax
+ \hskip-\leftskip \maybeuctoc{#1}\nobreak\hfil\nobreak
+ \hbox to1.55em{\hss #2\kern-1pt\kern1pt}\par
+ \endgroup
+}
+\def\subsection#1{\par \smartaboveskip{\penalty351}{\vskip\subsectionabove}\noindent
+ \advancecount\seccount
+ \setbox0=\hbox{\usesubsectionfont \thesec\quad}%
+ {\usesubsectionfont \hangindent=\wd0 \box0 #1\tnba@nbpar}%
+ \nobreak \smartbelowskip{\vskip\subsectionbelow}%
+}
+\makeatother
-\section{\emph{Feedback}}
+% SOURCE MACROS
+% ================================================
+
+\makeatletter
+
+\definecolor{bg}{cmyk}{0,0.06,0,0}
+\definecolor{comment}{cmyk}{0.9,0,0,0.1}
-Sugestões, \emph{bug reports} e doações são bem-vindas.
+\def\sec#1\par{\subsection{#1}}
-\end{document}
+\newdimen\hhkern \hhkern=12pt
+\newdimen\vvkern \vvkern=12pt
+
+\def\hh{\kern\hhkern}
+\def\vv{\kern\vvkern}
+
+{\catcode`\^^M=13
+ \gdef\verbpercent#1^^M{{\bfseries\color{comment}\@percentchar#1^^M}}
+}
+
+\def\srccatcodes{\catcode`\!=14 \catcode`\%=9 \catcode`\|=0 }
+\def\codecatcodes{\let\do=\dodef \dospecials}
+
+\long\def\bcode{\par\begingroup \codecatcodes
+ \adef{\^^I}{\ \ \ }%
+ \adef{\^^M}{\par\leavevmode}%
+ \adef{ }{\ }%
+ \adef{\%}{\verbpercent}%
+% \def\par##1{\endgraf\ifx##1\par\leavevmode\fi##1}\obeylines
+ \startcode
+}
+{\catcode`\%=13 \catcode`\ =13 \catcode`\^^M=13 \catcode`\|=0 \catcode`\\=12
+ |long|gdef|startcode #1% |ecode{|codefont{#1}|par|endgroup}
+}
+
+\def\codefont{\raggedright\small\ttnoligs\bgbox}
+
+\long\def\bgbox#1{\setbox0=\vbox{\advance\hsize-24pt \vv#1\vv}%
+ \ifdim\ht0>\dimexpr \pagegoal - \pagetotal \relax
+ \setbox2=\vsplit0 to\dimexpr \pagegoal - \pagetotal -24pt \relax
+ \fi
+ \vskip8pt minus2pt
+ \drawbg2\par \drawbg0%
+ \vskip8pt minus2pt
+}
+\def\drawbg#1{\leavevmode
+ \rlap{{\color{bg} \vrule width\dimexpr\wd#1+24pt\relax height\ht#1 depth\dp#1}}%
+ \hbox{\hh\box#1\hh}%
+}
+
+\def\inputsrc#1{\begingroup \parskip=0pt \srccatcodes \input #1\endgroup}
+
+\inputsrc{abntexto.cls}
+
+\end{document}
diff --git a/macros/latex/contrib/abntexto/abntexto.bib b/macros/latex/contrib/abntexto/abntexto.bib
index 6604bc3f5b..6e58d2d95f 100644
--- a/macros/latex/contrib/abntexto/abntexto.bib
+++ b/macros/latex/contrib/abntexto/abntexto.bib
@@ -22,4 +22,3 @@
url = {https://www.ctan.org/pkg/latex2e-help-texinfo},
urldate = {2022-09-28}
}
-
diff --git a/macros/latex/contrib/abntexto/abntexto.cls b/macros/latex/contrib/abntexto/abntexto.cls
index aa12bb3eb8..4ae9b0ade6 100644
--- a/macros/latex/contrib/abntexto/abntexto.cls
+++ b/macros/latex/contrib/abntexto/abntexto.cls
@@ -1,8 +1,14 @@
%! Public Domain Software
-%! 2022-10-06
-%! 1.2.0-alpha
+%! 2022-10-12
+%! 1.2.1-alpha
%! Elayson
-%! abntexto dot classe at gmail dot com
+%! abntexto.classe at gmail.com
+
+%! ANNOUNCEMETS
+
+%!> Changed the manual's typographic font to a serif because they are better for reading long texts — although the manual is purposely short.
+
+%!> Removal of \srcname macro because it is useless.
%! SUMÁRIO
@@ -21,6 +27,11 @@
%! A VÍRGULA COMO SEPARADOR DECIMAL
%! INICIALIZAÇÃO
+% |sec RECOMENDAÇÕES
+% !=======================================================
+
+% Macros internas não podem ser modificadas ou usadas diretamente. Isso é porque essas macros podem ser redefinidos ou até renomeados em futuras versões desta classe. Por macros internas entende-se aquelas com prefixo do pacote em questão, neste caso, \cs{tnba@}. Se você precisa de algum comando interno, defina outro sem anexar o prefixo.
+
% \sec PRÉ-CONFIGURAÇÕES
% !=======================================================
@@ -29,12 +40,12 @@
% |bcode !------------------------------------------------
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{abntexto}[2022-10-06 1.2.0-alpha Preparation of works in ABNT standards]
+\ProvidesClass{abntexto}[2022-10-12 1.2.1-alpha Preparation of works in ABNT standards]
\RequirePackage{keyval}
% |ecode !------------------------------------------------
-% Definição do sistema \emph{chave=valor} e de um comando de \emph{debug}. Perceba que \tnba@bodyhook não pode ser igual a \cs\relax, mas \cs\empty ao invés.
+% Definição de um sistema \emph{chave=valor} pessoal e de macros auxiliares. Perceba que \cs{\tnba@bodyhook} não pode ser igual a \cs\relax, mas \cs\empty\ ao invés.
% |bcode !------------------------------------------------
\def\tnba@keyprefix{tnba}
@@ -49,7 +60,11 @@
\let\tnba@bodyhook=\empty
\AddToHook{begindocument}{\def\tnba@body{}\tnba@bodyhook}
+% |ecode !------------------------------------------------
+
+% Comando de \emph{debug}.
+% |bcode !------------------------------------------------
\def\tnba@error{\ClassError{abntexto}}
% |ecode !------------------------------------------------
@@ -115,11 +130,12 @@
\advance\topmargin-\headheight \advance\topmargin-\headsep
\advance\textwidth-\tnba@L \advance\textwidth-\tnba@R
\advance\textheight-\tnba@T \advance\textheight-\tnba@B
- \setbox0=\hbox{\@setfontsize\@tempa{10}{12pt}\@tempa 1}
- \advance\headsep-\ht0
+ \setbox0=\hbox{\@setfontsize\@tempa{10pt}{12pt}\@tempa 1}%
+ \advance\headsep-\ht0
\ifx\pdfpagewidth\undefined
\ifx\pagewidth\undefined
- \tnba@error{O comando \@backslashchar paper só suporta saída em PDF. Use o formato PDF ou carregue o pacote *geometry*}\expandafter\enddocument\relax \else
+ \tnba@error{O comando \@backslashchar paper só suporta saída em PDF.
+ Use o formato PDF ou carregue o pacote *geometry*}\expandafter\enddocument\relax \else
\horigin=0pt
\vorigin=0pt
\pagewidth=\paperwidth
@@ -143,6 +159,10 @@
}
% |ecode !------------------------------------------------
+% O estilo de página \cs\pretextual\ omite a numeração de página e desliga o modo \cs{twoside} porque os elementos pré-textuais que compreendem as folhas da capa à do sumário, devem constar no anverso da página, ou seja, na “frente” da folha.
+
+% A instrução \cs\textual\ põe a numeração de página no topo direito nas páginas ímpares e no topo esquerdo em paginas pares. Além disso, \cs{twoside} vai espelhar as margens horizontais.
+
% |bcode !------------------------------------------------
\def\pretextual{\paper{twoside=false}%
\let\@oddhead=\empty
@@ -163,6 +183,8 @@
% \sec SUMÁRIO
% !=======================================================
+% Aqui, \cs\extline\ foi baseado em \cs\@dottedtocline, do kernel do LaTeX. Ele não é uma instrução privada, ou seja, com prefixo interno, pois existe a chance de o leitor querer redefiní-lo (o mesmo vale para \cs\extlineshape).
+
% |bcode !------------------------------------------------
\def\thepage{\the\c@page}
@@ -196,6 +218,13 @@
\def\l@subsubsection {\extline{toc}{3}}
\def\l@paragraph {\extline{toc}{4}}
\def\l@subparagraph {\extline{toc}{5}}
+% |ecode !------------------------------------------------
+
+% Comandos de personalização do ToC (sumário).
+
+% |bcode !------------------------------------------------
+\def\tociuppercase{\def\maybeuctoc{\MakeUppercase}}
+\def\tocilowercase{\let\maybeuctoc=\relax}
\def\tocifont#1{\def\usetocifont{#1}}
\def\tociifont#1{\def\usetociifont{#1}}
@@ -207,6 +236,8 @@
% \sec SECIONAMENTO
% !=======================================================
+% As linhas abaixo são basicamente uma cópia da funcionalidade do formato OpTeX. O par \cs\smartaboveskip, \cs\smartbelowskip, em especial, serve para eliminar \cs\vskip’s redundantes.
+
% |bcode !------------------------------------------------
\def\tnba@nbpar{\interlinepenalty=10000\par}
\def\noindentfirst{\global\everypar={\tnba@wipeepar \setbox7=\lastbox}}
@@ -245,10 +276,12 @@
\def\subparagraphmark#1{}
% |ecode !------------------------------------------------
+% Nesta parte estão definidos os comandos secionais.
+
% |bcode !------------------------------------------------
\def\section#1{\par \smartaboveskip{\penalty351}{\vskip\sectionabove}\noindent
\advancecount\sectioncount
- \def\@currentlabel{seção~\thesection}%
+ \def\@currentlabel{seção~\thesection}%+/
\setbox0=\hbox{\usesectionfont \thesection\quad}%
{\usesectionfont \hangindent=\wd0 \box0 \maybeucsec{#1}\tnba@nbpar}%
% \noindentfirst
@@ -293,20 +326,24 @@
\nobreak \smartbelowskip{\vskip\subparagraphbelow}%
}
-\def\heading#1{\noindent
- {\usesectionfont \centering \maybeucsec{#1}\tnba@nbpar}%
- \nobreak \vskip\sectionbelow
-}
-
\def\hreftocline#1{\Hy@MakeCurrentHrefAuto{#1}%
\Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}%
}
\tnba@tobody{\ifx\hypertarget\undefined \let\hreftocline=\@gobble \fi}
% |ecode !------------------------------------------------
+% A macro \cs\heading, em particular, serve para produzir títulos não contados, como “Sumário”, “Lista de figuras”, “Apêndice” etc.
+
+% |bcode !------------------------------------------------
+\def\heading#1{\noindent
+ {\usesectionfont \centering \maybeucsec{#1}\tnba@nbpar}%
+ \nobreak \vskip\sectionbelow
+}
+% |ecode !------------------------------------------------
+
+% Comandos de personalização de seções.
+
% |bcode !------------------------------------------------
-\def\tociuppercase{\def\maybeuctoc{\MakeUppercase}}
-\def\tocilowercase{\let\maybeuctoc=\relax}
\def\sectionuppercase{\def\maybeucsec{\MakeUppercase}}
\def\sectionlowercase{\let\maybeucsec=\relax}
@@ -321,15 +358,20 @@
\def\subsubsectionspaces#1#2{\def\subsubsectionabove{#1}\def\subsubsectionbelow{#2}}
\def\paragraphspaces#1#2{\def\paragraphabove{#1}\def\paragraphbelow{#2}}
\def\subparagraphspaces#1#2{\def\subparagraphabove{#1}\def\subparagraphbelow{#2}}
+
+\def\toclabelwidth{3.4ex}
+\def\toclabelbox#1{\hbox to\extlabelwidth{#1\hfil}}
% |ecode !------------------------------------------------
+% Após a chamada da instrução \cs\appendix, \cs\section\ vai ser alterado para produzir títulos centralizados com o prefixo “Apêndice”. O mesmo vale para \annex.
+
% |bcode !------------------------------------------------
\newcount\appendixcount
\newcount\annexcount
\def\theappendix{\@Alph\appendixcount}
\def\theannex{\@Alph\annexcount}
-\def\appendixlabelwidth{8em}
+\def\appendixlabelwidth{6.6em}
\def\annexlabelwidth{6.2em}
\def\l@appendix{\let\extlabelwidth=\appendixlabelwidth
@@ -372,6 +414,8 @@
% \sec ALÍNEAS
% !=======================================================
+% Estas linhas não foram baseadas no ambiente \cs{list} do LaTeX, portanto, não podem ser personalizadas pelo pacote \cs{enumitem}, por exemplo.
+
% |bcode !------------------------------------------------
\newcount\topicsdepth
\newcount\topicscount
@@ -398,6 +442,8 @@
% \sec TABELAS
% !=======================================================
+% Na classe \cs{article} o ambiente \cs{table} inicia o modo flutuante. Mas nesta classe ele é sinônimo de \cs{tabular} porque faz mais sentido para min.
+
% |bcode !------------------------------------------------
\newenvironment{table}[1]{\begin{tabular}{#1}}{\end{tabular}}
% |ecode !------------------------------------------------
@@ -461,7 +507,6 @@
\removelastskip \fi\fi
\def\tnba@savedsrc{#1}%
}
-\def\srcname{Fonte}
% |ecode !------------------------------------------------
% |bcode !------------------------------------------------
@@ -504,6 +549,8 @@
% \sec UTILIDADES
% !=======================================================
+% Algumas macros úteis foram definidos aqui como \cs\Enter\ que serve para produzir um espaço vertical equivalente àquele produzido com a tecla Enter em editores de texto como MS Word.
+
% |bcode !------------------------------------------------
\def\tnba@getprevdepth{\par\xdef\tnba@getprevdepthA{\the\prevdepth}}
\def\tnba@useprevdepth{\par\prevdepth=\tnba@getprevdepthA}
@@ -538,15 +585,19 @@
% |ecode !------------------------------------------------
% \sec A VÍRGULA COMO SEPARADOR DECIMAL
-% !=======================================================
+% !=======================================================
+
+% No Brasil e em outro lugares a vírgula é um separador decimal, portanto \verb+$1,2$+ deve produzir um resultado diferente de \verb+$1, 2$+, por exemplo.
+
+% As linhas abaixo são uma cópia da implementação do pacote \pkg{icomma}.
% |bcode !------------------------------------------------
{\catcode`,=\active
- \gdef,{\futurelet\let@token\tnba@smartcomma}
+ \gdef,{\futurelet\@let@token\tnba@smartcomma}
}
\def\tnba@smartcomma{%
- \ifx\let@token\@sptoken \else
- \ifx\let@token\space \else \mathord \fi\fi
+ \ifx\@let@token\@sptoken \else
+ \ifx\@let@token\space \else \mathord \fi\fi
\tnba@mathcomma
}
@@ -566,6 +617,8 @@
% \sec INICIALIZAÇÃO
% !=======================================================
+% Aqui o \pkg{abntexto} define as configurações padrões. Note que \cs\pretextual\ deve ser carregado após \cs{\begin{document}} para evitar múltiplas chamadas deste caso seja redefinido pelo usuário ou escritor de pacotes.
+
% |bcode !------------------------------------------------
\fontsizedef{12pt}{
\normalsizedef{12pt}{14.5pt}
@@ -618,8 +671,8 @@
\placespaces{\baselineskip}{\baselineskip}
\def\maketoc{\heading{Sumário}
- \def\extlabelwidth{4ex}%
- \def\extlabelbox##1{\hbox to\extlabelwidth{##1\hfil}}%
+ \let\extlabelwidth=\toclabelwidth
+ \let\extlabelbox=\toclabelbox
\@starttoc{toc}\newpage
}
diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
index 37dc7a1700..0d8b6bc1ee 100644
--- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
+++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
index 7223c0798e..1b57126d34 100644
--- a/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
+++ b/macros/latex/contrib/proflycee/doc/ProfLycee-doc.tex
@@ -8,6 +8,7 @@
\usepackage[french]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
+\usepackage{amsmath,amssymb}
\usepackage[upright]{fourier}
\usepackage[scaled=0.875]{helvet}
\renewcommand\ttdefault{lmtt}
@@ -62,8 +63,8 @@
\setlength{\parindent}{0pt}
\definecolor{LightGray}{gray}{0.9}
-\def\PLversion{1.3.1}
-\def\PLdate{7 Octobre 2022}
+\def\PLversion{1.3.3}
+\def\PLdate{12 Octobre 2022}
\tcbset{vignettes/.style={%
nobeforeafter,box align=base,boxsep=0pt,enhanced,sharp corners=all,rounded corners=southeast,%
@@ -83,6 +84,9 @@
\newtcblisting{codetex}[1][]{%
colback=white,colframe=red!75!black,title={\small \faCode} Code \LaTeX,fonttitle=\sffamily\bfseries,left=3pt,right=3pt,top=2pt,bottom=2pt,#1}
+\newtcolorbox{codeattention}[1][]{%
+ colback=Yellow!50,colframe=Yellow!50!Black,title={\small \faBomb} Attention,fonttitle=\sffamily\bfseries,left=3pt,right=3pt,top=2pt,bottom=2pt,#1}
+
\newtcolorbox{codesortie}[1][]{%
colback=white,colframe=red!75!black,title={\small \faArrowAltCircleRight[regular]} Sortie \LaTeX,fonttitle=\sffamily\bfseries,left=3pt,right=3pt,top=2pt,bottom=2pt,#1}
@@ -239,6 +243,8 @@ Une commande pour, en \TikZ, créer un SudoMaths non forcément $9\times9$.
Des commandes pour effectuer des calculs de probas (lois binomiale, exponentielle, de Poisson, normale).
+Une commande pour, en \TikZ, créer des arbres de probas \og classiques \fg.
+
\vspace{1.5cm}
\hfill{}\textit{Merci à Anne pour ses retours et sa relecture !}
@@ -335,9 +341,9 @@ J'ai utilisé les {packages} de C. Tellechea, je vous conseille d'aller jeter un
\subsection{Options du package}
-\begin{codeinfo}
+\begin{codeattention}
Par défaut, \ctex{minted} est chargé et donc la compilation nécessite d'utiliser \textsf{shell-escape}. Cependant, si vous ne \underline{souhaitez pas} utiliser les commandes nécessitant \ctex{minted} vous pouvez charger le package \ctex{ProfLycee} avec l'option \Cle{nominted}.
-\end{codeinfo}
+\end{codeattention}
\begin{codetex}[listing only]
...
@@ -3214,6 +3220,166 @@ $P(15\leqslant X\leqslant25) \approx \numPbinomC[10]{100}{0.02}{15}{25} \approx
\newpage
+\section{Arbres de probabilités \og classiques \fg}\label{arbresprobas}
+
+\subsection{Introduction}
+
+\begin{codeidee}
+L'idée est de proposer des commandes pour créer des arbres de probabilités classiques (et homogènes), en \TikZ, de format :
+
+\begin{itemize}
+ \item $2\times2$ ou $2\times3$ ;
+ \item $3\times2$ ou $3\times3$.
+\end{itemize}
+
+Les (deux) commandes sont donc liées à un environnement \ctex{tikzpicture}, et elles créent les nœuds de l'arbre, pour exploitation ultérieure éventuelle.
+\end{codeidee}
+
+\begin{codetex}[listing only]
+%commande simple pour tracé de l'arbre
+\PLarbre[<options>]{<donnees>}
+
+%environnement pour tracé et exploitation éventuelle
+\begin{PLenvarbre}[<options>]{<donnees>}
+ <code tikz supplémentaire>
+\end{PLenvarbre}
+\end{codetex}
+
+\subsection{Options et arguments}
+
+\begin{codeinfo}
+Les \Cle{donnees} seront à préciser sous forme \ctex{<sommet1>/<proba1>/<position1>,<sommet2>/<proba2>/<position2>,...} avec comme \og sens de lecture \fg{} de la gauche vers la droite puis du haut vers le bas (on balaye les \textit{sous-arbres}), avec comme possibilités :
+
+\begin{itemize}
+ \item une donnée \Cle{<proba>} peuvent être laissé vide ;
+ \item une donnée \Cle{<position>} peut valoir \Cle{above} (au-dessus), \Cle{below} (en-dessous) ou être laissée \Cle{vide} (sur).
+\end{itemize}
+\end{codeinfo}
+
+\begin{codecles}
+Quelques \Cle{Clés} (communes) pour les deux commandes :
+
+\begin{itemize}
+ \item la clé \Cle{unite} pour préciser l'unité de l'environnement \TikZ{} ; \hfill~défaut \Cle{1cm}
+ \item la clé \Cle{espniv} pour l'espace (H) entre les étages ; \hfill~défaut \Cle{3.25}
+ \item la clé \Cle{espfeuille} pour l'espace (V) entre les feuilles ; \hfill~défaut \Cle{1}
+ \item la clé \Cle{type} pour le format, parmi \Cle{2x2} ou \Cle{2x3} ou \Cle{3x2} ou \Cle{3x3} ; \hfill~défaut \Cle{2x2}
+ \item la clé \Cle{police} pour la police des nœuds ; \hfill~défaut \Cle{\textbackslash{}normalfont\textbackslash{}normalsize}
+ \item la clé \Cle{policeprobas} pour la police des probas ; \hfill~défaut \Cle{\textbackslash{}normalfont\textbackslash{}small}
+ \item le booléen \Cle{inclineprobas} pour incliner les probas ; \hfill~défaut \Cle{true}
+ \item le booléen \Cle{fleche} pour afficher une flèche sur les branches ; \hfill~défaut \Cle{false}
+ \item la clé \Cle{styletrait} pour les branches, en langage \TikZ{} ; \hfill~défaut \Cle{vide}
+ \item la clé \Cle{eptrait} pour l'épaisseur des branches, en langage \TikZ{} ; \hfill~défaut \Cle{semithick}
+\end{itemize}
+\end{codecles}
+
+\begin{codetex}[listing only]
+\def\ArbreDeuxDeux{
+ $A$/\num{0.5}/,
+ $B$/\num{0.4}/,
+ $\overline{B}$/.../,
+ $\overline{A}$/.../,
+ $B$/.../,
+ $\overline{B}$/$\frac{1}{3}$/
+}
+
+\PLarbre{\ArbreDeuxDeux}
+
+%des éléménts, en gris, ont été rajoutés pour illustrer certaines options
+\end{codetex}
+
+\begin{codesortie}
+\begin{PLenvarbre}{$A$/\num{0.5}/,$B$/\num{0.4}/,$\overline{B}$/.../,$\overline{A}$/.../,$B$/.../,$\overline{B}$/$\frac{1}{3}$/}
+ \draw[lightgray] (R) node[left,font=\ttfamily\small] {(R)} ;
+ \draw[lightgray] (A11) node[below,font=\ttfamily\small] {(A11)} ;
+ \draw[lightgray] (A12) node[below,font=\ttfamily\small] {(A12)} ;
+ \draw[lightgray] (A21) node[below,font=\ttfamily\small] {(A21)} ;
+ \draw[lightgray] (A22) node[below,font=\ttfamily\small] {(A22)} ;
+ \draw[lightgray] (A23) node[below,font=\ttfamily\small] {(A23)} ;
+ \draw[lightgray] (A24) node[below,font=\ttfamily\small] {(A24)} ;
+ \draw[lightgray,<->] (0,-4) -- (3.25,-4) node[midway,below,font=\ttfamily\small] {espniv} ;
+ \draw[lightgray,<->] (3.25,-4) -- (6.5,-4) node[midway,below,font=\ttfamily\small] {espniv} ;
+ \draw[lightgray,<->] (7,0) -- (7,-1) node[midway,right,font=\ttfamily\small] {espfeuille} ;
+ \draw[lightgray,<->] (7,-1) -- (7,-2) node[midway,right,font=\ttfamily\small] {espfeuille} ;
+ \draw[lightgray,<->] (7,-2) -- (7,-3) node[midway,right,font=\ttfamily\small] {espfeuille} ;
+\end{PLenvarbre}
+\end{codesortie}
+
+\begin{codeinfo}
+Les nœuds crées par les commandes sont :
+
+\begin{itemize}
+ \item \ctex{R} pour la racine ;
+ \item \ctex{A1x} pour les nœuds du 1\up{er} niveau (de haut en bas) ;
+ \item \ctex{A2x} pour les nœuds du 2\up{d} niveau (de haut en bas).
+\end{itemize}
+\end{codeinfo}
+
+\subsection{Exemples complémentaires}
+
+\begin{codetex}[listing only]
+\def\ArbreTroisDeux{
+ $A_1$/\num{0.5}/above,
+ $B$/\num{0.4}/above,
+ $\overline{B}$/.../below,
+ $A_2$/.../above,
+ $B$/.../above,
+ $\overline{B}$/$\frac{1}{3}$/below,
+ $A_3$/.../below,
+ $B$/.../above,
+ $\overline{B}$/$\frac{4}{15}$/below
+}
+
+\begin{PLenvarbre}[type=3x2,fleche,espniv=5,espfeuille=1.25]{\ArbreTroisDeux}
+ \draw[ForestGreen,->] (A24)--($(A24)+(2.5,0)$) node[right,font=\sffamily] {code tikz rajouté} ;
+\end{PLenvarbre}
+\end{codetex}
+
+\begin{codesortie}
+\begin{PLenvarbre}[type=3x2,fleche,espniv=5,espfeuille=1.25]{$A_1$/\num{0.5}/above,$B$/\num{0.4}/above,$\overline{B}$/.../below,$A_2$/.../above,$B$/.../above,$\overline{B}$/$\frac{1}{3}$/below,$A_3$/.../below,$B$/.../above,$\overline{B}$/$\frac{4}{15}$/below}
+ \draw[ForestGreen,->] (A24)--($(A24)+(2.5,0)$) node[right,font=\sffamily] {code tikz rajouté} ;
+\end{PLenvarbre}
+\end{codesortie}
+
+\begin{codetex}[listing only]
+\def\ArbreDeuxTrois{
+ $A$/\num{0.05}/above,
+ $B_1$/\num{0.4}/above,
+ $B_2$/\num{0.35}/,
+ $B_3$//below,
+ $\overline{A}$/.../below,
+ $B_1$/$\frac{2}{15}$/above,
+ $B_2$/.../,
+ $B_3$/$\frac{1}{3}$/below
+}
+\PLarbre[type=2x3,inclineprobas=false,espfeuille=1.15]{\ArbreDeuxTrois}
+
+\def\ArbreTroisTrois{
+ $A_1$/\num{0.05}/,
+ $B_1$/{1/3}/,
+ $B_2$/{1/3}/,
+ $B_3$/{1/3}/,
+ $A_2$/\num{0.80}/,
+ $B_1$/{1/3}/,
+ $B_2$/{1/3}/,
+ $B_3$/{1/3}/,
+ $A_3$/\num{0.15}/,
+ $B_1$/{1/3}/,
+ $B_2$/{1/3}/,
+ $B_3$/{1/3}/
+}
+
+\PLarbre[type=3x3,styletrait={densely dashed},espfeuille=0.7,policeprobas=\scriptsize,police=\small]{\ArbreTroisTrois}
+\end{codetex}
+
+\begin{codesortie}
+\PLarbre[type=2x3,inclineprobas=false,espfeuille=1.15]{$A$/\num{0.05}/above,$B_1$/\num{0.4}/above,$B_2$/\num{0.35}/,$B_3$//below,$\overline{A}$/.../below,$B_1$/$\frac{2}{15}$/above,$B_2$/.../,$B_3$/$\frac{1}{3}$/below}
+~~
+\PLarbre[type=3x3,styletrait={densely dashed},espfeuille=0.7,policeprobas=\scriptsize,police=\small]{$A_1$/\num{0.05}/,$B_1$/{1/3}/,$B_2$/{1/3}/,$B_3$/{1/3}/,$A_2$/\num{0.80}/,$B_1$/{1/3}/,$B_2$/{1/3}/,$B_3$/{1/3}/,$A_3$/\num{0.15}/,$B_1$/{1/3}/,$B_2$/{1/3}/,$B_3$/{1/3}/}
+\end{codesortie}
+
+\newpage
+
\part{Outils divers et variés}
\section{Fractions, ensembles}
@@ -3687,8 +3853,8 @@ Quelques \Cle{clés} sont disponibles pour cette commande :
\begin{itemize}
\item le booléen \Cle{affbase} qui permet d'afficher ou non la base des nombres ; \hfill{}défaut \Cle{true}
- \item le booléen \Cle{details} qui permet d'afficher ou le détail par bloc de 4 ; \hfill{}défaut \Cle{true}
- \item la clé \Cle{trait} qui permet de modifier l'épaisseur du crochet. \hfill{}défaut \Cle{0.5pt}
+ \item le booléen \Cle{details} qui permet d'afficher ou le détail par bloc de 4. \hfill{}défaut \Cle{true}
+ %\item la clé \Cle{trait} qui permet de modifier l'épaisseur du crochet. \hfill{}défaut \Cle{0.5pt}
\end{itemize}
Le formatage est géré par le package \ctex{sinuitx}, le mieux est de positionner la commande dans un environnement mathématique.
@@ -3697,8 +3863,6 @@ Le formatage est géré par le package \ctex{sinuitx}, le mieux est de positionn
\begin{codetex}[listing only]
%conversion avec détails et affichage de la base
$\PLconvbinhex{110011111}$
-%conversion avec détails et affichage, et modif taille crochet
-$\PLconvbinhex[trait=1.5pt]{110011111}$
%conversion sans détails et affichage de la base
$\PLconvbinhex[details=false]{110011111}$
%conversion sans détails et sans affichage de la base
@@ -3708,8 +3872,6 @@ $\PLconvbinhex[affbase=false,details=false]{110011111}$
\begin{codesortie}
$\PLconvbinhex{110011111}$
-$\PLconvbinhex[trait=1.5pt]{110011111}$
-
$\PLconvbinhex[details=false]{110011111}$
$\PLconvbinhex[affbase=false,details=false]{110011111}$
@@ -3818,7 +3980,8 @@ Quelques options pour cette commande :
\item la clé \Cle{decalh} pour gérer le décalage H du \og rectangle \fg{}, qui peut être donné soit sous la forme \Cle{esp} ou soit sous la forme \Cle{espgauche/espdroite}; \hfill{}défaut \Cle{2pt}
\item la clé \Cle{decalv} pour le décalage vertical du \og rectangle \fg{} ; \hfill{}défaut \Cle{3pt}
\item la clé \Cle{noeud} pour le préfixe du nœud du premier et du dernier reste (pour utilisation en \TikZ) ; \hfill{}défaut \Cle{EEE}
- \item le booléen \Cle{rect} pour afficher ou non le \og rectangle \fg{} des restes. \hfill{}défaut \Cle{true}
+ \item le booléen \Cle{rect} pour afficher ou non le \og rectangle \fg{} des restes ; \hfill{}défaut \Cle{true}
+ \item le booléen \Cle{couleurres} pour afficher ou non la conversion en couleur (identique au rectangle). \hfill{}défaut \Cle{false}
\end{itemize}
\end{codecles}
@@ -3833,7 +3996,7 @@ Par divisions euclidiennes successives, \PLconvDepuisDec[rect=false]{54}{3}.
\PLconvDepuisDec[couleur=Goldenrod,decalh=6pt/2pt]{1012}{16}
%conversion avec nœud personnalisé et réutilisation
-\PLconvDepuisDec[couleur=ForestGreen,noeud=TEST]{100}{9}
+\PLconvDepuisDec[couleur=ForestGreen,couleurres,noeud=TEST]{100}{9}.
\begin{tikzpicture}
\draw[overlay,ForestGreen,thick,->] (TEST2.south east) to[bend right] ++ (3cm,-1cm) node[right] {test } ;
\end{tikzpicture}
@@ -3852,7 +4015,7 @@ Par divisions euclidiennes successives, \PLconvDepuisDec[rect=false]{54}{3}.
\medskip
-On obtient donc \PLconvDepuisDec[couleur=ForestGreen,noeud=TEST]{100}{9}
+On obtient donc \PLconvDepuisDec[couleur=ForestGreen,couleurres,noeud=TEST]{100}{9}.
\begin{tikzpicture}
\draw[overlay,ForestGreen,thick,->] (TEST2.south east) to[bend right] ++ (3cm,-1cm) node[right] {test } ;
\end{tikzpicture}
@@ -4025,14 +4188,12 @@ C,A,B,D
\end{filecontents*}
\begin{center}
- \renewcommand\arraystretch{1.25}
- \begin{tabular}{|c|c|c|c|}
- \hline
- \multicolumn{4}{|c|}{Notice} \\ \hline
- A & B & C & D \\ \hline
- 45 & 22 & 1 & 7 \\ \hline
- Noir & Vert & Jaune & Rouge \\ \hline
- \end{tabular}
+ \begin{tblr}{colspec={*{4}{Q[1.25cm,c,m]}},hlines,vlines,rows={1.15em}}
+ \SetCell[c=4]{c} Notice & & & \\
+ A & B & C & D \\
+ 45 & 22 & 1 & 7 \\
+ Noir & Vert & Jaune & Rouge \\
+ \end{tblr}
\end{center}
\hfill\begin{tikzpicture}[scale=0.9]
@@ -4157,13 +4318,18 @@ Les symboles affichés dans les cases sont situés aux nœuds de coordonnées $(
\end{filecontents*}
\begin{center}
- \renewcommand\arraystretch{1.25}
- \begin{tabular}{|c|c|c|c|c|c|}
- \hline
- \multicolumn{6}{|c|}{Notice} \\ \hline
- 1 & 2 & 3 & 5 & 6 & 9 \\ \hline
- Rouge & Marron & Jaune & Noir & Bleu & Blanc \\ \hline
- \end{tabular}
+ \begin{tblr}{colspec={*{6}{Q[1.25cm,c,m]}},hlines,vlines,rows={1.15em}}
+ \SetCell[c=6]{c} Notice & & & & & \\
+ 1 & 2 & 3 & 5 & 6 & 9 \\
+ Rouge & Marron & Jaune & Noir & Bleu & Blanc \\
+ \end{tblr}
+% \renewcommand\arraystretch{1.25}
+% \begin{tabular}{|c|c|c|c|c|c|}
+% \hline
+% \multicolumn{6}{|c|}{Notice} \\ \hline
+% 1 & 2 & 3 & 5 & 6 & 9 \\ \hline
+% Rouge & Marron & Jaune & Noir & Bleu & Blanc \\ \hline
+% \end{tabular}
\end{center}
\begin{center}
@@ -4432,11 +4598,15 @@ La grille, créée en \TikZ, est portée par le rectangle de \og coins \fg{} $(0
\part{Historique}
+{\small \bverb|v1.3.3|~:~~~~Ajout d'un environnement pour des arbres de probas classiques, en \TikZ{} (page \pageref{arbresprobas})
+
+{\small \bverb|v1.3.2|~:~~~~Correction d'un bug sur les conversions bintohex avec lualatex (page \pageref{conversions})
+
{\small \bverb|v1.3.1|~:~~~~Ajout d'une option pour ne pas afficher les bordures des corrections de pixelart (page \pageref{pixelart})
{\small \bverb|v1.3.0|~:~~~~Commande pour présenter une conversion depuis la base 10 (page \pageref{convrestes})
-{\small \bverb|v1.2.9|~:~~~~Correction des commandes avec simplekv
+{\small \bverb|v1.2.9|~:~~~~Correction des commandes avec \textsf{simplekv}
{\small \bverb|v1.2.8|~:~~~~Ajout d'une librairie \TikZ{} oubliée, et remise en forme de la documentation
@@ -4460,7 +4630,7 @@ La grille, créée en \TikZ, est portée par le rectangle de \og coins \fg{} $(0
{\small \bverb|v1.1.8|~:~~~~Style "Mainlevée" basique pour \TikZ (page \pageref{mainlevee})
-{\small \bverb|v1.1.7|~:~~~~Conversions bin/hex/dec (basées sur \ctex{xintbinhex}) avec quelques détails (page \pageref{conversions})
+{\small \bverb|v1.1.7|~:~~~~Conversions bin/hex/dec (basées sur \textsf{xintbinhex}) avec quelques détails (page \pageref{conversions})
{\small \bverb|v1.1.6|~:~~~~Ajout d'une commande pour déterminer les paramètres d'une régression linéaire par moindres carrés (page \pageref{reglin})
@@ -4482,15 +4652,15 @@ La grille, créée en \TikZ, est portée par le rectangle de \og coins \fg{} $(0
{\small \bverb|v1.0.6|~:~~~~Ajout d'une option \textsf{nominted} pour ne pas charger (pas besoin de compiler avec \textsf{shell-escape})
-{\small \bverb|v1.0.5|~:~~~~Ajout d'un environnement pour Python (minted) (page \pageref{pytminted})
+{\small \bverb|v1.0.5|~:~~~~Ajout d'un environnement pour Python (\textsf{minted}) (page \pageref{pytminted})
{\small \bverb|v1.0.4|~:~~~~Ajout des environnements pour Terminal (win, osx, unix) (page \pageref{terms})
{\small \bverb|v1.0.3|~:~~~~Ajout des environnements pour PseudoCode (page \pageref{pseudocode})
-{\small \bverb|v1.0.2|~:~~~~Ajout des environnements pour Python (pythontex) (page \pageref{pythontex})
+{\small \bverb|v1.0.2|~:~~~~Ajout des environnements pour Python (\textsf{pythontex}) (page \pageref{pythontex})
-{\small \bverb|v1.0.1|~:~~~~Modification mineure liée au chargement de \ctex{xcolor}
+{\small \bverb|v1.0.1|~:~~~~Modification mineure liée au chargement de \textsf{xcolor}
{\small \bverb|v1.0 |~:~~~~Version initiale}
diff --git a/macros/latex/contrib/proflycee/tex/ProfLycee.sty b/macros/latex/contrib/proflycee/tex/ProfLycee.sty
index cf741e124d..f869d6dc80 100644
--- a/macros/latex/contrib/proflycee/tex/ProfLycee.sty
+++ b/macros/latex/contrib/proflycee/tex/ProfLycee.sty
@@ -3,7 +3,9 @@
% or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ProfLycee}[2022/10/07 v1.3.1 - Aide pour l'utilisation de LaTeX en lycee]
+\ProvidesPackage{ProfLycee}[2022/10/12 v1.3.3 - Aide pour l'utilisation de LaTeX en lycee]
+% 1.3.2 Ajout de commandes pour des arbres de probas classiques, en tikz
+% 1.3.1 Correction d'une commande liée à la conversion bintohex (suppression clé trait)
% 1.3.1 Ajout d'une option pour ne pas afficher les bords des cases en pixelart
% 1.3.0 Ajout d'une commande pour mettre en forme une conversion depuis la base 10
% 1.2.9 Correction d'une incompatibilité avec simplekv (clés vides...)
@@ -1422,15 +1424,14 @@
}
%bin->hexa avec blocs de 4 chiffres
-\defKV[CONVBINHEX]{%
- trait=\def\epcrochet{#1}
-}
+%\defKV[CONVBINHEX]{%
+% trait=\def\epcrochet{#1}
+%}
\setKVdefault[CONVBINHEX]{%
- trait=0.5pt,%
+ %trait=0.5pt,%
affbase=true,%
details=true
}
-
%bourrage de 0 avant
\ExplSyntaxOn
\NewExpandableDocumentCommand{\PLstrzeros}{m}
@@ -1442,10 +1443,6 @@
}
\ExplSyntaxOff
-%conversion (visuelle) d'un bloc de 4 chiffres binaires
-\newcommand\PLconvblocbinhex[2][0.5pt]{%
- \underbracket[#1]{#2}_{\xintBinToHex{#2}}
-}
%la conversion complète
\newcommand\PLconvbinhex[2][]{%
@@ -1468,19 +1465,19 @@
\newcount\cpt
\cpt0
\loop\ifnum \cpt<\nbblocs
- \def\iinit{\fpeval{4*\cpt+1}}
- \def\ifinal{\fpeval{4*(\cpt+1)}}
- \StrMid{\resinter}{\iinit}{\ifinal}[\blocinter]
- \PLconvblocbinhex[\epcrochet]{\blocinter}
+ \def\iinit{\fpeval{4*\cpt+1}}%
+ \def\ifinal{\fpeval{4*(\cpt+1)}}%
+ \StrMid{\resinter}{\iinit}{\ifinal}[\blocinter]%
+ {\underbracket{\blocinter}_{\xintBinToHex{\blocinter}}\,}
\advance\cpt by 1
\repeat
- =
+ \!=
}%
{}
\xintBinToHex{\chbrut}\ifboolKV[CONVBINHEX]{affbase}{_{16}}{}
}
-%bin/hexa->dec avec écriture polynomiale
+%bin/hexa/bin->dec avec écriture polynomiale
\defKV[CONVTODEC]{%
basedep=\def\basedepart{#1}
}
@@ -1491,6 +1488,12 @@
zeros=true
}
+\ExplSyntaxOn
+\newcommand\convertbasetobasedix[2]{%
+ \int_from_base:nn {#1}{#2}
+}
+\ExplSyntaxOff
+
\newcommand\PLconvtodec[2][]{%
\useKVdefault[CONVTODEC]
\setKV[CONVTODEC]{#1}% on paramètres les nouvelles clés et on les simplifie
@@ -1554,6 +1557,38 @@
{}
}
+\newcommand\PLconvversdix[3][]{%1=options,%2=nb,%3=basedep
+ \useKVdefault[CONVTODEC]
+ \setKV[CONVTODEC]{#1}% on paramètres les nouvelles clés et on les simplifie
+ \def\NBdepart{#2}
+ \def\basedepart{#3}
+ \StrLen{\NBdepart}[\nbchiffres]
+ \StrChar{\NBdepart}{1}[\chiffre]
+ \NBdepart\ifboolKV[CONVTODEC]{affbase}{_{\basedepart}}{} =
+ \ifboolKV[CONVTODEC]{details}{%
+ \xintHexToDec{\chiffre}\times\basedepart^{\inteval{\nbchiffres-1}}%
+ \newcount\cpt
+ \cpt2
+ \loop\ifnum \cpt<\inteval{\nbchiffres+1}
+ \def\puiss{\inteval{\nbchiffres-\cpt}}
+ \StrChar{\NBdepart}{\cpt}[\chiffre]
+ \ifboolKV[CONVTODEC]{zeros}%
+ {%
+ +\xintHexToDec{\chiffre}\times\basedepart^{\puiss}%
+ }
+ {
+ \ifnum\xintHexToDec{\chiffre} > 0
+ +\xintHexToDec{\chiffre}\times\basedepart^{\puiss}%
+ \fi
+ }
+ \advance\cpt by 1
+ \repeat
+ =
+ }
+ {}
+ \num{\convertbasetobasedix{#2}{#3}}\ifboolKV[CONVTODEC]{affbase}{_{10}}{}
+}
+
%==============MainLevée TikZ========== OK !!
\tikzset{%
mainlevee/.style args={#1et#2}{decorate,decoration={random steps, segment length=#1,amplitude=#2}},
@@ -2360,7 +2395,8 @@
decalh=2pt,%
decalv=3pt,%
rect=true,%
- noeud=EEE
+ noeud=EEE,%
+ couleurres=false
}
\newcommand\PLconvDepuisDec[3][]{%
@@ -2385,17 +2421,415 @@
%dernière
\xdef\ValQ{\fpeval{trunc(\ValTMP/#3,0)}}\xdef\ValR{\fpeval{\ValTMP-#3*\ValQ}}%
\\ \num{\ValTMP}\uppercase{&}\num{\ValB}\times\num{\ValQ}\uppercase{&}\PLnoeud{\PLConvNoeud2}{\num{\ValR}}
- \end{array} \right| \Rightarrow \num{#2}_{10}=\convertbasedixtobase{#2}{#3}_{#3}}
+ \end{array} \right| \Rightarrow \num{#2}_{10}=\ifboolKV[convfromten]{couleurres}{\mathcolor{\PLConvCouleur}{\convertbasedixtobase{#2}{#3}_{#3}}}{\convertbasedixtobase{#2}{#3}_{#3}}}%
\ifboolKV[convfromten]{rect}%
{%
\IfSubStr{\PLConvDecalH}{/}%
{\StrCut{\PLConvDecalH}{/}{\PLConvDecalHg}{\PLConvDecalHd}}%
- {\def\PLConvDecalHg{\PLConvDecalH}\def\PLConvDecalHd{\PLConvDecalH}}
+ {\def\PLConvDecalHg{\PLConvDecalH}\def\PLConvDecalHd{\PLConvDecalH}}%
\begin{tikzpicture}
\draw[overlay,rounded corners=4pt,\PLConvCouleur,thick] ($(\PLConvNoeud1.north west)+(-\PLConvDecalHg,\PLConvDecalV)$) rectangle ($(\PLConvNoeud2.south east)+(\PLConvDecalHd,-\PLConvDecalV)$) ;
\draw[overlay,rounded corners=4pt,\PLConvCouleur,thick,->,>=latex] ($(\PLConvNoeud2.east)+(\PLConvDecalHd,0)$)--++(0,{0.75\baselineskip}) ;
- \end{tikzpicture}
- }{}
+ \end{tikzpicture}%
+ }{}%
+}
+
+%===============ARBRESPROBAS=========== OK !!
+\defKV[PLTIKZARBRE]{%
+ unite=\def\PLAPunite{#1},%
+ espniv=\def\PLAPespniv{#1},%
+ espfeuille=\def\PLAPespfeuille{#1},%
+ type=\def\PLAPtype{#1},%
+ police=\def\PLAPfont{#1},%
+ policeprobas=\def\PLAPfontproba{#1},%
+ styletrait=\def\PLAPtypetrait{#1},%
+ eptrait=\def\PLAPeptrait{#1}
+}
+
+\setKVdefault[PLTIKZARBRE]{%
+ unite=1cm,%
+ espniv=3.25,%
+ espfeuille=1,%
+ type=2x2,%
+ police=\normalfont\normalsize,%
+ policeprobas=\normalfont\small,%
+ inclineprobas=true,%
+ fleche=false,%
+ styletrait={},%
+ eptrait=semithick
+}
+
+\NewDocumentCommand\PLarbre{ O{} m }{%1=options,2=libellés
+ \useKVdefault[PLTIKZARBRE]%
+ \setKV[PLTIKZARBRE]{#1}%
+ \setsepchar[.]{,./}%
+ \readlist*\PLARBREDONNES{#2}%
+ \begin{tikzpicture}[x=\PLAPunite,y=\PLAPunite]
+ %styles
+ \tikzstyle{noeud} = [font=\PLAPfont]
+ \tikzstyle{probas}= [font=\PLAPfontproba]
+ \ifboolKV[PLTIKZARBRE]{inclineprobas}
+ {\tikzstyle{PLetiquette}=[pos=0.525,sloped,fill=white]}
+ {\tikzstyle{PLetiquette}=[pos=0.525,fill=white]}
+ \ifboolKV[PLTIKZARBRE]{fleche}
+ {\tikzstyle{PLfleche}=[->,>=latex,\PLAPtypetrait,\PLAPeptrait]}
+ {\tikzstyle{PLfleche}=[\PLAPtypetrait,\PLAPeptrait]}
+ %arbre2x2
+ \IfEq{\PLAPtype}{2x2}
+ {%
+ \coordinate (R) at ({0*\PLAPespniv},{-1.5*\PLAPespfeuille}) ;
+ \node[noeud] (A11) at ({1*\PLAPespniv},{-0.5*\PLAPespfeuille}) {\PLARBREDONNES[1,1]};
+ \node[noeud] (A21) at ({2*\PLAPespniv},{-0*\PLAPespfeuille}) {\PLARBREDONNES[2,1]};
+ \node[noeud] (A22) at ({2*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[3,1]};
+ \node[noeud] (A12) at ({1*\PLAPespniv},{-2.5*\PLAPespfeuille}) {\PLARBREDONNES[4,1]};
+ \node[noeud] (A23) at ({2*\PLAPespniv},{-2*\PLAPespfeuille}) {\PLARBREDONNES[5,1]};
+ \node[noeud] (A24) at ({2*\PLAPespniv},{-3*\PLAPespfeuille}) {\PLARBREDONNES[6,1]};
+ \IfEq{\PLARBREDONNES[1,2]}{}
+ {\draw[PLfleche] (R)--(A11) ;}
+ {\draw[PLfleche] (R)--(A11) node[probas,PLetiquette,{\PLARBREDONNES[1,3]}] {{\PLARBREDONNES[1,2]}} ;}
+ \IfEq{\PLARBREDONNES[2,2]}{}
+ {\draw[PLfleche] (A11)--(A21) ;}
+ {\draw[PLfleche] (A11)--(A21) node[probas,PLetiquette,{\PLARBREDONNES[2,3]}] {{\PLARBREDONNES[2,2]}} ;}
+ \IfEq{\PLARBREDONNES[3,2]}{}
+ {\draw[PLfleche] (A11)--(A22) ;}
+ {\draw[PLfleche] (A11)--(A22) node[probas,PLetiquette,{\PLARBREDONNES[3,3]}] {{\PLARBREDONNES[3,2]}} ;}
+ \IfEq{\PLARBREDONNES[4,2]}{}
+ {\draw[PLfleche] (R)--(A12) ;}
+ {\draw[PLfleche] (R)--(A12) node[probas,PLetiquette,{\PLARBREDONNES[4,3]}] {{\PLARBREDONNES[4,2]}} ;}
+ \IfEq{\PLARBREDONNES[5,2]}{}
+ {\draw[PLfleche] (A12)--(A23) ;}
+ {\draw[PLfleche] (A12)--(A23) node[probas,PLetiquette,{\PLARBREDONNES[5,3]}] {{\PLARBREDONNES[5,2]}} ;}
+ \IfEq{\PLARBREDONNES[6,2]}{}
+ {\draw[PLfleche] (A12)--(A24) ;}
+ {\draw[PLfleche] (A12)--(A24) node[probas,PLetiquette,{\PLARBREDONNES[6,3]}] {{\PLARBREDONNES[6,2]}} ;}
+ }{}
+ %arbre3x2
+ \IfEq{\PLAPtype}{3x2}
+ {%
+ %sommets
+ \coordinate (R) at ({0*\PLAPespniv},{-2.5*\PLAPespfeuille}) ;
+ \node[noeud] (A11) at ({1*\PLAPespniv},{-0.5*\PLAPespfeuille}) {\PLARBREDONNES[1,1]};
+ \node[noeud] (A21) at ({2*\PLAPespniv},{-0*\PLAPespfeuille}) {\PLARBREDONNES[2,1]};
+ \node[noeud] (A22) at ({2*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[3,1]};
+ \node[noeud] (A12) at ({1*\PLAPespniv},{-2.5*\PLAPespfeuille}) {\PLARBREDONNES[4,1]};
+ \node[noeud] (A23) at ({2*\PLAPespniv},{-2*\PLAPespfeuille}) {\PLARBREDONNES[5,1]};
+ \node[noeud] (A24) at ({2*\PLAPespniv},{-3*\PLAPespfeuille}) {\PLARBREDONNES[6,1]};
+ \node[noeud] (A13) at ({1*\PLAPespniv},{-4.5*\PLAPespfeuille}) {\PLARBREDONNES[7,1]};
+ \node[noeud] (A25) at ({2*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[8,1]};
+ \node[noeud] (A26) at ({2*\PLAPespniv},{-5*\PLAPespfeuille}) {\PLARBREDONNES[9,1]};
+ %branches
+ \IfEq{\PLARBREDONNES[1,2]}{}
+ {\draw[PLfleche] (R)--(A11) ;}
+ {\draw[PLfleche] (R)--(A11) node[probas,PLetiquette,{\PLARBREDONNES[1,3]}] {{\PLARBREDONNES[1,2]}} ;}
+ \IfEq{\PLARBREDONNES[2,2]}{}
+ {\draw[PLfleche] (A11)--(A21) ;}
+ {\draw[PLfleche] (A11)--(A21) node[probas,PLetiquette,{\PLARBREDONNES[2,3]}] {{\PLARBREDONNES[2,2]}} ;}
+ \IfEq{\PLARBREDONNES[3,2]}{}
+ {\draw[PLfleche] (A11)--(A22) ;}
+ {\draw[PLfleche] (A11)--(A22) node[probas,PLetiquette,{\PLARBREDONNES[3,3]}] {{\PLARBREDONNES[3,2]}} ;}
+ \IfEq{\PLARBREDONNES[4,2]}{}
+ {\draw[PLfleche] (R)--(A12) ;}
+ {\draw[PLfleche] (R)--(A12) node[probas,PLetiquette,{\PLARBREDONNES[4,3]}] {{\PLARBREDONNES[4,2]}} ;}
+ \IfEq{\PLARBREDONNES[5,2]}{}
+ {\draw[PLfleche] (A12)--(A23) ;}
+ {\draw[PLfleche] (A12)--(A23) node[probas,PLetiquette,{\PLARBREDONNES[5,3]}] {{\PLARBREDONNES[5,2]}} ;}
+ \IfEq{\PLARBREDONNES[6,2]}{}
+ {\draw[PLfleche] (A12)--(A24) ;}
+ {\draw[PLfleche] (A12)--(A24) node[probas,PLetiquette,{\PLARBREDONNES[6,3]}] {{\PLARBREDONNES[6,2]}} ;}
+ \IfEq{\PLARBREDONNES[7,2]}{}
+ {\draw[PLfleche] (R)--(A13) ;}
+ {\draw[PLfleche] (R)--(A13) node[probas,PLetiquette,{\PLARBREDONNES[7,3]}] {{\PLARBREDONNES[7,2]}} ;}
+ \IfEq{\PLARBREDONNES[8,2]}{}
+ {\draw[PLfleche] (A13)--(A25) ;}
+ {\draw[PLfleche] (A13)--(A25) node[probas,PLetiquette,{\PLARBREDONNES[8,3]}] {{\PLARBREDONNES[8,2]}} ;}
+ \IfEq{\PLARBREDONNES[9,2]}{}
+ {\draw[PLfleche] (A13)--(A26) ;}
+ {\draw[PLfleche] (A13)--(A26) node[probas,PLetiquette,{\PLARBREDONNES[9,3]}] {{\PLARBREDONNES[9,2]}} ;}
+ }{}
+ %arbre2x3
+ \IfEq{\PLAPtype}{2x3}
+ {%
+ %sommets
+ \coordinate (R) at ({0*\PLAPespniv},{-2.5*\PLAPespfeuille}) ;
+ \node[noeud] (A11) at ({1*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[1,1]};
+ \node[noeud] (A12) at ({1*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[5,1]};
+ \node[noeud] (A21) at ({2*\PLAPespniv},{-0*\PLAPespfeuille}) {\PLARBREDONNES[2,1]};
+ \node[noeud] (A22) at ({2*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[3,1]};
+ \node[noeud] (A23) at ({2*\PLAPespniv},{-2*\PLAPespfeuille}) {\PLARBREDONNES[4,1]};
+ \node[noeud] (A24) at ({2*\PLAPespniv},{-3*\PLAPespfeuille}) {\PLARBREDONNES[6,1]};
+ \node[noeud] (A25) at ({2*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[7,1]};
+ \node[noeud] (A26) at ({2*\PLAPespniv},{-5*\PLAPespfeuille}) {\PLARBREDONNES[8,1]};
+ %branches
+ \IfEq{\PLARBREDONNES[1,2]}{}
+ {\draw[PLfleche] (R)--(A11) ;}
+ {\draw[PLfleche] (R)--(A11) node[probas,PLetiquette,{\PLARBREDONNES[1,3]}] {{\PLARBREDONNES[1,2]}} ;}
+ \IfEq{\PLARBREDONNES[5,2]}{}
+ {\draw[PLfleche] (R)--(A12) ;}
+ {\draw[PLfleche] (R)--(A12) node[probas,PLetiquette,{\PLARBREDONNES[5,3]}] {{\PLARBREDONNES[5,2]}} ;}
+ \IfEq{\PLARBREDONNES[2,2]}{}
+ {\draw[PLfleche] (A11)--(A21) ;}
+ {\draw[PLfleche] (A11)--(A21) node[probas,PLetiquette,{\PLARBREDONNES[2,3]}] {{\PLARBREDONNES[2,2]}} ;}
+ \IfEq{\PLARBREDONNES[3,2]}{}
+ {\draw[PLfleche] (A11)--(A22) ;}
+ {\draw[PLfleche] (A11)--(A22) node[probas,PLetiquette,{\PLARBREDONNES[3,3]}] {{\PLARBREDONNES[3,2]}} ;}
+ \IfEq{\PLARBREDONNES[4,2]}{}
+ {\draw[PLfleche] (A11)--(A23) ;}
+ {\draw[PLfleche] (A11)--(A23) node[probas,PLetiquette,{\PLARBREDONNES[4,3]}] {{\PLARBREDONNES[4,2]}} ;}
+ \IfEq{\PLARBREDONNES[6,2]}{}
+ {\draw[PLfleche] (A12)--(A24) ;}
+ {\draw[PLfleche] (A12)--(A24) node[probas,PLetiquette,{\PLARBREDONNES[6,3]}] {{\PLARBREDONNES[6,2]}} ;}
+ \IfEq{\PLARBREDONNES[7,2]}{}
+ {\draw[PLfleche] (A12)--(A25) ;}
+ {\draw[PLfleche] (A12)--(A25) node[probas,PLetiquette,{\PLARBREDONNES[7,3]}] {{\PLARBREDONNES[7,2]}} ;}
+ \IfEq{\PLARBREDONNES[8,2]}{}
+ {\draw[PLfleche] (A12)--(A26) ;}
+ {\draw[PLfleche] (A12)--(A26) node[probas,PLetiquette,{\PLARBREDONNES[8,3]}] {{\PLARBREDONNES[8,2]}} ;}
+ }{}
+ %arbre2x3
+ \IfEq{\PLAPtype}{3x3}
+ {%
+ %sommets
+ \coordinate (R) at ({0*\PLAPespniv},{-4*\PLAPespfeuille}) ;
+ \node[noeud] (A11) at ({1*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[1,1]};
+ \node[noeud] (A12) at ({1*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[5,1]};
+ \node[noeud] (A13) at ({1*\PLAPespniv},{-7*\PLAPespfeuille}) {\PLARBREDONNES[10,1]};
+ \node[noeud] (A21) at ({2*\PLAPespniv},{-0*\PLAPespfeuille}) {\PLARBREDONNES[2,1]};
+ \node[noeud] (A22) at ({2*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[3,1]};
+ \node[noeud] (A23) at ({2*\PLAPespniv},{-2*\PLAPespfeuille}) {\PLARBREDONNES[4,1]};
+ \node[noeud] (A24) at ({2*\PLAPespniv},{-3*\PLAPespfeuille}) {\PLARBREDONNES[6,1]};
+ \node[noeud] (A25) at ({2*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[7,1]};
+ \node[noeud] (A26) at ({2*\PLAPespniv},{-5*\PLAPespfeuille}) {\PLARBREDONNES[8,1]};
+ \node[noeud] (A27) at ({2*\PLAPespniv},{-6*\PLAPespfeuille}) {\PLARBREDONNES[10,1]};
+ \node[noeud] (A28) at ({2*\PLAPespniv},{-7*\PLAPespfeuille}) {\PLARBREDONNES[11,1]};
+ \node[noeud] (A29) at ({2*\PLAPespniv},{-8*\PLAPespfeuille}) {\PLARBREDONNES[12,1]};
+ %branches
+ \IfEq{\PLARBREDONNES[1,2]}{}
+ {\draw[PLfleche] (R)--(A11) ;}
+ {\draw[PLfleche] (R)--(A11) node[probas,PLetiquette,{\PLARBREDONNES[1,3]}] {{\PLARBREDONNES[1,2]}} ;}
+ \IfEq{\PLARBREDONNES[5,2]}{}
+ {\draw[PLfleche] (R)--(A12) ;}
+ {\draw[PLfleche] (R)--(A12) node[probas,PLetiquette,{\PLARBREDONNES[5,3]}] {{\PLARBREDONNES[5,2]}} ;}
+ \IfEq{\PLARBREDONNES[9,2]}{}
+ {\draw[PLfleche] (R)--(A13) ;}
+ {\draw[PLfleche] (R)--(A13) node[probas,PLetiquette,{\PLARBREDONNES[9,3]}] {{\PLARBREDONNES[9,2]}} ;}
+ %N2
+ \IfEq{\PLARBREDONNES[2,2]}{}
+ {\draw[PLfleche] (A11)--(A21) ;}
+ {\draw[PLfleche] (A11)--(A21) node[probas,PLetiquette,{\PLARBREDONNES[2,3]}] {{\PLARBREDONNES[2,2]}} ;}
+ \IfEq{\PLARBREDONNES[3,2]}{}
+ {\draw[PLfleche] (A11)--(A22) ;}
+ {\draw[PLfleche] (A11)--(A22) node[probas,PLetiquette,{\PLARBREDONNES[3,3]}] {{\PLARBREDONNES[3,2]}} ;}
+ \IfEq{\PLARBREDONNES[4,2]}{}
+ {\draw[PLfleche] (A11)--(A23) ;}
+ {\draw[PLfleche] (A11)--(A23) node[probas,PLetiquette,{\PLARBREDONNES[4,3]}] {{\PLARBREDONNES[4,2]}} ;}
+ \IfEq{\PLARBREDONNES[6,2]}{}
+ {\draw[PLfleche] (A12)--(A24) ;}
+ {\draw[PLfleche] (A12)--(A24) node[probas,PLetiquette,{\PLARBREDONNES[6,3]}] {{\PLARBREDONNES[6,2]}} ;}
+ \IfEq{\PLARBREDONNES[7,2]}{}
+ {\draw[PLfleche] (A12)--(A25) ;}
+ {\draw[PLfleche] (A12)--(A25) node[probas,PLetiquette,{\PLARBREDONNES[7,3]}] {{\PLARBREDONNES[7,2]}} ;}
+ \IfEq{\PLARBREDONNES[8,2]}{}
+ {\draw[PLfleche] (A12)--(A26) ;}
+ {\draw[PLfleche] (A12)--(A26) node[probas,PLetiquette,{\PLARBREDONNES[8,3]}] {{\PLARBREDONNES[8,2]}} ;}
+ \IfEq{\PLARBREDONNES[10,2]}{}
+ {\draw[PLfleche] (A13)--(A27) ;}
+ {\draw[PLfleche] (A13)--(A27) node[probas,PLetiquette,{\PLARBREDONNES[10,3]}] {{\PLARBREDONNES[10,2]}} ;}
+ \IfEq{\PLARBREDONNES[11,2]}{}
+ {\draw[PLfleche] (A13)--(A28) ;}
+ {\draw[PLfleche] (A13)--(A28) node[probas,PLetiquette,{\PLARBREDONNES[11,3]}] {{\PLARBREDONNES[11,2]}} ;}
+ \IfEq{\PLARBREDONNES[12,2]}{}
+ {\draw[PLfleche] (A13)--(A29) ;}
+ {\draw[PLfleche] (A13)--(A29) node[probas,PLetiquette,{\PLARBREDONNES[12,3]}] {{\PLARBREDONNES[12,2]}} ;}
+ }{}
+ \end{tikzpicture}
+}
+
+\NewDocumentEnvironment{PLenvarbre}{ O{} m }%1=options,2=libellés
+{
+ \useKVdefault[PLTIKZARBRE]
+ \setKV[PLTIKZARBRE]{#1}
+ \setsepchar[.]{,./}%
+ \readlist*\PLARBREDONNES{#2}
+ \begin{tikzpicture}[x=\PLAPunite,y=\PLAPunite]
+ %styles
+ \tikzstyle{noeud} = [font=\PLAPfont]
+ \tikzstyle{probas}= [font=\PLAPfontproba]
+ \ifboolKV[PLTIKZARBRE]{inclineprobas}
+ {\tikzstyle{PLetiquette}=[pos=0.525,sloped,fill=white]}
+ {\tikzstyle{PLetiquette}=[pos=0.525,fill=white]}
+ \ifboolKV[PLTIKZARBRE]{fleche}
+ {\tikzstyle{PLfleche}=[->,>=latex,\PLAPtypetrait,\PLAPeptrait]}
+ {\tikzstyle{PLfleche}=[\PLAPtypetrait,\PLAPeptrait]}
+ %arbre2x2
+ \IfEq{\PLAPtype}{2x2}
+ {%
+ \coordinate (R) at ({0*\PLAPespniv},{-1.5*\PLAPespfeuille}) ;
+ \node[noeud] (A11) at ({1*\PLAPespniv},{-0.5*\PLAPespfeuille}) {\PLARBREDONNES[1,1]};
+ \node[noeud] (A21) at ({2*\PLAPespniv},{-0*\PLAPespfeuille}) {\PLARBREDONNES[2,1]};
+ \node[noeud] (A22) at ({2*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[3,1]};
+ \node[noeud] (A12) at ({1*\PLAPespniv},{-2.5*\PLAPespfeuille}) {\PLARBREDONNES[4,1]};
+ \node[noeud] (A23) at ({2*\PLAPespniv},{-2*\PLAPespfeuille}) {\PLARBREDONNES[5,1]};
+ \node[noeud] (A24) at ({2*\PLAPespniv},{-3*\PLAPespfeuille}) {\PLARBREDONNES[6,1]};
+ \IfEq{\PLARBREDONNES[1,2]}{}
+ {\draw[PLfleche] (R)--(A11) ;}
+ {\draw[PLfleche] (R)--(A11) node[probas,PLetiquette,{\PLARBREDONNES[1,3]}] {{\PLARBREDONNES[1,2]}} ;}
+ \IfEq{\PLARBREDONNES[2,2]}{}
+ {\draw[PLfleche] (A11)--(A21) ;}
+ {\draw[PLfleche] (A11)--(A21) node[probas,PLetiquette,{\PLARBREDONNES[2,3]}] {{\PLARBREDONNES[2,2]}} ;}
+ \IfEq{\PLARBREDONNES[3,2]}{}
+ {\draw[PLfleche] (A11)--(A22) ;}
+ {\draw[PLfleche] (A11)--(A22) node[probas,PLetiquette,{\PLARBREDONNES[3,3]}] {{\PLARBREDONNES[3,2]}} ;}
+ \IfEq{\PLARBREDONNES[4,2]}{}
+ {\draw[PLfleche] (R)--(A12) ;}
+ {\draw[PLfleche] (R)--(A12) node[probas,PLetiquette,{\PLARBREDONNES[4,3]}] {{\PLARBREDONNES[4,2]}} ;}
+ \IfEq{\PLARBREDONNES[5,2]}{}
+ {\draw[PLfleche] (A12)--(A23) ;}
+ {\draw[PLfleche] (A12)--(A23) node[probas,PLetiquette,{\PLARBREDONNES[5,3]}] {{\PLARBREDONNES[5,2]}} ;}
+ \IfEq{\PLARBREDONNES[6,2]}{}
+ {\draw[PLfleche] (A12)--(A24) ;}
+ {\draw[PLfleche] (A12)--(A24) node[probas,PLetiquette,{\PLARBREDONNES[6,3]}] {{\PLARBREDONNES[6,2]}} ;}
+ }{}
+ %arbre3x2
+ \IfEq{\PLAPtype}{3x2}
+ {%
+ %sommets
+ \coordinate (R) at ({0*\PLAPespniv},{-2.5*\PLAPespfeuille}) ;
+ \node[noeud] (A11) at ({1*\PLAPespniv},{-0.5*\PLAPespfeuille}) {\PLARBREDONNES[1,1]};
+ \node[noeud] (A21) at ({2*\PLAPespniv},{-0*\PLAPespfeuille}) {\PLARBREDONNES[2,1]};
+ \node[noeud] (A22) at ({2*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[3,1]};
+ \node[noeud] (A12) at ({1*\PLAPespniv},{-2.5*\PLAPespfeuille}) {\PLARBREDONNES[4,1]};
+ \node[noeud] (A23) at ({2*\PLAPespniv},{-2*\PLAPespfeuille}) {\PLARBREDONNES[5,1]};
+ \node[noeud] (A24) at ({2*\PLAPespniv},{-3*\PLAPespfeuille}) {\PLARBREDONNES[6,1]};
+ \node[noeud] (A13) at ({1*\PLAPespniv},{-4.5*\PLAPespfeuille}) {\PLARBREDONNES[7,1]};
+ \node[noeud] (A25) at ({2*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[8,1]};
+ \node[noeud] (A26) at ({2*\PLAPespniv},{-5*\PLAPespfeuille}) {\PLARBREDONNES[9,1]};
+ %branches
+ \IfEq{\PLARBREDONNES[1,2]}{}
+ {\draw[PLfleche] (R)--(A11) ;}
+ {\draw[PLfleche] (R)--(A11) node[probas,PLetiquette,{\PLARBREDONNES[1,3]}] {{\PLARBREDONNES[1,2]}} ;}
+ \IfEq{\PLARBREDONNES[2,2]}{}
+ {\draw[PLfleche] (A11)--(A21) ;}
+ {\draw[PLfleche] (A11)--(A21) node[probas,PLetiquette,{\PLARBREDONNES[2,3]}] {{\PLARBREDONNES[2,2]}} ;}
+ \IfEq{\PLARBREDONNES[3,2]}{}
+ {\draw[PLfleche] (A11)--(A22) ;}
+ {\draw[PLfleche] (A11)--(A22) node[probas,PLetiquette,{\PLARBREDONNES[3,3]}] {{\PLARBREDONNES[3,2]}} ;}
+ \IfEq{\PLARBREDONNES[4,2]}{}
+ {\draw[PLfleche] (R)--(A12) ;}
+ {\draw[PLfleche] (R)--(A12) node[probas,PLetiquette,{\PLARBREDONNES[4,3]}] {{\PLARBREDONNES[4,2]}} ;}
+ \IfEq{\PLARBREDONNES[5,2]}{}
+ {\draw[PLfleche] (A12)--(A23) ;}
+ {\draw[PLfleche] (A12)--(A23) node[probas,PLetiquette,{\PLARBREDONNES[5,3]}] {{\PLARBREDONNES[5,2]}} ;}
+ \IfEq{\PLARBREDONNES[6,2]}{}
+ {\draw[PLfleche] (A12)--(A24) ;}
+ {\draw[PLfleche] (A12)--(A24) node[probas,PLetiquette,{\PLARBREDONNES[6,3]}] {{\PLARBREDONNES[6,2]}} ;}
+ \IfEq{\PLARBREDONNES[7,2]}{}
+ {\draw[PLfleche] (R)--(A13) ;}
+ {\draw[PLfleche] (R)--(A13) node[probas,PLetiquette,{\PLARBREDONNES[7,3]}] {{\PLARBREDONNES[7,2]}} ;}
+ \IfEq{\PLARBREDONNES[8,2]}{}
+ {\draw[PLfleche] (A13)--(A25) ;}
+ {\draw[PLfleche] (A13)--(A25) node[probas,PLetiquette,{\PLARBREDONNES[8,3]}] {{\PLARBREDONNES[8,2]}} ;}
+ \IfEq{\PLARBREDONNES[9,2]}{}
+ {\draw[PLfleche] (A13)--(A26) ;}
+ {\draw[PLfleche] (A13)--(A26) node[probas,PLetiquette,{\PLARBREDONNES[9,3]}] {{\PLARBREDONNES[9,2]}} ;}
+ }{}
+ %arbre2x3
+ \IfEq{\PLAPtype}{2x3}
+ {%
+ %sommets
+ \coordinate (R) at ({0*\PLAPespniv},{-2.5*\PLAPespfeuille}) ;
+ \node[noeud] (A11) at ({1*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[1,1]};
+ \node[noeud] (A12) at ({1*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[5,1]};
+ \node[noeud] (A21) at ({2*\PLAPespniv},{-0*\PLAPespfeuille}) {\PLARBREDONNES[2,1]};
+ \node[noeud] (A22) at ({2*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[3,1]};
+ \node[noeud] (A23) at ({2*\PLAPespniv},{-2*\PLAPespfeuille}) {\PLARBREDONNES[4,1]};
+ \node[noeud] (A24) at ({2*\PLAPespniv},{-3*\PLAPespfeuille}) {\PLARBREDONNES[6,1]};
+ \node[noeud] (A25) at ({2*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[7,1]};
+ \node[noeud] (A26) at ({2*\PLAPespniv},{-5*\PLAPespfeuille}) {\PLARBREDONNES[8,1]};
+ %branches
+ \IfEq{\PLARBREDONNES[1,2]}{}
+ {\draw[PLfleche] (R)--(A11) ;}
+ {\draw[PLfleche] (R)--(A11) node[probas,PLetiquette,{\PLARBREDONNES[1,3]}] {{\PLARBREDONNES[1,2]}} ;}
+ \IfEq{\PLARBREDONNES[5,2]}{}
+ {\draw[PLfleche] (R)--(A12) ;}
+ {\draw[PLfleche] (R)--(A12) node[probas,PLetiquette,{\PLARBREDONNES[5,3]}] {{\PLARBREDONNES[5,2]}} ;}
+ \IfEq{\PLARBREDONNES[2,2]}{}
+ {\draw[PLfleche] (A11)--(A21) ;}
+ {\draw[PLfleche] (A11)--(A21) node[probas,PLetiquette,{\PLARBREDONNES[2,3]}] {{\PLARBREDONNES[2,2]}} ;}
+ \IfEq{\PLARBREDONNES[3,2]}{}
+ {\draw[PLfleche] (A11)--(A22) ;}
+ {\draw[PLfleche] (A11)--(A22) node[probas,PLetiquette,{\PLARBREDONNES[3,3]}] {{\PLARBREDONNES[3,2]}} ;}
+ \IfEq{\PLARBREDONNES[4,2]}{}
+ {\draw[PLfleche] (A11)--(A23) ;}
+ {\draw[PLfleche] (A11)--(A23) node[probas,PLetiquette,{\PLARBREDONNES[4,3]}] {{\PLARBREDONNES[4,2]}} ;}
+ \IfEq{\PLARBREDONNES[6,2]}{}
+ {\draw[PLfleche] (A12)--(A24) ;}
+ {\draw[PLfleche] (A12)--(A24) node[probas,PLetiquette,{\PLARBREDONNES[6,3]}] {{\PLARBREDONNES[6,2]}} ;}
+ \IfEq{\PLARBREDONNES[7,2]}{}
+ {\draw[PLfleche] (A12)--(A25) ;}
+ {\draw[PLfleche] (A12)--(A25) node[probas,PLetiquette,{\PLARBREDONNES[7,3]}] {{\PLARBREDONNES[7,2]}} ;}
+ \IfEq{\PLARBREDONNES[8,2]}{}
+ {\draw[PLfleche] (A12)--(A26) ;}
+ {\draw[PLfleche] (A12)--(A26) node[probas,PLetiquette,{\PLARBREDONNES[8,3]}] {{\PLARBREDONNES[8,2]}} ;}
+ }{}
+ %arbre2x3
+ \IfEq{\PLAPtype}{3x3}
+ {%
+ %sommets
+ \coordinate (R) at ({0*\PLAPespniv},{-4*\PLAPespfeuille}) ;
+ \node[noeud] (A11) at ({1*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[1,1]};
+ \node[noeud] (A12) at ({1*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[5,1]};
+ \node[noeud] (A13) at ({1*\PLAPespniv},{-7*\PLAPespfeuille}) {\PLARBREDONNES[10,1]};
+ \node[noeud] (A21) at ({2*\PLAPespniv},{-0*\PLAPespfeuille}) {\PLARBREDONNES[2,1]};
+ \node[noeud] (A22) at ({2*\PLAPespniv},{-1*\PLAPespfeuille}) {\PLARBREDONNES[3,1]};
+ \node[noeud] (A23) at ({2*\PLAPespniv},{-2*\PLAPespfeuille}) {\PLARBREDONNES[4,1]};
+ \node[noeud] (A24) at ({2*\PLAPespniv},{-3*\PLAPespfeuille}) {\PLARBREDONNES[6,1]};
+ \node[noeud] (A25) at ({2*\PLAPespniv},{-4*\PLAPespfeuille}) {\PLARBREDONNES[7,1]};
+ \node[noeud] (A26) at ({2*\PLAPespniv},{-5*\PLAPespfeuille}) {\PLARBREDONNES[8,1]};
+ \node[noeud] (A27) at ({2*\PLAPespniv},{-6*\PLAPespfeuille}) {\PLARBREDONNES[10,1]};
+ \node[noeud] (A28) at ({2*\PLAPespniv},{-7*\PLAPespfeuille}) {\PLARBREDONNES[11,1]};
+ \node[noeud] (A29) at ({2*\PLAPespniv},{-8*\PLAPespfeuille}) {\PLARBREDONNES[12,1]};
+ %branches
+ \IfEq{\PLARBREDONNES[1,2]}{}
+ {\draw[PLfleche] (R)--(A11) ;}
+ {\draw[PLfleche] (R)--(A11) node[probas,PLetiquette,{\PLARBREDONNES[1,3]}] {{\PLARBREDONNES[1,2]}} ;}
+ \IfEq{\PLARBREDONNES[5,2]}{}
+ {\draw[PLfleche] (R)--(A12) ;}
+ {\draw[PLfleche] (R)--(A12) node[probas,PLetiquette,{\PLARBREDONNES[5,3]}] {{\PLARBREDONNES[5,2]}} ;}
+ \IfEq{\PLARBREDONNES[9,2]}{}
+ {\draw[PLfleche] (R)--(A13) ;}
+ {\draw[PLfleche] (R)--(A13) node[probas,PLetiquette,{\PLARBREDONNES[9,3]}] {{\PLARBREDONNES[9,2]}} ;}
+ %N2
+ \IfEq{\PLARBREDONNES[2,2]}{}
+ {\draw[PLfleche] (A11)--(A21) ;}
+ {\draw[PLfleche] (A11)--(A21) node[probas,PLetiquette,{\PLARBREDONNES[2,3]}] {{\PLARBREDONNES[2,2]}} ;}
+ \IfEq{\PLARBREDONNES[3,2]}{}
+ {\draw[PLfleche] (A11)--(A22) ;}
+ {\draw[PLfleche] (A11)--(A22) node[probas,PLetiquette,{\PLARBREDONNES[3,3]}] {{\PLARBREDONNES[3,2]}} ;}
+ \IfEq{\PLARBREDONNES[4,2]}{}
+ {\draw[PLfleche] (A11)--(A23) ;}
+ {\draw[PLfleche] (A11)--(A23) node[probas,PLetiquette,{\PLARBREDONNES[4,3]}] {{\PLARBREDONNES[4,2]}} ;}
+ \IfEq{\PLARBREDONNES[6,2]}{}
+ {\draw[PLfleche] (A12)--(A24) ;}
+ {\draw[PLfleche] (A12)--(A24) node[probas,PLetiquette,{\PLARBREDONNES[6,3]}] {{\PLARBREDONNES[6,2]}} ;}
+ \IfEq{\PLARBREDONNES[7,2]}{}
+ {\draw[PLfleche] (A12)--(A25) ;}
+ {\draw[PLfleche] (A12)--(A25) node[probas,PLetiquette,{\PLARBREDONNES[7,3]}] {{\PLARBREDONNES[7,2]}} ;}
+ \IfEq{\PLARBREDONNES[8,2]}{}
+ {\draw[PLfleche] (A12)--(A26) ;}
+ {\draw[PLfleche] (A12)--(A26) node[probas,PLetiquette,{\PLARBREDONNES[8,3]}] {{\PLARBREDONNES[8,2]}} ;}
+ \IfEq{\PLARBREDONNES[10,2]}{}
+ {\draw[PLfleche] (A13)--(A27) ;}
+ {\draw[PLfleche] (A13)--(A27) node[probas,PLetiquette,{\PLARBREDONNES[10,3]}] {{\PLARBREDONNES[10,2]}} ;}
+ \IfEq{\PLARBREDONNES[11,2]}{}
+ {\draw[PLfleche] (A13)--(A28) ;}
+ {\draw[PLfleche] (A13)--(A28) node[probas,PLetiquette,{\PLARBREDONNES[11,3]}] {{\PLARBREDONNES[11,2]}} ;}
+ \IfEq{\PLARBREDONNES[12,2]}{}
+ {\draw[PLfleche] (A13)--(A29) ;}
+ {\draw[PLfleche] (A13)--(A29) node[probas,PLetiquette,{\PLARBREDONNES[12,3]}] {{\PLARBREDONNES[12,2]}} ;}
+ }{}
+ }
+ {
+ \end{tikzpicture}
}
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/unigrazpub/DEMO-monografie.pdf b/macros/latex/contrib/unigrazpub/DEMO-monografie.pdf
new file mode 100644
index 0000000000..6d530b1df0
--- /dev/null
+++ b/macros/latex/contrib/unigrazpub/DEMO-monografie.pdf
Binary files differ
diff --git a/macros/latex/contrib/unigrazpub/DEMO-sammelband.pdf b/macros/latex/contrib/unigrazpub/DEMO-sammelband.pdf
new file mode 100644
index 0000000000..4939e9641d
--- /dev/null
+++ b/macros/latex/contrib/unigrazpub/DEMO-sammelband.pdf
Binary files differ
diff --git a/macros/latex/contrib/unigrazpub/LICENSE.md b/macros/latex/contrib/unigrazpub/LICENSE.md
new file mode 100644
index 0000000000..6d9b4ac41e
--- /dev/null
+++ b/macros/latex/contrib/unigrazpub/LICENSE.md
@@ -0,0 +1,409 @@
+# The LaTeX Project Public License
+
+LPPL Version 1.3c 2008-05-04
+
+Copyright 1999 2002-2008 LaTeX3 Project
+ Everyone is allowed to distribute verbatim copies of this
+ license document, but modification of it is not allowed.
+
+
+## PREAMBLE
+
+The LaTeX Project Public License (LPPL) is the primary license under
+which the LaTeX kernel and the base LaTeX packages are distributed.
+
+You may use this license for any work of which you hold the copyright
+and which you wish to distribute. This license may be particularly
+suitable if your work is TeX-related (such as a LaTeX package), but
+it is written in such a way that you can use it even if your work is
+unrelated to TeX.
+
+The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
+below, gives instructions, examples, and recommendations for authors
+who are considering distributing their works under this license.
+
+This license gives conditions under which a work may be distributed
+and modified, as well as conditions under which modified versions of
+that work may be distributed.
+
+We, the LaTeX3 Project, believe that the conditions below give you
+the freedom to make and distribute modified versions of your work
+that conform with whatever technical specifications you wish while
+maintaining the availability, integrity, and reliability of
+that work. If you do not see how to achieve your goal while
+meeting these conditions, then read the document `cfgguide.tex'
+and `modguide.tex' in the base LaTeX distribution for suggestions.
+
+
+## DEFINITIONS
+
+
+In this license document the following terms are used:
+
+ `Work'
+ Any work being distributed under this License.
+
+ `Derived Work'
+ Any work that under any applicable law is derived from the Work.
+
+ `Modification'
+ Any procedure that produces a Derived Work under any applicable
+ law -- for example, the production of a file containing an
+ original file associated with the Work or a significant portion of
+ such a file, either verbatim or with modifications and/or
+ translated into another language.
+
+ `Modify'
+ To apply any procedure that produces a Derived Work under any
+ applicable law.
+
+ `Distribution'
+ Making copies of the Work available from one person to another, in
+ whole or in part. Distribution includes (but is not limited to)
+ making any electronic components of the Work accessible by
+ file transfer protocols such as FTP or HTTP or by shared file
+ systems such as Sun's Network File System (NFS).
+
+ `Compiled Work'
+ A version of the Work that has been processed into a form where it
+ is directly usable on a computer system. This processing may
+ include using installation facilities provided by the Work,
+ transformations of the Work, copying of components of the Work, or
+ other activities. Note that modification of any installation
+ facilities provided by the Work constitutes modification of the Work.
+
+ `Current Maintainer'
+ A person or persons nominated as such within the Work. If there is
+ no such explicit nomination then it is the `Copyright Holder' under
+ any applicable law.
+
+ `Base Interpreter'
+ A program or process that is normally needed for running or
+ interpreting a part or the whole of the Work.
+
+ A Base Interpreter may depend on external components but these
+ are not considered part of the Base Interpreter provided that each
+ external component clearly identifies itself whenever it is used
+ interactively. Unless explicitly specified when applying the
+ license to the Work, the only applicable Base Interpreter is a
+ `LaTeX-Format' or in the case of files belonging to the
+ `LaTeX-format' a program implementing the `TeX language'.
+
+
+
+## CONDITIONS ON DISTRIBUTION AND MODIFICATION
+
+
+1. Activities other than distribution and/or modification of the Work
+are not covered by this license; they are outside its scope. In
+particular, the act of running the Work is not restricted and no
+requirements are made concerning any offers of support for the Work.
+
+2. You may distribute a complete, unmodified copy of the Work as you
+received it. Distribution of only part of the Work is considered
+modification of the Work, and no right to distribute such a Derived
+Work may be assumed under the terms of this clause.
+
+3. You may distribute a Compiled Work that has been generated from a
+complete, unmodified copy of the Work as distributed under Clause 2
+above, as long as that Compiled Work is distributed in such a way that
+the recipients may install the Compiled Work on their system exactly
+as it would have been installed if they generated a Compiled Work
+directly from the Work.
+
+4. If you are the Current Maintainer of the Work, you may, without
+restriction, modify the Work, thus creating a Derived Work. You may
+also distribute the Derived Work without restriction, including
+Compiled Works generated from the Derived Work. Derived Works
+distributed in this manner by the Current Maintainer are considered to
+be updated versions of the Work.
+
+5. If you are not the Current Maintainer of the Work, you may modify
+your copy of the Work, thus creating a Derived Work based on the Work,
+and compile this Derived Work, thus creating a Compiled Work based on
+the Derived Work.
+
+6. If you are not the Current Maintainer of the Work, you may
+distribute a Derived Work provided the following conditions are met
+for every component of the Work unless that component clearly states
+in the copyright notice that it is exempt from that condition. Only
+the Current Maintainer is allowed to add such statements of exemption
+to a component of the Work.
+
+ a. If a component of this Derived Work can be a direct replacement
+ for a component of the Work when that component is used with the
+ Base Interpreter, then, wherever this component of the Work
+ identifies itself to the user when used interactively with that
+ Base Interpreter, the replacement component of this Derived Work
+ clearly and unambiguously identifies itself as a modified version
+ of this component to the user when used interactively with that
+ Base Interpreter.
+
+ b. Every component of the Derived Work contains prominent notices
+ detailing the nature of the changes to that component, or a
+ prominent reference to another file that is distributed as part
+ of the Derived Work and that contains a complete and accurate log
+ of the changes.
+
+ c. No information in the Derived Work implies that any persons,
+ including (but not limited to) the authors of the original version
+ of the Work, provide any support, including (but not limited to)
+ the reporting and handling of errors, to recipients of the
+ Derived Work unless those persons have stated explicitly that
+ they do provide such support for the Derived Work.
+
+ d. You distribute at least one of the following with the Derived Work:
+
+ 1. A complete, unmodified copy of the Work;
+ if your distribution of a modified component is made by
+ offering access to copy the modified component from a
+ designated place, then offering equivalent access to copy
+ the Work from the same or some similar place meets this
+ condition, even though third parties are not compelled to
+ copy the Work along with the modified component;
+
+ 2. Information that is sufficient to obtain a complete,
+ unmodified copy of the Work.
+
+7. If you are not the Current Maintainer of the Work, you may
+distribute a Compiled Work generated from a Derived Work, as long as
+the Derived Work is distributed to all recipients of the Compiled
+Work, and as long as the conditions of Clause 6, above, are met with
+regard to the Derived Work.
+
+8. The conditions above are not intended to prohibit, and hence do not
+apply to, the modification, by any method, of any component so that it
+becomes identical to an updated version of that component of the Work as
+it is distributed by the Current Maintainer under Clause 4, above.
+
+9. Distribution of the Work or any Derived Work in an alternative
+format, where the Work or that Derived Work (in whole or in part) is
+then produced by applying some process to that format, does not relax or
+nullify any sections of this license as they pertain to the results of
+applying that process.
+
+10. a. A Derived Work may be distributed under a different license
+ provided that license itself honors the conditions listed in
+ Clause 6 above, in regard to the Work, though it does not have
+ to honor the rest of the conditions in this license.
+
+ b. If a Derived Work is distributed under a different license, that
+ Derived Work must provide sufficient documentation as part of
+ itself to allow each recipient of that Derived Work to honor the
+ restrictions in Clause 6 above, concerning changes from the Work.
+
+11. This license places no restrictions on works that are unrelated to
+the Work, nor does this license place any restrictions on aggregating
+such works with the Work by any means.
+
+12. Nothing in this license is intended to, or may be used to, prevent
+complete compliance by all parties with all applicable laws.
+
+
+## NO WARRANTY
+
+
+There is no warranty for the Work. Except when otherwise stated in
+writing, the Copyright Holder provides the Work `as is', without
+warranty of any kind, either expressed or implied, including, but not
+limited to, the implied warranties of merchantability and fitness for a
+particular purpose. The entire risk as to the quality and performance
+of the Work is with you. Should the Work prove defective, you assume
+the cost of all necessary servicing, repair, or correction.
+
+In no event unless required by applicable law or agreed to in writing
+will The Copyright Holder, or any author named in the components of the
+Work, or any other party who may distribute and/or modify the Work as
+permitted above, be liable to you for damages, including any general,
+special, incidental or consequential damages arising out of any use of
+the Work or out of inability to use the Work (including, but not limited
+to, loss of data, data being rendered inaccurate, or losses sustained by
+anyone as a result of any failure of the Work to operate with any other
+programs), even if the Copyright Holder or said author or said other
+party has been advised of the possibility of such damages.
+
+
+## MAINTENANCE OF THE WORK
+
+
+The Work has the status `author-maintained' if the Copyright Holder
+explicitly and prominently states near the primary copyright notice in
+the Work that the Work can only be maintained by the Copyright Holder
+or simply that it is `author-maintained'.
+
+The Work has the status `maintained' if there is a Current Maintainer
+who has indicated in the Work that they are willing to receive error
+reports for the Work (for example, by supplying a valid e-mail
+address). It is not required for the Current Maintainer to acknowledge
+or act upon these error reports.
+
+The Work changes from status `maintained' to `unmaintained' if there
+is no Current Maintainer, or the person stated to be Current
+Maintainer of the work cannot be reached through the indicated means
+of communication for a period of six months, and there are no other
+significant signs of active maintenance.
+
+You can become the Current Maintainer of the Work by agreement with
+any existing Current Maintainer to take over this role.
+
+If the Work is unmaintained, you can become the Current Maintainer of
+the Work through the following steps:
+
+ 1. Make a reasonable attempt to trace the Current Maintainer (and
+ the Copyright Holder, if the two differ) through the means of
+ an Internet or similar search.
+
+ 2. If this search is successful, then enquire whether the Work
+ is still maintained.
+
+ a. If it is being maintained, then ask the Current Maintainer
+ to update their communication data within one month.
+
+ b. If the search is unsuccessful or no action to resume active
+ maintenance is taken by the Current Maintainer, then announce
+ within the pertinent community your intention to take over
+ maintenance. (If the Work is a LaTeX work, this could be
+ done, for example, by posting to comp.text.tex.)
+
+ 3a. If the Current Maintainer is reachable and agrees to pass
+ maintenance of the Work to you, then this takes effect
+ immediately upon announcement.
+
+ b. If the Current Maintainer is not reachable and the Copyright
+ Holder agrees that maintenance of the Work be passed to you,
+ then this takes effect immediately upon announcement.
+
+ 4. If you make an `intention announcement' as described in 2b. above
+ and after three months your intention is challenged neither by
+ the Current Maintainer nor by the Copyright Holder nor by other
+ people, then you may arrange for the Work to be changed so as
+ to name you as the (new) Current Maintainer.
+
+ 5. If the previously unreachable Current Maintainer becomes
+ reachable once more within three months of a change completed
+ under the terms of 3b) or 4), then that Current Maintainer must
+ become or remain the Current Maintainer upon request provided
+ they then update their communication data within one month.
+
+A change in the Current Maintainer does not, of itself, alter the fact
+that the Work is distributed under the LPPL license.
+
+If you become the Current Maintainer of the Work, you should
+immediately provide, within the Work, a prominent and unambiguous
+statement of your status as Current Maintainer. You should also
+announce your new status to the same pertinent community as
+in 2b) above.
+
+
+## WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
+
+
+This section contains important instructions, examples, and
+recommendations for authors who are considering distributing their
+works under this license. These authors are addressed as `you' in
+this section.
+
+### Choosing This License or Another License
+
+If for any part of your work you want or need to use *distribution*
+conditions that differ significantly from those in this license, then
+do not refer to this license anywhere in your work but, instead,
+distribute your work under a different license. You may use the text
+of this license as a model for your own license, but your license
+should not refer to the LPPL or otherwise give the impression that
+your work is distributed under the LPPL.
+
+The document `modguide.tex' in the base LaTeX distribution explains
+the motivation behind the conditions of this license. It explains,
+for example, why distributing LaTeX under the GNU General Public
+License (GPL) was considered inappropriate. Even if your work is
+unrelated to LaTeX, the discussion in `modguide.tex' may still be
+relevant, and authors intending to distribute their works under any
+license are encouraged to read it.
+
+### A Recommendation on Modification Without Distribution
+
+It is wise never to modify a component of the Work, even for your own
+personal use, without also meeting the above conditions for
+distributing the modified component. While you might intend that such
+modifications will never be distributed, often this will happen by
+accident -- you may forget that you have modified that component; or
+it may not occur to you when allowing others to access the modified
+version that you are thus distributing it and violating the conditions
+of this license in ways that could have legal implications and, worse,
+cause problems for the community. It is therefore usually in your
+best interest to keep your copy of the Work identical with the public
+one. Many works provide ways to control the behavior of that work
+without altering any of its licensed components.
+
+### How to Use This License
+
+To use this license, place in each of the components of your work both
+an explicit copyright notice including your name and the year the work
+was authored and/or last substantially modified. Include also a
+statement that the distribution and/or modification of that
+component is constrained by the conditions in this license.
+
+Here is an example of such a notice and statement:
+
+ %% pig.dtx
+ %% Copyright 2005 M. Y. Name
+ %
+ % 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 M. Y. Name.
+ %
+ % This work consists of the files pig.dtx and pig.ins
+ % and the derived file pig.sty.
+
+Given such a notice and statement in a file, the conditions
+given in this license document would apply, with the `Work' referring
+to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
+generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
+referring to any `LaTeX-Format', and both `Copyright Holder' and
+`Current Maintainer' referring to the person `M. Y. Name'.
+
+If you do not want the Maintenance section of LPPL to apply to your
+Work, change `maintained' above into `author-maintained'.
+However, we recommend that you use `maintained', as the Maintenance
+section was added in order to ensure that your Work remains useful to
+the community even when you can no longer maintain and support it
+yourself.
+
+### Derived Works That Are Not Replacements
+
+Several clauses of the LPPL specify means to provide reliability and
+stability for the user community. They therefore concern themselves
+with the case that a Derived Work is intended to be used as a
+(compatible or incompatible) replacement of the original Work. If
+this is not the case (e.g., if a few lines of code are reused for a
+completely different task), then clauses 6b and 6d shall not apply.
+
+
+### Important Recommendations
+
+ Defining What Constitutes the Work
+
+ The LPPL requires that distributions of the Work contain all the
+ files of the Work. It is therefore important that you provide a
+ way for the licensee to determine which files constitute the Work.
+ This could, for example, be achieved by explicitly listing all the
+ files of the Work near the copyright notice of each file or by
+ using a line such as:
+
+ % This work consists of all files listed in manifest.txt.
+
+ in that place. In the absence of an unequivocal list it might be
+ impossible for the licensee to determine what is considered by you
+ to comprise the Work and, in such a case, the licensee would be
+ entitled to make reasonable conjectures as to which files comprise
+ the Work.
+
diff --git a/macros/latex/contrib/unigrazpub/README.md b/macros/latex/contrib/unigrazpub/README.md
new file mode 100644
index 0000000000..18f642df1a
--- /dev/null
+++ b/macros/latex/contrib/unigrazpub/README.md
@@ -0,0 +1,55 @@
+# unigrazpub – LaTeX Templates for Graz University Library Publishing
+
+Copyright (C) Marei Peischl (peiTeX) <marei@peitex.de>, 2022
+
+unigrazpub 2022/10/13 v1.00
+
+***************************************************************************
+
+ This material is subject to the LaTeX Project Public License version 1.3c
+ or later. See http://www.latex-project.org/lppl.txt for details.
+
+***************************************************************************
+
+## Provided files
+
+* README.md
+* build.lua - build script for l3build
+* unigrazpub.dtx and unigrazpub.ins as well as the derived file unigrazpub.cls
+
+and the demo projects within
+examples/monografie and examples/sammelband
+
+
+
+## Installation Notes
+
+Hopefully unigrazpub will become part of the popular TeX distributions. It will be possible to install the templates using TeX Live Manager or the MikTeX Console. An update of other packages might be required as well.
+In case you dont have any installed TeX system the following links might be useful:
+
+- Windows/Linux https://tug.org/texlive/acquire-netinstall.html
+- MacTeX http://tug.org/mactex/
+
+### Use the Repository directly
+
+The repository provides a l3build script. You can build the demo files by running
+
+```
+l3build doc
+```
+This will unpack the package files and build the the docs within `build/`.
+
+To install the files into your local texmf tree run
+```
+l3build install
+```
+
+For further information on l3build and other options please have a look at the corresponding documentation `texdoc l3build`.
+
+## Compilation
+
+The build process requires `lualatex` as a compiler and `biber` for the bibliography. Please ensure to have the correct settings within your LaTeX editor before starting.
+
+## Version History
+
+ * v1.00 (2022-10-13) First CTAN version
diff --git a/macros/latex/contrib/unigrazpub/examples/monografie/DEMO-monografie.tex b/macros/latex/contrib/unigrazpub/examples/monografie/DEMO-monografie.tex
new file mode 100644
index 0000000000..5968a5f255
--- /dev/null
+++ b/macros/latex/contrib/unigrazpub/examples/monografie/DEMO-monografie.tex
@@ -0,0 +1,66 @@
+%% This is file `DEMO-book.tex' version 1.00 (2022/10/13),
+%% it is part of
+%% UniGrazPub – LaTeX Templates for Graz University Library Publishing
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2022 by Marei Peischl <marei@peitex.de>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% 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.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <unigrazpub@peitex.de>
+%%
+%% The development respository can be found at
+%% https://github.com/peiTeX/unigrazpub
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+% !TeX program = lualatex
+%%
+\documentclass[ngerman]{unigrazpub}% Hauptsprache als globale Option
+
+\usepackage[english,main=ngerman]{babel}
+\usepackage{microtype}
+
+%Literaturdatenbank einfügen
+\addbibresource{literatur.bib}
+
+%Das folgende Paket ist nur für Demonstrationszwecke und kann für die eigentlichen Beiträge entfernt werdden
+\usepackage{blindtext}
+
+\title{Bandtitel}
+\author{Herausgeber}
+\date{2022}
+
+\begin{document}
+
+\author{Marei Peischl}
+\title{\LaTeX-Templates für Graz University Library Publishing}
+\subtitle{Ein Beispiel für eine Monografie}
+\date{September 2022}
+\edition{1. Auflage}
+
+\input{impressum}
+
+\maketitle
+
+
+\tableofcontents
+
+\include{kapitel1}
+
+\appendix
+
+\printbibliography
+
+\end{document}
diff --git a/macros/latex/contrib/unigrazpub/examples/monografie/impressum.tex b/macros/latex/contrib/unigrazpub/examples/monografie/impressum.tex
new file mode 100644
index 0000000000..0b2262df10
--- /dev/null
+++ b/macros/latex/contrib/unigrazpub/examples/monografie/impressum.tex
@@ -0,0 +1,78 @@
+%% This is file `impressum.tex' version 1.00 (2022/10/13),
+%% it is part of
+%% UniGrazPub – LaTeX Templates for Graz University Library Publishing
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2022 by Marei Peischl <marei@peitex.de>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% 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.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <unigrazpub@peitex.de>
+%%
+%% The development respository can be found at
+%% https://github.com/peiTeX/unigrazpub
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+
+
+\lowertitleback{
+ \textbf{Gedruckt mit freundlicher Unterstützung durch:} \\
+ %TODO
+
+ Zitiervorschlag:
+ …
+
+ \vfill
+ \doclicenseImage\doclicenseName
+
+
+ \doclicenseName by \insertauthor
+
+ \doclicenseLongText
+
+ Die Bedingungen der Creative-Commons-Lizenz gelten nur für Originalmaterial. Die Wiederverwendung von Material aus anderen Quellen (gekennzeichnet mit Quellenangabe) wie z.\,B. Schaubilder, Abbildungen, Fotos und Textauszüge erfordert ggf. weitere
+ Nutzungsgenehmigungen durch den jeweiligen Rechteinhaber.
+
+ \vfill
+
+ \insertedition, \insertdate
+
+ \vfill
+
+ \insertpublishersaddress
+
+ \vfill
+
+ Grafische Grundkonzeption: …
+
+ \vfill
+
+ Coverbild: \\%TODO
+ Lektorat:\\%TODO
+ Satz: \\%TODO
+ Typografie: %TODO
+
+ \vfill
+
+ Printed in Europe.
+
+ \vfill
+
+ ISBN Hardcover 978-3- \\%TODO
+ ISBN Softcover 978-3- \\%TODO
+ DOI https://doi.org/10.25364/
+ %TODO Angaben ausfüllen
+}
+
+
diff --git a/macros/latex/contrib/unigrazpub/examples/monografie/kapitel1.tex b/macros/latex/contrib/unigrazpub/examples/monografie/kapitel1.tex
new file mode 100644
index 0000000000..340f96b161
--- /dev/null
+++ b/macros/latex/contrib/unigrazpub/examples/monografie/kapitel1.tex
@@ -0,0 +1,77 @@
+%% This is file `kapitel1.tex' version 1.00 (2022/10/13),
+%% it is part of
+%% UniGrazPub – LaTeX Templates for Graz University Library Publishing
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2022 by Marei Peischl <marei@peitex.de>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% 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.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <unigrazpub@peitex.de>
+%%
+%% The development respository can be found at
+%% https://github.com/peiTeX/unigrazpub
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+
+\chapter{Kapitelüberschrift}
+
+Bei Monografien entfallen die Zusammenfassungen je Kapitel. Die Kapitel sind nummeriert.
+
+\section{Überschrift 1. Grades}
+
+\blindtext
+
+\subsection{Überschrift 2. Ebene – Auflistungen}
+
+Innerhalb von Aufzählungen wird kein vertikaler Abstand gesetzt. Auch Absatzabstände entfallen hier.
+
+\begin{itemize}
+ \item Erster Eintrag
+ \item Zweiter Eintrag
+ \item Dritter Eintrag
+ \begin{itemize}
+ \item Erster Eintrag
+ \item Zweiter Eintrag
+ \item Dritter Eintrag
+ \end{itemize}
+\end{itemize}
+
+\begin{enumerate}
+ \item Erster Eintrag
+ \item Zweiter Eintrag
+ \item Dritter Eintrag
+ \begin{enumerate}
+ \item Erster Eintrag
+ \item Zweiter Eintrag
+ \item Dritter Eintrag
+ \end{enumerate}
+\end{enumerate}
+
+\blindtext
+\subsubsection{Wörtliche Zitate über mehrere Zeilen}
+
+Kurze Wörtliche Zitate werden durch \enquote{Anführungszeichen} gekennzeichnet. Bei längeren wird der Text samt Quellenangabe in einer quote-Umgebung platziert.
+
+\begin{quote}
+ Dies ist ein wörtliches Zitat, das über mehrere Zeilen, mindestens jedoch drei
+ Zeilen, geht und am Ende mit einer Fußnote belegt wird. Dies ist ein wörtliches
+ Zitat, das über mehrere Zeilen, mindestens jedoch drei Zeilen, geht und am Ende
+ mit einer Fußnote belegt wird.\autocite{test.2020}
+\end{quote}
+
+\subsubsection{Literaturverzeichnis}
+
+Das Literaturverzeichnis wird automatisch mithilfe von bibatex und biber erzeugt. Hierfür wird der Stil biblatex-chicago geladen.
+
diff --git a/macros/latex/contrib/unigrazpub/examples/monografie/literatur.bib b/macros/latex/contrib/unigrazpub/examples/monografie/literatur.bib
new file mode 100644
index 0000000000..69ba59b541
--- /dev/null
+++ b/macros/latex/contrib/unigrazpub/examples/monografie/literatur.bib
@@ -0,0 +1,33 @@
+%% This is file `literatur.bib' version 1.00 (2022/10/13),
+%% it is part of
+%% UniGrazPub – LaTeX Templates for Graz University Library Publishing
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2022 by Marei Peischl <marei@peitex.de>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% 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.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <unigrazpub@peitex.de>
+%%
+%% The development respository can be found at
+%% https://github.com/peiTeX/unigrazpub
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+
+@article{test.2020,
+ author={Nachname, Vorname and AndererNachname, Vorname2},
+ title={Artikeltitel},
+ date={2020-04-02},
+ journal={Zeitschriftentitel},
+} \ No newline at end of file
diff --git a/macros/latex/contrib/unigrazpub/examples/sammelband/DEMO-sammelband.tex b/macros/latex/contrib/unigrazpub/examples/sammelband/DEMO-sammelband.tex
new file mode 100644
index 0000000000..28382dc015
--- /dev/null
+++ b/macros/latex/contrib/unigrazpub/examples/sammelband/DEMO-sammelband.tex
@@ -0,0 +1,59 @@
+%% This is file `DEMO-collection.tex' version 1.00 (2022/10/13),
+%% it is part of
+%% UniGrazPub – LaTeX Templates for Graz University Library Publishing
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2022 by Marei Peischl <marei@peitex.de>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% 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.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <unigrazpub@peitex.de>
+%%
+%% The development respository can be found at
+%% https://github.com/peiTeX/unigrazpub
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+
+\documentclass[ngerman,collection=true]{unigrazpub}
+
+\usepackage[english,main=ngerman]{babel}
+\usepackage{microtype}
+
+
+%Literaturdatenbank einfügen
+\addbibresource{beitrag1.bib}%Literatureinträge für den ersten Beitrag und Autor:innendaten
+
+%Das folgende Paket ist nur für Demonstrationszwecke und kann für die eigentlichen Beiträge entfernt werdden
+\usepackage{blindtext}
+
+\title{Bandtitel}
+\author{Herausgeber}
+\date{2022}
+
+\begin{document}
+
+\input{impressum}
+
+\tableofcontents
+
+% Einbinden der einzelnen Beiträge
+\include{beitrag1}
+%\include{beitrag2}
+%\include{beitrag3}
+
+\appendix
+
+\listofauthors
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/unigrazpub/examples/sammelband/beitrag1.bib b/macros/latex/contrib/unigrazpub/examples/sammelband/beitrag1.bib
new file mode 100644
index 0000000000..d057749e90
--- /dev/null
+++ b/macros/latex/contrib/unigrazpub/examples/sammelband/beitrag1.bib
@@ -0,0 +1,54 @@
+%% This is file `literatur-beitrag1.bib' version 1.00 (2022/10/13),
+%% it is part of
+%% UniGrazPub – LaTeX Templates for Graz University Library Publishing
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2022 by Marei Peischl <marei@peitex.de>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% 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.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <unigrazpub@peitex.de>
+%%
+%% The development respository can be found at
+%% https://github.com/peiTeX/unigrazpub
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+
+% Beitragsautorinnen. Können bei Nutzung eines Literaturverwaltungsprogramms auch in einer extra Datei erfasst werden:
+@author{author1,
+ author={Nachname, Name},
+ university={Universität Graz},
+ institute={Institut für X},
+ email= {name1.nachname1@uni-graz.at},
+ orcid= {ORCID-ID1},
+ addendum={Und hier können dann noch weitere Angaben zum CV erfolgen}
+}
+
+@author{author2,
+ author={Nachname1, Name1},
+ university={Universität Graz},
+ institute={Institut für Y},
+ email= {name2.nachname2@uni-graz.at},
+ orcid= {ORCID-ID2},
+ addendum={Und hier können dann noch weitere Angaben zum CV erfolgen}
+}
+
+
+%Eigentliche Quellen
+@article{test.2020,
+ author={Nachname, Vorname and AndererNachname, Vorname2},
+ title={Artikeltitel},
+ date={2020-04-02},
+ journal={Zeitschriftentitel},
+} \ No newline at end of file
diff --git a/macros/latex/contrib/unigrazpub/examples/sammelband/beitrag1.tex b/macros/latex/contrib/unigrazpub/examples/sammelband/beitrag1.tex
new file mode 100644
index 0000000000..2d787573ba
--- /dev/null
+++ b/macros/latex/contrib/unigrazpub/examples/sammelband/beitrag1.tex
@@ -0,0 +1,139 @@
+%% This is file `beitrag1.tex' version 1.00 (2022/10/13),
+%% it is part of
+%% UniGrazPub – LaTeX Templates for Graz University Library Publishing
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2022 by Marei Peischl <marei@peitex.de>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% 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.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <unigrazpub@peitex.de>
+%%
+%% The development respository can be found at
+%% https://github.com/peiTeX/unigrazpub
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+
+\Article[
+ authorkeys={author1, author2},
+ subtitle=Untertitel,
+ doi=XXXX,
+% license-type = CC,
+% license-modifier = by,
+% license-version = 4.0
+]{Beitragstitel zweizeilig}
+
+
+\begin{abstract}[ngerman]
+ Dies ist eine Zusammenfassung. Zusammenfassungen bzw. Abstracts sollten ca.
+ 800 bis 900 Zeichen (inkl. Leerzeichen) umfassen. Dies ist eine Zusammenfassung.
+ Zusammenfassungen bzw. Abstracts sollten ca. 800 bis 900 Zeichen (inkl.
+ Leerzeichen) umfassen. Dies ist eine Zusammenfassung. Zusammenfassungen
+ bzw. Abstracts sollten ca. 800 bis 900 Zeichen (inkl. Leerzeichen) umfassen. Dies
+ ist eine Zusammenfassung. Zusammenfassungen bzw. Abstracts sollten ca. 800 bis
+ 900 Zeichen (inkl. Leerzeichen) umfassen. Dies ist eine Zusammenfassung.
+ Zusammenfassungen bzw. Abstracts sollten ca. 800 bis 900 Zeichen (inkl.
+ Leerzeichen) umfassen. Dies ist eine Zusammenfassung. Zusammenfassungen
+ bzw. Abstracts sollten ca. 800 bis 900 Zeichen (inkl. Leerzeichen) umfassen. Dies
+ ist eine Zusammenfassung. Zusammenfassungen bzw. Abstracts sollten ca. 800 bis
+ 900 Zeichen (inkl. Leerzeichen) umfassen.
+
+ \keywords{Suchmaschine, treffend, drei, vier}
+\end{abstract}
+
+
+\begin{abstract}[english]
+ This is an abstract. Abstracts should contain approximately 800 to 900 characters
+ (incl. spaces). This is an abstract. Abstracts should contain approximately 800 to
+ 900 characters (incl. spaces). This is an abstract. Abstracts should contain
+ approximately 800 to 900 characters (incl. spaces). This is an abstract. Abstracts
+ should contain approximately 800 to 900 characters (incl. spaces). This is an
+ abstract. Abstracts should contain approximately 800 to 900 characters (incl.
+ spaces). This is an abstract. Abstracts should contain approximately 800 to 900
+ characters (incl. spaces). This is an abstract. Abstracts should contain
+ approximately 800 to 900 characters (incl. spaces). This is an abstract. Abstracts
+ should contain approximately 800 to 900 characters (incl. spaces). This is an
+ abstract. Abstracts should contain approximately 800 to 900 characters (incl.
+ spaces).
+
+ \keywords{search engine, matching, three, four}
+\end{abstract}
+
+%erzwungener Seitenumbruch vor Beginn des Textteils
+\clearpage
+
+\section{Überschrift 1. Grades}
+
+Absatzumbrüche werden durch eine halbe Leerzeichen gekennzeichnet. Ein Absatzeinzug erfolgt nicht.
+
+\blindtext
+
+\subsection{Überschrift 2. Ebene – Auflistungen}
+
+Innerhalb von Aufzählungen wird kein vertikaler Abstand gesetzt. Auch Absatzabstände entfallen hier.
+
+\begin{itemize}
+ \item Erster Eintrag
+ \item Zweiter Eintrag
+ \item Dritter Eintrag
+ \begin{itemize}
+ \item Erster Eintrag
+ \item Zweiter Eintrag
+ \item Dritter Eintrag
+ \end{itemize}
+\end{itemize}
+
+\begin{enumerate}
+ \item Erster Eintrag
+ \item Zweiter Eintrag
+ \item Dritter Eintrag
+ \begin{enumerate}
+ \item Erster Eintrag
+ \item Zweiter Eintrag
+ \item Dritter Eintrag
+ \end{enumerate}
+\end{enumerate}
+
+\blindtext
+\subsubsection{Wörtliche Zitate über mehrere Zeilen}
+
+Kurze Wörtliche Zitate werden durch \enquote{Anführungszeichen} gekennzeichnet. Bei längeren wird der Text samt Quellenangabe in einer quote-Umgebung platziert.
+
+\begin{quote}
+ Dies ist ein wörtliches Zitat, das über mehrere Zeilen, mindestens jedoch drei
+ Zeilen, geht und am Ende mit einer Fußnote belegt wird. Dies ist ein wörtliches
+ Zitat, das über mehrere Zeilen, mindestens jedoch drei Zeilen, geht und am Ende
+ mit einer Fußnote belegt wird.\autocite{test.2020}
+\end{quote}
+
+\subsubsection{Abbildungen}
+Abbildungen werden wie gewohnt eingefügt. Bei der Platzierung ist darauf zu achten, dass – sofern möglich – die Voreinstellung (htb) nicht verändert werden soll.
+Abbildung \ref{fig:example-image} ist ein Beispiel für die Verwendung.
+
+\begin{figure}
+ \centering
+ \includegraphics[width=.5\linewidth]{example-image}
+ \caption{Eine Beispielabbildung. Sie wird gleitend im Text platziert um den maximal möglichen Lesefluss zu erhalten. Um den Textbezug dadurch nicht zu verlieren wird auf die Abbildungsnummer verwiesen.}
+ \label{fig:example-image}
+\end{figure}
+
+
+\subsubsection{Literaturverzeichnis}
+
+Das Literaturverzeichnis wird automatisch mithilfe von BibLaTeX und biber erzeugt. Hierfür wird der Stil biblatex-chicago geladen.
+
+Die Quellen werden in einer bib-Datei je Beitrag gesammelt. Es ist Möglich durch die Herausgeber eine gesammelte Datei anzulegen um ggf. Datendopplungen zu vermeiden. Da jeder Beitrag jedoch ohnehin über ein eigenes Literaturverzeichnis verfügt ist dies nicht zwingend notwendig.
+
+
+\printbibliography \ No newline at end of file
diff --git a/macros/latex/contrib/unigrazpub/examples/sammelband/impressum.tex b/macros/latex/contrib/unigrazpub/examples/sammelband/impressum.tex
new file mode 100644
index 0000000000..43a03996cd
--- /dev/null
+++ b/macros/latex/contrib/unigrazpub/examples/sammelband/impressum.tex
@@ -0,0 +1,77 @@
+%% This is file `impressum.tex' version 1.00 (2022/10/13),
+%% it is part of
+%% UniGrazPub – LaTeX Templates for Graz University Library Publishing
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2022 by Marei Peischl <marei@peitex.de>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% 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.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <unigrazpub@peitex.de>
+%%
+%% The development respository can be found at
+%% https://github.com/peiTeX/unigrazpub
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+
+\lowertitleback{
+ \textbf{Gedruckt mit freundlicher Unterstützung durch:} \\
+ %TODO
+
+ Zitiervorschlag:
+ …
+
+ \vfill
+ \doclicenseImage\doclicenseName
+
+
+ \doclicenseName by \insertauthor
+
+ \doclicenseLongText
+
+ Die Bedingungen der Creative-Commons-Lizenz gelten nur für Originalmaterial. Die Wiederverwendung von Material aus anderen Quellen (gekennzeichnet mit Quellenangabe) wie z.\,B. Schaubilder, Abbildungen, Fotos und Textauszüge erfordert ggf. weitere
+ Nutzungsgenehmigungen durch den jeweiligen Rechteinhaber.
+
+ \vfill
+
+ \insertedition, \insertdate
+
+ \vfill
+
+ \insertpublishersaddress
+
+ \vfill
+
+ Grafische Grundkonzeption: …
+
+ \vfill
+
+ Coverbild: \\%TODO
+ Lektorat:\\%TODO
+ Satz: \\%TODO
+ Typografie: %TODO
+
+ \vfill
+
+ Printed in Europe.
+
+ \vfill
+
+ ISBN Hardcover 978-3- \\%TODO
+ ISBN Softcover 978-3- \\%TODO
+ DOI https://doi.org/10.25364/
+ %TODO Angaben ausfüllen
+}
+
+
diff --git a/macros/latex/contrib/unigrazpub/unigrazpub.dtx b/macros/latex/contrib/unigrazpub/unigrazpub.dtx
new file mode 100644
index 0000000000..894c694e6d
--- /dev/null
+++ b/macros/latex/contrib/unigrazpub/unigrazpub.dtx
@@ -0,0 +1,934 @@
+% \iffalse meta-comment
+% Doc-Source file to use with LaTeX2e
+% UniGrazPub – LaTeX Templates for Graz University Library Publishing
+% ----------------------------------------------------------------------------
+% Copyright (C) 2022 by Marei Peischl <marei@peitex.de>
+% ----------------------------------------------------------------------------
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% 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.3c or later is part of all distributions of LaTeX
+% version 2008/05/04 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainers of this work are
+% Marei Peischl <unigrazpub@peitex.de>
+%
+% This work consists of the files unigrazpub.dtx and unigrazpub.ins
+% and the derived file unigrazpub.cls
+%
+% The development respository can be found at
+% https://github.com/peitex/unigrazpub
+% Please use the issue tracker for feedback!
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{unigrazpub.dtx}
+%</driver>
+%<class>\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+%<class>\ProvidesClass{unigrazpub}
+%<*class>
+ [2022/10/05 v1.00 LaTeX Templates for Graz University Library Publishing]
+%</class>
+%
+%<*driver>
+\documentclass[
+ english,
+ license-type=,%disable doclicense loading due to a conflict with doc
+ ]{unigrazpub}
+
+\usepackage[english]{babel}
+\usepackage{microtype}
+
+\let\savemaketitle\maketitle
+\usepackage{doc}
+\let\maketitle\savemaketitle
+
+\OnlyDescription
+
+\newcommand*{\class}[1]{#1}
+\newcommand*{\package}[1]{#1}
+
+\MakeShortVerb{\|}
+
+\makeatletter
+
+\let\orig@marginpar\marginpar
+\newcommand{\MacroDescriptionsMarginpar}[1]{
+ \orig@marginpar{
+ \strut\hfill
+ \rlap{\hskip-\marginparwidth\parbox{\dimexpr3cm+\marginparwidth}{
+ #1}
+ }}
+}
+\newenvironment{MacroDescriptions}{
+ \begin{addmargin}[3cm]{0cm}%
+ \let\marginpar\MacroDescriptionsMarginpar
+}{\end{addmargin}}
+\makeatother
+
+\AddToHook{begindocument/before}[ptxcd/hypersetup]{%
+ \hypersetup{colorlinks=false}
+}
+
+\DeclareHookRule{begindocument/before}{doc/hyperref}{<}{ptxcd/hypersetup}
+
+\begin{filecontents}{unigrazpub.bib}
+ @online{biblatex,
+ title={The biblatex Package},
+ author={Kime, Philip and Wemheuer, Moritz and Lehmann, Philipp},
+ date={2022-07-12},
+ url={http://mirrors.ctan.org/macros/latex/contrib/biblatex/doc/biblatex.pdf}
+ }
+ @online{doclicense,
+ author={Schneider, Robin},
+ title={The doclicense package},
+ date={2022-05-18},
+ url={http://mirrors.ctan.org/macros/latex/contrib/doclicense/doclicense.pdf}
+ }
+\end{filecontents}
+
+\addbibresource{unigrazpub.bib}
+
+
+\begin{document}
+ \DocInput{unigrazpub.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{0}
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+%
+% \changes{v1.0}{2022/10/13}{Initial version in DocTeX format}
+% \GetFileInfo{unigrazpub.dtx}
+%
+% \author{Marei Peischl <\href{mailto:unigrazpub@peitex.de}{unigrazpub@peitex.de}>}
+% \title{\LaTeX-Templates for Graz University Library Publishing}
+% \subtitle{User Documentation for version \fileversion, dated \filedate}
+% \date{September 2022}
+% \edition{1. Edition}
+%
+% \maketitle
+%
+% \tableofcontents
+%
+% \chapter{Getting started – Demo projects}
+% The \class{unigrazpub} bundle includes two demo projects (in German) which show how to use the \class{unigrazpub} class.
+%
+% The projects have the following structure:
+%
+% \section{Book – DEMO-monografie.tex}
+%
+% Demo project for a book.
+%
+% \begin{description}
+% \item[DEMO-monografie.tex] Main document includes the basic setup and loads the articles as well as the bibliography database.
+% \item[impressum.tex] Imprint. Sets the publishing details for the title pages.
+% \item[kapitel.tex] Example chapter
+% \item[literatur.bib] Bibliography database for the whole book.
+% \end{description}
+%
+% \section{Collection – DEMO-sammelband.tex}
+%
+% Demo project for a collection.
+%
+% \begin{description}
+% \item[DEMO-sammelband.tex] Main document includes the basic setup and loads the articles as well as the bibliography database.
+% \item[impressum.tex] Imprint. Sets the publishing details for the title pages.
+% \item[beitrag1.tex] Example article. Can be cloned to add additional articles.
+% \item[beitrag1.bib] Example bibliography database. Also includes the author information. One file per article is requested.
+% \end{description}
+%
+% \section{How to compile the demo projects}
+%
+% The requirements for compiling is an installed version of the \class{unigrazpub} bundle as well as an up to date \LaTeX{} distribution.
+% The class requires the use of lualatex and biber. Please set up your \LaTeX{} editor so those program will be used.
+% pdflatex is not supported.
+%
+%
+% \chapter{Features and Syntax}
+%
+% \section{Title}
+%
+% The structure of the titlepages is similar to standard classes. One is setting the data using macros like |\title| and the titlepage itself is created by calling |\maketitle|.
+%
+% \begin{verbatim}
+% \author{Marei Peischl}
+% \title{\LaTeX-Templates for Graz University …}
+% \subtitle{User Documentation}
+% \date{September 2022}
+% \edition{1. Edition}
+% \maketitle
+% \end{verbatim}
+%
+% \begin{MacroDescriptions}
+% \DescribeMacro{\edition}
+% In addition to the common fields |\title|, |\author|, |\subtitle| and |\date| we also added a |\edition| field.
+%
+% \DescribeMacro{\lowertitleback}
+% The imprint is created using |\lowertitleback{<content>}|. The demo files included an example configuration on this. There have been created some user accessible macros to access the title data within that field.
+% \DescribeMacro{\insertedition}
+% \DescribeMacro{\insertpublishersaddress}
+% \DescribeMacro{\insertauthor}
+% \DescribeMacro{\insertdate}
+% \DescribeMacro{\insertpublishers} To access the title data within that one can use the macros within the margin. They will insert the corresponding data directly.
+%
+% The titlepages might be automatically generated. The CTAN version of the package does not include any logos but the logo will be automatically included if available. The Publisher will take care of this.
+%
+% \end{MacroDescriptions}
+%
+% \section{License}
+% \label{sec:license}
+%
+% The license information is prepared by using the \package{doclicese} \cite{doclicense} package. The default is set to CC-by 4.0.
+% To adjust the options \class{unigrazpub} provides the following options which will be passed to the package without the \enquote{license-} prefix:
+% \begin{verbatim}
+% license-type .initial:n = CC,
+% license-modifier = by,
+% license-version = 4.0
+% \end{verbatim}
+% The values can be changed according to the \package{doclicense} Doumentaton \cite{doclicense}. In case you don't want to use doclicese but manually provide information you can set the option |license-type=| to an empty value.
+%
+% \section{Collection mode}
+% The \class{unigrazpub} class provides the option |collection=true| which enables the collection mode.
+% Some of the features are only available when is is enabled.
+%
+% \subsection{Creating an article}
+% \DescribeMacro{\Article}
+%
+% The |\Article| macro is starting a new chapter and adding additional data fields to provide imprint data.
+%
+% \begin{verbatim}
+% \Article[
+% authorkeys={author1, author2},
+% subtitle=subtitle,
+% doi=XXXX,
+% ]{Article title}
+% \end{verbatim}
+%
+% The article should be saved in a separate file and have it's own bib-file.
+% Additionally one can also use the |license-| keys listed in \autoref{sec:license} to select another than the default license of the collection.
+%
+% \subsection{Abstracts}
+% The collection requires the author to place abstracts at the beginning of each article.
+% \DescribeEnv{abstract}
+% The abstract environment allows to select a language to allow the addition of a german as well as an english abstract.
+%
+% \begin{verbatim}
+% \begin{abstract}[<language>]
+% <Text>
+%
+% \keywords{<keywords>}
+% \end{abstract}
+%
+% \end{verbatim}
+%
+% \subsection{List of authors}
+% \begin{MacroDescriptions}
+% \DescribeMacro{\listofauthors} The macro |\listofauthors| creates a list of authors using the \package{biblatex} \cite{biblatex} package.
+% Therefore one has to add the authors for a paper within the corresponding bib-file:
+%
+% \begin{verbatim}
+% @author{author1,
+% author={Name, GivenName},
+% university={Universität Graz},
+% institute={Institute},
+% email= {name1.nachname1@uni-graz.at},
+% orcid= {ORCID-ID1},
+% addendum={Additional CV information}
+% }
+% \end{verbatim}
+% \end{MacroDescriptions}
+%
+% \appendix
+%
+% \printbibliography
+%
+% \StopEventually{}
+% \section{The Code}
+%\iffalse
+% \begin{macrocode}
+%<*unigrazpub.cls>
+% \end{macrocode}
+%\fi
+% \begin{macrocode}
+\RequirePackage{l3keys2e}
+
+\ExplSyntaxOn
+\keys_define:nn {ptxcd} {
+ collection .bool_gset:N = \g__ptxcd_collection_bool,
+ collection .initial:n = false,
+ license-type .tl_gset:N = \g__ptxcd_license_type_tl,
+ license-type .initial:n = CC,
+ license-modifier .tl_gset:N =\g__ptxcd_license_modifier_tl,
+ license-modifier .initial:n =by,
+ license-version .tl_gset:N =\g__ptxcd_license_version_tl,
+ license-version .initial:n = 4.0,
+}
+
+\ProcessKeysOptions{ptxcd}
+\ExplSyntaxOff
+
+\PassOptionsToClass{headings=optiontoheadandtoc,fontsize=10pt,parskip=half}{scrbook}
+
+\LoadClass{scrbook}
+
+\PassOptionsToPackage{black}{roboto}
+\RequirePackage{roboto}
+\RequirePackage{sourceserifpro}
+\RequirePackage{anyfontsize}
+
+\RequirePackage{geometry}
+\geometry{
+ papersize={17cm,24cm},
+ hmargin=20mm,
+ bottom=22mm,
+ top=16mm,
+ includehead,
+ headsep=1cm
+}
+
+\RequirePackage{ragged2e}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% fontsizes
+%% modified version of scrsize10pt.clo
+%% Copyright (c) 1994-2019 Markus Kohm [komascript at gmx info]
+
+\def\normalsize{%
+ \@setfontsize\normalsize{10bp}{13.3bp}%
+ \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
+ \belowdisplayskip \abovedisplayskip
+ \let\@listi\@listI
+}
+\def\small{%
+ \@setfontsize\small{9bp}{12bp}%
+ \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus2\p@
+ \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 4\p@ \@plus2\p@ \@minus2\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}%
+ \belowdisplayskip \abovedisplayskip
+}
+\def\footnotesize{%
+ \@setfontsize\footnotesize{8bp}{10bp}%
+ \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus\p@
+ \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 3\p@ \@plus\p@ \@minus\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}%
+ \belowdisplayskip \abovedisplayskip
+}
+
+\def\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt}
+\def\tiny{\@setfontsize\tiny\@vpt\@vipt}
+\def\large{\@setfontsize\large{11bp}{13.8bp}}
+\def\Large{\@setfontsize\Large{12bp}{13.8bp}}
+\def\LARGE{\@setfontsize\LARGE{13bp}{13.8bp}}
+\def\huge{\@setfontsize\huge{15bp}{18bp}}
+\def\Huge{\@setfontsize\Huge{21bp}{26bp}}
+\def\HUGE{\@setfontsize\HUGE{30bp}{33bp}}
+\normalsize
+\setlength\footnotesep {6.65\p@}
+\setlength{\skip\footins} {9\p@ \@plus 4\p@ \@minus 2\p@}
+\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\textfloatsep {20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\@fptop {0\p@ \@plus 1fil}
+\setlength\@fpsep {8\p@ \@plus 2fil}
+\setlength\@fpbot {0\p@ \@plus 1fil}
+\setlength\@dblfptop {0\p@ \@plus 1fil}
+\setlength\@dblfpsep {8\p@ \@plus 2fil}
+\setlength\@dblfpbot {0\p@ \@plus 1fil}
+\setlength\partopsep {2\p@ \@plus 1\p@ \@minus 1\p@}
+\def\@listi{\leftmargin\leftmargini
+ \parsep\z@
+ \topsep\z@
+ \itemsep\z@
+}
+\let\@listI\@listi
+\def\@listii {\leftmargin\leftmarginii
+ \labelwidth\leftmarginii
+ \advance\labelwidth-\labelsep}
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii
+ \advance\labelwidth-\labelsep}
+\def\@listiv {\leftmargin\leftmarginiv
+ \labelwidth\leftmarginiv
+ \advance\labelwidth-\labelsep}
+\def\@listv {\leftmargin\leftmarginv
+ \labelwidth\leftmarginv
+ \advance\labelwidth-\labelsep}
+\def\@listvi {\leftmargin\leftmarginvi
+ \labelwidth\leftmarginvi
+ \advance\labelwidth-\labelsep}
+%%% From File: $Id: scrkernel-paragraphs.dtx 3262 2019-10-10 08:25:29Z kohm $
+\@ifundefined{@list@extra}{}{%
+ \expandafter\ifnum\scr@v@is@ge{3.17}\par@updaterelative\fi
+ \l@addto@macro{\@listi}{\@list@extra}%
+ \let\@listI=\@listi
+ \l@addto@macro{\@listii}{\@list@extra}%
+ \l@addto@macro{\@listiii}{\@list@extra}%
+ \l@addto@macro{\footnotesize}{\protect\add@extra@listi{ftns}}%
+ \l@addto@macro{\small}{\protect\add@extra@listi{sml}}%
+}
+\@listi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% font selection
+
+\newkomafont{chapter-author}{\normalsize}
+\newkomafont{article-subtitle}{\fontsize{21bp}{26bp}\selectfont}
+\newkomafont{article-imprint}{\fontsize{7bp}{10bp}\selectfont}
+\setkomafont{chapter}{\HUGE\selectfont}
+
+\setkomafont{section}{\LARGE\bfseries}
+\setkomafont{subsection}{\large\bfseries}
+\setkomafont{subsubsection}{\large\bfseries}
+\setkomafont{paragraph}{\large\bfseries}
+
+\setkomafont{disposition}{}
+
+\setkomafont{pageheadfoot}{\small}
+\setkomafont{pagenumber}{}
+
+\setkomafont{caption}{\bfseries\small}
+
+\newkomafont{quote}{\itshape}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+% section formats
+%raggedsection \araggedleft
+\renewcommand*{\raggedsection}{\raggedright}
+\RedeclareSectionCommand[beforeskip=0pt,afterskip=20.8mm]{chapter}
+\RedeclareSectionCommands[afterskip=1.5mm,beforeskip=4.5mm,runin=false,afterindent=false]{section,subsection,subsubsection}
+\RedeclareSectionCommands[style=section,afterskip=1.5mm,beforeskip=3mm,,runin=false,afterindent=false]{paragraph}
+
+\ExplSyntaxOn
+\DeclareNewSectionCommand[
+ style=chapter,
+ level=\chaptertocdepth,
+ tocentryindent=0pt,
+ tocentrynumwidth=0pt,
+ beforeskip=0pt,
+ afterskip=4mm
+]{article}
+
+\renewcommand*{\articlemarkformat}{}
+\renewcommand*{\articleformat}{}
+
+\bool_if:NT \g__ptxcd_collection_bool {
+ \renewcommand*{\thesection}{\arabic{section}}
+ \renewcommand*{\thefigure}{\arabic{figure}}
+ \renewcommand*{\thetable}{\arabic{table}}
+ \renewcommand*{\theequation}{\arabic{equation}}
+ \renewcommand*{\chapterlinesformat}[3]{
+ \str_if_eq:nnTF {#1} {article} {
+ \clist_if_empty:NF \l_ptxcd_author_clist {\parbox{\textwidth}{
+ \usekomafont{chapter-author}\clist_use:Nn \l_ptxcd_author_clist {,\space}
+ }\par\vspace{3mm}}
+ \@hangfrom{#2}{#3}
+ } {
+ \@hangfrom{#2}{#3}
+ }
+ }
+
+ \renewcommand*{\addarticletocentry}[2]{%
+ \addcontentsline{\ext@toc}{chapter}{\protect\nonumberline\protect\TocAuthorEntry{\clist_use:Nn \l_ptxcd_author_clist {,\space}}{#2}}%
+ }
+}
+
+%article structure
+\clist_map_inline:nn {title,subtitle,imprint,unknown,head,doi} {
+ \tl_new:c {l_ptxcd_#1_tl}
+}
+
+\clist_new:N \l_ptxcd_author_clist
+\clist_new:N \l_ptxcd_authorkeys_clist
+
+\keys_define:nn {ptxcd/article} {
+ author .clist_set:N = \l_ptxcd_author_clist,
+ authorkeys .clist_set:N = \l_ptxcd_authorkeys_clist,
+ title .tl_set:N = \l_ptxcd_title_tl,
+ head .tl_set:N = \l_ptxcd_head_tl,
+ subtitle .tl_set:N = \l_ptxcd_subtitle_tl,
+ imprint .tl_set:N = \l_ptxcd_imprint_tl,
+ doi .tl_set:N = \l_ptxcd_doi_tl,
+ imprint .initial:n = {
+ \citeimprint {\clist_use:Nn \l_ptxcd_authorkeys_clist {,}}
+ },
+ license-type .tl_set:N = \l__ptxcd_license_type_tl,
+ license-type .initial:n =,
+ license-modifier .tl_set:N = \l__ptxcd_license_modifier_tl,
+ license-modifier .initial:n =,
+ license-version .tl_set:N = \l__ptxcd_license_version_tl,
+ license-version .initial:n =,
+ license .tl_set:N = \l__ptxcd_license_tl,
+ unknown .code:n = \tl_put_right:Nx \l_ptxcd_unknown_tl {,\l_keys_key_tl =\exp_not:n {#1}},
+}
+
+\cs_new:Nn \__ptxcd_clear_article_vars: {
+ \clist_map_inline:nn {title,subtitle,unknown,head,doi} {
+ \tl_clear:c {l_ptxcd_##1_tl}
+ }
+
+ \tl_set:Nn \l_ptxcd_imprint_tl {\citeimprint {\clist_use:Nn \l_ptxcd_authorkeys_clist {,}}}
+
+ \tl_set_eq:NN \l__ptxcd_license_type_tl \g__ptxcd_license_type_tl
+ \tl_set_eq:NN \l__ptxcd_license_modifier_tl \g__ptxcd_license_modifier_tl
+ \tl_set_eq:NN \l__ptxcd_license_version_tl \g__ptxcd_license_version_tl
+
+ \clist_clear:N \l_ptxcd_author_clist
+ \clist_clear:N \l_ptxcd_authokeys_clist
+ \tl_set:Nn \l_ptxcd_head_tl {l_ptxcd_title_tl}
+}
+
+
+
+\bool_if:NTF \g__ptxcd_collection_bool {
+ \AddToHook{include/before}{\begin{refsection}}
+ \AddToHook{include/after}{\end{refsection}}
+} {
+ \AddToHook{include/before}{\begingroup}
+ \AddToHook{include/after}{\endgroup}
+}
+
+\AddToHook{include/end}{\label{\currentarticlelabel.last}}
+
+\AddToHook{env/enumerate/begin}{\setlength{\parskip}{\z@}}
+\AddToHook{env/itemize/begin}{\setlength{\parskip}{\z@}}
+
+\newcommand*{\currentarticlelabel}{autolabel-\CurrentFile}
+
+\newcommand*{\Article}[2][]{
+ \__ptxcd_clear_article_vars:
+ \keys_set:nn {ptxcd/article} {title={#2},#1}
+
+ \tl_set_eq:NN \doclicense@type \l__ptxcd_license_type_tl
+ \tl_set_eq:NN \doclicense@modifier \l__ptxcd_license_modifier_tl
+ \tl_set_eq:NN \doclicense@version \l__ptxcd_license_version_tl
+
+ \clist_if_empty:NF \l_ptxcd_authorkeys_clist
+ {
+ \clist_if_empty:NT \l_ptxcd_author_clist {
+ \clist_map_inline:Nn \l_ptxcd_authorkeys_clist {
+ \clist_put_right:Nn \l_ptxcd_author_clist {\citearticleauthor{##1}}
+ }
+ }
+ }
+ \tl_if_empty:NTF \l_ptxcd_unknown_tl {
+ \article{#2}
+ } {
+ \exp_last_unbraced:Nno \use:n {\article[}
+ \l_ptxcd_unknown_tl]{#2}
+ }
+ \tl_if_empty:NF \l_ptxcd_subtitle_tl {
+ \begin{flushleft}
+ \usekomafont{article-subtitle}
+ \l_ptxcd_subtitle_tl
+ \end{flushleft}
+ }
+ \label{\currentarticlelabel.first}
+ \vfill
+ \tl_if_empty:NF \l_ptxcd_imprint_tl {
+ \setlength{\fboxrule}{.55mm}
+ \setlength{\fboxsep}{2mm}
+ \fbox{
+ \parbox{\dimexpr\textwidth-2\fboxsep-2\fboxrule}{
+ \usekomafont{article-imprint}
+ \raggedright
+ \g_ptxcd_collection_imprint_info_tl\\
+ \tl_if_empty:NF \l_ptxcd_doi_tl {\exp_args:No \url{https://doi.org/\l_ptxcd_doi_tl}}
+ \par\addvspace{\baselineskip}
+ \l__ptxcd_license_tl
+ \par\addvspace{\baselineskip}
+ \l_ptxcd_imprint_tl\par
+ }
+ }
+ }
+ \pagebreak
+}
+
+\tl_new:N \g_ptxcd_collection_imprint_info_tl
+
+\tl_gset:Nn \g_ptxcd_collection_imprint_info_tl {
+ \@title,~\@author,~\@date,~S.~ \pageref{\currentarticlelabel.first}–\pageref{\currentarticlelabel.last}
+}
+
+\tl_set:Nn \l__ptxcd_license_tl {
+ Dieses~Werk~ist~lizenziert~unter~einer~
+ \doclicenseLongName~Lizenz,~
+ ausgenommen~von~dieser~Lizenz~sind~Abbildungen,~Screenshots~und~Logos.
+}
+
+\ExplSyntaxOff
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% wörtliche Zitate
+\renewenvironment{quote}{%
+ \vspace{1.5mm}
+ \begin{addmargin}[5mm]{5mm}
+ \usekomafont{quote}
+ \ignorespaces
+ }{%
+ \end{addmargin}
+ \vspace{1.5mm}
+}
+
+\let\quotation\quote
+\let\enquotation\endquote
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% lists
+\setlength{\leftmargini}{7mm}
+\setlength{\labelwidth}{0pt}
+\setlength{\labelsep}{4mm}
+%footnotes
+\deffootnote[5mm]{5mm}{-5mm}{\textsuperscript{\thefootnotemark}}
+
+\title{}
+\author{}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% pagestyle
+\usepackage{scrlayer-scrpage}
+
+\ModifyLayers[voffset=16mm]{scrheadings.head.even,scrheadings.head.odd,scrheadings.head.even,scrheadings.head.odd}
+\DeclareNewLayer[clone=scrheadings.head.odd,addhoffset=\textwidth,width=18mm,contents={%
+ \sls@secure@box\headheight{%
+ \normalfont\usekomafont{pageheadfoot}{\usekomafont{pagehead}%
+ \strut\smash{\makebox[\layerwidth][l]{\quad\pagemark}}}}}%
+]{pagemark.odd}
+\DeclareNewLayer[evenpage,head,align=br,voffset=16mm,width=\marginparwidth,contents={%
+ \sls@secure@box\headheight{%
+ \normalfont\usekomafont{pageheadfoot}\usekomafont{pagehead}%
+ \strut\smash{\makebox[\layerwidth][r]{\pagemark\quad}}}}%
+]{pagemark.even}
+\AddLayersToPageStyle{scrheadings}{pagemark.odd,pagemark.even}
+\AddLayersToPageStyle{plain.scrheadings}{pagemark.odd,pagemark.even}
+\clearpairofpagestyles
+\ohead{\headmark}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Abstract
+\ExplSyntaxOn
+\bool_if:NT \g__ptxcd_collection_bool {
+ \providecommand{\abstract}{}% für book
+ \RenewDocumentEnvironment{abstract}{o}{
+ \begingroup
+ \IfNoValueF{#1}{\selectlanguage{#1}}
+ \section*{\abstractname}
+ }{
+ \endgroup
+ }
+
+ \providecaptionname{english}{\keywordsname}{Keywords}
+ \providecaptionname{ngerman,german,naustrian,austrian}{\keywordsname}{Schlagwörter}
+
+ \newcommand*{\keywords}[1]{
+ \par\vspace{\baselineskip}
+ \@hangfrom{\usekomafont{keywordlabel}\keywordsname :\space}{#1}}
+ \newkomafont{keywordlabel}{\bfseries}
+}
+
+
+
+%rlap statt llap
+\clist_map_inline:nn {enum,item} {
+ \int_step_inline:nn {4} {
+ \cs_set_eq:cc {orig@label#1\int_to_roman:n{##1}} {label#1\int_to_roman:n{##1}}
+ \cs_set:cpn {label#1\int_to_roman:n{##1}} {\rlap{\use:c {orig@label#1\int_to_roman:n{##1}}}}
+ }
+}
+
+\DeclareTOCStyleEntry[
+beforeskip=7mm,
+entryformat=\bfseries\fontsize{13bp}{13.8bp}
+\showthe\dimexpr\linewidth-13.4cm\relax
+\selectfont,
+rightindent=\dimexpr\linewidth-13.4cm\relax,
+%pagenumberwidth=\dimexpr\linewidth-13.4cm\relax,
+]{tocline}{part}
+
+
+\DeclareTOCStyleEntry[
+entryformat=\bfseries,
+linefill={\TOCLineLeaderFill[.]},
+]{tocline}{chapter}
+
+
+\DeclareTOCStyleEntry[
+entryformat=\LARGE\bfseries,
+linefill={\TOCLineLeaderFill[.]},
+rightindent=\dimexpr\linewidth-13.4cm\relax,
+beforeskip=7mm,
+]{tocline}{part}
+
+\DeclareTOCStyleEntry[
+indent=5mm,
+entryformat=\normalsize,
+linefill={\TOCLineLeaderFill[.]},
+rightindent=\dimexpr\linewidth-5mm-13.4cm\relax,
+]{tocline}{section}
+
+
+\DeclareTOCStyleEntry[
+indent=10mm,
+entryformat=\normalsize,
+linefill={\TOCLineLeaderFill[.]},
+rightindent=\dimexpr\linewidth-10mm-13.4cm\relax,
+]{tocline}{subsection}
+
+
+\DeclareTOCStyleEntry[
+indent=15mm,
+entryformat=\normalsize,
+linefill={\TOCLineLeaderFill[.]},
+rightindent=\dimexpr\linewidth-15mm-13.4cm\relax,
+]{tocline}{subsubsection}
+
+
+\DeclareTOCStyleEntry[
+indent=20mm,
+entryformat=\normalsize,
+linefill={\TOCLineLeaderFill[.]},
+rightindent=\dimexpr\linewidth-20mm-13.4cm\relax,
+]{tocline}{paragraph}
+
+\RedeclareSectionCommand[
+style=part,
+afterskip = 0pt plus 1 fil,
+beforeskip=54mm,%86mm-27mm,
+font=\sffamily\huge,
+]{part}
+
+\setcounter{tocdepth}{\paragraphnumdepth}
+\setcounter{secnumdepth}{\paragraphnumdepth}
+
+
+
+\newcommand*{\TocAuthorEntry}[2]{%
+ {\usekomafont{TocAuthorEntry}#1}\newline
+ \hspace*{-5mm}
+ #2
+}
+
+\newkomafont{TocAuthorEntry}{\normalfont\normalsize}
+
+\renewcommand*{\raggedpart}{\raggedleft}
+
+\let\orig@backmatter\backmatter
+\renewcommand*{\backmatter}{
+ \__ptxcd_clear_article_vars:
+ \orig@backmatter
+ \StartTocPart{\appendixname}
+}
+
+
+\ExplSyntaxOff
+
+
+\RequirePackage{csquotes}
+
+\PassOptionsToPackage{defernumbers}{biblatex}
+\PassOptionsToPackage{notes}{biblatex-chicago}
+\RequirePackage{biblatex-chicago}
+
+
+% datamodel modiications for authorlist
+\DeclareDatamodelEntrytypes{author}
+
+\DeclareDatamodelFields[type=field,datatype=literal]{university, institute, addendum}
+
+\DeclareDatamodelEntryfields[author]{%
+ author,university,institute,addendum
+}
+
+\DeclareBibliographyDriver{author}{%
+ \mkbibbold{\printnames{author}}\setunit{\addcomma\addspace}%
+ \printfield{university}\setunit{\addcomma\addspace}%
+ \printfield{institute}\newunit
+ \printfield{addendum}\addperiod
+}
+
+\renewcommand*{\bibliography@heading}{\section*}
+
+
+\let\orig@printbibliography\printbibliography
+
+\RenewDocumentCommand{\printbibliography}{O{}}{\orig@printbibliography[nottype=author,#1]}
+
+\setlength{\bibhang}{5mm}
+
+\defbibheading{listofauthors}{%
+ \addsec{Verzeichnis der Autorinnen und Autoren}%
+ \markboth{Verzeichnis der Autorinnen und Autoren}{Verzeichnis der Autorinnen und Autoren}%
+}
+
+\newcommand*{\listofauthors}{\orig@printbibliography[heading=listofauthors,type=author]}
+
+\renewcommand*{\bibfont}{\normalfont\small}
+
+\DeclareCiteCommand{\citeimprint}{}{%
+ \printnames[given-family]{author}\setunit{\addcomma\addspace}
+ \printfield{institute}\setunit{\addcomma\addspace}
+ \printfield{email}\setunit{\addcomma\addspace}
+ \printfield{orcid}\setunit{}
+}{\par}{}
+
+\DeclareCiteCommand{\citearticleauthor}{}{\printnames[given-family]{author}}{}{}
+
+\let\orig@appendix\appendix
+
+\renewcommand*{\appendix}{%
+ \orig@appendix\addpart{Anhang}%
+}
+
+\RequirePackage{graphicx}
+
+\ExplSyntaxOn
+\tl_if_empty:NF \g__ptxcd_license_type_tl {
+ \PassOptionsToPackage{type=\g__ptxcd_license_type_tl}{doclicense}
+ \PassOptionsToPackage{modifier=\g__ptxcd_license_modifier_tl}{doclicense}
+ \PassOptionsToPackage{version=\g__ptxcd_license_version_tl}{doclicense}
+ \RequirePackage[
+ hyperxmp=false
+ ]{doclicense}
+}
+\ExplSyntaxOff
+
+\PassOptionsToPackage{hidelinks}{hyperref}
+\RequirePackage{hyperref}
+
+\extratitle{\begingroup\sffamily\bfseries\fontsize{9bp}{12bp}\def\and{,\space}\selectfont\@author\par\vspace{.5\baselineskip}\@title\par\@subtitle\endgroup}
+
+\setkomafont{author}{\sffamily\bfseries\fontsize{15bp}{18bp}\selectfont}
+
+\setkomafont{subtitle}{\sffamily\bfseries\fontsize{27bp}{30bp}\selectfont}
+
+\setkomafont{title}{\sffamily\bfseries\fontsize{41bp}{42bp}\selectfont}
+
+\renewcommand*\maketitle[1][1]{%
+ \begin{titlepage}
+ \let\footnotesize\small
+ \let\footnoterule\relax
+ \let\footnote\thanks
+ \renewcommand*\thefootnote{\@fnsymbol\c@footnote}%
+ \let\@oldmakefnmark\@makefnmark
+ \renewcommand*{\@makefnmark}{\rlap\@oldmakefnmark}%
+ \ifx\@extratitle\@empty
+ \ifx\@frontispiece\@empty
+ \else
+ \if@twoside\mbox{}\next@tpage\fi
+ \noindent\@frontispiece\next@tdpage
+ \fi
+ \else
+ \noindent\@extratitle
+ \ifx\@frontispiece\@empty
+ \else
+ \next@tpage
+ \noindent\@frontispiece
+ \fi
+ \next@tdpage
+ \fi
+ \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
+ \begin{raggedright}
+ \begingroup
+ \def\and{\par}
+ \usekomafont{author}
+ \csname text_uppercase:n\endcsname {\@author}
+ \par\vspace{1.784\baselineskip}
+ \endgroup
+ {\usekomafont{title}{\csname text_uppercase:n\endcsname {\@title}\par}}%
+ \vskip 1em
+ {\ifx\@subtitle\@empty\else\usekomafont{subtitle}{\@subtitle\par}\fi}%
+ \end{raggedright}\par
+ % \vskip \z@ \@plus3fill
+ \vfill
+ {\usekomafont{publishers}{\@publishers \par}}%
+ \@thanks\global\let\@thanks\@empty
+ \next@tpage
+ \begin{minipage}[t]{\textwidth}
+ \@uppertitleback
+ \end{minipage}\par
+ \vfill
+ \begin{minipage}[b]{\textwidth}
+ \fontsize{10bp}{10bp}\selectfont
+ \setlength{\parskip}{\baselineskip}
+ \raggedright
+ \@lowertitleback
+ \end{minipage}\par
+ \@thanks\global\let\@thanks\@empty
+ % \fi
+ \ifx\@dedication\@empty
+ \else
+ \next@tdpage\null\vfill
+ {\centering\usekomafont{dedication}{\@dedication \par}}%
+ \vskip \z@ \@plus3fill
+ \@thanks\global\let\@thanks\@empty
+ \cleardoubleemptypage
+ \fi
+ \ifx\titlepage@restore\relax\else\clearpage\titlepage@restore\fi
+ \end{titlepage}
+ \setcounter{footnote}{0}%
+ \global\let\and\relax
+}%
+
+
+
+\newcommand*{\edition}[1]{\def\insertedition{#1}}
+\newcommand*{\publishersaddress}[1]{\def\insertpublishersaddress{#1}}
+
+\publishers{Graz University Library Publishing \IfFileExists{Logo_Universitaet-Graz_1c.pdf}{\hfill \includegraphics[width=0.25\textwidth]{Logo_Universitaet-Graz_1c.pdf}}{}}
+\publishersaddress{
+ Graz University Library Publishing\\
+ Universitätsplatz 3a\\
+ 8010 Graz\\
+ \protect\url{lp.uni-graz.at}}
+
+\newcommand*{\insertauthor}{\@author}
+\newcommand*{\insertdate}{\@date}
+\newcommand*{\insertpublishers}{\@publishers}
+
+\endinput
+% \end{macrocode}
+%\iffalse
+% \begin{macrocode}
+%</unigrazpub.cls>
+% \end{macrocode}
+%\fi
+%\Finale
+\endinput
diff --git a/macros/latex/contrib/unigrazpub/unigrazpub.ins b/macros/latex/contrib/unigrazpub/unigrazpub.ins
new file mode 100644
index 0000000000..a577e15279
--- /dev/null
+++ b/macros/latex/contrib/unigrazpub/unigrazpub.ins
@@ -0,0 +1,40 @@
+\input docstrip
+
+\preamble
+ UniGrazPub – LaTeX Templates for Graz University Library Publishing
+ ----------------------------------------------------------------------------
+
+ Copyright (C) 2022 by Marei Peischl <marei@peitex.de>
+
+ This work may be distributed and/or modified under the
+ conditions of the LaTeX Project Public License, either version 1.3c
+ 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.3c or later is part of all distributions of LaTeX
+ version 2008/05/04 or later.
+
+ This work has the LPPL maintenance status `maintained'.
+
+ The Current Maintainers of this work are
+ Marei Peischl <unigrazpub@peitex.de>
+
+ This work consists of the files unigrazpub.dtx and unigrazpub.ins
+ and the derived file unigrazpub.cls
+
+ The development respository can be found at
+ https://github.com/peitex/unigrazpub
+ Please use the issue tracker for feedback!
+
+\endpreamble
+
+\askforoverwritefalse
+
+\generate{\file{unigrazpub.cls}{%
+ \usepreamble\defaultpreamble
+ \usepostamble\defaultpostamble
+ \from{unigrazpub.dtx}{unigrazpub.cls,class}%
+ }
+}
+
+\endbatchfile
diff --git a/macros/latex/contrib/unigrazpub/unigrazpub.pdf b/macros/latex/contrib/unigrazpub/unigrazpub.pdf
new file mode 100644
index 0000000000..c6cdda269e
--- /dev/null
+++ b/macros/latex/contrib/unigrazpub/unigrazpub.pdf
Binary files differ