summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
Diffstat (limited to 'macros')
-rw-r--r--macros/latex/contrib/bibarts/README.txt112
-rw-r--r--macros/latex/contrib/bibarts/ba-short.pdfbin332462 -> 336771 bytes
-rw-r--r--macros/latex/contrib/bibarts/ba-short.tex113
-rw-r--r--macros/latex/contrib/bibarts/bibarts.pdfbin1044258 -> 1071753 bytes
-rw-r--r--macros/latex/contrib/bibarts/bibarts.sty493
-rw-r--r--macros/latex/contrib/bibarts/bibarts.tex2265
-rw-r--r--macros/latex/contrib/bibarts/bibsort.c2114
-rw-r--r--macros/latex/contrib/hvfloat/Changes1
-rw-r--r--macros/latex/contrib/hvfloat/doc/hvfloat.pdfbin5038218 -> 5040712 bytes
-rw-r--r--macros/latex/contrib/hvfloat/latex/hvfloat.sty21
-rw-r--r--macros/latex/contrib/kdpcover/DEPENDS.txt6
-rw-r--r--macros/latex/contrib/kdpcover/LICENSE.txt21
-rw-r--r--macros/latex/contrib/kdpcover/README.md3
-rw-r--r--macros/latex/contrib/kdpcover/cactus.pdfbin0 -> 47687 bytes
-rw-r--r--macros/latex/contrib/kdpcover/kdpcover.cls168
-rw-r--r--macros/latex/contrib/kdpcover/kdpcover.dtx475
-rw-r--r--macros/latex/contrib/kdpcover/kdpcover.ins55
-rw-r--r--macros/latex/contrib/kdpcover/kdpcover.pdfbin104667 -> 260022 bytes
-rw-r--r--macros/latex/contrib/kdpcover/kdpcover.tex93
-rw-r--r--macros/latex/contrib/srdp-mathematik/README.md2
-rw-r--r--macros/latex/contrib/srdp-mathematik/srdp-mathematik.pdfbin179280 -> 180179 bytes
-rw-r--r--macros/latex/contrib/srdp-mathematik/srdp-mathematik.sty203
-rw-r--r--macros/latex/contrib/srdp-mathematik/srdp-mathematik.tex13
-rw-r--r--macros/latex/contrib/univie-ling/README14
-rw-r--r--macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.bbx2
-rw-r--r--macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.cbx2
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-expose-deutsch.pdfbin116016 -> 132481 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-expose-english.pdfbin106622 -> 127717 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-handout-deutsch.pdfbin200629 -> 200629 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-handout-english.pdfbin200633 -> 200633 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-paper-deutsch.pdfbin155796 -> 171999 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-paper-english.pdfbin151605 -> 167017 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.pdfbin173919 -> 189870 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.pdfbin170180 -> 186018 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-wlg-article.pdfbin249650 -> 372059 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/templates/template-wlg-article.tex23
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-expose.pdfbin457216 -> 457719 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-expose.tex17
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-handout.pdfbin447007 -> 447447 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-handout.tex19
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-paper.pdfbin453044 -> 453762 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-paper.tex17
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-thesis.pdfbin458319 -> 458697 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-thesis.tex21
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-wlg.pdfbin341316 -> 342852 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling-wlg.tex18
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling.pdfbin0 -> 364169 bytes
-rw-r--r--macros/latex/contrib/univie-ling/doc/univie-ling.tex105
-rw-r--r--macros/latex/contrib/univie-ling/tex/univie-ling-expose.cls451
-rw-r--r--macros/latex/contrib/univie-ling/tex/univie-ling-handout.cls1027
-rw-r--r--macros/latex/contrib/univie-ling/tex/univie-ling-paper.cls508
-rw-r--r--macros/latex/contrib/univie-ling/tex/univie-ling-thesis.cls543
-rw-r--r--macros/latex/contrib/univie-ling/tex/univie-ling-wlg-logo.pdfbin93530 -> 93497 bytes
-rw-r--r--macros/latex/contrib/univie-ling/tex/univie-ling-wlg.cls371
-rw-r--r--macros/latex/contrib/yb-book/DEPENDS.txt13
-rw-r--r--macros/latex/contrib/yb-book/LICENSE.txt21
-rw-r--r--macros/latex/contrib/yb-book/README.md9
-rw-r--r--macros/latex/contrib/yb-book/samples/sample.tex41
-rw-r--r--macros/latex/contrib/yb-book/yb-book.cls341
-rw-r--r--macros/latex/contrib/yb-book/yb-book.dtx653
-rw-r--r--macros/latex/contrib/yb-book/yb-book.ins55
-rw-r--r--macros/latex/contrib/yb-book/yb-book.pdfbin239404 -> 283494 bytes
-rw-r--r--macros/latex/contrib/yb-book/yb-book.tex79
-rw-r--r--macros/luatex/generic/luatexja/README8
-rw-r--r--macros/luatex/generic/luatexja/doc/ltjclasses.pdfbin397581 -> 403681 bytes
-rw-r--r--macros/luatex/generic/luatexja/doc/ltjsclasses.pdfbin456577 -> 460413 bytes
-rw-r--r--macros/luatex/generic/luatexja/doc/luatexja-en.pdfbin717611 -> 717361 bytes
-rw-r--r--macros/luatex/generic/luatexja/doc/luatexja-ja.pdfbin1149406 -> 1149287 bytes
-rw-r--r--macros/luatex/generic/luatexja/doc/luatexja.dtx1059
-rw-r--r--macros/luatex/generic/luatexja/src/addons/luatexja-otf.sty5
-rw-r--r--macros/luatex/generic/luatexja/src/jfm-CCT.lua6
-rw-r--r--macros/luatex/generic/luatexja/src/jfm-banjiao.lua4
-rw-r--r--macros/luatex/generic/luatexja/src/jfm-jis.lua4
-rw-r--r--macros/luatex/generic/luatexja/src/jfm-kaiming.lua6
-rw-r--r--macros/luatex/generic/luatexja/src/jfm-min.lua6
-rw-r--r--macros/luatex/generic/luatexja/src/jfm-quanjiao.lua4
-rw-r--r--macros/luatex/generic/luatexja/src/jfm-ujis.lua4
-rw-r--r--macros/luatex/generic/luatexja/src/jfm-ujisv.lua2
-rw-r--r--macros/luatex/generic/luatexja/src/lltjext.sty4
-rw-r--r--macros/luatex/generic/luatexja/src/ltj-adjust.lua142
-rw-r--r--macros/luatex/generic/luatexja/src/ltj-base.lua26
-rw-r--r--macros/luatex/generic/luatexja/src/ltj-base.sty2
-rw-r--r--macros/luatex/generic/luatexja/src/ltj-charrange.lua43
-rw-r--r--macros/luatex/generic/luatexja/src/ltj-compat.lua35
-rw-r--r--macros/luatex/generic/luatexja/src/ltj-debug.lua12
-rw-r--r--macros/luatex/generic/luatexja/src/ltj-direction.lua454
-rw-r--r--macros/luatex/generic/luatexja/src/ltj-inputbuf.lua6
-rw-r--r--macros/luatex/generic/luatexja/src/ltj-jfmglue.lua268
-rw-r--r--macros/luatex/generic/luatexja/src/ltj-jfont.lua92
-rw-r--r--macros/luatex/generic/luatexja/src/ltj-kinsoku.tex2
-rw-r--r--macros/luatex/generic/luatexja/src/ltj-lineskip.lua32
-rw-r--r--macros/luatex/generic/luatexja/src/ltj-lotf_aux.lua18
-rw-r--r--macros/luatex/generic/luatexja/src/ltj-math.lua84
-rw-r--r--macros/luatex/generic/luatexja/src/ltj-otf.lua24
-rw-r--r--macros/luatex/generic/luatexja/src/ltj-pretreat.lua63
-rw-r--r--macros/luatex/generic/luatexja/src/ltj-rmlgbm.lua6
-rw-r--r--macros/luatex/generic/luatexja/src/ltj-ruby.lua214
-rw-r--r--macros/luatex/generic/luatexja/src/ltj-setwidth.lua94
-rw-r--r--macros/luatex/generic/luatexja/src/ltj-stack.lua54
-rw-r--r--macros/luatex/generic/luatexja/src/ltjclasses.dtx10
-rw-r--r--macros/luatex/generic/luatexja/src/ltjsclasses.dtx17
-rw-r--r--macros/luatex/generic/luatexja/src/luatexja-core.sty82
-rw-r--r--macros/luatex/generic/luatexja/src/luatexja.lua104
-rw-r--r--macros/luatex/generic/luatexja/src/luatexja.sty2
-rw-r--r--macros/luatex/generic/luatexja/src/patches/lltjfont.sty1
-rw-r--r--macros/luatex/generic/luatexja/src/patches/lltjp-atbegshi.sty6
-rw-r--r--macros/luatex/generic/luatexja/src/patches/lltjp-everyshi.sty2
-rw-r--r--macros/luatex/generic/luatexja/src/patches/lltjp-tascmac.sty45
-rw-r--r--macros/luatex/generic/luatexja/tool/test_exist_nodelib.tex104
109 files changed, 7697 insertions, 5967 deletions
diff --git a/macros/latex/contrib/bibarts/README.txt b/macros/latex/contrib/bibarts/README.txt
index 8fbb2c100f..701eb35450 100644
--- a/macros/latex/contrib/bibarts/README.txt
+++ b/macros/latex/contrib/bibarts/README.txt
@@ -7,7 +7,7 @@ it requires a program, for which source and Windows executable are provided.
===
-BibArts 2.4 is a LaTeX package to assist in making bibliographical features
+BibArts 2.5 is a LaTeX package to assist in making bibliographical features
common in the arts and humanities (history, political science, etc.).
bibarts.sty provides commands for quotation, register keywords,
abbreviations, and especially for a formatted citation of literature,
@@ -22,18 +22,18 @@ with BibTeX, and it does not use any data bank except your own LaTeX text.
The lists are created by bibsort. A file bibsort.exe is part of the package
( CTAN mirrors > BibArts > bibarts.zip ) and runs on newer Windows systems.
Other users first have to create a binary file from bibsort.c (ANSI-C) with
-their own C-compiler. BibArts 2.4 is developed and tested on Windows 10
-with the 2021-11-22 LaTeX 2e distribution, but it should be able to work
+their own C-compiler. BibArts 2.5 is developed and tested on Windows 10
+with the 2022-06-01 LaTeX 2e distribution, but it should be able to work
even with LaTeX 2.09.
- BibArts 2.4 (9 files, 8 dated 2022-01-10):
- README.txt This file here
+ BibArts 2.5 (9 files, 8 dated 2022-10-01):
+ README.txt This file here: Version history
bibarts.sty The LaTeX style file
ba-short.pdf Short introduction (English)
ba-short.tex Source of ba-short.pdf
bibarts.pdf Full documentation (German)
bibarts.tex Source of bibarts.pdf
- bibsort.exe Binary to create the lists
+ bibsort.exe bibarts-bin to create the lists
bibsort.c Source of bibsort.exe
COPYING License (dated 1993-11-28)
@@ -64,7 +64,7 @@ see examples for the new commands \frompagesep and \ntsep in bibarts.pdf.
Changes from BibArts version 2.0 (2015) to version 2.1 (2016):
-BibArts 2.0 set \footnotesep to 2ex, whereas 2.1 to 2.4 do *not* change the
+BibArts 2.0 set \footnotesep to 2ex, whereas 2.1 to 2.5 do *not* change the
pre-set value. If you want to continue with the 2.0-distance between two
footnotes, you will have to type \setlength{\footnotesep}{2ex} in your text.
@@ -87,7 +87,7 @@ bibsort is able to evaluate the new fnsymbols (which expand to \TextOrMath).
If bibsort should write into files with a different prefix as the .aux input
file, you have to use -o <outfile> now. And you may type bibsort <infile>,
-*or* bibsort -i <infile> (e.g. when the input file name begins with '-').
+*or* bibsort -i <infile> (e.g. if the input file name begins with '-').
bibsort sorts the 'official' $Greek variables$ since version 2.0. To write
single words in Old Greek, BibArts 2.1 also provides \Alpha [A], \Beta [B],
@@ -99,12 +99,15 @@ single words in Old Greek, BibArts 2.1 also provides \Alpha [A], \Beta [B],
Changes from BibArts version 2.1 (2016) to version 2.2 (2019):
-(1) bibsort, the sorting program of the package, has 3 new options:
+(1) bibsort, the BibArts Program to create the lists, has 3 new options:
Use bibsort -h [...] to sort hyphens ( - \hy \fhy "= "~ ) as spaces.
-Use bibsort -b [...] to begin the sorting of the title at \bago, e.g.:
+Use bibsort -b [...] if you want that your command \bago in an argument
+should define the position at which each comparison begins. E.g. ...
\vli{J.}{Smith}{The \bago \ktit{Book}, London 2005}
+... with -b will be sorted like <Smith J Book London 2005> without 'The'.
+(If you did not type \bago, the position is at the begin of the argument.)
bibsort -n1 [...] will create blocks of footnote numbers only, if
the entries are from footnotes on the same page, e.g.: 10^{3-6}, 11^{7-9}
@@ -127,8 +130,8 @@ And errors in the sorting of entries with only-commands were eliminated.
full stop between name and title; BibArts is avoiding e.g. "Smith, J..".
(6) If you '\renewcommand' a pre-defined text element (caption), you
-sometimes will have to adapt the italic correction. Bibarts provides
-the homogenous command \bacorr instead of the four different commands
+sometimes will have to adapt the italic correction. BibArts provides
+the homogeneous command \bacorr instead of the four different commands
\bakxxcorr, \baabkcorr, \balistcorr, and \bakntsepcorr (but those old
commands are still valid). To print the lists, you may say now e.g.:
\renewcommand{\frompagesep}{\bacorr ; } \printnumvli \printnumvkc
@@ -144,8 +147,8 @@ german.sty or ngerman.sty, the use of \originalTeX is still reproduced.
- \newhyss to set a \ss, which is splitted s-s only in small caps, and
else is printing a sharp S, which is splitted as \language says (-\ss);
- \hyss to execute \oldhyss, if \language is \l@german, and \newhyss else
- (e.g. if \language is \l@ngerman --- so, \hyss can be used *always*);
-- commands for the handling of "tripple consonant before vovel" in German:
+ (e.g. if \language is \l@ngerman), so you can use \hyss in all languages;
+- commands to handle the "tripple consonant in front of vovel" in German:
E.g. Sto\hyf figur, Scha\hyl leistung, Sta\hym mutter, Ke\hyn nummer,
Ste\hyp pullover, Sta\hyr rahmen, and Schri\hyt tempo: If \language is
\l@german, BibArts will PRINT AND SORT \hyf as f, and ELSE as ff, etc.
@@ -165,12 +168,12 @@ Changes from BibArts version 2.2 (2019) to version 2.3 (2021):
There have been two new options for bibsort:
- -utf8 sorts UTF8 characters as definded in utf8enc.dfu 2021/01/27 v1.2l,
+ -utf8 sorts UTF-8 characters as definded in utf8enc.dfu 2021/01/27 v1.2l,
except \cyr...- and \CYR...-commands, which bibsort still ignores.
- bibsort is able to sort the accent \textcommabelow (parallel to
- U+0218 to U+021B). The internal representation of accents did
- change (two instead of one ASCII 1 to 31). For numerous smaller
- changes see /* 2.3 comments */ in bibsort.c.
+ bibsort is able to sort the accent \textcommabelow (which LaTeX
+ uses from U+0218 to U+021B). The internal representation of
+ accents did change (two instead of one ASCII 1 to 31). For
+ numerous smaller changes see /* 2.3 comments */ in bibsort.c.
Like in earlier versions, you can introduce e.g. a book in your text
@@ -178,33 +181,88 @@ There have been two new options for bibsort:
with Peter Young as co-author. (For further co-authors, use
\midvauthor{FirstName}{LastName}
in front of \vauthor.) Please always TYPE the FirstName first.
- If you start bibsort without -e, \printvli will still print lists as:
- Smith, John / Peter Young: ... [Title] ...
- -e exchanges the PRINT ORDER of the args of \vauthor (and \midvauthor).
- In your text, \printvli then will PRINT the List of Literature as:
+ -e exchanges the PRINT ORDER of the args of \vauthor (and \midvauthor)
+ on the List of Literature. So, \printvli will PRINT:
Smith, John / Young, Peter: ... [Title] ...
+ If you start bibsort without -e, \printvli will still print:
+ Smith, John / Peter Young: ... [Title] ...
+
The SORT ORDER in *both* cases is (that did/does *not* change):
Smith John Young Peter
===
-Changes from BibArts version 2.3 (2021) to version 2.4 (now, 2022):
+Changes from BibArts version 2.3 (2021) to version 2.4 (2022) [2022a]:
An error was fixed concerning "inner v-commands" on the List of Literature,
and the List of Published Documents: In shortened "inner" references,
BibArts 2.3 -- together with bibsort -e ... -- printed the first names of
co-authors. Now, such shortened references only print the family names.
-bibsort now knows ten new utf8-characters (parallel to the changes in
+bibsort now knows ten new UTF-8 characters (according to the changes in
utf8enc.dfu from version 2021/01/27 v1.2l to 2021/06/21 v1.2n).
===
+Changes from BibArts version 2.4 (2022[a]) to version 2.5 (now, 2022b):
+
+
+(1) You may now put curly brackets around the \ktit{shortened title}, e.g.:
+
+ \vli {K.} {Mayer} {The \textbf {\ktit{Book}}, Frankfurt/M.}.
+
+Older versions, despite \announcektit, did not print "(cited as ...)" in
+that case. Now, this error has been fixed, and \vli prints correctly:
+
+ K. Mayer: The Book, Frankfurt/M. (cited as Mayer: Book [L]).
+
+
+(2) bibarts.sty now searches for a full stop at the end of the last argument
+of \vli commands. So, you may set \notannouncektit, and you will get:
+
+ K. Mayer: The Book, Frankfurt/M.
+
+(BibArts 2.5 automatically prints "." instead of ".." at the end.)
+
+
+(3) BibArts now supports the name-year system. In this feature, the last
+argument of a shortened reference \kli consists of the year of publication
+(instead of a few words from the full title). In this new system, you also
+use \ktit in the full reference \vli, but in the optional *{argument} as:
+
+ \footnote{\vli {J.} {Smith} *{\onlyvoll{\ktit{2022}}} {An Alternative}.}
+ ...
+ \footnote{\kli {Smith} {2022}.} %% <= automatically prints IBIDEM.
+
+The \ktit in the *{argument} of the full reference \vli has to be masked by
+\onlyvoll; only then, BibArts will print IBIDEM, if \kli{Smith}{2022} is in
+the following footnote. Instead of especially *{\onlyvoll{\ktit{2022}}},
+you may use *{\starktit{2022}} as a shorter synonym; also see ba-short.pdf.
+
+After a start of the BibArts program bibsort, and a second start of LaTeX,
+\printvli prints the List of Literature from the given name-year example as:
+
+ Smith, J. 2022: An Alternative.
+
+
+(4) Anyway, \ktit now is no more necessarily in the last argument of a \vli
+command. The new bibsort tells you whether you have always chosen the same
+argument (where "arg 3" means the optional *{argument}, and "arg 4" the last
+argument). To get the new features, bibsort, and bibarts.sty, both need to
+be updated to version 2.5. bibsort is sometimes referred to as bibarts-bin.
+
+
+(5) bibsort now knows further eleven UTF-8 characters (according to the
+changes in utf8enc.dfu from version 2021/06/21 v1.2n to 2022/06/07 v1.3c).
+
+
+===
+
Published under the terms of the GNU General Public License.
-BibArts 2.4 (2022):
-(C) Timo Baumann, Versions 2.x (2022, 2021, 2019, 2016, 2015)
+BibArts 2.5 (2022b):
+(C) Timo Baumann, Versions 2.x (2015-2022)
diff --git a/macros/latex/contrib/bibarts/ba-short.pdf b/macros/latex/contrib/bibarts/ba-short.pdf
index 8ab54f3f61..f8e760dbd7 100644
--- a/macros/latex/contrib/bibarts/ba-short.pdf
+++ b/macros/latex/contrib/bibarts/ba-short.pdf
Binary files differ
diff --git a/macros/latex/contrib/bibarts/ba-short.tex b/macros/latex/contrib/bibarts/ba-short.tex
index 642978d417..14cf1ff1a7 100644
--- a/macros/latex/contrib/bibarts/ba-short.tex
+++ b/macros/latex/contrib/bibarts/ba-short.tex
@@ -1,5 +1,5 @@
-%% BibArts 2.4 assists you to write LaTeX texts in arts and humanities.
-%% Copyright (C) 2022 Timo Baumann bibarts[at]gmx.de (2022/01/10)
+%% BibArts 2.5 assists you to write LaTeX texts in arts and humanities.
+%% Copyright (C) 2022b Timo Baumann bibarts[at]gmx.de (2022/10/01)
%%% LaTeX + "bibsort -i ba-short -m -utf8 -k -e -h" + LaTeX %%%
@@ -16,7 +16,7 @@
\title{The \LaTeX\hy Package \BibArts \\[1.25ex] {\normalsize\slshape
A package to assist in making bibliographical features \\[-1.25ex] common in the arts and humanities}}
\author{\textsc{Timo Baumann}}
- \date{\small Version 2.4 (2022). \hspace{1em}\copyright\ 2.x (2022, 2021, 2019, 2016, 2015).}
+ \date{\small {Version 2.5 (2022b).} \hspace{2.25em} {\copyright\ 2.x (2015$-$2022).}}
\setcounter{secnumdepth}{0}
%\renewcommand{\kxxemph}{\em}
@@ -60,17 +60,17 @@
\vspace{1.75ex}
\hbox{\parbox{7.7cm}{\footnotesize\noindent
-\textbf{\BibArts~2.4 (9 files, 8 dated 2022\ko/01\ko/10):} \\[.875ex]
+\textbf{\BibArts~2.5 (9 files, 8 dated 2022/10/01):} \\[.875ex]
\begin{tabular}{ll}%
- \texttt{README.txt} & Version history since 1.3 \\[-1.75pt]
- \texttt{bibarts.sty} & The \LaTeX\ style file \\[-1.75pt]
- \texttt{ba-short.pdf} & This documentation here \\[-1.75pt]
- \texttt{ba-short.tex} & Source of \texttt{ba-short.pdf}\\[-1.75pt]
- \texttt{bibarts.pdf} & Full documentation (German) \\[-1.75pt]
- \texttt{bibarts.tex} & Source of \texttt{bibarts.pdf} \\[-1.75pt]
- \texttt{bibsort.exe} & Binary to create the lists \\[-1.75pt]
- \texttt{bibsort.c} & Source of \texttt{bibsort.exe} \\[-1.75pt]
- \texttt{COPYING} & License (dated 1993/11/28) \\
+ \texttt{README.txt} & Version history since 1.3 \\[-1.75pt]
+ \texttt{bibarts.sty} & The \LaTeX\ style file \\[-1.75pt]
+ \texttt{ba-short.pdf} & This documentation here \\[-1.75pt]
+ \texttt{ba-short.tex} & Source of \texttt{ba-short.pdf} \\[-1.75pt]
+ \texttt{bibarts.pdf} & Full documentation (German) \\[-1.75pt]
+ \texttt{bibarts.tex} & Source of \texttt{bibarts.pdf} \\[-1.75pt]
+ \texttt{bibsort.exe} & bibarts-bin to create the lists \\[-1.75pt]
+ \texttt{bibsort.c} & Source of \texttt{bibsort.exe} \\[-1.75pt]
+ \texttt{COPYING} & License (dated 1993/11/28) \\
\end{tabular}}
\\
\hspace*{2.4mm}
@@ -184,7 +184,7 @@
\vspace{-.25ex}\noindent
\verb|\printper| your Periodicals, and \verb|\printarq| the List of Archive
- Files. Spaces are forbidden before the optional arguments \verb+[Pg]+,
+ Files. Type no spaces in front of the optional arguments \verb+[Pg]+,
\verb+(Foilo)+, \verb+|Vol|+, or \verb+_Num_+.
@@ -421,7 +421,7 @@ Use \verb|\per| inside the last argument of a \texttt{v}\fhy command to cite art
{
You can use \texttt{*[Pg]} to cite a
certain page inside \texttt{[PgBegin-PgEnd]}.
-Do not type spaces before \texttt{*[Pg]}.\footnote{See
+Do not type spaces in front of \texttt{*[Pg]}.\footnote{See
\vqu {John Frederick Charles} {Fuller}
{Gold Medal (Military) \ktit{Prize Essay} for 1919,
first published in: \per{Journal of the Royal United Service
@@ -760,6 +760,89 @@ Please use commands like \verb|\bfseries| to \verb|\renewcommand| fonts, not \ve
\verb|\peremph| & \verb|{\normalfont\scshape}| & periodicals \verb| %{\upshape}| \\
\end{tabular}}
+
+%!!!>
+
+\newpage\noindent
+Since version 2.5, \BibArts\ supports the \textbf{name\hy year system}\kern.025em:
+In shortened references, you may also use the year of publication instead of a few words
+from the full title. E.\,g.\
+\hspace{.25em}\verb|*{\onlyvoll{\ktit{1999}}}|
+\hspace{.35em}$-$ or synonymously
+\hspace{.35em}\verb|*{\starktit{1999}}| $-$
+\hspace{.25em}is used as the \texttt{*}\fhy argument of a v\fhy command;
+the last argument of a k\fhy command is the year of publication.
+If two cited works by the same author have been published in the same year,
+use \verb|1999a|, \verb|1999b|.
+
+The following example uses \hspace{.075em}\verb|\notannouncektit|\kern.05em, because it seems to
+be unnecessary to print \hspace{.15em}{\footnotesize (cited as \fabra{...})}\ \hspace{.15em}here; and \verb|\ntsep|
+is redefined in a way that k\fhy commands do not print a colon after the
+name(s) of the author(s):%
+{\notannouncektit
+ \renewcommand{\ntsep}{\ifbashortcite{ }{: }}\notktitaddtok
+ \footnote { \printonlyvli{Roger} {Chickering} *{\starktit{1999}}
+ {Total War. The Use and Abuse of a Concept, in:
+ \xprintonlyvli{Manfred F.}{Boemeke} *{\midvauthor{Roger}{Chickering}
+ \vauthor{Stig}{Förster}\onlyvoll{ \editors\ \ktit{1999}}}
+ {Anticipating Total War. The German and American
+ Experiences 1871--1914, Cambridge U.\,K.}[13-28]}*[14\f].}%
+ \,\footnote{\printonlykli{Chickering}{1999}[14\f].\label{RC}}%
+ \,\footnote { \printonlyvli{Gerald D.}{Feldman}*{\starktit{1999}}
+ {Hugo Stinnes and the Prospect of War Before 1914, in:
+ \xprintonlykli{Boemeke} *{\midkauthor{Chickering} \kauthor{Förster}}
+ {1999}[77-95]}*[77]; and \printonlykli{Chickering}{1999}[16].}%
+}
+
+\vspace{1.125ex}
+\begin{small}
+\noindent
+\verb| \notannouncektit| \\
+\verb| \renewcommand{\ntsep}{\ifbashortcite{ }{: }} % : only in v-cmds|
+
+\vspace{-.75ex}
+\begin{verbatim}
+ \footnote { \vli{Roger} {Chickering} *{\starktit{1999}}
+ {Total War. The Use and Abuse of a Concept, in:
+ \xvli{Manfred F.}{Boemeke} *{\midvauthor{Roger}{Chickering}
+ \vauthor{Stig}{Förster}\onlyvoll{ \editors\ \ktit{1999}}}
+ {Anticipating Total War. The German and American
+ Experiences 1871--1914, Cambridge U.\,K.}[13-28]}*[14\f].}
+\end{verbatim}
+
+\vspace{-.675ex}\noindent
+\verb| \footnote{\kli{Chickering}{1999}[14\f].} %% see footnote |\texttt{\ref{RC}}
+
+\vspace{-.675ex}
+\begin{verbatim}
+ \footnote { \vli{Gerald D.}{Feldman}*{\starktit{1999}}
+ {Hugo Stinnes and the Prospect of War Before 1914, in:
+ \xkli{Boemeke} *{\midkauthor{Chickering} \kauthor{Förster}}
+ {1999}[77-95]}*[77]; and \kli{Chickering}{1999}[16].}
+\end{verbatim}
+\end{small}
+
+\vspace{.125ex}\noindent
+Note, that there are spaces in front of \verb|\vauthor{Stig}{Förster}| as well as \verb|\kauthor{Förster}|.
+Finally, \verb|\printvli| will print the List of Literature as:
+
+\vspace{-1.5ex}\subsection*{Literatur}\vspace{-.25ex}
+\begin{description}\parsep 0ex \itemsep -.5ex
+\item
+{\scshape Boemeke}, Manfred F.\baslash {\scshape Chickering}, Roger\baslash {\scshape Förster}, Stig \editors\
+1999: Anticipating Total War. The German and American Experiences
+1871-1914, Cambridge U.\,K.
+\item
+{\scshape Chickering}, Roger 1999: Total War. The Use and Abuse of a Concept, in:
+{\scshape Boemeke}\baslash {\scshape Chickering}\baslash {\scshape Förster} 1999 [L], S.\,13-28.
+\item
+{\scshape Feldman}, Gerald D. 1999: Hugo Stinnes and the Prospect of War Before
+1914, in: {\scshape Boemeke}\baslash {\scshape Chickering}\baslash {\scshape Förster} 1999 [L], S.\,77-95.
+\end{description}
+
+%!!!<
+
+
\edef\bamantestargs{ -h -utf8 -k -e }
\ifx\bamantestargs\bibsortargs\else\newpage\noindent bibsort was started with options\\ \bibsortargs\\ instead of\\ \bamantestargs\fi
diff --git a/macros/latex/contrib/bibarts/bibarts.pdf b/macros/latex/contrib/bibarts/bibarts.pdf
index a8d267ff8f..103ef04712 100644
--- a/macros/latex/contrib/bibarts/bibarts.pdf
+++ b/macros/latex/contrib/bibarts/bibarts.pdf
Binary files differ
diff --git a/macros/latex/contrib/bibarts/bibarts.sty b/macros/latex/contrib/bibarts/bibarts.sty
index ccd48ba312..e0ab320722 100644
--- a/macros/latex/contrib/bibarts/bibarts.sty
+++ b/macros/latex/contrib/bibarts/bibarts.sty
@@ -1,5 +1,5 @@
-%% BibArts 2.4 assists you to write LaTeX texts in arts and humanities.
-%% Copyright (C) 2022 Timo Baumann bibarts[at]gmx.de (2022/01/10)
+%% BibArts 2.5 assists you to write LaTeX texts in arts and humanities.
+%% Copyright (C) 2022b Timo Baumann bibarts[at]gmx.de (2022/10/01)
%%
%% This program is free software; you can redistribute it and/or modify
%% it under the terms of the GNU General Public License as published by
@@ -19,12 +19,13 @@
%% FILES OF THE PACKAGE AND DOCUMENTATION
%% CTAN mirrors > BibArts > bibarts.zip
+%% README.txt Version history since 1.3
%% bibarts.sty This file (a LaTeX style)
%% ba-short.pdf Short documentation (English)
%% ba-short.tex Source of ba-short.pdf
%% bibarts.pdf Full documentation (German)
%% bibarts.tex Source of bibarts.pdf
-%% bibsort.exe Binary to create the lists
+%% bibsort.exe bibarts-bin to create the lists
%% bibsort.c Source of bibsort.exe
%% COPYING The license of the package
@@ -33,7 +34,7 @@
%% COMPATIBILITY
%% Change \DeclareRobustCommand into \def before using LaTeX 2.09.
%% Then, you still NOT have to \protect BibArts-cmds in args of v-cmds.
-%% BibArts 2.4 ONLY has an EMULATION for 1.3 texts: Keep copies of 1.x?
+%% BibArts 2.5 ONLY has an EMULATION for 1.3 texts: Keep copies of 1.x?
@@ -72,7 +73,7 @@
\def\errmessage@ba#1{{\protectchars@active\errmessage{#1.^^J \space. . . . . . . . . . . }}}
-\typeout@ba{Style Option BibArts, Version 2.4 [2022] ...}
+\typeout@ba{Style Option BibArts, Version 2.5 [2022b] ...}
\def\msg@bafontsubst#1#2{\typeout@ba{{\string#1 ...} is unknown; I'll substitute {\string#2 ...}.}}
@@ -98,7 +99,7 @@
\def\baabkcorr{\bacorr}
\def\balistcorr{\bacorr}
\def\bakntsepcorr{\bacorr}
-%% Only \barefcorr is not yet unified in 2.4 %%
+%% Only \barefcorr is not yet unified in 2.5 %%
\def\setup@ba#1#2{\let\@bahdtest-{#1{%
\ifdim\fontdimen\@ne\font=\z@{\ignorespaces #2\ba@textmode\iflasthasdot@ba{\global\let\@bahdtest+}{}}\else
@@ -201,7 +202,8 @@
\def\prep@bakntsepcorr{\def\bacorr{\ifdim\fontdimen\@ne\font=\z@\else{\kxxemph{\ifdim\fontdimen\@ne\font=\z@\@bacorrkern\nulskip@ba\fi}}\fi}}
\def\not@bakntsepcorr{\def\bacorr{}}
-\def\ntsep{: \bacorr} %{\ifbashortcite{:\hskip0pt plus 0pt\bacorr}{: }}
+\def\ntsep{: \bacorr} %{\ifbashortcite{ }{: }} %{\bapoint\newsentence}
+ %{\ifbashortcite{:\hskip0pt plus 0pt}{: }\bacorr}
\def\ppntsep{{\@kxxbafalse\not@bakntsepcorr\ntsep}}
\def\printntsep{\protect\ppntsep}
@@ -282,11 +284,6 @@
\def\pwriteidemwarnings{\wriwarn@batrue}
\def\writeidemwarnings{\protect\pwriteidemwarnings}
-%% \bullet : Ders. fehlt moeglicherweise (gleiche Nachnamen registriert).
-%% \heartsuit: Ders. ist offenbar richtig gesetzt (gleiche Nachnamen registriert).
-%% \nabla : Ders. wegen fehlender Autoren in vorausgehender Fussnote unberechtigt.
-%% \spadesuit: Ders. ueberscheibt einen Namen, der nicht der vorausgehende ist.
-%% \clubsuit : Ders. steht irrefuehrenderweise nach einer Fussnote mit mehreren Autoren.
\def\pconferize{\ba@varstringtrue}
@@ -505,8 +502,9 @@
\let\next@ba\getnext@km
\fi \next@ba}
-\def\erripfpevo@ba#1{%{ \erri@ba}%
- \ifx#1x\type@bawarn{Empty [] or ()}\else\type@bawarn{Empty || or __}\fi}
+\def\erripfpevo@ba#1{%{ \erri@ba}% %% outer/inner in 2.5:
+ \ifx#1x\type@bawarn{Empty [] or () at \if@baouter outer \else inner \fi cmd}\else
+ \type@bawarn{Empty || or __ at \if@baouter outer \else inner \fi cmd}\fi}
\def\printpf@ba#1#2{\if@pfvba{\errorcontextlines=-1%
\def\@testa{#2}%
@@ -541,13 +539,14 @@
\ifx\@testa+\@bahasdot\fi \arqsep}}%
\fi\fi}}
-\def\initprintpf@ba#1#2#3{\if@pfvba
+\def\initprintpf@ba#1#2#3{%
+ \if@pfvba
{\@memfunctions\@outsavety\@herefunctions\fillpref@ba{#2}{#3}}%
{\if@footnote
\ifx\pmem@ba\pref@ba
\ifx\isibidem@ba-\printpf@ba{#1}{#3}%
\else\ifx\lastp@ba+\printpf@ba{#1}{#3}%
- \else \global\let\lookpage@ba=+%
+ \else\global\let\lookpage@ba=+%
\fi
\fi
\else\printpf@ba{#1}{#3}%
@@ -555,11 +554,14 @@
\ifx\isibidem@ba+\ifx\pos@ba1\else\global\let\thisp@ba=+\fi\fi
\fi
\fi
- \else\printpf@ba{#1}{#3}\fi
- \global\let\lastp@ba=-%
- }\global\let\pmem@ba=\pref@ba\fi}
+ \else\printpf@ba{#1}{#3}%
+ \global\let\lastp@ba=-%
+ \global\let\pmem@ba=\pref@ba %% moved in 2.5
+ \fi}%
+ \fi}
-\def\initprintpevo@ba#1#2{\if@pfvba
+\def\initprintpevo@ba#1#2{%
+ \if@pfvba
{\@memfunctions\@outsavety\@herefunctions\fillvolref@ba{#1}}%
{\if@footnote
\ifx\volmem@ba\volref@ba
@@ -575,9 +577,12 @@
\ifx\isibidem@ba+\ifx\pos@ba1\else\global\let\thisvol@ba=+\fi\fi
\fi
\fi
- \else\printpevo@ba{#1}{#2}\fi
- \global\let\lastvol@ba=-%
- }\global\let\volmem@ba=\volref@ba\fi}
+ \global\let\lastvol@ba=-% %% moved in 2.5
+ \global\let\volmem@ba=\volref@ba %% moved in 2.5
+ \else
+ \printpevo@ba{#1}{#2}%
+ \fi}%
+ \fi}
\def\initprints@ba#1#2{%
@@ -635,8 +640,9 @@
\def\ggrrtitlename{Ortsregister}
\def\gprrtitlename{Personenregister}
\def\gsrrtitlename{Sachregister}
-\def\gannouncektitname{\bastrut\ (\kern 0.015em im Folgenden \baupcorr} %at:fortan
-\def\gannouncekendname{)}
+\def\gannouncektitname{\bastrut\ (\kern 0.015em im Folgenden \baupcorr}
+ %% 2.5 auch: {\bapoint\newsentence Fortan: }
+\def\gannouncekendname{)} %%{\bapoint\banotdot}
\def\grefvbegname{(}
\def\grefverbname{siehe}
\def\grefvpagname{S.\,}
@@ -952,6 +958,7 @@
\def\onlyout{\protect\onlyout}%
\def\onlyvoll{\protect\onlyvoll}%
\def\onlykurz{\protect\onlykurz}%
+ \def\sechere##1##2{\onlyhere{##2}\onlyout{##1}}% %% new in 2.5
\def\kurz{\if@baouter\protect\outkurz\else\protect\delkurz\fi}%
\def\ktit{\protect\ktit}%
\def\vauthor{\protect\vauthor}%
@@ -1092,6 +1099,17 @@
%%
+%% inner only-cmds are identical on lists,
+%% because v-cmds are changed to k-cmds:
+
+\def\@reprintIfunctions{% %% new in 2.5
+ \def\onlyout##1{##1}%
+ \def\onlyhere##1{}%
+ \def\onlyvoll##1{}%
+ \def\onlykurz##1{##1}%
+}
+
+
\def\@hereRfunctions{%
\def\onlyout##1{}% %% Genauso in \@herefunctions
\def\onlyhere##1{##1}% %% Genauso in \@herefunctions
@@ -1145,8 +1163,11 @@
\def\outkurz#1{\unskip{} [{#1\ba@textmode}]}
\def\delkurz#1{\unskip}
+\def\starktit#1{\onlyvoll{\ktit{#1}}} %% new in 2.5
\def\vollout#1{\onlyvoll{\onlyout{#1}}}
\def\vollhere#1{\onlyvoll{\onlyhere{#1}}}
+\def\sechere#1#2{\onlyout{#1}\onlyhere{#2}} %% new in 2.5
+\def\onlybakey#1{} %% new in 2.5
\def\protmva#1#2{\dofrco@ba\@printvname{#1}{\bastrut\ }{#2}{0}{0}{\nsep}\ignorespaces}
\def\midvauthor{\protect\protmva}
@@ -1236,14 +1257,16 @@
\def\makeibid@ba{%
\if@bashowmem
+ \if@footnote %% added if, msg changed in 2.5
+ \protec@scr{^^J SHOWBAMEM on input line \line@ba \space in}%
\if@baminipage
- \protec@scr{^^J Minipage-FNT \thempfootnote}\else
- \protec@scr{^^J FNT \thefootnote}\fi
- \protec@scr{^^J -- outer: \space \tmemo@ba \space -- }%
- \protec@scr{ ---------- inner: \space \tmemi@ba \space -- }%
- \if@baouter\protec@scr{ -- o-ref: \space \tref@ba \space -- ^^J}\else
- \protec@scr{ ---------- i-ref: \space \tref@ba \space -- ^^J}\fi
- \fi
+ \protec@scr{Minipage-FNT \thempfootnote:}\else
+ \protec@scr{FNT \thefootnote:}\fi
+ \protec@scr{^^J -- outer: \space \tmemo@ba}%
+ \protec@scr{^^J ---------- inner: \space \tmemi@ba}%
+ \if@baouter\protec@scr{^^J -- o-ref: \space \tref@ba ^^J}\else
+ \protec@scr{^^J ---------- i-ref: \space \tref@ba ^^J}\fi
+ \fi\fi
\global\let\isibidem@ba=-%
\if@baouter\global\let\lookpage@ba=-\fi
\if@footnote \if@baouter\makethiso@ba\else\makethisi@ba\fi
@@ -1301,6 +1324,8 @@
\ifx\thisti@ba+\ifx\tmemi@ba\tref@ba\else\global\let\thisti@ba=.\fi\fi
\ifx\thisti@ba-\global\let\thisti@ba=+\fi}
+\def\@bafnttextindent{0.1em} %% new in 2.5 (fnt=mpfnt)
+
\let\lastn@ba=-
\expandafter\ifx\csname @footnotetext\endcsname\relax
\type@bawarn{No footnote numbers}%
@@ -1314,13 +1339,15 @@
\global\let\thiss@ba=-%
\global\let\thisn@ba=-%
\global\let\pos@ba=0%
- \kern 0.1em\nulskip@ba{\@footnotetrue\ignorespaces
- #1\nulskip@ba\ba@textmode}\global\let\lastto@ba=\thisto@ba
+ \kern\@bafnttextindent \nulskip@ba
+ {\@footnotetrue\ignorespaces #1\nulskip@ba\ba@textmode}%
+ \global\let\lastto@ba=\thisto@ba
\global\let\lastti@ba=\thisti@ba
\global\let\lastp@ba=\thisp@ba
\global\let\lastvol@ba=\thisvol@ba
\global\let\lasts@ba=\thiss@ba
- \global\let\lastn@ba=\thisn@ba}}%
+ \global\let\lastn@ba=\thisn@ba}%
+ \ifx\pos@ba0{\@footnotetrue\fillvolref@ba{}}\fi} %% new in 2.5
\fi
\expandafter\ifx\csname @mpfootnotetext\endcsname\relax
@@ -1335,13 +1362,15 @@
\global\let\thiss@ba=-%
\global\let\thisn@ba=-%
\global\let\pos@ba=0%
- \kern 0.1em\nulskip@ba{\@footnotetrue\ignorespaces
- #1\nulskip@ba\ba@textmode}\global\let\lastto@ba=\thisto@ba
+ \kern\@bafnttextindent \nulskip@ba
+ {\@footnotetrue\ignorespaces #1\nulskip@ba\ba@textmode}%
+ \global\let\lastto@ba=\thisto@ba
\global\let\lastti@ba=\thisti@ba
\global\let\lastp@ba=\thisp@ba
\global\let\lastvol@ba=\thisvol@ba
\global\let\lasts@ba=\thiss@ba
- \global\let\lastn@ba=\thisn@ba}}%
+ \global\let\lastn@ba=\thisn@ba}%
+ \ifx\pos@ba0{\@footnotetrue\fillvolref@ba{}}\fi} %% new in 2.5
\fi
@@ -1349,7 +1378,9 @@
\newif\if@bainnerminipage\@bainnerminipagefalse
\let\ba@minipg=\minipage
-\def\minipage{\if@baminipage\@bainnerminipagetrue\else
+\def\minipage{\if@baminipage\@bainnerminipagetrue
+ %% no \fillvolref@ba{}! %%
+ \else
\savemem@ba\clearmem@ba
\global\let\lastto@ba=+%
\global\let\lastti@ba=+%
@@ -1452,15 +1483,28 @@
\newbox\testbox@ba
-\def\@printlastarg#1#2{{%
- \setbox\testbox@ba=\hbox{#2{\ignorespaces #1\ba@textmode}}%
+\def\@printlastarg#1#2#3{{% %% #2 changed into new #3 in 2.5 %%
+ \setbox\testbox@ba=\hbox{#3{\ignorespaces #1#2\ba@textmode}}%
\ifdim\ht\testbox@ba=0pt%
\if@kxxba
\gdef\bacorr{}% %% no \if@printhint\else in 2.2 %%
\fi
\else
- {\if@kxxba\iflasthasdot@ba{\not@bakntsepcorr}{\prep@bakntsepcorr}\else
- \not@bakntsepcorr\fi\ntsep}{\unhbox\testbox@ba}%
+ {\if@kxxba
+ %% \iflasthasdot@ba{\not@bakntsepcorr}{\prep@bakntsepcorr}%
+ %% ... changed in 2.5 into:
+ \prep@bakntsepcorr
+ \else
+ \not@bakntsepcorr
+ \fi
+ \ntsep
+ }{\unhbox\testbox@ba}%
+ \if@kxxba\else \if@vxxbalist\else %% finddot new in 2.5
+ \setbox\testbox@ba=\hbox{#3{#2}}%
+ \ifdim\ht\testbox@ba=0pt%
+ \let\@testa=-\finddot@ba{#1}\ifx\@testa+\@bahasdot\fi
+ \fi
+ \fi\fi
\if@kxxba
\let\@testa=-\finddot@ba{#1}%
\ifx\@testa+\@bahasdot\gdef\bacorr{}\fi
@@ -1488,11 +1532,11 @@
\def\@testb{#2}%
\setbox\testbox@ba=\hbox{\ignorespaces #1\ba@textmode}%
\ifdim\ht\testbox@ba=0pt\else
- \ifx\@testb\@leer\@bastrut\ \else %% space before *{...} %%
- {#2}\fi\fi %% #2 is \nsep at \x... %%
- {\unhbox\testbox@ba}%
- \let\@testa=-\finddot@ba{#1}%
- \ifx\@testa+\@bahasdot\fi}}
+ \ifx\@testb\@leer\@bastrut\ \else %% space before *{...}
+ {#2}\fi %% #2 is \nsep at \x...
+ {\unhbox\testbox@ba}% %% <= moved in 2.5 before \fi =>
+ \let\@testa=-\finddot@ba{#1}\ifx\@testa+\@bahasdot\fi
+ \fi}}
\newif\ifreprint@ba\reprint@bafalse
@@ -1502,16 +1546,20 @@
\errhelp{
^^JIf you use a ...v#1-cmd inside the last arg of a ...v..-cmd, it is necessary
^^Jto use \ktit{...} to mark a part of the inner title as short title, because,
- ^^Jon the v#1-list, I transform inner full titles into short titles. For that
+ ^^Jon the v-lists, I transform inner full titles into shortened titles. On the
^^Jlist, I've inserted `??' as inner short title. (In case of an inner \vli, or
- ^^J\vqu, the inner full title will also be printed separately on the v..-list.)^^J}%
- \errmessage@ba{Missing \string\ktit{...} or shadowed {\string\ktit{...}} in last arg}}\fi\fi}
+ ^^J\vqu, the inner full title will also be printed separately on the v..-list.)
+ ^^JAlso \vli[p{TEXT}]{}{}*{\ktit{..}}{...} without \ktit in TEXT is forbidden.^^J}%
+ \errmessage@ba{Missing \string\ktit{...} in *inner* ...v#1-cmd}}\fi\fi}
+ %% msgs changed in 2.5 %%
\def\@initvprintonly#1#2#3#4#5#6#7#8{{% %% #1 == li, qu %%
\resetcorr@ba
{\@memfunctions\@outsavety\@hereRfunctions\@hereFfunctions\fillnref@ba{#4}}%
\if@footnote\global\let\isibidem@ba=-\warn@baname{v#1}{#2}%
- \if@baouter\global\let\nmem@ba=\nref@ba\fi
+ \if@baouter
+ \global\let\nmem@ba=\nref@ba
+ \fi
\fi
%%%%
\let\ifmem@baouter=\if@baouter
@@ -1521,8 +1569,8 @@
\ifmem@baouter{\filltmemo@ba{}{}{}{}}\else{\filltmemi@ba{}{}{}{}}\fi
\def\@testa{#6}%
\def\execute@ktit{\@nobaktit{#1}}%
- \@baktitfalse
- \def\ktit##1{\@baktittrue
+ \@baktitfalse
+ \def\ktit##1{\global\@baktittrue %% \global new in 2.5 %%
\def\kurz{\kurz@ktit}%
\ba@varlabel{#4}{#5}{##1}%
\if@footnote
@@ -1532,30 +1580,42 @@
\fi}%
\fi
\if@makektitk{\@initaddtok{#4}{#5}{##1}{#1}{{\nsep}{#8}{v}}{1}}\fi
- \ifreprint@ba \def\execute@ktit{{\@kxxbatrue\@kprintonly{#1}{#2}{#4}{#5}{##1}{#7}}}%
- \else \def\execute@ktit{{\@firstherald\if@rheraldktit
- \cap@ba{announcektit}\@rootponly{#1}{#4}*{#5}{##1}{#7}%
+ \ifreprint@ba
+ \ifmem@baouter
+ \gdef\execute@ktit{{\@kxxbatrue\@kprintonly{#1}{#2}{#4}{#5}{##1}{#7}}}%
+ \fi
+ \else %% 2 * outer+gdef \execute@ktit new in 2.5 %%
+ \ifmem@baouter
+ \gdef\execute@ktit{{\@firstherald\if@rheraldktit
+ \cap@ba{announcektit}\@rootponly{#1}{#4}*{#5}{##1}{#7}%
\do@banohint{{\bacorr}}\cap@ba{announcekend}\fi\fi}}%
+ \fi
\fi ##1\ba@textmode}%
\ifreprint@ba
- {\setbox\testbox@ba=\hbox{#6\relax
- \if@baktit \global\let\gargc@ba=\execute@ktit
+ {\setbox\testbox@ba=\hbox{#2\relax #3\relax #4\relax #5\relax #6\relax
+ \if@baktit %% #2...#5\relax new in 2.5 %%
+ \global\let\gargc@ba=\execute@ktit
\else \gdef\gargc@ba{\@kxxbatrue\@kprintonly{#1}{#2}{#4}{#5}{\erri@ba}{#7}}%
- \type@bawarn{Missing inner \string\ktit; use `??' as short title}%
+ {\errorcontextlines=-1% %% warn changed to err 2.5 %%
+ \errhelp{See the number of the line where the error comes from ...}%
+ \errmessage@ba{Missing \string\ktit{...} in *inner* ...v#1-cmd}}%
\fi}%
{\@hereRfunctions\gargc@ba}% %% <-> \@rootponly %%
+ %% new in 2.5: see \@reprintIfunctions %%
\global\let\gargc@ba=\relax
}%
\else
- \ifx\@testa\@leer{\@vprintonly{#1}{#2}{#3}{#4}{#5}{}{#7}}\else
- \ifx\@testa\@leerz{\@vprintonly{#1}{#2}{#3}{#4}{#5}{}{#7}}\else
- {\@vprintonly{#1}{#2}{#3}{#4}{#5}{#6\relax\execute@ktit}{#7}}\fi\fi
+ \ifx\@testa\@leer{\@vprintonly{#1}{#2}{#3}{#4}{#5}{}{}{#7}}\else
+ \ifx\@testa\@leerz{\@vprintonly{#1}{#2}{#3}{#4}{#5}{}{}{#7}}\else
+ {\@vprintonly{#1}{#2}{#3}{#4}{#5}{#6}{\execute@ktit}{#7}}\fi\fi
+ %% 2.5: {#6\relax\execute@ktit} changed in {\execute@ktit}{#7} %%
\fi
}\if@footnote \if@baouter\makethiso@ba\else\makethisi@ba\fi \fi}
\def\clearmem@ba{{\@footnotetrue\filltmemo@ba{}{}{}{}\filltmemi@ba{}{}{}{}%
- \fillpmem@ba{}{}\fillvolmem@ba{}\fillnmem@ba{}}}
+ \fillpmem@ba{}{}\fillvolmem@ba{}\fillnmem@ba{}%
+ \fillvolref@ba{}}} %% new in 2.5
\def\filltmemo@ba#1#2#3#4{\if@footnote
\global\edef\tmemo@ba{{#1}{#2}{#3}{#4}}\fi}
@@ -1648,14 +1708,16 @@
{\@footnotetrue\fillsref@ba{}}
-\def\@vprintonly#1#2#3#4#5#6#7{{%
+\def\@vprintonly#1#2#3#4#5#6#7#8{{% %% #7 changed into new #8 in 2.5 %%
\@herefunctions
\def\@testa{#2}%
\ifx\@testa\@leer \@printvname{#3}{\bastrut\ }{#4}{0}{1}%
- \@printoptarg{#5}{#7}%
- \else\oletter@ba{v#1}{#2}{\@printoptarg{#5}{#7}}%
+ \@printoptarg{#5}{#8}%
+ \else\oletter@ba{v#1}{#2}{\@printoptarg{#5}{#8}}%
\fi %% #1 == li, qu %%
- \@printlastarg{#6}{}\@heraldktitfalse}}
+ \@printlastarg{#6}{#7}{}\@heraldktitfalse
+ %% {#6} changed into {#6}{#7} in 2.5 %%
+ }}
@@ -1671,7 +1733,9 @@
{\@memfunctions\@outsavety\@herefunctions\filltref@ba{#1}{#3}{#4}{#5}\fillnref@ba{#3}}%
\makeibid@ba
\if@footnote\warn@baname{k#1}{#2}\fi
- \ifx\isibidem@ba-{\@herefunctions\@kprintonly{#1}{#2}{#3}{#4}{#5}{#6}}%
+ \ifx\isibidem@ba-{\@herefunctions
+ \ifreprint@ba\@reprintIfunctions\fi %% new in 2.5
+ \@kprintonly{#1}{#2}{#3}{#4}{#5}{#6}}%
\else\ibidemname@ba
\fi
\makelast@ba}
@@ -1714,7 +1778,7 @@
\ifx\@testa\@leer \@printkname{#3}{1}\@printoptarg{#4}{#6}%
\else \oletter@ba{k#1}{#2}{\@printoptarg{#4}{#6}}%
\fi}%
- \@printlastarg{#5}{\kxxemph}%
+ \@printlastarg{#5}{}{\kxxemph}%
\if@allowconferize
\ifba@varstring\ \ba@varref{#3}{#4}{#5}%
\else \@initprinthint{#1}%
@@ -1728,7 +1792,7 @@
\@hereRfunctions
\@printkname{#2}{1}%
\@printoptarg{#3}{#5}%
- {\@kxxbatrue\@printlastarg{#4}{\kxxemph}}%
+ {\@kxxbatrue\@printlastarg{#4}{}{\kxxemph}}%
\@initprinthint{#1}}} %% #1 == li, qu %%
@@ -1737,6 +1801,13 @@
\def\next@ba{}
+%% new in 2.5:
+\def\pfilled@baon{\if@pfvba\if@footnote\global\let\pfilled@ba=+\fi\fi}
+\def\@balocalvolon{\if@pfvba\if@footnote\@balocalvoltrue\fi\fi}
+\def\@balocalpgon{\if@pfvba\if@footnote\@balocalpgtrue\fi\fi}
+\def\pevofilled@baon{\if@pfvba\if@footnote\global\let\pevofilled@ba=+\fi\fi}
+%%
+
\def\getk@bapg#1]{\@bapg{#1}\bk@bapg}
\def\getxk@bapg#1]{\@baxpg{#1}\bk@bapg}
\def\getkf@bapg#1){\@bafolio{#1}\bk@bapg}
@@ -1747,23 +1818,35 @@
\def\xk@bapg{\afterassignment\getxkch@bapg\let\next@ba= }
\def\getxkch@bapg{%
\ifx\next@ba[\let\next@ba=\getxk@bapg
- \global\let\pfilled@ba=+%
+ \pfilled@baon
\else
\ifx\next@ba(\let\next@ba=\getxkf@bapg
- \global\let\pfilled@ba=+%
+ \pfilled@baon
+ \else %% else-part new in 2.5
+ \if@pfvba{ \erri@ba}{\errorcontextlines-1%
+ \@qqertypeout{*[n]- or *(n)}{... at the end of an \if@baouter outer \else inner \fi BibArts command.}%
+ \errhelp{^^JThe * at the end of a BibArts cmd has to be followed
+ ^^Jby [PageNum] or (FolioNum) without a space before.
+ ^^JNote, that *|n| and *_n_ do not exist. An outer *[n] or *(n) may define
+ ^^Ja special page/folio inside an inner [Begin-End] or (Begin-End) array.}%
+ \errmessage@ba{The * is not directly followed by [n] or (n)}}\fi
\fi\fi
\pknext@ba}
-\def\lessinfoerror@ba#1#2#3#4#5{\if@baouter{ \erri@ba}{\errorcontextlines-1%
- \@qqertypeout{#2}{Automatic IBIDEM-setting in footnote:}%
+\def\lessinnerinfoerr@ba#1{\type@bawarn{No #1 in INNER ibidem-series}}
+
+\def\lessouterinfoerr@ba#1#2#3#4#5{{ \erri@ba}{\errorcontextlines-1%
+ %% minipage new in 2.5:
+ \@qqertypeout{#2}{Automatic IBIDEM-setting in \if@baminipage minipage \fi footnote:}%
\errhelp{
- ^^JThe BibArts command before has had a #1 as #2-number,
- ^^Jbut the command now has none. The titles are the same. I set IBIDEM,
- ^^Jbut did you mean the whole #5? Later, you may type `passim',
- ^^Jor what you've forgotten, as #2-number. (Then, you may set your
- ^^Jwhole BibArts-\cmd in {#4\cmd...}).^^J}%
- \errmessage@ba{Same title, before with :#3:, has now no #1 number}}\else
- \type@bawarn{Check #1 after inner IBIDEM}\fi}
+ ^^JYour last BibArts command has had a #1 as #2-number,
+ ^^Jbut the command here has none. The titles are the same. I set IBIDEM,
+ ^^Jbut did you want to cite the whole #5? Later, you may type
+ ^^J`passim', or what you've forgotten, as #2-number. (Then, you
+ ^^Jmay put your whole BibArts-\cmd in {#4\cmd...}.)
+ ^^JOr switch off IBIDEM: Set \clearbamem in front of your BibArts command.^^J}%
+ %% errmsg changed in 2.5
+ \errmessage@ba{Same outer title, before with :#3:, has now no #1}}}
\def\do@banohint#1{\if@printhint\else\ifba@varstring\else #1\fi\fi}
@@ -1785,54 +1868,149 @@
\let\pfilled@ba=-
\let\pevofilled@ba=-
+
+%% new in 2.5:
+\let\@bainnernewvol=-
+\let\@bainnernewpg=-
+\newif\if@balocalvol\@balocalvolfalse
+\newif\if@balocalpg\@balocalpgfalse
+\newif\if@bapglock\@bapglockfalse
+%%
+
\def\ak@bapg{\afterassignment\getakch@bapg\let\next@ba= }
\def\getakch@bapg{%
- \ifx\last@ba-\makeendcorr@ba\fi
- \global\let\last@ba=+%
- \ifx\lockpevo@ba-\ifx\next@ba|\else\ifx\next@ba_\else
- \if@pfvba
- \ifx\isibidem@ba+\ifx\pevofilled@ba+%
- \ifx\volref@ba\@leer\else\lessinfoerror@ba{no./vol}{_n_- or |n|}{{pervol}{\volref@ba}}{\notprintlongpervol}{series}\fi
- \fi\fi
- \fillvolmem@ba{}%
- \global\let\pevofilled@ba=-%
- \fi
- \fi\fi\fi
+ \ifx\last@ba-\makeendcorr@ba\fi
+ \global\let\last@ba=+%
+ \@bapglockfalse
+ %%%
+ \ifx\lockpevo@ba-\ifx\next@ba|\else\ifx\next@ba_\else
+ \if@pfvba
+ \if@footnote %% new in 2.5
+ \ifx\isibidem@ba+\ifx\pevofilled@ba+%
+ \ifx\volref@ba\@leer
+ \else
+ \if@baouter %% new in 2.5
+ \lessouterinfoerr@ba{vol/no}{|n|- or _n_}{{pervol}{\volref@ba}}{\notprintlongpervol}{series}%
+ \fillvolref@ba{}% %% new in 2.5
+ \fi
+ \fi
+ \fi\fi
+ %% 2.5: Simple \fillvolmem@ba{} changed into
+ \if@baouter
+ \fillvolmem@ba{}%
+ \else
+ \fillvolref@ba{}%
+ \fi
+ \global\let\pevofilled@ba=-%
+ \fi
+ \fi
+ \fi\fi\fi
+ %%%
\ifx\next@ba[%
- \let\next@ba=\getk@bapg \if@pfvba\global\let\pfilled@ba=+\fi
- \else\ifx\next@ba(%
- \let\next@ba=\getkf@bapg \if@pfvba\global\let\pfilled@ba=+\fi
- \else\ifx\next@ba*%
+ \@balocalpgon
+ \let\next@ba=\getk@bapg
+ \pfilled@baon
+ \else
+ \ifx\next@ba(%
+ \@balocalpgon
+ \let\next@ba=\getkf@bapg
+ \pfilled@baon
+ \else
+ \ifx\next@ba*%
+ \@balocalpgon
+ \if@baouter\else %% new in 2.5
+ \type@bawarn{Your * is at the end of an INNER cmd}%
+ \typeout@ba{ \space\space Use *[PageNum] or *(FolioNum) only at the end of OUTER BibArts cmds.}\fi
\let\next@ba=\xk@bapg
- \else\ifx\next@ba|%
- \ifx\lockpevo@ba-\if@pfvba\global\let\lockpevo@ba=+\fi
- \let\next@ba=\getvolno@ba \if@pfvba\global\let\onlypevo@ba=+\fi
- \fi \if@pfvba\global\let\pevofilled@ba=+\fi
- \else\ifx\next@ba_%
- \ifx\lockpevo@ba-\if@pfvba\global\let\lockpevo@ba=+\fi
- \let\next@ba=\getperno@ba \if@pfvba\global\let\onlypevo@ba=+\fi
- \fi \if@pfvba\global\let\pevofilled@ba=+\fi
\else
- \if@pfvba
- \ifx\isibidem@ba+\ifx\pfilled@ba+%
- \lessinfoerror@ba{page/folio}{[n]- or (n)}{\pref@ba}{\notprintlongpagefolio}{document}%
- \ifx\lockpevo@ba-%
- \fillvolmem@ba{}%
- \global\let\pevofilled@ba=-%
- \fi
- \fi\fi
- \fillpmem@ba{}{}%
- \global\let\pfilled@ba=-%
- \ifx\next@ba.%
+ \ifx\next@ba|%
+ \@balocalvolon
+ \@bapglocktrue
+ \ifx\lockpevo@ba-\if@pfvba\global\let\lockpevo@ba=+\fi
+ \let\next@ba=\getvolno@ba \if@pfvba\global\let\onlypevo@ba=+\fi
+ \fi
+ \pevofilled@baon
+ \else
+ \ifx\next@ba_%
+ \@balocalvolon
+ \@bapglocktrue
+ \ifx\lockpevo@ba-\if@pfvba\global\let\lockpevo@ba=+\fi
+ \let\next@ba=\getperno@ba \if@pfvba\global\let\onlypevo@ba=+\fi
+ \fi
+ \pevofilled@baon
+ \else
+ %%%
+ %% new in 2.5
+ \if@pfvba
+ \if@footnote %% new in 2.5
+ \ifx\isibidem@ba+%
+ \ifx\pfilled@ba+%
+ \if@baouter %% new in 2.5
+ \lessouterinfoerr@ba{page/folio}{[n]- or (n)}{\pref@ba}{\notprintlongpagefolio}{document}%
+ \fi
+ \ifx\lockpevo@ba-%
+ \fillvolmem@ba{}%
+ \global\let\pevofilled@ba=-%
+ \fi
+ \fi
+ \fi
+ %% 2.5: Simple \fillpmem@ba{}{} changed into
+ \if@baouter
+ \fillpref@ba{}{}%
+ \else
+ \fillpmem@ba{}{}%
+ \fi
+ \global\let\pfilled@ba=-%
+ \fi
+ \fi
+ %%%
+ \if@pfvba
+ \ifx\next@ba.%
+ \ifx\isibidem@ba+%
+ \ifx\onlypevo@ba-%
+ \if@ibidhp\let\next@ba=\relax\spacefactorMMM@ba\fi
+ \fi
+ \fi
+ \else
+ \spacefactorM@ba \@bastrut
+ \ifx\onlypevo@ba-\if@baouter\else\ifx\isibidem@ba+\if@ibidhp\@bahasdot\fi\fi\fi\fi %% new in 2.5
+ \fi
+ \fi
+ %%%
+ \fi\fi\fi\fi\fi
+ %%% ONLY SCREEN-MESSAGES MAY FOLLOW HERE:
+ %% new in 2.5
+ \if@pfvba\if@footnote
+ \if@baouter
+ \else
+ \if@balocalvol\global\let\@bainnernewvol=+%
+ \else\ifx\isibidem@ba-%
+ \global\let\@bainnernewvol=-%
+ \fi \fi
+ \if@balocalpg \global\let\@bainnernewpg=+%
+ \else\ifx\isibidem@ba-%
+ \global\let\@bainnernewpg=-%
+ \fi \fi
\ifx\isibidem@ba+%
- \ifx\onlypevo@ba-%
- \if@ibidhp\let\next@ba=\relax\spacefactorMMM@ba\fi
- \fi
+ \if@balocalvol
+ \else
+ \ifx\@bainnernewvol+%
+ \lessinnerinfoerr@ba{|n| or _n_}%
+ \fi
+ \fi
+ \if@balocalpg
+ \else
+ \ifx\@bainnernewpg+%
+ \if@bapglock
+ \else
+ \lessinnerinfoerr@ba{[n] or (n)}%
+ \fi
+ \fi
+ \fi
\fi
- \else
- \spacefactorM@ba \@bastrut
- \fi
- \fi\fi\fi\fi\fi\fi
+ \fi
+ \fi\fi
+ %%%
\pknext@ba} %% ||__ %%
\def\bk@bapg{\afterassignment\getbkch@bapg\let\next@ba= }
@@ -1894,7 +2072,8 @@
^^J \space when you fix the problem later: \space Type a full-cited title as {a3},
^^J \space OR set `*'-option, and type supplements and a full title as *{op}{a3}}}}}
-\def\Check@ObligatoryLastvArg#1[#2]#3#4*#5#6{\csname @#1\endcsname[#2]{#3}{#4}*{#5}{#6\@leer}\pvcheck@ba}
+\def\Check@ObligatoryLastvArg#1[#2]#3#4*#5#6{\csname @#1\endcsname[#2]{#3}{#4}*{#5}{#6}\pvcheck@ba}
+ %% {#6\@leer} changed into {#6} in 2.5 %%
@@ -1936,8 +2115,8 @@
\typeout@ba{ \space <H><return> \space for immediate help,
^^J \space <return> \space\space\space\space to continue.}}
-\def\command@misplace#1{\type@bawarn{\string#1\space was ignored:
- ^^J\space\space\space\space You've used it outside the args of ....li, ....qu, ...per, or ...arq}}
+\def\command@misplace#1{\type@bawarn{\string#1\space was ignored: You've used it
+ ^^J\space\space\space\space outside the args of ....li, ....qu, ...per, or ...arq}}
\def\@qqerrhlp#1{\errhelp{%
^^JTeX reports errors by SETTING UP in quoting your text - AFTER the error.
@@ -2649,13 +2828,6 @@
\def\sort##1{}%
}
-\def\@reprintkfunctions{% %% if bibsort is not used %%
- \def\onlyhere##1{}%
- \def\onlyout##1{##1}%
- \def\onlyvoll##1{}%
- \def\onlykurz##1{##1}%
-}
-
\def\language@barep#1#2{%
\ifnum\language=#1%
@@ -2697,16 +2869,17 @@
\gdef\bacorr{}%
\item{}\@printvname{#1}{\listlnfnsep}{#2}{1}{1}%
\if@baaddx\@printoptarg{#3}{\nsep}\else\@printoptarg{#3}{}\fi
- {\reprint@batrue \@printlastarg{#4}{}}\if@banonum{\fromnopagevxxsep}\fi\@reportbaupfalse\ignorespaces}
+ {\reprint@batrue \@printlastarg{#4}{}{}}\if@banonum{\fromnopagevxxsep}\fi\@reportbaupfalse\ignorespaces}
-\def\@vkcitentry#1#2#3#4#5#6[#7][#8](#9){\@reprintkfunctions
+\def\@vkcitentry#1#2#3#4#5#6[#7][#8](#9){\@reprintIfunctions
+ %% \@reprintkfunctions changed to \@reprintIfunctions in 2.5
\addxadd@ba#5\relax\relax\relax
\language@barep{#8}{#9}%
\activech@barep{#7}{#9}%
\makeXcorrcmd@ba{\kxxemph}{\bacorr}%
\item{}\@printkname{#1}{1}%
\if@baaddx\@printoptarg{#2}{\nsep}\else\@printoptarg{#2}{}\fi
- \@printlastarg{#3}{\kxxemph}\@initprinthint{#4}%
+ \@printlastarg{#3}{}{\kxxemph}\@initprinthint{#4}%
\if@banonum{\fromnopagevkcsep}\fi
\@reportbaupfalse\ignorespaces}
@@ -2821,11 +2994,23 @@
%%%
\sloppy\begin{description}
\listparm@ba\relax
+ \gdef\@bibsortvers{[OLD]}%
\@input{\jobname.#1}
- \def\@noitemerr{\info@emptyba{#1}}
- \end{description}\fussy}\message{\string>\string> }}
+ \def\@noitemerr{\info@emptyba{#1}\gdef\@bibsortvers{-}}
+ \end{description}\fussy}\checkversion@ba{#1}\message{\string>\string> }}
+\def\getversuf@ba#1{{\def\@testa{vli}\def\@testb{vqu}\def\@testc{vkc}\def\@testd{#1}%
+ \ifx\@testd\@testa\typeversion@ba\fi
+ \ifx\@testd\@testb\typeversion@ba\fi
+ \ifx\@testd\@testc\typeversion@ba\fi}}
+\def\typeversion@ba{{\def\@testa{[OLD]}%
+ \ifx\@bibsortvers\@testa\type@bawarn{Input file created by outdated bibsort}\fi
+ \typeout@ba{ \space Version of bibsort is \ifx\@bibsortvers\@testa older than \else \@bibsortvers\space instead \fi 2.5 (version of bibarts.sty).}}}
+
+\def\checkversion@ba#1{{\def\@testa{2.5}\def\@testb{-}% %% new in 2.5
+ \ifx\@bibsortvers\@testa\else\ifx\@bibsortvers\@testb\else
+ \getversuf@ba{#1}\fi\fi}}
\def\@hereUfunctions{%
\def\par{}%
@@ -3041,6 +3226,7 @@
\def\SS{{SS}}% %% \
\def\aa{{\r{a}}}% %% > avoid [T1] errors
\def\AA{{\r{A}}}% %% /
+ \def\onlybakey{}% %% new in 2.5 (add arg to keyword)
\ifba@varstring \@bains@labtrue
\getnext@baA#1\endlist@ba \@bains@labtrue
\getnext@baB#2\endlist@ba \@bains@labtrue
@@ -3142,8 +3328,9 @@
\ifx ~\next@ba \else\ifx :\next@ba \else\ifx ;\next@ba \else\ifx !\next@ba \else
\ifx ?\next@ba \else\ifx `\next@ba \else\ifx '\next@ba \else
\ifx <\next@ba \else\ifx >\next@ba \else
- \ifcat 1\next@ba \csname savn@bavar#1\endcsname
- \else \sonderz@banext{#1}%
+ %% \relax new in 2.5 to reduce errmsgs from \cmd{arg}: %%
+ \ifcat 1\next@ba \relax \csname savn@bavar#1\endcsname
+ \else \sonderz@banext{#1}%
\fi
\fi\fi
\fi\fi\fi
@@ -3154,16 +3341,24 @@
\fi\fi\fi\fi}%
}
+%% Ignore first arg of: \onlyvoll, \onlyout, \vauthor, \midvauthor,
+%% and new in 2.5: \starktit, \vollout, \vollhere, \sechere, \sort:
\def\analyselabeltext@ba#1{%
- \expandafter\ifx \csname next@ba\endcsname\relax\else
- \ifx \onlyvoll\next@ba \@bains@labfalse \count@ba0 \else
- \ifx \onlyout \next@ba \@bains@labfalse \count@ba0 \else
- \ifx \vauthor \next@ba \@bains@labfalse \count@ba0 \else
- \ifx \midvauthor \next@ba \@bains@labfalse \count@ba0
- \fi\fi\fi\fi
+ \expandafter\ifx \csname next@ba\endcsname\relax \else
+ \ifx \onlyvoll \next@ba \@bains@labfalse \count@ba0 \else
+ \ifx \onlyout \next@ba \@bains@labfalse \count@ba0 \else
+ \ifx \vauthor \next@ba \@bains@labfalse \count@ba0 \else
+ \ifx \midvauthor \next@ba \@bains@labfalse \count@ba0 \else
+ \ifx \starktit \next@ba \@bains@labfalse \count@ba0 \else
+ \ifx \vollout \next@ba \@bains@labfalse \count@ba0 \else
+ \ifx \vollhere \next@ba \@bains@labfalse \count@ba0 \else
+ \ifx \sechere \next@ba \@bains@labfalse \count@ba0 \else
+ \ifx \sort \next@ba \@bains@labfalse \count@ba0
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi
\if@bains@lab
- \ifcat A\next@ba \csname savn@bavar#1\endcsname
- \else \prepnumplussonder@ba{#1}%
+ %% \relax new in 2.5 to reduce errmsgs from \cmd{arg}: %%
+ \ifcat A\next@ba \relax \csname savn@bavar#1\endcsname
+ \else \prepnumplussonder@ba{#1}%
\fi
\else
\ifx \bgroup\next@ba \advance\count@ba by 1 \else
@@ -3960,7 +4155,7 @@
\def\addtobib{\addtoarq{}}
\newif\if@oldba\@oldbafalse
\def\makebar{\typeout@ba{ \space ***** \space That is obviously a file based on BibArts 1.x \space *****
- ^^J \space ***** \space BibArts 2.4 starts compatibility mode for 1.3 \space *****}%
+ ^^J \space ***** \space BibArts 2.5 starts compatibility mode for 1.3 \space *****}%
\def\bibarts{\BibArts}%
\def\schrift{}%
\def\barschrift{}%
diff --git a/macros/latex/contrib/bibarts/bibarts.tex b/macros/latex/contrib/bibarts/bibarts.tex
index deed6c30d7..eaa2f92989 100644
--- a/macros/latex/contrib/bibarts/bibarts.tex
+++ b/macros/latex/contrib/bibarts/bibarts.tex
@@ -1,5 +1,5 @@
-%% BibArts 2.4 assists you to write LaTeX texts in arts and humanities.
-%% Copyright (C) 2022 Timo Baumann bibarts[at]gmx.de (2022/01/10)
+%% BibArts 2.5 assists you to write LaTeX texts in arts and humanities.
+%% Copyright (C) 2022b Timo Baumann bibarts[at]gmx.de (2022/10/01)
%%% LaTeX + "bibsort -i bibarts -m -utf8 -k -e -g1 -h" + LaTeX %%%
@@ -21,7 +21,7 @@
\setlength{\footnotesep}{2ex} %% ... wie in bibarts.sty 2.0; siehe README.txt. %%
- \usepackage[utf8]{inputenc} %% bibarts.tex, Vers. 2.4, enthaelt utf8-Zeichen. %%
+ \usepackage[utf8]{inputenc} %% bibarts.tex, Vers. 2.5, enthaelt utf8-Zeichen. %%
\usepackage[T1]{fontenc} %% Automatische Trennung von Worten mit Umlauten. %%
@@ -34,7 +34,7 @@
%\allprrtrue %% <= Prozent am Zeilenanfang auf Wunsch entfernen;
-%% mit \allprrtrue kommen ALLE utf8-Zeichen, die bibsort 2.4 kennt,
+%% mit \allprrtrue kommen ALLE utf8-Zeichen, die bibsort 2.5 kennt,
%% in "Das Personenregister als Beispiel f"ur das Sortieren" (Kap. 18).
@@ -44,14 +44,16 @@
\author{\scshape{Timo Baumann}}
- \date{\small Version 2.4 (2022). \hspace{.5em}\copyright\ 2.x (2022, 2021, 2019, 2016, 2015).
- \hspace{.5em}\textbf{Inhalt S.\,\pageref{SectIn}}.}
+ \date{\small {Version 2.5 (2022b).}
+ \hspace{2.25em} {\copyright\ 2.x (2015$-$2022).}
+ \hspace{2em} {\textbf{Inhalt siehe S.\,\pageref{SectIn}}.}}
%% Trennhilfen hier sind teilweise heute nicht mehr noetig ... %%
\hyphenation{Stern-ar-gu-ment
Voll-ein-trag
+Band-an-ga-be
Satz-ende
Nach-kom-ma-stel-len
De-zi-mal-zah-len-er-ken-nung
@@ -97,10 +99,9 @@ Zei-len-um-bruch
\maketitle
\noindent
- \BibArts\ soll \LaTeX\hy Anwender beim Schreiben geisteswissenschaftlicher
- Texte unterst"utzen (\kern-.05em\textit{arts faculty}). Der Vorspann eines deutschen
- \LaTeX\hy Textdokuments, das das Stylefile \verb|bibarts.sty| einl"adt,
- sieht typischerweise so aus:
+ \BibArts\ verfolgt die Idee, geisteswissenschaftliche Belegapparate direkt aus dem
+ Text zu erzeugen (\textit{Bibliography in the Arts}). Der Vorspann eines deutschen
+ \LaTeX\hy Textdokuments, das \texttt{bibarts.sty} einl"adt, sieht typischerweise so aus:
\vspace{-1.5ex}
{\small\begin{verbatim}
@@ -123,11 +124,11 @@ Zei-len-um-bruch
\hspace{.05em}markiert werden. \hspace{.025em}Und f"ur \BibArts\ gilt:
\Doppelbox
- {...\bs footnote\{Ein Beispiel für Geschichtsliteratur ist
+ {...\bs footnote\{Ein Beispiel f"ur Geschichtsliteratur ist
\bs vli\{Hans-Ulrich\}\{Wehler\}\{Das Deutsche Kaiserreich,
\\ Göttingen 1994\}.\}
}
- {Einfaches Vollzitat.\footnote{Ein Beispiel für Geschichtsliteratur ist
+ {Minimale volle Literaturangabe.\footnote{Ein Beispiel f"ur Geschichtsliteratur ist
\vli{Hans-Ulrich}{Wehler}{Das Deutsche Kaiserreich,
Göttingen 1994}.}
}
@@ -141,7 +142,7 @@ verwendeter Kurztitel so einf"uhren:
\bs vli\{Niklas\} \{Luhmann\} \{\bs ktit\{Soziale Systeme\}.
\\ Grundriß einer allgemeinen Theorie, 1984: Frankfurt/M.\}.\}
}
-{Vollwertiges Vollzitat.\footnote{Soziologie:
+{Erweiterte volle Literaturangabe.\footnote{Soziologie:
\vli{Niklas} {Luhmann} {\ktit{Soziale Systeme}. Grundriß einer
allgemeinen Theorie, 1984: Frankfurt/M.}.\balabel{luhmann}}
}
@@ -164,21 +165,21 @@ nichts mit \textsc{Bib}\TeX\ zu tun:\pdfko{.25}
\vspace{-.5ex}
\begin{verbatim}
- bibsort -g1 -k -utf8 meintext
+ bibsort -g1 -k -utf8 meintext
\end{verbatim}
\vspace{-3.25ex}\noindent
in die Kommandozeile einzugeben. Dann liest \verb|bibsort| die mit
- \verb|\vli|\hy Literaturangaben bef"ullte Datei \verb|meintext.aux| ein,
+ \verb|\vli|\hy Literaturangaben bef"ullte Datei \hspace{.125em}\verb|meintext.aux| \hspace{.1em}ein,
sortiert die Vollzitate "uber die Option \verb|-g1| \hspace{.1em}nach
deutschen Sortierregeln und legt das Ergebnis ab in einer Datei
- \verb|meintext.vli|, die im Text mit \verb|\printvli| bei der zweiten
+ \hspace{.1em}\verb|meintext.vli|, die im Text mit \verb|\printvli| bei der zweiten
\LaTeX\hy "Ubersetzung ausgedruckt wird. Die Option \verb|-k|
\hspace{.2em}bewirkt, dass \textit{ein} Autor (Vor- und Nachname gleich),
der mit mehreren Werken zitiert wird, ab seiner zweiten Nennung auf der
Literaturliste als $\sim$ erscheint. \verb|-utf8| \hspace{.2em}sortiert
- UTF8\hy Zeichen analog zu \verb|utf8enc.dfu| 2021/06/21 v1.2n
- (\kern-.05em\textit{ohne} \verb|\cyr|...\ und \verb|\CYR|...\hy Zeichen).
+ UTF8\hy Zeichen analog zu \verb|utf8enc.dfu| \hspace{.05em}{\small 2022/06/07} \hspace{.05em}v1.3c
+ (\kern-.075em\textit{ohne} \verb|\cyr|...\ und \verb|\CYR|...\hy Zeichen).
\vspace{1ex}\noindent
Viele Texteditoren k"onnen den Start automatisieren. Falls sich die Datei
@@ -204,7 +205,7 @@ nichts mit \textsc{Bib}\TeX\ zu tun:\pdfko{.25}
Falls in Vollzitaten der Kurztitel mit \verb|\ktit| markiert ist, erscheint
das Kurzzitat (Nachname plus Kurztitel) also im Verzeichnis. Um
\verb|\printvli| zu nutzen, m"ussen Sie \verb|\ktit| also nicht verwenden
- $-$ aber dazu, \verb|\printnumvkc| zu\pdfko{.5}\
+ $-$ aber dazu, \verb|\printnumvkc| zu\pdfko{.25}\
bef"ullen. Dahinter folgten Orte mit `echten' Kurzzitaten; dazu gleich unten.
Anwender, die das [L] $-$\,hei"st: \textit{Volltitel findet sich auf der
@@ -241,10 +242,10 @@ nichts mit \textsc{Bib}\TeX\ zu tun:\pdfko{.25}
\end{verbatim}}
\vspace{-2ex}\noindent
- Die Kontrolle macht \BibArts\ mittels der Daten f"ur die \hspace{-.2em}\verb|.vkc|\hy Datei:
- (1)~Nachnamen\hy Argument und Argument von\hspace{-.1em} \verb|\ktit|\hspace{.1em} aus \underline{v\ko}\hy
- Belegen, (2)~Namen- und Kurztitel\hy Argument aus \underline{k}\hy Belegen.
- Die\hspace{-.2em} \verb|.vkc|\hy Datei, die `\ko\textit{\underline{c}ites}'
+ Die Kontrolle macht \BibArts\ mittels der Daten f"ur die \hspace{-.175em}\texttt{.\ko vkc}\hy Datei:
+ \hspace{.1em}(1)~Nachnamen\hy Argument und Argument von\hspace{-.1em} \verb|\ktit|\hspace{.1em} aus \underline{v\ko}\hy
+ Belegen, \hspace{.1em}(2)~Namen- und Kurztitel\hy Argument aus \underline{k}\hy Belegen.
+ Die \hspace{-.175em}\texttt{.\ko vkc}\hy Datei, die `\ko\textit{\underline{c}ites}'
von Literatur \textit{und} gedruckten Quellen enth"alt, wurde oben mit
\verb|\printnumvkc| ausgedruckt.
@@ -255,7 +256,8 @@ nichts mit \textsc{Bib}\TeX\ zu tun:\pdfko{.25}
\Doppelbox
{...\bs footnote\{\bs kqu\{Clausewitz\}
\\ \hspace{2em} \{Vom Kriege\}.\}
- \ Aber ... \\
+ \ Aber ...
+ \\[.5ex]
...\bs footnote \b{\b{\{}}Siehe dazu weiter
\\ \hspace{.5em} \bs vqu \{Carl von\}
\{Clausewitz\}
@@ -281,9 +283,9 @@ nichts mit \textsc{Bib}\TeX\ zu tun:\pdfko{.25}
\end{verbatim}} %% Zeilenangaben nur ausserhalb \Doppelbox brauchbar %%
\vspace{-2.75ex}\noindent
- Die mehrfache Vergabe \textit{gleicher} Kurzzitate ... \footnote{\vqu{Carl
+ Mehrfaches Vollzitieren (mehrfache Vergabe \textit{eines} Kurzzitats) ... \footnote{\vqu{Carl
von}{Clausewitz}{\ktit{Vom Kriege}. Hinterlassenes Werk, 3.\,Auf"|l.\
- Frankfurt/M 1991}.} ... ergibt solche Warnungen
+ Frankfurt/M 1991}.} ... ergibt
(der Vergleich ist f"ur \textit{aktive} \verb|"| sensitiv und \verb|!"|
k"undigt deren Vorkommen an):
@@ -297,7 +299,7 @@ nichts mit \textsc{Bib}\TeX\ zu tun:\pdfko{.25}
\vspace{-2.75ex}\noindent
Falls Sie in direkt aufeinanderfolgenden Fu"snoten \textit{verschiedene}
Werke von \textit{einem} Autor zitieren, erscheint im
- \LaTeX\kern.05em-\hspace{-.05em}\verb|.log|\kern.05em\hy File und auf dem
+ \LaTeX\hy\hspace{-.1em}\texttt{.\ko log}\kern.05em\hy File und auf dem
Bildschirm:\balabel{DERS}%
% Meldung ...vqu-cmd in 2.3 geaendert in ...vqu
@@ -347,118 +349,112 @@ als~...\kern.15em.\footnote{\kqu{Clausewitz}{Strategie}[60].
\BibArts\ druckt in Fu"snote\,\ref{ErsterFall} nur den Abk"urzungspunkt von \textsc{ebd.},
nicht aber den direkt folgenden Punkt am Satzende. Dies funktioniert nur,
-wenn zwischen \verb|[|\textit{Seitenzahl}\verb|]| und \verb|.|
+wenn zwischen \verb|[|\textit{Seitenzahl}\verb|]| und \hspace{-.05em}\verb|.|
\textit{keine Klammern oder Leerzeichen} stehen ...\footnote{\textbf{\kqu{Clausewitz}{Strategie}[60]}.
\hspace{5.43em} $\Leftarrow$ \ \texttt{\bs textbf\b{\{}\bs kqu\{Clausewitz\}\{Strategie\}[60]\b{\}}.
\texttt{ \%falsch}}}\kern.075em!
Ein automatisches Ebenda\hy Setzen f"uhrt \BibArts\ in einer Fu"snote nicht durch,
-wenn in der vorausgehenden Fu"snote zwei verschiedene Werke angegeben sind
+falls in der vorausgehenden Fu"snote zwei verschiedene Werke angegeben sind
(weil dies nicht eindeutig w"are):
\hspace{.1em}...\footnote{\kqu[m]{Clausewitz}{Strategie}[60] und \kqu[m]{Clausewitz}{Vom Kriege}.
\hspace{3em} \texttt{\%\% Ein Autor mit zwei Werken. \%\%}}
$\leftarrow$
\footnote{\kqu[m]{Clausewitz}{Strategie}[12].
\hspace{3.85em} $\Leftarrow$ \ \texttt{\bs kqu[m]\{Clausewitz\}\{Strategie\}[12].}}
-... Mit \verb|\notibidemize| l"asst sich das automatische Ebenda\hy Setzen ausschalten
-(nicht demonstriert).
+... Mit \verb|\notibidemize|\pdfko{.25}\
+l"asst sich das automatische Ebenda\hy Setzen ausschalten \baref[demonstriert]{notibidemize}.
+
+Das automatische \textsc{ebd.}\hy Setzen f"uhrt \BibArts\ nur von
+Fu"snote zu Fu"snote durch, nicht im Haupttext. Nie in \textsc{ebd.}
+\hspace{-.05em}umgewandelt werden v\fhy Befehle.
In jedem Fall ist sinnvoll, im letzten Argument eines v\fhy Befehls
einen Teil des Volltitels mittels \hspace{-.1em}\verb|\ktit| als Kurztitel zu
-markieren: Dies bewirkt einerseits den Eintrag ins \hspace{-.25em}\verb|.vkc|\hy Verzeichnis
+markieren: Dies bewirkt einerseits den Eintrag ins \hspace{-.175em}\texttt{.\ko vkc}\hy Verzeichnis
und erm"oglicht \texttt{bibsort} parallel die Kontrolle, ob beim Erstzitieren stets
vollzitiert wurde. Andererseits kann nur dann ein k\fhy Befehl in der
folgenden Fu"snote als \textsc{ebd.} ausgedruckt werden.
\BibArts\ erzwingt aber keine Verwendung von \hspace{-.1em}\verb|\ktit| in normalen
v\fhy Befehlen, denn sicherlich wollen manche Anwender die k\hy Befehle
-\hspace{-.1em}\verb|\kli| und \hspace{-.075em}\verb|\kqu|\pdfko{.5}\
+\hspace{-.1em}\verb|\kli| und \hspace{-.075em}\verb|\kqu|\pdfko{.25}\
"uberhaupt nicht benutzen.\footnote{Das
-unten eingef"uhrte Setzen von \hspace{-.1em}\textit{`inneren' v\fhy Befehlen} (im letzten Argument
-eines \hspace{-.1em}\textit{`"au\hyss eren' v\fhy Befehls}) ist dann allerdings nicht m"oglich;
-\hspace{-.1em}\textit{`innere\kern-.075em' v\fhy Befehle} m"ussen immer ein \texttt{\bs ktit} haben.
-Das liegt daran, dass auf den v\fhy Listen \hspace{-.1em}\textit{`innere\kern-.075em' v\fhy Befehle}
-als Kurztitel ausgedruckt werden; der \hspace{-.1em}\textit{`innere\kern-.075em' v\fhy Befehl}
-erh"alt automatisch seinen eigenen v\fhy Listenpunkt! Falls Sie \textit{beides} nicht wollen, k"onnen
-Sie \hspace{-.1em}\textit{`innen'} \texttt{\bs ntvauthor} verwenden (siehe unten S.\,\pageref{ntvauthor}).}
-Seit \BibArts~2.2 setzt \texttt{bibsort} "ubrigens Meldungen als Kommentare
-in den erzeugten Dateien \hspace{-.25em}\verb|.vli| und
-\hspace{-.2em}\verb|.vqu|\kern.05em, falls \hspace{-.075em}\verb|\ktit|
-gelegentlich verwendet und gelegentlich vergessen
-wurde.\footnote{Im \hspace{-.15em}\texttt{.vli}\hy File
-etwa bei \hspace{.075em}\texttt{Wehler}: \hspace{.225em}\abra{...}
-\hspace{.1em}\texttt{No} \texttt{\bs ktit} \texttt{in} \texttt{arg} \texttt{4}
-\texttt{(other} \texttt{entries} \texttt{have} \texttt{\bs ktit).}}
-
-Das Weglassen von \hspace{-.05em}\verb|\ktit| ist aber keine gute Methode, im Ausdruck von
+unten eingef"uhrte Setzen von \hspace{-.1em}\textit{`\kern.05em inneren' v\fhy Befehlen} (ins letzte Argument
+eines \hspace{-.1em}\textit{`"au\hyss eren' v\fhy Befehls}) ohne \texttt{\bs ktit} ist nicht m"oglich;
+\hspace{-.1em}\textit{`\kern.05em innere\kern-.075em' v\fhy Befehle} m"ussen ein \texttt{\bs ktit} haben!
+Statt \textit{`\kern.05em innerer' v\fhy Befehle} k"onnen
+Sie \texttt{\bs ntvauthor} verwenden (siehe unten S.\,\pageref{ntvauthor}).}
+Falls Sie \hspace{-.075em}\verb|\ktit| dagegen uneinheitlich verwenden,
+warnt \texttt{bibsort} summarisch auf dem Bildschirm und setzt (in Version 2.5 \balabel{angepasste} angepasste) Kommentare
+bei den Eintr"agen in die Dateien \hspace{-.175em}\texttt{.\ko vli} und
+\hspace{-.15em}\texttt{.\ko vqu}\kern.05em.\footnote{Im \hspace{-.175em}\texttt{.\ko vli}\hy File
+etwa bei \hspace{.075em}\texttt{Wehler}:
+\hspace{.5em}\texttt{\%\% \string<- Warning *outer v-cmd*: \bs ktit not used (or is masked)\string;
+most other entries use arg 4 (reported No. 1).}
+$-$ Dabei ist mit \hspace{.05em}\texttt{masked} \hspace{.05em}gemeint, dass \hspace{-.05em}\texttt{\bs ktit} im Argument von
+\hspace{-.05em}\texttt{\bs onlyhere} oder \hspace{-.05em}\texttt{\bs onlykurz} steht.\pdfko{.25}\
+\texttt{\bs ktit} aber ins Argument eines
+Befehls wie \hspace{-.05em}\texttt{\bs textbf} zu setzen, ist seit Version 2.5 erlaubt!}
+
+Das Weglassen von \hspace{-.05em}\verb|\ktit| ist allerdings keine gute Methode, im Ausdruck von
Vollzitaten die\hspace{.15em} {\footnotesize im Folgenden \hspace{-.075em}\fabra{...}}\kern.15em\hy
Ank"undigung \hspace{.1em}(wie nachfolgend kurzzitiert werden wird)
auszuschalten. Dazu dient vielmehr \verb|\notannouncektit|, das
im Dokumentenvorspann \textit{global} gesetzt werden kann. Das Beispiel zeigt,
-wie es \textit{lokal} $-$\,also zusammen mit dem v\fhy Befehl eingeklammert\,$-$ zu
+wie es {\small\texttt{\b{\b{\{}}}\kern.025em\textit{lokal}\kern.075em\texttt{\b{\b{\}}}}}
+$-$\,also zusammen mit dem v\fhy Befehl eingeklammert\,$-$ zu
setzen ist:\footnote{Das lokale Setzen eines v\fhy Befehls unter
\texttt{\bs notannouncektit} scheint zwar naheliegend, falls ein Werk nur
einmal pro Text angef"uhrt wird. Aber falls Sie sp"ater \textit{dasselbe} Werk
doch noch kurzzitieren sollten, macht \BibArts\ keine Meldung, dass
-\textit{der} Kurztitel \textit{im Text}\pdfko{.01}\
+\textit{der} Kurztitel \textit{im Text}\pdfko{0}\
nicht vorangek"undigt wurde: \hspace{.025em}\texttt{bibsort}
wei"s von Ihrem \texttt{\bs notannouncektit} nicht~(nie!).}
+\vspace{-.75ex}
\Doppelbox
{... \bs vli\{Niklas\}\{Luhmann\}
\\ \{\bs ktit\{Soziale Systeme\}.
\\ \ Grundriß einer allgemeinen
- \\ \ Theorie, 1984: Frankfurt/M.\}
- \\[1.25ex]
- Unannonciert:
+ \\ \ Theorie, 1984: Frankfurt/M.\}.
+ \\[4.5ex]
\b{\b{\{}}\bs notannouncektit
- \bs vli\{Niklas\}\{Luhmann\} \b{\{}\bs ktit\{Soziale Systeme\}.
+ \\ ... \bs vli\{Niklas\}\{Luhmann\} \b{\{}\bs ktit\{Soziale Systeme\}.
\\ \ Grundriß einer allgemeinen
- \\ \ Theorie, 1984: Frankfurt/M.\b{\}}\b{\b{\}}}
- \\[.75ex] \%\% Zu \}. siehe unten S.\pageref{v-Ausnahme}! \%\%
+ \\ \ Theorie, 1984: Frankfurt/M.\b{\}}.\b{\b{\}}}
}
-{\vspace{.375ex}
+{\vspace{.25ex}
Annonciert: \vli{Niklas}{Luhmann} {\ktit{Soziale Systeme}.
- Grundriß einer allgemeinen Theorie, 1984: Frankfurt/M.}
+ Grundriß einer allgemeinen Theorie, 1984: Frankfurt/M.}.
\\[4.6ex] Unannonciert:
{\notannouncektit
\vli{Niklas}{Luhmann} {\ktit{Soziale Systeme}.
Grundriß einer allgemeinen
- Theorie, 1984: Frankfurt/M.}}
-}
+ Theorie, 1984: Frankfurt/M.}.}
+}%
-\vspace{.5ex}\noindent
+\noindent
Beide \verb|\vli|\hy Befehle ergeben $-$\,weil beide ein \verb|\ktit| haben\,$-$
-auch Eintr"age in die \hspace{-.175em}\verb|.vkc|\hy Datei \hspace{.1em}(die
+auch Eintr"age in die \hspace{-.125em}\texttt{.\ko vkc}\hy Datei \hspace{.1em}(die
\hspace{.05em}{\small\balistnumemph\thepage} \hspace{.05em}hinter
\hspace{.05em}{\small\printonlykli{Luhmann}{Soziale Systeme}}
\hspace{.1em}in der Liste S.\,\pageref{vkc}).
-\vspace{1ex}\noindent
-Das automatische \textsc{ebd.}\hy Setzen f"uhrt \BibArts\ nur von
-Fu"snote zu Fu"snote durch, nicht im Haupttext. Nie in \textsc{ebd.}
-\hspace{-.05em}umgewandelt werden v\fhy Befehle.
-
\vspace{1ex}\noindent
Auch f"ur den Texttyp \textbf{Aufsatz} $-$\,gemeint ist:
falls \verb|\printvli| nicht verwendet wird\,$-$ ist das Setzen von \hspace{-.1em}\verb|\ktit|
stets sinnvoll. Dann l"asst sind n"amlich beim Kurzzitat ein
Querverweis auf das Vollzitat ausdrucken, um auf die vollst"andigen bibliographischen
-Angaben hinzuweisen. Eingeschaltet wird dies mit \verb|\conferize|\kern.05em. Dieser Befehl
-sollte global gelten, also im Vorspann von
-\LaTeX\hy Textdateien gesetzt werden.\footnote{Dies hat nichts
-damit zu tun, ob f"ur den \LaTeX\hy Text der Dokumentenstil \texttt{\{article\}}
-oder \texttt{\{book\}} gew"ahlt wird. Vielmehr sind die Auswahl des
-Dokumentenstils und das Setzen von \texttt{\bs conferize} zwei voneinander
-unabh"angige Entscheidungen. $-$ Studentische Hausarbeiten werden zwar oft
-als Aufs"atze bezeichnet, sollen aber meist eine Literaturliste haben.}
-Die Nummern der folgenden Fu"snoten \ref{vz} und \ref{fz} erscheinen auch bei \textsc{Luhmann} im
-Kurzzitateverzeichnis Seite\nobreak\hspace{.25em}\pageref{vkc}\pdfko{.25}\
-(das \hspace{.05em}f"ur Kontrollen auch im \verb|\conferize|\kern.1em\hy Modus
-\hspace{.05em}ausgedruckt werden kann):
+Angaben hinzuweisen. Eingeschaltet wird dies mit \verb|\conferize|\kern.05em.\footnote{Dies hat nichts
+mit der Auswahl des Dokumentenstils \texttt{\{article\}} oder \texttt{\{book\}} zu tun.} Dieser Befehl
+sollte global gelten, also im Vorspann von \LaTeX\hy Textdateien gesetzt werden.
+Die Nummern der folgenden Fu"snoten \ref{vz} und \ref{fz} erscheinen unter \textsc{Luhmann} auch im
+Kurzzitateverzeichnis Seite \hspace{-.075em}\pageref{vkc} \hspace{.05em}(das
+im \hspace{-.025em}\verb|\conferize|\kern.125em\hy Modus f"ur Kontrollen ausgedruckt werden kann):
-\vspace{.25ex}
+\vspace{-.75ex}
\Doppelbox
{\vspace{1.25ex}
\bs conferize\ ...\bs footnote\b{\{}
@@ -480,10 +476,17 @@ Kurzzitateverzeichnis Seite\nobreak\hspace{.25em}\pageref{vkc}\pdfko{.25}\
...\footnote{\label{fz}Kurzzitat: \kli{Luhmann} {Soziale Systeme}[23\f].}
}
-\vspace{.25em}\noindent
-Dies funktioniert sogar, falls \LaTeX\hy Befehle in den Nachnamen- oder Kurztitel\hy Argumenten der
-v- und k\fhy Befehle stehen. \BibArts\ kopiert aus dem Text, den Sie in diese Argumente tippen,
-insbesondere Zeichen \verb|A| bis \verb|Z|\kern.025em, \verb|a| bis \verb|z| und \verb|0| bis 9\kern.05em,
+\vspace{-.125em}\noindent
+Dies funktioniert sogar, falls in den Nachnamen- oder
+Kurztitel\hy Argumenten der v- und k\fhy Belege \LaTeX\hy Befehle stehen.\footnote{Allerdings
+sollten Sie \hspace{-.1em}\texttt{\bs newcommand}\kern.075em\hy Definitionen, die \hspace{-.05em}\texttt{\bs onlyvoll} oder \hspace{-.05em}\texttt{\bs onlyout}
+\textit{enthalten},
+unter \hspace{-.1em}\texttt{\bs conferize} \textit{nicht} verwenden. Wie \hspace{-.05em}\texttt{\bs onlyvoll} \hspace{.05em}und \texttt{\bs onlyout} d"urfen Sie
+zudem \hspace{-.05em}\texttt{\bs starktit} \baref{starktit}, \hspace{-.05em}\texttt{\bs vollhere}\kern.025em, \hspace{-.05em}\texttt{\bs vollout} \baref{vollout}
+sowie \hspace{-.05em}\texttt{\bs sechere} \baref{sechere} nur \textit{direkt} antippen.
+Dagegen sind \texttt{\bs onlykurz} und \texttt{\bs onlyhere} in Makros erlaubt.\balabel{conferizelimits}}
+\BibArts\ kopiert aus dem Text, den Sie in diese Argumente tippen,
+insbesondere Zeichen \verb|A| bis \verb|Z| \hspace{.025em}und \verb|a| bis \verb|z| \hspace{.1em}sowie \verb|0| bis \verb|9|,
um das \textit{Schl"usselwort} f"ur die Marke automatisch zu erzeugen.\footnote{UTF8\hy Zeichen
werden nicht "ubernommen. In den Marken fehlen ggf.\ Zeichen wie \texttt{ß}\pdfko{.5}\
und die Umlaute \texttt{ä}, \texttt{ö}, \texttt{ü}, \texttt{Ä}, \texttt{Ö}, \texttt{Ü}.
@@ -495,7 +498,7 @@ wird bei der "Ubersetzung \hspace{.2em}{\texttt{LaTeX Warning:}
\hspace{.2em}auf den Bildschirm ausgedruckt.
Die beiden Namen w"aren dann als \hspace{.1em}\texttt{M\bs \string"uller}
\hspace{.1em}und \hspace{.125em}\texttt{M\bs \string"oller} \hspace{.1em}zu tippen.
-\BibArts\ bildet n"amlich einige Sonderzeichen bzw.\ Akzente im Schl"usselwort ab, etwa:\hspace{.8em}
+\BibArts\ bildet n"amlich einige Sonderzeichen bzw\ko.\ Akzente im Schl"usselwort ab, etwa:\hspace{.8em}
\texttt{\bs \string`}\nobreak\hspace{.25em}$\Rightarrow$\nobreak\hspace{.2em}\texttt{[}\hspace{.85em}
\texttt{\bs \string'}\nobreak\hspace{.25em}$\Rightarrow$\nobreak\hspace{.2em}\texttt{]}\hspace{.8em}
\texttt{\bs \string"}\nobreak\hspace{.25em}$\Rightarrow$\nobreak\hspace{.2em}\texttt{*}\hspace{.8em}
@@ -514,12 +517,12 @@ Die beiden Namen w"aren dann als \hspace{.1em}\texttt{M\bs \string"uller}
\{Die \bs ktit\{Reise\}, Verlagsstadt 2002\}}\hspace{.3em}
die Querverweis\hy Marke
\hspace{.325em}\texttt{\bs newlabel\{baf.M*uller..Reise\}\{\{{\normalfont
-\textit{Fu"snote}}\}\{{\normalfont \textit{Seite}}\}\}}\hspace{.35em} ins\hspace{-.15em} \texttt{.aux}\hy File ab.
+\textit{Fu"snote}}\}\{{\normalfont \textit{Seite}}\}\}}\hspace{.35em} ins \hspace{-.175em}\texttt{.aux}\hy File ab.
$-$ Falls Sie mit \texttt{ngerman.sty} oder babel\hy ngermanb stattdessen \hspace{-.075em}\texttt{\string"u} tippen, wird
\texttt{Muller}\pdfko{.325}\ automatisch erzeugt; dies unterschiede sich ebenfalls von einem mit \hspace{-.075em}\texttt{\string"o} erzeugten \texttt{Moller}.}
Um bei Querverweisen in jedem Fall unabh"angig zu sein, steht zus"atzlich
-das Befehlspaar \verb|\balabel| und \verb|\baref| bereit, um `von Hand'
+das Befehlspaar \verb|\balabel{|\textit{Schl"usselwort}\verb|}| und \verb|\baref{|\textit{Schl"usselwort}\verb|}| bereit, um stets
Marken setzen zu k"onnen, wie k\fhy Befehle es im \hspace{-.075em}\verb|\conferize|\hy Stil
tun: \hspace{.05em}\verb|\baref| wei"s ebenfalls eigenst"andig, ob
\verb|\balabel| in einer Fu"snote steht. Die \textit{Schl"usselworte}
@@ -533,7 +536,7 @@ Befehle wie \texttt{\bs underline} \hspace{.05em}verboten.}
M"uller \bs balabel\{Müller\} im
Text.\bs footnote\b{\{}Maier in
\\ \ Fu"snote.\bs balabel\{Maier\}\b{\}}
- \\ ... M"uller ist nochmal erw"ahnt \bs baref\{Müller\}
+ \\[.25ex] ... M"uller ist nochmal erw"ahnt \bs baref\{Müller\}
und Maier ebenfalls \bs baref[vgl.]\{Maier\}.
}
{M"uller \balabel{Müller} im
@@ -544,18 +547,18 @@ Befehle wie \texttt{\bs underline} \hspace{.05em}verboten.}
}
\vspace{-.25ex}\noindent
-\texttt{[}\textit{OptionalArg}\texttt{]} "uberschreibt das voreingestellte \textsf{siehe}
-(\verb|\grefverbname|: S.\,\pageref{grefverbname}).
+\texttt{[}\kern-.075em\textit{OptionalArg}\kern-.025em\texttt{]} "uberschreibt das voreingestellte \hspace{.15em}\textsf{siehe}
+\hspace{.1em}(\verb|\grefverbname|: S.\,\pageref{grefverbname}).
\vspace{1.5ex}\noindent
-Nun zur"uck zu den v\fhy Befehlen. Bei der Auswahl eines Kurztitels aus
-dem Volltitel mit \verb|\ktit| kann es vorkommen, dass
-\textit{dort} der \textbf{Kurztitel mit einem Kleinbuchstaben} beginnt. \BibArts\
+Nun zur"uck zu den v\fhy Befehlen. Bei der Markierung des
+\hspace{-.1em}\verb|\ktit{|\textit{Kurztitels}\verb|}| kann es vorkommen, dass
+dort im Volltitel der \textbf{Kurztitel mit einem Kleinbuchstaben} beginnt. \BibArts\
erkennt die Verbindung mit sp"ater in k\fhy Befehlen gro"sgeschriebenen
Kurztiteln mittels \hspace{-.05em}\verb|\onlyvoll| und \verb|\onlykurz|:
-\vspace{-.325ex}
+\vspace{-.5ex}
\label{Ferguson}%
\Doppelbox
{\vspace{.75ex}
@@ -564,9 +567,9 @@ Kurztiteln mittels \hspace{-.05em}\verb|\onlyvoll| und \verb|\onlykurz|:
\\ \ \bs ktit\b{\{}\bs onlykurz\{F\}\%
\\ \ \ \bs onlyvoll\{f\}alsche\bs onlykurz\{r\}
\\ \ \ Krieg\b{\}}, München 2001\b{\b{\}}}[22].\}
- ...\bs footnote\{\bs kli\{Ferguson\}
+ \\[.25ex] ...\bs footnote\{\bs kli\{Ferguson\}
\\ \ \{Falscher Krieg\}[23].\}
- ...\bs footnote\{\bs clearbamem
+ \\[.25ex] ...\bs footnote\{\bs clearbamem
\\ \ \bs kli\{Ferguson\}\{Falscher Krieg\}.\}%
\vspace{.5ex}
}
@@ -580,7 +583,7 @@ Kurztiteln mittels \hspace{-.05em}\verb|\onlyvoll| und \verb|\onlykurz|:
...\footnote{\clearbamem \kli{Ferguson}{Falscher Krieg}.\label{clearbamem}}
}
-\noindent
+\vspace{-.25ex}\noindent
Die Fu"snote\,\ref{clearbamem} soll sich auf das ganze
Werk beziehen; nur \textsc{ebd.} \hspace{-.05em}wieder mittels
\verb|\kli{Ferguson}{Falscher Krieg}[23]| \hspace{.05em}zu erzeugen,
@@ -591,7 +594,7 @@ diese Fehlermeldung ausgel"ost:
\vspace{-0.25ex}\label{before}
{\scriptsize\begin{verbatim}
- ! Same title, before with :{p}{23}:, has now no page/folio number.
+ ! Same outer title, before with :{p}{23}:, has now no page/folio.
. . . . . . . . . . . .
\errmessage@ba ...
\space . . . . . . . . . . . }
@@ -599,19 +602,17 @@ diese Fehlermeldung ausgel"ost:
l.461 \footnote{\kli{Ferguson}{Falscher Krieg}.}
}
\end{verbatim}}
+%% Bis BibArts 2.4 stand am Ende der Meldung ... no page/folio number. %%
-\vspace{-.5ex}\noindent
+\vspace{-.75ex}\noindent
\BibArts\ erkennt zwei Argumente meist nur als gleich an, falls sie
$-$\,nach Umsetzung von \hspace{-.05em}\verb|\onlyvoll|\kern.05em, \hspace{-.075em}\verb|\onlykurz|\kern.05em,
\hspace{-.075em}\verb|\onlyhere| und \verb|\onlyout| \baref{onlyhere}\,$-$
zeichengleich sind. Ein neues Paar von v- und k\fhy Befehlen sollte darauf
-getestet werden, ob die \textsc{ebd.}\hy Setzung funktioniert und
-auf der \hspace{-.25em}\verb|.vkc|\hy Liste nur ein Eintrag erscheint.
-Beides scheitert, falls Sie \hspace{-.125em}\verb|\underline| \label{underline}
-im v\fhy Befehl mit \verb|\protect| sch"utzen \baref{zrbr} und in
-k\fhy Befehlen nicht immer (Stand 2021).
-%% Gilt noch, obwohl \underline nicht mehr wiklich zerbricht, aber nach
-%% \underline und \protect\underline verschieden viele Leerzeichen stehen.
+getestet werden, ob die \textsc{ebd.}\hy Setzung funktioniert \textit{und}
+auf der \hspace{-.2em}\texttt{.\ko vkc}\hy Liste nur \textit{ein} Eintrag erscheint.
+Die Forderung nach Zeichengleichheit schlie"st getippte Leerzeichen ein (wobei
+gilt: ein Leerzeichen ist gleich mehreren Leerzeichen).
\vspace{2ex}\noindent
@@ -627,7 +628,7 @@ das Sternargument des v\fhy Befehls
\hspace{.2em}\texttt{*\{\bs midvauthor\{Michael\}} \texttt{\{Epkenhans\}} \texttt{\bs vauthor\{Gerhard} \texttt{P.\}\{Groß\}\bs onlyvoll\{ [Hrsg.]\}\}}
\hspace{.2em}lauten.
Und nur auf der v\fhy Liste erschiene \hspace{.1em}\textsf{[Hrsg.]}\,, falls Sie \texttt{\bs vollout} statt
-\texttt{\bs onlyvoll} verwenden.
+\texttt{\bs onlyvoll} verwenden. \balabel{vollout}
Beide maskieren ihr Argument und \hspace{.2em}\texttt{\bs xkqu} \hspace{.2em}d"urfte
\hspace{.2em}\texttt{*\{\bs midkauthor\{Epkenhans\}} \texttt{\bs kauthor\{Groß\}\}}
\hspace{.2em}enthalten.}
@@ -658,17 +659,17 @@ Beide maskieren ihr Argument und \hspace{.2em}\texttt{\bs xkqu} \hspace{.2em}d"u
\\ \ \ \}[467-477]\H{\}}*[469].\}
}
{\vspace{1ex}
- \fbox{\parbox{.95\textwidth}{Siehe \hspace{-.1em}\texttt{.vkc}\hy Eintr"age oben S.\,\pageref{vkc}:
+ \fbox{\parbox{.95\textwidth}{Siehe \hspace{-.15em}\texttt{.\ko vkc}\hy Eintr"age oben S.\,\pageref{vkc}:
\\[1ex] \scshape[Anonym]\\{}[Anonym]\\{}[...]\\Ehlert\baslash Epkenhans\baslash Gro"s}}\\
- \\[1ex] ...\footnote{`Innen' Vollzitat: \vqu {} {}
+ \\[1ex] Leerzeichen vor \texttt{\bs vauthor}.\footnote{`Innen' Vollzitat: \vqu {} {}
{\ktit{Aufmarschanweisungen 1912},
abgedruckt in: \xvqu{Hans} {Ehlert}
*{\midvauthor{Michael} {Epkenhans}
\vauthor{Gerhard P.} {Gro"s} [Hrsg.]}
{Der \ktit{Schlieffenplan},
- Paderborn 2007}[462-466]}*[463].\label{hrsg}}
+ Paderborn 2007}[462-466]}*[463].\label{hrsg}\label{InnVoll}}
- ...\footnote{`Innen' kurz: \vqu {} {}
+ Leerzeichen vor \texttt{\bs kauthor}.\footnote{`Innen' kurz: \vqu {} {}
{\ktit{\onlyhere{\onlykurz{\,}}Aufmarsch 1913/14},
abgedruckt in: \xkqu{Ehlert}
*{\midkauthor{Epkenhans} \kauthor{Gro"s} [Hrsg.]}
@@ -685,15 +686,14 @@ von runden statt eckigen Klammern w"urde \hspace{.2em}{\sffamily Bl.} \hspace{.1
Das Beispiel f"uhrte zudem das \verb|*{|\textit{Sternargument}\verb|}| ein,
das in allen v- und k\hy Befehlen nach dem Nachnamen\hy Argument optional
stehen darf. In v\fhy Befehlen sind dort f"ur Koautoren vauthor- und in
-k\fhy Befehlen kauthor\fhy Formatierer zu verwenden. Nur, falls auch in den
-Formatierern gleiche Nachnamen stehen, ist
-\textsc{ebd.} m"oglich. Leerzeichen bitte einheitlich \textit{zwischen}
-Formatierer setzen.
+k\fhy Befehlen kauthor\fhy Formatierer zu verwenden. Nur, falls \textit{auch} in den
+Formatierern \textit{gleiche Nachnamen} stehen und sonstiger Text gleich ist,
+wird \textsc{ebd.} eingef"uhrt \baref[siehe \ko\texttt{\bs showbamem}]{bamem}.
Die Formatierer \verb|\vauthor| und \verb|\kauthor| bezeichnen stets
den letzten von mehreren Autoren. Falls $-$\,wie oben\,$-$ \textit{im Sternargument}
-mehrere Autoren genannt werden, sind dort alle vor dem letzten Autor mittels
-\hspace{-.05em}\verb|\midvauthor| bzw.\ \hspace{-.05em}\verb|\midkauthor| zu
+mehrere Koautoren genannt werden, sind dort alle vor dem letzten Autor mittels
+\hspace{-.05em}\verb|\midvauthor| bzw\ko.\ \hspace{-.05em}\verb|\midkauthor| zu
kennzeichnen. Die setzen Schr"agstriche nach dem Nachnamen. Den Schr"agstrich
nach dem Erstautor erzeugen die x\fhy Befehle \hspace{-.05em}\verb|\xvli| oder
\verb|\xkli| respektive \hspace{-.05em}\verb|\xvqu| \hspace{.05em}oder
@@ -722,7 +722,7 @@ Go!\footnote{\printonlykli{Maier}{Buch}.}
\vfill\noindent
Werden in direkter Folge verschiedene Aufs"atze aus demselben
-Herausgeberwerk zitiert, erfolgen das `innere' und das `"au\hyss ere'
+Herausgeberwerk zitiert, erfolgt das `innere' und das `"au\hyss ere'
\textsc{ebd.}\hy Setzen automatisch:
\vspace{.5ex}
@@ -760,7 +760,7 @@ Herausgeberwerk zitiert, erfolgen das `innere' und das `"au\hyss ere'
*{\midvauthor{Michael} {Epkenhans}
\vauthor{Gerhard P.} {Gro"s} [Hrsg.]}
{Der \ktit{Schlieffenplan},
- Paderborn 2007}[462-466]}*[463].\label{InnVoll}}
+ Paderborn 2007}[462-466]}*[463].}
...\footnote{\kqu{} {Aufmarschanweisungen 1912}[464].\label{zweite}}
%%
@@ -784,42 +784,46 @@ Ein k\fhy Befehl, der den Eintrag der `"au\hyss eren' Speicherebene wiederholt,
l"asst die `innere' Ebene also unber"uhrt: In Fu"snote\,\ref{dritte} ist
ein `inneres' \textsc{ebd.} gesetzt.
-Die Zwischenspeicher lassen sich mit \verb|\showbamem| auch ansehen.
-Dies kann bei Problemen mit dem \textsc{ebd.}\hy Setzen
-helfen.\footnote{\BibArts\ gibt der \LaTeX-\texttt{minipage}\hy Umgebung
-eigene Speicher; die \textsc{ebd.}\hy Setzung in \texttt{minipage}\hy
-Fu"snoten erfolgt deshalb unabh"angig von Fu"snoten im "ubrigen Text.}
-\BibArts\ druckt auf den Bildschirm aus (\verb|o-ref| bzw.\ \verb|i-ref| nennen
-dabei den f"ur \textsc{ebd.} gesuchten Inhalt):
-
-{\scriptsize\vspace{3ex}\noindent
-\verb| FNT |\texttt{\ref{zweite}}
-\vspace{-3ex}
+\noindent
+Den Inhalt des "au"seren und inneren \textit{Speichers} zeigt \verb|\showbamem|
+f"ur Tests an. Gedruckt wird auf den Bildschirm, \textit{wenn in Fu"snoten} bei kli\fhy,
+kqu\fhy, per\hy\ oder arq\hy Befehlen auf \textsc{ebd.}\hy Setzung gepr"uft \balabel{bamem}
+wird.\footnote{Die \textsc{ebd.}\hy Setzung in \texttt{minipage}\hy
+Fu"snoten ist v"ollig unabh"angig von Fu"snoten im "ubrigen Text. Seit \BibArts\ 2.5
+erfolgt au"serhalb von Fu"snoten kein Bildschirm\hy Ausdruck mehr.}
+Darunter wird hinter \verb|o-ref| bzw\ko.\ \verb|i-ref| der vom kli\fhy, kqu\fhy,
+per\hy\ oder arq\hy Befehl \textit{gesuchte} Text gedruckt:
+
+{\scriptsize\vspace{2.75ex}\noindent
+\verb| SHOWBAMEM on input line 776 in Minipage-FNT |\texttt{\ref{zweite}}\verb|:|
+\vspace{-2.25ex}
\begin{verbatim}
- -- outer: {qu}{}{}{Aufmarschanweisungen 1912} --
- ---------- inner: {qu}{Ehlert}{\midkauthor {Epkenhans}
- \kauthor {Gro"s} [Hrsg.]}{Schlieffenplan} --
- -- o-ref: {qu}{}{}{Aufmarschanweisungen 1912} --
+ -- outer: {qu}{}{}{Aufmarschanweisungen 1912}
+ ---------- inner: {qu}{Ehlert}{\midkauthor {Epkenhans} \kauthor {Gro"s} [Hrsg
+ .]}{Schlieffenplan}
+ -- o-ref: {qu}{}{}{Aufmarschanweisungen 1912}
\end{verbatim}}
\vspace{-.5ex}\noindent
-Nun h"atte in der mittleren Fu"snote alternativ auch ein dritter Aufsatz aus dem gleichen
+Nun h"atte in dieser mittleren Fu"snote alternativ auch ein dritter Aufsatz aus dem gleichen
Herausgeberband kurzzitiert sein k"onnen. Rein logisch d"urfte in der letzten
-Fu"snote dann weiterhin \textsc{ebd.} stehen. Steht aber etwas Anderes als
-\verb|\kqu{}{Aufmarschanweisungen 1912}| in der
-zweiten Fu"snote, unterbleibt ohne weitere Ma"snahmen das `innere' \textsc{ebd.}\hy Setzen in
-der dritten (Anm.\,\ref{dritte}).\footnote{Um das `innere' \textsc{ebd.} zu erzeugen:
+Fu"snote (Anm.\,\ref{dritte}) \textit{auch dann} ein `inneres' \textsc{ebd.} stehen.
+Steht aber etwas anderes als \verb|\kqu{}{Aufmarschanweisungen 1912}| in der
+mittleren Fu"snote, f"uhrt \BibArts\ in der letzten Fu"snote kein `inneres'
+\textsc{ebd.} ein.\footnote{Um das `innere' \textsc{ebd.} zu erzeugen:
\texttt{\bs newbox\bs mybox} im Vorspann und vor Fu"snote~\ref{dritte}:
\\[.3ex] \hspace*{.75em} \texttt{\bs setbox\bs mybox=\bs hbox\{\bs footnotetext\{\bs printonlyvqu\{\}\{\}
\\ \hspace*{1em} \{\bs xprintonlykqu\{Ehlert\}
\\ \hspace*{1.5em} *\{\bs midkauthor\{Epkenhans\} \bs kauthor\{Gro"s\} [Hrsg.]\}
\\ \hspace*{1.5em} \{Schlieffenplan\}\}\}\}}}
-\vspace{1.5ex}\noindent
-Nun wird das Verzeichnis gedruckter Quellen mit \verb|\printnumvqu| gedruckt:
-
+\vspace{1ex}\noindent
+Das Verzeichnis gedruckter Quellen wird hier mit \verb|\printnumvqu| ausgedruckt.
+Dort gibt es keine `innere' \textsc{ebd.}\hy Setzung;
+\hspace{-.05em}\textit{`\kern.05em innen'} werden \textit{Kurztitel} gedruckt:
+\vspace{-1ex}
\balabel{printnumvqu}\printnumvqu
\noindent
@@ -896,30 +900,98 @@ Fu"snote~\ref{I} \texttt{\bs kqu\{Marx\}\{Kapital\string~I\}}
enthielte, w"urde dort auch \textsc{ebd.} gesetzt; Ziel war
aber, im Kurzzitateverzeichnis S.\,\pageref{vkc} nur
\textit{einen} Eintrag \textsc{Marx}: Kapital [Q] f"ur alle\pdfko{.25}\
-Teilb"ande des "`Kapital"' zu bekommen.}
+Teilb"ande des "`Kapital"' zu bekommen (und nicht noch zus"atzlich
+\textsc{Marx}: Kapital~I [Q]).}
Ein weiterer Vergleich mit dieser Liste zeigt, dass das
\verb|[m]| nach dem `inneren' \verb|\xvqu|\hy Befehl
\hspace{.1em}\textsc{ders.\baslash Engels} \hspace{.1em}erzeugte \baref[Eintrag von]{ders}.
-Neben der Markierung von Text in \BibArts\hy Befehlen mit
-\hspace{-.1em}\verb|\onlyhere| und\pdfko{.5}\
-\hspace{-.1em}\verb|\onlyout| gibt es eine "altere M"oglichkeit,
+
+\noindent
+Bei mehrfach zitierten \textbf{Werken mit mehreren Koautoren} funktioniert das
+\textbf{automatische Ebendasetzen} nur, falls Sie in den Sternargumenten
+\textit{zwischen die jeweiligen Namens\hy Formatier} einheitlich entweder \textit{Leerzeichen}\pdfko{.1}\
+tippen oder nicht.\footnote{Dies betrifft \textit{nicht}
+etwaige Leerzeichen \textit{zwischen den beiden Argumenten} eines v\fhy Formatierers:
+\texttt{\bs vauthor\{Manfred\underline{\} \{}Wagner\}} und \texttt{\bs vauthor\{Manfred\underline{\}\{}Wagner\}}
+werden in einem direkt folgenden Kurzzitat von \texttt{\bs kauthor\{Wagner\}} gleicherma\hyss en
+erkannt. Nur, falls Sie in Ihrem Text auf das Kurzzitieren verzichten und dann Werke
+mit mehreren Autoren mehrfach vollzitieren, ergibt sich bez"uglich \underline{dieser Leerzeichen\vphantom{\texttt{\}}}} das weitere Problem, dass
+\texttt{bibsort} verschieden getippte Werke unterscheidet und f"ur jede Notationsweise einen
+eigenen Eintrag auf die v\fhy Liste setzt. Nur dann m"ussten Sie zudem einheitlich Leerzeichen
+zwischen die Vornamen- und die Nachnamen\hy Argumente von v\fhy Formatierern setzen.}
+Vergleichen Sie hier die doppelt unterstrichenen Stellen:
+
+\Doppelbox
+{\vspace{1.5ex}
+ ...\bs footnote\{\$-1-\$: \bs xvli\{Hans\}
+ \\ \ \{Maier\} * \{\bs midvauthor\{Peter\}
+ \\ \ \ \{Müller\underline{\underline{\}}}\rule[-5.1pt]{2pt}{0pt}
+ \\ \ \ \underline{\underline{\bs}}vauthor\{Manfred\}\{Wagner\}\}\rule[-5.5pt]{2pt}{0pt}
+ \\ \ \{Der \bs ktit\{Beitrag\}\}.\}
+ \\[1.25ex] \bs footnote\{\$-2-\$: \bs xkli\{Maier\}
+ \\ \ *\{\bs midkauthor\{Müller\underline{\underline{\} \bs}}kauthor\rule[-5.1pt]{2pt}{0pt}
+ \\ \ \ \{Wagner\}\} \{Beitrag\}
+ \\ \ \bs textbf\{(wird~erkannt)\}.\}
+ \\[1.25ex] \bs footnote\{\$-3-\$: \bs xkli\{Maier\}
+ \\ \ *\{\bs midkauthor\{Müller\underline{\underline{\}\bs}}kauthor\rule[-5.1pt]{2pt}{0pt}
+ \\ \ \ \{Wagner\}\} \{Beitrag\}
+ \\ \ \bs textbf\{(wird~nicht erkannt)\}.\}
+ \vspace{1.5ex}
+}
+{\notktitaddtok
+ Diese Beispiele sind nicht in die Listen "ubernommen,
+ erg"aben auf der \hspace*{-.125em}\texttt{.\ko vkc}\hy Liste aber zwei Eintr"age.%
+ \footnote{$-1-$: \xprintonlyvli{Hans} {Maier} * {\midvauthor{Peter} {Müller}
+ \vauthor{Manfred}{Wagner}} {Der \ktit{Beitrag}}.}
+ \footnote{$-2-$: \xprintonlykli{Maier} *{\midkauthor{Müller}
+ \kauthor{Wagner}} {Beitrag} \textbf{(wird~erkannt)}.}
+ %%
+ \footnote{$-3-$: \xprintonlykli{Maier} *{\midkauthor{Müller}\kauthor
+ {Wagner}} {Beitrag} \textbf{(wird~nicht erkannt)}.}
+}
+
+
+\vspace{.5ex}\noindent
+Bei der Maskierung mit \verb|\onlyvoll| \hspace{.1em}ist in v\fhy Befehlen au\hyss erdem zu beachten,
+dass in \hspace{.2em}\texttt{*\{\bs vauthor\{Heinz\}\{Huber\}\bs onlyvoll\{ [Hrsg.]\}\}}
+\hspace{.3em}das Leerzeichen \textit{in} das Argument von \verb|\onlyvoll| zu setzen ist, nicht nach \texttt{\{Huber\}}.
+Nur dann kann der folgende Kurztitel einfach \hspace{.1em}\texttt{*\{\bs kauthor\{Huber\}\}} \hspace{.2em}lauten.
+Falls Sie \hspace{.05em}\verb|\showbamem| \hspace{.15em}setzen, werden ins \hspace{-.175em}\texttt{.\ko log}\hy File und
+auf den Bildschirm fertige Titel geschrieben, in denen die only\hy Befehle bereits umgesetzt sind.
+
+Zur Ebendasetzung erwartet \BibArts\ also mehr als nur gleiche Nachnamen:
+Wenn man sich alle Namens\hy Formatierer und only\hy Befehle samt Argumenten wegdenkt, muss
+zudem der Rest des Sternarguments zeichengleich sein, einschlie\hyss lich der Leerzeichen.
+\textit{Zeichengleichheit} meint strenggenommen gleiche Zeichen, nur bei den Leerzeichen
+sind Erleichterungen gegeben: Gleich entspricht dabei dem, was \LaTeX\ bekannterma\hyss en
+unter verschiedenen Notationen gleich ausdruckt: \textit{Einfache} Zeilenumbr"uche gelten wie Leerzeichen;
+und \textit{ein} Leerzeichen ist gleich \textit{mehreren} Leerzeichen. Diese
+Spielregen gelten auch f"ur Leerzeichen \textit{in} allen Nachnamen, etwa in
+\verb|\vli{|...\verb*|}{Liddell Hart}{|...\verb|}|\kern.05em!
+
+\noindent
+Neben der Maskierung mit \hspace{-.1em}\verb|\onlyhere| und
+\hspace{-.1em}\verb|\onlyout| \baref[sowie \texttt{\bs sechere}]{sechere}
+gibt es alternativ eine "altere M"oglichkeit,
unterschiedliche Eintr"age in Text und Liste zu erzeugen: \BibArts\hy
Hauptbefehle (S.\,\pageref{Hauptbefehle}) lassen sich aufsplitten in
eine printonly- und eine addto\hy Komponente, also in die
-Aufgabenteile `Schreibe an Ort und Stelle' und `Schreibe in die Liste'.
-\label{printonly} \verb|\vqu| beispielsweise l"asst\pdfko{.5}\
+Aufgabenteile `Schreibe an Ort und Stelle' und `Schreibe in die Liste'\kern-.025em.
+\label{printonly} \hspace{-.05em}\verb|\vqu| beispielsweise l"asst\pdfko{.5}\
sich durch \verb|\printonlyvqu| \hspace{.05em}plus
\hspace{-.1em}\verb|\addtovqu| ersetzen. Die Syntax ist identisch.
+\vspace{-.75ex}
\Doppelbox
-{...\bs footnote\{
+{\vspace{.25ex}
+ ...\bs footnote\{
\\ \ \bs addtovqu\{Carl von\}\{Clausewitz\}
\\ \ \ \b{\b{\{}}\bs ktit\{Strategie\}. Hrsg. von
\\ \ \ \ \bs vauthor\{Eberhard\}\{Kessel\},
\\ \ \ \ Hamburg 1937\b{\b{\}}}\%
- \\[.2ex] \ \bs printonlyvqu\{Carl von\}
+ \\[.3ex] \ \bs printonlyvqu\{Carl von\}
\\ \ \ \ \ \{Clausewitz\}
\\ \ \ \b{\{}\bs ktit\{Strategie\},
\\ \ \ \ Hamburg 1937\b{\}}[58].\}
@@ -934,17 +1006,20 @@ sich durch \verb|\printonlyvqu| \hspace{.05em}plus
Hamburg 1937}%
\printonlyvqu{Carl von}{Clausewitz}
{\ktit{Strategie},
- Hamburg 1937}[58].}
+ Hamburg 1937}[58].}\vspace{.1ex}
}
-\noindent
-Da \hspace{-.05em}\textit{`in\kern-.075em' addto\hy Befehlen} v- und k\fhy Befehle nicht abgearbeitet
-werden, gelangen sie nicht in die Listen und sind
-ggf.\ als `"au\hyss ere' addto\hy Befehle zu wiederholen.
+\vspace{-.5ex}\noindent
+Die only\hy Befehle sind oft zu bevorzugen. \textit{Innerhalb} von addto\hy Befehlen
+werden (`innere') \BibArts\fhy Hauptbefehle n"amlich nicht abgearbeitet.
+Die schreiben also nichts in die Listen und w"aren als `"au\hyss ere' addto\hy Befehle
+zu \textit{wiederholen}.
-\vspace{.75ex}\noindent
-Ein Verzicht auf \hspace{.02em}`innere' \hspace{-.02em}v- und k\fhy Befehle ergibt \textit{einen} Eintrag auf der v\fhy Liste:
+\vfill\vspace{1ex}\noindent
+Falls Sie aber umgekehrt ohnehin nur \textit{einen} Komplett\hy Eintrag in der v\fhy Liste wollen,
+k"onnen Sie auf `innere' \hspace{-.02em}v- und k\fhy Befehle alternativ auch verzichten:
+\vspace{-.5ex}
\Doppelbox
{\vspace{.3em}
\bs vqu \{Karl\} \{Marx\}
@@ -967,13 +1042,12 @@ Ein Verzicht auf \hspace{.02em}`innere' \hspace{-.02em}v- und k\fhy Befehle ergi
}\label{ntvauthor}%
-\vspace{.5ex}\noindent
-Dies leitet "uber zur \textbf{Umdefinition vorgefertigter Textelemente}:
-\BibArts\ l"asst gro\hyss e Freiheiten bei der Wahl von Zitierkonventionen.
+\vspace{-.325ex}\noindent
+Zitierkonventionen lassen sich "uber \textbf{vorgefertigte Textelemente} anpassen:
Die Schr"agstiche definiert \hspace{-.05em}\verb|\nsep|, \label{nsep1} das seinerseits
-\hspace{-.1em}\verb|\baslash| (\baslash) ausf"uhrt. mid\hy Formatierer und\pdfko{.25}\
-x\fhy Befehlen nutzen ihn. \verb*|\renewcommand{\nsep}{, }|
-\hspace{.1em}w"urde Komma\pdfko{.5}\ statt Schr"agstrich zwischen Namen drucken. Dies kann
+\hspace{-.1em}\verb|\baslash| (\baslash) ausf"uhrt. Die mid\hy Formatierer und
+x\fhy Befehle nutzen ihn. \verb*|\renewcommand{\nsep}{, }|
+\hspace{.1em}w"urde Komma statt Schr"agstrich zwischen Namen drucken. Dies kann
auch lokal geschehen: Die jeweils aktuelle Definition von \hspace{-.1em}\verb|\nsep| reist
\label{Ausreise} mit jedem v- und k\fhy Zugang \textit{separat} in die Listen
und wird dort reproduziert. Die Voreinstellung l"asst sich mit
@@ -1008,19 +1082,19 @@ mittels\hspace{.2em} \verb+\renewcommand{\gerscheditionname}{\teskip Aufl.,}+\,.
\vspace{1.25ex}\label{female}\noindent
-Falls in den \textit{v\fhy Listen bei Autorwiederholung} \hspace{.1em}{\small\textsc{dies.}}
+Falls \textit{in den v\fhy Listen} bei Autorwiederholung \hspace{.1em}{\small\textsc{dies.}}
\hspace{.1em}oder \hspace{.1em}{\small\textsc{ders.}} \hspace{.1em}statt $\sim$ stehen soll,
-k"onnen Sie \verb|\female| bzw.\ \hspace{-.075em}\verb|\male| in die
+k"onnen Sie \verb|\female| bzw\ko.\ \hspace{-.075em}\verb|\male| in die
v\fhy Befehle am Anfang der Vornamen\hy Argumente
tippen. Beispiel: \verb|\vqu{\male Karl}{Marx}{|\fabra{...}\verb|}|\,. Das muss $-$\,einmal
etwa f"ur die vli\hy Liste angefangen\,$-$ dann \textit{in jedem ersten Argument\pdfko{.5}\
jedes vli\hy Befehls} stehen
(ausgenommen anonyme Autoren \verb|\vli{}{}{|\fabra{...}\verb|}|): Nur so wird w\kern-.1em/m von
-\hspace{.2em}\verb|bibsort| \verb|-k|\hspace{.2em} richtig zugeordnet.
+\hspace{.2em}\verb|bibsort| \verb|-k| \hspace{.2em}richtig zugeordnet.
Ins Vornamen\hy Argument von \verb|\vauthor| oder \verb|\midvauthor| sind
\verb|\female| oder \verb|\male| aber nicht einzusetzen! Falls auch alle Koautoren gleich sind,
wird automatisch \hspace{.1em}{\small\textsc{diesn.}} \hspace{.1em}f"ur `Dieselben' eingesetzt.
-(Falls nur die ersten von mehreren \textit{Koautoren}\pdfko{0}\
+(Falls nur die ersten von mehreren \textit{Koautoren}
gleich sind, wird f"ur \textit{die} weiterhin {\small$\sim$} oder {\small$\sim$\baslash$\sim$}
gesetzt.)
@@ -1068,10 +1142,10 @@ Kapitel~\ref{per} unten ab S.\,\pageref{per}.}%
\newpage
Da das \textbf{\textsc{ders.}\hy Setzen} mit \verb|[f]|, \verb|[m]|
-oder \verb|[p{}]| fehleranf"allig ist, falls Textteile im
+oder \verb|[p{|...\verb|}]| fehleranf"allig ist, falls Textteile im
Texteditor ausgeschnitten und verschoben werden, gibt es
eine weitere \textbf{Kontrollm"oglichkeit}: "Uber den \LaTeX\hy
-Bildschirmausdruck hinaus \baref{DERS} k"onnen Sie sich testweise
+Bildschirmausdruck hinaus \baref{DERS} k"onnen Sie sich \textit{testweise}
im Ausdruck selbst informieren lassen:
\vspace{.5ex}
@@ -1109,7 +1183,8 @@ im Ausdruck selbst informieren lassen:
\\ \ \ \ \ \ \bs onlyhere\{Berlin
\\ \ \ \ \ \ \ 1962\}\b{\}}\b{\b{\}}}[67].\}
}
-{\writeidemwarnings
+{\vspace{2ex}
+ \writeidemwarnings
\footnote{\kqu[m]{Clausewitz} {Strategie}[61] und
\kqu{Clausewitz} {Vom Kriege}[62].}
\\[8.25ex]
@@ -1128,30 +1203,29 @@ im Ausdruck selbst informieren lassen:
*{\vauthor{Friedrich}{Engels}} {\ktit{Werke}, \onlyout{hrsg.\
vom Institut f"ur Marxismus-Leninismus beim ZK der SED,
40~Bde.\ Berlin 1958--1971}%
- \onlyhere{Berlin 1962}}}[67].
- \\
- \texttt{\% Vgl.\ DERS. in der Liste \baref[]{printnumvqu}}
- }
+ \onlyhere{Berlin 1962}}}[67].
+ \\[.5ex] \texttt{\% Vgl.\ DERS. in der Liste \baref[]{printnumvqu}}
+ }
}
-\vspace{.5ex}\noindent
+\vspace{.75ex}\noindent
Nach Setzen von \verb|\writeidemwarnings| druckten v- und k\fhy Befehle
-dabei das Nachnamen\hy Argument in Klammern und hinter folgenden Symbolen aus:
+dabei das sonst unsichtbare \{\textit{Nachnamen\hy Argument}\} hinter folgenden Symbolen aus:
- \vspace{2ex}\noindent
+ \vspace{1.5ex}\noindent
{\small\begin{tabular}{cl}%
$\bullet$ & \textsc{\footnotesize DERS.} \sffamily fehlt m"oglicherweise (gleiche Nachnamen registriert). \\
$\heartsuit$ & \textsc{\footnotesize DERS.} \sffamily ist offenbar richtig gesetzt (gleiche Nachnamen registriert). \\
$\nabla$ & \textsc{\footnotesize DERS.} \sffamily wegen fehlender Autoren in vorausgehender Fu"snote unberechtigt. \\
- $\spadesuit$ & \textsc{\footnotesize DERS.} \sffamily "uberschreibt einen Namen, der nicht der vorausgehende ist. \\
- $\clubsuit$ & \textsc{\footnotesize DERS.} \sffamily steht irref"uhrenderweise nach einer Fu"snote mit mehreren Autoren. \\
+ $\spadesuit$ & \textsc{\footnotesize DERS.} \sffamily "uberschreibt einen Nachnamen, der nicht der vorausgehende ist. \\
+ $\clubsuit$ & \textsc{\footnotesize DERS.} \sffamily irref"uhrend nach einer Fu"snote mit Werken verschiedener Autoren. \\
\end{tabular}}
\vspace{2ex}\noindent
-\BibArts\ kontrolliert niemals Koautoren. Falls auch die in
+\BibArts\ kontrolliert bei \verb|[p{|...\verb|}]| die Koautoren nicht. Falls auch die in
aufeinanderfolgenden Fu"snoten gleich sind, lassen sie sich zwar durch
-Ersatzworte ersetzen, wozu \BibArts\ bei Anwenderfehlern aber nicht warnt.
-Hier ein Beispiel ohne Fehler:
+Ersatzworte ersetzen, wozu \BibArts\ bei Fehlern aber nicht warnt.
+Ein Beispiel ohne Fehler:
\Doppelbox
{\vspace{1.25ex}%
@@ -1162,7 +1236,7 @@ Hier ein Beispiel ohne Fehler:
\\ \ \{Maier\} *\{\bs midkauthor\{M"uller\}
\\ \ \ \ \bs kauthor\{Huber\}\} \{Haus\}[ii].\}
\\[1ex] \bs footnote\{\bs xkli
- \\ \ [p\b{\b{\{}} ersten beiden und
+ \\ \ [p\b{\b{\{}}\bs\ ersten beiden und
\\ \ \ \ \ \ \bs kauthor\{Schmidt\} \bs editors\b{\b{\}}}]
\\ \ \{Maier\} *\b{\{}\bs midkauthor\{M"uller\}
\\ \ \ \ \ \ \bs kauthor\{Schmidt\} \bs editors\b{\}}
@@ -1170,14 +1244,14 @@ Hier ein Beispiel ohne Fehler:
\vspace{1ex}
}
{\texttt{\% HIER nicht in den Listen \%}
- \\[3ex]
+ \\[3ex]%\nonfrenchspacing
\footnote{Lokal erst \xprintonlykli
{Maier} *{\midkauthor{M"uller} \kauthor{Huber}} {Geld}[i].}
\footnote{\xprintonlykli[p{}]
{Maier} *{\midkauthor{M"uller} \kauthor{Huber}} {Haus}[ii].}
- \footnote{\xprintonlykli[p{ ersten beiden und \kauthor{Schmidt} \editors}]
+ \footnote{\xprintonlykli[p{\ ersten beiden und \kauthor{Schmidt} \editors}]
{Maier} *{\midkauthor{M"uller} \kauthor{Schmidt} \editors} {Vorsorge}[iii].\label{wieder}}
}
@@ -1187,144 +1261,384 @@ Nur mit \verb|[p{}]| werden alle Namen mit \hspace{.1em}{\small\textsc{diesn.}}
\hspace{.1em}"uberschrieben $-$ und nicht nur der erste Name (was \verb|[p]| t"ate)! \hspace{.15em}Falls mehrere, aber eben
nicht alle Autoren \textit{dieselben} sind, k"onnen Sie die zuviel mit
\textsc{diesn.} "uberschriebenen in \verb|[p{|\textit{xx}\verb|}]| wieder nennen
-(oben in Anm.\,\ref{wieder} gezeigt). Wie vorgemacht d"urfen \verb|\editor| \hspace{.1em}oder
-\verb|\editors| (dt.\ beide f"ur {\small\editor}) \hspace{.1em}in \textit{xx} auch verwendet werden.
+(oben in Anm.\,\ref{wieder} gezeigt). Wie vorgemacht d"urfen auch \verb|\editor| \hspace{.1em}oder
+\verb|\editors| \hspace{.1em}(dt.\ beide f"ur {\small\editor}) \hspace{.1em}in \textit{xx} verwendet werden.
-Um \textit{richtig sortierte Listen} zu erzeugen, sollten in v-
-und k\fhy Befehlen \textit{auch}\pdfko{.01}\ die `regul"aren' Namen\hy Argumente
-\textit{in jedem Fall} vollst"andig bef"ullt sein!
-\textit{Sie}\pdfko{.01}\ zieht \hspace{.2em}\verb|bibsort| \verb|-k| \hspace{.2em}zudem heran,
-um Nachnamen gegen \hspace{.2em}$\sim$ \hspace{.2em}auszutauschen.
-Das im Beispiel oben eingef"uhrte \verb|\editors| hat "ubrigens kein Sortiergewicht.
+Obwohl \textit{xx} im Text ausgedruckt wird, sollten Sie in v- und k\fhy Befehlen auch
+die "uberschriebenen Namen\hy Argumente stets vollst"andig bef"ullen:
+Denn sie bestimmen die \textsc{ebd.}\hy Setzung! \hspace{.05em}`\ko "Au\hyss ere'
+\hspace{-.1em}\textit{xx} werden auf den v\fhy Listen zudem nicht ausgedruckt und
+die `regul"aren' Argumente bestimmen die Sortierung.
\vspace{1.25ex}\noindent
-Dass bei \hspace{-.075em}\textit{`inneren'} v- und k\fhy Befehlen gesetzte Schalter \verb|[f]|,
-\verb|[m]| und \verb|[p{}]| in die Listen "ubernommen werden, wurde oben
-beim Ausdruck des Verzeichnisses der gedruckten Quellen anhand des ersten
-Bandes von Marx' Kapital demonstriert. Beim zweiten Band dagegen ist
-der `innere' Marx nicht mit \verb|[m]| versehen; beim "Ubersetzen der
-\textit{Fu"snote}, aus der der Eintrag herstammt, erscheint die Warnung
- % Meldung ...vqu-cmd in 2.3 geaendert in ...vqu
-\hspace{.3em}{\footnotesize\texttt{Inner ...vqu repeats author's lastname}}\kern.025em.
-\hspace{.1em}Falls Sie nur dort kein \textsc{ders.} haben wollten, k"onnen
-Sie vor den `inneren' v- oder k\fhy Befehl \verb|\notwarnsamename|
-setzen, um die Warnung lokal auszuschalten. Beim
-"Ubersetzen der \textit{Listen} erfolgen solche Warnungen "ubrigens niemals.
-
-\vfill\noindent
Falls Sie \textsc{dies.}, \textsc{ders.} und \textsc{diesn.} nicht
-verwenden wollen, k"onnen Sie alle diesbez"uglichen Warnungen auch
-mit \verb|\notwarnsamename| im Vorspann Ihres \LaTeX\hy Textes
+verwenden wollen, k"onnen Sie
+im Vorspann Ihres \LaTeX\hy Textes mit \verb|\notwarnsamename|
+alle diesbez"uglichen \hspace{-.1em}\textit{Warnungen}
global ausschalten. Das unterbindet bei der \LaTeX\hy "Ubersetzung die
Bildschirmwarnung \hspace{.2em}{\footnotesize...\ \texttt{repeats first author's
lastname}} \hspace{.25em}samt allen weiteren Meldungen f"ur die eben
-aufgelisteten Fehlertypen. \textit{Zus"atzlich} wird
-\verb|\writeidemwarnings| unwirksam $-$ \BibArts\ druckt also nicht
-mehr \hspace{.1em}{\small$\bullet\,\heartsuit\,\nabla\,\spadesuit\,\clubsuit$}\,.
+aufgelisteten Fehlertypen. Allerdings wird dann auch
+der Befehl \verb|\writeidemwarnings| unwirksam, also
+\hspace{.1em}{\small$\bullet\,\heartsuit\,\nabla\,\spadesuit\,\clubsuit$}
+\hspace{.1em}nicht gedruckt.
+
+\vfill\noindent
+Die Schalter \verb|[f]|, \verb|[m]| und \verb|[p{}]| von \hspace{-.1em}\textit{`\kern.05em inneren'} v- und k\fhy Befehlen
+werden in die Literaturliste "ubernommen. Die \hspace{-.1em}\textit{`\kern.05em inneren'}
+Schalter beziehen sich auf die
+\hspace{-.1em}\textit{`"au\hyss eren'} v- und k\fhy Befehle \textit{derselben}
+Literaturangabe: Der Herausgeber des Bandes ist z.\,B. auch Autor eines Aufsatzes.
+Die Nachnamen kontrolliert \BibArts\ nicht auf den Listen, nur in den Fu"snoten.
+Fehlen \verb|[f]|, \verb|[m]| und \verb|[p{}]| \hspace{-.1em}\textit{`\kern.05em innen'}, lautet die Warnung:
+ % Meldung ...vqu-cmd in 2.3 geaendert in ...vqu
+\hspace{.3em}{\footnotesize\texttt{Inner ...vqu repeats author's lastname}}\kern.025em.
+\hspace{.1em}Falls dann aber Aufsatzautor und Herausgeber trotz gleicher Nachnamen nicht dieselbe
+Person sind, k"onnen Sie \hspace{-.05em}\verb|\notwarnsamename| vor den \hspace{-.1em}\textit{`\kern.05em inneren'}
+v- oder k\fhy Befehl setzen, falls Sie die Warnung \textit{nur lokal} ausschalten wollen.
\newpage\noindent
Zum \textbf{Zitieren mehrb"andiger Werke} gibt es einen optionalen Speicher
f"ur Bandnummern. Nach
-\hspace{.2em}\verb+\vli+\abra{...}\verb+{1983--1990}+\texttt{\b{\b{\}}}}\verb+|2|[98]+\vspace{-.2ex}
-\hspace{.2em}ist er
-zur \textsc{ebd.}\hy Setzung mit \verb|2| \hspace{.05em}bef"ullt (Nr.\,2 aus 4 B"anden;
+\hspace{.2em}\verb+\vli+\abra{...}\verb+{1983--1990}+\texttt{\b{\b{\}}}}
+\hspace{.2em}steht \verb+|2|+ vor \verb|[98]| zur \textsc{ebd.}\hy Setzung
+\hspace{.05em}(Nr.\,2 aus \verb+\ersch|4|+ B"anden;
vor und nach \verb+|2|+ keine Leerzeichen):
-\label{Reinhard}%
+\vspace{-.25ex}\label{Reinhard}%
\Doppelbox
-{\bs footnote\{... \bs vli\{Wolfgang\}
+{...\bs footnote\{... \bs vli\{Wolfgang\}
\\ \ \{Reinhard\} \b{\b{\{}}Geschichte der
\\ \ \ \bs ktit\b{\{}\bs onlyvoll\{e\}\%
\\ \ \ \ \ \ \ \ \ \bs onlykurz\{E\}urop"aische\%
\\ \ \ \ \ \ \ \ \ \bs onlyvoll\{n\} Expansion\b{\}},
- \\ \ \ \bs ersch\string|4\string|\{Stuttgart\}
+ \\ \ \ \bs ersch \string|4\string| \{Stuttgart\}
\\ \ \ \ \ \ \ \ \ \ \ \{1983-{}-1990\}\b{\b{\}}}\string|2\string|[98].\}
- \\[1ex] \bs footnote\{\bs kli \{Reinhard\} \{Europ"aische Expansion\}\string|2\string|[98].\}
- \\[1ex] \bs footnote\{\bs kli \{Reinhard\} \{Europ"aische Expansion\}\string|3\string|[1].\}
+ \\[1ex] ...\bs footnote\{\bs kli \{Reinhard\} \{Europ"aische Expansion\}\string|2\string|[98].\}
+ \\[1ex] ...\bs footnote\{\bs kli \{Reinhard\} \{Europ"aische Expansion\}\string|3\string|[1].\}
}
-{\vspace{1.5ex}%
- \footnote{Band aus Reihe: \notktitaddtok\printonlyvli{Wolfgang} {Reinhard} {Geschichte der
+{\vspace{1.5ex}\notktitaddtok
+ \texttt{\bs ersch} \hspace{.05em}bzw\ko.\ \hspace{-.075em}\texttt{\string|4|} sind optional.\footnote{Band aus Reihe: \printonlyvli{Wolfgang}
+ {Reinhard} {Geschichte der
\ktit{\onlyvoll{e}%
\onlykurz{E}urop"aische%
\onlyvoll{n} Expansion},
- \ersch|4|{Stuttgart} {1983--1990}}|2|[98].\label{Ranf}}
+ \ersch |4| {Stuttgart} {1983--1990}}|2|[98].\label{Ranf}}
- \footnote{\printonlykli {Reinhard} {Europ"aische Expansion}|2|[98].}
+ Selber Band.\footnote{\printonlykli {Reinhard} {Europ"aische Expansion}|2|[98].}
- \footnote{\printonlykli {Reinhard} {Europ"aische Expansion}|3|[1].\label{Rend}}
+ Anderer Band.\footnote{\printonlykli {Reinhard} {Europ"aische Expansion}|3|[1].\label{Rend}}
}
\noindent
St"unden hier \verb|\vli| und \verb|\kli| statt der
tats"achlich verwendeten printonly\hy Befehle, ginge ins Kurzzitateverzeichnis
-\textsc{Reinhard}: Europ"aische Expansion [L] \hspace{.5em}
+\hspace{.2em}\textsc{Reinhard}: Europ"aische Expansion [L] \hspace{.5em}
\textsf{\pageref{Ranf}$^{\ref{Ranf}-\ref{Rend}}$}
-und ins Literaturverzeichnis:
-\textsc{Reinhard}, Wolfgang: Geschichte der europ"aischen Expansion,
+\hspace{.4em}und ins Literaturverzeichnis:
+\hspace{.2em}\textsc{Reinhard}, Wolfgang: Geschichte der europ"aischen Expansion,
4 Bde., Stuttgart 1983--1990.
\vspace{.1ex}
-W"urde die Bandangabe \verb+|3|+ \hspace{.1em}(oder Nummer \hspace{-.3em}\verb+_n_+)\hspace{.1em} in
-Fu"snote~\ref{Rend} fehlen, dann erschiene w"ahrend der \LaTeX\hy "Ubersetzung die
-Fehlermeldung:\footnote{Eine Warnung bei `innerer' \textsc{ebd.}\hy Setzung erfolgt nur,
-wenn \hspace{-.125em}\textit{`innen'} Band- bzw.\ Seitenangaben fehlen
-\textit{und} zuvor (auch) entsprechende `"au\hyss ere' Angaben standen. Sie erhalten
-also \textsc{ebd.}, aber u.\,U. keine Warnung, wenn Sie `innere'
-Bandangaben zu tippen vergessen!}
+W"urde in Fu"snote~\ref{Rend} die \hspace{-.15em}\textit{`\kern.05em "au"sere\ko'} Bandangabe
+\verb+|3|+ \hspace{.25em}(oder Nummer
+\hspace{.1em}\verb+_+\textit{n}\verb+_+) \hspace{.25em}fehlen, dann erschiene w"ahrend der
+\LaTeX\hy "Ubersetzung die Fehlermeldung:
-\vspace{.5ex}\noindent
+\vspace{.4ex}\noindent
\label{pervol}%
-{\small\texttt{ !~Same title, before with :\{pervol\}\{2\}:, has now no no./vol number.}}
+{\scriptsize\texttt{ \ !~Same outer title, before with :\{pervol\}\{2\}:, has now no vol/no.}}
+%% Bis BibArts 2.4 stand am Ende der Meldung: ... no./vol number. %%
-\vspace{.75ex}\noindent
+\vspace{.8ex}\noindent
Dagegen d"urfte die \verb|[1]| nach der \verb+|3|+ wegbleiben, weil es
sich um einen anderen Band als in der vorausgehenden
Fu"snote handelt. $-$ Im Falle von \textbf{mehrb"andigen Herausgeberwerken}
-sind auch `innere' \verb+|+\kern-.1em\textit{Bandangaben}\kern-.125em\verb+|+ erlaubt:
+sind `innere' \verb+|+\kern-.1em\textit{Bandangaben}\kern-.125em\verb+|+ vorgesehen:
-\vspace{-.5ex}%
+\vspace{-.1ex}
\Doppelbox
{\vspace{.5ex}
\bs footnote\{\bs vli \{\}\{\}
- \\[.1em] \ \b{\b{\{}}\bs ktit\{Au\{\bs hyss\}en\string~1\}, in:
+ \\[.1em] \ \b{\b{\{}}\bs ktit\{Außen\string~1\}, in:
\\[.1em] \ \ \bs vli \{\}\{\} \b{\{}\bs ktit\{Innen\}\b{\}}\%
\\[.2em] \ \ \ \ \ \ \string|12\string|[3-4]\b{\b{\}}}*[4].\}
\\[1ex] \bs footnote\{\bs kli\{\}
- \\[.1em] \ \ \ \ \ \ \ \ \ \ \ \ \{Au\{\bs hyss\}en\string~1\}[4].\}
+ \\[.1em] \ \ \ \ \ \ \ \ \ \ \ \ \{Außen\string~1\}[4].\}
\\[1ex] \bs footnote\{... \bs vli\{\}\{\}
- \\[.1em] \ \H{\{}\bs ktit\{Au\{\bs hyss\}en\string~2\}, in:
+ \\[.1em] \ \H{\{}\bs ktit\{Außen\string~2\}, in:
\\[.2em] \ \ \bs kli\{\}\{Innen\}\string|12\string|[5-11]\H{\}}*[8].\}
\vspace{.75ex}
}
{\footnote{\notktitaddtok\printonlyvli {}{}%
- {\ktit{Au{\hyss}en~1}, in:
+ {\ktit{Außen~1}, in:
\printonlyvli {}{}
{\ktit{Innen}}%
|12|[3-4]}*[4].}
\footnote{\printonlykli{}
- {Au{\hyss}en~1}[4].}
+ {Außen~1}[4].}
\footnote{Gleiche Reihe: \notktitaddtok\printonlyvli{}{}
- {\ktit {Au{\hyss}en~2}, in:
- \printonlykli{}{Innen}|12|[5-11]}*[8].}
+ {\ktit {Außen~2}, in:
+ \printonlykli{}{Innen}|12|[5-11]}*[8].\label{zwoelf}}
}
-\vspace{-.6ex}\noindent
-\BibArts\ pr"uft nicht, ob \hspace{.3em}\verb|*[|\textit{Seite}\verb|]| \hspace{.35em}im
-`innen' genannten Intervall \hspace{.25em}\verb|[|\textit{n}\verb|-|\textit{m}\verb|]| \hspace{.25em}liegt.
+\vspace{-.25ex}\noindent
+Falls Sie in Anm.\,\ref{zwoelf} \hspace{.1em}die \hspace{-.1em}\textit{`\kern.05em innere\ko'}
+\verb+|12|+ \hspace{.1em}zu tippen vergessen,
+warnt \BibArts\ seit\pdfko{.5}\ Version 2.5 $-$ in der Fu"snote w"urde zwar ebenfalls
+\hspace{.1em}{\footnotesize\textsc{ebd.}, S.\,5-11} \hspace{.1em}ausgedruckt;\pdfko{.25}\
+aber die Bandangabe w"urde f"alschlicherweise auf der Literaturliste fehlen! Doch \BibArts\
+pr"uft nie, ob die \hspace{.2em}\verb|*[|\textit{Seite}\verb|]|
+\hspace{.25em}im Seitenzahlenbereich
+\hspace{.15em}\verb|[|\textit{n}\verb|-|\textit{m}\verb|]|
+\hspace{.15em}liegt.\pdfko{.25}
+
+
+%!!!>
+
+\noindent
+Seit \BibArts\ 2.5 wird die \textbf{Autor\hy Jahr\hy Zitierweise} \label{AutorJahr}
+unterst"utzt. Das Stern\hy Argument eines v\fhy Befehls
+kann nun etwa
+\hspace{.25em}\verb|*{\onlyvoll{\ktit{1999}}}|
+\hspace{.25em}lauten. K"urzer wird genau dasselbe mit
+\hspace{.15em}\verb|*{\starktit{1999}}|
+\hspace{.15em}erreicht. \balabel{starktit} Diese Maskierung von
+\verb|\ktit| \hspace{.1em}dient
+der \textsc{ebd.}\hy Setzung.
+Die Jahreszahl ist in sp"ateren k\fhy Belegen dann (\ko nur\ko) als
+letztes Argument einzutippen. Bei zwei Publikationen eines Autors im
+selben Jahr sind Eingaben wie
+\verb|1999a| und \verb|1999b| vorgesehen. Im folgenden Beispiel wird
+\verb|\notannouncektit| gesetzt und \verb|\ntsep|
+so umdefiniert, dass in k\fhy Belegen kein Doppelpunkt nach dem
+Nachnamen gedruckt wird. Das Attribut \hspace{-.05em}\verb|\editors| steht
+\textit{mit} \verb|\ktit| in \hspace{-.0625em}\verb|\onlyvoll|:\,%
+{\notannouncektit
+ \renewcommand{\ntsep}{\ifbashortcite{ }{: }}\notktitaddtok
+ \footnote { \printonlyvli{Roger}{Chickering} *{\starktit{1999}}
+ {Total War. The Use and Abuse of a Concept, in:
+ \xprintonlyvli{Manfred F.}{Boemeke} *{\midvauthor{Roger}{Chickering}
+ \vauthor{Stig}{Förster}\onlyvoll{ \editors\ \ktit{1999}}}
+ {Anticipating Total War. The German and American
+ Experiences 1871--1914, Cambridge U.\,K.}[13-28]}*[14\f].}%
+ \,\footnote{\printonlykli{Chickering}{1999}[14\f].\label{RC}}%
+ \,\footnote { \printonlyvli{Gerald D.}{Feldman}*{\starktit{1999}}
+ {Hugo Stinnes and the Prospect of War Before 1914, in:
+ \xprintonlykli{Boemeke} *{\midkauthor{Chickering} \kauthor{Förster}}
+ {1999}[77-95]}*[77]; sowie \printonlykli{Chickering}{1999}[16].\label{inneribid}}\pdfko{.25}%
+}
+
+\vspace{1.375ex}
+\begin{small}
+\noindent
+\verb| \notannouncektit| \\[.25ex]
+\verb| \renewcommand{\ntsep}{\ifbashortcite{ }{: }} % siehe S.|\texttt{\pageref{bacorr}}
+
+\vspace{-.75ex}
+\begin{verbatim}
+ \footnote { \vli{Roger}{Chickering} *{\starktit{1999}}
+ {Total War. The Use and Abuse of a Concept, in:
+ \xvli{Manfred F.}{Boemeke} *{\midvauthor{Roger}{Chickering}
+ \vauthor{Stig}{Förster}\onlyvoll{ \editors\ \ktit{1999}}}
+ {Anticipating Total War. The German and American
+ Experiences 1871--1914, Cambridge U.\,K.}[13-28]}*[14\f].}
+\end{verbatim}
+
+\vspace{-.75ex}\noindent
+\verb| \footnote{\kli{Chickering}{1999}[14\f].} % siehe hier Anm.|\texttt{\ref{RC}}
+
+\vspace{-.75ex}
+\begin{verbatim}
+ \footnote { \vli{Gerald D.}{Feldman}*{\starktit{1999}}
+ {Hugo Stinnes and the Prospect of War Before 1914, in:
+ \xkli{Boemeke} *{\midkauthor{Chickering} \kauthor{Förster}}
+ {1999}[77-95]}*[77]; sowie \kli{Chickering}{1999}[16].}
+\end{verbatim}
+\end{small}
+
+\vspace{.375ex}\noindent
+Vor \verb|\vauthor{Stig}{Förster}| \textit{und} \verb|\kauthor{Förster}|
+sind Leerzeichen, sonst st"unde kein \textsc{ebd.} \hspace{-.05em}in Anm.\,\ref{inneribid}. Und
+\verb|\printvli| \hspace{.075em}w"urde in etwa drucken:\vspace{-1ex}
+
+\subsection*{Literatur}
+\begin{description}\parsep 0ex \itemsep -.5ex\sloppy
+\item
+{\scshape Boemeke}, Manfred F.\baslash {\scshape Chickering}, Roger\baslash {\scshape Förster}, Stig \editors\
+1999: Anticipating Total War. The German and American Experiences
+1871-1914, Cambridge U.\,K.
+\item
+{\scshape Chickering}, Roger 1999: Total War. The Use and Abuse of a Concept, in:
+{\scshape Boemeke}\baslash {\scshape Chickering}\baslash {\scshape Förster} 1999 [L], S.\,13-28.
+\item
+{\scshape Feldman}, Gerald D. 1999: Hugo Stinnes and the Prospect of War Before
+1914, in: {\scshape Boemeke}\baslash {\scshape Chickering}\baslash {\scshape Förster} 1999 [L], S.\,77-95.
+\end{description}
+
+\newpage
+Im Autor\hy Jahr\hy System wird die Literaturliste automatisch in der Reihenfolge
+\hspace{.1em}\textit{Nachname--\hspace{.01em}Vorname--\hspace{.05em}[Nachname--\hspace{.01em}Vorname--]\hspace{.075em}Publikationsjahr}
+\hspace{.05em}sortiert. \hspace{.1em}Falls \hspace{.15em}\texttt{bibsort} \hspace{.1em}mit der
+Option \texttt{-k} \hspace{.175em}gestartet wird, um wiederholte Namen gegen
+\hspace{.1em}{\scshape \Ikillname{}} \hspace{.1em}auszutauschen, k"onnte eine Literaturliste etwa so aussehen:
+
+\vspace{-1ex}
+\begin{description}\parsep 0ex \itemsep -.5ex\sloppy
+\item
+{\scshape Boemeke}, Manfred F.\baslash {\scshape Chickering}, Roger\baslash {\scshape Förster}, Stig \editors\
+1999: Erster Titel.
+\item
+{\scshape \Ikillname{}}\baslash {\scshape \killname}\baslash {\scshape \killname} \editors\
+2000: Zweiter Titel.
+\item
+{\scshape \Ikillname{}}\baslash {\scshape \killname} und {\scshape \killname} \editors\
+2001: Dritter Titel. \texttt{ \%`und' ist sortierrelevant}
+\end{description}
+
+\vspace{-1ex}\noindent
+Der letzte Listenpunkt wurde mit \hspace{.2em}\verb*|*{\vauthor{Roger}{Chickering} |\underline{\texttt{un}}\verb|d|
+\verb*|\vauthor{Stig}{Förster}\onlyvoll{ \editors\ \ktit{2001}}}| \hspace{.2em}im v\hy Befehl
+erzeugt: Dabei steht der vorletzte Autor in \verb|\vauthor| \hspace{.05em}und
+\hspace{.1em}\verb*| und| \hspace{.15em}ist dahinter getippt; \hspace{.05em}\texttt{bibsort} f"uhrt \verb|-k|
+\hspace{.15em}wie gezeigt durch.
+Passende k\fhy Befehle m"ussen \hspace{.2em}\verb*|*{\kauthor{Chickering} und \kauthor{Förster}}|
+\hspace{.2em}enthalten.
+Dazu ein Beispiel mit \verb|\notibidemize| $-$ und \verb|\conferize|\kern.025em\hy Verweisen
+(automatisch wird ein
+\hspace{.1em}{\footnotesize\verb|\newlabel{baf.Boemeke.Chickering|\underline{\texttt{un}}\verb|.2001}{{|\texttt{\ref{exconferize}}\verb|}{|\texttt{\pageref{exconferize}}\verb|}}|}
+\hspace{.125em}erzeugt):\kern.05em%
+{\notktitaddtok
+ \conferize \renewcommand {\ntsep} {\ifbashortcite{ }{: }}%
+ \notprinthints \notannouncektit \notwarnsamename \notibidemize
+\footnote { \printonlyvli{Peter}{Müller} *{\starktit{2001a}}
+{Text 1, in: \xprintonlyvli{Manfred F.}{Boemeke}
+*{\vauthor{Roger}{Chickering} und
+\vauthor{Stig} {Förster}\onlyvoll{ \editors\ \ktit{2001}}}
+{Dritter Titel}[23-45]}.\label{exconferize}}%
+\,%
+\footnote { \printonlyvli {Peter} {Müller}
+*{\starktit{2001b}}
+{Text 2, in:
+\xprintonlykli{Boemeke} *{\kauthor{Chickering} und
+\kauthor{Förster}}
+{2001}[46-78]}*[46].}%
+\,%
+\footnote{\printonlykli{Müller}{2001a}[23]; \printonlykli{Müller}{2001b}[48].}%
+}\balabel{notibidemize}%
+
+\vspace{-.875ex}\begin{small}
+\begin{verbatim}
+ \conferize \renewcommand {\ntsep} {\ifbashortcite{ }{: }}
+ \notprinthints \notannouncektit \notwarnsamename \notibidemize
+\end{verbatim}
+
+\vspace{-4.5ex}
+\begin{verbatim}
+ \footnote { \vli{Peter}{Müller} *{\starktit{2001a}}
+ {Text 1, in: \xvli{Manfred F.}{Boemeke}
+ *{\vauthor{Roger}{Chickering} und
+ \vauthor{Stig} {Förster}\onlyvoll{ \editors\ \ktit{2001}}}
+ {Dritter Titel}[23-45]}.}
+\end{verbatim}
+
+\vspace{-4.5ex}
+\begin{verbatim}
+ \footnote { \vli {Peter} {Müller}*{\starktit{2001b}}
+ {Text 2, in: \xkli{Boemeke}
+ *{\kauthor{Chickering} und
+ \kauthor{Förster}}
+ {2001}[46-78]}*[46].}
+\end{verbatim}
+
+\vspace{-4.5ex}
+\begin{verbatim}
+ \footnote{\kli{Müller}{2001a}[23]; \kli{Müller}{2001b}[48].}
+\end{verbatim}
+\end{small}
+
+\vspace{-.375em}\noindent
+Speziell \verb|\onlyvoll| und \verb|\starktit| \hspace{.05em}sollten Sie $-$\,wie vorgemacht\,$-$
+nur direkt eintippen: Diese Befehle sollten Sie nicht in \hspace{-.05em}\verb|\newcommand|\kern.05em\hy Makros einsetzen,
+sonst kann es zu fehlerhaften Querverweisen kommen \baref{conferizelimits}.
+
+Falls {\footnotesize\verb|\newlabel|} \hspace{.1em}\textit{zweier} Werke \textit{gleich} sind,
+weil die sich z.\,B.\ nur im letzten Autor unterscheiden und der
+fehlt (hier: \texttt{F"orster}), lassen sich {\footnotesize\verb|\newlabel|} \hspace{.1em}in der Art
+\hspace{.175em}\verb|{\onlybakey{A}2001}| \hspace{.15em}in v- \textit{und} k\fhy Befehlen unsichtbar erg"anzen.
+
+
+Falls bei Autor\hy Jahr\hy Zitierweise in v\fhy Befehlen ein Autorenname mit
+\texttt{[f]} oder \texttt{[m]} als \textsc{dies.}\ oder \textsc{ders.}\ gedruckt
+werden soll, ist dies einfach:
+
+\Doppelbox
+ {
+ \bs footnote\{\bs vli\{Petra\} \{Maier\} *\{\bs starktit\{2016\}\}\{Der eine Aufsatz\}.\}
+ \\[.5em] \bs footnote\{\bs vli[f]\{Petra\}\{Maier\} *\{\bs starktit\{2017\}\} \{Der andere Aufsatz\}.\}
+ \\[.5em] \bs footnote\{\bs kli\{Maier\}\{2017\}.\}
+ }
+ {\notktitaddtok
+ Hier nicht in den Listen.%
+ \footnote{\printonlyvli{Petra} {Maier} *{\starktit{2016}}{Der eine Aufsatz}.}
+ \footnote{\printonlyvli[f]{Petra}{Maier} *{\starktit{2017}} {Der andere Aufsatz}.}
+ \footnote{\printonlykli{Maier}{2017}.}
+ }
+
+\noindent
+Falls Sie dagegen mit \verb|[p{}]| ein ganzes Autorenteam mit \textsc{diesn.}
+"uberschreiben wollen, betrifft dies zus"atzlich das gesamte Sternargument und damit auch
+den Kurztitel; \verb|\announcektit| und \verb|\ibidemize| funktionieren so nicht:
+
+\Doppelbox
+ {\vspace{1ex}
+ \bs footnote\{\bs xvli\{Petra\} \{Maier\} *\{\bs vauthor\{Hans\} \{Müller\}\{\bs onlyvoll\{ \bs ktit\{2018\}\}\}\} \{Der eine Aufsatz\}.\}
+ \\[.5em] \bs footnote\{\bs xvli [p\{\}] \{Petra\} \{Maier\} *\{\bs vauthor\{Hans\} \{Müller\}\bs onlyvoll\{ \bs ktit\{2019\}\}\} \{Der andere Aufsatz\}.\}
+ \\[.5em] \bs footnote\{\bs xkli\{Maier\} *\{\bs kauthor\{Müller\}\}\{2019\}.\}
+ \vspace{1ex}
+ }
+ {\notktitaddtok
+ Hier nicht in den Listen.%
+ \footnote{\xprintonlyvli{Petra} {Maier} *{\vauthor{Hans} {Müller}{\onlyvoll{ \ktit{2018}}}} {Der eine Aufsatz}.}
+ \footnote{\xprintonlyvli [p{}] {Petra} {Maier} *{\vauthor{Hans} {Müller}\onlyvoll{ \ktit{2019}}} {Der andere Aufsatz}.}
+ \footnote{\xprintonlykli{Maier} *{\kauthor{Müller}}{2019}.}
+ }
+
+\vspace{-.25ex}\noindent
+Statt in der letzten Fu"snote \textsc{ebd.}\ zu setzen, weist \BibArts\ bei der \LaTeX\hy "Ubersetzung
+darauf hin, dass der Nachname des ersten Autors wiederholt wird.
+Im Autor\hy Jahr\hy System ist der Kurztitel innerhalb von \verb|[p{|\textit{xx}\verb|}]| zu wiederholen:
+
+\Doppelbox
+ {\vspace{1ex}
+ \bs footnote\{\bs xvli\{Petra\} \{Maier\} *\{\bs vauthor\{Hans\} \{Müller\}\{\bs onlyvoll\{ \bs ktit\{2018\}\}\}\} \{Der eine Aufsatz\}.\}
+ \\[.5em] \bs footnote\{\bs xvli [p\{\bs~\bs ktit\{2019\}\}] \{Petra\} \{Maier\} *\{\bs vauthor\{Hans\} \{Müller\}\bs onlyvoll\{ \bs ktit\{2019\}\}\} \{Der andere Aufsatz\}.\}
+ \\[.5em] \bs footnote\{\bs xkli\{Maier\} *\{\bs kauthor\{Müller\}\}\{2019\}.\}
+ \vspace{1ex}
+ }
+ {\notktitaddtok
+ Hier nicht in den Listen.%
+ \footnote{\xprintonlyvli{Petra} {Maier} *{\vauthor{Hans} {Müller}{\onlyvoll{ \ktit{2018}}}} {Der eine Aufsatz}.}
+ \footnote{\xprintonlyvli [p{\ \ktit{2019}}] {Petra} {Maier} *{\vauthor{Hans} {Müller}\onlyvoll{ \ktit{2019}}} {Der andere Aufsatz}.}
+ \footnote{\xprintonlykli{Maier} *{\kauthor{Müller}}{2019}.}
+}
+
+
+%!!!<
\newpage\noindent
Wie sind \textbf{Werke} in die Listen aufzunehmen, \textbf{die im Text nie
-verwendet wurden}? Solche Werke d"urfen auf den num\hy Listen nicht mit den
-Seiten\fhy/""Fu"snotennummern der Stelle gedruckt werden, an der die Angaben
-im \hspace{-.2em}\verb|.tex|\hy File stehen; normale addto\hy Befehle sind also
-ungeeignet. Stattdessen gibt es die \balabel{unused} \verb|{unused}|\hy
-Umgebung. Dort eingef"ugte \BibArts\hy Hauptbefehle bef"ullen nur\pdfko{.25}\
+verwendet wurden}\kern.05em? Solche Werke d"urfen auf den num\hy Listen nicht mit den
+Seiten\fhy\ko\slash Fu"snotennummern der Stelle gedruckt werden, an der die Angaben
+im Ausdruck stehen; normale addto\hy Befehle sind also
+ungeeignet. Stattdessen gibt es die \balabel{unused} \verb|{unused}|\kern.025em\hy
+Umgebung. Dort eingef"ugte \BibArts\hy Hauptbefehle (siehe S.\,\pageref{Hauptbefehle}) bef"ullen nur
die Listen, sind aber im DVI\fhy\slash PDF\hy File
unsichtbar:\footnote{\hspace{.1em}`\ko"Au\hyss ere' Seitenzahlen\hy Angaben, im Beispiel \texttt{[vi]},
-werden auf der Liste nicht gedruckt (hier nicht umgesetzt). Dieses Ignorieren
-in \texttt{\{unused\}}\hy Umgebungen erfolgt absichtlich.}
+werden auf den Listen nicht gedruckt. Dieses Ignorieren
+in \texttt{\{unused\}}\kern.05em\hy Umgebungen erfolgt absichtlich.}
\vspace{-.5ex}
{\small\begin{verbatim}
@@ -1346,10 +1660,10 @@ in \texttt{\{unused\}}\hy Umgebungen erfolgt absichtlich.}
Dieses \verb|\vli| wird als
\verb|\addtovli|\hy Befehl unbestimmter Herkunft interpretiert
(es geht um `"au\hyss erere' v\fhy Befehle).\footnote{\hspace{.1em}`\ko"Au\hyss ere'
-\texttt{\bs printonlyvli}\hy Befehle sind in \texttt{\{unused\}}\hy Umgebungen
+\texttt{\bs printonlyvli}\hy Befehle sind in \texttt{\{unused\}}\kern.05em\hy Umgebungen
genauso sinnlos wie `innere' \texttt{\bs addtovli}\hy Befehle.
Nutzen Sie einfach m"oglichst immer \hspace{-.05em}\texttt{\bs vli} etc.}
-In \verb|{unused}|\hy Umgebungen d"urfen Sie
+In \verb|{unused}|\kern.025em\hy Umgebungen d"urfen Sie
alle \BibArts\hy Hauptbefehle wie etwa \verb|\vli|, \kern-.05em\verb|\vqu|, \kern-.05em\verb|\kli|, \kern-.05em\verb|\kqu| sowie
die unten Seite~\pageref{per} und \pageref{archivquellen} eingef"uhrten
Befehle \verb|\per| und \verb|\arq| nutzen; zwischen solchen Hauptbefehlen d"urfen
@@ -1357,32 +1671,32 @@ beliebig Leerzeichen und \textit{einfache} Zeilenumbr"uche
stehen.
\vspace{2ex}\noindent
-Das Innere von v\fhy Befehlen, die in \verb|{unused}|\hy Umgebungen stehen,
-wird nicht abgearbeitet. Insofern gilt dasselbe, wie f"ur addto\fhy
+Das Innere von v\fhy Befehlen, die in \verb|{unused}|\kern.025em\hy Umgebungen stehen,
+wird nicht abgearbeitet. Insofern gilt dort dasselbe, wie f"ur addto\fhy
Befehle au\hyss erhalb:
\vspace{1ex}\noindent
-\parbox{1.8em}{(1)}In einer \verb|{unused}|\hy Umgebung erzeugen
+\parbox{1.8em}{(1)}In einer \verb|{unused}|\kern.025em\hy Umgebung erzeugen
\hspace{-.15em}\textit{`\kern.05em innere\ko' v\fhy Befehle} keinen eigenen Volleintrag auf den v\fhy Listen.
Trotzdem verwandelt \BibArts\ diese Eintr"age dort in Kurzzitate.
Im letzten Argument von v\fhy Befehlen stehende v\fhy Eintr"age
-sind deshalb nochmals separat in die \verb|{unused}|\hy Umgebung einzuf"ugen.
-Oder Sie verwenden statt `innerer' v\fhy Befehle in der Umgebung den Befehl \verb|\ntvauthor| dazu, Herausgeber
+sind deshalb nochmals separat in die \verb|{unused}|\kern.025em\hy Umgebung einzuf"ugen.
+Oder Sie verwenden statt `innerer' v\fhy Befehle in der Umgebung den Befehl \verb|\ntvauthor|\pdfko{.25}\ dazu, Herausgeber
zu nennen (entsprechend dem \hspace{-.05em}\verb|\vqu|\hy Befehl auf Seite~\pageref{ntvauthor}).
\vspace{1ex}\noindent
\parbox{1.8em}{(2)}Mit \verb|\ktit| markierte
-Kurztitel bewirken in \verb|{unused}|\hy Umgebungen keinen Eintrag ins
-Kurzzitateverzeichnis.\footnote{Au\hyss erhalb von \texttt{\{unused\}}\hy Umgebungen
-wird der Eintrag f"ur die \hspace{-.2em}\texttt{.vkc}\hy Datei
+Kurztitel bewirken in \verb|{unused}|\kern.025em\hy Umgebungen keinen Eintrag ins
+Kurzzitateverzeichnis.\footnote{Au\hyss erhalb von \texttt{\{unused\}}\kern.05em\hy Umgebungen
+wird der Eintrag f"ur die \hspace{-.175em}\texttt{.\ko vkc}\hy Datei
\textit{"uber die\pdfko{.4}\ printonly\hy Komponente} eines
\hspace{-.05em}\texttt{\bs vli}- oder \hspace{-.05em}\texttt{\bs vqu}\hy Befehls erzeugt:
\textit{dort} wird \texttt{\bs ktit} ausgef"uhrt.} Das aber ist meist so erw"unscht.
\vspace{1ex}\noindent
\parbox{1.8em}{(3)}Direkt vor \verb|\end{document}|
-$-$\,dort insbesondere \textit{nach} einer \verb|twocolum|\hy Umgebung\,$-$
-sind \verb|{unused}|\hy Umgebungen schlecht platziert, da sie \textit{dort} nicht
+$-$\,dort insbesondere \textit{nach} einer \verb|twocolum|\kern.05em\hy Umgebung\,$-$
+sind \verb|{unused}|\kern.025em\hy Umgebungen schlecht platziert, da sie \textit{dort} nicht
mehr umgesetzt werden: Die Eintr"age w"urden die Listen nicht erreichen.
Ein guter Platz zum Sammeln ist \textit{vor} dem zugeh"origen
Listenausdruckbefehl.
@@ -1426,7 +1740,7 @@ ausdrucken zu k"onnen:\vspace{-.4ex}
Gr"unde f"ur die neue Umgebung: Die \LaTeX\hy Umgebung \verb|{quote}| setzt den
vertikalen Abstand zum Fu"snotenbereich viel zu klein, wenn mitten in den
"ubersetzten Zitatblock ein Seitenumbruch f"allt. Damit die
-\verb|{originalquote}|\hy Umgebung reagieren kann, versieht \verb|bibarts.sty|
+\verb|{originalquote}|\kern.025em\hy Umgebung reagieren kann, versieht \verb|bibarts.sty|
den bestehenden \LaTeX\hy Befehl\pdfko{.5}\
\verb|\footnoterule| mit einem Zusatz.\footnote{
Au\hyss erdem wird der \textit{Fu"snotenbereich} an den Fu"s der Seite geschoben
@@ -1445,7 +1759,7 @@ lehrbuchgem"a"s \texttt{\bs footnoterule} "andern, beispielsweise: \\[.25ex]
\hspace*{2em}{\ttfamily
\bs renewcommand\{\bs fnrbasave\}\{\bs noindent\bs rule\{5cm\}\{0.5mm\}\bs vspace\{1ex\}\} }}
-Ein zweiter Grund f"ur die \verb|{originalquote}|\hy Umgebung betrifft
+Ein zweiter Grund f"ur die \verb|{originalquote}|\kern.025em\hy Umgebung betrifft
den Zeilenumbruch. Geistes- und
SozialwissenschaftlerInnen zitieren oft in einer von der Basissprache
ihres Textes abweichenden Sprache. Dann muss zur richtigen Worttrennung
@@ -1513,13 +1827,13 @@ steht, ist eine Besonderheit von \BibArts\ nur
S.\,\pageref{Trennbeispiel} bei "`Zum Schluss ..."' zu sehen:
\verb|bibsort| reproduziert den am Zugang g"ultigen Trennsatz
\textit{beim Listenausdruck}. Bei der \LaTeX\hy "Ubersetzung
-kommen \textit{bei der Datei mit der erzeugten Liste} Bildschirm\hy
+\textit{der Datei mit der erzeugten Liste} kommen Bildschirm\hy
Meldungen:\label{hyphenation}%
\vspace{-0.5ex}
{\scriptsize\begin{verbatim}
- [bibsort] Reproduce hyphenation 73 in line 1969 of BibArts file.
- [bibsort] Reproduce hyphenation 48 in line 1974 of BibArts file.
+ [bibsort] Reproduce hyphenation 73 in line 2259 of BibArts file.
+ [bibsort] Reproduce hyphenation 48 in line 2264 of BibArts file.
\end{verbatim}}
\vspace{-0.75ex}\noindent
@@ -1554,7 +1868,7 @@ Abs"atzen:
\vspace{2.5ex}\noindent
Die verschiedenen Befehle zur Trennsatz\hy Einstellung sind
-kombinierbar. Falls in einer \verb|{originalquote}|\hy Umgebung
+kombinierbar. Falls in einer \verb|{originalquote}|\kern.025em\hy Umgebung
der Titel des zitierten Werkes eine andere Sprache als das
w"ortliche Zitat hat, darf \verb|\sethyphenation| am Kopf\pdfko{1}\
der Fu"snote stehen. Falls Sie \verb|\sethyphenation| oder
@@ -1576,7 +1890,7 @@ $-$ Bei wechselnden Trennhilfen \texttt{\bs-} und \texttt{\dq-} setzt
\hspace{.1em}dagegen richtig.}
\vspace{1.5ex}\noindent
-Nebenbei: Die \verb|{originalquote}|\hy Umgebung und der
+Nebenbei: Die \verb|{originalquote}|\kern.025em\hy Umgebung und der
\verb|\sethyphenation|\hy Befehl "andern absichtlich auch das
\textit{spacing} nicht, weil dies in einem Text durchgehend gleich sein sollte.
Vgl. unten Kap.\,\ref{nonfrenchspacing} ab S.\,\pageref{nonfrenchspacing} und
@@ -1584,17 +1898,17 @@ Kap.\,\ref{Punkte} ab S.\,\pageref{Punkte}.
\vspace{1.5ex}\noindent
\BibArts\ reproduziert beim Listenausdruck zudem den Befehl \verb|\originalTeX|\pdfko{.25}\
-aus \verb|german.sty| bzw.\ \verb|ngerman.sty|,
+aus \verb|german.sty| bzw\ko.\ \verb|ngerman.sty|,
falls ein Eintrag aus einem Umfeld mit ver"andertem \textit{catcode} f"ur \verb|"|
herstammt. Von den beiden \verb|"a| unten S.\,\pageref{originaltex}
ist nur eines als "a einsortiert. \verb|\originalTeX| schaltet zudem in den Basis\hy Trennsatz um;
-mir meldete die \LaTeX\hy "Ubersetzung (mit babel unterbliebe dies einfach):
+mir meldete die \LaTeX\hy "Ubersetzung (\ko unter babel funktioniert dies nicht\ko):
\vspace{-.75ex}{\scriptsize\begin{verbatim}
- [bibsort] Set \baoriginalTeX in line 64 of BibArts file.
- [bibsort] Reproduce hyphenation 0 in line 50 of BibArts file.
- [bibsort] Set \bagermanTeX in line 55 of BibArts file. (new)
- [bibsort] Reproduce hyphenation 48 in line 56 of BibArts file.
+ [bibsort] Set \baoriginalTeX in line 50 of BibArts file.
+ [bibsort] Reproduce hyphenation 0 in line 51 of BibArts file.
+ [bibsort] Set \bagermanTeX in line 56 of BibArts file. (new)
+ [bibsort] Reproduce hyphenation 48 in line 57 of BibArts file.
\end{verbatim}}
\vspace{-1ex}\noindent
@@ -1603,7 +1917,7 @@ f"uhrt selbst"andig \hspace{-.1em}\verb|\germanTeX| oder \hspace{-.1em}\verb|\ng
(mit Meldungen \texttt{\footnotesize (old)} oder \texttt{\footnotesize (new)}) aus,
je nachdem, ob Sie \verb|german.sty|
oder \verb|ngerman.sty| geladen haben.\footnote{\label{bagermanTeX}Die Zwischenstufe mit
-\texttt{\bs baoriginalTeX} bzw.\ \hspace{-.05em}\texttt{\bs bagermanTeX} dient dazu, dass
+\texttt{\bs baoriginalTeX} bzw\ko.\ \hspace{-.075em}\texttt{\bs bagermanTeX} dient dazu, dass
Sie mit \texttt{\bs renewcommand} beide Definitionen ausschalten k"onnen,
falls es in Ihrem Text eine andere Bedeutung hat, wenn sich der
\textit{catcode} des \texttt{\dq} "andert. Siehe auch unten S.\,\pageref{original} samt Anm.\,\ref{original}.}
@@ -1730,7 +2044,7 @@ d"urfen also auch keine Leerzeichen enthalten. F"ur das \verb|"| in
\verb|"`| und \verb|"'| ist zudem Voraussetzung, dass es einen \textit{catcode}
von 13 (\textit{aktiv}) hat, wie es nach Laden etwa von \verb|ngerman.sty| oder
babel\hy ngerman der Fall ist. Sonst (Englisch\hy Original\hy\LaTeX) sind auch
-\verb|\abra{"}| bzw.\ \verb|\fabra{"}| m"oglich:~{\originalTeX\fabra{"}} \hspace{.175em}(\texttt{U+0022}).
+\verb|\abra{"}| bzw\ko.\ \verb|\fabra{"}| m"oglich:~{\originalTeX\fabra{"}} \hspace{.175em}(\texttt{U+0022}).
\vspace{1ex}\vfill\noindent
In den `kleinen' Klammern der abra\hy Befehle setzt \BibArts\
@@ -1783,7 +2097,7 @@ funktioniert nicht).
\vspace{1.5ex}\noindent
Dieses automatische \textit{kerning} l"asst sich durch \verb|\nothyko|
ausschalten (Wiedereinschalten mit \verb|\hyko|). Setzen von
-\verb|\hy{}|\hspace{-.15em}\textit{Wort} bzw.\
+\verb|\hy{}|\hspace{-.15em}\textit{Wort} bzw\ko.\
\verb|\fhy{}|\hspace{-.15em}\textit{Wort} unterbindet es ebenfalls.
Das folgende Wort kann dann immer noch getrennt werden.
In einem \texttt{typewriter}\hy Umfeld sollten Sie weiterhin
@@ -1894,8 +2208,8 @@ Bildschirmausdruck allerdings etwa so:
\vspace{-.5ex}\noindent
Verwenden Sie Abk"urzungen im Text, die \textit{nur} in Fu"snoten
-aufgel"ost sind, erscheint (nicht\hy abschaltbar) eine Bildschirm\hy
-Warnung. Falls Sie tippen ...
+aufgel"ost sind, erscheint eine Bildschirm\hy
+Warnung. Falls Sie etwa tippen ...
\Doppelbox
{...\bs footnote\b{\{}Ein \bs abkdef\{e.\bs,V.\}
@@ -1909,7 +2223,7 @@ Warnung. Falls Sie tippen ...
\noindent
... "ubernimmt \verb|bibsort| Abk"urzung und zugeh"orige Auf"|l"osung
-zwar ins Abk"urzungsverzeichnis, meldet allerdings stets etwas wie:
+zwar ins Abk"urzungsverzeichnis, meldet allerdings etwas wie:
{\scriptsize\begin{verbatim}
%%> Warning: Abbreviation "e.\,V." is used in
@@ -1924,7 +2238,7 @@ in einer vorausgehenden Editorzeile befand.
\vspace{2ex}\noindent
Das Abk"urzungsverzeichnis wird hier mit \verb|\printnumabklist| ausgedruckt.
-Die Befehle \verb|\printabk| bzw.\ das zentrale \verb|\printnumabk| ergeben
+Die Befehle \verb|\printabk| bzw\ko.\ das zentrale \verb|\printnumabk| ergeben
einen doppelspaltigen Ausdruck in \verb|\footnotesize| auf einer neuen
Seite unter der "Uberschrift \textbf{Abk"urzungen}, was hier nur aus
Platzgr"unden unterbleibt:
@@ -1938,7 +2252,7 @@ defaultm"a\hyss ig \verb|\bfseries| ausf"uhrt
(\textbf{fett}). Die Seiten, von denen Definitionen
herstammen, sind in der Auf"|listung von Seitenzahlen nicht
hervorgehoben. Eine Hervorhebung einzelner Seitenzahlen sieht
-auch \BibArts\ 2.4 nie vor.
+auch \BibArts\ 2.5 nie vor.
F"ur Abk"urzungen wie \printonlyabk{u.\,a.}, die Allgemeingut sind und deshalb
vielleicht nicht ins Abk"urzungsverzeichnis sollen, kann
@@ -1951,7 +2265,7 @@ die Hervorhebung von Abk"urzungen ausschalten und dann \verb|u.\,a.| tippen.
Falls ein Eintrag ins Abk"urzungsverzeichnis soll, man sich die
Auf"|l"osung im Text aber sparen will, hilft die bereits erw"ahnte
-\verb|{unused}|\hy Umgebung:
+\verb|{unused}|\kern.025em\hy Umgebung:
\vspace{-1.25ex}
{\small
@@ -1966,8 +2280,8 @@ Auf"|l"osung im Text aber sparen will, hilft die bereits erw"ahnte
\end{unused}
\vspace{-1ex}\noindent
-Solche Definitionen kommen ohne Seiten\fhy/""Fu"snotennummer in die
-num\hy Liste. Zudem kann \verb|\abk{u.\,a.}| dann "uberall im Text
+Solche Definitionen kommen ohne Seiten\fhy\ko\slash Fu"snotennummer in die
+num\hy Liste. Zudem kann \hspace{.1em}\verb|\abk{u.\,a.}| \hspace{.15em}dann "uberall im Text
(also auch davor) verwendet werden, ohne dass \verb|bibsort| das
Fehlen der Auf"|l"osung bem"akelt.
@@ -2044,7 +2358,7 @@ Dasselbe l"asst sich erreichen durch \hspace{-.05em}\verb|\onlyout|
\noindent
Es gibt somit auch zwei Notationsarten, um eine in Text und Liste
-abweichende Gro"s\fhy/""Kleinschreibung der Abk"urzung auszudrucken:
+abweichende Gro"s\fhy\ko\slash Kleinschreibung der Abk"urzung auszudrucken:
\Doppelbox
{\vspace{.75ex}
@@ -2333,9 +2647,9 @@ mittels \verb|\renewcommand{\gpername}{, Heft }| ver"andern
\vspace{.9ex}\noindent
Falls \BibArts\ nach v\fhy, k- oder per\hy Befehlen im Eintrag zwischen den
-\textit{senkrechten\pdfko{.5}\ Strichen} bzw.\ zwischen den \textit{underscores}
+\textit{senkrechten\pdfko{.5}\ Strichen} bzw\ko.\ zwischen den \textit{underscores}
Singular und Plural nicht richtig erkennt, l"asst sich mit
-\verb|\basingular| bzw.\ \verb|\baplural| \textit{am Ende}
+\verb|\basingular| bzw\ko.\ \verb|\baplural| \textit{am Ende}
nachjustieren:\label{baplural}
\vspace{-.25ex}
@@ -2375,8 +2689,9 @@ nachjustieren:\label{baplural}
}
\vspace{-.25ex}\noindent
-Falls Sie zwischen \verb+|+...\verb+|+ und \verb+_+...\verb+_+
-unbeabsichtigt wechseln (vgl.\ Anm.\,\ref{Wechsel}),
+Falls Sie zwischen \hspace{.25em}{\footnotesize\verb+|+...\verb+|+}
+\hspace{.325em}und \hspace{.325em}{\footnotesize\verb+_+...\verb+_+}
+\hspace{.275em}unbeabsichtigt wechseln (vgl.\ Anm.\,\ref{Wechsel}),
erhalten Sie keine Warnung (die Zahlen werden im selben Speicher
hinterlegt). \BibArts\ macht auch hier nur die oben
S.\,\pageref{before} und \pageref{pervol} beschrieben Fehlermeldungen.
@@ -2462,7 +2777,7 @@ In Voreinstellung \verb|\printlongpervol| wird vor der
\verb+|+\ko\textit{Bandnummer}\ko\verb+|+ der Separator\hspace{.2em}
{\footnotesize Bd.}\hspace{.2em}
ausdruckt. Mit \verb|\notprintlongpervol| wird stattdessen nur
-ein Leerzeichen gedruckt; davor bleibt nach {\footnotesize [L]} bzw.\
+ein Leerzeichen gedruckt; davor bleibt nach {\footnotesize [L]} bzw\ko.\
{\footnotesize [Q]} das Komma erhalten:
\Doppelbox
@@ -2503,25 +2818,25 @@ Setzung zus"atzlich\hspace{.1em} {\footnotesize Nr.}\hspace{.1em} nicht ausgedru
{
\bs notprintlongpagefolio
\\[.5ex] \bs footnote\{
- \\ \ \ \bs per\{ShortMagazine\}\string_25\string_[4].\}
+ \\ \ \bs per\{Le Petit Journal\}\string_25\string_[4].\}
\\[.2ex] \bs footnote\{
- \\ \ \ \bs per\{ShortMagazine\}\string_25\string_[5].\}
+ \\ \ \bs per\{Le Petit Journal\}\string_25\string_[5].\}
\\[.2ex] \bs footnote\{
- \\ \ \ \bs per\{ShortMagazine\}\string_26\string_[6].\}
+ \\ \ \bs per\{Le Petit Journal\}\string_26\string_[6].\}
\\[3ex] \bs notprintlongpervol
\\[.5ex] \bs footnote\{
- \\ \ \ \bs per\{ShortMagazine\}\string_27\string_[7].\}
+ \\ \ \bs per\{Le Petit Journal\}\string_27\string_[7].\}
}
{
\notprintlongpagefolio
- \footnote{\per {ShortMagazine}_25_[4].}
+ \footnote{\per {Le Petit Journal}_25_[4].}
- \footnote{\per {ShortMagazine}_25_[5].}
+ \footnote{\per {Le Petit Journal}_25_[5].}
- \footnote{\per{ShortMagazine}_26_[6].}
+ \footnote{\per{Le Petit Journal}_26_[6].}
\notprintlongpervol
- \footnote{\per{ShortMagazine}_27_[7].}
+ \footnote{\per{Le Petit Journal}_27_[7].}
}
@@ -2604,9 +2919,10 @@ in \verb|\gpername| das zweite Argument von \verb|\ifbaibidem| dann
("Anderung in \BibArts\ 2.2).}
\vspace{3ex}\noindent
-Die Befehle sind auch auf Listen anwendbar. Ausgedruckt
-werden w"urde beispielsweise ein Eintrag unter\hspace{.1em}
-\verb|{\notprintlongpagefolio|\,\verb|\printvqu|\,\verb|}|\hspace{.1em} so:
+Die genannten Befehle sind auch auf Listen anwendbar. Ausgedruckt
+werden w"urde beispielsweise mittels
+\hspace{.25em}\verb|{\notprintlongpagefolio|\,\verb|\printvqu|\,\verb|}|
+\hspace{.25em}etwa:
\vspace{.1ex}
{\footnotesize
@@ -2683,7 +2999,7 @@ Neue Akte, erste Mappe.\footnote{\arq{Haber am 17.12.1914 an
Kultusminister} {GStAPK, HA\,1, Rep~76~Vc, Sekt~1,
Tit~23, Litt~A, Nr.\,108}|2|(223\f).}
-Selbe Mappe, anderes Schriftst"uck.\footnote{\arq{Setsuro Tamaru am 24.12.1914 an
+Selbe Mappe, neues Schriftst"uck.\footnote{\arq{Setsuro Tamaru am 24.12.1914 an
Clara Haber} {GStAPK, HA\,1, Rep~76~Vc, Sekt~1,
Tit~23, Litt~A, Nr.\,108}|2|(226-231).}
@@ -2818,7 +3134,7 @@ R\,8729~4}(94)
ersten Argumente von\hspace{-.1em} \verb|\arq|)
zur Nachvollziehbarkeit als \hspace{.1em}
{\small\verb|%%|~\textit{Kommentar}\ko~\verb|%%|}
-\hspace{.1em} im\hspace{-.1em} \verb|.aux|\hy File festgehalten:
+\hspace{.1em} im \hspace{-.1em}\verb|.aux|\hy File festgehalten:
\vspace{-.75ex}
{\footnotesize\begin{verbatim}
@@ -2828,13 +3144,13 @@ zur Nachvollziehbarkeit als \hspace{.1em}
\end{verbatim}}
\vspace{-.75ex}\noindent
-Die Eintr"age {\small\verb|(f)|} bzw.\ {\small\verb|(mpf)|}
+Die Eintr"age {\small\verb|(f)|} bzw\ko.\ {\small\verb|(mpf)|}
dokumentieren, ob Zug"ange aus einer normalen oder
\verb|minipage|\hy Fu"snote herstammen (oder leer: nicht aus
einer Fu"snote).
\vspace{1.25ex}\noindent
-Im\hspace{-.1em} \verb|.arq|\hy File stehen alle
+Im \hspace{-.1em}\verb|.arq|\hy File stehen alle
\textsf{R\,8729~4} zusammengefasst unter der BA\hy "Uberschrift.
Im {\small\verb|%%|~\textit{Kommentar}\ko~\verb|%%|}
steht der erste Eintrag.
@@ -2971,7 +3287,7 @@ am Kopf von \texttt{\bs xrrlistopen} weder \texttt{\bs bastrut} noch die
\textit{italics}\hy Korrektur \texttt{\bs bacorr} n"otig; vgl.
unten das Kap.\,\ref{schraegkap} ab S.\,\pageref{schraegkap}.}
Die Serie von fill\hy Befehlen ist im folgenden sorgf"altigen Beispiel
-in eine \verb|{unused}|\hy Umgebung gesetzt \baref[vgl.]{unused},
+in eine \verb|{unused}|\kern.025em\hy Umgebung gesetzt \baref[vgl.]{unused},
damit an ihren Positionen im Text kein horizontaler Leerraum erzeugt wird:
\vspace{1ex}
@@ -3005,7 +3321,7 @@ diesem Nachnamen angetippt werden. Diese Nutzung ist wohl nur
f"ur Fortgeschrittene geeignet. Verdeutlicht werden sollte
jedoch: Die lokalen Umdefinitionen von \verb|\xrrlistopen| und
\verb|\xrrlistclose| reisen separat mit dem \verb|Churchill|\hy\ und\pdfko{.25}\
-\verb|Bethmann-Hollweg|\hy \textit{fill} ins \hspace{-.2em}\verb|.prr|\hy File.
+\verb|Bethmann-Hollweg|\hy \textit{fill} ins \hspace{-.175em}\verb|.prr|\hy File.
Dann druckt \verb|\printnumprr| in etwa:
@@ -3028,13 +3344,13 @@ besteht oft aus mehreren schon vorhandenen \LaTeX\hy Befehlen. Falls
Sie den neuen Befehl in eines der Argumente eines \BibArts\hy Befehls, etwa
\hspace{-.1em}\verb|\vli|\kern.01em, tippen, wird bei der \LaTeX\hy
"Ubersetzung eine Kopie dieser Argumente an Ort und Stelle
-ausgedruckt und eine zweite Kopie in das \hspace{-.2em}\verb|.aux|\hy
+ausgedruckt und eine zweite Kopie in das \hspace{-.175em}\verb|.aux|\hy
File geschrieben. Ist der neue Befehl nicht gesch"utzt, wird er beim
-Schreiben in das \hspace{-.2em}\verb|.aux|\hy File allerdings
+Schreiben in das \hspace{-.175em}\verb|.aux|\hy File allerdings
teilweise ausgef"uhrt. Besteht seine Deklaration aus gesch"utzten
Befehlen, werden \textit{sie}\pdfko{.25}\
-in das \hspace{-.15em}\verb|.aux|\hy
-File geschrieben, sonst wiederum deren Deklarationen $-$ u.\,s.\,w.
+in das \hspace{-.125em}\verb|.aux|\hy
+File geschrieben, sonst wiederum deren Deklarationen $-$ u.\,s.\,w\ko.
Solche Befehle nennt man \textit{zerbrechlich}. Ist ein zerbrechlicher
Befehl ungesch"utzt, droht zumindest, dass \verb|bibsort| Ihre
@@ -3047,25 +3363,24 @@ Befehle so definiert sind, dass sie nicht expandieren. Bleibt aber das Risiko, d
Titel mit Ihren eigenen Neudefinitionen falsch einsortiert. Wenn Sie etwa
\hspace{.1em}\verb|\newcommand{\meinspace}{{\hskip| \verb|3cm}}| \hspace{.1em}definieren und
\hspace{.1em}\verb|\meinspace| \hspace{.1em}in das Argument eines \verb|\vli|\hy Befehls tippen, wird
-\hspace{.1em}\verb|{\hskip 3cm}| \hspace{.1em}ins \hspace{-.2em}\verb|.aux|\hy File geschrieben und beim
+\hspace{.1em}\verb|{\hskip 3cm}| \hspace{.1em}ins \hspace{-.175em}\verb|.aux|\hy File geschrieben und beim
Einsortieren Ihres Literaturtitels \hspace{.05em}\verb|3cm| \hspace{.05em}mitgewichtet.\footnote{Zur richtigen Sortierung
k"onnte \texttt{\bs newcommand\{\bs meinspace\}\{\bs nosort\{\bs hskip 3cm\}\}} definiert werden;
dies ist aber nur bei \textit{absichtlich} zerbrechlichen Definitionen einzusetzen.}
\underbar{Gegenma"snahme:} Durch Tippen von \verb|\protect\meinspace|
in solche Argumente ist der Befehl gesch"utzt; es wird \verb|\meinspace|
-ins \hspace{-.2em}\verb|.aux|\hy File kopiert.\footnote{\texttt{\bs protect}
+ins \hspace{-.175em}\verb|.aux|\hy File kopiert.\footnote{\texttt{\bs protect}
muss nicht mit \texttt{\bs onlyout} maskiert werden: Es arbeitet
in der addto- und der printonly\hy Komponente etwa von
\texttt{\bs vli} eigenst"andig unterschiedliche Deklarationen ab.}
Wie sich \LaTeX\hy Befehle verhalten, "anderte sich wie gesagt "uber verschiedene Versionen
hinweg. Seit Kurzem ist \verb|\underline| von \LaTeX\ selbst gesch"utzt, doch
-im \hspace{-.2em}\verb|.aux|\hy File werden unterschiedlich viele Leerzeichen
+im \hspace{-.175em}\verb|.aux|\hy File werden unterschiedlich viele Leerzeichen
erzeugt, falls Sie bei \textit{einem} Titel mal trotzdem \verb|\protect| verwenden und mal nicht.
-Statt einer Zusammenfassung zu \textit{einem} Listenpunkt erscheinen \textit{zwei} Eintr"age auf
-den Listen und au\hyss erdem scheitert das \textsc{ebd.}\hy Setzen (wie schon
-Seite~\pageref{underline} erw"ahnt).
+Statt einer Zusammenfassung zu \textit{einem} Listenpunkt erscheinen \textit{zwei} Eintr"age auf\pdfko{.5}\
+den Listen und au\hyss erdem scheitert das \textsc{ebd.}\hy Setzen.
Einen bestimmten \LaTeX\hy Befehl, den Sie in \BibArts\hy Argumenten nutzen,
sollten Sie also einheitlich sch"utzen, oder nicht.
@@ -3077,10 +3392,10 @@ oben S.\,\pageref{ProtectBeispiel} f"ur \texttt{\bs ko} vorgemacht\,$-$
\texttt{\bs protect} in eine Doppel\hy Definition setzen (um der Problematik auszuweichen).}
Ob ein Befehl mit \verb|\protect| gesch"utzt werden sollte, ist nicht immer nur am
-Umstand erkennbar, ob das, was Sie im\hspace{-.15em} \verb|.tex|\hy File eingegeben haben,
-auch ebenso im\hspace{-.15em} \verb|.aux|\hy File erscheint. Der \BibArts\hy Befehl \verb|\hyf|
+Umstand erkennbar, ob das, was Sie im \hspace{-.175em}\verb|.tex|\hy File eingegeben haben,
+auch ebenso im \hspace{-.175em}\verb|.aux|\hy File erscheint. Der \BibArts\hy Befehl \verb|\hyf|
ist ein Beispiel: Falls Sie \verb|\sethyphenation{german}| festgelegt haben,
-wird ins\hspace{-.15em} \verb|.aux|\hy File \verb|\oldhyf| eingetragen, sonst \verb|ff|. Das
+wird ins \hspace{-.175em}\verb|.aux|\hy File \verb|\oldhyf| eingetragen, sonst \verb|ff|. Das
sollte eben nicht mit \verb|\protect| unterbunden werden (\verb|bibsort| kann
sogar nur \verb|\oldhyf| richtig als \verb|f| sortieren, nicht jedoch \verb|\hyf|).
Der Befehl macht aus \verb|Sto\hyf figur| unter Voreinstellung \verb|\sethyphenation{german}|
@@ -3145,13 +3460,12 @@ der \BibArts\hy Hauptbefehle egal, ob \hspace{-.1em}\verb|\hyss| mit
\newpage
\section{Punkte, \,\texttt{\bs bahasdot} \,und \,\texttt{\bs banotdot}}\label{Sect10}\label{Punkte}
-Die \BibArts\hy Befehle, die statt ihrer Argumente auch \textsc{ebd.}
-ausdrucken k"onnen,
-d"urfen den Ausdruck eines unmittelbar nach ihnen
+\BibArts\hy Befehle, die statt ihrer Argumente auch \textsc{ebd.}
+ausdrucken k"onnen, d"urfen den Ausdruck eines direkt nach ihnen
getippten Punktes eigenst"andig unterbinden. Sonst w"urden
am Satzende oft zwei Punkte gedruckt (\kern-.5pt\textsc{ebd.}.).
-Diese Befehle sind \verb|\kli|, \verb|\kqu|, \verb|\per|
-und \verb|\abkper|, sowie \verb|\arq|.
+Das sind kli\fhy, kqu\fhy, per- und arq\hy Befehle samt aller ihrer
+printonly\hy Varianten. %% zudem speziell \verb|\abkper| %%
\vspace{1ex}\noindent
In englischen Texten (unter \verb|\nonfrenchspacing|)\hspace{.1em} stellen
@@ -3161,6 +3475,7 @@ Befehle markiert ein Satzende und verl"angert das
\verb*| | entsprechend. Auch in \hspace{.1em}\verb*|\abk{X.X.X.}. |
\hspace{.25em}bezeichnet \hspace{.25em}\verb*|}. | \hspace{.2em}ein
Satzende. Es druckt \textit{immer} \hspace{.05em}\abk{X.X.X.}.
+%% spacing ist auch nach v-Befehlen korrekt %%
Auch im \hspace{-.05em}\verb|\frenchspacing| \hspace{.05em}(dt.\
oder frz.\ \hspace{-.05em}Texte mit stets gleicher Leerzeichenl"ange)
@@ -3188,7 +3503,7 @@ Sie befehlen, den Punkt zu `verschlucken'\kern-.05em.
\vspace{1ex}\noindent
Diese Halbautomatisierung ist seit Version~2.2 auf Band- und Seitenangaben ausgedehnt.
Weiterhin drucken\hspace{.1em} \verb|\f].| und\hspace{.15em} \verb|\sq].|\hspace{.1em}
-(f"ur \textit{folgende} bzw.\ \textit{sequentes}\ko) \hspace{.05em}ein `f.'
+(f"ur \textit{folgende} bzw\ko.\ \textit{sequentes}\ko) \hspace{.05em}ein `f.'
unter {\small\verb|\bacaptionsgerman|} und (Beispiel) {\small\verb|\bacaptionsenglish|}:
\vspace{1.25ex}\noindent
@@ -3242,7 +3557,7 @@ erfolgen:
\vspace{2ex}\noindent
Nicht automatisch bew"altigt wird \,\verb|!\banotdot}| \,vor \textit{mehreren} Punkten.
Zur\pdfko{.5}\
-L"osung dieses sehr seltenen Problems kann \hspace{-.075em}\verb|\strut| nach \verb|}| gesetzt
+L"osung dieses sehr seltenen Problems \label{strut} kann \hspace{-.075em}\verb|\strut| nach \verb|}| gesetzt
werden: \verb|\kli{N.}{XX!\banotdot}...| kann zur falschen \textit{italics}\hy Korrektur
{\renewcommand{\kxxemph}{\itshape}\notprinthints \showbacorr
\printonlykli{N.}{XX!\banotdot}...\pdfko{.25}\
@@ -3255,72 +3570,68 @@ f"uhren, w"ahrend
Einfacher ist sicher, wenn Sie sich Kurztitel ohne Satzzeichen aussuchen.}}
-\vspace{4ex}\noindent
-Nach dem letzten Argument von \hspace{-.1ex}\verb|\vli| oder
-\hspace{-.05ex}\verb|\vqu| \hspace{.05ex}l"oscht \BibArts\ einen Punkt\pdfko{.5}\
-\textit{im Text} \underline{nie} automatisch,
-weil es \hspace{-.075ex}\textit{dort} das letzte Argument nicht durchsucht.
-Falls das letzte Argument eines v\fhy Befehls mit einem Punkt
-enden sollte, ist die Verwendung von \verb|\bahasdot| in jeder
-Sprache sinnvoll, denn nur dann ist ein sp"aterer Wechsel zwischen
-\verb|\announcektit| und \verb|\notannouncektit|
-m"oglich (die Ank"undigung der sp"ateren Kurzzitierweise).
-
-\vspace{-.4ex}
+\vspace{4.5ex}\noindent
+Seit Version 2.5 behandelt \BibArts\ \hspace{.025em}\textbf{Punkte} nun auch am Ende des letzten
+Arguments von \hspace{-.1ex}\verb|\vli| oder
+\hspace{-.05ex}\verb|\vqu| eigenst"andig. Dieser Automatismus ist wichtig, falls \verb|\notannouncektit| gesetzt
+oder \verb|\ktit| "uberhaupt nicht verwendet wird.\footnote{Allerdings ist nicht
+vorgesehen, dass in \texttt{\bs gannouncektitname}\kern.025em,
+\hspace{-.025em}\texttt{\bs fannouncektitname}\pdfko{.5}\
+oder \hspace{.1em}\texttt{\bs eannouncektitname} \hspace{.025em}\baref{announcektit} etwas
+wie \texttt{\bs bapoint} \hspace{.025em}steht; es w"urde nicht automatisch bedient. Die drei genannten Separatoren
+definieren den Text f"ur die \textit{im Folgenden\pdfko{.75}\ \hspace{-.075em}\fabra{...}}\kern.1em\hy
+Ank"undigung und sollen diesen weiterhin stets mit einem Klammersymbol einleiten.}
+Nur in Sonderf"allen ist weiterhin \verb|\bahasdot| oder \verb|\banotdot| n"otig:
+
\Doppelbox
-{\vspace{.5ex}
-\bs notannouncektit
-\\[.25ex]
-Vers.\string~1: \bs vli\{Niklas\}\{Luhmann\} \{\bs ktit\{Soziale Systeme\}. Grundriß
-einer allgemeinen Theorie, 1984: Frankfurt/M.\}. \ \ \%\%~FALSCH
-\\[1.5ex]
-\% Nicht in den Listen umgesetzt:
-\\[.5ex]
-Vers.\string~2: \bs vli\{Niklas\}\{Luhmann\} \{\bs ktit\{Soziale Systeme\}. Grundriß
-einer allgemeinen Theorie, 1984: Frankfurt/M.\bs bahasdot\}. Das ...
-\vspace{.75ex}
+{\vspace{2ex}
+\bs vli\{Niklas\}\{Luhmann\}
+\\ \ \{Soziale Systeme.
+\\ \ \ Grundriß einer allgemeinen
+\\ \ \ Theorie, 1984:
+\\ \ \ Frankfurt/M.\}. \ \ \ \% . am Ende
+\\[3.25ex]
+\bs vli\{Niklas\}\{Luhmann\}
+\\ \ \{Soziale Systeme.
+\\ \ \ Grundriß einer allgemeinen
+\\ \ \ Theorie, 1984:
+\\ \ \ \string`Frankfurt/M.\string'\}. \ \% \string' am Ende
+\\[3.25ex]
+\bs vli\{Niklas\}\{Luhmann\}
+\\ \ \{Soziale Systeme.
+\\ \ \ Grundriß einer allgemeinen
+\\ \ \ Theorie, 1984:
+\\ \ \ \string`Frankfurt/M.\string'\bs banotdot\}.
+\vspace{1.5ex}
}
-{\vspace{1.1ex}
-\notannouncektit
-Vers.~1: \vli{Niklas}{Luhmann} {\ktit{Soziale Systeme}. Grundriß
-einer allgemeinen Theorie, 1984: Frankfurt/M.}.
-\\[2.375ex]
-Vers.~2: \printonlyvli{Niklas}{Luhmann} {\ktit{Soziale Systeme}. Grundriß
-einer allgemeinen Theorie, 1984: Frankfurt/M.\bahasdot}.
-Das ist auch unter \texttt{\bs frenchspacing} besser!
-}%
-\label{v-Ausnahme}%
-
-\noindent
-Beim Drucken \hspace{-.1em}\textit{der Listen} wird im letzten Argument von v\fhy Befehlen
-aber nach `Punkt' gesucht; Frankfurt/M.. ist so in
-\hspace{-.05em}\verb|\printvli| und \verb|\printvqu|\pdfko{.3}\
-ausgeschlossen (solange nicht etwas wie \verb|.{}}|
-am Ende steht). Vers.\,2 ist in den Listen nicht umgesetzt,
-um dort zwei Luhmann\hy Eintr"age zu vermeiden.
+{\texttt{\% . wird automatisch behandelt:}
+\\ \printonlyvli{Niklas}{Luhmann} {Soziale Systeme. Grundriß
+einer allgemeinen Theorie, 1984: Frankfurt/M.}.
+\\[4.2ex]
+\texttt{\% BibArts druckt den . nach \} :}
+\\ \printonlyvli{Niklas}{Luhmann} {Soziale Systeme. Grundriß
+einer allgemeinen Theorie, 1984: `Frankfurt/M.'}.
+\\[4.2ex]
+\texttt{\% Punkt von Hand ausgeschaltet:}
+\\ \printonlyvli{Niklas}{Luhmann} {Soziale Systeme. Grundriß
+einer allgemeinen Theorie, 1984: `Frankfurt/M.'\banotdot}.%
+\vspace{.5ex}}%
-\vfill\noindent
-Zusammengefasst gibt es eine Ausnahme bei v\fhy Befehlen,
-nachdem der Schalter \verb|\notannouncektit| gesetzt wurde.
-Falls Sie darauf in deutschen Texten (\texttt{ngerman.sty}
-\hspace{.05em}setzt \verb|\frenchspacing|) und auf \hspace{.05em}\verb|\notprinthints|
-verzichten, brauchen Sie \hspace{-.05em}\verb|\banotdot|
-und \verb|\bahasdot| nicht unbedingt zu kennen.
\newpage\noindent
F"ur die \textbf{Definition der Textelemente}, die f"ur den Ausdruck zwischen den
Argumenten von \BibArts\hy Befehlen vorgefertigt sind (`Separatoren'),
dient der Befehl \verb|\bapoint| zum Drucken eines Punktes am Separatoren"-\textit{kopf}.
-\hspace{.1em}\verb|\bapoint| reagiert auf die Suche nach einem Punkt \textit{am Endes des
+\balabel{bapoint} \hspace{.1em}\verb|\bapoint| reagiert auf die Suche nach einem Punkt \textit{am Endes des
Arguments davor}\pdfko{.01}\
-(bzw.\ auf Ihr \verb|\bahasdot| oder \verb|\banotdot|) und druckt dann
+(bzw\ko.\ auf Ihr \verb|\bahasdot| oder \verb|\banotdot|) und druckt dann
\textit{keinen} Punkt.
Falls Sie im Text in \hspace{-.05em}\verb|\arq| \hspace{.05em}zwischen Schriftst"uck und Signatur
einen Punkt statt ein Komma haben wollen, m"ussen Sie\hspace{-.1em} \verb|\arqsep|
-umdefinieren. Sie sollten nicht \verb*|{. }|\kern.1em\ zuweisen:\kern.2em\
-\verb|\renewcommand{\arqsep}{\bapoint\newsentence}| reagiert automatisch
+umdefinieren. Sie sollten nicht \hspace{.05em}\verb*|{. }| \hspace{.1em}zuweisen:
+\hspace{.125em}\verb|\renewcommand{\arqsep}{\bapoint\newsentence}| reagiert automatisch
und druckt keinen Punkt, wenn die sp"atere Eingabe des Schriftst"ucks
bereits selbst mit einem Punkt endet.\footnote{\balabel{arqsep}%
\texttt{\,\bs renewcommand\{\bs arqsep\}\{\bs bapoint\bs newsentence\}
@@ -3387,57 +3698,60 @@ Es gibt auch \verb|\ff| (und \verb|\sqq|).
\newpage\noindent
-Falls Sie etwa eine\hspace{-.1em} \verb|\onlyout|\hy Konstruktion im
-Argument eines\hspace{-.1em} \verb|\kli|\hy Befehls \textit{ganz ans
-Ende} setzen, findet \BibArts\ u.\,U. irrt"umlich den `falschen'
-Punkt. Im folgenden Beispiel wird \verb|{}| in einem solchen Fall
-genutzt, um den am Ende von \verb|o.O.| stehenden Punkt `hier'
-auszublenden.\footnote{Am Argumenten\hy Ende ist `\texttt{\}}'
-erlaubt:\hspace{.2em} \texttt{\bs abk\{\bs protect\bs underline\{Abk.\}\}. =>}\hspace{.3em}
-\printonlyabk{\protect\underline{Abk.}}.} Damit der Punkt
-trotz \verb|{}| aber in der Liste `gesehen' wird, steht
-\verb|\bahasdot| am Ende von \verb|\onlyout|:
+Falls Sie eine\hspace{-.1em} \verb|\onlyhere|\hy\ko\verb|\onlyout|\hy Konstruktion
+\textit{ans Ende} etwa eines\hspace{-.1em} \verb|\kli|\hy Arguments setzen, findet
+\BibArts\ einen dort am Ende stehenden Punkt entweder `hier' oder in der Liste
+nicht.\footnote{Am Argumenten\hy Ende findet \BibArts\
+"ubrigens auch einen Punkt vor \texttt{\{\}} oder vor einem \LaTeX\hy Befehl
+nicht. Aber \hspace{-.15em}\texttt{.\}} wird erkannt:
+\hspace{.2em}\texttt{\bs abk\{\bs protect\bs underline\{Abk.\}\}. =>}\hspace{.3em}
+\printonlyabk{\protect\underline{Abk.}}.} Eine M"oglichkeit ist, f"ur \BibArts\
+den Punkt im zuerst \textit{getippten} Argument mit \verb|\bahasdot| zu markieren.
+Seit \BibArts\ 2.5 gibt es zudem den Befehl
+\verb|\sechere{|\ko\textit{OutArg}\verb|}{|\textit{HereArg}\verb|}|, \balabel{sechere}
+der beim Schreiben ins \hspace{-.175em}\verb|.aux|\hy File seine beiden Argumente vertauscht
+schreibt, sodass immer das `richtige' \hspace{-.075em}Argument zuletzt steht und der Punkt
+`von selbst' gefunden wird:
-\vspace{1.25ex}\noindent
+\vspace{.75ex}\noindent
{\small
\verb| \notprinthints| \notprinthints \\[.25ex]
-\verb| \kli{}{Buch\onlyout{ o.O.\bahasdot}{}}. | \verb| =>|
-\printonlykli{}{Buch\onlyout{ o.O.\bahasdot}{}}.
+\verb| \kli{Yi}{\onlyhere{o.O.\bahasdot}{\onlyout{ohne Ort}}}. =>|
+\printonlykli{Yi}{\onlyhere{o.O.\bahasdot}{\onlyout{ohne Ort}}}.
\\[.25ex]
-\verb| \kli{}{A.{\onlyhere{\bahasdot}}\onlyout{ N}}.| \verb| =>|
-\printonlykli{}{A.{\onlyhere{\bahasdot}}\onlyout{ N}}.
+\verb| \kli{Yi}{\sechere{ohne Ort}{o.O.}}. =>|
+\printonlykli{Yi}{\sechere{ohne Ort}{o.O.}}.
}
-\vspace{1.75ex}\noindent
+\vspace{1.25ex}\noindent
Unter {\small\verb|\notprinthints| \verb|\renewcommand{\fromnopagevkcsep}{\bapoint}|} \balabel{fromnopagevkcsep2}
-w"urde dann auch {\small\verb|\printvkc|} korrekt mit \textit{einem} Punkt je Eintrag ausgedruckt.
+w"urde in beiden F"allen {\small\verb|\printvkc|} korrekt mit \textit{einem} Punkt je Eintrag ausgedruckt.
-\vspace{2.5ex}\noindent
-Seit Version~2.2 werden auch die Namen\hy Argumente
-von v- und k\fhy Befehlen daraufhin gepr"uft, ob Punkte am Ende stehen;
-und auch die optionalen Sternargumente werden durchsucht.
+\vspace{1.5ex}\noindent
+Auch die Nachnamen\hy Argumente sowie die Stern\hy Argumente von v- und k\fhy Befehlen
+werden daraufhin durchsucht, ob ein Punkt am Ende steht.
Damit ist m"oglich, \verb|\bapoint| in die Definition des Separators \verb|\ntsep|
-aufzunehmen, ohne z.\,B. nach abgek"urzten Namen \verb|\bahasdot| setzen zu m"ussen:
+aufzunehmen, ohne am Ende von abgek"urzten Namen immer \verb|\bahasdot| tippen zu m"ussen:
\Doppelbox
{
-\vspace{.5ex}
+\vspace{1.25ex}
\bs renewcommand\{\bs ntsep\}\{\bs bapoint\bs\ \} \\[1.75ex]
\bs vli\{N\}\{N\} \\
-\ \ \ \{Das \bs ktit\{Buch\}, London\} \\[1.75ex]
+\ \ \ \{Das \bs ktit\{Buch\}, London\} \\[1.25ex]
\bs vli\{N.\}\{N.\} \\
-\ \ \ \{Das \bs ktit\{Buch\}, London\} \\[1.75ex]
+\ \ \ \{Das \bs ktit\{Buch\}, London\} \\[1.25ex]
\bs vli\{N\}\{N\}*\{Hg\} \\
-\ \ \ \{Das \bs ktit\{Buch\}, London\} \\[1.75ex]
+\ \ \ \{Das \bs ktit\{Buch\}, London\} \\[1.25ex]
\bs xvli\{N.\}\{N.\} \\
\ \ \ *\{\bs vauthor\{M.\}\{M.\}\} \\
\ \ \ \{Das \bs ktit\{Buch\}, London\}
-\vspace{.5ex}
+\vspace{.75ex}
}
{
-\vspace{2.5ex}
+\vspace{3.5ex}
\renewcommand{\ntsep}{\bapoint\ }\notktitaddtok
\printonlyvli{N}{N}{Das \ktit{Buch}, London} \\[.9ex]
\printonlyvli{N.}{N.}{Das \ktit{Buch}, London} \\[.9ex]
@@ -3445,12 +3759,12 @@ aufzunehmen, ohne z.\,B. nach abgek"urzten Namen \verb|\bahasdot| setzen zu m"us
\xprintonlyvli{N.}{N.}*{\vauthor{M.}{M.}}{Das \ktit{Buch}, London}
}
-\vspace{.5ex}\noindent
+\vspace{.325ex}\noindent
F"ur die hier in den Listen umgesetzten Titel ergibt dann
die Anwendung von\hspace{.2em}
{\footnotesize\verb|{\renewcommand{\ntsep}{\bapoint\newsentence} \nonfrenchspacing \printvli}|}\hspace{.2em}:
-\vspace{-1ex}
+\vspace{-1.75ex}
{\renewcommand{\ntsep}{\bapoint\newsentence} \nonfrenchspacing \printvli}
@@ -3466,16 +3780,17 @@ gelegentlich n"otig an $\bullet$~ihrem Kopf, \hspace{.25em} $\bullet$~ihrem Ende
Die Stellen dieser\hspace{.1em} \textit{automatischen Korrekturen}\hspace{.1em}
macht \verb|\showbacorr| sichtbar.
-\vspace{1.5ex}\noindent
+\vspace{1ex}\noindent
Da v-, k-, per- und arq\hy Befehle am Kopf stets
in aufrechte Schrift umschalten, ist \textit{in schr"aggestelltem
-Umfeld} ggf.\ eine Korrektur n"otig. Nach \verb*| |\hspace{.05em}
-oder am Absatzanfang wird diese \textbf{Kopf"|korrektur}
-nicht durchgef"uhrt.\footnote{Die Kopf"|korrektur ist \texttt{\bs/}\hspace{.2em}
-(f"ur andere \textit{italics}\hy Korrekturen setzt \BibArts\ \texttt{\bs kern 0.1em}).}
-
-
-\vspace{1.5ex}\noindent\hspace{.5em}
+Umfeld} ggf.\ eine Korrektur n"otig. Au\hyss er direkt nach Leerzeichen
+f"uhrt \BibArts\ diese \textbf{Kopf"|korrektur} eigenst"andig
+durch:\footnote{Die Kopf"|korrektur ist \texttt{\bs/}\hspace{.2em}
+(f"ur andere \textit{italics}\hy Korrekturen setzt \BibArts\ \texttt{\bs kern} \texttt{0.1em\kern.025em}).
+Bei `hohem Zeichen\texttt{+}Leerzeichen' w"are sorgf"altig:
+\hspace{.05em}\texttt{\bs itshape} \texttt{H\bs/ \bs kli\{N\}\{\}.}\hspace{.1em}\texttt{=>} {\showbacorr\itshape H\/ \printonlykli{N}{}}.}
+
+\vspace{1ex}\noindent\hspace{.5em}
{\small\itshape\showbacorr
\begin{tabular}{ll}
& \verb| \itshape \showbacorr| \\[.25ex]
@@ -3496,34 +3811,61 @@ nicht durchgef"uhrt.\footnote{Die Kopf"|korrektur ist \texttt{\bs/}\hspace{.2em}
(\printonlyabk{Initialen}) & \verb|(\abk{Initialen})| \\
\end{tabular}}\label{abkA}
-\vspace{1.75ex}\noindent
-\verb|\vauthor|, \verb|\midvauthor|, \verb|\kauthor| und
-\verb|\midkauthor| korrigieren ebenfalls bei Bedarf `am Kopf' automatisch.
+\vspace{1.25ex}\noindent
+Die Befehle \verb|\vauthor|, \verb|\midvauthor|, \verb|\kauthor| und
+\verb|\midkauthor| korrigieren auf die beschriebene Weise `am Kopf'
+ebenfalls eigenst"andig. Mit dem Schalter
+\hspace{.025em}\verb|\notbafrontcorr| \hspace{.075em}l"asst sich die
+Kopf"|korrektur ausschalten.
-Die Kopfkorrektur wird praktisch immer ben"otigt. Trotzdem existiert der
-Befehl \verb|\notbafrontcorr|, um sie auszuschalten:
+\vspace{1ex}\noindent
+\textbf{Endkorrekturen} werden von \verb|\abk|\kern.05em, \verb|\kli| und \hspace{.025em}\verb|\kqu|
+\hspace{.05em}durchgef"uhrt. Speziell innerhalb von Kurzzitaten
+stellt \verb|\kxxemph| \hspace{.05em}die Schrift des Kurztitels ein:\footnote{Seit \BibArts\ 2.5 w"are zudem
+\hspace{.1em}\texttt{\bs textit\{\bs ktit\{Soziale Systeme\}}\underline{\texttt{\}}} \hspace{.15em}erlaubt;
+nun d"urfen Sie \texttt{\bs ktit\{}\fabra{...}\underline{\texttt{\}}}
+\hspace{.05em}einklammern. Im v\fhy Argument sollte nach \hspace{.1em}\underline{\texttt{\}}}
+\hspace{.15em}aber stets weiterer Text stehen!}
-\vspace{-.5ex}
+\vspace{-.75ex}
\Doppelbox
-{
-\bs itshape \bs showbacorr
-\\[.1ex] \ \ (\bs arq\{Aktenst"uck\}\{Signatur\})
-\\[.5ex] \{\bs notbafrontcorr
-\\ \ \ (\bs arq\{Aktenst"uck\}\{Signatur\})\}
-}
-{\vspace{2.6ex}
-\itshape \showbacorr
- (\printonlyarq{Aktenst"uck}{Signatur})
-\\[2.7ex] {\notbafrontcorr (\printonlyarq{Aktenst"uck}{Signatur})}
+{\vspace{.5ex}%
+\bs renewcommand \{\bs kxxemph\} \{\bs itshape\} \bs showbacorr
+ \\[.75ex]
+ \bs footnote\{ \bs kli\{Luhmann\}
+ \\ \{Soziale Systeme\}.\}
+ \\[.75ex]
+ \bs footnote\{Soziologie:
+ \bs vli\{Niklas\} \{Luhmann\} \{\bs ktit\{Soziale Systeme\}.
+ \\ Grundriß einer allgemeinen Theorie, 1984: Frankfurt/M.\}.\}%
+ \vspace{.5ex}%
}
+{\texttt{\% kursive Kurztitel}
+ \\[1.5ex]
+ \renewcommand {\kxxemph} {\itshape} \showbacorr
+ \footnote{ \kli{Luhmann} {Soziale Systeme}.}
+ \footnote{Soziologie:
+ \vli{Niklas} {Luhmann} {\ktit{Soziale Systeme}. Grundriß einer
+ allgemeinen Theorie, 1984: Frankfurt/M.}.}%
+}\label{kxxA}%
+\vspace{1.25ex}\noindent
+Wird zus"atzlich \verb|\notprinthints| gesetzt, das den Ausdruck
+von {\small [L]} und {\small [Q]} unterbindet, ergibt sich
+(mit \verb|\strut!| statt \verb|!| w"urde nicht korrigiert; S.\,\pageref{strut}):
-\vspace{2.25ex}\noindent
-\textbf{Endkorrekturen} nach \verb|\abk|, \verb|\kli| und \verb|\kqu|
-lassen sich nicht abschalten. Unter \verb|\renewcommand{\abkemph}{\itshape}|
-korrigiert \verb|\abk| in aufrechtem Umfeld, falls das Argument
-\textit{nicht} mit `\texttt{.}' endet, oder kein `\texttt{.}' oder
-`\texttt{,}' folgt:
+\vspace{1ex}\noindent
+{\small\verb| {\showbacorr \kli{N}{K}, \kli{N}{K}!} =>|}
+{\renewcommand{\kxxemph}{\itshape}\notprinthints\showbacorr\printonlykli{N}{K}, \printonlykli{N}{K}!}
+\\
+{\small\verb| {\showbacorr \kli{N}{K.}, \kli{N}{K.}!} =>|}
+{\renewcommand{\kxxemph}{\itshape}\notprinthints\showbacorr\printonlykli{N}{K.}, \printonlykli{N}{K.}!}
+
+\vspace{1.25ex}\noindent
+Und \verb|\abk| \hspace{.15em}korrigiert unter \hspace{.075em}\verb|\renewcommand{\abkemph}{\itshape}|
+\hspace{.15em}parallel genauso (falls das Argument
+\textit{nicht} mit `\kern-.075em\texttt{.}\kern-.075em' endet $-$ bzw\ko.\ \textit{kein} \hspace{.05em}`\kern-.075em\texttt{.}\kern-.075em' oder
+`\kern-.05em\texttt{,}\kern-.05em' folgt):
\vspace{1ex}\noindent
{\small\verb| {\showbacorr \abk{GmbH}, \abk{GmbH}!} =>|}
@@ -3532,61 +3874,34 @@ korrigiert \verb|\abk| in aufrechtem Umfeld, falls das Argument
{\small\verb| {\showbacorr \abk{e.\,V.}, \abk{e.\,V.}!} =>|}
{\renewcommand{\abkemph}{\itshape}\showbacorr \abk{e.\,V.}, \abk{e.\,V.}!}
-
\vspace{1.25ex}\noindent
-Dasselbe gilt f"ur \verb|\renewcommand{\kxxemph}{\itshape}|, \label{kxxA}
-mit dem der Kurztitel in \verb|\kli| und \verb|\kqu| \textit{kursiv}
-gesetzt wird.\footnote{\texttt{\bs kxxemph} wirkt sich au\hyss erdem noch auf die
-Vorank"undigung der Kurzzitate in den v\fhy Befehlen aus;
-\renewcommand{\kxxemph}{\bfseries\itshape}\showbacorr
-\texttt{\bs renewcommand\{\bs kxxemph\}\{\bs bfseries\bs itshape\}} \texttt{\bs showbacorr}
-bewirkt: \vli{Niklas} {Luhmann}{\ktit{Soziale Systeme}. Grundriß
-einer allgemeinen Theorie, 1984: Frankfurt/M.}[123]. $-$ Falls das Argument von
-\texttt{\bs ktit} hervorgehoben werden soll, w"urde
-\hspace{-.05em}\texttt{\bs textit\{\bs ktit\{}\fabra{...}\texttt{\}\}}
-die \textsf{im Folgenden}\hy Ank"undigung \hspace{.1em}unterbinden. \textit{Richtig w"are}:
-\hspace{.1em}\texttt{\bs vli\{Niklas\} \{Luhmann\}
- \{\bs em \bs ktit\{Soziale Systeme\}\bs em . Grundriß einer
- allgemeinen Theorie, 1984: Frankfurt/M.\}}}
-Im Fall von \verb|\notprinthints|, das den Ausdruck von {\small [L]}
-und {\small [Q]} unterbindet, wird automatisch korrigiert:
-
-\vspace{.5ex}\noindent
-{\small\verb| {\showbacorr \kli{N}{K}, \kli{N}{K}!} =>|}
-{\renewcommand{\kxxemph}{\itshape}\notprinthints\showbacorr\printonlykli{N}{K}, \printonlykli{N}{K}!}
-\\
-{\small\verb| {\showbacorr \kli{N}{K.}, \kli{N}{K.}!} =>|}
-{\renewcommand{\kxxemph}{\itshape}\notprinthints\showbacorr\printonlykli{N}{K.}, \printonlykli{N}{K.}!}
-
-\vspace{.75ex}\noindent
Auch im schr"aggestellten Umfeld verhalten sich beide Befehle weiter richtig:
-\vspace{.6ex}\noindent
+\vspace{1ex}\noindent
{\small\verb| {\itshape\showbacorr \abk{GmbH}, \abk{GmbH}!} =>|}
{\itshape\renewcommand{\abkemph}{\itshape}\showbacorr\abk{GmbH}, \abk{GmbH}!}\\
{\small\verb| {\itshape\showbacorr \kli{N}{K}, \kli{N}{K}!} =>|}
{\itshape\renewcommand{\kxxemph}{\itshape}\notprinthints\showbacorr\printonlykli{N}{K}, \printonlykli{N}{K}!}
-\vspace{1.25ex}\noindent
+\vspace{2.25ex}\noindent
In den vorgefertigten Textelementen (\textbf{Separatoren}),
die \BibArts\ zwischen den Argumenten ausdruckt, sind ebenfalls oft
\textit{italics}\hy Korrekturen n"otig.\footnote{Separatoren sollen
\textit{nur} vorgefertigten Text und \BibArts\hy\textit{italics}\hy Korrekturen enthalten;
-\textsc{Schriftumschaltbefehle} werden in die \BibArts\hy \texttt{\bs}...\texttt{emph}\hy Befehle gesetzt
-\baref{hervor}!}
-Auch diese Korrekturen arbeiten in Voreinstellung automatisch.
+\textsc{Schriftumschaltbefehle} werden in die \BibArts\hy\ko\texttt{\bs}\fabra{...}\texttt{emph}\hy Befehle gesetzt
+\baref{hervor}!} Auch diese Korrekturen arbeiten in Voreinstellung automatisch.
Zur \textit{Ver"anderung von Separatoren} l"asst sich \verb|\renewcommand|
verwenden.\pdfko{.25}\
Danach sollen die Korrekturen weiterhin automatisch arbeiten.
\textit{Italics}\hy Korrekturen sind n"otig,
wenn schr"age auf aufrechte Schriften treffen k"onnten und der
-Separator (\underline{\underline{unteres Beispiel}}) nicht nur aus `niederen' Zeichen besteht:
+Separator nicht mit \underline{\vphantom{p}`niederen' Zeichen} sondern \underline{\underline{`hohen' Zeichen}} endet:
-\vspace{-.75ex}
+\vspace{-.25ex}
\Doppelbox
-{
+{\vspace{1.75ex}%
\bs itshape\bs showbacorr
\\[1ex]
\bs renewcommand\{\bs nsep\}\{\underline{,\vphantom{p} }\}
@@ -3595,11 +3910,12 @@ Separator (\underline{\underline{unteres Beispiel}}) nicht nur aus `niederen' Ze
\\ \ \ \ \bs kauthor\{Gro"s\} [Hrsg.]\b{\}}
\\ \ \{Schlieffenplan\}[468].
\\[1.75ex]
-\bs renewcommand\{\bs nsep\}\{\underline{\underline{/\bs baupcorr}}\}
-\\[.75ex] ... ... \bs xkqu\{Ehlert\}
+\bs renewcommand\{\bs nsep\}\{\underline{\underline{/}}\bs baupcorr\}
+\\[1.25ex] ... ... \bs xkqu\{Ehlert\}
\\ \ \string*\{\bs midkauthor\{Epkenhans\}
\\ \ \ \ \bs kauthor\{Gro"s\} [Hrsg.]\}
-\\ \ \{Schlieffenplan\}[469].
+\\ \ \{Schlieffenplan\}[469].%
+\vspace{1.5ex}%
}
{
\itshape\showbacorr\noindent
@@ -3607,7 +3923,7 @@ Separator (\underline{\underline{unteres Beispiel}}) nicht nur aus `niederen' Ze
... ... \xkqu{Ehlert} *{\midkauthor{Epkenhans} \kauthor{Gro"s} [Hrsg.]}
{Schlieffenplan}[468].
-\vspace{.5cm}
+\vspace{.75cm}
\textup{\texttt{\bs nsep}} steht zwischen Namen in
ggf.\ kursiver Umfeldschrift, w"ahrend die
Namen aufrecht sind.
@@ -3622,25 +3938,26 @@ sollte eine automatische italics\hy Korrektur also \emph{ans Ende}:
\label{nsep2}%
-\vspace{-.25ex}\noindent
+\vspace{.125ex}\noindent
\verb|\baupcorr| korrigiert \textit{immer} dann, wenn es in
schr"aggestelltem Umfeld steht. F"ur den \textit{Kopf} einer
Separator\hy Definition ist \verb|\baupcorr| damit ungeeignet, denn es reagiert
-nicht, falls Sie in das \textit{davorstehende Argument des
-\BibArts\hy Befehls} Text tippen, der mit einem Punkt endet.
+nicht, falls Sie in das \textit{davor} stehende Argument des
+\BibArts\hy Befehls eine Abk"urzung tippen $-$ nach der \textit{nicht} korrigiert werden sollte!~...
-\newpage \BibArts\ durchsucht etliche Argumente deshalb
-und stellt f"ur den folgenden Separator eine \textit{italics}\hy Korrektur bereit.
-Dieser Korrektur\hy Befehl hei"st seit Version 2.2 einheitlich
-\hspace{-.1em}\verb|\bacorr|.\hspace{.1em} Er tut nichts, falls das vorausgehende Argument
+\newpage\noindent
+Deswegen durchsucht \BibArts\ etliche Argumente
+und stellt f"ur den folgenden Separator einen dazu passenden \textit{italics}\hy Korrektur\hy Befehl bereit.
+Der Befehl hei"st seit Version 2.2 einheitlich \label{bacorr}
+\hspace{-.1em}\verb|\bacorr|.\hspace{.1em} Er tut nichts, falls das Argument
mit einem Punkt endet. F"ur num\hy Listenausdrucke etwa steht
-\verb|\bacorr| am Kopf des Separators \verb|\frompagesep|, \label{frompagesep}
+\verb|\bacorr| am Kopf des Separators \verb|\frompagesep|\kern.025em, \label{frompagesep}
um ggf.\ vor den stets aufrechten Indexzahlen zu korrigieren.
(Das alte \verb|\balistcorr| speziell f"ur diesen Separator ist weiterhin Alternative.)
-Das Argument von \verb|\frompagesep| und die Indexzahlen druckt \BibArts\ in
-\verb|\balistnumemph| aus (voreingestellt
-\verb|\sffamily|):\footnote{\label{listnum}In \texttt{\bs balistnumemph} eingesetzte Schr"agschrift\hy Befehle
+Das \textsf{Argument} von \verb|\frompagesep| und die \textsf{Indexzahlen} druckt \BibArts\ in
+\verb|\balistnumemph| aus; daf"ur ist \verb|\sffamily|
+voreingestellt:\footnote{\label{listnum}In \texttt{\bs balistnumemph} eingesetzte Schr"agschrift\hy Befehle
ignoriert \BibArts\ einfach, denn vor den `Fu"snoten'\hy Exponenten in
num\hy Listen soll auf \textit{italics}\hy Korrekturen verzichtet werden.}
@@ -3649,12 +3966,12 @@ num\hy Listen soll auf \textit{italics}\hy Korrekturen verzichtet werden.}
{\small
\begin{verbatim}
{\renewcommand{\frompagesep}{\bacorr ; } % ; HOCH mit Korrektur
- \itshape \showbacorr \printnumvlilist }
+ \itshape \showbacorr \printnumvlilist }
\end{verbatim}}
\vspace{-2.5ex}
{\renewcommand{\frompagesep}{\bacorr ; } % ; HOCH mit Korrektur
- \itshape \showbacorr \baonecolitemdefs\printnumvlilist }\label{frompagesep1}%
+ \itshape \showbacorr \baonecolitemdefs\printnumvlilist }\label{frompagesep1}%
\vspace{.5ex}\noindent
@@ -3695,8 +4012,8 @@ Doch k"onnen Sie mit
\hspace{-.05em} \verb|\ifbashortcite|\hspace{.4em}\verb|{|\textit{Text k\fhy Befehl}\hspace{.2em}\verb|}|\hspace{.4em}%
\verb|{|\textit{Text v\fhy Befehl}\hspace{.2em}\verb|}|\hspace{.4em}
im Argument von \verb|\ntsep| weiterhin Textunterschiede f"ur k- und v\fhy Befehle festlegen.\footnote{\label{ntsepC}\texttt{%
-\bs renewcommand}\hskip 1pt plus 2pt\texttt{\{\bs ntsep\}}\hskip 1pt plus 2pt\texttt{\{\bs ifbashortcite\{:\bs hskip0pt plus 0pt\bs bacorr\}\{: \}\}}
-w"urde im v\hy Befehl \textit{ein Leerzeichen} nach dem `:' drucken, im k\fhy Befehl nicht.}
+\bs renewcommand}\hskip 1pt plus 2pt\texttt{\{\bs ntsep\}}\hskip 1pt plus 2pt\texttt{\{\bs ifbashortcite\{:\bs hskip0pt plus 0pt\}\{: \}\bs bacorr\}}
+druckt im v\hy Befehl nach `\kern.025em:' \textit{ein Leerzeichen} (im k\fhy Befehl nicht $-$ und korrigiert \textit{nur dort}).}
\newpage
@@ -3875,18 +4192,18 @@ stehen soll. Im Abk"urzungsverzeichnis
steht die Abk"urzung immer links und die Erkl"arung immer rechts.
\verb|bibarts.sty|
-legt f"ur \verb|\abklistopen| zun"achst \verb|{\protect\pabklo}| fest;
-das f"uhrt \verb|{\bastrut\hskip 1.2em minus 0.3em\bacorr}| aus.
+\hspace{.05em}legt f"ur \verb|\abklistopen| \hspace{.1em}zun"achst \hspace{.1em}\verb|{\protect\pabklo}| \hspace{.1em}fest;
+\hspace{.1em}\verb|\pabklo| \hspace{.2em}f"uhrt \hspace{.25em}\verb|{\bastrut\hskip 1.2em minus 0.3em\bacorr}| \hspace{.3em}aus.
"Aquivalent h"angen \verb|\abklistclose|
und \verb|\pabklc| zusammen (das nichts tut: \verb|{}|).
-Im Beispiel werden die Listenseparatoren \verb|\pabklo| oder
+Im folgenden Beispiel definiere ich \verb|\pabklo| und
\verb|\pabklc| direkt vor dem Befehl zum Ausdruck des Abk"urzungsverzeichnisses
-lokal umdefiniert. Dies wirkt sich aus auf alle Eintr"age,
+lokal um. Dies wirkt sich aus auf alle Eintr"age,
an deren Stellen im Text die Voreinstellungen f"ur
\verb|\abklistopen| und \verb|\abklistclose| nicht ver"andert wurden.
-Im Text ver"andert wurden die Listenseparatoren f"ur die Abk"urzung `S';
-dazu gleich. Zuerst der Ausdruck des gesamten Abk"urzungsverzeichnisses:
+Dagegen im Text ver"andert wurden die Listenseparatoren f"ur die Abk"urzung \hspace{-.05em}{\itshape\bfseries S}
+\hspace{.1em}(dazu gleich). Zuerst der Ausdruck des gesamten Abk"urzungsverzeichnisses:
\vspace{.5ex}{\small
\begin{verbatim}
@@ -3921,14 +4238,14 @@ Der im Abk"urzungsverzeichnis abweichende Zugang kam so zustande:
Der
\\[.2ex] \b{\{}\bs renewcommand\{\bs abklistopen\}\{, \}\%
\\ \ \bs renewcommand\{\bs abklistclose\}
- \\ \ \ \ \ \{ [Erkl"arung am Zugangsort]\}\%
+ \\ \ \ \ \ \{ [Erklärung am Zugangsort]\}\%
\\[.4ex] \ \bs abkdef\{S\}\{Sonderfall\}\b{\}}
\\[.2ex] in der Liste.
\vspace{1.2ex}
}
{\vspace{8.125ex}
\ \ Der {\renewcommand{\abklistopen}{, }%
- \renewcommand{\abklistclose}{ [Erkl"arung am Zugangsort]}%
+ \renewcommand{\abklistclose}{ [Erklärung am Zugangsort]}%
\abkdef{S}{Sonderfall}} in der Liste.
}\balabel{abklistopen}%
@@ -3938,14 +4255,14 @@ Der im Abk"urzungsverzeichnis abweichende Zugang kam so zustande:
halber mit einem `niederen' Zeichen beginnt,
vor dem keine Korrektur n"otig ist; und \verb|\abklistclose|
braucht keine.
-Eingetragen wird ins\hspace{-.15em} \verb|.aux|\hy File f"ur die
+Eingetragen wird ins \hspace{-.175em}\verb|.aux|\hy File f"ur die
Einf"uhrung der Abk"urzungen \abk{OHG} und \abk{S} mit \verb|\abkdef| oder \verb|\defabk| etwas wie:
\vspace{0.325ex}
{\scriptsize\begin{verbatim}
- %\abkrzentry{OHG}{Offene Handelsgesellschaft}{{\pabklo }{\pabklc }{}{}}...(line 1864)
+ %\abkrzentry{OHG}{Offene Handelsgesellschaft}{{\pabklo }{\pabklc }{}{}}...(line 2014)
...
- %\abkrzentry{S}{Sonderfall}{{, }{ [Erkl\IeC {\"a}rung am Zugangsort]}{}{}}...(line 3928)
+ %\abkrzentry{S}{Sonderfall}{{, }{ [Erklärung am Zugangsort]}{}{}}...(line 4084)
\end{verbatim}}
\vspace{.725ex}\noindent
@@ -3953,11 +4270,11 @@ Die Definitionen von \verb|\abklistopen| und
\verb|\abklistclose| sind dabei jeweils ("ahnlich \verb|\nsep|\hspace{.075em}
oben S.\,\pageref{Ausreise}) zusammen mit den beiden Hauptargumenten von
\verb|\abkdef| oder \verb|\defabk| ins
-\hspace{-.2em}\verb|.aux|\hy File gereist. Gelten f"ur Separatoren
+\hspace{-.175em}\verb|.aux|\hy File gereist. Gelten f"ur Separatoren
im Falle mehrerer Erkl"arungen \textit{einer} Abk"urzung
unterschiedliche Definitionen,
-warnt \texttt{bibsort} mittels Bildschirmmeldung; es verwendet auch bei den
-Separatoren zum Ausdruck der Liste jeweils die erste Definition.
+warnt \texttt{bibsort} mittels Bildschirmmeldung; es verwendet beim Ausdruck
+der Liste auch f"ur die Separatoren immer die erste Definition.
@@ -3974,7 +4291,7 @@ KCAG}{BA Zwischenarchiv Dahlwitz\hy Hoppegarten R\,8729~4}(94)}.
\vspace{1.25ex}\noindent
Beim \textbf{Drucken des Archivquellenverzeichnisses} darf
f"ur \verb|\arqlistemph| (oder \verb|\arqemph|, siehe S.\,\pageref{arqemph2})
-dagegen \textit{kursiv} eingestellt werden. Im \BibArts\hy Archivalienverzeichnis werden
+dagegen \textit{kursiv} eingestellt werden. Im \BibArts\hy Archivquellenverzeichnis werden
die einzelnen Dokumente nicht aufgelistet:
\vspace{.25ex}
@@ -4009,7 +4326,7 @@ Die "offnenden und schlie\hyss enden Separatoren f"ur die per\hy Liste
hei\hyss en (symmetrisch zu den abk\hy Befehlen) \label{perlistopen}
\verb|\perlistopen| und \verb|\perlistclose|. Sie f"uhren
\verb|\protect\pperlo| und \verb|\protect\pperlc| aus, um
-beim Schreiben ins \hspace{-.15em}\verb|.aux|\hy File nicht zu zerbrechen.
+beim Schreiben ins \hspace{-.175em}\verb|.aux|\hy File nicht zu zerbrechen.
Beim Ausdrucken der per\hy Liste f"uhren \verb|\pperlo| und
\verb|\pperlc| gem"a"s Voreinstellung
\verb|{\bastrut\ \bacorr $-$ }| und \verb|{}| aus. Daran k"onnen
@@ -4035,19 +4352,19 @@ Im \textbf{Archivquellenverzeichnis} dienen
\verb|\arqlistopen| und \verb|\arqlistclose| als Separatoren.
\label{Gedankenstriche} Sie f"uhren \verb|{\protect\parqlo}|
und \verb|{\protect\parqlc}| aus und expandieren
-zu \verb|{\bastrut\hskip 1em minus 0.3em\bacorr}| und zu \verb|{}|.
+zu \hspace{.2em}\verb|{\bastrut\hskip 1em minus 0.3em\bacorr}| \hspace{.2em}und zu \hspace{.075em}\verb|{}|\kern.1em.
Die "Uberschriften, die im Verzeichnis ungedruckter Quellen
m"oglich sind, enthalten die oben gezeigten Gedankenstriche,
die von den Befehlen \verb|\arqsectionopen|\kern.05em, \verb|\arqsubsectionopen|
und \verb|\arqsubsubsectionopen| initiiert werden. Alle f"uhren direkt
-\hspace{.1em}\verb|{\bastrut\ \bacorr $-$ }| \hspace{.1em}aus.
+\hspace{.2em}\verb|{\bastrut\ \bacorr $-$ }| \hspace{.2em}aus.
\vspace{1ex}\noindent
Weiter existieren \verb|\xrrlistopen| und \verb|\xrrlistclose|\kern.025em.
Sie schreiben f"ur die drei \BibArts\hy Register \verb|\protect|\hy gesch"utzt
-\verb|\pxrrlo| und \verb|\pxrrlc| \hspace{.075em}ins \hspace{-.1em}\verb|.aux|\hy File und expandieren
-zu \hspace{.2em}\verb|{\bastrut\ \bacorr(}| bzw.\ \verb|{)}|
-\hspace{.3em}(vgl.\ oben S.\,\pageref{xrrlistclose}).
+\verb|\pxrrlo| und \verb|\pxrrlc| \hspace{.075em}ins \hspace{-.125em}\verb|.aux|\hy File und expandieren
+zu \hspace{.35em}\verb|{\bastrut\ \bacorr(}| \hspace{.4em}bzw\ko.\ \hspace{.35em}\verb|{)}|
+\hspace{.35em}(vgl.\ oben S.\,\pageref{xrrlistclose}).
@@ -4100,7 +4417,7 @@ zu \hspace{.2em}\verb|{\bastrut\ \bacorr(}| bzw.\ \verb|{)}|
Argumenten mit einstellbarer Schrift (abk und k\fhy Titel). \verb|\baupcorr|
ist dort ungeeignet; aber \verb|\bacorr| reagiert, falls Sie f"ur das Argument
dahinter eine schr"aggestellte Schrift einstellen (mit \verb|\abkemph|
- bzw.\ mit \verb|\kxxemph|).
+ bzw\ko.\ mit \verb|\kxxemph|).
\end{itemize}
@@ -4216,7 +4533,7 @@ kann stets sowohl `nichts' als auch ein Punkt stehen; hier die Voreinstellungen:
\verb|\arqsubsubsectionclose => {\bahasdot}|
\\[.05ex] \hspace*{1em} Klammerpaare um das zweite Argument von \verb|\arqsection| (Archiv
S.\,\pageref{arqsection}, \pageref{Gedankenstriche}),
-\\ \hspace*{1em} \verb|\arqsubsection| bzw.\hspace{-.1em} \verb|\arqsubsubsection|\kern.025em; die lokalen Definitionen dazu
+\\ \hspace*{1em} \verb|\arqsubsection| bzw\ko.\ \hspace{-.075em}\verb|\arqsubsubsection|\kern.025em; die lokalen Definitionen dazu
\\ \hspace*{1em} reisen in die arq\hy Liste; vor zerbrechlichen Befehlen sollte \verb|\protect| stehen
\\[1.6ex]
\verb|\perlistopen => {\protect\pperlo}| \hfill (siehe S.\,\pageref{perlistopen})
@@ -4232,7 +4549,7 @@ kann stets sowohl `nichts' als auch ein Punkt stehen; hier die Voreinstellungen:
\\
\verb|\xrrlistclose => {\protect\pxrrlc}|
\\[-.1ex] \hspace*{7em} \verb|\pxrrlc => {)}|
-\\ \hspace*{1em} Klammern um das zweite Argument von \verb|\fillgrr|, \verb|\fillprr| bzw.\hspace{-.1em} \verb|\fillsrr|;
+\\ \hspace*{1em} Klammern um das zweite Argument von \verb|\fillgrr|, \verb|\fillprr| bzw\ko.\ \hspace{-.075em}\verb|\fillsrr|;
\\ \hspace*{1em} lokale Definitionen von \verb|\xrrlistopen| und \verb|\xrrlistclose| reisen in die Listen
\end{small}
@@ -4243,7 +4560,7 @@ kann stets sowohl `nichts' als auch ein Punkt stehen; hier die Voreinstellungen:
Wenn Sie mit dem \BibArts\hy Befehl \verb|\sethyphenation{|\textit{Sprache}\verb|}|
oder alternativ f"ur Zitatbl"ocke mit
-\verb|\begin{originalquote}[|\textit{Sprache}\verb|]| eine bestimmte\pdfko{.5}\
+\verb|\begin{originalquote}[|\textit{Sprache}\verb|]| eine bestimmte
Sprache einstellen, wird nur bestimmt, wie Worte getrennt werden (Trennsatz).
Andere Schalter stellen die Basissprache des Textes ein, bestimmen also,
in welcher Sprache Text\hy Separatoren (\kern-.1em\textit{captions}) zu drucken
@@ -4413,12 +4730,12 @@ Titel des gesamten Belegapparats ("Uberschrift \BibArts-Anhang) \verb|\printbibt
\verb|\gabktitlename => {Ab\-k\"ur\-zungen}| \\[-.8ex]
\verb|\eabktitlename => {Abbreviations}| \\[-.8ex]
\verb|\fabktitlename => {Ab\-r\'e\-viations}| \\[-.2ex]
-Titel Abk"urzungsverzeichnis \verb|\printabk| und \verb|\printnumabk| bzw.\ \verb|\printabktitle|
+Titel Abk"urzungsverzeichnis \verb|\printabk| und \verb|\printnumabk| bzw\ko.\ \verb|\printabktitle|
\\[.8ex]%
\verb|\gvlititlename => {Literatur}| \\[-.8ex]
\verb|\evlititlename => {Literature}| \\[-.8ex]
\verb|\fvlititlename => {Travaux}| \\[-.2ex]
-Titel Literaturliste \verb|\printvli| und \verb|\printnumvli| bzw.\ \verb|\printvlititle|.
+Titel Literaturliste \verb|\printvli| und \verb|\printnumvli| bzw\ko.\ \verb|\printvlititle|.
\\[.8ex]%
\verb|\ghinttovliname => {[L]} %\| \\[-.8ex]
\verb|\ehinttovliname => {[L]} % ) Alle ohne italics-Korrektur!| \\[-.8ex]
@@ -4438,32 +4755,32 @@ Hinweis auf Verzeichnis mit vollen Quellenangaben: \verb|\kqu{N}{T}. =>| \printo
\verb|\gpertitlename => {Zeitschriften}| \\[-.8ex]
\verb|\epertitlename => {Periodicals}| \\[-.8ex]
\verb|\fpertitlename => {P\'e\-riodiques}| \\[-.2ex]
-Titel Zeitschriftenverzeichnis \verb|\printper| und \verb|\printnumper| bzw.\ \verb|\printpertitle|
+Titel Zeitschriftenverzeichnis \verb|\printper| und \verb|\printnumper| bzw\ko.\ \verb|\printpertitle|
\\[.8ex]%
\verb|\garqtitlename => {Ungedruckte Quellen}| \\[-.8ex]
\verb|\earqtitlename => {Unpublished Documents}| \\[-.8ex]
\verb|\farqtitlename => {Sources in\-\'edi\-tes}| \\[-.2ex]
-Titel Archivquellenverzeichnis \verb|\printarq|, \verb|\printnumarq| bzw.\ \verb|\printarqtitle|
+Titel Archivquellenverzeichnis \verb|\printarq|, \verb|\printnumarq| bzw\ko.\ \verb|\printarqtitle|
\\[.8ex]%
\verb|\gvkctitlename => {Verwendete Kurztitel}| \\[-.8ex]
\verb|\evkctitlename => {Shortened References}| \\[-.8ex]
\verb|\fvkctitlename => {Titres ab\-r\'e\-g\'ees}| \\[-.2ex]
-Titel Kurzzitateverzeichnis \verb|\printnumvkc| und \verb|\printvkc| bzw.\ \verb|\printvkctitle|
+Titel Kurzzitateverzeichnis \verb|\printnumvkc| und \verb|\printvkc| bzw\ko.\ \verb|\printvkctitle|
\\[.8ex]%
\verb|\ggrrtitlename => {Ortsregister}| \\[-.8ex]
\verb|\egrrtitlename => {Geographical index}| \\[-.8ex]
\verb|\fgrrtitlename => {Registre g\'eo\-graphique}| \\[-.2ex]
-Titel Ortsregister f"ur Liste \verb|\printnumgrr| und \verb|\printgrr| bzw.\ \verb|\printgrrtitle|
+Titel Ortsregister f"ur Liste \verb|\printnumgrr| und \verb|\printgrr| bzw\ko.\ \verb|\printgrrtitle|
\\[.8ex]%
\verb|\gprrtitlename => {Personenregister}| \\[-.8ex]
\verb|\eprrtitlename => {Person index}| \\[-.8ex]
\verb|\fprrtitlename => {Registre des personnes}| \\[-.2ex]
-Titel Personenreg.\ f"ur Liste \verb|\printnumprr| und \verb|\printprr| bzw.\ \verb|\printprrtitle|
+Titel Personenreg.\ f"ur Liste \verb|\printnumprr| und \verb|\printprr| bzw\ko.\ \verb|\printprrtitle|
\\[.8ex]%
\verb|\gsrrtitlename => {Sachregister}| \\[-.8ex]
\verb|\esrrtitlename => {Subject index}| \\[-.8ex]
\verb|\fsrrtitlename => {Registre des sujets}| \\[-.2ex]
-Titel Sachregister f"ur Liste \verb|\printnumsrr| und \verb|\printsrr| bzw.\ \verb|\printsrrtitle|
+Titel Sachregister f"ur Liste \verb|\printnumsrr| und \verb|\printsrr| bzw\ko.\ \verb|\printsrrtitle|
\\[.8ex]%
\verb|\gfolpagename => {\badelspacebefore\,f\kern -0.1pt.\bahasdot}| \\[-.8ex]
\verb|\efolpagename => {\badelspacebefore\,f\kern -0.1pt.\bahasdot}| \\[-.8ex]
@@ -4481,7 +4798,7 @@ Abk"urzung `mehrere folgende': \verb|\per{ZfG.}_2\ff_[3\sqq]. =>| \per{ZfG.}_2\f
\hspace*{5cm} \verb|\eannouncekendname => {)}| \\[-.4ex]
\verb|\fannouncektitname => |{\footnotesize\verb|{\bastrut\ (\kern 0.02em par la suite \baupcorr}|} \\[-.4ex]
\hspace*{5cm} \verb|\fannouncekendname => {)}| \\[.2ex]
-\verb|\ktit|\hy Ank"undigung: \verb|\vli{V}{N}{\ktit{T}} =>| {\notktitaddtok\printonlyvli{V}{N}{\ktit{T}}}
+\verb|\ktit|\hy Ank"undigung: \verb|\vli{V}{N}{\ktit{T}} =>| {\notktitaddtok\printonlyvli{V}{N}{\ktit{T}}}\balabel{announcektit}%
\newpage\noindent%\\[.8ex]%
\verb|\grefvbegname => {(}| \\[-.8ex]
\hspace*{1cm} \verb|\grefvendname => {\barefcorr)}| \\[-.8ex]
@@ -4491,29 +4808,29 @@ Abk"urzung `mehrere folgende': \verb|\per{ZfG.}_2\ff_[3\sqq]. =>| \per{ZfG.}_2\f
\hspace*{1cm} \verb|\frefvendname => {\barefcorr)}| \\[-.2ex]
Klammern k-Befehle unter \verb|\conferize|: \verb|\kli{Luhmann}{Soziale Systeme} =>| \\[-.5ex]
\hspace*{1em}{\conferize \kli{Luhmann}{Soziale Systeme}} \ \ \texttt{\% Fu"snote im Kasten} \\[-.5ex]
-Die \textit{italics}\hy Korrektur \verb|\barefcorr| ist f"ur Verweise bes.\ auf \verb|{minipage}|-Fu"snoten.
+Die \textit{italics}\hy Korrektur \verb|\barefcorr| ist f"ur Verweise bes.\ auf \verb|{minipage}|\kern.025em\hy Fu"snoten.
\\[.8ex]%
\verb|\gconfername => {\kern -0.03em wie}| \\[-.8ex]
\verb|\econfername => {\kern -0.05em cf.\bahasdot}| \\[-.8ex]
\verb|\fconfername => {\kern -0.03em op.\ cit.\bahasdot}| \\[-.2ex]
-Bezugswort im Querverweis des eben genannten \verb|\conferize|-Stils.
+Bezugswort im Querverweis des eben genannten \verb|\conferize|\hy Stils.
\\[.8ex]%
\verb|\grefvpagname => {S.\,}| \\[-.8ex]
\verb|\erefvpagname => {p.\,}| \\[-.8ex]
\verb|\frefvpagname => {p.\,}| \\[-.2ex]
-Seitenabk"urzung im Querverweis des eben genannten \verb|\conferize|-Stils; und \\[-.5ex]
+Seitenabk"urzung im Querverweis des eben genannten \verb|\conferize|\hy Stils; und \\[-.5ex]
ebenso f"ur \BibArts-Querverweise: \verb|\baref{Müller} =>| \baref{Müller}, wozu auch \\[-.5ex]
die oben unter \verb|\grefvbegname| ... genannten Klammersymbole benutzt werden.
\\[.8ex]%
\verb|\grefverbname => {siehe}| \label{grefverbname} \\[-.8ex]
\verb|\erefverbname => {see}| \\[-.8ex]
\verb|\frefverbname => {voir}| \\[-.2ex]
-Bezugswort im eben genannten \verb|\baref|-Querverweis.
+Bezugswort im eben genannten \verb|\baref|\hy Querverweis.
\\[.8ex]%
\verb|\grefvfntname => {, Anm.\,}| \\[-.8ex]
\verb|\erefvfntname => {, n.\,}| \\[-.8ex]
\verb|\frefvfntname => {, n.\,}| \\[-.2ex]
-Abk"urzung f"ur `\kern-.05em Anmerkung'/`note' (Fu"snote) oben im \verb|\conferize|-k-Befehl und \\[-.5ex]
+Abk"urzung f"ur `\kern-.05em Anmerkung'/`note' (Fu"snote) oben im \verb|\conferize|\hy k\fhy Befehl und \\[-.5ex]
ebenso f"ur \BibArts\hy Querverweise:\footnote{
\balabel{XX}\texttt{\bs balabel\{XX\}} setzt Marke;
\BibArts\ bemerkt automatisch, ob sie in einer Fu"snote ist.}
@@ -4547,30 +4864,31 @@ Band-Abk"urzung in \hspace{.2em}\verb+\ersch |3| {Paris}{1899} =>+ \ersch |3| {P
\noindent
\textbf{Separater Ausdruck von vorgefertigten Textelementen}\\[1ex]
Falls Befehle, die \hspace{-.06em}\verb|\bahasdot| oder \hspace{-.04em}\verb|\banotdot|
-nutzen, nicht am Ende des Arguments eines \BibArts\fhy Hauptbefehls stehen, kann dies
-einen Zeilenumbruch verhindern. An \verb*|\oJ, | wird umgebrochen, aber ein
-\verb|\oJ| \textit{direkt} folgendes Leerzeichen ist oft gesch"utzt. Dann k"onnen
-Sie \hspace{-.075em}\verb|\strut| einf"ugen: Im freien Text ist also \verb*|\oJ\strut\ |
-\hspace{.05em}statt
-\verb*|\oJ\ | \hspace{.05em}zu tippen. Das gilt auch, falls ein Befehl \verb|\oJ|\pdfko{.25}\
-ausf"uhrt, etwa bei:
-\verb*|\ersch{Stuttgart}{}\strut\ next| \ \verb|=>| \ersch{Stuttgart}{}\strut\ next.
-\hspace{.2em}Nur \textit{direkt vor} den \verb|}| der Hauptbefehle macht \BibArts\ dies automatisch:
-\verb|\vli{}{N.}{|\fabra{...}\verb|,| \verb|\ersch{Stuttgart}{}}| \verb|next| \ \verb|=>|
-\printonlyvli{}{N.}{\fabra{...}, \ersch{Stuttgart}{}} next.
-\hspace{.15em}Obwohl das letzte Argument eines v\fhy Befehls nicht nach \hspace{-.125em}\verb|.| durchsucht
-wird, `verschluckt' \BibArts\ Ihren ggf.\ direkt danach folgenden Satzende\hy Punkt:
-\hspace{.1em}\verb|\vli{}{N.}{|\fabra{...}\verb|,| \verb|\ersch{Stuttgart}{}}.| \verb|=>|
-\hspace{.2em}\printonlyvli{}{N.}{\fabra{...}, \ersch{Stuttgart}{}}.
-\hspace{.2em}Oder: \hspace{.1em}\verb|\vli{}{N.}{|\fabra{...}\verb|,| \verb|\oJ}.| \verb|=>|
-\hspace{.2em}\printonlyvli{}{N.}{\fabra{...}, \oJ}.
-\hspace{.3em}An allen anderen Stellen in v\fhy Befehlen gilt:
-\hspace{.2em}\verb|\oJ.| \verb|=>| \hspace{.3em}\oJ.
+nutzen, nicht \textit{direkt} am Ende des Arguments eines \BibArts\fhy Hauptbefehls stehen, kann dies
+einen Zeilenumbruch verhindern. An \verb*|\oJ, | \hspace{.05em}wird umgebrochen, aber
+\verb*|\oJ\ | \hspace{.1em}folgt das Leerzeichen direkt und ist gesch"utzt. Dann k"onnen
+Sie \hspace{-.075em}\verb|\strut| nutzen: Es ist \verb*|\oJ\strut\ |
+\hspace{.1em}statt
+\verb*|\oJ\ | \hspace{.1em}zu tippen. Das gilt auch f"ur Befehle, die \verb|\oJ|\hspace{.1em}
+ausf"uhren, etwa in:
+\hspace{.2em}\verb*|\ersch{Stuttgart}{}\strut\ next| \hspace{.2em}\verb|=>| \hspace{.2em}\ersch{Stuttgart}{}\strut\ next.
+\hspace{.2em}Nur \textit{direkt} vor den
+\hspace{.05em}\underline{\texttt{\}}} \hspace{.1em}der Hauptbefehle geschieht dies automatisch:
+\hspace{.05em}\verb|\vli{}{Yi}{|\fabra{...}\verb|,| \hspace{-.05em}\verb|\ersch{Stuttgart}{}|\underline{\texttt{\}}}\kern.05em\verb*| next| \hspace{.2em}\verb|=>|
+\hspace{.2em}\printonlyvli{}{Yi}{\fabra{...}, \ersch{Stuttgart}{}} next.
+\hspace{.15em}Und nur am Ende der Argumente von \BibArts\hy Hauptbefehlen wird
+daf"ur gesorgt, einen von Ihnen dahinter getippten \underline{Satzende\hy Punkt} zu `verschlucken':
+\hspace{.1em}\verb|\vli{}{Yi}{|\fabra{...}\verb|,| \verb|\ersch{Stuttgart}{}}|\underline{\texttt{.\vphantom{\}}}} \hspace{.1em}\verb|=>|
+\hspace{.2em}\printonlyvli{}{Yi}{\fabra{...}, \ersch{Stuttgart}{}}.
+\hspace{.2em}Oder: \hspace{.1em}\verb|\vli{}{Yi}{|\fabra{...}\verb|,| \verb|\oJ}|\underline{\texttt{.\vphantom{\}}}} \verb|=>|
+\hspace{.2em}\printonlyvli{}{Yi}{\fabra{...}, \oJ}.
+\hspace{.2em}An allen anderen Orten gilt:
+\hspace{.2em}\verb|\oJ|\underline{\texttt{.\vphantom{\}}}} \verb|=>| \hspace{.3em}\oJ.
\hspace{.2em}und
-\hspace{.2em}\verb|\ersch{Stuttgart}{}.| \verb|=>| \hspace{.3em}\ersch{Stuttgart}{}.
+\hspace{.2em}\verb|\ersch{Stuttgart}{}|\underline{\texttt{.\vphantom{\}}}} \verb|=>| \hspace{.3em}\ersch{Stuttgart}{}.
-Au\hyss erdem wird das \textit{spacing} nur am Ende von \BibArts\hy Hauptbefehlen
-$-$\,wie oben Seite~\pageref{nonfrenchspacing} geschildert\,$-$ automatisch eingestellt
+\vspace{.025ex}Gleichzeitig wird das \textit{spacing} nur am Ende von \BibArts\hy Hauptbefehlen
+$-$\,siehe oben Seite~\pageref{nonfrenchspacing}\,$-$ automatisch eingestellt
(L"ange von Leerzeichen).
Falls Sie \hspace{-.1em}\verb|\ersch| anderswo verwenden wollen, sollten Sie
@@ -4587,10 +4905,10 @@ die eben genannte \hspace{-.125em}\verb|\ersch|\hy Syntax ergibt:
\vspace{1ex}
{%\renewcommand{\poJ}{ohne Jahr}%
-{\frenchspacing \verb|\frenchspacing | \ersch{Stuttgart}{}\bapoint\newsentence Next
+{\frenchspacing \verb|\frenchspacing | \ersch{Stuttgart}{}\bapoint\newsentence N"achster Satz
}
-{\nonfrenchspacing \verb|\nonfrenchspacing | \ersch{Stuttgart}{}\bapoint\newsentence Next
+{\nonfrenchspacing \verb|\nonfrenchspacing | \ersch{Stuttgart}{}\bapoint\newsentence Next sentence
}
}
@@ -4599,7 +4917,7 @@ Vorgefertigte Textelemente, die \hspace{-.05em}\verb|\bacorr| enthalten,
sollten Sie nie direkt verwenden. Nicht benutzt werden sollte somit
\hspace{-.05em}\verb|\ntsep|\kern.05em, das
\hspace{.15em}\verb*|{: \bacorr}|
-\hspace{.15em}ausf"uhrt. Anders als f"ur andere Separatoren gibt
+\hspace{.15em}ausf"uhrt. Zur freien Eingabe von Namen gibt
es den Befehl \hspace{-.1em}\verb|\printntsep|\kern.05em, um
\hspace{-.1em}\verb|\ntsep| auszudrucken.
Auch \hspace{-.075em}\verb|\ntvauthor| und
@@ -4678,7 +4996,7 @@ und \texttt{\bs ersch} nur ganz ans Ende des letzten Arguments von v\fhy Befehle
\end{itemize}
\vspace{1ex}\noindent
-Bei abgek"urzten Zeitschriften f"ullt \verb|\abkper| die \verb|\abk|- \textit{und} die \verb|\per|\hy Liste.
+Bei abgek"urzten Zeitschriften f"ullt \verb|\abkper| die \verb|\abk|\hy\ \textit{und} die \verb|\per|\hy Liste.
@@ -4690,7 +5008,7 @@ Bei abgek"urzten Zeitschriften f"ullt \verb|\abkper| die \verb|\abk|- \textit{un
\textbf{Befehl} & \textbf{Voreinstellung} & \textbf{Alternative} \\ \hline
& & \\
\verb|\authoremph| & \verb|{\normalfont\scshape}| & \verb|{\upshape\|\abra{...}\verb|}| \\[.25ex]
-\verb|\kxxemph| & \verb|{}| \ (\verb|\kli|- und \verb|\kqu|\hy Titel)& alles (S.\,\pageref{kxxB}, \pageref{kxxA}, \pageref{ntsepB}) \\[.25ex]
+\verb|\kxxemph| & \verb|{}| \ (\verb|\kli|\hy\ und \verb|\kqu|\hy Titel)& alles (S.\,\pageref{kxxB}, \pageref{kxxA}, \pageref{ntsepB}) \\[.25ex]
\verb|\edibidemph| & \verb|{\scshape}| \ (\textsc{ebd.}, \textsc{ders.}\ko)& \textbf{KEINE!} \\[.25ex]
\verb|\abkemph| & \verb|{\sffamily}| & alles (S.\,\pageref{abkA}, \pageref{abkB}) \\[.25ex]
\verb|\abklistemph| & \verb|{\bfseries}| & alles; \verb|{\abkemph}| \\[.25ex]
@@ -4716,7 +5034,7 @@ warnen).
\vspace{.25ex}
Zudem sollten f"ur \verb|\edibidemph| nur \textsc{kleine kapitelle}
als Basis verwendet werden, denn nur das umgeht das Problem der
-Klein\fhy/""Gro"sschreibung $-$ \textsc{ebd.} und \textsc{ders.} m"ussen ja
+Klein\fhy\ko\slash Gro"sschreibung $-$ \textsc{ebd.} und \textsc{ders.} m"ussen ja
nicht immer am Anfang eines Satzes stehen!
\vspace{1.5ex}\noindent
@@ -4729,14 +5047,14 @@ F"ur listemph\hy Befehle gilt "ubertragbar:
{\footnotesize
\begin{verbatim}
{\renewcommand{\perlistemph}{\slshape}%
- Auf den Ausdruck von \per{ShortMagazine} wirkt sich dies nicht aus!
+ Auf den Ausdruck von \per{Le Petit Journal} wirkt sich das nicht aus!
\renewcommand{\balistnumemph}{} %% Zahlen nicht in sans serif %%
\printnumper}
\end{verbatim}}
\vspace{.5ex}
{\renewcommand{\perlistemph}{\slshape}%
- \hspace{.em}Auf den Ausdruck von \per{ShortMagazine} wirkt sich dies nicht aus!
+ \hspace{.em}Auf den Ausdruck von \per{Le Petit Journal} wirkt sich das nicht aus!
\renewcommand{\balistnumemph}{} %% Zahlen nicht in sans serif %%
\vspace{-1.25ex}
\printnumper}
@@ -4750,7 +5068,7 @@ F"ur listemph\hy Befehle gilt "ubertragbar:
\hspace*{7.5mm}
\begin{tabular}{ll}
- \bf Voreinstellung "andern\hspace{1cm} & \bf $\sim$ wiederherstellen\hspace{1.1em}(1/2) \\ \hline
+ \bf Voreinstellung "andern\hspace{1cm} & \bf $\sim$ wiederherstellen\hspace{1.5em}(1/2) \\ \hline
\multicolumn{2}{l}{} \\[1ex]
%%
\verb| \affixhints| & \verb|\notaffixhints| \\
@@ -4783,13 +5101,13 @@ F"ur listemph\hy Befehle gilt "ubertragbar:
\multicolumn{2}{l}{\mynwarrow {\footnotesize\sffamily Automatisches {\normalfont\footnotesize\textsc{ebd.}}\hy Setzen ausschalten}} \\[3ex]
%%
\verb|\notktitaddtok| & \verb| \ktitaddtok| \\
- \multicolumn{2}{l}{\mynwarrow {\footnotesize\sffamily{\normalfont\footnotesize\texttt{\bs ktit}} im v\fhy Befehl erzeugt keinen \kern-.2em{\normalfont\footnotesize\texttt{.vkc}}\hy Eintrag wie ein k\fhy Befehl}} \\[3ex]
+ \multicolumn{2}{l}{\mynwarrow {\footnotesize\sffamily{\normalfont\footnotesize\texttt{\bs ktit}} im v\fhy Befehl erzeugt keinen \hspace{-.175em}{\normalfont\footnotesize\texttt{.\ko vkc}}\hy Eintrag wie ein k\fhy Befehl}} \\[3ex]
%%
\verb|\notkurzaddtoarq| & \verb| \kurzaddtoarq| \\
\multicolumn{2}{l}{\mynwarrow {\footnotesize\sffamily{\normalfont\footnotesize\texttt{\bs kurz}}
(\kern-.075em {\normalfont\footnotesize\textit{Vorl"aufer}} von
{\normalfont\footnotesize\texttt{\bs ktit}}) erzeugt keinen
- \hspace{-.2em}{\normalfont\footnotesize\texttt{.arq}}\hy Eintrag}} \\%[3ex]
+ \hspace{-.175em}{\normalfont\footnotesize\texttt{.arq}}\hy Eintrag}} \\%[3ex]
\end{tabular}
@@ -4800,7 +5118,7 @@ F"ur listemph\hy Befehle gilt "ubertragbar:
\hspace*{7.5mm}
\begin{tabular}{ll}
- \bf Voreinstellung "andern\hspace{1cm} & \bf $\sim$ wiederherstellen\hspace{1.1em}\hfill (2/2) \\ \hline
+ \bf Voreinstellung "andern\hspace{1cm} & \bf $\sim$ wiederherstellen\hspace{1.5em}\hfill (2/2) \\ \hline
\multicolumn{2}{l}{} \\[1ex]
%%
\verb|\notnegcorrdefabk| & \verb| \negcorrdefabk| \\
@@ -4867,12 +5185,12 @@ Emulation.\footnote{Wird vom alten Vorspannbefehl
\texttt{\bs makebar} eingeschaltet (stehen lassen!) und redefiniert auch
\hspace{-.1em}\texttt{\bs printvli}, das in 1.3 keine "Uberschrift
druckte. Sonst wird \texttt{\bs makebar} nicht\pdfko{.5}\
-mehr ben"otigt: Es gibt kein \hspace*{-.175em}\texttt{.bar}\hy File mehr;
-\BibArts\ nutzt nun \hspace{-.175em}\texttt{.aux}\hy Files
+mehr ben"otigt: Es gibt kein \hspace{-.125em}\texttt{.bar}\hy File mehr;
+\BibArts\ nutzt nun \hspace{-.125em}\texttt{.aux}\hy Files
(\textbf{dazu Kap.\,\ref{bibsort}}).}
Kopien der Argumente von \hspace{-.1em}\verb|\kurz| \hspace{.075em}sowie
der alten \hspace{-.1em}\verb|\bib|\kern.05em\hy Befehle gehen heute\pdfko{.25}\
-ins \hspace*{-.15em}\texttt{.arq}\hy
+ins \hspace{-.125em}\texttt{.arq}\hy
Verzeichnis, das es in \BibArts~1.3 nicht gab; eine
\verb|\printind|\hy Emulation druckt alles aus $-$ nach Bearbeitung
mit \texttt{bibsort}. F"ur \textsc{MakeIndex}\pdfko{.5}\
@@ -4945,26 +5263,24 @@ Bei beiden Befehlsklassen enth"alt das Befehlswort zum Ausdruck der
jeweiligen Liste dieselben drei Buchstaben, die auch der Befehl zum
F"ullen der Liste aufweist. Auch das Dateinamens\hy Suffix der von
\verb|bibsort| erzeugten Liste hat diese Zeichen: Eintr"age des
-\BibArts\hy Befehls \verb|\vli| kommen in eine Datei \verb|.vli|,
-die Sie\pdfko{.5}\
-mit \verb|\printvli| oder \verb|\printnumvli| im Anhang
+\BibArts\hy Befehls \verb|\vli| kommen in eine Datei \hspace{-.075em}\texttt{.\ko vli},
+die Sie mit\pdfko{.25}\
+\verb|\printvli| oder \verb|\printnumvli| im Anhang
Ihres Textes ausdrucken k"onnen. Entsprechendes gilt f"ur \verb|\vqu|,
\verb|\arq| und \verb|\per|. Ausnahme ist das Kurzzitateverzeichnis
-\verb|.vkc|, das die Zug"ange der \verb|\kli|- \textit{und}
+\hspace{-.1em}\texttt{.\ko vkc}, das die Zug"ange der \verb|\kli|\hy\ \textit{und}
\verb|\kqu|\hy Eintr"age erh"alt (sowie der Zug"ange, die \BibArts\
aus den Argumenten von \verb|\ktit| und den Nachnamen\hy Argumenten
der v\fhy Befehle \textit{automatisch} erzeugt); das Kurzzitateverzeichnis
wird mit \verb|\printvkc| oder \verb|\printnumvkc| ausgedruckt. Und
-f"ur das\pdfko{.25}\
-Abk"urzungsverzeichnis, das mit \verb|\printabk| oder
-\verb|\printnumabk| ausgedruckt\pdfko{.25}\
-wird, bef"ullen die \BibArts\hy Befehle
+f"ur das Abk"urzungsverzeichnis, das mit \verb|\printabk| oder
+\verb|\printnumabk| ausgedruckt wird, bef"ullen die \BibArts\hy Befehle
\verb|\abkdef| oder \verb|\defabk| eine von \verb|bibsort| erzeugte
-Datei \verb|.abk|; f"ur so eingef"uhrte Abk"urzungen liefern
+Datei \hspace{-.1em}\verb|.abk|; f"ur so eingef"uhrte Abk"urzungen liefern
\verb|\abk|\hy Befehle weitere Seitenzahlen und ggf.\ Fu"snotennummern,
die \verb|\printnumabk| ausdruckt.
-F"ur alle diese Listen liest \verb|bibsort| das\slash die \verb|.aux|\hy
+F"ur alle diese Listen liest \verb|bibsort| das\slash die \hspace{-.125em}\verb|.aux|\hy
File{\small(}s{\small)} Ihres \LaTeX\hy Textes ein und erzeugt daraus
die genannten Dateien. Das Namens\hy Pr"afix ist dasjenige des \LaTeX\hy
Haupttextes (die Literaturliste \textit{hier} ist \verb|bibarts.vli|).
@@ -5079,7 +5395,7 @@ Im folgenden Beispiel wird das Kurzzitateverzeichnis einspaltig ausgedruckt:
\twocolumn[\subsubsection*{Die print\fhy\kern-.025em, printnum\fhy\kern-.025em, title\fhy\kern-.025em, list- und num\fabra{...}list\hy Befehle}
-Hier \texttt{[}\kern-.05em\textit{OptArg}\texttt{]}'s f"ur "Uberschriften,\pdfko{.5}\
+Hier \texttt{[}\kern-.05em\textit{OptArg}\texttt{]}'s f"ur "Uberschriften,
die eine Stufe gr"o\hyss er als der Default sind.
Die jeweils ersten zwei Befehle sind in den title\kern.05em- und einen list\hy Befehl teilbar. \\
\strut \\
@@ -5181,7 +5497,7 @@ Es gibt vergr"o\hyss erte Abst"ande und Buchstaben:
print\hy Befehle, die \textit{selbst} zweispaltig drucken,
setzen strikte Vorgaben f"ur Abst"ande um, etwa
\verb|\itemsep| \verb|0pt|. F"ur andere list\hy Befehle
-gelten nur die Vorgaben der \verb|{description}|\hy Liste.
+gelten nur die Vorgaben der \verb|{description}|\kern.025em\hy Liste.
Um dann Abst"ande, die f"ur zweispaltigen Ausdruck gelten, einzustellen,
kann \verb|\batwocolitemdefs| gesetzt werden.
@@ -5207,7 +5523,7 @@ eine Kopfzeile danach nochmal zu definieren):
\verb| {\small\bibsortheads \batwocolitemdefs\printvkclist}\onecolumn|}
\vspace{1.25ex}\noindent
-Unter \verb|\bibsortspaces| bzw.\ \verb|\bibsortheads| wird
+Unter \verb|\bibsortspaces| bzw\ko.\ \verb|\bibsortheads| wird
\verb|\batwocoltopskip| eigenst"andig von print\hy Befehlen, die
zweispaltigen Druck anordnen, ausgef"uhrt.
Falls \verb|\twocolumn| und \verb|\bibsortheads| gleichzeitig gelten,
@@ -5224,7 +5540,7 @@ aus $-$ und umgekehrt.
\vspace{1.5ex}\noindent
Beim Archivquellenverzeichnis kann ein Konflikt auftreten:
Sie sollten sich entscheiden, ob Sie \verb|\bibsortspaces|
-bzw.\ \hspace{-.05em}\verb|\bibsortheads| aktivieren
+bzw\ko.\ \hspace{-.075em}\verb|\bibsortheads| aktivieren
m"ochten, \textit{oder} \verb|\arqsection|,
\verb|\arqsubsection| und \verb|\arqsubsubsection| nutzen.
Und nur im Archivquellenverzeichnis k"onnen Sie \textit{innerhalb
@@ -5242,7 +5558,7 @@ Befehle mit Argumenten in eckigen Klammern wie
eine arq\hy "Uberschrift der allererste Listeneintrag, dann sind \textit{nur}
Abstandsbefehle wie etwa \texttt{\bs vspace} im optionalen Argument
erlaubt, denn \texttt{bibsort} setzt die optionalen Argumente innerhalb
-des \texttt{.arq}\hy Files in eine Zeile \textit{vor} die arq\hy section;
+des \hspace{-.125em}\texttt{.arq}\hy Files in eine Zeile \textit{vor} die arq\hy section;
in einer \LaTeX\hy Liste darf jedoch zu druckender Text oder
\texttt{\bs rule} erst \textit{nach} dem ersten \texttt{\bs item}\hy Befehl stehen.}
Einfach l"asst sich \textit{zus"atzlicher Abstand zum vorausgehenden
@@ -5258,18 +5574,19 @@ untereinander austariert; Anf"anger sollten sie unver"andert lassen.}
\newpage
\section{\texttt{bibsort} samt Neuerungen seit Version~2.0}\label{Sect18}\label{bibsort}
-\verb|bibsort| ist das Sortierprogramm von \BibArts\kern.1em. Eine
-Datei \verb|bibsort.exe| liegt dem Paket neben \verb|bibarts.sty| bei.
-Beide zusammen sollen den Anhang Ihres \LaTeX\hy Textes erzeugen.
-Anwender, bei denen \verb|bibsort.exe| nicht startet, sollten
-\verb|bibsort.c| mit einem f"ur ihr Betriebssystem
-geeigneten C\fhy Compiler selbst in eine Bin"ardatei "ubersetzen und
-dann diese einsetzen. Der Quellcode von \verb|bibsort.c| setzt kein
-bestimmtes Betriebssystem voraus (ANSI~C).\footnote{F"ur GNU\hy Software habe ich
-das getestet: Auch\hspace{.3em} \texttt{gcc -c bibsort.c -o bibsort.o}\hspace{.3em}
-und\hspace{.3em} \texttt{gcc bibsort.o -o bibsort.exe}\hspace{.3em} ergaben bei mir eine
-brauchbare Bin"ardatei. Bei mir machte der \texttt{Dev-Cpp\_5.4.0}\kern .1em\hy Editor
-Schwierigkeiten, der \texttt{gcc} pers"onlich jedoch nie.}
+\verb|bibsort| ist das Sortierprogramm von \BibArts\kern.1em. Eine Datei
+\verb|bibsort.exe| liegt dem Paket neben \verb|bibarts.sty| bei. Beide
+zusammen sollen den Anhang Ihres \LaTeX\hy Textes erzeugen. Anwender, bei
+denen \verb|bibsort.exe| nicht startet, sollten \verb|bibsort.c| mit einem
+f"ur ihr Betriebssystem geeigneten C\fhy Compiler selbst in eine Bin"ardatei
+"ubersetzen und dann diese einsetzen. Der Quellcode von \verb|bibsort.c|
+setzt kein bestimmtes Betriebssystem voraus (ANSI~C).\footnote{Ich testete
+u.\,a.\ MinGW und tippte
+\hspace{.5em}\texttt{gcc -c bibsort.c -o bibsort.o -O2} \hspace{.5em}und
+\hspace{.5em}\texttt{gcc bibsort.o -o bibsort.exe} \hspace{.5em}sowie
+\hspace{.5em}\texttt{strip bibsort.exe} \hspace{.5em}in die
+Eingabeauf"|forderung von Windows~10 ein, um f"ur \BibArts\ 2.5
+eine ausf"uhrbare Bin"ardatei zu erzeugen.}
\BibArts\ kommt heute (Version 2.x) ohne \textsc{MakeIndex} aus.
\verb|bibsort| verarbeitet keine Steuerzeichen, hat kein
@@ -5293,8 +5610,8 @@ erzeugt werden. F"ur \verb|bibarts.tex| hier ist
\verb|bibarts.aux| erzeugte Datei \verb|bibarts.vli| enth"alt die
Literaturliste, \verb|bibarts.abk| das Abk"urzungsverzeichnis, etc.
-\verb|bibsort| liest aus einer \hspace{-.15em}\texttt{.aux}\hy Datei nur die Zeilen ein, die
-mit \BibArts\ erzeugt wurden. In einem ersten Schritt sortiert es
+\verb|bibsort| liest aus einer \hspace{-.2em}\texttt{.aux}\hy Datei nur die Zeilen ein, die
+mit \BibArts\ erzeugt wurden. In einem ersten Schritt sortiert \verb|bibsort|
diese Zeilen klein\fhy\slash gro"s\hy schreibungs\hy invariant. Das Programm sortiert
\textit{in Grundeinstellung} "a, "o und~"u als a, o und u; weiter sind \verb|\ss| und
\verb|\3| (sowie \verb|"s|, falls \verb|"| \textit{aktiv} ist\footnote{\BibArts\
@@ -5308,7 +5625,7 @@ Sortierreihenfolge z.\,B. von~\texttt{\string"a}\kern.1em.}) gleich~\verb|s|.
Wird \texttt{bibsort} die Option \ko\verb|-g2|~(Wortliste) "ubergeben,
sortiert es "s als \verb|ss|; mit \ko\verb|-g1|~(Namensliste)
gelten \textit{zudem} die Umlaute als \verb|ae|, \verb|oe| und \verb|ue|
-(letzteres entspricht DIN\,5007\fhy 2). Zahlen werden \textit{in Grundeinstellung}
+(letzteres entspricht DIN\,5007\fhy 2). \hspace{.05em}\verb|0| bis \verb|9| werden \textit{in Grundeinstellung}
vor Buchstaben sortiert; mit \ko\verb|-g1| oder \ko\verb|-g2|
ist es umgekehrt. Nur, wenn Zeilen anhand der enthaltenen Zahlen sowie
gro"s\fhy\slash klein\hy invarianten Buchstaben keinen Unterschied gegen"uber
@@ -5316,7 +5633,7 @@ anderen Zeilen aufweisen, wird die Gro"s\fhy\slash Klein\hy Schreibung beachtet,
danach etwaige Akzente auf den Buchstaben, dann weitere Zeichen.
Etliche Einstellungen sind nicht ver"anderbar. Etwa wird \verb|\o|~(\o) im
-ersten Schritt immer als \verb|o| einsortiert, dann vor allen \verb|o|'s mit
+ersten Schritt immer als \verb|o| einsortiert, dann hinter alle \verb|o|'s mit
`aufgesetzten' Akzenten. Ebenso nicht\hy einstellbar ist, dass
\verb|$\alpha$| als \verb|a| einsortiert wird. Um im Einzelfall abweichende
Sortierreihenfolgen zu erzwingen, k"onnen Sie den \BibArts\hy Befehl
@@ -5333,14 +5650,14 @@ In \verb|\protect\pageref{|\textit{xx}\verb|}| wird
\textit{xx} nicht gewichtet (suche \verb|\pageref{X1}|).
\vspace{.75ex}\noindent
-Nur \verb|bibsort| in der Eingabeauf"|forderung getippt druckt auf den Bildschirm:
+Nur \hspace{.1em}\verb|bibsort| \hspace{.1em}in die Eingabeauf"|forderung getippt druckt auf den Bildschirm:
{\scriptsize\makeatletter
\catcode\grave@ba\|=\active\makeatother
\def|{\hspace{-.25em}\hbox to 1em{\hfill$\sim$\hfill}\hspace{-.25em}}%
\begin{verbatim}
- %%> This is bibsort 2.4 (for help: bibsort -?)
- %% bibsort 2.4 is part of BibArts 2.4 (C) Timo Baumann 2022.
+ %%> This is bibsort 2.5 (for help: bibsort -?)
+ %% bibsort 2.5 is part of BibArts 2.5 (C) Timo Baumann 2022b.
%% I read a LaTeX .aux file (follow \@input), and I write my output in files
%% .vli Literature .vqu Published sources .grr Geographic index
%% .vkc Short titles .arq Unpublished sources .prr Person index
@@ -5369,14 +5686,14 @@ Dabei ist die ganze Serie der neun Hilfsdateien aufgelistet, die \verb|bibsort|
erzeugen kann $-$ \textit{und l"oschen darf}, falls keine Eintr"age da
sind!\footnote{Wenn Sie z.\,B.
\ko\texttt{\bs vli} in Ihrem Text verwenden, erzeugt \texttt{bibsort} eine Datei
-\ko\texttt{.vli}; falls
+\hspace{-.125em}\texttt{.\ko vli}; falls
Sie \texttt{\bs vli} sp"ater wieder l"oschen und Ihr mit
\LaTeX\ "ubersetzter Text derartige Literatur\-\hbox{anga}\-ben nicht mehr enth"alt,
-l"oscht ein weiterer Start von \texttt{bibsort} die \ko\texttt{.vli}\hy Datei.
-$-$ Unter \texttt{\bs nofiles} bleiben die \ko\texttt{.aux}\hy Files unver"andert
+l"oscht ein weiterer Start von \texttt{bibsort} die \hspace{-.1em}\texttt{.\ko vli}\hy Datei.
+$-$ Unter \texttt{\bs nofiles} bleiben die \hspace{-.1em}\texttt{.aux}\hy Files unver"andert
stehen und \texttt{bibsort} erzeugt die Datei
-\texttt{.vli} immer wieder gleich, d.\,h.: ohne neue/""ver"anderte
-\texttt{\bs vli}\hy Befehle im Text aufzunehmen.}
+\hspace{-.1em}\texttt{.\ko vli} immer wieder gleich, d.\,h.: ohne im Text neue\slash ver"anderte
+\hspace{-.05em}\texttt{\bs vli}\hy Befehle aufzunehmen.}
\vspace{.75ex}
\verb|-d|\hspace{.1em} dient dazu, dass \verb|bibsort| Dateien findet, wenn im Text in
@@ -5411,26 +5728,26 @@ irref"uhrend, es sei ein\hspace{.2em} \texttt{Incomplete} \texttt{\bs ifx}~...\h
\vspace{.75ex}
Weitere Optionen wie \verb|-l|\,, \verb|-i=j| und \verb|-p| werden unten ab Seite~\pageref{plit} erkl"art.
-\vspace{1.5ex}\noindent
-Seit Version 2.3 stellt \verb|bibsort| die Optionen \verb|-utf8| und \verb|-e| bereit:
+\vspace{.75ex}\noindent
+Seit Version 2.3 stellt \verb|bibsort| die Optionen \verb|-utf8| \hspace{.075em}und \verb|-e| \hspace{.075em}bereit:
-\vspace{.75ex}
-\verb|-utf8| \hspace{.1em}bewirkt, dass UTF8\hy Zeichen analog zu \verb|utf8enc.dfu| (v1.2n vom 2021/06/21
-\kern-.05em\textit{ohne} \verb|\cyr|...\ und \verb|\CYR|...\hy Zeichen) sortiert werden. Seit 2.4 sind nun zus"atzlich
-ḟ \texttt{U+1E1F},
-Ḟ \texttt{U+1E1E},
-ḱ \texttt{U+1E31},
-Ḱ \texttt{U+1E30},
-Ẏ \texttt{U+1E8E},
-ẏ \texttt{U+1E8F},
-ẑ \texttt{U+1E91},
-Ẑ \texttt{U+1E90},
-ỳ \texttt{U+1EF3} und
-Ỳ \texttt{U+1EF2}
-bekannt (neu gegen"uber v1.2l).
-
-Falls Sie UTF8\hy Zeichen verwenden, aber \verb|-utf8| \hspace{.05em}nicht gesetzt
+\vspace{.5ex}
+\verb|-utf8| \hspace{.1em}bewirkt, dass UTF8\hy Zeichen analog zu \verb|utf8enc.dfu| v1.3c von \hspace{.05em}{\small 2022/06/07}
+\hspace{.05em}(\kern-.05em\textit{ohne} \verb|\cyr|...\ und \verb|\CYR|...\hy Zeichen) sortiert werden. \texttt{bibsort} 2.5 kennt neu
+ \hspace{.1em}DŽ \texttt{\footnotesize [U+01C4]},
+ \hspace{.1em}Dž \texttt{\footnotesize [U+01C5]},
+ \hspace{.1em}dž \texttt{\footnotesize [U+01C6]},
+ \hspace{.1em}LJ \texttt{\footnotesize [U+01C7]},
+ \hspace{.1em}Lj \texttt{\footnotesize [U+01C8]},
+ \hspace{.1em}lj \texttt{\footnotesize [U+01C9]},
+ \hspace{.1em}NJ \texttt{\footnotesize [U+01CA]},
+ \hspace{.1em}Nj \texttt{\footnotesize [U+01CB]},
+ \hspace{.1em}nj \texttt{\footnotesize [U+01CC]},
+ \hspace{.1em}〈 \texttt{\footnotesize [U+3008]} und
+ \hspace{.1em}〉 \texttt{\footnotesize [U+3009]}.
+
+Falls Sie UTF8\hy Zeichen verwenden, aber \verb|-utf8| \hspace{.075em}nicht gesetzt
haben, meldet \verb|bibsort| nur das letzte unbekannte Oktett aus Ihrem Text, also etwa:\footnote{Da UTF8\hy Zeichen jenseits Nr.\,127
aus mehreren Oktetten bestehen, ist die im Beispiel angegebene Nummer \texttt{165} kein eindeutiger Hinweis darauf, auf welches UTF8\hy Zeichen
die Fehlermeldung zur"uckgeht. Es k"onnte sich dabei etwa um das zweite Oktett der Dublette \texttt{195-165} f"ur å (\texttt{U+00E5}) handeln,
@@ -5439,7 +5756,7 @@ aber vielleicht auch \texttt{194-165} f"ur ¥ (\texttt{U+00A5}), oder sonstwas.
\vspace{-1.25ex}
{\scriptsize\begin{verbatim}
%%> Default encoding: Gave ASCIIs > 127 like 165 NO sorting weight.
- %% Did ignore all ASCIIs > 127. Start me using -utf8 or -t1 ?
+ %% Did not evaluate your ASCIIs > 127. Start me using -utf8 or -t1 ?
%% *******
\end{verbatim}}
@@ -5460,68 +5777,72 @@ bis zu zwanzig und gibt am Ende je Zeichen \textit{eine} Bildschirm\hy Meldung a
Auch das aktuelle \LaTeX\ gibt bei Verwendung dieser Zeichen Fehler aus.
Falls Sie \hspace{.15em}\verb|\DeclareUnicodeCharacter{01EC}{\k{\@tabacckludge=O}}| \hspace{.2em}im Vorspann Ihrer \LaTeX\hy Datei definieren,
w"urde eine Nutzung von \verb|U+01EC| das Zeichen drucken und die \LaTeX\hy Fehlermeldung ausschalten;
-\verb|bibsort| 2.4 g"abe \verb|U+01EC| aber weiterhin kein Sortiergewicht.
-Nutzung von \verb|\k{\=O}| im Text w"urde stattdessen \k{\=O} ausdrucken\footnote{In \texttt{\{tabbing\}}\hy Umgebungen w"are \texttt{\bs k\{\bs a=O\}} zu verwenden,
-weil \texttt{\bs=} dort Tabs setzt.} \textit{und} von \verb|bibarts| sortiert werden k"onnen.
+\verb|bibsort| 2.5 g"abe \verb|U+01EC| aber weiterhin kein Sortiergewicht.
+Tippen von \verb|\k{\=O}| w"urde stattdessen \k{\=O} ausdrucken\footnote{In \texttt{\{tabbing\}}\kern.05em\hy Umgebungen w"are \texttt{\bs k\{\bs a=O\}} zu verwenden,
+weil \texttt{\bs=} dort Tabs setzt.} \textit{und} von \verb|bibsort| als \verb|O|\hy mit\hy Akzenten sortiert.
%%\k{\a=O}%%
\vspace{.75ex}
-\verb|-e| \hspace{.2em}ist seit Version 2.3 eine weitere Option. Mit \hspace{.2em}\verb|\bibsort| \verb|-e| \hspace{.2em}werden die
+\verb|-e| \hspace{.2em}ist seit Version 2.3 eine weitere Option. Mit \hspace{.25em}\verb|bibsort| \verb|-e| \hspace{.225em}werden die
Argumente von \verb|\vauthor|, \verb|\midvauthor| und \verb|\ntvautor| auf den \BibArts\hy \textit{Listen} vertauscht ausgedruckt
(\kern-.0875em\textit{e}xchange). Damit werden Koautoren in der Notation
-\hspace{.1em}\textit{Nachname}\kern-.05em\verb|,| \hspace{-.1em}\textit{Vorname} \hspace{.15em}ausgedruckt, also wie der Hauptautor.
+\hspace{.1em}\textit{Nachname}\kern-.075em\verb|,| \hspace{-.125em}\textit{Vorname} \hspace{.15em}ausgedruckt, also wie der Hauptautor.
Die Sortierung "andert sich dadurch nicht: Die erfolgt immer in der Reihenfolge
-\texttt{Nachname} \hspace{.05em}\texttt{Vorname}\kern.05em. \hspace{.1em}In Text und Fu"snoten druckt \BibArts\
-Autoren dagegen immer in der Reihenfolge \textit{Vorname Nachname} \hspace{.1em}aus; dies ist unver"anderlich.
+\texttt{Nachname} \hspace{.05em}\texttt{Vorname}\kern.05em. \hspace{.1em}Im Text (auch in Fu"snoten) druckt \BibArts\
+"ubrigens unver"anderlich Autoren immer in der Reihenfolge \textit{Vorname Nachname} \hspace{.1em}aus.
\vspace{1.25ex}\noindent
Seit Version 2.2 gibt es f"ur \verb|bibsort| folgende weitere Optionen:
\vspace{.75ex}
\verb|-h| sortiert Minuszeichen wie Leerzeichen. Das bezieht sich neben `\verb|-|' auf\pdfko{.25}\
-\verb|\hy| und \verb|\fhy| sowie\footnote{Falls das Doppelanf"uhrungszeichen \textit{aktiv} ist und \texttt{-x} nicht gesetzt wurde.} auf \verb|"=| und \verb|"~|. Dabei sind \verb|\hy| und \verb|\fhy| in \BibArts\ definiert
+\verb|\hy| und \verb|\fhy| sowie\footnote{Falls das Doppelanf"uhrungszeichen
+\textit{aktiv} ist und \texttt{-x} nicht gesetzt wurde.}
+auf \verb|"=| und \verb|"~|. Dabei sind \verb|\hy| und \verb|\fhy| in \BibArts\ definiert
(siehe oben S.\,\pageref{hy}), w"ahrend \verb|"=| und \verb|"~| von \verb|german|, \verb|ngerman|
oder den entsprechenden Versionen von babel bereitgestellt werden m"ussen.
\vspace{.75ex}
-\verb|-b| \hspace{.15em}beeinflusst die Sortierreihenfolge, falls Sie \hspace{.1em}\verb|\bago| \hspace{.1em}im Text verwenden.
-Ohne \verb|-b|\hspace{.2em} hat \hspace{.1em}\verb|\bago| \hspace{.1em}keinen Einfluss.
-Die Preu\hyss ischen Instruktionen etwa schrieben vor, dass im Titel das erste Substantiv, das im Nominativ steht,
-sortierrelevant ist.
-\hspace{.2em}\verb|\vli{J.}{Smith}{The| \verb|\bago| \verb|\ktit{Book},| \verb|London| \verb|2005}| \hspace{.2em}wird als
-\hspace{.2em}\verb|Smith J Book London 2005| \hspace{.2em}sortiert. Das \verb|The| hat kein
-Gewicht.\footnote{Anders als bei \texttt{\bs nosort\{}\fabra{...}\texttt{\}} gibt es keine Klammern.
-Vorsicht: Nur Zeichen hinter \texttt{\bs bago} im \textit{ganzen} zugeh"origen Argument \hspace{-.125em}\textit{`"au\hyss erer'}
-\BibArts\hy Befehle werden gewichtet. Nutzen Sie \hspace{.075em}\texttt{bibsort} \texttt{-b} \texttt{-m} \abra{...}\kern.05em, um
-in den erzeugten Files die sortierrelevanten Zeichen anzuzeigen.}
-
-\vspace{.75ex}
-\verb|-n1| dient dazu, dass in den num\hy Listen keine Zusammenfassungen von Fu"snoten
-"uber mehrere Seiten hinweg erfolgen. Dies dient der Vermeidung seltener Fehler in Texten,
+\verb|-n1| unterbindet, dass in den num\hy Listen Fu"snotennummern
+"uber mehrere Seiten hinweg zusammengefasst werden. Dies dient der Vermeidung seltener Fehler in Texten,
in denen in jedem Kapitel die Fu"snotenz"ahlung neu mit 1 beginnt. Dann k"onnte ein Kapitel
auf seiner letzten Seite beispielsweise in den Fu"snoten 2 bis 4 dieselbe
Belegstelle nennen $-$ und zudem k"onnte auf der n"achsten Seite in Fu"snote 5
-nochmals dieselbe Belegstelle folgen. Ohne \verb|-n1| \hspace{.05em}w"urde dies zu $6^2$$-$$7^5$
-zusammengefasst\hspace{.1em} (obwohl der Beleg auf Seite\hspace{-.1em} 7 in den Fu"snoten 1 bis 4 nicht vorkommt).
-Mit \verb|-n1| \hspace{.05em}wird dagegen richtig $6^{2-4}$$,\ $$7^5$ ausgedruckt. Gerechtfertigte
-Zusammenfassungen unterbleiben aber ebenso.
+nochmals dieselbe Belegstelle folgen. Ohne \verb|-n1| \hspace{.05em}w"urde dies zu \hspace{.1em}$6^2$$-$$7^5$
+\hspace{.1em}zusammengefasst\hspace{.1em} (obwohl der Beleg auf Seite\hspace{-.1em} 7 in den Fu"snoten 1 bis 4 nicht vorkommt).
+Mit \verb|-n1| \hspace{.05em}wird \hspace{.1em}$6^{2-4}$$,\ $$7^5$ \hspace{.1em}ausgedruckt.
+
+\vspace{.75ex}
+\verb|-b| \hspace{.15em}beeinflusst die Sortierreihenfolge, falls Sie \verb|\bago|
+\hspace{.1em}im Text verwenden. Die Preu\hyss ischen Instruktionen etwa lauteten,
+dass im Titel das erste Substantiv, das im Nominativ steht, sortierrelevant ist.
+\hspace{.2em}\verb|\vli{J.}{Smith}{The| \verb|\bago| \verb|\ktit{Book},| \verb|London| \verb|2005}|
+\hspace{.25em}\textit{wird als} \hspace{.3em}\verb|Smith J Book London 2005|
+\hspace{.2em}\textit{sortiert}. Das \verb|The| hat dabei kein Gewicht;
+Zeichen \textit{gelten} ab \verb|\bago| \hspace{.075em}im \textit{ganzen}\pdfko{0}\
+Argument \hspace{-.1em}\textit{`"au\hyss erer'} \BibArts\hy Befehle.
+Den \textit{Ausdruck} beeinflusst \verb|\bago| \hspace{.05em}nie.
+
+\vspace{1.25ex}\noindent
+Seit \BibArts\ 2.5 darf \verb|\ktit| in Klammern gesetzt
+und bei \textbf{Autor\hy Jahr\hy Zitierweise} im Sternargument stehen \baref{AutorJahr}. Dem wurde \texttt{bibsort} angepasst.
+Es gibt Kommentare aus, falls Sie \verb|\ktit| \hspace{.05em}uneinheitlich verwenden \baref{angepasste}.
\vspace{1.25ex}\vfill\noindent
-Nun ein \textbf{Beispiel f"ur die Sortierreihenfolge}. Achten Sie darauf, dass bei \textit{gleichen} Buchstaben mit
-mehreren \textit{verschiedenen} Akzenten (\c{\"a}\kern.05em, \"{\r a})
-die Akzente von hinten nach vorne gewichtet werden, d.\,h. der zuletzt
-getippte Akzent (\verb|\"| \hspace{.1em}in \hspace{.1em}\verb|\c{\"a}| \hspace{.2em}und
-\hspace{.15em}\verb|\r| \hspace{.15em}in \hspace{.1em}\verb|\"{\r| \hspace{.05em}\verb|a}|) \hspace{.05em}bestimmt die Sortierung am st"arksten.
+Nun ein \textbf{Beispiel f"ur die Sortierreihenfolge}. Bei \textit{gleichen} Buchstaben mit
+mehreren \textit{verschiedenen} Akzenten (\kern.075em\c{\"a}\kern.075em, \"{\r a}\kern.075em) bestimmt
+der zuletzt getippte Akzent \hspace{.1em}(\kern.1em{\small\verb|\"|} \hspace{.15em}in \hspace{.15em}{\small\verb|\c{\"a}|} \hspace{.25em}und
+\hspace{.15em}{\small\verb|\r|} \hspace{.2em}in \hspace{.15em}{\small\verb|\"{\r| \hspace{.05em}\verb|a}|}\kern.025em) \hspace{.15em}die Sortierung am st"arksten.
Die folgende Liste enth"alt zun"achst nicht alle UTF8\hy Zeichen, die \verb|bibsort| verarbeiten kann.
-In einer Kopie von \hspace{.05em}\verb|bibarts.tex| \hspace{.1em}im
-k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
+In einer Kopie von \hspace{.05em}\verb|bibarts.tex| \hspace{.1em}k"onnen Sie f"ur eigene Tests im Vorspann das
+\hspace{.1em}\verb|%|
\hspace{.15em}am Kopf von
\hspace{.1em}\verb|%\allprrtrue|
\hspace{.15em}entfernen. Nach einem Durchlauf von
-\hspace{.3em}\LaTeX\,$+$\,\verb|bibsort| \verb|-utf8| \abra{...}\kern.2em$+$\kern.15em\LaTeX\
+\hspace{.3em}\LaTeX~$+$~\verb|bibsort| \verb|-utf8| \abra{...}~$+$~\LaTeX\
\hspace{.3em}sind u.\,a.\ alle UTF8\hy Zeichen (mit \verb|[U+|\fabra{...}\verb|]| als Kommentar) da, die
-\hspace{.15em}\verb|bibsort| \hspace{.15em}in Version 2.4 erkennt:
+\hspace{.15em}\verb|bibsort| \hspace{.15em}in Version 2.5 erkennt.
\newcommand{\demotext}[1]{\nosort{\protect\printdemotext{#1}}}%
@@ -5582,7 +5903,7 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
%% Basiert auf \DeclareUnicodeCharacter-Befehlen in
%% utf8enc.dfu 2021/01/27 v1.2l OHNE \cyr.../\CYR...
\addtoprr{a b}%%[U+00A0]}%siehe zugehoeriges \fillprr
-\addtoprr{¡\demotext{ [U+00A1]}}
+\addtoprr{¡\demotext{ [U+00A1] \ \% Zeichen=kein Gewicht}}
\addtoprr{¢\demotext{ [U+00A2]}}
\addtoprr{£\demotext{ [U+00A3]}}
\addtoprr{¤\demotext{ [U+00A4]}}
@@ -5594,7 +5915,7 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{ª\demotext{ [U+00AA]}}
\addtoprr{«\demotext{ [U+00AB]}}
\addtoprr{¬\demotext{ [U+00AC]}}
-\addtoprr{­\demotext{ [U+00AD]}}
+\addtoprr{­\demotext{ [U+00AD] \ \ \% entspr. \bs-}}
\addtoprr{®\demotext{ [U+00AE]}}
\addtoprr{¯\demotext{ [U+00AF]}}
\addtoprr{°\demotext{ [U+00B0]}}
@@ -5602,10 +5923,10 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{²\demotext{ [U+00B2]}}
\addtoprr{³\demotext{ [U+00B3]}}
\addtoprr{´\demotext{ [U+00B4]}}
-\addtoprr{µ\demotext{ [U+00B5]}}%Mikro-Zeichen; siehe \textmu
+\addtoprr{µ\demotext{ [U+00B5/textmu]}}%Mikro-Zeichen
\addtoprr{¶\demotext{ [U+00B6]}}
\addtoprr{·\demotext{ [U+00B7]}}
-\addtoprr{¸\demotext{ [U+00B8]}}
+\addtoprr{¸\demotext{ [U+00B8] \ \% hat nur Unterl"ange}}
\addtoprr{¹\demotext{ [U+00B9]}}
\addtoprr{º\demotext{ [U+00BA]}}
\addtoprr{»\demotext{ [U+00BB]}}
@@ -5650,7 +5971,7 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{â\demotext{ [U+00E2]}}
\addtoprr{ã\demotext{ [U+00E3]}}
\addtoprr{ä\demotext{ [U+00E4]}}
-\addtoprr{å\demotext{ [U+00E5]}}%siehe zugehoeriges \fillprr
+\addtoprr{å} %[U+00E5]%siehe zugehoeriges \fillprr
\addtoprr{æ\demotext{ [U+00E6]}}
\addtoprr{ç\demotext{ [U+00E7]}}
\addtoprr{è\demotext{ [U+00E8]}}
@@ -5725,8 +6046,8 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{į\demotext{ [U+012F]}}
\addtoprr{İ\demotext{ [U+0130]}}
\addtoprr{ı\demotext{ [U+0131]}}
-\addtoprr{IJ\demotext{ [U+0132]}}%siehe zugehoeriges \fillprr
-\addtoprr{ij\demotext{ [U+0133]}}%siehe zugehoeriges \fillprr
+\addtoprr{IJ} %[U+0132]%siehe zugehoeriges \fillprr
+\addtoprr{ij} %[U+0133]%siehe zugehoeriges \fillprr
\addtoprr{Ĵ\demotext{ [U+0134]}}
\addtoprr{ĵ\demotext{ [U+0135]}}
\addtoprr{Ķ\demotext{ [U+0136]}}
@@ -5796,7 +6117,7 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{ż\demotext{ [U+017C]}}
\addtoprr{Ž\demotext{ [U+017D]}}
\addtoprr{ž\demotext{ [U+017E]}}
-\addtoprr{ƒ\demotext{ [U+0192]}}
+\addtoprr{ƒ\demotext{ [U+0192/textflorin]}}
\addtoprr{Ǎ\demotext{ [U+01CD]}}
\addtoprr{ǎ\demotext{ [U+01CE]}}
\addtoprr{Ǐ\demotext{ [U+01CF]}}
@@ -5827,9 +6148,9 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{ˇ\demotext{ [U+02C7]}}
\addtoprr{˜\demotext{ [U+02DC]}}
\addtoprr{˘\demotext{ [U+02D8]}}
-\addtoprr{˙\demotext{ [U+02D9]}}
-\addtoprr{˛\demotext{ [U+02DB]}}
-\addtoprr{˝\demotext{ [U+02DD]}}
+\addtoprr{˙\demotext{ [U+02D9] \ \% entspr. \bs.\{\}}}
+\addtoprr{˛\demotext{ [U+02DB] \ \% hat nur Unterl"ange}}
+\addtoprr{˝\demotext{ [U+02DD] \ \% kein Gewicht}}
%% \cyr... und \CYR waeren hier %%
\addtoprr{฿\demotext{ [U+0E3F]}}
\addtoprr{Ḃ\demotext{ [U+1E02]}}
@@ -5871,7 +6192,7 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{⁄\demotext{ [U+2044]}}
\addtoprr{⁎\demotext{ [U+204E]}}
\addtoprr{⁒\demotext{ [U+2052]}}
-\addtoprr{₡\demotext{ [U+20A1]}}%siehe zugehoeriges \fillprr
+\addtoprr{₡} %[U+20A1]} %siehe zugehoeriges \fillprr
\addtoprr{₤\demotext{ [U+20A4]}}
\addtoprr{₦\demotext{ [U+20A6]}}
\addtoprr{₩\demotext{ [U+20A9]}}
@@ -5884,7 +6205,7 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{℞\demotext{ [U+211E]}}
\addtoprr{℠\demotext{ [U+2120]}}
\addtoprr{™\demotext{ [U+2122]}}
-\addtoprr{Ω\demotext{ [U+2126]}}%siehe zugehoeriges \fillprr
+\addtoprr{Ω} %[U+2126]%siehe zugehoeriges \fillprr
\addtoprr{℧\demotext{ [U+2127]}}
\addtoprr{℮\demotext{ [U+212E]}}
\addtoprr{←\demotext{ [U+2190]}}
@@ -5927,7 +6248,7 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
%% utf8enc.dfu 2021/01/27 v1.2l OHNE \cyr.../\CYR...
\addtoprr{a\nobreakspace b}%siehe zugehoeriges \fillprr
\addtoprr{\textexclamdown}
-\addtoprr{\textcent}
+\addtoprr{\textcent\demotext{ \bs textcent}}
\addtoprr{\textsterling}
\addtoprr{\textcurrency}
\addtoprr{\textyen}
@@ -5936,12 +6257,12 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{\textasciidieresis}
\addtoprr{\textcopyright}
\addtoprr{\textordfeminine}
-\addtoprr{\guillemotleft}
+\addtoprr{\guillemetleft} %% v1.3c; vor 2.5: \guillemotleft
\addtoprr{\textlnot}
\addtoprr{a\-b}%siehe zugehoeriges \fillprr
\addtoprr{\textregistered}
\addtoprr{\textasciimacron}
-\addtoprr{\textdegree}
+\addtoprr{\textdegree\demotext{ \bs textdegree}}
\addtoprr{\textpm}
\addtoprr{\texttwosuperior}
\addtoprr{\textthreesuperior}
@@ -5949,98 +6270,99 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{\textmu}%siehe zugehoeriges \fillprr
\addtoprr{\textparagraph}
\addtoprr{\textperiodcentered}
-\addtoprr{\c\ \demotext{ \ \% \bs c\bs\ hat nur Unterl"ange}}
+\addtoprr{\c\ \demotext{ \ \bs c\bs\ \ \ \% hat nur Unterl"ange}}
\addtoprr{\textonesuperior}
\addtoprr{\textordmasculine}
-\addtoprr{\guillemotright}
+\addtoprr{\guillemetright} %% v1.3c; vor 2.5: \guillemotright
\addtoprr{\textonequarter}
\addtoprr{\textonehalf}
\addtoprr{\textthreequarters}
\addtoprr{\textquestiondown}
-\addtoprr{\@tabacckludge`A}
-\addtoprr{\@tabacckludge'A}
-\addtoprr{\^A}
-\addtoprr{\~A}
-\addtoprr{\"A}
+\addtoprr{\`A\demotext{ \bs\protect\string`A}}%\addtoprr{\@tabacckludge`A\demotext{ \bs @tabacckludge\protect\string`A}}
+\addtoprr{\'A\demotext{ \bs\protect\string'A}}%\addtoprr{\@tabacckludge'A\demotext{ \bs @tabacckludge\protect\string'A}}
+\addtoprr{\^A\demotext{ \bs\protect\string^A}}
+\addtoprr{\~A\demotext{ \bs\protect\string~A}}
+\addtoprr{\"A}%siehe zugehoeriges \fillprr
\addtoprr{\r A}
\addtoprr{\AE}
-\addtoprr{\c C}
-\addtoprr{\@tabacckludge`E}
-\addtoprr{\@tabacckludge'E}
+\addtoprr{\c C\demotext{ \bs c C}}
+\addtoprr{\`E\demotext{ \bs\protect\string`E}}%\addtoprr{\@tabacckludge`E\demotext{ \bs @tabacckludge\protect\string`E}}
+\addtoprr{\'E\demotext{ \bs\protect\string'E}}%\addtoprr{\@tabacckludge'E\demotext{ \bs @tabacckludge\protect\string'E}}
\addtoprr{\^E}
\addtoprr{\"E}
-\addtoprr{\@tabacckludge`I}
-\addtoprr{\@tabacckludge'I}
+\addtoprr{\`I\demotext{ \bs\protect\string`I}}%\addtoprr{\@tabacckludge`I\demotext{ \bs @tabacckludge\protect\string`I}}
+\addtoprr{\'I\demotext{ \bs\protect\string'I}}%\addtoprr{\@tabacckludge'I\demotext{ \bs @tabacckludge\protect\string'I}}
\addtoprr{\^I}
\addtoprr{\"I}
\addtoprr{\DH}
\addtoprr{\~N}
-\addtoprr{\@tabacckludge`O}
-\addtoprr{\@tabacckludge'O}
+\addtoprr{\`O\demotext{ \bs\protect\string`O}}%\addtoprr{\@tabacckludge`O\demotext{ \bs @tabacckludge\protect\string`O}}
+\addtoprr{\'O\demotext{ \bs\protect\string'O}}%\addtoprr{\@tabacckludge'O\demotext{ \bs @tabacckludge\protect\string'O}}
\addtoprr{\^O}
\addtoprr{\~O}
-\addtoprr{\"O}
+\addtoprr{\"O\demotext{ \bs\protect\string"O}}
\addtoprr{\texttimes}
\addtoprr{\O}
-\addtoprr{\@tabacckludge`U}
-\addtoprr{\@tabacckludge'U}
+\addtoprr{\@tabacckludge`U\demotext{ \bs @tabacckludge\protect\string`U}}%++
+\addtoprr{\@tabacckludge'U\demotext{ \bs @tabacckludge\protect\string'U}}%++
\addtoprr{\^U}
-\addtoprr{\"U}
-\addtoprr{\@tabacckludge'Y}
+\addtoprr{\"U\demotext{ \bs\protect\string"U}}
+\addtoprr{\'Y\demotext{ \bs\protect\string'Y}}%\addtoprr{\@tabacckludge'Y\demotext{ \bs @tabacckludge\protect\string'Y}}
\addtoprr{\TH}
-\addtoprr{\ss}
-\addtoprr{\@tabacckludge`a}
-\addtoprr{\@tabacckludge'a}
-\addtoprr{\^a}
-\addtoprr{\~a}
+\addtoprr{\ss\demotext{ \ \bs ss}}
+\addtoprr{\`a\demotext{ \bs\protect\string`a}}%\addtoprr{\@tabacckludge`a\demotext{ \bs @tabacckludge\protect\string`a}}
+\addtoprr{\@tabacckludge'a\demotext{ \bs @tabacckludge\protect\string'a}}%++
+\addtoprr{\'a\demotext{ \bs\protect\string'a}}
+\addtoprr{\^a\demotext{ \bs\protect\string^a}}
+\addtoprr{\~a\demotext{ \bs\protect\string~a}}
\addtoprr{\"a}
\addtoprr{\r a}
\addtoprr{\ae}
-\addtoprr{\c c}
-\addtoprr{\@tabacckludge`e}
-\addtoprr{\@tabacckludge'e}
+\addtoprr{\c c\demotext{ \bs c c}}
+\addtoprr{\`e\demotext{ \bs\protect\string`e}}%\addtoprr{\@tabacckludge`e\demotext{ \bs @tabacckludge\protect\string`e}}
+\addtoprr{\'e\demotext{ \bs\protect\string'e}}%\addtoprr{\@tabacckludge'e\demotext{ \bs @tabacckludge\protect\string'e}}
\addtoprr{\^e}
\addtoprr{\"e}
-\addtoprr{\@tabacckludge`\i}
-\addtoprr{\@tabacckludge'\i}
+\addtoprr{\@tabacckludge`\i\demotext{ \bs @tabacckludge\protect\string`\bs i}}%++
+\addtoprr{\@tabacckludge'\i\demotext{ \bs @tabacckludge\protect\string'\bs i}}%++
\addtoprr{\^\i}
\addtoprr{\"\i}
\addtoprr{\dh}
\addtoprr{\~n}
-\addtoprr{\@tabacckludge`o}
-\addtoprr{\@tabacckludge'o}
+\addtoprr{\`o\demotext{ \bs\protect\string`o}}%\addtoprr{\@tabacckludge`o\demotext{ \bs @tabacckludge\protect\string`o}}
+\addtoprr{\'o\demotext{ \bs\protect\string'o}}%\addtoprr{\@tabacckludge'o\demotext{ \bs @tabacckludge\protect\string'o}}
\addtoprr{\^o}
\addtoprr{\~o}
-\addtoprr{\"o}
+\addtoprr{\"o\demotext{ \bs\protect\string"o}}
\addtoprr{\textdiv}
\addtoprr{\o}
-\addtoprr{\@tabacckludge`u}
-\addtoprr{\@tabacckludge'u}
+\addtoprr{\`u\demotext{ \bs\protect\string`u}}%\addtoprr{\@tabacckludge`u\demotext{ \bs @tabacckludge\protect\string`u}}
+\addtoprr{\'u\demotext{ \bs\protect\string'u}}%\addtoprr{\@tabacckludge'u\demotext{ \bs @tabacckludge\protect\string'u}}
\addtoprr{\^u}
\addtoprr{\"u}
-\addtoprr{\@tabacckludge'y}
+\addtoprr{\'y\demotext{ \bs\protect\string'y}}%\addtoprr{\@tabacckludge'y\demotext{ \bs @tabacckludge\protect\string'y}}
\addtoprr{\th}
\addtoprr{\"y}%siehe zugehoeriges \fillprr
-\addtoprr{\@tabacckludge=A}
-\addtoprr{\@tabacckludge=a}
-\addtoprr{\u A}
-\addtoprr{\u a}
-\addtoprr{\k A}
-\addtoprr{\k a}
-\addtoprr{\@tabacckludge'C}
-\addtoprr{\@tabacckludge'c}
-\addtoprr{\^C}
-\addtoprr{\^c}
-\addtoprr{\.C}
-\addtoprr{\.c}
-\addtoprr{\v C}
-\addtoprr{\v c}
+\addtoprr{\=A\demotext{ \bs=A}}%\addtoprr{\@tabacckludge=A\demotext{ \bs @tabacckludge=A}}
+\addtoprr{\=a\demotext{ \bs=a}}%\addtoprr{\@tabacckludge=a\demotext{ \bs @tabacckludge=a}}
+\addtoprr{\u A\demotext{ \bs u A}}
+\addtoprr{\u a\demotext{ \bs u a}}
+\addtoprr{\k A\demotext{ \bs k A}}
+\addtoprr{\k a\demotext{ \bs k a}}
+\addtoprr{\'C\demotext{ \bs\protect\string'C}}%\addtoprr{\@tabacckludge'C\demotext{ \bs @tabacckludge\protect\string'C}}
+\addtoprr{\'c\demotext{ \bs\protect\string'c}}%\addtoprr{\@tabacckludge'c\demotext{ \bs @tabacckludge\protect\string'c}}
+\addtoprr{\^C\demotext{ \bs\protect\string^C}}
+\addtoprr{\^c\demotext{ \bs\protect\string^c}}
+\addtoprr{\.C\demotext{ \bs.C}}
+\addtoprr{\.c\demotext{ \bs.c}}
+\addtoprr{\v C\demotext{ \bs v C}}
+\addtoprr{\v c\demotext{ \bs v c}}
\addtoprr{\v D}
-\addtoprr{\v d}
+\addtoprr{\v d\demotext{ \bs v d}}
\addtoprr{\DJ}
\addtoprr{\dj}
-\addtoprr{\@tabacckludge=E}
-\addtoprr{\@tabacckludge=e}
+\addtoprr{\=E\demotext{ \bs=E}}%\addtoprr{\@tabacckludge=E\demotext{ \bs @tabacckludge=E}}
+\addtoprr{\=e\demotext{ \bs=e}}%\addtoprr{\@tabacckludge=e\demotext{ \bs @tabacckludge=e}}
\addtoprr{\u E}
\addtoprr{\u e}
\addtoprr{\.E}
@@ -6055,14 +6377,14 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{\u g}
\addtoprr{\.G}
\addtoprr{\.g}
-\addtoprr{\c G}
-\addtoprr{\c g}
+\addtoprr{\c G\demotext{ \bs c G}}
+\addtoprr{\c g\demotext{ \bs c g}}
\addtoprr{\^H}
\addtoprr{\^h}
\addtoprr{\~I}
\addtoprr{\~\i}
-\addtoprr{\@tabacckludge=I}
-\addtoprr{\@tabacckludge=\i}
+\addtoprr{\=I\demotext{ \bs=I}}%\addtoprr{\@tabacckludge=I\demotext{ \bs @tabacckludge=I}}
+\addtoprr{\=\i\demotext{ \bs=\bs i}}%\addtoprr{\@tabacckludge=\i\demotext{ \bs @tabacckludge=\bs i}}
\addtoprr{\u I}
\addtoprr{\u\i}
\addtoprr{\k I}
@@ -6073,54 +6395,54 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{\ij}
\addtoprr{\^J}
\addtoprr{\^\j}
-\addtoprr{\c K}
-\addtoprr{\c k}
-\addtoprr{\@tabacckludge'L}
-\addtoprr{\@tabacckludge'l}
-\addtoprr{\c L}
-\addtoprr{\c l}
-\addtoprr{\v L}
-\addtoprr{\v l}
-\addtoprr{\L}
-\addtoprr{\l}
-\addtoprr{\@tabacckludge'N}
-\addtoprr{\@tabacckludge'n}
-\addtoprr{\c N}
-\addtoprr{\c n}
+\addtoprr{\c K\demotext{ \bs c K}}
+\addtoprr{\c k\demotext{ \bs c k}}
+\addtoprr{\'L\demotext{ \bs\protect\string'L}}%\addtoprr{\@tabacckludge'L\demotext{ \bs @tabacckludge\protect\string'L}}
+\addtoprr{\'l\demotext{ \bs\protect\string'l}}%\addtoprr{\@tabacckludge'l\demotext{ \bs @tabacckludge\protect\string'l}}
+\addtoprr{\c L\demotext{ \bs c L}}
+\addtoprr{\c l\demotext{ \bs c l}}
+\addtoprr{\v L\demotext{ \v L}}
+\addtoprr{\v l\demotext{ \bs v l}}
+\addtoprr{\L}%siehe zugehoeriges \fillprr
+\addtoprr{\l}%siehe zugehoeriges \fillprr
+\addtoprr{\'N\demotext{ \bs\protect\string'N}}%\addtoprr{\@tabacckludge'N\demotext{ \bs @tabacckludge\protect\string'N}}
+\addtoprr{\'n\demotext{ \bs\protect\string'n}}%\addtoprr{\@tabacckludge'n\demotext{ \bs @tabacckludge\protect\string'n}}
+\addtoprr{\c N\demotext{ \bs c N}}
+\addtoprr{\c n\demotext{ \bs c n}}
\addtoprr{\v N}
\addtoprr{\v n}
\addtoprr{\NG}
\addtoprr{\ng}
-\addtoprr{\@tabacckludge=O}
-\addtoprr{\@tabacckludge=o}
+\addtoprr{\=O\demotext{ \bs=O}}%\addtoprr{\@tabacckludge=O\demotext{ \bs @tabacckludge=O}}
+\addtoprr{\=o\demotext{ \bs=o}}%\addtoprr{\@tabacckludge=o\demotext{ \bs @tabacckludge=o}}
\addtoprr{\u O}
\addtoprr{\u o}
\addtoprr{\H O}
-\addtoprr{\H o}
+\addtoprr{\H o\demotext{ \bs H o}}
\addtoprr{\OE}
\addtoprr{\oe}
-\addtoprr{\@tabacckludge'R}
-\addtoprr{\@tabacckludge'r}
-\addtoprr{\c R}
-\addtoprr{\c r}
+\addtoprr{\'R\demotext{ \bs\protect\string'R}}%\addtoprr{\@tabacckludge'R\demotext{ \bs @tabacckludge\protect\string'R}}
+\addtoprr{\'r\demotext{ \bs\protect\string'r}}%\addtoprr{\@tabacckludge'r\demotext{ \bs @tabacckludge\protect\string'r}}
+\addtoprr{\c R\demotext{ \bs c R}}
+\addtoprr{\c r\demotext{ \bs c r}}
\addtoprr{\v R}
\addtoprr{\v r}
-\addtoprr{\@tabacckludge'S}
-\addtoprr{\@tabacckludge's}
+\addtoprr{\'S\demotext{ \bs\protect\string'S}}%\addtoprr{\@tabacckludge'S\demotext{ \bs @tabacckludge\protect\string'S}}
+\addtoprr{\'s\demotext{ \bs\protect\string's}}%\addtoprr{\@tabacckludge's\demotext{ \bs @tabacckludge\protect\string's}}
\addtoprr{\^S}
\addtoprr{\^s}
-\addtoprr{\c S}
-\addtoprr{\c s}
+\addtoprr{\c S\demotext{ \bs c S}}
+\addtoprr{\c s}%siehe zugehoeriges \fillprr
\addtoprr{\v S}
\addtoprr{\v s}
-\addtoprr{\c T}
-\addtoprr{\c t}
-\addtoprr{\v T}
-\addtoprr{\v t}
+\addtoprr{\c T\demotext{ \bs c T}}
+\addtoprr{\c t\demotext{ \bs c t}}
+\addtoprr{\v T\demotext{ \bs v T}}
+\addtoprr{\v t\demotext{ \bs v t}}
\addtoprr{\~U}
\addtoprr{\~u}
-\addtoprr{\@tabacckludge=U}
-\addtoprr{\@tabacckludge=u}
+\addtoprr{\@tabacckludge=U\demotext{ \bs @tabacckludge=U}}%++
+\addtoprr{\=u\demotext{ \bs=u}}%\addtoprr{\@tabacckludge=u\demotext{ \bs @tabacckludge=u}}
\addtoprr{\u U}
\addtoprr{\u u}
\addtoprr{\r U}
@@ -6134,23 +6456,23 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{\^Y}
\addtoprr{\^y}
\addtoprr{\"Y}%siehe zugehoeriges \fillprr
-\addtoprr{\@tabacckludge'Z}
-\addtoprr{\@tabacckludge'z}
+\addtoprr{\'Z\demotext{ \bs\protect\string'Z}}%\addtoprr{\@tabacckludge'Z\demotext{ \bs @tabacckludge\protect\string'Z}}
+\addtoprr{\'z\demotext{ \bs\protect\string'z}}%\addtoprr{\@tabacckludge'z\demotext{ \bs @tabacckludge\protect\string'z}}
\addtoprr{\.Z}
\addtoprr{\.z}
\addtoprr{\v Z}
\addtoprr{\v z}
-\addtoprr{\textflorin}
-\addtoprr{\v A}
-\addtoprr{\v a}
+\addtoprr{\textflorin\demotext{ \bs textflorin}}
+\addtoprr{\v A\demotext{ \bs v A}}
+\addtoprr{\v a\demotext{ \bs v a}}
\addtoprr{\v I}
\addtoprr{\v \i}
\addtoprr{\v O}
\addtoprr{\v o}
\addtoprr{\v U}
\addtoprr{\v u}
-\addtoprr{\@tabacckludge=\AE}
-\addtoprr{\@tabacckludge=\ae}
+\addtoprr{\=\AE\demotext{ \bs=\bs AE}}%\addtoprr{\@tabacckludge=\AE\demotext{ \bs @tabacckludge=\bs AE}}
+\addtoprr{\=\ae\demotext{ \bs=\bs ae}}%\addtoprr{\@tabacckludge=\ae\demotext{ \bs @tabacckludge=\bs ae}}
\addtoprr{\v G}
\addtoprr{\v g}
\addtoprr{\v K}
@@ -6158,27 +6480,27 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{\k O}
\addtoprr{\k o}
\addtoprr{\v\j}
-\addtoprr{\@tabacckludge'G}
-\addtoprr{\@tabacckludge'g}
-\addtoprr{\textcommabelow S}
-\addtoprr{\textcommabelow s}
-\addtoprr{\textcommabelow T}
-\addtoprr{\textcommabelow t}
-\addtoprr{\@tabacckludge=Y}
-\addtoprr{\@tabacckludge=y}
-\addtoprr{\j}
+\addtoprr{\'G\demotext{ \bs\protect\string'G}}%\addtoprr{\@tabacckludge'G\demotext{ \bs @tabacckludge\protect\string'G}}
+\addtoprr{\'g\demotext{ \bs\protect\string'g}}%\addtoprr{\@tabacckludge'g\demotext{ \bs @tabacckludge\protect\string'g}}
+\addtoprr{\textcommabelow S}%siehe zugehoeriges \fillprr
+\addtoprr{\textcommabelow s}%siehe zugehoeriges \fillprr
+\addtoprr{\textcommabelow T\demotext{ \bs textcommabelow T}}
+\addtoprr{\textcommabelow t\demotext{ \bs textcommabelow t}}
+\addtoprr{\=Y\demotext{ \bs=Y}}%\addtoprr{\@tabacckludge=Y\demotext{ \bs @tabacckludge=Y}}
+\addtoprr{\=y\demotext{ \bs=y}}%\addtoprr{\@tabacckludge=y\demotext{ \bs @tabacckludge=y}}
+\addtoprr{\j}%siehe zugehoeriges \fillprr
\addtoprr{\textasciicircum}
\addtoprr{\textasciicaron}
\addtoprr{\textasciitilde}
\addtoprr{\textasciibreve}
-\addtoprr{\.{}}
-\addtoprr{\k{} \demotext{ \ \% \bs k\{\} hat nur Unterl"ange}}
-\addtoprr{\textacutedbl}
+\addtoprr{\.{}\demotext{ \ \bs.\{\} \ \% Akzent mit Gewicht}}
+\addtoprr{\k{}\demotext{ \ \bs k\{\} \ \% hat nur Unterl"ange}}
+\addtoprr{\textacutedbl\demotext{ \bs textacutedbl \ \% kein Gewicht}}
%% \cyr... und \CYR waeren hier %%
-\addtoprr{\textbaht}
-\addtoprr{\.B}
-\addtoprr{\.b}
-\addtoprr{\d d}
+\addtoprr{\textbaht\demotext{ \bs textbaht}}
+\addtoprr{\.B}%siehe zugehoeriges \fillprr
+\addtoprr{\.b}%siehe zugehoeriges \fillprr
+\addtoprr{\d d\demotext{ \bs d d}}
\addtoprr{\d h}
\addtoprr{\d l}
\addtoprr{\d m}
@@ -6187,14 +6509,14 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{\d r}
\addtoprr{\d s}
\addtoprr{\d t}
-\addtoprr{\SS}
+\addtoprr{\SS\demotext{ \bs SS}}
\addtoprr{\textcompwordmark\demotext{ \ \% unsichtbar}}
\addtoprr{a-b\demotext{ a-b}}
\addtoprr{a\mbox{-}b\demotext{ a\bs mbox\{-\}b \ \% nobreakminus}}
-\addtoprr{\textendash}
-\addtoprr{\textendash}
-\addtoprr{\textemdash}
-\addtoprr{\textemdash}
+\addtoprr{\textendash\demotext{ \bs textendash}}
+\addtoprr{\textendash\demotext{ \bs textendash}}
+\addtoprr{\textemdash\demotext{ \bs textemdash}}
+\addtoprr{\textemdash\demotext{ \bs textemdash}}
\addtoprr{\textbardbl}
\addtoprr{\textquoteleft}
\addtoprr{\textquoteright}
@@ -6219,10 +6541,10 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{\textlira}
\addtoprr{\textnaira}
\addtoprr{\textwon}
-\addtoprr{\textdong}
+\addtoprr{\textdong\demotext{ \bs textdong}}
\addtoprr{\texteuro}
\addtoprr{\textpeso}
-\addtoprr{\textcelsius}
+\addtoprr{\textcelsius\demotext{ \bs textcelsius}}
\addtoprr{\textnumero}
\addtoprr{\textcircledP}
\addtoprr{\textrecipe}
@@ -6237,43 +6559,72 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{\textdownarrow}
\addtoprr{\textlangle}
\addtoprr{\textrangle}
-\addtoprr{\textblank}
+\addtoprr{\textblank\demotext{ \bs textblank}}
\addtoprr{\textvisiblespace}
\addtoprr{\textopenbullet}
\addtoprr{\textbigcircle}
\addtoprr{\textmusicalnote}
\addtoprr{\textlangle}
\addtoprr{\textrangle}
-\addtoprr{\@tabacckludge=G}
-\addtoprr{\@tabacckludge=g}
-\addtoprr{ff}
-\addtoprr{fi}
-\addtoprr{fl}
-\addtoprr{ffi}
-\addtoprr{ffl}
-\addtoprr{st}
-\addtoprr{st}
+\addtoprr{\=G\demotext{ \bs=G}}%\addtoprr{\@tabacckludge=G\demotext{ \bs @tabacckludge=G}}
+\addtoprr{\=g\demotext{ \bs=g}}%\addtoprr{\@tabacckludge=g\demotext{ \bs @tabacckludge=g}}
+\addtoprr{ff\demotext{ ff}}
+\addtoprr{fi\demotext{ fi}}
+\addtoprr{fl\demotext{ fl}}
+\addtoprr{ffi\demotext{ ffi}}
+\addtoprr{ffl\demotext{ ffl}}
+\addtoprr{st\demotext{ st}} %% parallel zu [U+FB05]
+\addtoprr{st\demotext{ st}} %% parallel zu [U+FB06]
\addtoprr{a\protect\nobreak\ b\demotext{ a\bs protect\bs nobreak\bs\ b}} %%\addtoprr{a\ifhmode\nobreak\fi\ b}%% Kommt nicht im .prr-File an. %%
%%
%% neu in 2.4 [utf8enc.dfu 2021/06/21 v1.2n]:
\addtoprr{\.F}
\addtoprr{\.f}
-\addtoprr{\@tabacckludge'K}
-\addtoprr{\@tabacckludge'k}
+\addtoprr{\'K\demotext{ \bs\protect\string'K}}%\addtoprr{\@tabacckludge'K\demotext{ \bs @tabacckludge\protect\string'K}}
+\addtoprr{\'k\demotext{ \bs\protect\string'k}}%\addtoprr{\@tabacckludge'k\demotext{ \bs @tabacckludge\protect\string'k}}
\addtoprr{\.Y}
\addtoprr{\.y}
\addtoprr{\^Z}
\addtoprr{\^z}
-\addtoprr{\@tabacckludge`Y}
-\addtoprr{\@tabacckludge`y}
+\addtoprr{\`Y\demotext{ \bs\protect\string`Y}}%\addtoprr{\@tabacckludge`Y\demotext{ \bs @tabacckludge\protect\string`Y}}
+\addtoprr{\`y\demotext{ \bs\protect\string`y}}%\addtoprr{\@tabacckludge`y\demotext{ \bs @tabacckludge\protect\string`y}}
+%%
+%% neu in 2.5 (LaTeX-Befehle):
+\addtoprr{\capitaldieresis{A}\demotext{ \bs capitaldieresis\{A\} \ \%~2.5}}
+\addtoprr{\capitaldieresis O\demotext{ \bs capitaldieresis O \ \%~2.5}}
+\addtoprr{\capitaldieresis U\demotext{ \bs capitaldieresis U \ \%~2.5}}
+\addtoprr{\capitaldieresis Y\demotext{ \bs capitaldieresis Y \ \%~2.5}}
+\addtoprr{\textdegree F\demotext{ \bs textdegree F \ \%~2.5}}
+\addtoprr{\"{A}\demotext{ \bs\protect\string"\{A\} \ \ \%~2.5}}
+\addtoprr{\" A\demotext{ \bs\protect\string" A \ \ \ \%~2.5}}
+\addtoprr{" A\demotext{ \protect\string" A \ \ \ \ \%~2.5}}
+\addtoprr{"{A}\demotext{ \protect\string"\{A\} \ \ \ \%~2.5}}
+\addtoprr{$\mathsterling$\demotext{ \$\bs mathsterling\$ \ \ \%~2.5}}
+%%
+%% neu in 2.5 [utf8enc.dfu 2022/06/07 v1.3c]
+\addtoprr{D\v Z\demotext{ D\bs v Z}}
+\addtoprr{DŽ\demotext{ [U+01C4] \ \%~2.5}}
+\addtoprr{D\v z\demotext{ D\bs v z}}
+\addtoprr{Dž\demotext{ [U+01C5] \ \%~2.5}}
+\addtoprr{d\v z\demotext{ d\bs v z}}
+\addtoprr{dž\demotext{ [U+01C6] \ \%~2.5}}
+\addtoprr{LJ\demotext{ LJ}} \addtoprr{LJ\demotext{ [U+01C7] \ \%~2.5}}
+\addtoprr{Lj\demotext{ Lj}} \addtoprr{Lj\demotext{ [U+01C8] \ \%~2.5}}
+\addtoprr{lj\demotext{ lj}} \addtoprr{lj\demotext{ [U+01C9] \ \%~2.5}}
+\addtoprr{NJ\demotext{ NJ}} \addtoprr{NJ\demotext{ [U+01CA] \ \%~2.5}}
+\addtoprr{Nj\demotext{ Nj}} \addtoprr{Nj\demotext{ [U+01CB] \ \%~2.5}}
+\addtoprr{nj\demotext{ nj}} \addtoprr{nj\demotext{ [U+01CC] \ \%~2.5}}
+\addtoprr{\textlangle} \addtoprr{〈\demotext{ [U+3008] \ \%~2.5}}
+\addtoprr{\textrangle} \addtoprr{〉\demotext{ [U+3009] \ \%~2.5}}
%%
\fi
%%%
+\addtoprr{\capitaldieresis A\demotext{ \bs capitaldieresis A \ \%~2.5}}
\addtoprr{b\texttwooldstyle\demotext{ \ b\bs texttwooldstyle}}
\addtoprr{b\textthreeoldstyle\demotext{ \ b\bs textthreeoldstyle}}
%%%
\addtoprr{\textoneoldstyle\demotext{ \bs textoneoldstyle \ \ \% 2.3}}
-\ifallprr
+%\ifallprr
\addtoprr{\texttwooldstyle\demotext{ \bs texttwooldstyle \ \ \% 2.3}}
\addtoprr{\textthreeoldstyle\demotext{ \bs textthreeoldstyle \ \ \% 2.3}}
\addtoprr{\textfouroldstyle\demotext{ \bs textfouroldstyle \ \ \% 2.3}}
@@ -6282,7 +6633,7 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{\textsevenoldstyle\demotext{ \bs textsevenoldstyle \ \ \% 2.3}}
\addtoprr{\texteightoldstyle\demotext{ \bs texteightoldstyle \ \ \% 2.3}}
\addtoprr{\textnineoldstyle\demotext{ \bs textnineoldstyle \ \ \% 2.3}}
-\fi
+%\fi
\addtoprr{\textzerooldstyle\demotext{ \bs textzerooldstyle \ \% 2.3}}
\addtoprr{ÿ\demotext{ [U+00FF]}}
\addtoprr{\"y}
@@ -6294,21 +6645,23 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{Di Niro}
\addtoprr{ba}
\addtoprr{ a}
+ \fillprr{a}{\demotext{ \ \ a \ \ \ \ \ \ \ \% *a,A=prim"ar*}}
\addtoprr{5.000}
\addtoprr{0,5}
\addtoprr{0.5}
\addtoprr{0.a6}
\addtoprr{0.26}
\addtoprr{0.25}
-\addtoprr{0,251}
-\addtoprr{0.251}
+\addtoprr{0,25100}
+\addtoprr{0.25100}
\addtoprr{1.500}
\addtoprr{1,500}
\addtoprr{1501}
-\addtoprr{0,25}
+\addtoprr{0,2500}
\addtoprr{1,5}
\addtoprr{1,1}
\addtoprr{1,125}
+\addtoprr{01,45}
\addtoprr{1,45}
\addtoprr{1.750}
\addtoprr{1,75}
@@ -6365,8 +6718,12 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{b100}
\addtoprr{b\fup{\baRomannum{99}}\demotext{ b\bs fup\{\bs baRomannum\{99\}\}}}
\addtoprr{{c}\demotext{ \{c\}}}
-\addtoprr{{}c\demotext{ \{\}c}}
+%\addtoprr{{}c\demotext{ \{\}c}}
\addtoprr{c{}\demotext{ c\{\}}}
+\addtoprr{\textdegree C\demotext{ \bs textdegree C \ \%~2.5}}
+\addtoprr{°C\demotext{ [U+00B0]C}}
+\addtoprr{\textcelsius\demotext{ \bs textcelsius}}
+\addtoprr{℃\demotext{ [U+2103]}} %Grad-Celsius
\addtoprr{ä\demotext{ [U+00E4]}}
\addtoprr{\r{\"a}\demotext{ \bs r\{\bs\protect\string"a\}}}
\addtoprr{\c{\"a}\demotext{ \bs c\{\bs\protect\string"a\}}}
@@ -6376,7 +6733,7 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{"A\demotext{ \protect\string"A}}
\addtoprr{\"A}
\fillprr{\"A}{\demotext{ \bs\protect\string"A}}
-\addtoprr{ae}
+\addtoprr{ae\demotext{ ae}}
\addtoprr{\c{\"a}\demotext{ \bs c\{\bs\protect\string"a\}}}
\addtoprr{"a\demotext{ \protect\string"a}}
\addtoprr{\r{ä}\demotext{ \bs r\{[U+00E4]\}}}
@@ -6386,7 +6743,7 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{\3\demotext{ \ \bs 3}}
\addtoprr{ß\demotext{ [U+00DF]}}
\addtoprr{"s\demotext{ \ \protect\string"s}}
-\addtoprr{\sz\demotext{ \bs sz \ \%neu in 2.1}}
+\addtoprr{\sz\demotext{ \protect\,\bs sz \ \ \%neu in 2.1}}
\addtoprr{{\scshape \ss}\demotext{ \{\bs scshape \bs ss\}}}
\addtoprr{"z\demotext{ \ \protect\string"z}}
\addtoprr{Straße\demotext{ \ \ Stra[U+00DF]e}}
@@ -6402,7 +6759,7 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
{\sethyphenation{UKenglish}
\addtoprr{Zum Schluss die Worttrennung american im englischen Trennsatz}}
-\addtoprr{A}
+\addtoprr{A\demotext{ A \ \ \ \ \ \ \ \ \ \% *a,A=prim"ar*}}
\addtoprr{B}
\addtoprr{C}
\addtoprr{D}
@@ -6411,7 +6768,7 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{G}
\addtoprr{H}
\addtoprr{I}
-\addtoprr{J}
+\addtoprr{J\demotext{ J}}
\addtoprr{K}
\addtoprr{L}
\addtoprr{M}
@@ -6441,7 +6798,7 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
%\addtoprr{Ka}
{\sethyphenation{ngerman}\addtoprr{Sto\hyf figur\demotext{ Sto\bs hyf figur\protect\nobreak\ \%ngerman}}}
{\sethyphenation{german}\addtoprr{Sto\hyf figur\demotext{ \kern.3emSto\bs hyf figur\protect\nobreak\ \protect\nobreak\ \%german}}}
-\addtoprr{stoffig\demotext{ \ \ stoffig}}
+\addtoprr{stoffig\demotext{ \ \ \ stoffig}}
%\addtoprr{La}
\addtoprr{Ma}
\addtoprr{Na}
@@ -6458,14 +6815,15 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{Ya}
\addtoprr{Za}
-\addtoprr{a}
+\addtoprr{a}%siehe \fillprr
\addtoprr{b}
\addtoprr{c}
\addtoprr{d}
\addtoprr{e}
\addtoprr{f}
\addtoprr{g}
-\addtoprr{h}
+%\addtoprr{h}
+\addtoprr{$\hbar$\demotext{ \$\bs hbar\$}}
\addtoprr{i\demotext{ i wird wie \bs i sortiert \ \%\protect\nobreak\ \bs.\bs i}}
\addtoprr{\.\i\demotext{ \bs.\bs i}}
\addtoprr{j}
@@ -6532,10 +6890,11 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\fillprr{\c s}{\demotext{ \bs c s}}
% \textcommabelow{t}, \textcommabelow{T}, \d{t}, \c{S}, \v{S}, \v{s}, \d{s}, \'S, \'s, \^S, \^s
-\addtoprr{0000000000}
+\addtoprr{0000000000\demotext{ \ \ \ \ \ \% *Zahl=prim"ar*}}
\addtoprr{100000000}
-\addtoprr{2~100~000,7\demotext{ 2\protect\string~100\protect\string~000,7}}
+\addtoprr{2~100~000,7\demotext{ \ 2\protect\string~100\protect\string~000,7}}
\addtoprr{2\,100\,000,65\demotext{ 2\bs,100\bs,000,65}}
+\addtoprr{2 100 000,99\demotext{ 2 100 000,99}}
\addtoprr{2.099.999}
\addtoprr{2.100.001}
\addtoprr{\sort{2.100.000}2,1\,Mio.\demotext{ \ \bs sort\{2.100.000\}2,1\bs,Mio.}}
@@ -6553,9 +6912,12 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
%\addtoprr{!}
%\addtoprr{?`\demotext{ \protect\string?{}\protect\string`}}
%\addtoprr{!`\demotext{ \protect\string!{}\protect\string`}}
-\addtoprr{!\demotext{ \ \protect\string!}}
-\addtoprr{\$\demotext{ \protect\,\bs\protect\$}}
-%\addtoprr{\#\demotext{ \bs\protect\#}}
+\addtoprr{!\demotext{ \ \protect\,\protect\string! \ \ \ \% *Zeichen=kein Gewicht*}}
+\addtoprr{\textdollar\demotext{ \ \bs textdollar}}
+\addtoprr{Difabio}
+\addtoprr{\$\demotext{ \ \bs\protect\$ \ \ \% vgl. \bs textdollaroldstyle}}
+\addtoprr{\textdollaroldstyle\demotext{ \bs textdollaroldstyle \ \%~2.5}}
+%\addtoprr{\&\demotext{ \ \bs\protect\&}}
%\addtoprr{“a”\demotext{ [U+201C]a[U+201D]}}
%\addtoprr{\textquotedblleft a\textquotedblright}
% \fillprr{\textquotedblleft a\textquotedblright}{\demotext{ \bs textquotedblleft a\bs textquotedblright}}
@@ -6563,41 +6925,43 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{"<a">\demotext{ \protect\,\protect\string"\protect\string<a\protect\string"\protect\string> \ \% ge"andert in 2.2}}
\addtoprr{\nosort{'}a'\demotext{ \ \bs nosort\{{\protect\string'}\}a\protect\string'}}
\addtoprr{'a'\demotext{ {\protect\string'}a{\protect\string'}}}
-\addtoprr{a'a\demotext{ a\protect\string'a \ \ \%\% vgl. \bs nosort\{\protect\string'\}a}}
+\addtoprr{a'a\demotext{ a\protect\string'a \ \ \ \% vgl.\bs nosort\{\protect\string'\}a}}
{\originalTeX \addtoprr{"a"\demotext{ \{\bs originalTeX \bs addtoprr\{\protect\string"a\protect\string"\}\}\protect\label{originaltex}}}}
-\addtoprr{«a»\demotext{ [U+00AB]a[U+00BB]}}
- %\addtoprr{\guillemotleft a\guillemotright}
- % \fillprr{\guillemotleft a\guillemotright}{\demotext{ \bs guillemotleft a\bs guillemotright}}
-\addtoprr{„a“\demotext{ \protect\,[U+201E]a[U+201C]}}
+\addtoprr{«a»\demotext{ [U+00AB]a[U+00BB] \% a,A=prim"ar}}
+ %\addtoprr{\guillemetleft a\guillemetright}
+ % \fillprr{\guillemetleft a\guillemetright}{\demotext{ \bs guillemetleft a\bs guillemetright}}
+\addtoprr{„a“\demotext{ \ [U+201E]a[U+201C]}}
\addtoprr{\glqq a\grqq\demotext{ \ \bs glqq a\bs grqq}}
\addtoprr{\flqq a\frqq\demotext{ \protect\,\bs flqq a\bs frqq}}
-\addtoprr{b\$2\demotext{ b\bs\$2}}
-\addtoprr{b\&2\demotext{ b\bs\&2}}
+%\addtoprr{b\$2\demotext{ b\bs\$2}}
+%\addtoprr{b\&2\demotext{ b\bs\&2}}
\addtoprr{b/2}
\addtoprr{$b\;2$\demotext{ \$b\bs\protect\string;2\$}}
\addtoprr{$b\:2$\demotext{ \$b\bs\protect\string:2\$}}
\addtoprr{(b)}
%\addtoprr{[b]}
-\addtoprr{\.B\demotext{ \bs.B}}
\addtoprr{Ḃ\demotext{ [U+1E02]}}
\addtoprr{\{b\demotext{ \bs\{b}}
-\addtoprr{\%\demotext{ \bs\%}}
+%\addtoprr{\%\demotext{ \ \bs\%}}
\addtoprr{b\_2\demotext{ b\bs\protect\string_2}}
\addtoprr{b=2}
-\addtoprr{b<2}
-\addtoprr{b>2}
-\addtoprr{b@2}
+%\addtoprr{b<2}
+%\addtoprr{b>2}
+%\addtoprr{b@2}
\addtoprr{b|2\demotext{ b\protect\string|2}}
\addtoprr{b+2}
\addtoprr{b-2\demotext{ \ \ \ b{\protect\string-}2}}
-\addtoprr{b--2\demotext{ \ b{\protect\string-}{\protect\string-}2}}
+\addtoprr{b--3\demotext{ \ b{\protect\string-}{\protect\string-}3}}
%\addtoprr{b---2\demotext{ b{\protect\string-}{\protect\string-}{\protect\string-}2}}
-\addtoprr{Ae}
-\addtoprr{Ac}
+\addtoprr{b \ 2\demotext{ \ \ \ b \bs\ 2}}
+\addtoprr{Ab}
+\addtoprr{Ae\demotext{ Ae}}
\addtoprr{Af}
\addtoprr{ḃ\demotext{ [U+1E03]}}
\addtoprr{\.b}
\fillprr{\.b}{\demotext{ \bs.b}}
+ \addtoprr{\.B}
+ \fillprr{\.B}{\demotext{ \bs.B}}
\addtoprr{$\dot{b}$\demotext{ \$\bs dot\{b\}\$}}
\addtoprr{\'b\demotext{ \bs\protect\string'b}}
\addtoprr{$\acute{b}$\demotext{ \$\bs acute\{b\}\$}}
@@ -6611,8 +6975,8 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{$\vec{b}$\demotext{ \$\bs vec\{b\}\$}}
\addtoprr{\~b\demotext{ \bs\protect\string~b}}
\addtoprr{$\tilde{b}$\demotext{ \$\bs tilde\{b\}\$}}
- \addtoprr{å\demotext{ [U+00E5]}}%%auch \ifallprr
- \fillprr{å\demotext{ [U+00E5]}}{\demotext{ \% *UTF8 neu in 2.3*}}
+ \addtoprr{å}%%auch \ifallprr
+ \fillprr{å}{\demotext{ [U+00E5] \ \% *UTF8 neu in 2.3*}}
\addtoprr{\r a}
\fillprr{\r a}{\demotext{ \bs r a}}
\addtoprr{\"{\r a}\demotext{ \bs\protect\string"\{\bs r a\}}}
@@ -6636,10 +7000,10 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{$\check{b}$\demotext{ \$\bs check\{b\}\$}}
\addtoprr{\protect\underbar{\"b}\demotext{ \bs protect\bs underbar\{\bs\protect\string"b\}}}
%\addtoprr{\protect\underline{\c{b}}\demotext{ \bs protect\bs underline\{\bs c\{b\}\}}}
-\addtoprr{\@tabacckludge'b\demotext{ \bs @tabacckludge\protect\string'b \%neu in 2.3}}
+\addtoprr{\@tabacckludge'b\demotext{ \bs @tabacckludge\protect\string'b \%neu in 2.3}}%+++
\addtoprr{\protect\underline{\"b}\demotext{ \bs protect\bs underline\{\bs\protect\string"b\}}}
\addtoprr{ab}
-\addtoprr{a b}
+\addtoprr{a b\demotext{ a b}}
\addtoprr{a\,b\demotext{ a\bs,b}}
%\addtoprr{a\protect\space b\demotext{ a\bs protect\bs space b}}
%\addtoprr{a\relax b\demotext{ a\bs relax b}}
@@ -6654,18 +7018,18 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{ab}
%\addtoprr{aba}
\addtoprr{a‐b}
- \fillprr{a‐b}{\demotext{ a[U+2010]b}}
+ \fillprr{a‐b}{\demotext{ a[U+2010]b \ \ \% entspr. a-b}}
\addtoprr{a‑b}
\fillprr{a‑b}{\demotext{ a[U+2011/nobreakminus]b}}
\addtoprr{a-b\demotext{ a-b}}
-\addtoprr{a"|b\demotext{ a\protect\string"{\protect\string|}b \ \ \% ge"andert in 2.2}}
+%\addtoprr{a"|b\demotext{ a\protect\string"{\protect\string|}b \ \ \% ge"andert in 2.2}}
\addtoprr{a"~b\demotext{ a\protect\string"{\protect\string~}b \ \ \% ge"andert in 2.2}}
\addtoprr{a"=b\demotext{ a\protect\string"{\protect\string=}b \ \ \% ge"andert in 2.2}}
-\addtoprr{a"-b\demotext{ a\protect\string"{\protect\string-}b \ \ \% ge"andert in 2.2}}
+\addtoprr{a"-b\demotext{ \protect\,a\protect\string"{\protect\string-}b \ \ \% ge"andert in 2.2}}
\addtoprr{a\-b}
\fillprr{a\-b}{\demotext{ a\bs{\protect\string-}b}}
\addtoprr{a\hy b\demotext{ a\bs hy b}}
-\addtoprr{a\fhy b\demotext{ a\bs fhy b}}
+\addtoprr{a\fhy b\demotext{ a\bs fhy b \ \ \% nobreakminus}}
%\addtoprr{ac}
\addtoprr{ı\demotext{ [U+0131]}}
\addtoprr{\i}
@@ -6710,21 +7074,21 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{\l}
\fillprr{\l}{\demotext{ \bs l}}
\addtoprr{$\ell$\demotext{ \$\bs ell\$}}
- \addtoprr{ij\demotext{ [U+0133]}}%%auch \ifallprr
- \fillprr{ij\demotext{ [U+0133]}}{\demotext{ \% Ligatur ij}}
+ \addtoprr{ij}%%auch \ifallprr
+ \fillprr{ij}{\demotext{ [U+0133] \ \% Ligatur ij}}
\addtoprr{\ij}
\fillprr{\ij}{\demotext{ \bs ij niederl"and.\ als i sortiert}}
- \addtoprr{IJ\demotext{ [U+0132]}}%%auch \ifallprr
- \fillprr{IJ\demotext{ [U+0132]}}{\demotext{ \% Ligatur IJ}}
+ \addtoprr{IJ}%%auch \ifallprr
+ \fillprr{IJ}{\demotext{ [U+0132] \ \% Ligatur IJ}}
\addtoprr{\IJ}
- \fillprr{\IJ}{\demotext{ \bs IJ "aquivalent zu \bs ij}}
+ \fillprr{\IJ}{\demotext{ \bs IJ=\string>I "aquivalent zu \bs ij=\string>i}}
\addtoprr{$\Im$\demotext{ \$\bs Im\$}}
\addtoprr{Ł\demotext{ [U+0141]}}
\addtoprr{\L}
\fillprr{\L}{\demotext{ \bs L}}
-%\addtoprr{\LaTeX\demotext{ \bs LaTeX}}
+\addtoprr{\LaTeX\demotext{ \bs LaTeX}}
%\addtoprr{LATEX}
-\addtoprr{LaTeX}
+%\addtoprr{LaTeX}
\addtoprr{ŋ\demotext{ [U+014B]}}
\addtoprr{\ng}
\fillprr{\ng}{\demotext{ \bs ng}}
@@ -6758,7 +7122,7 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{\TH}
\fillprr{\TH}{\demotext{ \bs TH}}
\addtoprr{\protect\TeX\demotext{ \bs protect\bs TeX}}
-\addtoprr{TEX\demotext{ TEX}}
+%\addtoprr{TEX\demotext{ TEX}}
\addtoprr{TeX\demotext{ TeX}}
\addtoprr{$\alpha$\demotext{ \$\bs alpha\$}}
\addtoprr{$\beta$\demotext{ \$\bs beta\$}}
@@ -6823,8 +7187,8 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{℞\demotext{ [U+211E]}}
\addtoprr{\textrecipe}
\fillprr{\textrecipe}{\demotext{ \bs textrecipe}}
- \addtoprr{Ω\demotext{ [U+2126]}}%%auch \ifallprr
- \fillprr{Ω\demotext{ [U+2126]}}{\demotext{ \% Ohm}}
+ \addtoprr{Ω}%%auch \ifallprr
+ \fillprr{Ω}{\demotext{ [U+2126/textohm] \ \% Ohm}}
\addtoprr{\textohm}
\fillprr{\textohm}{\demotext{ \bs textohm}}
\addtoprr{℧\demotext{ [U+2127]}}
@@ -6839,7 +7203,7 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{b\hspace{2mm}b\demotext{ \ b\bs hspace\{2mm\}b}}
\addtoprr{b\index{X}b\demotext{ \ \ b\bs index\{X\}b}}
\addtoprr{b \index{X}b\demotext{ \ \ b \bs index\{X\}b}}
-\addtoprr{b \index{X} b\demotext{ \ \ b \bs index\{X\} b}}
+%\addtoprr{b \index{X} b\demotext{ \ \ b \bs index\{X\} b}}
\addtoprr{b\glossary{X}b\demotext{ \ b\bs glossary\{X\}b}}
\addtoprr{b \label{X1} b\demotext{ \ \ \protect\,b \bs label\{X1\} b}}
\addtoprr{b \pageref{X1} b\demotext{ \ b \bs pageref\{X1\} b}}
@@ -6878,16 +7242,16 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{b\message{9}b\demotext{ b\bs message\{9\}b}}
\addtoprr{b\mathhexbox{1}{2}{3}b\demotext{ b\bs mathhexbox\{1\}\{2\}\{3\}b}}
\addtoprr{b\protect\phantom{X}b\demotext{ \ b\bs protect\bs phantom\{X\}b}}
-\addtoprr{b\protect\vphantom{X}b\demotext{ \ b\bs protect\bs vphantom\{X\}b}}
+\addtoprr{b\protect\vphantom{X}b\demotext{ b\bs protect\bs vphantom\{X\}b}}
\addtoprr{b\protect\hphantom{X}b\demotext{ \ b\bs protect\bs hphantom\{X\}b}}
\addtoprr{b\sethyphenation{french}b\demotext{ b\bs sethyphenation\{french\}b}}
\addtoprr{b\selectlanguage{french}b\demotext{ b\bs selectlanguage\{french\}b}}
\addtoprr{b\discretionary{a-}{c} {b}\demotext{ b\bs discretionary\{a-\}\{c\} \{b\}}}
%
- \addtoprr{₡\demotext{ [U+20A1]}}%%auch \ifallprr
- \fillprr{₡\demotext{ [U+20A1]}}{}
+ \addtoprr{₡}%%auch \ifallprr
+ \fillprr{₡}{\demotext{ \ [U+20A1]}}
\addtoprr{\textcolonmonetary}
- \fillprr{\textcolonmonetary}{\demotext{ \bs textcolonmonetary}}
+ \fillprr{\textcolonmonetary}{\demotext{ \ \bs textcolonmonetary}}
\addtoprr{¥\demotext{ [U+00A5]}}
\addtoprr{\textyen}
\fillprr{\textyen}{\demotext{ \bs textyen \ \ \ \% neu in 2.3}}
@@ -6908,6 +7272,88 @@ k"onnen Sie (f"ur eigene Tests) im Vorspann das \hspace{.1em}\verb|%|
\addtoprr{₱\demotext{ [U+20B1]}}
\addtoprr{\textpeso}
\fillprr{\textpeso}{\demotext{ \bs textpeso}}
+%%
+ \addtoprr{\capitaldieresis U\demotext{ \bs capitaldieresis U \ \ \ \ \%~2.5}}
+ \addtoprr{\capitaldieresis{U}\demotext{ \bs capitaldieresis\{U\} \ \%~2.5}}
+ \addtoprr{\capitalcedilla {U}\demotext{ \bs capitalcedilla \{U\} \ \%~2.5}}
+ \addtoprr{\@tabacckludge" {U}\demotext{ \bs @tabacckludge\protect\string" \{U\} \ \%~2.5}}%+++
+ \addtoprr{\@tabacckludge " U\demotext{ \bs @tabacckludge \protect\string" U \ \ \%~2.5}}%+++
+ \addtoprr{\capitalcedilla {\"U}\demotext{ \bs capitalcedilla \{\bs\protect\string"U\} \ \%~2.5}}
+ \addtoprr{\capitalogonek {\capitaldieresis U}\demotext{ \bs capitalogonek \\ \{\bs capitaldieresis U\} \ \%~2.5}}
+ \addtoprr{\capitalcedilla {\capitaldotaccent U}\demotext{ \bs capitalcedilla \\ \{\bs capitaldotaccent U\} \ \%~2.5}}
+ \addtoprr{\capitalogonek{\.U}\demotext{ \bs capitalogonek\{\bs .U\} \ \ \ \protect\,\%~2.5}}
+\addtoprr{\"U\demotext{ \bs\protect\string"U}}
+\addtoprr{\"{U}\demotext{ \bs\protect\string"\{U\}}}
+\addtoprr{"U\demotext{ \protect\string"U}}
+\addtoprr{Ü\demotext{ [U+00DC]}}
+ \addtoprr{\capitalacute U\demotext{ \bs capitalacute U \ \%~2.5}}
+\addtoprr{\'U\demotext{ \bs\protect\string'U}}
+ \addtoprr{\capitalbreve U\demotext{ \bs capitalbreve U \ \%~2.5}}
+\addtoprr{\u U\demotext{ \bs u U}}
+\addtoprr{Ü\demotext{ [U+00DC]}}
+ \addtoprr{\capitalcaron U\demotext{ \bs capitalcaron U \ \%~2.5}}
+\addtoprr{\v U\demotext{ \bs v U}}
+ \addtoprr{\capitalcedilla U\demotext{ \bs capitalcedilla U \ \%~2.5}}
+\addtoprr{\c U\demotext{ \bs c U}}
+ \addtoprr{\capitalcircumflex U\demotext{ \bs capitalcircumflex U \ \%~2.5}}
+\addtoprr{\^U\demotext{ \bs\protect\string^U}}
+\addtoprr{Û\demotext{ [U+00DB]}}
+\addtoprr{\.U\demotext{ \bs .U}}
+ \addtoprr{\capitaldotaccent U\demotext{ \bs capitaldotaccent U \ \%~2.5}}
+ \addtoprr{\capitalacute {U}\demotext{ \bs capitalacute \{U\} \ \%~2.5}}
+\addtoprr{\.U\demotext{ \bs.U}}
+ \addtoprr{\capitalgrave U\demotext{ \bs capitalgrave U \ \%~2.5}}
+\addtoprr{\`U\demotext{ \bs\protect\string`U}}
+ \addtoprr{\capitalhungarumlaut U\demotext{ \bs capitalhungarumlaut U \ \%~2.5}}
+\addtoprr{\H U\demotext{ \bs H U}}
+ \addtoprr{\capitalmacron U\demotext{ \bs capitalmacron U \ \%~2.5}}
+\addtoprr{\=U\demotext{ \bs=U}}
+ \addtoprr{\capitalnewtie U\demotext{ \bs capitalnewtie U \ \%~2.5}}
+\addtoprr{\capitalogonek U\demotext{ \bs capitalogonek U \ \%~2.5}}
+\addtoprr{\k U\demotext{ \bs k U}}
+\addtoprr{Ű\demotext{ [U+0170]}}
+ \addtoprr{\capitalring U\demotext{ \bs capitalring U \ \%~2.5}}
+\addtoprr{\r U\demotext{ \bs r U}}
+ \addtoprr{\capitaltie U\demotext{ \bs capitaltie U \ \%~2.5}}
+\addtoprr{\t U\demotext{ \bs t U}}
+ \addtoprr{\capitaltilde U\demotext{ \bs capitaltilde U \ \%~2.5}}
+\addtoprr{\~U\demotext{ \bs\protect\string~U}}
+ \addtoprr{\newtie U\demotext{ \bs newtie U \ \%~2.5}}
+\addtoprr{\t U\demotext{ \bs t U}}
+ \addtoprr{\textogonekcentered U\demotext{ \bs textogonekcentered U \ \%~2.5}}
+\addtoprr{\textcommabelow U\demotext{ \bs textcommabelow U \ \%~2.3}}
+\addtoprr{\textdegree U\demotext{ \bs textdegree U \ \%~2.5}}
+ \addtoprr{$\vec U$\demotext{ \$\bs vec U\$}}
+\addtoprr{\b U\demotext{ \bs b U}}
+\addtoprr{\d U\demotext{ \bs d U}}
+\addtoprr{\protect\underbar U\demotext{ \bs protect\bs underbar U}}
+\addtoprr{\protect\underline U\demotext{ \bs protect\bs underline U}}
+\addtoprr{Ù\demotext{ [U+00D9]}}
+\addtoprr{Ú\demotext{ [U+00DA]}}
+\addtoprr{Ú\demotext{ [U+00DA]}}
+\addtoprr{Ũ\demotext{ [U+0168]}}
+\addtoprr{Ū\demotext{ [U+016A]}}
+\addtoprr{Ŭ\demotext{ [U+016C]}}
+\addtoprr{Ů\demotext{ [U+016E]}}
+\addtoprr{Ų\demotext{ [U+0172]}}
+\addtoprr{Ǔ\demotext{ [U+01D3]}}
+\addtoprr{U}
+\addtoprr{Ua}
+\addtoprr{Ue}
+\addtoprr{Uf}
+\addtoprr{$\acute U$\demotext{ \$\bs acute U\$}}
+\addtoprr{$\hat U$\demotext{ \$\bs hat U\$}}
+\addtoprr{$\dot U$\demotext{ \$\bs dot U\$}}
+\addtoprr{$\grave U$\demotext{ \$\bs grave U\$}}
+\addtoprr{$\ddot U\sort{e}$\demotext{ \$\bs ddot U\bs sort\{e\}\$ \ \%~so~als~Ue}}
+\addtoprr{\underline{\"U}\demotext{ \bs underline\{\bs \protect\string"U\}}}
+\addtoprr{$\bar U$\demotext{ \$\bs bar U\$}}
+\addtoprr{$\tilde U$\demotext{ \$\bs tilde U\$}}
+\addtoprr{$\mathring U$\demotext{ \$\bs mathring U\$}}
+\addtoprr{$\breve U$\demotext{ \$\bs breve U\$}}
+\addtoprr{$\check U$\demotext{ \$\bs check U\$}}
+
+%###
\noindent
Zur Erzeugung der vorausgehenden Liste bekam \verb|bibsort| als
@@ -6928,9 +7374,9 @@ enden, \textit{aus einzelnen Zeichen} bestehende Befehle wie \texttt{\bs\dq} d"u
Befehle, die \verb|bibsort| nicht kennt, sortiert es "ahnlich wie Satzzeichen,
gewichtet sie also nur, falls Zeilen \textit{sonst} nur
\textit{gleiche Buchstaben (mit gleichen Akzenten) und gleiche Zahlen} enthalten. Zum Verst"andnis des
-schichtweisen Sortierens beachten Sie bitte \verb|Stra{\ss}burg| und \verb|Stra{\ss}e|\kern.05em.\pdfko{.25}\
+schichtweisen Sortierens beachten Sie oben \verb|Stra{\ss}burg| und \verb|Stra{\ss}e|\kern.025em.\pdfko{.25}\
Falls Sie \hspace{.15em}\verb|bibsort| \verb|-utf8| \hspace{.1em}\abra{...} \hspace{.2em}starten, wird
-zudem \verb|Straße| mit \verb|ß| (\verb|U+00DF|) richtig\pdfko{.25}\
+zudem \verb|Straße| mit \verb|ß| (\verb|U+00DF|) richtig
sortiert (u.\,U.\ ist \verb|\usepackage[utf8]{inputenc}| im Vorspann n"otig).
Fu"snotenexponenten (\verb|\footnotemark[146]|) werden absichtlich nicht gewichtet,
@@ -6938,7 +7384,7 @@ mathematische Exponenten (\verb|$^{2}$|) schon.
\verb|bibsort| sortiert viele gleiche Zeichen, die verschieden gemeint sind,
so, als h"atten sie verschiedene Akzente: \verb|$\mu$| ($\mu$) und \verb|\textmu| (Mikro\hy \textmu).
Umgekeht wird \verb|\sz|, das {\sz} druckt, wie \verb|"z| ("z) einsortiert
-(\verb|\MakeLowercase{\SZ}|\hy Pendant; \verb|\SZ| ist {\SZ}); vgl.\ \verb|"s| ("s).
+(\kern.025em\verb|\MakeLowercase{\SZ}|\kern.025em\hy Pendant; \verb|\SZ| ist {\SZ}); vgl.\ \verb|"s| ("s).
Und viele Befehls\hy Argumente
werden intern `ausgerichtet':\footnote{In \texttt{transformtable} in \texttt{bibsort.c} aufgelistet.
Von "Anderungen wird abgeraten.}
@@ -6974,7 +7420,7 @@ immer tausend.\footnote{Die Zahlenerkennung funktioniert bis\hspace{.1em}
\texttt{999.999.999.999.999} vor dem `Komma' (deutsch, also mit \texttt{-g1} oder \texttt{-g2}) und bis zu zus"atzlich
16 Stellen nach dem `Komma' (wobei in den Nachkommastellen keine Strukturierungszeichen wie \hspace{-.1em}\texttt{.} oder \texttt{\bs,} enthalten
sein d"urfen: \texttt{0,0000000000000001} ist die kleinste korrekt sortierbare Zahl).
-Ziffern nach der 15ten bzw.\ 16ten Stelle werden ignoriert von den `h"oheren'
+Ziffern nach der 15ten bzw\ko.\ 16ten Stelle werden ignoriert von den `h"oheren'
Sortierschichten (die zuerst die Reihenfolge bestimmen)
und als neue Zahlen begriffen.}
@@ -7017,34 +7463,37 @@ anders als \verb|P.S.| von \verb|-l| beeinflusst werden.
\vspace{1ex}
\verb|-t1| sortiert Zeichen aus der zweiten H"alfte der ASCII\hy Codetabelle,\footnote{In
\texttt{bibsort.c} in \texttt{teinzerw} fix definiert.} wie sie unter
-\verb|\UseRawInputEncoding| im \hspace{-.2em}\verb|.aux|\hy File ankommen.
+\verb|\UseRawInputEncoding| im \hspace{-.175em}\verb|.aux|\hy File ankommen.
Anscheinend wird \verb|\UseRawInputEncoding| zusammen mit \verb|\usepackage[T1]{fontenc}|
-verwendet. \verb|bibsort| \verb|-t1| erwartet einfache Oktette von ASCII 128 bis 255.
+verwendet. \hspace{.15em}\verb|bibsort| \verb|-t1| \hspace{.15em}erwartet einfache Oktette von ASCII 128 bis 255.
\vspace{2.5ex}\noindent
Neben \verb|\sort| \baref{sort} l"asst sich die Reihenfolge
mit dem Befehl \verb|\nosort| steuern. Sein Argument wird gedruckt,
-aber beim Sortieren weitgehend ausgeblendet.
-\verb|'a'| wird vor \verb|a| einsortiert, \verb|\nosort{'}a'| dahinter
-(falls beide Eintr"age sonst nur \textit{gleiche} Buchstaben enthalten).
+aber beim Sortieren weitgehend ausgeblendet. Oben k"onnte
+\verb|\sort{0,001429}\nosort{700} v.\,Chr.| im Beispiel f"ur Dezimalzahlen
+getippt werden, um ganz genau zu sortieren.
+
+Auf der ersten Seite der Beipielliste habe ich \verb|\nosort| ebenfalls benutzt:
+\verb|'a'| wird vor \verb|a| einsortiert, \verb|\nosort{'}a'| dahinter.
Dies liegt daran, dass in dieser `unteren' Sortierschicht
ein Vergleich zwischen dem \textit{backslash} von \verb|\nosort|
und dem Apostroph am Anfang von \verb|'a'| stattfindet; \texttt{bibsort}
-sortiert (bei ihm unbekannten Befehlen) den \textit{backslash}
+sortiert in diesem direkten Konflikt den \textit{backslash}
hinter alle anderen Zeichen. Und beim Vergleich von
-\verb|\nosort{'}a'| und \verb|\glqq|~\verb|a| kommen \verb|n| und \verb|g| zum Zuge.
+\verb|\nosort{'}a'| und \verb|\glqq|~\verb|a| \hspace{.05em}sind die Buchstaben
+\verb|n| und \verb|g| entscheidend. Prim"ar bestimmend
+ist in diesen Eintr"agen aber das \verb|a|.
\newpage
\noindent
\verb|bibsort| schreibt keine Protokolldatei, sondern setzt seine
Fehlermeldungen als Kommentarzeilen in die erzeugten Dateien.
-Wenn anders sortiert wird als erwartet, k"onnen Sie \ko\verb|-m|
-setzen; dann f"ugt \verb|bibsort| zu jedem Eintrag als\pdfko{.25}\
-\LaTeX\hy
-Kommentar seine zum Sortieren genutzten Meta\hy Zeilen hinzu.
-(Die
-Sonderzeichen zur Nachbewertung bilden manche Editoren
-nur teilweise ab!)
+Mit \hspace{.15em}\verb|bibsort| \verb|-m| \hspace{.15em}ordnen Sie an,
+vor jeden Eintrag die zum Sortieren genutzten Meta\hy Zeilen ebenfalls
+als \LaTeX\hy Kommentar einzuf"ugen. Akzente werden darin von
+`nicht\hy druckbaren' Zeichen repr"asentiert (einige Editoren bilden
+solche Zeichen nur teilweise ab).
\vspace{1ex}\noindent
Wie oben S.\,\pageref{head} vorgef"uhrt, bewirkt \verb|\bibsortheads|,
@@ -7166,7 +7615,7 @@ aus; es gibt keine Zusammenfassung etwa zu \textsf{A--C}.
Sie k"onnen mit \verb|-c| den Ausdruck der geschweiften Klammern
unterdr"ucken. Leere Z"ahlerstandsausdrucke erscheinen als\hspace{.1em} \textsf{[]}\hspace{.1em}
und die \LaTeX\hy Fehlermeldung\hspace{.15em} \verb|Counter too large|\hspace{.15em}
-als\hspace{.2em} \textsf{()}\,;\footnote{Ausdruck eines Z"ahlerstandes von \texttt{0} als r"omische Zahl bzw.\
+als\hspace{.2em} \textsf{()}\,;\footnote{Ausdruck eines Z"ahlerstandes von \texttt{0} als r"omische Zahl bzw\ko.\
gr"o\hyss er \texttt{26} als Buchstabe.} beides l"asst sich nicht ausschalten.
\vspace{2ex}\noindent
@@ -7215,7 +7664,7 @@ Fu"snotennummer fett in fetten runden Klammern auszudrucken
Falls Sie\hspace{.2em} \verb|bibsort|~\textit{file}\hspace{.1em} befehlen,
liest \verb|bibsort| das von \LaTeX\ zuvor erzeugte\hspace{.15em} \textit{file}\ko\verb|.aux|\hspace{.15em}
ein und erzeugt die bis zu neun \BibArts\kern.1em\hy
-Dateien (etwa\hspace{.15em} \textit{file}\ko\verb|.vli|\kern.1em, falls Sie vli\fhy Befehle verwenden).
+Dateien (etwa\hspace{.15em} \textit{file}\ko\texttt{.\ko vli}\kern.1em, falls Sie vli\fhy Befehle verwenden).
Alle bei \textit{einem} \texttt{bibsort}\hy Start erzeugte Dateien haben dasselbe Pr"afix, \textit{defaultm"a\hyss ig}
dasjenige der Input\hy Datei, also \textit{file}\kern.01em.\hspace{.1ex}
Seit \BibArts~2.1 muss ein abweichendes Pr"afix\hspace{.1em} \textit{outfile}\hspace{.15em}
@@ -7322,17 +7771,17 @@ Der erste Satz.\footnote{\kli{Ferguson}{Falscher Krieg}[23].\vspace{1ex}}}
\vfill
\hbox{\parbox{7.7cm}{\footnotesize\noindent
-\textbf{\BibArts~2.4 \ (9 Dateien, 8 vom 10.\,01.\,2022):} \\[.85ex]
+\textbf{\BibArts~2.5 \ (9 Dateien, 8 vom 01.\,10.\,2022):} \\[.85ex]
\begin{tabular}{ll}%
- \texttt{README.txt} & Versionsgeschichte seit 1.3 \\[-1.75pt]
- \texttt{bibarts.sty} & Das \LaTeX-Style-File \\[-1.75pt]
- \texttt{bibarts.pdf} & Diese Dokumentation hier \\[-1.75pt]
- \texttt{bibarts.tex} & Quellcode von \texttt{bibarts.pdf} \\[-1.75pt]
- \texttt{ba-short.pdf} & Englische Kurzdokumentation \\[-1.75pt]
- \texttt{ba-short.tex} & Quellcode von \texttt{ba-short.pdf}\\[-1.75pt]
- \texttt{bibsort.exe} & Bin"ardatei f"ur die Listen \\[-1.75pt]
- \texttt{bibsort.c} & Quellcode von \texttt{bibsort.exe} \\[-1.75pt]
- \texttt{COPYING} & Lizenz (vom 28.\,11.\,1993) \\
+ \texttt{README.txt} & Versionsgeschichte seit 1.3 \\[-1.75pt]
+ \texttt{bibarts.sty} & Das \LaTeX-Style-File \\[-1.75pt]
+ \texttt{bibarts.pdf} & Diese Dokumentation hier \\[-1.75pt]
+ \texttt{bibarts.tex} & Quellcode von \texttt{bibarts.pdf} \\[-1.75pt]
+ \texttt{ba-short.pdf} & Englische Kurzdokumentation \\[-1.75pt]
+ \texttt{ba-short.tex} & Quellcode von \texttt{ba-short.pdf} \\[-1.75pt]
+ \texttt{bibsort.exe} & bibarts-bin erzeugt die Listen \\[-1.75pt]
+ \texttt{bibsort.c} & Quellcode von \texttt{bibsort.exe} \\[-1.75pt]
+ \texttt{COPYING} & Lizenz (vom 28.\,11.\,1993) \\
\end{tabular}}
\\
\hspace*{2.4mm}
@@ -7356,7 +7805,7 @@ Der erste Satz.\footnote{\kli{Ferguson}{Falscher Krieg}[23].\vspace{1ex}}}
dokumentieren Sie "Anderungen vor der Weitergabe. \\[-.5ex]
Zur Diskussion k"onnen Sie mir an\hspace{.1em}
\texttt{bibarts}\kern.1em(\kern-.05em at\kern-.075em)\kern.1em\texttt{gmx.de}\hspace{.1em}
-schreiben.}
+mailen.}
\edef\bamantestargs{ -g1 -h -utf8 -k -e }
\ifallprr This file shows more entries in the prr-list than the distributed version.\fi
@@ -7367,4 +7816,8 @@ schreiben.}
%\tableofcontents
+
\end{document}
+
+
+
diff --git a/macros/latex/contrib/bibarts/bibsort.c b/macros/latex/contrib/bibarts/bibsort.c
index cc094f10bf..332eb2c700 100644
--- a/macros/latex/contrib/bibarts/bibsort.c
+++ b/macros/latex/contrib/bibarts/bibsort.c
@@ -1,5 +1,5 @@
-/* BibArts 2.4 assists you to write LaTeX texts in arts and humanities. */
-/* Copyright (C) 2022 Timo Baumann bibarts[at]gmx.de (2022/01/10) */
+/* BibArts 2.5 assists you to write LaTeX texts in arts and humanities. */
+/* Copyright (C) 2022b Timo Baumann bibarts[at]gmx.de (2022/10/01) */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
@@ -20,12 +20,13 @@
/*
FILES OF THE PACKAGE AND DOCUMENTATION
CTAN mirrors > BibArts > bibarts.zip
+ README.txt Version history since 1.3
bibarts.sty LaTeX style file
ba-short.pdf Short documentation (English)
ba-short.tex Source of ba-short.pdf
bibarts.pdf Full documentation (German)
bibarts.tex Source of bibarts.pdf
- bibsort.exe Binary to create the lists
+ bibsort.exe bibarts-bin to create the lists
bibsort.c This file; source of bibsort.exe
COPYING The license of the package
*/
@@ -34,10 +35,9 @@
/*
COMPATIBILITY
- I have tested bibsort.c with several C compilers. I had problems with
- the devcpp.exe EDITOR (Dev-Cpp_5.4.0_TDM-GCC_x64_4.7.1). Sucessful was:
- "C:\Program Files (x86)\Dev-Cpp\MinGW64\bin\gcc.exe" -O2 -c bibsort.c -o bibsort.o
- "C:\Program Files (x86)\Dev-Cpp\MinGW64\bin\gcc.exe" bibsort.o -o bibsort.exe
+
+ For my tests on Windows 10, I compiled bibsort.c 2.5 with MinGW, and with
+ MS VisualStudio C/C++; I typed gcc ..., or cl ..., TO THE COMMAND PROMPT.
Do NOT change this file when you do not have a qualified text
editor - it contains control chars: '', '', '', '', | Are the
@@ -46,7 +46,7 @@
The C-compiled binary of this file is reading LaTeX .aux files.
It can NOT read the .bar files, which BibArts 1.x did use.
- BibArts 2.4 ONLY has an EMULATION for 1.3 texts: Keep copies of 1.x?
+ BibArts 2.5 ONLY has an EMULATION for 1.3 texts: Keep copies of 1.x?
*/
@@ -137,20 +137,17 @@ char *subCptr[MAXBACOLS][MAXLINES];
#define PROTECT "\\protect"
#define KTIT "\\ktit"
#define KTITCMD "\\ktit\t"
+#define KTITINARG "{\\ktit}"
#define ANNOUNCEKTIT "\\announcektit"
#define KURZ "\\kurz"
#define KURZCMD "\\outkurz\t"
-#define KTITINTRO "\t"
-#define KTITINTROCH '\t'
-#define KTITERRORCH '\?' /* Insert ?? for bad inner \ktit */
-#define KTITSHA "\t<"
-#define KTITMISS "\t|"
-#define KTITEMPTY "\t>"
+#define KTITMISS "\?\?" /* "\t|" before 2.5 */
+#define KTITEMPTY "\?\?" /* "\t>" before 2.5 */
#define KTITBEG "{"
#define KTITEND "}"
#define KTITOP '{'
#define KTITCL '}'
-int otherktiterr = -1;
+int ktiterr = -1; /* otherktiterr before 2.5 */
#define ACCEPTLINE 0
#define REJECTLINE 1
@@ -162,6 +159,23 @@ int otherktiterr = -1;
#define REDEF2LINE 7
int leval[MAXLINES];
+/* new errmsgs in 2.5: */
+#define NOINERR 0
+#define KTIT_SEV_ERR 1
+#define KTIT_EMP_BAS 2
+#define KTIT_EMP_ERR 3
+#define KTIT_MIS_BAS 5
+#define KTIT_MIS_ERR 6
+#define KTIT_DBL_BAS 11
+#define KTIT_DBL_ERR 12
+#define OARG_IRR_BAS 23
+#define OARG_IRR_ERR 24
+#define OARG_BRA_BAS 47
+#define OARG_BRA_ERR 48
+#define KTIT_OPE_BAS 95
+#define KTIT_OPE_ERR 96
+int inerr[MAXLINES]; /* new in 2.5 */
+
#define BARESTCOLS 5
#define PAGEFNTCOL 1
#define PAGECOL BARESTCOLS
@@ -296,7 +310,6 @@ int llstrlen(const char *s);
int do_only(char ret[], const char form[], const char in[]);
int userusesdq(int deepsort, int linec);
int texcmp(const char *s, const char *p, int dqcats, int dqcatp);
-int hasinnerentry(const char *p, const char *icmdlist[][2], const int num);
int subdoubleauthors(int found, int addtxt, char a[], int remi, int i, const char *q, const char *p, int qline, int pline, int fe, char xx[]);
/* ... end prototypes. */
@@ -422,7 +435,7 @@ void moremoreinfo(const char *myname)
printf("%%%% CODEPAGES\n");
printf("%%%% LaTeX today writes ASCIIs > 127 in your %s-file(s), if you use\n", AUX_SUFFIX);
printf("%%%% \\usepackage[utf8]{inputenc}. Then, you may start me using option\n");
- printf("%%%% -utf8 I expect characters as definded in utf8enc.dfu 2021/01/27 v1.2l,\n");
+ printf("%%%% -utf8 I expect characters as definded in utf8enc.dfu 2022/06/07 v1.3c,\n");
printf("%%%% except those, which execute \\cyr...- or \\CYR...-cmds. Those and\n");
printf("%%%% further utf8-characters will be reported to screen as unknown.\n");
printf("%%%% -t1 You set \\UseRawInputEncoding, and ASCIIs > 127, which you use in\n");
@@ -538,29 +551,6 @@ int nextbracket(const char *p, const char opench, const char closech)
}
-int unshielded_cmds_in_str(const char *p, const char *s)
-{
- int r = 0;
-
- while (*p != '\0')
- {
- if (*p == '{') p += nextbracket(p, '{', '}') - 1;
- else
- if (*p == '\\')
- {
- if (*(p+1) == '\\') ++p;
- else
- if (*(p+1) == '{') ++p;
- else
- if (isexactlcmd(p, s) == 0) ++r;
- }
- ++p;
- }
-
- return r;
-}
-
-
int artithmetic_overflow(const char *p, const char *cc)
{
printf("%%%%\n%%%%> Warning: Arithmetic overflow %s-eval \"%s\".\n", p, cc);
@@ -1611,6 +1601,10 @@ void swap(int i, int j)
leval[i] = leval[j];
leval[j] = temi;
+ temi = inerr[i]; /* new in 2.5 */
+ inerr[i] = inerr[j];
+ inerr[j] = temi;
+
l = 0;
while (l < MAXBACOLS)
{
@@ -1957,11 +1951,18 @@ void maxprint(int len, const char *s)
}
-void printktiterr(const char *s)
+void print_msg_line(int line)
{
- printf("%%%% ");
- maxprint(72, s);
- printf("\n");
+ if (line < 0)
+ {
+ intern_err(39);
+ }
+ else
+ {
+ printf(" in *inner v-cmd*:\n%%%% ");
+ maxprint(65, lineptr[line]);
+ printf("\n");
+ }
}
@@ -1999,36 +2000,44 @@ void printktiterr(const char *s)
#define AVNUM 13
-void get_ktit(char s[], const char *p, const char *com, const char op, const char cl, const int line)
+const char *starlist[][2] =
+{
+ { "\\vauthor\t", ":{}:{}" },
+ { "\\midvauthor\t", ":{}:{}" },
+ { NULL, NULL }};
+const char *exlist[] =
{
- int l, reallen, found = 0, r = 0, ll, llen, b = 0, shielded = 0;
- char buf[MAXLEN], fub[MAXLEN];
+ "\\kauthor",
+ "\\midkauthor",
+ NULL
+};
+#define VKNUM 2
+
+
+#define INNERLASTARGNO 5
+#define INNERSTARARGNO 4
+#define INNERLNARGNO 3
+#define INNERFNARGNO 2
+#define INNEROPARGNO 1
+
+int get_ktit(char oldktit[], const char *p, const char *com, const char op, const char cl, const int line, int found, const int argno)
+{
+ int l, reallen, r = 0, ll, llen, b = 0, oldfound = found, invauthorfound = 0;
+ char buf[MAXLEN], newktit[MAXLEN];
+
while (*p != '\0')
{
- if (*p == '{' && b > 0)
- {
- l = nextbracket(p, '{', '}');
- ll = 0;
- while (l-- > 0)
- {
- fub[ll++] = *p;
- buf[b++] = *p++;
- }
- fub[ll] = '\0';
- shielded += num_of_cmds_in_str(fub, com);
- }
- else
if (*p == '\\')
{
- if (*(p+1) == '\\' || *(p+1) == '{')
+ if (*(p+1) == '\\')
{
buf[b++] = *p++; buf[b++] = *p++;
}
else
if ((ll=innerentry(p, innerVcmd, AVNUM)) > -1)
{
- /* inneres v-cmd ueberspringen: dort darf weiteres \\ktit stehen */
+ /* inner-inner-v-cmd ueberspringen: dort darf weiteres \\ktit stehen */
llen = LaTeXcmp_endlen(p, innerVcmd[ll][0]);
p += llen;
llen = endofbracks(p, innerVcmd[ll][1]);
@@ -2048,9 +2057,9 @@ void get_ktit(char s[], const char *p, const char *com, const char op, const cha
r = 0; /* <= Copy only arg of last \\ktit */
if (l == 1)
{
- s[r++] = op;
- s[r++] = *p; buf[b++] = *p++;
- s[r++] = cl;
+ newktit[r++] = op;
+ newktit[r++] = *p; buf[b++] = *p++;
+ newktit[r++] = cl;
}
else
if (l == 2 && *p == '\\' && *(p+1) != '\0')
@@ -2058,15 +2067,15 @@ void get_ktit(char s[], const char *p, const char *com, const char op, const cha
if (isLaTeXcmdletter(*(p+1)) == 0);
else
while (isLaTeXcmdletter(*(p+l)) != 0) ++l;
- s[r++] = op;
- while (l-- > 0) { s[r++] = *p; buf[b++] = *p++; }
- s[r++] = cl;
+ newktit[r++] = op;
+ while (l-- > 0) { newktit[r++] = *p; buf[b++] = *p++; }
+ newktit[r++] = cl;
}
- else
+ else
{
while (l-- > 0)
{
- s[r++] = *p; buf[b++] = *p++;
+ newktit[r++] = *p; buf[b++] = *p++;
}
}
}
@@ -2076,14 +2085,41 @@ void get_ktit(char s[], const char *p, const char *com, const char op, const cha
else buf[b++] = *p++;
}
- s[r] = '\0';
+ newktit[r] = '\0';
buf[b] = '\0';
+ if (strcmp(newktit, KTITINARG) == 0)
+ {
+ printf("%%%%\n%%%%> Error: %s follows %s", KTIT, KTIT);
+ print_msg_line(line-1);
+ inerr[line-1] += KTIT_DBL_ERR; /* new in 2.5 */
+ }
- if (r == 0 || (s[0] == op && s[1] == cl) || (s[0] == op && s[1] == ' ' && s[2] == cl))
+ if (r > 2 && newktit[r-1] == cl && newktit[r-2] == ' ')
+ {
+ l = 3;
+ while (r-l > 1 && newktit[r-l] == ' ') ++l;
+ while (r-l > 1 && isLaTeXcmdletter(newktit[r-l]) != 0) ++l;
+ if (newktit[r-l] != '\\') print_not_tightly_err(newktit, cl);
+ }
+
+
+ if (newktit[0] == op)
+ {
+ l = 1; while (newktit[l] == ' ') ++l;
+ if (newktit[l] == cl) newktit[0] = '\0'; /* new in 2.5 */
+ }
+
+
+ if (found > oldfound)
+ {
+ strcpy(oldktit, newktit);
+ }
+
+
+ if (argno == INNERLASTARGNO && oldktit[0] == '\0')
{
if ( strlen(KTITBEG)
- + strlen(KTITSHA)
+ strlen(KTITMISS)
+ strlen(KTITEMPTY)
+ strlen(KTITEND)
@@ -2094,93 +2130,37 @@ void get_ktit(char s[], const char *p, const char *com, const char op, const cha
}
else
{
- strcpy(s, KTITBEG);
+ strcpy(oldktit, KTITBEG);
printf("%%%%\n%%%%> ");
- if (shielded > 0)
- {
- printf("Error: %d shadowed { %s } cmd(s), and ...\n%%%% ", shielded, KTIT);
- strcat(s, KTITSHA);
- }
if (found == 0)
{
printf("Error: Missing");
- strcat(s, KTITMISS);
+ strcat(oldktit, KTITMISS);
+ inerr[line-1] += KTIT_MIS_ERR; /* new in 2.5 */
}
else
{
printf("Warning: Empty");
- strcat(s, KTITEMPTY);
+ strcat(oldktit, KTITEMPTY);
+ inerr[line-1] += KTIT_EMP_ERR; /* new in 2.5 */
}
- printf(" %s in last arg of *inner v-cmd* (%s-entry %d):\n", KTIT, AUX_SUFFIX, line);
- printktiterr(buf);
- strcat(s, KTITEND);
+ printf(" %s", KTIT);
+ print_msg_line(line-1);
+ strcat(oldktit, KTITEND);
}
}
- if (found > 1)
- {
- printf("%%%%\n%%%%> Warning: %s used %d times in *inner v-cmd* (%s-entry %d):\n", KTIT, found, AUX_SUFFIX, line);
- printktiterr(buf);
- }
- if (r > 2 && s[r-1] == cl && s[r-2] == ' ')
+ if (argno == INNERLASTARGNO && found > 1)
{
- l = 3;
- while (r-l > 1 && s[r-l] == ' ') ++l;
- while (r-l > 1 && isLaTeXcmdletter(s[r-l]) != 0) ++l;
- if (s[r-l] != '\\') print_not_tightly_err(s, cl);
- }
-}
-
-
-int get_add_ktit(const char *p, const int maxktit, const int argno, const int line, const int screen)
-{
- int reallen, found = 0, ll, llen, b = 0;
- char buf[MAXLEN];
-
- while (*p != '\0')
- {
- if (*p == '\\')
- {
- if (*(p+1) == '\\')
- {
- buf[b++] = *p++; buf[b++] = *p++;
- }
- else
- if ((ll=innerentry(p, innerVcmd, AVNUM)) > -1)
- {
- /* inneres v-cmd ueberspringen: dort darf weiteres \\ktit stehen */
- llen = LaTeXcmp_endlen(p, innerVcmd[ll][0]);
- p += llen;
- llen = endofbracks(p, innerVcmd[ll][1]);
- p += llen;
- buf[b++] = '<'; buf[b++] = '#'; buf[b++] = '>';
- }
- else
- if ((reallen = LaTeXcmp_endlen(p, KTITCMD)) > 0)
- {
- while (reallen-- > 0) buf[b++] = *p++;
- ++found;
- }
- else buf[b++] = *p++;
- }
- else buf[b++] = *p++;
+ printf("%%%%\n%%%%> Warning: %s used %d times", KTIT, found);
+ print_msg_line(line-1);
+ inerr[line-1] += KTIT_SEV_ERR; /* new in 2.5 */
}
- buf[b] = '\0';
-
- if (screen == 1 && found > maxktit)
- {
- printf("%%%%\n%%%%> Warning: ");
- if (maxktit == 1)
- printf("%d %s too much", found-1, KTIT);
- else printf("%d misplaced %s", found, KTIT);
- printf(" in %s-file (entry %d, arg %d):\n", AUX_SUFFIX, line, argno);
- printktiterr(buf);
- }
return found;
}
@@ -2188,19 +2168,6 @@ int get_add_ktit(const char *p, const int maxktit, const int argno, const int li
void do_innerVstarArg(char ret[], const char *p)
{
- const char *starlist[][2] =
- {
- { "\\vauthor\t", ":{}:{}" },
- { "\\midvauthor\t", ":{}:{}" },
- { NULL, NULL }};
- const char *exlist[] =
- {
- "\\kauthor",
- "\\midkauthor",
- NULL
- };
- #define VKNUM 2
-
int r = 0, l, len, end;
@@ -2274,12 +2241,14 @@ void do_innerVstarArg(char ret[], const char *p)
}
+#define OPTARG_FMT_UNDEF '\0'
+
int dobracks(char buf[], const char *p, const char fmt[], const int line)
{
- int l = 0, len = 0, pos;
- char ibuf[MAXLEN], obuf[MAXLEN];
+ int l = 0, len = 0, pos, i, found = 0, oldfound, optfound = 0;
+ char ibuf[MAXLEN], obuf[MAXLEN], kbuf[MAXLEN], optarg_fmt = OPTARG_FMT_UNDEF;
- buf[0] = '\0';
+ buf[0] = '\0'; kbuf[0] = '\0';
while (1)
{
@@ -2294,26 +2263,81 @@ int dobracks(char buf[], const char *p, const char fmt[], const int line)
if ((pos=nextbracket(p, fmt[l+1], fmt[l+2])) > 1)
{
+ if (fmt[l] == '+')
+ {
+ /* [OptArg] */
+ oldfound = found;
+ mystrncpy(ibuf, p, pos);
+ found = get_ktit(kbuf, ibuf, KTITCMD, KTITOP, KTITCL, line, found, INNEROPARGNO);
+ optfound = found;
+
+ if ( *(p+1) == 'p'
+ || *(p+1) == 'm'
+ || *(p+1) == 'f'
+ || *(p+1) == ']'
+ )
+ {
+ i = 2; while (*(p+i) == ' ') ++i;
+ if (*(p+1) != ']' && oldfound == found && *(p+i) == '{')
+ {
+ optarg_fmt = *(p+1);
+ }
+ if (*(p+i) != '{' && *(p+i) != ']' && *(p+i) != '\0')
+ {
+ printf("%%%%\n%%%%> Error: ");
+ maxprint(14, ibuf);
+ printf(" without brackets like [%c{...}]", *(p+1));
+ print_msg_line(line-1);
+ inerr[line-1] += OARG_BRA_ERR; /* new in 2.5 */
+ }
+ }
+ else
+ {
+ printf("%%%%\n%%%%> Error: ");
+ maxprint(14, ibuf);
+ printf(" begins with \'%c\' instead f/m/p", *(p+1));
+ print_msg_line(line-1);
+ inerr[line-1] += OARG_IRR_ERR; /* new in 2.5 */
+ }
+ found -= optfound;
+ }
+ else
if (fmt[l] == '!')
{
+ /* {Rest} superior to fmt[l] == '*' */
mystrncpy(ibuf, p, pos);
- get_ktit(obuf, ibuf, KTITCMD, KTITOP, KTITCL, line);
- strcat(buf, obuf);
+ found = get_ktit(kbuf, ibuf, KTITCMD, KTITOP, KTITCL, line, found, INNERLASTARGNO);
+ strcat(buf, kbuf);
}
else
- if (fmt[l] == '*' || fmt[l] == '+') /* +: \\vautkor => \\kauthor */
+ if (fmt[l] == '*')
{
+ oldfound = found;
mystrncpy(ibuf, p, pos);
+ found = get_ktit(kbuf, ibuf, KTITCMD, KTITOP, KTITCL, line, found, INNERSTARARGNO);
do_innerVstarArg(obuf, ibuf);
- if (fmt[l] == '*')
strcat(buf, "*"); /* keep fmt[l] */
strcat(buf, obuf);
+ if (optfound == 0 && oldfound != found && optarg_fmt != OPTARG_FMT_UNDEF)
+ {
+ printf("%%%%\n%%%%> Error: [%c{..}] without %s overwrites %c{..%s..}", optarg_fmt, KTIT, fmt[l], KTIT);
+ print_msg_line(line-1);
+ inerr[line-1] += KTIT_OPE_ERR; /* new in 2.5 */
+ }
}
else
if (fmt[l] == DELNORMARG || fmt[l] == DELSTARARG)
- ;
+ {
+ mystrncpy(ibuf, p, pos);
+ found = get_ktit(kbuf, ibuf, KTITCMD, KTITOP, KTITCL, line, found, INNERLNARGNO);
+ }
else
- strncat(buf, p, pos);
+ {
+ /* FN */
+ mystrncpy(ibuf, p, pos);
+ found = get_ktit(kbuf, ibuf, KTITCMD, KTITOP, KTITCL, line, found, INNERFNARGNO);
+ strcat(buf, ibuf);
+ }
p += pos;
len += pos;
@@ -2429,9 +2453,10 @@ int do_only(char ret[], const char form[], const char in[])
"\\onlyhere\t",
"\\onlyvoll\t",
"\\onlyout\t",
+ KTITCMD,
NULL
};
-#define KHVONUM 4
+#define KHVONUM 5 /* KTITCMD added in 2.5 */
if (form[0] == '\0' || strlen(form) != KHVONUM)
@@ -2560,28 +2585,35 @@ void telldefault(int rest)
}
- const char *innerK_PER_ARQ_cmd[][2] = {
+ const char *inner_K_cmd[][2] = {
{ "\\printonlykli\t", ":[]:{}*{}:{}" },
{ "\\printonlykqu\t", ":[]:{}*{}:{}" },
{ "\\xprintonlykli\t", ":[]:{}*{}:{}" },
{ "\\xprintonlykqu\t", ":[]:{}*{}:{}" },
{ "\\printonlyper\t", ":{}" },
{ "\\printonlyarq\t", ":[]:{}:{}" },
+ { NULL, NULL }};
+#define INNERTITLES 4 /* 6 changed to 4 in 2.5 */
+
+ const char *inner_PER_ARQ_ABK_cmd[][2] = {
+ { "\\printonlyper\t", ":{}" },
+ { "\\printonlyarq\t", ":[]:{}:{}" },
{ "\\printonlydefabk\t", ":{}:{}" },
{ "\\printonlyabkdef\t", ":{}:{}" },
{ "\\printonlyabk\t", ":{}" },
{ NULL, NULL }};
-#define INNERTITLES 6
-#define XKPANUM 9
+#define INNERPAA 5 /* new in 2.5 */
-int do_inneronly(char ret[], const char in[], const char *vf, const char *kpf)
+int do_inneronly(char ret[], const char in[], const char *vf, const char *kf, const char *paaf)
{
char buf[MAXLEN];
int len;
- len = do_innercmd(buf, in, innerVcmd, XVNUM, vf); /* AVNUM unnecessary */
- len = do_innercmd(ret, buf, innerK_PER_ARQ_cmd, XKPANUM, kpf);
+ len = do_innercmd(buf, in, innerVcmd, XVNUM, vf); /* AVNUM unnecessary */
+ len = do_innercmd(ret, buf, inner_K_cmd, INNERTITLES, kf); /* 2.5: XKPANUM changed to INNERTITLES */
+ len = do_innercmd(buf, ret, inner_PER_ARQ_ABK_cmd, INNERPAA, paaf); /* new in 2.5 */
+ strcpy(ret, buf); /* new in 2.5 */
return len;
}
@@ -2613,27 +2645,48 @@ char *makeAR(char *p, int cols, int rest, char bb, char eb, const char *ident, i
if (ventry != IS_V && i == VCOLS-1)
{
/* alloc {li} or {qu} as 4th arg of k-cmds: */
- alen = mystrncpy(cbuf, p, len);
+ alen = mystrncpy(cbuf, p, len);
}
else
{
- mystrncpy(cbuf, p, len);
- alen = do_inneronly(ibuf, cbuf, "eell", "leel");
- alen = do_only(cbuf, formO, ibuf);
+ mystrncpy(cbuf, p, len);
+
+ /* new in 2.5 for k-cmds: "elleX": */
+ /* changed in 2.5: "eell" to "eeXXX" */
+
+ if (ventry == IS_V) /* MARKX */
+ {
+ alen = do_inneronly(ibuf, cbuf, "eeXXX", "elleX", "leelX");
+ }
+ else /* new in 2.5: ventry == NO_V || ventry == IS_Q */
+ {
+ alen = do_inneronly(ibuf, cbuf, "leelX", "elleX", "leelX");
+ }
+ /* moved in 2.5: do_only */
if (ventry == IS_V && i == VCOLS-1)
{
- alen = do_innerVcmd(ibuf, cbuf, innerVcmd, AVNUM, linec+1);
- strcpy(cbuf, ibuf);
- get_add_ktit(cbuf, 1, i+cols, linec+1, 1); /* Rest v-cmd: Ein \\ktit erlaubt */
+ alen = do_innerVcmd(cbuf, ibuf, innerVcmd, AVNUM, linec+1);
}
else
- {
- if(get_add_ktit(cbuf, 0, i+cols, linec+1, 1) > 0) /* sonst (auch andere Args v-cmd) */
- { /* get_add_ktit schreibt Fehler!! */
- if (otherktiterr < i+1) otherktiterr = i+1;
- }
+ {
+ strcpy(cbuf, ibuf);
+ }
+
+ /* get_add_ktit del in 2.5 */
+
+ if (ventry == IS_V) /* MARKX */
+ {
+ /* inner v-cmds are k-cmds here / new in 2.5: */
+ /* e == \ktit{x} => x */
+ alen = do_innercmd(ibuf, cbuf, inner_K_cmd, INNERTITLES, "XXlle");
+ }
+ else
+ {
+ strcpy(ibuf, cbuf);
}
+
+ alen = do_only(cbuf, formO, ibuf);
}
subAptr[i][linec] = fillsubAptr(cbuf, alen, eb);
@@ -2785,7 +2838,7 @@ void getbrackets(int linec, int alllines, const char *ident, int deep, int filen
i = 0; while (i < MAXBACOLS) subAptr[i++][linec] = mydefault;
i = 0; while (i < BAALLRCOLS) subRptr[i++][linec] = mydefault;
leval[linec] = ACCEPTLINE;
-
+ inerr[linec] = NOINERR; /* new in 2.5 */
p = lineptr[linec];
p = setptrtofirstbracket(p);
@@ -2898,44 +2951,91 @@ void getbrackets(int linec, int alllines, const char *ident, int deep, int filen
}
- /* without equivalent in MathMode: \\b \\c \\k \\d \\H \\t */
- /* 2.3: control-chars are doublettes (CTL+G or [Esc] added) */
+ /* Accents \b \c \k \d \H \t have no equivalent in MathMode. */
+ /* 2.3: control-characters are now doublettes (CTL+G or [Esc] added). */
+ /* 2.5: \t added behind \\. \\\' \\` \\^ \\= \\~ ( \.X = \. X ).
+ I sort \a. \a' \a` \a^ \a"X \a= \a~ and
+ \a{r} \a{b} \a{c} \a{k} \a{d} \a{H} \a{t} \a{u} \a{v}
+ as     X ... ;
+ other \protect\a X will EXECUTE/PRINT \X , BUT will be
+ SORTED as X (e.g. \protect\a{textdollar} as textdollar).
+ */
const char *weighttable[][2] = {
- { "\\.", "" }, /* CTL+A + Ctl+G */ /* MARK_POINT */
+ { "\\.\t", "" }, /* CTL+A + Ctl+G */ /* MARK_POINT */
+ { "\\@tabacckludge\t.\t", "" }, /* new in 2.5 */
+ { "\\a\t.\t", "" }, /* new in 2.5 */
{ "\\dot\t", "" },
- { "\\\'", "" }, /* CTL+B */
- { "\\@tabacckludge\t\'", "" }, /* new in 2.3 */
- { "\\a\t\'", "" }, /* new in 2.3 */
+ { "\\capitaldotaccent\t", "" }, /* new in 2.5 = \. */
+ { "\\\'\t", "" }, /* CTL+B */
+ { "\\@tabacckludge\t\'\t", "" }, /* new in 2.3, changed in 2.5 */
+ { "\\a\t\'\t", "" }, /* new in 2.3, changed in 2.5 */
{ "\\acute\t", "" },
- { "\\`", "" }, /* CTL+C */
- { "\\@tabacckludge\t`", "" }, /* new in 2.3 */
- { "\\a\t`", "" }, /* new in 2.3 */
+ { "\\capitalacute\t", "" }, /* new in 2.5 = \@tabacckludge' */
+ { "\\`\t", "" }, /* CTL+C */
+ { "\\@tabacckludge\t`\t", "" }, /* new in 2.3, changed in 2.5 */
+ { "\\a\t`\t", "" }, /* new in 2.3, changed in 2.5 */
{ "\\grave\t", "" },
- { "\\^", "" }, /* CTL+D */
+ { "\\capitalgrave\t", "" }, /* new in 2.5 = \@tabacckludge` */
+ { "\\^\t", "" }, /* CTL+D */
+ { "\\@tabacckludge\t^\t", "" }, /* new in 2.5 */
+ { "\\a\t^\t", "" }, /* new in 2.5 */
{ "\\hat\t", "" },
- { "\\ddot\t", "" }, /* CTL+E math-diaresis != umlaut */
- { "\\=", "" }, /* CTL+F */
- { "\\@tabacckludge\t=", "" }, /* new in 2.3 */
- { "\\a\t=", "" }, /* new in 2.3 */
+ { "\\capitalcircumflex\t", "" }, /* new in 2.5 = \^ */
+ { "\\ddot\t", "" }, /* CTL+E math-dieresis != umlaut */
+ { "\\=\t", "" }, /* CTL+F */
+ { "\\@tabacckludge\t=\t", "" }, /* new in 2.3, changed in 2.5 */
+ { "\\a\t=\t", "" }, /* new in 2.3, chamged in 2.5 */
{ "\\bar\t", "" },
+ { "\\capitalmacron\t", "" }, /* new in 2.5 = \@tabacckludge= */
{ "\\vec\t", "" }, /* CTL+F + [ESC] changed in 2.3 */
- { "\\~", " " }, /* CTL+K */ /* MARK_TILDE */
+ { "\\~\t", " " }, /* CTL+K */ /* MARK_TILDE */
+ { "\\@tabacckludge\t~\t", " " }, /* new in 2.5 */
+ { "\\a\t~\t", " " }, /* new in 2.5 */
{ "\\tilde\t", " " },
+ { "\\capitaltilde\t", " " }, /* new in 2.5 = \~ */
{ "\\aa\t", " a" }, /* CTL+L */ /* \\r a \\r A */
{ "\\AA\t", " A" },
{ "\\r\t", " " }, /* \\AA \\aa */
+ { "\\@tabacckludge\tr\t", " " }, /* new in 2.5 */
+ { "\\a\tr\t", " " }, /* new in 2.5 */
{ "\\mathring\t", " " },
+ { "\\capitalring\t", " " }, /* new in 2.5 = \r */
{ "\\b\t", "" }, /* CTL+N */
+ { "\\@tabacckludge\tb\t", "" }, /* new in 2.5 */
+ { "\\a\tb\t", "" }, /* new in 2.5 */
{ "\\c\t", "" }, /* CTL+O + CTL+G */
+ { "\\@tabacckludge\tc\t", "" }, /* new in 2.5 */
+ { "\\a\tc\t", "" }, /* new in 2.5 */
+ { "\\capitalcedilla\t", "" }, /* new in 2.5 = \c */
{ "\\textcommabelow\t", "" }, /* CTL+O + [ESC] new in 2.3 */
- { "\\k\t", "" }, /* CTL+P */ /* rechte Tilde */
+ { "\\textogonekcentered\t","" }, /* new in 2.5 = \k */
+ { "\\capitalogonek\t", "" }, /* new in 2.5 = \k */
+ { "\\k\t", "" }, /* CTL+P */ /* rechte Tilde */
+ { "\\@tabacckludge\tk\t", "" }, /* new in 2.5 */
+ { "\\a\tk\t", "" }, /* new in 2.5 */
{ "\\d\t", "" }, /* CTL+Q */
+ { "\\@tabacckludge\td\t", "" }, /* new in 2.5 */
+ { "\\a\td\t", "" }, /* new in 2.5 */
{ "\\H\t", "" }, /* CTL+R */
- { "\\t\t", "" }, /* CTL+S */
+ { "\\@tabacckludge\tH\t", "" }, /* new in 2.5 */
+ { "\\a\tH\t", "" }, /* new in 2.5 */
+ { "\\capitalhungarumlaut\t","" }, /* new in 2.5 = \H */
+ { "\\newtie\t", "" }, /* new in 2.5 = \t */
+ { "\\capitalnewtie\t", "" }, /* new in 2.5 = \t */
+ { "\\t\t", "" }, /* CTL+S */
+ { "\\@tabacckludge\tt\t", "" }, /* new in 2.5 */
+ { "\\a\tt\t", "" }, /* new in 2.5 */
+ { "\\capitaltie\t", "" }, /* new in 2.5 = \t */
{ "\\u\t", "" }, /* CTL+T */
+ { "\\@tabacckludge\tu\t", "" }, /* new in 2.5 */
+ { "\\a\tu\t", "" }, /* new in 2.5 */
{ "\\breve\t", "" },
+ { "\\capitalbreve\t", "" }, /* new in 2.5 = \u */
{ "\\v\t", "" }, /* changed in 2.3 */
+ { "\\@tabacckludge\tv\t", "" }, /* new in 2.5 */
+ { "\\a\tv\t", "" }, /* new in 2.5 */
{ "\\check\t", "" }, /* changed in 2.3 */
+ { "\\capitalcaron\t", "" }, /* new in 2.5 = \v */
{ "\\textblank\t", "b" }, /* CTL+U \ new in 2.3; */
{ "\\textbaht\t", "B" }, /* | new in 2.3 */
{ "\\textcent\t", "c" }, /* S | changed in 2.3 */
@@ -2968,42 +3068,45 @@ const char *weighttable[][2] = {
{ "\\teskip\t", " " }, /* new in 2.3 */
{ "\\pteskip\t", " " }, /* 1\te 000 NEW in 2.2 */
{ "\\te\t", ". " }, /* != 1000 NEW in 2.2 */
- { "\\textcelsius\t", "C" }, /* changed in 2.3 */
{ "\\textflorin\t", "f" }, /* changed in 2.3 */
{ "\\i\t", "i" },
{ "\\imath\t", "i" },
{ "\\j\t", "j" },
{ "\\jmath\t", "j" },
- { "\\ae\t", "ae" }, /* \ changed in 2.3 */
- { "\\AE\t", "Ae" }, /* | <=> \\Oe changed in 2.3 */
- { "\\BibArts\t", "BibArts" }, /* | changed in 2.3 */
- { "\\pBibArts\t", "BibArts" }, /* | changed in 2.3 */
- { "\\copyright\t", "C" }, /* | changed in 2.3 */
- { "\\textcopyright\t", "C" }, /* | changed in 2.3 */
- { "\\pcopyright\t", "C" }, /* CTL_X changed in 2.3 */
- { "\\textdong\t", "d" }, /* | new in 2.3 (not really \\b{\\dj}) */
- { "\\textestimated\t", "e" }, /* | new in 2.3 */
- { "\\ell\t", "l" }, /* | N changed in 2.3 */
- { "\\ij\t", "i" }, /* | E changed in 2.3 */
- { "\\IJ\t", "I" }, /* | A changed in 2.3 */
- { "\\Im\t", "I" }, /* | R <=> \\Re */
- { "\\LaTeX\t", "LaTeX" }, /* | changed in 2.3 */
- { "\\textnumero\t", "N" }, /* | L new in 2.3 */
- { "\\oe\t", "oe" }, /* | A changed in 2.3 */
- { "\\OE\t", "Oe" }, /* | T changed in 2.3 */
- { "\\textcircledP\t", "P" }, /* | I new in 2.3 */
- { "\\textregistered\t", "R" }, /* | N changed in 2.3 */
- { "\\Re\t", "R" }, /* | <=> \\Im */
- { "\\TeX\t", "TeX" }, /* / changed in 2.3 */
- { "\\texteuro\t", "E" }, /* \ */
- { "\\textlira\t", "L" }, /* | new in 2.3 */
- { "\\ng\t", "n" }, /* | changed in 2.3 */
- { "\\NG\t", "N" }, /* CTL_Y changed in 2.3 */
- { "\\textsterling\t", "P" }, /* | changed in 2.3 */
- { "\\ppounds\t", "P" }, /* | F changed in 2.3 */
- { "\\pounds\t", "P" }, /* | A changed in 2.3 */
- { "\\th\t", "th" }, /* | R */
- { "\\TH\t", "Th" }, /* / */
+ { "\\ae\t", "ae" }, /* \ changed in 2.3 */
+ { "\\AE\t", "Ae" }, /* | <=> \\Oe changed in 2.3 */
+ { "\\BibArts\t", "BibArts" }, /* | changed in 2.3 */
+ { "\\pBibArts\t", "BibArts" }, /* | changed in 2.3 */
+ { "\\textdong\t", "d" }, /* CTL_X new in 2.3 (not really \\b{\\dj}) */
+ { "\\textestimated\t", "e" }, /* | new in 2.3 */
+ { "\\ell\t", "l" }, /* | changed in 2.3 */
+ { "\\ij\t", "i" }, /* | changed in 2.3 */
+ { "\\IJ\t", "I" }, /* | changed in 2.3 */
+ { "\\Im\t", "I" }, /* | <=> \\Re */
+ { "\\LaTeX\t", "LaTeX" }, /* | changed in 2.3 */
+ { "\\textnumero\t", "N" }, /* | new in 2.3 */
+ { "\\oe\t", "oe" }, /* | changed in 2.3 */
+ { "\\OE\t", "Oe" }, /* | changed in 2.3 */
+ { "\\TeX\t", "TeX" }, /* / changed in 2.3 */
+ { "\\textdollaroldstyle\t","D" }, /* \ new in 2.5 */
+ { "\\texteuro\t", "E" }, /* | */
+ { "\\textlira\t", "L" }, /* | new in 2.3 */
+ { "\\ng\t", "n" }, /* | changed in 2.3 */
+ { "\\NG\t", "N" }, /* CTL_Y changed in 2.3 */
+ { "\\textsterling\t", "P" }, /* | changed in 2.3 */
+ { "\\ppounds\t", "P" }, /* | changed in 2.3 */
+ { "\\pounds\t", "P" }, /* | changed in 2.3 */
+ { "\\mathsterling\t", "P" }, /* | new in 2.5 */
+ { "\\th\t", "th" }, /* | */
+ { "\\Re\t", "R" }, /* | <=> \\Im */
+ { "\\TH\t", "Th" }, /* / */
+ { "\\copyright\t", "C" }, /* \ */
+ { "\\textcopyright\t", "C" }, /* | siehe */
+ { "\\pcopyright\t", "C" }, /* | \\ss */
+ { "\\textcircledP\t", "P" }, /* | = ss */
+ { "\\textregistered\t", "R" }, /* / */
+ { "\\textcelsius\t", "C" }, /* \ changed in 2.5 */
+ { "\\textdegree\t", "" }, /* / DEG{X} new in 2.5 */
{ "\\alpha\t", "a" }, /* 28 */
{ "\\Alpha\t", "A" }, /* bibarts.sty; new in 2.1 */
{ "\\beta\t", "b" },
@@ -3083,16 +3186,16 @@ const char *weighttable[][2] = {
{ "\\textnineoldstyle\t", "9" }, /* new in 2.3 */
{ "\\textzerooldstyle\t", "0" }, /* new in 2.3 */
{ NULL, NULL }};
-#define NLATEX 181
+#define NLATEX 224
const char *udtable[][2] = {
- { "\\\"a", "a" }, /* \ \"a */
- { "\\\"o", "o" }, /* | \"o */
- { "\\\"u", "u" }, /* CTL+E \"u */
- { "\\\"A", "A" }, /* | \"A */
- { "\\\"O", "O" }, /* | \"O */
- { "\\\"U", "U" }, /* | \"U */
+ { "\\\"\ta", "a" }, /* \ \"a */ /* changend in 2.5*/
+ { "\\\"\to", "o" }, /* | \"o */ /* changend in 2.5*/
+ { "\\\"\tu", "u" }, /* CTL+E \"u */ /* changend in 2.5*/
+ { "\\\"\tA", "A" }, /* | \"A */ /* changend in 2.5*/
+ { "\\\"\tO", "O" }, /* | \"O */ /* changend in 2.5*/
+ { "\\\"\tU", "U" }, /* | \"U */ /* changend in 2.5*/
{ "\\ss\t", "s" }, /* \ss */
{ "\\SS\t", "SS" }, /* \SS */
{ "\\sz\t", "s" }, /* \sz */ /* new in 2.1 */
@@ -3121,7 +3224,7 @@ const char *udtable[][2] = {
{ "\\OLDHYF\t", "F" }, /* [F-] */ /* / */
{ "\\hy\t", "-" }, /* MINUS \hy */ /* new in 2.2 */
{ "\\fhy\t", "-" }, /* MINUS \fhy*/ /* new in 2.2 */
- { "\\\"", "" }, /* / \" */
+ { "\\\"\t", "" }, /* / \" */ /* changend in 2.5*/
{ "\\3", "s" }, /* \3 */
{ "\\ck\t", "ck" }, /* [c-k] */ /* new in 2.2 */
{ "\\CK\t", "CK" }, /* [C-K] */ /* new in 2.2 */
@@ -3131,46 +3234,68 @@ const char *udtable[][2] = {
{ "\\NEWHYSS\t", "SS" }, /* [-SS] */ /* | 2.2 */
{ "\\hyss\t", "s" }, /* [s-s/-ss] */ /* | */
{ "\\HYSS\t", "SS" }, /* [S-S/-SS] */ /* / */
+ { "\\capitaldieresis\ta", "a" }, /* new in 2.5 = \"a */
+ { "\\@tabacckludge\t\"\ta","a" }, /* new in 2.5 = \"a */
+ { "\\a\t\"\ta", "a" }, /* new in 2.5 = \"a */
+ { "\\capitaldieresis\to", "o" }, /* new in 2.5 = \"o */
+ { "\\@tabacckludge\t\"\to","o" }, /* new in 2.5 = \"o */
+ { "\\a\t\"\to", "o" }, /* new in 2.5 = \"o */
+ { "\\capitaldieresis\tu", "u" }, /* new in 2.5 = \"u */
+ { "\\@tabacckludge\t\"\tu","u" }, /* new in 2.5 = \"u */
+ { "\\a\t\"\tu", "u" }, /* new in 2.5 = \"u */
+ { "\\capitaldieresis\tA", "A" }, /* new in 2.5 = \"A */
+ { "\\@tabacckludge\t\"\tA","A" }, /* new in 2.5 = \"A */
+ { "\\a\t\"\tA", "A" }, /* new in 2.5 = \"A */
+ { "\\capitaldieresis\tO", "O" }, /* new in 2.5 = \"O */
+ { "\\@tabacckludge\t\"\tO","O" }, /* new in 2.5 = \"O */
+ { "\\a\t\"\tO", "O" }, /* new in 2.5 = \"O */
+ { "\\capitaldieresis\tU", "U" }, /* new in 2.5 = \"U */
+ { "\\@tabacckludge\t\"\tU","U" }, /* new in 2.5 = \"U */
+ { "\\a\t\"\tU", "U" }, /* new in 2.5 = \"U */
+ { "\\capitaldieresis\t", "" }, /* new in 2.5 = \" */
+ { "\\@tabacckludge\t\"\t", "" }, /* new in 2.5 = \" */
+ { "\\a\t\"\t", "" }, /* new in 2.5 = \" */
{ NULL, NULL }};
-#define NUMTEX 44
+#define NUMTEX 65
+ /* \" changed to \"\t in 2.5 */
const char *gstylist[][2] = {
- { "\"a", NULL }, /* \ "a */
- { "\"o", NULL }, /* | "o */
- { "\"u", NULL }, /* CTL+E "u */
- { "\"A", NULL }, /* | "A */
- { "\"O", NULL }, /* | "O */
- { "\"U", NULL }, /* | "U */
- { "\"s", NULL }, /* "s */
- { "\"S", NULL }, /* "S */
- { "\"z", NULL }, /* "z */ /* new in 2.1 */
- { "\"Z", NULL }, /* "Z */ /* new in 2.1 */
- { "\"<", NULL }, /* "` */ /* new in 2.2 */
- { "\">", NULL }, /* "' */ /* new in 2.2 */
- { "\"`", NULL }, /* "` */ /* new in 2.2 */
- { "\"\'", NULL }, /* "' */ /* new in 2.2 */
- { "\"|", NULL }, /* "| */ /* new in 2.2 */
- { "\"-", NULL }, /* "- */ /* new in 2.2 */
- { "\"c", NULL }, /* [c-] */ /* \ */
- { "\"C", NULL }, /* [C-] */ /* | */
- { "\"l", NULL }, /* [l-] */ /* | */
- { "\"L", NULL }, /* [L-] */ /* | */
- { "\"m", NULL }, /* [m-] */ /* | */
- { "\"M", NULL }, /* [M-] */ /* | */
- { "\"n", NULL }, /* [n-] */ /* | new */
- { "\"N", NULL }, /* [N-] */ /* | in */
- { "\"p", NULL }, /* [p-] */ /* | 2.2 */
- { "\"P", NULL }, /* [P-] */ /* | */
- { "\"r", NULL }, /* [r-] */ /* | */
- { "\"R", NULL }, /* [R-] */ /* | */
- { "\"t", NULL }, /* [t-] */ /* | */
- { "\"T", NULL }, /* [T-] */ /* | */
- { "\"f", NULL }, /* [f-] */ /* | */
- { "\"F", NULL }, /* [F-] */ /* | */
- { "\"=", NULL }, /* MINUS "= */ /* new in 2.2 */
- { "\"~", NULL }, /* MINUS "~ */ /* new in 2.2 */
- { "\"", NULL }, /* / " */
+ { "\"\ta", NULL }, /* \ "a */
+ { "\"\to", NULL }, /* | "o */
+ { "\"\tu", NULL }, /* CTL+E "u */
+ { "\"\tA", NULL }, /* | "A */
+ { "\"\tO", NULL }, /* | "O */
+ { "\"\tU", NULL }, /* | "U */
+ { "\"\ts", NULL }, /* "s */
+ { "\"\tS", NULL }, /* "S */
+ { "\"\tz", NULL }, /* "z */ /* new in 2.1 */
+ { "\"\tZ", NULL }, /* "Z */ /* new in 2.1 */
+ { "\"\t<", NULL }, /* "` */ /* new in 2.2 */
+ { "\"\t>", NULL }, /* "' */ /* new in 2.2 */
+ { "\"\t`", NULL }, /* "` */ /* new in 2.2 */
+ { "\"\t\'", NULL }, /* "' */ /* new in 2.2 */
+ { "\"\t|", NULL }, /* "| */ /* new in 2.2 */
+ { "\"\t-", NULL }, /* "- */ /* new in 2.2 */
+ { "\"\tc", NULL }, /* [c-] */ /* \ */
+ { "\"\tC", NULL }, /* [C-] */ /* | */
+ { "\"\tl", NULL }, /* [l-] */ /* | */
+ { "\"\tL", NULL }, /* [L-] */ /* | */
+ { "\"\tm", NULL }, /* [m-] */ /* | */
+ { "\"\tM", NULL }, /* [M-] */ /* | */
+ { "\"\tn", NULL }, /* [n-] */ /* | new */
+ { "\"\tN", NULL }, /* [N-] */ /* | in */
+ { "\"\tp", NULL }, /* [p-] */ /* | 2.2 */
+ { "\"\tP", NULL }, /* [P-] */ /* | */
+ { "\"\tr", NULL }, /* [r-] */ /* | */
+ { "\"\tR", NULL }, /* [R-] */ /* | */
+ { "\"\tt", NULL }, /* [t-] */ /* | */
+ { "\"\tT", NULL }, /* [T-] */ /* | */
+ { "\"\tf", NULL }, /* [f-] */ /* | */
+ { "\"\tF", NULL }, /* [F-] */ /* | */
+ { "\"\t=", NULL }, /* MINUS "= */ /* new in 2.2 */
+ { "\"\t~", NULL }, /* MINUS "~ */ /* new in 2.2 */
+ { "\"\t", NULL }, /* / " */
{ NULL, NULL }};
#define NUMGER 35
@@ -3220,6 +3345,27 @@ const char *gweight[][2] = {
{ NULL, "SS" }, /* [-SS] */ /* | 2.2 */
{ NULL, "ss" }, /* [s-s/-ss] */ /* | */
{ NULL, "SS" }, /* [S-S/-SS] */ /* / */
+ { NULL, "ae" }, /* new in 2.5 = \capitaldieresis a */
+ { NULL, "ae" }, /* new in 2.5 = \@tabacckludge " a */
+ { NULL, "ae" }, /* new in 2.5 = \a " a */
+ { NULL, "oe" }, /* new in 2.5 = \capitaldieresis o */
+ { NULL, "oe" }, /* new in 2.5 = \@tabacckludge " o */
+ { NULL, "oe" }, /* new in 2.5 = \a " o */
+ { NULL, "ue" }, /* new in 2.5 = \capitaldieresis u */
+ { NULL, "ue" }, /* new in 2.5 = \@tabacckludge " u */
+ { NULL, "ue" }, /* new in 2.5 = \a " u */
+ { NULL, "Ae" }, /* new in 2.5 = \capitaldieresis A */
+ { NULL, "Ae" }, /* new in 2.5 = \@tabacckludge " A */
+ { NULL, "Ae" }, /* new in 2.5 = \a " A */
+ { NULL, "Oe" }, /* new in 2.5 = \capitaldieresis O */
+ { NULL, "Oe" }, /* new in 2.5 = \@tabacckludge " O */
+ { NULL, "Oe" }, /* new in 2.5 = \a " O */
+ { NULL, "Ue" }, /* new in 2.5 = \capitaldieresis U */
+ { NULL, "Ue" }, /* new in 2.5 = \@tabacckludge " U */
+ { NULL, "Ue" }, /* new in 2.5 = \a " U */
+ { NULL, "" }, /* new in 2.5 = \capitaldieresis */
+ { NULL, "" }, /* new in 2.5 = \@tabacckludge " */
+ { NULL, "" }, /* new in 2.5 = \a " */
{ NULL, NULL }};
@@ -3268,37 +3414,100 @@ const char *mweight[][2] = {
{ NULL, "SS" }, /* [-SS] */ /* | 2.2 */
{ NULL, "ss" }, /* [s-s/-ss] */ /* | */
{ NULL, "SS" }, /* [S-S/-SS] */ /* / */
+ { NULL, "a" }, /* new in 2.5 = \capitaldieresis a */
+ { NULL, "a" }, /* new in 2.5 = \@tabacckludge " a */
+ { NULL, "a" }, /* new in 2.5 = \a " a */
+ { NULL, "o" }, /* new in 2.5 = \capitaldieresis o */
+ { NULL, "o" }, /* new in 2.5 = \@tabacckludge " o */
+ { NULL, "o" }, /* new in 2.5 = \a " o */
+ { NULL, "u" }, /* new in 2.5 = \capitaldieresis u */
+ { NULL, "u" }, /* new in 2.5 = \@tabacckludge " u */
+ { NULL, "u" }, /* new in 2.5 = \a " u */
+ { NULL, "A" }, /* new in 2.5 = \capitaldieresis A */
+ { NULL, "A" }, /* new in 2.5 = \@tabacckludge " A */
+ { NULL, "A" }, /* new in 2.5 = \a " A */
+ { NULL, "O" }, /* new in 2.5 = \capitaldieresis O */
+ { NULL, "O" }, /* new in 2.5 = \@tabacckludge " O */
+ { NULL, "O" }, /* new in 2.5 = \a " O */
+ { NULL, "U" }, /* new in 2.5 = \capitaldieresis U */
+ { NULL, "U" }, /* new in 2.5 = \@tabacckludge " U */
+ { NULL, "U" }, /* new in 2.5 = \a " U */
+ { NULL, "" }, /* new in 2.5 = \capitaldieresis */
+ { NULL, "" }, /* new in 2.5 = \@tabacckludge " */
+ { NULL, "" }, /* new in 2.5 = \a " */
{ NULL, NULL }};
+int lenofMATCHaftertab(const char *t, const char *line)
+{
+ int r = 0;
+
+ if (*t == '\t')
+ {
+ if (*(t+1) != '\0')
+ {
+ if (*(t+2) == '\0' || *(t+2) == '\t')
+ {
+ if (*(t+1) == *line) r = 1;
+ else
+ if (*line == '{' && *(t+1) == *(line+1) && *(line+2) == '}') r = 3;
+ }
+ else intern_err(34);
+ }
+ }
+
+ if (r > 0 && *(t+2) == '\t')
+ {
+ while (*(line+r) == ' ') ++r;
+
+ if(*(t+3) != '\0')
+ {
+ if (*(t+4) == '\0')
+ {
+ if (*(t+3) == *(line+r)) r += 1;
+ else
+ if (*(line+r) == '{' && *(t+3) == *(line+r+1) && *(line+r+2) == '}') r += 3;
+ else
+ r = 0;
+ }
+ else intern_err(37);
+ }
+ }
+
+ return r;
+}
+
int texlistnum(const char *p, int n, const char *list[][2])
{
const char *entry, *line;
- int i = 0;
+ int i = 0, len, atlen;
while (i < n)
{
entry = list[i][0];
- line = p;
+ line = p; len = 0;
+
+
while (*line == *entry && *entry != '\0' && *entry != '\t')
{
- ++line; ++entry;
+ ++line; ++entry; ++len;
}
+
- if (*entry == '\0' || (*entry == '\t' && *(entry+1) == '\0' && isLaTeXcmdletter(*line) == 0))
- {
+ if ( *entry == '\0'
+ || (*entry == '\t' && *(entry+1) == '\0' && ((len == 2 && *p == '\\' && isLaTeXcmdletter(*(p+1)) == 0) || isLaTeXcmdletter(*line) == 0))
+ )
break;
- }
- else /* new in 2.3 */
- if (*entry == '\t' && *(entry+1) != '\0')
+
+
+ if (*entry == '\t' && ((len == 1 && *p == '\"') || (len == 2 && *p == '\\' && isLaTeXcmdletter(*(p+1)) == 0) || isLaTeXcmdletter(*line) == 0))
{
- if (*(entry+2) == '\0')
- {
- while (*line == ' ') ++line;
- if (*(entry+1) == *line) break;
- }
- else intern_err(34);
+ while (*line == ' ') ++line; /* now, isLaTeXcmdletter(*line) != 0 */
+
+ /* new in 2.3, changed in 2.5 */
+ if ((atlen=lenofMATCHaftertab(entry, line)) > 0) /* atlen=1,3 !! */
+ break;
}
++i;
@@ -3321,7 +3530,7 @@ int llstrlen(const char *s)
{
int len = 0;
- while (*s != '\0' && *s != '\t') { ++s; ++len; }
+ while (*s != '\0' && *s != '\t') { ++s; ++len; }
return len;
}
@@ -3329,7 +3538,23 @@ int llstrlen(const char *s)
char *overspacesafterlettercmd(int len, const char *q, char *p)
{
- if (len > 0 && isLaTeXcmdletter(*(q+1)) != 0) while (*p == ' ') ++p;
+ int atlen;
+
+ /* if (isLaTeXcmdletter(*(q+1)) != 0) deleted in 2.5 !! */
+
+ if (len > 0)
+ {
+ if (*(q+len) == '\t' && ((len == 1 && *q == '\"') || (len == 2 && *q == '\\' && isLaTeXcmdletter(*(q+1)) == 0) || isLaTeXcmdletter(*p) == 0))
+ {
+ while (*p == ' ') ++p; /* now, isLaTeXcmdletter(*p) != 0 */
+
+ /* new in 2.5 because of \capitaldieresis{x} */
+ if((atlen=lenofMATCHaftertab(q+len, p)) > 0)
+ {
+ p += atlen;
+ }
+ }
+ }
return p;
}
@@ -3431,9 +3656,10 @@ char *austauschen(char in[], char *p, int dqcat)
{
if (*(p+1) == '\"') p += 2; /* "" ist nicht in gstylist */
else /* "~ muss in gstylist sein */
- if ((i=texlistnum(p, NUMGER, gstylist)) > -1)
- { p += llstrlen( gstylist[i][0]);
- pos = insertweight(in, i, pos, MAXLEN-1);
+ if ( (i=texlistnum(p, NUMGER, gstylist)) > -1)
+ { p += (len=llstrlen( gstylist[i][0]));
+ pos = insertweight(in, i, pos, MAXLEN-1);
+ p = overspacesafterlettercmd(len, gstylist[i][0], p); /* new in 2.5 */
}
else
{
@@ -3686,7 +3912,7 @@ static char *ohninetyfour[] = {
"{\\textasciidieresis}",/* 194 168 \\\"{} */
"{\\textcopyright}", /* 194 169 */
"{\\textordfeminine}", /* 194 170 */
- "{\\guillemotleft}", /* 194 171 {\\flqq} */
+ "{\\guillemetleft}", /* 194 171 {\\flqq}; before 2.5 / v1.3c: {\\guillemotleft} */
"{\\textlnot}", /* 194 172 NOT SIGN */
"{\\-}", /* 194 173 */
"{\\textregistered}", /* 194 174 */
@@ -3702,7 +3928,7 @@ static char *ohninetyfour[] = {
"{\\textasciicedilla}", /* 194 184 {\\c\\ } (\text... yet undefined) */
"{\\textonesuperior}", /* 194 185 ^{1} */
"{\\textordmasculine}", /* 194 186 */
- "{\\guillemotright}", /* 194 187 {\\frqq} */
+ "{\\guillemetright}", /* 194 187 {\\frqq}; before 2.5 / v1.3c: {\\guillemotright} */
"{\\textonequarter}", /* 194 188 \\frac{1}{4} */
"{\\textonehalf}", /* 194 189 \\frac{1}{2} */
"{\\textthreequarters}",/* 194 190 \\frac{3}{4} */
@@ -3835,8 +4061,8 @@ static char *ohninetysix[] = {
"\\c{g}", /* 196 163 */
"\\^H", /* 196 164 */
"\\^h", /* 196 165 */
- "", /* 196 166 H-quer (not v1.2l) */
- "", /* 196 167 {\\hbar} [?] (not v1.2l) */
+ "", /* 196 166 H-quer (not v1.3c) */
+ "", /* 196 167 {\\hbar} [?] (not v1.3c) */
"\\~I", /* 196 168 */
"\\~{\\i}", /* 196 169 */
"\\=I", /* 196 170 */
@@ -3853,14 +4079,14 @@ static char *ohninetysix[] = {
"\\^{\\j}", /* 196 181 */
"\\c{K}", /* 196 182 */
"\\c{k}", /* 196 183 */
- "", /* 196 184 kra (not v1.2l) */
+ "", /* 196 184 kra (not v1.3c) */
"\\\'L", /* 196 185 */
"\\\'l", /* 196 186 */
"\\c{L}", /* 196 187 */
"\\c{l}", /* 196 188 */
"\\v{L}", /* 196 189 */
"\\v{l}", /* 196 190 */
- "", /* 196 191 L* (not v1.2l) */
+ "", /* 196 191 L* (not v1.3c) */
NULL };
#define OHNINETYSIX 196
@@ -3874,7 +4100,7 @@ char *get_ohninetysix(unsigned char c)
static char *ohninetyseven[] = {
- "", /* 197 128 l* (not v1.2l) */
+ "", /* 197 128 l* (not v1.3c) */
"{\\L}", /* 197 129 */
"{\\l}", /* 197 130 */
"\\\'N", /* 197 131 */
@@ -3883,7 +4109,7 @@ static char *ohninetyseven[] = {
"\\c{n}", /* 197 134 */
"\\v{N}", /* 197 135 */
"\\v{n}", /* 197 136 */
- "", /* 197 137 'n (not v1.2l) */
+ "", /* 197 137 'n (not v1.3c) */
"{\\NG}", /* 197 138 */
"{\\ng}", /* 197 139 */
"\\=O", /* 197 140 */
@@ -3912,8 +4138,8 @@ static char *ohninetyseven[] = {
"\\c{t}", /* 197 163 */
"\\v{T}", /* 197 164 */
"\\v{t}", /* 197 165 */
- "", /* 197 166 T-quer (not v1.2l) */
- "", /* 197 167 t-quer (not v1.2l) */
+ "", /* 197 166 T-quer (not v1.3c) */
+ "", /* 197 167 t-quer (not v1.3c) */
"\\~U", /* 197 168 */
"\\~u", /* 197 169 */
"\\=U", /* 197 170 */
@@ -3937,7 +4163,7 @@ static char *ohninetyseven[] = {
"\\.z", /* 197 188 */
"\\v{Z}", /* 197 189 */
"\\v{z}", /* 197 190 */
- "", /* 197 191 Lang-s (not v1.2l) */
+ "", /* 197 191 Lang-s (not v1.3c) */
NULL };
#define OHNINETYSEVEN 197
@@ -3951,19 +4177,19 @@ char *get_ohninetyseven(unsigned char c)
static char *ohninetynine[] = {
- "", /* 199 128 dental click (not v1.2l) */
- "", /* 199 129 lateral click (not v1.2l) */
- "", /* 199 130 alveolar click (not v1.2l) */
- "", /* 199 131 retroflex click (not v1.2l) */
- "", /* 199 132 D\\v{Z} (not v1.2l) */
- "", /* 199 133 D\\v{z} (not v1.2l) */
- "", /* 199 134 d\\v{z} (not v1.2l) */
- "", /* 199 135 LJ (not v1.2l) */
- "", /* 199 136 Lj (not v1.2l) */
- "", /* 199 137 lj (not v1.2l) */
- "", /* 199 138 NJ (not v1.2l) */
- "", /* 199 139 Nj (not v1.2l) */
- "", /* 199 140 nj (not v1.2l) */
+ "", /* 199 128 dental click (not v1.3c) */
+ "", /* 199 129 lateral click (not v1.3c) */
+ "", /* 199 130 alveolar click (not v1.3c) */
+ "", /* 199 131 retroflex click (not v1.3c) */
+ "D\\v{Z}", /* 199 132 new in 2.5 / v1.3c */
+ "D\\v{z}", /* 199 133 new in 2.5 / v1.3c */
+ "d\\v{z}", /* 199 134 new in 2.5 / v1.3c */
+ "LJ", /* 199 135 new in 2.5 / v1.3c */
+ "Lj", /* 199 136 new in 2.5 / v1.3c */
+ "lj", /* 199 137 new in 2.5 / v1.3c */
+ "NJ", /* 199 138 new in 2.5 / v1.3c */
+ "Nj", /* 199 139 new in 2.5 / v1.3c */
+ "nj", /* 199 140 new in 2.5 / v1.3c */
"\\v{A}", /* 199 141 */
"\\v{a}", /* 199 142 */
"\\v{I}", /* 199 143 */
@@ -3972,49 +4198,49 @@ static char *ohninetynine[] = {
"\\v{o}", /* 199 146 */
"\\v{U}", /* 199 147 */
"\\v{u}", /* 199 148 */
- "", /* 199 149 \\={\\\"U} (not v1.2l) */
- "", /* 199 150 \\={\\\"u} (not v1.2l) */
- "", /* 199 151 \\\'{\\\"U} (not v1.2l) */
- "", /* 199 152 \\\'{\\\"u} (not v1.2l) */
- "", /* 199 153 \\v{\\\"U} (not v1.2l) */
- "", /* 199 154 \\v{\\\"u} (not v1.2l) */
- "", /* 199 155 \\`{\\\"U} (not v1.2l) */
- "", /* 199 156 \\`{\\\"u} (not v1.2l) */
- "", /* 199 157 turned e (not v1.2l) */
- "", /* 199 158 \\={\\\"A} (not v1.2l) */
- "", /* 199 159 \\={\\\"a} (not v1.2l) */
- "", /* 199 160 \\={\\.A} (not v1.2l) */
- "", /* 199 161 \\={\\.a} (not v1.2l) */
+ "", /* 199 149 \\={\\\"U} (not v1.3c) */
+ "", /* 199 150 \\={\\\"u} (not v1.3c) */
+ "", /* 199 151 \\\'{\\\"U} (not v1.3c) */
+ "", /* 199 152 \\\'{\\\"u} (not v1.3c) */
+ "", /* 199 153 \\v{\\\"U} (not v1.3c) */
+ "", /* 199 154 \\v{\\\"u} (not v1.3c) */
+ "", /* 199 155 \\`{\\\"U} (not v1.3c) */
+ "", /* 199 156 \\`{\\\"u} (not v1.3c) */
+ "", /* 199 157 turned e (not v1.3c) */
+ "", /* 199 158 \\={\\\"A} (not v1.3c) */
+ "", /* 199 159 \\={\\\"a} (not v1.3c) */
+ "", /* 199 160 \\={\\.A} (not v1.3c) */
+ "", /* 199 161 \\={\\.a} (not v1.3c) */
"\\={\\AE}", /* 199 162 */
"\\={\\ae}", /* 199 163 */
- "", /* 199 164 G-quer (not v1.2l) */
- "", /* 199 165 g-quer (not v1.2l) */
+ "", /* 199 164 G-quer (not v1.3c) */
+ "", /* 199 165 g-quer (not v1.3c) */
"\\v{G}", /* 199 166 */
"\\v{g}", /* 199 167 */
"\\v{K}", /* 199 168 */
"\\v{k}", /* 199 169 */
"\\k{O}", /* 199 170 */
"\\k{o}", /* 199 171 */
- "", /* 199 172 \\k{\\=O} (not v1.2l) */
- "", /* 199 173 \\k{\\=o} (not v1.2l) */
- "", /* 199 174 EZH with \\v (not v1.2l) */
- "", /* 199 175 ezh with \\v (not v1.2l) */
+ "", /* 199 172 \\k{\\=O} (not v1.3c) */
+ "", /* 199 173 \\k{\\=o} (not v1.3c) */
+ "", /* 199 174 EZH with \\v (not v1.3c) */
+ "", /* 199 175 ezh with \\v (not v1.3c) */
"\\v{\\j}", /* 199 176 */
- "", /* 199 177 DZ (not v1.2l) */
- "", /* 199 178 Dz (not v1.2l) */
- "", /* 199 179 dz (not v1.2l) */
+ "", /* 199 177 DZ (not v1.3c) */
+ "", /* 199 178 Dz (not v1.3c) */
+ "", /* 199 179 dz (not v1.3c) */
"\\\'G", /* 199 180 */
"\\\'g", /* 199 181 */
- "", /* 199 182 HWAIR (not v1.2l) */
- "", /* 199 183 WYNN (not v1.2l) */
- "", /* 199 184 \\`N (not v1.2l) */
- "", /* 199 185 \\`n (not v1.2l) */
- "", /* 199 186 \\\'{\k{A}} (not v1.2l) */
- "", /* 199 187 \\\'{\k{a}} (not v1.2l) */
- "", /* 199 188 \\\'{\\AE} (not v1.2l) */
- "", /* 199 189 \\\'{\\ae} (not v1.2l) */
- "", /* 199 190 \\\'{\\O} (not v1.2l) */
- "", /* 199 191 \\\'{\\o} (not v1.2l) */
+ "", /* 199 182 HWAIR (not v1.3c) */
+ "", /* 199 183 WYNN (not v1.3c) */
+ "", /* 199 184 \\`N (not v1.3c) */
+ "", /* 199 185 \\`n (not v1.3c) */
+ "", /* 199 186 \\\'{\k{A}} (not v1.3c) */
+ "", /* 199 187 \\\'{\k{a}} (not v1.3c) */
+ "", /* 199 188 \\\'{\\AE} (not v1.3c) */
+ "", /* 199 189 \\\'{\\ae} (not v1.3c) */
+ "", /* 199 190 \\\'{\\O} (not v1.3c) */
+ "", /* 199 191 \\\'{\\o} (not v1.3c) */
NULL };
#define OHNINETYNINE 199
@@ -4028,70 +4254,70 @@ char *get_ohninetynine(unsigned char c)
static char *thnullnull[] = {
- "", /* 200 128 A with double grave (not v1.2l) */
- "", /* 200 129 a with double grave (not v1.2l) */
- "", /* 200 130 A with inverted breve (not v1.2l) */
- "", /* 200 131 a with inverted breve (not v1.2l) */
- "", /* 200 132 E with double grave (not v1.2l) */
- "", /* 200 133 e with double grave (not v1.2l) */
- "", /* 200 134 E with inverted breve (not v1.2l) */
- "", /* 200 135 e with inverted breve (not v1.2l) */
- "", /* 200 136 I with double grave (not v1.2l) */
- "", /* 200 137 i with double grave (not v1.2l) */
- "", /* 200 138 I with inverted breve (not v1.2l) */
- "", /* 200 139 i with inverted breve (not v1.2l) */
- "", /* 200 140 O with double grave (not v1.2l) */
- "", /* 200 141 o with double grave (not v1.2l) */
- "", /* 200 142 O with inverted breve (not v1.2l) */
- "", /* 200 143 o with inverted breve (not v1.2l) */
- "", /* 200 144 R with double grave (not v1.2l) */
- "", /* 200 145 r with double grave (not v1.2l) */
- "", /* 200 146 R with inverted breve (not v1.2l) */
- "", /* 200 147 r with inverted breve (not v1.2l) */
- "", /* 200 148 U with double grave (not v1.2l) */
- "", /* 200 149 u with double grave (not v1.2l) */
- "", /* 200 150 U with inverted breve (not v1.2l) */
- "", /* 200 151 u with inverted breve (not v1.2l) */
+ "", /* 200 128 A with double grave (not v1.3c) */
+ "", /* 200 129 a with double grave (not v1.3c) */
+ "", /* 200 130 A with inverted breve (not v1.3c) */
+ "", /* 200 131 a with inverted breve (not v1.3c) */
+ "", /* 200 132 E with double grave (not v1.3c) */
+ "", /* 200 133 e with double grave (not v1.3c) */
+ "", /* 200 134 E with inverted breve (not v1.3c) */
+ "", /* 200 135 e with inverted breve (not v1.3c) */
+ "", /* 200 136 I with double grave (not v1.3c) */
+ "", /* 200 137 i with double grave (not v1.3c) */
+ "", /* 200 138 I with inverted breve (not v1.3c) */
+ "", /* 200 139 i with inverted breve (not v1.3c) */
+ "", /* 200 140 O with double grave (not v1.3c) */
+ "", /* 200 141 o with double grave (not v1.3c) */
+ "", /* 200 142 O with inverted breve (not v1.3c) */
+ "", /* 200 143 o with inverted breve (not v1.3c) */
+ "", /* 200 144 R with double grave (not v1.3c) */
+ "", /* 200 145 r with double grave (not v1.3c) */
+ "", /* 200 146 R with inverted breve (not v1.3c) */
+ "", /* 200 147 r with inverted breve (not v1.3c) */
+ "", /* 200 148 U with double grave (not v1.3c) */
+ "", /* 200 149 u with double grave (not v1.3c) */
+ "", /* 200 150 U with inverted breve (not v1.3c) */
+ "", /* 200 151 u with inverted breve (not v1.3c) */
"\\textcommabelow{S}", /* 200 152 */
"\\textcommabelow{s}", /* 200 153 */
"\\textcommabelow{T}", /* 200 154 */
"\\textcommabelow{t}", /* 200 155 */
- "", /* 200 156 YOGH (not v1.2l) */
- "", /* 200 157 yogh (not v1.2l) */
- "", /* 200 158 \\v{H} (not v1.2l) */
- "", /* 200 159 \\v{h} (not v1.2l) */
- "", /* 200 160 N with long right leg (not v1.2l) */
- "", /* 200 161 d with curl (not v1.2l) */
- "", /* 200 162 OU (not v1.2l) */
- "", /* 200 163 ou (not v1.2l) */
- "", /* 200 164 Z with hook (not v1.2l) */
- "", /* 200 165 z with hook (not v1.2l) */
- "", /* 200 166 \\.A (not v1.2l) */
- "", /* 200 167 \\.a (not v1.2l) */
- "", /* 200 168 \\c{E} (not v1.2l) */
- "", /* 200 169 \\c{e} (not v1.2l) */
- "", /* 200 170 \\={\\\"O} (not v1.2l) */
- "", /* 200 171 \\={\\\"o} (not v1.2l) */
- "", /* 200 172 \\={\\~O} (not v1.2l) */
- "", /* 200 173 \\={\\~o} (not v1.2l) */
- "", /* 200 174 \\.O (not v1.2l) */
- "", /* 200 175 \\.o (not v1.2l) */
- "", /* 200 176 [\\={\\.O}] (not v1.2l) */
- "", /* 200 177 [\\={\\.o}] (not v1.2l) */
+ "", /* 200 156 YOGH (not v1.3c) */
+ "", /* 200 157 yogh (not v1.3c) */
+ "", /* 200 158 \\v{H} (not v1.3c) */
+ "", /* 200 159 \\v{h} (not v1.3c) */
+ "", /* 200 160 N with long right leg (not v1.3c) */
+ "", /* 200 161 d with curl (not v1.3c) */
+ "", /* 200 162 OU (not v1.3c) */
+ "", /* 200 163 ou (not v1.3c) */
+ "", /* 200 164 Z with hook (not v1.3c) */
+ "", /* 200 165 z with hook (not v1.3c) */
+ "", /* 200 166 \\.A (not v1.3c) */
+ "", /* 200 167 \\.a (not v1.3c) */
+ "", /* 200 168 \\c{E} (not v1.3c) */
+ "", /* 200 169 \\c{e} (not v1.3c) */
+ "", /* 200 170 \\={\\\"O} (not v1.3c) */
+ "", /* 200 171 \\={\\\"o} (not v1.3c) */
+ "", /* 200 172 \\={\\~O} (not v1.3c) */
+ "", /* 200 173 \\={\\~o} (not v1.3c) */
+ "", /* 200 174 \\.O (not v1.3c) */
+ "", /* 200 175 \\.o (not v1.3c) */
+ "", /* 200 176 [\\={\\.O}] (not v1.3c) */
+ "", /* 200 177 [\\={\\.o}] (not v1.3c) */
"\\=Y", /* 200 178 */
"\\=y", /* 200 179 */
- "", /* 200 180 l with curl (not v1.2l) */
- "", /* 200 181 n with curl (not v1.2l) */
- "", /* 200 182 t with curl (not v1.2l) */
+ "", /* 200 180 l with curl (not v1.3c) */
+ "", /* 200 181 n with curl (not v1.3c) */
+ "", /* 200 182 t with curl (not v1.3c) */
"{\\j}", /* 200 183 */
- "", /* 200 184 db digraph (not v1.2l) */
- "", /* 200 185 qp digraph (not v1.2l) */
- "", /* 200 186 A with diagonal stroke (not v1.2l) */
- "", /* 200 187 C with diagonal stroke (not v1.2l) */
- "", /* 200 188 {\\textcentoldstyle} (not v1.2l) */
- "", /* 200 189 L-quer (not v1.2l) */
- "", /* 200 190 T with diagonal stroke (not v1.2l) */
- "", /* 200 191 s with swash tail (not v1.2l) */
+ "", /* 200 184 db digraph (not v1.3c) */
+ "", /* 200 185 qp digraph (not v1.3c) */
+ "", /* 200 186 A with diagonal stroke (not v1.3c) */
+ "", /* 200 187 C with diagonal stroke (not v1.3c) */
+ "", /* 200 188 {\\textcentoldstyle} (not v1.3c) */
+ "", /* 200 189 L-quer (not v1.3c) */
+ "", /* 200 190 T with diagonal stroke (not v1.3c) */
+ "", /* 200 191 s with swash tail (not v1.3c) */
NULL };
#define THNULLNULL 200
@@ -4134,70 +4360,70 @@ int ins_thnullthree(char in[], unsigned char c, int pos)
static char *thtwentyfive_oheightyfour[] = {
- "", /* 225 184 128 A with ring below (not v1.2l) */
- "", /* 225 184 129 a with ring below (not v1.2l) */
+ "", /* 225 184 128 A with ring below (not v1.3c) */
+ "", /* 225 184 129 a with ring below (not v1.3c) */
"\\.B", /* 225 184 130 */
"\\.b", /* 225 184 131 */
- "", /* 225 184 132 \\d{B} (not v1.2l) */
- "", /* 225 184 133 \\d{b} (not v1.2l) */
- "", /* 225 184 134 \\b{B} (not v1.2l) */
- "", /* 225 184 135 \\b{b} (not v1.2l) */
- "", /* 225 184 136 \\c{\\\'C} (not v1.2l) */
- "", /* 225 184 137 \\c{\\\'c} (not v1.2l) */
- "", /* 225 184 138 \\.D (not v1.2l) */
- "", /* 225 184 139 \\.d (not v1.2l) */
- "", /* 225 184 140 \\d{D} (not v1.2l) */
+ "", /* 225 184 132 \\d{B} (not v1.3c) */
+ "", /* 225 184 133 \\d{b} (not v1.3c) */
+ "", /* 225 184 134 \\b{B} (not v1.3c) */
+ "", /* 225 184 135 \\b{b} (not v1.3c) */
+ "", /* 225 184 136 \\c{\\\'C} (not v1.3c) */
+ "", /* 225 184 137 \\c{\\\'c} (not v1.3c) */
+ "", /* 225 184 138 \\.D (not v1.3c) */
+ "", /* 225 184 139 \\.d (not v1.3c) */
+ "", /* 225 184 140 \\d{D} (not v1.3c) */
"\\d{d}", /* 225 184 141 */
- "", /* 225 184 142 \\b{D} (not v1.2l) */
- "", /* 225 184 143 \\b{d} (not v1.2l) */
- "", /* 225 184 144 \\textcommabelow{D} (not v1.2l) */
- "", /* 225 184 145 \\textcommabelow{d} (not v1.2l) */
- "", /* 225 184 146 D with circumflex below (not v1.2l) */
- "", /* 225 184 147 d with circumflex below (not v1.2l) */
- "", /* 225 184 148 [\\`{\\=E}] (not v1.2l) */
- "", /* 225 184 149 [\\`{\\=e}] (not v1.2l) */
- "", /* 225 184 150 [\\\'{\\=E}] (not v1.2l) */
- "", /* 225 184 151 [\\\'{\\=e}] (not v1.2l) */
- "", /* 225 184 152 E with circumflex below (not v1.2l) */
- "", /* 225 184 153 e with circumflex below (not v1.2l) */
- "", /* 225 184 154 E with tilde below (not v1.2l) */
- "", /* 225 184 155 e with tilde below (not v1.2l) */
- "", /* 225 184 156 [\\u{\\c{E}}] (not v1.2l) */
- "", /* 225 184 157 [\\u{\\c{e}}] (not v1.2l) */
- "\\.F", /* 225 184 158 new in 2.4 */
- "\\.f", /* 225 184 159 new in 2.4 */
+ "", /* 225 184 142 \\b{D} (not v1.3c) */
+ "", /* 225 184 143 \\b{d} (not v1.3c) */
+ "", /* 225 184 144 \\textcommabelow{D} (not v1.3c) */
+ "", /* 225 184 145 \\textcommabelow{d} (not v1.3c) */
+ "", /* 225 184 146 D with circumflex below (not v1.3c) */
+ "", /* 225 184 147 d with circumflex below (not v1.3c) */
+ "", /* 225 184 148 [\\`{\\=E}] (not v1.3c) */
+ "", /* 225 184 149 [\\`{\\=e}] (not v1.3c) */
+ "", /* 225 184 150 [\\\'{\\=E}] (not v1.3c) */
+ "", /* 225 184 151 [\\\'{\\=e}] (not v1.3c) */
+ "", /* 225 184 152 E with circumflex below (not v1.3c) */
+ "", /* 225 184 153 e with circumflex below (not v1.3c) */
+ "", /* 225 184 154 E with tilde below (not v1.3c) */
+ "", /* 225 184 155 e with tilde below (not v1.3c) */
+ "", /* 225 184 156 [\\u{\\c{E}}] (not v1.3c) */
+ "", /* 225 184 157 [\\u{\\c{e}}] (not v1.3c) */
+ "\\.F", /* 225 184 158 new in 2.4 / v1.2n */
+ "\\.f", /* 225 184 159 new in 2.4 / v1.2n */
"\\=G", /* 225 184 160 */
"\\=g", /* 225 184 161 */
- "", /* 225 184 162 \\.H (not v1.2l) */
- "", /* 225 184 163 \\.h (not v1.2l) */
- "", /* 225 184 164 \\d{H} (not v1.2l) */
+ "", /* 225 184 162 \\.H (not v1.3c) */
+ "", /* 225 184 163 \\.h (not v1.3c) */
+ "", /* 225 184 164 \\d{H} (not v1.3c) */
"\\d{h}", /* 225 184 165 */
- "", /* 225 184 166 \\\"H (not v1.2l) */
- "", /* 225 184 167 \\\"h (not v1.2l) */
- "", /* 225 184 168 \\c{H} [?] (not v1.2l) */
- "", /* 225 184 169 \\c{h} [?] (not v1.2l) */
- "", /* 225 184 170 H with breve below (not v1.2l) */
- "", /* 225 184 171 h with breve below (not v1.2l) */
- "", /* 225 184 172 I with tilde below (not v1.2l) */
- "", /* 225 184 173 i with tilde below (not v1.2l) */
- "", /* 225 184 174 \\\'{\\\"I} (not v1.2l) */
- "", /* 225 184 175 \\\'{\\\"{\\i}} (not v1.2l) */
- "\\\'K", /* 225 184 176 new in 2.4 */
- "\\\'k", /* 225 184 177 new in 2.4 */
- "", /* 225 184 178 \\d{K} (not v1.2l) */
- "", /* 225 184 179 \\d{k} (not v1.2l) */
- "", /* 225 184 180 \\b{K} (not v1.2l) */
- "", /* 225 184 181 \\b{k} (not v1.2l) */
- "", /* 225 184 182 \\d{L} (not v1.2l) */
+ "", /* 225 184 166 \\\"H (not v1.3c) */
+ "", /* 225 184 167 \\\"h (not v1.3c) */
+ "", /* 225 184 168 \\c{H} [?] (not v1.3c) */
+ "", /* 225 184 169 \\c{h} [?] (not v1.3c) */
+ "", /* 225 184 170 H with breve below (not v1.3c) */
+ "", /* 225 184 171 h with breve below (not v1.3c) */
+ "", /* 225 184 172 I with tilde below (not v1.3c) */
+ "", /* 225 184 173 i with tilde below (not v1.3c) */
+ "", /* 225 184 174 \\\'{\\\"I} (not v1.3c) */
+ "", /* 225 184 175 \\\'{\\\"{\\i}} (not v1.3c) */
+ "\\\'K", /* 225 184 176 new in 2.4 / v1.2n */
+ "\\\'k", /* 225 184 177 new in 2.4 / v1.2n */
+ "", /* 225 184 178 \\d{K} (not v1.3c) */
+ "", /* 225 184 179 \\d{k} (not v1.3c) */
+ "", /* 225 184 180 \\b{K} (not v1.3c) */
+ "", /* 225 184 181 \\b{k} (not v1.3c) */
+ "", /* 225 184 182 \\d{L} (not v1.3c) */
"\\d{l}", /* 225 184 183 */
- "", /* 225 184 184 \\d{\\=L} (not v1.2l) */
- "", /* 225 184 185 \\d{\\=l} (not v1.2l) */
- "", /* 225 184 186 \\b{L} (not v1.2l) */
- "", /* 225 184 187 \\b{l} (not v1.2l) */
- "", /* 225 184 188 L with circumflex below (not v1.2l) */
- "", /* 225 184 189 l with circumflex below (not v1.2l) */
- "", /* 225 184 190 \\\'M (not v1.2l) */
- "", /* 225 184 191 \\\'m (not v1.2l) */
+ "", /* 225 184 184 \\d{\\=L} (not v1.3c) */
+ "", /* 225 184 185 \\d{\\=l} (not v1.3c) */
+ "", /* 225 184 186 \\b{L} (not v1.3c) */
+ "", /* 225 184 187 \\b{l} (not v1.3c) */
+ "", /* 225 184 188 L with circumflex below (not v1.3c) */
+ "", /* 225 184 189 l with circumflex below (not v1.3c) */
+ "", /* 225 184 190 \\\'M (not v1.3c) */
+ "", /* 225 184 191 \\\'m (not v1.3c) */
NULL };
#define THTWENTYFIVE 225
@@ -4212,70 +4438,70 @@ char *get_thtwentyfive_oheightyfour(unsigned char c)
static char *thtwentyfive_oheightyfive[] = {
- "", /* 225 185 128 \\.M (not v1.2l) */
- "", /* 225 185 129 \\.m (not v1.2l) */
- "", /* 225 185 130 \\d{M} (not v1.2l) */
+ "", /* 225 185 128 \\.M (not v1.3c) */
+ "", /* 225 185 129 \\.m (not v1.3c) */
+ "", /* 225 185 130 \\d{M} (not v1.3c) */
"\\d{m}", /* 225 185 131 */
- "", /* 225 185 132 \\.N (not v1.2l) */
+ "", /* 225 185 132 \\.N (not v1.3c) */
"\\.n", /* 225 185 133 */
- "", /* 225 185 134 \\d{N} (not v1.2l) */
+ "", /* 225 185 134 \\d{N} (not v1.3c) */
"\\d{n}", /* 225 185 135 */
- "", /* 225 185 136 N with line below (not v1.2l) */
- "", /* 225 185 137 n with line below (not v1.2l) */
- "", /* 225 185 138 N with circumflex below (not v1.2l) */
- "", /* 225 185 139 n with circumflex below (not v1.2l) */
- "", /* 225 185 140 \\\'{\\~O} (not v1.2l) */
- "", /* 225 185 141 \\\'{\\~o} (not v1.2l) */
- "", /* 225 185 142 \\\"{\\~O} (not v1.2l) */
- "", /* 225 185 143 \\\"{\\~o} (not v1.2l) */
- "", /* 225 185 144 [\\`{\\=O}] (not v1.2l) */
- "", /* 225 185 145 [\\`{\\=o}] (not v1.2l) */
- "", /* 225 185 146 [\\\'{\\=O}] (not v1.2l) */
- "", /* 225 185 147 [\\\'{\\=o}] (not v1.2l) */
- "", /* 225 185 148 \\\'P (not v1.2l) */
- "", /* 225 185 149 \\\'p (not v1.2l) */
- "", /* 225 185 150 \\.P (not v1.2l) */
- "", /* 225 185 151 \\.p (not v1.2l) */
- "", /* 225 185 152 \\.R (not v1.2l) */
- "", /* 225 185 153 \\.r (not v1.2l) */
- "", /* 225 185 154 \\d{R} (not v1.2l) */
+ "", /* 225 185 136 N with line below (not v1.3c) */
+ "", /* 225 185 137 n with line below (not v1.3c) */
+ "", /* 225 185 138 N with circumflex below (not v1.3c) */
+ "", /* 225 185 139 n with circumflex below (not v1.3c) */
+ "", /* 225 185 140 \\\'{\\~O} (not v1.3c) */
+ "", /* 225 185 141 \\\'{\\~o} (not v1.3c) */
+ "", /* 225 185 142 \\\"{\\~O} (not v1.3c) */
+ "", /* 225 185 143 \\\"{\\~o} (not v1.3c) */
+ "", /* 225 185 144 [\\`{\\=O}] (not v1.3c) */
+ "", /* 225 185 145 [\\`{\\=o}] (not v1.3c) */
+ "", /* 225 185 146 [\\\'{\\=O}] (not v1.3c) */
+ "", /* 225 185 147 [\\\'{\\=o}] (not v1.3c) */
+ "", /* 225 185 148 \\\'P (not v1.3c) */
+ "", /* 225 185 149 \\\'p (not v1.3c) */
+ "", /* 225 185 150 \\.P (not v1.3c) */
+ "", /* 225 185 151 \\.p (not v1.3c) */
+ "", /* 225 185 152 \\.R (not v1.3c) */
+ "", /* 225 185 153 \\.r (not v1.3c) */
+ "", /* 225 185 154 \\d{R} (not v1.3c) */
"\\d{r}", /* 225 185 155 */
- "", /* 225 185 156 \\d{\\=R} (not v1.2l) */
- "", /* 225 185 157 \\d{\\=r} (not v1.2l) */
- "", /* 225 185 158 R with line below (not v1.2l) */
- "", /* 225 185 159 r with line below (not v1.2l) */
- "", /* 225 185 160 \\.S (not v1.2l) */
- "", /* 225 185 161 \\.s (not v1.2l) */
- "", /* 225 185 162 \\d{S} (not v1.2l) */
+ "", /* 225 185 156 \\d{\\=R} (not v1.3c) */
+ "", /* 225 185 157 \\d{\\=r} (not v1.3c) */
+ "", /* 225 185 158 R with line below (not v1.3c) */
+ "", /* 225 185 159 r with line below (not v1.3c) */
+ "", /* 225 185 160 \\.S (not v1.3c) */
+ "", /* 225 185 161 \\.s (not v1.3c) */
+ "", /* 225 185 162 \\d{S} (not v1.3c) */
"\\d{s}", /* 225 185 163 */
- "", /* 225 185 164 \\.{\\\'S} (not v1.2l) */
- "", /* 225 185 165 \\.{\\\'s} (not v1.2l) */
- "", /* 225 185 166 \\.{\\v{S}} (not v1.2l) */
- "", /* 225 185 167 \\.{\\v{s}} (not v1.2l) */
- "", /* 225 185 168 \\d{\\.S} (not v1.2l) */
- "", /* 225 185 169 \\d{\\.s} (not v1.2l) */
- "", /* 225 185 170 \\.T (not v1.2l) */
- "", /* 225 185 171 \\.t (not v1.2l) */
- "", /* 225 185 172 \\d{T} (not v1.2l) */
+ "", /* 225 185 164 \\.{\\\'S} (not v1.3c) */
+ "", /* 225 185 165 \\.{\\\'s} (not v1.3c) */
+ "", /* 225 185 166 \\.{\\v{S}} (not v1.3c) */
+ "", /* 225 185 167 \\.{\\v{s}} (not v1.3c) */
+ "", /* 225 185 168 \\d{\\.S} (not v1.3c) */
+ "", /* 225 185 169 \\d{\\.s} (not v1.3c) */
+ "", /* 225 185 170 \\.T (not v1.3c) */
+ "", /* 225 185 171 \\.t (not v1.3c) */
+ "", /* 225 185 172 \\d{T} (not v1.3c) */
"\\d{t}", /* 225 185 173 */
- "", /* 225 185 174 T with line below (not v1.2l) */
- "", /* 225 185 175 t with line below (not v1.2l) */
- "", /* 225 185 176 T with circumfelx below (not v1.2l) */
- "", /* 225 185 177 t with circumfelx below (not v1.2l) */
- "", /* 225 185 178 U with diaresis below (not v1.2l) */
- "", /* 225 185 179 u with diaresis below (not v1.2l) */
- "", /* 225 185 180 U with tilde below (not v1.2l) */
- "", /* 225 185 181 u with tilde below (not v1.2l) */
- "", /* 225 185 182 U with circumflex below (not v1.2l) */
- "", /* 225 185 183 u with circumflex below (not v1.2l) */
- "", /* 225 185 184 [\\\'{\\~U}] (not v1.2l) */
- "", /* 225 185 185 [\\\'{\\~u}] (not v1.2l) */
- "", /* 225 185 186 [\\\"{\\=U}] (not v1.2l) */
- "", /* 225 185 187 [\\\"{\\=u}] (not v1.2l) */
- "", /* 225 185 188 \\~V (not v1.2l) */
- "", /* 225 185 189 \\~v (not v1.2l) */
- "", /* 225 185 190 \\d{V} (not v1.2l) */
- "", /* 225 185 191 \\d{v} (not v1.2l) */
+ "", /* 225 185 174 T with line below (not v1.3c) */
+ "", /* 225 185 175 t with line below (not v1.3c) */
+ "", /* 225 185 176 T with circumfelx below (not v1.3c) */
+ "", /* 225 185 177 t with circumfelx below (not v1.3c) */
+ "", /* 225 185 178 U with dieresis below (not v1.3c) */
+ "", /* 225 185 179 u with dieresis below (not v1.3c) */
+ "", /* 225 185 180 U with tilde below (not v1.3c) */
+ "", /* 225 185 181 u with tilde below (not v1.3c) */
+ "", /* 225 185 182 U with circumflex below (not v1.3c) */
+ "", /* 225 185 183 u with circumflex below (not v1.3c) */
+ "", /* 225 185 184 [\\\'{\\~U}] (not v1.3c) */
+ "", /* 225 185 185 [\\\'{\\~u}] (not v1.3c) */
+ "", /* 225 185 186 [\\\"{\\=U}] (not v1.3c) */
+ "", /* 225 185 187 [\\\"{\\=u}] (not v1.3c) */
+ "", /* 225 185 188 \\~V (not v1.3c) */
+ "", /* 225 185 189 \\~v (not v1.3c) */
+ "", /* 225 185 190 \\d{V} (not v1.3c) */
+ "", /* 225 185 191 \\d{v} (not v1.3c) */
NULL };
#define THTWENTYFIVE_OHEIGHTYFIVE 185
@@ -4288,71 +4514,71 @@ char *get_thtwentyfive_oheightyfive(unsigned char c)
}
-static char *thtwentyfive_oheightysix[] = {
- "", /* 225 186 128 \\`W (not v1.2l) */
- "", /* 225 186 129 \\`w (not v1.2l) */
- "", /* 225 186 130 \\\'W (not v1.2l) */
- "", /* 225 186 131 \\\'w (not v1.2l) */
- "", /* 225 186 132 \\\"W (not v1.2l) */
- "", /* 225 186 133 \\\"w (not v1.2l) */
- "", /* 225 186 134 \\.W (not v1.2l) */
- "", /* 225 186 135 \\.w (not v1.2l) */
- "", /* 225 186 136 \\d{W} (not v1.2l) */
- "", /* 225 186 137 \\d{w} (not v1.2l) */
- "", /* 225 186 138 \\.X (not v1.2l) */
- "", /* 225 186 139 \\.x (not v1.2l) */
- "", /* 225 186 140 \\\"X (not v1.2l) */
- "", /* 225 186 141 \\\"x (not v1.2l) */
- "\\.Y", /* 225 186 142 new in 2.4 */
- "\\.y", /* 225 186 143 new in 2.4 */
- "\\^Z", /* 225 186 144 new in 2.4 */
- "\\^z", /* 225 186 145 new in 2.4 */
- "", /* 225 186 146 \\d{Z} (not v1.2l) */
- "", /* 225 186 147 \\d{z} (not v1.2l) */
- "", /* 225 186 148 Z with line below (not v1.2l) */
- "", /* 225 186 149 z with line below (not v1.2l) */
- "", /* 225 186 150 h with line below (not v1.2l) */
- "", /* 225 186 151 \\\"t (not v1.2l) */
- "", /* 225 186 152 \\r{w} */
- "", /* 225 186 153 \\r{y} */
- "", /* 225 186 154 a with right half ring (not v1.2l) */
- "", /* 225 186 155 long s with dot above (not v1.2l) */
- "", /* 225 186 156 long s with diagonal stroke (not v1.2l) */
- "", /* 225 186 157 long s with high stroke (not v1.2l) */
+static char *thtwentyfive_oheightysix[] = { /* new in 2.4 */
+ "", /* 225 186 128 \\`W (not v1.3c) */
+ "", /* 225 186 129 \\`w (not v1.3c) */
+ "", /* 225 186 130 \\\'W (not v1.3c) */
+ "", /* 225 186 131 \\\'w (not v1.3c) */
+ "", /* 225 186 132 \\\"W (not v1.3c) */
+ "", /* 225 186 133 \\\"w (not v1.3c) */
+ "", /* 225 186 134 \\.W (not v1.3c) */
+ "", /* 225 186 135 \\.w (not v1.3c) */
+ "", /* 225 186 136 \\d{W} (not v1.3c) */
+ "", /* 225 186 137 \\d{w} (not v1.3c) */
+ "", /* 225 186 138 \\.X (not v1.3c) */
+ "", /* 225 186 139 \\.x (not v1.3c) */
+ "", /* 225 186 140 \\\"X (not v1.3c) */
+ "", /* 225 186 141 \\\"x (not v1.3c) */
+ "\\.Y", /* 225 186 142 new in 2.4 / v1.2n */
+ "\\.y", /* 225 186 143 new in 2.4 / v1.2n */
+ "\\^Z", /* 225 186 144 new in 2.4 / v1.2n */
+ "\\^z", /* 225 186 145 new in 2.4 / v1.2n */
+ "", /* 225 186 146 \\d{Z} (not v1.3c) */
+ "", /* 225 186 147 \\d{z} (not v1.3c) */
+ "", /* 225 186 148 Z with line below (not v1.3c) */
+ "", /* 225 186 149 z with line below (not v1.3c) */
+ "", /* 225 186 150 h with line below (not v1.3c) */
+ "", /* 225 186 151 \\\"t (not v1.3c) */
+ "", /* 225 186 152 \\r{w} (not v1.3c) */
+ "", /* 225 186 153 \\r{y} (not v1.3c) */
+ "", /* 225 186 154 a with right half ring (not v1.3c) */
+ "", /* 225 186 155 long s with dot above (not v1.3c) */
+ "", /* 225 186 156 long s with diagonal stroke (not v1.3c) */
+ "", /* 225 186 157 long s with high stroke (not v1.3c) */
"{\\SS}", /* 225 186 158 */
- "", /* 225 186 159 \\delta (not v1.2l) */
- "", /* 225 186 160 \\d{A} (not v1.2l) */
- "", /* 225 186 161 \\d{a} (not v1.2l) */
- "", /* 225 186 162 A with hook above (not v1.2l) */
- "", /* 225 186 163 a with hook above (not v1.2l) */
- "", /* 225 186 164 A with circumflex-acute (not v1.2l) */
- "", /* 225 186 165 a with circumflex-acute (not v1.2l) */
- "", /* 225 186 166 A with circumflex-grave (not v1.2l) */
- "", /* 225 186 167 a with circumflex-grave (not v1.2l) */
- "", /* 225 186 168 A with circumflex-hook (not v1.2l) */
- "", /* 225 186 169 a with circumflex-hook (not v1.2l) */
- "", /* 225 186 170 \\~{\\^A} (not v1.2l) */
- "", /* 225 186 171 \\~{\\^a} (not v1.2l) */
- "", /* 225 186 172 \\d{\\^A} (not v1.2l) */
- "", /* 225 186 173 \\d{\\^a} (not v1.2l) */
- "", /* 225 186 174 A with breve-acute (not v1.2l) */
- "", /* 225 186 175 a with breve-acute (not v1.2l) */
- "", /* 225 186 176 A with breve-grave (not v1.2l) */
- "", /* 225 186 177 a with breve-grave (not v1.2l) */
- "", /* 225 186 178 A with breve-hook (not v1.2l) */
- "", /* 225 186 179 a with breve-hook (not v1.2l) */
- "", /* 225 186 180 A with breve-tilde (not v1.2l) */
- "", /* 225 186 181 a with breve-tilde (not v1.2l) */
- "", /* 225 186 182 \\d{\\u{A}} (not v1.2l) */
- "", /* 225 186 183 \\d{\\u{a}} (not v1.2l) */
- "", /* 225 186 184 \\d{E} (not v1.2l) */
- "", /* 225 186 185 \\d{e} (not v1.2l) */
- "", /* 225 186 186 E with hook above (not v1.2l) */
- "", /* 225 186 187 e with hook above (not v1.2l) */
- "", /* 225 186 188 \\~E (not v1.2l) */
- "", /* 225 186 189 \\~e (not v1.2l) */
- "", /* 225 186 190 E with circumflex-acute (not v1.2l) */
- "", /* 225 186 191 e with circumflex-acute (not v1.2l) */
+ "", /* 225 186 159 \\delta (not v1.3c) */
+ "", /* 225 186 160 \\d{A} (not v1.3c) */
+ "", /* 225 186 161 \\d{a} (not v1.3c) */
+ "", /* 225 186 162 A with hook above (not v1.3c) */
+ "", /* 225 186 163 a with hook above (not v1.3c) */
+ "", /* 225 186 164 A with circumflex-acute (not v1.3c) */
+ "", /* 225 186 165 a with circumflex-acute (not v1.3c) */
+ "", /* 225 186 166 A with circumflex-grave (not v1.3c) */
+ "", /* 225 186 167 a with circumflex-grave (not v1.3c) */
+ "", /* 225 186 168 A with circumflex-hook (not v1.3c) */
+ "", /* 225 186 169 a with circumflex-hook (not v1.3c) */
+ "", /* 225 186 170 \\~{\\^A} (not v1.3c) */
+ "", /* 225 186 171 \\~{\\^a} (not v1.3c) */
+ "", /* 225 186 172 \\d{\\^A} (not v1.3c) */
+ "", /* 225 186 173 \\d{\\^a} (not v1.3c) */
+ "", /* 225 186 174 A with breve-acute (not v1.3c) */
+ "", /* 225 186 175 a with breve-acute (not v1.3c) */
+ "", /* 225 186 176 A with breve-grave (not v1.3c) */
+ "", /* 225 186 177 a with breve-grave (not v1.3c) */
+ "", /* 225 186 178 A with breve-hook (not v1.3c) */
+ "", /* 225 186 179 a with breve-hook (not v1.3c) */
+ "", /* 225 186 180 A with breve-tilde (not v1.3c) */
+ "", /* 225 186 181 a with breve-tilde (not v1.3c) */
+ "", /* 225 186 182 \\d{\\u{A}} (not v1.3c) */
+ "", /* 225 186 183 \\d{\\u{a}} (not v1.3c) */
+ "", /* 225 186 184 \\d{E} (not v1.3c) */
+ "", /* 225 186 185 \\d{e} (not v1.3c) */
+ "", /* 225 186 186 E with hook above (not v1.3c) */
+ "", /* 225 186 187 e with hook above (not v1.3c) */
+ "", /* 225 186 188 \\~E (not v1.3c) */
+ "", /* 225 186 189 \\~e (not v1.3c) */
+ "", /* 225 186 190 E with circumflex-acute (not v1.3c) */
+ "", /* 225 186 191 e with circumflex-acute (not v1.3c) */
NULL };
#define THTWENTYFIVE_OHEIGHTYSIX 186
@@ -4366,22 +4592,22 @@ char *get_thtwentyfive_oheightysix(unsigned char c)
static char *thtwentysix_ohtwentyeight[] = {
- "", /* 226 128 128 en quad (not v1.2l) */
- "", /* 226 128 129 em quad (not v1.2l) */
- "", /* 226 128 130 en space (not v1.2l) */
- "", /* 226 128 131 em space (not v1.2l) */
- "", /* 226 128 132 three-per-em space (not v1.2l) */
- "", /* 226 128 133 four-per-em space (not v1.2l) */
- "", /* 226 128 134 six-per-em space (not v1.2l) */
- "", /* 226 128 135 figure space (not v1.2l) */
- "", /* 226 128 136 punctuation space (not v1.2l) */
- "", /* 226 128 137 thin space (not v1.2l) */
- "", /* 226 128 138 hair space (not v1.2l) */
- "", /* 226 128 139 zero width space (not v1.2l) */
+ "", /* 226 128 128 en quad (not v1.3c) */
+ "", /* 226 128 129 em quad (not v1.3c) */
+ "", /* 226 128 130 en space (not v1.3c) */
+ "", /* 226 128 131 em space (not v1.3c) */
+ "", /* 226 128 132 three-per-em space (not v1.3c) */
+ "", /* 226 128 133 four-per-em space (not v1.3c) */
+ "", /* 226 128 134 six-per-em space (not v1.3c) */
+ "", /* 226 128 135 figure space (not v1.3c) */
+ "", /* 226 128 136 punctuation space (not v1.3c) */
+ "", /* 226 128 137 thin space (not v1.3c) */
+ "", /* 226 128 138 hair space (not v1.3c) */
+ "", /* 226 128 139 zero width space (not v1.3c) */
"{\\textcompwordmark}", /* 226 128 140 (LaTeX-Example: b\u{226-128-140}g) */
- "", /* 226 128 141 zero width joiner (not v1.2l) */
- "", /* 226 128 142 left-to-right mark (not v1.2l) */
- "", /* 226 128 143 right-to-left mark (not v1.2l) */
+ "", /* 226 128 141 zero width joiner (not v1.3c) */
+ "", /* 226 128 142 left-to-right mark (not v1.3c) */
+ "", /* 226 128 143 right-to-left mark (not v1.3c) */
"-", /* 226 128 144 */
"\\mbox{-}", /* 226 128 145 - */
"{\\textendash}", /* 226 128 146 -- */
@@ -4389,47 +4615,47 @@ static char *thtwentysix_ohtwentyeight[] = {
"{\\textemdash}", /* 226 128 148 --- */
"{\\textemdash}", /* 226 128 149 --- */
"{\\textbardbl}", /* 226 128 150 */
- "", /* 226 128 151 double low line (not v1.2l) */
+ "", /* 226 128 151 double low line (not v1.3c) */
"{\\textquoteleft}", /* 226 128 152 ` */
"{\\textquoteright}", /* 226 128 153 \' */
"{\\quotesinglbase}", /* 226 128 154 , */
- "", /* 226 128 155 single high-reversed-9 quotation mark (not v1.2l) */
+ "", /* 226 128 155 single high-reversed-9 quotation mark (not v1.3c) */
"{\\textquotedblleft}", /* 226 128 156 `` */
"{\\textquotedblright}", /* 226 128 157 \'\' */
"{\\quotedblbase}", /* 226 128 158 ,, */
- "", /* 226 128 159 double high-reversed-9 quotation mark (not v1.2l) */
+ "", /* 226 128 159 double high-reversed-9 quotation mark (not v1.3c) */
"{\\textdagger}", /* 226 128 160 {\\dag} */
"{\\textdaggerdbl}", /* 226 128 161 {\\ddag} */
"{\\textbullet}", /* 226 128 162 */
- "", /* 226 128 163 triangular bullet (not v1.2l) */
- "", /* 226 128 164 one dot leader (not v1.2l) */
- "", /* 226 128 165 two dot leader (not v1.2l) */
+ "", /* 226 128 163 triangular bullet (not v1.3c) */
+ "", /* 226 128 164 one dot leader (not v1.3c) */
+ "", /* 226 128 165 two dot leader (not v1.3c) */
"{\\textellipsis}", /* 226 128 166 {\\dots} */
- "", /* 226 128 167 hyphenation point (not v1.2l) */
- "", /* 226 128 168 line separator (not v1.2l) */
- "", /* 226 128 169 paragraph separator (not v1.2l) */
- "", /* 226 128 170 left-to-right embedding (not v1.2l) */
- "", /* 226 128 171 right-to-left embedding (not v1.2l) */
- "", /* 226 128 172 pop directional formatting (not v1.2l) */
- "", /* 226 128 173 left-to-right override (not v1.2l) */
- "", /* 226 128 174 right-to-left override (not v1.2l) */
- "", /* 226 128 175 narrow no-break space (not v1.2l) */
+ "", /* 226 128 167 hyphenation point (not v1.3c) */
+ "", /* 226 128 168 line separator (not v1.3c) */
+ "", /* 226 128 169 paragraph separator (not v1.3c) */
+ "", /* 226 128 170 left-to-right embedding (not v1.3c) */
+ "", /* 226 128 171 right-to-left embedding (not v1.3c) */
+ "", /* 226 128 172 pop directional formatting (not v1.3c) */
+ "", /* 226 128 173 left-to-right override (not v1.3c) */
+ "", /* 226 128 174 right-to-left override (not v1.3c) */
+ "", /* 226 128 175 narrow no-break space (not v1.3c) */
"{\\textperthousand}", /* 226 128 176 */
"{\\textpertenthousand}", /* 226 128 177 */
- "", /* 226 128 178 prime (not v1.2l) */
- "", /* 226 128 179 double prime (not v1.2l) */
- "", /* 226 128 180 triple prime (not v1.2l) */
- "", /* 226 128 181 reversed prime (not v1.2l) */
- "", /* 226 128 182 reversed double prime (not v1.2l) */
- "", /* 226 128 183 reversed triple prime (not v1.2l) */
- "", /* 226 128 184 caret (not v1.2l) */
+ "", /* 226 128 178 prime (not v1.3c) */
+ "", /* 226 128 179 double prime (not v1.3c) */
+ "", /* 226 128 180 triple prime (not v1.3c) */
+ "", /* 226 128 181 reversed prime (not v1.3c) */
+ "", /* 226 128 182 reversed double prime (not v1.3c) */
+ "", /* 226 128 183 reversed triple prime (not v1.3c) */
+ "", /* 226 128 184 caret (not v1.3c) */
"{\\guilsinglleft}", /* 226 128 185 */
"{\\guilsinglright}", /* 226 128 186 */
"{\\textreferencemark}", /* 226 128 187 */
- "", /* 226 128 188 "!!" (double exclamation mark) (not v1.2l) */
+ "", /* 226 128 188 "!!" (double exclamation mark) (not v1.3c) */
"{\\textinterrobang}", /* 226 128 189 */
- "", /* 226 128 190 overline (not v1.2l) */
- "", /* 226 128 191 undertie (not v1.2l) */
+ "", /* 226 128 190 overline (not v1.3c) */
+ "", /* 226 128 191 undertie (not v1.3c) */
NULL };
#define THTWENTYSIX 226
@@ -4444,70 +4670,70 @@ char *get_thtwentysix_ohtwentyeight(unsigned char c)
static char *thtwentysix_ohthirty[] = {
- "", /* 226 130 128 _0 (not v1.2l) */
- "", /* 226 130 129 _1 (not v1.2l) */
- "", /* 226 130 130 _2 (not v1.2l) */
- "", /* 226 130 131 _3 (not v1.2l) */
- "", /* 226 130 132 _4 (not v1.2l) */
- "", /* 226 130 133 _5 (not v1.2l) */
- "", /* 226 130 134 _6 (not v1.2l) */
- "", /* 226 130 135 _7 (not v1.2l) */
- "", /* 226 130 136 _8 (not v1.2l) */
- "", /* 226 130 137 _9 (not v1.2l) */
- "", /* 226 130 138 _+ (not v1.2l) */
- "", /* 226 130 139 _- (not v1.2l) */
- "", /* 226 130 140 _= (not v1.2l) */
- "", /* 226 130 141 _( (not v1.2l) */
- "", /* 226 130 142 _) (not v1.2l) */
- "", /* 226 130 143 [undefined] (not v1.2l) */
- "", /* 226 130 144 _a (not v1.2l) */
- "", /* 226 130 145 _e (not v1.2l) */
- "", /* 226 130 146 _o (not v1.2l) */
- "", /* 226 130 147 _x (not v1.2l) */
- "", /* 226 130 148 _{schwa} (not v1.2l) */
- "", /* 226 130 149 _h (not v1.2l) */
- "", /* 226 130 150 _k (not v1.2l) */
- "", /* 226 130 151 _l (not v1.2l) */
- "", /* 226 130 152 _m (not v1.2l) */
- "", /* 226 130 153 _n (not v1.2l) */
- "", /* 226 130 154 _p (not v1.2l) */
- "", /* 226 130 155 _s (not v1.2l) */
- "", /* 226 130 156 _t (not v1.2l) */
- "", /* 226 130 157 [undefined] (not v1.2l) */
- "", /* 226 130 158 [undefined] (not v1.2l) */
- "", /* 226 130 159 [undefined] (not v1.2l) */
- "", /* 226 130 160 euro-currency sign (not v1.2l) */
+ "", /* 226 130 128 _0 (not v1.3c) */
+ "", /* 226 130 129 _1 (not v1.3c) */
+ "", /* 226 130 130 _2 (not v1.3c) */
+ "", /* 226 130 131 _3 (not v1.3c) */
+ "", /* 226 130 132 _4 (not v1.3c) */
+ "", /* 226 130 133 _5 (not v1.3c) */
+ "", /* 226 130 134 _6 (not v1.3c) */
+ "", /* 226 130 135 _7 (not v1.3c) */
+ "", /* 226 130 136 _8 (not v1.3c) */
+ "", /* 226 130 137 _9 (not v1.3c) */
+ "", /* 226 130 138 _+ (not v1.3c) */
+ "", /* 226 130 139 _- (not v1.3c) */
+ "", /* 226 130 140 _= (not v1.3c) */
+ "", /* 226 130 141 _( (not v1.3c) */
+ "", /* 226 130 142 _) (not v1.3c) */
+ "", /* 226 130 143 [undefined] (not v1.3c) */
+ "", /* 226 130 144 _a (not v1.3c) */
+ "", /* 226 130 145 _e (not v1.3c) */
+ "", /* 226 130 146 _o (not v1.3c) */
+ "", /* 226 130 147 _x (not v1.3c) */
+ "", /* 226 130 148 _{schwa} (not v1.3c) */
+ "", /* 226 130 149 _h (not v1.3c) */
+ "", /* 226 130 150 _k (not v1.3c) */
+ "", /* 226 130 151 _l (not v1.3c) */
+ "", /* 226 130 152 _m (not v1.3c) */
+ "", /* 226 130 153 _n (not v1.3c) */
+ "", /* 226 130 154 _p (not v1.3c) */
+ "", /* 226 130 155 _s (not v1.3c) */
+ "", /* 226 130 156 _t (not v1.3c) */
+ "", /* 226 130 157 [undefined] (not v1.3c) */
+ "", /* 226 130 158 [undefined] (not v1.3c) */
+ "", /* 226 130 159 [undefined] (not v1.3c) */
+ "", /* 226 130 160 euro-currency sign (not v1.3c) */
"{\\textcolonmonetary}", /* 226 130 161 */
- "", /* 226 130 162 cruzeiro sign (not v1.2l) */
- "", /* 226 130 163 french franc sign (not v1.2l) */
+ "", /* 226 130 162 cruzeiro sign (not v1.3c) */
+ "", /* 226 130 163 french franc sign (not v1.3c) */
"{\\textlira}", /* 226 130 164 */
- "", /* 226 130 165 mill sign (not v1.2l) */
+ "", /* 226 130 165 mill sign (not v1.3c) */
"{\\textnaira}", /* 226 130 166 */
- "", /* 226 130 167 peseta sign (not v1.2l) */
- "", /* 226 130 168 rupee sign (not v1.2l) */
+ "", /* 226 130 167 peseta sign (not v1.3c) */
+ "", /* 226 130 168 rupee sign (not v1.3c) */
"{\\textwon}", /* 226 130 169 */
- "", /* 226 130 170 new sheqel sign (not v1.2l) */
+ "", /* 226 130 170 new sheqel sign (not v1.3c) */
"{\\textdong}", /* 226 130 171 */
"{\\texteuro}", /* 226 130 172 */
- "", /* 226 130 173 kip sign (not v1.2l) */
- "", /* 226 130 174 tugrik sign (not v1.2l) */
- "", /* 226 130 175 drachma sign (not v1.2l) */
- "", /* 226 130 176 german penny sign (not v1.2l) */
+ "", /* 226 130 173 kip sign (not v1.3c) */
+ "", /* 226 130 174 tugrik sign (not v1.3c) */
+ "", /* 226 130 175 drachma sign (not v1.3c) */
+ "", /* 226 130 176 german penny sign (not v1.3c) */
"{\\textpeso}", /* 226 130 177 */
- "", /* 226 130 178 guarani sign (not v1.2l) */
- "", /* 226 130 179 austral sign (not v1.2l) */
- "", /* 226 130 180 hryvnia sign (not v1.2l) */
- "", /* 226 130 181 cedi sign (not v1.2l) */
- "", /* 226 130 182 livre tournois sign (not v1.2l) */
- "", /* 226 130 183 spesmilo sign (not v1.2l) */
- "", /* 226 130 184 tenge sign (not v1.2l) */
- "", /* 226 130 185 indian rupee sign (not v1.2l) */
- "", /* 226 130 186 turkish lira sign (not v1.2l) */
- "", /* 226 130 187 nordic mark sign (not v1.2l) */
- "", /* 226 130 188 manat sign (not v1.2l) */
- "", /* 226 130 189 ruble sign (not v1.2l) */
- "", /* 226 130 190 lari sign (not v1.2l) */
- "", /* 226 130 191 bitcoin sign (not v1.2l) */
+ "", /* 226 130 178 guarani sign (not v1.3c) */
+ "", /* 226 130 179 austral sign (not v1.3c) */
+ "", /* 226 130 180 hryvnia sign (not v1.3c) */
+ "", /* 226 130 181 cedi sign (not v1.3c) */
+ "", /* 226 130 182 livre tournois sign (not v1.3c) */
+ "", /* 226 130 183 spesmilo sign (not v1.3c) */
+ "", /* 226 130 184 tenge sign (not v1.3c) */
+ "", /* 226 130 185 indian rupee sign (not v1.3c) */
+ "", /* 226 130 186 turkish lira sign (not v1.3c) */
+ "", /* 226 130 187 nordic mark sign (not v1.3c) */
+ "", /* 226 130 188 manat sign (not v1.3c) */
+ "", /* 226 130 189 ruble sign (not v1.3c) */
+ "", /* 226 130 190 lari sign (not v1.3c) */
+ "", /* 226 130 191 bitcoin sign (not v1.3c) */
NULL };
#define THTWENTYSIX_OHTHIRTY 130
@@ -4601,6 +4827,9 @@ int ins_rest_thtwentysix(char in[], unsigned char a, unsigned char b, int pos)
}
+#define THTWENTYSEVEN 227
+
+
#define THTHIRTYNINE 239
int ins_ththirtynine(char in[], unsigned char b, unsigned char c, int pos)
@@ -4824,14 +5053,14 @@ void get_utf_eight(char in[], const char *p)
if (signeless(*(p+1)) == THTWENTYFIVE_OHEIGHTYFIVE)
pos = insposmaxstr(in, get_thtwentyfive_oheightyfive(*(p+2)), pos, MAXLEN-1);
else
- if (signeless(*(p+1)) == THTWENTYFIVE_OHEIGHTYSIX)
+ if (signeless(*(p+1)) == THTWENTYFIVE_OHEIGHTYSIX) /* new in 2.4 */
pos = insposmaxstr(in, get_thtwentyfive_oheightysix(*(p+2)), pos, MAXLEN-1);
else
if (signeless(*(p+1)) == 187 && signeless(*(p+2)) == 178)
- pos = insposmaxstr(in, "\\`Y", pos, MAXLEN-1); /* 225 187 178 new in 2.4 */
+ pos = insposmaxstr(in, "\\`Y", pos, MAXLEN-1); /* 225 187 178 new in 2.4 / v1.2n */
else
if (signeless(*(p+1)) == 187 && signeless(*(p+2)) == 179)
- pos = insposmaxstr(in, "\\`y", pos, MAXLEN-1); /* 225 187 179 new in 2.4 */
+ pos = insposmaxstr(in, "\\`y", pos, MAXLEN-1); /* 225 187 179 new in 2.4 / v1.2n */
}
else
if (a == THTWENTYSIX)
@@ -4848,6 +5077,15 @@ void get_utf_eight(char in[], const char *p)
226 144 ...; 226 151 ...; 226 153 ...; 226 159 ... */
}
else
+ if (a == THTWENTYSEVEN)
+ {
+ if (signeless(*(p+1)) == 128 && signeless(*(p+2)) == 136)
+ pos = insposmaxstr(in, "{\\textlangle}", pos, MAXLEN-1); /* 227 128 136 new in 2.5 (v1.3c) */
+ else
+ if (signeless(*(p+1)) == 128 && signeless(*(p+2)) == 137)
+ pos = insposmaxstr(in, "{\\textrangle}", pos, MAXLEN-1); /* 227 128 137 new in 2.5 (v1.3c) */
+ }
+ else
if (a == THTHIRTYNINE) /* TRIPLETTES_END */
{
if (*(p+1) != '\0')
@@ -5841,28 +6079,6 @@ void printsortline(int line, int deepsort)
}
-void del_ktitintro(char *s)
-{
- while(*s != '\0')
- {
- if (*s == KTITINTROCH)
- {
- if (*(s+1) != '\0')
- {
- *s++ = KTITERRORCH; /* "????" is possible here, */
- *s++ = KTITERRORCH; /* whereas BibArts prints "??" */
- }
- else
- {
- intern_err(30);
- break;
- }
- }
- else ++s;
- }
-}
-
-
int findauthor(const char *s)
{
int r = 0;
@@ -5886,9 +6102,105 @@ int findauthor(const char *s)
}
-int writetheline(char *p, const int nlines, const int line, const int deepsort, int filec, int printsort, int kandkused, int oktitused)
+int fprint_inner_ktit_err(int j, int err, int dif, const char *msgA, const char *msgB)
{
- int doprint = 0, pagenum = 0, fntnum = 0, uu = 0, tn = getthirdnum(line), j, ok, ie, sha, tha, uha, oerr;
+ if (j >= err)
+ {
+ --j;
+ fprintf(outfile, "%%%% <- Warning *inner v-cmd*: %s %s (reported No. %d).\n", msgA, msgB, ktiterr+1);
+ ++ktiterr;
+ }
+
+ if (j >= dif) j -= dif;
+
+ return j;
+}
+
+
+#define O_KTIT_UNINIT -2 /* init: mostoktitarg > -2 */
+#define O_KTIT_NOTUSED -1 /* used: mostoktitarg > -1 */
+#define O_KTIT_NOPREF 0 /* pref: mostoktitarg > 0 */
+#define MOST_O_KTIT_ARGONE 1
+#define MOST_O_KTIT_ARGTWO 2
+#define MOST_O_KTIT_ARGTHREE 3
+#define MOST_O_KTIT_ARGFOUR 4
+
+void check_out_ktit(int line, int deepsort, int mostoktitarg)
+{
+ int i = 0, j = 0, numalter = 0, num = -1, numall = 0;
+
+ if (mostoktitarg > O_KTIT_UNINIT) /* ventry == IS_V */
+ {
+ while (i < deepsort) /* assume: deep == deepsort */
+ {
+ num = num_of_cmds_in_str(subAptr[i][line], KTITCMD);
+ if (num > 1)
+ {
+ fprintf(outfile, "%%%% <- Warning *outer v-cmd*: %s used %d times in arg %d (reported No. %d).\n", KTIT, num, i+1, ktiterr+1);
+ ++ktiterr;
+ }
+ numalter = 0;
+ if (num > 0)
+ {
+ j = i+1;
+ while (j < deepsort)
+ {
+ if ((numalter = num_of_cmds_in_str(subAptr[j][line], KTITCMD)) > 0) break;
+ ++j;
+ }
+ }
+ if (num > 0 && numalter > 0)
+ {
+ /* use int j here! */
+ fprintf(outfile, "%%%% <- Warning *outer v-cmd*: %s used in arg %d and in arg %d (reported No. %d).\n", KTIT, i+1, j+1, ktiterr+1);
+ ++ktiterr;
+ }
+ if (num > 0 && mostoktitarg > O_KTIT_NOPREF && i+1 != mostoktitarg)
+ {
+ if (numalter == 0)
+ {
+ if ( i+1 == MOST_O_KTIT_ARGONE
+ || i+1 == MOST_O_KTIT_ARGTWO
+ || i+1 == MOST_O_KTIT_ARGTHREE
+ || i+1 == MOST_O_KTIT_ARGFOUR
+ );
+ else intern_err(42);
+
+ fprintf(outfile, "%%%% <- Warning *outer v-cmd*: %s defined in arg %d; most entries use arg %d (reported No. %d).\n", KTIT, i+1, mostoktitarg, ktiterr+1);
+ ++ktiterr;
+ }
+ }
+ if (num > 0 && mostoktitarg == O_KTIT_NOPREF)
+ {
+ if (numalter == 0)
+ {
+ fprintf(outfile, "%%%% <- Warning *outer v-cmd*: %s is defined here in arg %d; sum of all entries shows no preference (reported No. %d).\n", KTIT, i+1, ktiterr+1);
+ ++ktiterr;
+ }
+ }
+ if (i == 0) { numall += num; }
+ else if (i == 1) { numall += num; }
+ else if (i == 2) { numall += num; }
+ else if (i == 3) { numall += num; }
+ else intern_err(41);
+ ++i;
+ }
+
+ if (numall == 0 && mostoktitarg > O_KTIT_NOTUSED)
+ {
+ fprintf(outfile, "%%%% <- Warning *outer v-cmd*: %s not used (or is masked); ", KTIT);
+ if (mostoktitarg > O_KTIT_NOPREF) fprintf(outfile, "most other entries use arg %d ", mostoktitarg);
+ if (mostoktitarg == O_KTIT_NOPREF) fprintf(outfile, "other entries show no preference ");
+ fprintf(outfile, "(reported No. %d).\n", ktiterr+1);
+ ++ktiterr;
+ }
+ }
+}
+
+
+int writetheline(char *p, const int nlines, const int line, const int deepsort, int filec, int printsort, int kandkused, int mostoktitarg)
+{
+ int doprint = 0, pagenum = 0, fntnum = 0, uu = 0, tn = getthirdnum(line), j;
if (*p != '%')
{ if (leval[line] != ACCEPTLINE)
@@ -5958,69 +6270,20 @@ int writetheline(char *p, const int nlines, const int line, const int deepsort,
fprintf(outfile, "%s\n", p);
if (kandkused == 1 && num_of_cmds_in_str(p, KURZCMD) > 0)
- fprintf(outfile, "%%%% <- Warning: You have used %s here, but %s elsewhere.\n", KURZ, KTIT);
-
- if (otherktiterr > 0)
- {
- j = 0;
- while (j < otherktiterr && subAptr[j][line] != mydefault)
- {
- if ((oerr = get_add_ktit(subAptr[j][line], 0, -1, -1, 0)) > 0)
- fprintf(outfile, "%%%% <- Warning: %d misplaced %s in arg %d.\n", oerr, KTIT, j+1);
- ++j;
- }
- }
-
- if (oktitused > 0 && subAptr[VCOLS-1][line] != mydefault)
- {
- ok = num_of_cmds_in_str(subAptr[VCOLS-1][line], KTITCMD);
- ie = hasinnerentry(subAptr[VCOLS-1][line], innerK_PER_ARQ_cmd, INNERTITLES);
-
- if ( (oktitused == 3 || oktitused == 4)
- && ok == 0
- && ie > -1
- )
- fprintf(outfile, "%%%% <- Info: No outer %s used in **item with inner title**, but elsewhere you have %s in that case.\n", KTIT, KTIT);
- else if (ok == 0 && oktitused < 5)
- {
- fprintf(outfile, "%%%% <- Info: No");
- if (ie > -1) fprintf(outfile, " OUTER");
- fprintf(outfile, " %s in arg %d (other entries have %s).\n", KTIT, VCOLS, KTIT);
- }
- else if (ok > 1)
- {
- fprintf(outfile, "%%%% <- Warning: %d", ok);
- fprintf(outfile, " %s in last arg outside inner v-cmd found. Also check %s file.\n", KTIT, VKC_SUFFIX); /* VCOLS */
- }
-
- if (oktitused == 2 || oktitused == 4)
- {
- if (ok > (j=unshielded_cmds_in_str(subAptr[VCOLS-1][line], KTITCMD)))
- {
- fprintf(outfile, "%%%% <- Warning: %d", ok-j);
- fprintf(outfile, " { %s } shadowed by brackets (in last arg outside inner v-cmd).\n", KTIT); /* VCOLS */
- }
- }
-
- if ( isinstr(subAptr[VCOLS-1][line], KTITINTRO) == 1)
- {
- fprintf(outfile, "%%%% -> Info: An inner v-cmd should be printed as shortened reference (created by the arg of your %s cmd).\n", KTIT);
- if ((sha=isinstr(subAptr[VCOLS-1][line], KTITSHA )) == 1)
- fprintf(outfile, "%%%% <- Error: INNER { %s } is shadowed by brackets, and ...\n", KTIT);
- if ((tha=isinstr(subAptr[VCOLS-1][line], KTITMISS )) == 1)
- fprintf(outfile, "%%%% <- Error: INNER %s is missing.\n", KTIT);
- if ((uha=isinstr(subAptr[VCOLS-1][line], KTITEMPTY)) == 1)
- {
- fprintf(outfile, "%%%% <- Warning: Arg of");
- if (sha == 1) fprintf(outfile, " (last non-shadowed)");
- fprintf(outfile, " INNER %s is empty.\n", KTIT);
- }
- if (sha != 1 && tha != 1 && uha != 1) intern_err(28); /* extra KTITINTRO found */
-
- del_ktitintro(subAptr[VCOLS-1][line]); /* aus Prinzip: "\tX" => "??" */
- }
- }
-
+ fprintf(outfile, "%%%% <- Warning: You have used %s here, but also %s here or elsewhere.\n", KURZ, KTIT);
+
+ check_out_ktit(line, deepsort, mostoktitarg);
+
+ /* get_add_ktit in 2.5 changed into: */
+ j = inerr[line];
+ j = fprint_inner_ktit_err(j, KTIT_OPE_ERR, KTIT_OPE_BAS, "[f{...}] or [m{...}] or [p{...}] overwrites but not replaces \'star\'", KTIT);
+ j = fprint_inner_ktit_err(j, OARG_BRA_ERR, OARG_BRA_BAS, "[f/m/p TEXT]", "has TEXT not in {...}");
+ j = fprint_inner_ktit_err(j, OARG_IRR_ERR, OARG_IRR_BAS, "First letter in [OptArg]", "is not f/m/p");
+ j = fprint_inner_ktit_err(j, KTIT_DBL_ERR, KTIT_DBL_BAS, KTIT, KTIT); /* double */
+ j = fprint_inner_ktit_err(j, KTIT_MIS_ERR, KTIT_MIS_BAS, KTIT, "is missing");
+ j = fprint_inner_ktit_err(j, KTIT_EMP_ERR, KTIT_EMP_BAS, KTIT, "has empty arg");
+ j = fprint_inner_ktit_err(j, KTIT_SEV_ERR, NOINERR, KTIT, "used several times");
+ if (j != 0) intern_err(38);
}
@@ -6121,9 +6384,9 @@ void fprint_utf_msg(FILE *file, const char utf[], int mod)
{
fprintf(file, "%%%%\n%%%% -utf8 : Did not ");
if (mod == 0) fprintf(file, "know the meaning of \'%s\' (", utf);
- else { fprintf(file, "sort invalid utf8 sequences (like ");
+ else { fprintf(file, "interpret invalid utf8 sequences (like "); /* msg changed in 2.5 */
if (utf[1] == '\0')
- fprintf(file, "a single char ");
+ fprintf(file, "the single octet "); /* msg changed in 2.5 */
}
fprintsquence(file, utf);
fprintf(file, ").\n%%%% Only the last error is reported here; also see screen.\n%%%%\n");
@@ -6136,10 +6399,14 @@ void printfilelist(FILE *file, int filec, int cc, const char *vor, const char *n
int i = 0;
if (cc == 1)
- fprintf(file, "\n%%%% BibArts 2.4 (C) Timo Baumann 2022 [%s]\n", __DATE__);
+ {
+ fprintf(file, "\n%%%% BibArts 2.5 (C) Timo Baumann 2022b [%s]\n", __DATE__);
+ fprintf(file, "\\gdef\\@bibsortvers{2.5}\n"); /* new in 2.5 */
+ }
fprintf(file, "%%%%\n");
timestamp(file);
+
fprintf(file, "%%%% Sort arg(s):\n");
fprintf(file, "%s", vor);
if (german == 1) fprintf(file, " -g1");
@@ -6215,7 +6482,7 @@ void printfilelist(FILE *file, int filec, int cc, const char *vor, const char *n
}
-int writelines(int nlines, const int dqcol, const int lancol, const int commentANDignlines, const int deepsort, int filec, int printsort, int kandkused, int oktitused)
+int writelines(int nlines, const int dqcol, const int lancol, const int commentANDignlines, const int deepsort, int filec, int printsort, int kandkused, int mostoktitarg)
{
int i = 0, dqcat, lancat = 0, lancatbuf, extralines = 0, didsetorig, nerr = 0;
@@ -6223,7 +6490,7 @@ int writelines(int nlines, const int dqcol, const int lancol, const int commentA
while (i < nlines && leval[i] != ACCEPTLINE)
{
- nerr = nerr + writetheline(lineptr[i], 0, i, 0, filec, printsort, kandkused, oktitused);
+ nerr = nerr + writetheline(lineptr[i], 0, i, 0, filec, printsort, kandkused, mostoktitarg);
++i;
}
@@ -6253,7 +6520,7 @@ int writelines(int nlines, const int dqcol, const int lancol, const int commentA
if ((dqcol > -1 && nogsty == 0) || lancol > -1) fprintf(outfile, "\n");
- nerr = nerr + writetheline(lineptr[i], nlines, i, deepsort, filec, printsort, kandkused, oktitused);
+ nerr = nerr + writetheline(lineptr[i], nlines, i, deepsort, filec, printsort, kandkused, mostoktitarg);
++i;
}
@@ -6287,7 +6554,7 @@ int writelines(int nlines, const int dqcol, const int lancol, const int commentA
}
}
- nerr = nerr + writetheline(lineptr[i], nlines, i, deepsort, filec, printsort, kandkused, oktitused);
+ nerr = nerr + writetheline(lineptr[i], nlines, i, deepsort, filec, printsort, kandkused, mostoktitarg);
++i;
}
@@ -6566,9 +6833,7 @@ int checkifabbrisdefined(int nlines, int ret, char *Thead, const char *Thold, in
int entkerne_IeC(char buf[], const char *s)
{
- int r = entkerne_arg(buf, s, IeC, '{', '}');
- del_ktitintro(buf);
- return r;
+ return entkerne_arg(buf, s, IeC, '{', '}');
}
@@ -8053,156 +8318,132 @@ void testdrucken(int linec, int alllines, int deep, char *subptr[MAXBACOLS][MAXL
}
-int check_kandk(int nlines)
+#define WARNDOUBLEMAX 5
+
+int fprint_out_ktit(int alllines, int deep, int ventry, const char *suffix)
{
- int i = 0;
- int outkurz = 0;
- int ktit = 0;
+ int linec = 0, i = 0, num = 0, numa = -1, numb = -1, numc = -1, numd = -1, kina = 0, kinb = 0, kinc = 0, kind = 0;
+ int mostoktitarg = O_KTIT_UNINIT, warndouble = 0, j = 0, numalter = 0;
- while (i < nlines)
- {
- outkurz += num_of_cmds_in_str(lineptr[i], KURZCMD);
- ktit += num_of_cmds_in_str(lineptr[i], KTITCMD);
- ++i;
- }
+ if (ventry == IS_V)
+ {
+ while (linec < alllines)
+ {
+ numa = -1; numb = -1; numc = -1; numd = -1;
+ i = 0;
+ while (i < deep)
+ {
+ num = num_of_cmds_in_str(subAptr[i][linec], KTITCMD);
- if (outkurz > 0 && ktit > 0)
- {
- printf("%%%%\n%%%%> Warning: %d time(s) %s and %d time(s) %s found;\n", outkurz, KURZ, ktit, KTIT);
- printf("%%%% see %s warnings in the output file.\n", KURZ);
- }
+ if (num > 0)
+ {
+ j = i+1;
+ while (j < deep)
+ {
+ if ((numalter = num_of_cmds_in_str(subAptr[j][linec], KTITCMD)) > 0)
+ {
+ num = 0;
+ break;
+ }
+ ++j;
+ }
+ }
- if (outkurz > 0 && ktit > 0) return 1;
- return 0;
-}
+ if (i == 0) { numa = num; }
+ else if (i == 1) { numb = num; }
+ else if (i == 2) { numc = num; }
+ else if (i == 3) { numd = num; }
+ else intern_err(40);
+ if (numa+numb+numc+numd > 1)
+ {
+ if (warndouble < WARNDOUBLEMAX)
+ {
+ printf("%%%%\n%%%%> Warning %s: *Outer* %s used %d times in:\n", subRptr[LINECOL][linec], KTIT, (numa+numb+numc+numd));
+ printV(linec);
+ }
+ ++warndouble;
+ }
+ ++i;
+ }
-int hasinnerentry(const char *p, const char *icmdlist[][2], const int num)
-{
- int r = -1;
+ if (numa > 0) { ++kina; }
+ if (numb > 0) { ++kinb; }
+ if (numc > 0) { ++kinc; }
+ if (numd > 0) { ++kind; }
- while (*p != '\0')
- {
- if (*p == '\\')
- {
- if (*(p+1) == '\\') ++p;
- else
- if ((r=innerentry(p, icmdlist, num)) > -1) break;
- }
- ++p;
- }
+ ++linec;
+ }
- return r;
+ if (warndouble > WARNDOUBLEMAX)
+ printf("%%%%\n%%%%> ... for %d futher entries with multiple %s see file.\n", warndouble-WARNDOUBLEMAX, KTIT);
+
+ if (kina > kinb && kina > kinc && kina > kind) { mostoktitarg = MOST_O_KTIT_ARGONE; /* arg 1 most used */ }
+ else if (kinb > kina && kinb > kinc && kinb > kind) { mostoktitarg = MOST_O_KTIT_ARGTWO; /* arg 2 most used */ }
+ else if (kinc > kina && kinc > kinb && kinc > kind) { mostoktitarg = MOST_O_KTIT_ARGTHREE; /* arg 3 most used */ }
+ else if (kind > kina && kind > kinb && kind > kinc) { mostoktitarg = MOST_O_KTIT_ARGFOUR; /* arg 4 most used */ }
+ else if (kina > 0 || kinb > 0 || kinc > 0 || kind > 0) { mostoktitarg = O_KTIT_NOPREF; /* no preference */ }
+ else { mostoktitarg = O_KTIT_NOTUSED; /* ktit not used */ }
+
+ printf("%%%%> Summary *outer* v-cmds in %s: %s ", suffix, KTIT);
+ if (mostoktitarg == O_KTIT_NOTUSED)
+ {
+ printf("never used.\n");
+ }
+ else
+ if (mostoktitarg == O_KTIT_NOPREF)
+ {
+ printf("defined in different args!\n%%%%\n");
+ /* kina, kinb, kinc, kind save lastused args with \ktit,
+ not all args with \ktit! */
+ }
+ else
+ {
+ if (kina == alllines || kinb == alllines || kinc == alllines || kind == alllines)
+ { if (alllines > 1) printf("in all %d entries ", alllines); }
+ else
+ printf("NOT always ");
+ printf("defined in ");
+ if (alllines > 1)
+ {
+ if (kina == alllines || kinb == alllines || kinc == alllines || kind == alllines);
+ else printf("mostused ");
+ }
+ printf("arg %d.\n", mostoktitarg);
+ if (kina == alllines || kinb == alllines || kinc == alllines || kind == alllines);
+ else printf("%%%% *******\n");
+ }
+ }
+ else
+ {
+ mostoktitarg = O_KTIT_UNINIT; /* ventry != IS_V */
+ }
+
+ return mostoktitarg;
}
-int check_ktit(int nlines, int ventry)
+int check_kandk(int nlines)
{
- int i = 0, ohask = 0, ohasnok = 0, elsehask = 0, shadowedlines = 0, unshadnum = 0, l, ll, badlines = 0;
- int ohk[MAXINFO];
-
- if (ventry != IS_V) return 0;
+ int i = 0;
+ int outkurz = 0;
+ int ktit = 0;
while (i < nlines)
{
- if (subAptr[VCOLS-1][i] == mydefault)
- {
- ++badlines;
- }
- else
- {
- l = num_of_cmds_in_str(subAptr[VCOLS-1][i], KTITCMD);
- unshadnum += (ll=unshielded_cmds_in_str(subAptr[VCOLS-1][i], KTITCMD));
-
- if (l > ll)
- {
- if (shadowedlines == 0)
- printf("%%%%\n%%%%> Warning: { %s } is shadowed by brackets ...\n", KTIT);
- printf("%%%% ... in entry from %s:\n", subRptr[LINECOL][i]);
- printV(i);
- ++shadowedlines;
- }
-
- if (hasinnerentry(subAptr[VCOLS-1][i], innerK_PER_ARQ_cmd, INNERTITLES) > -1)
- {
- if (l > 0)
- {
- ++ohask;
- }
- else
- {
- if (ohasnok < MAXINFO) ohk[ohasnok] = i;
- ++ohasnok;
- }
- }
- else
- if (l > 0)
- ++elsehask;
- }
+ outkurz += num_of_cmds_in_str(lineptr[i], KURZCMD);
+ ktit += num_of_cmds_in_str(lineptr[i], KTITCMD);
++i;
}
- if (shadowedlines > 0) printf("%%%%> A shadowed outer %s can not create %s in your text;\n%%%% a shadowed inner %s can not create a shortened reference in the list.\n%%%%\n", KTIT, ANNOUNCEKTIT, KTIT);
-
- if (badlines > 0)
- printf("%%%%> %s: Can\'t check all entries (%d are corrupt).\n", KTIT, badlines);
-
-
- if (badlines < nlines)
+ if (outkurz > 0 && ktit > 0)
{
-
- if (ohask > 0 && ohasnok > 0)
- {
- printf("%%%%> Info: Items with inner title: %d with outer %s found, %d without.\n", ohask, KTIT, ohasnok);
- }
-
-
- if (ohasnok > 0)
- {
- printf("%%%%\n%%%%> Info: Entries with inner reference and no outer %s ...\n", KTIT);
- i = 0;
- while (i < MAXINFO && i < ohasnok)
- {
- l = ohk[i];
- printf("%%%% ... from %s:\n", subRptr[LINECOL][l]);
- printV(l);
- ++i;
- }
- if (ohasnok > 0)
- printf("%%%%> This have been the first %d (of %d) entries without outer %s.\n%%%%\n", i, ohasnok, KTIT);
- }
-
-
- if ( (shadowedlines == 0 && badlines == 0)
- || (elsehask + ohask == 0 && badlines == 0)
- )
- printf("%%%%> Info: ");
-
-
- if (shadowedlines == 0 && badlines == 0 && (ohask > 0 || elsehask > 0))
- {
- if (elsehask+ohask == nlines) printf("All");
- else printf("NOT all");
- printf(" v-entries have (outer) %s cmds in their last arg", KTIT); /* VCOLS */
- if (elsehask+ohask == nlines) printf(".\n");
- else printf(":\n%%%% In case of %s see messages in the output file.\n", ANNOUNCEKTIT);
-
- if (nlines < unshadnum)
- printf("%%%% I count %d unshadowed %s in %d entries (%d too much).\n", unshadnum, KTIT, nlines, unshadnum-nlines);
- }
- else if (elsehask + ohask == 0 && badlines == 0)
- {
- printf("You\'ve never used %s in last v-args:\n", KTIT);
- printf("%%%% No info on outer %s in output file; no %s done.\n", KTIT, ANNOUNCEKTIT);
- }
+ printf("%%%%\n%%%%> Warning: %d time(s) %s and %d time(s) %s found;\n", outkurz, KURZ, ktit, KTIT);
+ printf("%%%% see %s warnings in the output file.\n", KURZ);
}
-
- l = 1;
- if (elsehask + ohask == 0) l += 4;
- if (ohask > 0 && ohasnok > 0) l += 2;
- if (shadowedlines > 0) ++l;
- return l;
+ if (outkurz > 0 && ktit > 0) return 1;
+ return 0;
}
@@ -8315,14 +8556,15 @@ int lastname_first(int nlines)
void prepareoutput(const char *entry, const char *suffix, int deep, int deepsort, int filec, char *arg_i, char *arg_o, int prep_kill, const char *formO, int ventry, int printsort)
{
+ int mostoktitarg = O_KTIT_UNINIT; /* new in 2.5 */
int nlines = 0, i = 0, extralines = 0, commentANDignlines = 0;
- int filenum = -1, kandkused = 0, oktitused = 0, ex_err;
+ int filenum = -1, kandkused = 0, ex_err;
char *outname = mydefault;
if (arg_o == NULL) outname = makename(arg_i, suffix);
else outname = makename(arg_o, suffix);
- otherktiterr = 0;
+ ktiterr = 0;
thisupperascii = 0;
mystrncpy(this_emp_utf_eight, "", UTF_EIGHT_MAXLEN);
mystrncpy(this_err_utf_eight, "", UTF_EIGHT_MAXLEN);
@@ -8389,7 +8631,7 @@ void prepareoutput(const char *entry, const char *suffix, int deep, int deepsort
}
kandkused = check_kandk(nlines);
- oktitused = check_ktit(nlines, ventry);
+ /* oktitused = check_ktit deleted in 2.5 */
if (ex_n == EXCHANGENAMES)
{
@@ -8408,9 +8650,13 @@ void prepareoutput(const char *entry, const char *suffix, int deep, int deepsort
openfailed(outname);
}
else
- { printf("%%%%> Write %d item(s) to file \"%s\".\n", nlines-commentANDignlines, outname);
- if ((extralines = writelines(nlines, DQCOL, LANCOL, commentANDignlines, deepsort, filec, printsort, kandkused, oktitused)) > 0)
+ {
+ mostoktitarg = fprint_out_ktit(nlines, deep, ventry, suffix);
+ printf("%%%%> Write %d item(s) to file \"%s\".\n", nlines-commentANDignlines, outname);
+ if ((extralines = writelines(nlines, DQCOL, LANCOL, commentANDignlines, deepsort, filec, printsort, kandkused, mostoktitarg)) > 0)
printf("%%%% (Have added %d line(s) containing commands for LaTeX.)\n", extralines);
+ if (ktiterr > 0)
+ printf("%%%%\n%%%%> ** Wrote %d comment(s) into file concerning %s. **\n%%%%\n", ktiterr, KTIT);
}
if (outfile != NULL) { fclose(outfile); fflush(outfile); }
@@ -8579,7 +8825,7 @@ void print_utf_msg(const char err[UTF_EIGHT_MAXERR][UTF_EIGHT_MAXLEN+1], int err
while (j < err_c && j < UTF_EIGHT_MAXERR)
{
printf("%%%%> %s utf8 sequence ", msg_a);
- if (err[j][1] == '\0') printf("consisting only of char "); /* msg changed in 2.4 */
+ if (err[j][1] == '\0') printf("consisting only of octet "); /* msg changed in 2.4, 2.5 */
i = 0; while(err[j][i] != '\0') { printf("%d", ((unsigned char)err[j][i])); if(err[j][i+1] != '\0') printf("-"); ++i; }
a = ((unsigned char)err[j][0]);
@@ -8624,8 +8870,8 @@ int main(int argc, char *argv[])
char *inname = mydefault, *arg_i = NULL, *arg_o = NULL;
- printf("\n%%%%> This is bibsort 2.4 (for help: %s -\?)\n", getmyname(argv[0], 37));
- fprintf(stderr, "%%%% bibsort 2.4 is part of BibArts 2.4 (C) Timo Baumann 2022.\n");
+ printf("\n%%%%> This is bibsort 2.5 (for help: %s -\?)\n", getmyname(argv[0], 37));
+ fprintf(stderr, "%%%% bibsort 2.5 is part of BibArts 2.5 (C) Timo Baumann 2022b.\n");
argc = single_option(argc, argv, "-B", "-b");
@@ -8748,6 +8994,10 @@ int main(int argc, char *argv[])
encode = IS_TONE_ENC;
}
+ /* utf8 new in 2.3 (begin with utf8enc.dfu 2021/01/27 v1.2l),
+ changed in 2.4 (= changes from v1.2l to 2021/06/21 v1.2n),
+ changed in 2.5 (= changes from v1.2n to 2022/06/07 v1.3c)
+ */
argc = single_option(argc, argv, "-utf8", "-UTF8");
if (argc < 0)
{ argc = -argc;
@@ -8916,26 +9166,26 @@ int main(int argc, char *argv[])
/* l = loeschen */
/* e = entkernen */
/* X = weder loeschen noch entkernen */
- /* "----" KHVONUM Positionen: \\onlykurz \\onlyhere \\onlyvoll \\onlyout */
+ /* "----" KHVONUM Positionen: \\onlykurz \\onlyhere \\onlyvoll \\onlyout [new in 2.5:] \\ktit <= X */
- prepareoutput("%\\literentry", VLI_SUFFIX, VCOLS, VCOLS, filec, arg_i, arg_o, kill, "llee", IS_V, printsort);
- prepareoutput("%\\quellentry", VQU_SUFFIX, VCOLS, VCOLS, filec, arg_i, arg_o, kill, "llee", IS_V, printsort);
- prepareoutput("%\\vkcitentry", VKC_SUFFIX, KCOLS, KCOLS, filec, arg_i, arg_o, DOKILLK, "elle", NO_V, printsort);
+ prepareoutput("%\\literentry", VLI_SUFFIX, VCOLS, VCOLS, filec, arg_i, arg_o, kill, "lleeX", IS_V, printsort);
+ prepareoutput("%\\quellentry", VQU_SUFFIX, VCOLS, VCOLS, filec, arg_i, arg_o, kill, "lleeX", IS_V, printsort);
+ prepareoutput("%\\vkcitentry", VKC_SUFFIX, KCOLS, KCOLS, filec, arg_i, arg_o, DOKILLK, "elleX", NO_V, printsort);
- prepareoutput("%\\abkrzentry", ABK_SUFFIX, ACOLS, ACOLSSORT, filec, arg_i, arg_o, DOKILLABBREVS, "llee", NO_V, printsort);
- prepareoutput("%\\perioentry", PER_SUFFIX, PCOLS, PCOLSSORT, filec, arg_i, arg_o, DOKILLREGISTS, "llee", NO_V, printsort);
- prepareoutput("%\\archqentry", ARQ_SUFFIX, PCOLS, PCOLSSORT, filec, arg_i, arg_o, DOKILLREGISTS, "llee", IS_Q, printsort);
+ prepareoutput("%\\abkrzentry", ABK_SUFFIX, ACOLS, ACOLSSORT, filec, arg_i, arg_o, DOKILLABBREVS, "lleeX", NO_V, printsort);
+ prepareoutput("%\\perioentry", PER_SUFFIX, PCOLS, PCOLSSORT, filec, arg_i, arg_o, DOKILLREGISTS, "lleeX", NO_V, printsort);
+ prepareoutput("%\\archqentry", ARQ_SUFFIX, PCOLS, PCOLSSORT, filec, arg_i, arg_o, DOKILLREGISTS, "lleeX", IS_Q, printsort);
- prepareoutput("%\\geogrentry", GRR_SUFFIX, PCOLS, PCOLSSORT, filec, arg_i, arg_o, DOKILLREGISTS, "llee", NO_V, printsort);
- prepareoutput("%\\persrentry", PRR_SUFFIX, PCOLS, PCOLSSORT, filec, arg_i, arg_o, DOKILLREGISTS, "llee", NO_V, printsort);
- prepareoutput("%\\subjrentry", SRR_SUFFIX, PCOLS, PCOLSSORT, filec, arg_i, arg_o, DOKILLREGISTS, "llee", NO_V, printsort);
+ prepareoutput("%\\geogrentry", GRR_SUFFIX, PCOLS, PCOLSSORT, filec, arg_i, arg_o, DOKILLREGISTS, "lleeX", NO_V, printsort);
+ prepareoutput("%\\persrentry", PRR_SUFFIX, PCOLS, PCOLSSORT, filec, arg_i, arg_o, DOKILLREGISTS, "lleeX", NO_V, printsort);
+ prepareoutput("%\\subjrentry", SRR_SUFFIX, PCOLS, PCOLSSORT, filec, arg_i, arg_o, DOKILLREGISTS, "lleeX", NO_V, printsort);
if (encode == IS_BASE_ENC && lastupperascii < 0)
{
printf("%%%%\n%%%%> Default encoding: Gave ASCIIs > 127 like %d NO sorting weight.\n", ((unsigned char)lastupperascii));
- fprintf(stderr, "%%%% Did ignore all ASCIIs > 127. Start me using -utf8 or -t1 \?\n");
+ fprintf(stderr, "%%%% Did not evaluate your ASCIIs > 127. Start me using -utf8 or -t1 \?\n"); /* msg changed in 2.5 */
printf("%%%% *******\n");
}
@@ -8955,7 +9205,7 @@ int main(int argc, char *argv[])
if (encode == IS_UTFE_ENC)
{
- print_utf_msg(err_utf_eight, utf_err_c, "Invalid", "invalid", "found", "ignore all", "invalid", "Are you sure, that your text editor uses utf8 \?");
+ print_utf_msg(err_utf_eight, utf_err_c, "Invalid", "invalid", "found", "not interpret", "invalid", "Are you sure, that your text editor uses utf8 \?"); /* msg changed in 2.5 */
print_utf_msg(emp_utf_eight, utf_emp_c, "Gave", "all your", "no sorting weight", "not know the meaning of", "unknown", "Better replace this sequence(s) by LaTeX-cmds in your text.");
if (lastupperascii == 0) no_upperascii_found_msg("-utf8");
}
diff --git a/macros/latex/contrib/hvfloat/Changes b/macros/latex/contrib/hvfloat/Changes
index 2beb09e670..eb0e9277b8 100644
--- a/macros/latex/contrib/hvfloat/Changes
+++ b/macros/latex/contrib/hvfloat/Changes
@@ -1,4 +1,5 @@
hvfloat.sty:
+2.42 2022-10-02 - fix for twoColumnCaption and multi(sub)floats
2.41 2022-09-01 - another fix full page floats without pagenumber and
without using package floatpag
2.40 2022-07-20 - fix full page floats without pagenumber. We now use
diff --git a/macros/latex/contrib/hvfloat/doc/hvfloat.pdf b/macros/latex/contrib/hvfloat/doc/hvfloat.pdf
index 4b98b8ea73..69b0e9a1a5 100644
--- a/macros/latex/contrib/hvfloat/doc/hvfloat.pdf
+++ b/macros/latex/contrib/hvfloat/doc/hvfloat.pdf
Binary files differ
diff --git a/macros/latex/contrib/hvfloat/latex/hvfloat.sty b/macros/latex/contrib/hvfloat/latex/hvfloat.sty
index b80e7ce0c1..2d2765308e 100644
--- a/macros/latex/contrib/hvfloat/latex/hvfloat.sty
+++ b/macros/latex/contrib/hvfloat/latex/hvfloat.sty
@@ -1,4 +1,4 @@
-%% $Id: hvfloat.sty 596 2022-09-01 13:15:38Z herbert $
+%% $Id: hvfloat.sty 617 2022-10-02 14:25:10Z herbert $
%%
%%
%% IMPORTANT NOTICE:
@@ -16,8 +16,8 @@
%% `hvfloat' offers rotating of captions and objects for floats
%%
\NeedsTeXFormat{LaTeX2e}
-\def\fileversion{2.41}
-\def\filedate{2022/09/01}
+\def\fileversion{2.42}
+\def\filedate{2022/10/02}
\ProvidesPackage{hvfloat}[\filedate\space v\fileversion\space special floating objects (hv)]
\let\hvFloatFileVersion\fileversion
%
@@ -1780,12 +1780,20 @@
\def\setBottomCaption{%
- \begin{\hv@floatType}[!b]%
+ \ifhv@twoColumnCaption
+ \begin{\hv@floatType*}[!b]%
+ \else
+ \begin{\hv@floatType}[!b]%
+ \fi
\expandafter\hvFloatSet\expandafter{\hv@save@setting}%
\ifhv@separatorLine\drawSepLine\fi
\par
\usebox\hvCaptionBox
- \end{\hv@floatType}%
+ \ifhv@twoColumnCaption
+ \end{\hv@floatType*}%
+ \else
+ \end{\hv@floatType}%
+ \fi
}
\def\setPageObject{%
@@ -1827,7 +1835,8 @@
\ExplSyntaxOn
\def\getMultiCaptionAndLabel{%
- \global\sbox\hvCaptionBox{\minipage[b]{\linewidth}%
+ \ifhv@twoColumnCaption\hv@tempWidthA=\textwidth \else \hv@tempWidthA=\linewidth\fi
+ \global\sbox\hvCaptionBox{\minipage[b]{\hv@tempWidthA}%
\captionsetup{aboveskip=\z@,belowskip=\z@,position=below,parbox=none}%,skip=-1ex}%
\expandafter\hvFloatSet\expandafter{\hv@save@setting}%
\parskip=-0.5\baselineskip
diff --git a/macros/latex/contrib/kdpcover/DEPENDS.txt b/macros/latex/contrib/kdpcover/DEPENDS.txt
index e33e267957..c4c670d01b 100644
--- a/macros/latex/contrib/kdpcover/DEPENDS.txt
+++ b/macros/latex/contrib/kdpcover/DEPENDS.txt
@@ -1,11 +1,9 @@
hard iexec
hard xkeyval
hard anyfontsize
-hard tikz
+hard pgf
hard microtype
hard xcolor
-hard graphicx
-hard calc
hard setspace
hard geometry
-hard textpos
+hard textpos \ No newline at end of file
diff --git a/macros/latex/contrib/kdpcover/LICENSE.txt b/macros/latex/contrib/kdpcover/LICENSE.txt
new file mode 100644
index 0000000000..bd949ffdab
--- /dev/null
+++ b/macros/latex/contrib/kdpcover/LICENSE.txt
@@ -0,0 +1,21 @@
+(The MIT License)
+
+Copyright (c) 2021-2022 Yegor Bugayenko
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the 'Software'), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/macros/latex/contrib/kdpcover/README.md b/macros/latex/contrib/kdpcover/README.md
index a3fe02d0f9..a50e85a40a 100644
--- a/macros/latex/contrib/kdpcover/README.md
+++ b/macros/latex/contrib/kdpcover/README.md
@@ -1,4 +1,5 @@
-[![make](https://github.com/yegor256/kdpcover/actions/workflows/latexmk.yml/badge.svg)](https://github.com/yegor256/kdpcover/actions/workflows/latexmk.yml)
+[![make](https://github.com/yegor256/kdpcover/actions/workflows/l3build.yml/badge.svg)](https://github.com/yegor256/kdpcover/actions/workflows/l3build.yml)
+[![CTAN](https://img.shields.io/ctan/v/kdpcover)](https://ctan.org/pkg/kdpcover)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/yegor256/kdpcover/blob/master/LICENSE.txt)
This LaTeX class I use to format covers for [my books](https://www.yegor256.com/books.html),
diff --git a/macros/latex/contrib/kdpcover/cactus.pdf b/macros/latex/contrib/kdpcover/cactus.pdf
new file mode 100644
index 0000000000..f42d027a49
--- /dev/null
+++ b/macros/latex/contrib/kdpcover/cactus.pdf
Binary files differ
diff --git a/macros/latex/contrib/kdpcover/kdpcover.cls b/macros/latex/contrib/kdpcover/kdpcover.cls
deleted file mode 100644
index 9e38b0d3b5..0000000000
--- a/macros/latex/contrib/kdpcover/kdpcover.cls
+++ /dev/null
@@ -1,168 +0,0 @@
-% (The MIT License)
-%
-% Copyright (c) 2021-2022 Yegor Bugayenko
-%
-% Permission is hereby granted, free of charge, to any person obtaining a copy
-% of this software and associated documentation files (the 'Software'), to deal
-% in the Software without restriction, including without limitation the rights
-% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-% copies of the Software, and to permit persons to whom the Software is
-% furnished to do so, subject to the following conditions:
-%
-% The above copyright notice and this permission notice shall be included in all
-% copies or substantial portions of the Software.
-%
-% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-% SOFTWARE.
-
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{kdpcover}[2022/07/03 0.3.0 Cover for Kindle Direct Publishing books]
-\LoadClass{article}
-
-\makeatletter
-\newcommand*\kdp@pages{100}
-\newlength\kdp@xsize
-\setlength\kdp@xsize{6in}
-\newlength\kdp@ysize
-\setlength\kdp@ysize{9in}
-\makeatother
-
-\RequirePackage{iexec}
-
-\RequirePackage{xkeyval}
-
-\makeatletter
-\DeclareOptionX{6x9}{\setlength\kdp@xsize{6in}\setlength\kdp@ysize{9in}}
-\DeclareOptionX{7x10}{\setlength\kdp@xsize{7in}\setlength\kdp@ysize{10in}}
-\DeclareOptionX{8x10}{\setlength\kdp@xsize{8in}\setlength\kdp@ysize{10in}}
-\DeclareOptionX{pages}{\renewcommand*\kdp@pages{#1}}
-\newif\ifkdp@barless
-\DeclareOptionX{barless}{\kdp@barlesstrue}
-\DeclareOptionX{pdf}{%
- \iexec[trace,quiet,stdout=kdpcover-pages-count.txt]{qpdf --show-npages #1 | tr -d '[[:space:]]' | \{ cat; echo \%; \}}%
- \newread\kdp@pagescount%
- \openin\kdp@pagescount=kdpcover-pages-count.txt
- \read\kdp@pagescount to \kdp@pages%
-}
-\ProcessOptionsX\relax\makeatother
-
-\RequirePackage{anyfontsize}
-\RequirePackage{tikz}
-\RequirePackage[letterspace=-50]{microtype}
-\RequirePackage{xcolor}
-\RequirePackage{graphicx}
-\RequirePackage{calc}
-
-\RequirePackage{setspace}
- \setstretch{1.2}
-
-% The height of the page is 9 inches plus 0.125 "bleed" on top and
-% on the bottom.
-% Check this doc: https://kdp.amazon.com/en_US/help/topic/G201953020
-\makeatletter\newlength\kdp@height\makeatother%
-\makeatletter\setlength\kdp@height{0.125in + \kdp@ysize + 0.125in}\makeatother%
-% The width is 6 inches plus 0.125 "bleed" on each side. The width of the
-% "spine" depends on the amount of pages in the book.
-\makeatletter\newlength\kdp@width\makeatother
-\makeatletter\setlength\kdp@width{0.125in + \kdp@xsize + 0.0025in * \kdp@pages + \kdp@xsize + 0.125in}\makeatother
-\RequirePackage{geometry}
- \makeatletter
- \geometry{paperwidth=\kdp@width,paperheight=\kdp@height,left=0pt,right=0pt,top=0pt,bottom=0pt}
- \makeatother
-\RequirePackage[absolute]{textpos}
- \TPGrid{16}{16}
-
-\makeatletter
-\newcommand\putSpine[2][kdpcover-signature]{%
- \ifkdp@barless\else
- \begin{textblock}{2.4}[0.5,0](8,0)%
- \begin{tikzpicture}%
- \node [rectangle, inner sep=0em, fill=black, minimum width=2.4\TPHorizModule, minimum height=16\TPVertModule] at (0,0) {};
- \end{tikzpicture}%
- \end{textblock}%
- \fi
- \begin{textblock}{1}[0.5,0](8,2)%
- \begin{tikzpicture}%
- \node [color=white, inner sep=0cm, outer sep=0cm, rotate=270, minimum height=\TPHorizModule] at (0,0) {
- \Large #2
- };%
- \end{tikzpicture}%
- \end{textblock}%
- \begin{textblock}{2.4}[0.5,1](8,14)%
- \centerline{\includegraphics[width=0.32in]{#1}}%
- \end{textblock}%
-}
-\makeatother
-
-\newcommand\putPicture[1]{%
- \begin{textblock}{4}(10,2)%
- \includegraphics[width=\textwidth]{#1}
- \end{textblock}%
-}
-
-\newcommand\putVolume[1]{%
- \begin{textblock}{2}[1,1](15,14)%
- \raggedleft
- \includegraphics[height=0.4in]{kdpcover-vol-#1}
- \end{textblock}%
-}
-
-\newcommand\putPrice[1]{%
- \begin{textblock}{4}[0,1](1,2)%
- \small #1
- \end{textblock}%
-}
-
-\newcommand\putBack[1]{%
- \begin{textblock}{5}[0,0](1,3)%
- \small #1
- \end{textblock}%
-}
-
-\newcommand\putTitle[1]{%
- \begin{textblock}{5}(10,9)%
- \fontsize{32}{32}\selectfont #1
- \end{textblock}%
-}
-
-\newcommand\putAuthor[1]{%
- \begin{textblock}{4}(10,10)%
- \large by #1
- \end{textblock}%
-}
-
-\newcommand\putTLDR[1]{%
- \begin{textblock}{5}(10,11)%
- TL;DR #1
- \end{textblock}%
-}
-
-\newcommand\putVersion[1]{%
- \begin{textblock}{4}[0,1](10,14)%
- #1
- \quad
- \iexec{git log -n 1 --pretty='format:\%ad' --date='format:\%e-\%b-\%Y'}
- \end{textblock}%
-}
-
-\newcommand\putCopyright[2]{%
- \begin{textblock}{4}[0,1](1,14)%
- \small (c)
- #1 #2
- \end{textblock}%
-}
-
-\AtBeginDocument{%
- \ttfamily%
- \raggedright%
- \setlength\parindent{0pt}%
- \setlength\parskip{0pt}%
- \interfootnotelinepenalty=10000%
-}
-
-\endinput
diff --git a/macros/latex/contrib/kdpcover/kdpcover.dtx b/macros/latex/contrib/kdpcover/kdpcover.dtx
new file mode 100644
index 0000000000..0d3fc2b2b0
--- /dev/null
+++ b/macros/latex/contrib/kdpcover/kdpcover.dtx
@@ -0,0 +1,475 @@
+% \iffalse meta-comment
+% (The MIT License)
+%
+% Copyright (c) 2021-2022 Yegor Bugayenko
+%
+% Permission is hereby granted, free of charge, to any person obtaining a copy
+% of this software and associated documentation files (the 'Software'), to deal
+% in the Software without restriction, including without limitation the rights
+% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+% copies of the Software, and to permit persons to whom the Software is
+% furnished to do so, subject to the following conditions:
+%
+% The above copyright notice and this permission notice shall be included in all
+% copies or substantial portions of the Software.
+%
+% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+% SOFTWARE.
+% \fi
+
+% \CheckSum{0}
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+
+% \GetFileInfo{kdpcover.dtx}
+% \DoNotIndex{\endgroup,\begingroup,\let,\else,\fi,\newcommand,\newenvironment}
+
+% \iffalse
+%<*driver>
+\ProvidesFile{kdpcover.dtx}
+%</driver>
+%<class>\NeedsTeXFormat{LaTeX2e}
+%<class>\ProvidesClass{kdpcover}
+%<*class>
+[02.10.2022 0.4.0 Cover for Kindle Direct Publishing books]
+%</class>
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage[tt=false, type1=true]{libertine}
+\usepackage{href-ul}
+\raggedbottom
+\PageIndex
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+ \DocInput{kdpcover.dtx}
+ \PrintChanges
+ \PrintIndex
+\end{document}
+%</driver>
+% \fi
+
+% \title{|kdpcover|: \LaTeX{} Package \\ for Amazon Book Covers\thanks{The sources are in GitHub at \href{https://github.com/yegor256/kdpcover}{yegor256/kdpcover}}}
+% \author{Yegor Bugayenko \\ \texttt{yegor256@gmail.com}}
+% \date{\filedate, \fileversion}
+%
+% \maketitle
+%
+% \section{Introduction}
+%
+
+% This class will render you a book cover, suitable for Kindle Direct Publishing (KDP).
+% I use it for \href{https://amzn.to/2WMTXWF}{all my books}.
+% This is how you make your \LaTeX{} document look like:
+%\iffalse
+%<*verb>
+%\fi
+\begin{verbatim}
+\documentclass[pages=200,6x9]{kdpcover}
+\begin{document}
+\putSpine{kdpcover, a LaTeX class for KDP books}
+\putVolume{1}
+\putVersion{0.4.0}
+\putPrice{\$0.00}
+\putCopyright{\the\year}{Yegor Bugayenko}
+\putTitle{kdpcover}
+\putAuthor{Yegor Bugayenko}
+\putTLDR{This book will tell you an interesting story!}
+\putPicture{cactus.pdf}
+\end{document}
+\end{verbatim}
+%\iffalse
+%</verb>
+%\fi
+
+% The problem this class solves is the necessity to change the size of the
+% cover PDF according to the number of pages in the book --- the bigger the book,
+% the larger the spine of the book must be. The provided class makes
+% the necessary calculations on-the-fly, using the |qpdf| tool. Obviously,
+% you need to have it installed. Also, you must run pdflatex with
+% the |--shell-escape| option, in order to allow \LaTeX{} to run |qpdf|.
+
+% \section{Class Options}
+
+% \begin{macro}{pages}
+% With |pages| you can set the total count of the pages in the book:
+%\iffalse
+%<*verb>
+%\fi
+\begin{verbatim}
+\documentclass[pages=120]{kdpcover}
+\begin{document}
+\end{document}
+\end{verbatim}
+%\iffalse
+%</verb>
+%\fi
+% \end{macro}
+
+% \begin{macro}{pdf}
+% It's better not to use |pages| option, but let the class calculate
+% the size of your book from the PDF file (using |qpdf| command line
+% tool, which has to be installed):
+%\iffalse
+%<*verb>
+%\fi
+\begin{verbatim}
+\documentclass[pdf=book.pdf]{kdpcover}
+\begin{document}
+\end{document}
+\end{verbatim}
+%\iffalse
+%</verb>
+%\fi
+% \end{macro}
+
+% \begin{macro}{9x6}
+% With this option you can set the size of the page to 6x9 inches.
+% You can also set your own size like this:
+%\iffalse
+%<*verb>
+%\fi
+\begin{verbatim}
+\documentclass[6x9]{kdpcover}
+\setlength\kdpxsize{8.1in}
+\setlength\kdpysize{12.7in}
+\begin{document}
+\end{document}
+\end{verbatim}
+%\iffalse
+%</verb>
+%\fi
+% \end{macro}
+
+% \begin{macro}{barless}
+% To get rid of the black bar at the center of the page, just add
+% |barless| option:
+%\iffalse
+%<*verb>
+%\fi
+\begin{verbatim}
+\documentclass[barless]{kdpcover}
+\begin{document}
+\end{document}
+\end{verbatim}
+%\iffalse
+%</verb>
+%\fi
+% \end{macro}
+
+% \section{Commands}
+
+% \begin{macro}{\putSpine}
+% The |\putSpine| command puts a vertical black spine line with two white elements
+% inside: the text at the top and the logo at the bottom. Make sure
+% the text is short enough so that it doesn't touch the logo. It's
+% a good practice to mention the volume number at the end of the text,
+% if you have more than one volume, e.g. "my book, vol. 1". I suggest
+% using small caps in the text only.
+% \end{macro}
+
+% \begin{macro}{\putVolume}
+% This one prints the volume picture. It is intentionally made large,
+% in order to make it obvious.
+% \end{macro}
+
+% \begin{macro}{\putVersion}
+% This one prints the version and it will also add the date of the latest
+% Git commit in the current directory. If it's not a Git repository,
+% the hash won't be printed.
+% \end{macro}
+
+% \begin{macro}{\putPrice}
+% This one prints the price, which is a good practice to mention, I believe.
+% \end{macro}
+
+% \begin{macro}{\putCopyright}
+% This one prints the copyright short message with the year and the
+% name of the author.
+% \end{macro}
+
+% \begin{macro}{\putCopyright}
+% This one prints the title of the book
+% \end{macro}
+
+% \begin{macro}{\putAuthor}
+% This one prints the author.
+% \end{macro}
+
+% \begin{macro}{\putTLDR}
+% This one prints the TL;DR paragraph, which summarizies the message
+% of the entire book.
+% \end{macro}
+
+% \begin{macro}{\putTLDR}
+% This one prints the front picture. You can use |cactus.pdf|.
+% \end{macro}
+
+% \begin{macro}{\putBack}
+% This is prints the text on the back of the book, which usually I suggest
+% to omit and keep the back empty and white.
+% \end{macro}
+
+% \StopEventually{}
+
+% \section{Implementation}
+
+% \changes{v0.2.0}{2021/07/14}{Initial version}
+
+% First, we define a few internal commands:
+% \begin{macrocode}
+\makeatletter
+\newcommand*\kdp@pages{100}
+\newlength\kdp@xsize
+\setlength\kdp@xsize{6in}
+\newlength\kdp@ysize
+\setlength\kdp@ysize{9in}
+\makeatother
+% \end{macrocode}
+
+% Then, we include |iexec| for being able to execute |qpdf|:
+% \begin{macrocode}
+\RequirePackage{iexec}
+% \end{macrocode}
+
+% Then, we parse class options:
+% \begin{macrocode}
+\RequirePackage{xkeyval}
+\makeatletter
+\DeclareOptionX{6x9}
+ {\setlength\kdp@xsize{6in}\setlength\kdp@ysize{9in}}
+\DeclareOptionX{7x10}
+ {\setlength\kdp@xsize{7in}\setlength\kdp@ysize{10in}}
+\DeclareOptionX{8x10}
+ {\setlength\kdp@xsize{8in}\setlength\kdp@ysize{10in}}
+\DeclareOptionX{pages}
+ {\renewcommand*\kdp@pages{#1}}
+\newif\ifkdp@barless
+\DeclareOptionX{barless}{\kdp@barlesstrue}
+\DeclareOptionX{pdf}{%
+ \iexec[trace,quiet,stdout=kdpcover-pages-count.txt]
+ {qpdf --show-npages #1 | tr -d '[[:space:]]' | \{ cat; echo \%; \}}%
+ \newread\kdp@pagescount%
+ \openin\kdp@pagescount=kdpcover-pages-count.txt
+ \read\kdp@pagescount to \kdp@pages%
+}
+\ProcessOptionsX\relax\makeatother
+% \end{macrocode}
+
+% Then, we include a few useful packages:
+% \begin{macrocode}
+\RequirePackage{anyfontsize}
+\RequirePackage{tikz}
+\RequirePackage[letterspace=-50]{microtype}
+\RequirePackage{xcolor}
+\RequirePackage{graphicx}
+\RequirePackage{calc}
+% \end{macrocode}
+
+% Then, we set spacing using |setspace|:
+% \begin{macrocode}
+\RequirePackage{setspace}
+ \setstretch{1.2}
+% \end{macrocode}
+
+% Then, we set calculate size.
+% The height of the page is 9 inches plus 0.125 "bleed" on top and
+% on the bottom, see \href{https://kdp.amazon.com/en_US/help/topic/G201953020}{this}.
+% The width is 6 inches plus 0.125 "bleed" on each side. The width of the
+% "spine" depends on the amount of pages in the book.
+% \begin{macrocode}
+\makeatletter
+ \newlength\kdp@height
+ \setlength\kdp@height{0.125in + \kdp@ysize + 0.125in}
+ \newlength\kdp@width
+ \setlength\kdp@width{
+ 0.125in + \kdp@xsize
+ + 0.0025in * \kdp@pages
+ + \kdp@xsize + 0.125in}
+\makeatother
+% \end{macrocode}
+
+% Then, we set the size of the page, using |geometry|:
+% \begin{macrocode}
+\RequirePackage{geometry}
+\makeatletter
+\geometry{paperwidth=\kdp@width,paperheight=\kdp@height,
+ left=0pt,right=0pt,top=0pt,bottom=0pt}
+\makeatother
+% \end{macrocode}
+
+% Then, we set coordinates using |textpos|:
+% \begin{macrocode}
+\RequirePackage[absolute]{textpos}
+\TPGrid{16}{16}
+% \end{macrocode}
+
+% \begin{macro}{\putSpine}
+% Then, we define |\putSpine|:
+% \begin{macrocode}
+\makeatletter\newcommand\putSpine[2][kdpcover-signature]{%
+ \ifkdp@barless\else
+ \begin{textblock}{2.4}[0.5,0](8,0)%
+ \begin{tikzpicture}%
+ \node [rectangle, inner sep=0em, fill=black,
+ minimum width=2.4\TPHorizModule,
+ minimum height=16\TPVertModule] at (0,0) {};
+ \end{tikzpicture}%
+ \end{textblock}%
+ \fi
+ \begin{textblock}{1}[0.5,0](8,2)%
+ \begin{tikzpicture}%
+ \node [color=white, inner sep=0cm, outer sep=0cm,
+ rotate=270, minimum height=\TPHorizModule] at (0,0) {
+ \Large #2
+ };%
+ \end{tikzpicture}%
+ \end{textblock}%
+ \begin{textblock}{2.4}[0.5,1](8,14)%
+ \centerline{\includegraphics[width=0.32in]{#1}}%
+ \end{textblock}%
+}\makeatother
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\putPicture}
+% Then, we define |\putPicture|:
+% \begin{macrocode}
+\newcommand\putPicture[1]{%
+ \begin{textblock}{4}(10,2)%
+ \includegraphics[width=\textwidth]{#1}
+ \end{textblock}%
+}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\putVolume}
+% Then, we define |\putVolume|:
+% \begin{macrocode}
+\newcommand\putVolume[1]{%
+ \begin{textblock}{2}[1,1](15,14)%
+ \raggedleft
+ \includegraphics[height=0.4in]{kdpcover-vol-#1}
+ \end{textblock}%
+}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\putPrice}
+% Then, we define |\putPrice|:
+% \begin{macrocode}
+\newcommand\putPrice[1]{%
+ \begin{textblock}{4}[0,1](1,2)%
+ \small #1
+ \end{textblock}%
+}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\putBack}
+% Then, we define |\putBack|:
+% \begin{macrocode}
+\newcommand\putBack[1]{%
+ \begin{textblock}{5}[0,0](1,3)%
+ \small #1
+ \end{textblock}%
+}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\putTitle}
+% Then, we define |\putTitle|:
+% \begin{macrocode}
+\newcommand\putTitle[1]{%
+ \begin{textblock}{5}(10,9)%
+ \fontsize{32}{32}\selectfont #1
+ \end{textblock}%
+}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\putAuthor}
+% Then, we define |\putAuthor|:
+% \begin{macrocode}
+\newcommand\putAuthor[1]{%
+ \begin{textblock}{4}(10,10)%
+ \large by #1
+ \end{textblock}%
+}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\putTLDR}
+% Then, we define |\putTLDR|:
+% \begin{macrocode}
+\newcommand\putTLDR[1]{%
+ \begin{textblock}{5}(10,11)%
+ TL;DR #1
+ \end{textblock}%
+}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\putVersion}
+% Then, we define |\putVersion|:
+% \begin{macrocode}
+\newcommand\putVersion[1]{%
+ \begin{textblock}{4}[0,1](10,14)%
+ #1
+ \quad
+ \iexec{git log -n 1 --pretty='format:\%ad' --date='format:\%e-\%b-\%Y'}
+ \end{textblock}%
+}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\putCopyright}
+% Then, we define |\putCopyright|:
+% \begin{macrocode}
+\newcommand\putCopyright[2]{%
+ \begin{textblock}{4}[0,1](1,14)%
+ \small (c)
+ #1 #2
+ \end{textblock}%
+}
+% \end{macrocode}
+% \end{macro}
+
+% Finally, a few layout instructions:
+% \begin{macrocode}
+\AtBeginDocument{%
+ \ttfamily%
+ \raggedright%
+ \setlength\parindent{0pt}%
+ \setlength\parskip{0pt}%
+ \interfootnotelinepenalty=10000%
+}
+% \end{macrocode}
+
+% \Finale
+
+%\clearpage
+%
+%\PrintChanges
+%\clearpage
+%\PrintIndex
diff --git a/macros/latex/contrib/kdpcover/kdpcover.ins b/macros/latex/contrib/kdpcover/kdpcover.ins
new file mode 100644
index 0000000000..e5b5eccbd5
--- /dev/null
+++ b/macros/latex/contrib/kdpcover/kdpcover.ins
@@ -0,0 +1,55 @@
+%% (The MIT License)
+%%
+%% Copyright (c) 2021-2022 Yegor Bugayenko
+%%
+%% Permission is hereby granted, free of charge, to any person obtaining a copy
+%% of this software and associated documentation files (the 'Software'), to deal
+%% in the Software without restriction, including without limitation the rights
+%% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+%% copies of the Software, and to permit persons to whom the Software is
+%% furnished to do so, subject to the following conditions:
+%%
+%% The above copyright notice and this permission notice shall be included in all
+%% copies or substantial portions of the Software.
+%%
+%% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+%% SOFTWARE.
+
+\input docstrip.tex
+\keepsilent
+\usedir{macros/latex/contrib/kdpcover}
+\preamble
+(The MIT License)
+
+Copyright (c) 2021-2022 Yegor Bugayenko
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the 'Software'), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+\endpreamble
+\generate{\file{kdpcover.cls}{\from{kdpcover.dtx}{class}}}
+\obeyspaces
+\Msg{*** To finish the installation you have to move the ".cls"}
+\Msg{*** file into a directory searched by TeX. To produce the}
+\Msg{*** documentation run the file ".dtx" through LaTeX. If any}
+\Msg{*** questions, submit a new GitHub issue.}
+\endbatchfile
diff --git a/macros/latex/contrib/kdpcover/kdpcover.pdf b/macros/latex/contrib/kdpcover/kdpcover.pdf
index 984c26469b..a59838ee2a 100644
--- a/macros/latex/contrib/kdpcover/kdpcover.pdf
+++ b/macros/latex/contrib/kdpcover/kdpcover.pdf
Binary files differ
diff --git a/macros/latex/contrib/kdpcover/kdpcover.tex b/macros/latex/contrib/kdpcover/kdpcover.tex
deleted file mode 100644
index 793ba90b01..0000000000
--- a/macros/latex/contrib/kdpcover/kdpcover.tex
+++ /dev/null
@@ -1,93 +0,0 @@
-% (The MIT License)
-%
-% Copyright (c) 2021-2022 Yegor Bugayenko
-%
-% Permission is hereby granted, free of charge, to any person obtaining a copy
-% of this software and associated documentation files (the 'Software'), to deal
-% in the Software without restriction, including without limitation the rights
-% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-% copies of the Software, and to permit persons to whom the Software is
-% furnished to do so, subject to the following conditions:
-%
-% The above copyright notice and this permission notice shall be included in all
-% copies or substantial portions of the Software.
-%
-% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-% SOFTWARE.
-
-% Here we set the total count of the pages in the book and set the size
-% of the page to 6x9 inches. You can set your own size like this:
-% \setlength\kdpxsize{8.1in}
-% \setlength\kdpysize{12.7in}
-% It's better not to use "pages" option here, but to let it calculate
-% the size of your book from the PDF file. Just say "pdf=book.pdf" and it
-% will be calculated automatically.
-%
-% To get rid of the black bar at the center of the page, just add
-% "barless" option here.
-\documentclass[pages=200,6x9]{kdpcover}
-
-\begin{document}
-% Here we put the vertical black spine line with two white elements
-% inside: the text at the top and the logo at the bottom. Make sure
-% the text is short enough so that it doesn't touch the logo. It's
-% a good practice to mention the volume number at the end of the text,
-% if you have more than one volume, e.g. "my book, vol. 1". I suggest
-% using small caps in the text only.
-\putSpine{kdpcover, a LaTeX class for KDP books}
-
-% This one prints the volume picture. It is intentionally made large,
-% in order to make it obvious.
-\putVolume{1}
-
-% Here we print the version and it will also add the date of the latest
-% Git commit in the current directory. If it's not a Git repository,
-% the date won't be printed.
-\putVersion{0.3.0}
-
-% This prints the price, which is a good practice to mention, I believe.
-\putPrice{\$0.00}
-
-% This one prints the copyright short message with the year and the
-% name of the autor.
-\putCopyright{\the\year}{Yegor Bugayenko}
-
-% Here we print the title of the book
-\putTitle{kdpcover}
-
-% Here we print the author.
-\putAuthor{Yegor Bugayenko}
-
-% Here we print the TL;DR paragraph, which summarizies the message
-% of the entire book.
-\putTLDR{I use this LaTeX class to design covers for my books published
-by Kindle Direct Publishing; you also can do it, provided you like the layout and the style.}
-
-% The picture.
-\putPicture{cactus.pdf}
-
-% This is the text on the back of the book, which usually I suggest
-% to omit and keep the back empty and white.
-\putBack{
- You need to either specify the number of pages
- in your PDF book, or provide the path to the PDF.
- In the latter case, the pages will be counted using
- "qpdf," which has to be installed:
- \newline\newline
- \char`\\documentclass[pages=200,pdf=book.pdf]\string{kdpcover\string}\newline
- \char`\\begin\string{document\string}\newline
- \char`\\putSpine\string{my book\string}\newline
- \char`\\end\string{document\string}
- \newline\newline
- See the file "kdpcover.tex" for a full example with all
- available commands and class options.
- \newline\newline
- Even more details you can find on GitHub:\newline
- https://github.com/yegor256/kdpcover
-}
-\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/srdp-mathematik/README.md b/macros/latex/contrib/srdp-mathematik/README.md
index dae98aacba..d9add6410e 100644
--- a/macros/latex/contrib/srdp-mathematik/README.md
+++ b/macros/latex/contrib/srdp-mathematik/README.md
@@ -1,4 +1,4 @@
-# srdp-mathematik.sty v1.10.1
+# srdp-mathematik.sty v1.10.2
This package provides basic commands for the defined formats of the Austrian sRDP in mathematics.
Furthermore, it includes ways to implement answers in the tex file, which can be voluntarily displayed in the pdf file and
diff --git a/macros/latex/contrib/srdp-mathematik/srdp-mathematik.pdf b/macros/latex/contrib/srdp-mathematik/srdp-mathematik.pdf
index 7b0ef3ce76..3fa05e4243 100644
--- a/macros/latex/contrib/srdp-mathematik/srdp-mathematik.pdf
+++ b/macros/latex/contrib/srdp-mathematik/srdp-mathematik.pdf
Binary files differ
diff --git a/macros/latex/contrib/srdp-mathematik/srdp-mathematik.sty b/macros/latex/contrib/srdp-mathematik/srdp-mathematik.sty
index 5e46806938..d0bbee7b01 100644
--- a/macros/latex/contrib/srdp-mathematik/srdp-mathematik.sty
+++ b/macros/latex/contrib/srdp-mathematik/srdp-mathematik.sty
@@ -10,7 +10,7 @@
%
\NeedsTeXFormat{LaTeX2e}[1996/12/26]
-\ProvidesPackage{srdp-mathematik}[2022/09/11 v1.10.1 Standard-Schularbeitsformate]
+\ProvidesPackage{srdp-mathematik}[2022/10/02 v1.10.2 Standard-Schularbeitsformate]
\usepackage{color}
@@ -411,7 +411,7 @@ Erreichte Punkte &Gesamt&\multicolumn{2}{c}{Note}& \\
&\multirow{2}{*}{\thepunkte} &&& \\}
&&&& \\ \hline \hline
\ifthenelse{\equal{#3}{ms}}{}{\scriptsize{Sehr gut}} & \ifthenelse{\equal{#3}{ms}}{}{\scriptsize{Gut}} & \scriptsize{Befriedigend} & \scriptsize{Gen\"ugend} & \scriptsize{Nicht gen\"ugend} \\
-\ifthenelse{\equal{#3}{ms}}{}{\scriptsize{\thepunkte ~ - \ifdim\gut pt=\gutgenau pt \gut\else\gutpluseins\fi}}& \ifthenelse{\equal{#3}{ms}}{}{\scriptsize{\ifdim\gut pt=\gutgenau pt \gutminuseins\else\gut\fi \ifthenelse{\equal{#1}{1/2}}{,5}{} ~ - \ifdim\befriedigend pt=\befriedigendgenau pt \befriedigend\else\befriedigendpluseins\fi}} & \scriptsize{\ifdim\befriedigend pt=\befriedigendgenau pt \befriedigendminuseins\else\befriedigend\fi \ifthenelse{\equal{#1}{1/2}}{,5}{} ~ - \ifdim\genuegend pt=\genuegendgenau pt \genuegend\else\genuegendpluseins\fi} & \scriptsize{\ifdim\genuegend pt=\genuegendgenau pt \genuegendminuseins\else\genuegend\fi \ifthenelse{\equal{#1}{1/2}}{,5}{} ~ - \ifdim\nichtgenuegend pt=\nichtgenuegendgenau pt \nichtgenuegend\else\nichtgenuegendpluseins\fi} & \scriptsize{unter \ifdim\nichtgenuegend pt=\nichtgenuegendgenau pt \nichtgenuegend\else\nichtgenuegendpluseins\fi} \\ \hline
+\ifthenelse{\equal{#3}{ms}}{}{\scriptsize{\thepunkte\ ~-~ \ifdim\gut pt=\gutgenau pt \gut\else\gutpluseins\fi}}& \ifthenelse{\equal{#3}{ms}}{}{\scriptsize{\ifdim\gut pt=\gutgenau pt \gutminuseins\else\gut\fi \ifthenelse{\equal{#1}{1/2}}{,5}{} ~-~ \ifdim\befriedigend pt=\befriedigendgenau pt \befriedigend\else\befriedigendpluseins\fi}} & \scriptsize{\ifdim\befriedigend pt=\befriedigendgenau pt \befriedigendminuseins\else\befriedigend\fi \ifthenelse{\equal{#1}{1/2}}{,5}{} ~-~ \ifdim\genuegend pt=\genuegendgenau pt \genuegend\else\genuegendpluseins\fi} & \scriptsize{\ifdim\genuegend pt=\genuegendgenau pt \genuegendminuseins\else\genuegend\fi \ifthenelse{\equal{#1}{1/2}}{,5}{} ~-~ \ifdim\nichtgenuegend pt=\nichtgenuegendgenau pt \nichtgenuegend\else\nichtgenuegendpluseins\fi} & \scriptsize{unter \ifdim\nichtgenuegend pt=\nichtgenuegendgenau pt \nichtgenuegend\else\nichtgenuegendpluseins\fi} \\ \hline
\end{tabular}
\end{center}\STautoround{}\normalsize}
@@ -429,36 +429,46 @@ Erreichte Punkte &Gesamt&\multicolumn{2}{c}{Note}& \\
&\multirow{2}{*}{\ifthenelse{\equal{#1}{}}{\thepunkte}{#1}} &&& \\}
&&&& \\ \hline \hline
\scriptsize{Sehr gut} & \scriptsize{Gut} & \scriptsize{Befriedigend} & \scriptsize{Gen\"ugend} & \scriptsize{Nicht gen\"ugend} \\
-\scriptsize{\ifthenelse{\equal{#1}{}}{\thepunkte}{#1} ~ - #3}& \scriptsize{#4 ~ - #5} & \scriptsize{#6 ~ - #7} & \scriptsize{#8 ~ - #9} & \scriptsize{unter #9} \\ \hline
+\scriptsize{\ifthenelse{\equal{#1}{}}{\thepunkte\ }{#1} ~-~ #3}& \scriptsize{#4 ~-~ #5} & \scriptsize{#6 ~-~ #7} & \scriptsize{#8 ~-~ #9} & \scriptsize{unter #9} \\ \hline
\end{tabular}
\end{center}\normalsize}
-\NewDocumentCommand{\punkteverteilung}{ O{} O{} O{} m m m m}{
+\NewDocumentCommand{\punkteverteilung}{ O{} m m m m}{
\null\vfill
\STautoround{3}\renewcommand{\arraystretch}{0}\tiny
\begin{spreadtab}[\STsavecell\gutgenau{b2} \STsavecell\befriedigendgenau{c2} \STsavecell\genuegendgenau{d2} \STsavecell\nichtgenuegendgenau{e2}
\STsavecell\gut{b3} \STsavecell\befriedigend{c3} \STsavecell\genuegend{d3} \STsavecell\nichtgenuegend{e3}
\STsavecell\gutpluseins{b4} \STsavecell\befriedigendpluseins{c4} \STsavecell\genuegendpluseins{d4} \STsavecell\nichtgenuegendpluseins{e4} \STsavecell\gutminuseins{b5} \STsavecell\befriedigendminuseins{c5} \STsavecell\genuegendminuseins{d5} \STsavecell\nichtgenuegendminuseins{e5}]{{tabular}{ccccc}}
\SThidecol\thepunkte &\SThidecol 1 &\SThidecol2 &\SThidecol 3 &\SThidecol 4 \\
- & a1*#4 &a1*#5 & a1*#6 & a1*#7 \\
- &trunc(a1*#4,0) & trunc(a1*#5,0) &trunc(a1*#6,0) &trunc(a1*#7,0) \\
+ & a1*#2 &a1*#3 & a1*#4 & a1*#5 \\
+ &trunc(a1*#2,0) & trunc(a1*#3,0) &trunc(a1*#4,0) &trunc(a1*#5,0) \\
&b3+1 &c3+1 &d3+1 & e3+1\\
&b3-1 &c3-1 &d3-1 & e3-1\\
\end{spreadtab}
\footnotesize\renewcommand{\arraystretch}{1}
\begin{center}
\begin{tabular}{|C{3cm}C{3cm}C{3cm}C{3cm}C{3cm}|}\hline
-\ifthenelse{\equal{#3}{ms}}{}{\scriptsize{Sehr gut}} & \ifthenelse{\equal{#3}{ms}}{}{\scriptsize{Gut}} & \scriptsize{Befriedigend} & \scriptsize{Gen\"ugend} & \scriptsize{Nicht gen\"ugend} \\
-\ifthenelse{\equal{#3}{ms}}{}{\scriptsize{\thepunkte ~ - \ifdim\gut pt=\gutgenau pt \gut\else\gutpluseins\fi}}& \ifthenelse{\equal{#3}{ms}}{}{\scriptsize{\ifdim\gut pt=\gutgenau pt \gutminuseins\else\gut\fi \ifthenelse{\equal{#1}{1/2}}{,5}{} ~ - \ifdim\befriedigend pt=\befriedigendgenau pt \befriedigend\else\befriedigendpluseins\fi}} & \scriptsize{\ifdim\befriedigend pt=\befriedigendgenau pt \befriedigendminuseins\else\befriedigend\fi \ifthenelse{\equal{#1}{1/2}}{,5}{} ~ - \ifdim\genuegend pt=\genuegendgenau pt \genuegend\else\genuegendpluseins\fi} & \scriptsize{\ifdim\genuegend pt=\genuegendgenau pt \genuegendminuseins\else\genuegend\fi \ifthenelse{\equal{#1}{1/2}}{,5}{} ~ - \ifdim\nichtgenuegend pt=\nichtgenuegendgenau pt \nichtgenuegend\else\nichtgenuegendpluseins\fi} & \scriptsize{unter \ifdim\nichtgenuegend pt=\nichtgenuegendgenau pt \nichtgenuegend\else\nichtgenuegendpluseins\fi} \\ \hline
+\scriptsize{Sehr gut} & \scriptsize{Gut} & \scriptsize{Befriedigend} & \scriptsize{Gen\"ugend} & \scriptsize{Nicht gen\"ugend} \\
+\scriptsize{\thepunkte\ ~-~ \ifdim\gut pt=\gutgenau pt \gut\else\gutpluseins\fi}& \scriptsize{\ifdim\gut pt=\gutgenau pt \gutminuseins\else\gut\fi \ifthenelse{\equal{#1}{1/2}}{,5}{} ~-~ \ifdim\befriedigend pt=\befriedigendgenau pt \befriedigend\else\befriedigendpluseins\fi} & \scriptsize{\ifdim\befriedigend pt=\befriedigendgenau pt \befriedigendminuseins\else\befriedigend\fi \ifthenelse{\equal{#1}{1/2}}{,5}{} ~-~ \ifdim\genuegend pt=\genuegendgenau pt \genuegend\else\genuegendpluseins\fi} & \scriptsize{\ifdim\genuegend pt=\genuegendgenau pt \genuegendminuseins\else\genuegend\fi \ifthenelse{\equal{#1}{1/2}}{,5}{} ~-~ \ifdim\nichtgenuegend pt=\nichtgenuegendgenau pt \nichtgenuegend\else\nichtgenuegendpluseins\fi} & \scriptsize{unter \ifdim\nichtgenuegend pt=\nichtgenuegendgenau pt \nichtgenuegend\else\nichtgenuegendpluseins\fi} \\ \hline
\end{tabular}
\end{center}\STautoround{}\normalsize}
-% for legacy reason
-\newcommand{\notenschluesselop}[5][1]{\notenschluessel[#1]{#2}{#3}{#4}{#5}}
-%%%%%%%%%%%%%%%%%
-%
+
+
+\NewDocumentCommand{\individualpunkteverteilung}{m m m m m m m}{
+\null\vfill
+\footnotesize\renewcommand{\arraystretch}{1}
+\begin{center}
+\begin{tabular}{|C{3cm}C{3cm}C{3cm}C{3cm}C{3cm}|}\hline
+\scriptsize{Sehr gut} & \scriptsize{Gut} & \scriptsize{Befriedigend} & \scriptsize{Gen\"ugend} & \scriptsize{Nicht gen\"ugend} \\
+\scriptsize{\thepunkte\ ~-~ #1}& \scriptsize{#2 ~-~ #3} & \scriptsize{#4 ~-~ #5} & \scriptsize{#6 ~-~ #7} & \scriptsize{unter #7} \\ \hline
+\end{tabular}
+\end{center}\normalsize}
+
+
+
%%%%%%%%%%%%%%%%%% GAP DEFINITION
%
%
@@ -537,9 +547,9 @@ title1/.initial=,
\newcounter{teilzwei}
-\newcommand{\beurteilung}[5]{
+\newcommand{\beurteilung}[6][]{
\bgroup
-\jeroen@set@keys{#5}%
+\jeroen@set@keys{#6}%
\setcounter{teileins}{\jeroen@get{T1}}%
\setcounter{teilzwei}{\jeroen@get{T2}}%
\FPeval{total}{clip(\jeroen@get{T1}+\jeroen@get{T2})}%
@@ -556,80 +566,31 @@ Teil 2 &\jeroen@get{T2} &\\\hline
Beurteilung: \rule{10.5cm}{0.4pt}
\end{center}
-\defgesamtpunkte{\total}\punkteverteilung[1/2]{#1}{#2}{#3}{#4}\defgesamtpunkte{0}
+\defgesamtpunkte{\total}\punkteverteilung[#1]{#2}{#3}{#4}{#5}\defgesamtpunkte{0}
\egroup
}
-\newcommand{\beurteilungsraster}[5]{
-\bgroup
- \jeroen@set@keys{#5}
-\setcounter{teileins}{\jeroen@get{T1}}
-\setcounter{ausgleichspkte}{\jeroen@get{AP}}
-\setcounter{teilzwei}{\jeroen@get{T2}}
-\STautoround{0}
-\begin{spreadtab}[\STsavecell{\positiv}{b1} \STsavecell{\gesamtpunkte}{c1}]{{tabular}{ccc}}
- \SThiderow &\theteileins/3*2 & \theteileins+\theausgleichspkte+\theteilzwei \\
-\end{spreadtab}
-
-
-\small
-Die Schularbeit besteht aus Teil 1 (Grundkompetenzen) und Teil 2 (vernetzte und erweiterte Grundkompetenzen). In Teil 1 und Teil 2 sind jeweils \jeroen@get{T1} Punkte zu erreichen. \jeroen@get{AP} Punkte aus Teil 2 k\"onnen zum Ausgleich fehlender Grundkompetenzpunkte aus Teil 1 herangezogen werden. Diese sind in der Angabe mit \fbox{A} gekennzeichnet.
-
-\tiny
-\STautoround{0}
-\begin{spreadtab}[\STsavecell\brzweigrenze{f1} \STsavecell\gut{b2} \STsavecell\befriedigend{c2} \STsavecell{\genuegend}{d2} \STsavecell{\nichtgenuegend}{e2} \STsavecell\brzweibefriedigend{f2} \STsavecell{\gutminuseins}{b3} \STsavecell{\befriedigendminuseins}{c3} \STsavecell{\genuegendminuseins}{d3} \STsavecell\brzweigrenzeminuseins{e3} \STsavecell\brzweibefriedigendminuseins{f3}]{{tabular}{cccccc}}
-\SThidecol \gesamtpunkte & \SThidecol 1 &\SThidecol 2 & \SThidecol 3 &\SThidecol 4 & \SThidecol \gesamtpunkte*0.75\\ % \SThidecol
-&a1*#1 &a1*#2 &a1*#3 &a1*#4 & \gesamtpunkte*0.6\\
-& b2-1 &c2-1 &d2-1 & f1-1 & f2-1\\ %\SThiderow
-\end{spreadtab}
-\small
-
-\textbf{Zwei Beurteilungswege}
-
-\begin{enumerate}[1)]
- \item Wenn mindestens \positiv~Punkte aus Teil 1, allenfalls unter Einbeziehung der Ausgleichspunkte aus \mbox{Teil 2} erreicht werden, gilt folgender Beurteilungsschlüssel:\vspace{0.3cm}
-
-\footnotesize
-\begin{tabular}{C{2.8cm}C{2.8cm}C{2.8cm}C{2.8cm}C{2.8cm}}
-\scriptsize{Sehr gut} & \scriptsize{Gut} & \scriptsize{Befriedigend} & \scriptsize{Gen\"ugend} & \scriptsize{Nicht gen\"ugend} \\
-\scriptsize{\gesamtpunkte ~-~ \gut} & \scriptsize{\gutminuseins,5 ~-~ \befriedigend} & \scriptsize{\befriedigendminuseins,5 ~-~ \genuegend} & \scriptsize{\genuegendminuseins,5 ~-~ \nichtgenuegend} & \scriptsize{unter \nichtgenuegend} \\
-\end{tabular}
-\STautoround{}\vspace{0.3cm}
-
-\small
-\item Wenn weniger als \positiv\ Punkte aus Teil 1, allenfalls unter Einbeziehung der Ausgleichspunkte aus \mbox{Teil 2} erreicht werden, dann kann auf diesem Weg ein \glqq Gen\"ugend\grqq\ oder \glqq Befriedigend\grqq\ erreicht werden: \vspace{0.3cm}
-
-\footnotesize
-\begin{tabular}{C{2.8cm}C{2.8cm}}
-\scriptsize{Befriedigend} & \scriptsize{Gen\"ugend} \\
-\scriptsize{\brzweigrenzeminuseins,5 ~-~ \brzweibefriedigend} & \scriptsize{\brzweibefriedigendminuseins,5 ~-~\genuegend}\\
-\end{tabular}
-\STautoround{} \vspace{0.3cm}
-
-\small
-Ab \brzweigrenze\ erreichten Punkten gilt der unter 1) angeführte Beurteilungsschlüssel.
-
-Die Arbeit wird mit \glqq Nicht genügend\grqq\ beurteilt, wenn im Teil 1 unter Berücksichtigung der \jeroen@get{AP} Ausgleichspunkte aus Teil 2 weniger als \nichtgenuegend\ Punkte und insgesamt weniger als \genuegend\ Punkte erreicht wurden.
-\end{enumerate} \leer
-\vfil
+\newcommand{\individualbeurteilung}[8]{
+\bgroup
+\jeroen@set@keys{#8}%
+\setcounter{teileins}{\jeroen@get{T1}}%
+\setcounter{teilzwei}{\jeroen@get{T2}}%
+\FPeval{total}{clip(\jeroen@get{T1}+\jeroen@get{T2})}%
-\renewcommand{\arraystretch}{1.5}
\begin{center}
+\renewcommand{\arraystretch}{1.5}
\begin{tabular}{p{5cm}p{4cm}l}
&Punkte&davon erreicht\\ \hline
-Teil 1&\jeroen@get{T1}&\\ \hline
-Teil 2: Ausgleichspunkte & \jeroen@get{AP} &\\ \hline
-&Zwischensumme &\\ \hline
-Teil 2: sonstige Punkte &\jeroen@get{T2} &\\ \hline
-& $\Sigma=\gesamtpunkte$ & \\ \hline
-Beurteilungsweg & \fbox{1} oder \fbox{2} \\ \hline
-\end{tabular}
-\vspace{1cm}
+Teil 1&\jeroen@get{T1}&\\\hline
+Teil 2 &\jeroen@get{T2} &\\\hline
+& $\Sigma= \total$ & \\\hline
+\end{tabular}\vspace{1.5cm}
-Beurteilung: \rule{8cm}{0.4pt}
+Beurteilung: \rule{10.5cm}{0.4pt}
\end{center}
-\renewcommand{\arraystretch}{1}
+
+\defgesamtpunkte{\total}\individualpunkteverteilung{#1}{#2}{#3}{#4}{#5}{#6}{#7}\defgesamtpunkte{0}
\egroup
}
@@ -1099,6 +1060,92 @@ Complete the following sentence by putting a cross next to one of the given poss
\end{tabu}\leer
\egroup}
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%% OBSOLETE COMMANDS -- FOR LEGACY REASONS %%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcommand{\notenschluesselop}[5][1]{\notenschluessel[#1]{#2}{#3}{#4}{#5}}
+%%%%%%%%%%%%%%%%%
+
+\newcommand{\beurteilungsraster}[5]{
+\bgroup
+ \jeroen@set@keys{#5}
+\setcounter{teileins}{\jeroen@get{T1}}
+\setcounter{ausgleichspkte}{\jeroen@get{AP}}
+\setcounter{teilzwei}{\jeroen@get{T2}}
+\STautoround{0}
+\begin{spreadtab}[\STsavecell{\positiv}{b1} \STsavecell{\gesamtpunkte}{c1}]{{tabular}{ccc}}
+ \SThiderow &\theteileins/3*2 & \theteileins+\theausgleichspkte+\theteilzwei \\
+\end{spreadtab}
+
+
+\small
+Die Schularbeit besteht aus Teil 1 (Grundkompetenzen) und Teil 2 (vernetzte und erweiterte Grundkompetenzen). In Teil 1 und Teil 2 sind jeweils \jeroen@get{T1} Punkte zu erreichen. \jeroen@get{AP} Punkte aus Teil 2 k\"onnen zum Ausgleich fehlender Grundkompetenzpunkte aus Teil 1 herangezogen werden. Diese sind in der Angabe mit \fbox{A} gekennzeichnet.
+
+\tiny
+\STautoround{0}
+\begin{spreadtab}[\STsavecell\brzweigrenze{f1} \STsavecell\gut{b2} \STsavecell\befriedigend{c2} \STsavecell{\genuegend}{d2} \STsavecell{\nichtgenuegend}{e2} \STsavecell\brzweibefriedigend{f2} \STsavecell{\gutminuseins}{b3} \STsavecell{\befriedigendminuseins}{c3} \STsavecell{\genuegendminuseins}{d3} \STsavecell\brzweigrenzeminuseins{e3} \STsavecell\brzweibefriedigendminuseins{f3}]{{tabular}{cccccc}}
+\SThidecol \gesamtpunkte & \SThidecol 1 &\SThidecol 2 & \SThidecol 3 &\SThidecol 4 & \SThidecol \gesamtpunkte*0.75\\ % \SThidecol
+&a1*#1 &a1*#2 &a1*#3 &a1*#4 & \gesamtpunkte*0.6\\
+& b2-1 &c2-1 &d2-1 & f1-1 & f2-1\\ %\SThiderow
+\end{spreadtab}
+\small
+
+\textbf{Zwei Beurteilungswege}
+
+\begin{enumerate}[1)]
+ \item Wenn mindestens \positiv~Punkte aus Teil 1, allenfalls unter Einbeziehung der Ausgleichspunkte aus \mbox{Teil 2} erreicht werden, gilt folgender Beurteilungsschlüssel:\vspace{0.3cm}
+
+\footnotesize
+\begin{tabular}{C{2.8cm}C{2.8cm}C{2.8cm}C{2.8cm}C{2.8cm}}
+\scriptsize{Sehr gut} & \scriptsize{Gut} & \scriptsize{Befriedigend} & \scriptsize{Gen\"ugend} & \scriptsize{Nicht gen\"ugend} \\
+\scriptsize{\gesamtpunkte ~-~ \gut} & \scriptsize{\gutminuseins,5 ~-~ \befriedigend} & \scriptsize{\befriedigendminuseins,5 ~-~ \genuegend} & \scriptsize{\genuegendminuseins,5 ~-~ \nichtgenuegend} & \scriptsize{unter \nichtgenuegend} \\
+\end{tabular}
+\STautoround{}\vspace{0.3cm}
+
+\small
+\item Wenn weniger als \positiv\ Punkte aus Teil 1, allenfalls unter Einbeziehung der Ausgleichspunkte aus \mbox{Teil 2} erreicht werden, dann kann auf diesem Weg ein \glqq Gen\"ugend\grqq\ oder \glqq Befriedigend\grqq\ erreicht werden: \vspace{0.3cm}
+
+\footnotesize
+\begin{tabular}{C{2.8cm}C{2.8cm}}
+\scriptsize{Befriedigend} & \scriptsize{Gen\"ugend} \\
+\scriptsize{\brzweigrenzeminuseins,5 ~-~ \brzweibefriedigend} & \scriptsize{\brzweibefriedigendminuseins,5 ~-~\genuegend}\\
+\end{tabular}
+\STautoround{} \vspace{0.3cm}
+
+\small
+Ab \brzweigrenze\ erreichten Punkten gilt der unter 1) angeführte Beurteilungsschlüssel.
+
+Die Arbeit wird mit \glqq Nicht genügend\grqq\ beurteilt, wenn im Teil 1 unter Berücksichtigung der \jeroen@get{AP} Ausgleichspunkte aus Teil 2 weniger als \nichtgenuegend\ Punkte und insgesamt weniger als \genuegend\ Punkte erreicht wurden.
+
+\end{enumerate} \leer
+\vfil
+
+\renewcommand{\arraystretch}{1.5}
+\begin{center}
+\begin{tabular}{p{5cm}p{4cm}l}
+&Punkte&davon erreicht\\ \hline
+Teil 1&\jeroen@get{T1}&\\ \hline
+Teil 2: Ausgleichspunkte & \jeroen@get{AP} &\\ \hline
+&Zwischensumme &\\ \hline
+Teil 2: sonstige Punkte &\jeroen@get{T2} &\\ \hline
+& $\Sigma=\gesamtpunkte$ & \\ \hline
+Beurteilungsweg & \fbox{1} oder \fbox{2} \\ \hline
+\end{tabular}
+\vspace{1cm}
+
+Beurteilung: \rule{8cm}{0.4pt}
+\end{center}
+\renewcommand{\arraystretch}{1}
+\egroup
+}
+
+
+
%%%%%%%%%%%%%%%%%%%%%%%%%% Zusatz: änderung für chemie-package %%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%
diff --git a/macros/latex/contrib/srdp-mathematik/srdp-mathematik.tex b/macros/latex/contrib/srdp-mathematik/srdp-mathematik.tex
index 9468954d3c..1c7d82e696 100644
--- a/macros/latex/contrib/srdp-mathematik/srdp-mathematik.tex
+++ b/macros/latex/contrib/srdp-mathematik/srdp-mathematik.tex
@@ -55,7 +55,7 @@ hidelinks
\vfill
-\Huge The \textit{srdp-mathematik} package v1.10.1\\[1cm]
+\Huge The \textit{srdp-mathematik} package v1.10.2\\[1cm]
Documentation \\ [1cm]
@@ -287,6 +287,17 @@ Der Befehl \texttt{\textbackslash beurteilung} ist ein für Schularbeiten angepa
T2={8}, % Punkte im Teil 2
}
+
+\subsubsection{\texttt{\textbackslash individualbeurteilung}}
+Analog zum individuellen Notenschlüssel kann auch das Beurteilungsschema beliebig durch die direkte Eingabe aller Punktegrenzen angepasst werden.
+
+\begin{verbatim}
+\individualbeurteilung{21}{20,5}{18}{17,5}{15}{14,5}{12}{ % Prozentschluessel
+ T1={16}, % Punkte im Teil 1
+ T2={8}, % Punkte im Teil 2
+ }
+\end{verbatim}
+
\newpage
\subsection{Paketoption -- Lösungseingabe: \texttt{[solution\_on/off]}}
diff --git a/macros/latex/contrib/univie-ling/README b/macros/latex/contrib/univie-ling/README
index 9fb510ca88..39360949f0 100644
--- a/macros/latex/contrib/univie-ling/README
+++ b/macros/latex/contrib/univie-ling/README
@@ -44,6 +44,8 @@ The package consists of the following files:
* univie-ling.bbx: Biblatex bibliography style
* univie-ling.cbx: Biblatex citation style
+* univie-ling.pdf: documentation of the whole bundle
+* univie-ling.tex: documentation source of the whole bundle
* univie-ling-expose.pdf: documentation of the expose class
* univie-ling-expose.tex: documentation source of the expose class
* univie-ling-handout.pdf: documentation of the handout class
@@ -88,6 +90,18 @@ also have a look at the example files.
== CHANGES ==
+V. 2.0 (2022-10-02):
+ - Add general documentation (univie-ling.pdf).
+ - univie-ling-handout:
+ - univie-ling-expose:
+ - univie-ling-paper:
+ - univie-ling-thesis:
+ - univie-ling-wlg:
+ * Fix and properly localize some varioref definitions.
+ * Various small cleanups (addressing warnings).
+ * Use l3keys rather than xkeyval for option handling.
+ * Use translator rather than translations for l7n in all classes.
+
V. 1.20 (2022-09-08):
- univie-ling-handout:
- univie-ling-expose:
diff --git a/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.bbx b/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.bbx
index d358da5d49..297bf740f1 100644
--- a/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.bbx
+++ b/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.bbx
@@ -37,7 +37,7 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesFile{univie-ling.bbx}[2022/06/18 v1.19 biblatex bibliography style]
+\ProvidesFile{univie-ling.bbx}[2022/10/02 v.2.0 biblatex bibliography style]
% Load base style (authoryear-comp)
\RequireBibliographyStyle{authoryear-comp}
diff --git a/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.cbx b/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.cbx
index 4b6647d6e3..e4937b0fa3 100644
--- a/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.cbx
+++ b/macros/latex/contrib/univie-ling/biblatex-univie-ling/univie-ling.cbx
@@ -35,7 +35,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesFile{univie-ling.cbx}[2022/06/18 v1.19 biblatex citation style]
+\ProvidesFile{univie-ling.cbx}[2022/10/02 v.2.0 biblatex citation style]
\RequireCitationStyle{authoryear-comp}
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-expose-deutsch.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-expose-deutsch.pdf
index f5bb410014..12cb21db93 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-expose-deutsch.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-expose-deutsch.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-expose-english.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-expose-english.pdf
index 69ab2f9b91..dac6d7b74a 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-expose-english.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-expose-english.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-handout-deutsch.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-handout-deutsch.pdf
index ade6bf052c..72b734d553 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-handout-deutsch.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-handout-deutsch.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-handout-english.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-handout-english.pdf
index 195af0858b..aa429549f5 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-handout-english.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-handout-english.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-paper-deutsch.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-paper-deutsch.pdf
index 2d6e8e8b44..83b8b152df 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-paper-deutsch.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-paper-deutsch.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-paper-english.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-paper-english.pdf
index 87a9785ff2..e6c62d407c 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-paper-english.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-paper-english.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.pdf
index 9569ba5659..ba8f0ab19e 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-thesis-deutsch.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.pdf
index 2c95c63b6d..e780fe4f91 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-thesis-english.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-wlg-article.pdf b/macros/latex/contrib/univie-ling/doc/templates/template-wlg-article.pdf
index e517aeab34..a41185e64c 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-wlg-article.pdf
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-wlg-article.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/templates/template-wlg-article.tex b/macros/latex/contrib/univie-ling/doc/templates/template-wlg-article.tex
index 7dfaefb9a0..7c506ba36f 100644
--- a/macros/latex/contrib/univie-ling/doc/templates/template-wlg-article.tex
+++ b/macros/latex/contrib/univie-ling/doc/templates/template-wlg-article.tex
@@ -13,11 +13,14 @@
\usepackage[utf8]{inputenc}
% Supported languages: naustrian, ngerman, english
-\RequirePackage[naustrian]{babel}
+\RequirePackage[ngerman,naustrian]{babel}
% This is just for the dummy text
% Remove this and the \blind... macros for real documents
\usepackage{blindtext}
+% Custom blindtext (Austrian not supported by blindtext package)
+\newcommand*{\blindtextAT}{\foreignlanguage{ngerman}{\blindtext}}
+\newcommand*{\blindlistAT}{\foreignlanguage{ngerman}{\blindlistlist[3]{itemize}}}
%
% EDITORIAL SETTINGS
@@ -49,7 +52,7 @@
\begin{abstract}
% dummy text
-\blindtext[1]
+\blindtextAT
\end{abstract}
\keywords{Applied Linguistics, Discourse Analysis, Sociolinguistics, Text Analysis}
@@ -58,22 +61,22 @@
\motto[Quelle]{Ein schickes Motto}
-\blindtext
+\blindtextAT
\begin{displayquote}
% dummy text
-\blindtext
+\blindtextAT
\end{displayquote}
% dummy text
-\blindtext
+\blindtextAT
-% dummy text
-\blindlistlist[3]{itemize}
+% dummy list
+\blindlistAT
% dummy text
-\blindtext
+\blindtextAT
-% dummy text
-\blindlistlist[3]{enumerate}
+% dummy list
+\blindlistAT
\end{document}
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-expose.pdf b/macros/latex/contrib/univie-ling/doc/univie-ling-expose.pdf
index cc7a758023..9f6d69016b 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-expose.pdf
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-expose.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-expose.tex b/macros/latex/contrib/univie-ling/doc/univie-ling-expose.tex
index 3c77e4dfbb..82941e94cd 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-expose.tex
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-expose.tex
@@ -30,7 +30,7 @@
% macros
\newcommand*\uvlt{\textsf{univie-ling-expose}}
-\providecommand{\LyX}{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}
+\providecommand{\LyX}{\texorpdfstring{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}{LyX}}
% improve layout
\tolerance 1414
@@ -63,7 +63,7 @@
\author{\texorpdfstring{Jrgen Spitzmller%
\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jrgen Spitzmller}}
-\date{Version 1.20, 2022/09/08}
+\date{Version 2.0, 2022/10/02}
\maketitle
@@ -102,11 +102,11 @@ The following class and packages are required and loaded by \uvlt:
\item \textsf{csquotes}: Context sensitive quotations.
\item \textsf{datetime2}: Date localization.
\item \textsf{graphicx}: Graphic support.
+ \item \textsf{l3keys}: Key-value interface for class options.
\item \textsf{scrlayer-scrpage}: Page layout settings.
\item \textsf{setspace}: Line spacing adjustments.
- \item \textsf{translations}: Localization machinery.
+ \item \textsf{translator}: Localization machinery.
\item \textsf{url}: Support for typesetting URLs.
- \item \textsf{xkeyval}: Key-value interface for class options.
\end{itemize}
The following packages are required for specific features and loaded by default. However, the loading can be individually and generally omitted (see sec.~\ref{coptions}):
\begin{itemize}
@@ -329,16 +329,25 @@ Please also refer to the template files included in the package for some further
A layout for \LyX\footnote{See \url{https://www.lyx.org}.}\ can be retrieved from \url{https://github.com/jspitz/univie-ling/raw/master/lyx/layouts/univie-ling-expose.layout}.
Templates are provided as well:
+\begin{flushleft}
\begin{itemize}
\item English template:\\
\url{https://github.com/jspitz/univie-ling/raw/master/lyx/templates/template-univie-ling-expose-english.lyx}
\item German template:\\
\url{https://github.com/jspitz/univie-ling/raw/master/lyx/templates/template-univie-ling-expose-deutsch.lyx}
\end{itemize}
+\end{flushleft}
\section{Release History}
\begin{description}
+ \item 2022/10/02 (v.\,2.0)
+ \begin{itemize}
+ \item Use \textsf{l3keys} rather than \textsf{xkeyval} for key-value option handling.
+ \item Fix some \textsf{varioref} definitions.
+ \item Use \textsf{translator} instead of \textsf{translations} for localization.
+ \item Various small class cleanups.
+ \end{itemize}
\item 2022/09/08 (v.\,1.20)
\begin{itemize}
\item Load \textsf{varioref} AtBeginDocument.
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-handout.pdf b/macros/latex/contrib/univie-ling/doc/univie-ling-handout.pdf
index 937fb794b4..e308a78e55 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-handout.pdf
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-handout.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-handout.tex b/macros/latex/contrib/univie-ling/doc/univie-ling-handout.tex
index 148689b2d8..1dbba9f736 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-handout.tex
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-handout.tex
@@ -30,7 +30,7 @@
% macros
\newcommand*\uvlt{\textsf{univie-ling-handout}}
-\providecommand{\LyX}{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}
+\providecommand{\LyX}{\texorpdfstring{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}{LyX}}
% improve layout
\tolerance 1414
@@ -63,7 +63,7 @@
\author{\texorpdfstring{Jrgen Spitzmller%
\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jrgen Spitzmller}}
-\date{Version 1.20, 2022/09/08}
+\date{Version 2.0, 2022/10/02}
\maketitle
@@ -71,7 +71,7 @@
\noindent The \uvlt\ class provides a \LaTeXe\ class suitable for handouts that accompany presentations in classes or at conferences.
The class adheres to the corporate design of the University of Vienna (although no dedicated specs for handouts
are provided there).%
-\footnote{\url{https://communications.univie.ac.at/fileadmin/user_upload/d_oeffentlichkeitsarbeit/Dokumente/UniversitaetWien_CD_Manual_Mai_2022_interaktiv.pdf}.}
+\footnote{\raggedright\url{https://communications.univie.ac.at/fileadmin/user_upload/d_oeffentlichkeitsarbeit/Dokumente/UniversitaetWien_CD_Manual_Mai_2022_interaktiv.pdf}.}
Therefore, although this class has been written for students in the Department of Linguistics, it might also be useful for other fields
and for students and researchers alike.
This manual documents the class.
@@ -98,9 +98,9 @@ The following class and packages are required and loaded by \uvlt:
\item \textsf{csquotes}: Context sensitive quotations.
\item \textsf{graphicx}: Graphic support.
\item \textsf{geometry}: Page layout settings.
- \item \textsf{translations}: Localization machinery.
+ \item \textsf{l3keys}: Key-value interface for class options.
+ \item \textsf{translator}: Localization machinery.
\item \textsf{url}: Support for typesetting URLs.
- \item \textsf{xkeyval}: Key-value interface for class options.
\end{itemize}
The following packages are required for specific features and loaded by default. However, the loading can be individually and generally omitted (see sec.~\ref{coptions}):
\begin{itemize}
@@ -373,16 +373,25 @@ Please also refer to the template files included in the package for some further
A layout for \LyX\footnote{See \url{https://www.lyx.org}.}\ can be retrieved from \url{https://github.com/jspitz/univie-ling/raw/master/lyx/layouts/univie-ling-handout.layout}.
Templates are provided as well:
+\begin{flushleft}
\begin{itemize}
\item English template:\\
\url{https://github.com/jspitz/univie-ling/raw/master/lyx/templates/template-univie-ling-handout-english.lyx}
\item German template:\\
\url{https://github.com/jspitz/univie-ling/raw/master/lyx/templates/template-univie-ling-handout-deutsch.lyx}
\end{itemize}
+\end{flushleft}
\section{Release History}
\begin{description}
+ \item 2022/10/02 (v.\,2.0)
+ \begin{itemize}
+ \item Use \textsf{l3keys} rather than \textsf{xkeyval} for key-value option handling.
+ \item Fix some \textsf{varioref} definitions.
+ \item Use \textsf{translator} instead of \textsf{translations} for localization.
+ \item Various small class cleanups.
+ \end{itemize}
\item 2022/09/08 (v.\,1.20)
\begin{itemize}
\item Load \textsf{varioref} AtBeginDocument.
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-paper.pdf b/macros/latex/contrib/univie-ling/doc/univie-ling-paper.pdf
index 220e968900..7838dcbfef 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-paper.pdf
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-paper.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-paper.tex b/macros/latex/contrib/univie-ling/doc/univie-ling-paper.tex
index a3cf0fa76c..bfd39d1995 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-paper.tex
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-paper.tex
@@ -30,7 +30,7 @@
% macros
\newcommand*\uvlt{\textsf{univie-ling-paper}}
-\providecommand{\LyX}{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}
+\providecommand{\LyX}{\texorpdfstring{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}{LyX}}
% improve layout
\tolerance 1414
@@ -63,7 +63,7 @@
\author{\texorpdfstring{Jrgen Spitzmller%
\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jrgen Spitzmller}}
-\date{Version 1.20, 2022/09/08}
+\date{Version 2.0, 2022/10/02}
\maketitle
@@ -99,11 +99,11 @@ The following class and packages are required and loaded by \uvlt:
\item \textsf{scrartcl}: KOMA-Script article class (base class).
\item \textsf{csquotes}: Context sensitive quotations.
\item \textsf{graphicx}: Graphic support.
+ \item \textsf{l3keys}: Key-value interface for class options.
\item \textsf{scrlayer-scrpage}: Page layout settings.
\item \textsf{setspace}: Line spacing adjustments.
- \item \textsf{translations}: Localization machinery.
+ \item \textsf{translator}: Localization machinery.
\item \textsf{url}: Support for typesetting URLs.
- \item \textsf{xkeyval}: Key-value interface for class options.
\end{itemize}
The following packages are required for specific features and loaded by default. However, the loading can be individually and generally omitted (see sec.~\ref{coptions}):
\begin{itemize}
@@ -361,17 +361,26 @@ Please also refer to the template files included in the package for some further
A layout for \LyX\footnote{See \url{https://www.lyx.org}.}\ can be retrieved from \url{https://github.com/jspitz/univie-ling/raw/master/lyx/layouts/univie-ling-paper.layout}.
Templates are provided as well:
+\begin{flushleft}
\begin{itemize}
\item English template:\\
\url{https://github.com/jspitz/univie-ling/raw/master/lyx/templates/template-univie-ling-paper-english.lyx}
\item German template:\\
\url{https://github.com/jspitz/univie-ling/raw/master/lyx/templates/template-univie-ling-paper-deutsch.lyx}
\end{itemize}
+\end{flushleft}
\condbreak{2\baselineskip}
\section{Release History}
\begin{itemize}
+ \item 2022/10/02 (v.\,2.0)
+ \begin{itemize}
+ \item Use \textsf{l3keys} rather than \textsf{xkeyval} for key-value option handling.
+ \item Fix some \textsf{varioref} definitions.
+ \item Use \textsf{translator} instead of \textsf{translations} for localization.
+ \item Various small class cleanups.
+ \end{itemize}
\item 2022/09/08 (v.\,1.20)
\begin{itemize}
\item Load \textsf{varioref} AtBeginDocument.
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.pdf b/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.pdf
index 6b7068b4c1..096cdf536d 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.pdf
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.tex b/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.tex
index f8d5656e74..d181c6cc78 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.tex
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-thesis.tex
@@ -30,7 +30,7 @@
% macros
\newcommand*\uvlt{\textsf{univie-ling-thesis}}
-\providecommand{\LyX}{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}
+\providecommand{\LyX}{\texorpdfstring{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}{LyX}}
% improve layout
\tolerance 1414
@@ -59,7 +59,7 @@
\author{\texorpdfstring{Jrgen Spitzmller%
\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jrgen Spitzmller}}
-\date{Version 1.20, 2022/09/08}
+\date{Version 2.0, 2022/10/02}
\maketitle
@@ -82,7 +82,7 @@ packages (such as \textsf{covington}) are pre-loaded. As documented later, howev
a bibliography style of your choice and load alternative packages.
The design matches as closely as necessary the standards set up by the university. This particularly concerns the
-title page, which follows the recommendations specified by the \emph{StudienServiceCenter}.\footnote{%
+title page, which follows the recommendations specified by the \emph{StudienServiceCenter}.\footnote{\raggedright%
See \url{http://ssc-philkultur.univie.ac.at/studium/masterstudien/abgabe-der-masterarbeit} for master's theses,
\url{http://ssc-philkultur.univie.ac.at/studium/doktoratsstudium-neu-792-xxx/dissertation} for doctoral theses <25.\,01.\,2017>.}
@@ -96,11 +96,11 @@ The following class and packages are required and loaded by \uvlt:
\item \textsf{csquotes}: Context sensitive quotations.
\item \textsf{geometry}: Page layout settings.
\item \textsf{graphicx}: Graphic support.
+ \item \textsf{l3keys}: Key-value interface for class options.
\item \textsf{scrlayer-scrpage}: Page header settings.
\item \textsf{setspace}: Line spacing adjustments.
- \item \textsf{translations}: Localization machinery.
+ \item \textsf{translator}: Localization machinery.
\item \textsf{url}: Support for typesetting URLs.
- \item \textsf{xkeyval}: Key-value interface for class options.
\end{itemize}
The following packages are required for specific features and loaded by default. However, the loading can be individually and generally omitted (see sec.~\ref{coptions}):
\begin{itemize}
@@ -278,7 +278,7 @@ the following data in the preamble.
\item{\jcsmacro{supervisor\{<name>\}}}: Title and name of your (main) supervisor.
\item{\jcsmacro{cosupervisor\{<name>\}}}: Title and name of your co-supervisor.
\end{description}
-The suitable degree (\emph{Angestrebter akademischer Grad}) is automatically set by the \jcsmacro{thesistype} command, but you can override it with the optional command \jcsmacro{degree\{<custom degree>\}}.
+The suitable degree (\emph{Angestrebter akademischer Grad} in German) is automatically set by the \jcsmacro{thesistype} command, but you can override it with the optional command \jcsmacro{degree\{<custom degree>\}}.
Note that female forms of degrees, where appropriate, are used if you use the class option \joption{fdegree=true} (see sec.~\ref{coptions}).
@@ -392,16 +392,25 @@ Furthermore, a step-by-step guide to PDF/A generation with PDFLaTeX and \textsf{
A layout for \LyX\footnote{See \url{https://www.lyx.org}.}\ can be retrieved from \url{https://github.com/jspitz/univie-ling/raw/master/lyx/layouts/univie-ling-thesis.layout}.
Templates are provided as well:
+\begin{flushleft}
\begin{itemize}
\item English template:\\
\url{https://github.com/jspitz/univie-ling/raw/master/lyx/templates/template-univie-ling-thesis-english.lyx}
\item German template:\\
\url{https://github.com/jspitz/univie-ling/raw/master/lyx/templates/template-univie-ling-thesis-deutsch.lyx}
\end{itemize}
+\end{flushleft}
\section{Release History}
\begin{itemize}
+ \item 2022/10/02 (v.\,2.0)
+ \begin{itemize}
+ \item Use \textsf{l3keys} rather than \textsf{xkeyval} for key-value option handling.
+ \item Fix some \textsf{varioref} definitions.
+ \item Use \textsf{translator} instead of \textsf{translations} for localization.
+ \item Various small class cleanups.
+ \end{itemize}
\item 2022/09/08 (v.\,1.20)
\begin{itemize}
\item Load \textsf{varioref} AtBeginDocument.
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.pdf b/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.pdf
index 9109fa6a9c..b57238618d 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.pdf
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.tex b/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.tex
index d9cd57e7d0..7805945596 100644
--- a/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.tex
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling-wlg.tex
@@ -30,7 +30,7 @@
% macros
\newcommand*\uvlt{\textsf{univie-ling-wlg}}
-\providecommand{\LyX}{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}
+\providecommand{\LyX}{\texorpdfstring{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}{LyX}}
% improve layout
\tolerance 1414
@@ -59,7 +59,7 @@
\author{\texorpdfstring{Jrgen Spitzmller%
\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jrgen Spitzmller}}
-\date{Version 1.20, 2022/09/08}
+\date{Version 2.0, 2022/10/02}
\maketitle
@@ -93,7 +93,7 @@ If you want to use \emph{MinionPro}, use the class option \joption{expertfonts=t
\section{Class Options}\label{coptions}
-The \uvlt\ class provides a range of key=value type options to control the font handling, package loading and some specific behavior.
+The \uvlt\ class provides a range of \texttt{key=value} type options to control the font handling, package loading and some specific behavior.
These are documented in this section.
\subsection{Font selection}
@@ -170,8 +170,8 @@ In general, the data for the editorial board should be set/changed in a local co
\setlength\itemsep{0pt}
\item{\jcsmacro{author\{<name>\}}}: Article author(s); multiple authors separated by \jfcsmacro{and}.
Author affiliations should be specified via the macro \jcsmacro{aff\{Affilitation\}} immediately behind the author name,
- using \jcsmacro{aff*[m|f]\{Affilitation\}} for the corresponding author (the optional argument, \joption{f} or \joption{m},
- specifies the gender)
+ using \jcsmacro{aff*[m|f|p]\{Affilitation\}} for the corresponding author (the optional argument, \joption{f} or \joption{m},
+ specifies the grammatical gender, \joption{p} indicates plural [multiple authors])
\item{\jcsmacro{title\{<title>\}}}: Title of the paper.
\item{\jcsmacro{subtitle\{<subtitle>\}}}: Subtitle.
\item{\jcsmacro{date\{<date>\}}}: Date of publication (optional; by default the date when the PDF file was processed is used).
@@ -233,9 +233,15 @@ A template is provided as well: \url{https://github.com/jspitz/univie-ling/raw/m
\raggedright
\begin{itemize}
+ \item 2022/10/02 (v.\,2.0)
+ \begin{itemize}
+ \item Use \textsf{l3keys} rather than \textsf{xkeyval} for key-value option handling.
+ \item Fix and properly localize some \textsf{varioref} definitions.
+ \item Various small class cleanups (addressing warnings).
+ \end{itemize}
\item 2022/09/08 (v.\,1.20)
\begin{itemize}
- \item Load \textsf{varioref} AtBeginDocument.
+ \item Load \textsf{varioref} \jfcsmacro{AtBeginDocument}.
\end{itemize}
\item 2022/05/11 (v.\,1.18) No change to this class.
\item 2022/02/05 (v.\,1.17) Allow to set fixed publication date via \jcsmacro{date} in titling.
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling.pdf b/macros/latex/contrib/univie-ling/doc/univie-ling.pdf
new file mode 100644
index 0000000000..5431d65c90
--- /dev/null
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/doc/univie-ling.tex b/macros/latex/contrib/univie-ling/doc/univie-ling.tex
new file mode 100644
index 0000000000..21698e7028
--- /dev/null
+++ b/macros/latex/contrib/univie-ling/doc/univie-ling.tex
@@ -0,0 +1,105 @@
+\documentclass[english]{article}
+
+\usepackage[osf]{libertine}
+\usepackage[scaled=0.7]{beramono}
+\usepackage[T1]{fontenc}
+\usepackage[latin9]{inputenc}
+\usepackage[hyphens]{url}
+\usepackage[pdfusetitle,
+ bookmarks=true,bookmarksnumbered=false,bookmarksopen=false,
+ breaklinks=false,pdfborder={0 0 0},backref=false,colorlinks=false]
+ {hyperref}
+
+\usepackage[dvipsnames]{xcolor}
+\usepackage{MnSymbol}
+% macros
+\newcommand*\uvlt{\textsf{univie-ling}}
+\newcommand*\uvlc[1]{\textsf{univie-ling-#1}}
+\newcommand*\mlink[1]{\textcolor{Maroon}{\hyperref{#1}{}{}{\textbf{$\blacktriangleright$ Manual}}}}
+
+% improve layout
+\tolerance 1414
+\hbadness 1414
+\emergencystretch 1.5em
+\hfuzz 0.3pt
+\widowpenalty = 10000
+\vfuzz \hfuzz
+\raggedbottom
+
+% Conditiona pagebreak
+\def\condbreak#1{%
+ \vskip 0pt plus #1\pagebreak[3]\vskip 0pt plus -#1\relax}
+
+\usepackage{microtype}
+
+\usepackage{babel}
+
+
+\begin{document}
+
+\title{The \uvlt\ bundle}
+
+\author{\texorpdfstring{Jrgen Spitzmller%
+\thanks{Please report issues via \protect\url{https://github.com/jspitz/univie-ling}.}}{Jrgen Spitzmller}}
+
+\date{Version 2.0, 2022/10/02}
+
+\maketitle
+
+\section{Aim}
+
+The \uvlt\ bundle consists of a set of classes as well as of a \textsf{biblatex} bibliography and citation style for students and academics
+at the University of Vienna, Austria, Department of Linguistics (\url{https://linguistics.univie.ac.at}). The classes follow the corporate design
+of the university and institutional regulations, as far as these apply.
+
+The classes and styles are particularly suited for the field of Applied Linguistics and pre-load some packages
+that are considered useful in this disciplinary context. However, they might also be (and actually are) used
+for General and Historical Linguistics as well as for other fields of study at Vienna University.
+In this case, some settings might have to be adjusted.
+
+This manual briefly introduces these classes and styles. Please refer to the linked manual of the respective class for details.
+
+\section{Classes and Styles}
+
+\subsection{\uvlc{expose}}
+
+The \uvlc{expose} class provides a \LaTeXe\ class suitable for those research proposals (\emph{Exposs}) that are required in the context of the public presentation of a dissertation project (\emph{FP}) at the University of Vienna. \mlink{univie-ling-expose.pdf}
+
+\subsection{\uvlc{handout}}
+
+The \uvlc{handout} class provides a \LaTeXe\ class suitable for handouts that accompany presentations in classes or at conferences.
+The class adheres to the corporate design of the University of Vienna (although no dedicated specs for handouts
+are provided there).
+Therefore, although this class has been written for students in the Department of Linguistics, it might also be useful for other fields
+and for students and researchers alike. \mlink{univie-ling-handout.pdf}
+
+\subsection{\uvlc{paper}}
+
+The \uvlc{paper} class provides a \LaTeXe\ class suitable for papers ([\emph{Pro}]\emph{Seminar\-arbeiten}) in (Applied)
+Linguistics at the Department of Linguistics, University of Vienna. \mlink{univie-ling-paper.pdf}
+
+\subsection{\uvlc{thesis}}
+
+The \uvlc{thesis} class provides a \LaTeXe\ class suitable for Bachelor's, Master's, Diploma and Doctoral theses in
+(Applied) Linguistics at the Department of Linguistics, University of Vienna. \mlink{univie-ling-thesis.pdf}
+
+\subsection{\uvlc{wlg}}
+
+The \uvlc{wlg} class provides a \LaTeXe\ class suitable for articles in the journal \emph{Wiener Linguistische Gazette} (WLG),
+the house journal of the Department of Linguistics at the University of Vienna (\url{https://wlg.univie.ac.at}).
+\mlink{univie-ling-wlg.pdf}
+
+\subsection{Bibliography and Citation Styles}
+
+The bundle also includes a \textsf{biblatex} bibliography style (\texttt{univie-ling.bbx}) and a citation style
+(\texttt{univie-ling.cbx}) that implement the citation conventions common in Viennese (Applied) Linguistics.
+The style draws on the \emph{Unified Style Sheet for Linguistic Papers}.%
+\footnote{See \url{https://www.linguisticsociety.org/sites/default/files/style-sheet_0.pdf}.}
+Documentation is included in the documentation of the classes above.
+
+\section{Release History}
+
+Please refer to the \emph{Release History} sections in the manuals of the classes and to the \emph{CHANGES} section in the \hyperref{https://mirrors.ctan.org/macros/latex/contrib/univie-ling/README}{}{}{\textcolor{Maroon}{$\blacktriangleright$ README}}
+file.
+
+\end{document}
diff --git a/macros/latex/contrib/univie-ling/tex/univie-ling-expose.cls b/macros/latex/contrib/univie-ling/tex/univie-ling-expose.cls
index e353bdeca0..102a7e0bcc 100644
--- a/macros/latex/contrib/univie-ling/tex/univie-ling-expose.cls
+++ b/macros/latex/contrib/univie-ling/tex/univie-ling-expose.cls
@@ -32,185 +32,145 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{univie-ling-expose}[2022/06/18 v1.19 Univie Linguistic Exposes (JSp)]
+\ProvidesPackage{univie-ling-expose}[2022/10/02 v.2.0 Univie Linguistic Exposes (JSp)]
%% ============================================================
%% CLASS OPTIONS
%% ============================================================
-\RequirePackage{xkeyval}
-
-\newif\ifbiblatex\biblatextrue
-\newif\ifapa\apafalse
-\newif\ifcaptionp\captionptrue
-\newif\ifdraftmark\draftmarkfalse
-\newif\ifdraftmarkfp\draftmarkfpfalse
-\newif\ifrefsp\refsptrue
-\newif\ifcovington\covingtontrue
-\newif\ifmicrotype\microtypetrue
-\newif\ifpolyglossia\polyglossiafalse
-\newif\ifpsfonts\psfontstrue
-\newif\ifotffonts\otffontsfalse
-\newif\ifnofonts\nofontsfalse
-
-% all=<true|false>
-% Load all packages
-\define@boolkey+{uvt}{all}[true]{%
- \ifKV@uvt@all
- \biblatextrue
- \captionptrue
- \refsptrue
- \covingtontrue
- \microtypetrue
- \else
- \biblatexfalse
- \captionpfalse
- \refspfalse
- \covingtonfalse
- \microtypefalse
- \fi
-}{%
- \ClassWarning{univie-ling-expose}{unknown 'all' value}%
-}
-
-% biblatex=<true|false>
-% Load biblatex
-\define@boolkey+{uvt}{biblatex}[true]{%
- \ifKV@uvt@biblatex
- \biblatextrue
- \else
- \biblatexfalse
- \fi
-}{%
- \ClassWarning{univie-ling-expose}{unknown biblatex value}%
-}
-
-% apa=<true|false>
-% Load APA style
-\define@boolkey+{uvt}{apa}[true]{%
- \ifKV@uvt@apa
- \apatrue
- \else
- \apafalse
- \fi
-}{%
- \ClassWarning{univie-ling-expose}{unknown apa value}%
-}
-
-% caption=<true|false>
-% Load caption
-\define@boolkey+{uvt}{caption}[true]{%
- \ifKV@uvt@caption
- \captionptrue
- \else
- \captionpfalse
- \fi
-}{%
- \ClassWarning{univie-ling-expose}{unknown caption value}%
-}
-
-% ref=<true|false>
-% Load varioref and prettyref
-\define@boolkey+{uvt}{ref}[true]{%
- \ifKV@uvt@ref
- \refsptrue
- \else
- \refspfalse
- \fi
-}{%
- \ClassWarning{univie-ling-expose}{unknown ref value}%
-}
-
-% covington=<true|false>
-% Load covington
-\define@boolkey+{uvt}{covington}[true]{%
- \ifKV@uvt@covington
- \covingtontrue
- \else
- \covingtonfalse
- \fi
-}{%
- \ClassWarning{univie-ling-expose}{unknown covington value}%
-}
-
-% draftmark=<true|false>
-% Print draftmark
-\define@choicekey*+{uvt}{draftmark}[\val\nr]{true,false,firstpage}{%
- \ifcase\nr\relax% true:
- \draftmarktrue
- \draftmarkfpfalse
- \or% false:
- \draftmarkfalse
- \draftmarkfpfalse
- \or% firstpage:
- \draftmarktrue
- \draftmarkfptrue
- \fi
-}{%
- \ClassWarning{univie-ling-expose}{unknown draft value}%
+\newif\if@uve@biblatex\@uve@biblatextrue
+\newif\if@uve@apa\@uve@apafalse
+\newif\if@uve@captionp\@uve@captionptrue
+\newif\if@uve@draftmark\@uve@draftmarkfalse
+\newif\if@uve@draftmarkfp\@uve@draftmarkfpfalse
+\newif\if@uve@refsp\@uve@refsptrue
+\newif\if@uve@covington\@uve@covingtontrue
+\newif\if@uve@microtype\@uve@microtypetrue
+\newif\if@uve@polyglossia\@uve@polyglossiafalse
+\newif\if@uve@psfonts\@uve@psfontstrue
+\newif\if@uve@otffonts\@uve@otffontsfalse
+\newif\if@uve@usefontenc\@uve@usefontenctrue
+\def\uve@fontenc{T1}
+
+% We use l3keys here since (1) LaTeX2e keys are rather
+% new and (2) do not provide for choice keys yet.
+\ExplSyntaxOn
+\keys_define:nn { uve }
+{
+ % all=<true|false>
+ % Load all (most) packages
+ all.code:n =
+ { \bool_if:nTF {#1} {
+ \@uve@biblatextrue
+ \@uve@captionptrue
+ \@uve@refsptrue
+ \@uve@covingtontrue
+ \@uve@microtypetrue
+ }{
+ \@uve@biblatexfalse
+ \@uve@captionpfalse
+ \@uve@refspfalse
+ \@uve@covingtonfalse
+ \@uve@microtypefalse
+ }
+ },
+ all.usage:n = preamble,
+ % apa=<true|false>
+ % Load APA style
+ apa.legacy_if_set:n = @uve@apa,
+ apa.usage:n = preamble,
+ % biblatex=<true|false>
+ % Load biblatex
+ biblatex.legacy_if_set:n = @uve@biblatex,
+ biblatex.usage:n = preamble,
+ % caption=<true|false>
+ % Load caption
+ caption.legacy_if_set:n = @uve@captionp,
+ caption.usage:n = preamble,
+ % covington=<true|false>
+ % Load covington
+ covington.legacy_if_set:n = @uve@covington,
+ covington.usage:n = preamble,
+ % fontenc=<value|none>
+ % customize font encoding
+ fontenc.code:n =
+ { \str_if_eq:NNTF { #1 } { none } {
+ \@uve@usefontencfalse
+ }{
+ \def\uve@fontenc{#1}
+ }
+ },
+ fontenc.usage:n = preamble,
+ % microtype=<true|false>
+ % Load microtype
+ microtype.legacy_if_set:n = @uve@microtype,
+ microtype.usage:n = preamble,
+ % polyglossia=<true|false>
+ % Load polyglossia
+ polyglossia.legacy_if_set:n = @uve@polyglossia,
+ polyglossia.code:n =
+ { \bool_if:nT {#1} {
+ \@uve@psfontsfalse
+ \@uve@otffontstrue
+ }
+ },
+ polyglossia.usage:n = preamble,
+ % ref=<true|false>
+ % Load varioref and prettyref
+ ref.legacy_if_set:n = @uve@refsp,
+ ref.usage:n = preamble,
+ % draftmark=<true|false|firstpage>
+ % Print draftmark
+ draftmark .choice:,
+ % true
+ draftmark / true .code:n =
+ { \@uve@draftmarktrue
+ \@uve@draftmarkfpfalse
+ },
+ % false
+ draftmark / false .code:n =
+ { \@uve@draftmarkfalse
+ \@uve@draftmarkfpfalse
+ },
+ % firstpage
+ draftmark / firstpage .code:n =
+ { \@uve@draftmarktrue
+ \@uve@draftmarkfptrue
+ },
+ % no val equals to true
+ draftmark .default:n = {true},
+ % fonts=<ps|otf|none>
+ % Select font scheme
+ fonts .choice:,
+ % ps: use PostScript fonts (classic LaTeX)
+ fonts / ps .code:n =
+ { \@uve@psfontstrue
+ \@uve@otffontsfalse
+ },
+ % otf: use OpenType fonts (fontspec)
+ fonts / otf .code:n =
+ { \@uve@psfontsfalse
+ \@uve@otffontstrue
+ },
+ % none: Use no font package
+ fonts / none .code:n =
+ { \@uve@psfontsfalse
+ \@uve@otffontsfalse
+ },
}
+\ExplSyntaxOff
-% microtype=<true|false>
-% Load microtype
-\define@boolkey+{uvt}{microtype}[true]{%
- \ifKV@uvt@microtype
- \microtypetrue
- \else
- \microtypefalse
- \fi
-}{%
- \ClassWarning{univie-ling-expose}{unknown microtype value}%
-}
-
-% polyglossia=<true|false>
-% Load polyglossia
-\define@boolkey+{uvt}{polyglossia}[true]{%
- \ifKV@uvt@polyglossia
- \polyglossiatrue
- \psfontsfalse
- \otffontstrue
- \nofontsfalse
- \else
- \polyglossiafalse
- \fi
-}{%
- \ClassWarning{univie-ling-expose}{unknown polyglossia value}%
-}
-
-% fonts=<ps|otf|none>
-\define@choicekey*+{uvt}{fonts}[\val\nr]{ps,otf,none}{%
- \ifcase\nr\relax% ps: use PostScript fonts (classic LaTeX)
- \psfontstrue
- \otffontsfalse
- \nofontsfalse
- \or% otf: use OpenType fonts (fontspec)
- \psfontsfalse
- \otffontstrue
- \nofontsfalse
- \or% none: Use no font package
- \psfontsfalse
- \otffontsfalse
- \nofontstrue
- \fi
-}{%
- \PackageWarning{univie-ling-expose}{unknown fonts value '#1'}%
-}
+% Process
-% fontenc=<value|false>
-% customize font encoding
-\newif\ifuniv@usefontenc\univ@usefontenctrue
-\def\univ@fontenc{T1}
-\define@choicekey*+{uvt}{fontenc}[\val\nr]{none}{%
- \ifcase\nr\relax% none:
- \univ@usefontencfalse
- \fi
-}{%
- \def\univ@fontenc{#1}%
+\IfFormatAtLeastTF{2022-06-01}
+{
+ \ProcessKeyOptions[uve]
+}{
+ \RequirePackage{l3keys2e}
+ \ProcessKeysOptions{uve}
}
-% Process
-\ProcessOptionsX<uvt>
%% ============================================================
%% BASE CLASS:
@@ -232,43 +192,44 @@
%% LOCALIZATION:
%% ============================================================
-\RequirePackage{translations}
-\DeclareTranslation{German}{draft}{ENTWURF}
-\DeclareTranslation{English}{draft}{DRAFT}
-\DeclareTranslation{German}{section}{Abschnitt}
-\DeclareTranslation{English}{section}{section}
-\DeclareTranslation{German}{footnote}{Anm.}
-\DeclareTranslation{English}{footnote}{fn.}
-\DeclareTranslation{German}{example}{Beispiel}
-\DeclareTranslation{English}{example}{example}
-\DeclareTranslation{German}{stkz}{Studienkennzahl lt. Studienblatt}
-\DeclareTranslation{English}{stkz}{Degree programme code as it appears on the student record sheet}
-\DeclareTranslation{German}{strt}{Studienrichtung lt. Studienblatt}
-\DeclareTranslation{English}{strt}{Degree programme as it appears on the student record sheet}
-\DeclareTranslation{German}{expo}{Expos\'e zum Dissertationsprojekt}
-\DeclareTranslation{English}{expo}{Research Proposal}
-\DeclareTranslation{German}{tpcaption}{Titel des Dissertationsprojekts}
-\DeclareTranslation{English}{tpcaption}{Title of the Dissertation Project}
-\DeclareTranslation{German}{author}{Verfasst von}
-\DeclareTranslation{English}{author}{Submitted by}
-\DeclareTranslation{German}{vienna}{Wien}
-\DeclareTranslation{English}{vienna}{Vienna}
-\DeclareTranslation{German}{supervisor}{Betreut von}
-\DeclareTranslation{English}{supervisor}{Supervisor}
-\DeclareTranslation{German}{cosupervisor}{Mitbetreut von}
-\DeclareTranslation{English}{cosupervisor}{Co-Supervisor}
-\DeclareTranslation{German}{beirat}{Beirat}
-\DeclareTranslation{English}{beirat}{Advisory board}
+\RequirePackage{translator}
+\languagealias{naustrian}{German}
+\deftranslation[to=German]{draft}{ENTWURF}
+\deftranslation[to=English]{draft}{DRAFT}
+\deftranslation[to=German]{section}{Abschnitt}
+\deftranslation[to=English]{section}{section}
+\deftranslation[to=German]{footnote}{Anm.}
+\deftranslation[to=English]{footnote}{fn.}
+\deftranslation[to=German]{example}{Beispiel}
+\deftranslation[to=English]{example}{example}
+\deftranslation[to=German]{stkz}{Studienkennzahl lt. Studienblatt}
+\deftranslation[to=English]{stkz}{Degree programme code as it appears on the student record sheet}
+\deftranslation[to=German]{strt}{Studienrichtung lt. Studienblatt}
+\deftranslation[to=English]{strt}{Degree programme as it appears on the student record sheet}
+\deftranslation[to=German]{expo}{Expos\'e zum Dissertationsprojekt}
+\deftranslation[to=English]{expo}{Research Proposal}
+\deftranslation[to=German]{tpcaption}{Titel des Dissertationsprojekts}
+\deftranslation[to=English]{tpcaption}{Title of the Dissertation Project}
+\deftranslation[to=German]{author}{Verfasst von}
+\deftranslation[to=English]{author}{Submitted by}
+\deftranslation[to=German]{vienna}{Wien}
+\deftranslation[to=English]{vienna}{Vienna}
+\deftranslation[to=German]{supervisor}{Betreut von}
+\deftranslation[to=English]{supervisor}{Supervisor}
+\deftranslation[to=German]{cosupervisor}{Mitbetreut von}
+\deftranslation[to=English]{cosupervisor}{Co-Supervisor}
+\deftranslation[to=German]{beirat}{Beirat}
+\deftranslation[to=English]{beirat}{Advisory board}
%% ============================================================
%% FONTS AND EMPHASIZING:
%% ============================================================
-\ifpsfonts
+\if@uve@psfonts
-\ifuniv@usefontenc
- \RequirePackage[\univ@fontenc]{fontenc}
+\if@uve@usefontenc
+ \RequirePackage[\uve@fontenc]{fontenc}
\fi
% Times
@@ -286,7 +247,7 @@
\fi
-\ifotffonts
+\if@uve@otffonts
\RequirePackage{fontspec}
\setmainfont{Times New Roman}
\setsansfont{Arial}
@@ -380,7 +341,7 @@
\renewcommand{\sectionmark}[1]{\markright{\thesection.\ #1}}
\RequirePackage{scrlayer-scrpage}
\renewcommand{\headfont}{\small\rmfamily}
-\clearscrheadings
+\clearmainofpairofpagestyles
\ihead{\headmark}
\ohead{\pagemark}
\automark{section}
@@ -398,8 +359,8 @@
\raggedbottom
% Micro-typographic polishment
-\ifmicrotype
-\usepackage{microtype}
+\if@uve@microtype
+ \RequirePackage{microtype}
\fi
% Smart quotes
@@ -415,8 +376,8 @@
% Month name
\RequirePackage[ngerman,english]{datetime2}
-\DeclareTranslation{German}{monthyear}{\DTMgermanmonthname{\@dtm@month} \@dtm@year}
-\DeclareTranslation{English}{monthyear}{\DTMenglishmonthname{\@dtm@month} \@dtm@year}
+\deftranslation[to=German]{monthyear}{\DTMgermanmonthname{\@dtm@month} \@dtm@year}
+\deftranslation[to=English]{monthyear}{\DTMenglishmonthname{\@dtm@month} \@dtm@year}
\renewcommand*\maketitle[1][1]{%
\newgeometry{top=2cm,bottom=2.5cm,left=2.5cm,right=2cm}
@@ -474,11 +435,11 @@
\end{flushright}
\vspace{2\baselineskip}
\begin{center}
- {\usekomafont{thesistype}\GetTranslation{expo}}
+ {\usekomafont{thesistype}\translate{expo}}
\end{center}
\vspace{2\baselineskip}
\begin{center}
- {\usekomafont{tpcaption}\GetTranslation{tpcaption}\par}
+ {\usekomafont{tpcaption}\translate{tpcaption}\par}
{\ifx\@title\@empty\else
\usekomafont{title}{\enquote{\@title%
\ifx\@subtitle\@empty\else\linebreak\@subtitle\fi}\par}%
@@ -486,7 +447,7 @@
}
\vskip 2em
{%
- {\usekomafont{tpcaption}\GetTranslation{author}\par}
+ {\usekomafont{tpcaption}\translate{author}\par}
\usekomafont{author}{%
\lineskip 0.75em%
\begin{tabular}[t]{c}
@@ -496,19 +457,19 @@
}%
\end{center}\par
\vfill
- {\usekomafont{date}{\GetTranslation{vienna}, \GetTranslation{monthyear}\par}}%
+ {\usekomafont{date}{\translate{vienna}, \translate{monthyear}\par}}%
\vskip 2em
\usekomafont{codes}{%
\begin{tabular}[t]{@{}>{\raggedright}p{0.4\columnwidth}>{\raggedright}p{0.1\columnwidth}>{\raggedright}p{0.4\columnwidth}}
- \GetTranslation{stkz}: & & \@studienkennzahl\tabularnewline
+ \translate{stkz}: & & \@studienkennzahl\tabularnewline
\noalign{\vskip6pt}
- \GetTranslation{strt}: & & \@studienrichtung\tabularnewline
+ \translate{strt}: & & \@studienrichtung\tabularnewline
\noalign{\vskip6pt}
- \GetTranslation{supervisor}: & & \@supervisor\tabularnewline%
+ \translate{supervisor}: & & \@supervisor\tabularnewline%
\noalign{\vskip6pt}
- \ifx\@cosupervisor\@empty\else\GetTranslation{cosupervisor}: & & \@cosupervisor\tabularnewline\fi
+ \ifx\@cosupervisor\@empty\else\translate{cosupervisor}: & & \@cosupervisor\tabularnewline\fi
\noalign{\vskip6pt}
- \ifx\@beirat\@empty\else\GetTranslation{beirat}: & & \@beirat\fi
+ \ifx\@beirat\@empty\else\translate{beirat}: & & \@beirat\fi
\end{tabular}\par
}
\par
@@ -595,21 +556,19 @@
\def\labelitemi{--}
% Quote (smaller)
-\newcommand*{\OriginalQuote}{}
-\let\OriginalQuote\quote
-\renewcommand*{\quote}{\OriginalQuote\small}
+\let\@uve@save@quote\quote
+\renewcommand*{\quote}{\@uve@save@quote\small}
% Quotation (smaller)
-\newcommand*{\OriginalQuotation}{}
-\let\OriginalQuotation\quotation
-\renewcommand*{\quotation}{\OriginalQuotation\small}
+\let\@uve@save@quotation\quotation
+\renewcommand*{\quotation}{\@uve@save@quotation\small}
% Description (normal italic)
\setkomafont{descriptionlabel}{\normalfont\itshape}
-\ifcovington
-\RequirePackage{covington}
-\renewcommand{\p@equation}[1]{(#1)}
+\if@uve@covington
+ \RequirePackage{covington}
+ \renewcommand{\p@equation}[1]{(#1)}
\fi
%% =============================================================
@@ -619,19 +578,19 @@
%% captionlabel bold
\setkomafont{captionlabel}{\bfseries}
-\ifcaptionp
-\RequirePackage[format=plain,
- justification=RaggedRight,
- singlelinecheck=false
- ]{caption}
+\if@uve@captionp
+ \RequirePackage[format=plain,
+ justification=RaggedRight,
+ singlelinecheck=false
+ ]{caption}
\fi
%% =============================================================
%% POLYGLOSSIA:
%% =============================================================
-\ifpolyglossia
- \ifcaptionp
+\if@uve@polyglossia
+ \if@uve@captionp
\RequirePackage{ragged2e}
\fi
\RequirePackage{polyglossia}
@@ -642,9 +601,9 @@
%% =============================================================
% Biblatex
-\ifbiblatex
+\if@uve@biblatex
-\ifapa
+\if@uve@apa
% Load biblatex with apa style
\RequirePackage[%
style=apa,
@@ -707,10 +666,10 @@
% Change cite command for integrated csquotes env.
\SetCiteCommand{\parencite}
-% End of apa condition
+% End of @uve@apa condition
\fi
-% End of biblatex condition
+% End of @uve@biblatex condition
\fi
%% =============================================================
@@ -719,9 +678,9 @@
\let\origtableofcontents\tableofcontents
\renewcommand*\tableofcontents{%
-\thispagestyle{plain}
-\origtableofcontents
-\clearpage
+ \thispagestyle{plain}
+ \origtableofcontents
+ \clearpage
}
@@ -729,7 +688,7 @@
%% X-REFS:
%% =============================================================
-\ifrefsp
+\if@uve@refsp
\AtBeginDocument{%
% Varioref:
@@ -739,19 +698,19 @@
\def\reftextfaceafter{auf der gegen\"uberliegenden Seite}%
\def\reftextbefore{auf der \reftextvario{vorhergehenden}{vorangegangenen} Seite}%
\def\reftextfacebefore{auf der gegen\"uberliegenden Seite}%
- \def\reftextfaraway[1]{auf S.~\pageref{##1}}%
- \def\reftextpagerange[2]{auf S.~\pageref{##1}--\pageref{##2}}%
+ \def\reftextfaraway#1{auf S.~\pageref{#1}}%
+ \def\reftextpagerange#1#2{auf S.~\pageref{#1}--\pageref{#2}}%
}%
% Prettyref:
% (varioref-Befehle mit eingebunden)
\RequirePackage{prettyref}
- \newrefformat{sec}{\GetTranslation{section}~\ref{#1}}
- \newrefformat{sub}{\GetTranslation{section}~\ref{#1}}
- \newrefformat{anm}{\GetTranslation{footnote}~\ref{#1}}
+ \newrefformat{sec}{\translate{section}~\ref{#1}}
+ \newrefformat{sub}{\translate{section}~\ref{#1}}
+ \newrefformat{anm}{\translate{footnote}~\ref{#1}}
\newrefformat{app}{\appendixname~\vref{#1}}
\newrefformat{tab}{\tablename~\vref{#1}}
\newrefformat{fig}{\figurename~\vref{#1}}
- \newrefformat{exa}{\GetTranslation{example}~\vref{#1}}
+ \newrefformat{exa}{\translate{example}~\vref{#1}}
}
\fi
@@ -761,9 +720,9 @@
%% DRAFT:
%% =============================================================
-\ifdraftmark
+\if@uve@draftmark
-\ifdraftmarkfp
+\if@uve@draftmarkfp
\RequirePackage[firstpageonly]{draftwatermark}
\else
\RequirePackage{draftwatermark}
@@ -774,7 +733,7 @@
vpos=10pt,
anchor=ct,
fontsize=14pt,
- text={\GetTranslation{draft} (\today)}
+ text={\translate{draft} (\today)}
}
\fi
diff --git a/macros/latex/contrib/univie-ling/tex/univie-ling-handout.cls b/macros/latex/contrib/univie-ling/tex/univie-ling-handout.cls
index 376a91cccd..293064b15d 100644
--- a/macros/latex/contrib/univie-ling/tex/univie-ling-handout.cls
+++ b/macros/latex/contrib/univie-ling/tex/univie-ling-handout.cls
@@ -31,386 +31,270 @@
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\filedate{2022/06/18}
-\def\fileversion{1.19}
-\def\filename{univie-ling-handout.cls}
-\NeedsTeXFormat{LaTeX2e}[1997/06/01]
-\ProvidesClass{univie-ling-handout}[%
- \filedate\space v\fileversion\space Univie Ling handout class (JSp)]
+\NeedsTeXFormat{LaTeX2e}[1997/06/01]
+\ProvidesClass{univie-ling-handout}[2022/10/02 v.2.0 Univie Ling handout class (JSp)]
%% ============================================================
%% CLASS OPTIONS
%% ============================================================
-\RequirePackage{xkeyval}
-
-\newif\ifbiblatex\biblatextrue
-\newif\ifapa\apafalse
-\newif\ifcaptionp\captionptrue
-\newif\ifdraftmark\draftmarkfalse
-\newif\ifdraftmarkfp\draftmarkfpfalse
-\newif\ifrefsp\refsptrue
-\newif\ifcovington\covingtontrue
-\newif\ifmicrotype\microtypetrue
-\newif\ifpolyglossia\polyglossiafalse
-\newif\ifpsfonts\psfontstrue
-\newif\ifotffonts\otffontsfalse
-\newif\ifnofonts\nofontsfalse
-
-% all=<true|false>
-% Load all packages
-\define@boolkey+{uvt}{all}[true]{%
- \ifKV@uvt@all
- \biblatextrue
- \captionptrue
- \refsptrue
- \covingtontrue
- \microtypetrue
- \else
- \biblatexfalse
- \captionpfalse
- \refspfalse
- \covingtonfalse
- \microtypefalse
- \fi
-}{%
- \ClassWarning{univie-ling-handout}{unknown 'all' value}%
-}
-
-% biblatex=<true|false>
-% Load biblatex
-\define@boolkey+{uvt}{biblatex}[true]{%
- \ifKV@uvt@biblatex
- \biblatextrue
- \else
- \biblatexfalse
- \fi
-}{%
- \ClassWarning{univie-ling-handout}{unknown biblatex value}%
-}
-
-% apa=<true|false>
-% Load APA style
-\define@boolkey+{uvt}{apa}[true]{%
- \ifKV@uvt@apa
- \apatrue
- \else
- \apafalse
- \fi
-}{%
- \ClassWarning{univie-ling-handout}{unknown apa value}%
-}
-
-% caption=<true|false>
-% Load caption
-\define@boolkey+{uvt}{caption}[true]{%
- \ifKV@uvt@caption
- \captionptrue
- \else
- \captionpfalse
- \fi
-}{%
- \ClassWarning{univie-ling-handout}{unknown caption value}%
-}
-
-% draftmark=<true|false>
-% Print draftmark
-\define@choicekey*+{uvt}{draftmark}[\val\nr]{true,false,firstpage}{%
- \ifcase\nr\relax% true:
- \draftmarktrue
- \draftmarkfpfalse
- \or% false:
- \draftmarkfalse
- \draftmarkfpfalse
- \or% firstpage:
- \draftmarktrue
- \draftmarkfptrue
- \fi
-}{%
- \ClassWarning{univie-ling-handout}{unknown draft value}%
-}
-
-% ref=<true|false>
-% Load varioref and prettyref
-\define@boolkey+{uvt}{ref}[true]{%
- \ifKV@uvt@ref
- \refsptrue
- \else
- \refspfalse
- \fi
-}{%
- \ClassWarning{univie-ling-handout}{unknown ref value}%
-}
-
-% covington=<true|false>
-% Load covington
-\define@boolkey+{uvt}{covington}[true]{%
- \ifKV@uvt@covington
- \covingtontrue
- \else
- \covingtonfalse
- \fi
-}{%
- \ClassWarning{univie-ling-handout}{unknown covington value}%
-}
-
-% microtype=<true|false>
-% Load microtype
-\define@boolkey+{uvt}{microtype}[true]{%
- \ifKV@uvt@microtype
- \microtypetrue
- \else
- \microtypefalse
- \fi
-}{%
- \ClassWarning{univie-ling-handout}{unknown microtype value}%
-}
-
-% polyglossia=<true|false>
-% Load polyglossia
-\define@boolkey+{uvt}{polyglossia}[true]{%
- \ifKV@uvt@polyglossia
- \polyglossiatrue
- \psfontsfalse
- \otffontstrue
- \nofontsfalse
- \else
- \polyglossiafalse
- \fi
-}{%
- \ClassWarning{univie-ling-handout}{unknown polyglossia value}%
-}
-
-% fonts=<ps|otf|none>
-\define@choicekey*+{uvt}{fonts}[\val\nr]{ps,otf,none}{%
- \ifcase\nr\relax% ps: use PostScript fonts (classic LaTeX)
- \psfontstrue
- \otffontsfalse
- \nofontsfalse
- \or% otf: use OpenType fonts (fontspec)
- \psfontsfalse
- \otffontstrue
- \nofontsfalse
- \or% none: Use no font package
- \psfontsfalse
- \otffontsfalse
- \nofontstrue
- \fi
-}{%
- \ClassWarning{univie-ling-handout}{unknown fonts value '#1'}%
-}
-
-% fontsize=<ps|otf|none>
-\def\univ@fontsize{11}
-\define@key{uvt}{fontsize}{%
- \def\univ@fontsize{#1}
-}
-
-% Paper size
-\def\univ@papersize{a4}
-\define@key{uvt}{papersize}{%
- \def\univ@papersize{#1}
-}
-
-% landscape=<true|false>
-\newif\iflandscape\landscapefalse
-\define@boolkey+{uvt}{landscape}[true]{%
- \ifKV@uvt@landscape
- \landscapetrue
- \else
- \landscapefalse
- \fi
-}{%
- \ClassWarning{univie-ling-handout}{unknown landscape value}%
-}
-
-
-% pplogo=<true|false>
-\newif\ifnopplogo\nopplogofalse
-\define@boolkey+{uvt}{pplogo}[true]{%
- \ifKV@uvt@pplogo
- \nopplogofalse
- \else
- \nopplogotrue
- \fi
-}{%
- \ClassWarning{univie-ling-handout}{unknown pplogo value}%
-}
-
+\newif\if@uvh@apa\@uvh@apafalse
+\newif\if@uvh@biblatex\@uvh@biblatextrue
+\newif\if@uvh@breakevent\@uvh@breakeventfalse
+\newif\if@uvh@captionp\@uvh@captionptrue
+\newif\if@uvh@covington\@uvh@covingtontrue
+\newif\if@uvh@draftmark\@uvh@draftmarkfalse
+\newif\if@uvh@draftmarkfp\@uvh@draftmarkfpfalse
+\newif\if@uvh@foldmarks\@uvh@foldmarksfalse
+\newif\if@uvh@landscape\@uvh@landscapefalse
+\newif\if@uvh@lastpage\@uvh@lastpagefalse
+\newif\if@uvh@microtype\@uvh@microtypetrue
+\newif\if@uvh@otffonts\@uvh@otffontsfalse
+\newif\if@uvh@pageonfirst\@uvh@pageonfirsttrue
+\newif\if@uvh@polyglossia\@uvh@polyglossiafalse
+\newif\if@uvh@pplogo\@uvh@pplogotrue
+\newif\if@uvh@psfonts\@uvh@psfontstrue
+\newif\if@uvh@punchmark\@uvh@punchmarkfalse
+\newif\if@uvh@refsp\@uvh@refsptrue
+\newif\if@uvh@swaphead\@uvh@swapheadfalse
+\newif\if@uvh@usefontenc\@uvh@usefontenctrue
+\newif\if@uvh@usewidesubtitle\@uvh@usewidesubtitlefalse
+\def\uvh@fontenc{T1}
+\def\uvh@fontsize{11}
+\def\uvh@papersize{a4}
% Colored logo (default)
-\def\univ@printlogo{\includegraphics[width=74mm]{univielogo}}
-\def\univ@printsmalllogo{\includegraphics[height=14mm]{univielogo}}
-
-% Monochrome logo
-\define@boolkey+{uvt}{bwlogo}[true]{%
- \ifKV@uvt@bwlogo
- \def\univ@printlogo{\includegraphics[width=74mm]{univielogo-sw}}
- \def\univ@printsmalllogo{\includegraphics[height=14mm]{univielogo-sw}}
- \else
- \def\univ@printlogo{\includegraphics[width=74mm]{univielogo}}
- \def\univ@printsmalllogo{\includegraphics[height=14mm]{univielogo}}
- \fi
-}{%
- \ClassWarning{univie-ling-handout}{unknown bwlogo value}%
-}
-
-% Swap title and event in header
-\newif\ifswaphead\swapheadfalse
-\define@boolkey+{uvt}{swaphead}[true]{%
- \ifKV@uvt@swaphead
- \swapheadtrue
- \else
- \swapheadfalse
- \fi
-}{%
- \ClassWarning{univie-ling-handout}{unknown swaphead value}%
-}
-
-% Output total page number
-\newif\iflastpage\lastpagefalse
-\define@boolkey+{uvt}{totalpages}[true]{%
- \ifKV@uvt@totalpages
- \lastpagetrue
- \else
- \lastpagefalse
- \fi
-}{%
- \ClassWarning{univie-ling-handout}{unknown totalpages value}%
-}
-
-% Suppress pagination on first page?
-\newif\ifpageonfirst\pageonfirsttrue
-\define@boolkey+{uvt}{firstpagination}[true]{%
- \ifKV@uvt@firstpagination
- \pageonfirsttrue
- \else
- \pageonfirstfalse
- \fi
-}{%
- \ClassWarning{univie-ling-handout}{unknown firstpagination value}%
-}
-
-% Line break in heading between event and event spec (location, date etc.)
-\newif\ifbreakevent\breakeventfalse
-\define@boolkey+{uvt}{breakevent}[true]{%
- \ifKV@uvt@breakevent
- \breakeventtrue
- \else
- \breakeventfalse
- \fi
-}{%
- \ClassWarning{univie-ling-handout}{unknown breakevent value}%
-}
-
-% Print subtitle over the whole text width
-% (may conflict with address field)
-\newif\ifwidestitle\widestitlefalse
-\define@boolkey+{uvt}{widesubtitle}[true]{%
- \ifKV@uvt@breakevent
- \widestitletrue
- \else
- \widestitlefalse
- \fi
-}{%
- \ClassWarning{univie-ling-handout}{unknown widesubtitle value}%
-}
-
+\def\uvh@printlogo{\includegraphics[width=74mm]{univielogo}}
+\def\uvh@printsmalllogo{\includegraphics[height=14mm]{univielogo}}
% German CD (default)
-\def\cdgerman{
- \def\univ@name{\univ@name@de}
- \def\univ@shortname{\univ@shortname@de}
- \def\univ@university{Universit\"at Wien}
- \def\univ@department{\univ@department@de}
- \def\univ@location{\univ@location@de}
- \def\univ@country{\univ@country@de}
- \def\univ@function{\univ@function@de}
- \def\univ@secfunction{\univ@secfunction@de}
- \def\univ@phoneprefix{T}
- \def\univ@faxprefix{F}
- \def\univ@emailprefix{}
- \def\univ@urlprefix{}
- \def\univ@pageprefix{Seite}
- \def\univ@headerdeptsep{\ $\cdot$\ }
- \def\univ@headernamesep{,\ }
+\def\uvh@cd@german{
+ \def\uvh@name{\uvh@name@de}
+ \def\uvh@shortname{\uvh@shortname@de}
+ \def\uvh@university{Universit\"at Wien}
+ \def\uvh@department{\uvh@department@de}
+ \def\uvh@location{\uvh@location@de}
+ \def\uvh@country{\uvh@country@de}
+ \def\uvh@function{\uvh@function@de}
+ \def\uvh@secfunction{\uvh@secfunction@de}
+ \def\uvh@phoneprefix{T}
+ \def\uvh@faxprefix{F}
+ \def\uvh@emailprefix{}
+ \def\uvh@urlprefix{}
+ \def\uvh@pageprefix{Seite}
+ \def\uvh@headerdeptsep{\ $\cdot$\ }
+ \def\uvh@headernamesep{,\ }
\def\and{\\}
}
-\cdgerman
-
-\define@choicekey*+{uvt}{cd}[\val\nr]{german,english}{%
- \ifcase\nr\relax% german
- \cdgerman
- \or% english
- \def\univ@name{\univ@name@en}
- \def\univ@shortname{\univ@shortname@en}
- \def\univ@university{University of Vienna}
- \def\univ@department{\univ@department@en}
- \def\univ@location{\univ@location@en}
- \def\univ@country{\univ@country@en}
- \def\univ@function{\univ@function@en}
- \def\univ@secfunction{\univ@secfunction@en}
- \def\univ@phoneprefix{T}
- \def\univ@faxprefix{F}
- \def\univ@emailprefix{}
- \def\univ@urlprefix{}
- \def\univ@pageprefix{Page}
- \def\univ@headerdeptsep{\ $\cdot$\ }
- \def\univ@headernamesep{,\ }
- \def\univ@secnamesep{,\ }
- \fi
-}{%
- \ClassWarning{univie-ling-handout}{unknown cd value '#1'}%
-}
-
-
-% Output punch marks?
-\newif\ifuniv@punchmark\univ@punchmarkfalse
-\define@boolkey+{uvt}{punchmarks}[true]{%
- \ifKV@uvt@punchmarks
- \univ@punchmarktrue
- \else
- \univ@punchmarkfalse
- \fi
-}{%
- \ClassWarning{univie-ling-handout}{unknown punchmarks value}%
-}
-
-% Output fold marks?
-\newif\ifuniv@foldmarks\univ@foldmarksfalse
-\define@boolkey+{uvt}{foldmarks}[true]{%
- \ifKV@uvt@foldmarks
- \univ@foldmarkstrue
- \else
- \univ@foldmarksfalse
- \fi
-}{%
- \ClassWarning{univie-ling-handout}{unknown foldmarks value}%
-}
+\def\uvh@cd@english{%
+ \def\uvh@name{\uvh@name@en}
+ \def\uvh@shortname{\uvh@shortname@en}
+ \def\uvh@university{University of Vienna}
+ \def\uvh@department{\uvh@department@en}
+ \def\uvh@location{\uvh@location@en}
+ \def\uvh@country{\uvh@country@en}
+ \def\uvh@function{\uvh@function@en}
+ \def\uvh@secfunction{\uvh@secfunction@en}
+ \def\uvh@phoneprefix{T}
+ \def\uvh@faxprefix{F}
+ \def\uvh@emailprefix{}
+ \def\uvh@urlprefix{}
+ \def\uvh@pageprefix{Page}
+ \def\uvh@headerdeptsep{\ $\cdot$\ }
+ \def\uvh@headernamesep{,\ }
+ \def\uvh@secnamesep{,\ }
+}
+\uvh@cd@german
+
+% We use l3keys here since (1) LaTeX2e keys are rather
+% new and (2) do not provide for choice keys yet.
+\ExplSyntaxOn
+\keys_define:nn { uvh }
+{
+ % all=<true|false>
+ % Load all (most) packages
+ all.code:n =
+ { \bool_if:nTF {#1} {
+ \@uvh@biblatextrue
+ \@uvh@captionptrue
+ \@uvh@refsptrue
+ \@uvh@covingtontrue
+ \@uvh@microtypetrue
+ }{
+ \@uvh@biblatexfalse
+ \@uvh@captionpfalse
+ \@uvh@refspfalse
+ \@uvh@covingtonfalse
+ \@uvh@microtypefalse
+ }
+ },
+ all.usage:n = preamble,
+ % apa=<true|false>
+ % Load APA style
+ apa.legacy_if_set:n = @uvh@apa,
+ apa.usage:n = preamble,
+ % biblatex=<true|false>
+ % Load biblatex
+ biblatex.legacy_if_set:n = @uvh@biblatex,
+ biblatex.usage:n = preamble,
+ % breakevent=<true|false>
+ % Line break in heading between event and event spec (location, date etc.)
+ breakevent.legacy_if_set:n = @uvh@breakevent,
+ breakevent.usage:n = preamble,
+ % bwlogo=<true|false>
+ % Print monochrome logo?
+ bwlogo.code:n =
+ { \bool_if:nTF {#1} {
+ \def\uvh@printlogo{\includegraphics[width=74mm]{univielogo-sw}}
+ \def\uvh@printsmalllogo{\includegraphics[height=14mm]{univielogo-sw}}
+ }{
+ \def\uvh@printlogo{\includegraphics[width=74mm]{univielogo}}
+ \def\uvh@printsmalllogo{\includegraphics[height=14mm]{univielogo}}
+ }
+ },
+ bwlogo.usage:n = preamble,
+ % caption=<true|false>
+ % Load caption
+ caption.legacy_if_set:n = @uvh@captionp,
+ caption.usage:n = preamble,
+ % covington=<true|false>
+ % Load covington
+ covington.legacy_if_set:n = @uvh@covington,
+ covington.usage:n = preamble,
+ % firstpagination=<true|false>
+ % Suppress pagination on first page?
+ firstpagination.legacy_if_set:n = @uvh@pageonfirst,
+ firstpagination.usage:n = preamble,
+ % foldmarks=<true|false>
+ % Output fold marks?
+ foldmarks.legacy_if_set:n = @uvh@foldmarks,
+ foldmarks.usage:n = preamble,
+ % fontenc=<value|none>
+ % customize font encoding
+ fontenc.code:n =
+ { \str_if_eq:NNTF { #1 } { none } {
+ \@uvh@usefontencfalse
+ }{
+ \def\uvh@fontenc{#1}
+ }
+ },
+ fontenc.usage:n = preamble,
+ % fontsize=<size>
+ % Set base font size
+ fontsize.tl_set:N = \uvh@fontsize,
+ fontsize.usage:n = preamble,
+ % landscape=<true|false>
+ % Set landscape
+ landscape.legacy_if_set:n = @uvh@landscape,
+ landscape.usage:n = preamble,
+ % microtype=<true|false>
+ % Load microtype
+ microtype.legacy_if_set:n = @uvh@microtype,
+ microtype.usage:n = preamble,
+ % papersize=<size>
+ % Set paper size
+ papersize.tl_set:N = \uvh@papersize,
+ papersize.usage:n = preamble,
+ % polyglossia=<true|false>
+ % Load polyglossia
+ polyglossia.legacy_if_set:n = @uvh@polyglossia,
+ polyglossia.code:n =
+ { \bool_if:nT {#1} {
+ \@uvh@psfontsfalse
+ \@uvh@otffontstrue
+ }
+ },
+ polyglossia.usage:n = preamble,
+ % pplogo=<true|false>
+ % Print logo on page 2ff.
+ pplogo.legacy_if_set:n = @uvh@pplogo,
+ pplogo.usage:n = preamble,
+ % punchmarks=<true|false>
+ % Output punch marks?
+ punchmarks.legacy_if_set:n = @uvh@punchmark,
+ punchmarks.usage:n = preamble,
+ % ref=<true|false>
+ % Load varioref and prettyref
+ ref.legacy_if_set:n = @uvh@refsp,
+ ref.usage:n = preamble,
+ % swaphead=<true|false>
+ % Swap title and event in header
+ swaphead.legacy_if_set:n = @uvh@swaphead,
+ swaphead.usage:n = preamble,
+ % totalpages=<true|false>
+ % Output total page number
+ totalpages.legacy_if_set:n = @uvh@lastpage,
+ totalpages.usage:n = preamble,
+ % widesubtitle=<true|false>
+ % Print subtitle over the whole text width
+ % (may conflict with address field)
+ widesubtitle.legacy_if_set:n = @uvh@usewidesubtitle,
+ widesubtitle.usage:n = preamble,
+ % cd=<german|english>
+ % CD Language
+ cd .choice:,
+ % german
+ cd / german .code:n = { \uvh@cd@german },
+ % english
+ cd / english .code:n = { \uvh@cd@english },
+ % draftmark=<true|false|firstpage>
+ % Print draftmark
+ draftmark .choice:,
+ % true
+ draftmark / true .code:n =
+ { \@uvh@draftmarktrue
+ \@uvh@draftmarkfpfalse
+ },
+ % false
+ draftmark / false .code:n =
+ { \@uvh@draftmarkfalse
+ \@uvh@draftmarkfpfalse
+ },
+ % firstpage
+ draftmark / firstpage .code:n =
+ { \@uvh@draftmarktrue
+ \@uvh@draftmarkfptrue
+ },
+ % no val equals to true
+ draftmark .default:n = {true},
+ % fonts=<ps|otf|none>
+ % Select font scheme
+ fonts .choice:,
+ % ps: use PostScript fonts (classic LaTeX)
+ fonts / ps .code:n =
+ { \@uvh@psfontstrue
+ \@uvh@otffontsfalse
+ },
+ % otf: use OpenType fonts (fontspec)
+ fonts / otf .code:n =
+ { \@uvh@psfontsfalse
+ \@uvh@otffontstrue
+ },
+ % none: Use no font package
+ fonts / none .code:n =
+ { \@uvh@psfontsfalse
+ \@uvh@otffontsfalse
+ },
+}
+\ExplSyntaxOff
+% Process
-% fontenc=<value|false>
-% customize font encoding
-\newif\ifuniv@usefontenc\univ@usefontenctrue
-\def\univ@fontenc{T1}
-\define@choicekey*+{uvt}{fontenc}[\val\nr]{none}{%
- \ifcase\nr\relax% none:
- \univ@usefontencfalse
- \fi
-}{%
- \def\univ@fontenc{#1}%
+\IfFormatAtLeastTF{2022-06-01}
+{
+ \ProcessKeyOptions[uvh]
+}{
+ \RequirePackage{l3keys2e}
+ \ProcessKeysOptions{uvh}
}
-% Process
-\ProcessOptionsX<uvt>
-
%% ============================================================
%% LOAD REQUIRED BASE CLASS AND PACKAGES
%% ============================================================
% Base class: scrartcl (KOMA-Script)
-\PassOptionsToClass{fontsize=\univ@fontsize,oneside,final}{scrartcl}
-\iflandscape
+\PassOptionsToClass{fontsize=\uvh@fontsize,oneside,final}{scrartcl}
+\if@uvh@landscape
\PassOptionsToClass{landscape}{scrartcl}
\fi
\LoadClass{scrartcl}[1997/04/16]
@@ -431,29 +315,29 @@
\AtEndOfClass{\pagestyle{headings}}
% Use lastpage package if total pages is required
-\iflastpage
+\if@uvh@lastpage
\AtEndOfClass{\RequirePackage{lastpage}}
\fi
% We need graphicx for the logo
\RequirePackage{graphicx}
-\ifpsfonts
- \ifuniv@usefontenc
- \RequirePackage[\univ@fontenc]{fontenc}
- \fi
- % Source Pro fonts
- \usepackage[default,osf]{sourceserifpro}
- \usepackage[osf]{sourcesanspro}
- \usepackage{sourcecodepro}
+\if@uvh@psfonts
+ \if@uvh@usefontenc
+ \RequirePackage[\uvh@fontenc]{fontenc}
+ \fi
+ % Source Pro fonts
+ \RequirePackage[default,osf]{sourceserifpro}
+ \RequirePackage[osf]{sourcesanspro}
+ \RequirePackage{sourcecodepro}
\fi
-\ifotffonts
- \RequirePackage{fontspec}
- % Source Pro fonts
- \setmainfont{SourceSerifPro}[Numbers=OldStyle]
- \setsansfont{SourceSansPro}[Numbers=OldStyle]
- \setmonofont{SourceCodePro}
+\if@uvh@otffonts
+ \RequirePackage{fontspec}
+ % Source Pro fonts
+ \setmainfont{SourceSerifPro}[Numbers=OldStyle]
+ \setsansfont{SourceSansPro}[Numbers=OldStyle]
+ \setmonofont{SourceCodePro}
\fi
@@ -465,19 +349,19 @@
% 0 Predefinitions
% Font settings
-\def\univ@font@event{\fontsize{11}{13pt}\selectfont\mdseries\sffamily}
-\def\univ@font@title{\fontsize{18}{21pt}\selectfont\bfseries\sffamily}
-\def\univ@font@subtitle{\fontsize{13}{16pt}\selectfont\bfseries\sffamily}
-\def\univ@font@sections{\fontsize{13}{16pt}\selectfont\bfseries\sffamily}
-\def\univ@font@department{\fontsize{10}{12pt}\selectfont\bfseries\sffamily}
-\def\univ@font@header{\fontsize{8}{10pt}\selectfont\mdseries\sffamily}
-\def\univ@font@footer{\fontsize{8}{10pt}\selectfont\sffamily}
-\def\univ@font@headertitle{\fontsize{8}{10pt}\selectfont\sffamily}
-\def\univ@font@eventlocdate{\fontsize{11}{13pt}\selectfont\mdseries\sffamily}
+\def\uvh@font@event{\fontsize{11}{13pt}\selectfont\mdseries\sffamily}
+\def\uvh@font@title{\fontsize{18}{21pt}\selectfont\bfseries\sffamily}
+\def\uvh@font@subtitle{\fontsize{13}{16pt}\selectfont\bfseries\sffamily}
+\def\uvh@font@sections{\fontsize{13}{16pt}\selectfont\bfseries\sffamily}
+\def\uvh@font@department{\fontsize{10}{12pt}\selectfont\bfseries\sffamily}
+\def\uvh@font@header{\fontsize{8}{10pt}\selectfont\mdseries\sffamily}
+\def\uvh@font@footer{\fontsize{8}{10pt}\selectfont\sffamily}
+\def\uvh@font@headertitle{\fontsize{8}{10pt}\selectfont\sffamily}
+\def\uvh@font@eventlocdate{\fontsize{11}{13pt}\selectfont\mdseries\sffamily}
\setkomafont{part}{\fontsize{16}{18pt}\bfseries}
\setkomafont{partnumber}{\usekomafont{part}}
-\setkomafont{sectioning}{\univ@font@sections}
+\setkomafont{sectioning}{\uvh@font@sections}
\setkomafont{descriptionlabel}{\normalfont\mdseries}
\setkomafont{captionlabel}{\normalfont\bfseries}
@@ -499,105 +383,105 @@
\setlength\aftertitle{18pt}
% Boxes
-\newsavebox{\univ@box@logo}
+\newsavebox{\uvh@box@logo}
% Aux linebreak macro, since \\ is redefined by beamer article
-\newcommand\umbruch[1][]{\linebreak\ifx\@empty#1\else\vspace{#1}\fi}
+\newcommand*\umbruch[1][]{\linebreak\ifx\@empty#1\else\vspace{#1}\fi}
%% ============================================================
%% 1 Personal data
%% ============================================================
-% a.) department
-\def\univ@department@de{\empty}
-\def\univ@department@en{\empty}
+% a.) Department
+\def\uvh@department@de{\empty}
+\def\uvh@department@en{\empty}
\newcommand*\hoDept[2][\@empty]%
{%
- \ifx\@empty#1\def\univ@department@en{#2}
- \else\def\univ@department@en{#1}\fi
- \def\univ@department@de{#2}
+ \ifx\@empty#1\def\uvh@department@en{#2}
+ \else\def\uvh@department@en{#1}\fi
+ \def\uvh@department@de{#2}
}
% b.) Name & function
-\def\univ@name@de{}
-\def\univ@name@en{}
+\def\uvh@name@de{}
+\def\uvh@name@en{}
\newcommand*\hoName[2][\@empty]%
{%
- \ifx\@empty#1\def\univ@name@en{#2}
- \else\def\univ@name@en{#1}\fi
- \def\univ@name@de{#2}
+ \ifx\@empty#1\def\uvh@name@en{#2}
+ \else\def\uvh@name@en{#1}\fi
+ \def\uvh@name@de{#2}
}
-\def\univ@shortname@de{}
-\def\univ@shortname@en{}
+\def\uvh@shortname@de{}
+\def\uvh@shortname@en{}
\newcommand*\hoShortName[2][\@empty]%
{%
- \ifx\@empty#1\def\univ@shortname@en{#2}
- \else\def\univ@shortname@en{#1}\fi
- \def\univ@shortname@de{#2}
+ \ifx\@empty#1\def\uvh@shortname@en{#2}
+ \else\def\uvh@shortname@en{#1}\fi
+ \def\uvh@shortname@de{#2}
}
%
-\def\univ@function@de{}
-\def\univ@function@en{}
+\def\uvh@function@de{}
+\def\uvh@function@en{}
\newcommand*\hoFunction[2][\@empty]%
{%
- \ifx\@empty#1\def\univ@function@en{#2}
- \else\def\univ@function@en{#1}\fi
- \def\univ@function@de{#2}
+ \ifx\@empty#1\def\uvh@function@en{#2}
+ \else\def\uvh@function@en{#1}\fi
+ \def\uvh@function@de{#2}
}
% c.) A collaborator's name & function
-\def\univ@secname{}
-\newcommand*\hoSecName[1]{\def\univ@secname{#1}}
-\def\univ@shortsecname{}
-\newcommand*\hoShortSecName[1]{\def\univ@shortsecname{#1}}
+\def\uvh@secname{}
+\newcommand*\hoSecName[1]{\def\uvh@secname{#1}}
+\def\uvh@shortsecname{}
+\newcommand*\hoShortSecName[1]{\def\uvh@shortsecname{#1}}
%
-\def\univ@secfunction@de{}
-\def\univ@secfunction@en{}
+\def\uvh@secfunction@de{}
+\def\uvh@secfunction@en{}
\newcommand*\hoSecFunction[2][\@empty]%
{%
- \ifx\@empty#1\def\univ@secfunction@en{#2}
- \else\def\univ@secfunction@en{#1}\fi
- \def\univ@secfunction@de{#2}
+ \ifx\@empty#1\def\uvh@secfunction@en{#2}
+ \else\def\uvh@secfunction@en{#1}\fi
+ \def\uvh@secfunction@de{#2}
}
% d.) Department address
-\def\univ@street{}
-\newcommand*\hoStreet[1]{\def\univ@street{#1}}
+\def\uvh@street{}
+\newcommand*\hoStreet[1]{\def\uvh@street{#1}}
%
-\def\univ@postcode{}
-\newcommand*\hoPostCode[1]{\def\univ@postcode{#1}}
+\def\uvh@postcode{}
+\newcommand*\hoPostCode[1]{\def\uvh@postcode{#1}}
%
-\def\univ@location@de{}
-\def\univ@location@en{}
+\def\uvh@location@de{}
+\def\uvh@location@en{}
\newcommand*\hoLoc[2][\@empty]%
{%
- \ifx\@empty#1\def\univ@location@en{#2}
- \else\def\univ@location@en{#1}\fi
- \def\univ@location@de{#2}
+ \ifx\@empty#1\def\uvh@location@en{#2}
+ \else\def\uvh@location@en{#1}\fi
+ \def\uvh@location@de{#2}
}
%
-\def\univ@country@de{}
-\def\univ@country@en{}
+\def\uvh@country@de{}
+\def\uvh@country@en{}
\newcommand*\hoCountry[2][\@empty]%
{%
- \ifx\@empty#1\def\univ@country@en{#2}
- \else\def\univ@country@en{#1}\fi
- \def\univ@country@de{#2}
+ \ifx\@empty#1\def\uvh@country@en{#2}
+ \else\def\uvh@country@en{#1}\fi
+ \def\uvh@country@de{#2}
}
% e.) Contact
-\def\univ@phone{}
-\newcommand*\hoPhone[1]{\def\univ@phone{#1}}
+\def\uvh@phone{}
+\newcommand*\hoPhone[1]{\def\uvh@phone{#1}}
%
-\def\univ@fax{}
-\newcommand*\hoFax[1]{\def\univ@fax{#1}}
+\def\uvh@fax{}
+\newcommand*\hoFax[1]{\def\uvh@fax{#1}}
%
-\def\univ@email{}
-\newcommand*\hoEMail[1]{\def\univ@email{#1}}
+\def\uvh@email{}
+\newcommand*\hoEMail[1]{\def\uvh@email{#1}}
%
-\def\univ@url{}
-\newcommand*\hoUrl[1]{\def\univ@url{#1}}
+\def\uvh@url{}
+\newcommand*\hoUrl[1]{\def\uvh@url{#1}}
%% ============================================================
@@ -605,135 +489,135 @@
%% ============================================================
% a.) Handout title
-\def\univ@title{}
-\def\univ@title@header{~}
+\def\uvh@title{}
+\def\uvh@title@header{~}
\newcommand{\hoTitle}[2][\@empty]%
{%
- \ifx\@empty#1\def\univ@title@header{#2}
- \else\def\univ@title@header{#1}\fi
- \def\univ@title{#2}
+ \ifx\@empty#1\def\uvh@title@header{#2}
+ \else\def\uvh@title@header{#1}\fi
+ \def\uvh@title{#2}
\thispagestyle{firstpage}%
}
-\def\univ@titleprefix{}
+\def\uvh@titleprefix{}
\newcommand{\hoTitlePrefix}[1]
{%
- \def\univ@titleprefix{#1}%
+ \def\uvh@titleprefix{#1}%
}
% b.) Handout subtitle
-\def\univ@subtitle{}
-\def\univ@widesubtitle{}
+\def\uvh@subtitle{}
+\def\uvh@widesubtitle{}
\newcommand{\hoSubtitle}{\@ifstar{\@@hoSubtitle}{\@hoSubtitle}}
% Starred version: wide subtitle
\newcommand{\@hoSubtitle}[1]
{%
- \ifwidestitle
- \def\univ@widesubtitle{#1}%
+ \if@uvh@usewidesubtitle
+ \def\uvh@widesubtitle{#1}%
\else
- \def\univ@subtitle{#1}%
+ \def\uvh@subtitle{#1}%
\fi
}
% Unstarred version: normal (narrow) subtitle
\newcommand{\@@hoSubtitle}[1]
{%
- \def\univ@widesubtitle{#1}%
+ \def\uvh@widesubtitle{#1}%
}
% c.) Event title
-\def\univ@event{}
-\def\univ@event@header{~}
+\def\uvh@event{}
+\def\uvh@event@header{~}
\newcommand*{\hoEvent}[2][\@empty]{%
- \ifx\@empty#1\def\univ@event@header{#2}
- \else\def\univ@event@header{#1}\fi
- \def\univ@event{#2}
+ \ifx\@empty#1\def\uvh@event@header{#2}
+ \else\def\uvh@event@header{#1}\fi
+ \def\uvh@event{#2}
}
% d.) Event location
-\def\univ@eventlocation{}
-\def\univ@eventlocation@header{}
+\def\uvh@eventlocation{}
+\def\uvh@eventlocation@header{}
\newcommand*{\hoEventLoc}[2][\@empty]{%
- \ifx\@empty#1\def\univ@eventlocation@header{#2}
- \else\def\univ@eventlocation@header{#1}\fi
- \def\univ@eventlocation{#2}
+ \ifx\@empty#1\def\uvh@eventlocation@header{#2}
+ \else\def\uvh@eventlocation@header{#1}\fi
+ \def\uvh@eventlocation{#2}
}
% e.) Event date
-\def\univ@eventdate{}
-\def\univ@eventdate@header{}
+\def\uvh@eventdate{}
+\def\uvh@eventdate@header{}
\newcommand*{\hoEventDate}[2][\@empty]{%
- \ifx\@empty#1\def\univ@eventdate@header{#2}
- \else\def\univ@eventdate@header{#1}\fi
- \def\univ@eventdate{#2}
+ \ifx\@empty#1\def\uvh@eventdate@header{#2}
+ \else\def\uvh@eventdate@header{#1}\fi
+ \def\uvh@eventdate{#2}
}
% The maketitle routine
\renewcommand\maketitle{%
- \newif\ifuniv@eventline\univ@eventlinefalse%
- \ifx\univ@event\empty\else\univ@eventlinetrue\fi%
- \ifx\univ@eventdate\empty\else\univ@eventlinetrue\fi%
- \ifx\univ@eventlocation\empty\else\univ@eventlinetrue\fi%
+ \newif\ifuvh@eventline\uvh@eventlinefalse%
+ \ifx\uvh@event\empty\else\uvh@eventlinetrue\fi%
+ \ifx\uvh@eventdate\empty\else\uvh@eventlinetrue\fi%
+ \ifx\uvh@eventlocation\empty\else\uvh@eventlinetrue\fi%
\vspace*{\beforetitling}%
\hspace*{\titleoffset}%
\begin{minipage}[t]{0.63\columnwidth}%
\raggedright%
- \ifx\univ@event\empty%
+ \ifx\uvh@event\empty%
\else
- \vspace*{\beforeevent}\bgroup\univ@font@event\univ@event\egroup\ifx\univ@eventlocation\empty\else\par\fi%
+ \vspace*{\beforeevent}\bgroup\uvh@font@event\uvh@event\egroup\ifx\uvh@eventlocation\empty\else\par\fi%
\fi%
- \ifx\univ@eventlocation\empty%
+ \ifx\uvh@eventlocation\empty%
\else
- \bgroup\univ@font@eventlocdate\univ@eventlocation\egroup%
+ \bgroup\uvh@font@eventlocdate\uvh@eventlocation\egroup%
\fi%
- \ifx\univ@eventdate\empty%
+ \ifx\uvh@eventdate\empty%
\else%
- \bgroup\univ@font@eventlocdate{} (\univ@eventdate)\egroup%
+ \bgroup\uvh@font@eventlocdate{} (\uvh@eventdate)\egroup%
\fi%
- \ifuniv@eventline\par\fi
- \ifx\univ@title\empty%
+ \ifuvh@eventline\par\fi
+ \ifx\uvh@title\empty%
\else
\vspace{\beforetitle}%
- \ifx\univ@titleprefix\empty%
- \parbox{\textwidth}{\raggedright\univ@font@title\univ@title}\par%
- \ifx\univ@subtitle\empty%
+ \ifx\uvh@titleprefix\empty%
+ \parbox{\textwidth}{\raggedright\uvh@font@title\uvh@title}\par%
+ \ifx\uvh@subtitle\empty%
\else
- \vspace{\beforesubtitle}\noindent\bgroup\raggedright\univ@font@subtitle\univ@subtitle\par\egroup%
+ \vspace{\beforesubtitle}\noindent\bgroup\raggedright\uvh@font@subtitle\uvh@subtitle\par\egroup%
\fi
\else%
\vspace{.15\baselineskip}%
\begin{minipage}{\textwidth}
\begin{tabularx}{\columnwidth}{@{}l@{\enskip}>{\raggedright\arraybackslash}X}
- \univ@font@title\univ@titleprefix & \univ@font@title\univ@title \tabularnewline
- \ifx\univ@subtitle\empty%
+ \uvh@font@title\uvh@titleprefix & \uvh@font@title\uvh@title \tabularnewline
+ \ifx\uvh@subtitle\empty%
\else
\noalign{\vspace{\beforesubtitle}}%
- & \univ@font@subtitle\univ@subtitle \tabularnewline
+ & \uvh@font@subtitle\uvh@subtitle \tabularnewline
\fi
\end{tabularx}%
\end{minipage}%
\fi
\@ifundefined{hypersetup}{}{%
- \hypersetup{pdftitle=\ifx\univ@titleprefix\empty\else\univ@titleprefix~\fi\univ@title,
- pdfauthor=\univ@name,
+ \hypersetup{pdftitle=\ifx\uvh@titleprefix\empty\else\uvh@titleprefix~\fi\uvh@title,
+ pdfauthor=\uvh@name,
pdfcreator={LaTeX2e via LyX}}}%
\fi%
\end{minipage}\par%
- \ifx\univ@widesubtitle\empty%
+ \ifx\uvh@widesubtitle\empty%
\else%
- \vspace{\beforesubtitle}\bgroup\noindent\raggedright\univ@font@subtitle\univ@widesubtitle\par\egroup%
+ \vspace{\beforesubtitle}\bgroup\noindent\raggedright\uvh@font@subtitle\uvh@widesubtitle\par\egroup%
\fi%
\vspace{\aftertitle}%
\@afterindentfalse\@afterheading%
}
% Easy way to change bibliography heading
-\def\univ@bibheading{\refname}
-\newcommand*\Bibheading[1]{\def\univ@bibheading{#1}}
+\def\uvh@bibheading{\refname}
+\newcommand*\Bibheading[1]{\def\uvh@bibheading{#1}}
% Adjust logo positioning for landscape
\newlength\lsoffset
-\iflandscape
-\setlength\lsoffset{8cm}
-\addtolength\headeroffset{\lsoffset}
+\if@uvh@landscape
+ \setlength\lsoffset{8cm}
+ \addtolength\headeroffset{\lsoffset}
\fi
@@ -741,15 +625,16 @@
%% LOCALIZATION:
%% ============================================================
-\RequirePackage{translations}
-\DeclareTranslation{German}{draft}{ENTWURF}
-\DeclareTranslation{English}{draft}{DRAFT}
-\DeclareTranslation{German}{section}{Abschnitt}
-\DeclareTranslation{English}{section}{section}
-\DeclareTranslation{German}{footnote}{Anm.}
-\DeclareTranslation{English}{footnote}{fn.}
-\DeclareTranslation{German}{example}{Beispiel}
-\DeclareTranslation{English}{example}{example}
+\RequirePackage{translator}
+\languagealias{naustrian}{German}
+\deftranslation[to=German]{draft}{ENTWURF}
+\deftranslation[to=English]{draft}{DRAFT}
+\deftranslation[to=German]{section}{Abschnitt}
+\deftranslation[to=English]{section}{section}
+\deftranslation[to=German]{footnote}{Anm.}
+\deftranslation[to=English]{footnote}{fn.}
+\deftranslation[to=German]{example}{Beispiel}
+\deftranslation[to=English]{example}{example}
%% ============================================================
@@ -760,44 +645,44 @@
% First page
\def\ps@firstpage{
- \sbox{\univ@box@logo}{\univ@printlogo}
- \def\univ@thelogo{\parbox{74mm}{\usebox{\univ@box@logo}}}
+ \sbox{\uvh@box@logo}{\uvh@printlogo}
+ \def\uvh@thelogo{\parbox{74mm}{\usebox{\uvh@box@logo}}}
\headheight30mm\headsep2.5mm\footskip8mm
\def\@oddhead{%
\unitlength1mm
\hspace*{\headeroffset}
\begin{picture}(0,0)
- \put(84.5,19){\univ@thelogo}
+ \put(84.5,19){\uvh@thelogo}
\put(107,8){%
\parbox[t]{51.5mm}
{\normalsize\parbox[t]{\linewidth}{%
\begin{flushleft}%
- \if\univ@department\empty\else\vspace*{8pt}\univ@font@department\univ@department\umbruch[3pt]\umbruch\fi%
- \univ@font@header\univ@name%
- \if\univ@function\empty\else\umbruch\univ@function\fi%
- \if\univ@street\empty\else\umbruch\univ@street\fi%
- \if\univ@location\empty\else\umbruch\univ@postcode~\univ@location\fi%
+ \if\uvh@department\empty\else\vspace*{8pt}\uvh@font@department\uvh@department\umbruch[3pt]\umbruch\fi%
+ \uvh@font@header\uvh@name%
+ \if\uvh@function\empty\else\umbruch\uvh@function\fi%
+ \if\uvh@street\empty\else\umbruch\uvh@street\fi%
+ \if\uvh@location\empty\else\umbruch\uvh@postcode~\uvh@location\fi%
\vspace{10pt}%
- \if\univ@phone\empty\else\umbruch\ifx\univ@phoneprefix\empty\else\univ@phoneprefix\ \fi\univ@phone\fi%
- \if\univ@fax\empty\else\umbruch\ifx\univ@faxprefix\empty\else\univ@faxprefix\ \fi\univ@fax\fi%
- \if\univ@email\empty\else\umbruch\ifx\univ@emailprefix\empty\else\univ@emailprefix\ \fi\univ@email\fi%
- \ifx\univ@url\empty\else\umbruch\ifx\univ@urlprefix\empty\else\univ@urlprefix\ \fi\univ@url\fi%
+ \if\uvh@phone\empty\else\umbruch\ifx\uvh@phoneprefix\empty\else\uvh@phoneprefix\ \fi\uvh@phone\fi%
+ \if\uvh@fax\empty\else\umbruch\ifx\uvh@faxprefix\empty\else\uvh@faxprefix\ \fi\uvh@fax\fi%
+ \if\uvh@email\empty\else\umbruch\ifx\uvh@emailprefix\empty\else\uvh@emailprefix\ \fi\uvh@email\fi%
+ \ifx\uvh@url\empty\else\umbruch\ifx\uvh@urlprefix\empty\else\uvh@urlprefix\ \fi\uvh@url\fi%
\end{flushleft}%
}%
}%
}
- \ifuniv@punchmark
+ \if@uvh@punchmark
\put(-27,-112){\line(1,0){4}}
\fi
- \ifuniv@foldmarks
+ \if@uvh@foldmarks
\put(-33,-56){\line(1,0){3}}
\put(-33,-168){\line(1,0){3}}
\fi
\end{picture}
\hfill%
}
- \ifpageonfirst
- \def\@oddfoot{\hfill\univ@font@footer\raggedright\univ@pageprefix~\thepage\iflastpage /\pageref{LastPage}\fi}
+ \if@uvh@pageonfirst
+ \def\@oddfoot{\hfill\uvh@font@footer\raggedright\uvh@pageprefix~\thepage\if@uvh@lastpage /\pageref{LastPage}\fi}
\else
\def\@oddfoot{}
\fi
@@ -808,37 +693,37 @@
%
% Pages > 1
-\newif\ifnoevent\noeventfalse
+\newif\if@uvh@noevent\@uvh@noeventfalse
\def\heventtitlesep{}
\def\ps@headings{%
- \let\orig@and\and%
+ \let\uvh@save@and\and%
\def\and{$\cdot$\ }%
- \ifnopplogo\else\sbox{\univ@box@logo}{\univ@printsmalllogo}\fi
- \def\univ@thelogo{\parbox{90mm}{\usebox{\univ@box@logo}}}
+ \if@uvh@pplogo\sbox{\uvh@box@logo}{\uvh@printsmalllogo}\fi
+ \def\uvh@thelogo{\parbox{90mm}{\usebox{\uvh@box@logo}}}
\headheight30mm\headsep2.5mm\footskip8mm
- \def\titleline{\ifx\univ@title@header\empty\else\univ@font@headertitle%
- \ifx\univ@titleprefix\empty\else\univ@titleprefix~\fi%
- \univ@title@header\linebreak\fi}%
- \ifx\univ@eventlocation@header\empty\ifx\univ@eventdate@header\empty\noeventtrue\fi\fi%
+ \def\titleline{\ifx\uvh@title@header\empty\else\uvh@font@headertitle%
+ \ifx\uvh@titleprefix\empty\else\uvh@titleprefix~\fi%
+ \uvh@title@header\linebreak\fi}%
+ \ifx\uvh@eventlocation@header\empty\ifx\uvh@eventdate@header\empty\@uvh@noeventtrue\fi\fi%
\def\eventline{%
- \univ@font@header\univ@event@header\ifx\univ@eventdate@header\empty\else\ifbreakevent\linebreak\else\ \fi%
- \ifnoevent\else(\ifx\univ@eventlocation@header\empty\else\univ@eventlocation@header, \fi\univ@eventdate@header)\fi\linebreak\fi%
+ \uvh@font@header\uvh@event@header\ifx\uvh@eventdate@header\empty\else\if@uvh@breakevent\linebreak\else\ \fi%
+ \if@uvh@noevent\else(\ifx\uvh@eventlocation@header\empty\else\uvh@eventlocation@header, \fi\uvh@eventdate@header)\fi\linebreak\fi%
}
\def\@oddhead{%
\unitlength1mm
\hspace{\headeroffset}
\begin{picture}(0,0)
- \put(106.2,15){\univ@thelogo}
+ \put(106.2,15){\uvh@thelogo}
\put(-8,25){%
\hspace*{-\lsoffset}%
\parbox[t]{120mm}
{\normalsize\parbox[t]{100mm}{%
\begin{flushleft}%
- \univ@font@header\if\hfuzz\univ@shortname\hfuzz\univ@name\else\univ@shortname\fi
- \if\univ@department\empty\else\univ@headerdeptsep\univ@department\fi\linebreak
- \ifswaphead
+ \uvh@font@header\if\hfuzz\uvh@shortname\hfuzz\uvh@name\else\uvh@shortname\fi
+ \if\uvh@department\empty\else\uvh@headerdeptsep\uvh@department\fi\linebreak
+ \if@uvh@swaphead
\eventline%
\heventtitlesep%
\titleline%
@@ -853,10 +738,10 @@
\end{picture}
\hfill%
}
- \def\@oddfoot{\hfill\univ@font@footer\raggedright\univ@pageprefix~\thepage\iflastpage /\pageref{LastPage}\fi}
+ \def\@oddfoot{\hfill\uvh@font@footer\raggedright\uvh@pageprefix~\thepage\if@uvh@lastpage /\pageref{LastPage}\fi}
\def\@evenhead{\@oddhead}
\def\@evenfoot{\@oddfoot}
- \let\and\orig@and%
+ \let\and\uvh@save@and%
}
@@ -867,22 +752,24 @@
%% captionlabel bold
\setkomafont{captionlabel}{\bfseries}
-\ifcaptionp
-\RequirePackage[format=plain,
- justification=RaggedRight,
- singlelinecheck=false
- ]{caption}
+\if@uvh@captionp
+ \RequirePackage[format=plain,
+ justification=RaggedRight,
+ singlelinecheck=false
+ ]{caption}
\fi
%% =============================================================
%% POLYGLOSSIA:
%% =============================================================
-\ifpolyglossia
- \ifcaptionp
+\if@uvh@polyglossia
+ \if@uvh@captionp
\RequirePackage{ragged2e}
\fi
\RequirePackage{polyglossia}
+\else
+ \RequirePackage{babel}[1997/01/23]
\fi
%% =============================================================
@@ -890,9 +777,9 @@
%% =============================================================
% Biblatex
-\ifbiblatex
+\if@uvh@biblatex
-\ifapa
+\if@uvh@apa
% Load biblatex with apa style
\RequirePackage[%
style=apa,
@@ -955,12 +842,12 @@
% Change cite command for integrated csquotes env.
\AfterPackage*{csquotes}{\SetCiteCommand{\parencite}}
-% End of apa condition
+% End of @uvh@apa condition
\fi
-\DeclarePrintbibliographyDefaults{title=\univ@bibheading}
+\DeclarePrintbibliographyDefaults{title=\uvh@bibheading}
-% End of biblatex condition
+% End of @uvh@biblatex condition
\fi
% Smaller
@@ -968,7 +855,7 @@
% Custom heading
\AtBeginDocument{%
- \renewcommand*\bib@heading{\section*{\univ@bibheading}}
+ \renewcommand*\bib@heading{\section*{\uvh@bibheading}}
}
@@ -984,13 +871,20 @@
%
\RequirePackage{array}
\RequirePackage{ifthen}
-\RequirePackage{babel}[1997/01/23]
% Micro-typographic polishment
-\ifmicrotype
+\if@uvh@microtype
\RequirePackage{microtype}
\fi
+% Quote (smaller)
+\let\@uvh@save@quote\quote
+\renewcommand*{\quote}{\@uvh@save@quote\small}
+
+% Quotation (smaller)
+\let\@uvh@save@quotation\quotation
+\renewcommand*{\quotation}{\@uvh@save@quotation\small}
+
% Smart quotes
\RequirePackage{csquotes}
\ExecuteQuoteOptions{autostyle=tryonce,german=guillemets,austrian=guillemets,maxlevel=3}
@@ -1006,15 +900,12 @@
\newcommand{\urlprefix}{}
% URLs italic
-\@ifundefined{selectfont}{%
-\def\UrlFont{\it}}
-{\def\UrlFont{\rmfamily\itshape}%
-}
+\def\UrlFont{\rmfamily\itshape}
% Covington
-\ifcovington
-\RequirePackage{covington}
-\renewcommand{\p@equation}[1]{(#1)}
+\if@uvh@covington
+ \RequirePackage{covington}
+ \renewcommand{\p@equation}[1]{(#1)}
\fi
@@ -1022,7 +913,7 @@
%% X-REFS:
%% =============================================================
-\ifrefsp
+\if@uvh@refsp
\AtBeginDocument{%
% Varioref:
@@ -1032,19 +923,19 @@
\def\reftextfaceafter{auf der gegen\"uberliegenden Seite}%
\def\reftextbefore{auf der \reftextvario{vorhergehenden}{vorangegangenen} Seite}%
\def\reftextfacebefore{auf der gegen\"uberliegenden Seite}%
- \def\reftextfaraway[1]{auf S.~\pageref{##1}}%
- \def\reftextpagerange[2]{auf S.~\pageref{##1}--\pageref{##2}}%
+ \def\reftextfaraway#1{auf S.~\pageref{#1}}%
+ \def\reftextpagerange#1#2{auf S.~\pageref{#1}--\pageref{#2}}%
}%
% Prettyref:
% (varioref-Befehle mit eingebunden)
\RequirePackage{prettyref}
- \newrefformat{sec}{\GetTranslation{section}~\ref{#1}}
- \newrefformat{sub}{\GetTranslation{section}~\ref{#1}}
- \newrefformat{anm}{\GetTranslation{footnote}~\ref{#1}}
+ \newrefformat{sec}{\translate{section}~\ref{#1}}
+ \newrefformat{sub}{\translate{section}~\ref{#1}}
+ \newrefformat{anm}{\translate{footnote}~\ref{#1}}
\newrefformat{app}{\appendixname~\vref{#1}}
\newrefformat{tab}{\tablename~\vref{#1}}
\newrefformat{fig}{\figurename~\vref{#1}}
- \newrefformat{exa}{\GetTranslation{example}~\vref{#1}}
+ \newrefformat{exa}{\translate{example}~\vref{#1}}
}
\fi
@@ -1054,9 +945,9 @@
%% DRAFT:
%% =============================================================
-\ifdraftmark
+\if@uvh@draftmark
-\ifdraftmarkfp
+\if@uvh@draftmarkfp
\RequirePackage[firstpageonly]{draftwatermark}
\else
\RequirePackage{draftwatermark}
@@ -1067,7 +958,7 @@
vpos=10pt,
anchor=ct,
fontsize=14pt,
- text={\GetTranslation{draft} (\today)}
+ text={\translate{draft} (\today)}
}
\fi
diff --git a/macros/latex/contrib/univie-ling/tex/univie-ling-paper.cls b/macros/latex/contrib/univie-ling/tex/univie-ling-paper.cls
index 885551b587..34f029b9ed 100644
--- a/macros/latex/contrib/univie-ling/tex/univie-ling-paper.cls
+++ b/macros/latex/contrib/univie-ling/tex/univie-ling-paper.cls
@@ -32,186 +32,146 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{univie-ling-paper}[2022/06/18 v1.19 Univie Linguistic Papers (JSp)]
+\ProvidesPackage{univie-ling-paper}[2022/10/02 v.2.0 Univie Linguistic Papers (JSp)]
%% ============================================================
%% CLASS OPTIONS
%% ============================================================
-\RequirePackage{xkeyval}
-
-\newif\ifbiblatex\biblatextrue
-\newif\ifapa\apafalse
-\newif\ifcaptionp\captionptrue
-\newif\ifdraftmark\draftmarkfalse
-\newif\ifdraftmarkfp\draftmarkfpfalse
-\newif\ifrefsp\refsptrue
-\newif\ifcovington\covingtontrue
-\newif\ifmicrotype\microtypetrue
-\newif\ifmultiauthors\multiauthorsfalse
-\newif\ifpolyglossia\polyglossiafalse
-\newif\ifpsfonts\psfontstrue
-\newif\ifotffonts\otffontsfalse
-\newif\ifnofonts\nofontsfalse
-
-% all=<true|false>
-% Load all packages
-\define@boolkey+{uvt}{all}[true]{%
- \ifKV@uvt@all
- \biblatextrue
- \captionptrue
- \refsptrue
- \covingtontrue
- \microtypetrue
- \else
- \biblatexfalse
- \captionpfalse
- \refspfalse
- \covingtonfalse
- \microtypefalse
- \fi
-}{%
- \ClassWarning{univie-ling-paper}{unknown 'all' value}%
+\newif\if@uvp@biblatex\@uvp@biblatextrue
+\newif\if@uvp@apa\@uvp@apafalse
+\newif\if@uvp@captionp\@uvp@captionptrue
+\newif\if@uvp@draftmark\@uvp@draftmarkfalse
+\newif\if@uvp@draftmarkfp\@uvp@draftmarkfpfalse
+\newif\if@uvp@refsp\@uvp@refsptrue
+\newif\if@uvp@covington\@uvp@covingtontrue
+\newif\if@uvp@microtype\@uvp@microtypetrue
+\newif\if@uvp@multiauthors\@uvp@multiauthorsfalse
+\newif\if@uvp@polyglossia\@uvp@polyglossiafalse
+\newif\if@uvp@psfonts\@uvp@psfontstrue
+\newif\if@uvp@otffonts\@uvp@otffontsfalse
+\newif\if@uvp@usefontenc\@uvp@usefontenctrue
+\def\uvp@fontenc{T1}
+
+% We use l3keys here since (1) LaTeX2e keys are rather
+% new and (2) do not provide for choice keys yet.
+\ExplSyntaxOn
+\keys_define:nn { uvp }
+{
+ % all=<true|false>
+ % Load all (most) packages
+ all.code:n =
+ { \bool_if:nTF {#1} {
+ \@uvp@biblatextrue
+ \@uvp@captionptrue
+ \@uvp@refsptrue
+ \@uvp@covingtontrue
+ \@uvp@microtypetrue
+ }{
+ \@uvp@biblatexfalse
+ \@uvp@captionpfalse
+ \@uvp@refspfalse
+ \@uvp@covingtonfalse
+ \@uvp@microtypefalse
+ }
+ },
+ all.usage:n = preamble,
+ % apa=<true|false>
+ % Load APA style
+ apa.legacy_if_set:n = @uvp@apa,
+ apa.usage:n = preamble,
+ % biblatex=<true|false>
+ % Load biblatex
+ biblatex.legacy_if_set:n = @uvp@biblatex,
+ biblatex.usage:n = preamble,
+ % caption=<true|false>
+ % Load caption
+ caption.legacy_if_set:n = @uvp@captionp,
+ caption.usage:n = preamble,
+ % covington=<true|false>
+ % Load covington
+ covington.legacy_if_set:n = @uvp@covington,
+ covington.usage:n = preamble,
+ % fontenc=<value|none>
+ % customize font encoding
+ fontenc.code:n =
+ { \str_if_eq:NNTF { #1 } { none } {
+ \@uvp@usefontencfalse
+ }{
+ \def\uvp@fontenc{#1}
+ }
+ },
+ fontenc.usage:n = preamble,
+ % microtype=<true|false>
+ % Load microtype
+ microtype.legacy_if_set:n = @uvp@microtype,
+ microtype.usage:n = preamble,
+ % polyglossia=<true|false>
+ % Load polyglossia
+ polyglossia.legacy_if_set:n = @uvp@polyglossia,
+ polyglossia.code:n =
+ { \bool_if:nT {#1} {
+ \@uvp@psfontsfalse
+ \@uvp@otffontstrue
+ }
+ },
+ polyglossia.usage:n = preamble,
+ % ref=<true|false>
+ % Load varioref and prettyref
+ ref.legacy_if_set:n = @uvp@refsp,
+ ref.usage:n = preamble,
+ % draftmark=<true|false|firstpage>
+ % Print draftmark
+ draftmark .choice:,
+ % true
+ draftmark / true .code:n =
+ { \@uvp@draftmarktrue
+ \@uvp@draftmarkfpfalse
+ },
+ % false
+ draftmark / false .code:n =
+ { \@uvp@draftmarkfalse
+ \@uvp@draftmarkfpfalse
+ },
+ % firstpage
+ draftmark / firstpage .code:n =
+ { \@uvp@draftmarktrue
+ \@uvp@draftmarkfptrue
+ },
+ % no val equals to true
+ draftmark .default:n = {true},
+ % fonts=<ps|otf|none>
+ % Select font scheme
+ fonts .choice:,
+ % ps: use PostScript fonts (classic LaTeX)
+ fonts / ps .code:n =
+ { \@uvp@psfontstrue
+ \@uvp@otffontsfalse
+ },
+ % otf: use OpenType fonts (fontspec)
+ fonts / otf .code:n =
+ { \@uvp@psfontsfalse
+ \@uvp@otffontstrue
+ },
+ % none: Use no font package
+ fonts / none .code:n =
+ { \@uvp@psfontsfalse
+ \@uvp@otffontsfalse
+ },
}
+\ExplSyntaxOff
-% biblatex=<true|false>
-% Load biblatex
-\define@boolkey+{uvt}{biblatex}[true]{%
- \ifKV@uvt@biblatex
- \biblatextrue
- \else
- \biblatexfalse
- \fi
-}{%
- \ClassWarning{univie-ling-paper}{unknown biblatex value}%
-}
-
-% apa=<true|false>
-% Load APA style
-\define@boolkey+{uvt}{apa}[true]{%
- \ifKV@uvt@apa
- \apatrue
- \else
- \apafalse
- \fi
-}{%
- \ClassWarning{univie-ling-paper}{unknown apa value}%
-}
-
-% caption=<true|false>
-% Load caption
-\define@boolkey+{uvt}{caption}[true]{%
- \ifKV@uvt@caption
- \captionptrue
- \else
- \captionpfalse
- \fi
-}{%
- \ClassWarning{univie-ling-paper}{unknown caption value}%
-}
-
-% draftmark=<true|false>
-% Print draftmark
-\define@choicekey*+{uvt}{draftmark}[\val\nr]{true,false,firstpage}{%
- \ifcase\nr\relax% true:
- \draftmarktrue
- \draftmarkfpfalse
- \or% false:
- \draftmarkfalse
- \draftmarkfpfalse
- \or% firstpage:
- \draftmarktrue
- \draftmarkfptrue
- \fi
-}{%
- \ClassWarning{univie-ling-paper}{unknown draft value}%
-}
-
-% ref=<true|false>
-% Load varioref and prettyref
-\define@boolkey+{uvt}{ref}[true]{%
- \ifKV@uvt@ref
- \refsptrue
- \else
- \refspfalse
- \fi
-}{%
- \ClassWarning{univie-ling-paper}{unknown ref value}%
-}
-
-% covington=<true|false>
-% Load covington
-\define@boolkey+{uvt}{covington}[true]{%
- \ifKV@uvt@covington
- \covingtontrue
- \else
- \covingtonfalse
- \fi
-}{%
- \ClassWarning{univie-ling-paper}{unknown covington value}%
-}
-
-% microtype=<true|false>
-% Load microtype
-\define@boolkey+{uvt}{microtype}[true]{%
- \ifKV@uvt@microtype
- \microtypetrue
- \else
- \microtypefalse
- \fi
-}{%
- \ClassWarning{univie-ling-paper}{unknown microtype value}%
-}
-
-% polyglossia=<true|false>
-% Load polyglossia
-\define@boolkey+{uvt}{polyglossia}[true]{%
- \ifKV@uvt@polyglossia
- \polyglossiatrue
- \psfontsfalse
- \otffontstrue
- \nofontsfalse
- \else
- \polyglossiafalse
- \fi
-}{%
- \ClassWarning{univie-ling-paper}{unknown polyglossia value}%
-}
+% Process
-% fonts=<ps|otf|none>
-\define@choicekey*+{uvt}{fonts}[\val\nr]{ps,otf,none}{%
- \ifcase\nr\relax% ps: use PostScript fonts (classic LaTeX)
- \psfontstrue
- \otffontsfalse
- \nofontsfalse
- \or% otf: use OpenType fonts (fontspec)
- \psfontsfalse
- \otffontstrue
- \nofontsfalse
- \or% none: Use no font package
- \psfontsfalse
- \otffontsfalse
- \nofontstrue
- \fi
-}{%
- \PackageWarning{univie-ling-paper}{unknown fonts value '#1'}%
+\IfFormatAtLeastTF{2022-06-01}
+{
+ \ProcessKeyOptions[uvp]
+}{
+ \RequirePackage{l3keys2e}
+ \ProcessKeysOptions{uvp}
}
-% fontenc=<value|false>
-% customize font encoding
-\newif\ifuniv@usefontenc\univ@usefontenctrue
-\def\univ@fontenc{T1}
-\define@choicekey*+{uvt}{fontenc}[\val\nr]{none}{%
- \ifcase\nr\relax% none:
- \univ@usefontencfalse
- \fi
-}{%
- \def\univ@fontenc{#1}%
-}
-
-% Process
-\ProcessOptionsX<uvt>
%% ============================================================
%% BASE CLASS:
@@ -233,87 +193,85 @@
%% LOCALIZATION:
%% ============================================================
-\RequirePackage{translations}
-\DeclareTranslation{German}{draft}{ENTWURF}
-\DeclareTranslation{English}{draft}{DRAFT}
-\DeclareTranslation{German}{subm}{Abgegeben am}
-\DeclareTranslation{English}{subm}{Submission date:}
-\DeclareTranslation{German}{submto}{bei}
-\DeclareTranslation{English}{submto}{Instructor:}
-\DeclareTranslation{German}{author}{Verfasst von}
-\DeclareTranslation{English}{author}{Author}
-\DeclareTranslation{German}{section}{Abschnitt}
-\DeclareTranslation{English}{section}{section}
-\DeclareTranslation{German}{footnote}{Anm.}
-\DeclareTranslation{English}{footnote}{fn.}
-\DeclareTranslation{German}{example}{Beispiel}
-\DeclareTranslation{English}{example}{example}
-\DeclareTranslation{German}{matnr}{Matrikelnummer}
-\DeclareTranslation{English}{matnr}{Matrikelnummer}
-\DeclareTranslation{German}{stkz}{Studienkennzahl}
-\DeclareTranslation{English}{stkz}{Studienkennzahl}
-\DeclareTranslation{German}{erkl}{Erkl\"arung}
-\DeclareTranslation{English}{erkl}{Declaration}
-\DeclareTranslation{German}{selbst1s}{Hiermit versichere ich, dass ich die vorliegende Arbeit selbst\"andig verfasst
+\RequirePackage{translator}
+\languagealias{naustrian}{German}
+\deftranslation[to=German]{draft}{ENTWURF}
+\deftranslation[to=English]{draft}{DRAFT}
+\deftranslation[to=German]{subm}{Abgegeben am}
+\deftranslation[to=English]{subm}{Submission date:}
+\deftranslation[to=German]{submto}{bei}
+\deftranslation[to=English]{submto}{Instructor:}
+\deftranslation[to=German]{author}{Verfasst von}
+\deftranslation[to=English]{author}{Author}
+\deftranslation[to=German]{section}{Abschnitt}
+\deftranslation[to=English]{section}{section}
+\deftranslation[to=German]{footnote}{Anm.}
+\deftranslation[to=English]{footnote}{fn.}
+\deftranslation[to=German]{example}{Beispiel}
+\deftranslation[to=English]{example}{example}
+\deftranslation[to=German]{matnr}{Matrikelnummer}
+\deftranslation[to=English]{matnr}{Matrikelnummer}
+\deftranslation[to=German]{stkz}{Studienkennzahl}
+\deftranslation[to=English]{stkz}{Studienkennzahl}
+\deftranslation[to=German]{erkl}{Erkl\"arung}
+\deftranslation[to=English]{erkl}{Declaration}
+\deftranslation[to=German]{selbst1s}{Hiermit versichere ich, dass ich die vorliegende Arbeit selbst\"andig verfasst
und keine anderen als die angegebenen Hilfsmittel benutzt habe.}
-\DeclareTranslation{German}{selbst1p}{Hiermit versichern wir, dass wir die vorliegende Arbeit selbst\"andig verfasst
+\deftranslation[to=German]{selbst1p}{Hiermit versichern wir, dass wir die vorliegende Arbeit selbst\"andig verfasst
und keine anderen als die angegebenen Hilfsmittel benutzt haben.}
-\DeclareTranslation{German}{selbst2}{Die Stellen der Arbeit, die anderen Quellen im Wortlaut oder dem Sinn nach entnommen wurden, sind durch Herkunftsangaben kenntlich gemacht.
+\deftranslation[to=German]{selbst2}{Die Stellen der Arbeit, die anderen Quellen im Wortlaut oder dem Sinn nach entnommen wurden, sind durch Herkunftsangaben kenntlich gemacht.
Dies gilt auch f\"ur Zeichnungen, Skizzen, bildliche Darstellungen sowie f\"ur Quellen aus dem Internet.}
-\DeclareTranslation{German}{selbst3s}{Ich versichere ferner, dass ich die vorliegende Arbeit weder ganz noch in Teilen bereits als
+\deftranslation[to=German]{selbst3s}{Ich versichere ferner, dass ich die vorliegende Arbeit weder ganz noch in Teilen bereits als
Pr\"ufungsleistung vorgelegt habe.}
-\DeclareTranslation{German}{selbst3p}{Wir versichern ferner, dass wir die vorliegende Arbeit weder ganz noch in Teilen bereits als
+\deftranslation[to=German]{selbst3p}{Wir versichern ferner, dass wir die vorliegende Arbeit weder ganz noch in Teilen bereits als
Pr\"ufungsleistung vorgelegt haben.}
-\DeclareTranslation{English}{selbst1s}{I hereby declare that this paper is entirely my own work and that I used no source material or aids other than those stipulated.}
-\DeclareTranslation{English}{selbst1p}{We hereby declare that this paper is entirely our own work and that we used no source material or aids other than those stipulated.}
-\DeclareTranslation{English}{selbst2}{No part of it has been copied from any work produced by any other person or copied from any other source without reference to the source.
+\deftranslation[to=English]{selbst1s}{I hereby declare that this paper is entirely my own work and that I used no source material or aids other than those stipulated.}
+\deftranslation[to=English]{selbst1p}{We hereby declare that this paper is entirely our own work and that we used no source material or aids other than those stipulated.}
+\deftranslation[to=English]{selbst2}{No part of it has been copied from any work produced by any other person or copied from any other source without reference to the source.
This includes all drawings, sketches, graphics and internet sources.}
-\DeclareTranslation{English}{selbst3s}{Furthermore, I declare that this paper has not been submitted as an examination already, neither as a whole nor in parts.}
-\DeclareTranslation{English}{selbst3p}{Furthermore, we declare that this paper has not been submitted as an examination already, neither as a whole nor in parts.}
-\DeclareTranslation{German}{wien}{Wien}
-\DeclareTranslation{English}{wien}{Vienna}
+\deftranslation[to=English]{selbst3s}{Furthermore, I declare that this paper has not been submitted as an examination already, neither as a whole nor in parts.}
+\deftranslation[to=English]{selbst3p}{Furthermore, we declare that this paper has not been submitted as an examination already, neither as a whole nor in parts.}
+\deftranslation[to=German]{wien}{Wien}
+\deftranslation[to=English]{wien}{Vienna}
%% ============================================================
%% FONTS AND EMPHASIZING:
%% ============================================================
-\ifpsfonts
+\if@uvp@psfonts
-\ifuniv@usefontenc
- \RequirePackage[\univ@fontenc]{fontenc}
-\fi
+ \if@uvp@usefontenc
+ \RequirePackage[\uvp@fontenc]{fontenc}
+ \fi
-% Palatino
-\RequirePackage[osf]{mathpazo}
+ % Palatino
+ \RequirePackage[osf]{mathpazo}
-% Arial or Helvetica
-\IfFileExists{uarial.sty}{%
-\RequirePackage{uarial}
-}{%
-\RequirePackage{helvet}
-}
+ % Arial or Helvetica
+ \IfFileExists{uarial.sty}{%
+ \RequirePackage{uarial}
+ }{%
+ \RequirePackage{helvet}
+ }
-% Source Code Pro (Courier)
-\RequirePackage[scale=.93]{sourcecodepro}
+ % Source Code Pro (Courier)
+ \RequirePackage[scale=.93]{sourcecodepro}
\fi
-\ifotffonts
-\RequirePackage{fontspec}
-\setmainfont{Palatino}
-\setsansfont{Arial}
-\setmonofont{SourceCodePro}
+\if@uvp@otffonts
+ \RequirePackage{fontspec}
+ \setmainfont{Palatino}
+ \setsansfont{Arial}
+ \setmonofont{SourceCodePro}
\fi
% Hyperlinks
\RequirePackage{url}
\newcommand{\urlprefix}{}
% URLs italic
-\@ifundefined{selectfont}{%
-\def\UrlFont{\it}}
-{\def\UrlFont{\rmfamily\itshape}
-}
+\def\UrlFont{\rmfamily\itshape}
% Fix for \slash-Makro, by Donald Arsenau
\def\slash{/\penalty\exhyphenpenalty\hskip\z@skip}
@@ -343,7 +301,7 @@ This includes all drawings, sketches, graphics and internet sources.}
}{}
\def\lectype{\csuse{lectype@#1}}%
\def\lectypeverb{\csuse{lectypeverb@#1}}%
- \iftoggle{customtexttype}{}{\def\@texttype{\csuse{texttype@#1}}}
+ \if@uvp@customtexttype\else\def\@texttype{\csuse{texttype@#1}}\fi%
}%
}
@@ -359,8 +317,8 @@ This includes all drawings, sketches, graphics and internet sources.}
}
\def\@texttype{Seminararbeit}
-\newtoggle{customtexttype}
-\newcommand\texttype[1]{\def\@texttype{#1}\toggletrue{customtexttype}}
+\newif\if@uvp@customtexttype\@uvp@customtexttypefalse
+\newcommand\texttype[1]{\def\@texttype{#1}\@uvp@customtexttypetrue}
\def\@course{}
\newcommand\course[2]{\setkeys{lec}{lectype=#1}\def\@course{#2}}
\def\@instructor{}
@@ -423,7 +381,7 @@ This includes all drawings, sketches, graphics and internet sources.}
%% LAYOUT
%% ============================================================
-\usepackage{setspace}
+\RequirePackage{setspace}
\onehalfspacing
% Header and pagination:
@@ -446,8 +404,8 @@ This includes all drawings, sketches, graphics and internet sources.}
\raggedbottom
% Micro-typographic polishment
-\ifmicrotype
-\usepackage{microtype}
+\if@uvp@microtype
+ \RequirePackage{microtype}
\fi
% Smart quotes
@@ -466,7 +424,7 @@ This includes all drawings, sketches, graphics and internet sources.}
\else
\def\and{%
\end{tabular}%
- \global\multiauthorstrue%
+ \global\@uvp@multiauthorstrue%
\hskip 1em \@plus.17fil%
\begin{tabular}[t]{c}%
}%
@@ -539,7 +497,7 @@ This includes all drawings, sketches, graphics and internet sources.}
}%
\vskip 2em
{%
- \GetTranslation{author}\par
+ \translate{author}\par
\usekomafont{author}{%
\lineskip 0.75em%
\begin{tabular}[t]{c}
@@ -550,7 +508,7 @@ This includes all drawings, sketches, graphics and internet sources.}
\end{tabular}%
\hskip 1em \@plus.17fil%
\begin{tabular}[t]{c}%
- \GetTranslation{matnr}:~
+ \translate{matnr}:~
}%
\usekomafont{date}{%
\begin{tabular}[t]{c}
@@ -560,7 +518,7 @@ This includes all drawings, sketches, graphics and internet sources.}
\end{tabular}%
\hskip 1em \@plus.17fil%
\begin{tabular}[t]{c}%
- \GetTranslation{stkz}:~
+ \translate{stkz}:~
}%
\lineskip 0.75em%
\begin{tabular}[t]{c}
@@ -569,8 +527,8 @@ This includes all drawings, sketches, graphics and internet sources.}
}%
}%
\vfill
- {\usekomafont{date}{\GetTranslation{subm} \@date \par}}%
- {\ifx\@instructor\@empty\else\usekomafont{date}{\GetTranslation{submto} \@instructor\par}\fi}%
+ {\usekomafont{date}{\translate{subm} \@date \par}}%
+ {\ifx\@instructor\@empty\else\usekomafont{date}{\translate{submto} \@instructor\par}\fi}%
\end{center}\par
\@thanks\let\@thanks\@empty
\null
@@ -643,26 +601,26 @@ This includes all drawings, sketches, graphics and internet sources.}
\hline
}%
\clearpage
-\section*{\GetTranslation{erkl}}
+\section*{\translate{erkl}}
-\ifmultiauthors
-\GetTranslation{selbst1p}
+\if@uvp@multiauthors
+ \translate{selbst1p}
\else
-\GetTranslation{selbst1s}
+ \translate{selbst1s}
\fi
-\GetTranslation{selbst2}
+\translate{selbst2}
-\ifmultiauthors
-\GetTranslation{selbst3p}
+\if@uvp@multiauthors
+ \translate{selbst3p}
\else
-\GetTranslation{selbst3s}
+ \translate{selbst3s}
\fi
\bigskip
\bgroup
\raggedleft
-\GetTranslation{wien}, \today
+\translate{wien}, \today
\vspace{15mm}
@@ -708,21 +666,19 @@ This includes all drawings, sketches, graphics and internet sources.}
\def\labelitemi{--}
% Quote (smaller)
-\newcommand*{\OriginalQuote}{}
-\let\OriginalQuote\quote
-\renewcommand*{\quote}{\OriginalQuote\small}
+\let\@uvp@save@quote\quote
+\renewcommand*{\quote}{\@uvp@save@quote\small}
% Quotation (smaller)
-\newcommand*{\OriginalQuotation}{}
-\let\OriginalQuotation\quotation
-\renewcommand*{\quotation}{\OriginalQuotation\small}
+\let\@uvp@save@quotation\quotation
+\renewcommand*{\quotation}{\@uvp@save@quotation\small}
% Description (normal italic)
\setkomafont{descriptionlabel}{\normalfont\itshape}
-\ifcovington
-\RequirePackage{covington}
-\renewcommand{\p@equation}[1]{(#1)}
+\if@uvp@covington
+ \RequirePackage{covington}
+ \renewcommand{\p@equation}[1]{(#1)}
\fi
%% =============================================================
@@ -732,19 +688,19 @@ This includes all drawings, sketches, graphics and internet sources.}
%% captionlabel bold
\setkomafont{captionlabel}{\bfseries}
-\ifcaptionp
-\RequirePackage[format=plain,
- justification=RaggedRight,
- singlelinecheck=false
- ]{caption}
+\if@uvp@captionp
+ \RequirePackage[format=plain,
+ justification=RaggedRight,
+ singlelinecheck=false
+ ]{caption}
\fi
%% =============================================================
%% POLYGLOSSIA:
%% =============================================================
-\ifpolyglossia
- \ifcaptionp
+\if@uvp@polyglossia
+ \if@uvp@captionp
\RequirePackage{ragged2e}
\fi
\RequirePackage{polyglossia}
@@ -755,9 +711,9 @@ This includes all drawings, sketches, graphics and internet sources.}
%% =============================================================
% Biblatex
-\ifbiblatex
+\if@uvp@biblatex
-\ifapa
+\if@uvp@apa
% Load biblatex with apa style
\RequirePackage[%
style=apa,
@@ -820,10 +776,10 @@ This includes all drawings, sketches, graphics and internet sources.}
% Change cite command for integrated csquotes env.
\SetCiteCommand{\parencite}
-% End of apa condition
+% End of @uvp@apa condition
\fi
-% End of biblatex condition
+% End of @uvp@biblatex condition
\fi
%% =============================================================
@@ -842,7 +798,7 @@ This includes all drawings, sketches, graphics and internet sources.}
%% X-REFS:
%% =============================================================
-\ifrefsp
+\if@uvp@refsp
\AtBeginDocument{%
% Varioref:
@@ -852,19 +808,19 @@ This includes all drawings, sketches, graphics and internet sources.}
\def\reftextfaceafter{auf der gegen\"uberliegenden Seite}%
\def\reftextbefore{auf der \reftextvario{vorhergehenden}{vorangegangenen} Seite}%
\def\reftextfacebefore{auf der gegen\"uberliegenden Seite}%
- \def\reftextfaraway[1]{auf S.~\pageref{##1}}%
- \def\reftextpagerange[2]{auf S.~\pageref{##1}--\pageref{##2}}%
+ \def\reftextfaraway#1{auf S.~\pageref{#1}}%
+ \def\reftextpagerange#1#2{auf S.~\pageref{#1}--\pageref{#2}}%
}%
% Prettyref:
% (varioref-Befehle mit eingebunden)
\RequirePackage{prettyref}
- \newrefformat{sec}{\GetTranslation{section}~\ref{#1}}
- \newrefformat{sub}{\GetTranslation{section}~\ref{#1}}
- \newrefformat{anm}{\GetTranslation{footnote}~\ref{#1}}
+ \newrefformat{sec}{\translate{section}~\ref{#1}}
+ \newrefformat{sub}{\translate{section}~\ref{#1}}
+ \newrefformat{anm}{\translate{footnote}~\ref{#1}}
\newrefformat{app}{\appendixname~\vref{#1}}
\newrefformat{tab}{\tablename~\vref{#1}}
\newrefformat{fig}{\figurename~\vref{#1}}
- \newrefformat{exa}{\GetTranslation{example}~\vref{#1}}
+ \newrefformat{exa}{\translate{example}~\vref{#1}}
}
\fi
@@ -874,9 +830,9 @@ This includes all drawings, sketches, graphics and internet sources.}
%% DRAFT:
%% =============================================================
-\ifdraftmark
+\if@uvp@draftmark
-\ifdraftmarkfp
+\if@uvp@draftmarkfp
\RequirePackage[firstpageonly]{draftwatermark}
\else
\RequirePackage{draftwatermark}
@@ -887,7 +843,7 @@ This includes all drawings, sketches, graphics and internet sources.}
vpos=10pt,
anchor=ct,
fontsize=14pt,
- text={\GetTranslation{draft} (\today)}
+ text={\translate{draft} (\today)}
}
\fi
diff --git a/macros/latex/contrib/univie-ling/tex/univie-ling-thesis.cls b/macros/latex/contrib/univie-ling/tex/univie-ling-thesis.cls
index 220f115f53..8cc29a83ac 100644
--- a/macros/latex/contrib/univie-ling/tex/univie-ling-thesis.cls
+++ b/macros/latex/contrib/univie-ling/tex/univie-ling-thesis.cls
@@ -32,7 +32,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{univie-ling-thesis}[2022/06/18 v1.19 Univie Linguistic Theses (JSp)]
+\ProvidesPackage{univie-ling-thesis}[2022/10/02 v.2.0 Univie Linguistic Theses (JSp)]
%% ============================================================
@@ -41,204 +41,149 @@
\RequirePackage{xkeyval}
-\newif\ifbiblatex\biblatextrue
-\newif\ifapa\apafalse
-\newif\ifcaptionp\captionptrue
-\newif\ifdraftmark\draftmarkfalse
-\newif\ifdraftmarkfp\draftmarkfpfalse
-\newif\ifrefsp\refsptrue
-\newif\ifcovington\covingtontrue
-\newif\ifmicrotype\microtypetrue
-\newif\ifmultiauthors\multiauthorsfalse
-\newif\ifpolyglossia\polyglossiafalse
-\newif\ifpsfonts\psfontstrue
-\newif\ifotffonts\otffontsfalse
-\newif\ifnofonts\nofontsfalse
-\newif\iffdegree\fdegreefalse
-\newif\ifpdfa\pdfafalse
-
-% all=<true|false>
-% Load all packages
-\define@boolkey+{uvt}{all}[true]{%
- \ifKV@uvt@all
- \biblatextrue
- \captionptrue
- \refsptrue
- \covingtontrue
- \microtypetrue
- \else
- \biblatexfalse
- \captionpfalse
- \refspfalse
- \covingtonfalse
- \microtypefalse
- \fi
-}{%
- \ClassWarning{univie-ling-thesis}{unknown 'all' value}%
-}
-
-% biblatex=<true|false>
-% Load biblatex
-\define@boolkey+{uvt}{biblatex}[true]{%
- \ifKV@uvt@biblatex
- \biblatextrue
- \else
- \biblatexfalse
- \fi
-}{%
- \ClassWarning{univie-ling-thesis}{unknown biblatex value}%
+\newif\if@uvt@apa\@uvt@apafalse
+\newif\if@uvt@biblatex\@uvt@biblatextrue
+\newif\if@uvt@captionp\@uvt@captionptrue
+\newif\if@uvt@covington\@uvt@covingtontrue
+\newif\if@uvt@draftmark\@uvt@draftmarkfalse
+\newif\if@uvt@draftmarkfp\@uvt@draftmarkfpfalse
+\newif\if@uvt@fdegree\@uvt@fdegreefalse
+\newif\if@uvt@microtype\@uvt@microtypetrue
+\newif\if@uvt@multiauthors\@uvt@multiauthorsfalse
+\newif\if@uvt@otffonts\@uvt@otffontsfalse
+\newif\if@uvt@pdfa\@uvt@pdfafalse
+\newif\if@uvt@polyglossia\@uvt@polyglossiafalse
+\newif\if@uvt@psfonts\@uvt@psfontstrue
+\newif\if@uvt@refsp\@uvt@refsptrue
+\newif\if@uvt@usefontenc\@uvt@usefontenctrue
+\def\uvt@fontenc{T1}
+
+% We use l3keys here since (1) LaTeX2e keys are rather
+% new and (2) do not provide for choice keys yet.
+\ExplSyntaxOn
+\keys_define:nn { uvt }
+{
+ % all=<true|false>
+ % Load all (most) packages
+ all.code:n =
+ { \bool_if:nTF {#1} {
+ \@uvt@biblatextrue
+ \@uvt@captionptrue
+ \@uvt@refsptrue
+ \@uvt@covingtontrue
+ \@uvt@microtypetrue
+ }{
+ \@uvt@biblatexfalse
+ \@uvt@captionpfalse
+ \@uvt@refspfalse
+ \@uvt@covingtonfalse
+ \@uvt@microtypefalse
+ }
+ },
+ all.usage:n = preamble,
+ % apa=<true|false>
+ % Load APA style
+ apa.legacy_if_set:n = @uvt@apa,
+ apa.usage:n = preamble,
+ % biblatex=<true|false>
+ % Load biblatex
+ biblatex.legacy_if_set:n = @uvt@biblatex,
+ biblatex.usage:n = preamble,
+ % caption=<true|false>
+ % Load caption
+ caption.legacy_if_set:n = @uvt@captionp,
+ caption.usage:n = preamble,
+ % covington=<true|false>
+ % Load covington
+ covington.legacy_if_set:n = @uvt@covington,
+ covington.usage:n = preamble,
+ % fdegree=<true|false>
+ % Female degree forms
+ fdegree.legacy_if_set:n = @uvt@fdegree,
+ fdegree.usage:n = preamble,
+ % fontenc=<value|none>
+ % customize font encoding
+ fontenc.code:n =
+ { \str_if_eq:NNTF { #1 } { none } {
+ \@uvt@usefontencfalse
+ }{
+ \def\uvt@fontenc{#1}
+ }
+ },
+ fontenc.usage:n = preamble,
+ % microtype=<true|false>
+ % Load microtype
+ microtype.legacy_if_set:n = @uvt@microtype,
+ microtype.usage:n = preamble,
+ % pdfa=<true|false>
+ % PDF/A
+ pdfa.legacy_if_set:n = @uvt@pdfa,
+ pdfa.usage:n = preamble,
+ % polyglossia=<true|false>
+ % Load polyglossia
+ polyglossia.legacy_if_set:n = @uvt@polyglossia,
+ polyglossia.code:n =
+ { \bool_if:nT {#1} {
+ \@uvt@psfontsfalse
+ \@uvt@otffontstrue
+ }
+ },
+ polyglossia.usage:n = preamble,
+ % ref=<true|false>
+ % Load varioref and prettyref
+ ref.legacy_if_set:n = @uvt@refsp,
+ ref.usage:n = preamble,
+ % draftmark=<true|false|firstpage>
+ % Print draftmark
+ draftmark .choice:,
+ % true
+ draftmark / true .code:n =
+ { \@uvt@draftmarktrue
+ \@uvt@draftmarkfpfalse
+ },
+ % false
+ draftmark / false .code:n =
+ { \@uvt@draftmarkfalse
+ \@uvt@draftmarkfpfalse
+ },
+ % firstpage
+ draftmark / firstpage .code:n =
+ { \@uvt@draftmarktrue
+ \@uvt@draftmarkfptrue
+ },
+ % no val equals to true
+ draftmark .default:n = {true},
+ % fonts=<ps|otf|none>
+ % Select font scheme
+ fonts .choice:,
+ % ps: use PostScript fonts (classic LaTeX)
+ fonts / ps .code:n =
+ { \@uvt@psfontstrue
+ \@uvt@otffontsfalse
+ },
+ % otf: use OpenType fonts (fontspec)
+ fonts / otf .code:n =
+ { \@uvt@psfontsfalse
+ \@uvt@otffontstrue
+ },
+ % none: Use no font package
+ fonts / none .code:n =
+ { \@uvt@psfontsfalse
+ \@uvt@otffontsfalse
+ },
}
+\ExplSyntaxOff
-% apa=<true|false>
-% Load APA style
-\define@boolkey+{uvt}{apa}[true]{%
- \ifKV@uvt@apa
- \apatrue
- \else
- \apafalse
- \fi
-}{%
- \ClassWarning{univie-ling-thesis}{unknown apa value}%
-}
-
-% caption=<true|false>
-% Load caption
-\define@boolkey+{uvt}{caption}[true]{%
- \ifKV@uvt@caption
- \captionptrue
- \else
- \captionpfalse
- \fi
-}{%
- \ClassWarning{univie-ling-thesis}{unknown caption value}%
-}
-
-% ref=<true|false>
-% Load varioref and prettyref
-\define@boolkey+{uvt}{ref}[true]{%
- \ifKV@uvt@ref
- \refsptrue
- \else
- \refspfalse
- \fi
-}{%
- \ClassWarning{univie-ling-thesis}{unknown ref value}%
-}
-
-% covington=<true|false>
-% Load covington
-\define@boolkey+{uvt}{covington}[true]{%
- \ifKV@uvt@covington
- \covingtontrue
- \else
- \covingtonfalse
- \fi
-}{%
- \ClassWarning{univie-ling-thesis}{unknown covington value}%
-}
-
-% microtype=<true|false>
-% Load microtype
-\define@boolkey+{uvt}{microtype}[true]{%
- \ifKV@uvt@microtype
- \microtypetrue
- \else
- \microtypefalse
- \fi
-}{%
- \ClassWarning{univie-ling-thesis}{unknown microtype value}%
-}
-
-% fdegree=<true|false>
-% Female degree forms
-\define@boolkey+{uvt}{fdegree}[true]{%
- \ifKV@uvt@fdegree
- \fdegreetrue
- \else
- \fdegreefalse
- \fi
-}{%
- \ClassWarning{univie-ling-thesis}{unknown fdegree value}%
-}
-
-% draftmark=<true|false>
-% Print draftmark
-\define@choicekey*+{uvt}{draftmark}[\val\nr]{true,false,firstpage}{%
- \ifcase\nr\relax% true:
- \draftmarktrue
- \draftmarkfpfalse
- \or% false:
- \draftmarkfalse
- \draftmarkfpfalse
- \or% firstpage:
- \draftmarktrue
- \draftmarkfptrue
- \fi
-}{%
- \ClassWarning{univie-ling-thesis}{unknown draft value}%
-}
-
-% polyglossia=<true|false>
-% Load polyglossia
-\define@boolkey+{uvt}{polyglossia}[true]{%
- \ifKV@uvt@polyglossia
- \polyglossiatrue
- \psfontsfalse
- \otffontstrue
- \nofontsfalse
- \else
- \polyglossiafalse
- \fi
-}{%
- \ClassWarning{univie-ling-thesis}{unknown polyglossia value}%
-}
-
-% pdfa=<true|false>
-% PDF/A
-\define@boolkey+{uvt}{pdfa}[true]{%
- \ifKV@uvt@pdfa
- \pdfatrue
- \else
- \pdfafalse
- \fi
-}{%
- \ClassWarning{univie-ling-thesis}{unknown pdfa value}%
-}
-
-% fonts=<ps|otf|none>
-\define@choicekey*+{uvt}{fonts}[\val\nr]{ps,otf,none}{%
- \ifcase\nr\relax% ps: use PostScript fonts (classic LaTeX)
- \psfontstrue
- \otffontsfalse
- \nofontsfalse
- \or% otf: use OpenType fonts (fontspec)
- \psfontsfalse
- \otffontstrue
- \nofontsfalse
- \or% none: Use no font package
- \psfontsfalse
- \otffontsfalse
- \nofontstrue
- \fi
-}{%
- \PackageWarning{univie-ling-thesis}{unknown fonts value '#1'}%
-}
+% Process
-% fontenc=<value|false>
-% customize font encoding
-\newif\ifuniv@usefontenc\univ@usefontenctrue
-\def\univ@fontenc{T1}
-\define@choicekey*+{uvt}{fontenc}[\val\nr]{none}{%
- \ifcase\nr\relax% none:
- \univ@usefontencfalse
- \fi
-}{%
- \def\univ@fontenc{#1}%
+\IfFormatAtLeastTF{2022-06-01}
+{
+ \ProcessKeyOptions[uvt]
+}{
+ \RequirePackage{l3keys2e}
+ \ProcessKeysOptions{uvt}
}
-% Process
-\ProcessOptionsX<uvt>
-
%% ============================================================
%% BASE CLASS:
%% ============================================================
@@ -258,67 +203,70 @@
%% LOCALIZATION:
%% ============================================================
-\RequirePackage{translations}
-\DeclareTranslation{German}{draft}{ENTWURF}
-\DeclareTranslation{English}{draft}{DRAFT}
-\DeclareTranslation{German}{section}{Abschnitt}
-\DeclareTranslation{English}{section}{section}
-\DeclareTranslation{German}{footnote}{Anm.}
-\DeclareTranslation{English}{footnote}{fn.}
-\DeclareTranslation{German}{example}{Beispiel}
-\DeclareTranslation{English}{example}{example}
-\DeclareTranslation{German}{stkz}{Studienkennzahl}
-\DeclareTranslation{English}{stkz}{Studienkennzahl}
-\DeclareTranslation{German}{erkl}{Erkl\"arung}
-\DeclareTranslation{English}{erkl}{Declaration}
-\DeclareTranslation{German}{selbst1s}{Hiermit versichere ich, dass ich die vorliegende Arbeit selbst\"andig verfasst
+\RequirePackage{translator}
+\languagealias{naustrian}{German}
+\deftranslation[to=German]{draft}{ENTWURF}
+\deftranslation[to=English]{draft}{DRAFT}
+\deftranslation[to=German]{chapter}{Kapitel}
+\deftranslation[to=English]{chapter}{chapter}
+\deftranslation[to=German]{section}{Abschnitt}
+\deftranslation[to=English]{section}{section}
+\deftranslation[to=German]{footnote}{Anm.}
+\deftranslation[to=English]{footnote}{fn.}
+\deftranslation[to=German]{example}{Beispiel}
+\deftranslation[to=English]{example}{example}
+\deftranslation[to=German]{stkz}{Studienkennzahl}
+\deftranslation[to=English]{stkz}{Studienkennzahl}
+\deftranslation[to=German]{erkl}{Erkl\"arung}
+\deftranslation[to=English]{erkl}{Declaration}
+\deftranslation[to=German]{selbst1s}{Hiermit versichere ich, dass ich die vorliegende Arbeit selbst\"andig verfasst
und keine anderen als die angegebenen Hilfsmittel benutzt habe.}
-\DeclareTranslation{German}{selbst1p}{Hiermit versichern wir, dass wir die vorliegende Arbeit selbst\"andig verfasst
+\deftranslation[to=German]{selbst1p}{Hiermit versichern wir, dass wir die vorliegende Arbeit selbst\"andig verfasst
und keine anderen als die angegebenen Hilfsmittel benutzt haben.}
-\DeclareTranslation{German}{selbst2}{Die Stellen der Arbeit, die anderen Quellen im Wortlaut oder dem Sinn nach entnommen wurden, sind durch Herkunftsangaben kenntlich gemacht.
+\deftranslation[to=German]{selbst2}{Die Stellen der Arbeit, die anderen Quellen im Wortlaut oder dem Sinn nach entnommen wurden, sind durch Herkunftsangaben kenntlich gemacht.
Dies gilt auch f\"ur Zeichnungen, Skizzen, bildliche Darstellungen sowie f\"ur Quellen aus dem Internet.}
-\DeclareTranslation{German}{selbst3s}{Ich versichere ferner, dass ich die vorliegende Arbeit weder ganz noch in Teilen bereits als
+\deftranslation[to=German]{selbst3s}{Ich versichere ferner, dass ich die vorliegende Arbeit weder ganz noch in Teilen bereits als
Pr\"ufungsleistung vorgelegt habe.}
-\DeclareTranslation{German}{selbst3p}{Wir versichern ferner, dass wir die vorliegende Arbeit weder ganz noch in Teilen bereits als
+\deftranslation[to=German]{selbst3p}{Wir versichern ferner, dass wir die vorliegende Arbeit weder ganz noch in Teilen bereits als
Pr\"ufungsleistung vorgelegt haben.}
-\DeclareTranslation{English}{selbst1s}{I hereby declare that this paper is entirely my own work and that I used no source material or aids other than those stipulated.}
-\DeclareTranslation{English}{selbst1p}{We hereby declare that this paper is entirely our own work and that we used no source material or aids other than those stipulated.}
-\DeclareTranslation{English}{selbst2}{No part of it has been copied from any work produced by any other person or copied from any other source without reference to the source.
+\deftranslation[to=English]{selbst1s}{I hereby declare that this paper is entirely my own work and that I used no source material or aids other than those stipulated.}
+\deftranslation[to=English]{selbst1p}{We hereby declare that this paper is entirely our own work and that we used no source material or aids other than those stipulated.}
+\deftranslation[to=English]{selbst2}{No part of it has been copied from any work produced by any other person or copied from any other source without reference to the source.
This includes all drawings, sketches, graphics and internet sources.}
-\DeclareTranslation{English}{selbst3s}{Furthermore, I declare that this paper has not been submitted as an examination already, neither as a whole nor in parts.}
-\DeclareTranslation{English}{selbst3p}{Furthermore, we declare that this paper has not been submitted as an examination already, neither as a whole nor in parts.}
-\DeclareTranslation{German}{wien}{Wien}
-\DeclareTranslation{English}{wien}{Vienna}
+\deftranslation[to=English]{selbst3s}{Furthermore, I declare that this paper has not been submitted as an examination already, neither as a whole nor in parts.}
+\deftranslation[to=English]{selbst3p}{Furthermore, we declare that this paper has not been submitted as an examination already, neither as a whole nor in parts.}
+\deftranslation[to=German]{wien}{Wien}
+\deftranslation[to=English]{wien}{Vienna}
%% ============================================================
%% FONTS AND EMPHASIZING:
%% ============================================================
-\ifpsfonts
-
-\RequirePackage[T1]{fontenc}\ifuniv@usefontenc
- \RequirePackage[\univ@fontenc]{fontenc}
-\fi
+\if@uvt@psfonts
+ \RequirePackage[T1]{fontenc}
+ \if@uvt@usefontenc
+ \RequirePackage[\uvt@fontenc]{fontenc}
+ \fi
-% Palatino
-\RequirePackage[osf]{mathpazo}
+ % Palatino
+ \RequirePackage[osf]{mathpazo}
-% Arial or Helvetica
-\IfFileExists{uarial.sty}{%
-\RequirePackage{uarial}
-}{%
-\RequirePackage{helvet}
-}
+ % Arial or Helvetica
+ \IfFileExists{uarial.sty}{%
+ \RequirePackage{uarial}
+ }{%
+ \RequirePackage{helvet}
+ }
-% Source Code Pro (Courier)
-\RequirePackage[scale=.93]{sourcecodepro}
+ % Source Code Pro (Courier)
+ \RequirePackage[scale=.93]{sourcecodepro}
\fi
-\ifotffonts
-\RequirePackage{fontspec}
-\setmainfont{Palatino}
-\setsansfont{Arial}
-\setmonofont{SourceCodePro}
+\if@uvt@otffonts
+ \RequirePackage{fontspec}
+ \setmainfont{Palatino}
+ \setsansfont{Arial}
+ \setmonofont{SourceCodePro}
\fi
% Hyperlinks
@@ -363,7 +311,7 @@ This includes all drawings, sketches, graphics and internet sources.}
\def\@thesistype@en{\csuse{thesistype@#1@en}}
\def\@dirtype{\csuse{dirtype@#1}}
\def\@dirtype@en{\csuse{dirtype@#1@en}}
- \iffdegree
+ \if@uvt@fdegree
\def\@degree{\csuse{degree@#1@f}}
\else
\def\@degree{\csuse{degree@#1}}
@@ -476,7 +424,7 @@ This includes all drawings, sketches, graphics and internet sources.}
\renewcommand{\sectionmark}[1]{\markright{\thesection.\ #1}}
\RequirePackage{scrlayer-scrpage}
\renewcommand{\headfont}{\small\rmfamily}
-\clearscrheadings
+\clearmainofpairofpagestyles
\ihead{\headmark}
\ohead{\pagemark}
\automark{chapter}
@@ -494,8 +442,8 @@ This includes all drawings, sketches, graphics and internet sources.}
\raggedbottom
% Micro-typographic polishment
-\ifmicrotype
-\usepackage{microtype}
+\if@uvt@microtype
+ \RequirePackage{microtype}
\fi
% Smart quotes
@@ -515,7 +463,7 @@ This includes all drawings, sketches, graphics and internet sources.}
\else
\def\and{%
\end{tabular}%
- \global\multiauthorstrue%
+ \global\@uvt@multiauthorstrue%
\hskip 1em \@plus.17fil%
\begin{tabular}[t]{c}%
}%
@@ -577,7 +525,7 @@ This includes all drawings, sketches, graphics and internet sources.}
\fi
}%
{\ifx\@volume\@empty\else%
- \vskip 1em\usekomafont{baende}{Band \@volume\ von \@volumes\ Bänden\,/\,volume \@volume\ of \@volumes\ volumes}%
+ \vskip 1em\usekomafont{baende}{Band \@volume\ von \@volumes\ B\"anden\,/\,volume \@volume\ of \@volumes\ volumes}%
\fi%
}%
\vskip 2em
@@ -668,26 +616,26 @@ This includes all drawings, sketches, graphics and internet sources.}
}%
\clearpage
\thispagestyle{plain}%
-\section*{\GetTranslation{erkl}}
+\section*{\translate{erkl}}
-\ifmultiauthors
-\GetTranslation{selbst1p}
+\if@uvt@multiauthors
+ \translate{selbst1p}
\else
-\GetTranslation{selbst1s}
+ \translate{selbst1s}
\fi
-\GetTranslation{selbst2}
+\translate{selbst2}
-\ifmultiauthors
-\GetTranslation{selbst3p}
+\if@uvt@multiauthors
+ \translate{selbst3p}
\else
-\GetTranslation{selbst3s}
+ \translate{selbst3s}
\fi
\bigskip
\bgroup
\raggedleft
-\GetTranslation{wien}, \today
+\translate{wien}, \today
\vspace{15mm}
@@ -734,21 +682,19 @@ This includes all drawings, sketches, graphics and internet sources.}
\def\labelitemi{--}
% Quote (smaller)
-\newcommand*{\OriginalQuote}{}
-\let\OriginalQuote\quote
-\renewcommand*{\quote}{\OriginalQuote\small}
+\let\@uvt@save@quote\quote
+\renewcommand*{\quote}{\@uvt@save@quote\small}
% Quotation (smaller)
-\newcommand*{\OriginalQuotation}{}
-\let\OriginalQuotation\quotation
-\renewcommand*{\quotation}{\OriginalQuotation\small}
+\let\@uvt@save@quotation\quotation
+\renewcommand*{\quotation}{\@uvt@save@quotation\small}
% Description (normal italic)
\setkomafont{descriptionlabel}{\normalfont\itshape}
-\ifcovington
-\RequirePackage{covington}
-\renewcommand{\p@equation}[1]{(#1)}
+\if@uvt@covington
+ \RequirePackage{covington}
+ \renewcommand{\p@equation}[1]{(#1)}
\fi
%% =============================================================
@@ -758,11 +704,11 @@ This includes all drawings, sketches, graphics and internet sources.}
%% captionlabel bold
\setkomafont{captionlabel}{\bfseries}
-\ifcaptionp
-\RequirePackage[format=plain,
- justification=RaggedRight,
- singlelinecheck=false
- ]{caption}
+\if@uvt@captionp
+ \RequirePackage[format=plain,
+ justification=RaggedRight,
+ singlelinecheck=false
+ ]{caption}
\fi
@@ -770,7 +716,7 @@ This includes all drawings, sketches, graphics and internet sources.}
%% PDF-A:
%% =============================================================
-\ifpdfa
+\if@uvt@pdfa
\RequirePackage[a-1b]{pdfx}
\hypersetup{pdfborder={0 0 0}}
\fi
@@ -779,8 +725,8 @@ This includes all drawings, sketches, graphics and internet sources.}
%% POLYGLOSSIA:
%% =============================================================
-\ifpolyglossia
- \ifcaptionp
+\if@uvt@polyglossia
+ \if@uvt@captionp
\RequirePackage{ragged2e}
\fi
\RequirePackage{polyglossia}
@@ -791,9 +737,9 @@ This includes all drawings, sketches, graphics and internet sources.}
%% =============================================================
% Biblatex
-\ifbiblatex
+\if@uvt@biblatex
-\ifapa
+\if@uvt@apa
% Load biblatex with apa style
\RequirePackage[%
style=apa,
@@ -856,10 +802,10 @@ This includes all drawings, sketches, graphics and internet sources.}
% Change cite command for integrated csquotes env.
\SetCiteCommand{\parencite}
-% End of apa condition
+% End of @uvt@apa condition
\fi
-% End of biblatex condition
+% End of @uvt@biblatex condition
\fi
%% =============================================================
@@ -868,9 +814,9 @@ This includes all drawings, sketches, graphics and internet sources.}
\let\origtableofcontents\tableofcontents
\renewcommand*\tableofcontents{%
-\thispagestyle{plain}
-\origtableofcontents
-\clearpage
+ \thispagestyle{plain}
+ \origtableofcontents
+ \clearpage
}
@@ -878,7 +824,7 @@ This includes all drawings, sketches, graphics and internet sources.}
%% X-REFS:
%% =============================================================
-\ifrefsp
+\if@uvt@refsp
\AtBeginDocument{%
% Varioref:
@@ -888,19 +834,20 @@ This includes all drawings, sketches, graphics and internet sources.}
\def\reftextfaceafter{auf der gegen\"uberliegenden Seite}%
\def\reftextbefore{auf der \reftextvario{vorhergehenden}{vorangegangenen} Seite}%
\def\reftextfacebefore{auf der gegen\"uberliegenden Seite}%
- \def\reftextfaraway[1]{auf S.~\pageref{##1}}%
- \def\reftextpagerange[2]{auf S.~\pageref{##1}--\pageref{##2}}%
+ \def\reftextfaraway#1{auf S.~\pageref{#1}}%
+ \def\reftextpagerange#1#2{auf S.~\pageref{#1}--\pageref{#2}}%
}%
% Prettyref:
% (varioref-Befehle mit eingebunden)
\RequirePackage{prettyref}
- \newrefformat{sec}{\GetTranslation{section}~\ref{#1}}
- \newrefformat{sub}{\GetTranslation{section}~\ref{#1}}
- \newrefformat{anm}{\GetTranslation{footnote}~\ref{#1}}
+ \newrefformat{cha}{\translate{chapter}~\vref{#1}}
+ \newrefformat{sec}{\translate{section}~\ref{#1}}
+ \newrefformat{sub}{\translate{section}~\ref{#1}}
+ \newrefformat{anm}{\translate{footnote}~\ref{#1}}
\newrefformat{app}{\appendixname~\vref{#1}}
\newrefformat{tab}{\tablename~\vref{#1}}
\newrefformat{fig}{\figurename~\vref{#1}}
- \newrefformat{exa}{\GetTranslation{example}~\vref{#1}}
+ \newrefformat{exa}{\translate{example}~\vref{#1}}
}
\fi
@@ -910,21 +857,21 @@ This includes all drawings, sketches, graphics and internet sources.}
%% DRAFT:
%% =============================================================
-\ifdraftmark
+\if@uvt@draftmark
-\ifdraftmarkfp
- \RequirePackage[firstpageonly]{draftwatermark}
-\else
- \RequirePackage{draftwatermark}
-\fi
+ \if@uvt@draftmarkfp
+ \RequirePackage[firstpageonly]{draftwatermark}
+ \else
+ \RequirePackage{draftwatermark}
+ \fi
-\DraftwatermarkOptions{%
- angle=0,
- vpos=10pt,
- anchor=ct,
- fontsize=14pt,
- text={\GetTranslation{draft} (\today)}
-}
+ \DraftwatermarkOptions{%
+ angle=0,
+ vpos=10pt,
+ anchor=ct,
+ fontsize=14pt,
+ text={\translate{draft} (\today)}
+ }
\fi
diff --git a/macros/latex/contrib/univie-ling/tex/univie-ling-wlg-logo.pdf b/macros/latex/contrib/univie-ling/tex/univie-ling-wlg-logo.pdf
index b6c55bdbd7..d21ada2764 100644
--- a/macros/latex/contrib/univie-ling/tex/univie-ling-wlg-logo.pdf
+++ b/macros/latex/contrib/univie-ling/tex/univie-ling-wlg-logo.pdf
Binary files differ
diff --git a/macros/latex/contrib/univie-ling/tex/univie-ling-wlg.cls b/macros/latex/contrib/univie-ling/tex/univie-ling-wlg.cls
index 3d5259d1cc..1be6bd1ccc 100644
--- a/macros/latex/contrib/univie-ling/tex/univie-ling-wlg.cls
+++ b/macros/latex/contrib/univie-ling/tex/univie-ling-wlg.cls
@@ -33,97 +33,75 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{univie-ling-wlg}[2022/05/30 v1.19 WLG journal layout (JSp)]
+\ProvidesPackage{univie-ling-wlg}[2022/10/02 v.2.0 Univie WLG journal layout (JSp)]
%% ============================================================
%% CLASS OPTIONS:
%% ============================================================
-\RequirePackage{xkeyval}
-
-\newif\ifbiblatex\biblatexfalse
-\newif\ifcovington\covingtontrue
-\newif\ifexpert\expertfalse
-
-% biblatex=<true|false>
-% Load biblatex
-\define@boolkey+{wlg}{biblatex}[true]{%
- \ifKV@wlg@biblatex
- \biblatextrue
- \else
- \biblatexfalse
- \fi
-}{%
- \ClassWarning{univie-ling-wlg}{unknown biblatex value}%
-}
-\DeclareOptionX{biblatex}{\setkeys{wlg}{biblatex=#1}}
-
-% covington=<true|false>
-% Load covington
-\define@boolkey+{wlg}{covington}[true]{%
- \ifKV@wlg@covington
- \covingtontrue
- \else
- \covingtonfalse
- \fi
-}{%
- \ClassWarning{univie-ling-wlg}{unknown covington value}%
-}
-\DeclareOptionX{covington}{\setkeys{wlg}{covington=#1}}
-
-
-% expertfonts=<true|false>
-% Load MinionPro
-\define@boolkey+{wlg}{expertf}[true]{%
- \ifKV@wlg@expertf
- \experttrue
- \else
- \expertfalse
- \fi
-}{%
- \ClassWarning{univie-ling-wlg}{unknown expertfonts value}%
-}
-\DeclareOptionX{expertfonts}{\setkeys{wlg}{expertf=#1}}
-
-% Titlepage?
-\newif\iftitlepage\titlepagefalse
-\newif\ifspecialprint\specialprintfalse
-\define@choicekey*+{wlg}{ttp}[\val\nr]{none,specialprint,issue}{%
- \ifcase\nr\relax% none
- \titlepagefalse
- \or% specialprint:
- \titlepagetrue
- \specialprinttrue
- \or% issue:
- \titlepagetrue
- \specialprintfalse
- \fi
-}{%
- \ClassWarning{univie-ling-wlg}{unknown titlepage value '#1'}%
-}
-\DeclareOptionX{titlepage}{\setkeys{wlg}{ttp=#1}}
-
-% preprint=<true|false>
-\define@boolkey+{wlg}{preprint}[true]{%
-}{%
- \ClassWarning{univie-ling-wlg}{unknown preprint value}%
+\newif\if@wlg@biblatex\@wlg@biblatexfalse
+\newif\if@wlg@covington\@wlg@covingtontrue
+\newif\if@wlg@expert\@wlg@expertfalse
+\newif\if@wlg@titlepage\@wlg@titlepagefalse
+\newif\if@wlg@specialprint\@wlg@specialprintfalse
+
+% We use l3keys here since (1) LaTeX2e keys are rather
+% new and (2) do not provide for choice keys yet.
+\ExplSyntaxOn
+\keys_define:nn { wlg }
+{
+ % biblatex=<true|false>
+ % Load biblatex
+ biblatex.legacy_if_set:n = @wlg@biblatex,
+ biblatex.usage:n = preamble,
+ % covington=<true|false>
+ % Load covington
+ covington.legacy_if_set:n = @wlg@covington,
+ covington.usage:n = preamble,
+ % expertfonts=<true|false>
+ % Load MinionPro
+ expertfonts.legacy_if_set:n = @wlg@expert,
+ expertfonts.usage:n = preamble,
+ % preprint=<true|false>
+ preprint.legacy_if_set:n = @wlg@preprint,
+ preprint.usage:n = preamble,
+ % peerrev=<true|false>
+ peerrev.legacy_if_set:n = @wlg@peerrev,
+ peerrev.usage:n = preamble,
+ % titlepage=<none|specialprint|issue>
+ titlepage .choice:,
+ % none
+ titlepage / none .code:n =
+ { \@wlg@titlepagefalse
+ \@wlg@specialprintfalse
+ },
+ % specialprint
+ titlepage / specialprint .code:n =
+ { \@wlg@titlepagetrue
+ \@wlg@specialprinttrue
+ },
+ % issue
+ titlepage / issue .code:n =
+ { \@wlg@titlepagetrue
+ \@wlg@specialprintfalse
+ },
+}
+\ExplSyntaxOff
+
+\IfFormatAtLeastTF{2022-06-01}
+{
+ \ProcessKeyOptions[wlg]
+}{
+ \RequirePackage{l3keys2e}
+ \ProcessKeysOptions{wlg}
}
-\DeclareOptionX{preprint}{\setkeys{wlg}{preprint=#1}}
-% peerrev=<true|false>
-\define@boolkey+{wlg}{peerrev}[true]{%
-}{%
- \ClassWarning{univie-ling-wlg}{unknown peerrev value}%
-}
-\DeclareOptionX{peerrev}{\setkeys{wlg}{peerrev=#1}}
-
-\DeclareOption*{%
-\PassOptionsToClass{\CurrentOption}{scrartcl}%
-}
-\ProcessOptionsX
+%% ============================================================
+%% BASE CLASS:
+%% ============================================================
\LoadClass{scrartcl}[2003/04/22]
@@ -140,9 +118,7 @@
abstract=on,
twoside=semi
}
-\iftitlepage
-\KOMAoptions{titlepage=true}
-\fi
+
\recalctypearea
@@ -162,17 +138,17 @@
%% ============================================================
% Roman Font:
-\ifexpert
-% Adobe Minion (Expert)
-\RequirePackage[footnotefigures]{MinionPro}
+\if@wlg@expert
+ % Adobe Minion (Expert)
+ \RequirePackage[footnotefigures]{MinionPro}
\else
-% Crimson
-\RequirePackage[osf]{cochineal}
-% Enable bold and slanted in IPA
-\AtBeginDocument{%
- \@ifpackageloaded{tipa}{%
- \DeclareFontFamilySubstitution{T3}{Cochineal-TOsF}{cmr}}{}
-}
+ % Crimson
+ \RequirePackage[osf]{cochineal}
+ % Enable bold and slanted in IPA
+ \AtBeginDocument{%
+ \@ifpackageloaded{tipa}{%
+ \DeclareFontFamilySubstitution{T3}{Cochineal-TOsF}{cmr}}{}
+ }
\fi
% Hyperlinks
@@ -204,6 +180,16 @@
\RequirePackage{translator}
\languagealias{naustrian}{German}
+\deftranslation[to=German]{chapter}{Kapitel}
+\deftranslation[to=English]{chapter}{chapter}
+\deftranslation[to=German]{section}{Abschnitt}
+\deftranslation[to=English]{section}{section}
+\deftranslation[to=German]{footnote}{Anm.}
+\deftranslation[to=English]{footnote}{fn.}
+\deftranslation[to=German]{example}{Beispiel}
+\deftranslation[to=English]{example}{example}
+\deftranslation[to=German]{argumentation}{Argumentation}
+\deftranslation[to=English]{argumentation}{argumentation}
\deftranslation[to=German]{issue}{Ausgabe}
\deftranslation[to=English]{issue}{Issue}
\deftranslation[to=German]{univie}{Universit\"at Wien}
@@ -263,20 +249,20 @@
\AtBeginDocument{%
-\addto\captionsngerman{\renewcommand*\contentsname{Inhalt}}%
-\addto\captionsnaustrian{\renewcommand*\contentsname{Inhalt}}%
-}
-\AtEndPreamble{
-% License
-\PassOptionsToPackage{%
- imagewidth=8em,
- imagedistance=1em,
- imagemodifier=-eu-88x31,
- hyphenation=RaggedRight,
- type={CC},
- modifier={by-nc-nd},
- version={4.0}}{doclicense}
-\RequirePackage{doclicense}
+ \addto\captionsngerman{\renewcommand*\contentsname{Inhalt}}%
+ \addto\captionsnaustrian{\renewcommand*\contentsname{Inhalt}}%
+}
+\AtEndPreamble{%
+ % License
+ \PassOptionsToPackage{%
+ imagewidth=8em,
+ imagedistance=1em,
+ imagemodifier=-eu-88x31,
+ hyphenation=RaggedRight,
+ type={CC},
+ modifier={by-nc-nd},
+ version={4.0}}{doclicense}
+ \RequirePackage{doclicense}
}
\newcommand\impressum{%
@@ -318,7 +304,7 @@
\item[\textbf{\textsc{nbn}:}] BI,078,1063
\end{labeling}
\vspace*{-.5em}
-\ifKV@wlg@peerrev
+\if@wlg@peerrev
\noindent\translate{peerrev}\par\vspace*{.5em}
\fi
\noindent\translate{appform}\par
@@ -344,14 +330,16 @@
%% TOC
%% ============================================================
-\RequirePackage{etoc}
-\etocstandardlines
-\etocsetstyle{chapter}
- {}
- {\normalsize\mdseries\rmfamily}
- {\etocname{}\dotfill\etocpage\par\vspace{12pt}}
- {}
-\setcounter{tocdepth}{0}
+\if@wlg@specialprint\else
+ \RequirePackage{etoc}
+ \etocstandardlines
+ \etocsetstyle{chapter}
+ {}
+ {\normalsize\mdseries\rmfamily}
+ {\etocname{}\dotfill\etocpage\par\vspace{12pt}}
+ {}
+ \setcounter{tocdepth}{0}
+\fi
%% ============================================================
@@ -363,18 +351,18 @@
\renewcommand{\sectionmark}[1]{\markright{\thesection.\ #1}}
\RequirePackage{scrlayer-scrpage}
\renewcommand{\headfont}{\small\rmfamily}
-\clearscrheadings
+\clearmainofpairofpagestyles
\ohead{\pagemark}
\automark{section}
\KOMAoptions{headsepline=true}
\pagestyle{scrheadings}
% Macrotypographic sectioning
-\newif\if@mainmatter\@mainmattertrue
-\newif\if@frontmatter\@frontmatterfalse
+\newif\if@wlg@mainmatter\@wlg@mainmattertrue
+\newif\if@wlg@frontmatter\@wlg@frontmatterfalse
\newcommand*\frontmatter{%
\if@twoside\cleardoubleoddpage\else\clearpage\fi
- \@mainmatterfalse\@frontmattertrue\pagenumbering{roman}%
+ \@wlg@mainmatterfalse\@wlg@frontmattertrue\pagenumbering{roman}%
\edef\computelastpage{%
\romannumeral\numexpr\getpagerefnumber{LastFrontPage}-1\relax}%
\edef\startpageref{%
@@ -383,13 +371,13 @@
\newcommand*\mainmatter{%
\if@twoside\cleardoubleoddpage\else\clearpage\fi%
\immediate\write\@auxout{\noexpand\newlabel{LastFrontPage}{{}{\arabic{page}}}}%
- \@mainmattertrue\@frontmatterfalse%
+ \@wlg@mainmattertrue\@wlg@frontmatterfalse%
\pagenumbering{arabic}%
\def\computelastpage{\pageref{TotPages}}%
\def\startpageref{\thestartpage}%
}
\newcommand*\backmatter{%
- \if@openright\cleardoubleoddpage\else\clearpage\fi\@mainmatterfalse\@frontmatterfalse%
+ \if@openright\cleardoubleoddpage\else\clearpage\fi\@wlg@mainmatterfalse\@wlg@frontmatterfalse%
\def\computelastpage{\pageref{TotPages}}%
\def\startpageref{\thestartpage}%
}
@@ -407,9 +395,9 @@
\AfterPackage*{inputenc}{%
\RequirePackage{csquotes}
\ExecuteQuoteOptions{autostyle=try,german=guillemets,austrian=guillemets,maxlevel=3}
- \ifbiblatex
- % Change cite command for integrated csquotes env.
- \SetCiteCommand{\parencite}
+ \if@wlg@biblatex
+ % Change cite command for integrated csquotes env.
+ \SetCiteCommand{\parencite}
\fi
\renewcommand{\mktextdel}[1]{[\,]}
}
@@ -431,12 +419,14 @@
\RequirePackage{xcolor}
\RequirePackage{graphicx}
-\RequirePackage{hyperref}
-\hypersetup{%
-bookmarksnumbered=true,
-breaklinks=true,
-colorlinks=false,
-pdfborder={0 0 0}
+\AtEndOfClass{%
+ \RequirePackage{hyperref}
+ \hypersetup{%
+ bookmarksnumbered=true,
+ breaklinks=true,
+ colorlinks=false,
+ pdfborder={0 0 0}
+ }%
}
\def\@author{}
@@ -451,8 +441,10 @@ pdfborder={0 0 0}
}
% Author affiliation (starred: corresponding author)
-\DeclareRobustCommand*\aff{%
- \@ifstar\@@aff\@aff
+\DeclareExpandableDocumentCommand{\aff}{som}{%
+ \texorpdfstring
+ {\IfBooleanTF{#1}{\@@aff}{\@aff}[#2]{#3}}
+ {}%
}
% Empty (will be redefined in the article title)
@@ -487,8 +479,8 @@ pdfborder={0 0 0}
\def\@pubyear{}
\newcommand\issue[2]{\def\@issue{#1}\def\@pubyear{#2}}
-\newif\iftitlepageneeded\titlepageneededtrue
-\newif\ifstartpageset\startpagesetfalse
+\newif\if@wlg@titlepageneeded\@wlg@titlepageneededtrue
+\newif\if@wlg@startpageset\@wlg@startpagesetfalse
\def\ljobname{\jobname}
@@ -497,12 +489,12 @@ pdfborder={0 0 0}
\else
\def\and{\texorpdfstring{\unskip\slash}{| }}%
\fi
- \iftitlepage
+ \if@wlg@titlepage
\@maketitlepage[#1]%
\fi
- \ifstartpageset\else
+ \if@wlg@startpageset\else
\setcounter{page}{\thestartpage}
- \global\startpagesettrue
+ \global\@wlg@startpagesettrue
\fi
\rehead{\@@author}
\lohead{\@@title}
@@ -568,8 +560,10 @@ pdfborder={0 0 0}
}%
\newcommand{\@maketitlepage}[1][1]{%
- \iftitlepageneeded
+ \if@wlg@titlepageneeded
\begin{titlepage}
+ \pagenumbering{alph}
+ \thispagestyle{empty}%
\setcounter{page}{%
#1%
}%
@@ -593,7 +587,7 @@ pdfborder={0 0 0}
{\usekomafont{subject}{\@subject\par}}%
\vskip 3em
\fi
- \ifspecialprint
+ \if@wlg@specialprint
{\usekomafont{title}{\@title\par}}%
\vskip 1em
{\ifx\@subtitle\@empty\else\usekomafont{subtitle}{\@subtitle\par}\fi}%
@@ -604,10 +598,10 @@ pdfborder={0 0 0}
}%
}%
\vfill
- {\usekomafont{date}{\ifKV@wlg@preprint\translate{preprintfrom}%
+ {\usekomafont{date}{\if@wlg@preprint\translate{preprintfrom}%
\else\translate{specialprint}\fi\ \emph{Wiener Linguistische Gazette}
(\versal{WLG})
- \@issue\ (\@pubyear)\ifKV@wlg@preprint\else: \startpageref--\lastpageref\fi\par}}
+ \@issue\ (\@pubyear)\if@wlg@preprint\else: \startpageref--\lastpageref\fi\par}}
{\ifx\@issuetitle\@empty\else
\vskip 1em
\usekomafont{date}{\translate{specialissue} \itshape\@issuetitle
@@ -687,14 +681,14 @@ pdfborder={0 0 0}
~\vfill
\impressum
\clearpage
- \ifspecialprint\else
+ \if@wlg@specialprint\else
\ifx\@issuetitle\@empty\else
\thispagestyle{plain}
\tableofcontents
\clearpage
\fi
\fi
- \global\titlepageneededfalse%
+ \global\@wlg@titlepageneededfalse%
\fi%
}
@@ -746,7 +740,7 @@ pdfborder={0 0 0}
\translate{lingdep}\par
\translate{univie}\par
\translate{issue} \@issue\ (\@pubyear):
- \ifKV@wlg@preprint\translate{preprint}%
+ \if@wlg@preprint\translate{preprint}%
\else\thepage--\lastpageref\fi%
}%
\vskip \z@ \@plus 1em
@@ -758,6 +752,7 @@ pdfborder={0 0 0}
\end{flushright}%
\par
\vskip 2em
+ \pagenumbering{arabic}
}%
% Rewrite \include for local LastPage counter
@@ -781,7 +776,7 @@ pdfborder={0 0 0}
\immediate\openout\@partaux #1.aux
\immediate\write\@partaux{\relax}%
\fi
- \ifbiblatex
+ \if@wlg@biblatex
\newrefsection
\fi
\@input@{#1.tex}%
@@ -836,11 +831,12 @@ pdfborder={0 0 0}
% Increase distance between text and footnotes
\renewcommand\footnoterule{%
-% Distance between text and footnote rule (1 line)
+ % Distance between text and footnote rule (1 line)
\kern-3\p@\hrule\@width.4\columnwidth%
\kern2.6\p@%
-% Distance between footnote rule and foot notes (0.2em)
- \vspace{0.2em}}%
+ % Distance between footnote rule and foot notes (0.2em)
+ \vspace{0.2em}%
+}%
% Fotenote mark not superscripted
\newlength{\footnumwidth}
@@ -891,10 +887,10 @@ pdfborder={0 0 0}
\renewcommand*{\dictumrule}{}
\newcommand\motto[2][]{%
-\dictum[#1]{#2}
-\medskip
-\@afterindentfalse
-\@afterheading
+ \dictum[#1]{#2}%
+ \medskip%
+ \@afterindentfalse%
+ \@afterheading%
}
% Lists
@@ -904,14 +900,12 @@ pdfborder={0 0 0}
\def\labelitemi{--}
% Quote (smaller)
-\newcommand*{\OriginalQuote}{}
-\let\OriginalQuote\quote
-\renewcommand*{\quote}{\OriginalQuote\small}
+\let\@wlg@save@quote\quote
+\renewcommand*{\quote}{\@wlg@save@quote\small}
% Quotation (smaller)
-\newcommand*{\OriginalQuotation}{}
-\let\OriginalQuotation\quotation
-\renewcommand*{\quotation}{\OriginalQuotation\small}
+\let\@wlg@save@quotation\quotation
+\renewcommand*{\quotation}{\@wlg@save@quotation\small}
% Description (KOMA) (normal italic)
\setkomafont{descriptionlabel}{\normalfont\itshape}
@@ -920,9 +914,9 @@ pdfborder={0 0 0}
\let\olddots\ldots
\renewcommand*{\ldots}{\olddots\unkern}
-\ifcovington
-\RequirePackage{covington}
-\renewcommand{\p@equation}[1]{(#1)}
+\if@wlg@covington
+ \RequirePackage{covington}
+ \renewcommand{\p@equation}[1]{(#1)}
\fi
@@ -951,18 +945,18 @@ pdfborder={0 0 0}
%% =============================================================
% Biblatex
-\ifbiblatex
-\RequirePackage[%
- style=univie-ling,
- sorting=nyvt,
- autolang=hyphen]
-{biblatex}
+\if@wlg@biblatex
+ \RequirePackage[%
+ style=univie-ling,
+ sorting=nyvt,
+ autolang=hyphen]
+ {biblatex}
\fi
\AtBeginDocument{%
-\@ifundefined{bibhang}{}{%
- \setlength{\bibhang}{\parindent}%
- \renewcommand{\bibfont}{\small}%
-}%
+ \@ifundefined{bibhang}{}{%
+ \setlength{\bibhang}{\parindent}%
+ \renewcommand{\bibfont}{\small}%
+ }%
}
%% =============================================================
@@ -972,23 +966,26 @@ pdfborder={0 0 0}
% Varioref:
\AtBeginDocument{%
\RequirePackage[ngerman]{varioref}
- \renewcommand\reftextafter{auf der \reftextvario{folgenden}{n\"achsten} Seite}%
- \renewcommand\reftextfaceafter{auf der \reftextvario{folgenden}{n\"achsten} Seite}%
- \renewcommand\reftextbefore{auf der \reftextvario{vorhergehenden}{vorangegangenen} Seite}%
- \renewcommand\reftextfacebefore{auf der \reftextvario{vorhergehenden}{vorangegangenen} Seite}%
- \renewcommand\reftextfaraway[1]{auf S.~\pageref{#1}}%
- \renewcommand\reftextpagerange[2]{auf S.~\pageref{#1}--\pageref{#2}}%
+ \vref@addto\extrasnaustrian{%
+ \def\reftextafter{auf der \reftextvario{folgenden}{n\"achsten} Seite}%
+ \def\reftextfaceafter{auf der gegen\"uberliegenden Seite}%
+ \def\reftextbefore{auf der \reftextvario{vorhergehenden}{vorangegangenen} Seite}%
+ \def\reftextfacebefore{auf der gegen\"uberliegenden Seite}%
+ \def\reftextfaraway#1{auf S.~\pageref{#1}}%
+ \def\reftextpagerange#1#2{auf S.~\pageref{#1}--\pageref{#2}}%
+ }%
% Prettyref:
% (varioref included)
\RequirePackage{prettyref}
- \newrefformat{cha}{Kapitel~\vref{#1}}
- \newrefformat{sec}{Abschnitt~\vref{#1}}
- \newrefformat{sub}{Abschnitt~\vref{#1}}
- \newrefformat{anm}{Anm.~\ref{#1}}
- \newrefformat{app}{Anhang~\vref{#1}}
- \newrefformat{tab}{Tabelle~\vref{#1}}
- \newrefformat{fig}{Abbildung~\vref{#1}}
- \newrefformat{exp}{Argumentation~\vref{#1}}
+ \newrefformat{cha}{\translate{chapter}~\vref{#1}}
+ \newrefformat{sec}{\translate{section}~\vref{#1}}
+ \newrefformat{sub}{\translate{section}~\vref{#1}}
+ \newrefformat{anm}{\translate{footnote}~\vref{#1}}
+ \newrefformat{app}{\appendixname~\vref{#1}}
+ \newrefformat{tab}{\tablename~\vref{#1}}
+ \newrefformat{fig}{\figurename~\vref{#1}}
+ \newrefformat{exp}{\translate{argumentation}~\vref{#1}}
+ \newrefformat{exa}{\translate{example}~\vref{#1}}
}
%% =============================================================
diff --git a/macros/latex/contrib/yb-book/DEPENDS.txt b/macros/latex/contrib/yb-book/DEPENDS.txt
index df34424b3d..caa266e1d2 100644
--- a/macros/latex/contrib/yb-book/DEPENDS.txt
+++ b/macros/latex/contrib/yb-book/DEPENDS.txt
@@ -1,23 +1,18 @@
+hard pgf
hard xkeyval
hard geometry
-hard fontenc
-hard inputenc
hard anyfontsize
-hard tikz
hard chngcntr
hard lastpage
hard paralist
hard xcolor
-hard graphicx
hard setspace
-hard textcomp
hard enumitem
hard float
hard ulem
hard qrcode
hard wrapfig
-hard xfp
-hard soul} % in order to use \st{
+hard soul
hard xifthen
hard csquotes
hard biblatex
@@ -31,3 +26,7 @@ hard fancyhdr
hard wrapfig
hard mdframed
hard changepage
+hard ifmtarg
+hard bigfoot
+hard zref
+hard needspace \ No newline at end of file
diff --git a/macros/latex/contrib/yb-book/LICENSE.txt b/macros/latex/contrib/yb-book/LICENSE.txt
new file mode 100644
index 0000000000..bd949ffdab
--- /dev/null
+++ b/macros/latex/contrib/yb-book/LICENSE.txt
@@ -0,0 +1,21 @@
+(The MIT License)
+
+Copyright (c) 2021-2022 Yegor Bugayenko
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the 'Software'), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/macros/latex/contrib/yb-book/README.md b/macros/latex/contrib/yb-book/README.md
index a9eae33589..fcc2528d67 100644
--- a/macros/latex/contrib/yb-book/README.md
+++ b/macros/latex/contrib/yb-book/README.md
@@ -1,4 +1,5 @@
-[![make](https://github.com/yegor256/yb-book/actions/workflows/make.yml/badge.svg)](https://github.com/yegor256/yb-book/actions/workflows/make.yml)
+[![make](https://github.com/yegor256/yb-book/actions/workflows/l3build.yml/badge.svg)](https://github.com/yegor256/yb-book/actions/workflows/l3build.yml)
+[![CTAN](https://img.shields.io/ctan/v/yb-book)](https://ctan.org/pkg/yb-book)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/yegor256/yb-book/blob/master/LICENSE.txt)
This LaTeX class I use to format [my books](https://www.yegor256.com/books.html),
@@ -10,10 +11,14 @@ and then use in the preamble:
```tex
\documentclass{yb-book}
+\renewcommand*\thetitle{New Book About OOP}
\renewcommand*\theauthor{Jeff Lebowski}
\renewcommand*\thevolume{1}
-\renewcommand*\thetitle{New Book About OOP}
+\renewcommand*\theversion{1.0}
\begin{document}
+\ybPrintTitlePage
+\chapter{First One}
+\section{About Something Interesting}
Hello, world!
\end{document}
```
diff --git a/macros/latex/contrib/yb-book/samples/sample.tex b/macros/latex/contrib/yb-book/samples/sample.tex
deleted file mode 100644
index b5528d54ca..0000000000
--- a/macros/latex/contrib/yb-book/samples/sample.tex
+++ /dev/null
@@ -1,41 +0,0 @@
-% (The MIT License)
-%
-% Copyright (c) 2021 Yegor Bugayenko
-%
-% Permission is hereby granted, free of charge, to any person obtaining a copy
-% of this software and associated documentation files (the 'Software'), to deal
-% in the Software without restriction, including without limitation the rights
-% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-% copies of the Software, and to permit persons to whom the Software is
-% furnished to do so, subject to the following conditions:
-%
-% The above copyright notice and this permission notice shall be included in all
-% copies or substantial portions of the Software.
-%
-% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-% SOFTWARE.
-
-\documentclass{../yb-book}
-\renewcommand*\thetitle{\LaTeX{} Class yb-book}
-\renewcommand*\theauthor{Yegor Bugayenko}
-\begin{document}
-
-\ybPrintTitlePage
-
-\newpage
-
-\chapter{Overview}
-
-\section{Purpose}
-
-\index{computer}
-This is a very interesting book about computers.
-
-\ybPrintIndex
-
-\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/yb-book/yb-book.cls b/macros/latex/contrib/yb-book/yb-book.cls
deleted file mode 100644
index 4b99e80514..0000000000
--- a/macros/latex/contrib/yb-book/yb-book.cls
+++ /dev/null
@@ -1,341 +0,0 @@
-% (The MIT License)
-%
-% Copyright (c) 2021-2022 Yegor Bugayenko
-%
-% Permission is hereby granted, free of charge, to any person obtaining a copy
-% of this software and associated documentation files (the 'Software'), to deal
-% in the Software without restriction, including without limitation the rights
-% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-% copies of the Software, and to permit persons to whom the Software is
-% furnished to do so, subject to the following conditions:
-%
-% The above copyright notice and this permission notice shall be included in all
-% copies or substantial portions of the Software.
-%
-% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-% SOFTWARE.
-
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{yb-book}[2022/01/03 0.1.0 YB Branded Book Style]
-
-\RequirePackage{xkeyval}
-
-\makeatletter
-\newif\ifyb@draft
-\DeclareOptionX{draft}{\yb@drafttrue}
-\newif\ifyb@compact
-\DeclareOptionX{compact}{\yb@compacttrue}
-\newif\ifyb@manuscript
-\DeclareOptionX{manuscript}{\yb@manuscripttrue}
-\ProcessOptionsX
-\makeatother
-
-\makeatletter\ifyb@draft
- \PassOptionsToClass{11pt}{book}
- \PassOptionsToClass{oneside}{book}
-\else
- \ifyb@manuscript
- \PassOptionsToClass{12pt}{book}
- \PassOptionsToClass{oneside}{book}
- \else
- \PassOptionsToClass{11pt}{book}
- \PassOptionsToClass{twoside}{book}
- \fi
-\fi\makeatother
-
-\LoadClass{book}
-
-\RequirePackage{geometry}
- \geometry{paperwidth=6in, paperheight=9in, bindingoffset=0.25in, left=0.75in, right=0.75in, top=0.75in, bottom=1.25in}
- \makeatletter\ifyb@draft
- \geometry{a4paper, margin=1in, left=1.5in}
- \else
- \ifyb@manuscript
- \geometry{a4paper, margin=1.2in}
- \fi
- \fi\makeatother
-
-\RequirePackage[T1]{fontenc}
-\RequirePackage[utf8]{inputenc}
-\RequirePackage{anyfontsize}
-\RequirePackage{tikz}
- \usetikzlibrary{positioning}
- \usetikzlibrary{shapes}
- \usetikzlibrary{fit}
-\RequirePackage{chngcntr}
- \counterwithout{footnote}{chapter}
-\RequirePackage{lastpage}
-\RequirePackage{paralist}
-\RequirePackage{xcolor}
-\RequirePackage{graphicx}
-\RequirePackage{setspace}
- \setstretch{1.2}
- \makeatletter\ifyb@draft\setstretch{1.1}\fi\makeatother
- \makeatletter\ifyb@compact\setstretch{1.0}\fi\makeatother
- \makeatletter\ifyb@manuscript\setstretch{1.1}\fi\makeatother
-\RequirePackage{textcomp}
-\RequirePackage[inline]{enumitem}
- \setlist{nosep}
-\RequirePackage{float}
-\RequirePackage[normalem]{ulem}
-\RequirePackage{qrcode}
-\RequirePackage{wrapfig}
- \pagestyle{plain}
-\RequirePackage{xfp}
-\RequirePackage{soul} % in order to use \st{} to strikethrough
-\RequirePackage{xifthen}
-\RequirePackage[autostyle=try]{csquotes}
-
-\RequirePackage[indexing=cite,style=authoryear,natbib=true,maxnames=1,minnames=1,doi=false,url=false,isbn=false,isbn=false]{biblatex}
- \DeclareCiteCommand{\citetitle}
- {\boolfalse{citetracker}%
- \boolfalse{pagetracker}%
- \usebibmacro{prenote}}
- {\ifciteindex
- {\indexnames{labelname}}
- {}%
- \printfield[citetitle]{labeltitle}}
- {\multicitedelim}
- {\usebibmacro{postnote}}
- \DeclareCiteCommand*{\citetitle}
- {\boolfalse{citetracker}%
- \boolfalse{pagetracker}%
- \usebibmacro{prenote}}
- {\ifciteindex
- {\indexnames{labelname}}
- {}%
- \printfield[citetitle]{title}}
- {\multicitedelim}
- {\usebibmacro{postnote}}
-\RequirePackage{imakeidx}
- \renewbibmacro*{citeindex}{\indexnames{labelname}{}}
- \makeindex
- \indexsetup{othercode={\hyphenpenalty=10000}}
-
-\newenvironment{condensed}{%
- \begingroup\setstretch{1.0}%
- % This lsstyle is defined by 'letterspace' in microtype
- \lsstyle}{\endgroup}
-
-\makeatletter\ifyb@draft\else
- \RequirePackage[letterspace=-50]{microtype}
-\fi\makeatother
-
-\makeatletter\ifyb@manuscript
- \RequirePackage[tt=false,type1=true]{libertine}
-\fi\makeatother
-
-\RequirePackage[bottom,perpage,multiple]{footmisc}
- % see https://tex.stackexchange.com/questions/40072/incompatibility-between-footmisc-option-multiple-and-hyperref/62091#62091
- \makeatletter\let\yb@oldfootnote\footnote\makeatother
- \makeatletter\newcommand\yb@nexttoken\relax\makeatother
- \makeatletter\newcommand\yb@isfootnote{%
- \ifx\footnote\yb@nexttoken\textsuperscript{,}\fi}\makeatother
- \makeatletter\renewcommand\footnote[1]{%
- \yb@oldfootnote{#1}\futurelet\yb@nexttoken\yb@isfootnote}\makeatother
-
-\makeatletter
- \let\yb@oldsection\section
- \ifyb@draft
- \RequirePackage[medium]{titlesec}
- \else
- \RequirePackage[raggedright]{titlesec}
- \titlespacing{\section}{0in}{6pt}{6pt}[1in]
- \renewcommand\section{\newpage\yb@oldsection}
- \fi
-\makeatother
-
-\makeatletter\ifyb@compact
- \renewcommand\section{\vspace{2em}\yb@oldsection}
-\fi\makeatother
-
-\makeatletter\ifyb@draft
- \RequirePackage{fancyhdr}
- \pagestyle{fancy}
- \renewcommand\headrulewidth{0pt}
- \renewcommand\footrulewidth{0pt}
- \fancyhf{}
- \fancyhead[L,C,LO,CO]{}
- \fancyhead[R,RO]{
- \begin{textblock}{4}(11.5,1)
- \begin{tikzpicture}
- \node [color=gray, rotate=270, font=\ttfamily\scriptsize, text width=5in] at (0,0) {
- Copyright \textcopyright{} \the\year{} by \theauthor{}.
- All rights reserved. No part of the contents of this book may be
- reproduced or transmitted in any form or by any means without the
- written permission of the publisher.
- This particular manuscript is printed for
- \textbf{\thereviewer{}} and may be used only for one-time review. The
- manuscript has to be destroyed after the review.
- };
- \end{tikzpicture}
- \end{textblock}
- }
- \fancyfoot[C,CO]{\small\ttfamily page \#\thepage{} of \pageref{LastPage}}
-\fi\makeatother
-
-\renewcommand\maketitle{
- {\LARGE\textbf{\thetitle}}
- \\[1em]
- by \theauthor{}
- \\[4em]
- \ifx\thevolume\empty\else%
- Volume \thevolume{}\\
- \fi
- \ifx\thedate\empty\else%
- Rendered on \thedate{}
- \fi
- \ifx\theversion\empty\else%
- \\
- Ver. \theversion{}
- \fi
-}
-
-\makeatletter\newcommand\ybPrintTitlePage{
- \ifyb@draft\else
- \begin{titlepage}
- \ttfamily
- \vspace*{\fill}
- \noindent
- {\Huge\textbf{\thetitle}}
- \\[1em]
- by \theauthor{}
- \\[4em]
- \ifx\thevolume\empty\else%
- Volume \thevolume{}\\
- \fi
- \ifx\thedate\empty\else%
- \thedate{}
- \fi
- \ifx\thedate\empty\else%
- \\
- \theversion{}
- \fi
- \vspace*{\fill}
- \end{titlepage}
- \fi
-}\makeatother
-
-\makeatletter\newcommand\ybPrintTOC{
- \ifyb@draft\else
- \ifyb@compact\else\cleardoublepage\fi
- {\setstretch{0.7}\tableofcontents}
- \fi
-}\makeatother
-
-\makeatletter\newcommand\ybPrintIndex[1][Index]{
- \ifyb@draft\else
- \cleardoublepage
- {
- \setstretch{1.0}
- \small
- \addcontentsline{toc}{chapter}{#1}
- \printindex
- }
- \fi
-}\makeatother
-
-\newcommand\ybPrintIcons{%
- \ifdefempty{\theemail{}}{}{%
- \includegraphics[height=1em]{images/icon-email.pdf}%
- \theemail{}%
- }%
- \includegraphics[height=1em]{images/icon-twitter.pdf}%
- \includegraphics[height=1em]{images/icon-linkedin.pdf}%
- \includegraphics[height=1em]{images/icon-github.pdf}%
- \includegraphics[height=1em]{images/icon-instagram.pdf}%
- \includegraphics[height=1em]{images/icon-facebook.pdf}%
- \thesocial{}%
-}
-
-% quotes
-\RequirePackage{wrapfig}
-\RequirePackage{mdframed}
-\RequirePackage{changepage}
- \strictpagecheck
-\mdfdefinestyle{quoteodd}{backgroundcolor=black!0,
- leftmargin=6pt,rightmargin=0pt,
- innerleftmargin=6pt,innerrightmargin=0pt,
- innertopmargin=0pt,innerbottommargin=0pt,
- skipabove=0pt,skipbelow=0pt,
- linewidth=2pt,
- topline=false,bottomline=false,rightline=false}
-\mdfdefinestyle{quoteeven}{backgroundcolor=black!0,
- rightmargin=6pt,leftmargin=0pt,
- innerrightmargin=6pt,innerleftmargin=0pt,
- innertopmargin=0pt,innerbottommargin=0pt,
- skipabove=0pt,skipbelow=0pt,
- linewidth=2pt,
- topline=false,bottomline=false,leftline=false}
-\makeatletter\newcommand\ybQuote[3]{%
- \ifthenelse{\isempty{#3}}{}{
- \ifx\hfuzz#2\hfuzz%
- \index{#3}%
- \else%
- \index{#3, #2}%
- \fi%
- }%
- \def\yb@body{%
- \raggedright%
- \ifx\hfuzz#3\hfuzz%
- #1%
- \else%
- ``#1''\\\raggedleft---#2 #3%
- \fi%
- }
- \ifyb@draft%
- \begin{wrapfigure}{r}{0.4\textwidth}%
- \begin{mdframed}[style=quoteodd]%
- \yb@body%
- \end{mdframed}%
- \end{wrapfigure}%
- \else%
- \begin{wrapfigure}{o}[12pt]{0.4\textwidth}%
- \sffamily\checkoddpage%
- \ifoddpage%
- \begin{mdframed}[style=quoteodd]\yb@body\end{mdframed}%
- \else%
- \begin{mdframed}[style=quoteeven]\yb@body\end{mdframed}%
- \fi%
- \vspace{-12pt}
- \end{wrapfigure}%
- \fi%
-}\makeatother
-
-\makeatletter\newcommand\ybPrintBibliography{%
- \AtNextBibliography{\small}%
- \raggedright%
- \ifyb@manuscript%
- \setlength\bibitemsep{0pt}%
- \newpage%
- \begin{multicols}{2}{\setstretch{1.0}\printbibliography}\end{multicols}
- \else
- \printbibliography
- \fi
-}\makeatother
-
-\AtBeginDocument{%
- \raggedbottom%
- \setlength\topskip{0mm}%
- \setlength\parindent{0pt}%
- \setlength\parskip{6pt}%
- \interfootnotelinepenalty=10000%
-}
-
-\newcommand*\thetitle{\textbackslash{}thetitle}
-\newcommand*\thevolume{}
-\newcommand*\thedate{}
-\newcommand*\theemail{\textbackslash{}theemail}
-\newcommand*\thesocial{\textbackslash{}thesocial}
-\newcommand*\theversion{\textbackslash{}theversion}
-\newcommand*\theauthor{\textbackslash{}theauthor}
-\newcommand*\thereviewer{\textbackslash{}thereviewer}
-\newcommand*\theyear{\textbackslash{}theyear}
-\newcommand*\theprice{\textbackslash{}theprice}
-
-\endinput
diff --git a/macros/latex/contrib/yb-book/yb-book.dtx b/macros/latex/contrib/yb-book/yb-book.dtx
new file mode 100644
index 0000000000..2ca33cb55e
--- /dev/null
+++ b/macros/latex/contrib/yb-book/yb-book.dtx
@@ -0,0 +1,653 @@
+% \iffalse meta-comment
+% (The MIT License)
+%
+% Copyright (c) 2021-2022 Yegor Bugayenko
+%
+% Permission is hereby granted, free of charge, to any person obtaining a copy
+% of this software and associated documentation files (the 'Software'), to deal
+% in the Software without restriction, including without limitation the rights
+% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+% copies of the Software, and to permit persons to whom the Software is
+% furnished to do so, subject to the following conditions:
+%
+% The above copyright notice and this permission notice shall be included in all
+% copies or substantial portions of the Software.
+%
+% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+% SOFTWARE.
+% \fi
+
+%%% \CheckSum{0}
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+
+% \GetFileInfo{yb-book.dtx}
+% \DoNotIndex{\end,\empty,\defined,\def,\begin,\if,\isempty,\endgroup,\begingroup,\let,\else,\fi,\newcommand,\newenvironment}
+
+% \iffalse
+%<*driver>
+\ProvidesFile{yb-book.dtx}
+%</driver>
+%<class>\NeedsTeXFormat{LaTeX2e}
+%<class>\ProvidesClass{yb-book}
+%<*class>
+[02.10.2022 0.2.0 YB Branded Book Style]
+%</class>
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage[tt=false, type1=true]{libertine}
+\usepackage{href-ul}
+\usepackage{graphicx}
+\PageIndex
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\begin{document}
+ \DocInput{yb-book.dtx}
+ \PrintChanges
+ \PrintIndex
+\end{document}
+%</driver>
+% \fi
+
+% \title{\includegraphics[width=0.75in]{yb-book-logo.pdf} \\ \LaTeX{} Class |yb-book|\thanks{The sources are in GitHub at \href{https://github.com/yegor256/yb-book.cls}{yegor256/yb-book.cls}}}
+% \author{Yegor Bugayenko \\ \texttt{yegor256@gmail.com}}
+% \date{\filedate, \fileversion}
+%
+% \maketitle
+%
+% \section{Introduction}
+%
+% \index{Amazon}
+% The provided class |yb-book| helps me design
+% \href{https://www.yegor256.com/books.html}{my books} and
+% publish them
+% \href{https://www.amazon.com/Yegor-Bugayenko/e/B01AM1QMDK}{on Amazon}.
+% You are welcome to use is for your own books. It is as simple
+% as this:
+%\iffalse
+%<*verb>
+%\fi
+\begin{verbatim}
+\documentclass{yb-book}
+\renewcommand*\thetitle{New Book About OOP}
+\renewcommand*\theauthor{Jeff Lebowski}
+\renewcommand*\thevolume{1}
+\renewcommand*\theversion{1.0}
+\begin{document}
+\ybPrintTitlePage
+\chapter{First One}
+\section{About Something Interesting}
+Hello, world!
+\end{document}
+\end{verbatim}
+%\iffalse
+%</verb>
+%\fi
+
+% You are welcome to suggest additional options and commands, but the style
+% of my books is intentionally as simple as possible, avoiding formatting
+% as much as possible. Here is \href{https://www.yegor256.com/2019/05/21/dont-improvise.html}{why}.
+
+% \section{Options}
+
+% There are a few class options you can use:
+
+% \begin{macro}{compact}
+% Use this package option when you need to make text more compact
+% and take less vertical space. This may be convenient fiction books.
+% I use this option to render \href{https://www.yegor256.com/code-ahead.html}{Code Ahead} book.
+% \end{macro}
+
+% \begin{macro}{manuscript}
+% When the format is not for Amazon printing,
+% but for some other purposes (the page size is A4), this option may be
+% convenient. I also use it when I want the book to be rendered for
+% printing on paper for review purposes.
+% \end{macro}
+
+% \begin{macro}{draft}
+% When it's a draft for reviewers (the page size is A4)
+% and you want to have a watermark and a compact form of the content. This
+% option goes together with |\thereviewer{}| command, which you may redefine,
+% in order to embed the name of the reviewed in the watermark. This may
+% help you prevent theft of your book:
+%\iffalse
+%<*verb>
+%\fi
+\begin{verbatim}
+\documentclass[draft]{yb-book}
+\renewcommand*\thereviewer{Walter Sobchak}
+\begin{document}
+Hello, world!
+\end{document}
+\end{verbatim}
+%\iffalse
+%</verb>
+%\fi
+% \end{macro}
+
+% \section{Meta Commands}
+
+% There are a number of commands that you may redefine in the preamble:
+%\iffalse
+%<*verb>
+%\fi
+\begin{verbatim}
+\documentclass{yb-book}
+\newcommand*\thetitle{My New Book About OOP}
+\newcommand*\theauthor{Yegor Bugayenko}
+\newcommand*\thevolume{1}
+\newcommand*\thedate{24 Feb 2022}
+\newcommand*\theversion{1.4}
+\newcommand*\thereviewer{Jeff Lebowski}
+\begin{document}
+... the content goes here ...
+\end{document}
+\end{verbatim}
+%\iffalse
+%</verb>
+%\fi
+
+% \section{Printers}
+
+% There are a number of printers --- commands that print large blocks of text
+% in the expected format:
+
+% \begin{macro}{\ybPrintTitlePage}
+% Prints the first page of a book. It expects at least |\thetitle|
+% and |theauthor| to be defined:
+%\iffalse
+%<*verb>
+%\fi
+\begin{verbatim}
+\documentclass{yb-book}
+\renewcommand*\thetitle{My New Book}
+\renewcommand*\theauthor{Yegor Bugayenko}
+\begin{document}
+\ybPrintTitlePage
+.. the rest of the book goes here
+\end{document}
+\end{verbatim}
+%\iffalse
+%</verb>
+%\fi
+% \end{macro}
+
+% \begin{macro}{\ybPrintTOC}
+% Prints the table of contents.
+% \end{macro}
+
+% \begin{macro}{\ybQuote}
+% Prints a side quote:
+%\iffalse
+%<*verb>
+%\fi
+\begin{verbatim}
+\documentclass{yb-book}
+\begin{document}
+Hello, world!
+\ybQuote{Never tell the truth to people who
+ are not worthy of it}{Mark Twain}{}
+\end{document}
+\end{verbatim}
+%\iffalse
+%</verb>
+%\fi
+% \end{macro}
+
+% \begin{macro}{\ybPrintBibliography}
+% Prints the list of bib references.
+% \end{macro}
+
+% \begin{macro}{\ybPrintIndex}
+% Prints index with an optional name of the section (instead of ``Index''):
+%\iffalse
+%<*verb>
+%\fi
+\begin{verbatim}
+\documentclass{yb-book}
+\begin{document}
+Hello, world!
+\ybPrintIndex{Recommended Books}
+\end{document}
+\end{verbatim}
+%\iffalse
+%</verb>
+%\fi
+% \end{macro}
+
+% \StopEventually{}
+
+% \section{Implementation}
+
+% \changes{v0.1.0}{2022/01/09}{Initial version}
+% \changes{v0.2.0}{2022/10/02}{Started using l3build}
+
+% First, we use |xkeyval| package for package options parsing:
+% \begin{macrocode}
+\RequirePackage{xkeyval}
+\makeatletter
+\newif\ifyb@draft
+\DeclareOptionX{draft}{\yb@drafttrue}
+\newif\ifyb@compact
+\DeclareOptionX{compact}{\yb@compacttrue}
+\newif\ifyb@manuscript
+\DeclareOptionX{manuscript}{\yb@manuscripttrue}
+\ProcessOptionsX
+\makeatother
+% \end{macrocode}
+
+% Then, depending on the options like |draft| and |manuscript|, we preset
+% options of the class |book| and then load it:
+% \begin{macrocode}
+\makeatletter\ifyb@draft
+ \PassOptionsToClass{11pt}{book}
+ \PassOptionsToClass{oneside}{book}
+\else
+ \ifyb@manuscript
+ \PassOptionsToClass{12pt}{book}
+ \PassOptionsToClass{oneside}{book}
+ \else
+ \PassOptionsToClass{11pt}{book}
+ \PassOptionsToClass{twoside}{book}
+ \fi
+\fi\makeatother
+\LoadClass{book}
+% \end{macrocode}
+
+% \begin{macro}{geometry}
+% Then, using |geometry|, we setup page layout:
+% \begin{macrocode}
+\RequirePackage{geometry}
+\geometry{paperwidth=6in, paperheight=9in, bindingoffset=0.25in,
+ left=0.75in, right=0.75in, top=0.75in, bottom=1.25in}
+\makeatletter\ifyb@draft
+ \geometry{a4paper, margin=1in, left=1.5in}
+\else
+ \ifyb@manuscript
+ \geometry{a4paper, margin=1.2in}
+ \fi
+\fi\makeatother
+% \end{macrocode}
+% \end{macro}
+
+% Then, we configure input encoding for UTF-8:
+% \begin{macrocode}
+\RequirePackage[T1]{fontenc}
+\RequirePackage[utf8]{inputenc}
+\RequirePackage{lmodern}
+% \end{macrocode}
+
+% Then, we load many important packages:
+% \begin{macrocode}
+\RequirePackage{anyfontsize}
+\RequirePackage{tikz}
+ \usetikzlibrary{positioning}
+ \usetikzlibrary{shapes}
+ \usetikzlibrary{fit}
+\RequirePackage{chngcntr}
+ \counterwithout{footnote}{chapter}
+\RequirePackage{lastpage}
+\RequirePackage{paralist}
+\RequirePackage{xcolor}
+\RequirePackage{graphicx}
+\RequirePackage[inline]{enumitem}
+ \setlist{nosep}
+\RequirePackage{float}
+\RequirePackage[normalem]{ulem}
+\RequirePackage{xfp}
+\RequirePackage{soul}
+\RequirePackage{xifthen}
+\RequirePackage[autostyle=try]{csquotes}
+% \end{macrocode}
+
+% \begin{macro}{\pagestyle}
+% Then, we set the layout of a page to |plain|:
+% \begin{macrocode}
+\pagestyle{plain}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{setspace}
+% Then, using |setspace| package we set the spacing between lines in the text,
+% depending on the package options:
+% \begin{macrocode}
+\RequirePackage{setspace}
+ \setstretch{1.2}
+ \makeatletter\ifyb@draft\setstretch{1.1}\fi\makeatother
+ \makeatletter\ifyb@compact\setstretch{1.0}\fi\makeatother
+ \makeatletter\ifyb@manuscript\setstretch{1.1}\fi\makeatother
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{biblatex}
+% Then, we configure |biblatex|, for citation management:
+% \begin{macrocode}
+\RequirePackage[indexing=cite,style=authoryear,
+ natbib=true,maxnames=1,minnames=1,doi=false,
+ url=false,isbn=false,isbn=false]{biblatex}
+ \DeclareCiteCommand{\citetitle}
+ {\boolfalse{citetracker}%
+ \boolfalse{pagetracker}%
+ \usebibmacro{prenote}}
+ {\ifciteindex
+ {\indexnames{labelname}}
+ {}%
+ \printfield[citetitle]{labeltitle}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+ \DeclareCiteCommand*{\citetitle}
+ {\boolfalse{citetracker}%
+ \boolfalse{pagetracker}%
+ \usebibmacro{prenote}}
+ {\ifciteindex
+ {\indexnames{labelname}}
+ {}%
+ \printfield[citetitle]{title}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{condensed}
+% Then, we define |condensed| environment for snippets
+% (|lsstyle| is defined by |letterspace| in |microtype|):
+% \begin{macrocode}
+\newenvironment{condensed}
+ {\begingroup\setstretch{1.0}\lsstyle}
+ {\endgroup}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{microtype}
+% Then, we include |microtype| for better rendering:
+% \begin{macrocode}
+\makeatletter\ifyb@draft\else
+ \RequirePackage[letterspace=-50]{microtype}
+\fi\makeatother
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{libertine}
+% Then, we include |libertine|, for a good looking font:
+% \begin{macrocode}
+\makeatletter\ifyb@manuscript
+ \RequirePackage[tt=false,type1=true]{libertine}
+\fi\makeatother
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\section}
+% Then, we redefine |\section| command:
+% \begin{macrocode}
+\makeatletter
+\let\yb@oldsection\section
+\ifyb@draft
+ \RequirePackage[medium]{titlesec}
+\else
+ \RequirePackage[raggedright]{titlesec}
+ \titlespacing{\section}{0in}{6pt}{6pt}[1in]
+ \renewcommand\section{\newpage\yb@oldsection}
+\fi
+\ifyb@compact
+ \renewcommand\section{\vspace{2em}\yb@oldsection}
+\fi
+\makeatother
+% \end{macrocode}
+% \end{macro}
+
+% Then, if it's a |draft|, we put a watermark comment:
+% \begin{macrocode}
+\makeatletter\ifyb@draft
+\RequirePackage{fancyhdr}
+\pagestyle{fancy}
+\renewcommand\headrulewidth{0pt}
+\renewcommand\footrulewidth{0pt}
+\fancyhf{}
+\fancyhead[L,C,LO,CO]{}
+\fancyhead[R,RO]{
+ \begin{textblock}{4}(11.5,1)\begin{tikzpicture}
+ \node [color=gray, rotate=270,
+ font=\ttfamily\scriptsize, text width=5in] at (0,0) {
+ Copyright \textcopyright{} \the\year{} by \theauthor{}.
+ All rights reserved. No part of the contents of
+ this book may be reproduced or transmitted in any
+ form or by any means without the written permission
+ of the publisher. This particular manuscript is
+ printed for \textbf{\thereviewer}} and may be used only
+ for one-time review. The manuscript has to be destroyed
+ after the review.
+ };
+ \end{tikzpicture}\end{textblock}
+}
+\fancyfoot[C,CO]{\small\ttfamily
+ page \#\thepage{} of \pageref{LastPage}}
+\fi\makeatother
+% \end{macrocode}
+
+% \begin{macro}{\maketitle}
+% Then, we redefine |\maketitle| command:
+% \begin{macrocode}
+\renewcommand\maketitle{
+ {\LARGE\textbf{\thetitle}}
+ \\[1em]
+ by \theauthor{}
+ \\[4em]
+ \ifx\thevolume\empty\else%
+ Volume \thevolume{}\\
+ \fi
+ \ifx\thedate\empty\else%
+ Rendered on \thedate{}
+ \fi
+ \ifx\theversion\empty\else%
+ \\
+ Ver. \theversion{}
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\ybPrintTitlePage}
+% Then, we define |\ybPrintTitlePage| command:
+% \begin{macrocode}
+\makeatletter\newcommand\ybPrintTitlePage{
+ \ifyb@draft\else
+ \begin{titlepage}
+ \ttfamily
+ \vspace*{\fill}
+ \noindent
+ {\Huge\textbf{\thetitle}}
+ \\[1em]
+ by \theauthor{}
+ \\[4em]
+ \ifx\thevolume\empty\else%
+ Volume \thevolume{}\\
+ \fi
+ \ifx\thedate\empty\else%
+ \thedate{}
+ \fi
+ \ifx\thedate\empty\else%
+ \\
+ \theversion{}
+ \fi
+ \vspace*{\fill}
+ \end{titlepage}
+ \fi
+}\makeatother
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\ybPrintTOC}
+% Then, we define |ybPrintTOC| command to print table of contents:
+% \begin{macrocode}
+\makeatletter\newcommand\ybPrintTOC{
+ \ifyb@draft\else
+ \ifyb@compact\else\cleardoublepage\fi
+ {\setstretch{0.7}\tableofcontents}
+ \fi
+}\makeatother
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\ybPrintIndex}
+% Then, we configure |imakeidx| package and define |\ybPrintIndex| command:
+% \begin{macrocode}
+\RequirePackage{imakeidx}
+ \renewbibmacro*{citeindex}{\indexnames{labelname}{}}
+ \makeindex
+ \indexsetup{othercode={\hyphenpenalty=10000}}
+\makeatletter\newcommand\ybPrintIndex[1][Index]{
+ \ifyb@draft\else
+ \cleardoublepage
+ {
+ \setstretch{1.0}
+ \small
+ \addcontentsline{toc}{chapter}{#1}
+ \printindex
+ }
+ \fi
+}\makeatother
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\ybQuote}
+% Then, with the help of |wrapfig| and |mdframed|, we define |\ybQuote| command:
+% \begin{macrocode}
+\RequirePackage{wrapfig}
+\RequirePackage{mdframed}
+\RequirePackage{changepage}
+ \strictpagecheck
+\mdfdefinestyle{quoteodd}{backgroundcolor=black!0,
+ leftmargin=6pt,rightmargin=0pt,
+ innerleftmargin=6pt,innerrightmargin=0pt,
+ innertopmargin=0pt,innerbottommargin=0pt,
+ skipabove=0pt,skipbelow=0pt,
+ linewidth=2pt,
+ topline=false,bottomline=false,rightline=false}
+\mdfdefinestyle{quoteeven}{backgroundcolor=black!0,
+ rightmargin=6pt,leftmargin=0pt,
+ innerrightmargin=6pt,innerleftmargin=0pt,
+ innertopmargin=0pt,innerbottommargin=0pt,
+ skipabove=0pt,skipbelow=0pt,
+ linewidth=2pt,
+ topline=false,bottomline=false,leftline=false}
+\makeatletter\newcommand\ybQuote[3]{%
+ \ifthenelse{\isempty{#3}}{}{
+ \ifx\hfuzz#2\hfuzz%
+ \index{#3}%
+ \else%
+ \index{#3, #2}%
+ \fi%
+ }%
+ \def\yb@body{%
+ \raggedright%
+ \ifx\hfuzz#3\hfuzz%
+ #1%
+ \else%
+ ``#1''\\\raggedleft---#2 #3%
+ \fi%
+ }
+ \ifyb@draft%
+ \begin{wrapfigure}{r}{0.4\textwidth}%
+ \begin{mdframed}[style=quoteodd]%
+ \yb@body%
+ \end{mdframed}%
+ \end{wrapfigure}%
+ \else%
+ \begin{wrapfigure}{o}[12pt]{0.4\textwidth}%
+ \sffamily\checkoddpage%
+ \ifoddpage%
+ \begin{mdframed}[style=quoteodd]\yb@body\end{mdframed}%
+ \else%
+ \begin{mdframed}[style=quoteeven]\yb@body\end{mdframed}%
+ \fi%
+ \vspace{-12pt}
+ \end{wrapfigure}%
+ \fi%
+}\makeatother
+% \end{macrocode}
+% \end{macro}
+
+% Then, we use and configure |footmisc| as suggested
+% \href{https://tex.stackexchange.com/questions/40072/incompatibility-between-footmisc-option-multiple-and-hyperref/62091#62091}{here}:
+% \begin{macrocode}
+\RequirePackage{perpage}
+\RequirePackage[bottom,perpage,multiple]{footmisc}
+\makeatletter
+ \let\yb@oldfootnote\footnote
+\newcommand\yb@nexttoken\relax
+\newcommand\yb@isfootnote{%
+ \ifx\footnote\yb@nexttoken\textsuperscript{,}\fi}
+\renewcommand\footnote[1]{%
+ \yb@oldfootnote{#1}\futurelet\yb@nexttoken\yb@isfootnote}
+\makeatother
+% \end{macrocode}
+
+% \begin{macro}{\ybPrintBibliography}
+% Then, we define |\ybPrintBibliography|, to print a list of references:
+% \begin{macrocode}
+\makeatletter\newcommand\ybPrintBibliography{%
+ \AtNextBibliography{\small}%
+ \raggedright%
+ \ifyb@manuscript%
+ \setlength\bibitemsep{0pt}%
+ \newpage%
+ \begin{multicols}{2}
+ {\setstretch{1.0}\printbibliography}
+ \end{multicols}
+ \else
+ \printbibliography
+ \fi
+}\makeatother
+% \end{macrocode}
+% \end{macro}
+
+% Then, a few layout configurations at the beginning of the document:
+% \begin{macrocode}
+\AtBeginDocument{%
+ \raggedbottom%
+ \setlength\topskip{0mm}%
+ \setlength\parindent{0pt}%
+ \setlength\fboxsep{0pt}%
+ \setlength\parskip{6pt}%
+ \interfootnotelinepenalty=10000%
+}
+% \end{macrocode}
+
+% Finally, a few meta commands with default values:
+% \begin{macrocode}
+\newcommand*\thetitle{\textbackslash{}thetitle}
+\newcommand*\thevolume{}
+\newcommand*\thedate{}
+\newcommand*\theversion{\textbackslash{}theversion}
+\newcommand*\theauthor{\textbackslash{}theauthor}
+\newcommand*\thereviewer{\textbackslash{}thereviewer}
+% \end{macrocode}
+
+% \Finale
+
+%\clearpage
+%
+%\PrintChanges
+%\clearpage
+%\PrintIndex
diff --git a/macros/latex/contrib/yb-book/yb-book.ins b/macros/latex/contrib/yb-book/yb-book.ins
new file mode 100644
index 0000000000..a84a03f901
--- /dev/null
+++ b/macros/latex/contrib/yb-book/yb-book.ins
@@ -0,0 +1,55 @@
+%% (The MIT License)
+%%
+%% Copyright (c) 2021-2022 Yegor Bugayenko
+%%
+%% Permission is hereby granted, free of charge, to any person obtaining a copy
+%% of this software and associated documentation files (the 'Software'), to deal
+%% in the Software without restriction, including without limitation the rights
+%% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+%% copies of the Software, and to permit persons to whom the Software is
+%% furnished to do so, subject to the following conditions:
+%%
+%% The above copyright notice and this permission notice shall be included in all
+%% copies or substantial portions of the Software.
+%%
+%% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+%% SOFTWARE.
+
+\input docstrip.tex
+\keepsilent
+\usedir{macros/latex/contrib/yb-book}
+\preamble
+(The MIT License)
+
+Copyright (c) 2021-2022 Yegor Bugayenko
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the 'Software'), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+\endpreamble
+\generate{\file{yb-book.cls}{\from{yb-book.dtx}{class}}}
+\obeyspaces
+\Msg{*** To finish the installation you have to move the ".cls"}
+\Msg{*** file into a directory searched by TeX. To produce the}
+\Msg{*** documentation run the file ".dtx" through LaTeX. If any}
+\Msg{*** questions, submit a new GitHub issue.}
+\endbatchfile
diff --git a/macros/latex/contrib/yb-book/yb-book.pdf b/macros/latex/contrib/yb-book/yb-book.pdf
index cde5f931f5..fa56f44647 100644
--- a/macros/latex/contrib/yb-book/yb-book.pdf
+++ b/macros/latex/contrib/yb-book/yb-book.pdf
Binary files differ
diff --git a/macros/latex/contrib/yb-book/yb-book.tex b/macros/latex/contrib/yb-book/yb-book.tex
deleted file mode 100644
index 0937552058..0000000000
--- a/macros/latex/contrib/yb-book/yb-book.tex
+++ /dev/null
@@ -1,79 +0,0 @@
-% (The MIT License)
-%
-% Copyright (c) 2021-2022 Yegor Bugayenko
-%
-% Permission is hereby granted, free of charge, to any person obtaining a copy
-% of this software and associated documentation files (the 'Software'), to deal
-% in the Software without restriction, including without limitation the rights
-% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-% copies of the Software, and to permit persons to whom the Software is
-% furnished to do so, subject to the following conditions:
-%
-% The above copyright notice and this permission notice shall be included in all
-% copies or substantial portions of the Software.
-%
-% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-% SOFTWARE.
-
-\documentclass[compact,manuscript]{./yb-book}
-\usepackage{ffcode}
-\usepackage{href-ul}
-\renewcommand*\theversion{0.1.0}
-\renewcommand*\thedate{2022/01/03}
-\renewcommand*\thetitle{\LaTeX{} Class \ff{yb-book}}
-\renewcommand*\theauthor{Yegor Bugayenko}
-
-\begin{document}
-
-\includegraphics[height=6em]{yb-book-logo.pdf}
-\vspace*{24pt}
-
-\maketitle
-
-\index{Amazon}
-The provided class \ff{yb-book} helps me design
-\href{https://www.yegor256.com/books.html}{my books} and
-publish them
-\href{https://www.amazon.com/Yegor-Bugayenko/e/B01AM1QMDK}{on Amazon}.
-
-There are a few class options you can use:
-
-\ff{compact} --- when you need to make text more compact
-and take less vertical space;
-
-\ff{manuscript} --- when the format is not for Amazon printing,
-but for some other purposes (the page size is A4), like the document
-you are reading right now;
-
-\ff{draft} --- when it's a draft for reviewers (the page size is A4)
-and you want to have a watermark and a compact form of the content;
-
-\section*{Printers}
-
-There are a number of printers, commands that print large blocks of text
-in the expected format:
-
-\ff{\textbackslash{}ybPrintTitlePage} --- prints the first page of a book.
-
-\ff{\textbackslash{}ybPrintTOC} --- prints the table of contents.
-
-\ff{\textbackslash{}ybQuote} --- prints a side quote.
-
-\ff{\textbackslash{}ybPrintBibliography} --- prints the list of bib references.
-
-\ff{\textbackslash{}ybPrintIcons} --- prints your social icons.
-
-\ff{\textbackslash{}ybPrintIndex[1]} --- prints index with an optional name of the section (instead of ``Index'').
-
-For more samples, check the directory \ff{samples/}.
-
-You are welcome to suggest additional commands, but the style
-of my books is intentionally as simple as possible, avoiding formatting
-as much as possible.
-
-\end{document} \ No newline at end of file
diff --git a/macros/luatex/generic/luatexja/README b/macros/luatex/generic/luatexja/README
index 6cca0c1099..991944f078 100644
--- a/macros/luatex/generic/luatexja/README
+++ b/macros/luatex/generic/luatexja/README
@@ -1,4 +1,4 @@
-The LuaTeX-ja Package 20220810.0
+The LuaTeX-ja Package 20221002.0
--------------------------------
Copyright (c) 2011--2022 The LuaTeX-ja project
License: modified BSD (see COPYING)
@@ -42,9 +42,9 @@ Installation
2. If you must/want to install manually:
a. Download the source archive from CTAN,
- or tagged as 20220810.0 in the Git repository by
+ or tagged as 20221002.0 in the Git repository by
<http://git.osdn.jp/view?p=luatex-ja/luatexja.git
- ;a=snapshot;h=refs/tags/20220810.0;sf=tgz>
+ ;a=snapshot;h=refs/tags/20221002.0;sf=tgz>
b. Extract the archive and process following three files by LuaLaTeX
to generate classes for Japanese typesetting:
@@ -93,4 +93,4 @@ Notes
This file and ltj-kinsoku.lua are not used anymore.
(Do not remove ltj-kinsoku.tex.)
-Last commit date: Wed Aug 10 11:32:01 2022 +0900
+Last commit date: Sun Oct 2 18:14:22 2022 +0900
diff --git a/macros/luatex/generic/luatexja/doc/ltjclasses.pdf b/macros/luatex/generic/luatexja/doc/ltjclasses.pdf
index f5fe3bec34..a31ce7daa3 100644
--- a/macros/luatex/generic/luatexja/doc/ltjclasses.pdf
+++ b/macros/luatex/generic/luatexja/doc/ltjclasses.pdf
Binary files differ
diff --git a/macros/luatex/generic/luatexja/doc/ltjsclasses.pdf b/macros/luatex/generic/luatexja/doc/ltjsclasses.pdf
index 08d50b5018..786e01afa5 100644
--- a/macros/luatex/generic/luatexja/doc/ltjsclasses.pdf
+++ b/macros/luatex/generic/luatexja/doc/ltjsclasses.pdf
Binary files differ
diff --git a/macros/luatex/generic/luatexja/doc/luatexja-en.pdf b/macros/luatex/generic/luatexja/doc/luatexja-en.pdf
index 4ec7df2004..abf8ee0061 100644
--- a/macros/luatex/generic/luatexja/doc/luatexja-en.pdf
+++ b/macros/luatex/generic/luatexja/doc/luatexja-en.pdf
Binary files differ
diff --git a/macros/luatex/generic/luatexja/doc/luatexja-ja.pdf b/macros/luatex/generic/luatexja/doc/luatexja-ja.pdf
index 8742f56b0a..557c8ec433 100644
--- a/macros/luatex/generic/luatexja/doc/luatexja-ja.pdf
+++ b/macros/luatex/generic/luatexja/doc/luatexja-ja.pdf
Binary files differ
diff --git a/macros/luatex/generic/luatexja/doc/luatexja.dtx b/macros/luatex/generic/luatexja/doc/luatexja.dtx
index 58f2cc15bd..864306f916 100644
--- a/macros/luatex/generic/luatexja/doc/luatexja.dtx
+++ b/macros/luatex/generic/luatexja/doc/luatexja.dtx
@@ -225,9 +225,7 @@
vscmd=\IVSB
}
-\catcode`\<=13
-\def<#1>{{\normalfont\rmfamily\itshape$\langle$#1\/$\rangle$}}
-\let\LARG=<
+\def\meta#1{{\normalfont\rmfamily\itshape$\langle$#1\/$\rangle$}}
\maketitle
\tableofcontents
@@ -1111,7 +1109,7 @@ By default, the following fonts are used for these two families.
\LaTeX へのパッチを読み込まない.
\texttt{disablejfam}のない状況では,以前と同様に和文文字を数式モード中に
- 直に書くことができる(但し\autoref{para:jachar_in_math}ページの記述も参照).
+ 直に書くことができる(但し\pageref{para:jachar_in_math}ページの記述も参照).
その際には明朝体(\texttt{mc})で出力される.
%</ja>
@@ -1333,13 +1331,13 @@ auto select&\cs{fontencoding}&\cs{fontfamily}&---&---&\cs{usefont}\\
\item \cs{fontfamily}, \cs{fontseries}, \cs{fontshape} は欧文・和文フォント両方の属性を変更しようとする.
もちろん,それらを実際に反映させるには手動で \cs{selectfont} を実行する必要がある.
- なお,\cs{fontshape\{<shape>\}}は常に欧文フォントのシェイプを設定するが,
+ なお,\cs{fontshape\{\meta{shape}\}}は常に欧文フォントのシェイプを設定するが,
もしも現在の和文フォントファミリ・シリーズで要求されたシェイプが利用不能だった場合には,和文フォントのシェイプは変更しない.
詳細は\ref{ssec:nfsspat}節を参照すること.
%</ja>
%<*en>
-\item \verb+\fontencoding{+<encoding>\verb+}+ changes the encoding of alphabetic fonts
+\item \verb+\fontencoding{+\meta{encoding}\verb+}+ changes the encoding of alphabetic fonts
or Japanese fonts depending on the argument. For example,
\verb+\fontencoding{JY3}+ changes the encoding of Japanese fonts to
\texttt{JY3}, and \verb+\fontencoding{T1}+ changes the encoding of
@@ -1349,7 +1347,7 @@ auto select&\cs{fontencoding}&\cs{fontfamily}&---&---&\cs{usefont}\\
For the detail, see Subsection~\ref{ssec:nfsspat}.
%</en>
%<*ja>
-\item ここで,\cs{fontencoding\{<encoding>\}}は,引数により和文側か欧文
+\item ここで,\cs{fontencoding\{\meta{encoding}\}}は,引数により和文側か欧文
側かのどちらかのエンコーディングを変更する.例えば,
\verb+\fontencoding{JY3}+ は和文フォントのエンコーディングを
\texttt{JY3}に変更し,\verb+\fontencoding{T1}+ は欧文フォント側を
@@ -1469,7 +1467,7 @@ this chapter. For the method, please see Subsection~\ref{ssec:math}.
To use the functionality of the \Pkg{fontspec} package to Japanese fonts,
it is needed to load the \Pkg{luatexja-fontspec} package in the preamble, as follows:
\begin{quote}
-\ttfamily \textbackslash usepackage[<options>]\{luatexja-fontspec\}
+\ttfamily \textbackslash usepackage[\meta{options}]\{luatexja-fontspec\}
\end{quote}
This \Pkg{luatexja-fontspec} package
automatically loads \Pkg{luatexja} and \Pkg{fontspec}
@@ -1485,7 +1483,7 @@ TrueType・OpenTypeフォントを容易に扱うためのパッケージであ
\LuaTeX-ja上において,\Pkg{fontspec}パッケージと同様の機能を和文フォントに対しても用いる場
合は\Pkg{luatexja-fontspec}パッケージを読み込む:
\begin{quote}
-\ttfamily \textbackslash usepackage[<options>]\{luatexja-fontspec\}
+\ttfamily \textbackslash usepackage[\meta{options}]\{luatexja-fontspec\}
\end{quote}
このパッケージは自動で\Pkg{luatexja}パッケージと\Pkg{fontspec}パッケージを読み込む.
%</ja>
@@ -1566,11 +1564,11 @@ If this option is specified, usual family-changing commands such as
欧文フォントだけでなく和文フォントも変更するようになる.
%</ja>
- \item[pass=<opts>]
-%<en> \emph{(Obsoleted)}\ Specify options <opts> which will be passed to the \Pkg{fontspec} package.
-%<ja> \Pkg{fontspec} パッケージに渡すオプション <opts> を指定する.本オプションは時代遅れである.
+ \item[pass=\meta{options}]
+%<en> \emph{(Obsoleted)}\ Specify options \meta{options} which will be passed to the \Pkg{fontspec} package.
+%<ja> \Pkg{fontspec} パッケージに渡すオプション \meta{options} を指定する.本オプションは時代遅れである.
-\item[scale=<float>]
+\item[scale=\meta{float}]
%<*en>
Override the ratio of the font size of Japanese fonts to that of alphabetic fonts.
The default value is determined as follows:
@@ -2439,56 +2437,58 @@ becuse a \emph{JAchar} is encapsulated by a horizontal box if needed.
\paragraph{数式における挙動:\pTeX との違い}
\textbf{ALchar}のベースラインを補正する\Param{yalbaselineshift}, \Param{talbaselineshift}パラメータは
ほぼ\pTeX における \cs{ybaselineshift}, \cs{tbaselineshift} に対応しているものであるが,
-数式中の挙動は異なっているので注意が必要である.
-例えば,\autoref{tab:math_bsa}のように,数式中に明示的に現れた \cs{hbox},~\cs{vbox} は,横組において
+数式中の挙動は異なっているので注意が必要である(\autoref{tab:math_bsa}参照).
\begin{itemize}
- \item 2015年以前の\pTeX では,ボックス全体が \cs{ybaselineshift} だとシフトされるので,
- \autoref{tab:math_bsa}中の``い''のように,ボックス中の和文文字は
- \ \cs{ybaselineshift} だけシフトされ,一方,``for all''のように,
- ボックス内の欧文文字は2重にシフトされることになる.
- \item 一方,\LuaTeX-jaではそのようなことはおこらず,
- 数式中に明示的に現れた \cs{hbox},~\cs{vbox} はシフトしない.そのため,
- \autoref{tab:math_bsa}中の``い''も``for all''も,それぞれ本文中に
- 書かれたときと同じ上下位置に組まれる.
-
- なお,\TeX~Live~2016以降の\pTeX では改修がなされ,\LuaTeX-jaと
- 近い挙動になるようにしているが,数式中に直に書かれた``あ''のベースラインについては
- まだ違いが見られる.
+ \item バージョン20221002.0以降では,
+ \pTeX~4.0.0と同様に数式が\Param{yalbaselineshift}だけシフトされる.
+
+ しかしそれでは数式中に直に書かれた\cs{hbox},~\cs{vbox}中の欧文には
+ \Param{yalbaselineshift}が二重に適用されることになるので,
+ 数式中に直に書かれた\cs{hbox},~\cs{vbox}には
+ \Param{yalbaselineshift}を打ち消す補正をしている.
+
+ なお,\cs{vcenter}によるボックスにはこの「打ち消す補正」は行われないので注意.
+\item \pTeX では数式のスタイルごとに「打ち消す補正」の割合を\cs{textbaselineshiftfactor},
+ \cs{scriptbaselineshiftfactor}, \cs{scriptscriptbaselineshiftfactor}で
+ 指定できるようにしたが,\LuaTeX-jaでは2番の数式ファミリ(\cs{fam2})に使われているフォントの
+ 大きさから自動で計算する.
+
+\item 数式中に直に書かれた和文文字(\autoref{tab:math_bsa}中の``あ'')については
+ \pTeX と\LuaTeX-jaで違いが見られる.
+ \pTeX では,欧文文字と変わらず欧文ベースライン補正(\cs{ybaselineshift})がかかり,
+ また周囲に和欧文間空白(\cs{xkanjiskip})が入りうる.
+ その一方,\LuaTeX-jaでは「和文ベースライン補正(\Param{yjabaselineshift})がかかる」見た目に
+ なり,また周囲に和欧文間空白は入らない.
\end{itemize}
-
-なお,バージョン20170401.0以降の\LuaTeX-jaでは,\cs{vcenter} によるボックスには
-全体が\Param{yalbaselineshift}, \Param{talbaselineshift} パラメータが反映されるようにしている.
-その方が結果が自然であることによる変更なのだが,結果的に\cs{vcenter} については\pTeX と同じ挙動となった.
-
\begin{table}
\small\centering
\caption{数式関係のベースライン補正($\Param{yalbaselineshift}=10\,\textrm{pt}$)}
\label{tab:math_bsa}
\newdimen\origbaselineskip
\origbaselineskip=\baselineskip
-\begin{tabular}{lp{30\zw}}
+\begin{tabular}{lp{35\zw}}
\toprule
\emph{入力}&\vspace*{\dimexpr-\origbaselineskip-\smallskipamount}
\begin{lstlisting}
数式abc: $あa\hbox{い}$, $\int_0^x t\,dt=x^2/2$,
-$\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
+$\Phi\vdash F(x)\ \hbox{for all}\ x\in A$,
+$\sqrt{A}-\underline{X}+\frac{あ3}{2あ}-\vcenter{\hbox{aお}}$
\end{lstlisting}\\
\noalign{\vskip-\origbaselineskip}
\midrule
-\emph{\pTeX~(--2015)}&
-{\ltjsetparameter{yalbaselineshift=10pt}%
-数式abc: $\lower10pt\hbox{あ}a\lower10pt\hbox{い}$, $\int_0^x t\,dt=x^2/2$,
-$\Phi\vdash F(x)\ \lower10pt\hbox{for all}\ x\in A$
-\par}\\\noalign{\vskip-\origbaselineskip}\midrule
-\emph{\pTeX~(2016--)}&
+\emph{\pTeX~(p4.0.0)}&
{\ltjsetparameter{yalbaselineshift=10pt}%
-数式abc: $\lower10pt\hbox{あ}a\hbox{い}$, $\int_0^x t\,dt=x^2/2$,
+\protected\def\>{\hskip\ltjgetparameter{xkanjiskip}}
+数式abc: $\lower10pt\hbox{あ}\>a\hbox{い}$, $\int_0^x t\,dt=x^2/2$,
$\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
+$\sqrt{A}-\underline{X}
+ +\frac{\lower10pt\hbox{\scalebox{0.7}{あ}}\>3}{2\>\lower10pt\hbox{\scalebox{0.7}{あ}}}-\vcenter{\hbox{aお}}$
\par}\\\noalign{\vskip-\origbaselineskip}\midrule
\emph{\LuaTeX-ja}&
{\ltjsetparameter{yalbaselineshift=10pt}%
数式abc: $あa\hbox{い}$, $\int_0^x t\,dt=x^2/2$,
-$\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
+$\Phi\vdash F(x)\ \hbox{for all}\ x\in A$,
+$\sqrt{A}-\underline{X}+\frac{あ\>3}{2あ}-\vcenter{\hbox{aお}}$
\par}\\
\noalign{\vskip-\origbaselineskip}
\bottomrule
@@ -3157,9 +3157,9 @@ To access box dimensions \emph{with respect to current direction},
one have to use the following commands instead of \cs{wd} wtc.
\begin{cslist}
- \item[\cs{ltjgetwd}<num>\textrm{, }\cs{ltjgetht}<num>\textrm{, }%
- \cs{ltjgetdp}<num>]
-These commands return \emph{an internal dimension} of \cs{box<num>} with respect to
+ \item[\cs{ltjgetwd}\meta{num}\textrm{, }\cs{ltjgetht}\meta{num}\textrm{, }%
+ \cs{ltjgetdp}\meta{num}]
+These commands return \emph{an internal dimension} of \cs{box\meta{num}} with respect to
the current direction. One can use these in \cs{dimexpr} primitive, as the followings.
\begin{lstlisting}
\dimexpr 2\ltjgetwd42-3pt\relax, \the\ltjgetwd1701
@@ -3180,10 +3180,10 @@ The following is an example.
\the\ltjgetht32767, \\ \the\ltjgetdp32767.}
\end{LTXexample}
- \item[\cs{ltjsetwd}<num>=<dimen>\textrm{, }\cs{ltjsetht}<num>=<dimen>\textrm{, }%
- \cs{ltjsetdp}<num>=<dimen>]
-These commands set the dimension of \cs{box<num>}. One does not need
- to group the argument <num>; four calls of \cs{ltjsetwd} below have the same meaning.
+ \item[\cs{ltjsetwd}\meta{num}=\meta{dimen}\textrm{, }\cs{ltjsetht}\meta{num}=\meta{dimen}\textrm{, }%
+ \cs{ltjsetdp}\meta{num}=\meta{dimen}]
+These commands set the dimension of \cs{box\meta{num}}. One does not need
+ to group the argument \meta{num}; four calls of \cs{ltjsetwd} below have the same meaning.
\begin{lstlisting}
\ltjsetwd42 20pt, \ltjsetwd42=20pt, \ltjsetwd=42 20pt, \ltjsetwd=42=20pt
\end{lstlisting}
@@ -3192,7 +3192,7 @@ These commands set the dimension of \cs{box<num>}. One does not need
%</en>
%<*ja>
\paragraph{\cs{wd} 達と組方向}
-ボックスレジスタ \cs{box}<num> にセットされているボックスの幅・高さ・深さの取得や
+ボックスレジスタ \cs{box}\meta{num} にセットされているボックスの幅・高さ・深さの取得や
変更にはそれぞれ \cs{wd},~\cs{ht},~\cs{dp} プリミティブを用いるのであった.
\pTeX ではこれらのプリミティブは,「現在の組方向におけるボックスの寸法」を指すもので,
同じボックスに対しても現在の組方向によって返る値は異なるものであった.
@@ -3214,13 +3214,13 @@ These commands set the dimension of \cs{box<num>}. One does not need
\begin{cslist}
- \item[\cs{ltjgetwd}<num>\textrm{, }\cs{ltjgetht}<num>\textrm{, }%
- \cs{ltjgetdp}<num>]
+ \item[\cs{ltjgetwd}\meta{num}\textrm{, }\cs{ltjgetht}\meta{num}\textrm{, }%
+ \cs{ltjgetdp}\meta{num}]
現在の組方向に応じたボックスの寸法の取得を行う.結果は内部長さであるため,
\begin{lstlisting}
\dimexpr 2\ltjgetwd42-3pt\relax, \the\ltjgetwd1701
\end{lstlisting}
-のように \cs{wd}<num> の代わりとして扱うことができる.
+のように \cs{wd}\meta{num} の代わりとして扱うことができる.
使用例は以下の通りである.
\begin{LTXexample}[width=0.3\textwidth]
\parindent0pt
@@ -3237,8 +3237,8 @@ These commands set the dimension of \cs{box<num>}. One does not need
\the\ltjgetht32767, \\ \the\ltjgetdp32767.}
\end{LTXexample}
- \item[\cs{ltjsetwd}<num>=<dimen>\textrm{, }\cs{ltjsetht}<num>=<dimen>\textrm{, }%
- \cs{ltjsetdp}<num>=<dimen>]
+ \item[\cs{ltjsetwd}\meta{num}=\meta{dimen}\textrm{, }\cs{ltjsetht}\meta{num}=\meta{dimen}\textrm{, }%
+ \cs{ltjsetdp}\meta{num}=\meta{dimen}]
現在の組方向に応じたボックスの寸法の設定を行う.\cs{afterassignment} を2回利用して
実装しているので,次の4通りは全て同じ意味である.
\begin{lstlisting}
@@ -3255,8 +3255,8 @@ These commands set the dimension of \cs{box<num>}. One does not need
%<*en>
\subsection{Getting current direction}
The \Param{direction} parameter returns the current direction, and
-the \Param{boxdir} parameter (with the argument <num>)
-returns the direction of a box register \cs{box}<num>.
+the \Param{boxdir} parameter (with the argument \meta{num})
+returns the direction of a box register \cs{box}\meta{num}.
The returned value of these parameters are a \emph{string}:
\begin{center}
\small
@@ -3279,15 +3279,15 @@ Returned value&\texttt{4}&\texttt{3}&\texttt{1}&\texttt{11}&\texttt{0}\\
%</en>
%<*ja>
\subsection{組方向の取得}
-「現在の組方向」や「<num>番のボックスの組方向」は,
-\pTeX では \cs{ifydir} や \cs{ifybox}<num> といった条件判断文を使って
+「現在の組方向」や「\meta{num}番のボックスの組方向」は,
+\pTeX では \cs{ifydir} や \cs{ifybox}\meta{num} といった条件判断文を使って
判断することができた.
しかし,\LuaTeX-jaはあくまでも\TeX マクロとLuaコードで
記述されており,それでは新たな条件判断命令を作るのは難しい.
\LuaTeX-jaでは,\Param{direction}パラメータで現在の組方向を,
-\Param{boxdir}パラメータ(と追加の引数<num>)によって
-\cs{box}<num>の組方向をそれぞれ取得できるようにした.
+\Param{boxdir}パラメータ(と追加の引数\meta{num})によって
+\cs{box}\meta{num}の組方向をそれぞれ取得できるようにした.
戻り値は文字列である:
\begin{center}
\small
@@ -3330,18 +3330,18 @@ The following primitives are redefined by \LuaTeX-ja (using~\verb+\protected\def
for supporting Japanese typesetting and multiple directions:
\begin{cslist}[style=standard]
\item[\cs{/}]
- \item[\cs{unhbox}<num>\textrm{, }\cs{unvbox}<num>\textrm{, }\cs{unhcopy}<num>\textrm{, }\cs{unvcopy}<num>]
- \item[\cs{vadjust}\{<material>\}]
- \item[\cs{insert}<number>\{<material>\}]
+ \item[\cs{unhbox}\meta{num}\textrm{, }\cs{unvbox}\meta{num}\textrm{, }\cs{unhcopy}\meta{num}\textrm{, }\cs{unvcopy}\meta{num}]
+ \item[\cs{vadjust}\{\meta{material}\}]
+ \item[\cs{insert}\meta{number}\{\meta{material}\}]
\item[\cs{lastbox}]
- \item[\cs{raise}<dimen><box>\textrm{, }\cs{lower}<dimen><box>\textrm{, }
- \cs{moveleft}<dimen><box>\textrm{, }\cs{moveright}<dimen><box>\textrm{, }]
- \item[\cs{split}<number>to<dimen>\textrm{, }\cs{vcenter}\{<material>\}]
+ \item[\cs{raise}\meta{dimen}\meta{box}\textrm{, }\cs{lower}\meta{dimen}\meta{box}\textrm{, }
+ \cs{moveleft}\meta{dimen}\meta{box}\textrm{, }\cs{moveright}\meta{dimen}\meta{box}\textrm{, }]
+ \item[\cs{split}\meta{number}to\meta{dimen}\textrm{, }\cs{vcenter}\{\meta{material}\}]
\end{cslist}
-On each primitive \cs{<primitive>} in the list above,
-its meaning just before loading \LuaTeX-ja is backed up into \cs{ltj@@orig@<primitive>},
-and the meaning after redefinition by \LuaTeX-ja is stored in \cs{ltj@@<primitive>}.
+On each primitive \cs{\meta{primitive}} in the list above,
+its meaning just before loading \LuaTeX-ja is backed up into \cs{ltj@@orig@\meta{primitive}},
+and the meaning after redefinition by \LuaTeX-ja is stored in \cs{ltj@@\meta{primitive}}.
For example, \autoref{fig:primitive_meaning} shows the situation of \cs{vadjust} primitive.
%</en>
%<*ja>
@@ -3352,29 +3352,29 @@ For example, \autoref{fig:primitive_meaning} shows the situation of \cs{vadjust}
\begin{cslist}
\item[\cs{/}]
和文フォントに対するイタリック補正のサポートが追加されている.
- \item[\cs{unhbox}<number>\textrm{, }\cs{unvbox}<number>\textrm{, }\cs{unhcopy}<number>\textrm{, }\cs{unvcopy}<number>]
+ \item[\cs{unhbox}\meta{number}\textrm{, }\cs{unvbox}\meta{number}\textrm{, }\cs{unhcopy}\meta{number}\textrm{, }\cs{unvcopy}\meta{number}]
ボックスの組方向が現在のリストと異なる場合は事前にエラーメッセージを出力する.
\pTeX と異なり,エラーを無視して無理矢理 \cs{unhbox}, \cs{unvbox} 等を
続行させることもできるが,その場合の組版結果は保証しない.
- \item[\cs{vadjust}\{<material>\}] 一旦プリミティブ本来の挙動を行う.その後,<material>の組方向が
+ \item[\cs{vadjust}\{\meta{material}\}] 一旦プリミティブ本来の挙動を行う.その後,\meta{material}の組方向が
周囲の垂直リストの組方向と一致しない場合にエラーを出力し,
該当の \cs{vadjust} を無効にする.
- \item[\cs{insert}<number>\{<material>\}]
- 一旦プリミティブ本来の挙動を行い,その後<material>内の各ボックス・罫線の直前に組方向を示
+ \item[\cs{insert}\meta{number}\{\meta{material}\}]
+ 一旦プリミティブ本来の挙動を行い,その後\meta{material}内の各ボックス・罫線の直前に組方向を示
すdirection whatsitを挿入する.
\item[\cs{lastbox}] ボックスの「中身」を現在の組方向に合わせるためのノード
(\textit{dir\_box}という)を必要ならば除去し,
正しく「中身」のボックスが返されるように前処理をする.
- \item[\cs{raise}<dimen><box>\textrm{, }\cs{lower}<dimen><box>\textrm{, }
- \cs{moveleft}<dimen><box>\textrm{, }\cs{moveright}<dimen><box>\textrm{, }]
+ \item[\cs{raise}\meta{dimen}\meta{box}\textrm{, }\cs{lower}\meta{dimen}\meta{box}\textrm{, }
+ \cs{moveleft}\meta{dimen}\meta{box}\textrm{, }\cs{moveright}\meta{dimen}\meta{box}\textrm{, }]
\leavevmode\vspace{-\baselineskip}
- \item[\cs{split}<number>to<dimen>\textrm{, }\cs{vcenter}\{<material>\}]
+ \item[\cs{split}\meta{number}to\meta{dimen}\textrm{, }\cs{vcenter}\{\meta{material}\}]
これらのプリミティブについては必要に応じて\textit{dir\_box}を作成する前処理を追加している.
\end{cslist}
-上記の一覧中にあるプリミティブ\cs{<primitive>}については,
-\LuaTeX-ja読み込み前の意味が\cs{ltj@@orig@<primitive>}に,
-そして\LuaTeX-jaによる再定義後の意味が\cs{ltj@@<primitive>}に保存される.
+上記の一覧中にあるプリミティブ\cs{\meta{primitive}}については,
+\LuaTeX-ja読み込み前の意味が\cs{ltj@@orig@\meta{primitive}}に,
+そして\LuaTeX-jaによる再定義後の意味が\cs{ltj@@\meta{primitive}}に保存される.
例えば,\cs{vadjust}については\autoref{fig:primitive_meaning}のようになっている.
%</ja>
\begin{figure}
@@ -3487,13 +3487,13 @@ Note that the defined control sequence
\textit{font\_def} token, but a macro.
Hence the input like \verb+\fontname\tradmc+
causes a error. We denote control sequences which are defined in
-\cs{jfont} by <jfont\_cs>.
+\cs{jfont} by \meta{jfont\_cs}.
%</en>
%<*ja>
なお,\cs{jfont} で定義された制御綴(上の例だと \cs{tradmc})
は\textit{font\_def}トークンではなくマクロである.従って,\verb+\fontname\tradmc+のような
入力はエラーとなる.以下では \cs{jfont} で定義された
-制御綴を<jfont\_cs>で表す.
+制御綴を\meta{jfont\_cs}で表す.
%</ja>
%<en>\paragraph{Specifying JFM}
@@ -3501,8 +3501,8 @@ causes a error. We denote control sequences which are defined in
%<en> The general scheme for specifying a JFM is the following:
%<ja> JFMの一般的な指定は次のようになっている:
\begin{quote}
- \cs{jfont}<jfont\_cs>\texttt{=...;jfm=}<JFM name>[\texttt{/\{}<JFM features>\texttt{\}}]%
- \texttt{;...;}[\texttt{jfmvar=}<identifier>]\texttt{;...}
+ \cs{jfont}\meta{jfont\_cs}\texttt{=...;jfm=}\meta{JFM name}[\texttt{/\{}\meta{JFM features}\texttt{\}}]%
+ \texttt{;...;}[\texttt{jfmvar=}\meta{identifier}]\texttt{;...}
\end{quote}
\begin{figure}
@@ -3525,21 +3525,21 @@ causes a error. We denote control sequences which are defined in
%<*en>
\begin{description}
-\item[<JFM name>]
- The name of a (horizontal) JFM. \LuaTeX-ja searches and loads \texttt{jfm-<JFM name>.lua}.
-\item[<JFM features>]
+\item[\meta{JFM name}]
+ The name of a (horizontal) JFM. \LuaTeX-ja searches and loads \texttt{jfm-\meta{JFM name}.lua}.
+\item[\meta{JFM features}]
An optional comma-separated list of JFM options.
Enclosing braces (\verb+{}+) are optional, but this does not escape any characters.
The contents of this list can be accessed by a table \texttt{luatexja.jfont.jfm\_feature}
from a JFM, at its loading. See \autoref{fig:jfmfeat} for an example.
Note that any JFM files which is shipped with \LuaTeX-ja does not use this feature.
-\item[<identifier>]
+\item[\meta{identifier}]
An optional string.
\end{description}
LuaTeX-ja ``does not distinguish'' two Japanese fonts which uses same JFM and are the same size.
-Here ``uses same JFM'' means that all~of <JFM name>, <JFM features>~and~<identifier> of two fonts
+Here ``uses same JFM'' means that all~of \meta{JFM name}, \meta{JFM features}~and~\meta{identifier} of two fonts
agree.
For example, The first ``)'' and ``【'' in \autoref{fig:jfmvar} are typeset in different real fonts.
@@ -3547,35 +3547,35 @@ However, because they use the same JFMs and their size are same,
\LuaTeX-ja inserts penalties, glues and kerns as if these two character are typeset in a same font.
Namely, the glue between these characters is halfwidth, as in ``)\nobreak【''.
However, this does not applies with \cs{F}~and~\cs{H} in \autoref{fig:jfmvar},
-because their <identifier> are different.
+because their \meta{identifier} are different.
%</en>
%<*ja>
\begin{description}
-\item[<JFM name>]
- (横組用)JFMの名称.\LuaTeX-jaは\texttt{jfm-<JFM name>.lua}というファイルを探索して読み込む.
-\item[<JFM features>]
+\item[\meta{JFM name}]
+ (横組用)JFMの名称.\LuaTeX-jaは\texttt{jfm-\meta{JFM name}.lua}というファイルを探索して読み込む.
+\item[\meta{JFM features}]
省略可能なコンマ区切りリスト.全体を囲む \verb+{}+ は省略可能であるが,
- 囲ったからといって<JFM features>の中で使用可能な文字が増えるわけではない.
- <JFM features>で指定された内容は,テーブル\texttt{luatexja.jfont.jfm\_feature}として
+ 囲ったからといって\meta{JFM features}の中で使用可能な文字が増えるわけではない.
+ \meta{JFM features}で指定された内容は,テーブル\texttt{luatexja.jfont.jfm\_feature}として
JFM読み込み時に(JFMから)アクセス可能である.\autoref{fig:jfmfeat}に使用例を載せた.
なお,\LuaTeX-jaが標準で提供するJFMではこの機能は用いられていない.
-\item[<identifier>]
+\item[\meta{identifier}]
省略可能な文字列.
\end{description}
\LuaTeX-jaはJFMとサイズが同じで,
実フォントだけが異なる2つの和文フォントは「区別されない」.
-ここで「JFMが同じ」とは,両フォントの<JFM name>, <JFM features>, <identifier>が
+ここで「JFMが同じ」とは,両フォントの\meta{JFM name}, \meta{JFM features}, \meta{identifier}が
全て一致することである.
例えば\autoref{fig:jfmvar}において,最初の「)」と「【」の実フォントは異なるが,
JFMもサイズも同じなので,普通に「)\nobreak【」と入力した時と同じように組まれる,つまり両文字の間は半角空きとなる.
-しかし,JFMとサイズが同じであっても,\texttt{jfmvar}キーの値<identifier>の異なる
-2つの和文フォント,例えば\autoref{fig:jfmvar}で言う \cs{F} と \cs{H},
-は「区別される」.異なる和文フォントに異なる \texttt{jfmvar} キーを割り当て,
-かつ\Param{differentjfm}パラメータを \texttt{both} に設定すれば,
+しかし,JFMとサイズが同じであっても,\texttt{jfmvar}キーの値\meta{identifier}の異なる
+2つの和文フォント,例えば\autoref{fig:jfmvar}で言う\cs{F}と\cs{H},
+は「区別される」.異なる和文フォントに異なる \texttt{jfmvar}キーを割り当て,
+かつ\Param{differentjfm}パラメータを\texttt{both}に設定すれば,
\pTeX と似た状況で組版されることになる.
%</ja>
@@ -3823,8 +3823,8 @@ This means the following two lines have the same meaning:
\paragraph{\texttt{extend}と\texttt{slant}}
OpenType機能と見かけ上同じような形式で指定できるものに,
\begin{description}
-\item[\texttt{extend=}<extend>] 横方向に<extend>倍拡大する.
-\item[\texttt{slant=}<slant>] <slant>に指定された割合だけ傾ける.
+\item[\texttt{extend=}\meta{extend}] 横方向に\meta{extend}倍拡大する.
+\item[\texttt{slant=}\meta{slant}] \meta{slant}に指定された割合だけ傾ける.
\end{description}
の2つがある.
\texttt{extend}や\texttt{slant}を指定した場合は,それに応じたJFMを指定すべきである%
@@ -3836,8 +3836,8 @@ OpenType機能と見かけ上同じような形式で指定できるものに,
\paragraph{\texttt{extend} and \texttt{slant}}
The following setting can be specified as OpenType font features:
\begin{cslist}[style=standard]
-\item[\texttt{extend=}<extend>] expand the font horizontally by <extend>.
-\item[\texttt{slant=}<slant>] slant the font.
+\item[\texttt{extend=}\meta{extend}] expand the font horizontally by \meta{extend}.
+\item[\texttt{slant=}\meta{slant}] slant the font.
\end{cslist}
Note that \LuaTeX-ja doesn't adjust JFMs by these \texttt{extend} and \texttt{slant}
settings; one have to write new JFMs on purpose.
@@ -3897,7 +3897,6 @@ as shown in~\autoref{fig:ltjksp}.
\label{ssec:tfont}
\begin{comment}
- {\catcode`\<=12\catcode`\>=12
\begin{table}[t]
%<en>\caption{Differences between vertical JFMs shipped with \LuaTeX-ja}
%<ja>\caption{\LuaTeX-ja に同梱されている縦組用 JFM の違い}
@@ -3941,7 +3940,6 @@ as shown in~\autoref{fig:ltjksp}.
\end{minipage}
\ltjsetparameter{jacharrange={-3}}
\end{table}
-}
\end{comment}
%<*en>
@@ -4033,7 +4031,7 @@ A font defined by~\cs{tfont} differs the following points from that by~\cs{jfont
\item さらに,「いかなるscript,~languageでも\texttt{vert}により置換されない」グリフ
のうち,UAX~\#50で``r''もしくは``Tr''と指定されているものは90度自動回転させる.
\item \ref{ssec:math}節で述べる,数式中の和文フォントには縦組用和文フォントは指定できない.
- \item <JFM name>には縦組用JFMを指定する.
+ \item \meta{JFM name}には縦組用JFMを指定する.
以下の縦組用JFMが\LuaTeX-jaには同梱されている.%おり,違いを\autoref{tab-difjfm-tate}に示した.
\begin{description}
\item[\texttt{jfm-ujisv.lua}] \LuaTeX-jaの標準縦組用JFMである.このJFMは\upTeX で
@@ -4299,7 +4297,7 @@ floating-point numbers in design-size unit.
\begin{cslist}[style=standard]
-\item[version=<version>]
+\item[version=\meta{version}]
%<en>(optional, default value is~1)
%<ja>(任意,既定値は1)
@@ -4310,7 +4308,7 @@ The version JFM. Currently 1,~2,~and,~3 are supported
JFMのバージョン.1,~2,~3がサポートされる.
%</ja>
-\item[dir=<direction>]
+\item[dir=\meta{direction}]
%<en>(required)
%<ja>(必須)
@@ -4322,7 +4320,7 @@ or \texttt{'tate'}~(vertical) are supported.
JFMの書字方向.\texttt{'yoko'}(横組)と \texttt{'tate'}(縦組)がサポートされる.
%</ja>
-\item[zw=<length>]
+\item[zw=\meta{length}]
%<en>(required)
%<ja>(必須)
@@ -4333,7 +4331,7 @@ JFMの書字方向.\texttt{'yoko'}(横組)と \texttt{'tate'}(縦組)
\LuaTeX-jaではここで指定する.
%</ja>
-\item[zh=<length>]
+\item[zh=\meta{length}]
%<en>(required)
%<ja>(必須)
@@ -4344,7 +4342,7 @@ JFMの書字方向.\texttt{'yoko'}(横組)と \texttt{'tate'}(縦組)
\LuaTeX-jaではここで指定する.
%</ja>
-\item[kanjiskip=\{<natural>, <stretch>, <shrink>\}]
+\item[kanjiskip=\{\meta{natural}, \meta{stretch}, \meta{shrink}\}]
%<en>(optional)
%<ja>(任意)
@@ -4353,17 +4351,17 @@ This field specifies the ``ideal'' amount of \Param{kanjiskip}. As noted
in Subsection~\ref{subs-kskip}, if the parameter
\Param{kanjiskip} is \cs{maxdimen}, the value specified
in this field is actually used (if this field is not specified in
- JFM, it is regarded as 0\,pt). Note that <stretch> and <shrink>
+ JFM, it is regarded as 0\,pt). Note that \meta{stretch} and \meta{shrink}
fields are in design-size unit too.
%</en>
%<*ja>
理想的な\Param{kanjiskip}の量を指定する.\ref{subs-kskip}節で述べたように,
もし\Param{kanjiskip}が \cs{maxdimen} の値ならば,このフィールドで指定された
-値が実際には用いられる(指定なしは0\,ptとして扱われる).<stretch>と<shrink>のフィールドもdesign size
+値が実際には用いられる(指定なしは0\,ptとして扱われる).\meta{stretch}と\meta{shrink}のフィールドもdesign size
が単位であることに注意せよ.
%</ja>
-\item[xkanjiskip=\{<natural>, <stretch>, <shrink>\}]
+\item[xkanjiskip=\{\meta{natural}, \meta{stretch}, \meta{shrink}\}]
%<en>(optional)
%<ja>(任意)
@@ -4396,7 +4394,7 @@ the following fields:
%</ja>
\begin{cslist}[style=standard]
-\item[chars=\{<character>, ...\}]
+\item[chars=\{\meta{character}, ...\}]
%<en>(required except character class~0)
%<ja>(文字クラス0を除いて必須)
@@ -4426,7 +4424,7 @@ This field is a list of characters which are in this character
\end{itemize}
%</ja>
-\item[width=<length>, height=<length>, depth=<length>, italic=<length>]
+\item[width=\meta{length}, height=\meta{length}, depth=\meta{length}, italic=\meta{length}]
%<en>(required)
%<ja>(必須)
@@ -4476,7 +4474,7 @@ JFM書字方向&\emph{\texttt{'yoko'}(横組)}&\multicolumn{1}{l}{\emph{\tex
すれば,これによってプロポーショナル組を行うことができる.
%</ja>
-\item[left=<length>, down=<length>, align=<align>]\
+\item[left=\meta{length}, down=\meta{length}, align=\meta{align}]\
%<*en>
These fields are for adjusting the position of the ``real'' glyph. Legal
@@ -4696,14 +4694,14 @@ Furthermore, the glyph is shifted according to values of fields
\label{fig:pos-tate}
\end{figure}
-\item[kern={\{[$j$]=<kern>, [$j'$]=\{<kern>, [ratio=<ratio>]\}, ...\}}]
+\item[kern={\{[$j$]=\meta{kern}, [$j'$]=\{\meta{kern}, [ratio=\meta{ratio}]\}, ...\}}]
\nopagebreak
-\item[glue={\{[$j$]=\{<width>, <stretch>, <shrink>, [ratio=<ratio>, ...]\}, ...\}}]\leavevmode
+\item[glue={\{[$j$]=\{\meta{width}, \meta{stretch}, \meta{shrink}, [ratio=\meta{ratio}, ...]\}, ...\}}]\leavevmode
%<*ja>
文字クラス$i$の文字と$j$の文字の間に挿入されるカーンやグルーの量を指定する.
-<ratio>は,グルーの自然長のうちどれだけの割合が「後の文字」由来かを示す量で,
+\meta{ratio}は,グルーの自然長のうちどれだけの割合が「後の文字」由来かを示す量で,
$0$から$+1$の実数値をとる.省略時の値は$0.5$である.
このフィールドの値は\Param{differentjfm}の値が
\texttt{pleft},~\texttt{pright},~\texttt{paverage}の値のときのみ実際に用いられる.
@@ -4711,8 +4709,8 @@ $0$から$+1$の実数値をとる.省略時の値は$0.5$である.
例えば,\cite{x4051}では,句点と中点の間には,
句点由来の二分空きと中点由来の四分空きが挿入されるが,この場合には
\begin{itemize}
-\item <width>には$0.5+0.25=0.75$を指定する.
-\item <ratio>には$0.25/(0.5+0.25)=1/3$を指定する.
+\item \meta{width}には$0.5+0.25=0.75$を指定する.
+\item \meta{ratio}には$0.25/(0.5+0.25)=1/3$を指定する.
\end{itemize}
%</ja>
%<*en>
@@ -4721,32 +4719,32 @@ $0$から$+1$の実数値をとる.省略時の値は$0.5$である.
Specifies the amount of kern or glue which will be inserted
between characters in character class~$i$ and those in character class~$j$.
-<ratio> specifies how much the glue is originated in the ``right'' character.
+\meta{ratio} specifies how much the glue is originated in the ``right'' character.
It is a real number between 0 and 1, and treated as 0.5 if omitted. For example,
The width of a glue between an ideographic full stop ``。''
and a fullwidth middle dot ``・'' is three-fourth of fullwidth,
namely halfwidth from the ideographic full stop, and
quarter-width from the fullwidth middle dot. In this case,
-we specify <ratio> to $0.25/(0.5+0.25)=1/3$.
+we specify \meta{ratio} to $0.25/(0.5+0.25)=1/3$.
%</en>
%<*ja>
グルーの指定においては,上記に加えて各 \texttt{[$j$]} の各サブテーブル内に
次のキーを指定できる,
\begin{cslist}[style=standard]
-\item[priority=<priority>]
+\item[priority=\meta{priority}]
\Pkg{luatexja-adjust}による優先順位付き
行長調整(\ref{ssec:adj}節)において,このグルーの優先度を指定する.許される値は以下の通り:
\begin{description}
\item[バージョン1] $-4$から$+3$の間の整数
- \item[バージョン2以降] $-4$から$+3$の間の整数の2つ組\texttt{\{<stretch>, <shrink>\}}か,
- または$-4$から$+3$の間の整数.<stretch>, <shrink>はそれぞれこのグルーが伸びるときの優先度,縮むときの
+ \item[バージョン2以降] $-4$から$+3$の間の整数の2つ組\texttt{\{\meta{stretch}, \meta{shrink}\}}か,
+ または$-4$から$+3$の間の整数.\meta{stretch}, \meta{shrink}はそれぞれこのグルーが伸びるときの優先度,縮むときの
優先度であり,単に整数$i$が指定された場合は\texttt{\{$i$, $i$\}}であると解釈される.
\end{description}
ここで指定する値は,大きい値ほど「先に伸ばされる」「先に縮ませる」ことを意味しており,省略時の値
は0である.範囲外の値が指定されたときの動作は未定義である.
-\item[kanjiskip\_natural=<num>\textrm{, }%
- kanjiskip\_stretch=<num>\textrm{, }kanjiskip\_shrink=<num>]\leavevmode
+\item[kanjiskip\_natural=\meta{num}\textrm{, }%
+ kanjiskip\_stretch=\meta{num}\textrm{, }kanjiskip\_shrink=\meta{num}]\leavevmode
\label{pg:ksp_nat}
JFMによって本来挿入されるグルーの他に
@@ -4787,15 +4785,15 @@ JFMによって本来挿入されるグルーの他に
In case of glue, one can specify following additional keys in each \texttt{[$j$]}
subtable:
\begin{cslist}[style=standard]
-\item[priority=<priority>]
+\item[priority=\meta{priority}]
An integer in $[-4,3]$ (treated as 0 if omitted), or
-a pair of these integers \texttt{\{<stretch>, <shrink>\}} (version 2~or~later).
+a pair of these integers \texttt{\{\meta{stretch}, \meta{shrink}\}} (version 2~or~later).
This is
used only in line adjustment with priority by \Pkg{luatexja-adjust}
(see Subsection~\ref{ssec:adj}). Higher value means the glue is easy to stretch,
and is also easy to shrink.
-\item[kanjiskip\_natural=<num>\textrm{, }%
- kanjiskip\_stretch=<num>\textrm{, }kanjiskip\_shrink=<num>]\leavevmode
+\item[kanjiskip\_natural=\meta{num}\textrm{, }%
+ kanjiskip\_stretch=\meta{num}\textrm{, }kanjiskip\_shrink=\meta{num}]\leavevmode
These keys specifies the amount of the natural width of \Param{kanjiskip}%
(the stretch/shrink part, respectively) which will be inserted
@@ -4835,7 +4833,7 @@ Hence we have the following result:
\end{cslist}
%</en>
-\item[end\_stretch=<kern>, end\_shrink=<kern>]
+\item[end\_stretch=\meta{kern}, end\_shrink=\meta{kern}]
%<*ja>
(任意,バージョン1のみ)
@@ -4847,7 +4845,7 @@ Hence we have the following result:
(optional, version~1 only)
%</en>
- \item[end\_adjust=\{<kern>, <kern>, ...\}]
+ \item[end\_adjust=\{\meta{kern}, \meta{kern}, ...\}]
%<*ja>
(任意,バージョン2以降)
@@ -4869,7 +4867,7 @@ Hence we have the following result:
(optional, version~2 or~later)
%</en>
- \item[round\_threshold=<float>]
+ \item[round\_threshold=\meta{float}]
%<*ja>
(任意,バージョン3以降,文字クラス0のみ)
@@ -5130,7 +5128,7 @@ an external package is needed to support this in plain \TeX\ and
font families. There is no relation between the value of
\cs{fam} and that of \cs{jfam}; with appropriate settings,
one can set both \cs{fam} and \cs{jfam} to the same value.
-Here <jfont\_cs> in the argument of \Param{jatextfont} etc.\ is
+Here \meta{jfont\_cs} in the argument of \Param{jatextfont} etc.\ is
a control sequence which is defined by \cs{jfont}, i.e.,
a \emph{horizontal} Japanese font.
%</en>
@@ -5139,7 +5137,7 @@ a \emph{horizontal} Japanese font.
\autoref{tab-math}は数式フォントファミリに対する \TeX のプリミティブと対応する
ものを示している.\cs{fam} と \cs{jfam} の値の間には関係はなく,
適切な設定の下では \cs{fam} と \cs{jfam} の両方に同じ値を設定することができる.
-\Param{jatextfont} 他の第2引数<jfont\_cs>は,\cs{jfont} で定義された
+\Param{jatextfont} 他の第2引数\meta{jfont\_cs}は,\cs{jfont} で定義された
\emph{横組用}和文フォントである.\cs{tfont} で定義された
\emph{縦組用}和文フォントを指定することは想定していない.
%</ja>
@@ -5157,9 +5155,9 @@ a \emph{horizontal} Japanese font.
%<ja>\bf 和文フォント&\bf 欧文フォント\\
\midrule
\cs{jfam}${}\in [0,256)$&\cs{fam}\\
-\ttfamily\Param{jatextfont}\,=\{<jfam>,<jfont\_cs>\}&\ttfamily\cs{textfont}<fam>=<font\_cs>\\
-\ttfamily\Param{jascriptfont}\,=\{<jfam>,<jfont\_cs>\}&\ttfamily\cs{scriptfont}<fam>=<font\_cs>\\
-\ttfamily\Param{jascriptscriptfont}\,=\{<jfam>,<jfont\_cs>\}&\ttfamily\cs{scriptscriptfont}<fam>=<font\_cs>\\
+\ttfamily\Param{jatextfont}\,=\{\meta{jfam},\meta{jfont\_cs}\}&\ttfamily\cs{textfont}\meta{fam}=\meta{font\_cs}\\
+\ttfamily\Param{jascriptfont}\,=\{\meta{jfam},\meta{jfont\_cs}\}&\ttfamily\cs{scriptfont}\meta{fam}=\meta{font\_cs}\\
+\ttfamily\Param{jascriptscriptfont}\,=\{\meta{jfam},\meta{jfont\_cs}\}&\ttfamily\cs{scriptscriptfont}\meta{fam}=\meta{font\_cs}\\
\bottomrule
\end{tabular}
\end{table}
@@ -5247,8 +5245,8 @@ The value of \texttt{jfmvar}~key, which is specified at \cs{jfont}.
The default value is the empty string.
\item[\texttt{chars}]
The mapping table from character codes to its character classes.\\
-The specification \texttt{[i].chars=\{<character>, ...\}} in the JFM will be stored in this
- field as \texttt{chars=\{[<character>]=\,$i$, ...\}}.
+The specification \texttt{[i].chars=\{\meta{character}, ...\}} in the JFM will be stored in this
+ field as \texttt{chars=\{[\meta{character}]=\,$i$, ...\}}.
\item[\texttt{char\_type}]
For $i\in\omega$, \texttt{char\_type[$i$]} is information of characters whose class is
$i$, and has the following fields:
@@ -5283,8 +5281,8 @@ sp単位で格納している.
\cs{jfont},~\cs{tfont} で指定された \texttt{jfmvar} キーの値(未指定のときは空文字列).
\item[chars]
文字コードから文字クラスへの対応が記述されたテーブル.\\
-JFM内の \texttt{[i].chars=\{<character>, ...\}} という指定は\
-\texttt{chars=\{[<character>]=\,$i$, ...\}} という形式に変換されている.
+JFM内の \texttt{[i].chars=\{\meta{character}, ...\}} という指定は\
+\texttt{chars=\{[\meta{character}]=\,$i$, ...\}} という形式に変換されている.
\item[char\_type]
$i\in\omega$に対して,\texttt{char\_type[$i$]} は文字クラス$i$の文字の寸法を格納しており,
以下のフィールドを持つ.
@@ -5303,23 +5301,19 @@ JFMで指定されているそれぞれの値をスケーリングしたもの
のいずれかの値をとる.
\end{itemize}
$i$,~$j\in \omega$に対して,\texttt{char\_type[$i$][$j$]} は
-文字クラス$i$の文字と$j$の文字の間に挿入されるグルーやカーンを格納している.
+文字クラス$i$の文字と$j$の文字の間に挿入されるグルーやカーンの情報を格納している.
間に入るものがカーンであれば,この値は%
-\texttt{[$j$]=\{[1]=<kern\_node>, ratio=<ratio>\}}であり,
-<kern\_node>はカーンを表すノードである\footnote{%
- バージョン20150420.0以降ではノードのアクセス手法にdirect access
- modelを用いているため,ノードそのものを表すユーザーデータではなく,
- 内部で参照のために使われる添字(整数)である.
-}.
-
-グルーであれば,この値は以下のキーを持つテーブルである.
+\texttt{[$j$]=\{\meta{kern}, ratio=\meta{ratio}\}}であり,
+\meta{kern}はカーンの値をsp単位で表したものである.
+
+一方,間に入るものがグルーであれば,この値は以下のキーを持つテーブルである.
\begin{description}
- \item[\texttt{width}, \texttt{stretch}, \texttt{shrink}]
+ \item[{[1], [2], [3]}]
グルーのそれぞれ自然長,伸び量,縮み量をsp単位で表したもの.
- \item[\texttt{priority}] (バージョン2以降の)JFMでの指定 \texttt{\{<stretch>,<shrink>\}} を
+ \item[\texttt{priority}] (バージョン2以降の)JFMでの指定 \texttt{\{\meta{stretch},\meta{shrink}\}} を
\[
- (\text{<stretch>}+4)\cdot 8+\text{<shrink>}+4
+ (\text{\meta{stretch}}+4)\cdot 8+\text{\meta{shrink}}+4
\]
として0--63の整数にパックしたもの.
\item[\texttt{ratio}, \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch}, \texttt{kanjiskip\_shrink}]
@@ -5366,7 +5360,7 @@ A function used in this callback should be in the following form:
このコールバックで呼び出される関数は次の形をしていなければならない:
%</ja>
\begin{lstlisting}[numbers=left]
-function (<number> char_class, <table> jfont_info, <number> chr_code)
+function (<number> char_class, <table> jfont_info, <number> char_code)
if char_class~=0 then return char_class
else
....
@@ -5515,7 +5509,7 @@ adopted in the whole paragraph or the whole hbox.
\end{itemize}
\begin{cslist}[style=standard]
-\item[\DParam{jcharwidowpenalty}\,=<penalty>$^\ast$] [\cs{jcharwidowpenalty}]\
+\item[\DParam{jcharwidowpenalty}\,=\meta{penalty}$^\ast$] [\cs{jcharwidowpenalty}]\
%<*en>
Penalty value for suppressing orphans. This penalty is inserted just
@@ -5528,24 +5522,24 @@ Penalty value for suppressing orphans. This penalty is inserted just
挿入される.
%</ja>
-\item[\DParam{kcatcode}\,=\{<chr\_code>,<natural number>\}$^\ast$]\
+\item[\DParam{kcatcode}\,=\{\meta{char\_code},\meta{natural number}\}$^\ast$]\
%<*en>
-An additional attributes which each character whose character code is <chr\_code> has.
-At version~20120506.0 or later, the lowermost bit of <natural number> indicates
+An additional attributes which each character whose character code is \meta{char\_code} has.
+At version~20120506.0 or later, the lowermost bit of \meta{natural number} indicates
whether the character is considered as a punctuation mark
(see the description of \Param{jcharwidowpenalty} above).
%</en>
%<*ja>
-文字コードが<chr\_code>の文字が持つ付加的な属性値.
-バージョン20120506.0以降では,<natural number>の最下位ビットが,その文字が句読点と
+文字コードが\meta{char\_code}の文字が持つ付加的な属性値.
+バージョン20120506.0以降では,\meta{natural number}の最下位ビットが,その文字が句読点と
みなされるかどうかを表している(上の\Param{jcharwidowpenalty}の記述を参照).
%</ja>
-\item[\DParam{prebreakpenalty}\,=\{<chr\_code>,<penalty>\}$^\ast$] [\cs{prebreakpenalty}]\
+\item[\DParam{prebreakpenalty}\,=\{\meta{char\_code},\meta{penalty}\}$^\ast$] [\cs{prebreakpenalty}]\
%<*ja>
-文字コード<chr\_code>の\textbf{JAchar}が行頭にくることを抑止するために,
+文字コード\meta{char\_code}の\textbf{JAchar}が行頭にくることを抑止するために,
この文字の前に挿入/追加されるペナルティの量を指定する.
例えば閉じ括弧「〗」は絶対に行頭にきてはならないので,
@@ -5565,7 +5559,7 @@ At version~20120506.0 or later, the lowermost bit of <natural number> indicates
という制限があったが,\LuaTeX-jaではこれらの制限は解消されている.
%</ja>
%<*en>
-Set a penalty which is inserted automatically before the character <chr\_code>,
+Set a penalty which is inserted automatically before the character \meta{char\_code},
to prevent a line starts from this character. For example, a line cannot started
with one of closing brackets ``〗'', so \LuaTeX-ja sets
\begin{lstlisting}
@@ -5582,42 +5576,42 @@ for the same character.
\end{itemize}
%</en>
-\item[\DParam{postbreakpenalty}\,=\{<chr\_code>,<penalty>\}$^\ast$]
+\item[\DParam{postbreakpenalty}\,=\{\meta{char\_code},\meta{penalty}\}$^\ast$]
[\cs{postbreakpenalty}]\
%<*ja>
-文字コード<chr\_code>の\textbf{JAchar}が行末にくることを抑止するために,
+文字コード\meta{char\_code}の\textbf{JAchar}が行末にくることを抑止するために,
この文字の後に挿入/追加されるペナルティの量を指定する.
%</ja>
%<*en>
-Set a penalty which is inserted automatically after the character <chr\_code>,
+Set a penalty which is inserted automatically after the character \meta{char\_code},
to prevent a line ends with this character.
%</en>
-\item[\DParam{jatextfont}\,=\{<jfam>,<jfont\_cs>\}$^\ast$]
+\item[\DParam{jatextfont}\,=\{\meta{jfam},\meta{jfont\_cs}\}$^\ast$]
%<en>[\cs{textfont} in \TeX]
%<ja>[\TeX の \cs{textfont}]
-\item[\DParam{jascriptfont}\,=\{<jfam>,<jfont\_cs>\}$^\ast$]
+\item[\DParam{jascriptfont}\,=\{\meta{jfam},\meta{jfont\_cs}\}$^\ast$]
%<en>[\cs{scriptfont} in \TeX]
%<ja>[\TeX の \cs{scriptfont}]
-\item[\DParam{jascriptscriptfont}\,=\{<jfam>,<jfont\_cs>\}$^\ast$]
+\item[\DParam{jascriptscriptfont}\,=\{\meta{jfam},\meta{jfont\_cs}\}$^\ast$]
%<en>[\cs{scriptscriptfont} in \TeX]
%<ja>[\TeX の \cs{scriptscriptfont}]
-\item[\DParam{yjabaselineshift}\,=<dimen>]\
-\item[\DParam{yalbaselineshift}\,=<dimen>] [\cs{ybaselineshift}]
-\item[\DParam{tjabaselineshift}\,=<dimen>]\
-\item[\DParam{talbaselineshift}\,=<dimen>] [\cs{tbaselineshift}]
+\item[\DParam{yjabaselineshift}\,=\meta{dimen}]\
+\item[\DParam{yalbaselineshift}\,=\meta{dimen}] [\cs{ybaselineshift}]
+\item[\DParam{tjabaselineshift}\,=\meta{dimen}]\
+\item[\DParam{talbaselineshift}\,=\meta{dimen}] [\cs{tbaselineshift}]
-\item[\DParam{jaxspmode}\,=\{<chr\_code>,<mode>\}$^\ast$]\
+\item[\DParam{jaxspmode}\,=\{\meta{char\_code},\meta{mode}\}$^\ast$]\
%<*en>
-Set whether inserting \Param{xkanjiskip} is allowed before/after a \textbf{JAchar} whose character code is <chr\_code>.
-The followings are allowed for <mode>:
+Set whether inserting \Param{xkanjiskip} is allowed before/after a \textbf{JAchar} whose character code is \meta{char\_code}.
+The followings are allowed for \meta{mode}:
%</en>
%<*ja>
-文字コードが<chr\_code>の\textbf{JAchar}の前/後ろに\Param{xkanjiskip}の
+文字コードが\meta{char\_code}の\textbf{JAchar}の前/後ろに\Param{xkanjiskip}の
挿入を許すかどうかの設定.
-以下の<mode>が許される:
+以下の\meta{mode}が許される:
%</ja>
\begin{description}
%<en>\item[0, \texttt{inhibit}] Insertion of \Param{xkanjiskip} is inhibited before the character, nor after the character.
@@ -5636,17 +5630,17 @@ This parameter is similar to the \cs{inhibitxspcode} primitive of \pTeX, but not
このパラメータは\pTeX の \cs{inhibitxspcode} プリミティブと似ているが,
互換性はない.
%</ja>
-\item[\DParam{alxspmode}\,=\{<chr\_code>,<mode>\}$^\ast$] [\cs{xspcode}]\
+\item[\DParam{alxspmode}\,=\{\meta{char\_code},\meta{mode}\}$^\ast$] [\cs{xspcode}]\
%<*en>
Set whether inserting \Param{xkanjiskip} is allowed before/after a
- \textbf{ALchar} whose character code is <chr\_code>.
- The followings are allowed for <mode>:
+ \textbf{ALchar} whose character code is \meta{char\_code}.
+ The followings are allowed for \meta{mode}:
%</en>
%<*ja>
-文字コードが<chr\_code>の\textbf{ALchar}の前/後ろに\Param{xkanjiskip}の
+文字コードが\meta{char\_code}の\textbf{ALchar}の前/後ろに\Param{xkanjiskip}の
挿入を許すかどうかの設定.
-以下の<mode>が許される:
+以下の\meta{mode}が許される:
%</ja>
\begin{description}
%<en>\item[0, \texttt{inhibit}] Insertion of \Param{xkanjiskip} is inhibited before the character, nor after the character.
@@ -5666,9 +5660,9 @@ Note that parameters \Param{jaxspmode} and \Param{alxspmode} share a common tabl
これら2つのパラメータは互いの別名となっていることに注意する.
%</ja>
-\item[\DParam{autospacing}\,=<bool>] [\cs{autospacing}]
-\item[\DParam{autoxspacing}\,=<bool>] [\cs{autoxspacing}]
-\item[\DParam{kanjiskip}\,=<skip>$^\ast$] [\cs{kanjiskip}]\
+\item[\DParam{autospacing}\,=\meta{bool}] [\cs{autospacing}]
+\item[\DParam{autoxspacing}\,=\meta{bool}] [\cs{autoxspacing}]
+\item[\DParam{kanjiskip}\,=\meta{skip}$^\ast$] [\cs{kanjiskip}]\
%<*ja>
デフォルトで2つの\textbf{JAchar}の間に挿入されるグルーである.
@@ -5684,7 +5678,7 @@ If the natural width of this parameter is \cs{maxdimen}, \LuaTeX-ja uses
the value which is specified in the JFM for current Japanese font (See Subsection~\ref{ssec:jfm-str}).
%</en>
-\item[\DParam{xkanjiskip}\,=<skip>$^\ast$] [\cs{xkanjiskip}]\
+\item[\DParam{xkanjiskip}\,=\meta{skip}$^\ast$] [\cs{xkanjiskip}]\
%<*ja>
デフォルトで\textbf{JAchar}と\textbf{ALchar}の間に挿入されるグルーである.
@@ -5701,7 +5695,7 @@ the value which is specified in the JFM for current Japanese font (See Subsectio
%</en>
-\item[\DParam{differentjfm}\,=<mode>$^\dagger$]\
+\item[\DParam{differentjfm}\,=\meta{mode}$^\dagger$]\
%<*en>
Specify how glues/kerns between two \textbf{JAchar}s whose JFM (or size) are different.
@@ -5729,22 +5723,22 @@ The default value is \texttt{paverage}. \dots
各々の値による差異の詳細は\ref{ssec:cluster-wa}節の「『右空白』の算出」を参照してほしい.
%</ja>
-\item[\DParam{jacharrange}\,=<ranges>]
-\item[\DParam{kansujichar}\,=\{<digit>, <chr\_code>\}$^\ast$] [\cs{kansujichar}]
+\item[\DParam{jacharrange}\,=\meta{ranges}]
+\item[\DParam{kansujichar}\,=\{\meta{digit}, \meta{char\_code}\}$^\ast$] [\cs{kansujichar}]
-\item[\DParam{direction}\,=<dir>\ \hbox{\normalfont\rmfamily (always local)}]\
+\item[\DParam{direction}\,=\meta{dir}\ \hbox{\normalfont\rmfamily (always local)}]\
%<*en>
Assigning to this parameter has the same effect as
-\cs{yoko}~(if $\hbox{<dir>}=4$), \cs{tate}~(if $\hbox{<dir>}=3$),
-\cs{dtou}~(if $\hbox{<dir>}=1$) or \cs{utod}~(if $\hbox{<dir>}=11$).
-If the argument <dir> is not one of 4,~3, 1~nor~11,
+\cs{yoko}~(if $\hbox{\meta{dir}}=4$), \cs{tate}~(if $\hbox{\meta{dir}}=3$),
+\cs{dtou}~(if $\hbox{\meta{dir}}=1$) or \cs{utod}~(if $\hbox{\meta{dir}}=11$).
+If the argument \meta{dir} is not one of 4,~3, 1~nor~11,
the behavior of this assignment is undefined.
%</en>
%<*ja>
-組方向を変更する \cs{yoko}~(if $\hbox{<dir>}=4$), \cs{tate}~(if $\hbox{<dir>}=3$),
-\cs{dtou}~(if $\hbox{<dir>}=1$), \cs{utod}~(if $\hbox{<dir>}=11$) と同じ役割を持つ.
-利用可能な状況もこれら4命令と同一である.引数<dir>が4,~3, 1,~11のいずれでも無いときの
+組方向を変更する \cs{yoko}~(if $\hbox{\meta{dir}}=4$), \cs{tate}~(if $\hbox{\meta{dir}}=3$),
+\cs{dtou}~(if $\hbox{\meta{dir}}=1$), \cs{utod}~(if $\hbox{\meta{dir}}=11$) と同じ役割を持つ.
+利用可能な状況もこれら4命令と同一である.引数\meta{dir}が4,~3, 1,~11のいずれでも無いときの
動作は未定義である.
%</ja>
@@ -5829,27 +5823,27 @@ returns 0,~1, 2,~or~3, instead of \texttt{preonly} etc.
\item
%<*en>
-\verb+\ltjgetparameter{jacharrange}{+<range>\verb+}+ returns \texttt{0}
-if ``characters which belong to the character range~<range> are \textbf{JAchar}'',
+\verb+\ltjgetparameter{jacharrange}{+\meta{range}\verb+}+ returns \texttt{0}
+if ``characters which belong to the character range~\meta{range} are \textbf{JAchar}'',
\texttt{1} if ``\dots~are \textbf{ALchar}''.
-Although there is no character range~$-1$, specifying $-1$ to <range> does not cause an
+Although there is no character range~$-1$, specifying $-1$ to \meta{range} does not cause an
error (returns 1).
%</en>
%<*ja>
-\verb+\ltjgetparameter{jacharrange}{+<range>\verb+}+ は,<range>が\textbf{JAchar}達の
-範囲ならば0を,そうでなければ1を返す.「$-1$番の文字範囲」は存在しないが,<range>に$-1$を
+\verb+\ltjgetparameter{jacharrange}{+\meta{range}\verb+}+ は,\meta{range}が\textbf{JAchar}達の
+範囲ならば0を,そうでなければ1を返す.「$-1$番の文字範囲」は存在しないが,\meta{range}に$-1$を
指定してもエラーは発生しない(1を返す).
%</ja>
\item
%<*en>
-For an integer~<digit> between 0~and~9,
- \verb+\ltjgetparameter{kansujichar}{+<digit>\verb+}+ returns the character code
-of the result of \cs{kansuji}<digit>.
+For an integer~\meta{digit} between 0~and~9,
+ \verb+\ltjgetparameter{kansujichar}{+\meta{digit}\verb+}+ returns the character code
+of the result of \cs{kansuji}\meta{digit}.
%</en>
%<*ja>
-0--9の数<digit>に対して,
-\verb+\ltjgetparameter{kansujichar}{+<digit>\verb+}+ は,\cs{kansuji}<digit>で出力され
+0--9の数\meta{digit}に対して,
+\verb+\ltjgetparameter{kansujichar}{+\meta{digit}\verb+}+ は,\cs{kansuji}\meta{digit}で出力され
る文字の文字コードを返す.
%</ja>
@@ -5870,13 +5864,13 @@ and 4 means \emph{yoko} direction (horizontal typesetting).
\item
%<*en>
-For an integer~<reg\_num> between 0~and~65535,
-\verb+\ltjgetparameter{boxdir}{+<reg\_num>\verb+}+ returns the direction of
-\cs{box}<reg\_num>. If this box register is void, the returned value is zero.
+For an integer~\meta{register} between 0~and~65535,
+\verb+\ltjgetparameter{boxdir}{+\meta{register}\verb+}+ returns the direction of
+\cs{box}\meta{register}. If this box register is void, the returned value is zero.
%</en>
%<*ja>
-0--65535の数<reg\_num>に対して,
-\verb+\ltjgetparameter{boxdir}{+<reg\_num>\verb+}+ は,\cs{box}<reg\_num>に
+0--65535の数\meta{register}に対して,
+\verb+\ltjgetparameter{boxdir}{+\meta{register}\verb+}+ は,\cs{box}\meta{register}に
格納されているボックスの組方向を表す.もしこのレジスタが空の場合は,0が返される.
%</ja>
@@ -5894,31 +5888,31 @@ jatextfont, jascriptfont, jascriptscriptfont, jacharrange
\item
%<*en>
-\verb+\ltjgetparameter{chartorange}{+<chr\_code>\verb+}+ returns
-the range number which <chr\_code> belongs to
+\verb+\ltjgetparameter{chartorange}{+\meta{char\_code}\verb+}+ returns
+the range number which \meta{char\_code} belongs to
(although there is no parameter named ``chartorange'').
-If <chr\_code> is between 0 and 127, this <chr\_code> does not belong to
+If \meta{char\_code} is between 0 and 127, this \meta{char\_code} does not belong to
any character range. In this case,
- \verb+\ltjgetparameter{chartorange}{+<chr\_code>\verb+}+
+ \verb+\ltjgetparameter{chartorange}{+\meta{char\_code}\verb+}+
returns $-1$.
-Hence, one can know whether <chr\_code> is \textbf{JAchar} or not
+Hence, one can know whether \meta{char\_code} is \textbf{JAchar} or not
by the following:
%</en>
%<*ja>
-\verb+\ltjgetparameter{chartorange}{+<chr\_code>\verb+}+ によって
-<chr\_code>の属する文字範囲の番号を知ることができる.
+\verb+\ltjgetparameter{chartorange}{+\meta{char\_code}\verb+}+ によって
+\meta{char\_code}の属する文字範囲の番号を知ることができる.
-<chr\_code>に0--127の値を指定した場合(このとき,<chr\_code>が属する
+\meta{char\_code}に0--127の値を指定した場合(このとき,\meta{char\_code}が属する
文字範囲は存在しない)は$-1$が返る.
-そのため,<chr\_code>が\textbf{JAchar}か\textbf{ALchar}かは
+そのため,\meta{char\_code}が\textbf{JAchar}か\textbf{ALchar}かは
次で知ることができる:
%</ja>
\begin{quote}
\ttfamily \verb+\ltjgetparameter{jacharrange}{\ltjgetparameter{chartorange}{+%
- <chr\_code>\verb+}}+\\\null\hfill\verb+% 0 if JAchar, 1 if ALchar+
+ \meta{char\_code}\verb+}}+\\\null\hfill\verb+% 0 if JAchar, 1 if ALchar+
\end{quote}
%<*en>
@@ -6059,44 +6053,6 @@ that is, without executing \cs{ltj@setpar@global} in advance, is \emph{not} supp
\cs{ltj@setpar@global}を直前に実行せず,単独で
\cs{ltjsetkanjiskip}, \cs{ltjsetxkanjiskip}を実行することは想定されていないので注意.
-
-
-\paragraph{ベースライン補正量の設定}
-\pLaTeX の\Pkg{ascmac}パッケージでは,縦組の欧文ベースライン補正量の一時待避・復帰処理に
-\ \cs{@saveybaselineshift}\ という寸法レジスタを用い
-\begin{lstlisting}
-\@savetbaselineshift\tbaselineshift\tbaselineshift\z@
-...
-\tbaselineshift\@savetbaselineshift
-\end{lstlisting}
-という処理を行っている.
-
-これを\LuaTeX-ja 用に \cs{ltjsetparameter} を使って書き直すと,
-\begin{lstlisting}
-\@savetbaselineshift\ltjgetparameter{talbaselineshift}
-\ltjsetparameter{talbaselineshift=\z@}
-...
-\ltjsetparameter{talbaselineshift=\@savetbaselineshift}
-\end{lstlisting}
-となる.
-
-さて,縦組の欧文ベースライン補正量\Param{talbaselineshift}は,
-実際には \cs{ltj@tablshift} という属性レジスタに格納されている
-(\ref{sec-para}\nobreak 節参照).属性レジスタは長さではなく整数値を格納する\footnote{%
- 従って,\texttt{\textbackslash @savetbaselineshift=\textbackslash ltj@tablshift}\
- のように記述することはできない.属性レジスタを \cs{tbaselineshift} という名称にしなかっ
- たのはそのためである.
-}ものであり,\cs{ltj@tablshift} は補正量を sp 単位で保持することから,
-上記のコードと同じ内容をより速い以下のコードで実現することができる.
-\begin{lstlisting}
-\@savetbaselineshift\ltj@tablshift sp%
-\ltj@tablshift\z@
-...
-\ltj@tablshift\@savetbaselineshift
-\end{lstlisting}
-この手法は \Pkg{ascmac} パッケージの\LuaTeX-ja対応パッチ \Pkg{lltjp-tascmac.sty} で
-実際に用いられている.\Pkg{lltjp-tascmac.sty} は自動的に読み込まれるので,
-ユーザは何も気にせず普通に \Pkg{ascmac} パッケージを \cs{usepackage} で読みこめば良い.
%</ja>
@@ -6376,17 +6332,17 @@ Note that any shorthand form of \cs{insert}[\texttt{x}]\texttt{kanjiskip} are no
Using \cs{ltjdeclarealtfont}, one can ``compose'' more than one Japanese fonts.
This \cs{ltjdeclarealtfont} uses in the following form:
\begin{quote}
-\ttfamily \textbackslash ltjdeclarealtfont<base\_font\_cs><alt\_font\_cs>\{<range>\}
+\ttfamily \textbackslash ltjdeclarealtfont\meta{base\_font\_cs}\meta{alt\_font\_cs}\{\meta{range}\}
\end{quote}
-where <base\_font\_cs>~and~<alt\_font\_cs> are defined by \cs{jfont}.
+where \meta{base\_font\_cs}~and~\meta{alt\_font\_cs} are defined by \cs{jfont}.
Its meaning is
\begin{quote}
-If the current Japanese font is <base\_font\_cs>, characters which belong to <range>
-is typeset by another Japanese font <alt\_font\_cs>, instead of <base\_font\_cs>.
+If the current Japanese font is \meta{base\_font\_cs}, characters which belong to \meta{range}
+is typeset by another Japanese font \meta{alt\_font\_cs}, instead of \meta{base\_font\_cs}.
\end{quote}
-Here <range> is a comma-separated list of character codes, but also accepts negative integers:
+Here \meta{range} is a comma-separated list of character codes, but also accepts negative integers:
$-n$~($n≥1$) means that all characters of character classes~$n$, with respect to JFM used
-by <base\_font\_cs>. Note that characters which do not exist in <alt\_font\_cs> are
+by \meta{base\_font\_cs}. Note that characters which do not exist in \meta{alt\_font\_cs} are
ignored.
For example, if \cs{hoge} uses \texttt{jfm-ujis.lua}, the standard JFM of \LuaTeX-ja,
@@ -6411,18 +6367,18 @@ because simple ``\texttt{-1}'' is treated as the range between 0~and~1.
\cs{ltjdeclarealtfont} は以下の書式で使用する:
\begin{quote}
-\ttfamily \textbackslash ltjdeclarealtfont<base\_font\_cs><alt\_font\_cs>\{<range>\}
+\ttfamily \textbackslash ltjdeclarealtfont\meta{base\_font\_cs}\meta{alt\_font\_cs}\{\meta{range}\}
\end{quote}
-これは「現在の和文フォント」が<base\_font\_cs>であるとき,
-<range>に属する文字は<alt\_font\_cs>を用いて組版される,という意味である.
+これは「現在の和文フォント」が\meta{base\_font\_cs}であるとき,
+\meta{range}に属する文字は\meta{alt\_font\_cs}を用いて組版される,という意味である.
\begin{itemize}
- \item <base\_font\_cs>, <alt\_font\_cs>は
+ \item \meta{base\_font\_cs}, \meta{alt\_font\_cs}は
\cs{jfont} によって定義された和文フォントである.
- \item <range>は文字コードの範囲を表すコンマ区切りのリストであるが,
- 例外として負数$-n$は「<base\_font\_cs>のJFMの文字クラス$n$に属する全ての文字」
+ \item \meta{range}は文字コードの範囲を表すコンマ区切りのリストであるが,
+ 例外として負数$-n$は「\meta{base\_font\_cs}のJFMの文字クラス$n$に属する全ての文字」
を意味する.
-<range>中に<alt\_font\_cs>中に実際には存在しない文字が指定された場合は,
+\meta{range}中に\meta{alt\_font\_cs}中に実際には存在しない文字が指定された場合は,
その文字に対する設定は無視される.
\end{itemize}
@@ -6441,17 +6397,17 @@ because simple ``\texttt{-1}'' is treated as the range between 0~and~1.
%<*ja>
\subsection{\cs{ltjalchar} と \cs{ltjjachar}}
-文字コードが$\text{<chr\_code>}~(\geq 128=\mathtt{0x80})$の文字を
-\ \cs{char} プリミティブを使い \cs{char}<chr\_code> として出力させると,
+文字コードが$\text{\meta{char\_code}}~(\geq 128=\mathtt{0x80})$の文字を
+\ \cs{char} プリミティブを使い \cs{char}\meta{char\_code} として出力させると,
その文字の属する文字範囲(\ref{ssec:setrange}節参照)によって
\textbf{ALchar}か\textbf{JAchar}か,つまり欧文フォントで出力されるか和文フォントで出力され
るかが決まる.
-文字範囲の設定を無視し,文字コードが<chr\_code>の文字を強制的に
+文字範囲の設定を無視し,文字コードが\meta{char\_code}の文字を強制的に
\textbf{ALchar}, \textbf{JAchar}で出力する命令がそれぞれ
\ \cs{ltjalchar},~\cs{ltjjachar} である.使用方法は \cs{char} と同じく
-\ \cs{ltjalchar}<chr\_code>, \cs{ltjjachar}<chr\_code>とすればよい.
-\LuaTeX-ja~20190926.0から,<chr\_code>が127以下の場合でも\cs{ltjjachar}<chr\_code>が
+\ \cs{ltjalchar}\meta{char\_code}, \cs{ltjjachar}\meta{char\_code}とすればよい.
+\LuaTeX-ja~20190926.0から,\meta{char\_code}が127以下の場合でも\cs{ltjjachar}\meta{char\_code}が
\textbf{JAchar}として出力されるようになっている.
以下は\ref{ssec:setrange}節に載せた例に,\cs{char} の動作などを追加したものである.
@@ -6594,10 +6550,10 @@ but on the other hand \cs{zw}~and~\cs{zh} are specified by JFM.
%</en>
-\item[\cs{DeclareYokoKanjiEncoding}\{<encoding>\}\{<text-settings>\}\{<math-settings>\}]
+\item[\cs{DeclareYokoKanjiEncoding}\{\meta{encoding}\}\{\meta{text-settings}\}\{\meta{math-settings}\}]
%<en>\ \\[\dimexpr-\medskipamount-2\baselineskip\relax]
%<ja>\ \\[\dimexpr-2\baselineskip\relax]
-\item[\cs{DeclareTateKanjiEncoding}\{<encoding>\}\{<text-settings>\}\{<math-settings>\}]
+\item[\cs{DeclareTateKanjiEncoding}\{\meta{encoding}\}\{\meta{text-settings}\}\{\meta{math-settings}\}]
%<*en>
In NFSS2 under \LuaTeX-ja, distinction between alphabetic fonts
@@ -6616,13 +6572,13 @@ In NFSS2 under \LuaTeX-ja, distinction between alphabetic fonts
それぞれ定義する.
%</ja>
-\item[\cs{DeclareKanjiEncodingDefaults}\{<text-settings>\}\{<math-settings>\}]
+\item[\cs{DeclareKanjiEncodingDefaults}\{\meta{text-settings}\}\{\meta{math-settings}\}]
%<en>\ \\[\dimexpr-\medskipamount-2\baselineskip\relax]
%<ja>\ \\[\dimexpr-2\baselineskip\relax]
-\item[\cs{DeclareKanjiSubstitution}\{<encoding>\}\{<family>\}\{<series>\}\{<shape>\}]
+\item[\cs{DeclareKanjiSubstitution}\{\meta{encoding}\}\{\meta{family}\}\{\meta{series}\}\{\meta{shape}\}]
%<en>\ \\[\dimexpr-\medskipamount-2\baselineskip\relax]
%<ja>\ \\[\dimexpr-2\baselineskip\relax]
-\item[\cs{DeclareErrorKanjiFont}\{<encoding>\}\{<family>\}\{<series>\}\{<shape>\}\{<size>\}]
+\item[\cs{DeclareErrorKanjiFont}\{\meta{encoding}\}\{\meta{family}\}\{\meta{series}\}\{\meta{shape}\}\{\meta{size}\}]
%<*en>
The above 3~commands are just the counterparts for \cs{DeclareFontEncodingDefaults} and~others.
@@ -6631,34 +6587,34 @@ The above 3~commands are just the counterparts for \cs{DeclareFontEncodingDefaul
上記3つのコマンドはちょうどNFSS2 の \cs{DeclareFontEncodingDefaults} などに対応するものである.
%</ja>
-\item[\cs{reDeclareMathAlphabet}\{<unified-cmd>\}\{<al-cmd>\}\{<ja-cmd>\}]
+\item[\cs{reDeclareMathAlphabet}\{\meta{unified-cmd}\}\{\meta{al-cmd}\}\{\meta{ja-cmd}\}]
% ToDo: en
%<*ja>
和文・欧文の数式用フォントファミリを一度に変更する命令を作成する.
-具体的には,欧文数式用フォントファミリ変更の命令<al-cmd>(\cs{mathrm} 等)と,和文数式用フォ
- ントファミリ変更の命令<ja-cmd>(\cs{mathmc} 等)の2つを同時に行う命令として
- <unified-cmd>を(再)定義する.実際の使用では<unified-cmd>と
- <al-cmd>に同じものを指定する,すなわち,<al-cmd>で和文側も変
+具体的には,欧文数式用フォントファミリ変更の命令\meta{al-cmd}(\cs{mathrm} 等)と,和文数式用フォ
+ ントファミリ変更の命令\meta{ja-cmd}(\cs{mathmc} 等)の2つを同時に行う命令として
+ \meta{unified-cmd}を(再)定義する.実際の使用では\meta{unified-cmd}と
+ \meta{al-cmd}に同じものを指定する,すなわち,\meta{al-cmd}で和文側も変
更させるようにするのが一般的と思われる.
本命令は
\begin{center}
-<unified-cmd>\texttt{\{}<arg>\texttt{\}}\quad$\longrightarrow$\quad
-(<al-cmd>の1段展開結果)\texttt{\{}<ja-cmd>の1段展開結果)\texttt{\{<arg>\}\}}
+\meta{unified-cmd}\texttt{\{}\meta{arg}\texttt{\}}\quad$\longrightarrow$\quad
+(\meta{al-cmd}の1段展開結果)\texttt{\{}\meta{ja-cmd}の1段展開結果)\texttt{\{\meta{arg}\}\}}
\end{center}
と定義を行うので,使用には注意が必要である:
%<en>\vspace{-\medskipamount}
\begin{itemize}
-\item <al-cmd>,~<ja-cmd>は既に定義されていなければならない.
+\item \meta{al-cmd},~\meta{ja-cmd}は既に定義されていなければならない.
\cs{reDeclareMathAlphabet}\\の後に
-両命令の内容を再定義しても,<unified-cmd>の内容にそれは反映されない.
-\item <al-cmd>,~<ja-cmd>に\verb+\@mathrm+などと \texttt{@} をつけた命令を指定した時の動作は保証できない.
+両命令の内容を再定義しても,\meta{unified-cmd}の内容にそれは反映されない.
+\item \meta{al-cmd},~\meta{ja-cmd}に\verb+\@mathrm+などと \texttt{@} をつけた命令を指定した時の動作は保証できない.
\end{itemize}
%</ja>
-\item[\cs{DeclareRelationFont}\{<ja-encoding>\}\{<ja-family>\}\{<ja-series>\}\{<ja-shape>\}\\*
- \null\hfill\{<al-encoding>\}\{<al-family>\}\{<al-series>\}\{<al-shape>\}]
+\item[\cs{DeclareRelationFont}\{\meta{ja-encoding}\}\{\meta{ja-family}\}\{\meta{ja-series}\}\{\meta{ja-shape}\}\\*
+ \null\hfill\{\meta{al-encoding}\}\{\meta{al-family}\}\{\meta{al-series}\}\{\meta{al-shape}\}]
%<*en>
This command sets the ``accompanied'' alphabetic font (given by the latter 4~arguments)
with respect to a Japanese font given by the former 4~arguments.
@@ -6733,17 +6689,17 @@ In \LuaTeX-ja, this \cs{adjustbaseline} does similar task, namely setting the
設定処理も行っていたが,\LuaTeX-jaでも全く同様である.
%</ja>
-\item[\cs{fontfamily}\{<family>\}]
+\item[\cs{fontfamily}\{\meta{family}\}]
%<*en>
As in \LaTeXe, this command changes current font family (alphabetic, Japanese,~\emph{or both})
-to <family>. See Subsection~\ref{ssec:fontfamilycmd} for detail.
+to \meta{family}. See Subsection~\ref{ssec:fontfamilycmd} for detail.
%</en>
%<*ja>
元々の\LaTeXe におけるものと同様に,このコマンドは現在のフォントファミリ(欧文,
-和文,\emph{もしくは両方})を<family>に変更する.詳細は\ref{ssec:fontfamilycmd}節を参照すること.
+和文,\emph{もしくは両方})を\meta{family}に変更する.詳細は\ref{ssec:fontfamilycmd}節を参照すること.
%</ja>
-\item[\cs{fontshape}\{<shape>\}\textrm{, }\cs{fontshapeforce}\{<shape>\}]
+\item[\cs{fontshape}\{\meta{shape}\}\textrm{, }\cs{fontshapeforce}\{\meta{shape}\}]
%<*en>
As in \LaTeXe, this command changes current alphabetic font shape
according to shape change rules.
@@ -6758,8 +6714,8 @@ when \cs{itshape} is called,
because almost all Japanese fonts only have shape ``\texttt{n}'', and \cs{itshape} calls \cs{fontshape}.
\LuaTeX-ja~20200323.0 change the behavior. Namely,
-\cs{fontshape\{<shape>\}}~and~\cs{fontshapeforce\{<shape>\}} change current Japanese font shape, only if
-the required shape (according to shape changing rules) or <shape> is avaliable in current Japanese font family/series.
+\cs{fontshape\{\meta{shape}\}}~and~\cs{fontshapeforce\{\meta{shape}\}} change current Japanese font shape, only if
+the required shape (according to shape changing rules) or \meta{shape} is avaliable in current Japanese font family/series.
When this is not the case, an info such as
\begin{verbatim}
Kanji font shape JY3/mc/m/it' undefined
@@ -6780,8 +6736,8 @@ is issued instead of a warning.
といった警告をもたらしてしまっていた.
一方,\LuaTeX-ja 20200323.0以降では,
-\cs{fontshape\{<shape>\}}, \cs{fontshapeforce\{<shape>\}}が和文フォントシェイプを更新するのは,
-シェイプ更新規則に基づいた値や<shape>の少なくとも一つが現在の和文フォントファミリ・シリーズで利用可能なときに限られる.
+\cs{fontshape\{\meta{shape}\}}, \cs{fontshapeforce\{\meta{shape}\}}が和文フォントシェイプを更新するのは,
+シェイプ更新規則に基づいた値や\meta{shape}の少なくとも一つが現在の和文フォントファミリ・シリーズで利用可能なときに限られる.
どちらでもなく,和文フォントシェイプが変更されなかった場合には
\begin{verbatim}
Kanji font shape JY3/mc/m/it' undefined
@@ -6790,10 +6746,10 @@ is issued instead of a warning.
というinfo(警告でなく)を出力する.
%</ja>
-\item[\cs{kanjishape}\{<shape>\}\textrm{, }\cs{kanjishapeforce}\{<shape>\}]
+\item[\cs{kanjishape}\{\meta{shape}\}\textrm{, }\cs{kanjishapeforce}\{\meta{shape}\}]
%<*en>
-\cs{kanjishape\{<shape>\}} changes current Japanese font shape according to shape change rules, and
-\cs{kanjishapeforce\{<shape>\}} changes current Japanese font shape to <shape>, regardless of the rules.
+\cs{kanjishape\{\meta{shape}\}} changes current Japanese font shape according to shape change rules, and
+\cs{kanjishapeforce\{\meta{shape}\}} changes current Japanese font shape to \meta{shape}, regardless of the rules.
Hence \cs{kanjishape\{it\}} produces a warning
\begin{verbatim}
Font shape `JY3/mc/m/it' undefined
@@ -6822,12 +6778,13 @@ which is not produced by \cs{fontshape\{it\}}.
\label{fig:altkanji}
\end{figure}
-\item[\cs{DeclareAlternateKanjiFont}\{<base-encoding>\}\{<base-family>\}\{<base-series>\}\{<base-shape>\}\\
- \null\hfill\{<alt-encoding>\}\{<alt-family>\}\{<alt-series>\}\{<alt-shape>\}\{<range>\}]
+\item[\cs{DeclareAlternateKanjiFont}\\
+ \{\meta{base-encoding}\}\{\meta{base-family}\}\{\meta{base-series}\}\{\meta{base-shape}\}\\
+ \{\meta{alt-encoding}\}\{\meta{alt-family}\}\{\meta{alt-series}\}\{\meta{alt-shape}\}\{\meta{range}\}]
%<*ja>
\ref{ssec:altfont}節の\
\cs{ltjdeclarealtfont} と同様に,前半の4引数の
-和文フォント(基底フォント)のうち<range>中の文字を
+和文フォント(基底フォント)のうち\meta{range}中の文字を
第5から第8引数の和文フォントを使って組むように指示する.
使用例を図\nobreak\ref{fig:altkanji}に載せた.
@@ -6840,13 +6797,13 @@ which is not produced by \cs{fontshape\{it\}}.
あるいは(これらを含むが)\cs{selectfont} が実行された時である.
\item
段落やhboxの最後での設定値が段落/hbox全体にわたって通用する点や,
-<range>に負数$-n$を指定した場合,それが「基底フォントの文字クラス$n$に属する文字全体」
+\meta{range}に負数$-n$を指定した場合,それが「基底フォントの文字クラス$n$に属する文字全体」
と解釈されるのは \cs{ltjdeclarealtfont} と同じである.
\end{itemize}%
%</ja>
%<*en>
As \cs{ltjdeclarealtfont}~(Subsection~\ref{ssec:altfont}),
-characters in <range> of the Japanese font (we say the \emph{base font})
+characters in \meta{range} of the Japanese font (we say the \emph{base font})
which specified by first 4 arguments are typeset
by the Japanese font which specified by fifth to eighth arguments
(we say the \emph{alternate font}).
@@ -6898,11 +6855,11 @@ The code below does not work either:
%<ja>\subsection{\cs{fontfamily}コマンドの詳細}
\label{ssec:fontfamilycmd}
%<*en>
-In this subsection, we describe when \cs{fontfamily}<family> changes current
+In this subsection, we describe when \cs{fontfamily}\meta{family} changes current
Japanese/alphabetic font family. Basically, current Japanese fotn family is changed to
-<family> if it is recognized as a Japanese font family, and similar with alphabetic font
+\meta{family} if it is recognized as a Japanese font family, and similar with alphabetic font
family. There is a case that current Japanese/alphabetic font family are both changed to
-<family>, and another case that <family> isn't recognized as a Japanese/alphabetic font
+\meta{family}, and another case that \meta{family} isn't recognized as a Japanese/alphabetic font
family either.
\paragraph{Recognition as Japanese font family}
@@ -6911,56 +6868,56 @@ This order is very similar to \cs{fontfamily} in \pLaTeXe, but we re-implemented
We use an auxiliary list~$N_{\mathrm{J}}$.
%</en>
%<*ja>
-本節では,\cs{fontfamily}<family> がいつ和文/欧文フォントファミリを変更するかについて解説
-する.基本的には,<family>が和文フォントファミリだと認識されれば和文側が,欧文フォントファ
+本節では,\cs{fontfamily}\meta{family} がいつ和文/欧文フォントファミリを変更するかについて解説
+する.基本的には,\meta{family}が和文フォントファミリだと認識されれば和文側が,欧文フォントファ
ミリだと認識されれば欧文側が変更される.どちらとも認識されれば和文・欧文の両方が変わるこ
とになるし,当然どちらとも認識されないこともある.
\paragraph{和文フォントファミリとしての認識}
-まず,<family>が和文フォントファミリとして認識されるかは以下の順序で決定される.
+まず,\meta{family}が和文フォントファミリとして認識されるかは以下の順序で決定される.
これは\pLaTeXe の \cs{fontfamily} にとても似ているが,ここではLuaによって実装している.
補助的に「和文フォントファミリではないと認識された」ファミリを格納したリスト$N_{\mathrm{J}}$を用いる.
%</ja>
\begin{enumerate}
%<*en>
-\item If the family~<family> has been defined already by \cs{DeclareKanjiFamily},
- <family> is recognized as a Japanese font family.
- Note that <family> need not be defined under \emph{current} Japanese font encoding.
+\item If the family~\meta{family} has been defined already by \cs{DeclareKanjiFamily},
+ \meta{family} is recognized as a Japanese font family.
+ Note that \meta{family} need not be defined under \emph{current} Japanese font encoding.
%</en>
%<*ja>
-\item ファミリ<family>が既に \cs{DeclareKanjiFamily} によって定義されている場合,
- <family>は和文フォントファミリであると認識される.
- ここで,<family>は現在の和文フォントエンコーディングで定義されていなくてもよい.
+\item ファミリ\meta{family}が既に \cs{DeclareKanjiFamily} によって定義されている場合,
+ \meta{family}は和文フォントファミリであると認識される.
+ ここで,\meta{family}は現在の和文フォントエンコーディングで定義されていなくてもよい.
%</ja>
%<*en>
-\item If the family~<family> has been listed in a list~$N_{\mathrm{J}}$, this means
- that <family> is not a Japanese font family.
+\item If the family~\meta{family} has been listed in a list~$N_{\mathrm{J}}$, this means
+ that \meta{family} is not a Japanese font family.
%</en>
%<*ja>
-\item ファミリ<family>がリスト$N_{\mathrm{J}}$に既に含まれていれば,それは
- <family>が和文フォントファミリではないことを意味する.
+\item ファミリ\meta{family}がリスト$N_{\mathrm{J}}$に既に含まれていれば,それは
+ \meta{family}が和文フォントファミリではないことを意味する.
%</ja>
%<*en>
-\item If the \Pkg{luatexja-fontspec} package is loaded, we stop here, and <family> is not
+\item If the \Pkg{luatexja-fontspec} package is loaded, we stop here, and \meta{family} is not
recognized as a Japanese font family.
If the \Pkg{luatexja-fontspec} package is \emph{not} loaded,
-now \LuaTeX-ja looks whether there exists a Japanese font encoding~<enc> such that
- a font definition named \texttt{<enc><family>.fd} (the file name is
- all lowercase) exists. If so, <family> is recognized as a Japanese font family (the font definition file won't be loaded here).
- If not, <family> is not a Japanese font family, and
- <family> is appended to the list~$N_{\mathrm{J}}$.
+now \LuaTeX-ja looks whether there exists a Japanese font encoding~\meta{enc} such that
+ a font definition named \texttt{\meta{enc}\meta{family}.fd} (the file name is
+ all lowercase) exists. If so, \meta{family} is recognized as a Japanese font family (the font definition file won't be loaded here).
+ If not, \meta{family} is not a Japanese font family, and
+ \meta{family} is appended to the list~$N_{\mathrm{J}}$.
%</en>
%<*ja>
\item もし\Pkg{luatexja-fontspec}パッケージが読み込まれていれば,ここで終了であり,
-<family>は和文フォントファミリとして認識されないことになる.
+\meta{family}は和文フォントファミリとして認識されないことになる.
-もし\Pkg{luatexja-fontspec}パッケージが読み込まれていなければ,和文エンコーディング<enc>で
-フォント定義ファイル\texttt{<enc><family>.fd}(ファイル名は全て小文字)が存在するようなも
+もし\Pkg{luatexja-fontspec}パッケージが読み込まれていなければ,和文エンコーディング\meta{enc}で
+フォント定義ファイル\texttt{\meta{enc}\meta{family}.fd}(ファイル名は全て小文字)が存在するようなも
のがあるかどうかを調べる.
-存在すれば,<family>は和文フォントファミリと認識される(フォント定義ファイルは読み込まれな
+存在すれば,\meta{family}は和文フォントファミリと認識される(フォント定義ファイルは読み込まれな
い).
-存在しなければ,<family>は和文フォントファミリでないと認識され,リスト$N_{\mathrm{J}}$に<family>を追加することでそれを記憶する.
+存在しなければ,\meta{family}は和文フォントファミリでないと認識され,リスト$N_{\mathrm{J}}$に\meta{family}を追加することでそれを記憶する.
%</ja>
\end{enumerate}
@@ -6972,52 +6929,52 @@ We use auxiliary lists $F_{\mathrm{A}}$~and~$N_{\mathrm{A}}$,
%</en>
%<*ja>
\paragraph{欧文フォントファミリとしての認識}
-同様に,<family>が和文フォントファミリとして認識されるかは以下の順序で決定される.
+同様に,\meta{family}が和文フォントファミリとして認識されるかは以下の順序で決定される.
補助的に「欧文フォントファミリと既に認識された」ファミリのリスト$F_{\textrm{A}}$と,
「欧文フォントファミリではないと認識された」ファミリを格納したリスト$N_{\mathrm{A}}$を用いる.
%</ja>
\begin{enumerate}
%<*en>
-\item If the family~<family> has been listed in a list~$F_{\mathrm{A}}$,
- <family> is recognized as an alphabetic font family.
+\item If the family~\meta{family} has been listed in a list~$F_{\mathrm{A}}$,
+ \meta{family} is recognized as an alphabetic font family.
%</en>
%<*ja>
-\item ファミリ<family>がリスト$F_{\mathrm{A}}$に既に含まれていれば,
- <family>は欧文フォントファミリと認識される.
+\item ファミリ\meta{family}がリスト$F_{\mathrm{A}}$に既に含まれていれば,
+ \meta{family}は欧文フォントファミリと認識される.
%</ja>
%<*en>
-\item If the family~<family> has been listed in a list~$N_{\mathrm{A}}$, this means
- that <family> is not an alphabetic font family.
+\item If the family~\meta{family} has been listed in a list~$N_{\mathrm{A}}$, this means
+ that \meta{family} is not an alphabetic font family.
%</en>
%<*ja>
-\item ファミリ<family>がリスト$N_{\mathrm{A}}$に既に含まれていれば,それは
- <family>が欧文フォントファミリではないことを意味する.
+\item ファミリ\meta{family}がリスト$N_{\mathrm{A}}$に既に含まれていれば,それは
+ \meta{family}が欧文フォントファミリではないことを意味する.
%</ja>
%<*en>
-\item If there exists an alphabetic font encoding such that the family~<family> has been
- defined under it, <family> is recognized as an alphabetic font family, and
- to memorize this, <family> is appended to the list~$F_{\mathrm{A}}$.
+\item If there exists an alphabetic font encoding such that the family~\meta{family} has been
+ defined under it, \meta{family} is recognized as an alphabetic font family, and
+ to memorize this, \meta{family} is appended to the list~$F_{\mathrm{A}}$.
%</en>
%<*ja>
-\item ある欧文フォントエンコーディング下でファミリ<family>が定義されていれば,
- <family>は欧文フォントファミリと認識され,リスト$F_{\mathrm{A}}$に<family>を追加することでこのことを記憶する.
+\item ある欧文フォントエンコーディング下でファミリ\meta{family}が定義されていれば,
+ \meta{family}は欧文フォントファミリと認識され,リスト$F_{\mathrm{A}}$に\meta{family}を追加することでこのことを記憶する.
%</ja>
%<*en>
-\item Now \LuaTeX-ja looks whether there exists an alphabetic font encoding~<enc> such that
- a font definition named \texttt{<enc><family>.fd} (the file name is
+\item Now \LuaTeX-ja looks whether there exists an alphabetic font encoding~\meta{enc} such that
+ a font definition named \texttt{\meta{enc}\meta{family}.fd} (the file name is
all lowercase) exists. If so, current alphabetic font family will be changed to
- <family>~(the font definition file won't be loaded here).
+ \meta{family}~(the font definition file won't be loaded here).
If not, current alphabetic font family won't be changed, and
- <family> is appended to the list~$N_{\mathrm{A}}$.
+ \meta{family} is appended to the list~$N_{\mathrm{A}}$.
%</en>
%<*ja>
-\item 最終段階では,欧文エンコーディング<enc>で
-フォント定義ファイル\texttt{<enc><family>.fd}(ファイル名は全て小文字)が存在するようなも
+\item 最終段階では,欧文エンコーディング\meta{enc}で
+フォント定義ファイル\texttt{\meta{enc}\meta{family}.fd}(ファイル名は全て小文字)が存在するようなも
のがあるかどうかを調べる.
-存在すれば,<family>は欧文フォントファミリと認識される(フォント定義ファイルは読み込まれない).
-存在しなければ,<family>は欧文フォントファミリと認識されないので,リスト$N_{\mathrm{A}}$に
- <family>を追加してそのことを記憶する.
+存在すれば,\meta{family}は欧文フォントファミリと認識される(フォント定義ファイルは読み込まれない).
+存在しなければ,\meta{family}は欧文フォントファミリと認識されないので,リスト$N_{\mathrm{A}}$に
+ \meta{family}を追加してそのことを記憶する.
%</ja>
\end{enumerate}
@@ -7046,17 +7003,17 @@ loaded.
%<en>\paragraph{Remarks}
%<ja>\paragraph{注意}
%<*en>
-Of course, there is a case that <family> is not recognized as a Japanese font family, nor
+Of course, there is a case that \meta{family} is not recognized as a Japanese font family, nor
an alphabetic font family.
-In this case, \LuaTeX-ja treats ``the argument <family> is wrong'', so
-set both current alphabetic and Japanese font family to <family>,
+In this case, \LuaTeX-ja treats ``the argument \meta{family} is wrong'', so
+set both current alphabetic and Japanese font family to \meta{family},
to use the default family for font substitution.
%</en>
%<*ja>
さて,引数によっては,「和文フォントファミリとも欧文フォントファミリも認識されなかった」
という事態もあり得る.
- この場合,引数<family>は不正だった,ということになるので,
-和文・欧文の両方のフォントファミリを<family>に設定し,代用フォントが使われるに任せることにする.
+ この場合,引数\meta{family}は不正だった,ということになるので,
+和文・欧文の両方のフォントファミリを\meta{family}に設定し,代用フォントが使われるに任せることにする.
%</ja>
%<*en>
@@ -7137,63 +7094,63 @@ expl3の文法に沿った組方向変更命令や組方向による条件判断
\item[\cs{platex\_if\_direction\_yoko\_p:}]
%<en>\ \\[\dimexpr-\medskipamount-2\baselineskip\relax]
%<ja>\ \\[\dimexpr-2\baselineskip\relax]
- \item[\cs{platex\_if\_direction\_yoko:\underline{\textsl{TF}}} \{<true code>\} \{<false code>\}]
+ \item[\cs{platex\_if\_direction\_yoko:\underline{\textsl{TF}}} \{\meta{true code}\} \{\meta{false code}\}]
%<ja> 現在の組方向が横組であるか否かをテストする.
%<en> Tests if the current direction is \emph{yoko} (horizontal writing).
\item[\cs{platex\_if\_direction\_tate\_nomath\_p:}$^\dagger$]
%<en>\ \\[\dimexpr-\medskipamount-2\baselineskip\relax]
%<ja>\ \\[\dimexpr-2\baselineskip\relax]
- \item[\cs{platex\_if\_direction\_tate\_nomath:\underline{\textsl{TF}}}$^\dagger$ \{<true code>\} \{<false code>\}]
+ \item[\cs{platex\_if\_direction\_tate\_nomath:\underline{\textsl{TF}}}$^\dagger$ \{\meta{true code}\} \{\meta{false code}\}]
%<ja> 現在の組方向が縦組であるか否かをテストする.
%<en> Tests if the current direction is \emph{tate} (vertical writing).
\item[\cs{platex\_if\_direction\_tate\_math\_p:}$^\dagger$]
%<en>\ \\[\dimexpr-\medskipamount-2\baselineskip\relax]
%<ja>\ \\[\dimexpr-2\baselineskip\relax]
- \item[\cs{platex\_if\_direction\_tate\_math:\underline{\textsl{TF}}}$^\dagger$ \{<true code>\} \{<false code>\}]
+ \item[\cs{platex\_if\_direction\_tate\_math:\underline{\textsl{TF}}}$^\dagger$ \{\meta{true code}\} \{\meta{false code}\}]
%<ja> 現在の組方向がutod方向(\pTeX でいう「縦数式ディレクション」)であるか否かをテストする.
%<en> Tests if the current direction is \emph{utod}.
\item[\cs{platex\_if\_direction\_tate\_p:}]
%<en>\ \\[\dimexpr-\medskipamount-2\baselineskip\relax]
%<ja>\ \\[\dimexpr-2\baselineskip\relax]
- \item[\cs{platex\_if\_direction\_tate:\underline{\textsl{TF}}} \{<true code>\} \{<false code>\}]
+ \item[\cs{platex\_if\_direction\_tate:\underline{\textsl{TF}}} \{\meta{true code}\} \{\meta{false code}\}]
%<ja> 現在の組方向が縦組またはutod方向であるか否かをテストする.
%<en> Tests if the current direction is \emph{tate}~or~\emph{utod}.
\item[\cs{platex\_if\_direction\_dtou\_p:}]
%<en>\ \\[\dimexpr-\medskipamount-2\baselineskip\relax]
%<ja>\ \\[\dimexpr-2\baselineskip\relax]
- \item[\cs{platex\_if\_direction\_dtou:\underline{\textsl{TF}}} \{<true code>\} \{<false code>\}]
+ \item[\cs{platex\_if\_direction\_dtou:\underline{\textsl{TF}}} \{\meta{true code}\} \{\meta{false code}\}]
%<ja> 現在の組方向がdtou方向であるか否かをテストする.
%<en> Tests if the current direction is \emph{dtou}.
- \item[\cs{platex\_if\_box\_yoko\_p:N} <box>]
+ \item[\cs{platex\_if\_box\_yoko\_p:N} \meta{box}]
%<en>\ \\[\dimexpr-\medskipamount-2\baselineskip\relax]
%<ja>\ \\[\dimexpr-2\baselineskip\relax]
- \item[\cs{platex\_if\_box\_yoko:N\underline{\textsl{TF}}} <box> \{<true code>\} \{<false code>\}]
-%<ja> ボックス<box>の組方向が横組であるか否かをテストする.
-%<en> Tests if the direction of <box> is \emph{yoko}.
- \item[\cs{platex\_if\_box\_tate\_nomath\_p:N}$^\dagger$ <box>]
+ \item[\cs{platex\_if\_box\_yoko:N\underline{\textsl{TF}}} \meta{box} \{\meta{true code}\} \{\meta{false code}\}]
+%<ja> ボックス\meta{box}の組方向が横組であるか否かをテストする.
+%<en> Tests if the direction of \meta{box} is \emph{yoko}.
+ \item[\cs{platex\_if\_box\_tate\_nomath\_p:N}$^\dagger$ \meta{box}]
%<en>\ \\[\dimexpr-\medskipamount-2\baselineskip\relax]
%<ja>\ \\[\dimexpr-2\baselineskip\relax]
- \item[\cs{platex\_if\_box\_tate\_nomath:N\underline{\textsl{TF}}}$^\dagger$ <box> \{<true code>\} \{<false code>\}]
-%<ja> ボックス<box>の組方向が縦組であるか否かをテストする.
-%<en> Tests if the direction of <box> is \emph{tate}.
- \item[\cs{platex\_if\_box\_tate\_math\_p:N}$^\dagger$ <box>]
+ \item[\cs{platex\_if\_box\_tate\_nomath:N\underline{\textsl{TF}}}$^\dagger$ \meta{box} \{\meta{true code}\} \{\meta{false code}\}]
+%<ja> ボックス\meta{box}の組方向が縦組であるか否かをテストする.
+%<en> Tests if the direction of \meta{box} is \emph{tate}.
+ \item[\cs{platex\_if\_box\_tate\_math\_p:N}$^\dagger$ \meta{box}]
%<en>\ \\[\dimexpr-\medskipamount-2\baselineskip\relax]
%<ja>\ \\[\dimexpr-2\baselineskip\relax]
- \item[\cs{platex\_if\_box\_tate\_math:N\underline{\textsl{TF}}}$^\dagger$ <box> \{<true code>\} \{<false code>\}]
-%<ja> ボックス<box>の組方向がutod方向であるか否かをテストする.
-%<en> Tests if the direction of <box> is \emph{utod}.
- \item[\cs{platex\_if\_box\_tate\_p:N} <box>]
+ \item[\cs{platex\_if\_box\_tate\_math:N\underline{\textsl{TF}}}$^\dagger$ \meta{box} \{\meta{true code}\} \{\meta{false code}\}]
+%<ja> ボックス\meta{box}の組方向がutod方向であるか否かをテストする.
+%<en> Tests if the direction of \meta{box} is \emph{utod}.
+ \item[\cs{platex\_if\_box\_tate\_p:N} \meta{box}]
%<en>\ \\[\dimexpr-\medskipamount-2\baselineskip\relax]
%<ja>\ \\[\dimexpr-2\baselineskip\relax]
- \item[\cs{platex\_if\_box\_tate:N\underline{\textsl{TF}}} <box> \{<true code>\} \{<false code>\}]
-%<ja> ボックス<box>の組方向が縦組またはutod方向であるか否かをテストする.
-%<en> Tests if the direction of <box> is \emph{tate}~or~\emph{utod}.
- \item[\cs{platex\_if\_box\_dtou\_p:N} <box>]
+ \item[\cs{platex\_if\_box\_tate:N\underline{\textsl{TF}}} \meta{box} \{\meta{true code}\} \{\meta{false code}\}]
+%<ja> ボックス\meta{box}の組方向が縦組またはutod方向であるか否かをテストする.
+%<en> Tests if the direction of \meta{box} is \emph{tate}~or~\emph{utod}.
+ \item[\cs{platex\_if\_box\_dtou\_p:N} \meta{box}]
%<en>\ \\[\dimexpr-\medskipamount-2\baselineskip\relax]
%<ja>\ \\[\dimexpr-2\baselineskip\relax]
-\item[\cs{platex\_if\_box\_dtou:N\underline{\textsl{TF}}} <box> \{<true code>\} \{<false code>\}]
-%<ja> ボックス<box>の組方向がdtou方向であるか否かをテストする.
-%<en> Tests if the direction of <box> is \emph{dtou}.
+\item[\cs{platex\_if\_box\_dtou:N\underline{\textsl{TF}}} \meta{box} \{\meta{true code}\} \{\meta{false code}\}]
+%<ja> ボックス\meta{box}の組方向がdtou方向であるか否かをテストする.
+%<en> Tests if the direction of \meta{box} is \emph{dtou}.
\end{cslist}
@@ -7231,7 +7188,7 @@ the commands of Japanese version:
\begin{cslist}
-\item[CID=<name>\textrm{, }JFM=<name>\textrm{, }JFM-var=<name>]
+\item[CID=\meta{name}\textrm{, }JFM=\meta{name}\textrm{, }JFM-var=\meta{name}]
%<*en>
These 3 keys correspond to \texttt{cid}, \texttt{jfm} and
@@ -7282,7 +7239,7 @@ will not be embedded in the output PDF file. See Subsection~\ref{ssec:psft}.
\label{fig:yokotate-fontspec}
\end{figure}
-\item[Kanjiskip=<bool>]
+\item[Kanjiskip=\meta{bool}]
%<*ja>
\pageref{pg:ltjksp}ページで説明した \verb+\jfont+ 中での \texttt{ltjksp} 指定と
同一の効力を持ち,
@@ -7291,7 +7248,7 @@ JFM中における \texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
標準値は \texttt{true} である.
%</ja>
-\item[TateFeatures=\{<features>\}\textrm{, }TateFont=<font>]
+\item[TateFeatures=\{\meta{features}\}\textrm{, }TateFont=\meta{font}]
%<*en>
The \texttt{TateFeatures} key specifies font features which are only turned~on in
vertical writing, such as \texttt{Style=VerticalKana}~(\texttt{vkna} feature).
@@ -7304,7 +7261,7 @@ A demonstrarion is shown in \autoref{fig:yokotate-fontspec}.
指定する.使用例は\autoref{fig:yokotate-fontspec}参照.
%</ja>
-\item[YokoFeatures=\{<features>\}]
+\item[YokoFeatures=\{\meta{features}\}]
%<*en>
The \texttt{YokoFeatures} key specifies font features which are only turned~on in
horizontal writing,.
@@ -7352,9 +7309,9 @@ as the following:
\begin{lstlisting}[escapechar=\#]
AltFont = {
...
- { Range=#\LARG range>#, #\LARG features>#},
- { Range=#\LARG range>#, Font=#\LARG font~name>#, #\LARG features># },
- { Range=#\LARG range>#, Font=#\LARG font~name># },
+ { Range=#\meta{range}#, #\meta{features}#},
+ { Range=#\meta{range}#, Font=#\meta{font~name}#, #\meta{features}# },
+ { Range=#\meta{range}#, Font=#\meta{font~name}># },
...
}
\end{lstlisting}
@@ -7371,7 +7328,7 @@ A demonstrarion is shown in \autoref{fig:altkanji-fontspec}.
%<*ja>
なお,\Pkg{luatexja-fontspec} 読み込み時には和文フォント定義ファイル%
-\texttt{<ja-enc><family>.fd}は全く参照されなくなる.
+\texttt{\meta{ja-enc}\meta{family}.fd}は全く参照されなくなる.
%</ja>
@@ -7457,21 +7414,21 @@ commands:
\Pkg{luatexja-otf}は以下の2つの低レベルコマンドを提供する:
%</ja>
\begin{cslist}
-\item[\cs{CID}\{<number>\}]
+\item[\cs{CID}\{\meta{number}\}]
%<*en>
-Typeset a glyph whose CID number is <number>.
+Typeset a glyph whose CID number is \meta{number}.
If the Japanese font is neither Adobe-Japan1,~Adobe-GB1, Adobe-CNS1,
Adobe-Korea1,~nor~Adobe-KR CID-keyed font,
-\LuaTeX-ja treats that <number> is a CID number of Adobe-Japan1 character collection,
+\LuaTeX-ja treats that \meta{number} is a CID number of Adobe-Japan1 character collection,
and tries to typeset a ``most suitable glyph''.
Note that if the Japanese font is loaded using the HarfBuzz library, this \cs{CID}
command does not work.
%</en>
%<*ja>
-CID番号が<number>の文字を出力する.
+CID番号が\meta{number}の文字を出力する.
もし現在の和文フォントがAdobe-Japan1,~Adobe-GB1, Adobe-CNS1, Adobe-Korea1,~Adobe-KRの
- いずれのCID-keyed fontでもない場合,<number>はAdobe-Japan1のCID番号であると解釈し
+ いずれのCID-keyed fontでもない場合,\meta{number}はAdobe-Japan1のCID番号であると解釈し
「適切なグリフ」\footnote{%
特に縦組用グリフのCID番号を指定した場合は(LuaTeX-ja 20190504.0以降では若干改良されているが)
意図しない結果になる可能性が高い.
@@ -7483,15 +7440,15 @@ CID番号が<number>の文字を出力する.
なお,現在の和文フォントがHarfBuzzを用いて読み込まれた場合には,\cs{CID}は正しく動作しない.
%</ja>
-\item[\cs{UTF}\{<hex\_number>\}]
+\item[\cs{UTF}\{\meta{hex\_number}\}]
%<*en>
-Typeset a character whose character code is <hex\_number> (in hexadecimal).
-This command is similar to \verb+\char"+<hex\_number>,\ %"
+Typeset a character whose character code is \meta{hex\_number} (in hexadecimal).
+This command is similar to \verb+\char"+\meta{hex\_number},\ %"
but please remind remarks below.
%</en>
%<*ja>
-文字コードが(16進で)<hex\_number>の文字を出力する.
-このコマンドは \verb+\char"+<hex\_number>と似ているが,下の注意を参照すること.%"
+文字コードが(16進で)\meta{hex\_number}の文字を出力する.
+このコマンドは \verb+\char"+\meta{hex\_number}と似ているが,下の注意を参照すること.%"
%</ja>
\end{cslist}
@@ -7666,7 +7623,7 @@ for making the difference obvious.}
\item $d\ge\cs{lineskiplimit}$の場合,
標準の行送り\cs{baselineskip}で組んでも十分な間隔があると判断され,
2行の間には長さ$d$の空白が挿入される.つまり行送りは\cs{baselineskip}.
- \item {\catcode`\<=12$d<\cs{lineskiplimit}$}の場合,
+ \item $d<\cs{lineskiplimit}$の場合,
2行の間には長さ\cs{lineskip}の空白が挿入される.
そのため(設定値によるが,多くの場合)行送りは\cs{baselineskip}より広がる.
\end{itemize}
@@ -7773,7 +7730,7 @@ for making the difference obvious.}
場合によっては行送りを「\cs{baselineskip}の整数倍」などと切りのいい値に揃えたいという状況が
考えられなくもない.
- \Pkg{luatexja-adjust}パッケージでは,{\catcode`\<=12$d<\cs{lineskiplimit}$}のときに
+ \Pkg{luatexja-adjust}パッケージでは,$d<\cs{lineskiplimit}$のときに
行送りを\cs{baselineskip}の\Param{linestep\_factor}倍ずつ増減させて
\begin{quote}
行間が\cs{lineskip}以上となるような,
@@ -7830,11 +7787,11 @@ for making the difference obvious.}
また,次のパラメータが\cs{ltjsetparameter}内で
追加される.いずれもグローバルに効力を発揮する.
\begin{cslist}[style=standard]
-\item[\DParam{stretch\_priority}\,=\{<list>\}]
+\item[\DParam{stretch\_priority}\,=\{\meta{list}\}]
\Param{kanjiskip}, \Param{xkanjiskip},および「\textbf{JAglue}以外のグルー」を,
「行を自然長より伸ばす」場合の調整に用いる優先度を指定する.
-指定方法は,<list>の中にkey-value listの形で
+指定方法は,\meta{list}の中にkey-value listの形で
\begin{lstlisting}
stretch_priority={kanjiskip=-35,xkanjiskip=-25,others=50}
\end{lstlisting}
@@ -7849,17 +7806,17 @@ stretch_priority={kanjiskip=-35,xkanjiskip=-25,others=50}
\end{lstlisting}
であり,「優先度$-4$」と指定されているJFMグルーが最も伸びにくいようになっている.
-\item[\DParam{shrink\_priority}\,=\{<list>\}]
+\item[\DParam{shrink\_priority}\,=\{\meta{list}\}]
同様に,「行を自然長より縮める」場合の調整に用いる優先度を指定する.
それ以外は\Param{stretch\_priority}と指定の形式は変わらない(初期値も変わらない).
- \item[\DParam{linestep\_factor}\,=<float>]
+ \item[\DParam{linestep\_factor}\,=\meta{float}]
段階的な行送り調整の際,\cs{baselineskip}の自然長の何倍単位で行送りを変えるかを指定する.
0を指定すると無効になるのと変わらない.また負数を指定すると,
その絶対値が指定されたかのように扱われる.
初期値は0.5(つまり半行単位)である.
- \item[\DParam{profile\_hgap\_factor}\,=<float>]
+ \item[\DParam{profile\_hgap\_factor}\,=\meta{float}]
「中身まで見た」行送り計算の際,
前の行にある深さが大きいものと次の行にある高さが大きいものが
水平方向にどれだけ離れていないといけないかを
@@ -8019,7 +7976,6 @@ among the line-head form, the line-middle form, and the line-end form.
それを\LuaTeX-ja用に書きなおしたものが本追加パッケージ \Pkg{lltjext} である.
従来の \Pkg{plext} パッケージとの違いは,
-{\catcode`\<=12
\begin{itemize}
\item 組方向オプション \texttt{<y>}(横組),\texttt{<t>}(縦組),
\texttt{<z>}\ の他に\ \texttt{<d>}(dtou方向),\texttt{<u>}(utod方向)を追加した.
@@ -8032,7 +7988,6 @@ among the line-head form, the line-middle form, and the line-end form.
\item 連数字用命令 \cs{rensuji} における位置合わせオプション \texttt{[l]}, \texttt{[c]},
\texttt{[r]} の挙動を若干変更した.
\end{itemize}
-}
%</ja>
%<*en>
@@ -8062,13 +8017,13 @@ counterpart of the \Pkg{plext} package.
\item[d] dtou方向
\item[u] utod方向
\end{description}
-\item[\cs{parbox}\<<dir>\>{[<pos>]}\{<width>\}\{<contents>\}]
+\item[\cs{parbox}<\meta{dir}>{[\meta{pos}]}\{\meta{width}\}\{\meta{contents}\}]
\cs{parbox} 命令も同様に,組方向の指定ができるように拡張されている.
-\item[\cs{pbox}\<<dir>\>{[<width>][<pos>]}\{<contents>\}]
-組方向<dir>で<contents>の中身をLRモードで組む命令である.
-<width>が正の値であるときは,ボックス全体の幅がその値となる.
-その際,中身は<pos>の値に従い,左寄せ(\texttt{l}),右揃え(\texttt{r}),
+\item[\cs{pbox}<\meta{dir}>{[\meta{width}][\meta{pos}]}\{\meta{contents}\}]
+組方向\meta{dir}で\meta{contents}の中身をLRモードで組む命令である.
+\meta{width}が正の値であるときは,ボックス全体の幅がその値となる.
+その際,中身は\meta{pos}の値に従い,左寄せ(\texttt{l}),右揃え(\texttt{r}),
中央揃え(それ以外)される.
\item[picture環境]
図表作成に用いる\texttt{picture}環境も,
@@ -8084,11 +8039,11 @@ $x$成分の増加方向は字送り方向,$y$成分の増加方向は行送
\cs{put},~\cs{line}, \cs{vector}, \cs{dashbox}, \cs{oval},~\cs{circle}も
ベースライン補正を受けないように再定義されている.
-\item[\cs{rensuji}{[<pos>]}\{<contents>\}\textrm{, }\cs{rensujiskip}]
+\item[\cs{rensuji}{[\meta{pos}]}\{\meta{contents}\}\textrm{, }\cs{rensujiskip}]
-\item[\cs{Kanji}\{<counter\_name>\}]
+\item[\cs{Kanji}\{\meta{counter\_name}\}]
-\item[\cs{kasen}\{<contents>\}\textrm{, }\cs{bou}\{<contents>\}\textrm{,
+\item[\cs{kasen}\{\meta{contents}\}\textrm{, }\cs{bou}\{\meta{contents}\}\textrm{,
}\cs{boutenchar}]
\item[参照番号]
@@ -8113,28 +8068,28 @@ the direction inside the environment is same as that outside the enviromnent.
\item[d] \emph{dtou} direction
\item[u] \emph{utod} direction
\end{description}
-\item[\cs{parbox}\<<dir>\>{[<pos>]}\{<width>\}\{<contents>\}]
-\cs{parbox} command is also extended by \texttt{\<<dir>\>}.
+\item[\cs{parbox}<\meta{dir}>{[\meta{pos}]}\{\meta{width}\}\{\meta{contents}\}]
+\cs{parbox} command is also extended by \texttt{<\meta{dir}>}.
-\item[\cs{pbox}\<<dir>\>{[<width>][<pos>]}\{<contents>\}]
-This commands typeset <contents> in LR-mode, in <dir> direction.
-If <width> is positive, the width of the box becomes this <width>.
-In this case, <contents> will be aligned to left (when <pos> is \texttt{l}),
+\item[\cs{pbox}<\meta{dir}>{[\meta{width}][\meta{pos}]}\{\meta{contents}\}]
+This commands typeset \meta{contents} in LR-mode, in \meta{dir} direction.
+If \meta{width} is positive, the width of the box becomes this \meta{width}.
+In this case, \meta{contents} will be aligned to left (when \meta{pos} is \texttt{l}),
center (\texttt{c}), or~right (\texttt{r}).
\item[picture\textrm{\ environment}]
-\texttt{picture} environment also extended by \texttt{\<<dir>\>}, as follows:
+\texttt{picture} environment also extended by \texttt{<\meta{dir}>}, as follows:
\begin{lstlisting}
\begin{picture}<dir>(x_size, y_size)(x_offset,y_offset)
...
\end{picture}
\end{lstlisting}
-\item[\cs{rensuji}{[<pos>]}\{<contents>\}\textrm{, }\cs{rensujiskip}]
+\item[\cs{rensuji}{[\meta{pos}]}\{\meta{contents}\}\textrm{, }\cs{rensujiskip}]
-\item[\cs{Kanji}\{<counter\_name>\}]
+\item[\cs{Kanji}\{\meta{counter\_name}\}]
-\item[\cs{kasen}\{<contents>\}\textrm{, }\cs{bou}\{<contents>\}\textrm{,
+\item[\cs{kasen}\{\meta{contents}\}\textrm{, }\cs{bou}\{\meta{contents}\}\textrm{,
}\cs{boutenchar}]
\item[参照番号]
@@ -8418,20 +8373,20 @@ since we use same font for both series of gothic.
\item[jis2004\textrm{,~}2004jis]
%<en>Use JIS~X~0213:2004 glyph variants if possible.
%<ja>出来る限りJIS~X~0213:2004の字形を使う.
-\item[jfm\_yoko=<jfm>]
+\item[jfm\_yoko=\meta{jfm}]
%<*en>
-Use the JFM \texttt{jfm-<jfm>.lua} for horizontal direction, instead of \texttt{jfm-ujis.lua}~(default JFM).
+Use the JFM \texttt{jfm-\meta{jfm}.lua} for horizontal direction, instead of \texttt{jfm-ujis.lua}~(default JFM).
%</en>
%<*ja>
-横組用和文フォントで用いるJFMを\texttt{jfm-<jfm>.lua}にする.このオプションがない時は
+横組用和文フォントで用いるJFMを\texttt{jfm-\meta{jfm}.lua}にする.このオプションがない時は
\LuaTeX\nobreakdash -ja標準の\texttt{jfm-ujis.lua}が用いられる.
%</ja>
-\item[jfm\_tate=<jfm>]
+\item[jfm\_tate=\meta{jfm}]
%<*en>
-Use the JFM \texttt{jfm-<jfm>.lua} for vertical direction, instead of \texttt{jfm-ujisv.lua}~(default JFM).
+Use the JFM \texttt{jfm-\meta{jfm}.lua} for vertical direction, instead of \texttt{jfm-ujisv.lua}~(default JFM).
%</en>
%<*ja>
-縦用和文フォントで用いるJFMを\texttt{jfm-<jfm>.lua}にする.このオプションがない時は
+縦用和文フォントで用いるJFMを\texttt{jfm-\meta{jfm}.lua}にする.このオプションがない時は
\LuaTeX-ja標準の\texttt{jfm-ujisv.lua}が用いられる.
%</ja>
@@ -8912,9 +8867,9 @@ From version~20170904.0, one can define new presets using \cs{ltjnewpreset},
and use them by \cs{ltjapplypreset}. These two commands can only be used in the preamble.
%</en>
\begin{cslist}
- \item[\cs{ltjnewpreset}\{<name>\}\{<specification>\}]
+ \item[\cs{ltjnewpreset}\{\meta{name}\}\{\meta{specification}\}]
%<*ja>
- 新たに<name>という名称のプリセットを定義する.この名称は,
+ 新たに\meta{name}という名称のプリセットを定義する.この名称は,
すでに定義されているプリセット名や,
\ref{sssec:ltjpreset-general}で定義されているオプション,さらに
次の13個と重複してはならない.
@@ -8923,35 +8878,35 @@ and use them by \cs{ltjapplypreset}. These two commands can only be used in the
mc mc-l mc-m mc-b mc-bx gt gt-u gt-d gt-m gt-b gt-bx gt-eb mg-m
\end{quote}
- <specification>は,プリセット名や以下のキー達のコンマ区切りリストを指定する:
+ \meta{specification}は,プリセット名や以下のキー達のコンマ区切りリストを指定する:
\begin{description}
- \item[\ttfamily mc-l=<font>] 明朝体細字(\cs{mcfamily}\cs{ltseries})
- \item[\ttfamily mc-m=<font>] 明朝体中字(\cs{mcfamily}\cs{mdseries})
- \item[\ttfamily mc-b=<font>] 明朝体太字(\cs{mcfamily}\cs{bfseries})
- \item[\ttfamily mc-bx=<font>] \texttt{mc-b=<font>}と同義.
- \item[\ttfamily gt-u=<font>] \texttt{deluxe}オプション未指定時のゴシック体(\cs{gtfamily})・明朝体太字
- \item[\ttfamily gt-d=<font>] \texttt{deluxe}オプション指定時のゴシック体中字(\cs{gtfamily}\cs{mdseries})
- \item[\ttfamily gt-m=<font>] \texttt{deluxe}オプションの指定の有無に関係なく
- ゴシック体中字(\cs{gtfamily}\cs{mdseries})を指定する.「\texttt{gt-u=<font>, gt-d<font>}」と同義.
- \item[\ttfamily gt-b=<font>] ゴシック体太字(\cs{gtfamily}\cs{bfseries})\\
- なお,パッケージ読み込み時に\texttt{bold}オプションが指定された場合は,\texttt{mc-b=<font>}を指定したことにもなる.
- \item[\ttfamily gt-bx=<font>] \texttt{gt-b=<font>}と同義.
- \item[\ttfamily gt-eb=<font>] ゴシック体太字(\cs{gtfamily}\cs{ebseries})
- \item[\ttfamily mg-m=<font>] 丸ゴシック体(\cs{mgfamily})
- \item[\ttfamily mc=<font>] 明朝体の細字・中字・太字全部を設定.
+ \item[\ttfamily mc-l=\meta{font}] 明朝体細字(\cs{mcfamily}\cs{ltseries})
+ \item[\ttfamily mc-m=\meta{font}] 明朝体中字(\cs{mcfamily}\cs{mdseries})
+ \item[\ttfamily mc-b=\meta{font}] 明朝体太字(\cs{mcfamily}\cs{bfseries})
+ \item[\ttfamily mc-bx=\meta{font}] \texttt{mc-b=\meta{font}}と同義.
+ \item[\ttfamily gt-u=\meta{font}] \texttt{deluxe}オプション未指定時のゴシック体(\cs{gtfamily})・明朝体太字
+ \item[\ttfamily gt-d=\meta{font}] \texttt{deluxe}オプション指定時のゴシック体中字(\cs{gtfamily}\cs{mdseries})
+ \item[\ttfamily gt-m=\meta{font}] \texttt{deluxe}オプションの指定の有無に関係なく
+ ゴシック体中字(\cs{gtfamily}\cs{mdseries})を指定する.「\texttt{gt-u=\meta{font}, gt-d\meta{font}}」と同義.
+ \item[\ttfamily gt-b=\meta{font}] ゴシック体太字(\cs{gtfamily}\cs{bfseries})\\
+ なお,パッケージ読み込み時に\texttt{bold}オプションが指定された場合は,\texttt{mc-b=\meta{font}}を指定したことにもなる.
+ \item[\ttfamily gt-bx=\meta{font}] \texttt{gt-b=\meta{font}}と同義.
+ \item[\ttfamily gt-eb=\meta{font}] ゴシック体太字(\cs{gtfamily}\cs{ebseries})
+ \item[\ttfamily mg-m=\meta{font}] 丸ゴシック体(\cs{mgfamily})
+ \item[\ttfamily mc=\meta{font}] 明朝体の細字・中字・太字全部を設定.
以下を指定したことと同じである:
\begin{quote}
- \ttfamily mc-l=<font>, mc-m=<font>, mc-b=<font>
+ \ttfamily mc-l=\meta{font}, mc-m=\meta{font}, mc-b=\meta{font}
\end{quote}
- \item[\ttfamily gt=<font>] ゴシック体の中字・太字・極太全部を設定.
+ \item[\ttfamily gt=\meta{font}] ゴシック体の中字・太字・極太全部を設定.
以下を指定したことと同じである:
\begin{quote}
- \ttfamily gt-u=<font>, gt-d=<font>, gt-b=<font>, gt-eb=<font>
+ \ttfamily gt-u=\meta{font}, gt-d=\meta{font}, gt-b=\meta{font}, gt-eb=\meta{font}
\end{quote}
\end{description}
%</ja>
%<*en>
- Define new preset~<name>. This <name> cannot be same as other presets,
+ Define new preset~\meta{name}. This <name> cannot be same as other presets,
options described in Subsubsection~\ref{sssec:ltjpreset-general}, nor
following 13~strings:
\begin{quote}
@@ -8959,47 +8914,47 @@ and use them by \cs{ltjapplypreset}. These two commands can only be used in the
mc mc-l mc-m mc-b mc-bx gt gt-u gt-d gt-m gt-b gt-bx gt-eb mg-m
\end{quote}
- <specification> is a comma-separated list which consists of
+ \meta{specification} is a comma-separated list which consists of
other presets and/or the following keys:
\begin{description}
- \item[\ttfamily mc-l=<font>] mincho light
- \item[\ttfamily mc-m=<font>] mincho medium
- \item[\ttfamily mc-b=<font>] mincho bold
- \item[\ttfamily mc-bx=<font>] synonym for \texttt{mc-b=<font>}
- \item[\ttfamily gt-u=<font>] gothic, when \texttt{deluxe}~option is not specified.
- \item[\ttfamily gt-d=<font>] gothic medium, when \texttt{deluxe}~option is specified.
- \item[\ttfamily gt-m=<font>] gothic medium. This key is equivalent to ``\texttt{gt-u=<font>, gt-d<font>}''.
- \item[\ttfamily gt-b=<font>] gothic bold\\
+ \item[\ttfamily mc-l=\meta{font}] mincho light
+ \item[\ttfamily mc-m=\meta{font}] mincho medium
+ \item[\ttfamily mc-b=\meta{font}] mincho bold
+ \item[\ttfamily mc-bx=\meta{font}] synonym for \texttt{mc-b=\meta{font}}
+ \item[\ttfamily gt-u=\meta{font}] gothic, when \texttt{deluxe}~option is not specified.
+ \item[\ttfamily gt-d=\meta{font}] gothic medium, when \texttt{deluxe}~option is specified.
+ \item[\ttfamily gt-m=\meta{font}] gothic medium. This key is equivalent to ``\texttt{gt-u=\meta{font}, gt-d\meta{font}}''.
+ \item[\ttfamily gt-b=\meta{font}] gothic bold\\
Note that this key also specifies mincho bold if \texttt{bold} option is specified.
- \item[\ttfamily gt-bx=<font>] synonym for \texttt{gt-b=<font>}
- \item[\ttfamily gt-eb=<font>] gothic extra~bold
- \item[\ttfamily mg-m=<font>] rounded gothic
- \item[\ttfamily mc=<font>] Equivalent to
+ \item[\ttfamily gt-bx=\meta{font}] synonym for \texttt{gt-b=\meta{font}}
+ \item[\ttfamily gt-eb=\meta{font}] gothic extra~bold
+ \item[\ttfamily mg-m=\meta{font}] rounded gothic
+ \item[\ttfamily mc=\meta{font}] Equivalent to
\begin{quote}
- \ttfamily mc-l=<font>, mc-m=<font>, mc-b=<font>
+ \ttfamily mc-l=\meta{font}, mc-m=\meta{font}, mc-b=\meta{font}
\end{quote}
- \item[\ttfamily gt=<font>] Equivalent to
+ \item[\ttfamily gt=\meta{font}] Equivalent to
\begin{quote}
- \ttfamily gt-u=<font>, gt-d=<font>, gt-b=<font>, gt-eb=<font>
+ \ttfamily gt-u=\meta{font}, gt-d=\meta{font}, gt-b=\meta{font}, gt-eb=\meta{font}
\end{quote}
\end{description}
%</en>
- \item[\cs{ltjnewpreset}*\{<name>\}\{<specification>\}]
+ \item[\cs{ltjnewpreset}*\{\meta{name}\}\{\meta{specification}\}]
%<*ja>
\cs{ltjnewpreset}とほぼ同じであるが,こちらはすでに定義されているプリセット名
- を<name>に指定した場合にはエラーを出さずに定義を置き換える.
+ を\meta{name}に指定した場合にはエラーを出さずに定義を置き換える.
%</ja>
%<*en>
- Almost same as \cs{ltjnewpreset}. However, if <name> matches a preset which already defined,
+ Almost same as \cs{ltjnewpreset}. However, if \meta{name} matches a preset which already defined,
this command simply overwrite it.
%</en>
- \item[\cs{ltjapplypreset}\{<name>\}]
-%<ja> <name>で指定されたプリセットを使って和文フォントを設定する.
-%<en> Set Japanese font families using preset~<name>.
+ \item[\cs{ltjapplypreset}\{\meta{name}\}]
+%<ja> \meta{name}で指定されたプリセットを使って和文フォントを設定する.
+%<en> Set Japanese font families using preset~\meta{name}.
\end{cslist}
%<*ja>
-なお,\cs{ltjnewpreset}の第二引数<specification>に含まれる
+なお,\cs{ltjnewpreset}の第二引数\meta{specification}に含まれる
プリセット名は\cs{ltjnewpreset}の時点で定義されている必要はなく,
\cs{ltjapplypreset}で実際に使うときに定義されていれば良い.
そのため,次のような記述も可能である:
@@ -9152,9 +9107,11 @@ The character class of a \textbf{JAchar}. This attribute is only set on a
\attr{ltj@yablshift}
%<*en>
The amount of shifting the baseline of alphabetic fonts in scaled point ($2^{-16}\,\textrm{pt}$).
+``unset'' means zero.
%</en>
%<*ja>
スケールド・ポイント($2^{-16}\,\textrm{pt}$)を単位とした欧文フォントのベースラインの移動量.
+この属性が「未設定」(\texttt{-"7FFFFFFF})のときは0であるとみなされる.\cs{ltj@ykblshift}他も同様.
%</ja>
\attr{ltj@ykblshift}
@@ -9171,17 +9128,21 @@ The amount of shifting the baseline of Japanese fonts in scaled point ($2^{-16}\
\attr{ltj@autospc}
%<*en>
Whether the auto insertion of \Param{kanjiskip} is allowed at the node.
+0 means ``not allowed'', and the other value (including ``unset'') means ``allowed''.
%</en>
%<*ja>
そのノードで\Param{kanjiskip}の自動挿入が許されるかどうか.
+0は「許可しない」,0以外の値(「未設定」も含む)は「許可する」.
%</ja>
\attr{ltj@autoxspc}
%<*en>
Whether the auto insertion of \Param{xkanjiskip} is allowed at the node.
+0 means ``not allowed'', and the other value (including ``unset'') means ``allowed''.
%</en>
%<*ja>
そのノードで\Param{xkanjiskip}の自動挿入が許されるかどうか.
+0は「許可しない」,0以外の値(「未設定」も含む)は「許可する」.
%</ja>
\attr{ltj@icflag}
@@ -9672,17 +9633,17 @@ but also by the value of \cs{globaldefs}.
%</en>
%<*ja>
\paragraph{パラメータの設定}
-\cs{ltjsetparameter} と,\cs{ltjglobalsetparameter} の定義は\autoref{fig:setpar-def}の
+\cs{ltjsetparameter}と,\cs{ltjglobalsetparameter}の定義は\autoref{fig:setpar-def}の
のようになっている.
-本質的なのは最後の \cs{setkeys} で,これは\Pkg{xkeyval}パッケージの提供する命令である.
+本質的なのは最後の\cs{setkeys}で,これは\Pkg{xkeyval}パッケージの提供する命令である.
-このため,\cs{ltjsetparameter} に指定可能なパラメータを追加するには,
-<prefix>を \texttt{ltj},<family>を \texttt{japaram} としたキーを
+このため,\cs{ltjsetparameter}に指定可能なパラメータを追加するには,
+\meta{prefix}を\texttt{ltj},\meta{family}を\texttt{japaram}としたキーを
\begin{lstlisting}
\define@key[ltj]{japaram}{...}{...}
\end{lstlisting}
のように定義すれば良いだけである.
-なお,パラメータ指定がグローバルかローカルかどうかを示す \texttt{luatexja.isglobal} が,
+なお,パラメータ指定がグローバルかローカルかどうかを示す\texttt{luatexja.isglobal}が,
\begin{align}
\texttt{luatexja.isglobal} =
\begin{cases*}
@@ -9690,8 +9651,8 @@ but also by the value of \cs{globaldefs}.
\texttt{''}&(パラメータ設定はローカル).
\end{cases*}
\end{align}
-として自動的にセットされる\footnote{命令が \cs{ltjglobalsetparameter} かどうかだけでは
-なく,実行時の \cs{globaldefs} の値にも依存して定まる.}.
+として自動的にセットされる\footnote{命令が\cs{ltjglobalsetparameter}かどうかだけでは
+なく,実行時の\cs{globaldefs}の値にも依存して定まる.}.
%</ja>
%<*en>
@@ -10138,11 +10099,11 @@ fonts might not have these transformation as an OpenType feature.
\LuaTeX-jaにおける \textbf{JAglue} の挿入方法は,\pTeX のそれとは全く異なる.
\pTeX では次のような仕様であった:
\begin{itemize}
-\item JFMグルーの挿入は,和文文字を表すトークンを元に水平リストに(文字を表す)<char\_node>を
+\item JFMグルーの挿入は,和文文字を表すトークンを元に水平リストに(文字を表す)\meta{char\_node}を
追加する過程で行われる.
\item \Param{xkanjiskip}の挿入は,hboxへのパッケージングや行分割前に行われる.
\item \Param{kanjiskip}はノードとしては挿入されない.パッケージングや行分割の計算時に
-「和文文字を表す2つの<char\_node>の間には\Param{kanjiskip}がある」ものとみなされる.
+「和文文字を表す2つの\meta{char\_node}の間には\Param{kanjiskip}がある」ものとみなされる.
\end{itemize}
しかし,\LuaTeX-jaでは,hboxへのパッケージングや行分割前に全ての
\textbf{JAglue},即ちJFMグルー・\Param{xkanjiskip}・\Param{kanjiskip}の
@@ -10458,16 +10419,16 @@ ga&(\inhibitglue 「使用フォントが\textit{Np}のそれと同じで,\hfi
\]
として,前側の文字のJFMを使った時の空白(グルー/カーン)と,後側の文字のJFMを使った時のそれを求める.
-$\mathit{gb}$,~$\mathit{ga}$それぞれに対する<ratio>の値を$d_b$,~$d_a$とする.
+$\mathit{gb}$,~$\mathit{ga}$それぞれに対する\meta{ratio}の値を$d_b$,~$d_a$とする.
\begin{itemize}
\item
$\mathit{ga}$と$\mathit{gb}$の両方が未定義であるならば,JFM由来のグルーは挿入されず,
\Param{kanjiskip}を採用することとなる.
-どちらか片方のみが未定義であるならば,次のステップでその未定義の方は長さ0のkernで,<ratio>の値は0であるかのように扱われる.
+どちらか片方のみが未定義であるならば,次のステップでその未定義の方は長さ0のkernで,\meta{ratio}の値は0であるかのように扱われる.
\item
\Param{diffrentjfm}の値が \texttt{pleft}, \texttt{pright},
\texttt{paverage} のとき,
-<ratio>の指定に従って比例配分を行う.
+\meta{ratio}の指定に従って比例配分を行う.
JFM由来のグルー/カーンは以下の値となる:
\[
f\left(\frac{1-d_b}2\textit{gb} + \frac{1+d_b}2\textit{ga},
@@ -10482,7 +10443,7 @@ y&($\Param{diffrentjfm}=\texttt{pright}$),\\
\end{dcases*}
\]
\item
-\Param{differentjfm}がそれ以外の値の時は,<ratio>の値は無視され,JFM由来のグルー/カーンは以下の値となる:
+\Param{differentjfm}がそれ以外の値の時は,\meta{ratio}の値は無視され,JFM由来のグルー/カーンは以下の値となる:
\[
f(\textit{gb},\textit{ga})
\]
@@ -10849,7 +10810,6 @@ $\mathit{Nq}.\mathit{tail}$は無意味なので,
さて,\texttt{yoffset} の増減によって見かけのグリフ位置は上下に移動するが,
仮想ボディの高さ$h$,深さ$d$については
\begin{description}
-\catcode`\<=12\catcode`\>=12
\item[$\texttt{yoffset}\geq 0$のとき]
$h = \max(\texttt{height} + \texttt{yoffset}, 0)$,
$d = \max(\texttt{depth} - \texttt{yoffset}, 0)$,
@@ -11367,7 +11327,6 @@ T^{+}&:=T^{+}_{L^+},&L^{+} = \max \{l\in
「行末に$a_{i}$全角だけのカーンを追加した時の,\textit{glue\_set}の値」を
$b_{i}$とおく.式で書くと,
\[
-\catcode`\<=12
b_{i} = \begin{dcases*}
\frac{\lvert\textit{total}-a_{i}\text{\cs{zw}}\rvert}{T^{+}}
&($\textit{total}-a_{i}\text{\cs{zw}}\geq 0$),\\
@@ -11452,7 +11411,7 @@ $|\textit{total}|$の分だけが,行中のグルーの伸び量,あるい
\item \textit{total}が「(A)の伸び量の合計」以上ならば,(A)--(K)のどこまで負担すれば
\textit{total}以上になるかを計算する.
例えば,
-\[\catcode`\<=12
+\[
\textit{total} = (\text{(A)--(B)の伸び量の合計}) + p\cdot (\text{(C)の伸び量の合計}),
\qquad 0\le p<1
\]
@@ -11618,71 +11577,71 @@ This file conains some information (especially for vertical typesetting) about t
Cache management system of \LuaTeX-ja is stored in \texttt{luatexja.base}
(\texttt{ltj-base.lua}).
There are four public functions for cache management in \texttt{luatexja.base},
-where <filename> stands for the file name \emph{without suffix}:
+where \meta{filename} stands for the file name \emph{without suffix}:
\begin{cslist}
-\item[save\_cache(<filename>, <data>)]
-Save a non-nil table <data> into a cache <filename>.
-Both the compressed text form <filename>\texttt{.lua.gz} and its binary version
+\item[save\_cache(\meta{filename}, \meta{data})]
+Save a non-nil table \meta{data} into a cache \meta{filename}.
+Both the compressed text form \meta{filename}\texttt{.lua.gz} and its binary version
are created or updated.
-\item[save\_cache\_luc(<filename>, <data>{[, <serialized\_data>]})]
+\item[save\_cache\_luc(\meta{filename}, \meta{data}{[, \meta{serialized\_data}]})]
Same as \texttt{save\_cache}, except that only the binary cache is updated.
-The third argument <serialized\_data> is not usually given.
-But if this is given, it is treated as a string representation of <data>.
+The third argument \meta{serialized\_data} is not usually given.
+But if this is given, it is treated as a string representation of \meta{data}.
-\item[load\_cache(<filename>, <outdate>)]
-Load the cache <filename>.
-<outdate> is a function which takes one argument (the contents of the cache),
+\item[load\_cache(\meta{filename}, \meta{outdate})]
+Load the cache \meta{filename}.
+\meta{outdate} is a function which takes one argument (the contents of the cache),
and its return value is whether the cache is outdated.
\texttt{load\_cache} first tries to
-read the binary cache <filename>\texttt{.luc}.
+read the binary cache \meta{filename}\texttt{.luc}.
If its contents is up-to-date, \texttt{load\_cache} returns the contents.
If the binary cache is not found or
its contents is outdated, \texttt{load\_cache} tries to
-read the compressed text form <filename>\texttt{.lua.gz}.
+read the compressed text form \meta{filename}\texttt{.lua.gz}.
Hence, the return value of \texttt{load\_cache} is non-nil,
if and only if the updated cache is found.
-\item[remove\_cache(<filename>)]
-Remove the cahce <filename>.
+\item[remove\_cache(\meta{filename})]
+Remove the cahce \meta{filename}.
\end{cslist}
%</en>
%<*ja>
\subsection{内部命令}
\LuaTeX-jaにおけるキャッシュ管理は,\texttt{luatexja.base}~(\texttt{ltj-base.lua})に
実装しており,以下の関数が公開されている.
-ここで,<filename>は保存するキャッシュのファイル名を\emph{拡張子なしで}指定する.
+ここで,\meta{filename}は保存するキャッシュのファイル名を\emph{拡張子なしで}指定する.
\begin{cslist}
-\item[save\_cache(<filename>, <data>)]
-nilでない<data>をキャッシュ<filename>に保存する.
-テキスト形式の<filename>\texttt{.lua.gz}\footnote{拡張子からわかる通り,実際にはgzip圧縮される.}のみならず,
+\item[save\_cache(\meta{filename}, \meta{data})]
+nilでない\meta{data}をキャッシュ\meta{filename}に保存する.
+テキスト形式の\meta{filename}\texttt{.lua.gz}\footnote{拡張子からわかる通り,実際にはgzip圧縮される.}のみならず,
そのバイナリ形式も作成・更新される.
-\item[save\_cache\_luc(<filename>, <data>{[, <serialized\_data>]})]
+\item[save\_cache\_luc(\meta{filename}, \meta{data}{[, \meta{serialized\_data}]})]
\texttt{save\_cache}と同様だが,バイナリキャッシュのみが更新される.
-第3引数<serialized\_data>が与えられた場合,それを
-<data>の文字列化表現として使用する.
-そのため,<serialized\_data>は普通は指定しないことになるだろう.
+第3引数\meta{serialized\_data}が与えられた場合,それを
+\meta{data}の文字列化表現として使用する.
+そのため,\meta{serialized\_data}は普通は指定しないことになるだろう.
-\item[load\_cache(<filename>, <outdate>)]
-キャッシュ<filename>を読み込む.
-<outdate>は1引数(キャッシュの中身)をとる関数であり,
+\item[load\_cache(\meta{filename}, \meta{outdate})]
+キャッシュ\meta{filename}を読み込む.
+\meta{outdate}は1引数(キャッシュの中身)をとる関数であり,
その戻り値は「キャッシュの更新が必要」かどうかを示すブール値でないといけない.
-\texttt{load\_cache}は,まずバイナリキャッシュ<filename>\texttt{.luc}を
-読みこむ.もしその内容が「新しい」,つまり<outdate>の評価結果が \texttt{false} なら
+\texttt{load\_cache}は,まずバイナリキャッシュ\meta{filename}\texttt{.luc}を
+読みこむ.もしその内容が「新しい」,つまり\meta{outdate}の評価結果が \texttt{false} なら
\texttt{load\_cache}はこのバイナリキャッシュの中身を返す.
もしバイナリキャッシュが見つからなかったか,「古すぎる」ならば(gzip圧縮された)テキスト形式の
- <filename>\texttt{.lua.gz}を読み込み,<outdate>で再度評価する.
+ \meta{filename}\texttt{.lua.gz}を読み込み,\meta{outdate}で再度評価する.
以上より,\texttt{load\_cache}自体がnilでない値を返すのは,ちょうど「新しい」キャッシュが
見つかった場合である.
-\item[remove\_cache(<filename>)]
-キャッシュ<filename>を削除する.テキスト形式(gzip圧縮されているか否かを問わず)も
+\item[remove\_cache(\meta{filename})]
+キャッシュ\meta{filename}を削除する.テキスト形式(gzip圧縮されているか否かを問わず)も
バイナリ形式もまとめて削除する.
\end{cslist}
%</ja>
@@ -11912,12 +11871,16 @@ direction~whatsit内部のノードリストに,\textit{dir\_box}として格
{\fboxsep0pt\fcolorbox{cyan}{white}%
{\large\KOZM\ltjjachar"#1#2#3#4}}\ (\texttt{U+#1#2#3#4})%"
}
+ \def\DH#1#2#3#4{%
+ {\fboxsep0pt\fcolorbox{cyan}{white}%
+ {\large\ltjjachar"#1#2#3#4}}\ (\texttt{U+#1#2#3#4})%"
+ }
\caption{\LuaTeX-ja標準で行われる縦組形への置換}
\label{tab:vert_replace}\small\centering
\begin{tabular}{*{3}{l@{}>{${}\longmapsto{}$}c@{}l}}
\toprule
- \D 3001&&\D FE11&\D 3002&&\D FE12&\D 3016&&\D FE17\\
- \D 3017&&\D FE18&\D 2026&&\D FE19&\D 2025&&\D FE30\\
+ \D 3001&&\D FE11&\D 3002&&\D FE12&\D 3016&&\DH FE17\\
+ \D 3017&&\DH FE18&\D 2026&&\D FE19&\D 2025&&\D FE30\\
\D 2014&&\D FE31&\D 2013&&\D FE32&\D FF3F&&\D FE33\\
\D FF08&&\D FE35&\D FF09&&\D FE36&\D FF5B&&\D FE37\\
\D FF5D&&\D FE38&\D 3014&&\D FE39&\D 3015&&\D FE3A\\
@@ -11999,6 +11962,22 @@ ISO 32000-1:2008, \textit{Document management -- Portable document format -- Par
\bibitem{bxghost} Takuto ASAKURA. \newblock The \textsf{BXghost} Package. \url{https://github.com/wtsnjp/BXghost}
\end{thebibliography}
+\makeatletter
+\let\ltj@@end=\@@end
+{\catcode`\%=12\relax\catcode`\~=12\relax
+\protected\gdef\@@end{%
+\typeout{attributes:}
+\directlua{
+ for i=0,65535 do
+ local a = tex.getattribute(i)
+ if a~=-0x7FFFFFFF then
+ texio.write_nl('term and log',
+ string.format('attr %6d, %d', i, a))
+ end
+ tex.setbox('global', i, nil)
+ end
+ print('IC', luatexja.inherit_na_count )
+}\ltj@@end}}
\end{document}
%</!showexpl>
%<*showexpl>
diff --git a/macros/luatex/generic/luatexja/src/addons/luatexja-otf.sty b/macros/luatex/generic/luatexja/src/addons/luatexja-otf.sty
index 6ac200b7e6..37346b2fad 100644
--- a/macros/luatex/generic/luatexja/src/addons/luatexja-otf.sty
+++ b/macros/luatex/generic/luatexja/src/addons/luatexja-otf.sty
@@ -64,7 +64,7 @@
\expandafter\let\csname ifltj@in@latex\expandafter\endcsname
\csname iftrue\endcsname
\NeedsTeXFormat{LaTeX2e}
- \ProvidesPackage{luatexja-otf}[2019-09-26]
+ \ProvidesPackage{luatexja-otf}[2022-10-02]
\fi %</LaTeX>
% Load core module if not yet.
@@ -85,8 +85,7 @@
%! Main part of luatexja-otf
\RequireLuaTeXjaSubmodule{otf}
-\newcount\ltj@tempcnta
-
+%\newcount\ltj@tempcnta % defined at luatexja-core.sty
\protected\def\CID#1{\ifvmode\leavevmode\fi\ltj@tempcnta#1\relax\directlua{luatexja.otf.cid(\the\ltj@tempcnta)}\relax}
%% \UTF compatible with the OTF package for pLaTeX
diff --git a/macros/luatex/generic/luatexja/src/jfm-CCT.lua b/macros/luatex/generic/luatexja/src/jfm-CCT.lua
index c41f6da311..5d861ba761 100644
--- a/macros/luatex/generic/luatexja/src/jfm-CCT.lua
+++ b/macros/luatex/generic/luatexja/src/jfm-CCT.lua
@@ -13,7 +13,7 @@ luatexja.jfont.define_jfm {
[1] = { -- fw. opening punctuations
chars = {
- 0x2018, 0x201C, 0x3008, 0x300A, 0x300C, 0x300E, 0x3010, 0x3014, 0x3016,
+ 0x2018, 0x201C, 0x3008, 0x300A, 0x300C, 0x300E, 0x3010, 0x3014, 0x3016,
0x3018, 0x301D, 0xFF08, 0xFF3B, 0xFF5B, 0xFF5F
},
align = 'right', left = 0.0, down = 0.0,
@@ -25,9 +25,9 @@ luatexja.jfont.define_jfm {
[2] = { -- fw. closing/colon punctuations
chars = {
- 0x2019, 0x201D, 0x3001, 0x3009, 0x300B, 0x300D, 0x300F, 0x3011, 0x3015,
+ 0x2019, 0x201D, 0x3001, 0x3009, 0x300B, 0x300D, 0x300F, 0x3011, 0x3015,
0x3017, 0x3019, 0x301F, 0xFF09, 0xFF0C, 0xFF3D, 0xFF5D, 0xFF60,
- 0xFF1A, 0xFF1B
+ 0xFF1A, 0xFF1B
},
align = 'left', left = 0.0, down = 0.0,
width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
diff --git a/macros/luatex/generic/luatexja/src/jfm-banjiao.lua b/macros/luatex/generic/luatexja/src/jfm-banjiao.lua
index 783e836ba2..b30d040548 100644
--- a/macros/luatex/generic/luatexja/src/jfm-banjiao.lua
+++ b/macros/luatex/generic/luatexja/src/jfm-banjiao.lua
@@ -13,7 +13,7 @@ luatexja.jfont.define_jfm {
[1] = { -- fw. opening punctuations
chars = {
- 0x2018, 0x201C, 0x3008, 0x300A, 0x300C, 0x300E, 0x3010, 0x3014, 0x3016,
+ 0x2018, 0x201C, 0x3008, 0x300A, 0x300C, 0x300E, 0x3010, 0x3014, 0x3016,
0x3018, 0x301D, 0xFF08, 0xFF3B, 0xFF5B, 0xFF5F
},
align = 'right', left = 0.0, down = 0.0,
@@ -25,7 +25,7 @@ luatexja.jfont.define_jfm {
[2] = { -- fw. closing/colon/dot punctuations, except 4 & 7
chars = {
- 0x2019, 0x201D, 0x3009, 0x300B, 0x300D, 0x300F, 0x3011, 0x3015,
+ 0x2019, 0x201D, 0x3009, 0x300B, 0x300D, 0x300F, 0x3011, 0x3015,
0x3017, 0x3019, 0x301F, 0xFF09, 0xFF0C, 0xFF3D, 0xFF5D, 0xFF60,
0xFF0E, 0xFF1A, 0xFF1B, 0xFF01, 0xFF1F
},
diff --git a/macros/luatex/generic/luatexja/src/jfm-jis.lua b/macros/luatex/generic/luatexja/src/jfm-jis.lua
index 642a2475e5..818e3abc80 100644
--- a/macros/luatex/generic/luatexja/src/jfm-jis.lua
+++ b/macros/luatex/generic/luatexja/src/jfm-jis.lua
@@ -21,7 +21,7 @@ luatexja.jfont.define_jfm {
[1] = { -- 開き括弧類
chars = {
- '‘', '“', '〈', '《', '「', '『', '【', '〔', '〖',
+ '‘', '“', '〈', '《', '「', '『', '【', '〔', '〖',
'〘', '〝', '(', '[', '{', '⦅'
},
align = 'right', left = 0.0, down = 0.0,
@@ -33,7 +33,7 @@ luatexja.jfont.define_jfm {
[2] = { -- 閉じ括弧類
chars = {
- '’', '”', '、', '〉', '》', '」', '』', '】', '〕',
+ '’', '”', '、', '〉', '》', '」', '』', '】', '〕',
'〗', '〙', '〟', ')', ',', ']', '}', '⦆'
},
align = 'left', left = 0.0, down = 0.0,
diff --git a/macros/luatex/generic/luatexja/src/jfm-kaiming.lua b/macros/luatex/generic/luatexja/src/jfm-kaiming.lua
index 63ac222311..a046488475 100644
--- a/macros/luatex/generic/luatexja/src/jfm-kaiming.lua
+++ b/macros/luatex/generic/luatexja/src/jfm-kaiming.lua
@@ -13,7 +13,7 @@ luatexja.jfont.define_jfm {
[1] = { -- fw. opening punctuations
chars = {
- 0x2018, 0x201C, 0x3008, 0x300A, 0x300C, 0x300E, 0x3010, 0x3014, 0x3016,
+ 0x2018, 0x201C, 0x3008, 0x300A, 0x300C, 0x300E, 0x3010, 0x3014, 0x3016,
0x3018, 0x301D, 0xFF08, 0xFF3B, 0xFF5B, 0xFF5F
},
align = 'right', left = 0.0, down = 0.0,
@@ -25,9 +25,9 @@ luatexja.jfont.define_jfm {
[2] = { -- fw. closing/colon/dot punctuations, except 4 & 7
chars = {
- 0x2019, 0x201D, 0x3009, 0x300B, 0x300D, 0x300F, 0x3011, 0x3015,
+ 0x2019, 0x201D, 0x3009, 0x300B, 0x300D, 0x300F, 0x3011, 0x3015,
0x3017, 0x3019, 0x301F, 0xFF09, 0xFF0C, 0xFF3D, 0xFF5D, 0xFF60,
- 0xFF0E, 0xFF1A, 0xFF1B
+ 0xFF0E, 0xFF1A, 0xFF1B
},
align = 'left', left = 0.0, down = 0.0,
width = 0.5, height = 0.88, depth = 0.12, italic=0.0,
diff --git a/macros/luatex/generic/luatexja/src/jfm-min.lua b/macros/luatex/generic/luatexja/src/jfm-min.lua
index b59b5329c4..e07b330039 100644
--- a/macros/luatex/generic/luatexja/src/jfm-min.lua
+++ b/macros/luatex/generic/luatexja/src/jfm-min.lua
@@ -68,8 +68,8 @@ luatexja.jfont.define_jfm {
[3] = {
chars = {
'∴', '♀', '♂', '〃', '々', 'ぁ', 'ぃ', 'ぅ', 'ぇ', 'ぉ', 'っ', 'ゃ', 'ゅ ',
- 'ょ', 'ゎ', 'ゕ', 'ゖ', 'ゞ', 'ァ', 'ィ', 'ゥ', 'ェ', 'ォ', 'ッ', 'ャ', 'ュ', 'ョ',
- 'ヮ', 'ヵ', 'ヶ', 'ㇰ', 'ㇱ', 'ㇲ', 'ㇳ', 'ㇴ', 'ㇵ', 'ㇶ', 'ㇷ', 'ㇸ', 'ㇹ', 'ㇺ',
+ 'ょ', 'ゎ', 'ゕ', 'ゖ', 'ゞ', 'ァ', 'ィ', 'ゥ', 'ェ', 'ォ', 'ッ', 'ャ', 'ュ', 'ョ',
+ 'ヮ', 'ヵ', 'ヶ', 'ㇰ', 'ㇱ', 'ㇲ', 'ㇳ', 'ㇴ', 'ㇵ', 'ㇶ', 'ㇷ', 'ㇸ', 'ㇹ', 'ㇺ',
'ㇻ', 'ㇼ', 'ㇽ', 'ㇾ', 'ㇿ', '$', '¢', '£'
},
align = 'middle', left = 0.0, down = 0.0,
@@ -207,7 +207,7 @@ luatexja.jfont.define_jfm {
},
[12] = {
chars = {
- 'ア', 'イ', 'ウ', 'オ', 'ケ', 'ゲ', 'サ', 'ザ', 'ソ', 'ゾ', 'チ', 'ヂ', 'ツ',
+ 'ア', 'イ', 'ウ', 'オ', 'ケ', 'ゲ', 'サ', 'ザ', 'ソ', 'ゾ', 'チ', 'ヂ', 'ツ',
'ヅ', 'ト', 'ド', 'ナ', 'フ', 'ブ', 'プ', 'ミ', 'メ', 'ラ', 'リ', 'ワ', 'ヲ'
},
align = 'left', left = 0.0, down = 0.0,
diff --git a/macros/luatex/generic/luatexja/src/jfm-quanjiao.lua b/macros/luatex/generic/luatexja/src/jfm-quanjiao.lua
index 20590b6a96..2718e1b715 100644
--- a/macros/luatex/generic/luatexja/src/jfm-quanjiao.lua
+++ b/macros/luatex/generic/luatexja/src/jfm-quanjiao.lua
@@ -13,7 +13,7 @@ luatexja.jfont.define_jfm {
[1] = { -- fw. opening punctuations
chars = {
- 0x2018, 0x201C, 0x3008, 0x300A, 0x300C, 0x300E, 0x3010, 0x3014, 0x3016,
+ 0x2018, 0x201C, 0x3008, 0x300A, 0x300C, 0x300E, 0x3010, 0x3014, 0x3016,
0x3018, 0x301D, 0xFF08, 0xFF3B, 0xFF5B, 0xFF5F
},
align = 'right', left = 0.0, down = 0.0,
@@ -25,7 +25,7 @@ luatexja.jfont.define_jfm {
[2] = { -- fw. closing/colon/dot punctuations, except 4 & 7
chars = {
- 0x2019, 0x201D, 0x3009, 0x300B, 0x300D, 0x300F, 0x3011, 0x3015,
+ 0x2019, 0x201D, 0x3009, 0x300B, 0x300D, 0x300F, 0x3011, 0x3015,
0x3017, 0x3019, 0x301F, 0xFF09, 0xFF0C, 0xFF3D, 0xFF5D, 0xFF60,
0xFF0E, 0xFF1A, 0xFF1B, 0xFF01, 0xFF1F
},
diff --git a/macros/luatex/generic/luatexja/src/jfm-ujis.lua b/macros/luatex/generic/luatexja/src/jfm-ujis.lua
index 08f567d20a..2b94eca6db 100644
--- a/macros/luatex/generic/luatexja/src/jfm-ujis.lua
+++ b/macros/luatex/generic/luatexja/src/jfm-ujis.lua
@@ -26,7 +26,7 @@ local t = {
[207] = { 0, 0, 0, kanjiskip_shrink=1 },
[8] = { 0, 0, 0, kanjiskip_shrink=1 },
},
- kern = { [307] = 0 },
+ kern = { [307] = 0 },
round_threshold = 0.01,
},
@@ -250,7 +250,7 @@ local t = {
[6] = { 0, 0, 0, kanjiskip_shrink=1 },
[8] = { 0, 0, 0, kanjiskip_shrink=1 },
},
- kern = { [307] = 0 },
+ kern = { [307] = 0 },
},
[107] = { -- 1/3 角
diff --git a/macros/luatex/generic/luatexja/src/jfm-ujisv.lua b/macros/luatex/generic/luatexja/src/jfm-ujisv.lua
index 2bfe670b9e..7e870046c5 100644
--- a/macros/luatex/generic/luatexja/src/jfm-ujisv.lua
+++ b/macros/luatex/generic/luatexja/src/jfm-ujisv.lua
@@ -26,7 +26,7 @@ local t = {
[207] = { 0, 0, 0, kanjiskip_shrink=1 },
[8] = { 0, 0, 0, kanjiskip_shrink=1 },
},
- kern = { [307] = 0 },
+ kern = { [307] = 0 },
round_threshold = 0.01,
},
diff --git a/macros/luatex/generic/luatexja/src/lltjext.sty b/macros/luatex/generic/luatexja/src/lltjext.sty
index 532e7a2934..a83c9305c9 100644
--- a/macros/luatex/generic/luatexja/src/lltjext.sty
+++ b/macros/luatex/generic/luatexja/src/lltjext.sty
@@ -3,7 +3,7 @@
%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjext}[2021-04-20 v1.2k-ltj-13 Macros for vertical writing]
+\ProvidesPackage{lltjext}[2022-08-24 v1.2k-ltj-14 Macros for vertical writing]
\RequirePackage{luatexja}
\newcount\ltj@ext@dir
\let\ltj@lltjext@orig@tabular=\tabular
@@ -511,6 +511,8 @@
\def\ltj@@pic@reset@blshift{%
\ltj@yablshift\z@\ltj@ykblshift\z@
\ltj@tablshift\z@\ltj@tkblshift\z@
+ %\unsetattribute\ltj@yablshift\unsetattribute\ltj@ykblshift
+ %\unsetattribute\ltj@tablshift\unsetattribute\ltj@tkblshift
}%
\def\@@picture<#1>(#2,#3)(#4,#5){%
\edef\ltj@@pic@save@blshift{%
diff --git a/macros/luatex/generic/luatexja/src/ltj-adjust.lua b/macros/luatex/generic/luatexja/src/ltj-adjust.lua
index 053b63ab1a..89ad7816d2 100644
--- a/macros/luatex/generic/luatexja/src/ltj-adjust.lua
+++ b/macros/luatex/generic/luatexja/src/ltj-adjust.lua
@@ -12,21 +12,29 @@ luatexja.adjust = luatexja.adjust or {}
local to_node = node.direct.tonode
local to_direct = node.direct.todirect
-local setfield = node.direct.setfield
-local setglue = luatexja.setglue
local getfield = node.direct.getfield
local getlist = node.direct.getlist
local getid = node.direct.getid
local getfont = node.direct.getfont
local getsubtype = node.direct.getsubtype
+local getlang = node.direct.getlang
+local getkern = node.direct.getkern
+local getshift = node.direct.getshift
+local getwidth = node.direct.getwidth
+local getdepth = node.direct.getdepth
+local setfield = node.direct.setfield
+local setpenalty = node.direct.setpenalty
+local setglue = node.direct.setglue
+local setkern = node.direct.setkern
+local setlist = node.direct.setlist
local node_traverse_id = node.direct.traverse_id
local node_new = node.direct.new
local node_next = node.direct.getnext
-local node_free = node.direct.free
+local node_free = node.direct.flush_node or node.direct.free
local node_prev = node.direct.getprev
local node_tail = node.direct.tail
-local has_attr = node.direct.has_attribute
+local get_attr = node.direct.get_attribute
local set_attr = node.direct.set_attribute
local insert_after = node.direct.insert_after
@@ -55,7 +63,7 @@ local get_attr_icflag
do
local PROCESSED_BEGIN_FLAG = luatexja.icflag_table.PROCESSED_BEGIN_FLAG
get_attr_icflag = function(p)
- return (has_attr(p, attr_icflag) or 0) % PROCESSED_BEGIN_FLAG
+ return (get_attr(p, attr_icflag) or 0) % PROCESSED_BEGIN_FLAG
end
end
@@ -73,7 +81,7 @@ do
for i=0,63 do tmp[#tmp+1] = { (i%8)-4, FROM_JFM+i } end
else -- stretch
for i=0,63 do tmp[#tmp+1] = { math.floor(i/8)-4, FROM_JFM+i } end
- end
+ end
local pt = priority_table[glue_sign]
tmp[#tmp+1] = { pt[2]/10, XKANJI_SKIP }
tmp[#tmp+1] = { pt[2]/10, XKANJI_SKIP_JFM }
@@ -111,13 +119,13 @@ function get_total_stretched(p)
for q in node_traverse_id(id_glue, ph) do
local a = getfield(q, 'stretch_order')
if a==0 then
- local b = at2pr_st[get_attr_icflag(q)];
+ local b = at2pr_st[get_attr_icflag(q)];
total_st[b] = total_st[b]+getfield(q, 'stretch')
end
total_st[a*65536] = total_st[a]+getfield(q, 'stretch')
local a = getfield(q, 'shrink_order')
if a==0 then
- local b = at2pr_sh[get_attr_icflag(q)];
+ local b = at2pr_sh[get_attr_icflag(q)];
total_sh[b] = total_sh[b]+getfield(q, 'shrink')
end
total_sh[a*65536] = total_sh[a]+getfield(q, 'shrink')
@@ -130,7 +138,7 @@ function get_total_stretched(p)
if not total_sh.order then
total_sh.order, total_sh[-65536] = -1,0.1 -- dummy
end
- return getfield(p,'width') - dimensions(ph)
+ return getwidth(p) - dimensions(ph)
end
end
@@ -152,7 +160,7 @@ local function aw_step1(p, total)
-- 無限大のグルーで処理が行われているときは処理中止.
return total, false
end
- if xi == id_glyph and getfield(x, 'lang')==lang_ja then
+ if xi == id_glyph and getlang(x)==lang_ja then
-- 和文文字
xc = x
elseif xi == id_hlist and get_attr_icflag(x) == PACKED then
@@ -163,8 +171,8 @@ local function aw_step1(p, total)
return total, false-- それ以外は対象外.
end
local eadt = ltjf_font_metric_table[getfont(xc)]
- .char_type[has_attr(xc, attr_jchar_class) or 0].end_adjust
- if not eadt then
+ .char_type[get_attr(xc, attr_jchar_class) or 0].end_adjust
+ if not eadt then
return total, false
end
local eadt_ratio = {}
@@ -176,8 +184,8 @@ local function aw_step1(p, total)
eadt_ratio[i] = {i, t/total_sh[65536*total_sh.order], t, v}
end
end
- table.sort(eadt_ratio,
- function (a,b)
+ table.sort(eadt_ratio,
+ function (a,b)
for i=2,4 do
local at, bt = abs(a[i]), abs(b[i])
if at~=bt then return at<bt end
@@ -186,7 +194,7 @@ local function aw_step1(p, total)
end)
if eadt[eadt_ratio[1][1]]~=0 then
local kn = node_new(id_kern, 1)
- setfield(kn, 'kern', eadt[eadt_ratio[1][1]]); set_attr(kn, attr_icflag, LINEEND)
+ setkern(kn, eadt[eadt_ratio[1][1]]); set_attr(kn, attr_icflag, LINEEND)
insert_after(head, x, kn)
return eadt_ratio[1][3], true
else
@@ -196,6 +204,7 @@ end
-- step 1 最終行用
local min, max = math.min, math.max
+local setsubtype = node.direct.setsubtype
local function aw_step1_last(p, total)
local head = getlist(p)
local x = node_tail(head); if not x then return total, false end
@@ -204,7 +213,7 @@ local function aw_step1_last(p, total)
if getid(pf) ~= id_glue or getsubtype(pf) ~= 15 then return total, false end
x = node_prev(node_prev(pf))
local xi, xc = getid(x)
- if xi == id_glyph and getfield(x, 'lang')==lang_ja then
+ if xi == id_glyph and getlang(x)==lang_ja then
-- 和文文字
xc = x
elseif xi == id_hlist and get_attr_icflag(x) == PACKED then
@@ -230,30 +239,30 @@ local function aw_step1_last(p, total)
end
end
local eadt = ltjf_font_metric_table[getfont(xc)]
- .char_type[has_attr(xc, attr_jchar_class) or 0].end_adjust
- if not eadt then
+ .char_type[get_attr(xc, attr_jchar_class) or 0].end_adjust
+ if not eadt then
return total, false
end
-- 続行条件2: min(eadt[1], 0)<= \parfillskip <= max(eadt[#eadt], 0)
- local pfw = getfield(pf, 'width')
- + (total>0 and getfield(pf, 'stretch') or -getfield(pf, 'shrink')) *getfield(p, 'glue_set')
+ local pfw = getwidth(pf)
+ + (total>0 and getfield(pf, 'stretch') or -getfield(pf, 'shrink')) *getfield(p, 'glue_set')
if pfw<min(0,eadt[1]) or max(0,eadt[#eadt])<pfw then return total, false end
-- \parfillskip を 0 にする
- total = total + getfield(pf, 'width')
+ total = total + getwidth(pf)
total_st.order, total_sh.order = 0, 0
- if getfield(pf, 'stretch_order')==0 then
- local i = at2pr_st[-1]
- total_st[0] = total_st[0] - getfield(pf, 'stretch')
- total_st[i] = total_st[i] - getfield(pf, 'stretch')
+ if getfield(pf, 'stretch_order')==0 then
+ local i = at2pr_st[-1]
+ total_st[0] = total_st[0] - getfield(pf, 'stretch')
+ total_st[i] = total_st[i] - getfield(pf, 'stretch')
total_st.order = (total_st[0]==0) and -1 or 0
end
- if getfield(pf, 'shrink_order')==0 then
- local i = at2pr_sh[-1]
- total_sh[0] = total_sh[0] - getfield(pf, 'shrink')
- total_sh[i] = total_sh[i] - getfield(pf, 'shrink')
+ if getfield(pf, 'shrink_order')==0 then
+ local i = at2pr_sh[-1]
+ total_sh[0] = total_sh[0] - getfield(pf, 'shrink')
+ total_sh[i] = total_sh[i] - getfield(pf, 'shrink')
total_sh.order = (total_sh[0]==0) and -1 or 0
end
- setfield(pf, 'subtype', 1); setglue(pf)
+ setsubtype(pf, 1); setglue(pf)
local eadt_ratio = {}
for i, v in ipairs(eadt) do
local t = total - v
@@ -263,8 +272,8 @@ local function aw_step1_last(p, total)
eadt_ratio[i] = {i, t/total_sh[65536*total_sh.order], t, v}
end
end
- table.sort(eadt_ratio,
- function (a,b)
+ table.sort(eadt_ratio,
+ function (a,b)
for i=2,4 do
local at, bt = abs(a[i]), abs(b[i])
if at~=bt then return at<bt end
@@ -273,7 +282,7 @@ local function aw_step1_last(p, total)
end)
if eadt[eadt_ratio[1][1]]~=0 then
local kn = node_new(id_kern, 1)
- setfield(kn, 'kern', eadt[eadt_ratio[1][1]]); set_attr(kn, attr_icflag, LINEEND)
+ setkern(kn, eadt[eadt_ratio[1][1]]); set_attr(kn, attr_icflag, LINEEND)
insert_after(head, x, kn)
return eadt_ratio[1][3], true
else
@@ -289,9 +298,9 @@ local node_hpack = node.direct.hpack
local function repack(p)
local orig_of, orig_hfuzz, orig_hbad = tex.overfullrule, tex.hfuzz, tex.hbadness
tex.overfullrule=0; tex.hfuzz=1073741823; tex.hbadness=10000
- local f = node_hpack(getlist(p), getfield(p, 'width'), 'exactly')
+ local f = node_hpack(getlist(p), getwidth(p), 'exactly')
tex.overfullrule=orig_of; tex.hfuzz=orig_hfuzz; tex.hbadness=orig_hbad
- setfield(f, 'head', nil)
+ setlist(f, nil)
setfield(p, 'glue_set', getfield(f, 'glue_set'))
setfield(p, 'glue_order', getfield(f, 'glue_order'))
setfield(p, 'glue_sign', getfield(f, 'glue_sign'))
@@ -328,14 +337,14 @@ function aw_step2(p, total, added_flag)
local id = (total>0) and 1 or 2
local res = total_stsh[id]
local pnum = priority_num[id]
- if total==0 or res.order > 0 then
+ if total==0 or res.order > 0 then
-- もともと伸縮の必要なしか,残りの伸縮量は無限大
if added_flag then return repack(p) end
end
total = abs(total)
for i = 1, pnum do
if total <= res[i] then
- local a = at2pr[id]
+ local a = at2pr[id]
for j = i+1,pnum do
clear_stretch(p, j, a, name)
end
@@ -353,32 +362,32 @@ do
local insert_before = node.direct.insert_before
local KINSOKU = luatexja.icflag_table.KINSOKU
insert_lineend_kern = function (head, nq, np, Bp)
- if nq.met then
+ if nq.met then
local eadt = nq.met.char_type[nq.class].end_adjust
if not eadt then return end
if eadt[1]~=0 then
local x = node_new(id_kern, 1)
- setfield(x, 'kern', eadt[1]); set_attr(x, attr_icflag, LINEEND)
+ setkern(x, eadt[1]); set_attr(x, attr_icflag, LINEEND)
insert_before(head, np.first, x)
end
local eadt_num = #eadt
for i=2,eadt_num do
local x = node_new(id_penalty)
- setfield(x, 'penalty', 0); set_attr(x, attr_icflag, KINSOKU)
+ setpenalty(x, 0); set_attr(x, attr_icflag, KINSOKU)
insert_before(head, np.first, x); Bp[#Bp+1] = x
local x = node_new(id_kern, 1)
- setfield(x, 'kern', eadt[i]-eadt[i-1]); set_attr(x, attr_icflag, LINEEND)
+ setkern(x, eadt[i]-eadt[i-1]); set_attr(x, attr_icflag, LINEEND)
insert_before(head, np.first, x)
end
if eadt_num>1 or eadt[1]~=0 then
local x = node_new(id_penalty)
- setfield(x, 'penalty', 0); set_attr(x, attr_icflag, KINSOKU)
+ setpenalty(x, 0); set_attr(x, attr_icflag, KINSOKU)
insert_before(head, np.first, x); Bp[#Bp+1] = x
local x = node_new(id_kern, 1)
- setfield(x, 'kern', -eadt[eadt_num]); set_attr(x, attr_icflag, LINEEND)
+ setkern(x, -eadt[eadt_num]); set_attr(x, attr_icflag, LINEEND)
insert_before(head, np.first, x)
local x = node_new(id_penalty)
- setfield(x, 'penalty', 10000); set_attr(x, attr_icflag, KINSOKU)
+ setpenalty(x, 10000); set_attr(x, attr_icflag, KINSOKU)
insert_before(head, np.first, x); Bp[#Bp+1] = x
end
end
@@ -389,7 +398,6 @@ local adjust_width
do
local myaw_step1, myaw_step2, myaw_step1_last
local dummy = function(p,t,n) return t, false end
- local ltjs_fast_get_stack_skip = ltjs.fast_get_stack_skip
function adjust_width(head)
if not head then return head end
local last_p
@@ -408,7 +416,7 @@ do
local function enable_cb(status_le, status_pr, status_lp, status_ls)
if (status_le>0 or status_pr>0) and (not is_reg) then
ltjb.add_to_callback('post_linebreak_filter',
- adjust_width, 'Adjust width',
+ adjust_width, 'Adjust width',
luatexbase.priority_in_callback('post_linebreak_filter', 'ltj.lineskip')-1)
is_reg = true
elseif is_reg and (status_le==0 and status_pr==0) then
@@ -493,28 +501,26 @@ luatexja.unary_pars.profile_hgap_factor = function(t)
return luatexja.adjust.profile_hgap_factor
end
do
- local insert = table.insert
+ local insert, texget = table.insert, tex.get
local rangedimensions, max = node.direct.rangedimensions, math.max
local function profile_inner(box, range, ind, vmirrored, adj)
- local w_acc, d_before = getfield(box,'shift'), 0
+ local w_acc, d_before = getshift(box), 0
local x = getlist(box); local xn = node_next(x)
while x do
local w, h, d
- if xn then w, h, d= rangedimensions(box,x,xn)
- else w, h, d= rangedimensions(box,x) end
+ if xn then w, h, d = rangedimensions(box,x,xn)
+ else w, h, d = rangedimensions(box,x) end
if vmirrored then h=d end
local w_new = w_acc + w
- if w>=0 then
- range:insert(ind, h, w_acc-adj, w_new)
- else
- range:insert(ind, h, w_new-adj, w_acc)
+ if w>=0 then range:insert(ind, h, w_acc-adj, w_new)
+ else range:insert(ind, h, w_new-adj, w_acc)
end
w_acc = w_new; x = xn; if x then xn = node_next(x) end
end
- end
+ end
function ltjl.p_profile(before, after, mirrored, bw)
- local range, tls
- = init_range(), luatexja.adjust.profile_hgap_factor*tex.get('lineskip', false)
+ local range, tls
+ = init_range(), luatexja.adjust.profile_hgap_factor*texget('lineskip', false)
profile_inner(before, range, 3, true, tls)
profile_inner(after, range, 4, mirrored, tls)
range = range:flatten()
@@ -527,8 +533,8 @@ do
if bw-h-d<lmin then lmin=bw-h-d end
end
if lmin==1/0 then lmin = bw end
- return lmin,
- bw - lmin - getfield(before, 'depth')
+ return lmin,
+ bw - lmin - getdepth(before)
- getfield(after, mirrored and 'depth' or 'height')
end
end
@@ -536,7 +542,7 @@ end
do
local ltja = luatexja.adjust
- local copy_glue = ltjl.copy_glue
+ local copy_glue, texget = ltjl.copy_glue, tex.get
local floor, max = math.floor, math.max
function ltjl.l_step(dist, g, adj, normal, bw, loc)
if loc=='alignment' then
@@ -544,7 +550,7 @@ do
end
if dist < tex.lineskiplimit then
local f = max(1, bw*ltja.step_factor)
- copy_glue(g, 'baselineskip', 1, normal - f * floor((dist-tex.get('lineskip', false))/f))
+ copy_glue(g, 'baselineskip', 1, normal - f * floor((dist-texget('lineskip', false))/f))
else
copy_glue(g, 'baselineskip', 2, normal)
end
@@ -556,13 +562,15 @@ do
local sid_user = node.subtype 'user_defined'
local node_remove = node.direct.remove
local node_write = node.direct.write
+ local getvalue = node.direct.getdata
+ local setvalue = node.direct.setdata
local GHOST_JACHAR = luatexbase.newuserwhatsitid('ghost of a jachar', 'luatexja')
luatexja.userid_table.GHOST_JACHAR = GHOST_JACHAR
function ltja.create_ghost_jachar_node(cl)
local tn = node_new(id_whatsit, sid_user)
setfield(tn, 'user_id', GHOST_JACHAR)
setfield(tn, 'type', 100)
- setfield(tn, 'value', cl)
+ setvalue(tn, cl)
node_write(tn)
end
local attr_curjfnt = luatexbase.attributes['ltj@curjfnt']
@@ -570,19 +578,21 @@ do
local dir_tate = luatexja.dir_table.dir_tate
local get_dir_count = ltjd.get_dir_count
local ltjf_font_metric_table = ltjf.font_metric_table
+ local has_attr = node.direct.has_attribute
local function get_current_metric(n)
- local fn = has_attr(n, (get_dir_count()==dir_tate) and attr_curtfnt or attr_curjfnt)
+ local fn = get_attr(n, (get_dir_count()==dir_tate) and attr_curtfnt or attr_curjfnt)
return fn and ltjf_font_metric_table[fn]
end
local function whatsit_callback(Np, lp, Nq)
if Np and Np.nuc then return Np
elseif Np and getfield(lp, 'user_id') == GHOST_JACHAR then
Np.first = lp; Np.nuc = lp; Np.last = lp; Np.class = 0
- if getfield(lp,'value')<2 then
+ if getvalue(lp)<2 then
if Nq and Nq.met then Np.met = Nq.met; else Np.met = get_current_metric(lp) end
Np.pre = 0; Np.post = 0; Np.xspc = 3
else Np.met, Np.pre = nil, nil; end
- Np.auto_kspc, Np.auto_xspc = (has_attr(lp, attr_autospc)==1), (has_attr(lp, attr_autoxspc)==1)
+ Np.auto_kspc, Np.auto_xspc
+ = not has_attr(lp, attr_autospc, 0), not has_attr(lp, attr_autoxspc, 0)
return Np
else return Np end
end
@@ -590,7 +600,7 @@ do
if not s and getfield(Nq.nuc, 'user_id') == GHOST_JACHAR then
local x, y = node_prev(Nq.nuc), Nq.nuc
Nq.first, Nq.nuc, Nq.last = x, x, x
- if getfield(y,'value')%2==0 then
+ if getvalue(y)%2==0 then
if Np and Nq.met then Nq.met = Np.met; else Nq.met = get_current_metric(y) end
Nq.pre = 0; Nq.post = 0; Nq.xspc = 3
else Nq.met, Nq.pre = nil, nil; end
diff --git a/macros/luatex/generic/luatexja/src/ltj-base.lua b/macros/luatex/generic/luatexja/src/ltj-base.lua
index ad5bb816a5..41caef5b4c 100644
--- a/macros/luatex/generic/luatexja/src/ltj-base.lua
+++ b/macros/luatex/generic/luatexja/src/ltj-base.lua
@@ -7,7 +7,7 @@ local node, table, tex, token = node, table, tex, token
local cat_lp = luatexbase.catcodetables['latex-package']
---------------------
+--------------------
local ltjb = {}
luatexja.base = ltjb
@@ -44,7 +44,7 @@ do
_error_set_message = function (msgcont, main, help)
err_main = message_cont(main, msgcont):gsub(BEL, LF)
err_help = (help and help~="") and into_lines(help)
- or {"Sorry, I don't know how to help in this situation.",
+ or {"Sorry, I don't know how to help in this situation.",
"Maybe you should try asking a human?" }
end
@@ -129,7 +129,7 @@ end
--- Extension to tex.print(). Each argument string may contain
-- newline characters, in which case the string is output (to
-- TeX input stream) as multiple lines.
--- @param ... (string) string to output
+-- @param ... (string) string to output
local function mprint(...)
local arg = {...}
local lines = {}
@@ -202,7 +202,7 @@ do
local function in_unicode(c, admit_math)
local low = admit_math and -1 or 0
if type(c)~='number' or c<low or c>0x10FFFF then
- local s = 'A character number must be between ' .. tostring(low)
+ local s = 'A character number must be between ' .. tostring(low)
.. ' and 0x10ffff.\n'
.. (admit_math and "(-1 is used for denoting `math boundary')\n" or '')
.. 'So I changed this one to zero.'
@@ -222,7 +222,7 @@ end
-- * return value: non-nil iff the cache is up-to-date
-- save_cache (filename, t): no return value
-- save_cache_luc (filename, t): no return value
--- save_cache always calls save_cache_luc.
+-- save_cache always calls save_cache_luc.
-- But sometimes we want to create only the precompiled cache,
-- when its 'text' version is already present in LuaTeX-ja distribution.
@@ -274,8 +274,8 @@ do
if s then
local sa = load(s)
local f = io.open(fullpath, 'wb')
- if f and sa then
- f:write(dump(sa, true))
+ if f and sa then
+ f:write(dump(sa, true))
texio.write('log', '(save cache: ' .. fullpath .. ')')
f:close()
end
@@ -307,17 +307,17 @@ do
break
end
end
- if (not result) or outdate(result) then
- return nil
- else
- return result
+ if (not result) or outdate(result) then
+ return nil
+ else
+ return result
end
end
-
+
local function load_cache(filename, outdate)
remove_file_if_exist(savepath .. '/' .. filename .. '.lua')
local r = load_cache_a(filename .. luc_suffix, outdate, false)
- if r then
+ if r then
return r
else
local r = load_cache_a(filename .. '.lua.gz', outdate, true)
diff --git a/macros/luatex/generic/luatexja/src/ltj-base.sty b/macros/luatex/generic/luatexja/src/ltj-base.sty
index d46b54a1fa..ba88ec9450 100644
--- a/macros/luatex/generic/luatexja/src/ltj-base.sty
+++ b/macros/luatex/generic/luatexja/src/ltj-base.sty
@@ -20,9 +20,9 @@
%% Registers
%\newcount\ltj@tempcnta % defined at luatexja-core.sty
+%\newcount\ltj@tempdima % defined at luatexja-core.sty
\newcount\ltj@tempcntb
\newcount\ltj@tempcntc
-\newdimen\ltj@tempdima
% \newskip\ltj@tempskipa unused
% \newtoks\ltj@temptoks unused
diff --git a/macros/luatex/generic/luatexja/src/ltj-charrange.lua b/macros/luatex/generic/luatexja/src/ltj-charrange.lua
index 46075b2166..074ba3ce05 100644
--- a/macros/luatex/generic/luatexja/src/ltj-charrange.lua
+++ b/macros/luatex/generic/luatexja/src/ltj-charrange.lua
@@ -3,17 +3,18 @@
--
luatexbase.provides_module({
name = 'luatexja.charrange',
- date = '2020-07-30',
+ date = '2022-08-19',
description = 'Handling the range of Japanese characters',
})
luatexja.charrange = {}
luatexja.load_module 'base'; local ltjb = luatexja.base
local getchar = node.direct.getchar
-local has_attr = node.direct.has_attribute
-local has_attr_node = node.has_attribute
+local get_attr = node.direct.get_attribute
+local get_attr_node = node.get_attribute
local tex_getattr = tex.getattribute
+local UNSET = -0x7FFFFFFF
local ATTR_RANGE = 7
luatexja.charrange.ATTR_RANGE = ATTR_RANGE
local jcr_cjk, jcr_noncjk = 0, 1
@@ -22,16 +23,22 @@ local kcat_attr_table = {}
local pow_table = {}
local fn_table = {} -- used in is_ucs_in_japanese_char_direct
local nfn_table = {} -- used in is_ucs_in_japanese_char_node
-for i = 0, 31*ATTR_RANGE-1 do
- local ka, pw = luatexbase.attributes['ltj@kcat'..floor(i/31)], 1/(2^(i%31))
- local jcr_noncjk = jcr_noncjk
- kcat_attr_table[i], pow_table[i] = ka, 2^(i%31)
- fn_table[i] = function(p) return floor(has_attr(p, ka)*pw)%2 ~= jcr_noncjk end
- nfn_table[i] = function(p) return floor(has_attr_node(p, ka)*pw)%2 ~= jcr_noncjk end
+do
+ local ka = luatexbase.attributes['ltj@kcat0']
+ for i = 0, 30 do
+ local pw = 2^i; kcat_attr_table[i], pow_table[i] = ka, pw
+ fn_table[i] = function(p) return get_attr(p, ka)&pw==0 end
+ nfn_table[i] = function(p) return get_attr_node(p, ka)&pw==0 end
+ end
+end
+for i = 31, 31*ATTR_RANGE-1 do
+ local ka, pw = luatexbase.attributes['ltj@kcat'..floor(i/31)], 2^(i%31)
+ kcat_attr_table[i], pow_table[i] = ka, pw
+ fn_table[i] = function(p) return (get_attr(p, ka) or 0)&pw==0 end
+ nfn_table[i] = function(p) return (get_attr_node(p, ka) or 0)&pw==0 end
end
fn_table[-1] = function() return false end -- for char --U+007F
nfn_table[-1] = function() return false end -- for char --U+007F
-pow_table[31*ATTR_RANGE] = 2^31
-- jcr_table_main[chr_code] = index
-- index : internal 0, 1, 2, ..., 216 0: 'other'
@@ -71,7 +78,8 @@ function luatexja.charrange.char_to_range(c) -- return the external range number
end
local function get_range_setting(i) -- i: internal range number
- return floor(tex_getattr(kcat_attr_table[i])/pow_table[i])%2
+ local a = tex_getattr(kcat_attr_table[i])
+ return (a==UNSET and 0 or a)&pow_table[i]
end
-- glyph_node p は和文文字か?
@@ -84,7 +92,7 @@ function luatexja.charrange.is_ucs_in_japanese_char_direct(p ,c)
end
function luatexja.charrange.is_japanese_char_curlist(c) -- assume that c>=0x80
- return get_range_setting(jcr_table_main[c])~= jcr_noncjk
+ return get_range_setting(jcr_table_main[c])==0
end
-- EXT
@@ -96,12 +104,11 @@ function luatexja.charrange.toggle_char_range(g, i) -- i: external range number
elseif i==0 then return
else
local kc
- if i>0 then kc=0 else kc=1; i=-i end
- if i>=31*ATTR_RANGE then i=0 end
- local attr = kcat_attr_table[i]
- local a = tex_getattr(attr)
- tex.setattribute(g, attr,
- (floor(a/pow_table[i+1])*2+kc)*pow_table[i]+a%pow_table[i])
+ if i>0 then kc=0 else kc=1; i=-i end; if i>=31*ATTR_RANGE then i=0 end
+ local attr, p = kcat_attr_table[i], pow_table[i]
+ local a = tex_getattr(attr); if a==UNSET then a=0 end
+ a = (a&~p)+kc*p; if a==0 and i>30 then a=UNSET end
+ tex.setattribute(g, attr, a)
end
end
diff --git a/macros/luatex/generic/luatexja/src/ltj-compat.lua b/macros/luatex/generic/luatexja/src/ltj-compat.lua
index dfb19ee2d0..25c9b880c2 100644
--- a/macros/luatex/generic/luatexja/src/ltj-compat.lua
+++ b/macros/luatex/generic/luatexja/src/ltj-compat.lua
@@ -4,7 +4,6 @@
luatexja.load_module 'base'; local ltjb = luatexja.base
luatexja.load_module 'stack'; local ltjs = luatexja.stack
-local stack_table_index = luatexja.stack_table_index
-- load jisx0208 table
local cache_ver = 3
@@ -18,20 +17,21 @@ end
-- \kuten, \jis, \euc, \sjis, \ucs, \kansuji
-local utfchar=utf.char
+local utfchar, floor = utf.char, math.floor
+local texwrite, getcount = tex.write, tex.getcount
+local cnt_stack = luatexbase.registernumber 'ltj@@stack'
+local KSJ = luatexja.stack_table_index.KSJ
+local get_stack_table = ltjs.get_stack_table
local function to_kansuji(num)
if not num then num=0; return
- elseif num<0 then
- num = -num; tex.write '-'
+ elseif num<0 then num = -num; texwrite '-'
end
local s = ""
repeat
- s = utfchar(
- ltjs.get_stack_table(luatexja.stack_table_index.KSJ + num%10,
- '', tex.getcount 'ltj@@stack')) .. s
- num=math.floor(num/10)
+ s = utfchar(get_stack_table(KSJ + num%10, '', getcount(cnt_stack))) .. s
+ num=num//10
until num==0
- tex.write(s)
+ texwrite(s)
end
local function error_invalid_charcode(i)
@@ -43,22 +43,22 @@ end
-- \ucs: 単なる identity
local function from_ucs(i)
if type(i)~='number' then error_invalid_charcode(i); i=0 end
- tex.write(i)
+ texwrite(i)
end
-- \kuten: 面区点 (それぞれで16進2桁を使用)=> Unicode 符号位置
local function from_kuten(i)
if type(i)~='number' then error_invalid_charcode(i); i=0 end
if (i%256==0)or(i%256>94) then
- tex.write '0'
- else
- tex.write(tostring(jisx0208.table_jisx0208_uptex[math.floor(i/256)*94+(i%256)-94] or 0))
+ texwrite '0'
+ else
+ texwrite(tostring(jisx0208.table_jisx0208_uptex[(i//256)*94+(i%256)-94] or 0))
end
end
-- \euc: EUC-JP による符号位置 => Unicode 符号位置
local function from_euc(i)
- if type(i)~='number' then
+ if type(i)~='number' then
error_invalid_charcode(i); i=0
elseif i>=0x10000 or i<0xa0a0 then
i=0
@@ -75,10 +75,9 @@ end
-- \sjis: Shift_JIS による符号位置 => Unicode 符号位置
local function from_sjis(i)
if (type(i)~='number') or i>=0x10000 or i<0 then
- error_invalid_charcode(i); tex.write '0'; return
+ error_invalid_charcode(i); texwrite '0'; return
end
- local c2 = math.floor(i/256)
- local c1 = i%256
+ local c2, c1 = i//256, i%256
local shift_jisx0213_s1a3_table = {
{ [false]= 1, [true]= 8},
{ [false]= 3, [true]= 4},
@@ -113,7 +112,7 @@ luatexja.binary_pars.kansujichar = function(c, t)
'So I changed this one to zero.')
c=0
end
- return ltjs.get_stack_table(stack_table_index.KSJ + c, 0, t)
+ return get_stack_table(KSJ + c, 0, t)
end
diff --git a/macros/luatex/generic/luatexja/src/ltj-debug.lua b/macros/luatex/generic/luatexja/src/ltj-debug.lua
index c337c014fe..912242615a 100644
--- a/macros/luatex/generic/luatexja/src/ltj-debug.lua
+++ b/macros/luatex/generic/luatexja/src/ltj-debug.lua
@@ -79,7 +79,7 @@ end
local function pformat(fmt, ...)
if type(fmt) == "string" then
return do_pformat(fmt, ...)
- else
+ else
return tosource(fmt)
end
end
@@ -105,7 +105,7 @@ do
end
local function print_measure()
- stop_time_measure('RUN')
+ stop_time_measure 'RUN'
local temp = {}
for i,v in pairs(time_stat) do
temp[#temp+1] = { i, v[1], v[2], v[2]/v[1] }
@@ -121,10 +121,10 @@ do
luatexja.base.start_time_measure = start_time_measure
luatexja.base.stop_time_measure = stop_time_measure
luatexbase.add_to_callback('stop_run', print_measure, 'luatexja.time_measure', 1)
- luatexbase.add_to_callback('pre_linebreak_filter',
- function(p)
- start_time_measure('tex_linebreak'); return p
- end,
+ luatexbase.add_to_callback('pre_linebreak_filter',
+ function(p)
+ start_time_measure 'tex_linebreak'; return p
+ end,
'measure_tex_linebreak', 20000)
end
end
diff --git a/macros/luatex/generic/luatexja/src/ltj-direction.lua b/macros/luatex/generic/luatexja/src/ltj-direction.lua
index 4a0ad3ab06..5321f232f4 100644
--- a/macros/luatex/generic/luatexja/src/ltj-direction.lua
+++ b/macros/luatex/generic/luatexja/src/ltj-direction.lua
@@ -9,25 +9,32 @@ luatexja.direction = {}
local attr_dir = luatexbase.attributes['ltj@dir']
local attr_icflag = luatexbase.attributes['ltj@icflag']
+local dnode = node.direct
local cat_lp = luatexbase.catcodetables['latex-package']
-local to_node = node.direct.tonode
-local to_direct = node.direct.todirect
-local has_attr = node.direct.has_attribute
-local set_attr = node.direct.set_attribute
-local insert_before = node.direct.insert_before
-local insert_after = node.direct.insert_after
-local getid = node.direct.getid
-local getsubtype = node.direct.getsubtype
-local getlist = node.direct.getlist
-local setfield = node.direct.setfield
-local getfield = node.direct.getfield
-local node_new = node.direct.new
-local node_tail = node.direct.tail
-local node_free = node.direct.free
-local node_remove = node.direct.remove
-local node_next = node.direct.getnext
-local traverse = node.direct.traverse
-local traverse_id = node.direct.traverse_id
+local to_node = dnode.tonode
+local to_direct = dnode.todirect
+local get_attr = dnode.get_attribute
+local set_attr = dnode.set_attribute
+local insert_before = dnode.insert_before
+local insert_after = dnode.insert_after
+local getid = dnode.getid
+local getsubtype = dnode.getsubtype
+local getlist = dnode.getlist
+local getfield = dnode.getfield
+local getwhd = dnode.getwhd
+local getvalue = node.direct.getdata
+local setfield = dnode.setfield
+local setwhd = dnode.setwhd
+local setnext = dnode.setnext
+local setlist = dnode.setlist
+local setvalue = node.direct.setdata
+
+local node_new = dnode.new
+local node_free = dnode.flush_node or dnode.free
+local node_remove = dnode.remove
+local node_next = dnode.getnext
+local traverse = dnode.traverse
+local traverse_id = dnode.traverse_id
local start_time_measure, stop_time_measure
= ltjb.start_time_measure, ltjb.stop_time_measure
local abs = math.abs
@@ -37,12 +44,11 @@ local id_hlist = node.id 'hlist'
local id_vlist = node.id 'vlist'
local id_whatsit = node.id 'whatsit'
local sid_save = node.subtype 'pdf_save'
-local sid_restore= node.subtype 'pdf_restore'
-local sid_matrix = node.subtype 'pdf_setmatrix'
local sid_user = node.subtype 'user_defined'
+local getnest = tex.getnest
local tex_nest = tex.nest
-local tex_getcount = tex.getcount
+local getcount = tex.getcount
local ensure_tex_attr = ltjb.ensure_tex_attr
local PROCESSED = luatexja.icflag_table.PROCESSED
local PROCESSED_BEGIN_FLAG = luatexja.icflag_table.PROCESSED_BEGIN_FLAG
@@ -56,21 +62,21 @@ local dir_math_mod = luatexja.dir_table.dir_math_mod
local dir_node_auto = luatexja.dir_table.dir_node_auto
local dir_node_manual = luatexja.dir_table.dir_node_manual
local function get_attr_icflag(p)
- return (has_attr(p, attr_icflag) or 0) % PROCESSED_BEGIN_FLAG
+ return (get_attr(p, attr_icflag) or 0) % PROCESSED_BEGIN_FLAG
end
local page_direction
--
local dir_pool
do
- local node_copy = node.direct.copy
+ local node_copy = dnode.copy
dir_pool = {}
for _,i in pairs({dir_tate, dir_yoko, dir_dtou, dir_utod}) do
local w = node_new(id_whatsit, sid_user)
- set_attr(w, attr_dir, i)
+ dnode.setattributelist(w, nil)
+ set_attr(w, attr_dir, i); set_attr(w, attr_icflag, 0)
setfield(w, 'user_id', DIR)
- setfield(w, 'type', 110)
- setfield(w, 'next', nil)
+ setfield(w, 'type', 110); setnext(w, nil)
dir_pool[i] = function () return node_copy(w) end
end
end
@@ -92,7 +98,7 @@ end
local get_dir_count, get_adjust_dir_count
do
- local node_attr = node.has_attribute
+ local node_attr = node.get_attribute
local function get_dir_count_inner(h)
if h then
if h.id==id_whatsit and h.subtype==sid_user and h.user_id==DIR then
@@ -107,7 +113,7 @@ do
end
function get_dir_count()
for i=tex_nest.ptr, 1, -1 do
- local h = tex_nest[i].head.next
+ local h = getnest(i).head.next
if h then
local t = get_dir_count_inner(h)
if t~=0 then return t end
@@ -117,7 +123,7 @@ do
end
function get_adjust_dir_count()
for i=tex_nest.ptr, 1, -1 do
- local v = tex_nest[i]
+ local v = getnest(i)
local h, m = v.head.next, v.mode
if abs(m)== ltjs.vmode and h then
local t = get_dir_count_inner(h)
@@ -171,21 +177,20 @@ do
local node_next_node, node_tail_node = node.next, node.tail
local insert_after_node = node.insert_after
function luatexja.direction.set_list_direction_hook(v)
- local lv = tex_nest.ptr -- must be >= 1
if not v then
v = get_dir_count()
- if abs(tex_nest[lv-1].mode) == ltjs.mmode and v == dir_tate then
+ if abs(getnest(tex_nest.ptr-1).mode) == ltjs.mmode and v == dir_tate then
v = dir_utod
end
elseif v=='adj' then
v = get_adjust_dir_count()
end
- local h = tex_nest[lv].head
+ local h = getnest().head
local hn = node.next(h)
hn = (hn and hn.id==id_local) and hn or h
local w = to_node(dir_pool[v]())
insert_after_node(h, hn, w)
- tex_nest[lv].tail = node_tail_node(w)
+ getnest().tail = node_tail_node(w)
ensure_tex_attr(attr_icflag, 0)
ensure_tex_attr(attr_dir, 0)
end
@@ -194,13 +199,13 @@ do
local lv = tex_nest.ptr
if not v then
v,name = get_dir_count(), nil
- if lv>=1 and abs(tex_nest[lv-1].mode) == ltjs.mmode and v == dir_tate then
+ if lv>=1 and abs(getnest(lv-1).mode) == ltjs.mmode and v == dir_tate then
v = dir_utod
end
elseif v=='adj' then
v,name = get_adjust_dir_count(), nil
end
- local current_nest = tex_nest[lv]
+ local current_nest = getnest()
if tex.currentgrouptype==6 then
ltjb.package_error(
'luatexja',
@@ -221,7 +226,7 @@ do
page_direction = v -- for first call of \yoko (in luatexja-core.sty)
else
if luatexja.debug then
- luatexja.ext_show_node_list(node.direct.tonode(h),'>> ', texio.write_nl)
+ luatexja.ext_show_node_list(dnode.tonode(h),'>> ', texio.write_nl)
end
ltjb.package_error(
'luatexja',
@@ -283,7 +288,8 @@ do
if hd then
for p in traverse_id(15, hd) do -- unset
if get_box_dir(p, 0)==0 then
- setfield(p, 'head', create_dir_whatsit(getlist(p), 'fin_row', ltjs.list_dir))
+ setfield(p, 'head', create_dir_whatsit(getfield(p, 'head'), 'fin_row', ltjs.list_dir))
+ -- We cannot use setlist and getlist, since they don't support unset_node
end
end
set_attr(hd, attr_icflag, PROCESSED_BEGIN_FLAG)
@@ -307,7 +313,7 @@ do
-- start 側は ltj-debug.lua に
local new_dir = ltjs.list_dir
for line in traverse_id(id_hlist, to_direct(h)) do
- setfield(line, 'head', create_dir_whatsit(getlist(line), gc, new_dir) )
+ setlist(line, create_dir_whatsit(getlist(line), gc, new_dir) )
end
ensure_tex_attr(attr_dir, 0)
return h
@@ -329,7 +335,7 @@ do
end
end
if hd==wh[1] then
- ltjs.list_dir = has_attr(hd, attr_dir)
+ ltjs.list_dir = get_attr(hd, attr_dir)
local x = node_next(hd)
while x and getid(x)==id_glue and getsubtype(x)==3 do
node_remove(hd,x); node_free(x); x = node_next(hd)
@@ -351,7 +357,7 @@ do
local n = node_next(hd)
local w = create_dir_whatsit(hd, gc, ltjs.list_dir)
-- move dir whatsit after hd
- setfield(hd, 'next', w); setfield(w, 'next', n);
+ setnext(hd, w); setnext(w, n)
return hd
else return create_dir_whatsit(hd, gc, ltjs.list_dir)
end
@@ -361,6 +367,10 @@ end
-- dir_node に包む方法を書いたテーブル
local dir_node_aux
do
+ local setkern = dnode.setkern
+ local setshift = dnode.setshift
+ local sid_restore= node.subtype 'pdf_restore'
+ local sid_matrix = node.subtype 'pdf_setmatrix'
local floor = math.floor
local get_h =function (w,h,d) return h end
local get_d =function (w,h,d) return d end
@@ -372,6 +382,21 @@ do
local get_w_neg =function (w,h,d) return -w end
local get_w =function (w,h,d) return w end
local zero = function() return 0 end
+ local function gen_kern(arg, b, w,h,d,dw,dh,dd)
+ local nn = node_new(id_kern)
+ setkern(nn, arg(w, h, d, dw, dh, dd)); return nn
+ end
+ local function gen_whatsit(arg)
+ return node_new(id_whatsit, arg)
+ end
+ local function gen_rotate(arg)
+ local nn = node_new(id_whatsit, sid_matrix)
+ setfield(nn, 'data', arg); return nn
+ end
+ local function gen_box(arg, b, w,h,d,dw,dh,dd)
+ local nn = b; setnext(b, nil)
+ setshift(nn, arg(w, h, d, dw, dh, dd)); return nn
+ end
dir_node_aux = {
[dir_yoko] = { -- yoko を
[dir_tate] = { -- tate 中で組む
@@ -379,20 +404,20 @@ do
height = get_w_half,
depth = get_w_half_rem,
[id_hlist] = {
- { 'whatsit', sid_save },
- { 'rotate', '0 1 -1 0' },
- { 'kern', function(w,h,d,nw,nh,nd) return -nd end },
- { 'box' , get_h},
- { 'kern', function(w,h,d,nw,nh,nd) return nd-w end },
- { 'whatsit', sid_restore },
+ { gen_whatsit, sid_save },
+ { gen_rotate, '0 1 -1 0' },
+ { gen_kern, function(w,h,d,nw,nh,nd) return -nd end },
+ { gen_box , get_h},
+ { gen_kern, function(w,h,d,nw,nh,nd) return nd-w end },
+ { gen_whatsit, sid_restore },
},
[id_vlist] = {
- { 'whatsit', sid_save },
- { 'rotate', '0 1 -1 0' },
- { 'kern' , zero },
- { 'box' , function(w,h,d,nw,nh,nd) return -nh-nd end },
- { 'kern', get_h_d_neg},
- { 'whatsit', sid_restore },
+ { gen_whatsit, sid_save },
+ { gen_rotate, '0 1 -1 0' },
+ { gen_kern , zero },
+ { gen_box , function(w,h,d,nw,nh,nd) return -nh-nd end },
+ { gen_kern, get_h_d_neg},
+ { gen_whatsit, sid_restore },
},
},
[dir_dtou] = { -- dtou 中で組む
@@ -400,19 +425,19 @@ do
height = get_w,
depth = zero,
[id_hlist] = {
- { 'whatsit', sid_save },
- { 'rotate', '0 -1 1 0' },
- { 'kern', function(w,h,d,nw,nh,nd) return -nh end },
- { 'box', get_d_neg },
- { 'kern', function(w,h,d,nw,nh,nd) return nh-w end },
- { 'whatsit', sid_restore },
+ { gen_whatsit, sid_save },
+ { gen_rotate, '0 -1 1 0' },
+ { gen_kern, function(w,h,d,nw,nh,nd) return -nh end },
+ { gen_box, get_d_neg },
+ { gen_kern, function(w,h,d,nw,nh,nd) return nh-w end },
+ { gen_whatsit, sid_restore },
},
[id_vlist] = {
- { 'whatsit', sid_save },
- { 'rotate', '0 -1 1 0' },
- { 'kern', get_h_d_neg },
- { 'box', zero },
- { 'whatsit', sid_restore },
+ { gen_whatsit, sid_save },
+ { gen_rotate, '0 -1 1 0' },
+ { gen_kern, get_h_d_neg },
+ { gen_box, zero },
+ { gen_whatsit, sid_restore },
},
},
},
@@ -422,19 +447,19 @@ do
height = get_w,
depth = zero,
[id_hlist] = {
- { 'whatsit', sid_save },
- { 'rotate', '0 -1 1 0' },
- { 'kern', function (w,h,d,nw,nh,nd) return -nh end },
- { 'box' , get_d_neg },
- { 'kern', function (w,h,d,nw,nh,nd) return nh-w end },
- { 'whatsit', sid_restore },
+ { gen_whatsit, sid_save },
+ { gen_rotate, '0 -1 1 0' },
+ { gen_kern, function (w,h,d,nw,nh,nd) return -nh end },
+ { gen_box , get_d_neg },
+ { gen_kern, function (w,h,d,nw,nh,nd) return nh-w end },
+ { gen_whatsit, sid_restore },
},
[id_vlist] = {
- { 'whatsit', sid_save },
- { 'rotate', '0 -1 1 0' },
- { 'kern', get_h_d_neg },
- { 'box', zero },
- { 'whatsit', sid_restore },
+ { gen_whatsit, sid_save },
+ { gen_rotate, '0 -1 1 0' },
+ { gen_kern, get_h_d_neg },
+ { gen_box, zero },
+ { gen_whatsit, sid_restore },
},
},
[dir_dtou] = { -- dtou 中で組む
@@ -442,18 +467,18 @@ do
height = get_d,
depth = get_h,
[id_hlist] = {
- { 'whatsit', sid_save },
- { 'rotate', '-1 0 0 -1' },
- { 'kern', get_w_neg },
- { 'box', function (w,h,d,nw,nh,nd) return h-nd end },
- { 'whatsit', sid_restore },
+ { gen_whatsit, sid_save },
+ { gen_rotate, '-1 0 0 -1' },
+ { gen_kern, get_w_neg },
+ { gen_box, function (w,h,d,nw,nh,nd) return h-nd end },
+ { gen_whatsit, sid_restore },
},
[id_vlist] = {
- { 'whatsit', sid_save },
- { 'rotate', '-1 0 0 -1' },
- { 'kern', get_h_d_neg },
- { 'box', get_w_neg },
- { 'whatsit', sid_restore },
+ { gen_whatsit, sid_save },
+ { gen_rotate, '-1 0 0 -1' },
+ { gen_kern, get_h_d_neg },
+ { gen_box, get_w_neg },
+ { gen_whatsit, sid_restore },
},
},
},
@@ -463,20 +488,20 @@ do
height = get_w,
depth = zero,
[id_hlist] = {
- { 'whatsit', sid_save },
- { 'rotate', '0 1 -1 0' },
- { 'kern', function (w,h,d,nw,nh,nd) return -nd end },
- { 'box', get_h },
- { 'kern', function (w,h,d,nw,nh,nd) return nd-w end },
- { 'whatsit', sid_restore },
+ { gen_whatsit, sid_save },
+ { gen_rotate, '0 1 -1 0' },
+ { gen_kern, function (w,h,d,nw,nh,nd) return -nd end },
+ { gen_box, get_h },
+ { gen_kern, function (w,h,d,nw,nh,nd) return nd-w end },
+ { gen_whatsit, sid_restore },
},
[id_vlist] = {
- { 'kern', zero },
- { 'whatsit', sid_save },
- { 'rotate', '0 1 -1 0' },
- { 'box', function (w,h,d,nw,nh,nd) return -nd-nh end },
- { 'kern', get_h_d_neg },
- { 'whatsit', sid_restore },
+ { gen_kern, zero },
+ { gen_whatsit, sid_save },
+ { gen_rotate, '0 1 -1 0' },
+ { gen_box, function (w,h,d,nw,nh,nd) return -nd-nh end },
+ { gen_kern, get_h_d_neg },
+ { gen_whatsit, sid_restore },
},
},
[dir_tate] = { -- tate 中で組む
@@ -484,19 +509,19 @@ do
height = get_d,
depth = get_h,
[id_hlist] = {
- { 'whatsit', sid_save },
- { 'rotate', '-1 0 0 -1' },
- { 'kern', get_w_neg },
- { 'box', function (w,h,d,nw,nh,nd) return h-nd end },
- { 'whatsit', sid_restore },
+ { gen_whatsit, sid_save },
+ { gen_rotate, '-1 0 0 -1' },
+ { gen_kern, get_w_neg },
+ { gen_box, function (w,h,d,nw,nh,nd) return h-nd end },
+ { gen_whatsit, sid_restore },
},
[id_vlist] = {
- { 'whatsit', sid_save },
- { 'rotate', ' -1 0 0 -1' },
- { 'kern', function (w,h,d,nw,nh,nd) return -nh-nd end },
- { 'box', get_w_neg },
- { 'kern', function (w,h,d,nw,nh,nd) return nh+nd-h-d end },
- { 'whatsit', sid_restore },
+ { gen_whatsit, sid_save },
+ { gen_rotate, ' -1 0 0 -1' },
+ { gen_kern, function (w,h,d,nw,nh,nd) return -nh-nd end },
+ { gen_box, get_w_neg },
+ { gen_kern, function (w,h,d,nw,nh,nd) return nh+nd-h-d end },
+ { gen_whatsit, sid_restore },
},
},
},
@@ -507,14 +532,13 @@ end
-- 2nd ret val はその DIR whatsit
function get_box_dir(b, default)
start_time_measure 'get_box_dir'
- local dir = has_attr(b, attr_dir) or 0
- local bh = getfield(b,'head')
- -- b は insert node となりうるので getlist() は使えない
+ local dir = get_attr(b, attr_dir) or 0
+ local bh = getfield(b, 'head') -- We cannot use getlist since b may be an unset_node.
local c
if bh~=0 then -- bh != nil
for bh in traverse_id(id_whatsit, bh) do
if getsubtype(bh)==sid_user and getfield(bh, 'user_id')==DIR then
- c = bh; dir = (dir==0) and has_attr(bh, attr_dir) or dir
+ c = bh; dir = (dir==0) and get_attr(bh, attr_dir) or dir
end
end
end
@@ -523,12 +547,13 @@ function get_box_dir(b, default)
end
do
+ local ltj_tempcnta = luatexbase.registernumber 'ltj@tempcnta'
local getbox = tex.getbox
local dir_backup
function luatexja.direction.unbox_check_dir(is_copy)
start_time_measure 'box_primitive_hook'
local list_dir = get_dir_count()%dir_math_mod
- local b = getbox(tex_getcount 'ltj@tempcnta')
+ local b = getbox(getcount(ltj_tempcnta))
if b and getlist(to_direct(b)) then
local box_dir = get_box_dir(to_direct(b), dir_yoko)
if box_dir%dir_math_mod ~= list_dir then
@@ -548,7 +573,7 @@ do
local d = hd
nh, hd = node_remove(nh, hd)
if is_copy==true and (not dir_backup) then
- dir_backup = d; setfield(dir_backup, 'next', nil)
+ dir_backup = d; setnext(dir_backup, nil)
else
node_free(d)
end
@@ -556,7 +581,7 @@ do
hd = node_next(hd)
end
end
- setfield(bd, 'head', nh)
+ setlist(bd, nh)
end
end
if luatexja.global_temp and tex.globaldefs~=luatexja.global_temp then
@@ -565,12 +590,12 @@ do
stop_time_measure 'box_primitive_hook'
end
function luatexja.direction.uncopy_restore_whatsit()
- local b = getbox(tex_getcount 'ltj@tempcnta')
+ local b = getbox(getcount(ltj_tempcnta))
if b then
local bd = to_direct(b)
if dir_backup then
- setfield(dir_backup, 'next', getlist(bd))
- setfield(bd, 'head', dir_backup)
+ setnext(dir_backup, getlist(bd))
+ setlist(bd, dir_backup)
dir_backup = nil
end
end
@@ -587,23 +612,25 @@ local function unwrap_dir_node(b, head, box_dir)
if head then
nh = insert_before(head, b, bh)
nh, nb = node_remove(nh, b)
- setfield(b, 'next', nil)
- node_free(b)
+ setnext(b, nil); node_free(b)
end
local shift_old, b_dir, wh = nil, get_box_dir(bh, 0)
if wh then
- node.direct.flush_list(getfield(wh, 'value'))
- setfield(wh, 'value', nil)
+ dnode.flush_list(getvalue(wh)); setvalue(wh, nil)
end
return nh, nb, bh, b_dir
end
-- is_manual: 寸法変更に伴うものか?
-local function create_dir_node(b, b_dir, new_dir, is_manual)
+local create_dir_node
+do
+ local getdir = dnode.getdir
+ local setdir = dnode.setdir
+ local setshift = dnode.setshift
+
+create_dir_node = function(b, b_dir, new_dir, is_manual)
local info = dir_node_aux[b_dir%dir_math_mod][new_dir%dir_math_mod]
- local w = getfield(b, 'width')
- local h = getfield(b, 'height')
- local d = getfield(b, 'depth')
+ local w, h, d = getwhd(b)
local db = node_new(getid(b)) -- dir_node
set_attr(db, attr_dir,
new_dir + (is_manual and dir_node_manual or dir_node_auto))
@@ -611,13 +638,11 @@ local function create_dir_node(b, b_dir, new_dir, is_manual)
set_attr(b, attr_icflag, PROCESSED)
ensure_tex_attr(attr_dir, 0)
ensure_tex_attr(attr_icflag, 0)
- setfield(db, 'dir', getfield(b, 'dir'))
- setfield(db, 'shift', 0)
- setfield(db, 'width', info.width(w,h,d))
- setfield(db, 'height', info.height(w,h,d))
- setfield(db, 'depth', info.depth(w,h,d))
+ setdir(db, getdir(b)); setshift(db, 0)
+ setwhd(db, info.width(w,h,d), info.height(w,h,d), info.depth(w,h,d))
return db
end
+end
-- 異方向のボックスの処理
local make_dir_whatsit, process_dir_node
@@ -633,15 +658,14 @@ do
-- 既に b の中身にあるwhatsit
if (box_dir<dir_node_auto) and (not dn) then
bh = create_dir_whatsit(bh, 'make_dir_whatsit', dir_yoko)
- dn = bh; setfield(b, 'head', bh)
+ dn = bh; setlist(b, bh)
end
if box_dir%dir_math_mod==new_dir then
if box_dir>=dir_node_auto then
-- dir_node としてカプセル化されている
local _, dnc = get_box_dir(b, 0)
if dnc then -- free all other dir_node
- node.direct.flush_list(getfield(dnc, 'value'))
- setfield(dnc, 'value', nil)
+ dnode.flush_list(getvalue(dnc)); setvalue(dnc, nil)
end
set_attr(b, attr_dir, box_dir%dir_math_mod + dir_node_auto)
return head, node_next(b), b, true
@@ -663,25 +687,19 @@ do
end
box_dir = box_dir%dir_math_mod
local db
- local dnh = getfield(dn, 'value')
+ local dnh = getvalue(dn)
for x in traverse(dnh) do
- if has_attr(x, attr_dir)%dir_math_mod == new_dir then
- setfield(dn, 'value', to_node(node_remove(dnh, x)))
+ if get_attr(x, attr_dir)%dir_math_mod == new_dir then
+ setvalue(dn, to_node(node_remove(dnh, x)))
db=x; break
end
end
- node.direct.flush_list(getfield(dn, 'value'))
- setfield(dn, 'value', nil)
+ dnode.flush_list(getvalue(dn)); setvalue(dn, nil)
db = db or create_dir_node(b, box_dir, new_dir, false)
- local w = getfield(b, 'width')
- local h = getfield(b, 'height')
- local d = getfield(b, 'depth')
- local dn_w = getfield(db, 'width')
- local dn_h = getfield(db, 'height')
- local dn_d = getfield(db, 'depth')
+ local w, h, d = getwhd(b)
nh, nb = insert_before(head, b, db), nil
nh, nb = node_remove(nh, b)
- setfield(b, 'next', nil); setfield(db, 'head', b)
+ setnext(b, nil); setlist(db, b)
ret, flag = db, true
return nh, nb, ret, flag
end
@@ -701,13 +719,13 @@ do
end
-- lastbox
- local node_prev = (node.direct~=node) and node.direct.getprev or node.prev
+ local node_prev = dnode.getprev
local id_glue = node.id 'glue'
local function lastbox_hook()
start_time_measure 'box_primitive_hook'
- local bn = tex_nest[tex_nest.ptr].tail
+ local bn = getnest().tail
if bn then
- local b, head = to_direct(bn), to_direct(tex_nest[tex_nest.ptr].head)
+ local b, head = to_direct(bn), to_direct(getnest().head)
local bid = getid(b)
if bid==id_hlist or bid==id_vlist then
local p = getlist(b)
@@ -715,21 +733,20 @@ do
if p and getid(p)==id_glue and getsubtype(p)==12 then -- tabskip
local np = node_next(p); local npid = getid(np)
if npid==id_hlist or npid==id_vlist then
- setfield(b, 'head', create_dir_whatsit(p, 'align', get_box_dir(np, 0)))
+ setlist(b, create_dir_whatsit(p, 'align', get_box_dir(np, 0)))
end
end
local box_dir = get_box_dir(b, 0)
if box_dir>= dir_node_auto then -- unwrap dir_node
local p = node_prev(b)
local dummy1, dummy2, nb = unwrap_dir_node(b, nil, box_dir)
- setfield(p, 'next', nb); tex_nest[tex_nest.ptr].tail = to_node(nb)
- setfield(b, 'next', nil); setfield(b, 'head', nil)
+ setnext(p, nb); getnest().tail = to_node(nb)
+ setnext(b, nil); setlist(b, nil)
node_free(b); b = nb
end
local _, wh = get_box_dir(b, 0) -- clean dir_node attached to the box
if wh then
- node.direct.flush_list(getfield(wh, 'value'))
- setfield(wh, 'value', nil)
+ dnode.flush_list(getvalue(wh)); setvalue(wh, nil)
end
end
end
@@ -743,27 +760,25 @@ end
-- \wd, \ht, \dp の代わり
do
local getbox, setdimen = tex.getbox, tex.setdimen
+ local ltj_tempdima = luatexbase.registernumber 'ltj@tempdima'
local function get_box_dim_common(key, s, l_dir)
-- s: not dir_node.
local s_dir, wh = get_box_dir(s, dir_yoko)
s_dir = s_dir%dir_math_mod
if s_dir ~= l_dir then
local not_found = true
- for x in traverse(getfield(wh, 'value')) do
- if l_dir == has_attr(x, attr_dir)%dir_node_auto then
- setdimen('ltj@tempdima', getfield(x, key))
+ for x in traverse(getvalue(wh)) do
+ if l_dir == get_attr(x, attr_dir)%dir_node_auto then
+ setdimen(ltj_tempdima, getfield(x, key))
not_found = false; break
end
end
if not_found then
- local w = getfield(s, 'width')
- local h = getfield(s, 'height')
- local d = getfield(s, 'depth')
- setdimen('ltj@tempdima',
- dir_node_aux[s_dir][l_dir][key](w,h,d))
+ local w, h, d = getwhd(s)
+ setdimen(ltj_tempdima, dir_node_aux[s_dir][l_dir][key](w,h,d))
end
else
- setdimen('ltj@tempdima', getfield(s, key))
+ setdimen(ltj_tempdima, getfield(s, key))
end
end
local function get_box_dim(key, n)
@@ -776,12 +791,12 @@ do
if b_dir<dir_node_auto then
get_box_dim_common(key, s, l_dir)
elseif b_dir%dir_math_mod==l_dir then
- setdimen('ltj@tempdima', getfield(s, key))
+ setdimen(ltj_tempdima, getfield(s, key))
else
get_box_dim_common(key, getlist(s), l_dir)
end
else
- setdimen('ltj@tempdima', 0)
+ setdimen(ltj_tempdima, 0)
end
tex.sprint(cat_lp, '\\ltj@tempdima')
tex.globaldefs = gt
@@ -797,19 +812,18 @@ do
if s_dir ~= l_dir then
if not wh then
wh = create_dir_whatsit(getlist(s), 'set_box_dim', s_dir)
- setfield(s, 'head', wh)
+ setlist(s, wh)
end
local db
- local dnh = getfield(wh, 'value')
+ local dnh = getvalue(wh)
for x in traverse(dnh) do
- if has_attr(x, attr_dir)%dir_node_auto==l_dir then
+ if get_attr(x, attr_dir)%dir_node_auto==l_dir then
db = x; break
end
end
if not db then
db = create_dir_node(s, s_dir, l_dir, true)
- setfield(db, 'next', dnh)
- setfield(wh, 'value',to_node(db))
+ setnext(db, dnh); setvalue(wh, to_node(db))
end
setfield(db, key, scan_dimen())
return false
@@ -817,15 +831,12 @@ do
setfield(s, key, scan_dimen())
if wh then
-- change dimension of dir_nodes which are created "automatically"
- local bw, bh, bd
- = getfield(s,'width'), getfield(s, 'height'), getfield(s, 'depth')
- for x in traverse(getfield(wh, 'value')) do
- local x_dir = has_attr(x, attr_dir)
+ local bw, bh, bd = getwhd(s)
+ for x in traverse(getvalue(wh)) do
+ local x_dir = get_attr(x, attr_dir)
if x_dir<dir_node_manual then
local info = dir_node_aux[s_dir][x_dir%dir_node_auto]
- setfield(x, 'width', info.width(bw,bh,bd))
- setfield(x, 'height', info.height(bw,bh,bd))
- setfield(x, 'depth', info.depth(bw,bh,bd))
+ setwhd(x, info.width(bw,bh,bd), info.height(bw,bh,bd), info.depth(bw,bh,bd))
end
end
end
@@ -849,16 +860,12 @@ do
else
local sid, b = getid(s), getlist(s)
local info = dir_node_aux[get_box_dir(b,dir_yoko)%dir_math_mod][b_dir%dir_node_auto]
- local bw, bh, bd
- = getfield(b,'width'), getfield(b, 'height'), getfield(b, 'depth')
- local sw, sh, sd
- = getfield(s,'width'), getfield(s, 'height'), getfield(s, 'depth')
+ local bw, bh, bd = getwhd(b)
+ local sw, sh, sd = getwhd(s)
if set_box_dim_common(key, b, l_dir) and b_dir<dir_node_manual then
-- re-calculate dimension of s, if s is created "automatically"
if b_dir<dir_node_manual then
- setfield(s, 'width', info.width(bw,bh,bd))
- setfield(s, 'height', info.height(bw,bh,bd))
- setfield(s, 'depth', info.depth(bw,bh,bd))
+ setwhd(s, info.width(bw,bh,bd), info.height(bw,bh,bd), info.depth(bw,bh,bd))
end
end
end
@@ -889,7 +896,7 @@ do
end
do
- local getbox, setbox, copy_list = tex.getbox, tex.setbox, node.direct.copy_list
+ local getbox, setbox, copy_list = tex.getbox, tex.setbox, dnode.copy_list
-- raise, lower
function luatexja.direction.raise_box()
start_time_measure 'box_primitive_hook'
@@ -923,6 +930,7 @@ end
-- adjust
do
local id_adjust = node.id 'adjust'
+ local last_node = dnode.last_node
local scan_keyword = token.scan_keyword
function luatexja.direction.adjust_begin()
if scan_keyword 'pre' then tex.sprint(cat_lp, '\\ltj@@vadjust@pre')
@@ -931,7 +939,7 @@ do
function luatexja.direction.check_adjust_direction()
start_time_measure 'box_primitive_hook'
local list_dir = get_adjust_dir_count()
- local a = tex_nest[tex_nest.ptr].tail
+ local a = getnest().tail
local ad = to_direct(a)
if a and getid(ad)==id_adjust then
local adj_dir = get_box_dir(ad)
@@ -940,7 +948,7 @@ do
'luatexja',
'Direction Incompatible',
"\\vadjust's argument and outer vlist must have same direction.")
- node.direct.last_node()
+ node_free(last_node())
end
end
stop_time_measure 'box_primitive_hook'
@@ -954,13 +962,13 @@ do
function luatexja.direction.populate_insertion_dir_whatsit()
start_time_measure 'box_primitive_hook'
local list_dir = get_dir_count()
- local a = tex_nest[tex_nest.ptr].tail
+ local a = getnest().tail
local ad = to_direct(a)
if (not a) or getid(ad)~=id_ins then
a = node.tail(tex.lists.page_head); ad = to_direct(a)
end
if a and getid(ad)==id_ins then
- local h = getfield(ad, 'head')
+ local h = getlist(ad)
if getid(h)==id_whatsit and
getsubtype(h)==sid_user and getfield(h, 'user_id')==DIR then
local n = h; h = node_remove(h,h)
@@ -972,7 +980,7 @@ do
end
end
ensure_tex_attr(attr_dir, 0)
- setfield(ad, 'head', h)
+ setlist(ad, h)
end
stop_time_measure 'box_primitive_hook'
end
@@ -980,25 +988,32 @@ end
-- vsplit
do
- local split_dir_whatsit, split_dir_head
+ local split_dir_whatsit, split_dir_head, split_dir_at_2nd
local cat_lp = luatexbase.catcodetables['latex-package']
local sprint, scan_int, tex_getbox = tex.sprint, token.scan_int, tex.getbox
function luatexja.direction.vsplit()
local n = scan_int();
local p = to_direct(tex_getbox(n))
- split_dir_head = nil
+ if split_dir_head then node_free(split_dir_head); split_dir_head = nil end
+ if split_dir_whatsit then split_dir_watsit = nil end
if p then
local bh = getlist(p)
- if getid(bh)==id_whatsit and getsubtype(bh)==sid_user and getfield(bh, 'user_id')==DIR
+ if getid(bh)==id_whatsit and getsubtype(bh)==sid_user and getfield(bh, 'user_id')==DIR
and node_next(bh) then
- ltjs.list_dir = has_attr(bh, attr_dir)
- local q = node_next(p)
- setfield(p, 'head', node_remove(bh,bh,bh))
- split_dir_head = bh
+ ltjs.list_dir = get_attr(bh, attr_dir)
+ setlist(p, (node_remove(bh,bh)))
+ split_dir_head, split_dir_2nd = bh, false
+ else
+ local w = node_next(bh)
+ if getid(w)==id_whatsit and getsubtype(w)==sid_user and getfield(w, 'user_id')==DIR then
+ ltjs.list_dir = get_attr(w, attr_dir)
+ setlist(p, (node_remove(bh,w)))
+ split_dir_head, split_dir_2nd = w, true
+ end
end
end
sprint(cat_lp, '\\ltj@@orig@vsplit' .. tostring(n))
- end
+ end
local function dir_adjust_vpack(h, gc)
start_time_measure 'direction_vpack'
local hd = to_direct(h)
@@ -1008,15 +1023,17 @@ do
split_dir_whatsit = hd
elseif gc=='split_off' then
if split_dir_head then
- ltjs.list_dir = has_attr(split_dir_head, attr_dir)
- hd = insert_before(hd, hd, split_dir_head)
+ ltjs.list_dir = get_attr(split_dir_head, attr_dir)
+ if split_dir_2nd then hd = insert_after(hd, hd, split_dir_head)
+ else hd = insert_before(hd, hd, split_dir_head)
+ end
split_dir_head=nil
end
if split_dir_whatsit then
-- adjust direction of 'split_keep'
set_attr(split_dir_whatsit, attr_dir, ltjs.list_dir)
+ split_dir_whatsit=nil
end
- split_dir_whatsit=nil
elseif gc=='preamble' then
split_dir_whatsit=nil
else
@@ -1038,7 +1055,7 @@ do
local function dir_adjust_pre_output(h, gc)
return to_node(create_dir_whatsit_vbox(to_direct(h), gc))
end
- ltjb.add_to_callback('pre_output_filter', dir_adjust_pre_output,
+ ltjb.add_to_callback('pre_output_filter', dir_adjust_pre_output,
'ltj.direction', 10000)
end
@@ -1051,38 +1068,22 @@ do
local function finalize_dir_node(db,new_dir)
local b = getlist(db)
while b and ((getid(b)~=id_hlist) and (getid(b)~=id_vlist)) do
- local ob = b; b = node_remove(b,b); setfield(db, 'head', b);
+ local ob = b; b = node_remove(b,b); setlist(db, b);
node_free(ob)
end
finalize_inner(b)
- local w = getfield(b, 'width')
- local h = getfield(b, 'height')
- local d = getfield(b, 'depth')
- local dn_w = getfield(db, 'width')
- local dn_h = getfield(db, 'height')
- local dn_d = getfield(db, 'depth')
+ local w, h, d = getwhd(b)
+ local dw, dh, dd = getwhd(db)
local db_head, db_tail
local t = dir_node_aux[get_box_dir(b, dir_yoko)%dir_math_mod][new_dir]
t = t and t[getid(b)]; if not t then return end
for _,v in ipairs(t) do
- local cmd, arg, nn = v[1], v[2]
- if cmd=='kern' then
- nn = node_new(id_kern, 1)
- setfield(nn, 'kern', arg(w, h, d, dn_w, dn_h, dn_d))
- elseif cmd=='whatsit' then
- nn = node_new(id_whatsit, arg)
- elseif cmd=='rotate' then
- nn = node_new(id_whatsit, sid_matrix)
- setfield(nn, 'data', arg)
- elseif cmd=='box' then
- nn = b; setfield(b, 'next', nil)
- setfield(nn, 'shift', arg(w, h, d, dn_w, dn_h, dn_d))
- end
+ local nn = v[1](v[2], b, w, h, d, dw, dh, dd)
if db_head then
insert_after(db_head, db_tail, nn)
db_tail = nn
else
- setfield(db, 'head', nn)
+ setlist(db, nn)
db_head, db_tail = nn, nn
end
end
@@ -1090,6 +1091,7 @@ do
tex.setattribute(attr_dir, dir_yoko)
local shipout_temp = node_new(id_hlist)
+ dnode.setattributelist(shipout_temp, nil)
tex.setattribute(attr_dir, 0)
finalize_inner = function (box)
@@ -1105,17 +1107,17 @@ do
end
end
end
- local copy = node.direct.copy
+ local copy = dnode.copy
function luatexja.direction.shipout_lthook (head)
start_time_measure 'box_primitive_hook'
local a = to_direct(head)
local a_dir = get_box_dir(a, dir_yoko)
if a_dir~=dir_yoko then
local b = create_dir_node(a, a_dir, dir_yoko, false)
- setfield(b, 'head', a); a = b
+ setlist(b, a); a = b
end
- setfield(shipout_temp, 'head', a); finalize_inner(shipout_temp)
- a = copy(getlist(shipout_temp)); setfield(shipout_temp, 'head',nil)
+ setlist(shipout_temp, a); finalize_inner(shipout_temp)
+ a = copy(getlist(shipout_temp)); setlist(shipout_temp, nil)
stop_time_measure 'box_primitive_hook'
return to_node(a)
end
diff --git a/macros/luatex/generic/luatexja/src/ltj-inputbuf.lua b/macros/luatex/generic/luatexja/src/ltj-inputbuf.lua
index 7f39b9b8d7..dc6ec46a56 100644
--- a/macros/luatex/generic/luatexja/src/ltj-inputbuf.lua
+++ b/macros/luatex/generic/luatexja/src/ltj-inputbuf.lua
@@ -8,12 +8,10 @@ luatexja.load_module 'charrange'; local ltjc = luatexja.charrange
local utflen = utf.len
local utfbyte = utf.byte
local utfchar = utf.char
-local node_new = node.new
-local node_free = node.free
local id_glyph = node.id 'glyph'
local getcatcode, getcount = tex.getcatcode, tex.getcount
local ltjc_is_japanese_char_curlist = ltjc.is_japanese_char_curlist
-
+local cnt_lineend = luatexbase.registernumber 'ltjlineendcomment'
local substituter
do
local uchar = utf.char
@@ -71,7 +69,7 @@ local function add_comment(buffer)
if (te ~= -1) and (getcatcode(te)==5) then
local ct = getcatcode(c)
if (ct==11) or (ct==12) then
- local lec = getcount 'ltjlineendcomment'
+ local lec = getcount(cnt_lineend)
-- Is the catcode of \ltjlineendcomment (new comment char) is 14 (comment)?
if ltjc_is_japanese_char_curlist(c) and (getcatcode(lec)==14) then
stop_time_measure 'inputbuf'; return buffer .. utfchar(lec)
diff --git a/macros/luatex/generic/luatexja/src/ltj-jfmglue.lua b/macros/luatex/generic/luatexja/src/ltj-jfmglue.lua
index 3d046f0c01..ed7ab6daa8 100644
--- a/macros/luatex/generic/luatexja/src/ltj-jfmglue.lua
+++ b/macros/luatex/generic/luatexja/src/ltj-jfmglue.lua
@@ -3,7 +3,7 @@
--
luatexbase.provides_module({
name = 'luatexja.jfmglue',
- date = '2022-02-09',
+ date = '2022-08-29',
description = 'Insertion process of JFM glues, [x]kanjiskip and others',
})
luatexja.jfmglue = luatexja.jfmglue or {}
@@ -19,25 +19,32 @@ local pairs = pairs
--local to_node = node.direct.tonode
--local to_direct = node.direct.todirect
-local setfield = node.direct.setfield
-local setglue = luatexja.setglue
local getfield = node.direct.getfield
local getid = node.direct.getid
local getfont = node.direct.getfont
local getlist = node.direct.getlist
local getchar = node.direct.getchar
+local getglue = node.direct.getglue
local getsubtype = node.direct.getsubtype
+local getshift = node.direct.getshift
+local getwidth = node.direct.getwidth
+local getdepth = node.direct.getdepth
+local getpenalty = node.direct.getpenalty
+local setfield = node.direct.setfield
+local setglue = node.direct.setglue
+local setshift = node.direct.setshift
local if_lang_ja
do
local lang_ja = luatexja.lang_ja
local getlang = node.direct.getlang
-- glyph with font number 0 (\nullfont) is always considered an ALchar node
- if_lang_ja = getlang
- and function (n) return (getlang(n)==lang_ja)and(getfont(n)~=0) end
- or function (n) return (getfield(n,'lang')==lang_ja)and(getfont(n)~=0) end
+ if_lang_ja = function (n) return (getlang(n)==lang_ja)and(getfont(n)~=0) end
end
-
-local has_attr = node.direct.has_attribute
+local setpenalty = node.direct.setpenalty
+local setkern = node.direct.setkern
+local call_callback = luatexbase.call_callback
+
+local get_attr = node.direct.get_attribute
local set_attr = node.direct.set_attribute
local insert_before = node.direct.insert_before
local insert_after = node.direct.insert_after
@@ -48,7 +55,7 @@ local ltjf_find_char_class = ltjf.find_char_class
local node_new = luatexja.dnode_new
local node_copy = node.direct.copy
local node_tail = node.direct.tail
-local node_free = node.direct.free
+local node_free = node.direct.flush_node or node.direct.free
local node_remove = node.direct.remove
local node_inherit_attr = luatexja.node_inherit_attr
@@ -96,7 +103,7 @@ local set_np_xspc_jachar_hbox
local ltjs_orig_char_table = ltjs.orig_char_table
local function get_attr_icflag(p)
- return (has_attr(p, attr_icflag) or 0)%PROCESSED_BEGIN_FLAG
+ return (get_attr(p, attr_icflag) or 0)%PROCESSED_BEGIN_FLAG
end
-------------------- Helper functions
@@ -107,11 +114,12 @@ local function fast_find_char_class(c,m)
end
-- 文字クラスの決定
-local slow_find_char_class
+local slow_find_char_class, skip_table_to_glue
do
local start_time_measure = ltjb.start_time_measure
local stop_time_measure = ltjb.stop_time_measure
- slow_find_char_class = function (c, m, oc)
+ local fast_get_stack_skip = ltjs.fast_get_stack_skip
+ function slow_find_char_class (c, m, oc)
local cls = ltjf_find_char_class(oc, m)
if oc~=c and c and cls==0 then
return ltjf_find_char_class(c, m)
@@ -119,20 +127,17 @@ do
return cls
end
end
-end
-
-local function skip_table_to_glue(n)
- local g, st = node_new(id_glue), ltjs.fast_get_stack_skip(n)
- setglue(g, st.width, st.stretch, st.shrink, st.stretch_order, st.shrink_order)
- return g, (st.width==1073741823)
+ function skip_table_to_glue(n)
+ local g, st = node_new(id_glue), fast_get_stack_skip(n)
+ setglue(g, st[1], st[2], st[3], st[4], st[5])
+ return g, (st[1]==1073741823)
+ end
end
-- penalty 値の計算
local add_penalty
do
-local setpenalty = node.direct.setpenalty or function(n, a) setfield(n,'penalty',a) end
-local getpenalty = node.direct.getpenalty or function(n) return getfield(n,'penalty') end
function add_penalty(p,e)
local pp = getpenalty(p)
if (pp>-10000) and (pp<10000) then
@@ -206,7 +211,7 @@ local function check_box(box_ptr, box_end)
if find_first_char then first_char = s; find_first_char = false end
last_char = s; found_visible_node = true
else
- if getfield(p, 'shift')==0 then
+ if getshift(p)==0 then
last_char = nil
if check_box(getlist(p), nil) then found_visible_node = true end
find_first_char = false
@@ -264,13 +269,13 @@ luatexbase.create_callback("luatexja.jfmglue.whatsit_last_minute", "data",
function (stat, Nq, Np) return false end)
-- calc next Np
-local calc_np
+local calc_np
do -- 001 -----------------------------------------------
local traverse = node.direct.traverse
local function check_next_ickern(lp)
local lx = Np.nuc
- while lp and getid(lp) == id_kern and ( getsubtype(lp)==0 or
+ while lp and getid(lp) == id_kern and ( getsubtype(lp)==0 or
getsubtype(lp)==3 or ITALIC == get_attr_icflag(lp)) do
set_attr(lp, attr_icflag, IC_PROCESSED)
lx, lp = lp, node_next(lp)
@@ -295,7 +300,7 @@ local function calc_np_pbox(lp, last)
else
nc, lp = lp, node_next(lp)
end
- first, lpa = false, (lp and has_attr(lp, attr_icflag) or 0)
+ first, lpa = false, (lp and get_attr(lp, attr_icflag) or 0)
-- get_attr_icflag() ではいけない!
end
Np.nuc = nc
@@ -311,18 +316,20 @@ do -- 002 ---------------------------------------
local attr_jchar_class = luatexbase.attributes['ltj@charclass']
local attr_jchar_code = luatexbase.attributes['ltj@charcode']
local font_getfont = font.getfont
+ local setwhd = node.direct.setwhd
+ local setdir = node.direct.setdir
local function calc_np_notdef(lp)
if not font_getfont(getfont(lp)).characters[getchar(lp)] then
local ln = node_next(lp)
- if ltju.specified_feature(getfont(lp), 'notdef') and ln and getid(ln)==id_glyph then
+ if ltju.specified_feature(getfont(lp), 'notdef') and ln and getid(ln)==id_glyph then
set_attr(lp, attr_icflag, PROCESSED)
- set_attr(ln, attr_jchar_code, has_attr(lp, attr_jchar_code) or getchar(lp))
- set_attr(ln, attr_jchar_class, has_attr(lp, attr_jchar_class) or 0)
+ set_attr(ln, attr_jchar_code, get_attr(lp, attr_jchar_code) or getchar(lp))
+ set_attr(ln, attr_jchar_class, get_attr(lp, attr_jchar_class) or 0)
Np.nuc, lp = ln, ln
end
end
return lp
- end
+ end
function calc_np_aux_glyph_common(lp, acc_flag)
Np.nuc, Np.first = lp, (Np.first or lp)
if if_lang_ja(lp) then -- JAchar
@@ -341,9 +348,9 @@ function calc_np_aux_glyph_common(lp, acc_flag)
-- loop
local first_glyph, last_glyph = lp
set_attr(lp, attr_icflag, PROCESSED); Np.last = lp
- local y_adjust = has_attr(lp,attr_ablshift) or 0
- local node_depth = getfield(lp, 'depth') + min(y_adjust, 0)
- local adj_depth = (y_adjust>0) and (getfield(lp, 'depth') + y_adjust) or 0
+ local y_adjust = get_attr(lp,attr_ablshift) or 0
+ local node_depth = getdepth(lp) + min(y_adjust, 0)
+ local adj_depth = (y_adjust>0) and (getdepth(lp) + y_adjust) or 0
setfield(lp, 'yoffset', getfield(lp, 'yoffset') - y_adjust); lp = node_next(lp)
local lx=lp
while lx do
@@ -354,9 +361,9 @@ function calc_np_aux_glyph_common(lp, acc_flag)
if lid==id_glyph and not if_lang_ja(lx) then
-- 欧文文字
last_glyph = lx; set_attr(lx, attr_icflag, PROCESSED); Np.last = lx
- y_adjust = has_attr(lx,attr_ablshift) or 0
- node_depth = max(getfield(lx, 'depth') + min(y_adjust, 0), node_depth)
- adj_depth = (y_adjust>0) and max(getfield(lx, 'depth') + y_adjust, adj_depth) or adj_depth
+ y_adjust = get_attr(lx,attr_ablshift) or 0
+ node_depth = max(getdepth(lx) + min(y_adjust, 0), node_depth)
+ adj_depth = (y_adjust>0) and max(getdepth(lx) + y_adjust, adj_depth) or adj_depth
setfield(lx, 'yoffset', getfield(lx, 'yoffset') - y_adjust); lx = node_next(lx)
elseif lid==id_kern then
local ls = getsubtype(lx)
@@ -364,9 +371,9 @@ function calc_np_aux_glyph_common(lp, acc_flag)
set_attr(lx, attr_icflag, PROCESSED)
lx = node_next(lx) -- lx: アクセント本体
if getid(lx)==id_glyph then
- setfield(lx, 'yoffset', getfield(lx, 'yoffset') - (has_attr(lx,attr_ablshift) or 0))
+ setfield(lx, 'yoffset', getfield(lx, 'yoffset') - (get_attr(lx,attr_ablshift) or 0))
else -- アクセントは上下にシフトされている
- setfield(lx, 'shift', getfield(lx, 'shift') + (has_attr(lx,attr_ablshift) or 0))
+ setshift(lx, getshift(lx) + (get_attr(lx,attr_ablshift) or 0))
end
set_attr(lx, attr_icflag, PROCESSED)
lx = node_next(lx); set_attr(lx, attr_icflag, PROCESSED)
@@ -385,8 +392,7 @@ function calc_np_aux_glyph_common(lp, acc_flag)
local r
if adj_depth>node_depth then
r = node_new(id_rule,3,first_glyph)
- setfield(r, 'width', 0); setfield(r, 'height', 0)
- setfield(r, 'depth',adj_depth); setfield(r, 'dir', tex_dir)
+ setwhd(r, 0, 0, adj_depth); setdir(r, tex_dir)
set_attr(r, attr_icflag, PROCESSED)
end
if last_glyph then
@@ -397,7 +403,7 @@ function calc_np_aux_glyph_common(lp, acc_flag)
Np.last_char = npn
if r then
local nf, nc = getfont(npn), getchar(npn)
- local ct = (font.getfont(nf) or font.fonts[nf] ).characters[nc]
+ local ct = (font_getfont(nf) or font.fonts[nf] ).characters[nc]
if not ct then -- variation selector
node_free(r)
elseif (ct.left_protruding or 0) == 0 then
@@ -429,6 +435,7 @@ local sid_start_link = node.subtype 'pdf_start_link'
local sid_start_thread = node.subtype 'pdf_start_thread'
local sid_end_link = node.subtype 'pdf_end_link'
local sid_end_thread = node.subtype 'pdf_end_thread'
+local getvalue = node.direct.getdata
calc_np_auxtable = {
[id_glyph] = calc_np_aux_glyph_common,
[id_hlist] = function(lp)
@@ -436,7 +443,7 @@ calc_np_auxtable = {
head, lp, op, flag = ltjd_make_dir_whatsit(head, lp, list_dir, 'jfm hlist')
set_attr(op, attr_icflag, PROCESSED)
Np.first = Np.first or op; Np.last = op; Np.nuc = op;
- if (flag or getfield(op, 'shift')~=0) then
+ if (flag or getshift(op)~=0) then
Np.id = id_box_like
else
Np.id = id_hlist
@@ -461,7 +468,7 @@ calc_np_auxtable = {
if lps==sid_user then
if getfield(lp, 'user_id')==luatexja.userid_table.IHB then
local lq = node_next(lp);
- head = node_remove(head, lp); node_free(lp); non_ihb_flag = getfield(lp, 'value')~=1
+ head = node_remove(head, lp); node_free(lp); non_ihb_flag = getvalue(lp)~=1
return false, lq;
elseif getfield(lp, 'user_id')==luatexja.userid_table.JA_AL_BDD then
local lq = node_next(lp);
@@ -469,7 +476,7 @@ calc_np_auxtable = {
return false, lq;
else
set_attr(lp, attr_icflag, PROCESSED)
- luatexbase.call_callback("luatexja.jfmglue.whatsit_getinfo",
+ call_callback("luatexja.jfmglue.whatsit_getinfo",
Np, lp, Nq)
if Np.nuc then
Np.id = id_pbox_w; Np.first = Np.nuc; Np.last = Np.nuc;
@@ -501,8 +508,8 @@ calc_np_auxtable = {
end,
[id_glue] = function(lp)
Np.first, Np.nuc, Np.last = (Np.first or lp), lp, lp;
- Np.id = getid(lp);
- local f = luatexbase.call_callback("luatexja.jfmglue.special_jaglue", lp)
+ Np.id = getid(lp);
+ local f = call_callback("luatexja.jfmglue.special_jaglue", lp)
if f then
set_attr(lp, attr_icflag, PROCESSED)
end
@@ -520,9 +527,9 @@ calc_np_auxtable = {
Np.first = Np.first or lp
set_attr(lp, attr_icflag, PROCESSED); lp = node_next(lp)
if getid(lp)==id_glyph then -- アクセント本体
- setfield(lp, 'yoffset', getfield(lp, 'yoffset') - (has_attr(lp,attr_ablshift) or 0))
+ setfield(lp, 'yoffset', getfield(lp, 'yoffset') - (get_attr(lp,attr_ablshift) or 0))
else -- アクセントは上下にシフトされている
- setfield(lp, 'shift', getfield(lp, 'shift') + (has_attr(lp,attr_ablshift) or 0))
+ setshift(lp, getshift(lp) + (get_attr(lp,attr_ablshift) or 0))
end
set_attr(lp, attr_icflag, PROCESSED); lp = node_next(lp)
set_attr(lp, attr_icflag, PROCESSED); lp = node_next(lp)
@@ -552,7 +559,7 @@ function calc_np(last, lp)
local k
-- We assume lp = node_next(Np.last)
if Nq and Nq.id==id_pbox_w then
- luatexbase.call_callback("luatexja.jfmglue.whatsit_last_minute", false, Nq, Np)
+ call_callback("luatexja.jfmglue.whatsit_last_minute", false, Nq, Np)
end
Np, Nq, non_ihb_flag = Nq, Np, true
-- We clear `predefined' entries of Np before pairs() loop,
@@ -560,13 +567,13 @@ function calc_np(last, lp)
Np.post, Np.pre, Np.xspc, Np.gk = nil, nil, nil, nil
Np.first, Np.id, Np.last, Np.met, Np.class= nil, nil, nil, nil
Np.auto_kspc, Np.auto_xspc, Np.char, Np.nuc = nil, nil, nil, nil
- -- auto_kspc, auto_xspc: normally true/false,
+ -- auto_kspc, auto_xspc: normally true/false,
-- but the number 0 when Np is ''the beginning of the box/paragraph''.
for k in pairs(Np) do Np[k] = nil end
for k = 1,#Bp do Bp[k] = nil end
while lp ~= last do
- local lpa = has_attr(lp, attr_icflag) or 0
+ local lpa = get_attr(lp, attr_icflag) or 0
-- unbox 由来ノードの検出
if (lpa>=PACKED) and (lpa%PROCESSED_BEGIN_FLAG<=BOXBDD) then
if lpa%PROCESSED_BEGIN_FLAG == BOXBDD then
@@ -598,6 +605,7 @@ do
local dir_tate = luatexja.dir_table.dir_tate
-- 和文文字のデータを取得
+ local has_attr = node.direct.has_attribute
local attr_jchar_class = luatexbase.attributes['ltj@charclass']
local attr_jchar_code = luatexbase.attributes['ltj@charcode']
local attr_autospc = luatexbase.attributes['ltj@autospc']
@@ -617,19 +625,21 @@ do
Nx.post = table_current_stack[POST + c] or 0
Nx.xspc = table_current_stack[XSP + c] or 3
Nx.kcat = table_current_stack[KCAT + c] or 0
- Nx.auto_kspc, Nx.auto_xspc = (has_attr(x, attr_autospc)==1), (has_attr(x, attr_autoxspc)==1)
+ Nx.auto_kspc, Nx.auto_xspc
+ = not has_attr(x, attr_autospc, 0), not has_attr(x, attr_autoxspc, 0)
return m, mc, cls
end
function set_np_xspc_jachar_hbox(Nx, x)
local m = ltjf_font_metric_table[getfont(x)]
- local c = has_attr(x, attr_jchar_code) or getchar(x)
- Nx.met, Nx.char = m, c; Nx.class = has_attr(x, attr_jchar_class) or 0;
+ local c = get_attr(x, attr_jchar_code) or getchar(x)
+ Nx.met, Nx.char = m, c; Nx.class = get_attr(x, attr_jchar_class) or 0;
local mc = m.char_type; Nx.char_type = mc
Nx.pre = table_current_stack[PRE + c] or 0
Nx.post = table_current_stack[POST + c] or 0
Nx.xspc = table_current_stack[XSP + c] or 3
Nx.kcat = table_current_stack[KCAT + c] or 0
- Nx.auto_kspc, Nx.auto_xspc = (has_attr(x, attr_autospc)==1), (has_attr(x, attr_autoxspc)==1)
+ Nx.auto_kspc, Nx.auto_xspc
+ = not has_attr(x, attr_autospc, 0), not has_attr(x, attr_autoxspc, 0)
end
-- 欧文文字のデータを取得
@@ -652,7 +662,7 @@ do
end
Nx.met = nil
Nx.xspc = table_current_stack[XSP + c] or 3
- Nx.auto_xspc = (has_attr(x, attr_autoxspc)==1)
+ Nx.auto_xspc = not has_attr(x, attr_autoxspc, 0)
end
local set_np_xspc_alchar = set_np_xspc_alchar
-- change the information for the next loop
@@ -686,13 +696,13 @@ luatexbase.create_callback('luatexja.adjust_jfmglue', 'simple', function(n) retu
-- change penalties (or create a new penalty, if needed)
local function handle_penalty_normal(post, pre, g)
- luatexbase.call_callback('luatexja.adjust_jfmglue', head, Nq, Np, Bp)
+ call_callback('luatexja.adjust_jfmglue', head, Nq, Np, Bp)
local a = (pre or 0) + (post or 0)
if #Bp == 0 then
if (a~=0 and not(g and getid(g)==id_kern)) then
local p = node_new(id_penalty, nil, Nq.nuc, Np.nuc)
if a<-10000 then a = -10000 elseif a>10000 then a = 10000 end
- setfield(p, 'penalty', a); head = insert_before(head, Np.first, p)
+ setpenalty(p, a); head = insert_before(head, Np.first, p)
Bp[1]=p; set_attr(p, attr_icflag, KINSOKU)
end
else for _, v in pairs(Bp) do add_penalty(v,a) end
@@ -700,13 +710,13 @@ local function handle_penalty_normal(post, pre, g)
end
local function handle_penalty_always(post, pre, g)
- luatexbase.call_callback('luatexja.adjust_jfmglue', head, Nq, Np, Bp)
+ call_callback('luatexja.adjust_jfmglue', head, Nq, Np, Bp)
local a = (pre or 0) + (post or 0)
if #Bp == 0 then
if not (g and getid(g)==id_glue) or a~=0 then
local p = node_new(id_penalty, nil, Nq.nuc, Np.nuc)
if a<-10000 then a = -10000 elseif a>10000 then a = 10000 end
- setfield(p, 'penalty', a); head = insert_before(head, Np.first, p)
+ setpenalty(p, a); head = insert_before(head, Np.first, p)
Bp[1]=p; set_attr(p, attr_icflag, KINSOKU)
end
else for _, v in pairs(Bp) do add_penalty(v,a) end
@@ -714,14 +724,14 @@ local function handle_penalty_always(post, pre, g)
end
local function handle_penalty_suppress(post, pre, g)
- luatexbase.call_callback('luatexja.adjust_jfmglue', head, Nq, Np, Bp)
+ call_callback('luatexja.adjust_jfmglue', head, Nq, Np, Bp)
if #Bp == 0 then
if g and getid(g)==id_glue then
local p = node_new(id_penalty, nil, Nq.nuc, Np.nuc)
- setfield(p, 'penalty', 10000); head = insert_before(head, Np.first, p)
+ setpenalty(p, 10000); head = insert_before(head, Np.first, p)
Bp[1]=p; set_attr(p, attr_icflag, KINSOKU)
end
- else
+ else
local a = (pre or 0) + (post or 0)
for _, v in pairs(Bp) do add_penalty(v,a) end
end
@@ -733,7 +743,7 @@ local function handle_penalty_jwp()
if a~=0 then
local p = node_new(id_penalty, widow_Np.nuc)
if a<-10000 then a = -10000 elseif a>10000 then a = 10000 end
- setfield(p, 'penalty', a); head = insert_before(head, widow_Np.first, p)
+ setpenalty(p, a); head = insert_before(head, widow_Np.first, p)
widow_Bp[1]=p; set_attr(p, attr_icflag, KINSOKU)
end
else for _, v in pairs(widow_Bp) do add_penalty(v,a) end
@@ -746,13 +756,13 @@ local function new_jfm_glue(mc, bc, ac)
local g = mc[bc][ac]
if g then
if g[1] then
- local k = node_new(id_kern, 1); setfield(k, 'kern', g[1])
+ local k = node_new(id_kern, 1); setkern(k, g[1])
set_attr(k, attr_icflag, FROM_JFM)
return k, g.ratio, false, false, false
else
local f = node_new(id_glue)
set_attr(f, attr_icflag, g.priority)
- setglue(f, g.width, g.stretch, g.shrink)
+ setglue(f, g[2], g[3], g[4])
return f, g.ratio, g.kanjiskip_natural, g.kanjiskip_stretch, g.kanjiskip_shrink
end
end
@@ -779,6 +789,7 @@ do
local bg_ak = 2*id_glue - id_kern
local bk_ag = 2*id_kern - id_glue
local bk_ak = 2*id_kern - id_kern
+ local getkern = node.direct.getkern
local function blend_diffmet(b, a, rb, ra)
return round(luatexja.jfmglue.diffmet_rule((1-rb)*b+rb*a, (1-ra)*b+ra*a))
@@ -793,31 +804,30 @@ do
return round(r/2.^(64*ro)), ro
end
end
- local getglue = luatexja.getglue
calc_ja_ja_aux = function (gb, ga, db, da)
if luatexja.jfmglue.diffmet_rule ~= math.two_pleft and diffmet_rule ~= math.two_pright
and luatexja.jfmglue.diffmet_rule ~= math.two_paverage then
db, da = 0, 1
end
if not gb then
- if ga then gb = node_new(id_kern, 1); setfield(gb, 'kern', 0)
+ if ga then gb = node_new(id_kern, 1); setkern(gb, 0)
else return nil end
elseif not ga then
- ga = node_new(id_kern, 1); setfield(ga, 'kern', 0)
+ ga = node_new(id_kern, 1); setkern(ga, 0)
end
local gbw, gaw, gbst, gast, gbsto, gasto, gbsh, gash, gbsho, gasho
if getid(gb)==id_glue then
gbw, gbst, gbsh, gbsto, gbsho = getglue(gb)
else
- gbw = getfield(gb, 'kern')
+ gbw = getkern(gb)
end
if getid(ga)==id_glue then
gaw, gast, gash, gasto, gasho = getglue(ga)
else
- gaw = getfield(ga, 'kern')
+ gaw = getkern(ga)
end
if not (gbst or gast) then -- 両方とも kern
- setfield(gb, 'kern', blend_diffmet(gbw, gaw, db, da))
+ setkern(gb, blend_diffmet(gbw, gaw, db, da))
node_free(ga); return gb
else
local gr = gb
@@ -848,8 +858,8 @@ do
if kanjiskip_jfm_flag then
local g = node_new(id_glue);
local bk = qm.kanjiskip or null_skip_table
- setglue(g, bn and (bn*bk[1]) or 0,
- bp and (bp*bk[2]) or 0,
+ setglue(g, bn and (bn*bk[1]) or 0,
+ bp and (bp*bk[2]) or 0,
bh and (bh*bk[3]) or 0, 0, 0)
set_attr(g, attr_icflag, KANJI_SKIP_JFM)
return g
@@ -858,8 +868,8 @@ do
local st = bp and (bp*getfield(kanji_skip, 'stretch')) or 0
local sh = bh and (bh*getfield(kanji_skip, 'shrink')) or 0
setglue(g,
- bn and (bn*getfield(kanji_skip, 'width')) or 0,
- st, sh,
+ bn and (bn*getwidth(kanji_skip)) or 0,
+ st, sh,
(st==0) and 0 or getfield(kanji_skip, 'stretch_order'),
(sh==0) and 0 or getfield(kanji_skip, 'shrink_order'))
set_attr(g, attr_icflag, KANJI_SKIP_JFM)
@@ -867,9 +877,9 @@ do
end
end
end
-
+
get_kanjiskip = function()
- if Np.auto_kspc==0 or Nq.auto_kspc==0 then return nil
+ if Np.auto_kspc==0 or Nq.auto_kspc==0 then return nil
elseif Np.auto_kspc or Nq.auto_kspc then
local pm, qm = Np.met, Nq.met
if (pm.char_type==qm.char_type) and (qm.var==pm.var) then
@@ -877,15 +887,15 @@ do
else
local gb = get_kanjiskip_low(false, qm, 1, 1, 1)
if gb then
- return calc_ja_ja_aux(gb,
- get_kanjiskip_low(false, pm, 1, 1, 1) or node_copy(kanji_skip), 0, 1)
+ return calc_ja_ja_aux(gb,
+ get_kanjiskip_low(false, pm, 1, 1, 1) or node_copy(kanji_skip), 0, 1)
else
local ga = get_kanjiskip_low(false, pm, 1, 1, 1)
return (ga and calc_ja_ja_aux(node_copy(kanji_skip), ga, 0, 1))
or node_copy(kanji_skip)
end
end
- else
+ else
local g = node_new(id_glue)
set_attr(g, attr_icflag, kanjiskip_jfm_flag and KANJI_SKIP_JFM or KANJI_SKIP)
return g
@@ -900,11 +910,11 @@ do
return g, (Np.auto_kspc or Nq.auto_kspc) and get_kanjiskip_low(true, qm, kn, kp, kh)
else
local npn, nqn = Np.nuc, Nq.nuc
- local gb, db, bn, bp, bh
+ local gb, db, bn, bp, bh
= new_jfm_glue(qmc, Nq.class,
slow_find_char_class(Np.char,
qm, getchar(npn)))
- local ga, da, an, ap, ah
+ local ga, da, an, ap, ah
= new_jfm_glue(pmc,
slow_find_char_class(Nq.char,
pm, getchar(nqn)),
@@ -942,22 +952,23 @@ do
elseif flag then
return node_copy(xkanji_skip)
else
- local g = node_new(id_glue);
+ local g = node_new(id_glue)
+ local w, st, sh, sto, sho = getglue(xkanji_skip)
setglue(g,
- bn and (bn*getfield(xkanji_skip, 'width')) or 0,
- bp and (bp*getfield(xkanji_skip, 'stretch')) or 0,
- bh and (bh*getfield(xkanji_skip, 'shrink')) or 0,
- bp and getfield(xkanji_skip, 'stretch_order') or 0,
- bh and getfield(xkanji_skip, 'shrink_order') or 0)
+ bn and (bn*w) or 0,
+ bp and (bp*st) or 0,
+ bh and (bh*sh) or 0,
+ bp and sto or 0,
+ bh and sho or 0)
set_attr(g, attr_icflag, XKANJI_SKIP_JFM)
return g
end
end
end
-
+
get_xkanjiskip = function(Nn)
if Np.auto_xspc==0 or Nq.auto_xspc==0 then
- return nil
+ return nil
elseif (Nq.xspc>=2) and (Np.xspc%2==1) and (Nq.auto_xspc or Np.auto_xspc) then
return get_xkanjiskip_low(true, Nn.met, 1, 1, 1)
else
@@ -999,7 +1010,7 @@ local function get_OA_skip(insert_ksp)
local g, _, kn, kp, kh = new_jfm_glue(
pm.char_type,
fast_find_char_class(
- (((Nq.id==id_glue)or(Nq.id==id_kern)) and 'glue' or 'jcharbdd'), pm),
+ (((Nq.id==id_glue)or(Nq.id==id_kern)) and 'glue' or 'jcharbdd'), pm),
Np.class)
local k
if insert_ksp then
@@ -1027,7 +1038,7 @@ local function handle_np_jachar(mode)
local g, k
if non_ihb_flag then g, k = calc_ja_ja_glue() end -- M->K
if not g then g = get_kanjiskip() end
- handle_penalty_normal(Nq.post, Np.pre, g);
+ handle_penalty_normal(Nq.post, Np.pre, g);
real_insert(g); real_insert(k)
elseif Nq.met then -- qid==id_hlist
local g, k
@@ -1037,7 +1048,7 @@ local function handle_np_jachar(mode)
elseif Nq.pre then
local g, k; if non_ihb_flag then g, k = get_NA_skip() end -- N_A->X
if not g then g = get_xkanjiskip(Np) end
- handle_penalty_normal((qid==id_hlist and 0 or Nq.post), Np.pre, g);
+ handle_penalty_normal((qid==id_hlist and 0 or Nq.post), Np.pre, g);
real_insert(g); real_insert(k)
else
local g = non_ihb_flag and (get_OA_skip()) -- O_A
@@ -1102,11 +1113,11 @@ do
[id_hlist] = function() after_hlist(Nq) end,
[id_pbox] = function() after_hlist(Nq) end,
[id_disc] = function() after_hlist(Nq) end,
- [id_glue] = function()
- luatexbase.call_callback("luatexja.jfmglue.special_jaglue_after", Nq.nuc)
+ [id_glue] = function()
+ call_callback("luatexja.jfmglue.special_jaglue_after", Nq.nuc)
end,
[id_pbox_w]= function()
- local hh = luatexbase.call_callback("luatexja.jfmglue.whatsit_after", false, Nq, Np, head)
+ local hh = call_callback("luatexja.jfmglue.whatsit_after", false, Nq, Np, head)
-- hh: new head of false (nott processed)
if hh then head = hh end
end,
@@ -1130,7 +1141,7 @@ local function handle_list_tail(mode, last)
-- Insert \jcharwidowpenalty
if widow_Np.first then handle_penalty_jwp() end
else
- Np = Nq
+ Np = Nq
-- the current list is the contents of a hbox
local npi, pm = Np.id, Np.met
if npi == id_jglyph or (npi==id_pbox and pm) then
@@ -1153,7 +1164,7 @@ local function handle_list_head(par_indented)
set_attr(g, attr_icflag, BOXBDD)
if getid(g)==id_glue and #Bp==0 then
local h = node_new(id_penalty, nil, Np.nuc)
- setfield(h, 'penalty', 10000); set_attr(h, attr_icflag, BOXBDD)
+ setpenalty(h, 10000); set_attr(h, attr_icflag, BOXBDD)
end
head = insert_before(head, Np.first, g)
end
@@ -1178,7 +1189,7 @@ do
{}, {}, {first=nil},
{ auto_kspc=nil, auto_xspc=nil, char=nil, class=nil,
first=nil, id=nil, last=nil, met=nil, nuc=nil,
- post=nil, pre=nil, xspc=nil, gk=nil },
+ post=nil, pre=nil, xspc=nil, gk=nil },
{ auto_kspc=nil, auto_xspc=nil, char=nil, class=nil,
first=nil, id=nil, last=nil, met=nil, nuc=nil,
post=nil, pre=nil, xspc=nil, gk=nil },
@@ -1194,31 +1205,28 @@ do
local is_dir_tate = list_dir==dir_tate
capsule_glyph = is_dir_tate and ltjw.capsule_glyph_tate or ltjw.capsule_glyph_yoko
attr_ablshift = is_dir_tate and attr_tablshift or attr_yablshift
- local TEMP = node_new(id_glue)
- -- TEMP is a dummy node, which will be freed at the end of the callback.
- -- ithout this node, set_attr(kanji_skip, ...) somehow creates an "orphaned" attribute list.
-
+ local TEMP = node_new(id_glue)
+ -- TEMP is a dummy node, which will be freed at the end of the callback.
+ -- Without this node, set_attr(kanji_skip, ...) somehow creates an "orphaned" attribute list.
do
kanji_skip, kanjiskip_jfm_flag = skip_table_to_glue(KSK)
set_attr(kanji_skip, attr_icflag, KANJI_SKIP)
end
-
do
xkanji_skip, xkanjiskip_jfm_flag = skip_table_to_glue(XSK)
set_attr(xkanji_skip, attr_icflag, XKANJI_SKIP)
end
-
if mode then
-- the current list is to be line-breaked:
-- hbox from \parindent is skipped.
local lp, par_indented, lpi, lps = head, 'boxbdd', getid(head), getsubtype(head)
- while lp and
+ while lp and
((lpi==id_whatsit and lps~=sid_user)
or ((lpi==id_hlist) and (lps==3))
or (lpi==id_local)) do
if (lpi==id_hlist) and (lps==3) then
Np.char, par_indented = 'parbdd', 'parbdd'
- Np.width = getfield(lp, 'width')
+ Np.width = getwidth(lp)
end
lp=node_next(lp); lpi, lps = getid(lp), getsubtype(lp) end
return lp, node_tail(head), par_indented, TEMP
@@ -1240,7 +1248,7 @@ function luatexja.jfmglue.main(ahead, mode, dir)
lp = calc_np(last, lp)
if Np then
handle_list_head(par_indented)
- lp = calc_np(last,lp);
+ lp = calc_np(last,lp);
while Np do
adjust_nq();
local pid, pm = Np.id, Np.met
@@ -1260,25 +1268,26 @@ function luatexja.jfmglue.main(ahead, mode, dir)
end
-- adjust attr_icflag for avoiding error
if tex_getattr(attr_icflag)~=0 then ensure_tex_attr(attr_icflag, 0) end
- node_free(kanji_skip);
+ node_free(kanji_skip);
node_free(xkanji_skip); node_free(TEMP)
return head
end
end
do
- local IHB = luatexja.userid_table.IHB
+ local IHB = luatexja.userid_table.IHB
local BPAR = luatexja.userid_table.BPAR
local BOXB = luatexja.userid_table.BOXB
local node_prev = node.direct.getprev
local node_write = node.direct.write
+ local setvalue = node.direct.setdata
-- \inhibitglue, \disinhibitglue
local function ihb_node(v)
local tn = node_new(id_whatsit, sid_user)
setfield(tn, 'user_id', IHB)
setfield(tn, 'type', 100)
- setfield(tn, 'value', v)
+ setvalue(tn, v)
node_write(tn)
end
function luatexja.jfmglue.create_inhibitglue_node()
@@ -1294,7 +1303,7 @@ do
local tn = node_new(id_whatsit, sid_user)
setfield(tn, 'user_id', BPAR)
setfield(tn, 'type', 100)
- setfield(tn, 'value', 1)
+ setvalue(tn, 1)
node_write(tn)
end
@@ -1303,7 +1312,7 @@ do
local tn = node_new(id_whatsit, sid_user)
setfield(tn, 'user_id', BOXB)
setfield(tn, 'type', 100)
- setfield(tn, 'value', 1)
+ setvalue(tn, 1)
node_write(tn)
end
@@ -1320,7 +1329,7 @@ do
end
Np.met = Nq.met; Np.pre = 0; Np.post = 0; Np.xspc = 0
Np.auto_xspc, Np.auto_kspc = 0, 0
- end
+ end
return Np
else
return Np
@@ -1374,38 +1383,42 @@ do
local attr_yablshift = luatexbase.attributes['ltj@yablshift']
local attr_tablshift = luatexbase.attributes['ltj@tablshift']
local getcount, abs, scan_keyword = tex.getcount, math.abs, token.scan_keyword
+ local getnest = tex.getnest
+ local tex_getattr = tex.getattribute
local get_current_jfont
+ local cnt_stack = luatexbase.registernumber 'ltj@@stack'
do
local attr_curjfnt = luatexbase.attributes['ltj@curjfnt']
local attr_curtfnt = luatexbase.attributes['ltj@curtfnt']
local dir_tate = luatexja.dir_table.dir_tate
- local get_dir_count = ltjd.get_dir_count
+ local get_dir_count = ltjd.get_dir_count
function get_current_jfont()
- return tex.getattribute((get_dir_count()==dir_tate) and attr_curtfnt or attr_curjfnt)
+ return tex_getattr((get_dir_count()==dir_tate) and attr_curtfnt or attr_curjfnt)
end
end
+ local get_stack_skip = ltjs.get_stack_skip
-- \insertxkanjiskip
-- SPECIAL_JAGLUE のノード:
-- * (X)KANJI_SKIP(_JFM): その場で値が決まっている
-- * PROCESSED_BEGIN_FLAG + (X)KANJI_SKIP: 段落終了時に決める
local function insert_k_skip_common(ind, name, ica, icb)
- if abs(tex.nest[tex.nest.ptr].mode) ~= ltjs.hmode then return end
+ if abs(getnest().mode) ~= ltjs.hmode then return end
local g = node_new(id_glue); set_attr(g, attr_icflag, SPECIAL_JAGLUE)
- local is_late = scan_keyword("late")
+ local is_late = scan_keyword 'late'
if not is_late then
- local st = ltjs.get_stack_skip(ind, getcount('ltj@@stack'))
- if st.width==1073741823 then
+ local st = get_stack_skip(ind, getcount(cnt_stack))
+ if st[1]==1073741823 then
local bk = ltjf_font_metric_table[get_current_jfont()][name]
if bk then
setglue(g, bk[1] or 0, bk[2] or 0, bk[3] or 0, 0, 0)
end
set_attr(g, attr_yablshift, icb); node_write(g); return
end
- setglue(g, st.width, st.stretch, st.shrink, st.stretch_order, st.shrink_order)
+ setglue(g, st[1], st[2], st[3], st[4], st[5])
set_attr(g, attr_yablshift, ica)
else
set_attr(g, attr_yablshift, PROCESSED_BEGIN_FLAG + ica)
- set_attr(g, attr_tablshift, get_current_jfont())
+ set_attr(g, attr_tablshift, get_current_jfont())
end
node_write(g)
end
@@ -1416,7 +1429,6 @@ do
insert_k_skip_common(KSK, "kanjiskip", KANJI_SKIP, KANJI_SKIP_JFM)
end
-- callback
- local getglue = luatexja.getglue
local function special_jaglue(lx)
local lxi = get_attr_icflag(lx)
if lxi==SPECIAL_JAGLUE then
@@ -1430,22 +1442,22 @@ do
if w~=1073741823 then
setglue(lx, w, st, sh, sto, sho); set_attr(lx, attr_icflag, lxi)
else
- local m = ltjf_font_metric_table[has_attr(lx, attr_tablshift)]
+ local m = ltjf_font_metric_table[get_attr(lx, attr_tablshift)]
setglue(lx, bk[1], bk[2], bk[3], 0, 0)
set_attr(lx, attr_icflag, lxi_jfm)
end
end
local function special_jaglue_after(lx)
if get_attr_icflag(lx)==SPECIAL_JAGLUE then
- lxi=has_attr(lx, attr_yablshift)
+ lxi=get_attr(lx, attr_yablshift)
if lxi>=PROCESSED_BEGIN_FLAG then
lxi = lxi%PROCESSED_BEGIN_FLAG
if lxi == KANJI_SKIP then
- special_jaglue_after_inner(lx, lxi, KANJI_SKIP_JFM, kanji_skip,
- ltjf_font_metric_table[has_attr(lx, attr_tablshift)].kanjiskip or null_skip_table)
+ special_jaglue_after_inner(lx, lxi, KANJI_SKIP_JFM, kanji_skip,
+ ltjf_font_metric_table[get_attr(lx, attr_tablshift)].kanjiskip or null_skip_table)
else -- lxi == XKANJI_SKIP
- special_jaglue_after_inner(lx, lxi, XKANJI_SKIP_JFM, xkanji_skip,
- ltjf_font_metric_table[has_attr(lx, attr_tablshift)].xkanjiskip or null_skip_table)
+ special_jaglue_after_inner(lx, lxi, XKANJI_SKIP_JFM, xkanji_skip,
+ ltjf_font_metric_table[get_attr(lx, attr_tablshift)].xkanjiskip or null_skip_table)
end
else
set_attr(lx, attr_icflag, lxi)
diff --git a/macros/luatex/generic/luatexja/src/ltj-jfont.lua b/macros/luatex/generic/luatexja/src/ltj-jfont.lua
index 70557c08a8..a14edd2b79 100644
--- a/macros/luatex/generic/luatexja/src/ltj-jfont.lua
+++ b/macros/luatex/generic/luatexja/src/ltj-jfont.lua
@@ -3,7 +3,7 @@
--
luatexbase.provides_module({
name = 'luatexja.jfont',
- date = '2021-11-06',
+ date = '2022-08-20',
description = 'Loader for Japanese fonts',
})
@@ -18,17 +18,18 @@ local getid = node.direct.getid
local to_direct = node.direct.todirect
local node_new = node.direct.new
-local node_free = node.direct.free
-local has_attr = node.direct.has_attribute
+local node_free = node.direct.flush_node or node.direct.free
+local get_attr = node.direct.get_attribute
local set_attr = node.direct.set_attribute
local round = tex.round
local font_getfont = font.getfont
+local setkern = node.direct.setkern
local attr_icflag = luatexbase.attributes['ltj@icflag']
local attr_curjfnt = luatexbase.attributes['ltj@curjfnt']
local attr_curtfnt = luatexbase.attributes['ltj@curtfnt']
-local id_glyph = node.id('glyph')
-local id_kern = node.id('kern')
+local id_glyph = node.id 'glyph'
+local id_kern = node.id 'kern'
local cat_lp = luatexbase.catcodetables['latex-package']
local FROM_JFM = luatexja.icflag_table.FROM_JFM
@@ -118,18 +119,18 @@ function luatexja.jfont.define_jfm(to)
v.end_adjust = nil
elseif #(v.end_adjust)==0 then
v.end_adjust = nil
- else
+ else
table.sort(v.end_adjust)
end
end
else
v.end_adjust = nil
- if v.end_stretch and v.end_stretch~=0.0 then
- v.end_adjust = (v.end_adjust or {})
+ if v.end_stretch and v.end_stretch~=0.0 then
+ v.end_adjust = (v.end_adjust or {})
v.end_adjust[#(v.end_adjust)+1] = v.end_stretch
end
- if v.end_shrink and v.end_ahrink~=0.0 then
- v.end_adjust = (v.end_adjust or {})
+ if v.end_shrink and v.end_ahrink~=0.0 then
+ v.end_adjust = (v.end_adjust or {})
v.end_adjust[#(v.end_adjust)+1] = -v.end_shrink
end
if v.end_adjust then v.end_adjust[#(v.end_adjust)+1] = 0.0 end
@@ -148,8 +149,8 @@ function luatexja.jfont.define_jfm(to)
elseif xp and type(xp)~='number' then
defjfm_res = nil
else
- xp = (xp or 0)*9+36
- if xp<0 or xp>=64 then defjfm_res=nil end
+ xp = (xp or 0)*9+36
+ if xp<0 or xp>=64 then defjfm_res=nil end
end
x.priority = xp
end
@@ -169,8 +170,8 @@ function luatexja.jfont.define_jfm(to)
end
end
if t.version<3 then
- -- In version 3, 'jcharbdd' is divided into
- -- 'alchar': ALchar (or math boundary)
+ -- In version 3, 'jcharbdd' is divided into
+ -- 'alchar': ALchar (or math boundary)
-- 'nox_alchar': ALchar (or math boundary), where xkanjiskip won't inserted
-- 'glue': glue/kern, 'jcharbdd': other cases (和文B, rule, ...)
t.chars.alchar = t.chars.jcharbdd
@@ -218,10 +219,9 @@ do
if type(i) == 'number' then -- char_type
for k,w in pairs(v.glue) do
v[k] = {
- nil,
+ nil, w[1], w[2], w[3],
ratio=w.ratio,
priority=FROM_JFM + w.priority,
- width = w[1], stretch = w[2], shrink = w[3],
kanjiskip_natural = w.kanjiskip_natural,
kanjiskip_stretch = w.kanjiskip_stretch,
kanjiskip_shrink = w.kanjiskip_shrink,
@@ -279,7 +279,6 @@ end
local load_jfont_metric, check_callback_order
local font_extra_info = {} -- defined later
do
- local cstemp
local global_flag -- true if \globaljfont, false if \jfont
load_jfont_metric = function()
if jfm_name=='' then
@@ -300,13 +299,10 @@ do
-- EXT
local utfbyte = utf.byte
- function luatexja.jfont.jfontdefX(g, dir, csname)
+ function luatexja.jfont.jfontdefX(g, dir)
jfm_dir, is_def_jfont = dir, true
- cstemp = csname:sub( (utfbyte(csname,1,1) == tex.escapechar) and 2 or 1, -1)
- cstemp = cstemp:sub(1, ((cstemp:sub(-1,-1)==' ') and (cstemp:len()>=2)) and -2 or -1)
global_flag = g and '\\global' or ''
- tex.sprint(cat_lp, '\\expandafter\\font\\csname ',
- (cstemp==' ') and '\\space' or cstemp, '\\endcsname')
+ tex.sprint(cat_lp, '\\expandafter\\font\\ltj@temp')
end
luatexbase.create_callback("luatexja.define_jfont", "data", function (ft, fn) return ft end)
@@ -315,15 +311,12 @@ do
local fastcopy=table.fastcopy
function luatexja.jfont.jfontdefY()
local j = load_jfont_metric(jfm_dir)
- local fn = font.id(cstemp)
- local f = font_getfont(fn)
+ local fn = token.get_next().mode; local f = font_getfont(fn)
if not j then
ltjb.package_error('luatexja', "bad JFM `" .. jfm_name .. "'",
'The JFM file you specified is not valid JFM file.\n'..
'So defining Japanese font is cancelled.')
- tex.sprint(cat_lp, global_flag, '\\expandafter\\let\\csname ',
- (cstemp==' ') and '\\space' or cstemp,
- '\\endcsname=\\relax')
+ tex.sprint(cat_lp, global_flag, '\\expandafter\\let\\ltj@temp\\relax')
return
end
if not f then return end
@@ -340,16 +333,15 @@ do
}
if auto_enable_vrt2 then
local vert_name = ltju.exist_feature(fn, 'vrt2') and 'vrt2' or 'vert'
- local rot = fmtable.rotation
+ local rot = fmtable.rotation
ltju.enable_feature(fn, vert_name)
ltju.loop_over_feat(f, {[vert_name]=true}, function (i,k) rot[i] = nil end)
end
fmtable = luatexbase.call_callback("luatexja.define_jfont", fmtable, fn)
font_metric_table[fn]=fmtable
- tex.sprint(cat_lp, global_flag, '\\protected\\expandafter\\def\\csname ',
- (cstemp==' ') and '\\space' or cstemp, '\\endcsname{\\ltj@cur'..
- (jfm_dir == 'yoko' and 'j' or 't') .. 'fnt', fn, '\\relax}')
+ tex.sprint(cat_lp, global_flag, '\\protected\\expandafter\\def\\ltj@temp',
+ '{\\ltj@cur'.. (jfm_dir == 'yoko' and 'j' or 't') .. 'fnt', fn, '\\relax}')
jfm_spec = nil
end
end
@@ -365,7 +357,7 @@ do
to_be_checked[i]=nil
if ltj_cb<lotf_cb then
local f = ltb.remove_from_callback(n,'luaotfload.letterspace')
- ltb.add_to_callback(n, f, 'luaotfload.letterspace',
+ ltb.add_to_callback(n, f, 'luaotfload.letterspace',
ltb.priority_in_callback(n, 'luaotfload.node_processor') + 1)
end
end
@@ -428,7 +420,7 @@ do
local parser=luaotfload.parsers.font_request
function is_feature_specified(s,fname)
local t = lpegmatch(parser,s); return t and t.features and t.features[fname]
- end
+ end
-- extract jfm_name, jfm_spec and jfm_var
-- normalize position of 'jfm=' and 'jfmvar=' keys
local function extract_jfm_spec(name)
@@ -461,7 +453,7 @@ do
jfm_ksp = (is_feature_specified(name,'ltjksp')~=false)
if jfm_dir == 'tate' then
vert_activated = (is_feature_specified(name,'vert')~=false) and (is_feature_specified(name,'vrt2')~=false)
- auto_enable_vrt2
+ auto_enable_vrt2
= (is_feature_specified(name,'vert')==nil) and (is_feature_specified(name,'vrt2')==nil)
else
vert_activated, auto_enable_vrt2 = nil, nil
@@ -797,7 +789,7 @@ do
local lo, hi = 1, #t
while lo < hi do
local mi = ceil((lo+hi)/2)
- if t[mi]<=i then lo=mi else hi=mi-1 end
+ if t[mi]<=i then lo=mi else hi=mi-1 end
end
return lo%2==1
end
@@ -844,14 +836,14 @@ do
local bname = tfmdata.psname or nameonly(tfmdata.filename)
if not font_extra_basename[bname] then
-- if the cache is present, read it
- --
+ --
local newtime = file_attributes(tfmdata.filename,"modification")
local v = "extra_" .. string.lower(bname)
local dest = load_cache(
v,
- function (t)
+ function (t)
return (t.lotf_version~=luaotfload.version)
- or (t.version~=cache_ver) or (t.modtime~=newtime)
+ or (t.version~=cache_ver) or (t.modtime~=newtime)
end
)
-- if the cache is not found or outdated, save the cache
@@ -885,7 +877,7 @@ do
dummytable.vorigin, dummytable.vheight = dtvo, dtvh
end
end
-
+
local function prepare_extra_data_font(id, res, name)
if type(res)=='table' and (res.psname or res.filename) then
if (res.embedding=='no') and (type(name)=='string') and (name:sub(1,5)=='psft:') then
@@ -938,19 +930,19 @@ do
[0x3014]=0xFE39, [0x3015]=0xFE3A, [0x3010]=0xFE3B, [0x3011]=0xFE3C,
[0x300A]=0xFE3D, [0x300B]=0xFE3E, [0x3008]=0xFE3F, [0x3009]=0xFE40,
[0x300C]=0xFE41, [0x300D]=0xFE42, [0x300E]=0xFE43, [0x300F]=0xFE44,
- [0xFF3B]=0xFE47, [0xFF3D]=0xFE48,
+ [0xFF3B]=0xFE47, [0xFF3D]=0xFE48,
}
local vert_jpotf_table, vert_feat = {}, {vert=true}
local utfbyte, utfsub = utf.byte, utf.sub
luatexja.jfont.register_vert_replace = function(t)
for i,v in pairs(t) do
- local ic = (type(i)=='number') and i or
+ local ic = (type(i)=='number') and i or
((type(i)=='string') and utfbyte(utfsub(i,1,1)) or nil)
if ic then
- vert_jpotf_table[ic] = (type(v)=='number') and v or
+ vert_jpotf_table[ic] = (type(v)=='number') and v or
((type(v)=='string') and utfbyte(utfsub(v,1,1)) or nil)
end
- end
+ end
end
luatexbase.add_to_callback(
@@ -1023,28 +1015,28 @@ do
local is_ucs_in_japanese_char = ltjc.is_ucs_in_japanese_char_direct
local ensure_tex_attr = ltjb.ensure_tex_attr
local node_write = node.direct.write
- local font = font
+ local fonts, getnest = font.fonts, tex.getnest
local new_ic_kern = function(g) return node_new(id_kern,3) end
local dir_tate = luatexja.dir_table.dir_tate
-- EXT: italic correction
function luatexja.jfont.append_italic()
- local p = to_direct(tex.nest[tex.nest.ptr].tail)
+ local p = to_direct(getnest().tail)
local TEMP = node_new(id_kern)
if p and getid(p)==id_glyph then
if is_ucs_in_japanese_char(p) then
local j = font_metric_table[
- has_attr(p, (get_dir_count()==dir_tate) and attr_curtfnt or attr_curjfnt)
+ get_attr(p, (get_dir_count()==dir_tate) and attr_curtfnt or attr_curjfnt)
]
local g = new_ic_kern()
- setfield(g, 'kern', j.char_type[find_char_class(getchar(p), j)].italic)
+ setkern(g, j.char_type[find_char_class(getchar(p), j)].italic)
node_write(g); ensure_tex_attr(attr_icflag, 0)
else
local f = getfont(p)
- local h = font_getfont(f) or font.fonts[f]
+ local h = font_getfont(f) or fonts[f]
if h then
- local g = new_ic_kern()
if h.characters[getchar(p)] and h.characters[getchar(p)].italic then
- setfield(g, 'kern', h.characters[getchar(p)].italic)
+ local g = new_ic_kern()
+ setkern(g, h.characters[getchar(p)].italic)
node_write(g); ensure_tex_attr(attr_icflag, 0)
end
end
diff --git a/macros/luatex/generic/luatexja/src/ltj-kinsoku.tex b/macros/luatex/generic/luatexja/src/ltj-kinsoku.tex
index 179e621054..e420750891 100644
--- a/macros/luatex/generic/luatexja/src/ltj-kinsoku.tex
+++ b/macros/luatex/generic/luatexja/src/ltj-kinsoku.tex
@@ -467,5 +467,5 @@
\directlua{%
local s = table.copy(luatexja.stack.charprop_stack_table[0])
- luatexja.base.save_cache('ltj-kinsoku_default', {s, version=3})
+ luatexja.base.save_cache('ltj-kinsoku_default', {s, version=4})
}
diff --git a/macros/luatex/generic/luatexja/src/ltj-lineskip.lua b/macros/luatex/generic/luatexja/src/ltj-lineskip.lua
index f8b97c144b..107ee804a8 100644
--- a/macros/luatex/generic/luatexja/src/ltj-lineskip.lua
+++ b/macros/luatex/generic/luatexja/src/ltj-lineskip.lua
@@ -6,24 +6,26 @@ luatexja.load_module 'direction'; local ltjd = luatexja.direction
luatexja.lineskip = luatexja.lineskip or {}
local to_direct = node.direct.todirect
+local to_node = node.direct.tonode
local ltjl = luatexja.lineskip
local id_glue = node.id 'glue'
local id_penalty = node.id 'penalty'
local id_hlist = node.id 'hlist'
-local setfield = node.direct.setfield
-local getfield = node.direct.getfield
local getlist = node.direct.getlist
local node_new = node.direct.new
local node_prev = node.direct.getprev
local node_next = node.direct.getnext
local getid = node.direct.getid
local getsubtype = node.direct.getsubtype
+local getdepth = node.direct.getdepth
+local getheight = node.direct.getheight
local texget = tex.get
local node_getglue = node.getglue
local setglue = node.direct.setglue
+local setsubtype = node.direct.setsubtype
local function copy_glue (new_glue, old_glue_name, subtype, new_w)
- setfield(new_glue, 'subtype', subtype)
+ setsubtype(new_glue, subtype)
local w,st,sp,sto,spo = texget(old_glue_name, true)
setglue(new_glue, new_w or w, st, sp, sto, spo)
end
@@ -57,11 +59,11 @@ local function adjust_glue(nh)
local p, n = node_prev(x), node_next(x)
if p then
local pid = getid(p)
- while (id_glue<=pid) and (pid<=id_penalty) and node_prev(p) do
+ while (id_glue<=pid) and (pid<=id_penalty) and node_prev(p) do
p = node_prev(p); pid = getid(p)
end
if pid==id_hlist and getid(n)==id_hlist then
- local normal = bw - getfield(p, 'depth') - getfield(n, 'height')
+ local normal = bw - getdepth(p) - getheight(n)
local lmin, adj = ltj_profiler(p, n, false, bw)
ltj_skip(lmin or normal, x, adj, normal, bw)
end
@@ -77,17 +79,20 @@ do
local p_dummy = ltjl.p_dummy
local make_dir_whatsit = luatexja.direction.make_dir_whatsit
local get_dir_count = luatexja.direction.get_dir_count
-local node_write = node.direct.write
+local getwhd = node.direct.getwhd
+local setnext = node.direct.setnext
+local getnest = tex.getnest
local function dir_adjust_append_vlist(b, loc, prev, mirrored)
local old_b = to_direct(b)
- local new_b = loc=='box' and
+ local new_b = loc=='box' and
make_dir_whatsit(old_b, old_b, get_dir_count(), 'append_vlist') or old_b
+ local _, ht, dp = getwhd(new_b)
if prev > -65536000 then
local bw = texget('baselineskip', false)
- local normal = bw - prev - getfield(new_b, mirrored and 'depth' or 'height')
+ local normal = bw - prev - (mirrored and dp or ht)
local lmin, adj = nil, 0
- local tail = to_direct(tex.nest[tex.nest.ptr].tail)
+ local tail = to_direct(getnest().tail)
if p_dummy~=ltj_profiler then
while tail and (id_glue<=getid(tail)) and (getid(tail)<=id_penalty) do
tail = node_prev(tail)
@@ -95,17 +100,16 @@ local function dir_adjust_append_vlist(b, loc, prev, mirrored)
end
if tail then
if getid(tail)==id_hlist and getid(new_b)==id_hlist then
- if getfield(tail, 'depth')==prev then
+ if getdepth(tail)==prev then
lmin, adj = ltj_profiler(tail, new_b, mirrored, bw)
end
end
end
local g = node_new(id_glue)
- ltj_skip(lmin or normal, g, adj, normal, bw, loc); node_write(g)
+ ltj_skip(lmin or normal, g, adj, normal, bw, loc)
+ setnext(g, new_b); return to_node(g), (mirrored and ht or dp)
+ else return to_node(new_b), (mirrored and ht or dp)
end
- node_write(new_b)
- tex.prevdepth = getfield(new_b, mirrored and 'height' or 'depth')
- return nil -- do nothing on tex side
end
ltjb.add_to_callback('append_to_vlist_filter', dir_adjust_append_vlist, 'ltj.lineskip', 10000)
end
diff --git a/macros/luatex/generic/luatexja/src/ltj-lotf_aux.lua b/macros/luatex/generic/luatexja/src/ltj-lotf_aux.lua
index bd3a602e64..cc2c613c40 100644
--- a/macros/luatex/generic/luatexja/src/ltj-lotf_aux.lua
+++ b/macros/luatex/generic/luatexja/src/ltj-lotf_aux.lua
@@ -18,7 +18,7 @@ function aux.exist_feature(id, name)
return provides_feature(id, t.properties.script, t.properties.language, name)
else return false
end
-end
+end
function aux.enable_feature(id, name)
local t = getfont(id)
@@ -57,7 +57,7 @@ local function get_asc_des(id)
elseif t.hb then -- HARF
local hbfont, u = t.hb.shared.font, t.hb.shared.upem
local h = hbfont:get_h_extents()
- if h and u then
+ if h and u then
a, d = h.ascender and h.ascender/u, h.descender and -h.descender/u
end
end
@@ -87,7 +87,7 @@ local function get_vmet_table(tfmdata, dest)
end
local rawdata = tfmdata.shared.rawdata
local ascender = rawdata.metadata.ascender or 0
- local default_vheight
+ local default_vheight
= rawdata.metadata.defaultvheight
or (rawdata.metadata.descender and (ascender+rawdata.metadata.descender) or units)
local units = tfmdata.units
@@ -135,10 +135,10 @@ local function loop_over_feat(id, feature_name, func, universal)
for _,i in pairs(t.resources.sequences) do
if i.order[1] and feature_name[i.order[1]] then
local f = i.features and i.features[i.order[1]]
- if i.type == 'gsub_single' and i.steps
+ if i.type == 'gsub_single' and i.steps
and f and (universal or (f[t.properties.script] and f[t.properties.script][t.properties.language])) then
for _,j in pairs(i.steps) do
- if type(j)=='table' then
+ if type(j)=='table' then
if type(j.coverage)=='table' then
for i,k in pairs(j.coverage) do
local s = func(i,k); if s then return s end
@@ -155,14 +155,14 @@ aux.loop_over_feat = loop_over_feat
local vert_vrt2 = { vert=true, vrt2=true }
function aux.replace_vert_variant(id, c)
- return loop_over_feat(id, vert_vrt2,
+ return loop_over_feat(id, vert_vrt2,
function (i,k) if i==c then return k end end)
or c
end
--for name, func in pairs(aux) do
--- if type(func)=="function" then
+-- if type(func)=="function" then
-- aux[name] = function(...)
-- print('LOTF_AUX', name, ...);
-- local a = func(...); print('RESULT', a); return a
@@ -174,8 +174,8 @@ local search
search = function (t, key, prefix)
if type(t)=="table" then
prefix = prefix or ''
- for i,v in pairs(t) do
- if i==key then print(prefix..'.'..i, v)
+ for i,v in pairs(t) do
+ if i==key then print(prefix..'.'..i, v)
else search(v,key,prefix..'.'..tostring(i)) end
end
end
diff --git a/macros/luatex/generic/luatexja/src/ltj-math.lua b/macros/luatex/generic/luatexja/src/ltj-math.lua
index 2a7c0444c7..a8664d7cf3 100644
--- a/macros/luatex/generic/luatexja/src/ltj-math.lua
+++ b/macros/luatex/generic/luatexja/src/ltj-math.lua
@@ -14,8 +14,17 @@ local getfield = node.direct.getfield
local getid = node.direct.getid
local getsubtype = node.direct.getsubtype
local getlist = node.direct.getlist
--- getlist cannot be used for sub_box nodes. Use instead λp. getfield(p, 'head')
local getchar = node.direct.getchar
+local getnucleus = node.direct.getnucleus
+local getsup = node.direct.getsup
+local getsub = node.direct.getsub
+local getshift = node.direct.getshift
+local setnext = node.direct.setnext
+local setnucleus = node.direct.setnucleus
+local setsup = node.direct.setsup
+local setsub = node.direct.setsub
+local setlist = node.direct.setlist
+local setshift = node.direct.setshift
local to_node = node.direct.tonode
local to_direct = node.direct.todirect
@@ -24,10 +33,11 @@ local node_traverse = node.direct.traverse
local node_new = node.direct.new
local node_next = node.direct.getnext
local node_remove = node.direct.remove
-local node_free = node.direct.free
-local has_attr = node.direct.has_attribute
+local node_free = node.direct.flush_node or node.direct.free
+local get_attr = node.direct.get_attribute
local set_attr = node.direct.set_attribute
-local tex_getcount = tex.getcount
+local getcount = tex.getcount
+local cnt_stack = luatexbase.registernumber 'ltj@@stack'
local attr_jchar_class = luatexbase.attributes['ltj@charclass']
local attr_dir = luatexbase.attributes['ltj@dir']
@@ -66,33 +76,34 @@ local list_dir
-- vcenter noad は軸に揃えるため,欧文ベースライン補正がかかる
local function conv_vcenter(sb)
- local h = getfield(sb, 'head'); local hd = getlist(h)
- if getid(hd)==id_whatsit and getsubtype(hd)==sid_user
+ local h = getlist(sb) ; local hd = getlist(h)
+ if getid(hd)==id_whatsit and getsubtype(hd)==sid_user
and getfield(hd, 'user_id')==DIR then
local d = node_next(hd)
- if getid(d)==id_vlist and has_attr(d, attr_dir)>=dir_node_auto then
- node_free(hd); setfield(h, 'head', nil); node_free(h)
- setfield(sb, 'head', d); set_attr(d, attr_icflag, 0)
+ if getid(d)==id_vlist and get_attr(d, attr_dir)>=dir_node_auto then
+ node_free(hd); setlist(h, nil); node_free(h)
+ setlist(sb, d); set_attr(d, attr_icflag, 0)
end
end
return sb
end
local cjhh_A
--- sty : 0 (display or text), 1 (script), >=2 (scriptscript)
+local max, min = math.max, math.min
+-- sty : -1 (display), 0 (text), 1 (script), >=2 (scriptscript)
local function conv_jchar_to_hbox(head, sty)
for p in node_traverse(head) do
local pid = getid(p)
if pid == id_simple or pid == id_accent then
if getsubtype(p)==12 then
- conv_vcenter(getfield(p, 'nucleus'))
+ conv_vcenter(getnucleus(p))
else
- setfield(p, 'nucleus', cjh_A(getfield(p, 'nucleus'), sty))
+ setnucleus(p, cjh_A(getnucleus(p), sty))
end
- setfield(p, 'sub', cjh_A(getfield(p, 'sub'), sty+1))
- setfield(p, 'sup', cjh_A(getfield(p, 'sup'), sty+1))
+ setsub(p, cjh_A(getsub(p), max(sty+1,1)))
+ setsup(p, cjh_A(getsup(p), max(sty+1,1)))
elseif pid == id_choice then
- setfield(p, 'display', cjh_A(getfield(p, 'display'), 0))
+ setfield(p, 'display', cjh_A(getfield(p, 'display'), -1))
setfield(p, 'text', cjh_A(getfield(p, 'text'), 0))
setfield(p, 'script', cjh_A(getfield(p, 'script'), 1))
setfield(p, 'scriptscript', cjh_A(getfield(p, 'scriptscript'), 2))
@@ -100,15 +111,17 @@ local function conv_jchar_to_hbox(head, sty)
setfield(p, 'num', cjh_A(getfield(p, 'num'), sty+1))
setfield(p, 'denom', cjh_A(getfield(p, 'denom'), sty+1))
elseif pid == id_radical then
- setfield(p, 'nucleus', cjh_A(getfield(p, 'nucleus'), sty))
- setfield(p, 'sub', cjh_A(getfield(p, 'sub'), sty+1))
- setfield(p, 'sup', cjh_A(getfield(p, 'sup'), sty+1))
+ setnucleus(p, cjh_A(getnucleus(p), sty))
+ setsub(p, cjh_A(getsub(p), max(sty+1,1)))
+ setsup(p, cjh_A(getsup(p), max(sty+1,1)))
if getfield(p, 'degree') then
- setfield(p, 'degree', cjh_A(getfield(p, 'degree'), sty + 1))
+ setfield(p, 'degree', cjh_A(getfield(p, 'degree'), 2))
end
elseif pid == id_style then
local ps = getfield(p, 'style')
- if ps == "display'" or ps == 'display' or ps == "text'" or ps == 'text' then
+ if ps == "display'" or ps == 'display' then
+ sty = -1
+ elseif ps == "text'" or ps == 'text' then
sty = 0
elseif ps == "script'" or ps == 'script' then
sty = 1
@@ -124,47 +137,48 @@ local MJS = luatexja.stack_table_index.MJS
local MJSS = luatexja.stack_table_index.MJSS
local capsule_glyph_math = ltjw.capsule_glyph_math
local is_ucs_in_japanese_char = ltjc.is_ucs_in_japanese_char_direct
+local setfont = node.direct.setfont
+local setchar = node.direct.setchar
cjh_A = function (p, sty)
if not p then return nil
else
local pid = getid(p)
if pid == id_sub_mlist then
- if getfield(p, 'head') then
- setfield(p, 'head', conv_jchar_to_hbox(getfield(p, 'head'), sty))
+ if getlist(p) then
+ setlist(p, conv_jchar_to_hbox(getlist(p), sty))
end
elseif pid == id_mchar then
- local pc, fam = getchar (p), has_attr(p, attr_jfam) or -1
+ local pc, fam = getchar (p), get_attr(p, attr_jfam) or -1
if (not is_math_letters[pc]) and is_ucs_in_japanese_char(p) and fam>=0 then
- local f = ltjs.get_stack_table(MJT + 0x100 * sty + fam, -1, tex_getcount('ltj@@stack'))
+ local f = ltjs.get_stack_table(MJT + 0x100 * min(max(sty,0),2) + fam, -1, getcount(cnt_stack))
if f ~= -1 then
local q = node_new(id_sub_box)
- local r = node_new(id_glyph); setfield(r, 'next', nil)
- setfield(r, 'char', pc); setfield(r, 'font', f); setfield(r, 'subtype', 256)
- local k = has_attr(r,attr_ykblshift) or 0; set_attr(r, attr_ykblshift, 0)
- -- ltj-setwidth 内で実際の位置補正はおこなうので,補正量を退避
+ local r = node_new(id_glyph, 256); setnext(r, nil); setfont(r, f, pc)
local met = ltjf_font_metric_table[f]
- r = capsule_glyph_math(r, met, met.char_type[ltjf_find_char_class(pc, met)]);
- setfield(q, 'head', r); node_free(p); p=q; set_attr(r, attr_yablshift, k)
+ r = capsule_glyph_math(
+ r, met, met.char_type[ltjf_find_char_class(pc, met)], sty)
+ setlist(q, r); node_free(p); p=q;
end
end
- elseif pid == id_sub_box and getfield(p, 'head') then
+ elseif pid == id_sub_box and getlist(p) then
-- \hbox で直に与えられた内容は上下位置を補正する必要はない
- local h = getfield(p, 'head'); h = ltjd_make_dir_whatsit(h, h, list_dir, 'math')
- setfield(p, 'head', h); set_attr(h, attr_icflag, PROCESSED)
+ local h = getlist(p); h = ltjd_make_dir_whatsit(h, h, list_dir, 'math')
+ setlist(p, h); setshift(h, getshift(h)-get_attr(h, attr_yablshift))
+ --set_attr(h, attr_icflag, PROCESSED)
end
end
return p
end
do
- local function mlist_callback_ltja(n)
+ local function mlist_callback_ltja(n, display_type)
local n = to_direct(n); list_dir = ltjd_get_dir_count()
if getid(n)==id_whatsit and getsubtype(n)==sid_user and getfield(n, 'user_id') == DIR then
local old_n = n; n = node_remove(n, n)
node_free(old_n); if not n then return nil end
end
- return to_node(conv_jchar_to_hbox(n, 0))
+ return to_node(conv_jchar_to_hbox(n, (display_type=='display') and -1 or 0))
end
-- LaTeX 2020-02-02 seems to have pre_mlist_to_hlist_filter callback
if luatexbase.callbacktypes['pre_mlist_to_hlist_filter'] then
diff --git a/macros/luatex/generic/luatexja/src/ltj-otf.lua b/macros/luatex/generic/luatexja/src/ltj-otf.lua
index 770749f9ea..11f68c6ba9 100644
--- a/macros/luatex/generic/luatexja/src/ltj-otf.lua
+++ b/macros/luatex/generic/luatexja/src/ltj-otf.lua
@@ -21,13 +21,19 @@ local getid = node.direct.getid
local getfont = node.direct.getfont
local getchar = node.direct.getchar
local getsubtype = node.direct.getsubtype
+local getvalue = node.direct.getdata
+local setchar = node.direct.setchar
+local setfont = node.direct.setfont
+local setlang = node.direct.setlang
+local setvalue = node.direct.setdata
+
local to_node = node.direct.tonode
local to_direct = node.direct.todirect
local node_new = node.direct.new
local node_remove = node.direct.remove
local node_next = node.direct.getnext
-local node_free = node.direct.free
-local has_attr = node.direct.has_attribute
+local node_free = node.direct.flush_node or node.direct.free
+local get_attr = node.direct.get_attribute
local set_attr = node.direct.set_attribute
local unset_attr = node.direct.unset_attribute
local node_insert_after = node.direct.insert_after
@@ -81,7 +87,7 @@ local function get_ucs_from_rmlgbm(c)
elseif v<0xF0000 then -- 素直に Unicode にマップ可能
return v
else -- privete use area
- local r, aj = nil, ltjr_cidfont_data["Adobe-Japan1"]
+ local r, aj = nil, ltjr_cidfont_data["Adobe-Japan1"]
-- 先に ltj_vert_table を見る
for i,w in pairs(aj.ltj_vert_table) do
if w==v then r=i; break end
@@ -116,7 +122,7 @@ end
local function append_jglyph(char)
local p = node_new(id_whatsit,sid_user)
setfield(p, 'user_id', OTF); setfield(p, 'type', 100)
- setfield(p, 'value', char); node_write(p)
+ setvalue(p, char); node_write(p)
end
local myutf
@@ -162,12 +168,10 @@ local function extract(head)
if getsubtype(p)==sid_user then
local puid = getfield(p, 'user_id')
if puid==OTF then
- local g = node_new(id_glyph)
- setfield(g, 'subtype', 0)
- setfield(g, 'char', getfield(p, 'value'))
- local v = has_attr(p, attr_curfnt); setfield(g, 'font', v)
- setfield(g, 'lang', lang_ja)
- set_attr(g, attr_kblshift, has_attr(p, attr_kblshift))
+ local g = node_new(id_glyph, 0)
+ setfont(g, get_attr(p, attr_curfnt), getvalue(p))
+ setlang(g, lang_ja)
+ set_attr(g, attr_kblshift, get_attr(p, attr_kblshift))
head = node_insert_after(head, p, g)
head = node_remove(head, p)
node_free(p); p = g
diff --git a/macros/luatex/generic/luatexja/src/ltj-pretreat.lua b/macros/luatex/generic/luatexja/src/ltj-pretreat.lua
index 073cc1ee39..508de5bb99 100644
--- a/macros/luatex/generic/luatexja/src/ltj-pretreat.lua
+++ b/macros/luatex/generic/luatexja/src/ltj-pretreat.lua
@@ -17,23 +17,24 @@ local getfont = node.direct.getfont
local getchar = node.direct.getchar
local getfield = node.direct.getfield
local getsubtype = node.direct.getsubtype
-local getlang = node.direct.getlang or function (n) return getfield(n,'lang') end
+local getlang = node.direct.getlang
local pairs = pairs
local floor = math.floor
+local get_attr = node.direct.get_attribute
local has_attr = node.direct.has_attribute
local set_attr = node.direct.set_attribute
local node_traverse = node.direct.traverse
local node_remove = node.direct.remove
local node_next = node.direct.getnext
-local node_free = node.direct.free
+local node_free = node.direct.flush_node or node.direct.free
local node_end_of_math = node.direct.end_of_math
-local tex_getcount = tex.getcount
+local getcount = tex.getcount
-local id_glyph = node.id('glyph')
-local id_math = node.id('math')
-local id_whatsit = node.id('whatsit')
-local sid_user = node.subtype('user_defined')
+local id_glyph = node.id 'glyph'
+local id_math = node.id 'math'
+local id_whatsit = node.id 'whatsit'
+local sid_user = node.subtype 'user_defined'
local attr_dir = luatexbase.attributes['ltj@dir']
local attr_curjfnt = luatexbase.attributes['ltj@curjfnt']
@@ -51,9 +52,9 @@ local PROCESSED_BEGIN_FLAG = luatexja.icflag_table.PROCESSED_BEGIN_FLAG
local dir_tate = luatexja.dir_table.dir_tate
local lang_ja = luatexja.lang_ja
-local setlang = node.direct.setlang or function(n,l) setfield(n,'lang',l) end
-local setfont = node.direct.setfont or function(n,l) setfield(n,'font',l) end
-local setchar = node.direct.setchar or function(n,l) setfield(n,'char',l) end
+local setlang = node.direct.setlang
+local setfont = node.direct.setfont
+local setchar = node.direct.setchar
------------------------------------------------------------------------
-- MAIN PROCESS STEP 1: replace fonts
@@ -72,8 +73,8 @@ do
if uid==STCK then
wt[#wt+1] = p; node_remove(head, p)
elseif uid==DIR then
- if has_attr(p, attr_icflag)<PROCESSED_BEGIN_FLAG then
- ltjs.list_dir = has_attr(p, attr_dir)
+ if get_attr(p, attr_icflag)<PROCESSED_BEGIN_FLAG then
+ ltjs.list_dir = get_attr(p, attr_dir)
else -- こっちのケースは通常使用では起こらない
wtd[#wtd+1] = p; node_remove(head, p)
end
@@ -82,13 +83,13 @@ do
return node_next(p)
end,
}
- setmetatable(suppress_hyphenate_ja_aux,
+ setmetatable(suppress_hyphenate_ja_aux,
{ __index = function() return node_next end, })
- local id_boundary = node.id('boundary')
+ local id_boundary = node.id 'boundary'
local node_new, insert_before = node.direct.new, node.direct.insert_before
- local setsubtype = node.direct.setsubtype or function(n,l) setfield(n,'subtype',l) end
+ local setsubtype = node.direct.setsubtype
local function suppress_hyphenate_ja (h)
- start_time_measure('ltj_hyphenate')
+ start_time_measure 'ltj_hyphenate'
head = to_direct(h)
for i = 1,#wt do wt[i]=nil end
for i = 1,#wtd do wtd[i]=nil end
@@ -109,7 +110,7 @@ do
setfield(b, 'type', 100); setfield(b, 'user_id', JA_AL_BDD);
insert_before(head, p, b)
end
- local pf = has_attr(p, attr_curjfnt)
+ local pf = get_attr(p, attr_curjfnt)
pf = (pf and pf>0 and pf) or getfont(p)
setfont(p, ltjf_replace_altfont(pf, pc))
setlang(p, lang_ja)
@@ -125,9 +126,9 @@ do
p = (suppress_hyphenate_ja_aux[pid])(p)
end
end
- stop_time_measure('ltj_hyphenate'); start_time_measure('tex_hyphenate')
+ stop_time_measure 'ltj_hyphenate'; start_time_measure 'tex_hyphenate'
lang.hyphenate(h, nil)
- stop_time_measure('tex_hyphenate')
+ stop_time_measure 'tex_hyphenate'
return h
end
@@ -135,24 +136,31 @@ do
end
-- mode: true iff this function is called from hpack_filter
+local set_box_stack_level
+do
local ltjs_report_stack_level = ltjs.report_stack_level
local ltjf_font_metric_table = ltjf.font_metric_table
local font_getfont = font.getfont
-local function set_box_stack_level(head, mode)
- local box_set, cl = 0, tex.currentgrouplevel + 1
+local traverse_id = node.direct.traverse_id
+local cnt_stack = luatexbase.registernumber 'ltj@@stack'
+local texget, getvalue = tex.get, node.direct.getdata
+function set_box_stack_level(head, mode)
+ local box_set = 0
if mode then
- for _,p in pairs(wt) do
- if getfield(p, 'value')==cl then box_set = 1 end; node_free(p)
+ local cl = (texget 'currentgrouplevel') + 1
+ for i=1,#wt do
+ local p = wt[i]
+ if getvalue(p)==cl then box_set = 1 end; node_free(p)
end
else
- for _,p in pairs(wt) do node_free(p) end
+ for i=1,#wt do node_free(wt[i]) end
end
- ltjs_report_stack_level(tex_getcount('ltj@@stack') + box_set)
+ ltjs_report_stack_level(getcount(cnt_stack) + box_set)
for _,p in pairs(wtd) do node_free(p) end
if ltjs.list_dir == dir_tate then
- for p in node.direct.traverse_id(id_glyph,to_direct(head)) do
+ for p in traverse_id(id_glyph,to_direct(head)) do
if has_attr(p, attr_icflag, 0) and getlang(p)==lang_ja then
- local nf = ltjf_replace_altfont( has_attr(p, attr_curtfnt) or getfont(p) , ltjs_orig_char_table[p])
+ local nf = ltjf_replace_altfont( get_attr(p, attr_curtfnt) or getfont(p) , ltjs_orig_char_table[p])
setfont(p, nf)
if ltjf_font_metric_table[nf].vert_activated then
local pc = getchar(p); pc = ltjf_font_metric_table[nf].vform[pc]
@@ -163,6 +171,7 @@ local function set_box_stack_level(head, mode)
end
return head
end
+end
-- CALLBACKS
ltjb.add_to_callback('hpack_filter',
diff --git a/macros/luatex/generic/luatexja/src/ltj-rmlgbm.lua b/macros/luatex/generic/luatexja/src/ltj-rmlgbm.lua
index 49f2018e4d..36fb7f7877 100644
--- a/macros/luatex/generic/luatexja/src/ltj-rmlgbm.lua
+++ b/macros/luatex/generic/luatexja/src/ltj-rmlgbm.lua
@@ -1,7 +1,7 @@
--
-- ltj-rmlgbm.lua
--
-luatexja.load_module('base'); local ltjb = luatexja.base
+luatexja.load_module 'base'; local ltjb = luatexja.base
local cidfont_data = {}
local cache_chars = {}
@@ -224,7 +224,7 @@ local cidf_vert_processor
do
local traverse_id, is_node = node.direct.traverse_id, node.is_node
local to_direct = node.direct.todirect
- local id_glyph = node.id('glyph')
+ local id_glyph = node.id 'glyph'
local getfont = node.direct.getfont
local getchar = node.direct.getchar
local setchar = node.direct.setchar
@@ -234,7 +234,7 @@ do
local fontdata = font_getfont(fnum)
if head and luatexja.jfont.font_metric_table[fnum] and luatexja.jfont.font_metric_table[fnum].vert_activated then
local vt = fontdata.ltj_vert_table
- local nh = is_node(head) and to_direct(head) or head
+ local nh = is_node(head) and to_direct(head) or head
for n in traverse_id(id_glyph, head) do
if getfont(n)==fnum then
local c = getchar(n); setchar(n, vt[c] or c)
diff --git a/macros/luatex/generic/luatexja/src/ltj-ruby.lua b/macros/luatex/generic/luatexja/src/ltj-ruby.lua
index 7fa7ea927e..047b53ab58 100644
--- a/macros/luatex/generic/luatexja/src/ltj-ruby.lua
+++ b/macros/luatex/generic/luatexja/src/ltj-ruby.lua
@@ -3,7 +3,7 @@
--
luatexbase.provides_module({
name = 'luatexja.ruby',
- date = '2022-06-25',
+ date = '2022-08-29',
description = 'Ruby annotation',
})
luatexja.ruby = {}
@@ -13,21 +13,38 @@ luatexja.load_module 'base'; local ltjb = luatexja.base
local to_node = node.direct.tonode
local to_direct = node.direct.todirect
-local setfield = node.direct.setfield
-local setglue = luatexja.setglue
local getfield = node.direct.getfield
local getid = node.direct.getid
local getfont = node.direct.getfont
local getlist = node.direct.getlist
local getchar = node.direct.getchar
local getsubtype = node.direct.getsubtype
+local getkern = node.direct.getkern
+local getwidth = node.direct.getwidth
+local getheight = node.direct.getheight
+local getdepth = node.direct.getdepth
+local getwhd = node.direct.getwhd
+local getvalue = node.direct.getdata
+local setfield = node.direct.setfield
+local setglue = node.direct.setglue
+local setkern = node.direct.setkern
+local setnext = node.direct.setnext
+local setshift = node.direct.setshift
+local setwidth = node.direct.setwidth
+local setheight = node.direct.setheight
+local setdepth = node.direct.setdepth
+local setwhd = node.direct.setwhd
+local setlist = node.direct.setlist
+local setvalue = node.direct.setdata
local node_new = node.direct.new
local node_remove = node.direct.remove
local node_next = node.direct.getnext
-local node_copy, node_free, node_tail = node.direct.copy, node.direct.free, node.direct.tail
-local has_attr, set_attr = node.direct.has_attribute, node.direct.set_attribute
+local node_copy, node_tail = node.direct.copy, node.direct.tail
+local node_free = node.direct.flush_node or node.direct.free
+local get_attr, set_attr = node.direct.get_attribute, node.direct.set_attribute
local insert_before, insert_after = node.direct.insert_before, node.direct.insert_after
+local hpack = node.direct.hpack
local id_hlist = node.id 'hlist'
local id_vlist = node.id 'vlist'
@@ -125,7 +142,7 @@ function luatexja.ruby.read_old_break_info()
local real_file = kpse.find_file(fname)
if real_file then dofile(real_file) end
cache_handle = io.open(fname, 'w')
- if cache_handle then
+ if cache_handle then
cache_handle:write('local lrob=luatexja.ruby.old_break_info\n')
end
end
@@ -143,7 +160,7 @@ end
-- ルビ組版が行われている段落/hboxでの設定が使われる.
-- ルビ文字を格納しているボックスでの設定ではない!
local function get_attr_icflag(p)
- return (has_attr(p, attr_icflag) or 0) % PROCESSED_BEGIN_FLAG
+ return (get_attr(p, attr_icflag) or 0) % PROCESSED_BEGIN_FLAG
end
local concat
do
@@ -157,25 +174,22 @@ do
end
set_attr(nh, attr_icflag,
get_attr_icflag(nh) + PROCESSED_BEGIN_FLAG)
- setfield(node_tail(h), 'next', nh)
- setfield(f, 'head', nil); node_free(f)
- setfield(b, 'head', nil); node_free(b)
+ setnext(node_tail(h), nh)
+ setlist(f, nil); node_free(f)
+ setlist(b, nil); node_free(b)
local g = luatexja.jfmglue.main(h,false)
- return node.direct.hpack(g)
+ return hpack(g)
else
return f
end
elseif b then
return b
else
- local h = node_new(id_hlist)
- setfield(h, 'subtype', 0)
- setfield(h, 'width', 0)
- setfield(h, 'height', 0)
- setfield(h, 'depth', 0)
+ local h = node_new(id_hlist, 0)
+ setwhd(h, 0, 0, 0)
setfield(h, 'glue_set', 0)
setfield(h, 'glue_order', 0)
- setfield(h, 'head', nil)
+ setlist(h, nil)
return h
end
end
@@ -183,9 +197,7 @@ end
local function expand_3bits(num)
local t = {}; local a = num
- for i = 1, 10 do
- t[i] = a%8; a = floor(a/8)
- end
+ for i = 1, 10 do t[i], a = a%8, a//8 end
return t
end
----------------------------------------------------------------
@@ -205,23 +217,22 @@ do
-- pre, middle, post: 伸縮比率
-- prenw, postnw: 前後の自然長 (sp)
local h = getlist(box);
- local hh, hd = getfield(box, 'height'), getfield(box, 'depth')
+ local _, hh, hd = getwhd(box)
local hx = h
while hx do
- local hic = has_attr(hx, attr_icflag) or 0
+ local hic = get_attr(hx, attr_icflag) or 0
if (hic == KANJI_SKIP) or (hic == KANJI_SKIP_JFM)
or (hic == XKANJI_SKIP) or (hic == XKANJI_SKIP_JFM)
or ((hic<=FROM_JFM+63) and (hic>=FROM_JFM)) then
-- この 5 種類の空白をのばす
if getid(hx) == id_kern then
- local k = node_new(id_glue)
- setglue(k, getfield(hx, 'kern'), round(middle*65536), 0,
+ local k = node_new(id_glue, 0)
+ setglue(k, getkern(hx), round(middle*65536), 0,
2, 0)
- setfield(k, 'subtype', 0);
h = insert_after(h, hx, k);
h = node_remove(h, hx); node_free(hx); hx = k
else -- glue
- setglue(hx, getfield(hx, 'width'), round(middle*65536), 0,
+ setglue(hx, getwidth(hx), round(middle*65536), 0,
2, 0)
end
end
@@ -236,10 +247,9 @@ do
setglue(k, postnw, round(post*65536), 0, 2, 0)
insert_after(h, node_tail(h), k);
-- hpack
- setfield(box, 'head', nil); node_free(box)
- box = node.direct.hpack(h, new_width, 'exactly')
- setfield(box, 'height', hh)
- setfield(box, 'depth', hd)
+ setlist(box, nil); node_free(box)
+ box = hpack(h, new_width, 'exactly')
+ setheight(box, hh); setdepth(box, hd)
return box
end
end
@@ -255,9 +265,8 @@ local function texiface_low(rst, rtlr, rtlp)
local w = node_new(id_whatsit, sid_user)
setfield(w, 'type', 110); setfield(w, 'user_id', RUBY_PRE)
local wv = node_new(id_whatsit, sid_user)
- setfield(w, 'value', to_node(wv))
setfield(wv, 'type', 108)
- setfield(wv, 'value', rst); rst.count = floor(#rtlr)
+ setvalue(w, to_node(wv)); setvalue(wv, rst); rst.count = #rtlr
setfield(wv, 'user_id', RUBY_PRE) -- dummy
local n = wv
for i = 1, #rtlr do
@@ -280,7 +289,7 @@ function luatexja.ruby.texiface(rst, rtlr, rtlp)
else
local f, eps = true, rst.eps
for i = 1,#rtlr do
- if getfield(rtlr[i], 'width') > getfield(rtlp[i], 'width') + eps then
+ if getwidth(rtlr[i]) > getwidth(rtlp[i]) + eps then
f = false; break
end
end
@@ -304,12 +313,12 @@ end
-- r, p の中身のノードは再利用される
local function enlarge_parent(r, p, tmp_tbl, no_begin, no_end)
-- r: ルビ部分の格納された box,p: 同,親文字
- local rwidth = getfield(r, 'width')
- local sumprot = rwidth - getfield(p, 'width') -- >0
+ local rwidth = getwidth(r)
+ local sumprot = rwidth - getwidth(p) -- >0
local pre_intrusion, post_intrusion
local ppre, pmid, ppost = tmp_tbl.ppre, tmp_tbl.pmid, tmp_tbl.ppost
local mapre, mapost = tmp_tbl.mapre, tmp_tbl.mapost
- local intmode = floor(tmp_tbl.mode/4)%4
+ local intmode = (tmp_tbl.mode//4)%4
if no_begin then mapre = mapre + tmp_tbl.before_jfmgk end
if no_end then mapost = mapost + tmp_tbl.after_jfmgk end
if (tmp_tbl.mode%4 >=2) and (tmp_tbl.pre<0) and (tmp_tbl.post<0) then
@@ -332,18 +341,17 @@ local function enlarge_parent(r, p, tmp_tbl, no_begin, no_end)
if n < sumprot then
pre_intrusion = n/2; post_intrusion = n/2
else
- pre_intrusion = floor(sumprot/2); post_intrusion = sumprot - pre_intrusion
+ pre_intrusion = sumprot//2; post_intrusion = sumprot - pre_intrusion
end
p = enlarge(p, rwidth, ppre, pmid, ppost, pre_intrusion, post_intrusion)
pre_intrusion = min(mapre, pre_intrusion + round(ppre*getfield(p, 'glue_set')*65536))
post_intrusion = min(mapost, post_intrusion + round(ppost*getfield(p, 'glue_set')*65536))
end
- setfield(r, 'shift', -pre_intrusion)
+ setshift(r, -pre_intrusion)
local rwidth = rwidth - pre_intrusion - post_intrusion
- setfield(r, 'width', rwidth)
- setfield(p, 'width', rwidth)
+ setwidth(r, rwidth); setwidth(p, rwidth)
local ps = getlist(p)
- setfield(ps, 'width', getfield(ps, 'width') - pre_intrusion)
+ setwidth(ps, getwidth(ps) - pre_intrusion)
local orig_post_intrusion, post_jfmgk = post_intrusion, false
if no_end then
if orig_post_intrusion > tmp_tbl.after_jfmgk then
@@ -366,51 +374,50 @@ local function new_ruby_box(r, p, tmp_tbl, no_begin, no_end)
local ppre, pmid, ppost = tmp_tbl.ppre, tmp_tbl.pmid, tmp_tbl.ppost
local mapre, mapost = tmp_tbl.mapre, tmp_tbl.mapost
local rpre, rmid, rpost, rsmash
- imode = floor(tmp_tbl.mode/0x100000); rsmash = (imode%2 ==1)
- imode = floor(imode/2); rpost = imode%8;
+ imode = tmp_tbl.mode//0x100000; rsmash = (imode%2 ==1)
+ imode = imode//2; rpost = imode%8;
imode = (imode-rpost)/8; rmid = imode%8;
imode = (imode-rmid)/8; rpre = imode%8
- if getfield(r, 'width') > getfield(p, 'width') then -- change the width of p
+ if getwidth(r) > getwidth(p) then -- change the width of p
r, p, post_intrusion, post_jfmgk = enlarge_parent(r, p, tmp_tbl, no_begin, no_end)
- elseif getfield(r, 'width') < getfield(p, 'width') then -- change the width of r
- r = enlarge(r, getfield(p, 'width'), rpre, rmid, rpost, 0, 0)
+ elseif getwidth(r) < getwidth(p) then -- change the width of r
+ r = enlarge(r, getwidth(p), rpre, rmid, rpost, 0, 0)
post_intrusion = 0
local need_repack = false
-- margin が大きくなりすぎた時の処理
if round(rpre*getfield(r, 'glue_set')*65536) > max_margin then
local ps = getlist(r); need_repack = true
- setfield(ps, 'width', max_margin)
+ setwidth(ps, max_margin)
setfield(ps, 'stretch', 1) -- 全く伸縮しないのも困る
end
if round(rpost*getfield(r, 'glue_set')*65536) > max_margin then
local ps = node_tail(getlist(r)); need_repack = true
- setfield(ps, 'width', max_margin)
+ setwidth(ps, max_margin)
setfield(ps, 'stretch', 1) -- 全く伸縮しないのも困る
end
if need_repack then
local rt = r
- r = node.direct.hpack(getlist(r), getfield(r, 'width'), 'exactly')
- setfield(rt, 'head', nil); node_free(rt);
+ r = hpack(getlist(r), getwidth(r), 'exactly')
+ setlist(rt, nil); node_free(rt);
end
end
local a, k = node_new(id_rule), node_new(id_kern, 1)
- setfield(a, 'width', 0); setfield(a, 'height', 0)
- setfield(a, 'depth', 0); setfield(k, 'kern', tmp_tbl.intergap)
+ setwhd(a, 0, 0, 0); setkern(k, tmp_tbl.intergap)
insert_after(r, r, a); insert_after(r, a, k);
- insert_after(r, k, p); setfield(p, 'next', nil)
- if tmp_tbl.rubydepth >= 0 then setfield(r, 'depth', tmp_tbl.rubydepth) end
- if tmp_tbl.baseheight >= 0 then setfield(p, 'height', tmp_tbl.baseheight) end
- a = node.direct.vpack(r); setfield(a, 'shift', 0)
+ insert_after(r, k, p); setnext(p, nil)
+ if tmp_tbl.rubydepth >= 0 then setdepth(r, tmp_tbl.rubydepth) end
+ if tmp_tbl.baseheight >= 0 then setheight(p, tmp_tbl.baseheight) end
+ a = node.direct.vpack(r); setshift(a, 0)
set_attr(a, attr_ruby, post_intrusion)
set_attr(a, attr_ruby_post_jfmgk, post_jfmgk and 1 or 0)
- if rsmash or getfield(a, 'height')<getfield(p, 'height') then
+ if rsmash or getheight(a)<getheight(p) then
local k = node_new(id_kern, 1)
- setfield(k, 'kern', -getfield(a, 'height')+getfield(p, 'height'))
- setfield(a, 'head', k); insert_before(r, r, k)
- setfield(a, 'height', getfield(p, 'height'))
+ setkern(k, -getheight(a)+getheight(p))
+ setlist(a, k); insert_before(r, r, k)
+ setheight(a, getheight(p))
end
- return a, getfield(r, 'width'), post_intrusion, post_jfmgk
+ return a, getwidth(r), post_intrusion, post_jfmgk
end
@@ -418,7 +425,7 @@ end
local post_intrusion_backup, post_jfmgk_backup
local max_allow_pre, max_allow_post
-
+local flush_list = node.direct.flush_list
-- 中付き熟語ルビ,cmp containers
-- 「文字の構成を考えた」やつはどうしよう
local function pre_low_cal_box(w, cmp)
@@ -428,8 +435,8 @@ local function pre_low_cal_box(w, cmp)
-- kf[i] : container 1--i からなる行末形
-- kf[cmp+i] : container i--cmp からなる行頭形
-- kf[2cmp+1] : 行中形
- local wv = getfield(w, 'value')
- local rst = getfield(wv, 'value')
+ local wv = getvalue(w)
+ local rst = getvalue(wv)
local mdt -- nt*: node temp
local coef = {} -- 連立一次方程式の拡大係数行列
local rtb = expand_3bits(rst.stretch)
@@ -473,8 +480,8 @@ local function pre_low_cal_box(w, cmp)
-- w.value の node list 更新.
local nt = wv
- node.direct.flush_list(node_next(wv))
- for i = 1, 2*cmp+1 do setfield(nt, 'next', kf[i]); nt = kf[i] end
+ flush_list(node_next(wv))
+ for i = 1, 2*cmp+1 do setnext(nt, kf[i]); nt = kf[i] end
if cmp==1 then solve_1(coef)
elseif cmp==2 then solve_2(coef)
@@ -506,10 +513,8 @@ local function pre_low_app_node(head, w, cmp, coef, ht, dp)
nt = w
for i = 1, cmp do
-- rule
- local nta = node_new(id_rule);
- setfield(nta, 'width', coef[i*2][2*cmp+2])
- setfield(nta, 'height', ht); setfield(nta, 'depth', dp)
- setfield(nta, 'subtype', 0)
+ local nta = node_new(id_rule, 0);
+ setwhd(nta, coef[i*2][2*cmp+2], ht, dp)
insert_after(head, nt, nta)
set_attr(nta, attr_ruby, 2*i+1)
-- glue
@@ -534,10 +539,10 @@ local function pre_high(ahead)
local n = first_whatsit(head)
while n do
if getsubtype(n) == sid_user and getfield(n, 'user_id') == RUBY_PRE then
- local nv = getfield(n, 'value')
- local rst = getfield(nv, 'value')
+ local nv = getvalue(n)
+ local rst = getvalue(nv)
max_allow_pre = rst.pre or 0
- local atr = has_attr(n, attr_ruby) or 0
+ local atr = get_attr(n, attr_ruby) or 0
if max_allow_pre < 0 then
-- 直前のルビで intrusion がおこる可能性あり.
-- 前 run のデータが残っていればそれを使用,
@@ -561,7 +566,7 @@ local function pre_high(ahead)
local coef = pre_low_cal_box(n, rst.count)
local s = node_tail(nv) --ルビ文字
head, n = pre_low_app_node(
- head, n, rst.count, coef, getfield(s, 'height'), getfield(s, 'depth')
+ head, n, rst.count, coef, getheight(s), getdepth(s)
)
else
n = first_whatsit(node_next(n))
@@ -578,7 +583,7 @@ luatexbase.add_to_callback('hpack_filter', pre_high, 'ltj.ruby.pre', 100)
local post_lown
do
local function write_aux(wv, num, bool)
- local id = has_attr(wv, attr_ruby_id)
+ local id = get_attr(wv, attr_ruby_id) or 0
if id>0 and cache_handle then
cache_handle:write(
'lrob[' .. tostring(id) .. ']=' .. num .. '\nlrob[' .. tostring(-id) .. ']=' .. tostring(bool) .. '\n')
@@ -588,35 +593,35 @@ do
post_lown = function (rs, rw, cmp, ch)
-- ch: the head of `current' hlist
if #rs ==0 or not rw then return ch end
- local hn = has_attr(rs[1], attr_ruby)
- local fn = has_attr(rs[#rs], attr_ruby)
- local wv = getfield(rw, 'value')
+ local hn = get_attr(rs[1], attr_ruby)
+ local fn = get_attr(rs[#rs], attr_ruby)
+ local wv = getvalue(rw)
if hn==1 then
if fn==2*cmp+2 then
local hn = node_tail(wv)
node_remove(wv, hn)
insert_after(ch, rs[1], hn)
set_attr(hn, attr_icflag, PROCESSED)
- write_aux(wv, has_attr(hn, attr_ruby), has_attr(hn, attr_ruby_post_jfmgk))-- 行中形
+ write_aux(wv, get_attr(hn, attr_ruby), get_attr(hn, attr_ruby_post_jfmgk))-- 行中形
else
local deg, hn = (fn-1)/2, wv
for i = 1, deg do hn = node_next(hn) end;
node_remove(wv, hn)
- setfield(hn, 'next', nil)
+ setnext(hn, nil)
insert_after(ch, rs[1], hn)
set_attr(hn, attr_icflag, PROCESSED)
- write_aux(wv, has_attr(hn, attr_ruby), has_attr(hn, attr_ruby_post_jfmgk))
+ write_aux(wv, get_attr(hn, attr_ruby), get_attr(hn, attr_ruby_post_jfmgk))
end
else
local deg, hn = max((hn-1)/2,2), wv
for i = 1, cmp+deg-1 do hn = node_next(hn) end
-- -1 is needed except the case hn = 3,
-- because a ending-line form is removed already from the list
- node_remove(wv, hn); setfield(hn, 'next', nil)
+ node_remove(wv, hn); setnext(hn, nil)
insert_after(ch, rs[1], hn)
set_attr(hn, attr_icflag, PROCESSED)
if fn == 2*cmp-1 then
- write_aux(wv, has_attr(hn, attr_ruby), has_attr(hn, attr_ruby_post_jfmgk))
+ write_aux(wv, get_attr(hn, attr_ruby), get_attr(hn, attr_ruby_post_jfmgk))
end
end
for i = 1,#rs do
@@ -629,11 +634,12 @@ do
end
end
+local traverse_id = node.direct.traverse_id
local function post_high_break(head)
local rs = {} -- rs: sequence of ruby_nodes,
local rw = nil -- rw: main whatsit
local cmp = -2 -- dummy
- for h in node.direct.traverse_id(id_hlist, to_direct(head)) do
+ for h in traverse_id(id_hlist, to_direct(head)) do
for i = 1, #rs do rs[i] = nil end
local ha = getlist(h)
while ha do
@@ -642,23 +648,23 @@ local function post_high_break(head)
or (hai == id_rule and getsubtype(ha)==0)
or (hai == id_whatsit and getsubtype(ha)==sid_user
and getfield(ha, 'user_id', RUBY_POST)))
- and has_attr(ha, attr_ruby) or 0
+ and get_attr(ha, attr_ruby) or 0
if i==0 then
ha = node_next(ha)
elseif i==1 then
- setfield(h, 'head', post_lown(rs, rw, cmp, getlist(h)))
+ setlist(h, post_lown(rs, rw, cmp, getlist(h)))
for i = 2, #rs do rs[i] = nil end -- rs[1] is set by the next statement
rs[1], rw = ha, nil; ha = node_next(ha)
elseif i==2 then
rw = ha
- cmp = getfield(getfield(rw, 'value'), 'value').count
+ cmp = getvalue(getvalue(rw)).count
local hb, hc = node_remove(getlist(h), rw)
- setfield(h, 'head', hb); ha = hc
+ setlist(h, hb); ha = hc
else -- i>=3
rs[#rs+1] = ha; ha = node_next(ha)
end
end
- setfield(h, 'head', post_lown(rs, rw, cmp, getlist(h)))
+ setlist(h, post_lown(rs, rw, cmp, getlist(h)))
end
return head
end
@@ -674,7 +680,7 @@ local function post_high_hbox(ahead)
or (hai == id_rule and getsubtype(ha)==0)
or (hai == id_whatsit and getsubtype(ha)==sid_user
and getfield(ha, 'user_id', RUBY_POST)))
- and has_attr(ha, attr_ruby) or 0
+ and get_attr(ha, attr_ruby) or 0
if i==0 then
ha = node_next(ha)
elseif i==1 then
@@ -683,7 +689,7 @@ local function post_high_hbox(ahead)
rs[1], rw = ha, nil; ha = node_next(ha)
elseif i==2 then
rw = ha
- cmp = getfield(getfield(rw, 'value'), 'value').count
+ cmp = getvalue(getvalue(rw)).count
head, ha = node_remove(head, rw)
else -- i >= 3
rs[#rs+1] = ha; ha = node_next(ha)
@@ -702,13 +708,13 @@ luatexbase.add_to_callback('hpack_filter', post_high_hbox, 'ltj.ruby.post_hbox',
do
local RIPRE = luatexja.stack_table_index.RIPRE
local RIPOST = luatexja.stack_table_index.RIPOST
- local abs = math.abs
+ local abs = math.abs
local function whatsit_callback(Np, lp, Nq)
if Np.nuc then return Np
elseif getfield(lp, 'user_id') == RUBY_PRE then
Np.first, Np.nuc, Np.last = lp, lp, lp
- local lpv = getfield(lp, 'value')
- local rst = getfield(lpv, 'value')
+ local lpv = getvalue(lp)
+ local rst = getvalue(lpv)
local x = node_next(node_next(lpv))
Np.last_char = luatexja.jfmglue.check_box_high(Np, getlist(x), nil)
if Nq.id ~=id_pbox_w then
@@ -759,8 +765,8 @@ do
local ic = get_attr_icflag(p)
if ic and (ic>FROM_JFM) and (ic<KANJI_SKIP) then ic = FROM_JFM end
if t.intrude_jfmgk[ic] then
- if getid(p)==id_kern then t[index] = t[index] + getfield(p, 'kern')
- else t[index] = t[index] + getfield(p, 'width') end
+ if getid(p)==id_kern then t[index] = t[index] + getkern(p)
+ else t[index] = t[index] + getwidth(p) end
end
end
local RIPOST = luatexja.stack_table_index.RIPOST
@@ -774,9 +780,9 @@ do
Np.first = last_glue
next_cluster_array[Nq.nuc] = last_glue -- ルビ処理用のグルー
end
- local nqnv = getfield(Nq.nuc, 'value')
- local rst = getfield(nqnv, 'value')
- if Nq.gk then
+ local nqnv = getvalue(Nq.nuc)
+ local rst = getvalue(nqnv)
+ if Nq.gk then
if type(Nq.gk)=="table" then
for _,v in ipairs(Nq.gk) do add_gk(rst, 'before_jfmgk', v) end
else add_gk(rst, 'before_jfmgk', Nq.gk) end
@@ -794,11 +800,11 @@ do
end
rst.post = p
end
- Np.prev_ruby = has_attr(getfield(Nq.nuc, 'value'), attr_ruby_id)
+ Np.prev_ruby = get_attr(getvalue(Nq.nuc), attr_ruby_id)
-- 前のクラスタがルビであったことのフラグ
else -- 直前が文字以外
- local nqnv = getfield(Nq.nuc, 'value')
- local rst = getfield(nqnv, 'value')
+ local nqnv = getvalue(Nq.nuc)
+ local rst = getvalue(nqnv)
if rst.post < 0 then -- auto
rst.post = 0
end
@@ -812,8 +818,8 @@ do
"luatexja.ruby.np_info_after", 1)
local function w (s, Nq, Np)
if not s and getfield(Nq.nuc, 'user_id') == RUBY_PRE then
- local rst = getfield(getfield(Nq.nuc, 'value'), 'value')
- if Np.gk then
+ local rst = getvalue(getvalue(Nq.nuc))
+ if Np.gk then
if type(Np.gk)=="table" then
for _,v in ipairs(Np.gk) do add_gk(rst, 'after_jfmgk', v) end
else add_gk(rst, 'after_jfmgk', Np.gk) end
diff --git a/macros/luatex/generic/luatexja/src/ltj-setwidth.lua b/macros/luatex/generic/luatexja/src/ltj-setwidth.lua
index 0e8e39f071..dd83d7e3d5 100644
--- a/macros/luatex/generic/luatexja/src/ltj-setwidth.lua
+++ b/macros/luatex/generic/luatexja/src/ltj-setwidth.lua
@@ -15,21 +15,23 @@ local getfont = node.direct.getfont
local getlist = node.direct.getlist
local getchar = node.direct.getchar
local getsubtype = node.direct.getsubtype
-local getwidth = node.direct.getwidth or function(n) return getfield(n,'width') end
-local getdepth = node.direct.getdepth or function(n) return getfield(n,'depth') end
-local getwhd = node.direct.getwhd or function(n)
- return getfield(n,'width'), getfield(n,'height'),getfield(n,'depth') end
+local getwidth = node.direct.getwidth
+local getshift = node.direct.getshift
+local getoffsets = node.direct.getoffsets
+local getheight = node.direct.getheight
+local getdepth = node.direct.getdepth
+local getwhd = node.direct.getwhd
-local setwhd = node.direct.setwhd or function(n,w,h,d)
- setfield(n,'width',w); setfield(n,'height',h); setfield(n,'depth',d) end
-local setchar = node.direct.setchar or function(n,c) setfield(n,'char',c) end
-local setnext = node.direct.setnext or function(n,c) setfield(n,'next',c) end
-local setdir = node.direct.setdir or function(n,c) setfield(n,'dir',c) end
-local setkern = node.direct.setkern or function(n,c) setfield(n,'kern',c) end
-local setoffsets = node.direct.setoffsets or function(n,x,y)
- setfield(n,'xoffset',x); setfield(n,'yoffset',y) end
-local getoffsets = node.direct.getoffsets or function(n)
- return getfield(n,'xoffset'), getfield(n,'yoffset') end
+local setwhd = node.direct.setwhd
+local setchar = node.direct.setchar
+local setnext = node.direct.setnext
+local setdir = node.direct.setdir
+local setkern = node.direct.setkern
+local setshift = node.direct.setshift
+local setoffsets = node.direct.setoffsets
+local setheight = node.direct.setheight
+local setdepth = node.direct.setdepth
+local setlist = node.direct.setlist
local node_traverse_id = node.direct.traverse_id
local node_traverse = node.direct.traverse
@@ -37,7 +39,7 @@ local node_copy = node.direct.copy
local node_remove = node.direct.remove
local node_tail = node.direct.tail
local node_next = node.direct.getnext
-local has_attr = node.direct.has_attribute
+local get_attr = node.direct.get_attribute
local set_attr = node.direct.set_attribute
local node_insert_before = node.direct.insert_before
local node_insert_after = node.direct.insert_after
@@ -56,6 +58,7 @@ local sid_restore = node.subtype 'pdf_restore'
local sid_matrix = node.subtype 'pdf_setmatrix'
local dir_tate = luatexja.dir_table.dir_tate
+local attr_yablshift = luatexbase.attributes['ltj@yablshift']
local attr_ykblshift = luatexbase.attributes['ltj@ykblshift']
local attr_tkblshift = luatexbase.attributes['ltj@tkblshift']
local attr_icflag = luatexbase.attributes['ltj@icflag']
@@ -71,7 +74,7 @@ do
local PROCESSED_BEGIN_FLAG = luatexja.icflag_table.PROCESSED_BEGIN_FLAG
local floor = math.floor
get_pr_begin_flag = function (p)
- local i = has_attr(p, attr_icflag) or 0
+ local i = get_attr(p, attr_icflag) or 0
return i - i%PROCESSED_BEGIN_FLAG
end
end
@@ -97,7 +100,7 @@ local function capsule_glyph_yoko(p, met, char_data, head, dir)
if not char_data then return node_next(p), head, p end
fshift.down = char_data.down; fshift.left = char_data.left
fshift = call_callback("luatexja.set_width", fshift, met, char_data)
- local kbl = has_attr(p, attr_ykblshift) or 0
+ local kbl = get_attr(p, attr_ykblshift) or 0
--
-- f*: whd specified in JFM
local pwidth, pheight,pdepth = getwhd(p)
@@ -142,8 +145,7 @@ local function capsule_glyph_yoko(p, met, char_data, head, dir)
setnext(p, nil)
local box = node_new(id_hlist, nil, p)
setwhd(box, fwidth, fheight, fdepth)
- setfield(box, 'head', p)
- setfield(box, 'shift', kbl)
+ setlist(box, p); setshift(box, kbl)
setdir(box, dir)
set_attr(box, attr_icflag, PACKED)
head = q and node_insert_before(head, q, box)
@@ -158,7 +160,7 @@ luatexja.setwidth.capsule_glyph_yoko = capsule_glyph_yoko
local function capsule_glyph_tate_rot(p, met, char_data, head, dir, asc)
fshift.down = char_data.down; fshift.left = char_data.left
fshift = call_callback("luatexja.set_width", fshift, met, char_data)
- local kbl = has_attr(p, attr_tkblshift) or 0
+ local kbl = get_attr(p, attr_tkblshift) or 0
-- f*: whd specified in JFM
local pwidth, pheight,pdepth = getwhd(p)
local fwidth = char_data.width or pwidth
@@ -172,8 +174,7 @@ local function capsule_glyph_tate_rot(p, met, char_data, head, dir, asc)
setnext(p, nil)
local box = node_new(id_hlist, nil, p)
setwhd(box, fwidth, fheight, fdepth)
- setfield(box, 'head', p)
- setfield(box, 'shift', kbl)
+ setlist(box, p); setshift(box, kbl)
setdir(box, dir)
set_attr(box, attr_icflag, PACKED)
head = q and node_insert_before(head, q, box)
@@ -192,8 +193,8 @@ local function capsule_glyph_tate(p, met, char_data, head, dir)
if met.rotation and met.vert_activated then
local f = font_getfont(pf)
local r, l = met.rotation[pc], f.properties and f.properties.language
- if ((r==true) or (type(r)=="table" and not r[l])) and (has_attr(p, attr_vert_ori) or 0)<=0 then
- return capsule_glyph_tate_rot(p, met, char_data, head, dir,
+ if ((r==true) or (type(r)=="table" and not r[l])) and (get_attr(p, attr_vert_ori) or 0)<=0 then
+ return capsule_glyph_tate_rot(p, met, char_data, head, dir,
0.5*(get_ascender(pf)-get_descender(pf)))
end
end
@@ -213,12 +214,11 @@ local function capsule_glyph_tate(p, met, char_data, head, dir)
fshift = call_callback("luatexja.set_width", fshift, met, char_data)
local fheight = char_data.height or 0
local fdepth = char_data.depth or 0
- local y_shift = xo + (has_attr(p,attr_tkblshift) or 0)
+ local y_shift = xo + (get_attr(p,attr_tkblshift) or 0)
local q
head, q = node_remove(head, p)
local box = node_new(id_hlist, nil, p)
- setwhd(box, fwidth, fheight, fdepth)
- setfield(box, 'shift', y_shift)
+ setwhd(box, fwidth, fheight, fdepth); setshift(box, y_shift)
setdir(box, dir)
-- print(yo, ascender, char_data.align, fwidth-pwidth)
setoffsets(p, -fshift.down,
@@ -230,7 +230,7 @@ local function capsule_glyph_tate(p, met, char_data, head, dir)
local k2 = node_new(id_kern, 1); setkern(k2, pwnh)
local k3 = node_new(id_kern, 1); setkern(k3, -getwidth(p)-pwnh)
local wr = node_new(id_whatsit, sid_restore)
- setfield(box, 'head', ws)
+ setlist(box, ws)
setnext(ws, wm); setnext(wm, k2);
setnext(k2, p); setnext(p, k3);
setnext(k3, wr);
@@ -243,26 +243,41 @@ local function capsule_glyph_tate(p, met, char_data, head, dir)
end
luatexja.setwidth.capsule_glyph_tate = capsule_glyph_tate
-local function capsule_glyph_math(p, met, char_data)
+do
+local font_getfont, famfont = font.getfont, node.family_font
+local cap_math_aux = {
+ [-1]=function() return 1 end, [0]=function() return 1 end,
+ [1]=function()
+ local sf, tf = famfont(2,1), famfont(2,0)
+ return font_getfont(sf).size/font_getfont(tf).size
+ end,
+ [2]=function()
+ local ssf, tf = famfont(2,2), famfont(2,0)
+ return font_getfont(ssf).size/font_getfont(tf).size
+ end
+}
+setmetatable(cap_math_aux, {__index=function(t,k) return t[2] end})
+local function capsule_glyph_math(p, met, char_data, sty)
if not char_data then return nil end
local fwidth, pwidth = char_data.width, getwidth(p)
fwidth = fwidth or pwidth
fshift.down = char_data.down; fshift.left = char_data.left
fshift = call_callback("luatexja.set_width", fshift, met, char_data)
local fheight, fdepth = char_data.height, char_data.depth
- local y_shift
- = - getfield(p, 'yoffset') + (has_attr(p,attr_ykblshift) or 0)
+ local y_shift = - getfield(p, 'yoffset')
+ + cap_math_aux[sty]()*
+ ((get_attr(p,attr_ykblshift) or 0) - (get_attr(p,attr_yablshift) or 0))
setfield(p, 'yoffset', -fshift.down)
setfield(p, 'xoffset', getfield(p, 'xoffset') + char_data.align*(fwidth-pwidth) - fshift.left)
local box = node_new(id_hlist, nil, p);
setwhd(box, fwidth, fheight, fdepth)
- setfield(box, 'head', p)
- setfield(box, 'shift', y_shift)
+ setlist(box, p); setshift(box, y_shift)
setdir(box, tex.mathdir)
set_attr(box, attr_icflag, PACKED)
return box
end
luatexja.setwidth.capsule_glyph_math = capsule_glyph_math
+end
-- 数式の位置補正
function luatexja.setwidth.apply_ashift_math(head, last, attr_ablshift)
@@ -270,19 +285,18 @@ function luatexja.setwidth.apply_ashift_math(head, last, attr_ablshift)
local pid = getid(p)
if p==last then
return
- elseif (has_attr(p, attr_icflag) or 0) ~= PROCESSED then
+ elseif (get_attr(p, attr_icflag) or 0) ~= PROCESSED then
if pid==id_hlist or pid==id_vlist then
- setfield(p, 'shift', getfield(p, 'shift') + (has_attr(p,attr_ablshift) or 0))
+ setshift(p, getshift(p) + (get_attr(p,attr_ablshift) or 0))
elseif pid==id_rule then
- local v = has_attr(p,attr_ablshift) or 0
- setfield(p, 'height', getfield(p, 'height')-v)
- setfield(p, 'depth', getdepth(p)+v)
+ local v = get_attr(p,attr_ablshift) or 0
+ setheight(p, getheight(p)-v); setdepth(p, getdepth(p)+v)
set_attr(p, attr_icflag, PROCESSED)
elseif pid==id_glyph then
-- 欧文文字; 和文文字は pid == id_hlist の場合で処理される
-- (see conv_jchar_to_hbox_A in ltj-math.lua)
setfield(p, 'yoffset',
- getfield(p, 'yoffset') - (has_attr(p,attr_ablshift) or 0))
+ getfield(p, 'yoffset') - (get_attr(p,attr_ablshift) or 0))
end
set_attr(p, attr_icflag, PROCESSED)
end
@@ -300,7 +314,7 @@ do
if not head then return end
local y_adjust, node_depth, adj_depth = 0, 0, 0
for lp in node_traverse_id(id_glyph, head) do
- y_adjust = has_attr(lp,attr_ablshift) or 0
+ y_adjust = get_attr(lp,attr_ablshift) or 0
local ld = getdepth(lp)
node_depth = max(ld + min(y_adjust, 0), node_depth)
adj_depth = (y_adjust>0) and max(ld + y_adjust, adj_depth) or adj_depth
diff --git a/macros/luatex/generic/luatexja/src/ltj-stack.lua b/macros/luatex/generic/luatexja/src/ltj-stack.lua
index a0cd2e286e..ca83781473 100644
--- a/macros/luatex/generic/luatexja/src/ltj-stack.lua
+++ b/macros/luatex/generic/luatexja/src/ltj-stack.lua
@@ -3,7 +3,7 @@
--
luatexbase.provides_module({
name = 'luatexja.stack',
- date = '2020-07-30',
+ date = '2022-08-20',
description = 'LuaTeX-ja stack system',
})
luatexja.stack = {}
@@ -20,28 +20,31 @@ local STCK = luatexja.userid_table.STCK
local fastcopy = table.fastcopy
local setcount, getcount = tex.setcount, tex.getcount
local scan_int, scan_keyword = token.scan_int, token.scan_keyword
+local getnest = tex.getnest
+local cnt_stack = luatexbase.registernumber 'ltj@@stack'
+local cnt_grplvl = luatexbase.registernumber 'ltj@@group@level'
ltjs.hmode = 0 -- dummy
-local charprop_stack_table={};
+local charprop_stack_table={}
ltjs.charprop_stack_table = charprop_stack_table
charprop_stack_table[0]={}
local function get_stack_level()
- local i = getcount 'ltj@@stack'
+ local i = getcount(cnt_stack)
local j = tex.currentgrouplevel
- if j > getcount 'ltj@@group@level' then
+ if j > getcount(cnt_grplvl) then
i = i+1 -- new stack level
local gd = tex.globaldefs
if gd~=0 then tex.globaldefs = 0 end
-- 'tex.globaldefs = 0' is local even if \globaldefs > 0.
- setcount('ltj@@group@level', j)
+ setcount(cnt_grplvl, j)
for k,v in pairs(charprop_stack_table) do -- clear the stack above i
if k>=i then charprop_stack_table[k]=nil end
end
charprop_stack_table[i] = fastcopy(charprop_stack_table[i-1])
- setcount('ltj@@stack', i)
+ setcount(cnt_stack, i)
if gd~=0 then tex.globaldefs = gd end
- if tex.nest[tex.nest.ptr].mode == -ltjs.hmode then -- rest. hmode のみ
+ if getnest().mode == -ltjs.hmode then -- rest. hmode のみ
local g = node_new(id_whatsit, sid_user)
g.user_id=STCK; g.type=100; g.value=j; node.write(g)
end
@@ -54,9 +57,7 @@ local function set_stack_table(m, p)
local i = get_stack_level()
charprop_stack_table[i][m] = p
if luatexja.isglobal=='global' then
- for j,v in pairs(charprop_stack_table) do
- charprop_stack_table[j][m] = p
- end
+ for j,v in pairs(charprop_stack_table) do v[m] = p end
end
end
ltjs.set_stack_table = set_stack_table
@@ -90,25 +91,22 @@ function ltjs.set_stack_font(m,c,p)
end
-- EXT: sp: glue_spec
+local getglue = node.getglue
function ltjs.set_stack_skip(m,sp)
local i = get_stack_level()
if not sp then return end
- if not charprop_stack_table[i][m] then
- charprop_stack_table[i][m] = {}
+ local w,st,sh,sto,sho = getglue(sp)
+ if charprop_stack_table[i][m] then
+ local c = charprop_stack_table[i][m]
+ c[1], c[2], c[3], c[4], c[5] = w, st, sh, sto, sho
+ else
+ charprop_stack_table[i][m] = { w,st,sh,sto,sho }
end
- charprop_stack_table[i][m].width = sp.width
- charprop_stack_table[i][m].stretch = sp.stretch
- charprop_stack_table[i][m].shrink = sp.shrink
- charprop_stack_table[i][m].stretch_order = sp.stretch_order
- charprop_stack_table[i][m].shrink_order = sp.shrink_order
if luatexja.isglobal=='global' then
for j,v in pairs(charprop_stack_table) do
- if not charprop_stack_table[j][m] then charprop_stack_table[j][m] = {} end
- charprop_stack_table[j][m].width = sp.width
- charprop_stack_table[j][m].stretch = sp.stretch
- charprop_stack_table[j][m].shrink = sp.shrink
- charprop_stack_table[j][m].stretch_order = sp.stretch_order
- charprop_stack_table[j][m].shrink_order = sp.shrink_order
+ if not v[m] then v[m] = { true,true,true,true,true } end
+ local c = v[m]
+ c[1], c[2], c[3], c[4], c[5] = w, st, sh, sto, sho
end
end
end
@@ -119,23 +117,21 @@ local orig_char_table = {}
ltjs.orig_char_table = orig_char_table
ltjs.list_dir = nil -- dummy
ltjs.table_current_stack = nil -- dummy
+local dummy_skip_table = { 0,0,0,0,0 }
function ltjs.report_stack_level(bsl)
ltjs.table_current_stack = charprop_stack_table[bsl]
return bsl
end
function ltjs.fast_get_stack_skip(m)
- return ltjs.table_current_stack[m]
- or { width = 0, stretch = 0, shrink = 0, stretch_order = 0, shrink_order = 0 }
+ return ltjs.table_current_stack[m] or dummy_skip_table
end
-- For other situations, use the following instead:
function ltjs.get_stack_skip(m, idx)
- return charprop_stack_table[idx][m]
- or { width = 0, stretch = 0, shrink = 0, stretch_order = 0, shrink_order = 0 }
+ return charprop_stack_table[idx][m] or dummy_skip_table
end
function ltjs.get_stack_table(mc, d, idx)
- local i = charprop_stack_table[idx][mc]
- return i or d
+ return charprop_stack_table[idx][mc] or d
end
diff --git a/macros/luatex/generic/luatexja/src/ltjclasses.dtx b/macros/luatex/generic/luatexja/src/ltjclasses.dtx
index e2d4dd9a50..f05afe97c1 100644
--- a/macros/luatex/generic/luatexja/src/ltjclasses.dtx
+++ b/macros/luatex/generic/luatexja/src/ltjclasses.dtx
@@ -139,6 +139,7 @@
% (sync with ltsect.dtx 2020/07/27 v1.1e)}
% \changes{v1.8f-ltj-21}{2021-12-22}{余計なコメントの削除.}
% \changes{v1.8f-ltj-22}{2022-04-11}{kern featureが有効になっていたのを修正.}
+% \changes{v1.8f-ltj-23}{2022-09-12}{|\stockwidth|がカーネルで定義される可能性に対応.}
% \fi
%
% \iffalse
@@ -168,7 +169,7 @@
%<11pt&bk>\ProvidesFile{ltjtbk11.clo}
%<12pt&bk>\ProvidesFile{ltjtbk12.clo}
%</tate>
- [2022-04-11 v1.8f-ltj-22
+ [2022-09-12 v1.8f-ltj-23
%<article|report|book> Standard LuaLaTeX-ja class]
%<10pt|11pt|12pt> Standard LuaLaTeX-ja file (size option)]
%<*driver>
@@ -977,10 +978,13 @@
% [2017-01-17 LTJ] [lt]jsclassesに合わせ、トンボオプションが指定されているとき「だけ」|\stockwidth|、
% |\stockheight|を定義するようにしました。aminophenさん、ありがとうございます。
%
+% [2022-09-12 LTJ] \LaTeXe カーネルに|\stockwidth|、|\stockheight|が追加されるようですので、
+% クラスファイル側では未定義のときのみこれらの長さ変数を定義します。h20y6mさん、ありがとうございます。
+%
% \begin{macrocode}
\iftombow
- \newlength{\stockwidth}
- \newlength{\stockheight}
+ \ifdefined\stockwidth\else\newlength{\stockwidth}\fi
+ \ifdefined\stockheight\else\newlength{\stockheight}\fi
\setlength{\stockwidth}{\paperwidth}
\setlength{\stockheight}{\paperheight}
\advance \stockwidth 2in
diff --git a/macros/luatex/generic/luatexja/src/ltjsclasses.dtx b/macros/luatex/generic/luatexja/src/ltjsclasses.dtx
index e190617c15..a151210339 100644
--- a/macros/luatex/generic/luatexja/src/ltjsclasses.dtx
+++ b/macros/luatex/generic/luatexja/src/ltjsclasses.dtx
@@ -44,7 +44,7 @@
%<*driver>
\ProvidesFile{ltjsclasses.dtx}
%</driver>
- [2022/04/11 ltjsclasses ]
+ [2022/09/12 ltjsclasses ]
%<*driver>
\IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{}
\documentclass[disablejfam]{ltjsarticle}
@@ -808,13 +808,15 @@
\begingroup\catcode`\%=12\relax
\directlua{
local getdimen, mpt=tex.getdimen, tex.getdimen('jsc@mpt')/65536
+ local floor, cnt_dimen_at = math.floor, luatexbase.registernumber 'dimen@'
+ local print_scaled, sprint = luatexja.print_scaled, tex.sprint
local t = lua.get_functions_table()
t[\the\ltjs@@magnify@font@calc] = function()
- tex.sprint(-2,math.floor(0.5+mpt*getdimen('dimen@')))
+ sprint(-2,floor(0.5+mpt*getdimen(cnt_dimen_at)))
end
function luatexja.ltjs_unmagnify_fsize(a)
- local s = luatexja.print_scaled(math.floor(0.5+a/mpt*65536))
- tex.sprint(-2, (s:match('%.0$')) and s:sub(1,-3) or s )
+ local s = print_scaled(floor(0.5+a/mpt*65536))
+ sprint(-2, (s:match('%.0$')) and s:sub(1,-3) or s )
end
}
\endgroup
@@ -892,10 +894,13 @@
% [2017-01-11] トンボオプションが指定されているとき「だけ」|\stockwidth|,
% |\stockheight|を定義するようにしました。
%
+% [2022-09-12 LTJ] \LaTeXe カーネルに|\stockwidth|、|\stockheight|が追加されるようですので、
+% クラスファイル側では未定義のときのみこれらの長さ変数を定義します。h20y6mさん、ありがとうございます。
+%
% \begin{macrocode}
\iftombow
- \newlength{\stockwidth}
- \newlength{\stockheight}
+ \ifdefined\stockwidth\else\newlength{\stockwidth}\fi
+ \ifdefined\stockheight\else\newlength{\stockheight}\fi
\setlength{\stockwidth}{\paperwidth}
\setlength{\stockheight}{\paperheight}
\advance \stockwidth 2in
diff --git a/macros/luatex/generic/luatexja/src/luatexja-core.sty b/macros/luatex/generic/luatexja/src/luatexja-core.sty
index cc49fbd479..c1f8c2c622 100644
--- a/macros/luatex/generic/luatexja/src/luatexja-core.sty
+++ b/macros/luatex/generic/luatexja/src/luatexja-core.sty
@@ -65,7 +65,7 @@
\expandafter\let\csname ifltj@in@latex\expandafter\endcsname
\csname iftrue\endcsname
\NeedsTeXFormat{LaTeX2e}
- \ProvidesPackage{luatexja-core}[2022-01-12 Core of LuaTeX-ja]
+ \ProvidesPackage{luatexja-core}[2022-08-24 Core of LuaTeX-ja]
\fi %</LaTeX>
%% Load prerequisite packages.
@@ -97,10 +97,10 @@
\expandafter\endinput\fi\relax
%% Check LuaTeX version.
-\ifnum\luatexversion<100
+\ifnum\luatexversion<110
\@PackageError{luatexja-core}
{This LuaTeX engine is too old for this package;\MessageBreak
- at least 1.0.0 is needed}
+ at least 1.10.0 is needed}
{Package loading is aborted now.\MessageBreak}
\expandafter\endinput\fi\relax
@@ -125,10 +125,6 @@
\newdimen\ltj@dimen@jQ \ltj@dimen@jQ=0.25mm
\let\jQ=\ltj@dimen@jQ \let\jH=\jQ
-%%%%%%%% error message
-\def\ltj@defnum{0}
-\def\ltj@defdimen{0}
-
%%%%%%%% Attributes for Japanese typesetting.
\newattribute\ltj@icflag % attribute for italic correction
\newattribute\ltj@curjfnt % index for ``current horizontal Japanese font''
@@ -148,7 +144,6 @@
\newlanguage\ltj@@japanese
\ltj@dir\z@
\ltj@icflag\z@
-\ltj@charclass\z@
\ltj@curjfnt\m@ne
\ltj@curtfnt\m@ne
\ltj@yablshift\z@
@@ -156,15 +151,18 @@
\ltj@tablshift\z@
\ltj@tkblshift\z@
+\newcount\ltj@tempcnta\newdimen\ltj@tempdima
+\newcount\ltj@@stack \newcount\ltj@@group@level
+\ltj@@group@level\z@\ltj@@stack\z@
+
%%%%%%%% Attributes for character ranges
-\newcount\ltj@tempcnta
\ltj@tempcnta\z@
\loop\ifnum\ltj@tempcnta<7
\expandafter\newattribute%
\csname ltj@kcat\the\ltj@tempcnta\endcsname
- \csname ltj@kcat\the\ltj@tempcnta\endcsname=0
\advance\ltj@tempcnta\@ne
\repeat
+\csname ltj@kcat0\endcsname=\z@
%%%%%%%% Loading luatexja.lua
@@ -225,21 +223,21 @@
%%%%%%%% \jfont\CS={...:...;jfm=metric;...}, \globaljfont
\protected\def\jfont#1{%
- \afterassignment\ltj@@jfont\directlua{luatexja.jfont.jfontdefX(false, 'yoko','\luatexluaescapestring{\noexpand#1}')}}
+ \def\ltj@temp{#1}\afterassignment\ltj@@jfont\directlua{luatexja.jfont.jfontdefX(false, 'yoko')}}
\protected\def\globaljfont#1{%
- \afterassignment\ltj@@jfont\directlua{luatexja.jfont.jfontdefX(true, 'yoko','\luatexluaescapestring{\noexpand#1}')}}
+ \def\ltj@temp{#1}\afterassignment\ltj@@jfont\directlua{luatexja.jfont.jfontdefX(true, 'yoko')}}
\newluafunction\ltj@@jfont@inner
\directlua{
local t = lua.get_functions_table()
t[\the\ltj@@jfont@inner] = luatexja.jfont.jfontdefY
}
-\def\ltj@@jfont{\luafunction\ltj@@jfont@inner}
+\def\ltj@@jfont{\expandafter\expandafter\expandafter\luafunction\expandafter\ltj@@jfont@inner\ltj@temp}
%%%%%%%% \tfont\CS={...:...;jfm=metric;...}, \globaltfont
\protected\def\tfont#1{%
- \afterassignment\ltj@@jfont\directlua{luatexja.jfont.jfontdefX(false, 'tate','\luatexluaescapestring{\noexpand#1}')}}
+ \def\ltj@temp{#1}\afterassignment\ltj@@jfont\directlua{luatexja.jfont.jfontdefX(false, 'tate')}}
\protected\def\globaltfont#1{%
- \afterassignment\ltj@@jfont\directlua{luatexja.jfont.jfontdefX(true, 'tate','\luatexluaescapestring{\noexpand#1}')}}
+ \def\ltj@temp{#1}\afterassignment\ltj@@jfont\directlua{luatexja.jfont.jfontdefX(true, 'tate')}}
%%%%%%%% \zw, \zh
\newluafunction\ltj@zw@inner
@@ -264,17 +262,17 @@
\newluafunction\ltj@@ins@xk@inner
\newluafunction\ltj@@ins@k@inner
\directlua{
- local t = lua.get_functions_table()
+ local t, ltjj = lua.get_functions_table(), luatexja.jfmglue
t[\the\ltj@reset@globaldefs@inner]
= function() luatexja.global_temp = tex.globaldefs; tex.globaldefs = 0 end
t[\the\ltj@restore@globaldefs@inner]
= function() tex.globaldefs = luatexja.global_temp end
- t[\the\ltj@@disihb@inner] = luatexja.jfmglue.create_disinhibitglue_node
- t[\the\ltj@@ihb@inner] = luatexja.jfmglue.create_inhibitglue_node
- t[\the\ltj@@fakeparbegin@inner] = luatexja.jfmglue.create_beginpar_node
- t[\the\ltj@@fakeboxbdd@inner] = luatexja.jfmglue.create_boxbdd_node
- t[\the\ltj@@ins@xk@inner] = luatexja.jfmglue.insert_xk_skip
- t[\the\ltj@@ins@k@inner] = luatexja.jfmglue.insert_k_skip
+ t[\the\ltj@@disihb@inner] = ltjj.create_disinhibitglue_node
+ t[\the\ltj@@ihb@inner] = ltjj.create_inhibitglue_node
+ t[\the\ltj@@fakeparbegin@inner] = ltjj.create_beginpar_node
+ t[\the\ltj@@fakeboxbdd@inner] = ltjj.create_boxbdd_node
+ t[\the\ltj@@ins@xk@inner] = ltjj.insert_xk_skip
+ t[\the\ltj@@ins@k@inner] = ltjj.insert_k_skip
}
\protected\luadef\ltj@reset@globaldefs \ltj@reset@globaldefs@inner
\protected\luadef\ltj@restore@globaldefs\ltj@restore@globaldefs@inner
@@ -307,17 +305,14 @@
}
%%%%%%%% \ltjsetparameter
-\newcount\ltj@@stack \newcount\ltj@@group@level
-\ltj@@group@level\z@\ltj@@stack\z@
-
\setbox\z@\hbox{%
\directlua{% This value depends on the version of LuaTeX.
- luatexja.stack.hmode = -tex.nest[tex.nest.ptr].mode
+ luatexja.stack.hmode = -tex.getnest().mode
}%
}
\setbox\z@\vbox{%
\directlua{% This value depends on the version of LuaTeX.
- luatexja.stack.vmode = -tex.nest[tex.nest.ptr].mode
+ luatexja.stack.vmode = -tex.getnest().mode
}%
}
\setbox\z@\box\voidb@x
@@ -328,9 +323,6 @@
\define@key[ltj]{japaram}{postbreakpenalty}{\ltj@@set@stack{POST}{-10000}{10000}#1\relax}
\def\ltj@@set@stack#1#2#3{%
\directlua{luatexja.stack.set_stack_perchar(luatexja.stack_table_index.#1,#2,#3)}}
-%\def\ltj@@set@stack#1,#2:#3#4#5{%
-% \directlua{luatexja.stack.set_stack_perchar(luatexja.stack_table_index.#3,
-% \ltj@safe@num@or{nil}{#1},\ltj@safe@num@or{nil}{#2},#4,#5)}}
% jatextfont = {<char_code>, <font_cs>}
% only horizontal font is supported
@@ -357,18 +349,16 @@
% {y,t}{ja,al}baselineshift = <dimen>
% yjabaselineshift = <dimen>
-\define@key[ltj]{japaram}{yalbaselineshift}{%
- \directlua{tex.setattribute(luatexja.isglobal,
- luatexbase.attributes['ltj@yablshift'], token.scan_dimen())}#1\relax}
-\define@key[ltj]{japaram}{yjabaselineshift}{%
- \directlua{tex.setattribute(luatexja.isglobal,
- luatexbase.attributes['ltj@ykblshift'], token.scan_dimen())}#1\relax}
-\define@key[ltj]{japaram}{talbaselineshift}{%
- \directlua{tex.setattribute(luatexja.isglobal,
- luatexbase.attributes['ltj@tablshift'], token.scan_dimen())}#1\relax}
-\define@key[ltj]{japaram}{tjabaselineshift}{%
- \directlua{tex.setattribute(luatexja.isglobal,
- luatexbase.attributes['ltj@tkblshift'], token.scan_dimen())}#1\relax}
+\def\ltj@set@blshift@#1{\directlua{%
+ local n = token.scan_dimen()
+ tex.setattribute(luatexja.isglobal,
+ luatexbase.attributes['#1'], (n==0) and 0 or n)
+ %次期バージョンで ... and -0x7FFFFFFF or ... に変える
+}}
+\define@key[ltj]{japaram}{yalbaselineshift}{\ltj@set@blshift@{ltj@yablshift}#1\relax}
+\define@key[ltj]{japaram}{yjabaselineshift}{\ltj@set@blshift@{ltj@ykblshift}#1\relax}
+\define@key[ltj]{japaram}{talbaselineshift}{\ltj@set@blshift@{ltj@tablshift}#1\relax}
+\define@key[ltj]{japaram}{tjabaselineshift}{\ltj@set@blshift@{ltj@tkblshift}#1\relax}
% jaxspmode = {<char_code>, <mode>}
% mode: inhibit, preonly, postonly, allow
@@ -392,7 +382,7 @@
% autospacing = <bool> (default: true)
\define@boolkey[ltj]{japaram}{autospacing}[true]{%
\ifltj@japaram@autospacing
- \directlua{luatexja.ext_print_global()}\ltj@autospc\@ne
+ \directlua{luatexja.ext_print_global()}\unsetattribute\ltj@autospc
\else
\directlua{luatexja.ext_print_global()}\ltj@autospc\z@
\fi}
@@ -400,7 +390,7 @@
% autoxspacing = <bool> (default: true)
\define@boolkey[ltj]{japaram}{autoxspacing}[true]{%
\ifltj@japaram@autoxspacing
- \directlua{luatexja.ext_print_global()}\ltj@autoxspc\@ne
+ \directlua{luatexja.ext_print_global()}\unsetattribute\ltj@autoxspc
\else
\directlua{luatexja.ext_print_global()}\ltj@autoxspc\z@
\fi}
@@ -516,7 +506,7 @@
t[\the\ltj@alljachar@inner] = function()
font.current(get_attr(attr_curjfnt)); tex.language=lang_ja;
for i=0,6 do
- set_attr(luatexbase.attributes['ltj@kcat' .. floor(i)],0)
+ set_attr(luatexbase.attributes['ltj@kcat' .. floor(i)], 0)
end
end
}
@@ -646,7 +636,7 @@
\setbox\z@\hbox{%
\primitive\everymath{}%
$\directlua{% This value depends on the version of LuaTeX.
- luatexja.stack.mmode = -tex.nest[tex.nest.ptr].mode
+ luatexja.stack.mmode = -tex.getnest().mode
}$%
}
\setbox\z@\box\voidb@x
diff --git a/macros/luatex/generic/luatexja/src/luatexja.lua b/macros/luatex/generic/luatexja/src/luatexja.lua
index 8da4251882..e8f4053c40 100644
--- a/macros/luatex/generic/luatexja/src/luatexja.lua
+++ b/macros/luatex/generic/luatexja/src/luatexja.lua
@@ -39,21 +39,6 @@ do
return node_inherit_attr(node_new(id, subtype), b, a)
end
end
-do
- local setfield = node.direct.setfield
- luatexja.setglue = node.direct.setglue or
- function(g,w,st,sh,sto,sho)
- setfield(g,'width', w or 0); setfield(g,'stretch',st or 0); setfield(g,'shrink', sh or 0)
- setfield(g,'stretch_order',sto or 0)
- setfield(g,'shrink_order', sho or 0)
- end
- local getfield = node.direct.getfield
- luatexja.getglue = node.direct.getglue or
- function(g)
- return getfield(g,'width'), getfield(g,'stretch'), getfield(g,'shrink'),
- getfield(g,'stretch_order'), getfield(g,'shrink_order')
- end
-end
--- 以下は全ファイルで共有される定数
local icflag_table = {}
@@ -120,7 +105,7 @@ if tex.outputmode==0 then
'Use lua*tex instead dvilua*tex.')
end
load_module 'rmlgbm'; local ltjr = luatexja.rmlgbm -- must be 1st
-if luatexja_debug then load_module('debug') end
+if luatexja_debug then load_module 'debug' end
load_module 'lotf_aux'; local ltju = luatexja.lotf_aux
load_module 'charrange'; local ltjc = luatexja.charrange
load_module 'stack'; local ltjs = luatexja.stack
@@ -171,12 +156,12 @@ local function print_glue(d,order)
end
local function print_spec(p)
- local out=print_scaled(p.width)..'pt'
- if p.stretch~=0 then
- out=out..' plus '..print_glue(p.stretch,p.stretch_order)
+ local out=print_scaled(p.width or p[1])..'pt'
+ if (p.stretch or p[2])~=0 then
+ out=out..' plus '..print_glue(p.stretch or p[2], p.stretch_order or p[4])
end
- if p.shrink~=0 then
- out=out..' minus '..print_glue(p.shrink,p.shrink_order)
+ if (p.shrink or p[3])~=0 then
+ out=out..' minus '..print_glue(p.shrink or p[3], p.shrink_order or p[5])
end
return out
end
@@ -185,14 +170,16 @@ end
------------------------------------------------------------------------
-- CODE FOR GETTING/SETTING PARAMETERS
------------------------------------------------------------------------
+local getcount, texwrite = tex.getcount, tex.write
+local cnt_stack = luatexbase.registernumber 'ltj@@stack'
-- EXT: print parameters that don't need arguments
do
local tex_getattr = tex.getattribute
- local function getattr(a)
- local r = tex_getattr(a)
- return (r==-0x7FFFFFFF) and 0 or r
- end
+ local function getattr(a, d)
+ local r = tex_getattr(a); d = d or 0
+ return (r==-0x7FFFFFFF) and d or r
+ end
luatexja.unary_pars = {
yalbaselineshift = function(t)
return print_scaled(getattr('ltj@yablshift'))..'pt'
@@ -216,10 +203,10 @@ do
return ltjs.get_stack_table(stack_ind.JWP, 0, t)
end,
autospacing = function(t)
- return getattr('ltj@autospc')
+ return getattr('ltj@autospc', 1)
end,
autoxspacing = function(t)
- return getattr('ltj@autoxspc')
+ return getattr('ltj@autoxspc', 1)
end,
differentjfm = function(t)
local f, r = luatexja.jfmglue.diffmet_rule, '???'
@@ -235,7 +222,7 @@ do
end,
direction = function()
local v = ltjd.get_dir_count()
- if math.abs(tex.nest[tex.nest.ptr].mode) == ltjs.mmode and v == dir_table.dir_tate then
+ if math.abs(tex.getnest().mode) == ltjs.mmode and v == dir_table.dir_tate then
v = dir_table.dir_utod
end
return v
@@ -248,9 +235,9 @@ do
function luatexja.ext_get_parameter_unary()
local k= scan_arg()
if unary_pars[k] then
- tex.write(tostring(unary_pars[k](tex.getcount('ltj@@stack'))))
+ texwrite(tostring(unary_pars[k](getcount(cnt_stack))))
end
- ltjb.stop_time_measure('get_par')
+ ltjb.stop_time_measure 'get_par'
end
end
@@ -269,8 +256,8 @@ do
c=0 -- external range 217 == internal range 0
elseif c==31*ltjc.ATTR_RANGE then c=0
end
- -- 負の値は <U+0080 の文字の文字範囲,として出てくる.この時はいつも欧文文字なので 1 を返す
- return (c<0) and 1 or ltjc.get_range_setting(c)
+ -- 負の値は <U+0080 の文字の文字範囲,として出てくる.この時はいつも欧文文字なので 1 を返す
+ if c<0 then return 1 else return (ltjc.get_range_setting(c)==0) and 0 or 1 end
end,
prebreakpenalty = function(c, t)
return ltjs.get_stack_table(stack_ind.PRE + ltjb.in_unicode(c, true), 0, t)
@@ -303,9 +290,9 @@ do
binary_pars.alxspmode = binary_pars.jaxspmode
function luatexja.ext_get_parameter_binary(k, c)
if binary_pars[k] then
- tex.write(tostring(binary_pars[k](c,tex.getcount('ltj@@stack'))))
+ texwrite(tostring(binary_pars[k](c, getcount(cnt_stack))))
end
- ltjb.stop_time_measure('get_par')
+ ltjb.stop_time_measure 'get_par'
end
end
@@ -329,10 +316,10 @@ do
ensure_tex_attr(attr_icflag, 0)
if gc == 'fin_row' then return head
else
- start_time_measure('jfmglue')
+ start_time_measure 'jfmglue'
slide(head);
local p = ltjj.main(to_direct(head),mode, dir)
- stop_time_measure('jfmglue')
+ stop_time_measure 'jfmglue'
return to_node(p)
end
end
@@ -363,13 +350,14 @@ end
-- lastnodechar
do
- local id_glyph = node.id('glyph')
+ local getnest = tex.getnest
+ local id_glyph = node.id 'glyph'
function luatexja.pltx_composite_last_node_char()
- local n = tex.nest[tex.nest.ptr].tail
+ local n = getnest()
local r = '-1'
if n then
if n.id==id_glyph then
- while n.componetns and n.subtype and n.subtype%4 >= 2 do
+ while n.components and n.subtype and n.subtype%4 >= 2 do
n = node.tail(n)
end
r = tostring(n.char)
@@ -380,7 +368,7 @@ do
end
do
- local cache_ver = 3 -- must be same as ltj-kinsoku.tex
+ local cache_ver = 4 -- must be same as ltj-kinsoku.tex
local cache_outdate_fn = function (t) return t.version~=cache_ver end
local t = ltjs.charprop_stack_table
function luatexja.load_kinsoku()
@@ -401,29 +389,29 @@ do
local node_type = node.type
local node_next = node.next
-local has_attr = node.has_attribute
+local get_attr = node.get_attribute
-local id_penalty = node.id('penalty')
-local id_glyph = node.id('glyph')
-local id_glue = node.id('glue')
-local id_kern = node.id('kern')
-local id_hlist = node.id('hlist')
-local id_vlist = node.id('vlist')
-local id_rule = node.id('rule')
-local id_math = node.id('math')
-local id_whatsit = node.id('whatsit')
-local sid_user = node.subtype('user_defined')
+local id_penalty = node.id 'penalty'
+local id_glyph = node.id 'glyph'
+local id_glue = node.id 'glue'
+local id_kern = node.id 'kern'
+local id_hlist = node.id 'hlist'
+local id_vlist = node.id 'vlist'
+local id_rule = node.id 'rule'
+local id_math = node.id 'math'
+local id_whatsit = node.id 'whatsit'
+local sid_user = node.subtype 'user_defined'
local prefix, inner_depth
local utfchar = utf.char
local function debug_show_node_X(p,print_fn, limit, inner_depth)
local k = prefix
local s
- local pt, pic = node_type(p.id), (has_attr(p, attr_icflag) or 0) % icflag_table.PROCESSED_BEGIN_FLAG
+ local pt, pic = node_type(p.id), (get_attr(p, attr_icflag) or 0) % icflag_table.PROCESSED_BEGIN_FLAG
local base = prefix .. string.format('%X', pic) .. ' ' .. pt .. ' ' .. tostring(p.subtype) .. ' '
if pt == 'glyph' then
- s = base .. ' '
- .. (p.char<0xF0000 and utfchar(p.char) or '')
+ s = base .. ' '
+ .. (p.char<0xF0000 and utfchar(p.char) or '')
.. string.format(' (U+%X) ', p.char)
.. tostring(p.font) .. ' (' .. print_scaled(p.height) .. '+'
.. print_scaled(p.depth) .. ')x' .. print_scaled(p.width)
@@ -436,11 +424,11 @@ local function debug_show_node_X(p,print_fn, limit, inner_depth)
if pt=='ins' then
s = base .. '(' .. print_scaled(p.height) .. '+'
.. print_scaled(p.depth) .. ')'
- .. ', dir=' .. tostring(node.has_attribute(p, attr_dir))
+ .. ', dir=' .. tostring(node.get_attribute(p, attr_dir))
else
s = base .. '(' .. print_scaled(p.height) .. '+'
.. print_scaled(p.depth) .. ')x' .. print_scaled(p.width)
- .. ', dir=' .. tostring(node.has_attribute(p, attr_dir))
+ .. ', dir=' .. tostring(node.get_attribute(p, attr_dir))
end
if (p.shift or 0)~=0 then
s = s .. ', shifted ' .. print_scaled(p.shift)
@@ -468,7 +456,7 @@ local function debug_show_node_X(p,print_fn, limit, inner_depth)
elseif pt=='rule' then
s = base .. '(' .. print_scaled(p.height) .. '+'
.. print_scaled(p.depth) .. ')x' .. print_scaled(p.width)
- .. ', dir=' .. tostring(node.has_attribute(p, attr_dir))
+ .. ', dir=' .. tostring(node.get_attribute(p, attr_dir))
print_fn(s)
elseif pt=='disc' then
print_fn(s)
@@ -532,7 +520,7 @@ local function debug_show_node_X(p,print_fn, limit, inner_depth)
else
s = s .. ' userid:' .. t .. '(node list)'
if p.user_id==uid_table.DIR then
- s = s .. ' dir: ' .. tostring(node.has_attribute(p, attr_dir))
+ s = s .. ' dir: ' .. tostring(node.get_attribute(p, attr_dir))
end
print_fn(s)
local bid = inner_depth
diff --git a/macros/luatex/generic/luatexja/src/luatexja.sty b/macros/luatex/generic/luatexja/src/luatexja.sty
index 7353d8aa08..0772c0fe3e 100644
--- a/macros/luatex/generic/luatexja/src/luatexja.sty
+++ b/macros/luatex/generic/luatexja/src/luatexja.sty
@@ -27,7 +27,7 @@
\newif\ifltj@disablejfam
%%%% VERSION
-\def\LuaTeXjaversion{20220810.0}
+\def\LuaTeXjaversion{20221002.0}
%% Check if LaTeX is used.
\begingroup\expandafter\expandafter\expandafter\endgroup
diff --git a/macros/luatex/generic/luatexja/src/patches/lltjfont.sty b/macros/luatex/generic/luatexja/src/patches/lltjfont.sty
index 1e9abe047b..f1435f7152 100644
--- a/macros/luatex/generic/luatexja/src/patches/lltjfont.sty
+++ b/macros/luatex/generic/luatexja/src/patches/lltjfont.sty
@@ -557,6 +557,7 @@
{Use \string\KanjiEncodingPair, falling back to `\reserved@b'...}%
\expandafter\edef\reserved@a{\reserved@b}%
\fi}
+
\def\set@fontsize#1#2#3{%
\@defaultunits\@tempdimb#2pt\relax\@nnil
\edef\f@size{\strip@pt\@tempdimb}%
diff --git a/macros/luatex/generic/luatexja/src/patches/lltjp-atbegshi.sty b/macros/luatex/generic/luatexja/src/patches/lltjp-atbegshi.sty
index c766ec4685..12605ff11b 100644
--- a/macros/luatex/generic/luatexja/src/patches/lltjp-atbegshi.sty
+++ b/macros/luatex/generic/luatexja/src/patches/lltjp-atbegshi.sty
@@ -3,7 +3,7 @@
%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjp-atbegshi}[2021-04-29 Patching \string\shipout\space hooks for LuaTeX-ja]
+\ProvidesPackage{lltjp-atbegshi}[2022-08-12 Patching \string\shipout\space hooks for LuaTeX-ja]
% concept: execute all hooks inside yoko direction \vbox
@@ -37,6 +37,7 @@
% however, an infinite loop occurs if we uncomment the line below
% so we can't.
%\box_use:N \l__platex_shipout_dummy_box
+ \box_clear:N \l__platex_shipout_dummy_box
}
}
@@ -53,6 +54,7 @@
\vbox_set:Nn \l__platex_shipout_dummy_box {
\platex_direction_yoko: \__platex_original_shipout_execute_cont:
}
+ \box_clear:N \l__platex_shipout_dummy_box
}
}
\fi:
@@ -104,7 +106,7 @@
{\setbox8\vbox\bgroup\yoko\let\AtBegShi@OrgProtect\protect}
\pxabgs@patch@cmd\pxabgs@AtBegShi@Output
{\AtBeginShipoutOriginalShipout\box\AtBeginShipoutBox}%
- {\AtBeginShipoutOriginalShipout\box\AtBeginShipoutBox\egroup}
+ {\AtBeginShipoutOriginalShipout\box\AtBeginShipoutBox\egroup\setbox8\box\voidb@x}
\pxabgs@patch@cmd\pxabgs@AtBegShi@Output
{%
\begingroup
diff --git a/macros/luatex/generic/luatexja/src/patches/lltjp-everyshi.sty b/macros/luatex/generic/luatexja/src/patches/lltjp-everyshi.sty
index e9510e2487..c1c07441d4 100644
--- a/macros/luatex/generic/luatexja/src/patches/lltjp-everyshi.sty
+++ b/macros/luatex/generic/luatexja/src/patches/lltjp-everyshi.sty
@@ -12,7 +12,7 @@
\@EveryShipout@Hook
\@EveryShipout@AtNextHook
\global\setbox\luatexoutputbox=\box\luatexoutputbox
- }%
+ }\setbox8\box\voidb@x%
\gdef\@EveryShipout@AtNextHook{}%
\@EveryShipout@Org@Shipout\box\luatexoutputbox
}
diff --git a/macros/luatex/generic/luatexja/src/patches/lltjp-tascmac.sty b/macros/luatex/generic/luatexja/src/patches/lltjp-tascmac.sty
index 4d2d350553..af27cae8a0 100644
--- a/macros/luatex/generic/luatexja/src/patches/lltjp-tascmac.sty
+++ b/macros/luatex/generic/luatexja/src/patches/lltjp-tascmac.sty
@@ -1,13 +1,9 @@
%
% lltjp-tascmac.sty
% based on tascmac.sty [2016/04/15 v2.0b (community edition)]
-% \tbaselineshift=\z@ ==> \ltj@tablshift=\z@
-% \ybaselineshift=\z@ ==> \ltj@yablshift=\z@
-% \dimen...=\tbaselineshift ==> \dimen...=\ltj@tablshift sp
-% \dimen...=\ybaselineshift ==> \dimen...=\ltj@yablshift sp
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjp-tascmac}[2020/12/24 Patch to (t)ascmac for LuaTeX-ja]
+\ProvidesPackage{lltjp-tascmac}[2022-08-24 Patch to (t)ascmac for LuaTeX-ja]
\RequirePackage{tascmac}
@@ -30,9 +26,13 @@
}
%% boxnote environment
+\def\ltj@backup@attr#1#2{\ifnum#1=-"7FFFFFFF #2\z@\else #2=#1sp\fi#1=0 }
+\def\ltj@restore@attr#1#2{#1#2}
+%\def\ltj@backup@attr#1#2{\ifnum#1=-"7FFFFFFF #2\z@\else #2=#1sp\fi\unsetattribute#1}
+%\def\ltj@restore@attr#1#2{\ifdim#2=\z@ \unsetattribute#1\else #1#2\fi}
\def\boxnote{\par\vspace{.3\baselineskip}%
- \@saveybaselineshift\ltj@yablshift sp\ltj@yablshift\z@
- \@savetbaselineshift\ltj@tablshift sp\ltj@tablshift\z@
+ \ltj@backup@attr\ltj@yablshift\@saveybaselineshift
+ \ltj@backup@attr\ltj@tablshift\@savetbaselineshift
\setbox\@nbox=\hbox{\@ascgrp\vrule width1.08pt depth35pt b\hss a\hss b}
\@whiledim \wd\@nbox<\hsize \do{
\setbox\@nbox=\hbox{\@ascgrp\unhbox\@nbox \hss a\hss b}}
@@ -40,12 +40,13 @@
\vrule width1.08pt depth35pt}%
\@bw=\wd\@nbox\advance\@bw -40pt
\begin{lrbox}{\@nbody}\begin{minipage}{\@bw}% (KN:1998/02/27)
- \ltj@yablshift\@saveybaselineshift \ltj@tablshift\@savetbaselineshift}%
+ \ltj@restore@attr\ltj@yablshift\@saveybaselineshift
+ \ltj@restore@attr\ltj@tablshift\@savetbaselineshift}%
%% screen environment
\def\screen{%
- \@saveybaselineshift\ltj@yablshift sp\ltj@yablshift\z@
- \@savetbaselineshift\ltj@tablshift sp\ltj@tablshift\z@
+ \ltj@backup@attr\ltj@yablshift\@saveybaselineshift
+ \ltj@backup@attr\ltj@tablshift\@savetbaselineshift
\@ifnextchar[{\@screen}{\@screen[0]}}
\def\@screen[#1]{\ifcase#1\def\@r{20}\def\@s{9.8pt}\def\@sx{10pt}\or
\def\@r{18}\def\@s{8.8pt}\def\@sx{9pt}\or
@@ -58,26 +59,29 @@
\def\@r{4}\def\@s{1.8pt}\def\@sx{2pt}\fi
\par\vspace{.3\baselineskip}\@scw\linewidth \advance\@scw -\@r pt
\setbox\scb@x=\hbox to\@scw\bgroup\begin{minipage}{\@scw}% (KN:1998/02/27)
- \ltj@yablshift\@saveybaselineshift \ltj@tablshift\@savetbaselineshift}%
+ \ltj@restore@attr\ltj@yablshift\@saveybaselineshift
+ \ltj@restore@attr\ltj@tablshift\@savetbaselineshift}%
%% itembox environment
\def\@itembox[#1]#2{%
- \@saveybaselineshift\ltj@yablshift sp\ltj@yablshift\z@
- \@savetbaselineshift\ltj@tablshift sp\ltj@tablshift\z@
+ \ltj@backup@attr\ltj@yablshift\@saveybaselineshift
+ \ltj@backup@attr\ltj@tablshift\@savetbaselineshift
\par\vspace{.3\baselineskip}%
\setbox\@iboxstr=\hbox{%
- \ltj@yablshift\@saveybaselineshift \ltj@tablshift\@savetbaselineshift #2}%
+ \ltj@restore@attr\ltj@yablshift\@saveybaselineshift
+ \ltj@restore@attr\ltj@tablshift\@savetbaselineshift #2}%
\@itemh\ht\@iboxstr\advance\@itemh\dp\@iboxstr
\vspace{.5\@itemh}\bgroup\@scw\linewidth
\advance\@scw-20pt\@iboxpos={#1}%
\setbox\scb@x=\hbox to\@scw\bgroup\begin{minipage}{\@scw}%
- \ltj@yablshift\@saveybaselineshift
- \ltj@tablshift\@savetbaselineshift
+ \ltj@restore@attr\ltj@yablshift\@saveybaselineshift
+ \ltj@restore@attr\ltj@tablshift\@savetbaselineshift
\vspace*{.5\@itemh}}%
%% \keytop
\def\@keytop[#1]#2{%
{\setbox0=\hbox{\shortstack{#2}}\ltj@yablshift\z@\ltj@tablshift\z@%
+ %\unsetattribute\ltj@yablshift\unsetattribute\ltj@tablshift%
\dimen0=\wd0\advance\dimen0 5pt\dimen1=\dp0\advance\dimen1 2.5pt%
\setbox\scscb@x=\hbox to\dimen0{%
\@scw\wd0\hfil\vtop{\offinterlineskip
@@ -92,6 +96,7 @@
%% \mask
\def\mask#1#2{{\setbox\@bwsp=\hbox{#1}%
+% \setbox0=\hbox{\unsetattribute\ltj@yablshift\unsetattribute\ltj@tablshift \@ascgrp#2}%
\setbox0=\hbox{\ltj@yablshift\z@\ltj@tablshift\z@ \@ascgrp#2}%
\dimen0=\wd\@bwsp\dimen1=\ht\@bwsp\advance\dimen1\dp\@bwsp\dimen2=-\dimen1
\setdim@{\dimen0}{\wd0}\setdim@{\dimen1}{\ht0}%
@@ -104,6 +109,7 @@
%% \maskbox
\def\Maskbox#1#2#3#4#5#6{{%
+% \setbox0=\hbox{\unsetattribute\ltj@yablshift\unsetattribute\ltj@tablshift \@ascgrp#3}%
\setbox0=\hbox{\ltj@yablshift\z@\ltj@tablshift\z@ \@ascgrp#3}%
\dimen0=#1\@setdim{\dimen0}{\wd0}\dimen1=#2\@setdim{\dimen1}{\ht0}%
\ifx#4c\skip0=0pt plus1fil\skip1=\skip0\fi
@@ -119,12 +125,13 @@
%% shadebox environment
\def\shadebox{\par\vspace{.3\baselineskip}%
- \@saveybaselineshift\ltj@yablshift sp\ltj@yablshift\z@
- \@savetbaselineshift\ltj@tablshift sp\ltj@tablshift\z@
+ \ltj@backup@attr\ltj@yablshift\@saveybaselineshift
+ \ltj@backup@attr\ltj@tablshift\@savetbaselineshift
\dimen0\linewidth \advance\dimen0-20pt
\advance\dimen0-2\fboxrule \advance\dimen0-\shaderule
\setbox\@tempboxa=\hbox\bgroup\minipage{\dimen0}%
- \ltj@yablshift\@saveybaselineshift \ltj@tablshift\@savetbaselineshift}
+ \ltj@restore@attr\ltj@yablshift\@saveybaselineshift
+ \ltj@restore@attr\ltj@tablshift\@savetbaselineshift}%
%% \yen
%
diff --git a/macros/luatex/generic/luatexja/tool/test_exist_nodelib.tex b/macros/luatex/generic/luatexja/tool/test_exist_nodelib.tex
new file mode 100644
index 0000000000..2d9ee7c3ae
--- /dev/null
+++ b/macros/luatex/generic/luatexja/tool/test_exist_nodelib.tex
@@ -0,0 +1,104 @@
+\catcode`\{=1 \catcode`\}=2
+\directlua{
+kpse.set_program_name('luatex')
+print() print("LUATEX: ", tex.luatexversion, _VERSION)
+
+function test(c)
+ if not node[c] then print ('not imple: node.' .. c) end
+end
+test "direct"
+test "free"
+test "get_attribute"
+test "getglue"
+test "id"
+test "insert_after"
+test "is_node"
+test "mlist_to_hlist"
+test "new"
+test "next"
+test "set_attribute"
+test "slide"
+test "subtype"
+test "tail"
+test "traverse"
+test "type"
+test "write"
+
+function test(c)
+ if not node.direct[c] then print ('not imple: node.direct.' .. c) end
+end
+
+test "copy"
+test "copy_list"
+test "dimensions"
+test "end_of_math"
+test "flush_list"
+test "free"
+test "get_attribute"
+test "getattributelist"
+test "getbox"
+test "getchar"
+test "getcomponents"
+test "getdata"
+test "getdepth"
+test "getdir"
+test "getfield"
+test "getfont"
+test "getglue"
+test "getheight"
+test "getid"
+test "getkern"
+test "getlang"
+test "getlist"
+test "getnext"
+test "getnucleus"
+test "getoffsets"
+test "getpenalty"
+test "getprev"
+test "getshift"
+test "getsub"
+test "getsubtype"
+test "getsup"
+test "getwhd"
+test "getwidth"
+test "has_attribute"
+test "hpack"
+test "insert_after"
+test "insert_before"
+test "last_node"
+test "new"
+test "rangedimensions"
+test "remove"
+test "set_attribute"
+test "setattributelist"
+test "setchar"
+test "setdata"
+test "setdepth"
+test "setdir"
+test "setfield"
+test "setfont"
+test "setglue"
+test "setheight"
+test "setkern"
+test "setlang"
+test "setlist"
+test "setnext"
+test "setnucleus"
+test "setoffsets"
+test "setpenalty"
+test "setshift"
+test "setsub"
+test "setsubtype"
+test "setsup"
+test "setwhd"
+test "setwidth"
+test "tail"
+test "todirect"
+test "tonode"
+test "traverse"
+test "traverse_id"
+test "unset_attribute"
+test "vpack"
+test "write"
+}
+\end