summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-06-11 03:02:16 +0000
committerNorbert Preining <norbert@preining.info>2022-06-11 03:02:16 +0000
commit040c2af2b17f76a6f7e97a17ddbe0eee645508d4 (patch)
tree846f67bc2608b3051bfe8217d2fa9bc805dfd895 /macros
parentfb4909f4112d8b778570cf1c2e25ca18c63bc1ca (diff)
CTAN sync 202206110302
Diffstat (limited to 'macros')
-rw-r--r--macros/latex/contrib/hvextern/Changes2
-rw-r--r--macros/latex/contrib/hvextern/doc/hvextern.pdfbin1424304 -> 1425099 bytes
-rw-r--r--macros/latex/contrib/hvextern/doc/hvextern.tex66
-rw-r--r--macros/latex/contrib/hvextern/latex/hvextern.sty7
-rw-r--r--macros/latex/contrib/tuda-ci/README.md5
-rw-r--r--macros/latex/contrib/tuda-ci/doc/DEMO-TUDaAnnouncement.pdfbin551988 -> 551945 bytes
-rw-r--r--macros/latex/contrib/tuda-ci/doc/DEMO-TUDaBeamer.pdfbin598742 -> 598742 bytes
-rw-r--r--macros/latex/contrib/tuda-ci/doc/DEMO-TUDaExercise.pdfbin571481 -> 571577 bytes
-rw-r--r--macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLeaflet.pdfbin559870 -> 559873 bytes
-rw-r--r--macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLetter.pdfbin567048 -> 567143 bytes
-rw-r--r--macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPhD.pdfbin635719 -> 635972 bytes
-rw-r--r--macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPoster.pdfbin536186 -> 536114 bytes
-rw-r--r--macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPub.pdfbin662283 -> 662358 bytes
-rw-r--r--macros/latex/contrib/tuda-ci/doc/DEMO-TUDaReport.pdfbin527257 -> 527111 bytes
-rw-r--r--macros/latex/contrib/tuda-ci/doc/DEMO-TUDaSciPoster.pdfbin574998 -> 563716 bytes
-rw-r--r--macros/latex/contrib/tuda-ci/doc/DEMO-TUDaThesis.pdfbin627487 -> 627579 bytes
-rw-r--r--macros/latex/contrib/tuda-ci/example/DEMO-TUDaAnnouncement.tex2
-rw-r--r--macros/latex/contrib/tuda-ci/example/DEMO-TUDaBeamer.tex2
-rw-r--r--macros/latex/contrib/tuda-ci/example/DEMO-TUDaBibliography.bib2
-rw-r--r--macros/latex/contrib/tuda-ci/example/DEMO-TUDaExercise.tex2
-rw-r--r--macros/latex/contrib/tuda-ci/example/DEMO-TUDaFromaddress.lco2
-rw-r--r--macros/latex/contrib/tuda-ci/example/DEMO-TUDaLeaflet.tex2
-rw-r--r--macros/latex/contrib/tuda-ci/example/DEMO-TUDaLetter.tex2
-rw-r--r--macros/latex/contrib/tuda-ci/example/DEMO-TUDaPhD.tex19
-rw-r--r--macros/latex/contrib/tuda-ci/example/DEMO-TUDaPoster.tex2
-rw-r--r--macros/latex/contrib/tuda-ci/example/DEMO-TUDaPub.tex2
-rw-r--r--macros/latex/contrib/tuda-ci/example/DEMO-TUDaReport.tex2
-rw-r--r--macros/latex/contrib/tuda-ci/example/DEMO-TUDaSciPoster.tex2
-rw-r--r--macros/latex/contrib/tuda-ci/example/DEMO-TUDaThesis.tex7
-rw-r--r--macros/latex/contrib/tuda-ci/tex/beamercolorthemeTUDa.sty6
-rw-r--r--macros/latex/contrib/tuda-ci/tex/beamerfontthemeTUDa.sty6
-rw-r--r--macros/latex/contrib/tuda-ci/tex/beamerinnerthemeTUDa.sty6
-rw-r--r--macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa.sty6
-rw-r--r--macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa-mecheng.sty6
-rw-r--r--macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa.sty6
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tuda-a0paper.clo6
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tuda-a1paper.clo6
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tuda-a2paper.clo6
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tuda-a3paper.clo6
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tuda-a4paper.clo6
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tuda-a5paper.clo6
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tuda-pgfplots.sty6
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tudabeamer.cls6
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tudacolors.def6
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tudacolors.sty6
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tudaexercise.cls6
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tudafonts.sty6
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tudaleaflet.cls10
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tudaletter.cls6
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tudalettersize10pt.clo2
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tudamecheng.cfg6
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tudaposter.cls6
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tudapub.cls6
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tudarules.sty6
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tudasciposter.cls6
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tudasize9pt.clo2
-rw-r--r--macros/latex/contrib/tuda-ci/tex/tudathesis.cfg52
-rw-r--r--macros/luatex/latex/ligtype/README.md31
-rw-r--r--macros/luatex/latex/ligtype/ligtype.lua1643
-rw-r--r--macros/luatex/latex/ligtype/ligtype.pdfbin0 -> 100959 bytes
-rw-r--r--macros/luatex/latex/ligtype/ligtype.sty53
-rw-r--r--macros/luatex/latex/spacekern/README.md19
-rw-r--r--macros/luatex/latex/spacekern/spacekern.lua174
-rw-r--r--macros/luatex/latex/spacekern/spacekern.pdfbin0 -> 63536 bytes
-rw-r--r--macros/luatex/latex/spacekern/spacekern.sty33
-rw-r--r--macros/unicodetex/latex/njuthesis/njuthesis.dtx244
-rw-r--r--macros/unicodetex/latex/njuthesis/njuthesis.pdfbin1275071 -> 1284394 bytes
-rw-r--r--macros/xetex/latex/bidi/README4
-rw-r--r--macros/xetex/latex/bidi/bidi-doc-intro.ltx2
-rw-r--r--macros/xetex/latex/bidi/bidi-doc-title.ltx4
-rw-r--r--macros/xetex/latex/bidi/bidi-doc.ltx2
-rw-r--r--macros/xetex/latex/bidi/bidi-doc.pdfbin178005 -> 178007 bytes
-rw-r--r--macros/xetex/latex/bidi/bidi.dtx45
-rw-r--r--macros/xetex/latex/bidi/bidi.pdfbin3357060 -> 3359451 bytes
-rw-r--r--macros/xetex/latex/xepersian/README4
-rw-r--r--macros/xetex/latex/xepersian/xepersian-doc-intro.ltx2
-rw-r--r--macros/xetex/latex/xepersian/xepersian-doc-title.ltx4
-rw-r--r--macros/xetex/latex/xepersian/xepersian-doc.ltx2
-rw-r--r--macros/xetex/latex/xepersian/xepersian-doc.pdfbin243703 -> 243591 bytes
-rw-r--r--macros/xetex/latex/xepersian/xepersian.dtx42
-rw-r--r--macros/xetex/latex/xepersian/xepersian.pdfbin775680 -> 776194 bytes
81 files changed, 2339 insertions, 307 deletions
diff --git a/macros/latex/contrib/hvextern/Changes b/macros/latex/contrib/hvextern/Changes
index 381e9db727..e9b70b0027 100644
--- a/macros/latex/contrib/hvextern/Changes
+++ b/macros/latex/contrib/hvextern/Changes
@@ -1,5 +1,7 @@
hvextern.sty ----------------
+v 0.30 2022-06-09 - added \hfuzz=\maxdimen for filename to prevent
+ overfull box messages
v 0.29 2022-06-06 - use skin "enhanced jigsaw" for tcolorbox
- output -> showoutput
v 0.28 2022-06-01 - added option output
diff --git a/macros/latex/contrib/hvextern/doc/hvextern.pdf b/macros/latex/contrib/hvextern/doc/hvextern.pdf
index d5c1bb8ef9..0f2754a178 100644
--- a/macros/latex/contrib/hvextern/doc/hvextern.pdf
+++ b/macros/latex/contrib/hvextern/doc/hvextern.pdf
Binary files differ
diff --git a/macros/latex/contrib/hvextern/doc/hvextern.tex b/macros/latex/contrib/hvextern/doc/hvextern.tex
index 22c26b7669..724f779a73 100644
--- a/macros/latex/contrib/hvextern/doc/hvextern.tex
+++ b/macros/latex/contrib/hvextern/doc/hvextern.tex
@@ -1,4 +1,4 @@
-%% $Id: hvextern.tex 570 2022-06-06 05:40:08Z herbert $
+%% $Id: hvextern.tex 574 2022-06-09 19:34:31Z herbert $
\RequirePackage{pdfmanagement-testphase}
\DeclareDocumentMetadata{}
\documentclass[ngerman,a4paper,twoside]{article}
@@ -27,7 +27,7 @@
\begin{document}
\title{Writing, running and including the output of external documents
from within a main\newline \LaTeX\ document~--v. \hvexternFileversion}
-\author{Herbert Voß \url{herbert@dante.de}}
+\author{Herbert Voß \url{herbert@dante.de}\thanks{Thanks to Karl Berry; Rolf Niepraschk}}
\maketitle
\tableofcontents
@@ -136,7 +136,7 @@ shown by the environment \Lenv{externalDocument}.
\end{minipage}
\begin{minipage}{.39\linewidth}
\begin{externalDocument}[
- compiler=pdflatex,force=false,cleanup={log,aux},showFilename=false]{voss}
+ compiler=pdflatex,force=true,cleanup={log,aux},showFilename=false]{voss}
\documentclass{standalone}
%StartVisiblePreamble
\usepackage{fontenc}
@@ -192,7 +192,7 @@ catagory, which is done internally by the package. The complete definition of th
compiler=python3,
code,
ext=py,
- force=false,
+ force=true,
docType=py,
usefancyvrb,
grfOptions={width=\linewidth}]{python}
@@ -242,7 +242,7 @@ line in the above code shows how it can be done with Python.
\begin{externalDocument}[
compiler=python3,
progpath=/usr/local/bin/,
- force=false,
+ force=true,
runs=1,
code,
ext=py,
@@ -300,7 +300,7 @@ e.g. \texttt{shiftFN=5ex}.
\begin{externalDocument}[grfOptions={width=0.95\linewidth},
compiler=xelatex,code,mpwidth=0.6\linewidth,
- crop,cleanup,force=false,usefancyvrb=false,ext=tex,showFilename=false]{voss}
+ crop,cleanup,force=true,usefancyvrb=false,ext=tex,showFilename=false]{voss}
\documentclass{article}
%StartVisiblePreamble
\usepackage{tikz}
@@ -412,7 +412,7 @@ runsequence={lualatex,biber,xindex -l de -c AU,lualatex,lualatex}
runsequence={lualatex,biber,xindex -l de -c AU,lualatex,lualatex},
,
verbose,
- force=false,
+ force=true,
cleanup={log,aux,toc,bbl,blg},
code,docType=latex,
lstOptions={columns=fixed}]{voss}
@@ -451,7 +451,7 @@ the environment \Lenv{externalDocument} is:
\begin{externalDocument}[
verbose,
compiler=java,ext=java,code,
- force=false,docType=java,includegraphic,
+ force=true,docType=java,includegraphic,
usefancyvrb,grfOptions={width=0.9\linewidth}]{java}
import java.awt.Color;
import java.awt.Graphics;
@@ -582,7 +582,7 @@ to \Lcs{VerbatimInput}. The following example uses
mpwidth=0.6\linewidth,
crop,
cleanup,
- force=false,
+ force=true,
docType=latex]{voss}
\RequirePackage{pdfmanagement-testphase}
\DeclareDocumentMetadata{}
@@ -630,7 +630,7 @@ The color of the frame is set to the same values, hence not seen. The following
mpwidth=0.6\linewidth,
crop,
cleanup,
- force=false,
+ force=true,
usefancyvrb,
docType=latex]{voss}
\RequirePackage{pdfmanagement-testphase}
@@ -717,7 +717,7 @@ The following example uses:
% mpwidth=0.6\linewidth,
% crop,
cleanup,
- force=false,
+ force=true,
frame,
% usefancyvrb,
% float,
@@ -770,7 +770,7 @@ which is the default. Using a caption and a label are optional.
% mpwidth=0.6\linewidth,
crop,
cleanup,
- force=false,
+ force=true,
usefancyvrb,
float,
floatsetting=!ht,
@@ -833,7 +833,7 @@ The follwoing example was created with
% mpwidth=0.6\linewidth,
crop, cropmargin=5,
cleanup,
- force=false,
+ force=true,
frame,
% usefancyvrb,
% float,
@@ -894,7 +894,7 @@ or \Lkeyval{b}.
showFilename=false,
crop,
cleanup,
- force=false,
+ force=true,
docType=latex]{voss}
\documentclass{article}
\pagestyle{empty}
@@ -918,7 +918,7 @@ or \Lkeyval{b}.
code,
crop,
cleanup,
- force=false,
+ force=true,
docType=latex]{voss}
\documentclass{article}
\pagestyle{empty}
@@ -943,7 +943,7 @@ or \Lkeyval{b}.
showFilename=false,
crop,
cleanup,
- force=false,
+ force=true,
docType=latex]{voss}
\documentclass{article}
\pagestyle{empty}
@@ -968,7 +968,7 @@ or \Lkeyval{b}.
crop,
showFilename=false,
cleanup,
- force=false,
+ force=true,
mpwidth=0.5\linewidth,
docType=latex]{voss}
\documentclass{article}
@@ -993,7 +993,7 @@ or \Lkeyval{b}.
showFilename=false,
crop,
cleanup,
- force=false,
+ force=true,
mpwidth=0.5\linewidth,
docType=latex]{voss}
\documentclass{article}
@@ -1019,7 +1019,7 @@ or \Lkeyval{b}.
showFilename=false,
crop,
cleanup,
- force=false,
+ force=true,
mpwidth=0.5\linewidth,
docType=latex]{voss}
\documentclass{article}
@@ -1049,7 +1049,7 @@ next Chinese characters
\begin{externalDocument}[
compiler=xelatex, inline, runs=2, grfOptions={height=8pt},
crop, cropmargin=0,
- cleanup, force=false, docType=latex]{voss}%
+ cleanup, force=true, docType=latex]{voss}%
\documentclass{ctexart}
\pagestyle{empty}
\begin{document}
@@ -1065,7 +1065,7 @@ With \Lkeyset{inline} the optional argument \Lkeyword{code} is
automatically set to false. The next Chinese characters
\begin{externalDocument}[
compiler=xelatex, inline, runs=2, grfOptions={height=8pt},
- crop, cropmargin=0, cleanup, force=false, docType=latex]{voss}
+ crop, cropmargin=0, cleanup, force=true, docType=latex]{voss}
\documentclass{ctexart}
\pagestyle{empty}
\begin{document}
@@ -1104,7 +1104,7 @@ sorted digits of the number $A$: $495=954-459$.
\begin{externalDocument}[
- compiler=perl, force=false, docType=pl, ext=pl, includegraphic=false,
+ compiler=perl, force=true, docType=pl, ext=pl, includegraphic=false,
code, mpwidth=0.6\linewidth]{voss}
#!/usr/bin/perl
#
@@ -1159,7 +1159,7 @@ outFile = io.open(shortFN..".txt","w+") -- open external file
\begin{externalDocument}[
- compiler=lua, force=false, docType=lua, ext=lua, includegraphic=false,
+ compiler=lua, force=true, docType=lua, ext=lua, includegraphic=false,
code, usefancyvrb=false,textOptions={basicstyle=\ttfamily\footnotesize},
shiftFN=6ex]{voss}
#!/usr/bin/env lua
@@ -1234,7 +1234,7 @@ The following examples uses
pages=2,
crop,
cleanup,
- force=false,
+ force=true,
xindex,
xindexOptions={-l DE --config AU},
mpwidth=0.6\linewidth,
@@ -1290,7 +1290,7 @@ runsequence={lualatex,biber,{xindex -l de -c AU},lualatex,lualatex}
frame,
runsequence={lualatex,biber,xindex -l de -c AU,lualatex,lualatex},
verbose,
- force=false,
+ force=true,
cleanup={log,aux,toc,bbl,blg},
code,docType=latex,
lstOptions={columns=fixed}]{voss}
@@ -1330,7 +1330,7 @@ The default is using \Lcs{lstinputlisting} for the printed code sequences.
pages={1,3},
frame,compiler=pdflatex,
% crop,
- force=false,runs=2,code,docType=latex,
+ force=true,runs=2,code,docType=latex,
frame,
lstOptions={columns=fixed}]{voss}
%StartVisiblePreamble
@@ -1390,7 +1390,7 @@ it makes no difference using the optional argument \Lkeyword{usefancyvrb} or not
frame,compiler=pdflatex,
showFilename,
% crop,
- force=false,runs=2,code,docType=latex,
+ force=true,runs=2,code,docType=latex,
frame,framesep=0pt,usefancyvrb]{voss}
%StartVisiblePreamble
\documentclass[chapterprefix=on,parskip=half-,DIV=12,fontsize=12pt]{scrbook}
@@ -1550,7 +1550,7 @@ Whith this definition and the setting \Lkeyset{docType=ltx} the last example loo
frame,
compiler=pdflatex,
showFilename,
- force=false,
+ force=true,
runs=2,code,docType=ltx,
usefancyvrb]{voss}
\documentclass[chapterprefix=on,parskip=half-,DIV=12,fontsize=12pt]{scrreprt}
@@ -1614,7 +1614,7 @@ It is already internally defined.
compiler=mpost,
showFilename,
% crop,
- force=false,
+ force=true,
cleanup,
code,
docType=mp,
@@ -1650,7 +1650,7 @@ It is already internally defined.
compiler=tex,
showFilename,
% crop,
- force=false,
+ force=true,
code,
docType=tex,
ext=tex,]{voss}
@@ -1716,7 +1716,7 @@ not needed. The \texttt{pdf} is directly created.
compiler=lualatex,
showFilename,
crop,
- force=false,
+ force=true,
code,
docType=latex,
ext=tex,]{voss}
@@ -1758,7 +1758,7 @@ not needed. The \texttt{pdf} is directly created.
compiler=context,
showFilename,
runs=2,
- force=false,
+ force=true,
code,
docType=context,
ext=tex,]{voss}
@@ -1803,7 +1803,7 @@ foo
\end{externalDocument}
-\addtocontents{toc}{\protect\newpage}
+%\addtocontents{toc}{\protect\newpage}
\section{Running external commands}
diff --git a/macros/latex/contrib/hvextern/latex/hvextern.sty b/macros/latex/contrib/hvextern/latex/hvextern.sty
index 369a46df2a..1ad9c18209 100644
--- a/macros/latex/contrib/hvextern/latex/hvextern.sty
+++ b/macros/latex/contrib/hvextern/latex/hvextern.sty
@@ -1,4 +1,4 @@
-%% $Id: hvextern.sty 570 2022-06-06 05:40:08Z herbert $
+%% $Id: hvextern.sty 574 2022-06-09 19:34:31Z herbert $
%% This is file `hvextern.sty',
%%
%% Copyright (C) 2016-22
@@ -12,8 +12,8 @@
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
-\def\hvexternFileversion{0.29}
-\ProvidesFile{hvextern}[2022/06/06 v\hvexternFileversion: package for running external documents (HV)]
+\def\hvexternFileversion{0.30}
+\ProvidesFile{hvextern}[2022/06/09 v\hvexternFileversion: package for running external documents (HV)]
\RequirePackage{shellesc,xkeyval,graphicx}
\RequirePackage{fancyvrb,tikz,listings,ifplatform}
@@ -514,6 +514,7 @@
\ifhv@extern@showFilename
\hv@ex@typeout{Set filename in the margin!}%
\noindent
+ \hfuzz=\maxdimen
\hv@marginpar{\hvExternDateiname\hv@extern@ext}%
\fi
%
diff --git a/macros/latex/contrib/tuda-ci/README.md b/macros/latex/contrib/tuda-ci/README.md
index fdd1d50303..a8f69c1807 100644
--- a/macros/latex/contrib/tuda-ci/README.md
+++ b/macros/latex/contrib/tuda-ci/README.md
@@ -2,7 +2,7 @@
Copyright (C) Marei Peischl <marei@peitex.de>, 2018–2022
- tuda-ci 2022/04/25 v3.25
+ tuda-ci 2022/06/10 v3.26
***************************************************************************
@@ -319,3 +319,6 @@ leaflets | DEMO-TUDaLeaflet.tex | tudaleaflet.cls
* 3.25 (2022-04-25)
- Fix departmnt specific configuration mechanism in TUDa-SciPoster
- Add support for specific configuration paths
+ * 3.26 (2022-06-10)
+ - update TUprints data scheme
+ - fix incompatibility with TUDaLeaflet and recent KOMA-Script updates
diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaAnnouncement.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaAnnouncement.pdf
index 7056169288..6b21a7fd1f 100644
--- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaAnnouncement.pdf
+++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaAnnouncement.pdf
Binary files differ
diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaBeamer.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaBeamer.pdf
index 8b328ec138..1967da6533 100644
--- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaBeamer.pdf
+++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaBeamer.pdf
Binary files differ
diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaExercise.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaExercise.pdf
index 5ebbdbf43d..33bfc2ee3c 100644
--- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaExercise.pdf
+++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaExercise.pdf
Binary files differ
diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLeaflet.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLeaflet.pdf
index daecff9e1e..787a1b9d77 100644
--- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLeaflet.pdf
+++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLeaflet.pdf
Binary files differ
diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLetter.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLetter.pdf
index 240a9f7124..771f6ea786 100644
--- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLetter.pdf
+++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaLetter.pdf
Binary files differ
diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPhD.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPhD.pdf
index 0db380c6ff..879907a9f0 100644
--- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPhD.pdf
+++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPhD.pdf
Binary files differ
diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPoster.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPoster.pdf
index a3a4a9bb2a..7f79d65cda 100644
--- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPoster.pdf
+++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPoster.pdf
Binary files differ
diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPub.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPub.pdf
index baeaed7dc7..095f6d3508 100644
--- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPub.pdf
+++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaPub.pdf
Binary files differ
diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaReport.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaReport.pdf
index f62cee57fe..43f238b76a 100644
--- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaReport.pdf
+++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaReport.pdf
Binary files differ
diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaSciPoster.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaSciPoster.pdf
index f8c1ae62de..46fe3c5f63 100644
--- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaSciPoster.pdf
+++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaSciPoster.pdf
Binary files differ
diff --git a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaThesis.pdf b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaThesis.pdf
index de93725c07..62da9d204c 100644
--- a/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaThesis.pdf
+++ b/macros/latex/contrib/tuda-ci/doc/DEMO-TUDaThesis.pdf
Binary files differ
diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaAnnouncement.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaAnnouncement.tex
index f544fec34a..b03810e25b 100644
--- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaAnnouncement.tex
+++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaAnnouncement.tex
@@ -1,4 +1,4 @@
-%% This is file `DEMO-TUDaAnnouncement.tex' version 3.25 (2022/04/25),
+%% This is file `DEMO-TUDaAnnouncement.tex' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaBeamer.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaBeamer.tex
index 37cb9fd1d5..f250f06d5a 100644
--- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaBeamer.tex
+++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaBeamer.tex
@@ -1,4 +1,4 @@
-%% This is file `DEMO-TUDaBeamer.tex' version 3.25 (2022/04/25),
+%% This is file `DEMO-TUDaBeamer.tex' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaBibliography.bib b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaBibliography.bib
index 0f5872b58a..aac26d46cb 100644
--- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaBibliography.bib
+++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaBibliography.bib
@@ -1,4 +1,4 @@
-%% This is file `DEMO-TUDaBibliography.bib' version 3.25 (2022/04/25),
+%% This is file `DEMO-TUDaBibliography.bib' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaExercise.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaExercise.tex
index 36ddb7df7b..929cdb426e 100644
--- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaExercise.tex
+++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaExercise.tex
@@ -1,4 +1,4 @@
-%% This is file `DEMO-TUDaExercise.tex' version 3.25 (2022/04/25),
+%% This is file `DEMO-TUDaExercise.tex' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaFromaddress.lco b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaFromaddress.lco
index a41081ac23..32cabe4184 100644
--- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaFromaddress.lco
+++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaFromaddress.lco
@@ -1,4 +1,4 @@
-%% This is file `DEMO-TUDaFromaddress.lco' version 3.25 (2022/04/25),
+%% This is file `DEMO-TUDaFromaddress.lco' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaLeaflet.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaLeaflet.tex
index 26c273b3d5..760e687637 100644
--- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaLeaflet.tex
+++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaLeaflet.tex
@@ -1,4 +1,4 @@
-%% This is file `DEMO-TUDaLeaflet.tex' version 3.25 (2022/04/25),
+%% This is file `DEMO-TUDaLeaflet.tex' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaLetter.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaLetter.tex
index 12919213f4..3beeee03ce 100644
--- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaLetter.tex
+++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaLetter.tex
@@ -1,4 +1,4 @@
-%% This is file `DEMO-TUDaLetter.tex' version 3.25 (2022/04/25),
+%% This is file `DEMO-TUDaLetter.tex' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPhD.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPhD.tex
index 6d9bc38e94..e36911793e 100644
--- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPhD.tex
+++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPhD.tex
@@ -1,4 +1,4 @@
-%% This is file `DEMO-TUDaPhD.tex' version 3.25 (2022/04/25),
+%% This is file `DEMO-TUDaPhD.tex' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
@@ -121,8 +121,7 @@
\reviewer{Gutachter 1 \and Gutachter 2 \and noch einer \and falls das immernoch nicht reicht}%Gutachter
%Falls die Bezeichner entsprechend der Promotionsordnung angepasst werden sollen:
%\reviewer*[Erstreferent\_in,Koreferent\_in]{Gutachter 1 \and Gutachter 2}
-\publishers{Darmstadt}% Feld für die Ortsangabe oder einen Verlag. Dies ist mit Darmstadt -- D17 vorbelegt, s.u. jedoch wurde die Anforderung für diese Vorgabe reduziert, daher genügt auch die Ortsangabe.
-
+%\publishers{}% Feld für die Ortsangabe oder einen Verlag. Dies ist mit „Darmstadt, Technische Universität Darmstadt“ vorbelegt. Die Vorgabe stammt von der Universitätsbibliothek.
%%Sofern keine passende Option verfügbar ist
%\drtext{}
@@ -143,7 +142,7 @@
% die kommerzielle Nutzung.
% TUDa-CI wird im nächsten größeren Release ebenfalls diese Anpassung vornehmen.
% Aus diesem Grund wird empfohlen die Lizenz manuell auszuwählen.
-\tuprints{urn=1234,printid=12345,doi=10.25534/tuprints-1234,license=cc-by-4.0}
+\tuprints{urn=XXXXX,printid=XXXX,year=2022,license=cc-by-4.0}
% To see further information on the license option in English, remove the license= key and pay attention to the warning & help message.
\dedication{For \TeX{} \& Friends}
@@ -271,6 +270,8 @@ Falls eine Layoutanpassung der Titelseite notwendig ist, gelten die in der TUDaP
\setupReviewName{Ersatzwort für „Gutachten“}
\end{verbatim}
Setzt die ersten beiden Bezeichner. Alternativ ist es auch möglich Positionen einzeln zu benennen \verb+\setupReviewName[1]{Erstferent}+, eine Übergabe als Komma-Liste ist als \verb+\setupReviewName*{Bezeicher1,Bezeicher2}+ möglich.
+
+ Ab Version 3.26 werden die Gutachter nicht mehr auf der Titelrückseite genannt. Dies wird über die \verb+thesis+ Option \verb+reviewer-on-uppertitleback+ gesteuert. Voreingestellt ist der Wert \verb+false+.
\item[institution] Einrichtung. Dieser Eintrag, wie auch die beiden folgenden, werden unterhalb des Logos auf der Titelseite platziert.
\item[department] Fach-/Studienbereich, allerdings ist die oben genannte Option zu bevorzugen. Die Verarbeitung des Arguments erfolgt jedoch analog.
@@ -287,13 +288,13 @@ Falls eine Layoutanpassung der Titelseite notwendig ist, gelten die in der TUDaP
\item[submissiondate] Datum der Einreichung
\item[examdate] Datum der Disputation
\item[date] Beliebiges Datum. Wird über \verb|datename| bezeichnet.
- \item[publishers] Wird hier für die Ortsangabe verwendet und ist mit \enquote{Darmstadt}, bzw. \enquote{Darmstadt -- D17} (bei Dissertationen) vorbelegt.
- \item[tuprints] \label{page:tuprints}Übergabe der Daten, sofern das dokument über tuprints Veröffentlicht werden soll.
+ \item[publishers] Wird hier für die Ortsangabe verwendet und ist mit \enquote{Darmstadt}, bzw. \enquote{Darmstadt, Technische Universität Darmstadt} (bei Dissertationen) vorbelegt.
+ \item[tuprints] \label{page:tuprints}Übergabe der Daten, sofern das Dokument über TUprints Veröffentlicht werden soll.
\begin{verbatim}
\tuprints{
urn=1234,
printid=12345,
- doi=10.25534/tuprints-1234
+ year=2022
}
\end{verbatim}
Falls das Argument kein Gleichheitszeichen erkennt, wird der Wert als \code{printid} gesetzt und keine URN angegeben.
@@ -399,7 +400,7 @@ Es ist prinzipiell möglich die Optionen auch direkt als Optionen zur \file{tuda
Für dieses Dokument wurden beispielsweise die Optionen als
\begin{verbatim}
-thesis={type=drfinal,dr=phil}
+thesis={type=dr,dr=rernat}
\end{verbatim}
übergeben.
@@ -417,7 +418,7 @@ Im folgenden findet sich die Bedeutung der einzelnen Optionen:
\item \code{drfinal}: genehmigte Dissertation (title, author, submissiondate,examdate, birthplace, department, reviewer)
\end{itemize}
Wird ein Typus angegeben, der nicht erkannt wird, so wird der Text direkt übergeben. Notwendige Titelfelder über den Titel hinaus gibt es in diesem Fall nicht.
-\item[dr=<Kürzel>] Lädt einen der vordefinierten Texte für die Titelseite. Als Werte stehen bislang \code{rernat}, \code{ing} und \code{phil} zur Verfügung. Zum Beispiel lädt der Wert \code{phil}:
+\item[dr=<Kürzel>] Lädt einen der vordefinierten Texte für die Titelseite. Als Werte stehen bislang \code{rernat}, \code{rerpol}, \code{ing} und \code{phil} zur Verfügung. Zum Beispiel lädt der Wert \code{phil}:
\begin{quote}
Zur Erlangung des Grades eines Doktor der Philosophie (Dr.\,phil.)
\end{quote}
diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPoster.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPoster.tex
index 425e463695..cdb92ff62f 100644
--- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPoster.tex
+++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPoster.tex
@@ -1,4 +1,4 @@
-%% This is file `DEMO-TUDaPoster.tex' version 3.25 (2022/04/25),
+%% This is file `DEMO-TUDaPoster.tex' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPub.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPub.tex
index c98b991e8f..68ad4e482e 100644
--- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPub.tex
+++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaPub.tex
@@ -1,4 +1,4 @@
-%% This is file `DEMO-TUDaPub.tex' version 3.25 (2022/04/25),
+%% This is file `DEMO-TUDaPub.tex' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaReport.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaReport.tex
index 595395a38c..123d2e5286 100644
--- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaReport.tex
+++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaReport.tex
@@ -1,4 +1,4 @@
-%% This is file `DEMO-TUDaReport.tex' version 3.25 (2022/04/25),
+%% This is file `DEMO-TUDaReport.tex' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaSciPoster.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaSciPoster.tex
index a068bed175..f0a47d5f24 100644
--- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaSciPoster.tex
+++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaSciPoster.tex
@@ -1,4 +1,4 @@
-%% This is file `DEMO-TUDaSciPoster.tex' version 3.25 (2022/04/25),
+%% This is file `DEMO-TUDaSciPoster.tex' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
diff --git a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaThesis.tex b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaThesis.tex
index 62313cf74e..04826a7230 100644
--- a/macros/latex/contrib/tuda-ci/example/DEMO-TUDaThesis.tex
+++ b/macros/latex/contrib/tuda-ci/example/DEMO-TUDaThesis.tex
@@ -1,4 +1,4 @@
-%% This is file `DEMO-TUDaThesis.tex' version 3.25 (2022/04/25),
+%% This is file `DEMO-TUDaThesis.tex' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
@@ -128,7 +128,7 @@
% die kommerzielle Nutzung.
% TUDa-CI wird im nächsten größeren Release ebenfalls diese Anpassung vornehmen.
% Aus diesem Grund wird empfohlen die Lizenz manuell auszuwählen.
-% \tuprints{urn=1234,printid=12345,doi=10.25534/tuprints-1234,license=cc-by-4.0}
+%\tuprints{urn=XXXXX,printid=XXXX,year=2022,license=cc-by-4.0}
% To see further information on the license option in English, remove the license= key and pay attention to the warning & help message.
% \dedication{Für alle, die \TeX{} nutzen.}
@@ -263,13 +263,12 @@ Falls eine Layoutanpassung der Titelseite notwendig ist, gelten die in der TUDaP
\item[submissiondate] Datum der Einreichung
\item[examdate] Datum der Disputation
\item[date] Beliebiges Datum. Wird über \verb|datename| bezeichnet.
- \item[publishers] Wird hier für die Ortsangabe verwendet und ist mit \enquote{Darmstadt}, bzw. \enquote{Darmstadt -- D17} (bei Dissertationen) vorbelegt.
+ \item[publishers] Wird hier für die Ortsangabe verwendet und ist mit \enquote{Darmstadt}, bzw. \enquote{Darmstadt, Technische Universität Darmstadt} (bei Dissertationen) vorbelegt.
\item[tuprints] \label{page:tuprints}Übergabe der Daten, sofern das dokument über tuprints Veröffentlicht werden soll.
\begin{verbatim}
\tuprints{
urn=1234,
printid=12345,
- doi=10.25534/tuprints-1234
}
\end{verbatim}
Falls das Argument kein Gleichheitszeichen erkennt, wird der Wert als \code{printid} gesetzt und keine URN angegeben.
diff --git a/macros/latex/contrib/tuda-ci/tex/beamercolorthemeTUDa.sty b/macros/latex/contrib/tuda-ci/tex/beamercolorthemeTUDa.sty
index 132e8cf1c1..77ea4c761d 100644
--- a/macros/latex/contrib/tuda-ci/tex/beamercolorthemeTUDa.sty
+++ b/macros/latex/contrib/tuda-ci/tex/beamercolorthemeTUDa.sty
@@ -1,4 +1,4 @@
-%% This is file `beamercolorthemeTUDa.sty' version 3.25 (2022/04/25),
+%% This is file `beamercolorthemeTUDa.sty' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
@@ -26,8 +26,8 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.25}
-\def\filedate{2022/04/25}
+\def\fileversion{3.26}
+\def\filedate{2022/06/10}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{beamercolorthemeTUDa}
[\filedate\space\fileversion]
diff --git a/macros/latex/contrib/tuda-ci/tex/beamerfontthemeTUDa.sty b/macros/latex/contrib/tuda-ci/tex/beamerfontthemeTUDa.sty
index aa9c89dd82..cfead82328 100644
--- a/macros/latex/contrib/tuda-ci/tex/beamerfontthemeTUDa.sty
+++ b/macros/latex/contrib/tuda-ci/tex/beamerfontthemeTUDa.sty
@@ -1,4 +1,4 @@
-%% This is file `beamerfontthemeTUDa.sty' version 3.25 (2022/04/25),
+%% This is file `beamerfontthemeTUDa.sty' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
@@ -26,8 +26,8 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.25}
-\def\filedate{2022/04/25}
+\def\fileversion{3.26}
+\def\filedate{2022/06/10}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{beamerfontthemeTUDa}
[\filedate\space\fileversion]
diff --git a/macros/latex/contrib/tuda-ci/tex/beamerinnerthemeTUDa.sty b/macros/latex/contrib/tuda-ci/tex/beamerinnerthemeTUDa.sty
index 2a194dc9ce..708d0b6d60 100644
--- a/macros/latex/contrib/tuda-ci/tex/beamerinnerthemeTUDa.sty
+++ b/macros/latex/contrib/tuda-ci/tex/beamerinnerthemeTUDa.sty
@@ -1,4 +1,4 @@
-%% This is file `beamerinnerthemeTUDa.sty' version 3.25 (2022/04/25),
+%% This is file `beamerinnerthemeTUDa.sty' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
@@ -26,8 +26,8 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.25}
-\def\filedate{2022/04/25}
+\def\fileversion{3.26}
+\def\filedate{2022/06/10}
\NeedsTeXFormat{LaTeX2e}
\ProvidesExplPackage{beamerinnerthemeTUDa}{\filedate}{\fileversion}{Inner~beamer~theme~of~tuda-ci}
diff --git a/macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa.sty b/macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa.sty
index 985e3728cd..a96398c149 100644
--- a/macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa.sty
+++ b/macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa.sty
@@ -1,4 +1,4 @@
-%% This is file `beamerouterthemeTUDa.sty' version 3.25 (2022/04/25),
+%% This is file `beamerouterthemeTUDa.sty' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
@@ -26,8 +26,8 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.25}
-\def\filedate{2022/04/25}
+\def\fileversion{3.26}
+\def\filedate{2022/06/10}
\NeedsTeXFormat{LaTeX2e}
\ProvidesExplPackage{beamerouterthemeTUDa}{\filedate}{\fileversion}{Outer~beamer~theme~of~tuda-ci}
diff --git a/macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa-mecheng.sty b/macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa-mecheng.sty
index 652fc0b675..e9b667dc6f 100644
--- a/macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa-mecheng.sty
+++ b/macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa-mecheng.sty
@@ -1,4 +1,4 @@
-%% This is file `beamerthemeTUDa-mecheng.sty' version 3.25 (2022/04/25),
+%% This is file `beamerthemeTUDa-mecheng.sty' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
@@ -26,8 +26,8 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.25}
-\def\filedate{2022/04/25}
+\def\fileversion{3.26}
+\def\filedate{2022/06/10}
\RequirePackage{expl3}
\ProvidesExplPackage{beamerthemeTUDa-mecheng}{\filedate}{\fileversion}{specific tudabeamer configuration for the department of mechanical engineering}
diff --git a/macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa.sty b/macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa.sty
index 308111be1f..6673ce597f 100644
--- a/macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa.sty
+++ b/macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa.sty
@@ -1,4 +1,4 @@
-%% This is file `beamerthemeTUDa.sty' version 3.25 (2022/04/25),
+%% This is file `beamerthemeTUDa.sty' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
@@ -26,8 +26,8 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.25}
-\def\filedate{2022/04/25}
+\def\fileversion{3.26}
+\def\filedate{2022/06/10}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{beamerthemeTUDa}
[\filedate\space\fileversion\space beamer theme using the Corporate Design of TU Darmstadt]
diff --git a/macros/latex/contrib/tuda-ci/tex/tuda-a0paper.clo b/macros/latex/contrib/tuda-ci/tex/tuda-a0paper.clo
index 47b5a7abad..32f9ef20e6 100644
--- a/macros/latex/contrib/tuda-ci/tex/tuda-a0paper.clo
+++ b/macros/latex/contrib/tuda-ci/tex/tuda-a0paper.clo
@@ -1,4 +1,4 @@
-%% This is file `tuda-a0paper.clo' version 3.25 (2022/04/25),
+%% This is file `tuda-a0paper.clo' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
@@ -26,8 +26,8 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.25}
-\def\filedate{2022/04/25}
+\def\fileversion{3.26}
+\def\filedate{2022/06/10}
\ProvidesExplFile{tuda-a0paper.clo}{\filedate}{\fileversion}{tuda-ci~size~adjustments~for~a0paper}
\cs_set:Nn \ptxcd_setup_title_sizes: {
\cs_set:Nn \ptxcd_title_fontsize: {{125pt}{165pt}}
diff --git a/macros/latex/contrib/tuda-ci/tex/tuda-a1paper.clo b/macros/latex/contrib/tuda-ci/tex/tuda-a1paper.clo
index 0c43f25caa..06b6a09be7 100644
--- a/macros/latex/contrib/tuda-ci/tex/tuda-a1paper.clo
+++ b/macros/latex/contrib/tuda-ci/tex/tuda-a1paper.clo
@@ -1,4 +1,4 @@
-%% This is file `tuda-a1paper.clo' version 3.25 (2022/04/25),
+%% This is file `tuda-a1paper.clo' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
@@ -26,8 +26,8 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.25}
-\def\filedate{2022/04/25}
+\def\fileversion{3.26}
+\def\filedate{2022/06/10}
\ProvidesExplFile{tuda-a1paper.clo}{\filedate}{\fileversion}{tuda-ci~size~adjustments~for~a1paper}
\cs_set:Nn \ptxcd_setup_title_sizes: {
\cs_set:Nn \ptxcd_title_fontsize: {{86pt}{120pt}}
diff --git a/macros/latex/contrib/tuda-ci/tex/tuda-a2paper.clo b/macros/latex/contrib/tuda-ci/tex/tuda-a2paper.clo
index 175f9a85d3..752a5d1206 100644
--- a/macros/latex/contrib/tuda-ci/tex/tuda-a2paper.clo
+++ b/macros/latex/contrib/tuda-ci/tex/tuda-a2paper.clo
@@ -1,4 +1,4 @@
-%% This is file `tuda-a2paper.clo' version 3.25 (2022/04/25),
+%% This is file `tuda-a2paper.clo' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
@@ -26,8 +26,8 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.25}
-\def\filedate{2022/04/25}
+\def\fileversion{3.26}
+\def\filedate{2022/06/10}
\ProvidesExplFile{tuda-a2paper.clo}{\filedate}{\fileversion}{tuda-ci~size~adjustments~for~a0paper}
\cs_set:Nn \ptxcd_setup_title_sizes: {
\cs_set:Nn \ptxcd_title_fontsize: {{65pt}{82pt}}
diff --git a/macros/latex/contrib/tuda-ci/tex/tuda-a3paper.clo b/macros/latex/contrib/tuda-ci/tex/tuda-a3paper.clo
index 99c2c47413..d5d7d4f86d 100644
--- a/macros/latex/contrib/tuda-ci/tex/tuda-a3paper.clo
+++ b/macros/latex/contrib/tuda-ci/tex/tuda-a3paper.clo
@@ -1,4 +1,4 @@
-%% This is file `tuda-a3paper.clo' version 3.25 (2022/04/25),
+%% This is file `tuda-a3paper.clo' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
@@ -26,8 +26,8 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.25}
-\def\filedate{2022/04/25}
+\def\fileversion{3.26}
+\def\filedate{2022/06/10}
\ProvidesExplFile{tuda-a3paper.clo}{\filedate}{\fileversion}{tuda-ci~size~adjustments~for~a3paper}
\cs_set:Nn \ptxcd_setup_title_sizes: {
\cs_set:Nn \ptxcd_title_fontsize: {{47pt}{61pt}}
diff --git a/macros/latex/contrib/tuda-ci/tex/tuda-a4paper.clo b/macros/latex/contrib/tuda-ci/tex/tuda-a4paper.clo
index 27476d61ec..4841f9dbe1 100644
--- a/macros/latex/contrib/tuda-ci/tex/tuda-a4paper.clo
+++ b/macros/latex/contrib/tuda-ci/tex/tuda-a4paper.clo
@@ -1,4 +1,4 @@
-%% This is file `tuda-a4paper.clo' version 3.25 (2022/04/25),
+%% This is file `tuda-a4paper.clo' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
@@ -26,8 +26,8 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.25}
-\def\filedate{2022/04/25}
+\def\fileversion{3.26}
+\def\filedate{2022/06/10}
\ProvidesExplFile{tuda-a4paper.clo}{\filedate}{\fileversion}{tuda-ci~size~adjustments~for~a4paper}
\cs_set:Nn \ptxcd_setup_title_sizes: {
\cs_set:Nn \ptxcd_title_fontsize: {{36pt}{47pt}}
diff --git a/macros/latex/contrib/tuda-ci/tex/tuda-a5paper.clo b/macros/latex/contrib/tuda-ci/tex/tuda-a5paper.clo
index 53f708b477..268039f7d3 100644
--- a/macros/latex/contrib/tuda-ci/tex/tuda-a5paper.clo
+++ b/macros/latex/contrib/tuda-ci/tex/tuda-a5paper.clo
@@ -1,4 +1,4 @@
-%% This is file `tuda-a5paper.clo' version 3.25 (2022/04/25),
+%% This is file `tuda-a5paper.clo' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
@@ -26,8 +26,8 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.25}
-\def\filedate{2022/04/25}
+\def\fileversion{3.26}
+\def\filedate{2022/06/10}
\ProvidesExplFile{tuda-a5paper.clo}{\filedate}{\fileversion}{tuda-ci~size~adjustments~for~a5paper}
\cs_set:Nn \ptxcd_setup_title_sizes: {
\cs_set:Nn \ptxcd_title_fontsize: {{22pt}{28pt}}
diff --git a/macros/latex/contrib/tuda-ci/tex/tuda-pgfplots.sty b/macros/latex/contrib/tuda-ci/tex/tuda-pgfplots.sty
index f01dfd75b4..7fd3d60cc5 100644
--- a/macros/latex/contrib/tuda-ci/tex/tuda-pgfplots.sty
+++ b/macros/latex/contrib/tuda-ci/tex/tuda-pgfplots.sty
@@ -1,4 +1,4 @@
-%% This is file `tuda-pgfplots.sty' version 3.25 (2022/04/25),
+%% This is file `tuda-pgfplots.sty' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
@@ -26,8 +26,8 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.25}
-\def\filedate{2022/04/25}
+\def\fileversion{3.26}
+\def\filedate{2022/06/10}
% Special thanks to: Sebastian Schöps Institut Theorie Elektromagnetischer Felder (TEMF), TU Darmstadt
% The original version of this file has been inspired by the colorscheme in the Metropolis beamer theme by Matthias Vogelgesang https://github.com/matze/mtheme
\ProvidesPackage{tuda-pgfplots}[\filedate\space\fileversion\space tuda-ci pgfplots color schemes]
diff --git a/macros/latex/contrib/tuda-ci/tex/tudabeamer.cls b/macros/latex/contrib/tuda-ci/tex/tudabeamer.cls
index 3d88725bf2..f694d939ec 100644
--- a/macros/latex/contrib/tuda-ci/tex/tudabeamer.cls
+++ b/macros/latex/contrib/tuda-ci/tex/tudabeamer.cls
@@ -1,4 +1,4 @@
-%% This is file `tudabeamer.cls' version 3.25 (2022/04/25),
+%% This is file `tudabeamer.cls' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
@@ -26,8 +26,8 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.25}
-\def\filedate{2022/04/25}
+\def\fileversion{3.26}
+\def\filedate{2022/06/10}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{tudabeamer}
[\filedate\space\fileversion\space]
diff --git a/macros/latex/contrib/tuda-ci/tex/tudacolors.def b/macros/latex/contrib/tuda-ci/tex/tudacolors.def
index 3588daa7de..b56b91defc 100644
--- a/macros/latex/contrib/tuda-ci/tex/tudacolors.def
+++ b/macros/latex/contrib/tuda-ci/tex/tudacolors.def
@@ -1,4 +1,4 @@
-%% This is file `tudacolors.def' version 3.25 (2022/04/25),
+%% This is file `tudacolors.def' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
@@ -26,8 +26,8 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.25}
-\def\filedate{2022/04/25}
+\def\fileversion{3.26}
+\def\filedate{2022/06/10}
\ProvidesFile{tudacolors.def}
[\filedate\space\fileversion\space Color definitions for tuda-ci]
diff --git a/macros/latex/contrib/tuda-ci/tex/tudacolors.sty b/macros/latex/contrib/tuda-ci/tex/tudacolors.sty
index 702fe20837..8d523d8b3f 100644
--- a/macros/latex/contrib/tuda-ci/tex/tudacolors.sty
+++ b/macros/latex/contrib/tuda-ci/tex/tudacolors.sty
@@ -1,4 +1,4 @@
-%% This is file `tudacolors.sty' version 3.25 (2022/04/25),
+%% This is file `tudacolors.sty' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
@@ -26,8 +26,8 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.25}
-\def\filedate{2022/04/25}
+\def\fileversion{3.26}
+\def\filedate{2022/06/10}
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
\ProvidesExplPackage{tudacolors}{\filedate}{\fileversion}{Color definition for TU Darmstadt's tuda-ci bundle}
diff --git a/macros/latex/contrib/tuda-ci/tex/tudaexercise.cls b/macros/latex/contrib/tuda-ci/tex/tudaexercise.cls
index f9a7e79acb..3344566aea 100644
--- a/macros/latex/contrib/tuda-ci/tex/tudaexercise.cls
+++ b/macros/latex/contrib/tuda-ci/tex/tudaexercise.cls
@@ -1,4 +1,4 @@
-%% This is file `tudaexercise.cls' version 3.25 (2022/04/25),
+%% This is file `tudaexercise.cls' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
@@ -26,8 +26,8 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.25}
-\def\filedate{2022/04/25}
+\def\fileversion{3.26}
+\def\filedate{2022/06/10}
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
\ProvidesExplClass{tudaexercise}
diff --git a/macros/latex/contrib/tuda-ci/tex/tudafonts.sty b/macros/latex/contrib/tuda-ci/tex/tudafonts.sty
index ede90bcaf9..df40e44ef1 100644
--- a/macros/latex/contrib/tuda-ci/tex/tudafonts.sty
+++ b/macros/latex/contrib/tuda-ci/tex/tudafonts.sty
@@ -1,4 +1,4 @@
-%% This is file `tudafonts.sty' version 3.25 (2022/04/25),
+%% This is file `tudafonts.sty' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
@@ -26,8 +26,8 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.25}
-\def\filedate{2022/04/25}
+\def\fileversion{3.26}
+\def\filedate{2022/06/10}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{tudafonts}
[\filedate\space\fileversion\space
diff --git a/macros/latex/contrib/tuda-ci/tex/tudaleaflet.cls b/macros/latex/contrib/tuda-ci/tex/tudaleaflet.cls
index 81d7cbe91f..627478a23c 100644
--- a/macros/latex/contrib/tuda-ci/tex/tudaleaflet.cls
+++ b/macros/latex/contrib/tuda-ci/tex/tudaleaflet.cls
@@ -1,4 +1,4 @@
-%% This is file `tudaleaflet.cls' version 3.25 (2022/04/25),
+%% This is file `tudaleaflet.cls' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
@@ -26,8 +26,8 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.25}
-\def\filedate{2022/04/25}
+\def\fileversion{3.26}
+\def\filedate{2022/06/10}
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
\ProvidesExplPackage{tudaleaflet}{\filedate}{\fileversion}{Leaflets using the Corporate Design of TU Darmstadt}
@@ -309,6 +309,10 @@ contents={
\renewcommand*{\familydefault}{\sfdefault}
%Titlepage font setup
+%compatibility after disposition was removed from scrextend
+\expandafter\ifx\csname scr@fnt@disposition\endcsname\relax
+ \newkomafont{disposition}
+\fi
\setkomafont{disposition}{\bfseries}
\setkomafont{title}{\Huge}
\setkomafont{subtitle}{}
diff --git a/macros/latex/contrib/tuda-ci/tex/tudaletter.cls b/macros/latex/contrib/tuda-ci/tex/tudaletter.cls
index 10496eb8e5..4a63739f05 100644
--- a/macros/latex/contrib/tuda-ci/tex/tudaletter.cls
+++ b/macros/latex/contrib/tuda-ci/tex/tudaletter.cls
@@ -1,4 +1,4 @@
-%% This is file `tudaletter.cls' version 3.25 (2022/04/25),
+%% This is file `tudaletter.cls' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
@@ -26,8 +26,8 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.25}
-\def\filedate{2022/04/25}
+\def\fileversion{3.26}
+\def\filedate{2022/06/10}
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
\ProvidesExplClass{tudaletter}
diff --git a/macros/latex/contrib/tuda-ci/tex/tudalettersize10pt.clo b/macros/latex/contrib/tuda-ci/tex/tudalettersize10pt.clo
index d56d236cc2..53336f6781 100644
--- a/macros/latex/contrib/tuda-ci/tex/tudalettersize10pt.clo
+++ b/macros/latex/contrib/tuda-ci/tex/tudalettersize10pt.clo
@@ -1,4 +1,4 @@
-%% This is file `tudalettersize10pt.clo' version 3.25 (2022/04/25),
+%% This is file `tudalettersize10pt.clo' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
diff --git a/macros/latex/contrib/tuda-ci/tex/tudamecheng.cfg b/macros/latex/contrib/tuda-ci/tex/tudamecheng.cfg
index 04b485e666..caa9536e2d 100644
--- a/macros/latex/contrib/tuda-ci/tex/tudamecheng.cfg
+++ b/macros/latex/contrib/tuda-ci/tex/tudamecheng.cfg
@@ -1,4 +1,4 @@
-%% This is file `tudamecheng.cfg' version 3.25 (2022/04/25),
+%% This is file `tudamecheng.cfg' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
@@ -26,8 +26,8 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.25}
-\def\filedate{2022/04/25}
+\def\fileversion{3.26}
+\def\filedate{2022/06/10}
\RequirePackage{expl3}
\ProvidesExplFile{tudamecheng.cfg}
{\filedate}{\fileversion}{Special Features the department of mechanical engineering of Darmstadt's Corporate Design (tuda-ci)}
diff --git a/macros/latex/contrib/tuda-ci/tex/tudaposter.cls b/macros/latex/contrib/tuda-ci/tex/tudaposter.cls
index 56c7210097..7e174c8eb2 100644
--- a/macros/latex/contrib/tuda-ci/tex/tudaposter.cls
+++ b/macros/latex/contrib/tuda-ci/tex/tudaposter.cls
@@ -1,4 +1,4 @@
-%% This is file `tudaposter.cls' version 3.25 (2022/04/25),
+%% This is file `tudaposter.cls' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
@@ -26,8 +26,8 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.25}
-\def\filedate{2022/04/25}
+\def\fileversion{3.26}
+\def\filedate{2022/06/10}
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
\ProvidesExplPackage{tudaposter}{\filedate}{\fileversion}{Poster Layouts for the Corporate Design of TU Darmstadt}
diff --git a/macros/latex/contrib/tuda-ci/tex/tudapub.cls b/macros/latex/contrib/tuda-ci/tex/tudapub.cls
index 9425b47db6..fa145140e2 100644
--- a/macros/latex/contrib/tuda-ci/tex/tudapub.cls
+++ b/macros/latex/contrib/tuda-ci/tex/tudapub.cls
@@ -1,4 +1,4 @@
-%% This is file `tudapub.cls' version 3.25 (2022/04/25),
+%% This is file `tudapub.cls' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
@@ -26,8 +26,8 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.25}
-\def\filedate{2022/04/25}
+\def\fileversion{3.26}
+\def\filedate{2022/06/10}
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
\ProvidesExplClass{tudapub}
diff --git a/macros/latex/contrib/tuda-ci/tex/tudarules.sty b/macros/latex/contrib/tuda-ci/tex/tudarules.sty
index 6dd216bdab..4dd6d00902 100644
--- a/macros/latex/contrib/tuda-ci/tex/tudarules.sty
+++ b/macros/latex/contrib/tuda-ci/tex/tudarules.sty
@@ -1,4 +1,4 @@
-%% This is file `tudarules.sty' version 3.25 (2022/04/25),
+%% This is file `tudarules.sty' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
@@ -26,8 +26,8 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.25}
-\def\filedate{2022/04/25}
+\def\fileversion{3.26}
+\def\filedate{2022/06/10}
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
\ProvidesExplPackage{tudarules}{\filedate}{\fileversion}{Creation of colored bars for tuda-ci bundle}
diff --git a/macros/latex/contrib/tuda-ci/tex/tudasciposter.cls b/macros/latex/contrib/tuda-ci/tex/tudasciposter.cls
index d922742fe4..4b05063e43 100644
--- a/macros/latex/contrib/tuda-ci/tex/tudasciposter.cls
+++ b/macros/latex/contrib/tuda-ci/tex/tudasciposter.cls
@@ -1,4 +1,4 @@
-%% This is file `tudasciposter.cls' version 3.25 (2022/04/25),
+%% This is file `tudasciposter.cls' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
@@ -26,8 +26,8 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.25}
-\def\filedate{2022/04/25}
+\def\fileversion{3.26}
+\def\filedate{2022/06/10}
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
\ProvidesExplPackage{tudasciposter}{\filedate}{\fileversion}{Scientific Poster Layout for TU Darmstadt}
diff --git a/macros/latex/contrib/tuda-ci/tex/tudasize9pt.clo b/macros/latex/contrib/tuda-ci/tex/tudasize9pt.clo
index a8dc5a4fdc..55e8a91204 100644
--- a/macros/latex/contrib/tuda-ci/tex/tudasize9pt.clo
+++ b/macros/latex/contrib/tuda-ci/tex/tudasize9pt.clo
@@ -1,4 +1,4 @@
-%% This is file `tudasize9pt.clo' version 3.25 (2022/04/25),
+%% This is file `tudasize9pt.clo' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
diff --git a/macros/latex/contrib/tuda-ci/tex/tudathesis.cfg b/macros/latex/contrib/tuda-ci/tex/tudathesis.cfg
index 227e21943a..d13d0e59c4 100644
--- a/macros/latex/contrib/tuda-ci/tex/tudathesis.cfg
+++ b/macros/latex/contrib/tuda-ci/tex/tudathesis.cfg
@@ -1,4 +1,4 @@
-%% This is file `tudathesis.cfg' version 3.25 (2022/04/25),
+%% This is file `tudathesis.cfg' version 3.26 (2022/06/10),
%% it is part of
%% TUDa-CI -- Corporate Design for TU Darmstadt
%% ----------------------------------------------------------------------------
@@ -26,8 +26,8 @@
%%
%% ============================================================================
%%
-\def\fileversion{3.25}
-\def\filedate{2022/04/25}
+\def\fileversion{3.26}
+\def\filedate{2022/06/10}
\RequirePackage{expl3}
\ProvidesExplFile{tudathesis.cfg}
{\filedate}{\fileversion}{Special Features for publication type 'thesis' using TU Darmstadt's Corporate Design (tuda-ci)}
@@ -116,6 +116,7 @@
dr/rernat .code:n = \tl_gset:Nn \g_ptxcd_thesis_drtext_tl {Zur~Erlangung~des~Grades~eines~Doktors~der~Naturwissenschaften~(Dr.\,rer.\,nat.)},
dr/ing .code:n = \tl_gset:Nn \g_ptxcd_thesis_drtext_tl {Zur~Erlangung~des~akademischen~Grades~Doktor-Ingenieur~(Dr.-Ing.)},
dr/phil .code:n = \tl_gset:Nn \g_ptxcd_thesis_drtext_tl {Zur~Erlangung~des~Grades~eines~Doktor~der~Philosophie~(Dr.\,phil.)},
+ dr/rerpol .code:n = \tl_gset:Nn \g_ptxcd_thesis_drtext_tl {Zur~Erlangung~des~Grades~eines~Doctor~rerum~politicarum (Dr. rer. pol.)},
type .choice:,
type/sta .code:n = {\def\ptxcd_thesisType{Studienarbeit}
\clist_gset:Nn \g_ptxcd_Required_title_data_clist {title, author, date}
@@ -140,6 +141,8 @@
noinstbox .bool_gset:N = \g_ptxcd_manual_info_box_bool,
instbox .bool_gset_inverse:N = \g_ptxcd_manual_info_box_bool,
instbox .initial:n = true,
+ reviewer-on-uppertitleback .bool_gset:N = \g__ptxcd_reviewer_on_uppertitleback_bool,
+ reviewer-on-uppertitleback .initial:n = false
}
@@ -222,7 +225,7 @@
{\msg_info:nnn{tudapub/thesis} {dr-field-only} {birthplace}}
}
-\publishers{Darmstadt\bool_if:NT \g_ptxcd_dr_bool {~ --~ D~17}}
+\publishers{Darmstadt\bool_if:NT \g_ptxcd_dr_bool {,~Technische~Universität~Darmstadt}}
\seq_new:N \g_ptxcd_reviewer_seq
\NewDocumentCommand{\reviewer}{som}{
@@ -290,6 +293,8 @@
printid .tl_gset:N = \g_ptxcd_thesis_tuprints_tl,
printid .initial:V = \c_empty_tl,
doi .tl_gset:N = \g_ptxcd_thesis_doi_tl,
+ year .tl_gset:N = \g_ptxcd_thesis_publication_year_tl,
+ year .initial:n = ,
license .choices:nn = {cc-by-4.0,cc-by-sa-4.0,cc-by-nc-sa-4.0,cc-by-nc-4.0,cc-by-nd-4.0,cc-by-nc-nd-4.0} {
\tl_gset:Nx \g_ptxcd_license_info_tl {\exp_not:N \g__ptxcd_cc_license:n {\l_keys_choice_tl} \exp_not:N \iflanguage{\exp_not:N \bbl@main@language}{}{\exp_not:n {\par\smallskip\otherlanguage{\bbl@main@language}}{\exp_not:N \g__ptxcd_cc_license:n {\l_keys_choice_tl}}}}
},
@@ -364,7 +369,8 @@
Bitte~zitieren~Sie~dieses~Dokument~als:
\tl_if_empty:NF \g_ptxcd_thesis_urn_tl {\\URN:~urn:nbn:de:tuda-tuprints-\g_ptxcd_thesis_urn_tl}\\
URL:~\url{http://tuprints.ulb.tu-darmstadt.de/\g_ptxcd_thesis_tuprints_tl}\\
- \tl_if_empty:NF \g_ptxcd_thesis_doi_tl {DOI:~\url{https://doi.org/\g_ptxcd_thesis_doi_tl}}
+ \tl_if_empty:NF \g_ptxcd_thesis_doi_tl {DOI:~\url{https://doi.org/\g_ptxcd_thesis_doi_tl}\\}
+ \tl_if_empty:NF \g_ptxcd_thesis_publication_year_tl {Jahr~der~Veröffentlichung~auf~TUprints:~\g_ptxcd_thesis_publication_year_tl}
\par\vspace{\baselineskip}
Dieses~Dokument~wird~bereitgestellt~von~tuprints,\\
E-Publishing-Service~der~TU~Darmstadt\\
@@ -390,7 +396,8 @@
%ignore birthplace on english subject
\let\ptxcd_birthplace\@empty
\@subject
- \ptxcd_thesis_print_reviewer:
+ \bool_if:NT \g__ptxcd_reviewer_on_uppertitleback_bool
+ \ptxcd_thesis_print_reviewer:
\exp_args:Nx \tl_if_empty:nF {\@date\ptxcd_submissiondate}{
\par\vspace*{\baselineskip}
\ptxcd_thesis_print_dates:n {\\}
@@ -650,37 +657,37 @@
\expandafter\def\csname g__ptxcd_affidavit_dr_tl\endcsname {%
\section*{Erklärungen laut Promotionsordnung}
- \subsection*{\S{}8 Abs. 1 lit. c PromO}
+ \subsection*{\S\,8 Abs. 1 lit. c PromO}
Ich versichere hiermit, dass die elektronische Version meiner Dissertation mit der schriftlichen Version übereinstimmt.
- \subsection*{\S{}8 Abs. 1 lit. d PromO}
+ \subsection*{\S\,8 Abs. 1 lit. d PromO}
Ich versichere hiermit, dass zu einem vorherigen Zeitpunkt noch keine Promotion versucht wurde. In diesem Fall sind nähere Angaben über Zeitpunkt, Hochschule, Dissertationsthema und Ergebnis dieses Versuchs mitzuteilen.
- \subsection*{\S{}9 Abs. 1 PromO}
+ \subsection*{\S\,9 Abs. 1 PromO}
Ich versichere hiermit, dass die vorliegende Dissertation selbstständig und nur unter Verwendung der angegebenen Quellen verfasst wurde.
- \subsection*{\S{}9 Abs. 2 PromO}
+ \subsection*{\S\,9 Abs. 2 PromO}
Die Arbeit hat bisher noch nicht zu Prüfungszwecken gedient.
}
\expandafter\def\csname g__ptxcd_affidavit_digital_tl\endcsname {%
- \section*{Erklärung zur Abschlussarbeit gemäß\\ \S{}22~Abs.~7~APB TU~Darmstadt}
+ \section*{Erklärung zur Abschlussarbeit gemäß\\\S\,22~Abs.~7~APB TU~Darmstadt}
\begin{sloppypar}%
- Hiermit versichere ich, \@author, \@ThesisTypeArticle{} vorliegende \@ThesisType{} gemäß \S{}22~Abs.~7~APB der TU Darmstadt ohne Hilfe Dritter und nur mit den angegebenen Quellen und Hilfsmitteln angefertigt zu haben.
+ Hiermit versichere ich, \@author, \@ThesisTypeArticle{} vorliegende \@ThesisType{} gemäß \S\,22~Abs.~7~APB der TU Darmstadt ohne Hilfe Dritter und nur mit den angegebenen Quellen und Hilfsmitteln angefertigt zu haben.
Alle Stellen, die Quellen entnommen wurden, sind als solche kenntlich gemacht worden. Diese Arbeit hat in gleicher oder ähnlicher Form noch keiner Prüfungsbehörde vorgelegen.
\end{sloppypar}%
\par
- Mir ist bekannt, dass im Falle eines Plagiats (\S{}38~Abs.~2 ~APB) ein Täuschungsversuch vorliegt, der dazu führt, dass die Arbeit mit 5,0 bewertet und damit ein Prüfungsversuch verbraucht wird. Abschlussarbeiten dürfen nur einmal wiederholt werden.
+ Mir ist bekannt, dass im Falle eines Plagiats (\S\,38~Abs.~2 ~APB) ein Täuschungsversuch vorliegt, der dazu führt, dass die Arbeit mit 5,0 bewertet und damit ein Prüfungsversuch verbraucht wird. Abschlussarbeiten dürfen nur einmal wiederholt werden.
\par
Bei einer Thesis des Fachbereichs Architektur entspricht die eingereichte elektronische Fassung dem vorgestellten Modell und den vorgelegten Plänen.
}
\expandafter\def\csname g__ptxcd_affidavit_print_tl\endcsname {%
- \section*{Erklärung zur Abschlussarbeit\\gemäß \S{}22~Abs.~7 und \S{}23~Abs.~7~APB der TU~Darmstadt}
+ \section*{Erklärung zur Abschlussarbeit\\gemäß \S\,22~Abs.~7 und \S\,23~Abs.~7~APB der TU~Darmstadt}
Hiermit versichere ich, \@author, \@ThesisTypeArticle{} vorliegende \@ThesisType{} ohne Hilfe Dritter und nur mit den angegebenen Quellen und Hilfsmitteln angefertigt zu haben. Alle Stellen, die Quellen entnommen wurden, sind als solche kenntlich gemacht worden. Diese Arbeit hat in gleicher oder ähnlicher Form noch keiner Prüfungsbehörde vorgelegen.
\par
- Mir ist bekannt, dass im Fall eines Plagiats (\S{}38~Abs.~2~APB) ein Täuschungsversuch vorliegt, der dazu führt, dass die Arbeit mit 5,0 bewertet und damit ein Prüfungsversuch verbraucht wird. Abschlussarbeiten dürfen nur einmal wiederholt werden.
+ Mir ist bekannt, dass im Fall eines Plagiats (\S\,38~Abs.~2~APB) ein Täuschungsversuch vorliegt, der dazu führt, dass die Arbeit mit 5,0 bewertet und damit ein Prüfungsversuch verbraucht wird. Abschlussarbeiten dürfen nur einmal wiederholt werden.
\par
- Bei der abgegebenen Thesis stimmen die schriftliche und die zur Archivierung eingereichte elektronische Fassung gemäß \S{}23~Abs.~7~APB überein.
+ Bei der abgegebenen Thesis stimmen die schriftliche und die zur Archivierung eingereichte elektronische Fassung gemäß \S\,23~Abs.~7~APB überein.
\par
Bei einer Thesis des Fachbereichs Architektur entspricht die eingereichte elektronische Fassung dem vorgestellten Modell und den vorgelegten Plänen.
}
@@ -694,11 +701,18 @@
\IfNoValueF {#1} {\end{otherlanguage}}
}
-\newcommand*{\AffidavitSignature}[1][\l_ptxcd_signature_location_tl]{
+\NewDocumentCommand{\AffidavitSignature}{o}{
\par
+ \begingroup
+ \IfNoValueF {#1} {%
+ \tl_if_in:nnTF {#1} {=}
+ {\keys_set:nn {ptxcd/thesis} {#1}}
+ {\keys_set:nn {ptxcd/thesis} {signature-location=#1}}%
+ }%
\tl_if_empty:NT \l_ptxcd_signature_image_tl {\bigskip}
- \noindent #1,~ \ptxcd_submissiondate\hfill
- \SignatureBox{\l_ptxcd_signature_tl}%}
+ \noindent \l_ptxcd_signature_location_tl,~ \ptxcd_submissiondate\hfill
+ \SignatureBox{\l_ptxcd_signature_tl}
+ \endgroup
\\\strut
}
diff --git a/macros/luatex/latex/ligtype/README.md b/macros/luatex/latex/ligtype/README.md
new file mode 100644
index 0000000000..dd60e93809
--- /dev/null
+++ b/macros/luatex/latex/ligtype/README.md
@@ -0,0 +1,31 @@
+The package suppresses inappropriate ligatures following
+specified rules. Both font and user kerning are applied
+correctly, and f-glyphs are automatically replaced with
+their short-arm variant (if available). Also there is an
+emphasis on speed.
+By default the package applies German language ligature
+suppression rules. With the help of options and macros it
+can be used for other languages as well.
+The package requires LuaLaTeX.
+
+Copyright (c) 2022 Thomas Kelkel kelkel@emaileon.de
+
+The files of this package 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 2009/09/24 or later.
+
+The ligtype package makes use of the German language
+ligature suppression rules of the selnolig package by
+Mico Loretan. The selnolig package can be downloaded at
+
+ https://www.ctan.org/pkg/selnolig
+
+and may be distributed and/or modified under the
+conditions of the LaTeX Project Public License. \ No newline at end of file
diff --git a/macros/luatex/latex/ligtype/ligtype.lua b/macros/luatex/latex/ligtype/ligtype.lua
new file mode 100644
index 0000000000..ade19ab5d6
--- /dev/null
+++ b/macros/luatex/latex/ligtype/ligtype.lua
@@ -0,0 +1,1643 @@
+-- Copyright (c) 2022 Thomas Kelkel kelkel@emaileon.de
+
+-- This file 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 2009/09/24 or later.
+
+-- Version: 0.1
+
+-- The ligtype package makes use of the German language
+-- ligature suppression rules of the selnolig package by
+-- Mico Loretan. The selnolig package can be downloaded at
+
+-- https://www.ctan.org/pkg/selnolig
+
+-- and may be distributed and/or modified under the
+-- conditions of the LaTeX Project Public License.
+
+local ID = node.id
+local GLYPH = ID ( "glyph" )
+local DISC = ID ( "disc" )
+local GLUE = ID ( "glue" )
+local KERN = ID ( "kern" )
+local WI = ID ( "whatsit" )
+local BOUND = ID ( "boundary" )
+local HLIST = ID ( "hlist" )
+local VLIST = ID ( "vlist" )
+local USERKERN = table.swapped ( node.subtypes ("kern") )["userkern"]
+local NEW = node.new
+local REM = node.remove
+local PREV = node.prev
+local NEXT = node.next
+local TAIL = node.tail
+local HAS_GLYPH = node.has_glyph
+local INS_B = node.insert_before
+local INS_A = node.insert_after
+local T = node.traverse
+local T_GLYPH = node.traverse_glyph
+local WIS = node.whatsits()
+local userdefined
+local pdfliteral
+local pairs = pairs
+local next = next
+local type = type
+local U = unicode.utf8
+local CHAR = U.char
+local GSUB = U.gsub
+local SUB = U.sub
+local LEN = U.len
+local BYTE = U.byte
+local FIND = U.find
+local T_INS = table.insert
+local T_CC = table.concat
+local FLOOR = math.floor
+local GET_FONT = font.getfont
+local ATC = luatexbase.add_to_callback
+local RFC = luatexbase.remove_from_callback
+
+local make_marks = false
+local no_short_f = false
+local all_short_f = false
+local no_default = false
+local lig_table = {}
+
+for key, value in pairs ( WIS ) do
+ if value == "user_defined" then
+ userdefined = key
+ elseif value == "pdf_literal" then
+ pdfliteral = key
+ end
+end
+
+function ligtype_no_short_f ()
+ no_short_f = true
+end
+
+function ligtype_all_short_f ()
+ all_short_f = true
+end
+
+function ligtype_no_default ()
+ no_default = true
+end
+
+local function to_ascii ( text )
+ return GSUB ( text, "[äöüß]", "a" )
+end
+
+function ligtype_parse_macro ( text, marker, nolig )
+ local text_ascii = to_ascii ( text )
+ local marker_ascii = to_ascii ( marker )
+ local pos = { nil, nil, nil, nil, nil }
+ pos[1] = nolig
+ local m_pos = FIND ( marker_ascii, "|" )
+ pos[2] = SUB ( marker, m_pos - 1, m_pos - 1 ) .. SUB ( marker, m_pos + 1, m_pos + 1 )
+ pos[3] = m_pos - 1
+ pos[4] = m_pos
+ if FIND ( text_ascii, "[%[]" ) then
+ local plus_start = FIND ( text_ascii, "[%[]" ) + 1
+ local plus_end = FIND ( text_ascii, "[%]]" ) - 1
+ pos[6] = SUB ( text, plus_start, plus_end )
+ text = SUB ( text, 1, plus_start - 2 ) .. "+"
+ end
+ pos[5] = text
+ lig_table[#lig_table + 1] = pos
+end
+
+local function round ( num, dec )
+ return FLOOR ( num * 10^dec + 0.5 ) / 10^dec
+end
+
+local function calc_value ( value )
+ value = round ( value / 65536, 3 )
+ return value
+end
+
+local function get_char_bytes ( text, text_len, reverse )
+ local a = { nil, nil, nil, nil, nil }
+ for i = 1, text_len do
+ if reverse then
+ a[text_len - i + 1] = BYTE ( text, i )
+ else
+ a[i] = BYTE ( text, i )
+ end
+ end
+ return a
+end
+
+local function find_glyph ( n, d, replace )
+ if d ( n ) then
+ n = d ( n )
+ while n.id ~= GLYPH do
+ if not d ( n ) or n.id == GLUE or n.id == BOUND or ( n.id == KERN and n.subtype == USERKERN ) then replace = false break end
+ n = d ( n )
+ end
+ else
+ replace = false
+ end
+ return n, replace
+end
+
+local function get_ligs ( head )
+ local lig_check = { ["ff"] = true, ["fi"] = true, ["fl"] = true, ["ffi"] = true, ["ffl"] = true, ["ft"] = true, ["fft"] = true, ["fb"] = true, ["ffb"] = true, ["fh"] = true, ["ffh"] = true, ["fk"] = true, ["ffk"] = true, ["fj"] = true, ["ffj"] = true, ["fff"] = true }
+ local ligs = { ["ff"] = { nil, nil, nil, nil, nil }, ["fi"] = { nil, nil, nil, nil, nil }, ["fl"] = { nil, nil, nil, nil, nil }, ["ffi"] = { nil, nil, nil, nil, nil }, ["ffl"] = { nil, nil, nil, nil, nil }, ["ft"] = { nil, nil, nil, nil, nil }, ["fk"] = { nil, nil, nil, nil, nil }, ["fj"] = { nil, nil, nil, nil, nil }, ["fft"] = { nil, nil, nil, nil, nil }, ["fb"] = { nil, nil, nil, nil, nil }, ["ffb"] = { nil, nil, nil, nil, nil }, ["fh"] = { nil, nil, nil, nil, nil }, ["ffh"] = { nil, nil, nil, nil, nil }, ["ffk"] = { nil, nil, nil, nil, nil }, ["ffj"] = { nil, nil, nil, nil, nil }, ["fff"] = { nil, nil, nil, nil, nil } }
+ for _, value in pairs ( lig_table ) do
+ lig_check[value[2]] = true
+ ligs[value[2]] = { nil, nil, nil, nil, nil }
+ end
+ local char_table = {}
+ for key, _ in pairs ( lig_check ) do
+ char_table[BYTE ( SUB ( key, 1, 1 ) )] = true
+ end
+ for n in T_GLYPH ( head ) do
+ if n.char and char_table[n.char] then
+ if NEXT ( n ) then
+ local next_chars = { false, false }
+ local second_glyph
+ local success
+ local next_glyph = n
+ for i = 1, 2 do
+ next_glyph, success = find_glyph ( next_glyph, NEXT, true )
+ if success and next_glyph.char then
+ next_chars[i] = next_glyph.char
+ if i == 1 then
+ second_glyph = next_glyph
+ end
+ end
+ end
+ if next_chars[1] and next_chars[2] and lig_check[CHAR ( n.char ) .. CHAR ( next_chars[1] ) .. CHAR ( next_chars[2] )] then
+ local threestring = "ff" .. CHAR ( next_chars[2] )
+ T_INS ( ligs[threestring], next_glyph )
+ end
+ if next_chars[1] and lig_check[CHAR ( n.char ) .. CHAR ( next_chars[1] )] then
+ local ligstring = CHAR ( n.char ) .. CHAR ( next_chars[1] )
+ T_INS ( ligs[ligstring], second_glyph )
+ end
+ end
+ end
+ end
+ return ligs
+end
+
+local function check_text ( replace, n, d, string_len, string_chars, plus_boolean )
+ if d ( n ) then
+ local MOVE = d ( n )
+ for i = 1, string_len do
+ while MOVE.id ~= GLYPH do
+ if not d ( MOVE ) or MOVE.id == GLUE or MOVE.id == BOUND or ( MOVE.id == KERN and MOVE.subtype == USERKERN ) then replace = false break end
+ MOVE = d ( MOVE )
+ end
+ if ( MOVE.char ~= string_chars[i] and string_chars[i] ~= 43 ) or ( string_chars[i] == 43 and not plus_boolean[MOVE.char] ) then replace = false break end
+ if d ( MOVE ) then
+ MOVE = d ( MOVE )
+ elseif i ~= string_len then replace = false break end
+ end
+ else
+ replace = false
+ end
+ return replace
+end
+
+local function no_lig ( nolig, lig, lig_beg, lig_end, text, head, ligs, plus )
+ local chars = { lig = { nil, nil, nil }, before = { nil, nil, nil, nil, nil }, after = { nil, nil, nil, nil, nil }, plus = { nil, nil, nil, nil, nil, nil, nil, nil, nil } }
+ local before_lig
+ local after_lig
+ local count = 0
+ local text_len = LEN ( text )
+ local before_lig_len = lig_beg - 1
+ local after_lig_len = text_len - lig_end
+ chars.lig = get_char_bytes ( lig, 2, false )
+ if lig_beg > 1 then
+ before_lig = SUB ( text, 1, before_lig_len )
+ chars.before = get_char_bytes ( before_lig, before_lig_len, true )
+ end
+ if lig_end < text_len then
+ after_lig = SUB ( text, (lig_end + 1), text_len )
+ chars.after = get_char_bytes ( after_lig, after_lig_len, false )
+ end
+ local plus_boolean = { nil, nil, nil, nil, nil, nil, nil, nil, nil }
+ if plus then
+ chars.plus = get_char_bytes ( plus, LEN ( plus ), false )
+ for _, value in pairs ( chars.plus ) do
+ if not ( value == nil ) then
+ plus_boolean[value] = true
+ end
+ end
+ end
+ for _, value in pairs ( ligs ) do
+ count = count + 1
+ local n
+ if value.char ~= chars.lig[2] then
+ local BEFORE = value
+ BEFORE = find_glyph ( BEFORE, PREV, true )
+ n = BEFORE
+ else
+ n = value
+ end
+ if n.char == chars.lig[2] then
+ local replace = true
+ local prev_glyph = n
+ prev_glyph, replace = find_glyph ( prev_glyph, PREV, replace )
+ if NEXT ( prev_glyph ) and NEXT ( prev_glyph ).user_id and NEXT ( prev_glyph ).user_id == 289473 and nolig then
+ replace = false
+ end
+ if prev_glyph.char ~= chars.lig[1] then
+ replace = false
+ end
+ if replace then
+ if lig_beg > 1 then
+ replace = check_text ( replace, prev_glyph, PREV, before_lig_len, chars.before, plus_boolean )
+ end
+ if lig_end < text_len then
+ replace = check_text ( replace, n, NEXT, after_lig_len, chars.after, plus_boolean )
+ end
+ if replace then
+ if nolig then
+ INS_A ( head, prev_glyph, NEW ( WI, userdefined ) )
+ NEXT ( prev_glyph ).type = 100
+ NEXT ( prev_glyph ).user_id = 289473
+ else
+ if NEXT ( prev_glyph ) and NEXT ( prev_glyph ).user_id == 289473 then
+ REM ( head, NEXT ( prev_glyph ) )
+ end
+ end
+ end
+ end
+ end
+ end
+end
+
+local function find_disc ( n, d )
+ local disc_node = nil
+ while n.id ~= GLYPH do
+ if d ( n ) then
+ n = d ( n )
+ else break end
+ if n.id == DISC then
+ disc_node = n
+ break end
+ end
+ return disc_node
+end
+
+local function find_prev_next_glyph ( n, d )
+ local some_node = d ( n )
+ local lig_post = nil
+ while some_node.id ~= GLYPH do
+ if some_node.id == DISC and some_node.replace and HAS_GLYPH ( some_node.replace ) then
+ for glyph_node in T_GLYPH ( some_node.replace ) do
+ some_node = glyph_node
+ end
+ if d == PREV then
+ for glyph_node in T_GLYPH ( some_node.post ) do
+ lig_post = glyph_node
+ end
+ end
+ break end
+ some_node = d ( some_node )
+ end
+ return some_node, lig_post
+end
+
+local function make_kern ( head )
+ local glyph_count = 0
+ for n in T_GLYPH ( head ) do
+ glyph_count = glyph_count + 1
+ if glyph_count > 4 then break end
+ end
+ if glyph_count > 4 then
+ for n in T ( head ) do
+ if n.id == WI and n.user_id == 289473 then
+ local font_kern = true
+ local hyphen_font_kern = true
+ local post_lig_font_kern = true
+ local prev_glyph, lig_post = find_prev_next_glyph ( n, PREV )
+ local next_glyph = find_prev_next_glyph ( n, NEXT )
+ local kern_value = 0
+ local kern_add = 0
+ local hyphen_kern = 0
+ local post_lig_kern = 0
+ if prev_glyph.font then
+ local tfmdata = GET_FONT ( prev_glyph.font )
+ if tfmdata.resources then
+ local resources = tfmdata.resources
+ if not no_short_f and resources.unicodes then
+ local uni = resources.unicodes
+ local ff = nil
+ local ff_short = nil
+ local f_short = nil
+ for key, value in pairs ( uni ) do
+ if key == "f_f" or key == "uniFB00" then
+ ff = value
+ elseif key == "f_f.short" or key == "f_f.alt" then
+ ff_short = value
+ elseif key == "f.short" or key == "f.alt" then
+ f_short = value
+ end
+ end
+ if ( prev_glyph.char == 102 ) and f_short then
+ prev_glyph.char = f_short
+ elseif ( prev_glyph.char == ff ) and ff_short then
+ prev_glyph.char = ff_short
+ end
+ end
+ if resources.sequences then
+ local seq = resources.sequences
+ for _, t in pairs ( seq ) do
+ if t.steps then
+ local steps = t.steps
+ for _, k in pairs ( steps ) do
+ if k.coverage and ( k.coverage[prev_glyph.char] or ( lig_post and k.coverage[lig_post.char] ) ) then
+ if k.coverage[prev_glyph.char] then
+ local glyph_table = k.coverage[prev_glyph.char]
+ if type ( glyph_table ) == "table" then
+ for key, value in pairs ( glyph_table ) do
+ if ( key == next_glyph.char or key == 45 ) and type ( value ) == "number" and ( k.format == "move" or tfmdata.specification.features.raw[t.name] ) then
+ if font_kern and key == next_glyph.char then
+ kern_value = kern_value + ( value / tfmdata.units_per_em * tfmdata.size )
+ if tfmdata.specification.features.raw[t.name] then
+ font_kern = false
+ end
+ elseif hyphen_font_kern and key == 45 then
+ hyphen_kern = hyphen_kern + ( value / tfmdata.units_per_em * tfmdata.size )
+ if tfmdata.specification.features.raw[t.name] then
+ hyphen_font_kern = false
+ end
+ end
+ end
+ end
+ end
+ end
+ if lig_post and k.coverage[lig_post.char] then
+ local glyph_table = k.coverage[lig_post.char]
+ if type ( glyph_table ) == "table" then
+ for key, value in pairs ( glyph_table ) do
+ if ( key == next_glyph.char ) and type ( value ) == "number" and ( k.format == "move" or tfmdata.specification.features.raw[t.name] ) then
+ if post_lig_font_kern and key == next_glyph.char then
+ post_lig_kern = post_lig_kern + ( value / tfmdata.units_per_em * tfmdata.size )
+ if tfmdata.specification.features.raw[t.name] then
+ post_lig_font_kern = false
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ local disc_prev = find_disc ( n, PREV )
+ local disc_next = find_disc ( n, NEXT )
+ if disc_prev then
+ local REPLACE = disc_prev.replace
+ REPLACE = INS_A ( REPLACE, TAIL ( REPLACE ), NEW ( KERN ) )
+ TAIL ( REPLACE ).kern = kern_value
+ disc_prev.replace = REPLACE
+ local POST = disc_prev.post
+ POST = INS_A ( POST, TAIL ( POST ), NEW ( KERN ) )
+ TAIL ( POST ).kern = post_lig_kern
+ disc_prev.post = POST
+ elseif disc_next then
+ local REPLACE = disc_next.replace
+ REPLACE = INS_B ( REPLACE, REPLACE, NEW ( KERN ) )
+ REPLACE.kern = kern_value
+ disc_next.replace = REPLACE
+ local PRE = disc_next.pre
+ PRE = INS_B ( PRE, PRE, NEW ( KERN ) )
+ PRE.kern = hyphen_kern
+ disc_next.pre = PRE
+ else
+ INS_A ( head, n, NEW ( KERN ) )
+ NEXT ( n ).kern = kern_value
+ end
+ end
+ end
+ end
+ return head
+end
+
+local function place_marks ( head )
+ for n in T ( head ) do
+ if n.id == HLIST or n.id == VLIST then
+ n.head = place_marks ( n.head )
+ elseif n.id == WI and n.user_id == 289473 then
+ local kern_add = 0
+ if NEXT ( n ) and NEXT ( n ).id == DISC and NEXT ( n ).replace and NEXT ( n ).replace.id == KERN then
+ kern_add = kern_add + calc_value ( NEXT ( n ).replace.kern ) * 0.5
+ elseif NEXT ( n ).id == KERN and NEXT ( n ).kern then
+ kern_add = kern_add + calc_value ( NEXT ( n ).kern ) * 0.5
+ end
+ if PREV ( n ) and PREV ( n ).id == DISC and PREV ( n ).replace and TAIL ( PREV ( n ).replace ).id == KERN then
+ kern_add = kern_add - calc_value ( TAIL ( PREV ( n ).replace ).kern ) * 0.5
+ elseif PREV ( n ).id == KERN and PREV ( n ).kern then
+ kern_add = kern_add - calc_value ( PREV ( n ).kern ) * 0.5
+ end
+ local size_factor = 1
+ if font.current() then
+ size_factor = calc_value ( GET_FONT ( font.current() ).size / 10 )
+ end
+ head = INS_B ( head, n, NEW ( WI, pdfliteral ) )
+ PREV ( n ).mode = 0
+ PREV ( n ).data = "q .2 .8 1 rg " .. kern_add .. " 0 m " .. ( kern_add + 2 * size_factor ) .. " " .. -3 * size_factor .. " l " .. ( kern_add - 2 * size_factor ) .. " " .. -3 * size_factor .. " l " .. kern_add .. " 0 l f Q"
+ n.user_id = 848485
+ end
+ end
+ return head
+end
+
+local function lig_parse ( head )
+ if all_short_f then
+ for n in T_GLYPH ( head ) do
+ if n.char == 102 and n.font then
+ local tfmdata = GET_FONT ( n.font )
+ if tfmdata.resources then
+ local resources = tfmdata.resources
+ if resources.unicodes then
+ local uni = resources.unicodes
+ for key, value in pairs ( uni ) do
+ if ( key == "f.short" and n.char == 102 ) or ( key == "f_f.short" and n.char == 64256 ) then
+ n.char = value
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ local glyph_count = 0
+ for n in T_GLYPH ( head ) do
+ glyph_count = glyph_count + 1
+ if glyph_count > 4 then break end
+ end
+ if glyph_count > 4 then
+ local text_table = { nil, nil, nil, nil, nil, nil, nil, nil, nil }
+ local table_counter = 0
+ for n in T_GLYPH ( head ) do
+ if n.char then
+ table_counter = table_counter + 1
+ text_table[table_counter] = CHAR ( n.char )
+ end
+ end
+ local text_string = {""}
+ for i = 1, table_counter do
+ text_string[#text_string + 1] = text_table[i]
+ end
+ text_string = T_CC (text_string)
+
+ local function lt ( nolig, lig, lig_beg, lig_end, text, ligs, plus )
+ if FIND ( text_string, text ) then
+ no_lig ( nolig, lig, lig_beg, lig_end, text, head, ligs, plus )
+ end
+ end
+
+ local ligs = get_ligs ( head )
+ if not no_default then
+ if next ( ligs["ff"] ) then
+ lt ( true, "ff", 3, 4, "Auff+", ligs["ff"], "aeiloruyäöü" )
+ lt ( true, "ff", 3, 4, "auff+", ligs["ff"], "aeiloruyäöü" )
+ lt ( false, "ff", 4, 5, "Lauffen", ligs["ff"] )
+ lt ( false, "ff", 5, 6, "Stauffach", ligs["ff"] )
+ lt ( false, "ff", 5, 6, "Stauffen", ligs["ff"] )
+ lt ( false, "ff", 5, 6, "stauffen", ligs["ff"] )
+ lt ( false, "ff", 5, 6, "Stauffer", ligs["ff"] )
+ lt ( false, "ff", 5, 6, "stauffer", ligs["ff"] )
+ lt ( false, "ff", 5, 6, "Stauffisch", ligs["ff"] )
+ lt ( false, "ff", 5, 6, "stauffisch", ligs["ff"] )
+ lt ( false, "ff", 5, 6, "chauffier", ligs["ff"] )
+ lt ( false, "ff", 5, 6, "Chauffier", ligs["ff"] )
+ lt ( false, "ff", 5, 6, "chauffeur", ligs["ff"] )
+ lt ( false, "ff", 5, 6, "Chauffeur", ligs["ff"] )
+ lt ( false, "ff", 5, 6, "chauffement", ligs["ff"] )
+ lt ( true, "ff", 5, 6, "Brieff", ligs["ff"] )
+ lt ( true, "ff", 5, 6, "brieff", ligs["ff"] )
+ lt ( true, "ff", 4, 5, "Cheff", ligs["ff"] )
+ lt ( true, "ff", 4, 5, "cheff+", ligs["ff"], "aäeioöruü" )
+ lt ( false, "ff", 4, 5, "cheffekt", ligs["ff"] )
+ lt ( false, "ff", 5, 6, "Scheffel", ligs["ff"] )
+ lt ( false, "ff", 5, 6, "scheffel", ligs["ff"] )
+ lt ( false, "ff", 4, 5, "cheffizi", ligs["ff"] )
+ lt ( false, "ff", 4, 5, "cheffé", ligs["ff"] )
+ lt ( true, "ff", 4, 5, "cheffl+", ligs["ff"], "aiou" )
+ lt ( true, "ff", 5, 6, "Dampff", ligs["ff"] )
+ lt ( true, "ff", 5, 6, "dampff", ligs["ff"] )
+ lt ( true, "ff", 4, 5, "Dorff+", ligs["ff"], "aäeiloöruü" )
+ lt ( true, "ff", 4, 5, "dorff+", ligs["ff"], "aäeiloöruü" )
+ lt ( true, "ff", 4, 5, "Hanff", ligs["ff"] )
+ lt ( true, "ff", 4, 5, "hanff", ligs["ff"] )
+ lt ( true, "ff", 3, 4, "Hoff+", ligs["ff"], "aäiloöruü" )
+ lt ( false, "ff", 3, 4, "Hoffacker", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "Hoffart", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "Hoffärt", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "Hoffricht", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "Hoffranz", ligs["ff"] )
+ lt ( true, "ff", 4, 5, "Golff", ligs["ff"] )
+ lt ( true, "ff", 4, 5, "golff", ligs["ff"] )
+ lt ( true, "ff", 3, 4, "Hoffern", ligs["ff"] )
+ lt ( true, "ff", 3, 4, "hoffern", ligs["ff"] )
+ lt ( true, "ff", 3, 4, "Hoffest", ligs["ff"] )
+ lt ( true, "ff", 4, 5, "Impff", ligs["ff"] )
+ lt ( true, "ff", 5, 6, "Kampff+", ligs["ff"], "aäeoöruü" )
+ lt ( true, "ff", 5, 6, "kampff+", ligs["ff"], "aäeoöruü" )
+ lt ( true, "ff", 4, 5, "Kopff+", ligs["ff"], "aäeoöruü" )
+ lt ( true, "ff", 4, 5, "kopff+", ligs["ff"], "aäeoöruü" )
+ lt ( true, "ff", 5, 6, "Klopff", ligs["ff"] )
+ lt ( true, "ff", 5, 6, "klopff", ligs["ff"] )
+ lt ( true, "ff", 4, 5, "Prüff", ligs["ff"] )
+ lt ( true, "ff", 4, 5, "prüff", ligs["ff"] )
+ lt ( true, "ff", 3, 4, "Ruffach", ligs["ff"] )
+ lt ( true, "ff", 3, 4, "ruffach", ligs["ff"] )
+ lt ( true, "ff", 5, 6, "Rumpff", ligs["ff"] )
+ lt ( true, "ff", 5, 6, "Schaffang", ligs["ff"] )
+ lt ( true, "ff", 5, 6, "Schaffarm", ligs["ff"] )
+ lt ( true, "ff", 5, 6, "Schaffels", ligs["ff"] )
+ lt ( true, "ff", 6, 7, "Schilff", ligs["ff"] )
+ lt ( true, "ff", 6, 7, "schilff", ligs["ff"] )
+ lt ( true, "ff", 4, 5, "Senff", ligs["ff"] )
+ lt ( true, "ff", 4, 5, "senffa", ligs["ff"] )
+ lt ( true, "ff", 4, 5, "senffl", ligs["ff"] )
+ lt ( true, "ff", 5, 6, "Sumpff", ligs["ff"] )
+ lt ( true, "ff", 5, 6, "sumpff", ligs["ff"] )
+ lt ( true, "ff", 5, 6, "Tariff", ligs["ff"] )
+ lt ( true, "ff", 5, 6, "tariff", ligs["ff"] )
+ lt ( true, "ff", 4, 5, "Tieff", ligs["ff"] )
+ lt ( true, "ff", 4, 5, "tieff", ligs["ff"] )
+ lt ( false, "ff", 4, 5, "tieffekt", ligs["ff"] )
+ lt ( false, "ff", 4, 5, "tieffiz", ligs["ff"] )
+ lt ( true, "ff", 4, 5, "chaffron", ligs["ff"] )
+ lt ( true, "ff", 3, 4, "eiffest", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffabrik", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffacet", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffachl", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffachm", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffäch", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffaden", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffäd", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffähig", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffahn", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffahr", ligs["ff"] )
+ lt ( false, "ff", 2, 3, "iffahrt", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffähr", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffaktor", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffakult", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffall", ligs["ff"] )
+ lt ( false, "ff", 1, 2, "ffallee", ligs["ff"] )
+ lt ( false, "ff", 1, 2, "ffallerg", ligs["ff"] )
+ lt ( false, "ff", 1, 2, "ffallokat", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffäll", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffalt", ligs["ff"] )
+ lt ( false, "ff", 2, 3, "iffalt", ligs["ff"] )
+ lt ( false, "ff", 2, 3, "offalt", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffält", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffami", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "Diffami", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "diffami", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffanat", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffans", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "riffans", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "toffans", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffanta", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffarb", ligs["ff"] )
+ lt ( false, "ff", 1, 2, "ffarbeit", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffärb", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffaschi", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffassad", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffäul", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffecht", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffeder", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffedr", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffehl", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffeier", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "toffeier", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffeind+", ligs["ff"], "els" )
+ lt ( false, "ff", 1, 2, "ffeindealer", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffeld", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "Büffeld", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "büffeld", ligs["ff"] )
+ lt ( false, "ff", 1, 2, "ffeldenk", ligs["ff"] )
+ lt ( false, "ff", 2, 3, "Iffeld", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "Löffeld", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "löffeld", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "Müffeld", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "müffeld", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "nüffeld", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "Riffeld", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "taffeld", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "toffeld", ligs["ff"] )
+ lt ( false, "ff", 4, 5, "Trüffeld", ligs["ff"] )
+ lt ( false, "ff", 4, 5, "trüffeld", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "Waffeld", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "waffeld", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffell", ligs["ff"] )
+ lt ( false, "ff", 1, 2, "ffelleck", ligs["ff"] )
+ lt ( false, "ff", 1, 2, "ffellinde", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "Muffell", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "muffell", ligs["ff"] )
+ lt ( false, "ff", 2, 3, "öffell", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "taffell", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "toffell", ligs["ff"] )
+ lt ( false, "ff", 2, 3, "üffell", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffeile", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffenster", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "fferien", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffernseh", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffertig", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffestl", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffests", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffetisch", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffetus", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffett", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "Buffett", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "Büffett", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "buffett", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "büffett", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffetz", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "Buffetz", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "Büffetz", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffeud", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffeue", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffilet", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffindung", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffirm", ligs["ff"] )
+ lt ( false, "ff", 2, 3, "affirm", ligs["ff"] )
+ lt ( false, "ff", 2, 3, "Affirm", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffolg", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffoli", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffolter", ligs["ff"] )
+ lt ( false, "ff", 2, 3, "Affoltern", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffond", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "fforder", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "fförder", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "fforell", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "fform", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "fförm", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "fforsch", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "fforen", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "fforu", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffoto", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "fföt", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffracht", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffrag", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "Suffrage", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "suffrage", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffrak", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "toffrak", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffrank", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffräs", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffrau", ligs["ff"] )
+ lt ( false, "ff", 1, 2, "ffraum", ligs["ff"] )
+ lt ( false, "ff", 1, 2, "ffraub", ligs["ff"] )
+ lt ( false, "ff", 1, 2, "ffrausch", ligs["ff"] )
+ lt ( false, "ff", 1, 2, "ffraup", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffreak", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "toffreak", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffregat", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffrei", ligs["ff"] )
+ lt ( false, "ff", 4, 5, "chiffrei", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "toffrei", ligs["ff"] )
+ lt ( false, "ff", 2, 3, "uffreis", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "luffrei", ligs["ff"] )
+ lt ( false, "ff", 2, 3, "iffreig", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffremd", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffreq", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffreu", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffrisch", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffried", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffries", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "toffries", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffrist", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffriseu", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffrisur", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffront", ligs["ff"] )
+ lt ( false, "ff", 2, 3, "affront", ligs["ff"] )
+ lt ( false, "ff", 2, 3, "Affront", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffrosch", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffrösch", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffrucht", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffrücht", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffrüh", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffund", ligs["ff"] )
+ lt ( false, "ff", 2, 3, "iffund", ligs["ff"] )
+ lt ( false, "ff", 3, 4, "toffund", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "fführ", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffunk", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffühl", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffüll", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffürst", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffuß", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffuss", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffüß", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffüss", ligs["ff"] )
+ lt ( false, "ff", 2, 3, "iffuss", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffutter", ligs["ff"] )
+ lt ( true, "ff", 1, 2, "ffütter", ligs["ff"] )
+ lt ( true, "ff", 3, 4, "hoffan", ligs["ff"] )
+ lt ( true, "ff", 3, 4, "hoffersch", ligs["ff"] )
+ lt ( true, "ff", 3, 4, "hoffest", ligs["ff"] )
+ lt ( true, "ff", 3, 4, "hoffete", ligs["ff"] )
+ lt ( true, "ff", 2, 3, "lffach", ligs["ff"] )
+ lt ( true, "ff", 2, 3, "offegen", ligs["ff"] )
+ lt ( true, "ff", 2, 3, "pffach", ligs["ff"] )
+ lt ( true, "ff", 2, 3, "pffern", ligs["ff"] )
+ lt ( true, "ff", 2, 3, "pffest", ligs["ff"] )
+ lt ( true, "ff", 2, 3, "pffels", ligs["ff"] )
+ lt ( true, "ff", 2, 3, "pffont", ligs["ff"] )
+ lt ( true, "ff", 2, 3, "pffüh", ligs["ff"] )
+ lt ( true, "ff", 4, 5, "reiffern", ligs["ff"] )
+ lt ( true, "ff", 2, 3, "rffan", ligs["ff"] )
+ lt ( true, "ff", 2, 3, "rffeel", ligs["ff"] )
+ lt ( true, "ff", 2, 3, "rffest", ligs["ff"] )
+ lt ( true, "ff", 2, 3, "rffinn", ligs["ff"] )
+ lt ( true, "ff", 2, 3, "rffleck", ligs["ff"] )
+ lt ( true, "ff", 5, 6, "straffern", ligs["ff"] )
+ lt ( false, "ff", 7, 8, "rtstraffern", ligs["ff"] )
+ lt ( false, "ff", 7, 8, "ssstraffern", ligs["ff"] )
+ lt ( true, "ff", 2, 3, "uffax", ligs["ff"] )
+ lt ( true, "ff", 3, 4, "ünff", ligs["ff"] )
+ lt ( true, "ff", 4, 5, "wurff+", ligs["ff"], "aäeiloöruü" )
+ end
+ if next ( ligs["fi"] ) then
+ lt ( true, "fi", 3, 4, "Aufi", ligs["fi"] )
+ lt ( true, "fi", 3, 4, "aufinstr", ligs["fi"] )
+ lt ( true, "fi", 3, 4, "aufirr", ligs["fi"] )
+ lt ( true, "fi", 3, 4, "aufisst", ligs["fi"] )
+ lt ( true, "fi", 5, 6, "Briefi", ligs["fi"] )
+ lt ( true, "fi", 5, 6, "briefi", ligs["fi"] )
+ lt ( false, "fi", 5, 6, "Briefing", ligs["fi"] )
+ lt ( false, "fi", 6, 7, "ebriefing", ligs["fi"] )
+ lt ( true, "fi", 4, 5, "Chefi", ligs["fi"] )
+ lt ( true, "fi", 4, 5, "chefi", ligs["fi"] )
+ lt ( false, "fi", 4, 5, "Chefin", ligs["fi"] )
+ lt ( true, "fi", 4, 5, "Chefin+", ligs["fi"] , "abcdefghijklmopqrstuvwxyzäöü" )
+ lt ( false, "fi", 4, 5, "chefin", ligs["fi"] )
+ lt ( true, "fi", 4, 5, "chefind", ligs["fi"] )
+ lt ( false, "fi", 4, 5, "chefibel", ligs["fi"] )
+ lt ( false, "fi", 4, 5, "chefiebe", ligs["fi"] )
+ lt ( false, "fi", 4, 5, "chefigur", ligs["fi"] )
+ lt ( false, "fi", 4, 5, "chefilm", ligs["fi"] )
+ lt ( false, "fi", 4, 5, "chefili", ligs["fi"] )
+ lt ( false, "fi", 4, 5, "chefirm", ligs["fi"] )
+ lt ( false, "fi", 4, 5, "chefisch", ligs["fi"] )
+ lt ( true, "fi", 4, 5, "Dorfi", ligs["fi"] )
+ lt ( true, "fi", 4, 5, "dorfi", ligs["fi"] )
+ lt ( true, "fi", 3, 4, "Hofi", ligs["fi"] )
+ lt ( false, "fi", 3, 4, "Hofier", ligs["fi"] )
+ lt ( true, "fi", 5, 6, "Kampfi", ligs["fi"] )
+ lt ( true, "fi", 5, 6, "kampfi", ligs["fi"] )
+ lt ( true, "fi", 4, 5, "Kaufi", ligs["fi"] )
+ lt ( true, "fi", 4, 5, "kaufi", ligs["fi"] )
+ lt ( true, "fi", 4, 5, "Laufi", ligs["fi"] )
+ lt ( true, "fi", 4, 5, "laufi", ligs["fi"] )
+ lt ( false, "fi", 4, 5, "Laufig", ligs["fi"] )
+ lt ( false, "fi", 5, 6, "Blaufi", ligs["fi"] )
+ lt ( false, "fi", 4, 5, "laufilter", ligs["fi"] )
+ lt ( false, "fi", 4, 5, "laufiedr", ligs["fi"] )
+ lt ( true, "fi", 3, 4, "rüfi", ligs["fi"] )
+ lt ( true, "fi", 5, 6, "Rumpfi", ligs["fi"] )
+ lt ( true, "fi", 5, 6, "rumpfi", ligs["fi"] )
+ lt ( false, "fi", 5, 6, "rumpfig", ligs["fi"] )
+ lt ( true, "fi", 4, 5, "chafi", ligs["fi"] )
+ lt ( false, "fi", 5, 6, "schafigu", ligs["fi"] )
+ lt ( true, "fi", 5, 6, "chlafi", ligs["fi"] )
+ lt ( false, "fi", 5, 6, "chlafitt", ligs["fi"] )
+ lt ( true, "fi", 5, 6, "Strafi", ligs["fi"] )
+ lt ( true, "fi", 5, 6, "strafi", ligs["fi"] )
+ lt ( true, "fi", 5, 6, "Tarifi", ligs["fi"] )
+ lt ( true, "fi", 5, 6, "tarifi", ligs["fi"] )
+ lt ( false, "fi", 5, 6, "Tarifier", ligs["fi"] )
+ lt ( false, "fi", 5, 6, "tarifier", ligs["fi"] )
+ lt ( true, "fi", 4, 5, "Tiefinn", ligs["fi"] )
+ lt ( true, "fi", 4, 5, "tiefinn", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "fidee", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "fideol", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "fidentif", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "fidentit", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "fidol", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "fidyll", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "figel", ligs["fi"] )
+ lt ( false, "fi", 1, 2, "figelehrt", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "fikone", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "fillus", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "fimman", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "fimmob", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "fimmun", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "fimp", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "findex", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "findikat", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "findiv", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "findiz", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "findust", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finfekt", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finfiz", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finfo", ligs["fi"] )
+ lt ( false, "fi", 4, 5, "Delfinfo", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finfra", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finfus", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "fingenieur", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finhab", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finhalat", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finhalt", ligs["fi"] )
+ lt ( false, "fi", 4, 5, "Delfinhalt", ligs["fi"] )
+ lt ( false, "fi", 4, 5, "raffinhalt", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finitia", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finjekt", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finkont", ligs["fi"] )
+ lt ( false, "fi", 4, 5, "Delfinkont", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finnenaus", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finnenohr", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finnenfl", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finnenl", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finnenraum", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finnenräum", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finnens", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finner", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finnig", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finnov", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finsass", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finsekt", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finsel", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finserat", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finsign", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finspek", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finsta", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finstinkt", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finstitu", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finstrukt+", ligs["fi"] , "io" )
+ lt ( true, "fi", 1, 2, "finstrum", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finsuff", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finszen", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "fintars", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "fintell", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "fintegr", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "fintens", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finter", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finton", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "fintrig", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finvent", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "finvest", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "firis", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "fironi", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "firre", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "firru", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "fisolat", ligs["fi"] )
+ lt ( true, "fi", 1, 2, "fisolie", ligs["fi"] )
+ end
+ if next ( ligs["fl"] ) then
+ lt ( true, "fl", 3, 4, "Aufl+", ligs["fl"], "aeiouyäöü" )
+ lt ( true, "fl", 3, 4, "aufl", ligs["fl"] )
+ lt ( false, "fl", 3, 4, "auflair", ligs["fl"] )
+ lt ( false, "fl", 3, 4, "aufläche", ligs["fl"] )
+ lt ( false, "fl", 3, 4, "aufliegl", ligs["fl"] )
+ lt ( false, "fl", 3, 4, "auflüssig", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "baufl", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "Baufl", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "bauflösen", ligs["fl"] )
+ lt ( false, "fl", 5, 6, "blaufl", ligs["fl"] )
+ lt ( true, "fl", 5, 6, "blaufloch", ligs["fl"] )
+ lt ( true, "fl", 5, 6, "blauflog", ligs["fl"] )
+ lt ( false, "fl", 5, 6, "Blaufl", ligs["fl"] )
+ lt ( false, "fl", 5, 6, "fraufl", ligs["fl"] )
+ lt ( false, "fl", 5, 6, "Fraufl", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "gauflöte", ligs["fl"] )
+ lt ( false, "fl", 5, 6, "graufl", ligs["fl"] )
+ lt ( false, "fl", 5, 6, "Graufl", ligs["fl"] )
+ lt ( false, "fl", 5, 6, "onauflo", ligs["fl"] )
+ lt ( false, "fl", 5, 6, "onauflu", ligs["fl"] )
+ lt ( false, "fl", 7, 8, "Moskaufl", ligs["fl"] )
+ lt ( false, "fl", 6, 7, "Schauflieg", ligs["fl"] )
+ lt ( false, "fl", 6, 7, "Schaufloß", ligs["fl"] )
+ lt ( false, "fl", 6, 7, "schauflöß", ligs["fl"] )
+ lt ( false, "fl", 6, 7, "Schauflug", ligs["fl"] )
+ lt ( false, "fl", 6, 7, "Schauflüg", ligs["fl"] )
+ lt ( false, "fl", 6, 7, "schauflieg", ligs["fl"] )
+ lt ( false, "fl", 6, 7, "schaufloß", ligs["fl"] )
+ lt ( false, "fl", 6, 7, "schauflöß", ligs["fl"] )
+ lt ( false, "fl", 6, 7, "schauflug", ligs["fl"] )
+ lt ( false, "fl", 6, 7, "schauflüg", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "Taufliege", ligs["fl"] )
+ lt ( true, "fl", 5, 6, "Briefl", ligs["fl"] )
+ lt ( true, "fl", 5, 6, "briefl", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "Chefl", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "chefl", ligs["fl"] )
+ lt ( false, "fl", 5, 6, "achefl", ligs["fl"] )
+ lt ( false, "fl", 5, 6, "ichefl", ligs["fl"] )
+ lt ( false, "fl", 5, 6, "schefl", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "chefläche", ligs["fl"] )
+ lt ( true, "fl", 5, 6, "Dampfl", ligs["fl"] )
+ lt ( true, "fl", 5, 6, "dampfl", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "Dorfl", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "dorfl", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "dorfliese", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "dorflüg", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "Fünfl", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "fünfl", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "Golfl", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "golfl", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "Hanfl", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "hanfl", ligs["fl"] )
+ lt ( false, "fl", 5, 6, "thanflamm", ligs["fl"] )
+ lt ( true, "fl", 3, 4, "Hofl", ligs["fl"] )
+ lt ( true, "fl", 3, 4, "hofl", ligs["fl"] )
+ lt ( false, "fl", 3, 4, "hoflosk", ligs["fl"] )
+ lt ( true, "fl", 3, 4, "Huflatt", ligs["fl"] )
+ lt ( true, "fl", 3, 4, "huflatt", ligs["fl"] )
+ lt ( true, "fl", 3, 4, "Hufled", ligs["fl"] )
+ lt ( true, "fl", 3, 4, "hufled", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "Impfl", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "impfla", ligs["fl"] )
+ lt ( false, "fl", 5, 6, "eimpflanz", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "impfle", ligs["fl"] )
+ lt ( false, "fl", 5, 6, "eimpfleg", ligs["fl"] )
+ lt ( false, "fl", 5, 6, "timpfleg", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "impflücke", ligs["fl"] )
+ lt ( true, "fl", 5, 6, "Kampfl", ligs["fl"] )
+ lt ( true, "fl", 5, 6, "kampfl", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "Kopfl+", ligs["fl"], "äeioöuüy" )
+ lt ( true, "fl", 4, 5, "kopfl+", ligs["fl"], "äeioöuüy" )
+ lt ( true, "fl", 4, 5, "Köpfl+", ligs["fl"], "aäioöuüy" )
+ lt ( true, "fl", 4, 5, "köpfl+", ligs["fl"], "aäioöuüy" )
+ lt ( true, "fl", 3, 4, "opfla", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "kopflaster", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "kopfleg", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "kopflaum", ligs["fl"] )
+ lt ( true, "fl", 5, 6, "Pfeifl", ligs["fl"] )
+ lt ( true, "fl", 5, 6, "pfeifl", ligs["fl"] )
+ lt ( true, "fl", 5, 6, "Pfiffl", ligs["fl"] )
+ lt ( true, "fl", 5, 6, "pfiffl", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "Prüfl", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "prüfl", ligs["fl"] )
+ lt ( true, "fl", 6, 7, "Reliefl", ligs["fl"] )
+ lt ( true, "fl", 6, 7, "reliefl", ligs["fl"] )
+ lt ( true, "fl", 3, 4, "Rufl", ligs["fl"] )
+ lt ( true, "fl", 3, 4, "rufl", ligs["fl"] )
+ lt ( false, "fl", 5, 6, "Durufl", ligs["fl"] )
+ lt ( false, "fl", 6, 7, "mbarufl", ligs["fl"] )
+ lt ( false, "fl", 3, 4, "ruflagge", ligs["fl"] )
+ lt ( false, "fl", 3, 4, "rufleisch", ligs["fl"] )
+ lt ( true, "fl", 5, 6, "Schafl", ligs["fl"] )
+ lt ( true, "fl", 5, 6, "schafl", ligs["fl"] )
+ lt ( true, "fl", 6, 7, "Schiefl", ligs["fl"] )
+ lt ( true, "fl", 6, 7, "schiefl", ligs["fl"] )
+ lt ( true, "fl", 6, 7, "Schilfl", ligs["fl"] )
+ lt ( true, "fl", 6, 7, "schilfl", ligs["fl"] )
+ lt ( true, "fl", 6, 7, "Schlafl", ligs["fl"] )
+ lt ( true, "fl", 6, 7, "schlafl", ligs["fl"] )
+ lt ( true, "fl", 7, 8, "Schleifl", ligs["fl"] )
+ lt ( true, "fl", 7, 8, "schleifl", ligs["fl"] )
+ lt ( true, "fl", 8, 9, "Schrumpfl", ligs["fl"] )
+ lt ( true, "fl", 8, 9, "schrumpfl", ligs["fl"] )
+ lt ( true, "fl", 7, 8, "Schweifl", ligs["fl"] )
+ lt ( true, "fl", 7, 8, "schweifl", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "Senfl", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "senfl+", ligs["fl"], "aä" )
+ lt ( true, "fl", 5, 6, "Steifl", ligs["fl"] )
+ lt ( true, "fl", 5, 6, "steifl", ligs["fl"] )
+ lt ( true, "fl", 5, 6, "Strafl", ligs["fl"] )
+ lt ( true, "fl", 5, 6, "strafl", ligs["fl"] )
+ lt ( true, "fl", 7, 8, "Strumpfl", ligs["fl"] )
+ lt ( true, "fl", 7, 8, "strumpfl", ligs["fl"] )
+ lt ( true, "fl", 5, 6, "Sumpfl", ligs["fl"] )
+ lt ( true, "fl", 5, 6, "sumpfl", ligs["fl"] )
+ lt ( false, "fl", 6, 7, "nsumpfl", ligs["fl"] )
+ lt ( false, "fl", 6, 7, "isumpfl", ligs["fl"] )
+ lt ( false, "fl", 6, 7, "ssumpfl", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "Surfl", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "surfl", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "surfleck", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "surflüg", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "surflüss", ligs["fl"] )
+ lt ( true, "fl", 5, 6, "Tarifl", ligs["fl"] )
+ lt ( true, "fl", 5, 6, "tarifl", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "Tiefl", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "tiefl", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "tiefläche", ligs["fl"] )
+ lt ( false, "fl", 5, 6, "atieflaute", ligs["fl"] )
+ lt ( false, "fl", 5, 6, "atieflut", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "Topfl", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "topfl", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "Topflagg", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "Topflitz", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "Topflor", ligs["fl"] )
+ lt ( false, "fl", 5, 6, "rtopfli", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "topfläch", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "topfleg", ligs["fl"] )
+ lt ( true, "fl", 5, 6, "rtopfleg", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "topflop", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "topflug", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "topflüg", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "Torfl", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "torfl", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "Torflagge", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "Torflügel", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "Torflut", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "torfläche", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "torflasch", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "torflieg", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "torflimm", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "torflitz", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "torfloss", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "torflott", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "torfluch", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "torflug", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "torflüg", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "torflüss", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "torfluss", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "torfluß", ligs["fl"] )
+ lt ( true, "fl", 5, 6, "Tropfl", ligs["fl"] )
+ lt ( true, "fl", 5, 6, "tropfl", ligs["fl"] )
+ lt ( false, "fl", 5, 6, "tropflug", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "Wurfl", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "wurfl", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "Würfl", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "würfl", ligs["fl"] )
+ lt ( true, "fl", 3, 4, "alflede", ligs["fl"] )
+ lt ( true, "fl", 2, 3, "aflied", ligs["fl"] )
+ lt ( true, "fl", 2, 3, "aflos", ligs["fl"] )
+ lt ( false, "fl", 2, 3, "aflosk", ligs["fl"] )
+ lt ( false, "fl", 3, 4, "rafloss", ligs["fl"] )
+ lt ( true, "fl", 2, 3, "aflück", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "ampfl+", ligs["fl"], "aäou" )
+ lt ( false, "fl", 4, 5, "ampfläch", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "ampflanz", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "ampfleg", ligs["fl"] )
+ lt ( true, "fl", 3, 4, "arflad", ligs["fl"] )
+ lt ( true, "fl", 3, 4, "äufle", ligs["fl"] )
+ lt ( true, "fl", 3, 4, "eufle", ligs["fl"] )
+ lt ( false, "fl", 3, 4, "eufleiß", ligs["fl"] )
+ lt ( false, "fl", 3, 4, "eufleiss", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flaberer", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flabor", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flage", ligs["fl"] )
+ lt ( false, "fl", 3, 4, "siflage", ligs["fl"] )
+ lt ( false, "fl", 3, 4, "ouflage", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flagun", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flähm", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flaminat", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flamp", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "fland", ligs["fl"] )
+ lt ( false, "fl", 1, 2, "flandern", ligs["fl"] )
+ lt ( false, "fl", 1, 2, "flandrisch", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "fländ", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "fläng", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flapp", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flärm", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flauf", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "fläuf", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flaun", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "fleb", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "huffleb", ligs["fl"] )
+ lt ( true, "fl", 3, 4, "alfleder", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flehn", ligs["fl"] )
+ lt ( false, "fl", 2, 3, "nflehn", ligs["fl"] )
+ lt ( false, "fl", 2, 3, "rflehn", ligs["fl"] )
+ lt ( false, "fl", 3, 4, "Hoflehn", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flehr", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "fleiden", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flein", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "fleist", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "fleit", ligs["fl"] )
+ lt ( false, "fl", 6, 7, "Kaltefleiter", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flektür", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "fler", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "Hoefler", ligs["fl"] )
+ lt ( false, "fl", 7, 8, "Knoepffler", ligs["fl"] )
+ lt ( false, "fl", 2, 3, "fflerhyth", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "fleut", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flich", ligs["fl"] )
+ lt ( false, "fl", 1, 2, "flicht", ligs["fl"] )
+ lt ( true, "fl", 3, 4, "öpflicht", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flieb", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flief", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flift", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flig", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flila", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flinde", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "fling", ligs["fl"] )
+ lt ( false, "fl", 5, 6, "Bempfling", ligs["fl"] )
+ lt ( false, "fl", 3, 4, "Haflinge", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flini", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flinse", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flisch", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flist", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "fliter", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flizenz", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flobby", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flöch", ligs["fl"] )
+ lt ( false, "fl", 1, 2, "flöchte", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flöff", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flohn", ligs["fl"] )
+ lt ( false, "fl", 1, 2, "flohnetz", ligs["fl"] )
+ lt ( false, "fl", 3, 4, "ntflohn", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flöhn", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flok", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flord", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flösch", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flösu", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "fluft", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flung", ligs["fl"] )
+ lt ( true, "fl", 1, 2, "flust", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "Gipfle", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "gipfle", ligs["fl"] )
+ lt ( true, "fl", 5, 6, "chopfl", ligs["fl"] )
+ lt ( true, "fl", 2, 3, "lflady", ligs["fl"] )
+ lt ( true, "fl", 2, 3, "lflast", ligs["fl"] )
+ lt ( true, "fl", 2, 3, "lflos", ligs["fl"] )
+ lt ( false, "fl", 2, 3, "lfloss", ligs["fl"] )
+ lt ( false, "fl", 2, 3, "lflosk", ligs["fl"] )
+ lt ( true, "fl", 2, 3, "nflehm", ligs["fl"] )
+ lt ( true, "fl", 2, 3, "oflad", ligs["fl"] )
+ lt ( true, "fl", 2, 3, "ofläd", ligs["fl"] )
+ lt ( true, "fl", 2, 3, "oflück", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "gopflaum", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "iopflast", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "nopflaster", ligs["fl"] )
+ lt ( false, "fl", 3, 4, "opflair", ligs["fl"] )
+ lt ( false, "fl", 3, 4, "opflanz", ligs["fl"] )
+ lt ( true, "fl", 3, 4, "öpfle", ligs["fl"] )
+ lt ( true, "fl", 3, 4, "orflad", ligs["fl"] )
+ lt ( true, "fl", 2, 3, "pflaut", ligs["fl"] )
+ lt ( true, "fl", 2, 3, "pfleier", ligs["fl"] )
+ lt ( true, "fl", 2, 3, "pflehm", ligs["fl"] )
+ lt ( true, "fl", 2, 3, "pfleis", ligs["fl"] )
+ lt ( true, "fl", 2, 3, "pfleu", ligs["fl"] )
+ lt ( true, "fl", 2, 3, "pflid", ligs["fl"] )
+ lt ( true, "fl", 2, 3, "pflied", ligs["fl"] )
+ lt ( true, "fl", 2, 3, "pfloch", ligs["fl"] )
+ lt ( true, "fl", 2, 3, "pflos", ligs["fl"] )
+ lt ( false, "fl", 2, 3, "pfloss", ligs["fl"] )
+ lt ( true, "fl", 2, 3, "pflös", ligs["fl"] )
+ lt ( true, "fl", 2, 3, "pflup", ligs["fl"] )
+ lt ( true, "fl", 2, 3, "pflux", ligs["fl"] )
+ lt ( true, "fl", 2, 3, "rfläd", ligs["fl"] )
+ lt ( true, "fl", 2, 3, "rflück", ligs["fl"] )
+ lt ( true, "fl", 2, 3, "rfluke", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "reifl", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "Reifl", ligs["fl"] )
+ lt ( false, "fl", 5, 6, "Breifl", ligs["fl"] )
+ lt ( false, "fl", 5, 6, "breifl", ligs["fl"] )
+ lt ( false, "fl", 5, 6, "Dreifl", ligs["fl"] )
+ lt ( false, "fl", 5, 6, "dreifl", ligs["fl"] )
+ lt ( false, "fl", 5, 6, "Freifl", ligs["fl"] )
+ lt ( false, "fl", 5, 6, "freifl", ligs["fl"] )
+ lt ( false, "fl", 7, 8, "eiereifl", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "reifläch", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "reiflagg", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "reiflamm", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "reiflasch", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "reiflies", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "reiflock", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "reifloh", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "reiflöhe", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "reiflott", ligs["fl"] )
+ lt ( true, "fl", 3, 4, "Tafle", ligs["fl"] )
+ lt ( true, "fl", 3, 4, "tafle", ligs["fl"] )
+ lt ( false, "fl", 3, 4, "tafleck", ligs["fl"] )
+ lt ( false, "fl", 3, 4, "taflege", ligs["fl"] )
+ lt ( true, "fl", 3, 4, "urflad", ligs["fl"] )
+ lt ( true, "fl", 3, 4, "ürfla", ligs["fl"] )
+ lt ( true, "fl", 3, 4, "urfloch", ligs["fl"] )
+ lt ( true, "fl", 3, 4, "ürfloch", ligs["fl"] )
+ lt ( true, "fl", 3, 4, "wafle", ligs["fl"] )
+ lt ( true, "fl", 3, 4, "wefle", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "weifle", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "weifleck", ligs["fl"] )
+ lt ( true, "fl", 4, 5, "werfl", ligs["fl"] )
+ lt ( false, "fl", 6, 7, "chwerfl", ligs["fl"] )
+ lt ( false, "fl", 4, 5, "werflitz", ligs["fl"] )
+ end
+ if next ( ligs["ffi"] ) then
+ lt ( true, "ff", 2, 3, "affind", ligs["ffi"] )
+ lt ( false, "ff", 4, 5, "araffind", ligs["ffi"] )
+ lt ( true, "ff", 1, 2, "ffibel", ligs["ffi"] )
+ lt ( true, "ff", 1, 2, "ffieb", ligs["ffi"] )
+ lt ( true, "ff", 1, 2, "ffigu", ligs["ffi"] )
+ lt ( true, "ff", 1, 2, "ffilm", ligs["ffi"] )
+ lt ( true, "ff", 1, 2, "ffilter", ligs["ffi"] )
+ lt ( true, "ff", 1, 2, "ffinal", ligs["ffi"] )
+ lt ( true, "ff", 1, 2, "ffinte", ligs["ffi"] )
+ lt ( false, "ff", 3, 4, "raffinte", ligs["ffi"] )
+ lt ( true, "ff", 1, 2, "ffinanz", ligs["ffi"] )
+ lt ( true, "ff", 1, 2, "ffistel", ligs["ffi"] )
+ lt ( true, "ff", 1, 2, "ffixier", ligs["ffi"] )
+ lt ( true, "ff", 2, 3, "iffind", ligs["ffi"] )
+ lt ( true, "ff", 2, 3, "lffing", ligs["ffi"] )
+ lt ( true, "ff", 2, 3, "lffisch", ligs["ffi"] )
+ lt ( true, "ff", 2, 3, "nffing", ligs["ffi"] )
+ lt ( true, "ff", 2, 3, "pffi", ligs["ffi"] )
+ lt ( true, "ff", 4, 5, "reiffing", ligs["ffi"] )
+ lt ( true, "fi", 5, 6, "Stoffi", ligs["ffi"] )
+ lt ( true, "fi", 5, 6, "stoffi", ligs["ffi"] )
+ lt ( false, "fi", 5, 6, "stoffiz", ligs["ffi"] )
+ lt ( false, "fi", 5, 6, "stoffig", ligs["ffi"] )
+ lt ( true, "fi", 2, 3, "ffinnen", ligs["ffi"] )
+ end
+ if next ( ligs["ffl"] ) then
+ lt ( true, "fl", 5, 6, "Griffl", ligs["ffl"] )
+ lt ( true, "fl", 5, 6, "griffl", ligs["ffl"] )
+ lt ( true, "fl", 3, 4, "Offline", ligs["ffl"] )
+ lt ( true, "fl", 3, 4, "offline", ligs["ffl"] )
+ lt ( true, "fl", 5, 6, "Pfiffl", ligs["ffl"] )
+ lt ( true, "fl", 6, 7, "Scheffle", ligs["ffl"] )
+ lt ( true, "fl", 6, 7, "scheffle", ligs["ffl"] )
+ lt ( true, "fl", 6, 7, "Schiffl", ligs["ffl"] )
+ lt ( true, "fl", 6, 7, "schiffl", ligs["ffl"] )
+ lt ( true, "fl", 5, 6, "Stoffl", ligs["ffl"] )
+ lt ( true, "fl", 5, 6, "stoffl", ligs["ffl"] )
+ lt ( true, "fl", 3, 4, "afflu", ligs["ffl"] )
+ lt ( true, "fl", 2, 3, "fflamell", ligs["ffl"] )
+ lt ( true, "fl", 2, 3, "fflast", ligs["ffl"] )
+ lt ( true, "fl", 2, 3, "fflatsch", ligs["ffl"] )
+ lt ( true, "fl", 2, 3, "ffloch", ligs["ffl"] )
+ lt ( true, "fl", 2, 3, "fflos", ligs["ffl"] )
+ lt ( true, "fl", 3, 4, "ifflo", ligs["ffl"] )
+ lt ( true, "fl", 3, 4, "offlad", ligs["ffl"] )
+ lt ( true, "fl", 3, 4, "öffle", ligs["ffl"] )
+ lt ( true, "fl", 3, 4, "offlo", ligs["ffl"] )
+ lt ( true, "fl", 4, 5, "pufflack", ligs["ffl"] )
+ lt ( true, "fl", 4, 5, "taffle", ligs["ffl"] )
+ lt ( true, "fl", 3, 4, "ufflad", ligs["ffl"] )
+ lt ( true, "fl", 3, 4, "uffläd", ligs["ffl"] )
+ lt ( true, "fl", 4, 5, "luffleck", ligs["ffl"] )
+ lt ( true, "fl", 3, 4, "äffle", ligs["ffl"] )
+ lt ( true, "fl", 3, 4, "üffle", ligs["ffl"] )
+ lt ( true, "ff", 3, 4, "Auffl", ligs["ffl"] )
+ lt ( true, "ff", 3, 4, "auffl", ligs["ffl"] )
+ lt ( true, "ff", 3, 4, "eiffleck", ligs["ffl"] )
+ lt ( true, "ff", 1, 2, "fflatter", ligs["ffl"] )
+ lt ( true, "ff", 1, 2, "ffläch", ligs["ffl"] )
+ lt ( true, "ff", 1, 2, "fflech", ligs["ffl"] )
+ lt ( true, "ff", 1, 2, "ffleisch", ligs["ffl"] )
+ lt ( true, "ff", 1, 2, "fflexib", ligs["ffl"] )
+ lt ( true, "ff", 1, 2, "fflies", ligs["ffl"] )
+ lt ( true, "ff", 1, 2, "fflimm", ligs["ffl"] )
+ lt ( true, "ff", 1, 2, "ffluch", ligs["ffl"] )
+ lt ( true, "ff", 1, 2, "fflüch", ligs["ffl"] )
+ lt ( true, "ff", 1, 2, "fflug", ligs["ffl"] )
+ lt ( true, "ff", 1, 2, "fflüg", ligs["ffl"] )
+ lt ( true, "ff", 1, 2, "fflur", ligs["ffl"] )
+ lt ( true, "ff", 1, 2, "ffluss", ligs["ffl"] )
+ lt ( true, "ff", 1, 2, "fflüs", ligs["ffl"] )
+ lt ( true, "ff", 1, 2, "fflut", ligs["ffl"] )
+ lt ( true, "ff", 3, 4, "iefflieg", ligs["ffl"] )
+ lt ( true, "ff", 3, 4, "iefflog", ligs["ffl"] )
+ lt ( true, "ff", 2, 3, "lfflach", ligs["ffl"] )
+ lt ( true, "ff", 3, 4, "mpffl", ligs["ffl"] )
+ lt ( true, "ff", 3, 4, "opffl", ligs["ffl"] )
+ lt ( true, "ff", 3, 4, "upffl", ligs["ffl"] )
+ lt ( true, "ff", 2, 3, "rfflad", ligs["ffl"] )
+ lt ( true, "ff", 2, 3, "rfflasch", ligs["ffl"] )
+ lt ( true, "ff", 4, 5, "wurffl", ligs["ffl"] )
+ end
+ if next ( ligs["ft"] ) then
+ lt ( true, "ft", 3, 4, "Auft+", ligs["ft"] , "aähioöruüy" )
+ lt ( true, "ft", 3, 4, "auft+", ligs["ft"] , "aähioöruüy" )
+ lt ( true, "ft", 5, 6, "Brieft", ligs["ft"] )
+ lt ( true, "ft", 5, 6, "brieft", ligs["ft"] )
+ lt ( true, "ft", 4, 5, "Cheft", ligs["ft"] )
+ lt ( true, "ft", 4, 5, "cheft+", ligs["ft"] , "abcdefghijklmnopqrstuvwxyzäöü" )
+ lt ( false, "ft", 7, 8, "omicheft+", ligs["ft"] , "ceg" )
+ lt ( true, "ft", 4, 5, "Dorft", ligs["ft"] )
+ lt ( true, "ft", 4, 5, "dorft", ligs["ft"] )
+ lt ( true, "ft", 3, 4, "Elfte", ligs["ft"] )
+ lt ( true, "ft", 3, 4, "elfte", ligs["ft"] )
+ lt ( false, "ft", 3, 4, "elfterfolg", ligs["ft"] )
+ lt ( true, "ft", 4, 5, "Fünft+", ligs["ft"] , "aäeoöruy" )
+ lt ( true, "ft", 4, 5, "fünft+", ligs["ft"] , "aäeoöruy" )
+ lt ( false, "ft", 4, 5, "fünfterfolg", ligs["ft"] )
+ lt ( false, "ft", 4, 5, "Fünfterfolg", ligs["ft"] )
+ lt ( false, "ft", 4, 5, "fünftrang", ligs["ft"] )
+ lt ( false, "ft", 4, 5, "Fünftrang", ligs["ft"] )
+ lt ( false, "ft", 4, 5, "fünftreich", ligs["ft"] )
+ lt ( false, "ft", 4, 5, "Fünftreich", ligs["ft"] )
+ lt ( false, "ft", 4, 5, "Fünftoper", ligs["ft"] )
+ lt ( false, "ft", 4, 5, "Fünftrund", ligs["ft"] )
+ lt ( false, "ft", 4, 5, "Fünftäon", ligs["ft"] )
+ lt ( false, "ft", 4, 5, "fünftältest", ligs["ft"] )
+ lt ( false, "ft", 4, 5, "Fünftältest", ligs["ft"] )
+ lt ( true, "ft", 4, 5, "Golft", ligs["ft"] )
+ lt ( true, "ft", 4, 5, "golft+", ligs["ft"] , "hiruüy" )
+ lt ( true, "ft", 5, 6, "Greift+", ligs["ft"] , "eio" )
+ lt ( true, "ft", 4, 5, "Hanftau", ligs["ft"] )
+ lt ( true, "ft", 3, 4, "Hoft+", ligs["ft"] , "aäehioöruüy" )
+ lt ( true, "ft", 3, 4, "hoft+", ligs["ft"] , "aähioöruü" )
+ lt ( true, "ft", 3, 4, "Huftra", ligs["ft"] )
+ lt ( true, "ft", 4, 5, "Kopft+", ligs["ft"] , "aäehioöruüy" )
+ lt ( true, "ft", 4, 5, "Laufte", ligs["ft"] )
+ lt ( true, "ft", 4, 5, "Prüft+", ligs["ft"] , "aähioöruüy" )
+ lt ( true, "ft", 4, 5, "prüft+", ligs["ft"] , "aähioöruü" )
+ lt ( true, "ft", 3, 4, "Ruft+", ligs["ft"] , "aäehioöruüy" )
+ lt ( true, "ft", 5, 6, "Schaftal", ligs["ft"] )
+ lt ( true, "ft", 5, 6, "Schaftor", ligs["ft"] )
+ lt ( true, "ft", 5, 6, "Schaftreib", ligs["ft"] )
+ lt ( true, "ft", 5, 6, "schaftal", ligs["ft"] )
+ lt ( true, "ft", 5, 6, "schaftor", ligs["ft"] )
+ lt ( true, "ft", 5, 6, "schaftreib", ligs["ft"] )
+ lt ( true, "ft", 6, 7, "Schlaft", ligs["ft"] )
+ lt ( true, "ft", 6, 7, "schlaft+", ligs["ft"] , "aähioöruüy" )
+ lt ( true, "ft", 6, 7, "Schilft+", ligs["ft"] , "äehiruüy" )
+ lt ( true, "ft", 6, 7, "schilft+", ligs["ft"] , "hiruüy" )
+ lt ( true, "ft", 4, 5, "Senft+", ligs["ft"] , "aäehioöruy" )
+ lt ( false, "ft", 4, 5, "Senftenberg", ligs["ft"] )
+ lt ( true, "ft", 5, 6, "Straft+", ligs["ft"] , "aähioöruüy" )
+ lt ( true, "ft", 5, 6, "straft+", ligs["ft"] , "aähioöruüy" )
+ lt ( false, "ft", 5, 6, "straftheit", ligs["ft"] )
+ lt ( true, "ft", 4, 5, "Sufft", ligs["ft"] )
+ lt ( true, "ft", 4, 5, "Surft+", ligs["ft"] , "ähiöüy" )
+ lt ( true, "ft", 5, 6, "Tarift", ligs["ft"] )
+ lt ( true, "ft", 5, 6, "tarift", ligs["ft"] )
+ lt ( true, "ft", 4, 5, "Tieft", ligs["ft"] )
+ lt ( true, "ft", 4, 5, "Torft", ligs["ft"] )
+ lt ( true, "ft", 4, 5, "torft", ligs["ft"] )
+ lt ( true, "ft", 4, 5, "Wurft", ligs["ft"] )
+ lt ( true, "ft", 4, 5, "wurft", ligs["ft"] )
+ lt ( true, "ft", 2, 3, "fft+", ligs["ft"] , "aähioöruüy" )
+ lt ( true, "ft", 8, 9, "Abstreiftest", ligs["ft"] )
+ lt ( true, "ft", 6, 7, "Ankauftest", ligs["ft"] )
+ lt ( true, "ft", 7, 8, "Hörprüftest", ligs["ft"] )
+ lt ( true, "ft", 4, 5, "Hüpftest", ligs["ft"] )
+ lt ( true, "ft", 4, 5, "Impftest", ligs["ft"] )
+ lt ( true, "ft", 4, 5, "Kauftest", ligs["ft"] )
+ lt ( true, "ft", 5, 6, "Klopftest", ligs["ft"] )
+ lt ( true, "ft", 5, 6, "Kneiftest", ligs["ft"] )
+ lt ( true, "ft", 12, 13, "Lichtschweiftest", ligs["ft"] )
+ lt ( true, "ft", 7, 8, "Rückruftest", ligs["ft"] )
+ lt ( true, "ft", 7, 8, "Schnupftest", ligs["ft"] )
+ lt ( true, "ft", 5, 6, "Sumpftest", ligs["ft"] )
+ lt ( true, "ft", 5, 6, "Tropftest", ligs["ft"] )
+ lt ( true, "ft", 9, 10, "Wettkampftest", ligs["ft"] )
+ lt ( true, "ft", 4, 5, "tofftest", ligs["ft"] )
+ lt ( true, "ft", 2, 3, "aftee", ligs["ft"] )
+ lt ( true, "ft", 3, 4, "auftee", ligs["ft"] )
+ lt ( true, "ft", 4, 5, "lauftest", ligs["ft"] )
+ lt ( true, "ft", 3, 4, "eiftie", ligs["ft"] )
+ lt ( true, "ft", 3, 4, "eiftit", ligs["ft"] )
+ lt ( true, "ft", 3, 4, "eiftr", ligs["ft"] )
+ lt ( true, "ft", 5, 6, "elieft", ligs["ft"] )
+ lt ( true, "ft", 3, 4, "enftei", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftabell", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftablett", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftafel", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftag", ligs["ft"] )
+ lt ( false, "ft", 1, 2, "ftagent", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftäg", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftalsg", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftanz", ligs["ft"] )
+ lt ( false, "ft", 1, 2, "ftanzahl", ligs["ft"] )
+ lt ( false, "ft", 1, 2, "ftanzeig", ligs["ft"] )
+ lt ( false, "ft", 1, 2, "ftanzieh", ligs["ft"] )
+ lt ( false, "ft", 1, 2, "ftanzüg", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftänz", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftari", ligs["ft"] )
+ lt ( false, "ft", 1, 2, "ftaristokr", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftarn", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftasse", ligs["ft"] )
+ lt ( false, "ft", 1, 2, "ftassel", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftatb", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftaten", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftätig", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftauch", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftaugl", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftaume", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftax", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "fteam", ligs["ft"] )
+ lt ( false, "ft", 1, 2, "fteamt", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftechn", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftedd", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "fteich", ligs["ft"] )
+ lt ( false, "ft", 2, 3, "nfteich", ligs["ft"] )
+ lt ( false, "ft", 2, 3, "ifteich", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "fteigw", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "fteil", ligs["ft"] )
+ lt ( false, "ft", 1, 2, "fteilfr", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftelef", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "fteleph", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftelegr", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "fteller", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftempel", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftemper", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftempo", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftendenz", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftentak", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "fteppi", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftermin", ligs["ft"] )
+ lt ( false, "ft", 1, 2, "fterminder", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftermit", ligs["ft"] )
+ lt ( false, "ft", 1, 2, "ftermitt", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "fterrain", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "fterrass", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "fterrin", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "fterror", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftestat", ligs["ft"] )
+ lt ( false, "ft", 1, 2, "ftestation", ligs["ft"] )
+ lt ( false, "ft", 1, 2, "ftestatist", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "fteuf", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftext", ligs["ft"] )
+ lt ( false, "ft", 1, 2, "ftextrakt", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftheat", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "fthem", ligs["ft"] )
+ lt ( false, "ft", 1, 2, "fthemm", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftheor", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftherap", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftick", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftief", ligs["ft"] )
+ lt ( false, "ft", 1, 2, "ftiefigur", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftier", ligs["ft"] )
+ lt ( false, "ft", 3, 4, "haftier", ligs["ft"] )
+ lt ( false, "ft", 3, 4, "Muftier", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftipp", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftirad", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftisch", ligs["ft"] )
+ lt ( false, "ft", 4, 5, "stiftisch", ligs["ft"] )
+ lt ( false, "ft", 3, 4, "ünftisch", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftod", ligs["ft"] )
+ lt ( false, "ft", 1, 2, "ftodem", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "fton", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftön", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftool", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftopf", ligs["ft"] )
+ lt ( false, "ft", 1, 2, "ftopfer", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftöpf", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftorig", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftour", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftrader", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftradition", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "fträg", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftrain", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftränk", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftransp", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "fträume", ligs["ft"] )
+ lt ( false, "ft", 2, 3, "afträume", ligs["ft"] )
+ lt ( false, "ft", 2, 3, "äfträume", ligs["ft"] )
+ lt ( false, "ft", 3, 4, "rifträume", ligs["ft"] )
+ lt ( false, "ft", 2, 3, "ufträume", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftrauri", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftreff", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftresor", ligs["ft"] )
+ lt ( false, "ft", 1, 2, "ftresorp", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftret", ligs["ft"] )
+ lt ( false, "ft", 1, 2, "ftrett", ligs["ft"] )
+ lt ( false, "ft", 1, 2, "ftreturn", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftrick", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftrieb", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftrief", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftrift", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftrimest", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftritt", ligs["ft"] )
+ lt ( false, "ft", 1, 2, "ftritter", ligs["ft"] )
+ lt ( false, "ft", 3, 4, "Luftritt", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftrott", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftrüb", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftrunk", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftrupp", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftuch", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftüch", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftürk", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "fturm", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftürm", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftyp", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftyr", ligs["ft"] )
+ lt ( true, "ft", 1, 2, "ftwist", ligs["ft"] )
+ lt ( true, "ft", 4, 5, "graftum", ligs["ft"] )
+ lt ( true, "ft", 4, 5, "graftüm", ligs["ft"] )
+ lt ( true, "ft", 3, 4, "hoftest", ligs["ft"] )
+ lt ( true, "ft", 3, 4, "iefta", ligs["ft"] )
+ lt ( true, "ft", 3, 4, "iefto", ligs["ft"] )
+ lt ( true, "ft", 3, 4, "ieftö", ligs["ft"] )
+ lt ( true, "ft", 3, 4, "ieftra", ligs["ft"] )
+ lt ( true, "ft", 2, 3, "lfta", ligs["ft"] )
+ lt ( true, "ft", 2, 3, "lfto", ligs["ft"] )
+ lt ( true, "ft", 2, 3, "lftö", ligs["ft"] )
+ lt ( true, "ft", 2, 3, "lftum", ligs["ft"] )
+ lt ( true, "ft", 2, 3, "nftü", ligs["ft"] )
+ lt ( false, "ft", 2, 3, "nftüb", ligs["ft"] )
+ lt ( true, "ft", 2, 3, "nftübchen", ligs["ft"] )
+ lt ( true, "ft", 3, 4, "ölfte", ligs["ft"] )
+ lt ( true, "ft", 2, 3, "pft+", ligs["ft"] , "aähioöruüy" )
+ lt ( false, "ft", 2, 3, "pftheit", ligs["ft"] )
+ lt ( true, "ft", 2, 3, "pftee", ligs["ft"] )
+ lt ( true, "ft", 2, 3, "pfteig", ligs["ft"] )
+ lt ( true, "ft", 2, 3, "pftender", ligs["ft"] )
+ lt ( true, "ft", 2, 3, "rftr", ligs["ft"] )
+ lt ( false, "ft", 5, 6, "tdurftrö", ligs["ft"] )
+ lt ( false, "ft", 4, 5, "Werftr", ligs["ft"] )
+ lt ( false, "ft", 4, 5, "werftr", ligs["ft"] )
+ lt ( true, "ft", 4, 5, "werftrage", ligs["ft"] )
+ lt ( true, "ft", 2, 3, "rftu", ligs["ft"] )
+ lt ( false, "ft", 4, 5, "Werftu", ligs["ft"] )
+ lt ( false, "ft", 4, 5, "werftu", ligs["ft"] )
+ lt ( true, "ft", 2, 3, "uftas", ligs["ft"] )
+ lt ( false, "ft", 3, 4, "Duftas", ligs["ft"] )
+ lt ( false, "ft", 3, 4, "duftas", ligs["ft"] )
+ lt ( false, "ft", 4, 5, "Gruftas", ligs["ft"] )
+ lt ( false, "ft", 4, 5, "gruftas", ligs["ft"] )
+ lt ( false, "ft", 3, 4, "Luftas", ligs["ft"] )
+ lt ( false, "ft", 3, 4, "luftas", ligs["ft"] )
+ lt ( false, "ft", 2, 3, "uftassoz", ligs["ft"] )
+ lt ( true, "ft", 3, 4, "urfta", ligs["ft"] )
+ lt ( false, "ft", 5, 6, "tdurfta", ligs["ft"] )
+ lt ( true, "ft", 3, 4, "urfto", ligs["ft"] )
+ lt ( true, "ft", 3, 4, "ünftor", ligs["ft"] )
+ end
+ if next ( ligs["fb"] ) then
+ lt ( true, "fb", 1, 2, "fb", ligs["fb"] )
+ end
+ if next ( ligs["fh"] ) then
+ lt ( true, "fh", 1, 2, "fh", ligs["fh"] )
+ end
+ if next ( ligs["fk"] ) then
+ lt ( true, "fk", 1, 2, "fk", ligs["fk"] )
+ lt ( false, "fk", 3, 4, "Kafka", ligs["fk"] )
+ lt ( false, "fk", 3, 4, "kafka", ligs["fk"] )
+ lt ( false, "fk", 4, 5, "Piefke", ligs["fk"] )
+ lt ( false, "fk", 4, 5, "piefkei", ligs["fk"] )
+ lt ( false, "fk", 3, 4, "Safka", ligs["fk"] )
+ lt ( false, "fk", 6, 7, "Potrafke", ligs["fk"] )
+ lt ( false, "fk", 5, 6, "Sprafke", ligs["fk"] )
+ lt ( false, "fk", 6, 7, "Shirafkan", ligs["fk"] )
+ lt ( false, "fk", 5, 6, "Tirafkan", ligs["fk"] )
+ lt ( false, "fk", 4, 5, "Selfkant", ligs["fk"] )
+ lt ( false, "fk", 3, 4, "Rifkin", ligs["fk"] )
+ end
+ if next ( ligs["fj"] ) then
+ lt ( true, "fj", 1, 2, "fj", ligs["fj"] )
+ lt ( false, "fj", 1, 2, "fjord", ligs["fj"] )
+ lt ( false, "fj", 1, 2, "fjör", ligs["fj"] )
+ lt ( false, "fj", 4, 5, "Ísafjarðarbær", ligs["fj"] )
+ lt ( false, "fj", 1, 2, "fjell", ligs["fj"] )
+ lt ( false, "fj", 1, 2, "fjall", ligs["fj"] )
+ lt ( false, "fj", 1, 2, "fjäll", ligs["fj"] )
+ lt ( false, "fj", 1, 2, "fjöll", ligs["fj"] )
+ lt ( false, "fj", 6, 7, "Prokofjew", ligs["fj"] )
+ lt ( false, "fj", 3, 4, "Sufjan", ligs["fj"] )
+ lt ( false, "fj", 3, 4, "Eefje", ligs["fj"] )
+ lt ( false, "fj", 5, 6, "Astafjew", ligs["fj"] )
+ end
+ if next ( ligs["fff"] ) then
+ lt ( true, "ff", 2, 3, "fff", ligs["fff"] )
+ end
+ end
+ for _, value in ipairs ( lig_table ) do
+ lt ( value[1], value[2], value[3], value[4], value[5], ligs[value[2]], value[6] )
+ end
+ end
+end
+
+local function no_ligs ( head )
+ local ligs = get_ligs ( head )
+ local string_table = { "ff", "fi", "fl", "ft", "fb", "fh", "fk", "fj" }
+ local lig_check = {}
+ for _, value in pairs ( lig_table ) do
+ lig_check[value[2]] = true
+ end
+ for key, value in pairs ( lig_check ) do
+ if value then
+ string_table[#string_table + 1] = key
+ end
+ end
+ for _, value in pairs ( string_table ) do
+ no_lig ( true, value, 1, 2, value, head, ligs[value] )
+ end
+end
+
+function ligtype_write_ligs ( s )
+ ATC ( "ligaturing", no_ligs, "no ligs" )
+ local lig_check = {}
+ for _, value in pairs ( lig_table ) do
+ lig_check[value[2]] = true
+ end
+ local ligs_string = "ff fi fl ft fb fh fk fj"
+ for key, value in pairs ( lig_check ) do
+ if value and not FIND ( ligs_string, key ) then
+ ligs_string = ligs_string .. " " .. key
+ end
+ end
+ local par_end = [[\par\addvspace{\baselineskip}]]
+ tex.sprint ( [[\newpage{}\pagestyle{empty}\parindent=0em{}]] .. ligs_string .. par_end .. [[\textbf{]] .. ligs_string .. [[}]] .. par_end .. [[\textit{]] .. ligs_string .. [[}]] .. par_end .. [[\textit{\textbf{]] .. ligs_string .. [[}}]] .. par_end .. [[{\sffamily{}]] .. ligs_string .. par_end .. [[\textbf{]] .. ligs_string .. [[}]] .. par_end .. [[\textit{]] .. ligs_string .. [[}]] .. par_end .. [[\textit{\textbf{]] .. ligs_string .. [[}}]] .. par_end .. [[}\newpage{}]] )
+end
+
+function ligtype_make_marks ()
+ make_marks = true
+ ATC ( "post_linebreak_filter", place_marks, "place marks postline" )
+ ATC ( "hpack_filter", place_marks, "place marks hpack" )
+end
+
+function ligtype_on ()
+ ATC ( "ligaturing", lig_parse, "make and break ligatures" )
+ ATC ( "pre_linebreak_filter", make_kern, "make kerns preline" )
+ ATC ( "hpack_filter", make_kern, "make kerns hpack", 2 )
+end
+
+function ligtype_off ()
+ RFC ( "ligaturing", "make and break ligatures" )
+ RFC ( "pre_linebreak_filter", "make kerns preline" )
+ RFC ( "hpack_filter", "make kerns hpack" )
+end \ No newline at end of file
diff --git a/macros/luatex/latex/ligtype/ligtype.pdf b/macros/luatex/latex/ligtype/ligtype.pdf
new file mode 100644
index 0000000000..4f1870ae60
--- /dev/null
+++ b/macros/luatex/latex/ligtype/ligtype.pdf
Binary files differ
diff --git a/macros/luatex/latex/ligtype/ligtype.sty b/macros/luatex/latex/ligtype/ligtype.sty
new file mode 100644
index 0000000000..7537e75f7e
--- /dev/null
+++ b/macros/luatex/latex/ligtype/ligtype.sty
@@ -0,0 +1,53 @@
+% Copyright (c) 2022 Thomas Kelkel kelkel@emaileon.de
+
+% This file 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 2009/09/24 or later.
+
+% The ligtype package makes use of the German language
+% ligature suppression rules of the selnolig package by
+% Mico Loretan. The selnolig package can be downloaded at
+
+% https://www.ctan.org/pkg/selnolig
+
+% and may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License.
+
+\ProvidesPackage{ligtype}[2022/04/30 v0.1 Suppress inappropriate ligatures]
+\RequirePackage{ifluatex,luatexbase}
+
+\ifluatex
+ \directlua{require ( "ligtype.lua" )}
+
+ \def\ligtypeon{\directlua{ligtype_on()}}
+ \def\ligtypeoff{\directlua{ligtype_off()}}
+
+ \ligtypeon
+
+ \newcommand\nolig[2]{%
+ \directlua{%
+ ligtype_parse_macro ( "\luatexluaescapestring{#1}", "\luatexluaescapestring{#2}", true )%
+ }%
+ }
+ \newcommand\keeplig[2]{%
+ \directlua{%
+ ligtype_parse_macro ( "\luatexluaescapestring{#1}", "\luatexluaescapestring{#2}", false )%
+ }%
+ }
+
+ \DeclareOption{noshortf}{\directlua{ligtype_no_short_f()}}
+ \DeclareOption{allshortf}{\directlua{ligtype_all_short_f()}}
+ \DeclareOption{makemarks}{\directlua{ligtype_make_marks()}}
+ \DeclareOption{kerntest}{\AtEndDocument{\directlua{ligtype_write_ligs()}}}
+ \DeclareOption{nodefault}{\directlua{ligtype_no_default()}}
+ \ProcessOptions
+\else
+ \errhelp{Compile with LuaLaTeX to be able to use the "ligtype" package.}
+ \errmessage{Package "ligtype" error: This package requires LuaLaTeX!}
+\fi \ No newline at end of file
diff --git a/macros/luatex/latex/spacekern/README.md b/macros/luatex/latex/spacekern/README.md
new file mode 100644
index 0000000000..6aa24a47bb
--- /dev/null
+++ b/macros/luatex/latex/spacekern/README.md
@@ -0,0 +1,19 @@
+The package offers two distinct main features.
+First, it provides two shorthands for typesetting breaking
+and non-breaking small spaces, where both hyphenation and
+kerning against space are correctly applied.
+Second, interword kerning can be applied.
+The package requires LuaLaTeX.
+
+Copyright (c) 2022 Thomas Kelkel kelkel@emaileon.de
+
+The files of this package 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 2009/09/24 or later. \ No newline at end of file
diff --git a/macros/luatex/latex/spacekern/spacekern.lua b/macros/luatex/latex/spacekern/spacekern.lua
new file mode 100644
index 0000000000..7ea754d0ab
--- /dev/null
+++ b/macros/luatex/latex/spacekern/spacekern.lua
@@ -0,0 +1,174 @@
+-- Copyright (c) 2022 Thomas Kelkel kelkel@emaileon.de
+
+-- This file 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 2009/09/24 or later.
+
+-- Version: 0.1
+
+local ID = node.id
+local GLYPH = ID ( "glyph" )
+local GLUE = ID ( "glue" )
+local KERN = ID ( "kern" )
+local WI = ID ( "whatsit" )
+local BOUND = ID ( "boundary" )
+local PENALTY = ID ( "penalty" )
+local SWAPPED = table.swapped
+local SUBTYPES = node.subtypes
+local USERKERN = SWAPPED ( SUBTYPES ("kern") )["userkern"]
+local LBPENALTY = SWAPPED ( SUBTYPES ("penalty") )["linebreakpenalty"]
+local SPACESKIP = SWAPPED ( SUBTYPES ("glue") )["spaceskip"]
+local NEW = node.new
+local REM = node.remove
+local PREV = node.prev
+local NEXT = node.next
+local INS_B = node.insert_before
+local T_ID = node.traverse_id
+local T_GLYPH = node.traverse_glyph
+local WIS = node.whatsits()
+local userdefined
+local pairs = pairs
+local FLOOR = math.floor
+local GET_FONT = font.getfont
+local ATC = luatexbase.add_to_callback
+
+local no_iw_kern = false
+
+function spacekern_no_iw_kern ()
+ no_iw_kern = true
+end
+
+local function round ( num, dec )
+ return FLOOR ( num * 10^dec + 0.5 ) / 10^dec
+end
+
+for key, value in pairs ( WIS ) do
+ if value == "user_defined" then
+ userdefined = key
+ end
+end
+
+local function find_glyph ( n, d )
+ if d ( n ) then
+ n = d ( n )
+ while n.id ~= GLYPH do
+ if not d ( n ) or n.id == GLUE or n.id == BOUND or ( n.id == KERN and n.subtype == USERKERN ) then return false end
+ n = d ( n )
+ end
+ else
+ return false
+ end
+ return n
+end
+
+local function make_kern ( head, font, first_glyph, second_glyph, insert_point )
+ local tfmdata = GET_FONT ( font )
+ if tfmdata.resources then
+ local resources = tfmdata.resources
+ if resources.sequences then
+ local seq = resources.sequences
+ for _, t in pairs ( seq ) do
+ if t.steps then
+ local steps = t.steps
+ for _, k in pairs ( steps ) do
+ if k.coverage then
+ local first_number = true
+ if k.coverage[first_glyph] then
+ local glyph_table = k.coverage[first_glyph]
+ if type ( glyph_table ) == "table" then
+ for key, value in pairs ( glyph_table ) do
+ if key == second_glyph and type ( value ) == "number" and first_number and ( k.format == "move" or tfmdata.specification.features.raw[t.name] ) then
+ if tfmdata.specification.features.raw[t.name] then
+ first_number = false
+ end
+ if PREV ( insert_point ).id == PENALTY then
+ insert_point = PREV ( insert_point )
+ end
+ INS_B ( head, insert_point, NEW ( KERN ) )
+ PREV ( insert_point ).kern = value / tfmdata.units_per_em * tfmdata.size
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+end
+
+local function check_glyph ( n, d, has_prev_next_glyph, prev_next_glyph )
+ if find_glyph ( n, d ) then
+ prev_next_glyph = find_glyph ( n, d )
+ has_prev_next_glyph = true
+ end
+ return has_prev_next_glyph, prev_next_glyph
+end
+
+local function make_kerns ( head, n )
+ local has_prev_glyph = false
+ local has_next_glyph = false
+ local prev_glyph = n
+ local next_glyph = n
+ has_prev_glyph, prev_glyph = check_glyph ( n, PREV, has_prev_glyph, prev_glyph )
+ has_next_glyph, next_glyph = check_glyph ( n, NEXT, has_next_glyph, next_glyph )
+ if has_prev_glyph and prev_glyph.char and prev_glyph.font then
+ make_kern ( head, prev_glyph.font, prev_glyph.char, 32, n )
+ end
+ if has_next_glyph and next_glyph.char and next_glyph.font then
+ make_kern ( head, next_glyph.font, 32, next_glyph.char, n )
+ end
+ if not no_iw_kern and has_prev_glyph and has_next_glyph and prev_glyph.char and next_glyph.char and prev_glyph.font and next_glyph.font and ( prev_glyph.font == next_glyph.font ) then
+ make_kern ( head, prev_glyph.font, prev_glyph.char, next_glyph.char, n )
+ end
+end
+
+local function make_glues_and_kerns ( head )
+ for n in T_ID ( GLUE, head ) do
+ make_kerns ( head, n )
+ end
+ for n in T_GLYPH ( head ) do
+ if n.char and n.char == 59 and ( not find_glyph ( n, PREV ) or find_glyph ( n, PREV ).char ~= 59 ) then
+ if find_glyph ( n, NEXT ) then
+ local next_glyph = n
+ next_glyph = find_glyph ( n, NEXT )
+ if next_glyph.char and next_glyph.char == 59 then
+ REM ( head, next_glyph )
+ local SIZE = 0
+ if n.font then
+ local tfmdata = GET_FONT ( n.font )
+ if tfmdata.size then
+ SIZE = tfmdata.size
+ end
+ end
+ INS_B ( head, n, NEW ( GLUE ) )
+ local glue_node = PREV ( n )
+ glue_node.subtype = SPACESKIP
+ glue_node.width = round ( SIZE * .16667, 0 )
+ local has_next_glyph = false
+ if find_glyph ( n, NEXT ) then
+ next_glyph = find_glyph ( n, NEXT )
+ has_next_glyph = true
+ end
+ if has_next_glyph and next_glyph.char and next_glyph.char == 59 then
+ INS_B ( head, glue_node, NEW ( PENALTY ) )
+ PREV ( glue_node ).subtype = LBPENALTY
+ PREV ( glue_node ).penalty = 10000
+ REM ( head, next_glyph )
+ end
+ REM ( head, n )
+ make_kerns ( head, glue_node )
+ end
+ end
+ end
+ end
+end
+
+ATC ( "ligaturing", make_glues_and_kerns, "kern between words and against space", 1 ) \ No newline at end of file
diff --git a/macros/luatex/latex/spacekern/spacekern.pdf b/macros/luatex/latex/spacekern/spacekern.pdf
new file mode 100644
index 0000000000..1e2acf43e3
--- /dev/null
+++ b/macros/luatex/latex/spacekern/spacekern.pdf
Binary files differ
diff --git a/macros/luatex/latex/spacekern/spacekern.sty b/macros/luatex/latex/spacekern/spacekern.sty
new file mode 100644
index 0000000000..4b6e37db2d
--- /dev/null
+++ b/macros/luatex/latex/spacekern/spacekern.sty
@@ -0,0 +1,33 @@
+% Copyright (c) 2022 Thomas Kelkel kelkel@emaileon.de
+
+% This file 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 2009/09/24 or later.
+
+\ProvidesPackage{spacekern}[2022/05/01 v0.1 Preserve kerning against non-breakable space]
+\RequirePackage{ifluatex,luatexbase}
+
+\ifluatex
+ \directlua{require ( "spacekern.lua" )}
+
+ \def\redef{true}
+
+ \DeclareOption{noiwkern}{\directlua{spacekern_no_iw_kern()}}
+ \DeclareOption{noredef}{\def\redef{false}}
+ \ProcessOptions
+
+ \def\semicolon{\nobreak\hspace{0em};}
+ \def\tmp{true}
+ \ifx\tmp\redef
+ \def\,{;;;}
+ \fi
+\else
+ \errhelp{Compile with LuaLaTeX to be able to use the "spacekern" package.}
+ \errmessage{Package "spacekern" error: This package requires LuaLaTeX!}
+\fi \ No newline at end of file
diff --git a/macros/unicodetex/latex/njuthesis/njuthesis.dtx b/macros/unicodetex/latex/njuthesis/njuthesis.dtx
index 193ef959f8..5dacce5878 100644
--- a/macros/unicodetex/latex/njuthesis/njuthesis.dtx
+++ b/macros/unicodetex/latex/njuthesis/njuthesis.dtx
@@ -118,7 +118,7 @@ To produce the documentation run the original source files ending with
%<*!(driver|install)>
% ^^A 诚耀百廿,雄创一流
% ^^A 南京大学一百二十周年华诞邀您共襄盛举!
-%<+!driver>\GetIdInfo $Id: njuthesis.dtx 0.19.0 2022-05-23 11:33:00 +0800 NJU LUG <git+nju-lug-email-3104-issue-@yaoge123.cn>$
+%<+!driver>\GetIdInfo $Id: njuthesis.dtx 0.20.0 2022-06-10 14:42:00 +0800 NJU LUG <git+nju-lug-email-3104-issue-@yaoge123.cn>$
%<class> {Thesis template for Nanjing University}
%<class>\ProvidesExplClass{njuthesis}
%<definition-ug> {Undergraduate definition file for njuthesis}
@@ -210,7 +210,7 @@ To produce the documentation run the original source files ending with
% \thanks{E-mail: \href{mailto:git+nju-lug-email-3104-issue-@yaoge123.cn}
% {git+nju-lug-email-3104-issue-@yaoge123.cn}}}
%
-% \date{v0.19.0 \quad 2022-05-23}
+% \date{v0.20.0 \quad 2022-06-10}
%
% \changes{v0.1}{2021/09/04}{开始开发。}
% \changes{v0.2}{2021/09/07}{初步搭建了可用的模板。}
@@ -236,6 +236,7 @@ To produce the documentation run the original source files ending with
% \changes{v0.16}{2022/03/01}{分离本科生和研究生模板配置。}
% \changes{v0.19}{2022/05/23}{对研究生普通封面进行若干细节修改。}
% \changes{v0.19}{2022/05/23}{对国家图书馆封面进行若干细节修改。}
+% \changes{v0.20}{2022/06/08}{更正本科生模板部分字样。}
%
%
% \maketitle
@@ -821,8 +822,8 @@ To produce the documentation run the original source files ending with
% 通过此项,对于本科生模板可在封面后添加的诚信承诺书,
% 对于研究生模板可在封面后添加原创性声明,并且在最后一页添加学位论文出版授权书。
%
-% 对于需要手动插入承诺书扫描页的情况,可以在导言区载入 \pkg{pdfpages} 宏包,
-% 并在所需位置使用该宏包提供的 \cs{includepdf} 命令。
+% 对于需要手动插入承诺书扫描页的情况,可以在导言区载入 \pkg{pdfpages} 宏包
+% \cite{pdfpages},并在所需位置使用该宏包提供的 \cs{includepdf} 命令。
% 例如,可以用如下所示的命令插入扫描件的第一页,并插入紧随的一个空白页。
% \begin{latexexample}[moretexcs={\includepdf},emph={[2]pages}]
% \includepdf[pages={1,{}}]{scanned.pdf}
@@ -1107,7 +1108,9 @@ To produce the documentation run the original source files ending with
% \begin{syntax}
% submit-date = \Arg{yyyy-mm-dd}
% \end{syntax}
-% 提交日期。中英文日期现在可以由 ISO 日期格式\cite{gb-t-7408-2005}的字符串统一生成。如果留空,则自动使用编译当天日期。
+% 提交日期。中英文日期现在可以由 ISO 日期格式\cite{gb-t-7408-2005}
+% 的字符串统一生成。如果在等号后留空,则原本中文日期处使用空白的年月日字样;
+% 如果不添加此设置项,则自动使用编译当天日期。
% \end{function}
%
% \begin{function}[updated=2022-01-14]{info/defend-date}
@@ -1124,20 +1127,20 @@ To produce the documentation run the original source files ending with
% 学位授予日期,只用于国家图书馆封面,要求同提交日期。
% \end{function}
%
-% \begin{function}[updated=2021-05-23]{info/bottom-date}
+% \begin{function}[updated=2022-05-23]{info/bottom-date}
% \begin{syntax}
% bottom-date = \Arg{yyyy-mm-dd}
% \end{syntax}
% 底部日期,只用于国家图书馆封面,要求同提交日期。
% \end{function}
%
-% \begin{function}[updated=2021-10-01]{info/chairman,info/reviewer}
+% \begin{function}[updated=2022-05-27]{info/chairman,info/reviewer}
% \begin{syntax}
-% chairman = \Arg{答辩主席}
-% reviewer = \Arg{评委姓名职称}
+% chairman = \Arg{答辩主席姓名职称}
+% reviewer = \Arg{答辩评委姓名职称}
% \end{syntax}
-% 答辩委员会信息,分别为评审委员会主席及四位成员的姓名加职称,只对研究生有效。
-% 四位评审成员是以列表的形式存储的,填写方法同关键词。
+% 答辩委员会信息,分别为评审委员会主席及成员的姓名加职称,只对研究生有效。
+% 评审成员名单以逗号分隔的列表形式存储,填写方法同关键词。
% 如果是盲审,填入“盲审”二字即可。
% \end{function}
%
@@ -2307,13 +2310,21 @@ To produce the documentation run the original source files ending with
% \urlprefix\CTANurl[文档:]{macros/latex/contrib/listings/listings.pdf}
%
% \bibitem{njuvisual}
-% \textsc{Yu Xiong}.
+% \textsc{Xiong Y}.
% \newblock \textit{Display logos related to Nanjing University} [EB/OL].
% \newblock version 0.2.1,
% \newblock (2022-01-09)
% \urlprefix\url{https://ctan.org/pkg/njuvisual}
% \urlprefix\CTANurl[文档:]{macros/latex/contrib/njuvisual/njuvisual.pdf}
%
+% \bibitem{pdfpages}
+% \textsc{Matthias A}.
+% \newblock \textit{Include PDF documents in \hologo{LaTeX}} [EB/OL].
+% \newblock version 0.5v,
+% \newblock (2022-05-22)
+% \urlprefix\url{https://www.ctan.org/pkg/pdfpages}
+% \urlprefix\CTANurl[文档:]{macros/latex/contrib/pdfpages/pdfpages.pdf}
+%
% \bibitem{siunitx}
% \textsc{Wright J}.
% \newblock \textit{A comprehensive (SI) units package} [EB/OL].
@@ -2485,17 +2496,20 @@ To produce the documentation run the original source files ending with
%
% 在变量名称中,|l| 代表局部变量,|g| 代表全局变量,|c| 代表常量,最后一个下划线后的内容指示其类型。
%
-% \begin{variable}{\l_@@_tmp_box,\l_@@_tmp_clist,
-% \l_@@_tmpa_dim,\l_@@_tmpb_dim,\l_@@_tmp_int,
-% \l_@@_tmp_seq,\l_@@_tmpa_tl,\l_@@_tmpb_tl}
+% \begin{variable}{
+% \l_@@_tmp_box,
+% \l_@@_tmp_clist,
+% \l_@@_tmpa_dim,\l_@@_tmpb_dim,
+% \l_@@_tmpa_int,\l_@@_tmpb_int,
+% \l_@@_tmpa_tl,\l_@@_tmpb_tl}
% 临时变量。
% \begin{macrocode}
\box_new:N \l_@@_tmp_box
\clist_new:N \l_@@_tmp_clist
\dim_new:N \l_@@_tmpa_dim
\dim_new:N \l_@@_tmpb_dim
-\int_new:N \l_@@_tmp_int
-\seq_new:N \l_@@_tmp_seq
+\int_new:N \l_@@_tmpa_int
+\int_new:N \l_@@_tmpb_int
\tl_new:N \l_@@_tmpa_tl
\tl_new:N \l_@@_tmpb_tl
% \end{macrocode}
@@ -2740,16 +2754,11 @@ To produce the documentation run the original source files ending with
{
\dim_compare:nTF { \l_@@_tmpa_dim > #1 }
{
- \hfil
\scalebox
{ \dim_to_decimal_in_unit:nn { #1 } { \l_@@_tmpa_dim } }
[ 1.0 ] { #2 #3 }
- \hfil
- }
- {
- \hbox_to_wd:nn { #1 }
- { #2 \tl_map_inline:nn { #3 } { ##1 \hfil } \unskip }
}
+ { #2 \tl_map_inline:nn { #3 } { ##1 \hfil } \unskip }
}
}
\cs_generate_variant:Nn \@@_spread_box:nnn { nnV }
@@ -2757,22 +2766,26 @@ To produce the documentation run the original source files ending with
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\@@_multiline_box:NNnn}
+% \begin{macro}{\@@_multiline_box:NNNn}
% 多行固定长度的下划线内容,用于国家图书馆封面。
% \begin{arguments}
% \item 用于循环的 |int| 型变量
+% \item 用于存储条目数量的 |int| 型变量
% \item 内容,|clist| 型变量
-% \item 行数
% \item 宽度,|dim| 型变量
% \end{arguments}
+% 默认绘制 4 条下划线。在评阅者人数超过 4 人时添加额外的条目。
% \begin{macrocode}
-\cs_new_protected:Npn \@@_multiline_box:NNnn #1#2#3#4
+\cs_new_protected:Npn \@@_multiline_box:NNNn #1#2#3#4
{
\int_set:Nn #1 { 1 }
- \int_do_until:nn { #1 > #3 }
+ \int_set:Nn #2 { \clist_count:N #3 }
+ \int_compare:nF { #2 > 4 }
+ { \int_set:Nn #2 { 4 } }
+ \int_do_until:nn { #1 > #2 }
{
\@@_ulined_center_box:nn { #4 }
- { \clist_item:Nn #2 { #1 } } \\
+ { \clist_item:Nn #3 { #1 } } \\
\int_incr:N #1
}
}
@@ -2887,9 +2900,12 @@ To produce the documentation run the original source files ending with
% \item 月份
% \item 日期
% \end{arguments}
-% 中文日期表示通过封装 \pkg{zhnumber} 的内部函数实现;英文日期表示通过用于研究生英文封面。其中,变量类型 |w| 表明参数符合特定语法格式。
+% 中文日期字样通过封装 \pkg{zhnumber} 的内部函数实现,默认使用阿拉伯数字表示,
+% 可以通过该宏包提供的 |\zhnumsetup{time=Chinese}| 来使用中文数字;
+% 英文日期字样用于研究生英文封面,格式为 \meta{月份缩写}~\meta{日},~\meta{年}。
+% 其中,变量类型 |w| 表明参数符合特定语法格式,其参数必须经过完全展开。
% \begin{macrocode}
-\cs_new:Npn \@@_date:www #1-#2-#3 \q_stop
+\cs_new:Npn \@@_date:www #1-#2-#3 \q_stop
{ \__zhnum_date_aux:nnn { #1 } { #2 } { #3 } }
\cs_new:Npn \@@_date_en:www #1-#2-#3 \q_stop
{ \clist_item:Nn \c_@@_month_en_clist { #2 } ~#3 , ~#1 }
@@ -2897,24 +2913,30 @@ To produce the documentation run the original source files ending with
% \end{macro}
%
% \begin{macro}{\@@_date:n,\@@_date_en:n}
-% 封装 ISO 日期格式字符串的转化命令,该字符串需要进行展开。
+% 从 ISO 格式的日期字符串生成中英文日期文本。
% \begin{macrocode}
-\cs_new_protected:Npn \@@_date:n #1
- {
- \tl_new:c { g_@@_info_ #1 date_tl }
- \tl_set:cn { g_@@_info_ #1 date_tl }
- {
- \exp_last_unbraced:Nv
- \@@_date:www { g_@@_info_ #1 date_raw_tl } \q_stop
- }
- }
-\cs_new_protected:Npn \@@_date_en:n #1
+\cs_new_protected:Npn \@@_date:n #1 { \@@_date:nn { #1 } { } }
+\cs_new_protected:Npn \@@_date_en:n #1 { \@@_date:nn { #1 } { _en } }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\exp_last_unbraced:cV,\@@_date:nn}
+% \changes{v0.20}{2022/05/24}{可在日期项留空以使用空白的年月日字样。}
+% 用于日期格式转化的辅助命令。在传入的字符串为空时生成空白字样。
+% \begin{macrocode}
+\cs_generate_variant:Nn \exp_last_unbraced:NV { cV }
+\cs_new_protected:Npn \@@_date:nn #1#2
{
- \tl_new:c { g_@@_info_ #1 date_en_tl }
- \tl_set:cn { g_@@_info_ #1 date_en_tl }
+ \tl_set:Nv \l_@@_tmpa_tl { g_@@_info_ #1 date_raw_tl }
+ \tl_new:c { g_@@_info_ #1 date #2 _tl }
+ \tl_set:cx { g_@@_info_ #1 date #2 _tl }
{
- \exp_last_unbraced:Nv
- \@@_date:www { g_@@_info_ #1 date_raw_tl } \q_stop
+ \tl_if_empty:NTF \l_@@_tmpa_tl
+ { \@@_name:n { blankdate #2 } }
+% \end{macrocode}
+% |w| 后的参数需要使用非括号包裹的形式完全展开。
+% \begin{macrocode}
+ { \exp_last_unbraced:cV { @@_date #2 :www } \l_@@_tmpa_tl \q_stop }
}
}
% \end{macrocode}
@@ -3054,9 +3076,9 @@ To produce the documentation run the original source files ending with
% 此时 \cs{njuemblem}、\cs{njuname} 和相关长度都是没有定义的。
% \begin{macrocode}
\cs_new_protected:Npn \@@_emblem:N #1
- { \njuemblem [ black ] { #1 } { ! } }
+ { \njuemblem [ \c_@@_fmt_emblemcolor_tl ] { #1 } { ! } }
\cs_new_protected:Npn \@@_name:N #1
- { \njuname [ black ] { #1 } { ! } }
+ { \njuname [ \c_@@_fmt_namecolor_tl ] { #1 } { ! } }
% \end{macrocode}
% \end{macro}
%
@@ -3133,12 +3155,12 @@ To produce the documentation run the original source files ending with
\setbox0 = \vbox{\hangindent=\wd\l_@@_tmp_box \hangafter=-1
\leftskip=#3 \rightskip=\leftskip \parindent=\z@ #2\par
\global\setbox2=\hbox{}
- \int_gzero:N \l_@@_tmp_int
+ \int_gzero:N \l_@@_tmpa_int
\loop
\setbox1=\lastbox \unskip\unpenalty
\unless\ifvoid1
\global\setbox2=\hbox{\@@_uline_box:\penalty0\unhbox2}
- \int_gincr:N \l_@@_tmp_int
+ \int_gincr:N \l_@@_tmpa_int
\repeat
}
{
@@ -3151,7 +3173,7 @@ To produce the documentation run the original source files ending with
% \begin{macrocode}
\bool_if:NT \g_@@_strict_abs_title_bool
{
- \int_case:nnF { \l_@@_tmp_int }
+ \int_case:nnF { \l_@@_tmpa_int }
{
{ 0 } { \msg_error:nn { njuthesis } { missing-title } }
{ 1 } { \@@_uline:n { \textwidth } }
@@ -3444,7 +3466,10 @@ To produce the documentation run the original source files ending with
%
% \begin{macro}{\njusetformat}
% \changes{v0.17}{2022/04/09}{提供修改默认样式的接口。}
-% 定义修改固定文本的接口。
+% \changes{v0.19}{2022/05/11}{提供默认页面样式的修改方式。}
+% \changes{v0.20}{2022/05/25}{提供页眉页脚样式的修改方式。}
+% \changes{v0.20}{2022/05/25}{提供内置校名校徽颜色的修改方式。}
+% 定义修改默认样式的接口。
% \begin{macrocode}
\NewDocumentCommand \njusetformat { m m }
{ \tl_gset:cn { c_@@_fmt_ #1 _tl } { #2 } }
@@ -3453,6 +3478,7 @@ To produce the documentation run the original source files ending with
%
% \begin{macro}{\njusetlength,\njusetlength*}
% \changes{v0.17}{2022/04/09}{提供修改长度值的接口。}
+% \changes{v0.18}{2022/04/20}{统一管理校名校徽尺寸。}
% 定义修改长度值的接口。可选星号表示修改弹性长度。
% \begin{macrocode}
\NewDocumentCommand \njusetlength { s m m }
@@ -3873,34 +3899,6 @@ To produce the documentation run the original source files ending with
{ \tl_set:Nn \g_@@_info_diploma_tl { g } }
% \end{macrocode}
%
-% 设置类型信息。
-% \begin{macrocode}
-\tl_set:Nx \g_@@_info_type_tl
- { \clist_item:Nn \c_@@_name_type_clist { \g_@@_info_type_int } }
-\tl_set:Nx \g_@@_info_type_en_tl
- { \clist_item:Nn \c_@@_name_type_en_clist { \g_@@_info_type_int } }
-\tl_put_left:Nx \g_@@_info_type_tl
- { \tl_use:c { c_@@_name_ \g_@@_info_diploma_tl _tl } }
-% \end{macrocode}
-%
-% 盲审模式下抹去个人信息和学校名称。
-% \begin{macrocode}
-\bool_if:NT \g_@@_blind_bool
- {
- \ctex_at_end_preamble:n
- {
- \clist_map_inline:Nn \c_@@_blind_info_clist
- { \tl_gclear:c { g_@@_info_ #1 _tl } }
- \clist_map_inline:Nn \c_@@_blind_info_en_clist
- { \tl_gclear:c { g_@@_info_ #1 _en_tl } }
- \clist_map_inline:Nn \c_@@_blind_infolist_clist
- { \clist_gclear:c { g_@@_info_ #1 _clist } }
- \tl_gclear:N \c_@@_name_nju_tl
- \tl_gclear:N \c_@@_name_nju_en_tl
- }
- }
-% \end{macrocode}
-%
% \changes{v0.15}{2022/01/22}{正确处理双导师信息。}
% 在导言区录入用户信息后进行变量设置。此处使用到了 \pkg{ctex} 提供的命令,
% 应当位于载入文档类之后。
@@ -3908,6 +3906,15 @@ To produce the documentation run the original source files ending with
\ctex_at_end_preamble:n
{
% \end{macrocode}
+% 设置类型信息。
+% \begin{macrocode}
+ \tl_set:Nx \g_@@_info_type_tl
+ { \clist_item:Nn \c_@@_name_type_clist { \g_@@_info_type_int } }
+ \tl_set:Nx \g_@@_info_type_en_tl
+ { \clist_item:Nn \c_@@_name_type_en_clist { \g_@@_info_type_int } }
+ \tl_put_left:Nx \g_@@_info_type_tl
+ { \tl_use:c { c_@@_name_ \g_@@_info_diploma_tl _tl } }
+% \end{macrocode}
% 拼合双导师的姓名和职称。
% \begin{macrocode}
\bool_set:Nn \l_@@_second_supv_bool
@@ -3965,6 +3972,24 @@ To produce the documentation run the original source files ending with
% \end{macrocode}
% \end{variable}
%
+% 盲审模式下抹去个人信息和学校名称。
+% \begin{macrocode}
+\bool_if:NT \g_@@_blind_bool
+ {
+ \ctex_at_end_preamble:n
+ {
+ \clist_map_inline:Nn \c_@@_blind_info_clist
+ { \tl_gclear:c { g_@@_info_ #1 _tl } }
+ \clist_map_inline:Nn \c_@@_blind_info_en_clist
+ { \tl_gclear:c { g_@@_info_ #1 _en_tl } }
+ \clist_map_inline:Nn \c_@@_blind_infolist_clist
+ { \clist_gclear:c { g_@@_info_ #1 _clist } }
+ \tl_gclear:N \c_@@_name_nju_tl
+ \tl_gclear:N \c_@@_name_nju_en_tl
+ }
+ }
+% \end{macrocode}
+%
%
% \subsection{字体设置}
%
@@ -4331,7 +4356,7 @@ To produce the documentation run the original source files ending with
%
%
% \subsubsection{页眉页脚}
-% ^^A TODO: 将页眉页脚样式改为使用 \njusetformat 修改
+% ^^A TODO: 删除 header/format 和 footer/format
% 提供设置页眉页脚的用户接口。在 \cs{fancyhead} 的可选参数中,
% \opt{E} 和 \opt{O} 分别表示在偶数页(even)和奇数页(odd),
% 而 \opt{L}、\opt{R} 和 \opt{C} 则分别表示左(left)、右
@@ -4345,8 +4370,7 @@ To produce the documentation run the original source files ending with
% \changes{v0.16}{2022/03/18}{可手动指定页眉样式。}
% 页眉格式。
% \begin{macrocode}
- header/format .tl_gset:N = \g_@@_header_format_tl,
- header/format .initial:n = \small \kaishu,
+ header/format .tl_gset:N = \c_@@_fmt_header_tl,
% \end{macrocode}
% \end{macro}
%
@@ -4372,8 +4396,7 @@ To produce the documentation run the original source files ending with
% \changes{v0.16}{2022/03/19}{可手动指定页脚样式。}
% 页脚格式。
% \begin{macrocode}
- footer/format .tl_gset:N = \g_@@_footer_format_tl,
- footer/format .initial:n = \small \rmfamily,
+ footer/format .tl_gset:N = \c_@@_fmt_footer_tl,
% \end{macrocode}
% \end{macro}
%
@@ -4418,9 +4441,9 @@ To produce the documentation run the original source files ending with
% 对 \pkg{fancyhdr} 的命令进行包装,便于设置页眉页脚。
% \begin{macrocode}
\cs_new_protected:Npn \@@_header:nn #1#2
- { \fancyhead [#1] { \g_@@_header_format_tl \nouppercase {#2} } }
+ { \fancyhead [#1] { \c_@@_fmt_header_tl \nouppercase {#2} } }
\cs_new_protected:Npn \@@_footer:nn #1#2
- { \fancyfoot [#1] { \g_@@_footer_format_tl \nouppercase {#2} } }
+ { \fancyfoot [#1] { \c_@@_fmt_footer_tl \nouppercase {#2} } }
% \end{macrocode}
% \end{macro}
%
@@ -5382,7 +5405,7 @@ To produce the documentation run the original source files ending with
% \begin{macrocode}
\@@_declare_element:nn { cover / nl / bottom }
{
- content = \@@_cover_bottom_nl:n { 4 },
+ content = \@@_cover_bottom_nl:,
bottom-skip = 1 cm,
align = r
}
@@ -5454,17 +5477,18 @@ To produce the documentation run the original source files ending with
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\@@_cover_bottom_nl:n}
+% \begin{macro}{\@@_cover_bottom_nl:}
% \changes{v0.19}{2022/05/20}{将国家图书馆封面的评审委员会人数分离为单独参数。}
+% \changes{v0.20}{2022/05/27}{自动识别评审委员会人数。}
% 国家图书馆封面底部信息。
% \begin{macrocode}
-\cs_new_protected:Npn \@@_cover_bottom_nl:n #1
+\cs_new_protected:Npn \@@_cover_bottom_nl:
{
\c_@@_name_chairman_tl \@@_hskip:
\@@_ulined_center_box:nn { 9 em } { \g_@@_info_chairman_tl } \\
\c_@@_name_reviewer_tl \@@_hskip:
- \@@_multiline_box:NNnn \l_@@_tmp_int
- \g_@@_info_reviewer_clist { #1 } { 9 em }
+ \@@_multiline_box:NNNn \l_@@_tmpa_int \l_@@_tmpb_int
+ \g_@@_info_reviewer_clist { 9 em }
}
% \end{macrocode}
% \end{macro}
@@ -5590,7 +5614,7 @@ To produce the documentation run the original source files ending with
\cs_new_protected:Npn \@@_authdecl_sign_g:
{
\c_@@_name_authsign_tl \par
- \c_@@_name_blankdate_tl
+ \c_@@_name_blankdate_a_tl
}
% \end{macrocode}
% \end{macro}
@@ -5720,6 +5744,7 @@ To produce the documentation run the original source files ending with
% \begin{macro}{\@@_make_origdecl: }
% \changes{v0.13}{2021/12/15}{加入本科生的诚信承诺书。}
% \changes{v0.19}{2022/05/22}{跟进新版本科生诚信承诺书样式。}
+% ^^A TODO: 使用 xtemplate 重构
% 生成本科生的诚信承诺书或研究生的学位论文原创性声明。
% \begin{macrocode}
\cs_new_protected:Npn \@@_make_origdecl:
@@ -5743,6 +5768,7 @@ To produce the documentation run the original source files ending with
{ \@@_vskip: \@@_name:n { ##1 } : \@@_uline:n { 7 em } }
\end{flushright}
\vfil
+%<definition-ug> \normalfont \normalsize
}
% \end{macrocode}
% \end{macro}
@@ -6081,6 +6107,7 @@ To produce the documentation run the original source files ending with
%
% \begin{macro}{\@@_print_keywords:nn}
% \changes{v0.15}{2022/01/26}{为关键词列表添加悬挂缩进。}
+% \changes{v0.20}{2022/05/26}{修复英文关键词列表不整齐的缩进间距。}
% 生成中英文关键词列表。
% \begin{arguments}
% \item 语言,空置为中文,|_en| 为英文
@@ -6092,6 +6119,8 @@ To produce the documentation run the original source files ending with
{
\tl_set:Nv \l_@@_tmpa_tl { c_@@_name_keywords #1 _tl }
\@@_get_text_width:NV \l_@@_tmpa_dim \l_@@_tmpa_tl
+ \dim_add:Nn \l_@@_tmpa_dim { 1 em }
+ \exp_args:NNv \tl_put_right:Nn \l_@@_tmpa_tl { c_@@_name_comma #1 _tl }
% \end{macrocode}
% 关键词列表的悬挂缩进样式由 \tn{list} 环境产生。
% \begin{macrocode}
@@ -6263,7 +6292,7 @@ To produce the documentation run the original source files ending with
\RenewDocumentCommand \mkbibdateshort { m m m }
{ \textbf { \thefield { ##1 } } }
% \end{macrocode}
-% 在使用章末参考文献表时,\env{refsection} 的单独一章范围内生效,
+% 在使用章末参考文献表时,\env{refsection} 在单独一章范围内生效,
% 无需额外添加环境。 ^^A TODO: 待修改为更简洁的形式
% \begin{macrocode}
\tl_if_eq:NnTF \blx@refsecreset@level { 2 }
@@ -6364,6 +6393,8 @@ To produce the documentation run the original source files ending with
%
% \subsubsection{名称}
% \label{subsubsec:constant-name}
+% ^^A TODO: 将所有名称合并后使用 guard 进行本科生/研究生的区分
+% ^^A TODO: supv -> supvi, supv_ii -> supvii
%
% 由于同一名称在不同位置具有不同变体,本模板使用字母后缀名进行了区分,
% 并在易混淆处添加了注释。
@@ -6399,9 +6430,13 @@ To produce the documentation run the original source files ending with
% 用于小标题的摘要名称字样
{ abstract_b } { 摘\qquad{}要 } { ABSTRACT },
{ appendix } { 附录 } { appendix },
+ { blankdate } { \qquad{}年 \quad{}月 \quad{}日 } { },
+ { blankdate_a } { \njuline{\qquad\qquad} 年
+ \njuline{\qquad} 月 \njuline{\qquad} 日 } { },
+ { comma } { : } { :~ },
{ dept } { 院系 } { DEPARTMENT },
{ figure } { 图 } { figure },
- { keywords } { 关键词: } { Keywords:~ },
+ { keywords } { 关键词 } { Keywords },
{ lang } { 中文 } { 英文 },
{ nju } { 南京大学 } { Nanjing~ University },
{ table } { 表 } { table }
@@ -6421,10 +6456,10 @@ To produce the documentation run the original source files ending with
本科毕业论文(设计) \\ 诚信承诺书 },
{ origsign } { 作者签名 },
{ submitdate } { 提交日期 },
- { supv } { 导师 },
+ { supv } { 指导教师 },
{ title } { 题目 },
{ type } { 本科生毕业论文(设计、作品) },
- { ug } { 本科生 }
+ { ug } { 本科 }
}
{ \@@_define_name:nn #1 }
\clist_map_inline:nn
@@ -6458,8 +6493,6 @@ To produce the documentation run the original source files ending with
{ author_a }
{ \tl_item:Nn \g_@@_info_degree_tl { 1 } 士生姓名 },
{ authsign } { 作者签名:\njuline{\hspace{6em}} },
- { blankdate } { \njuline{\qquad\qquad} 年
- \njuline{\qquad} 月 \njuline{\qquad} 日 },
% 用于摘要的作者名称字样
{ chairman } { 答辩委员会主席: },
{ clc } { 分类号 },
@@ -6488,8 +6521,8 @@ To produce the documentation run the original source files ending with
{ secretstatus } { 论文涉密情况: },
{ secretfree } { 不保密 },
{ secretdate }
- { 保密,保密期( \c_@@_name_blankdate_tl 至
- \c_@@_name_blankdate_tl ) },
+ { 保密,保密期( \c_@@_name_blankdate_a_tl 至
+ \c_@@_name_blankdate_a_tl ) },
{ sign } { (签字) },
{ submitdate } { 论文提交日期 },
{ subtitle } { (题名和副题名) },
@@ -6609,7 +6642,6 @@ To produce the documentation run the original source files ending with
% \label{subsubsec:constant-length}
%
% \changes{v0.17}{2022/04/09}{将长度值分离到 \file{.def} 文件。}
-% \changes{v0.18}{2022/04/20}{统一管理校名校徽尺寸。}
% 默认长度值。
% \begin{macrocode}
\clist_map_inline:nn
@@ -6633,21 +6665,25 @@ To produce the documentation run the original source files ending with
% \label{subsubsec:constant-format}
%
% \changes{v0.17}{2022/04/09}{将样式定义分离到 \file{.def} 文件。}
-% \changes{v0.19}{2022/05/11}{简化默认页面样式的修改方式。}
+% \changes{v0.20}{2022/05/28}{修复前一版本中错误的目录条目样式。}
% 默认样式。
% \begin{macrocode}
\clist_map_inline:nn
{
%<definition-ug> { pagestyle } { plain },
%<definition-g> { pagestyle } { headings },
- { section } { \large \sffamily },
+ { emblemcolor } { black },
+ { namecolor } { black },
+ { section } { \large \normalfont \sffamily },
{ chapter } { \c_@@_fmt_section_tl \centering },
{ chapterintoc } { \c_@@_fmt_section_tl },
{ subsection } { \c_@@_fmt_section_tl },
{ subsubsection } { \c_@@_fmt_section_tl },
{ paragraph } { \c_@@_fmt_section_tl },
{ subparagraph } { \c_@@_fmt_section_tl },
- { toctitle } { \centering \zihao { 3 } \bfseries }
+ { toctitle } { \centering \zihao { 3 } \bfseries },
+ { header } { \small \kaishu },
+ { footer } { \small \rmfamily }
}
{ \@@_define_fmt:nn #1 }
%</(definition-ug|definition-g)>
diff --git a/macros/unicodetex/latex/njuthesis/njuthesis.pdf b/macros/unicodetex/latex/njuthesis/njuthesis.pdf
index 3ed1bf2a66..82244fc5b4 100644
--- a/macros/unicodetex/latex/njuthesis/njuthesis.pdf
+++ b/macros/unicodetex/latex/njuthesis/njuthesis.pdf
Binary files differ
diff --git a/macros/xetex/latex/bidi/README b/macros/xetex/latex/bidi/README
index f6a8c6a282..d8bf7b1dc3 100644
--- a/macros/xetex/latex/bidi/README
+++ b/macros/xetex/latex/bidi/README
@@ -1,6 +1,6 @@
___________________
The bidi package
-v37.7
+v37.9
This package provides a convenient interface for typesetting
bidirectional texts in Plain TeX and LaTeX, using XeTeX engine.
@@ -25,7 +25,7 @@ The announcements for the new releases of the package will
also appear in the Discussions space under the Announcements
category.
-Current version release date: 2022/06/09
+Current version release date: 2022/06/10
___________________________________________
Vafa Khalighi
diff --git a/macros/xetex/latex/bidi/bidi-doc-intro.ltx b/macros/xetex/latex/bidi/bidi-doc-intro.ltx
index 5af68bc4ae..48477907a4 100644
--- a/macros/xetex/latex/bidi/bidi-doc-intro.ltx
+++ b/macros/xetex/latex/bidi/bidi-doc-intro.ltx
@@ -20,7 +20,7 @@ If you use \textsf{bidi} package to write any input \TeX\ document, and then run
* Copyright (c) 2007--2022 Vafa Khalighi
* Copyright (c) 2018--2020 bidi-tex GitHub Organization
*
-* v37.7, 2022/06/09
+* v37.9, 2022/06/10
*
* License: LaTeX Project Public License, version
* 1.3c or higher (your choice)
diff --git a/macros/xetex/latex/bidi/bidi-doc-title.ltx b/macros/xetex/latex/bidi/bidi-doc-title.ltx
index 9e14c7eacf..ea0e0b4ac2 100644
--- a/macros/xetex/latex/bidi/bidi-doc-title.ltx
+++ b/macros/xetex/latex/bidi/bidi-doc-title.ltx
@@ -3,7 +3,7 @@
\begin{document}
\title{\textcolor{blue!65!black}{\Huge The \textsf{bidi} \textit{Package}}\\
\LARGE Bidirectional typesetting in plain \TeX{} and \LaTeX, using \XeTeX{} engine\\[5pt]
-\large User documentation for \textcolor{blue!65!black}{version 37.7}}
+\large User documentation for \textcolor{blue!65!black}{version 37.9}}
\author{Vafa Khalighi\thanks{Thanks to the bidi-tex GitHub organization consisted of David Carlisle and other members of the {\LaTeX} team to maintain the package in the period 2018--2020.}}
\setcounter{page}{0}
\thispagestyle{empty}
@@ -13,7 +13,7 @@
\textcolor{blue!65!black}{\Huge The \textsf{bidi} \textit{Package}}
\Large
-User documentation for \textcolor{blue!65!black}{version 37.7}}
+User documentation for \textcolor{blue!65!black}{version 37.9}}
\vskip 0pt plus 3fill
\textit{\large to my Master, \textbf{Ferdowsi The Great}}
diff --git a/macros/xetex/latex/bidi/bidi-doc.ltx b/macros/xetex/latex/bidi/bidi-doc.ltx
index aab456d7e9..f347c9b884 100644
--- a/macros/xetex/latex/bidi/bidi-doc.ltx
+++ b/macros/xetex/latex/bidi/bidi-doc.ltx
@@ -1,7 +1,7 @@
\documentclass{ltxdoc}
\input{bidi-doc-preamble.ltx}
\hypersetup{%
- pdftitle={User documentation for version 37.7 of the bidi
+ pdftitle={User documentation for version 37.9 of the bidi
package}%
}
\begin{document}
diff --git a/macros/xetex/latex/bidi/bidi-doc.pdf b/macros/xetex/latex/bidi/bidi-doc.pdf
index 50dc24496b..3303ac2414 100644
--- a/macros/xetex/latex/bidi/bidi-doc.pdf
+++ b/macros/xetex/latex/bidi/bidi-doc.pdf
Binary files differ
diff --git a/macros/xetex/latex/bidi/bidi.dtx b/macros/xetex/latex/bidi/bidi.dtx
index c4ea141163..e422d53e7f 100644
--- a/macros/xetex/latex/bidi/bidi.dtx
+++ b/macros/xetex/latex/bidi/bidi.dtx
@@ -5,7 +5,7 @@
%<*readme>
___________________
The bidi package
-v37.7
+v37.9
This package provides a convenient interface for typesetting
bidirectional texts in Plain TeX and LaTeX, using XeTeX engine.
@@ -30,7 +30,7 @@ The announcements for the new releases of the package will
also appear in the Discussions space under the Announcements
category.
-Current version release date: 2022/06/09
+Current version release date: 2022/06/10
___________________________________________
Vafa Khalighi
@@ -90,6 +90,7 @@ by Vafa Khalighi.
\generate{\file{beamerbaseframecomponents-xetex-bidi.def}{\from{\jobname.dtx}{table,beamerbaseframecomponents-xetex-bidi.def}}}
\generate{\file{beamerbaselocalstructure-xetex-bidi.def}{\from{\jobname.dtx}{table,beamerbaselocalstructure-xetex-bidi.def}}}
\generate{\file{beamerbasenavigation-xetex-bidi.def}{\from{\jobname.dtx}{table,beamerbasenavigation-xetex-bidi.def}}}
+\generate{\file{beamerbaseoverlay-xetex-bidi.def}{\from{\jobname.dtx}{table,beamerbaseoverlay-xetex-bidi.def}}}
\generate{\file{beamerinnerthemedefault-xetex-bidi.def}{\from{\jobname.dtx}{table,beamerinnerthemedefault-xetex-bidi.def}}}
\generate{\file{beamerinnerthemecircles-xetex-bidi.def}{\from{\jobname.dtx}{table,beamerinnerthemecircles-xetex-bidi.def}}}
\generate{\file{beamerinnerthemeinmargin-xetex-bidi.def}{\from{\jobname.dtx}{table,beamerinnerthemeinmargin-xetex-bidi.def}}}
@@ -258,7 +259,7 @@ by Vafa Khalighi.
\documentclass{ltxdoc}
\input{bidi-doc-preamble.ltx}
\hypersetup{%
- pdftitle={Source documentation for version 37.7 of the bidi
+ pdftitle={Source documentation for version 37.9 of the bidi
package}%
}
\EnableCrossrefs
@@ -277,7 +278,7 @@ by Vafa Khalighi.
% \GetFileInfo{\jobname.dtx}
% \title{\textcolor{blue!65!black}{\Huge The \textsf{bidi} \textit{Package}}\\
%\LARGE Bidirectional typesetting in plain \TeX{} and \LaTeX, using \XeTeX{} engine\\[5pt]
-%\large Source documentation for \textcolor{blue!65!black}{version 37.7}}
+%\large Source documentation for \textcolor{blue!65!black}{version 37.9}}
% \author{Vafa Khalighi\thanks{Thanks to the bidi-tex GitHub organization consisted of David Carlisle and other members of the {\LaTeX} team to maintain the package in the period 2018--2020.}}
%\setcounter{page}{0}
%\thispagestyle{empty}
@@ -287,7 +288,7 @@ by Vafa Khalighi.
%\textcolor{blue!65!black}{\Huge The \textsf{bidi} \textit{Package}}
%
%\Large
-%Source documentation for \textcolor{blue!65!black}{version 37.7}}
+%Source documentation for \textcolor{blue!65!black}{version 37.9}}
%
%\vskip 0pt plus 3fill
%\textit{\large to my Master, \textbf{Ferdowsi The Great}}
@@ -336,7 +337,7 @@ by Vafa Khalighi.
%\iffalse
%<*table>
%\fi
-%% \CheckSum{53787}
+%% \CheckSum{53802}
%% \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
@@ -2943,11 +2944,22 @@ by Vafa Khalighi.
% \end{macrocode}
% \iffalse
%</beamerbasenavigation-xetex-bidi.def>
+%<*beamerbaseoverlay-xetex-bidi.def>
+%\fi
+% \section{File \texttt{beamerbaseoverlay-xetex-bidi.def}}
+% \begin{macrocode}
+\ProvidesFile{beamerbaseoverlay-xetex-bidi.def}[2022/06/10 v0.1 bidi adaptations for beamerbaseoverlay package for XeTeX engine]
+\renewcommand<>{\color}{\alt#1{\beameroriginal{\color}}{\beamer@gobbleoptionalinsp}}
+
+
+% \end{macrocode}
+% \iffalse
+%</beamerbaseoverlay-xetex-bidi.def>
%<*beamerinnerthemedefault-xetex-bidi.def>
%\fi
% \section{File \texttt{beamerinnerthemedefault-xetex-bidi.def}}
% \begin{macrocode}
-\ProvidesFile{beamerinnerthemedefault-xetex-bidi.def}[2022/06/07 v0.4 bidi adaptations for beamerinnerthemedefault package for XeTeX engine]
+\ProvidesFile{beamerinnerthemedefault-xetex-bidi.def}[2022/06/10 v0.5 bidi adaptations for beamerinnerthemedefault package for XeTeX engine]
\newcommand*{\bidi@beamer@leftskip}{%
\if@RTL
\rightskip
@@ -3082,6 +3094,10 @@ by Vafa Khalighi.
\ifbeamercolorempty[bg]{block body example}{\vskip-.25ex}{\leavevmode\vskip-\dimexpr.75ex+\baselineskip\relax}\vbox{}%
}
+\bidi@csundef{beamer@@tmpop@abstract begin@default}
+
+\defbeamertemplate*{abstract begin}{default}
+{\beamercolorbox[vmode]{abstract}\bidi@beamer@leftskip2em\bidi@beamer@rightskip2em plus 1fill\usebeamerfont*{abstract}}
% \end{macrocode}
% \iffalse
@@ -3856,8 +3872,8 @@ by Vafa Khalighi.
% \section{File \texttt{bidi.sty}}
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\def\bididate{2022/06/09}
-\def\bidi@version{37.7}
+\def\bididate{2022/06/10}
+\def\bidi@version{37.9}
\ProvidesPackage{bidi}[\bididate\space v\bidi@version\space
Bidirectional typesetting in plain TeX and LaTeX]
\edef\@bidi@info{****************************************************^^J%
@@ -3945,7 +3961,7 @@ Bidirectional typesetting in plain TeX and LaTeX]
}
\newcommand*{\@bidi@pdfcustomproperties}{%
This is the bidi package, Version \bidi@version,
- Released June 9, 2022.
+ Released June 10, 2022.
}
\newcommand*{\bidi@beamer@ragged}{}
\@RTLmainfalse
@@ -4189,9 +4205,9 @@ Bidirectional typesetting in plain TeX and LaTeX]
%\fi
% \section{File \texttt{bidi.tex}}
% \begin{macrocode}
-\def\bididate{2022/06/09}
+\def\bididate{2022/06/10}
\catcode`@=11
-\def\bidi@version{37.7}
+\def\bidi@version{37.9}
\let \protect \relax
\newlinechar`\^^J
\edef\@bidi@info{****************************************************^^J%
@@ -4293,7 +4309,7 @@ Bidirectional typesetting in plain TeX and LaTeX]
}
\def\@bidi@pdfcustomproperties{%
This is the bidi package, Version \bidi@version,
- Released June 9, 2022.
+ Released June 10, 2022.
}
\def\bidi@pdfm@mark{%
\special{pdf:%
@@ -24724,7 +24740,7 @@ to\rtside{\box\bslice\hfil}}
%\fi
% \section{File \texttt{latex-xetex-bidi.def}}
% \begin{macrocode}
-\ProvidesFile{latex-xetex-bidi.def}[2022/06/09 v1.4.5 bidi adaptations for `latex.ltx' for XeTeX engine]
+\ProvidesFile{latex-xetex-bidi.def}[2022/06/10 v1.4.6 bidi adaptations for `latex.ltx' for XeTeX engine]
\newcommand{\TeXXeTOn}{\TeXXeTstate\@ne}
\newcommand{\TeXXeTOff}{\TeXXeTstate\z@}
\TeXXeTOn
@@ -25683,6 +25699,7 @@ $\@@underline{\hbox{#1}}\m@th$\relax\fi\fi}
\@ifpackageloaded{beamerbaseframecomponents}{\input{beamerbaseframecomponents-xetex-bidi.def}}{}
\@ifpackageloaded{beamerbaselocalstructure}{\input{beamerbaselocalstructure-xetex-bidi.def}}{}
\@ifpackageloaded{beamerbasenavigation}{\input{beamerbasenavigation-xetex-bidi.def}}{}
+\@ifpackageloaded{beamerbaseoverlay}{\input{beamerbaseoverlay-xetex-bidi.def}}{}
\@ifpackageloaded{beamerinnerthemedefault}{\input{beamerinnerthemedefault-xetex-bidi.def}}{}
\@ifpackageloaded{beamerinnerthemecircles}{\input{beamerinnerthemecircles-xetex-bidi.def}}{}
\@ifpackageloaded{beamerinnerthemeinmargin}{\input{beamerinnerthemeinmargin-xetex-bidi.def}}{}
diff --git a/macros/xetex/latex/bidi/bidi.pdf b/macros/xetex/latex/bidi/bidi.pdf
index 27dd542f58..adc7267e29 100644
--- a/macros/xetex/latex/bidi/bidi.pdf
+++ b/macros/xetex/latex/bidi/bidi.pdf
Binary files differ
diff --git a/macros/xetex/latex/xepersian/README b/macros/xetex/latex/xepersian/README
index c0b4f52b1f..5dd73bb034 100644
--- a/macros/xetex/latex/xepersian/README
+++ b/macros/xetex/latex/xepersian/README
@@ -1,6 +1,6 @@
____________________
The XePersian package
-v24.4
+v24.5
The xepersian package provides a convenient interface for
typesetting Persian and English texts in LaTeX, using XeTeX
@@ -25,7 +25,7 @@ The announcements for the new releases of the package will
also appear in the Discussions space under the Announcements
category.
-Current version release date: 2022/06/09
+Current version release date: 2022/06/10
___________________________________________
Vafa Khalighi
diff --git a/macros/xetex/latex/xepersian/xepersian-doc-intro.ltx b/macros/xetex/latex/xepersian/xepersian-doc-intro.ltx
index cb79496e0e..20952dce6c 100644
--- a/macros/xetex/latex/xepersian/xepersian-doc-intro.ltx
+++ b/macros/xetex/latex/xepersian/xepersian-doc-intro.ltx
@@ -25,7 +25,7 @@ If you use \textsf{\XePersian} package to write any input \TeX\ document, and th
* Copyright (c) 2008--2022 Vafa Khalighi
* Copyright (c) 2018--2020 bidi-tex GitHub Organization
*
-* v24.4, 2022/06/09
+* v24.5, 2022/06/10
*
* License: LaTeX Project Public License, version
* 1.3c or higher (your choice)
diff --git a/macros/xetex/latex/xepersian/xepersian-doc-title.ltx b/macros/xetex/latex/xepersian/xepersian-doc-title.ltx
index b6cb704736..27590643b5 100644
--- a/macros/xetex/latex/xepersian/xepersian-doc-title.ltx
+++ b/macros/xetex/latex/xepersian/xepersian-doc-title.ltx
@@ -3,7 +3,7 @@
\begin{document}
\title{\textcolor{blue!65!black}{\Huge The \textsf{\XePersian} \textit{Package}}\\
\LARGE Persian for \LaTeXe, using {\XeTeX} engine\\[5pt]
-\large User documentation for \textcolor{blue!65!black}{version 24.4}}
+\large User documentation for \textcolor{blue!65!black}{version 24.5}}
\author{Vafa Khalighi\thanks{Thanks to the bidi-tex GitHub organization consisted of David Carlisle and other members of the {\LaTeX} team to maintain the package in the period 2018--2020.}}
\setcounter{page}{0}
\thispagestyle{empty}
@@ -13,7 +13,7 @@
\textcolor{blue!65!black}{\Huge The \textsf{\XePersian} \textit{Package}}
\Large
-User documentation for \textcolor{blue!65!black}{version 24.4}}
+User documentation for \textcolor{blue!65!black}{version 24.5}}
\vskip 0pt plus 3fill
\textit{\large to my Master, \textbf{Ferdowsi The Great}}
diff --git a/macros/xetex/latex/xepersian/xepersian-doc.ltx b/macros/xetex/latex/xepersian/xepersian-doc.ltx
index d8778c1cf4..2d6f17fa5d 100644
--- a/macros/xetex/latex/xepersian/xepersian-doc.ltx
+++ b/macros/xetex/latex/xepersian/xepersian-doc.ltx
@@ -1,7 +1,7 @@
\documentclass{ltxdoc}
\input{xepersian-doc-preamble.ltx}
\hypersetup{%
- pdftitle={User documentation for version 24.4 of the XePersian
+ pdftitle={User documentation for version 24.5 of the XePersian
package}%
}
\begin{document}
diff --git a/macros/xetex/latex/xepersian/xepersian-doc.pdf b/macros/xetex/latex/xepersian/xepersian-doc.pdf
index 7a554684a2..3a84cf8abe 100644
--- a/macros/xetex/latex/xepersian/xepersian-doc.pdf
+++ b/macros/xetex/latex/xepersian/xepersian-doc.pdf
Binary files differ
diff --git a/macros/xetex/latex/xepersian/xepersian.dtx b/macros/xetex/latex/xepersian/xepersian.dtx
index 25b58e5801..2cc18044a3 100644
--- a/macros/xetex/latex/xepersian/xepersian.dtx
+++ b/macros/xetex/latex/xepersian/xepersian.dtx
@@ -5,7 +5,7 @@
%<*readme>
____________________
The XePersian package
-v24.4
+v24.5
The xepersian package provides a convenient interface for
typesetting Persian and English texts in LaTeX, using XeTeX
@@ -31,7 +31,7 @@ also appear in the Discussions space under the Announcements
category.
-Current version release date: 2022/06/09
+Current version release date: 2022/06/10
___________________________________________
Vafa Khalighi
@@ -168,7 +168,7 @@ by Vafa Khalighi.
\documentclass{ltxdoc}
\input{xepersian-doc-preamble.ltx}
\hypersetup{%
- pdftitle={Source documentation for version 24.4 of the XePersian
+ pdftitle={Source documentation for version 24.5 of the XePersian
package}%
}
\EnableCrossrefs
@@ -187,7 +187,7 @@ by Vafa Khalighi.
% \GetFileInfo{\jobname.dtx}
% \title{\textcolor{blue!65!black}{\Huge The \textsf{\XePersian} \textit{Package}}\\
%\LARGE Persian for \LaTeXe, using {\XeTeX} engine\\[5pt]
-%\large Source documentation for \textcolor{blue!65!black}{version 24.4}}
+%\large Source documentation for \textcolor{blue!65!black}{version 24.5}}
% \author{Vafa Khalighi\thanks{Thanks to the bidi-tex GitHub organization consisted of David Carlisle and other members of the {\LaTeX} team to maintain the package in the period 2018--2020.}}
%\setcounter{page}{0}
%\thispagestyle{empty}
@@ -197,7 +197,7 @@ by Vafa Khalighi.
%\textcolor{blue!65!black}{\Huge The \textsf{\XePersian} \textit{Package}}
%
%\Large
-%Source documentation for \textcolor{blue!65!black}{version 24.4}}
+%Source documentation for \textcolor{blue!65!black}{version 24.5}}
%
%\vskip 0pt plus 3fill
%\textit{\large to my Master, \textbf{Ferdowsi The Great}}
@@ -245,7 +245,7 @@ by Vafa Khalighi.
%\iffalse
%<*table>
%\fi
-%% \CheckSum{11153}
+%% \CheckSum{11155}
%% \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
@@ -2014,7 +2014,7 @@ by Vafa Khalighi.
%\fi
% \section{File \texttt{hyperref-xepersian.def}}
% \begin{macrocode}
-\ProvidesFile{hyperref-xepersian.def}[2015/02/02 v0.6 bilingual captions for hyperref package]
+\ProvidesFile{hyperref-xepersian.def}[2022/06/10 v0.7 xepersian adaptations for hyperref package]
\def\equationautorefname{\if@RTL معادله\else Equation\fi}%
\def\footnoteautorefname{\if@RTL زیرنویس\else footnote\fi}%
\def\itemautorefname{\if@RTL فقره\else item\fi}%
@@ -2031,16 +2031,18 @@ by Vafa Khalighi.
\def\FancyVerbLineautorefname{\if@RTL سطر\else line\fi}%
\def\theoremautorefname{\if@RTL قضیه\else Theorem\fi}%
\def\pageautorefname{\if@RTL صفحه\else page\fi}%
-\AtBeginDocument{%
-\let\HyOrg@appendix\appendix
-\def\appendix{%
- \ltx@IfUndefined{chapter}%
- {\gdef\theHsection{\Alph{section}}}%
- {\gdef\theHchapter{\Alph{chapter}}}%
- \xdef\Hy@chapapp{\Hy@appendixstring}%
- \HyOrg@appendix
-}
-}
+\ifHy@implicit
+ \AtBeginDocument{%
+ \let\HyOrg@appendix\appendix
+ \def\appendix{%
+ \ltx@IfUndefined{chapter}%
+ {\gdef\theHsection{\Alph{section}}}%
+ {\gdef\theHchapter{\Alph{chapter}}}%
+ \xdef\Hy@chapapp{\Hy@appendixstring}%
+ \HyOrg@appendix
+ }%
+ }%
+\fi
\pdfstringdefDisableCommands{%
\let\lr\@firstofone
\let\rl\@firstofone
@@ -3583,8 +3585,8 @@ U+003E U+003E <> U+00BB ; >> -> RIGHT POINTING GUILLEMET
% \section{File \texttt{xepersian.sty}}
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\def\xepersian@version{24.4}
-\def\xepersiandate{2022/06/09}
+\def\xepersian@version{24.5}
+\def\xepersiandate{2022/06/10}
\ProvidesPackage{xepersian}[\xepersiandate\space v\xepersian@version\space
Persian typesetting in XeLaTeX]
\RequirePackage{fontspec}
@@ -4433,7 +4435,7 @@ Persian typesetting in XeLaTeX]
\newcommand*{\@xepersian@pdfcustomproperties}{%
This is the xepersian package, Version \xepersian@version,
- Released June 9, 2022.
+ Released June 10, 2022.
}
\newcommand\twocolumnstableofcontents{%
diff --git a/macros/xetex/latex/xepersian/xepersian.pdf b/macros/xetex/latex/xepersian/xepersian.pdf
index 6ac59b7fd0..256aef7592 100644
--- a/macros/xetex/latex/xepersian/xepersian.pdf
+++ b/macros/xetex/latex/xepersian/xepersian.pdf
Binary files differ