summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-10-01 03:01:24 +0000
committerNorbert Preining <norbert@preining.info>2019-10-01 03:01:24 +0000
commit31d84cec65917cfc6ef446f1bf6031cff7c6dc7b (patch)
tree5288bd8601943a9038885a87d93b71b8fbc0b0dc /macros
parentbbbe8128e7ae9d816a221377dbf5ff3969bb203b (diff)
CTAN sync 201910010301
Diffstat (limited to 'macros')
-rw-r--r--macros/latex/contrib/beamer/CHANGELOG.md16
-rw-r--r--macros/latex/contrib/beamer/base/beamer.cls2
-rw-r--r--macros/latex/contrib/beamer/base/beamerarticle.sty2
-rw-r--r--macros/latex/contrib/beamer/base/beamerbasecolor.sty1
-rw-r--r--macros/latex/contrib/beamer/base/beamerbaselocalstructure.sty4
-rw-r--r--macros/latex/contrib/beamer/base/patch/beamerpatchparalist.sty74
-rw-r--r--macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesplit.sty2
-rw-r--r--macros/latex/contrib/beamer/doc/beamerexample-conference-talk.pdfbin148813 -> 148816 bytes
-rw-r--r--macros/latex/contrib/beamer/doc/beamerexample-lecture-beamer-version.pdfbin353423 -> 353427 bytes
-rw-r--r--macros/latex/contrib/beamer/doc/beamerexample-lecture-print-version.pdfbin324225 -> 324218 bytes
-rw-r--r--macros/latex/contrib/beamer/doc/beamerug-compatibility.tex14
-rw-r--r--macros/latex/contrib/beamer/doc/beamerug-elements.tex2
-rw-r--r--macros/latex/contrib/beamer/doc/beamerug-fonts.tex2
-rw-r--r--macros/latex/contrib/beamer/doc/beamerug-localstructure.tex2
-rw-r--r--macros/latex/contrib/beamer/doc/beamerug-nonpresentation.tex2
-rw-r--r--macros/latex/contrib/beamer/doc/beameruserguide.pdfbin1601872 -> 1603631 bytes
-rw-r--r--macros/latex/contrib/beamer/doc/beameruserguide.tex2
-rw-r--r--macros/latex/contrib/chemformula/README2
-rw-r--r--macros/latex/contrib/chemformula/chemformula.sty16
-rw-r--r--macros/latex/contrib/chemformula/chemformula_en.pdfbin950273 -> 950277 bytes
-rw-r--r--macros/latex/contrib/chemmacros/README2
-rw-r--r--macros/latex/contrib/chemmacros/chemmacros.module.base.code.tex4
-rw-r--r--macros/latex/contrib/chemmacros/chemmacros.module.reactions.code.tex3
-rw-r--r--macros/latex/contrib/chemmacros/chemmacros.module.spectroscopy.code.tex1
-rw-r--r--macros/latex/contrib/chemmacros/chemmacros.sty4
-rw-r--r--macros/latex/contrib/chemmacros/chemmacros_en.pdfbin1037667 -> 973195 bytes
-rw-r--r--macros/latex/contrib/enotez/README6
-rw-r--r--macros/latex/contrib/enotez/enotez.sty379
-rw-r--r--macros/latex/contrib/enotez/enotez_en.pdfbin458894 -> 452442 bytes
-rw-r--r--macros/latex/contrib/enotez/enotez_en.tex66
-rw-r--r--macros/latex/contrib/enotez/enotez_split_example.tex39
-rw-r--r--macros/latex/contrib/eq-save/README.md4
-rw-r--r--macros/latex/contrib/eq-save/docs/eqsave-man.pdfbin249427 -> 250534 bytes
-rw-r--r--macros/latex/contrib/eq-save/docs/eqsave-man.tex2
-rw-r--r--macros/latex/contrib/eq-save/eq-save.dtx66
-rw-r--r--macros/latex/contrib/eq-save/examples/eqsave-noname.pdfbin108324 -> 189713 bytes
-rw-r--r--macros/latex/contrib/esindex/README.md29
-rw-r--r--macros/latex/contrib/esindex/esindex.pdfbin210647 -> 61713 bytes
-rw-r--r--macros/latex/contrib/esindex/esindex.sty37
-rw-r--r--macros/latex/contrib/esindex/esindex.tex132
-rw-r--r--macros/latex/contrib/exsheets/README2
-rw-r--r--macros/latex/contrib/exsheets/exsheets.sty10
-rw-r--r--macros/latex/contrib/exsheets/exsheets_en.pdfbin658582 -> 658598 bytes
-rw-r--r--macros/latex/contrib/fnpct/README4
-rw-r--r--macros/latex/contrib/fnpct/fnpct.sty32
-rw-r--r--macros/latex/contrib/fnpct/fnpct_en.pdfbin580285 -> 572627 bytes
-rw-r--r--macros/latex/contrib/fnpct/fnpct_en.tex12
-rw-r--r--macros/latex/contrib/ghsystem/README4
-rw-r--r--macros/latex/contrib/ghsystem/ghsystem.sty70
-rw-r--r--macros/latex/contrib/ghsystem/ghsystem_en.pdfbin786209 -> 784660 bytes
-rw-r--r--macros/latex/contrib/ghsystem/ghsystem_en.tex2
-rw-r--r--macros/latex/contrib/ghsystem/language/ghsystem_english.def2
-rw-r--r--macros/latex/contrib/ghsystem/language/ghsystem_french.def7
-rw-r--r--macros/latex/contrib/ghsystem/language/ghsystem_german.def2
-rw-r--r--macros/latex/contrib/ghsystem/language/ghsystem_italian.def2
-rw-r--r--macros/latex/contrib/ghsystem/language/ghsystem_langtemplate.def3
-rw-r--r--macros/latex/contrib/ghsystem/language/ghsystem_spanish.def2
-rw-r--r--macros/latex/contrib/l3build/CHANGELOG.md14
-rw-r--r--macros/latex/contrib/l3build/README.md2
-rw-r--r--macros/latex/contrib/l3build/l3build-install.lua21
-rw-r--r--macros/latex/contrib/l3build/l3build-variables.lua3
-rw-r--r--macros/latex/contrib/l3build/l3build.12
-rw-r--r--macros/latex/contrib/l3build/l3build.dtx12
-rwxr-xr-x[-rw-r--r--]macros/latex/contrib/l3build/l3build.lua2
-rw-r--r--macros/latex/contrib/l3build/l3build.pdfbin704702 -> 705328 bytes
-rw-r--r--macros/latex/contrib/l3kernel/CHANGELOG.md5
-rw-r--r--macros/latex/contrib/l3kernel/README.md2
-rw-r--r--macros/latex/contrib/l3kernel/expl3.dtx18
-rw-r--r--macros/latex/contrib/l3kernel/expl3.pdfbin585166 -> 584852 bytes
-rw-r--r--macros/latex/contrib/l3kernel/interface3.pdfbin1534320 -> 1534302 bytes
-rw-r--r--macros/latex/contrib/l3kernel/interface3.tex2
-rw-r--r--macros/latex/contrib/l3kernel/l3alloc.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3basics.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3bootstrap.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3box.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3candidates.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3clist.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3coffins.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3color-base.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3debug.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3deprecation.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3doc.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3docstrip.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3docstrip.pdfbin263491 -> 263278 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3expan.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3file.dtx6
-rw-r--r--macros/latex/contrib/l3kernel/l3final.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3flag.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-assign.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-aux.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-basics.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-convert.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-expo.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-extended.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-logic.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-parse.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-random.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-round.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-traps.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-trig.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fparray.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3int.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3intarray.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3kernel-functions.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3keys.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3legacy.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3luatex.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3msg.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3names.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3prefixes.pdfbin59084 -> 59064 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3prg.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3prop.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3quark.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3regex.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3seq.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3skip.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3sort.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3str-convert.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3str.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3styleguide.pdfbin280279 -> 279979 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3styleguide.tex2
-rw-r--r--macros/latex/contrib/l3kernel/l3syntax-changes.pdfbin228018 -> 227702 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3syntax-changes.tex2
-rw-r--r--macros/latex/contrib/l3kernel/l3sys.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3term-glossary.pdfbin186806 -> 186491 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3term-glossary.tex2
-rw-r--r--macros/latex/contrib/l3kernel/l3tl-analysis.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3tl.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3token.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3unicode.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/source3.pdfbin5681390 -> 5681595 bytes
-rw-r--r--macros/latex/contrib/l3kernel/source3.tex2
-rw-r--r--macros/latex/contrib/media9/ChangeLog5
-rw-r--r--macros/latex/contrib/media9/doc/media9.pdfbin3748849 -> 3748986 bytes
-rw-r--r--macros/latex/contrib/media9/doc/media9.tex8
-rw-r--r--macros/latex/contrib/media9/media9.sty4
-rw-r--r--macros/latex/contrib/media9/pdfbase.sty18
-rw-r--r--macros/latex/contrib/notes2bib/README.md (renamed from macros/latex/contrib/notes2bib/README)8
-rw-r--r--macros/latex/contrib/notes2bib/notes2bib.dtx2240
-rw-r--r--macros/latex/contrib/notes2bib/notes2bib.pdfbin197896 -> 238756 bytes
-rw-r--r--macros/latex/contrib/xsim/README9
-rw-r--r--macros/latex/contrib/xsim/code/xsim.auxfile.code.tex2
-rw-r--r--macros/latex/contrib/xsim/code/xsim.base.code.tex4
-rw-r--r--macros/latex/contrib/xsim/code/xsim.blanks.code.tex4
-rw-r--r--macros/latex/contrib/xsim/code/xsim.collections.code.tex4
-rw-r--r--macros/latex/contrib/xsim/code/xsim.definitions.code.tex86
-rw-r--r--macros/latex/contrib/xsim/code/xsim.environments.code.tex7
-rw-r--r--macros/latex/contrib/xsim/code/xsim.exercises.code.tex12
-rw-r--r--macros/latex/contrib/xsim/code/xsim.goals.code.tex8
-rw-r--r--macros/latex/contrib/xsim/code/xsim.grades.code.tex2
-rw-r--r--macros/latex/contrib/xsim/code/xsim.interface.code.tex8
-rw-r--r--macros/latex/contrib/xsim/code/xsim.modules.code.tex10
-rw-r--r--macros/latex/contrib/xsim/code/xsim.properties.code.tex4
-rw-r--r--macros/latex/contrib/xsim/code/xsim.random.code.tex4
-rw-r--r--macros/latex/contrib/xsim/code/xsim.solutions.code.tex2
-rw-r--r--macros/latex/contrib/xsim/code/xsim.sty6
-rw-r--r--macros/latex/contrib/xsim/code/xsim.style.layouts.code.tex2
-rw-r--r--macros/latex/contrib/xsim/code/xsim.tags.code.tex4
-rw-r--r--macros/latex/contrib/xsim/code/xsim.templates.code.tex2
-rw-r--r--macros/latex/contrib/xsim/code/xsim.translations.code.tex2
-rw-r--r--macros/latex/contrib/xsim/code/xsim.verbwrite.code.tex17
-rw-r--r--macros/latex/contrib/xsim/code/xsimverb.sty2
-rw-r--r--macros/latex/contrib/xsim/doc/examples/xsim.code-and-output.pdfbin30541 -> 30938 bytes
-rw-r--r--macros/latex/contrib/xsim/doc/examples/xsim.code-and-output.tex6
-rw-r--r--macros/latex/contrib/xsim/doc/xsim-manual.cls108
-rw-r--r--macros/latex/contrib/xsim/doc/xsim.history5
-rw-r--r--macros/latex/contrib/xsim/doc/xsim.ideas3
-rw-r--r--macros/latex/contrib/xsim/doc/xsim_manual.pdfbin1163299 -> 1225761 bytes
-rw-r--r--macros/latex/contrib/xsim/doc/xsim_manual.tex48
170 files changed, 2156 insertions, 1768 deletions
diff --git a/macros/latex/contrib/beamer/CHANGELOG.md b/macros/latex/contrib/beamer/CHANGELOG.md
index d18dfe19aa..7d5020ab7b 100644
--- a/macros/latex/contrib/beamer/CHANGELOG.md
+++ b/macros/latex/contrib/beamer/CHANGELOG.md
@@ -8,6 +8,17 @@ a major and minor version only.
## [Unreleased]
+## [v3.57]
+
+### Changed
+
+- More patch for `paralist` package (see #539)
+
+### Fixed
+
+- Replace `\mode` with `\only` (see #543)
+- Reset the width of color box in case of change in `\hsize`
+
## [v3.56]
### Changed
@@ -70,9 +81,10 @@ a major and minor version only.
- Support for `noxcolor` with `beamerarticle` (see #483)
- Treatment of mixed overlay/alert specifications
-[Unreleased]: https://github.com/josephwright/beamer/compare/v3.56...HEAD
+[Unreleased]: https://github.com/josephwright/beamer/compare/v3.57...HEAD
+[v3.57]: https://github.com/josephwright/beamer/compare/v3.56...v3.57
+[v3.56]: https://github.com/josephwright/beamer/compare/v3.55...v3.56
[v3.55]: https://github.com/josephwright/beamer/compare/v3.54...v3.55
-[v3.55]: https://github.com/josephwright/beamer/compare/v3.55...v3.56
[v3.54]: https://github.com/josephwright/beamer/compare/v3.53...v3.54
[v3.53]: https://github.com/josephwright/beamer/compare/v3.52...v3.53
[v3.52]: https://github.com/josephwright/beamer/compare/v3.51...v3.52
diff --git a/macros/latex/contrib/beamer/base/beamer.cls b/macros/latex/contrib/beamer/base/beamer.cls
index fd632ab15c..f3564e183c 100644
--- a/macros/latex/contrib/beamer/base/beamer.cls
+++ b/macros/latex/contrib/beamer/base/beamer.cls
@@ -12,7 +12,7 @@
% See the file doc/licenses/LICENSE for more details.
\ProvidesClass{beamer}
- [2019/07/23 v3.56 A class for typesetting presentations]
+ [2019/09/29 v3.57 A class for typesetting presentations]
% Setup modes and check for article option
% Also loads packages required by both beamer and beamerarticle
diff --git a/macros/latex/contrib/beamer/base/beamerarticle.sty b/macros/latex/contrib/beamer/base/beamerarticle.sty
index 8889a66dac..2972dd7fb0 100644
--- a/macros/latex/contrib/beamer/base/beamerarticle.sty
+++ b/macros/latex/contrib/beamer/base/beamerarticle.sty
@@ -12,7 +12,7 @@
% See the file doc/licenses/LICENSE for more details.
\ProvidesPackage{beamerarticle}
- [2019/07/23 v3.56 beamer input in article mode]
+ [2019/09/29 v3.57 beamer input in article mode]
% Setup modes and check for article option
% Also loads packages required by both beamer and beamerarticle
diff --git a/macros/latex/contrib/beamer/base/beamerbasecolor.sty b/macros/latex/contrib/beamer/base/beamerbasecolor.sty
index 099df8c845..6818db39bd 100644
--- a/macros/latex/contrib/beamer/base/beamerbasecolor.sty
+++ b/macros/latex/contrib/beamer/base/beamerbasecolor.sty
@@ -184,6 +184,7 @@
\ifdim\beamer@colbox@colseps>\z@\vskip\beamer@colbox@colseps\fi%
\fi%
\egroup\color@endgroup\egroup%
+ \wd\beamer@tempbox=\beamer@colbox@wd%
\ifx\beamer@colbox@ht\@empty\else\ht\beamer@tempbox=\beamer@colbox@ht\fi%
\ifx\beamer@colbox@dp\@empty\else\dp\beamer@tempbox=\beamer@colbox@dp\fi%
\ifbeamer@colbox@rounded%
diff --git a/macros/latex/contrib/beamer/base/beamerbaselocalstructure.sty b/macros/latex/contrib/beamer/base/beamerbaselocalstructure.sty
index 182a5f8873..adf021aae7 100644
--- a/macros/latex/contrib/beamer/base/beamerbaselocalstructure.sty
+++ b/macros/latex/contrib/beamer/base/beamerbaselocalstructure.sty
@@ -107,7 +107,7 @@
\begin{actionenv}#2%
\def\insertblocktitle{#1}%
\par%
- \mode<presentation>{%\usebeamerfont{block}%
+ \only<presentation>{%\usebeamerfont{block}%
\setbeamercolor{local structure}{parent=alerted text}}%
\usebeamertemplate{block alerted begin}}
{\par%
@@ -118,7 +118,7 @@
\begin{actionenv}#2%
\def\insertblocktitle{#1}%
\par%
- \mode<presentation>{%\usebeamerfont{block}%
+ \only<presentation>{%\usebeamerfont{block}%
\setbeamercolor{local structure}{parent=example text}}%
\usebeamertemplate{block example begin}}
{\par%
diff --git a/macros/latex/contrib/beamer/base/patch/beamerpatchparalist.sty b/macros/latex/contrib/beamer/base/patch/beamerpatchparalist.sty
index 7853b36d70..b10e4325ab 100644
--- a/macros/latex/contrib/beamer/base/patch/beamerpatchparalist.sty
+++ b/macros/latex/contrib/beamer/base/patch/beamerpatchparalist.sty
@@ -9,7 +9,7 @@
\mode<presentation>
-\if@plnewitem
+\if@plnewenum
\def\enumerate{%
\ifnum \@enumdepth >\tw@
\@toodeep
@@ -42,6 +42,45 @@
\raggedright%
\beamer@firstlineitemizeunskip%
}
+\fi
+\def\compactenum{%
+ \ifnum \@enumdepth >\tw@
+ \@toodeep
+ \else
+ \advance\@enumdepth \@ne
+ \edef\@enumctr{enum\romannumeral\the\@enumdepth}%
+ \advance\@itemdepth \@ne%
+ \fi
+ \def\@enum@widestlabel{7}%
+ \beamer@computepref\@enumdepth%
+ \expandafter\edef\csname label\@enumctr\endcsname{\noexpand\usebeamertemplate{enumerate \beameritemnestingprefix item}}%
+ \@ifnextchar[{\beamer@@cenum@}{\beamer@compactenum@}}
+\def\beamer@@cenum@[{\@ifnextchar<{\beamer@cenumdefault[}{\beamer@@@cenum@[}}
+\def\beamer@cenumdefault[#1]{\def\beamer@defaultospec{#1}%
+ \@ifnextchar[{\beamer@@@cenum@}{\beamer@compactenum@}}
+\def\beamer@@@cenum@[#1]{\@enumlabel@{\beamer@compactenum@}[[#1]} % Here a token is gobbled in paralist package
+\def\beamer@compactenum@{%
+ \beamer@computepref\@itemdepth%
+ \usebeamerfont{itemize/enumerate \beameritemnestingprefix body}%
+ \usebeamercolor[fg]{itemize/enumerate \beameritemnestingprefix body}%
+ \@adjust@enum@labelwidth
+ \expandafter\list\csname label\@enumctr\endcsname{%
+ \usecounter{\@enumctr}%
+ \parsep\plparsep
+ \itemsep\plitemsep
+ \topsep\pltopsep
+ \partopsep\plpartopsep
+ \labelwidth
+ \csname leftmargin\romannumeral\@listdepth\endcsname
+ \advance\labelwidth-\labelsep
+ \let\makelabel\enumlabel}%
+ \beamer@cramped%
+ \raggedright%
+ \beamer@firstlineitemizeunskip%
+}
+\def\endcompactenum{\ifhmode\par\fi\endlist}
+
+\if@plnewitem
\def\itemize{%
\ifnum \@itemdepth >\tw@
\@toodeep
@@ -71,6 +110,39 @@
\beamer@firstlineitemizeunskip%
}
\fi
+\def\compactitem{%
+ \ifnum \@itemdepth >\tw@
+ \@toodeep
+ \else
+ \advance\@itemdepth\@ne
+ \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
+ \fi
+ \beamer@computepref\@itemdepth%
+ \expandafter\edef\csname\@itemitem\endcsname{\noexpand\usebeamertemplate{itemize \beameritemnestingprefix item}}%
+ \@ifnextchar[{\beamer@@citem@}{\beamer@compactitem@}}%
+\def\beamer@@citem@[{\@ifnextchar<{\beamer@citemdefault[}{\beamer@@@citem@[}}
+\def\beamer@citemdefault[#1]{\def\beamer@defaultospec{#1}%
+ \@ifnextchar[{\beamer@@@citem@}{\beamer@compactitem@}}
+\def\beamer@@@citem@[#1]{\@itemlabel@{\beamer@compactitem@}[#1]}
+\def\beamer@compactitem@{%
+ \usebeamerfont{itemize/enumerate \beameritemnestingprefix body}%
+ \usebeamercolor[fg]{itemize/enumerate \beameritemnestingprefix body}%
+ \@adjust@item@labelwidth
+ \expandafter\list\csname\@itemitem\endcsname{%
+ \parsep\plparsep
+ \itemsep\plitemsep
+ \topsep\pltopsep
+ \partopsep\plpartopsep
+ \labelwidth
+ \csname leftmargin\romannumeral\@listdepth\endcsname
+ \advance\labelwidth-\labelsep
+ \let\makelabel\itemlabel}%
+ \beamer@cramped%
+ \raggedright%
+ \beamer@firstlineitemizeunskip%
+}
+\def\endcompactitem{\ifhmode\par\fi\endlist}
+
\if@plflushright
\def\enumlabel#1{{\usebeamerfont*{enumerate \beameritemnestingprefix item}%
\usebeamercolor[fg]{enumerate \beameritemnestingprefix item}\hss#1}}
diff --git a/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesplit.sty b/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesplit.sty
index c8aff5287b..ad003c9aef 100644
--- a/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesplit.sty
+++ b/macros/latex/contrib/beamer/base/themes/outer/beamerouterthemesplit.sty
@@ -68,7 +68,7 @@
\usebeamerfont{author in head/foot}\insertshortauthor
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}%
- \usebeamerfont{title in head/foot}\insertshorttitle\hfill\usebeamercolor[fg]{page number in head/foot}\usebeamerfont{page number in head/foot}\usebeamertemplate{page number in head/foot}
+ \usebeamerfont{title in head/foot}\insertshorttitle\nobreak\hfill\usebeamercolor[fg]{page number in head/foot}\usebeamerfont{page number in head/foot}\usebeamertemplate{page number in head/foot}
\end{beamercolorbox}}%
\vskip0pt%
}
diff --git a/macros/latex/contrib/beamer/doc/beamerexample-conference-talk.pdf b/macros/latex/contrib/beamer/doc/beamerexample-conference-talk.pdf
index ae559eef43..ab417b4578 100644
--- a/macros/latex/contrib/beamer/doc/beamerexample-conference-talk.pdf
+++ b/macros/latex/contrib/beamer/doc/beamerexample-conference-talk.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer/doc/beamerexample-lecture-beamer-version.pdf b/macros/latex/contrib/beamer/doc/beamerexample-lecture-beamer-version.pdf
index c0a13a7eb7..4bf5fa4cbd 100644
--- a/macros/latex/contrib/beamer/doc/beamerexample-lecture-beamer-version.pdf
+++ b/macros/latex/contrib/beamer/doc/beamerexample-lecture-beamer-version.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer/doc/beamerexample-lecture-print-version.pdf b/macros/latex/contrib/beamer/doc/beamerexample-lecture-print-version.pdf
index 7ae9582058..730113c37a 100644
--- a/macros/latex/contrib/beamer/doc/beamerexample-lecture-print-version.pdf
+++ b/macros/latex/contrib/beamer/doc/beamerexample-lecture-print-version.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer/doc/beamerug-compatibility.tex b/macros/latex/contrib/beamer/doc/beamerug-compatibility.tex
index 37c01c0bb4..535562600f 100644
--- a/macros/latex/contrib/beamer/doc/beamerug-compatibility.tex
+++ b/macros/latex/contrib/beamer/doc/beamerug-compatibility.tex
@@ -79,10 +79,10 @@ When using certain packages or classes together with the |beamer| class, extra o
If you wish to emulate the |foils| class using \beamer, please see Section~\ref{section-foiltex}.
\end{class}
-\begin{package}{{fontenc}|[|\declare{|T1,EU1,EU2|}|]|}
- Use the |T1| option \emph{only} with fonts that have outline fonts available in the T1 encoding like |times| or the |lmodern| fonts. In a standard installation standard Computer Modern fonts (the fonts Donald Knuth originally designed and which are used by default) are \emph{not} available in the T1 encoding. Using this option with them will result in very poor rendering of your presentation when viewed with \pdf\ viewer applications like Acrobat, |xpdf|, |evince| or |okular|. To use the Computer Modern fonts with the T1 encoding, use the package |lmodern|. See also Section~\ref{section-font-encoding}. This applies both to |latex|+|dvips| and |pdflatex|
+\begin{package}{{fontenc}|[|\declare{|T1,TU|}|]|}
+ Use the |T1| option \emph{only} with fonts that have outline fonts available in the T1 encoding like |times| or the |lmodern| fonts. In a standard installation standard Computer Modern fonts (the fonts Donald Knuth originally designed and which are used by default) are \emph{not} available in the T1 encoding. Using this option with them will result in very poor rendering of your presentation when viewed with \pdf\ viewer applications like Acrobat, |xpdf|, |evince| or |okular|. To use the Computer Modern fonts with the T1 encoding, make sure you have installed |cm-super| package in your \TeX\ distribution, or use Latin Modern fonts provided by |lmorden| instead. See also Section~\ref{section-font-encoding}. This applies both to |latex|+|dvips| and |pdflatex|.
- Use the |EU1| option with |xelatex|, and |EU2| option with |lualatex|. Note that |xelatex| and |luatex| support OpenType fonts, and font encodings work very different compared to |pdflatex|. Again, see Section~\ref{section-font-encoding} for more information.
+ The newest version of \LaTeXe\ kernel has introduced TU encoding for |xelatex| and |lualatex|. Note that |xelatex| and |lualatex| support OpenType fonts, and font encodings work very different compared to |pdflatex|. Again, see Section~\ref{section-font-encoding} for more information.
\end{package}
\begin{package}{{fourier}}
@@ -168,7 +168,13 @@ When using certain packages or classes together with the |beamer| class, extra o
\begin{package}{{paralist}}
\beamernote
- \beamer\ automatically patches list-related commands using |beamerpatchparalist| package at the beginning of document.
+ \beamer\ automatically patches list-related commands using |beamerpatchparalist| package at the beginning of document. Besides, \beamer\ also supports using |compactitem| and |compactenum| environments with overlays, just like the usage of |enumerate| environments:
+\begin{verbatim}
+\begin{compactitem}[<+->][$\bullet$]
+ \item Alpha
+ \item Bravo
+\end{compactitem}
+\end{verbatim}
\end{package}
\begin{package}{{pdfpages}}
diff --git a/macros/latex/contrib/beamer/doc/beamerug-elements.tex b/macros/latex/contrib/beamer/doc/beamerug-elements.tex
index 60f6fcb0ad..b3ac8910c9 100644
--- a/macros/latex/contrib/beamer/doc/beamerug-elements.tex
+++ b/macros/latex/contrib/beamer/doc/beamerug-elements.tex
@@ -96,7 +96,7 @@ In the following examples the color theme |seahorse| is used. Since the default
\begin{outerthemeexample}{infolines}
This theme installs a headline showing the current section and the current subsection. It installs a footline showing the author's name, the institution, the presentation's title, the current date, and a frame count. This theme uses only little space.
- The colors used in the headline and footline are drawn from |palette primary|, |palette secondary|, and |primary tertiary| (see Section~\ref{section-colors} for details on how to change these).
+ The colors used in the headline and footline are drawn from |palette primary|, |palette secondary|, and |palette tertiary| (see Section~\ref{section-colors} for details on how to change these).
\end{outerthemeexample}
\begin{outerthemeexample}[\oarg{options}]{miniframes}
diff --git a/macros/latex/contrib/beamer/doc/beamerug-fonts.tex b/macros/latex/contrib/beamer/doc/beamerug-fonts.tex
index b1490c7ddb..a001e152d7 100644
--- a/macros/latex/contrib/beamer/doc/beamerug-fonts.tex
+++ b/macros/latex/contrib/beamer/doc/beamerug-fonts.tex
@@ -164,7 +164,7 @@ To select the T1 encoding, use \verb|\usepackage[T1]{fontenc}|. Thus, if you hav
\end{verbatim}
to get beautiful outline fonts and correct hyphenation. Note, however, that certain older versions of the LM~bundle did not include correct glyphs for ligatures like ``fi,'' which may cause trouble. Double check that all ligatures are displayed correctly and, if not, update your installation.
-Everything mentioned above applies to |pdflatex| and |latex|+|dvips|. Unlike those engines, |xelatex| and |lualatex| support OpenType fonts, and that means that you can use system fonts in your documents relatively easy. Details will eventually be documented in this manual. For now, you can take a look at the documentation for the |fontspec| package which supports both engines. Also, note that when you use |lualatex| or |xelatex| with EU2 or EU1 encoding, respectively, by default you get OpenType Latin Modern fonts.
+Everything mentioned above applies to |pdflatex| and |latex|+|dvips|. Unlike those engines, |xelatex| and |lualatex| support OpenType fonts, and that means that you can use system fonts in your documents relatively easy. Details will eventually be documented in this manual. For now, you can take a look at the documentation for the |fontspec| package which supports both engines. Also, note that when you use |lualatex| or |xelatex| with TU encoding, respectively, by default you get OpenType Latin Modern fonts.
\subsection{Changing the Fonts Used for Different Elements of a Presentation}
diff --git a/macros/latex/contrib/beamer/doc/beamerug-localstructure.tex b/macros/latex/contrib/beamer/doc/beamerug-localstructure.tex
index e08211badd..bc961c2bf0 100644
--- a/macros/latex/contrib/beamer/doc/beamerug-localstructure.tex
+++ b/macros/latex/contrib/beamer/doc/beamerug-localstructure.tex
@@ -614,7 +614,7 @@ In |article| mode, theorems are automatically numbered. By specifying the class
You can define new environments using the following command:
\begin{command}{\newtheorem\opt{|*|}\marg{environment name}\oarg{numbered same as}\marg{head text}\oarg{number within}}
- This command is used exactly the same way as in the |amsthm| package (as a matter of fact, it is the command from that package), see its documentation. The only difference is that environments declared using this command are overlay specification-aware in \beamer\ and that, when typeset, are typeset according to \beamer's templates.
+ This command is used exactly the same way as in the |amsthm| package (as a matter of fact, it is the command from that package). For example, the two optional arguments, \meta{numbered same as} and \meta{number within}, are mutually exclusive; see the documentation of |amsthm| for details. The only difference is that environments declared using this command are overlay specification-aware in \beamer\ and that, when typeset, are typeset according to \beamer's templates.
\articlenote
Environments declared using this command are also overlay specification-aware in |article| mode.
diff --git a/macros/latex/contrib/beamer/doc/beamerug-nonpresentation.tex b/macros/latex/contrib/beamer/doc/beamerug-nonpresentation.tex
index 5058b954ab..e454665631 100644
--- a/macros/latex/contrib/beamer/doc/beamerug-nonpresentation.tex
+++ b/macros/latex/contrib/beamer/doc/beamerug-nonpresentation.tex
@@ -311,6 +311,8 @@ The second flavor of the |\mode| command takes no argument. ``No argument'' mean
\emph{Note:} When a \TeX\ file ends, \TeX\ must not be in the gobbling state. Switch this state off using |\mode| on one line and |<all>| on the next.
+ \emph{Note:} The behavior of |\mode| command is different inside a frame: instead of line-wise gobbling, it puts every subsequent tokens inside a ``comment box'' until another |\mode| command is encountered. Some commands may cause errors in this situation, including the assignment of global variables and |\mode| of the first flavor, since they are not actually ``gobbled''. Please use |\mode| command \emph{of any flavor} outside frames.
+
\example
\begin{verbatim}
\mode<article>
diff --git a/macros/latex/contrib/beamer/doc/beameruserguide.pdf b/macros/latex/contrib/beamer/doc/beameruserguide.pdf
index f8f5a0142a..26156e2632 100644
--- a/macros/latex/contrib/beamer/doc/beameruserguide.pdf
+++ b/macros/latex/contrib/beamer/doc/beameruserguide.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer/doc/beameruserguide.tex b/macros/latex/contrib/beamer/doc/beameruserguide.tex
index b10edcbd31..9fe25be46f 100644
--- a/macros/latex/contrib/beamer/doc/beameruserguide.tex
+++ b/macros/latex/contrib/beamer/doc/beameruserguide.tex
@@ -13,7 +13,7 @@
\documentclass{ltxdoc}
-\def\beamerugversion{3.56}
+\def\beamerugversion{3.57}
\def\beamerugpgfversion{1.00}
\def\beamerugxcolorversion{2.00}
diff --git a/macros/latex/contrib/chemformula/README b/macros/latex/contrib/chemformula/README
index fda9482523..3323880942 100644
--- a/macros/latex/contrib/chemformula/README
+++ b/macros/latex/contrib/chemformula/README
@@ -1,5 +1,5 @@
--------------------------------------------------------------------------
-the CHEMFORMULA package v4.15f 2019/09/23
+the CHEMFORMULA package v4.15g 2019/09/27
typeset chemical compounds and reactions
diff --git a/macros/latex/contrib/chemformula/chemformula.sty b/macros/latex/contrib/chemformula/chemformula.sty
index da9b6fe414..1b763583fd 100644
--- a/macros/latex/contrib/chemformula/chemformula.sty
+++ b/macros/latex/contrib/chemformula/chemformula.sty
@@ -30,9 +30,9 @@
\usetikzlibrary{arrows.meta}
\ExplSyntaxOn
-\tl_const:Nn \c_chemformula_date_tl {2019/09/23}
+\tl_const:Nn \c_chemformula_date_tl {2019/09/27}
\tl_const:Nn \c_chemformula_version_number_tl {4.15}
-\tl_const:Nn \c_chemformula_version_suffix_tl {f}
+\tl_const:Nn \c_chemformula_version_suffix_tl {g}
\tl_const:Nx \c_chemformula_version_tl
{ \c_chemformula_version_number_tl \c_chemformula_version_suffix_tl }
\tl_const:Nn \c_chemformula_info_tl
@@ -388,13 +388,13 @@
\cs_generate_variant:Nn \chemformula_node:nnn { nx }
\cs_new_protected:Npn \chemformula_allow_break:
- { \tex_penalty:D \c_zero }
+ { \tex_penalty:D \c_zero_int }
\cs_new_protected:Npn \chemformula_leave_vmode:
{ \hbox_unpack:N \c_empty_box }
\cs_new_protected:Npn \chemformula_nobreak:
- { \tex_penalty:D \c_ten_thousand }
+ { \tex_penalty:D 10000 \scan_stop: }
\cs_new_protected:Npn \chemformula_skip_nobreak:N #1
{
@@ -2378,14 +2378,14 @@
\selectfont
}
\bool_if:NT \l__chemformula_fontspec_bool
- { \chemformula_font: }
+ { \cs_if_exist_use:N \chemformula_font: }
\tl_use:N \l__chemformula_format_tl
\tl_if_eq:onTF { \f@series } {bx}
{ \cs_set_eq:NN \chemformula_bm:n \bm }
{ \cs_set:Nn \chemformula_bm:n {##1} }
}
-\cs_new_protected:Npn \chemformula_font: {}
+% \cs_new_protected:Npn \chemformula_font: {}
\cs_new_protected:Npn \__chemformula_fontspec:n #1
{
\tl_if_in:nnTF {#1} { [ }
@@ -3563,7 +3563,9 @@ VERSION HISTORY
takes an argument
2017/03/23 - version 4.15e - small bug fix (issue #5)
- implement \shortintertext bypass
-
+2019/09/23 - version 4.15f - add missing definition for temporary variable
+2019/09/27 - version 4.15g - bug fix in fontspec option
+
% --------------------------------------------------------------------------
% TODO
- Addukte: Zahlen nach * und . automatisch erkennen?
diff --git a/macros/latex/contrib/chemformula/chemformula_en.pdf b/macros/latex/contrib/chemformula/chemformula_en.pdf
index 499a93ad74..32caaea29a 100644
--- a/macros/latex/contrib/chemformula/chemformula_en.pdf
+++ b/macros/latex/contrib/chemformula/chemformula_en.pdf
Binary files differ
diff --git a/macros/latex/contrib/chemmacros/README b/macros/latex/contrib/chemmacros/README
index 22ff8e700c..2661b9f427 100644
--- a/macros/latex/contrib/chemmacros/README
+++ b/macros/latex/contrib/chemmacros/README
@@ -1,5 +1,5 @@
--------------------------------------------------------------------------
-the CHEMMACROS package v5.8d 2019/09/23
+the CHEMMACROS package v5.8e 2019/09/27
comprehensive support for typesetting chemistry documents
diff --git a/macros/latex/contrib/chemmacros/chemmacros.module.base.code.tex b/macros/latex/contrib/chemmacros/chemmacros.module.base.code.tex
index 5d2e66611d..1ea731b25c 100644
--- a/macros/latex/contrib/chemmacros/chemmacros.module.base.code.tex
+++ b/macros/latex/contrib/chemmacros/chemmacros.module.base.code.tex
@@ -179,8 +179,8 @@
\cs_new_eq:NN \chemmacros_ignore_spaces: \tex_ignorespaces:D
\cs_new_protected:Npn \chemmacros_leave_vmode: { \hbox_unpack:N \c_empty_box }
-\cs_new_protected:Npn \chemmacros_nobreak: { \tex_penalty:D \c_ten_thousand }
-\cs_new_protected:Npn \chemmacros_allow_break: { \tex_penalty:D \c_zero }
+\cs_new_protected:Npn \chemmacros_nobreak: { \tex_penalty:D 10000 \scan_stop: }
+\cs_new_protected:Npn \chemmacros_allow_break: { \tex_penalty:D \c_zero_int }
\cs_new_protected:Npn \chemmacros_skip_nobreak:N #1
{
\chemmacros_nobreak:
diff --git a/macros/latex/contrib/chemmacros/chemmacros.module.reactions.code.tex b/macros/latex/contrib/chemmacros/chemmacros.module.reactions.code.tex
index 629d3f89ca..f261611bfb 100644
--- a/macros/latex/contrib/chemmacros/chemmacros.module.reactions.code.tex
+++ b/macros/latex/contrib/chemmacros/chemmacros.module.reactions.code.tex
@@ -278,7 +278,8 @@
% #4: argument list ({#2}{#3}...)
\cs_new_protected:Npn \chemmacros_declare_reaction_env:nnnn #1#2#3#4
{
- \exp_args:Nnx \DeclareDocumentEnvironment {#1} { !O{} \prg_replicate:nn {#3+0} {m} }
+ \exp_args:Nnx \DeclareDocumentEnvironment {#1}
+ { \int_compare:nT { #3+0 = 0 } {!} O{} \prg_replicate:nn {#3+0} {m} }
{
\chemmacros_add_reaction_description:n {##1}
\__chemmacros_begin_reaction:
diff --git a/macros/latex/contrib/chemmacros/chemmacros.module.spectroscopy.code.tex b/macros/latex/contrib/chemmacros/chemmacros.module.spectroscopy.code.tex
index 87d53dd3ce..748a4cb19e 100644
--- a/macros/latex/contrib/chemmacros/chemmacros.module.spectroscopy.code.tex
+++ b/macros/latex/contrib/chemmacros/chemmacros.module.spectroscopy.code.tex
@@ -41,6 +41,7 @@
\tl_set:Nn \l__chemmacros_nmr_coupling_nuclei_post_tl { ) }
\tl_new:N \l__chemmacros_nmr_coupling_bonds_tl
\tl_new:N \l__chemmacros_nmr_coupling_bonds_pre_tl
+\tl_new:N \l__chemmacros_nmr_coupling_bonds_post_tl
\tl_set:Nn \l__chemmacros_nmr_coupling_bonds_pre_tl { }
\tl_set:Nn \l__chemmacros_nmr_coupling_bonds_post_tl { \! }
\tl_new:N \l__chemmacros_nmr_coupling_symbol_tl
diff --git a/macros/latex/contrib/chemmacros/chemmacros.sty b/macros/latex/contrib/chemmacros/chemmacros.sty
index 84915c9f55..bb1e94bd3f 100644
--- a/macros/latex/contrib/chemmacros/chemmacros.sty
+++ b/macros/latex/contrib/chemmacros/chemmacros.sty
@@ -31,10 +31,10 @@
% --------------------------------------------------------------------------
% package information:
-\tl_const:Nn \c_chemmacros_date_tl {2019/09/27}
+\tl_const:Nn \c_chemmacros_date_tl {2019/09/30}
\tl_const:Nn \c_chemmacros_version_major_number_tl {5}
\tl_const:Nn \c_chemmacros_version_minor_number_tl {8}
-\tl_const:Nn \c_chemmacros_version_subrelease_tl {e}
+\tl_const:Nn \c_chemmacros_version_subrelease_tl {f}
\tl_const:Nx \c_chemmacros_version_number_tl
{
\c_chemmacros_version_major_number_tl .
diff --git a/macros/latex/contrib/chemmacros/chemmacros_en.pdf b/macros/latex/contrib/chemmacros/chemmacros_en.pdf
index e3e43444c6..b62e8b0501 100644
--- a/macros/latex/contrib/chemmacros/chemmacros_en.pdf
+++ b/macros/latex/contrib/chemmacros/chemmacros_en.pdf
Binary files differ
diff --git a/macros/latex/contrib/enotez/README b/macros/latex/contrib/enotez/README
index ab82c111eb..73c54286bd 100644
--- a/macros/latex/contrib/enotez/README
+++ b/macros/latex/contrib/enotez/README
@@ -1,15 +1,15 @@
--------------------------------------------------------------------------
-the ENOTEZ package v0.9a
+the ENOTEZ package v0.10
Endnotes for LaTeX2e
-2017/04/24
+2019/09/30
--------------------------------------------------------------------------
Clemens Niederberger
Web: https://bitbucket.org/cgnieder/enotez/
E-Mail: contact@mychemistry.eu
--------------------------------------------------------------------------
-Copyright 2012-2017 Clemens Niederberger
+Copyright 2012--2019 Clemens Niederberger
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/enotez/enotez.sty b/macros/latex/contrib/enotez/enotez.sty
index ba26561827..4e1738e74e 100644
--- a/macros/latex/contrib/enotez/enotez.sty
+++ b/macros/latex/contrib/enotez/enotez.sty
@@ -8,7 +8,7 @@
% Web: https://bitbucket.org/cgnieder/enotez/
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
-% Copyright 2012-2017 Clemens Niederberger
+% Copyright 2012--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -31,20 +31,12 @@
\RequirePackage{ expl3 , xparse , l3keys2e , xtemplate , etoolbox , xpatch , scrlfile }
\ProvidesExplPackage
{enotez}
- {2017/04/24}
- {0.9a}
+ {2019/09/30}
+ {0.10}
{Endnotes for LaTeX2e}
% --------------------------------------------------------------------------
% messages
-% \msg_new:nnnn {enotez} {captions}
-% { Endnotes~might~not~work~in~captions. }
-% {
-% Endnotes~might~not~work~inside~captions.~You~might~try~to~use~the~caption~
-% package~if~you~encounter~problems~but~that's~not~a~promise~that~things~
-% will~work~then.
-% }
-
\msg_new:nnnn {enotez} {deprecated}
{ The~#1~`#2'~is~deprecated.~Use~`#3'~instead~\msg_line_context:. }
{
@@ -53,10 +45,17 @@
forever~I~encourage~you~to~switch.
}
-\cs_new:Npn \enotez_option_deprecated:nn #1#2
+\msg_new:nnn {enotez} {totoc}
+ {
+ You've~ set~ `totoc~ =~ auto'.~ However,~ I'm~ unbale~ to~ determine~ the~
+ toc~ level~ automatically.~ Please~ choose~ the~ level~ yourself.
+ }
+
+
+\cs_new_protected:Npn \enotez_option_deprecated:nn #1#2
{ \msg_warning:nnnnn {enotez} {deprecated} {option} {#1} {#2} }
-\cs_new:Npn \enotez_command_deprecated:NN #1#2
+\cs_new_protected:Npn \enotez_command_deprecated:NN #1#2
{
\msg_warning:nnnnn {enotez} {deprecated} {command}
{ \token_to_str:N #1 } { \token_to_str:N #2 }
@@ -65,7 +64,9 @@
% --------------------------------------------------------------------------
% variants of kernel functions
\cs_generate_variant:Nn \tl_if_eq:nnTF { Vn , nx }
-\cs_generate_variant:Nn \tl_if_eq:nnT { xx }
+\cs_generate_variant:Nn \tl_if_eq:nnT { xx , V }
+\cs_generate_variant:Nn \str_if_in:nnT { o }
+\cs_generate_variant:Nn \cs_set:Npn { cpV }
% --------------------------------------------------------------------------
% variables:
@@ -76,9 +77,6 @@
\bool_new:N \l__enotez_hyperfootnotes_bool
\bool_new:N \l__enotez_hyperbackref_bool
\bool_new:N \l__enotez_split_bool
-% \bool_new:N \l__enotez_caption_patched_bool
-% \bool_new:N \l__enotez_koma_patched_bool
-% \bool_new:N \l__enotez_memoir_patched_bool
\bool_new:N \l__enotez_disable_bool
\tl_new:N \l__enotez_tmpa_tl
@@ -88,7 +86,7 @@
\tl_new:N \l__enotez_totoc_tl
\tl_new:N \l__enotez_list_name_tl
\tl_set:Nn \l__enotez_list_name_tl {Notes}
-\tl_new:N \l__enotez_endnote_text_tl
+\tl_new:N \g__enotez_endnote_text_tl
\tl_new:N \l__enotez_endnote_mark_tl
\tl_new:N \l__enotez_list_instance_tl
\tl_set:Nn \l__enotez_list_instance_tl {plain}
@@ -131,7 +129,18 @@
\prop_new:N \g__enotez_endnote_sect_id_prop
\prop_new:N \g__enotez_endnote_man_prop
-\cs_new_protected:Npn \enotez_nobreak: { \tex_penalty:D \c_ten_thousand }
+\seq_new:N \l__enotez_tmpa_seq
+\seq_new:N \l__enotez_sectioning_seq
+\seq_put_right:Nn \l__enotez_sectioning_seq {part}
+\seq_put_right:Nn \l__enotez_sectioning_seq {chapter}
+\seq_put_right:Nn \l__enotez_sectioning_seq {section}
+\seq_put_right:Nn \l__enotez_sectioning_seq {subsection}
+\seq_put_right:Nn \l__enotez_sectioning_seq {subsubsection}
+\seq_put_right:Nn \l__enotez_sectioning_seq {paragraph}
+
+\str_new:N \l__enotez_tmpa_str
+
+\cs_new_protected:Npn \enotez_nobreak: { \tex_penalty:D 10000 \scan_stop: }
% --------------------------------------------------------------------------
% options:
@@ -141,7 +150,6 @@
footnotes .bool_set:N = \l__enotez_footnotes_tl ,
list-name .tl_set:N = \l__enotez_list_name_tl ,
reset .bool_set:N = \l__enotez_reset_bool ,
- % TODO: add symbols and other possible formats, use cntformats?
counter-format .choice: ,
counter-format / arabic .code:n = \cs_set:Npn \theendnote {\arabic{endnote}} ,
counter-format / alph .code:n = \cs_set:Npn \theendnote {\alph{endnote}} ,
@@ -152,27 +160,28 @@
mark-format .code:n = \cs_set:Npn \enmarkstyle {#1} ,
mark-cs .code:n = \cs_set:Npn \enotezwritemark {#1} ,
totoc .choices:nn =
- { section , chapter , false }
+ { subsection , section , chapter , part , auto , false }
{
- \tl_if_eq:VnTF \l_keys_choice_tl { false }
+ \tl_if_eq:VnTF \l_keys_choice_tl {false}
{ \bool_set_false:N \l__enotez_totoc_bool }
{
\bool_set_true:N \l__enotez_totoc_bool
\tl_set_eq:NN \l__enotez_totoc_tl \l_keys_choice_tl
}
} ,
+ totoc .default:n = auto ,
list-heading .code:n =
\cs_set:Npn \enotezlistheading ##1 {#1} ,
split .choices:nn =
{ section , chapter , false }
{
- \tl_if_eq:VnTF \l_keys_choice_tl { false }
+ \tl_if_eq:VnTF \l_keys_choice_tl {false}
{ \bool_set_false:N \l__enotez_split_bool }
{ \bool_set_true:N \l__enotez_split_bool }
\tl_set_eq:NN \l__enotez_split_tl \l_keys_choice_tl
} ,
split-sectioning .code:n =
- \enotez_option_deprecated:nn { split-sectioning } { split-heading }
+ \enotez_option_deprecated:nn {split-sectioning} {split-heading}
\cs_set:Npn \enotezsplitlistheading ##1 {#1}
\bool_set_true:N \l__enotez_splitted_list_heading_bool ,
split-heading .code:n =
@@ -190,6 +199,7 @@
% #2: mark
\cs_new_protected:Npn \enotez_write_mark:nn #1#2
{
+ % but what if #2 is the reference to a different mark?
\bool_if:NTF \l__enotez_hyperfootnotes_bool
{
\enotezwritemark { \hyperlink {enz.#1} { \enmarkstyle #2 } }
@@ -203,6 +213,10 @@
}
\cs_generate_variant:Nn \enotez_write_mark:nn {x}
+% % #1: argument to \ref
+% \cs_new_protected:Npn \enotez_ref_note:n #1
+% { \enotezwritemark { \enmarkstyle { \ref {#1} } } }
+
% the internal endnote:
\cs_new_protected:Npn \enotez_endnote:nn #1#2
{
@@ -215,16 +229,13 @@
\int_gincr:N \g__enotez_endnote_id_int
\quark_if_no_value:nTF {#1}
{
- \stepcounter {endnote}% problem with option `reset'
- % \show \theendnote
- \cs_gset:cpx {@currentlabel} {\theendnote}
+ \refstepcounter {endnote}
\enotez_write_mark:xn
{ \int_use:N \g__enotez_endnote_id_int }
{ \theendnote }
}
{
- \cs_gset:cpn {@currentlabel} {#1}
- % \cs_gset_eq:NN \theendnote \@currentlabel
+ \cs_gset:cpn {@currentlabel} {\p@endnote#1}
\enotez_write_mark:xn { \int_use:N \g__enotez_endnote_id_int } {#1}
}
\bool_if:NT \l__enotez_disable_bool
@@ -254,22 +265,20 @@
\enotez_save_note:xxxxxnn
{ \int_use:N \g__enotez_endnote_id_int }
{ \theendnote }
- % { \int_use:N \g__enotez_endnote_mark_int }
{ \int_use:N \g__enotez_list_printed_int }
{ \thechapter }
{ \int_eval:n { \value{chapter} } }
- { a }
+ {a}
{#2}
}
{
\enotez_save_note:xxxxxnn
{ \int_use:N \g__enotez_endnote_id_int }
{ \theendnote }
- % { \int_use:N \g__enotez_endnote_mark_int }
{ \int_use:N \g__enotez_list_printed_int }
{ \thesection }
{ \int_eval:n { \value{section} } }
- {a }
+ {a}
{#2}
}
}
@@ -287,7 +296,7 @@
{ \int_use:N \g__enotez_list_printed_int }
{ \thechapter }
{ \int_eval:n { \value{chapter} } }
- { m }
+ {m}
{#2}
}
{
@@ -297,7 +306,7 @@
{ \int_use:N \g__enotez_list_printed_int }
{ \thesection }
{ \int_eval:n { \value{section} } }
- { m }
+ {m}
{#2}
}
}
@@ -313,7 +322,10 @@
% #6: a/m (automatic/manually)
% #7: text
\cs_new_protected:Npn \enotez_save_note:nnnnnnn #1#2#3#4#5#6#7
- { \iow_now:Nn \@auxout { \enotez@note {#1} {#2} {#3} {#4} {#5} {#6} {#7} } }
+ {
+ \legacy_if:nT {@filesw}
+ { \iow_now:Nn \@auxout { \enotez@note {#1} {#2} {#3} {#4} {#5} {#6} {#7} } }
+ }
\cs_generate_variant:Nn \enotez_save_note:nnnnnnn { xxxxx , xnxxx }
\cs_new_protected:Npn \enotez@note #1#2#3#4#5#6#7
@@ -372,153 +384,188 @@
{ \enotez_endnote_text:nn { \q_no_value } }
}
+% \cs_new_protected:Npn \refendnote #1
+% { \enotez_ref_note:n {#1} }
+
\cs_new:Npn \enotez_endnote_text_aux:w [#1]#2
{ \enotez_endnote_text:nn {#1} {#2} }
% --------------------------------------------------------------------------
% the list of notes
-\cs_if_exist:cTF { chapter }
+\cs_if_exist:cTF {chapter}
{ \cs_new:Npn \enotezlistheading { \chapter* } }
{ \cs_new:Npn \enotezlistheading { \section* } }
\tl_new:N \enotezsplitlistheading
\bool_new:N \l__enotez_splitted_list_heading_bool
-% \cs_new:Npn \enotezsplitlistheading
-% { \use:c { \l__enotez_splitted_list_sectioning_tl } }
+
+\cs_new_protected:Npn \enotez_set_totoc:
+ {
+ \bool_if:NT \l__enotez_totoc_bool
+ {
+ \bool_if:NT \l__enotez_hyperref_bool { \phantomsection }
+ \bool_set_false:N \l__enotez_tmpa_bool
+ \tl_if_eq:VnTF \l__enotez_totoc_tl {auto}
+ {
+ \seq_map_inline:Nn \l__enotez_sectioning_seq
+ {
+ \str_if_in:onT { \enotezlistheading{} } {##1}
+ {
+ \bool_set_true:N \l__enotez_tmpa_bool
+ \tl_set:Nn \l__enotez_totoc_tl {##1}
+ }
+ }
+ \bool_if:NF \l__enotez_tmpa_bool
+ {
+ \tl_set:Nn \l__enotez_totoc_tl {false}
+ \msg_warning:nn {enotez} {totoc}
+ }
+ }
+ { \bool_set_true:N \l__enotez_tmpa_bool }
+ \bool_if:NT \l__enotez_tmpa_bool
+ {
+ \addcontentsline
+ {toc}
+ { \l__enotez_totoc_tl }
+ { \l__enotez_list_name_tl }
+ }
+ }
+ }
+
+\cs_new_protected:Npn \enotez_build_print_list:nnnn #1#2#3#4
+ {
+ \int_zero:N \l__enotez_tmpa_int
+ \bool_if:nTF {#1}
+ {
+ \prop_map_inline:Nn \g__enotez_endnote_mark_prop
+ {
+ \enotez_get_note:nn {#1} {##1}
+ \bool_if:NT \l__enotez_print_note_bool {#3}
+ }
+ }
+ {
+ \int_do_while:nn { \l__enotez_tmpa_int <= \g__enotez_list_printed_int }
+ {
+ \seq_clear:N \l__enotez_tmpa_seq
+ \prop_map_inline:Nn \g__enotez_endnote_mark_prop
+ {
+ \tl_if_eq:xxT
+ { \int_use:N \l__enotez_tmpa_int }
+ { \prop_item:Nn \g__enotez_endnote_split_prop {##1} }
+ { \seq_put_right:Nn \l__enotez_tmpa_seq {##1} }
+ }
+ \seq_if_empty:NF \l__enotez_tmpa_seq
+ {
+ \enotez_get_split_title:x { \seq_item:Nn \l__enotez_tmpa_seq {1} }
+ #2
+ }
+ \seq_map_inline:Nn \l__enotez_tmpa_seq
+ {
+ \enotez_get_note:nn {#1} {##1}
+ \bool_if:NT \l__enotez_print_note_bool {#3}
+ }
+ \seq_if_empty:NF \l__enotez_tmpa_seq {#4}
+ \int_incr:N \l__enotez_tmpa_int
+ }
+ }
+ }
\DeclareObjectType {enotez-list} {1}
\DeclareTemplateInterface {enotez-list} {paragraph} {1}
{
- heading : function 1 = \enotezlistheading{#1} ,
- format : tokenlist = \footnotesize ,
- number : function 1 = \enmark{#1} ,
- number-format : tokenlist = \normalfont ,
- notes-sep : length = .5\baselineskip ,
+ heading : function 1 = \enotezlistheading {#1} ,
+ format : tokenlist = \footnotesize ,
+ number : function 1 = \enmark{#1} ,
+ number-format : tokenlist = \normalfont ,
+ notes-sep : length = .5\baselineskip
}
\DeclareTemplateCode {enotez-list} {paragraph} {1}
{
- heading = \enotez_list_heading:n ,
+ heading = \enotez_list_heading:n ,
format = \l__enotez_list_format_tl ,
- number = \enotez_list_number:n ,
+ number = \enotez_list_number:n ,
number-format = \l__enotez_list_number_format_tl ,
- notes-sep = \l__enotez_list_notes_sep_dim ,
+ notes-sep = \l__enotez_list_notes_sep_dim
}
{
\AssignTemplateKeys
- \bool_if:NT \l__enotez_totoc_bool
- {
- \bool_if:NT \l__enotez_hyperref_bool { \phantomsection }
- \addcontentsline {toc} { \l__enotez_totoc_tl } { \l__enotez_list_name_tl }
- }
+ \enotez_set_totoc:
\enotez_list_heading:n { \l__enotez_list_name_tl }
\enotez_list_preamble:
- \int_zero:N \l__enotez_tmpa_int
- \int_do_while:nn { \l__enotez_tmpa_int <= \g__enotez_list_printed_int }
- {
- \prop_map_inline:Nn \g__enotez_endnote_mark_prop
+ \enotez_build_print_list:nnnn {#1}
+ {}
+ {
+ \par\noindent
+ \group_begin:
+ \tl_use:N \l__enotez_list_format_tl
+ \hbox_overlap_left:n
{
- \tl_if_eq:xxT
- { \int_use:N \l__enotez_tmpa_int }
- { \prop_item:Nn \g__enotez_endnote_split_prop { ##1 } }
- {
- \enotez_get_split_title:n { ##1 }
- \enotez_get_note:nn {#1} { ##1 }
- \bool_if:NT \l__enotez_print_note_bool
- {
- \par\noindent
- \group_begin:
- \tl_use:N \l__enotez_list_format_tl
- \llap
- {
- \enotez_list_number:n
- { \enotez_write_list_number:n { ##1 } }
- \tl_use:N \c_space_tl
- }
- \tl_use:N \l__enotez_endnote_text_tl
- \par
- \group_end:
- }
- }
- \par
- \dim_compare:nT { \l__enotez_list_notes_sep_dim != 0pt }
- { \addvspace { \l__enotez_list_notes_sep_dim } }
+ \enotez_list_number:n
+ { \enotez_write_list_number:n {##1} }
+ \tl_use:N \c_space_tl
}
- \int_incr:N \l__enotez_tmpa_int
- }
+ % \cs_set:cpn {@currentlabel}
+ % { \p@endnote \l__enotez_endnote_mark_tl }
+ \tl_use:N \g__enotez_endnote_text_tl
+ \par
+ \dim_compare:nT { \l__enotez_list_notes_sep_dim != 0pt }
+ { \addvspace { \l__enotez_list_notes_sep_dim } }
+ \group_end:
+ }
+ {}
\enotez_list_postamble:
}
\DeclareTemplateInterface {enotez-list} {list} {1}
{
- heading : function 1 = \enotezlistheading{#1} ,
- format : tokenlist = \footnotesize ,
- number : function 1 = \enmark{#1} ,
- number-format : tokenlist = \normalfont ,
- list-type : tokenlist = description ,
+ heading : function 1 = \enotezlistheading {#1} ,
+ format : tokenlist = \footnotesize ,
+ number : function 1 = \enmark{#1} ,
+ number-format : tokenlist = \normalfont ,
+ list-type : tokenlist = description
}
\DeclareTemplateCode {enotez-list} {list} {1}
{
- heading = \enotez_list_heading:n ,
+ heading = \enotez_list_heading:n ,
format = \l__enotez_list_format_tl ,
- number = \enotez_list_number:n ,
+ number = \enotez_list_number:n ,
number-format = \l__enotez_list_number_format_tl ,
list-type = \l__enotez_list_type_tl
}
{
\AssignTemplateKeys
- \bool_if:NT \l__enotez_totoc_bool
- {
- \bool_if:NT \l__enotez_hyperref_bool { \phantomsection }
- \addcontentsline { toc } { \l__enotez_totoc_tl } { \l__enotez_list_name_tl }
- }
+ \enotez_set_totoc:
\enotez_list_heading:n { \l__enotez_list_name_tl }
\enotez_list_preamble:
- \int_zero:N \l__enotez_tmpa_int
- \int_do_while:nn { \l__enotez_tmpa_int <= \g__enotez_list_printed_int }
- {
- \prop_map_inline:Nn \g__enotez_endnote_mark_prop
- {
- \tl_clear:N \l__enotez_tmpc_tl
- \tl_if_eq:xxT
- { \int_use:N \l__enotez_tmpa_int }
- { \prop_item:Nn \g__enotez_endnote_split_prop { ##1 } }
- { \tl_put_right:Nn \l__enotez_tmpc_tl { ##1 } }
- \tl_if_blank:VF \l__enotez_tmpc_tl
- {
- \enotez_get_split_title:n { ##1 }
- \group_begin:
- \tl_use:N \l__enotez_list_format_tl
- \begin{\l__enotez_list_type_tl}
- }
- \tl_if_eq:xxT
- { \int_use:N \l__enotez_tmpa_int }
- { \prop_item:Nn \g__enotez_endnote_split_prop { ##1 } }
- {
- \enotez_get_note:nn {#1} { ##1 }
- \bool_if:NT \l__enotez_print_note_bool
- {
- \item
- [
- \enotez_list_number:n
- { \enotez_write_list_number:n { ##1 } }
- ]
- \tl_use:N \l__enotez_endnote_text_tl
- }
- }
- \tl_if_blank:VF \l__enotez_tmpc_tl
- { \end{\l__enotez_list_type_tl} \group_end: }
- }
- \int_incr:N \l__enotez_tmpa_int
- }
+ \enotez_build_print_list:nnnn {#1}
+ {
+ \group_begin:
+ \tl_use:N \l__enotez_list_format_tl
+ \begin{\l__enotez_list_type_tl}
+ }
+ {
+ \item
+ [
+ \enotez_list_number:n
+ { \enotez_write_list_number:n {##1} }
+ ]
+ % \cs_set:cpn {@currentlabel}
+ % { \p@endnote \l__enotez_endnote_mark_tl }
+ \tl_use:N \g__enotez_endnote_text_tl
+ }
+ {
+ \end{\l__enotez_list_type_tl}
+ \group_end:
+ }
\enotez_list_postamble:
}
% some default styles:
-\DeclareInstance {enotez-list} {plain} {paragraph } { }
-\DeclareInstance {enotez-list} {description} {list} { }
+\DeclareInstance {enotez-list} {plain} {paragraph } { }
+\DeclareInstance {enotez-list} {description} {list} { }
\DeclareInstance {enotez-list} {itemize} {list} { list-type = itemize }
% --------------------------------------------------------------------------
@@ -528,8 +575,7 @@
\bool_if:NT \l__enotez_hyperfootnotes_bool
{ \box_move_up:nn {1em} { \hbox:n { \hypertarget {enz.#1} { } } } }
\tl_use:N \l__enotez_list_number_format_tl
- \tl_if_eq:nxTF {a}
- { \prop_item:Nn \g__enotez_endnote_man_prop {#1} }
+ \tl_if_eq:nxTF {a} { \prop_item:Nn \g__enotez_endnote_man_prop {#1} }
{
\bool_if:nTF
{ \l__enotez_hyperfootnotes_bool && \l__enotez_hyperbackref_bool }
@@ -559,7 +605,10 @@
\bool_if:nTF {#1}
{
\prop_get:NnN \g__enotez_endnote_mark_prop {#2} \l__enotez_endnote_mark_tl
- \prop_get:NnN \g__enotez_endnote_text_prop {#2} \l__enotez_endnote_text_tl
+ \prop_get:NnN \g__enotez_endnote_text_prop {#2} \g__enotez_endnote_text_tl
+ \tl_gset_eq:NN
+ \g__enotez_endnote_text_tl
+ \g__enotez_endnote_text_tl
\bool_set_true:N \l__enotez_print_note_bool
}
{
@@ -569,14 +618,8 @@
\bool_set_true:N \l__enotez_print_note_bool
\tl_set:Nx \l__enotez_endnote_mark_tl
{ \prop_item:Nn \g__enotez_endnote_mark_prop {#2} }
- \tl_set:Nx \l__enotez_endnote_text_tl
+ \tl_gset:Nx \g__enotez_endnote_text_tl
{ \prop_item:Nn \g__enotez_endnote_text_prop {#2} }
- % \prop_gpop:NnN \g__enotez_endnote_mark_prop
- % {#2}
- % \l__enotez_endnote_mark_tl
- % \prop_gpop:NnN \g__enotez_endnote_text_prop
- % {#2}
- % \l__enotez_endnote_text_tl
}
{
\int_compare:nTF { \l__enotez_tmpa_tl = \g__enotez_list_printed_int }
@@ -584,14 +627,8 @@
\bool_set_true:N \l__enotez_print_note_bool
\tl_set:Nx \l__enotez_endnote_mark_tl
{ \prop_item:Nn \g__enotez_endnote_mark_prop {#2} }
- \tl_set:Nx \l__enotez_endnote_text_tl
+ \tl_gset:Nx \g__enotez_endnote_text_tl
{ \prop_item:Nn \g__enotez_endnote_text_prop {#2} }
- % \prop_gpop:NnN \g__enotez_endnote_mark_prop
- % {#2}
- % \l__enotez_endnote_mark_tl
- % \prop_gpop:NnN \g__enotez_endnote_text_prop
- % {#2}
- % \l__enotez_endnote_text_tl
\prop_gremove:Nn \g__enotez_endnote_split_prop {#2}
}
{ \bool_set_false:N \l__enotez_print_note_bool }
@@ -676,7 +713,7 @@
\bool_if:NTF \l__enotez_splitted_list_heading_bool
{ \exp_args:No \enotezsplitlistheading }
{
- \tl_if_eq:VnTF \l__enotez_split_tl { section }
+ \tl_if_eq:VnTF \l__enotez_split_tl {section}
{ \exp_args:NNo \subsection* }
{ \exp_args:NNo \section* }
}
@@ -686,6 +723,7 @@
}
\prop_get:NnN \g__enotez_endnote_split_prop {#1} \l__enotez_last_split_id_tl
}
+\cs_generate_variant:Nn \enotez_get_split_title:n {x}
% --------------------------------------------------------------------------
% the marks in the list:
@@ -697,6 +735,8 @@
% --------------------------------------------------------------------------
% internal printendnotes:
+% #1: boolean
+% #2: list style
\cs_new_protected:Npn \enotez_print_endnotes:nn #1#2
{
\enotez_if_endnotes:T
@@ -708,30 +748,29 @@
\bool_if:NF \l__enotez_split_bool
{
\bool_if:NT \l__enotez_reset_bool
- {
- \setcounter {endnote} {0}
- % \int_gzero:N \g__enotez_endnote_mark_int
- }
+ { \setcounter {endnote} {0} }
\int_gincr:N \g__enotez_list_printed_int
}
+ \bool_if:NT \l__enotez_reset_bool
+ { \setcounter {endnote} {0} }
}
}
\prg_new_conditional:Npnn \enotez_if_endnotes: {p,T,F,TF}
{
- \int_compare:nTF { \value {endnote} > 0 }
+ \int_compare:nTF { \g__enotez_endnote_id_int > 0 }
{ \prg_return_true: }
{ \prg_return_false: }
}
% the user command:
-\NewDocumentCommand \printendnotes { so }
+\NewDocumentCommand \printendnotes {so}
{
\IfNoValueTF {#2}
{
\bool_if:NTF \l__enotez_split_bool
- { \enotez_print_endnotes:nn { \BooleanFalse } { } }
- { \enotez_print_endnotes:nn {#1} { } }
+ { \enotez_print_endnotes:nn { \BooleanFalse } { } }
+ { \enotez_print_endnotes:nn {#1} { } }
}
{
\bool_if:NTF \l__enotez_split_bool
@@ -839,8 +878,6 @@
\cs_new:Npn \EnotezCurrentSplitTitle {}
% --------------------------------------------------------------------------
-% process the options:
-\ProcessKeysOptions {enotez}
\AtBeginDocument
{
@@ -852,10 +889,7 @@
{
\int_gincr:N \g__enotez_list_printed_int
\bool_if:NT \l__enotez_reset_bool
- {
- \setcounter {endnote} {0}
- % \int_gzero:N \g__enotez_endnote_mark_int
- }
+ { \setcounter {endnote} {0} }
}
}
{
@@ -863,10 +897,7 @@
{
\int_gincr:N \g__enotez_list_printed_int
\bool_if:NT \l__enotez_reset_bool
- {
- \setcounter {endnote} {0}
- % \int_gzero:N \g__enotez_endnote_mark_int
- }
+ { \setcounter {endnote} {0} }
}
}
}
@@ -984,6 +1015,14 @@
2016/11/08 v0.9 - fix issues #6, #7, and #8
- remove caption patching and add \endnotemark and \endnotetext
2017/04/24 v0.9a - fix wrong format of number in list
+2019/09/30 v0.10 - fix issus #14
+ - don't allow package options any more
+ - implement issue #17: new choices for the totoc option:
+ `auto', `subsection' and `part'
+ - fix issue #18
+ - implement issue #13
+ % - new command \refendnote, fix issue #19
+ - implement issue #9
% --------------------------------------------------------------------------
% TODO:
diff --git a/macros/latex/contrib/enotez/enotez_en.pdf b/macros/latex/contrib/enotez/enotez_en.pdf
index 3ce61bdb72..dfcd56e6ce 100644
--- a/macros/latex/contrib/enotez/enotez_en.pdf
+++ b/macros/latex/contrib/enotez/enotez_en.pdf
Binary files differ
diff --git a/macros/latex/contrib/enotez/enotez_en.tex b/macros/latex/contrib/enotez/enotez_en.tex
index 85cf03b688..33d0149b38 100644
--- a/macros/latex/contrib/enotez/enotez_en.tex
+++ b/macros/latex/contrib/enotez/enotez_en.tex
@@ -12,7 +12,7 @@
% Web: http://www.mychemistry.eu/forums/forum/enotez/
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
-% Copyright 2012-2017 Clemens Niederberger
+% Copyright 2012--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -116,11 +116,6 @@ features of \enotez\ is a split list of endnotes in which the notes are
automatically separated by the sections or chapters they were set in, see
section~\ref{sec:split} for more information.
-As an aside: \enotez\ is nicely compatible with the \pkg{fnpct}
-package~\cite{pkg:fnpct}. Version~0.2j or newer of \pkg{fnpct} automatically
-detects \enotez\ and adapts the \cs{endnote} command.
-
-
\section{Usage}
\subsection{Placing the Notes}
The usage is simple: use \cs{endnote} in the text where you want to place the
@@ -132,24 +127,17 @@ note mark.
\sinceversion{0.9}Add an endnotemark.
\command{endnotetext}[\marg{text}]
\sinceversion{0.9}Add text to an endnote placed with \cs{endnotemark}.
+ % \command{refendnote}[\marg{label name}]
+ % \sinceversion{0.10}This command can be used to create an endnote mark by
+ % referencing an earlier endnote which has been marked with \cs*{label}.
\end{commands}
\begin{example}
This is some text.\endnote{With an endnote.}
\end{example}
There's not really much more to it. It is possible to add a custom mark by
-using the optional argument but that shouldn't be needed too often.
-% \cs{endnote} works fine inside tables, minipages, floats and
-% captions\footnote{This has been tested with the standard classes,
-% \cls{memoir}, and the \cls{KOMA-Script} classes, with and without the
-% \pkg*{caption} package. If you're using another package that redefines
-% \cs*{caption} or are using another class it might not work. Before you
-% place a note in a caption you should re-think the idea anyway.}.
-Endnotes
+using the optional argument but that shouldn't be needed too often. Endnotes
can also be nested.
-% Since this functionality seemed making a pair
-% \cs{endnotemark}/\cs{endnotetext} superfluous they are \emph{not} defined by
-% \enotez.
\begin{example}
This is some text.\endnote{With another endnote.\endnote{This is a
nested\endnote{And another level deeper\ldots} endnote!}}
@@ -162,27 +150,9 @@ The marks of the endnotes in the running text are printed through the command
contains the current mark which is preceded by \cs{enmarkstyle}. Both of
these commands can be redefined of course to adapt to custom settings. This
can also be done using options, see section~\ref{sec:options}. The mark of
-the endnote that has been set last is stored in % \cs{theendnote} and in
+the endnote that has been set last is stored in
\verbcode+\@currentlabel+.\sinceversion{0.6}
-% This could be used to define a command which writes a mark:
-% \begin{example}
-% % we cannot use \newcommand -- the command starts with \end...
-% \makeatletter
-% \def\endnotemark{\@ifnextchar[{\@endnotemark}{\@endnotemark[\theendnote]}}
-% \def\@endnotemark[#1]{\enotezwritemark{\enmarkstyle#1}}
-% \makeatother
-% Text\endnotemark
-% \end{example}
-% Please note that this definition \emph{does not} step the endnote counter but
-% either refers to the last number (no optional argument) or uses the one
-% provided in the optional argument.
-
-% \makeatletter
-% \def\endnotemark{\@ifnextchar[{\@endnotemark}{\@endnotemark[\theendnote]}}
-% \def\@endnotemark[#1]{\enotezwritemark{\enmarkstyle#1}}
-% \makeatother
-
Endnotes can also be labelled and later be referred to:
\begin{example}
The next endnote\endnote{This endnote gets a label.}\label{en:test} has
@@ -197,11 +167,12 @@ The notes are printed by using the command \cs{printendnotes}.
Print the list of endnotes. \meta{style} is one of the instances
explained in section~\ref{sec:customizing_the_list}.
\end{commands}
-If used without argument it prints all notes set so far with
-\cs{endnote}. The current list will then be cleared. All endnotes set after
-it are stored again for the next usage of \cs{printendnotes}. The starred
-version will print \emph{all} endnotes but shouldn't be used more than once if
-you have nested endnotes.
+If used without argument it prints all notes set so far with \cs{endnote}. The
+current list will then be cleared. All endnotes set after it are stored again
+for the next usage of \cs{printendnotes}. The starred version will print
+\emph{all} endnotes but shouldn't be used more than once if you have nested
+endnotes. \emph{Unfortunately the starred version also does not work together
+ with the \option{split} option.}
It may take several compilation runs until all notes are printed correctly.
In a first run they are written to the \code{aux} file. In the second run
@@ -244,8 +215,9 @@ an option, see section~\ref{sec:options}.
\section{Options}\label{sec:options}
\subsection{Package Options}
\enotez\ has a few package options which should be pretty self-explanatory.
-They can be set either as package options with
-\cs*{usepackage}\oarg{options}\Marg{enotez} or with the setup command.
+They can be set with the setup command\footnote{Earlier versions allowed to
+ use them as package options. This is not possible any more since
+ version~0.10.}.
\begin{commands}
\command{setenotez}[\marg{options}]
Setup command for setting \enotez' options.
@@ -272,8 +244,12 @@ They can be set either as package options with
\sinceversion{0.7}If set to \code{true} and \pkg{hyperref} has been
loaded backlinks from the notes in the list to the marks in the text are
added.
- \keychoice{totoc}{section,chapter,false}\Default{false}\label{key:totoc}
- Add an entry to the table of contents.
+ \keychoice{totoc}{subsection,section,chapter,part,\default{auto},false}%
+ \Default{false}\label{key:totoc}
+ Add\changedversion{0.10} an entry to the table of contents. When used
+ with no value the value \code{auto} is chosen and \enotez\ tries to detect
+ the correct level by itself. If this fails the option will be ignored and
+ a warning is written to the log file.
\keyval{list-heading}{sectioning command including argument}
You can use this option to manually set the list heading command, \eg,
\keyis{list-heading}{\cs{chapter}\Marg{\#1}} for a numbered heading. The
diff --git a/macros/latex/contrib/enotez/enotez_split_example.tex b/macros/latex/contrib/enotez/enotez_split_example.tex
index 12740ede28..7c58fa56df 100644
--- a/macros/latex/contrib/enotez/enotez_split_example.tex
+++ b/macros/latex/contrib/enotez/enotez_split_example.tex
@@ -1,3 +1,34 @@
+% --------------------------------------------------------------------------
+% the ENOTEZ package
+%
+% Endnotes for LaTeX2e
+%
+% --------------------------------------------------------------------------
+% Clemens Niederberger
+% Web: https://bitbucket.org/cgnieder/enotez/
+% E-Mail: contact@mychemistry.eu
+% --------------------------------------------------------------------------
+% Copyright 2012--2019 Clemens Niederberger
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Clemens Niederberger.
+% --------------------------------------------------------------------------
+% The enotez package consists of the files
+% - enotez.sty, enotez_en.tex, enotez_en.pdf, README
+% --------------------------------------------------------------------------
+% If you have any ideas, questions, suggestions or bugs to report, please
+% feel free to contact me.
+% --------------------------------------------------------------------------
+
\documentclass{article}
% \documentclass{scrartcl}
% \documentclass{memoir}
@@ -9,11 +40,11 @@
\usepackage{enotez}
\usepackage{kantlipsum}
-\DeclareInstance{enotez-list}{section}{paragraph}{heading=\section{#1}}
+\DeclareInstance{enotez-list}{itemize}{list}{list-type=itemize,heading=\section{#1}}
\setenotez{
split=section,
list-style=section,
- reset,
+ % reset,
backref
% customize the titles in between, e.g.:
% split-sectioning=addsec,
@@ -46,7 +77,8 @@ Text\multendnote{\kant[5];\kant[6]}.
\end{figure}
\appendix
-\printendnotes
+\printendnotes[itemize]
+
\end{document}
\tableofcontents
@@ -69,5 +101,4 @@ with a \textbf{nested}\endnote{\kant[10]} endnote.}. Text\endnote{\kant[11]}.
\appendix
\printendnotes
-
\end{document}
diff --git a/macros/latex/contrib/eq-save/README.md b/macros/latex/contrib/eq-save/README.md
index 47c13ad808..7605893a7f 100644
--- a/macros/latex/contrib/eq-save/README.md
+++ b/macros/latex/contrib/eq-save/README.md
@@ -1,6 +1,6 @@
The eq-save Package
Author: D. P. Story
-Dated: 2018-04-07
+Dated: 2019-08-07
In the past, Adobe Reader did not save form data; consequently, work done by
the student is lost when the AeB document is closed. In the more recent
@@ -17,6 +17,8 @@ Interactive document, such as those produced by AeB (including exerquiz)
require Adobe Reader. Any such AeB document must be viewed in AR, outside a
browser.
+What's New (2019-08-07) Minor reorganization of internal and public commands.
+
What's New (2018-04-07) Bug fix, occassionally the data was not being
recorded correctly.
diff --git a/macros/latex/contrib/eq-save/docs/eqsave-man.pdf b/macros/latex/contrib/eq-save/docs/eqsave-man.pdf
index f7467bc9c1..183f77c74c 100644
--- a/macros/latex/contrib/eq-save/docs/eqsave-man.pdf
+++ b/macros/latex/contrib/eq-save/docs/eqsave-man.pdf
Binary files differ
diff --git a/macros/latex/contrib/eq-save/docs/eqsave-man.tex b/macros/latex/contrib/eq-save/docs/eqsave-man.tex
index 5efff18052..7aad833d8c 100644
--- a/macros/latex/contrib/eq-save/docs/eqsave-man.tex
+++ b/macros/latex/contrib/eq-save/docs/eqsave-man.tex
@@ -43,7 +43,7 @@
email={dpstory@acrotex.net},
subject=Documentation for the eq-save package,
talksite={\url{www.acrotex.net}},
- version={1.1, 2018/04/07},
+ version={1.2.5, 2019/08/07},
Keywords={LaTeX, form field, hints, AcroTeX},
copyrightStatus=True,
copyrightNotice={Copyright (C) \the\year, D. P. Story},
diff --git a/macros/latex/contrib/eq-save/eq-save.dtx b/macros/latex/contrib/eq-save/eq-save.dtx
index 180d42fe67..dd2a1170c8 100644
--- a/macros/latex/contrib/eq-save/eq-save.dtx
+++ b/macros/latex/contrib/eq-save/eq-save.dtx
@@ -2,7 +2,7 @@
%<*copyright>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% eq-save package, %%
-%% Copyright (C) 2017-2018 %%
+%% Copyright (C) 2017-2019 %%
%% dpstory@uakron.edu %%
%% %%
%% This program can redistributed and/or modified under %%
@@ -14,7 +14,7 @@
%</copyright>
%<package>\NeedsTeXFormat{LaTeX2e}[1997/12/01]
%<package>\ProvidesPackage{eq-save}
-%<package> [2018/04/07 v1.1 eq-save: save exerquiz quizzes and resume (dps)]
+%<package> [2019/08/07 v1.2.5 eq-save: save exerquiz quizzes and resume (dps)]
%<*driver>
\documentclass{ltxdoc}
\usepackage[colorlinks,hyperindex=false]{hyperref}
@@ -60,7 +60,6 @@
% \InputIfFileExists{aebdonotindex.def}{\PackageInfo{web}{Inputting aebdonotindex.def}}
% {\PackageInfo{web}{cannot find aebdonotindex.def}}
% \begin{macrocode}
-% Begin Package
%<*package>
% \end{macrocode}
% The option \IndexOpt{devmode}\opt{devmode} does not require the user to enter his or her name
@@ -106,7 +105,7 @@
%
%
% \section{Commands of this package}
-% The \DescribeMacro{\nameField}\cs{nameField} command insert a text field into which the student enters
+% The \DescribeMacro{\nameField}\cs{nameField} command inserts a text field into which the student enters
% his name; otherwise, he cannot continue to the next page. Changing your name after you've begun to work
% on the questions clears the answer to all quizzes; this is an annoyance factor, a feeble attempt to reduce
% cheating. When \cs{nameField} is used, the top of the next page should be \cs{BeginNoPeeking}.
@@ -118,8 +117,7 @@
try{IhrNameFormat(event);}catch(e){}
}]{#2}{#3}{#4}}
% \end{macrocode}
-% \DescribeMacro{\hiddenScoreData}\cs{hiddenScoreData} text field.
-% It has zero dimensions, takes up no (horizontal) {\TeX} space, and is hidden. It is placed under the name field.
+% \DescribeMacro{\hiddenScoreData}is a text field that has zero dimensions, it takes up no (horizontal) {\TeX} space, and is hidden.
% This field, when the document is saved, receive all essential quiz data. It is read again when the document
% is opened to restore the quiz data. We give this field an initial value, for otherwise, the PDF viewer will
% not scan this field on opening.
@@ -133,14 +131,14 @@
% We place this field on the first page, upper left corner. It will be scanned by the PDF viewer (Reader)
% and it will define the object \texttt{oRecordOfQuizData} that will hold essential quiz data.
%
-% \paragraph*{Displaying and clearing results} As the user/student progresses through the documents, he
+% \paragraph*{Displaying and clearing results} As the user/student progresses through the document, he
% can see his success rate by viewing the text fields below.
%
% The \DescribeMacro{\sooField}\cs{sooField} (soo=score out of) displays the combined score: `12 out of 16', for example.
-% The phase may be redefined for language purposes by redeclaring the command \cs{declareScorePhrase}, the English
+% The phase may be redefined for language purposes by redeclaring the command \DescribeMacro{\declareScorePhrase}\cs{declareScorePhrase}, the English
% declaration is \verb~\declareScorePhrase{#1+"\space\eqOutOf\space"+#2}~, see the documentation above for this command.
%
-% The \DescribeMacro{\sField}\cs{sField} is one that holds only the score, while
+% The \DescribeMacro{\sField}\cs{sField} is one the field that holds only the score, while
% \DescribeMacro{\ooField}\cs{ooField} holds the `out of' value.
% \begin{macrocode}
\newcommand{\sField}[3][]{\textField[\Ff{\FfReadOnly}#1]%
@@ -152,7 +150,7 @@
% \end{macrocode}
% Now we do the same thing for the points score. \DescribeMacro{\psField}\cs{psField} holds the total
% number of points awarded; \DescribeMacro{\pooField}\cs{pooField} is the total number of points;
-% \DescribeMacro{\psooField}\cs{psooField}
+% \DescribeMacro{\psooField}\cs{psooField} is the `points out of' field.
% \begin{macrocode}
\newcommand{\psField}[3][]{\textField[\Ff{\FfReadOnly}#1]%
{\eqsroot.ptScore}{#2}{#3}}
@@ -215,11 +213,16 @@
}
% \end{macrocode}
% \paragraph*{Open Page Action} We add a page open event to restore the data as needed. We only do this once
-% per document session.
+% per document session. The script used in contained in the command \DescribeMacro\restoreQD\cs{restoreQD}.
+% \changes{v1.2.3}{2019/27/07}{Made the open doc script into a macro \string\cs{resoreQD}}
+% \changes{v1.2.4}{2019/08/01}{Changed to page open}
+% \changes{v1.2.5}{2019/08/07}{added dirty=false to \string\cs{restoreQD}}
% \begin{macrocode}
-\thisPageAction{\JS{if(!restoreQuizData.hasRestoredData)\r\t
- var rqdTO=(app.setTimeOut("restoreQuizData();app.clearTimeOut(rqdTO);%
- restoreQuizData.hasRestoredData=true",1000));}}{}
+\def\restoreQD{if(!restoreQuizData.hasRestoredData)\r\t
+ var\eqSP rqdTO=(app.setTimeOut("try{restoreQuizData()}catch(e){};%
+ app.clearTimeOut(rqdTO);%
+ restoreQuizData.hasRestoredData=true;dirty=false;",1000));}
+\thisPageAction{\JS{\restoreQD}}{}
% \end{macrocode}
% \paragraph*{Action prior to saving} It is important to save the quiz data, we can only do that if we save
% it to a field, the value of the field will be saved. We save the data to a hidden text field
@@ -246,9 +249,13 @@ if (typeof oRecordOfQuizData !="undefined") collectQuizData();
this.pageNum=0;\r\t
NoNameMsg=app.setTimeOut("app.alert('\EnterNameFirstMsg');%
app.clearTimeOut(NoNameMsg);",25);}}}{}}%
+% \end{macrocode}
% Page option for this page
+% \begin{macrocode}
\IhrNamePO
-% page open for all other pages
+% \end{macrocode}
+% Page open for all other pages
+% \begin{macrocode}
\AtBeginShipout{\IhrNamePO}%
}
% \end{macrocode}
@@ -579,6 +586,8 @@ function collectQuizData() {
% \end{macrocode}
% \leavevmode\IndexJS{restoreQuizData()} is called when the document is opened and attempts to
% transfer the value of \texttt{holdScoreData} back into \texttt{oRecordOfQuizData}.
+% \changes{v1.2}{2019/07/02}{Added ProbDist array}
+% \changes{v1.2.1}{2019/07/05}{Added RightWrong array}
% \begin{macrocode}
restoreQuizData.hasRestoredData=false;
function restoreQuizData() {
@@ -590,13 +599,26 @@ function restoreQuizData() {
// name of field is endQuiz.qzname
var pos=fname.indexOf(".");
var qzName=fname.substring(pos+1);
- lstOfQuizzes[qzName]=eval(qzName);
- Score=1*oRecordOfQuizData[fname][0];
- NQuestions=1*oRecordOfQuizData[fname][1];
- ptScore=1*oRecordOfQuizData[fname][2];
- NPointTotal=1*oRecordOfQuizData[fname][3];
- var h=this.getField("ScoreData."+qzName);
- h.value=Score+";"+NQuestions+";"+ptScore+";"+NPointTotal;
+ var qzRoot=fname.substring(0,pos);
+ switch(qzRoot) {
+ case "ScoreData":
+ lstOfQuizzes[qzName]=eval(qzName);
+ Score=1*oRecordOfQuizData[fname][0];
+ NQuestions=1*oRecordOfQuizData[fname][1];
+ ptScore=1*oRecordOfQuizData[fname][2];
+ NPointTotal=1*oRecordOfQuizData[fname][3];
+ var h=this.getField("ScoreData."+qzName);
+ h.value=Score+";"+NQuestions+";"+ptScore+";"+NPointTotal;
+ break;
+ case "ProbDist":
+ ProbDist=eval(oRecordOfQuizData[fname]);
+ break;
+ case "RightWrong":
+ RightWrong=eval(oRecordOfQuizData[fname]);
+ break;
+ default:
+ console.println("name not recognized:"+fname);
+ }
} else f.isCorrect=oRecordOfQuizData[fname];
}
}
diff --git a/macros/latex/contrib/eq-save/examples/eqsave-noname.pdf b/macros/latex/contrib/eq-save/examples/eqsave-noname.pdf
index 5ec4b41a8c..06bdb1635a 100644
--- a/macros/latex/contrib/eq-save/examples/eqsave-noname.pdf
+++ b/macros/latex/contrib/eq-save/examples/eqsave-noname.pdf
Binary files differ
diff --git a/macros/latex/contrib/esindex/README.md b/macros/latex/contrib/esindex/README.md
index df626eab5f..a2b357cd57 100644
--- a/macros/latex/contrib/esindex/README.md
+++ b/macros/latex/contrib/esindex/README.md
@@ -1,8 +1,35 @@
+## esindex
Generates automatically sort keys. Originally only for Spanish, but
version 1.5 provides tools for it to be adapted to other languages, so
-that, for example, \esindex{\textit{Höhe}} can be made equivalent to
+that, for example,
+```
+\esindex{\textit{Höhe}}
+```
+can be made equivalent to
+```
\index{Hoehe@\textit{Höhe}}
+```
+
+This package is based on the principle that sort keys should be
+generated in most cases in the context where the entry appears
+in the document.
+
+### Recent changes
+
+```
+1.6 2019-09-30
+ - Package option 'babel', which wraps each entry not in the main
+ language with \foreignlanguage (or other macro).
+
+1.5 2019-01-28
+ - Macro \esindexactual, to replace all ocurrences of an entry
+ with a new text.
+ - Package option 'nospanish', for it to be adapted to other
+ languages.
+ - \esindexreplace, \esindexlastchar, \esindexkey now work with
+ xe/lua.
+```
License: MIT
________
diff --git a/macros/latex/contrib/esindex/esindex.pdf b/macros/latex/contrib/esindex/esindex.pdf
index f94fd89434..d1e0de5e5f 100644
--- a/macros/latex/contrib/esindex/esindex.pdf
+++ b/macros/latex/contrib/esindex/esindex.pdf
Binary files differ
diff --git a/macros/latex/contrib/esindex/esindex.sty b/macros/latex/contrib/esindex/esindex.sty
index ac00170d3a..4594874db4 100644
--- a/macros/latex/contrib/esindex/esindex.sty
+++ b/macros/latex/contrib/esindex/esindex.sty
@@ -6,21 +6,8 @@
%
% Repository: https://github.com/jbezos/esindex
%
-% Changes
-%
-% 2006-05-12. Bug fixed. Missing accents in multilevel entries.
-% 2008-09-17. Made compatible with latest LaTeX versions (\IeC).
-% Added \'\i.
-% Package option ignorespaces.
-% Macro \ignorewords.
-% 2008-09-28. Added \everyesindex.
-% Macro \esindexsort.
-% 2019-01-25. Macro \esindexactual.
-% Package option nospanish.
-% Adapted to xe/lua, with:
-% Macros \esindexreplace, \esindexlastchar, \esindexkey
-
-\ProvidesPackage{esindex}[2019/01/28 v1.5 Spanish indexes]
+
+\ProvidesPackage{esindex}[2019/09/30 v1.6 Spanish indexes (and more)]
\def\esx@level{`\!}
\def\esx@actual{`\@}
@@ -36,6 +23,12 @@
\DeclareOption{nospanish}{\esx@spanishfalse}
+\newif\ifesx@babel
+
+\DeclareOption{babel}{%
+ \let\esindexlanguage\foreignlanguage
+ \esx@babeltrue}
+
\DeclareOption*{%
\@expandtwoargs\in@{=}{\CurrentOption}%
\ifin@
@@ -50,8 +43,8 @@
{\string`\expandafter\noexpand\csname\string#2\endcsname}}}
\def\esx@error{\PackageError{esindex}{Unknown index parameter}%
- {Except for ignorespaces, nospanish, replaceindex, options^^J%
- in this package ave the form parameter=value, where^^J%
+ {Except for ignorespaces, nospanish, babel, replaceindex, ^^J%
+ options in this package ave the form parameter=value, where^^J%
parameter stands for of the following MakeIndex ones:^^J%
encap, level, actual, quote}}
@@ -141,9 +134,17 @@
% Set actual, if there is a saved one with \esindexactual.
\def\esx@a{#1}%
\@ifundefined{esx@actual@\expandafter\strip@prefix\meaning\esx@a}%
- {\def\esx@a{#1}}%
+ {}%
{\expandafter\let\expandafter\esx@a
\csname esx@actual@\expandafter\strip@prefix\meaning\esx@a\endcsname}%
+ % Wrap with the language, if not main (babel option). This idea
+ % can be extended to consider more generic contexts
+ \ifesx@babel
+ \bbl@ifsamestring\languagename\bbl@main@language
+ {}%
+ {\@temptokena\expandafter{\esx@a}%
+ \edef\esx@a{\string\esindexlanguage{\languagename}{\the\@temptokena}}}%
+ \fi
% Add actual, and go to the next ! level
\toks@\expandafter{\esx@g}%
\def\esx@b{#2}%
diff --git a/macros/latex/contrib/esindex/esindex.tex b/macros/latex/contrib/esindex/esindex.tex
index 467d14ed4d..a654b2aa8d 100644
--- a/macros/latex/contrib/esindex/esindex.tex
+++ b/macros/latex/contrib/esindex/esindex.tex
@@ -7,31 +7,60 @@
% Repository: https://github.com/jbezos/esindex
%
-\documentclass{article}
+\documentclass[a4paper]{ltxguide}
+
\usepackage[english,spanish]{babel}
\spanishdatedel
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
-\title{Paquete \textsf{esindex}\footnote{Este
- archivo est\'a actualmente en la versión 1.5
- con fecha 2019-01-28.
- Esta copia del manual se compuso el~\today.}}
+\title{\textsf{esindex}\\\large 1.6\quad 2019-09-30}
-\author{Javier Bezos\footnote{Para comentarios y sugerencias:
-\texttt{http://www.texnia.com}.}}
+\author{Javier Bezos}
\raggedright
-\parskip=1ex
-
-\date{2019-01-28}
+\parskip=.8ex
+\advance\oddsidemargin-.7cm
+\advance\textwidth1.8cm
+\addtolength{\textheight}{3.5cm}
+\addtolength{\topmargin}{-2cm}
+
+\usepackage{xcolor,bera}
+
+\definecolor{notes}{rgb}{.75, .3, .3}%
+
+\makeatletter
+\def\@begintheorem#1#2{%
+ \list{}{}%
+ \global\advance\@listdepth\m@ne
+ \item[{\sffamily\bfseries\color{notes}\MakeUppercase{#1}}]}%
+\makeatother
+\newtheorem{warning}{Warning}
+\newtheorem{note}{Note}
+\newtheorem{example}{Example}
\begin{document}
-\maketitle
+\vspace*{1cm}
+{\fontsize{48}{48}\selectfont \color{notes}{esindex}\par}
+{\LARGE Generating automatically sort keys for \textit{MakeIndex}
+with \LaTeX\par}
+\vspace*{1ex}
+Version 1.6 (2019-09-30)\par
+Javier Bezos (\texttt{http://www.texnia.com})
+
+\vspace*{6ex}
+
+{\small\itshape Please, report any issues you find in
+ \texttt{https://github.com/jbezos/esindex/issues}.\par}
+
+This package defines the command \verb|\esindex|, which adds sort keys
+to the index entries for you. Although originally a specifically Spanish
+tool (so part of the documentation is in Spanish), the idea behind this
+package may be applied to other languages, and tools to adapt it are
+provided. They are explained below, section 2.
-This package defines the command \verb|\esindex| which eases writing
-Spanish index entries:
+So,
\begin{verbatim}
\esindex{cañón}
\end{verbatim}
@@ -39,17 +68,24 @@ is equivalent to
\begin{verbatim}
\index{can^^ffon@cañón}
\end{verbatim}
-As you can see, the package generates the sort key within \TeX{}
-itself, which has a number of advantages.
-Although it is a specifically Spanish tool (so most of the
-documentation is in Spanish), the idea behind this package may be
-applied to other languages, and tools to adapt it are provided, too.
-They are explained below.
+\verb|\index| is not touched at all (except if requested with the package
+option \verb|replaceindex|).
+
+As you can see, the package generates the sort key within \TeX{}
+itself, which has a number of advantages (and some disadvantages, of
+course).
Version 1.5 provides tools for other languages and adds support for
\textsf{luatex} and \textsf{xetex}.
+Version 1.6 adds a package option -- with \verb|babel| the `actual' value
+(ie, the text to be printed in the index) is wrapped with
+\verb|\foreignlanguage| if the current language is not the main one
+(this replacement comes after \verb|\esindexactual|). Actually, the
+macro is \verb|\esindexlanguage|, which by default is `let' to the
+\textsf{babel} macro.
+
\section{Spanish}
Este paquete ha sido diseñado para facilitar la escritura de índices
@@ -151,9 +187,9 @@ entradas idénticas.
\item La orden \verb|\esindexsort| permite predefinir claves asociadas
a entradas concretas, para ajustar su ordenación (lo que normalmente se
-consigue añadiendo texto adicional para que makeindex lo tenga en
-cuenta). Estas correspondencias deben darse antes de la aparición del
-primer \verb|\esindex| con ese término, y las claves se procesan
+consigue añadiendo texto adicional para que \textsf{makeindex} lo tenga
+en cuenta). Estas correspondencias deben darse antes de la aparición
+del primer \verb|\esindex| con ese término, y las claves se procesan
posteriormente con \verb|ignorespaces|, \verb|\ignorewords| y
\verb|\everyesindex|, si están activadas. Por ejemplo:
\begin{verbatim}
@@ -206,7 +242,7 @@ is still based on “Felipe II”, of course).
\end{enumerate}
-Do you find it chaotic? Well, you are right. After all this package is
+Do you find it chaotic? Well, you are right. After all this package was
for Spanish indexes with some readjustments for it to be adapted to
other languages. A general solution deserves another package. Feel free
to create one based on this package (MIT license), if you like.
@@ -237,14 +273,62 @@ for this precise expansion.
\item Make a direct replacement of some characters.
\end{enumerate}
+Note there is a pattern: first flatten the key by removing macros, and
+then the resulting unmarked text is processed to replace some chars.
+
Remember these changes are not shown -- they are used by
\textit{MakeIndex} to sort the entries. Note also replacements can be
-language dependent with the appropriate test (eg, with
+made language dependent with the appropriate test (eg, with
\textsf{iflang}).
As a convenience tool, \verb|\esindexlastchar| is \verb|^^ff| or
\verb|^^^^ffff|, depending on the engine.
+You can play with \textsf{lua} inside \verb|\everyesindex|, too. For
+example, to convert at once things like \textit{2,3-dimetilfenol} to
+\textit{dimetilfenol}:
+\begin{verbatim}
+\everyesindex{
+ \directlua{
+ token.set_macro('esindexkey',
+ string.gsub([[\esindexkey]], '^[-0-9,]+', ''))
+ }}
+\end{verbatim}
+
+It is just the concept (for example, it fails if the key contains
+\verb|]]|).
+
+\section{Final remarks}
+
+Indexing has many subtleties. Recommended readings are:
+\begin{itemize}
+ \item \textit{Guidelines for Alphabetical Arrangement of Letters and
+ Sorting of Numerals and Other Symbols},
+ \verb|https://www.niso.org/sites/default/files/2017-08/tr03.pdf|
+ \item \textit{Guidelines for Indexes and Related Information Retrieval
+ Devices},
+ \verb|https://www.niso.org/sites/default/files/2017-08/tr02.pdf|
+ \item \textit{Unicode Collation Algorithm},
+ \verb|https://unicode.org/reports/tr10/|,
+ \item \textit{Unicode Locale Data Markup Language (LDML)}, part 5,
+ \textit{Collation},
+ \verb|http://www.unicode.org/reports/tr35/tr35-collation.html|.
+\end{itemize}
+
+There are at least 3 tasks, from \LaTeX{} to a suitable key (eg,
+\verb|$\delta$| to \verb|delta| or whatever you want), collating these
+keys, and generate the formated index in a form \LaTeX{}
+understands.\footnote{There can be also sub-tasks. For example, the
+last task is best split in two sub-tasks, namely, first generate a
+sorted list of terms, and then format them, but unfortunately, most
+\texttt{ist} styles output a formatted list. We also need to format and
+collapse locators and so on.} With \textsf{makeindex} these 3 steps are
+intermingled, and so does \textsf{esindex}. This is another reason why
+a general solution deserves a completely new package. However, with
+some patience you can do many useful things with \textsf{esindex}, even
+sorting words in non-Latin scripts (at least, with the most basic
+rules).
+
\end{document}
MIT License
diff --git a/macros/latex/contrib/exsheets/README b/macros/latex/contrib/exsheets/README
index d300a96c27..7ac3267496 100644
--- a/macros/latex/contrib/exsheets/README
+++ b/macros/latex/contrib/exsheets/README
@@ -1,5 +1,5 @@
--------------------------------------------------------------------------
-EXSHEETS 2019/09/27 v0.21j
+EXSHEETS 2019/09/30 v0.21k
bundled packages:
the EXSHEETS package
Yet another package for the creation of exercise sheets
diff --git a/macros/latex/contrib/exsheets/exsheets.sty b/macros/latex/contrib/exsheets/exsheets.sty
index b323a8cc4e..206f63fc5c 100644
--- a/macros/latex/contrib/exsheets/exsheets.sty
+++ b/macros/latex/contrib/exsheets/exsheets.sty
@@ -28,8 +28,8 @@
\RequirePackage { expl3 , xparse }
\ExplSyntaxOn
-\tl_const:Nn \c_exsheets_date_tl {2019/09/27}
-\tl_const:Nn \c_exsheets_version_tl {0.21j}
+\tl_const:Nn \c_exsheets_date_tl {2019/09/30}
+\tl_const:Nn \c_exsheets_version_tl {0.21k}
\tl_const:Nn \c_exsheets_info_tl
{Yet~ another~ package~ for~ the~ creation~ of~ exercise~ sheets~ and~ exams.}
@@ -2395,7 +2395,7 @@
\tl_if_eq:nnTF {#3} { - }
{
\int_zero:N \l__exsheets_tmpa_int
- \int_set_eq:NN \l__exsheets_tmpb_int \c_ten_thousand
+ \int_set:Nn \l__exsheets_tmpb_int { 10000 }
\tl_if_blank:nF {#1} { \int_set:Nn \l__exsheets_tmpa_int {#1} }
\tl_if_blank:nF {#2} { \int_set:Nn \l__exsheets_tmpb_int {#2} }
\int_do_while:nn { \l__exsheets_tmpa_int <= \l__exsheets_tmpb_int }
@@ -2444,7 +2444,7 @@
\tl_if_eq:nnTF {#3} { - }
{
\int_zero:N \l__exsheets_tmpa_int
- \int_set_eq:NN \l__exsheets_tmpb_int \c_ten_thousand
+ \int_set:Nn \l__exsheets_tmpb_int { 10000 }
\tl_if_blank:nF {#1} { \int_set:Nn \l__exsheets_tmpa_int {#1} }
\tl_if_blank:nF {#2} { \int_set:Nn \l__exsheets_tmpb_int {#2} }
\int_do_while:nn { \l__exsheets_tmpa_int <= \l__exsheets_tmpb_int }
@@ -2576,7 +2576,7 @@
\tl_if_in:nnTF {#1} { @@@ }
{ \__exsheets_solutions_name:nnn { } {#2} {#3} }
{ \__exsheets_solutions_name:nnn {#1} {#2} {#3} }
- \tex_penalty:D \c_ten_thousand
+ \tex_penalty:D 10000 \scan_stop:
}
\cs_generate_variant:Nn \exsheets_solutions_print_name:nnn { V , VVV }
diff --git a/macros/latex/contrib/exsheets/exsheets_en.pdf b/macros/latex/contrib/exsheets/exsheets_en.pdf
index 33b2e9a4d7..4b7797d3f6 100644
--- a/macros/latex/contrib/exsheets/exsheets_en.pdf
+++ b/macros/latex/contrib/exsheets/exsheets_en.pdf
Binary files differ
diff --git a/macros/latex/contrib/fnpct/README b/macros/latex/contrib/fnpct/README
index 56c9d81000..0c82d70ad3 100644
--- a/macros/latex/contrib/fnpct/README
+++ b/macros/latex/contrib/fnpct/README
@@ -1,9 +1,9 @@
--------------------------------------------------------------------------
-the FNPCT package v0.4f
+the FNPCT package v0.4g
footnote kerning
-2019/02/17
+2019/09/30
--------------------------------------------------------------------------
Clemens Niederberger
Web: https://bitbucket.org/cgnieder/fnpct/
diff --git a/macros/latex/contrib/fnpct/fnpct.sty b/macros/latex/contrib/fnpct/fnpct.sty
index 69b4e08ebe..909a9d88ce 100644
--- a/macros/latex/contrib/fnpct/fnpct.sty
+++ b/macros/latex/contrib/fnpct/fnpct.sty
@@ -31,14 +31,14 @@
\RequirePackage { xparse , l3keys2e , scrlfile }
\ProvidesExplPackage
{fnpct}
- {2019/02/17}
- {0.4f}
+ {2019/09/30}
+ {0.4g}
{footnote kerning}
% --------------------------------------------------------------------------
% SETTING THINGS UP:
% this is plain's \nobreak:
-\cs_new:Npn \fnpct_no_break: { \tex_penalty:D \c_ten_thousand }
+\cs_new:Npn \fnpct_no_break: { \tex_penalty:D 10000 \scan_stop: }
% messages:
\cs_new_protected:Npn \fnpct_dont_mess_around:
@@ -874,11 +874,11 @@
\AdaptNoteMark \sidenotemark
}
%% the `sidenotes' package:
- \fnpct_treatment:nn { sidenotes }
- {
- \AdaptNoteOpt \sidenote \multsidenote
- \AdaptNoteMark \sidenotemark
- }
+ % \fnpct_treatment:nn { sidenotes }
+ % {
+ % \AdaptNoteOpt \sidenote \multsidenote
+ % \AdaptNoteMark \sidenotemark
+ % }
%% the `parnotes' package:
\fnpct_treatment:nn { parnotes }
{ \AdaptNote \parnote \multparnote }
@@ -1043,7 +1043,7 @@
\NewDocumentCommand \setfnpct { m }
{ \keys_set:nn { fnpct } { #1 } }
-\tex_endinput:D
+\file_input_stop:
% --------------------------------------------------------------------------
% HISTORY:
@@ -1113,18 +1113,10 @@
2015/04/23 v0.4d - fix for issue #7: polyglossia and french
2016/03/25 v0.4e - fix for issue #9
2019/02/17 v0.4f - fix for issues #13 and #19
+2019/09/30 v0.4g - update for expl3 deprecations
% --------------------------------------------------------------------------
% NOTES:
-- `footnote' package => not compatible => see todo
+- `footnote' package => not compatible
- `ednotes' package => not tested; who knows?
-
-% --------------------------------------------------------------------------
-% TODO:
-- localization: should there be different defaults for different languages?
- And who might provide enough information about conventions in other
- languages?
-- solve incompatibility with the `footnote' package
-- get this working (??) => http://tex.stackexchange.com/questions/54288/nested-endnotes
-- the `bigfoot' package provides \footnote+ and \footnote- -- let's see if we
- can add those functionalities again
+- `sidenotes' package => mot easily patchable, see pull request #1
diff --git a/macros/latex/contrib/fnpct/fnpct_en.pdf b/macros/latex/contrib/fnpct/fnpct_en.pdf
index 9fc0bf7eed..4eb46d4e93 100644
--- a/macros/latex/contrib/fnpct/fnpct_en.pdf
+++ b/macros/latex/contrib/fnpct/fnpct_en.pdf
Binary files differ
diff --git a/macros/latex/contrib/fnpct/fnpct_en.tex b/macros/latex/contrib/fnpct/fnpct_en.tex
index 244bdc9732..8eff9ac028 100644
--- a/macros/latex/contrib/fnpct/fnpct_en.tex
+++ b/macros/latex/contrib/fnpct/fnpct_en.tex
@@ -889,12 +889,12 @@ loading \fnpct.
\end{minipage}
\end{example}
-\subsection{sidenotes}
-The package \pkg{sidenotes}~\cite{pkg:sidenotes} is supported and its commands
-\cs*{sidenote} and \cs*{sidenotemark} are treated the same way as footnotes:
-they got an optional \sarg\ argument and the additional \cs*{multsidenote} is
-created. The option \option{multiple} turns all note commands into their
-mult-variant.
+% \subsection{sidenotes}
+% The package \pkg{sidenotes}~\cite{pkg:sidenotes} is supported and its commands
+% \cs*{sidenote} and \cs*{sidenotemark} are treated the same way as footnotes:
+% they got an optional \sarg\ argument and the additional \cs*{multsidenote} is
+% created. The option \option{multiple} turns all note commands into their
+% mult-variant.
\subsection{snotez}
The package \pkg{snotez}~\cite{pkg:snotez} is supported and its commands
diff --git a/macros/latex/contrib/ghsystem/README b/macros/latex/contrib/ghsystem/README
index 57e19fc82e..6d486c5d99 100644
--- a/macros/latex/contrib/ghsystem/README
+++ b/macros/latex/contrib/ghsystem/README
@@ -1,5 +1,5 @@
--------------------------------------------------------------------------
-the GHSYSTEM package v4.8 2016/07/16
+the GHSYSTEM package v4.8a 2019/09/30
globally harmonized system
@@ -8,7 +8,7 @@ Clemens Niederberger
Web: https://github.com/cgnieder/ghsystem/
E-Mail: contact@mychemistry.eu
--------------------------------------------------------------------------
-Copyright 2011-2016 Clemens Niederberger
+Copyright 2011--2019 Clemens Niederberger
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/ghsystem/ghsystem.sty b/macros/latex/contrib/ghsystem/ghsystem.sty
index 4583ad182d..3ff663d7c0 100644
--- a/macros/latex/contrib/ghsystem/ghsystem.sty
+++ b/macros/latex/contrib/ghsystem/ghsystem.sty
@@ -12,7 +12,7 @@
% If you have any ideas, questions, suggestions or bugs to report, please
% feel free to contact me.
% --------------------------------------------------------------------------
-% Copyright 2011-2016 Clemens Niederberger
+% Copyright 2011--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -29,8 +29,8 @@
\RequirePackage{ expl3, xparse, chemmacros }
\ExplSyntaxOn
-\tl_const:Nn \c_ghsystem_version_tl {4.8}
-\tl_const:Nn \c_ghsystem_date_tl {2016/07/16}
+\tl_const:Nn \c_ghsystem_version_tl {4.8a}
+\tl_const:Nn \c_ghsystem_date_tl {2019/09/30}
\tl_const:Nn \c_ghsystem_info_tl {globally~ harmonised~ system}
\ProvidesExplPackage
@@ -106,14 +106,14 @@
\cs_new:Npn \ghsystem_text: {}
\cs_new:Npn \ghsystem_dash:
{
- \tex_penalty:D \c_ten_thousand
+ \tex_penalty:D 10000 \scan_stop:
-
\skip_horizontal:N \c_zero_skip
}
\cs_new:Npn \ghsystem_slash:
{
- \tex_penalty:D \c_ten_thousand
+ \tex_penalty:D 10000 \scan_stop:
/
\skip_horizontal:N \c_zero_skip
}
@@ -208,19 +208,45 @@
{#3}
}
-\cs_new:Npn \ghsystem_load_language_file:n #1
+\cs_new_protected:Npn \__ghsystem_load_language:n #1
+ {
+ \seq_gput_right:Nn \g__ghsystem_loadad_languages_seq {#1}
+ \str_set:Nn \l_ghsystem_current_language_str {#1}
+ \@onefilewithoptions
+ {\c__ghsystem_definition_file_prefix_tl _ #1} [][]
+ \c__ghsystem_definition_file_extension_tl
+ }
+\cs_generate_variant:Nn \__ghsystem_load_language:n {V}
+\cs_generate_variant:Nn \file_if_exist:nTF {V}
+
+\cs_new_protected:Npn \__ghsystem_load_language_file:n #1
+ {
+ \tl_set:Nx \l__ghsystem_tmpa_tl { \@trnslt@language {#1} }
+ \file_if_exist:nTF
+ {
+ \c__ghsystem_definition_file_prefix_tl _ \l__ghsystem_tmpa_tl .
+ \c__ghsystem_definition_file_extension_tl
+ }
+ { \__ghsystem_load_language:V \l__ghsystem_tmpa_tl }
+ {
+ \tl_set:Nx \l__ghsystem_tmpa_tl { \baselanguage {#1} }
+ \file_if_exist:nTF
+ {
+ \c__ghsystem_definition_file_prefix_tl _ \l__ghsystem_tmpa_tl .
+ \c__ghsystem_definition_file_extension_tl
+ }
+ { \__ghsystem_load_language:V \l__ghsystem_tmpa_tl }
+ { \errorTODO }
+ }
+ }
+
+\cs_new_protected:Npn \ghsystem_load_language_file:n #1
{
\ghsystem_if_language_file_loaded:nF {#1}
{
\cs_if_eq:NNTF \@onefilewithoptions\@notprerr
{ \msg_error:nnn {ghsystem} {language-file} {#1} }
- {
- \seq_gput_right:Nx \g__ghsystem_loadad_languages_seq
- { \@trnslt@language {#1} }
- \@onefilewithoptions
- {\c__ghsystem_definition_file_prefix_tl _ #1} [][]
- \c__ghsystem_definition_file_extension_tl
- }
+ { \__ghsystem_load_language_file:n {#1} }
}
}
\cs_generate_variant:Nn \ghsystem_load_language_file:n { V }
@@ -230,7 +256,12 @@
\seq_if_in:NxTF \g__ghsystem_loadad_languages_seq
{ \@trnslt@language {#1} }
{ \prg_return_true: }
- { \prg_return_false: }
+ {
+ \seq_if_in:NxTF \g__ghsystem_loadad_languages_seq
+ { \baselanguage {#1} }
+ { \prg_return_true: }
+ { \prg_return_false: }
+ }
}
% TODO: an neuen Mechanismus anpassen:
@@ -238,7 +269,6 @@
{
\ghsystem_if_language_file_loaded:nF {#1}
{ \ghsystem_load_language_file:n {#1} }
- \str_set:Nx \l_ghsystem_current_language_str { \@trnslt@language {#1} }
\bool_set_true:N \l__ghsystem_language_file_loaded_bool
}
\cs_generate_variant:Nn \ghsystem_load_language:n { V }
@@ -638,9 +668,10 @@
\chemmacros_load_module:n {nomenclature}
-\chemmacros_integrate_package:nnn {} {ghsystem} {2016/01/11}
+\cs_generate_variant:Nn \chemmacros_integrate_package:nnn {nnV}
+\chemmacros_integrate_package:nnV {} {ghsystem} \c_ghsystem_date_tl
-\tex_endinput:D
+\file_input_stop:
% --------------------------------------------------------------------------
VERSION HISTORY
@@ -680,7 +711,6 @@ VERSION HISTORY
proper value
2016/07/16 - version 4.8 - French translations, thanks to Bréal Frédéric and
Beaude Aurélien
+2019/09/30 - version 4.8a - add \l_ghsystem_table_next_page_tl to the template
+ and the French translations
-% --------------------------------------------------------------------------
-% TODO:
-- add option to switch between `longtable` and `supertabular` for \ghslistall ?
diff --git a/macros/latex/contrib/ghsystem/ghsystem_en.pdf b/macros/latex/contrib/ghsystem/ghsystem_en.pdf
index a793a3c68b..a18645c640 100644
--- a/macros/latex/contrib/ghsystem/ghsystem_en.pdf
+++ b/macros/latex/contrib/ghsystem/ghsystem_en.pdf
Binary files differ
diff --git a/macros/latex/contrib/ghsystem/ghsystem_en.tex b/macros/latex/contrib/ghsystem/ghsystem_en.tex
index 718d5317c2..24b9749e91 100644
--- a/macros/latex/contrib/ghsystem/ghsystem_en.tex
+++ b/macros/latex/contrib/ghsystem/ghsystem_en.tex
@@ -16,7 +16,7 @@
% If you have any ideas, questions, suggestions or bugs to report, please
% feel free to contact me.
% --------------------------------------------------------------------------
-% Copyright 2011-2016 Clemens Niederberger
+% Copyright 2011--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/ghsystem/language/ghsystem_english.def b/macros/latex/contrib/ghsystem/language/ghsystem_english.def
index f2ef4dbabc..e5b2c92f3c 100644
--- a/macros/latex/contrib/ghsystem/language/ghsystem_english.def
+++ b/macros/latex/contrib/ghsystem/language/ghsystem_english.def
@@ -11,7 +11,7 @@
% - If you have any ideas, questions, suggestions or bugs to report, please
% - feel free to contact me.
% --------------------------------------------------------------------------
-% - Copyright 2011-2016 Clemens Niederberger
+% - Copyright 2011--2019 Clemens Niederberger
% -
% - This work may be distributed and/or modified under the
% - conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/ghsystem/language/ghsystem_french.def b/macros/latex/contrib/ghsystem/language/ghsystem_french.def
index f68425a646..14a7264e38 100644
--- a/macros/latex/contrib/ghsystem/language/ghsystem_french.def
+++ b/macros/latex/contrib/ghsystem/language/ghsystem_french.def
@@ -11,7 +11,7 @@
% - If you have any ideas, questions, suggestions or bugs to report, please
% - feel free to contact me.
% --------------------------------------------------------------------------
-% - Copyright 2011-2016 Clemens Niederberger
+% - Copyright 2011--2019 Clemens Niederberger
% -
% - This work may be distributed and/or modified under the
% - conditions of the LaTeX Project Public License, either version 1.3
@@ -29,17 +29,18 @@
% - Aurélien. Many thanks!
% FRENCH DEFINITIONS
-\ghsystemlanguagefile{french}{2016/07/16}
+\ghsystemlanguagefile{french}{2019/09/30}
% table head:
\tl_set:Nn \l_ghsystem_identifier_tl { num\'ero }
\tl_set:Nn \l_ghsystem_table_text_tl { phrases }
\tl_set:Nn \l_ghsystem_table_caption_tl { Toutes~ les~ phrases~ H,~ EUH~ et~ P }
+\tl_set:Nn \l_ghsystem_table_next_page_tl { suite~ sur~ la~ prochaine~ page }
\group_begin:
\char_set_catcode_active:N \^^@
\char_set_lccode:nn { `^^@ } { `: }
-\tl_to_lowercase:n
+\tex_lowercase:D
{
\group_end:
\tl_const:Nn \c_ghsystem_french_colon_tl { ^^@ }
diff --git a/macros/latex/contrib/ghsystem/language/ghsystem_german.def b/macros/latex/contrib/ghsystem/language/ghsystem_german.def
index c646d8e03b..82fbe3619c 100644
--- a/macros/latex/contrib/ghsystem/language/ghsystem_german.def
+++ b/macros/latex/contrib/ghsystem/language/ghsystem_german.def
@@ -11,7 +11,7 @@
% - If you have any ideas, questions, suggestions or bugs to report, please
% - feel free to contact me.
% --------------------------------------------------------------------------
-% - Copyright 2011-2016 Clemens Niederberger
+% - Copyright 2011--2019 Clemens Niederberger
% -
% - This work may be distributed and/or modified under the
% - conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/ghsystem/language/ghsystem_italian.def b/macros/latex/contrib/ghsystem/language/ghsystem_italian.def
index 739f2ae721..9159279f26 100644
--- a/macros/latex/contrib/ghsystem/language/ghsystem_italian.def
+++ b/macros/latex/contrib/ghsystem/language/ghsystem_italian.def
@@ -11,7 +11,7 @@
% - If you have any ideas, questions, suggestions or bugs to report, please
% - feel free to contact me.
% --------------------------------------------------------------------------
-% - Copyright 2011-2016 Clemens Niederberger
+% - Copyright 2011--2019 Clemens Niederberger
% -
% - This work may be distributed and/or modified under the
% - conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/ghsystem/language/ghsystem_langtemplate.def b/macros/latex/contrib/ghsystem/language/ghsystem_langtemplate.def
index a56e2a1117..0652875739 100644
--- a/macros/latex/contrib/ghsystem/language/ghsystem_langtemplate.def
+++ b/macros/latex/contrib/ghsystem/language/ghsystem_langtemplate.def
@@ -11,7 +11,7 @@
% - If you have any ideas, questions, suggestions or bugs to report, please
% - feel free to contact me.
% --------------------------------------------------------------------------
-% - Copyright 2011-2016 Clemens Niederberger
+% - Copyright 2011--2019 Clemens Niederberger
% -
% - This work may be distributed and/or modified under the
% - conditions of the LaTeX Project Public License, either version 1.3
@@ -76,6 +76,7 @@
\tl_set:Nn \l_ghsystem_identifier_tl { ... }
\tl_set:Nn \l_ghsystem_table_text_tl { ... }
\tl_set:Nn \l_ghsystem_table_caption_tl { ... }
+\tl_set:Nn \l_ghsystem_table_next_page_tl { ... }
% fill-in functions:
% <state route of exposure if it is conclusively proven that no other routes of exposure cause the hazard>.
diff --git a/macros/latex/contrib/ghsystem/language/ghsystem_spanish.def b/macros/latex/contrib/ghsystem/language/ghsystem_spanish.def
index d48e36264c..431bc02d1f 100644
--- a/macros/latex/contrib/ghsystem/language/ghsystem_spanish.def
+++ b/macros/latex/contrib/ghsystem/language/ghsystem_spanish.def
@@ -11,7 +11,7 @@
% - If you have any ideas, questions, suggestions or bugs to report, please
% - feel free to contact me.
% --------------------------------------------------------------------------
-% - Copyright 2011-2016 Clemens Niederberger
+% - Copyright 2011--2019 Clemens Niederberger
% -
% - This work may be distributed and/or modified under the
% - conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/l3build/CHANGELOG.md b/macros/latex/contrib/l3build/CHANGELOG.md
index e2102c8b4f..330e7b73ef 100644
--- a/macros/latex/contrib/l3build/CHANGELOG.md
+++ b/macros/latex/contrib/l3build/CHANGELOG.md
@@ -7,6 +7,17 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2019-09-30]
+
+### Added
+
+- New `flattentds` variable for controlling complex TDS structures
+- Additional notes on `texmfdir`
+
+### Fixed
+
+- Copy TDS files inside subdirectories (fixes #100)
+
## [2019-09-29]
### Fixed
@@ -349,7 +360,8 @@ this project uses date-based 'snapshot' version identifiers.
- Rationalise short option names: removed `-d`, `-E`, `-r`
- Target `cmdcheck`: specific to LaTeX3 kernel work
-[Unreleased]: https://github.com/latex3/l3build/compare/2019-09-29...HEAD
+[Unreleased]: https://github.com/latex3/l3build/compare/2019-09-30...HEAD
+[2019-09-30]: https://github.com/latex3/l3build/compare/2019-09-29...2019-09-30
[2019-09-29]: https://github.com/latex3/l3build/compare/2019-09-28...2019-09-29
[2019-09-28]: https://github.com/latex3/l3build/compare/2019-09-25...2019-09-28
[2019-09-25]: https://github.com/latex3/l3build/compare/2019-09-18...2019-09-25
diff --git a/macros/latex/contrib/l3build/README.md b/macros/latex/contrib/l3build/README.md
index 44e890e8d6..66cc0e28ec 100644
--- a/macros/latex/contrib/l3build/README.md
+++ b/macros/latex/contrib/l3build/README.md
@@ -1,7 +1,7 @@
l3build: a testing and building system for LaTeX3
=================================================
-Release 2019-09-29
+Release 2019-09-30
Overview
--------
diff --git a/macros/latex/contrib/l3build/l3build-install.lua b/macros/latex/contrib/l3build/l3build-install.lua
index d2222c8561..77338b67a0 100644
--- a/macros/latex/contrib/l3build/l3build-install.lua
+++ b/macros/latex/contrib/l3build/l3build-install.lua
@@ -115,27 +115,36 @@ function install_files(target,full,dry_run)
end
dir = dir .. (subdir and ("/" .. subdir) or "")
local filenames = { }
+ local sourcepaths = { }
local paths = { }
-- Generate a file list and include the directory
for _,glob_table in pairs(files) do
for _,glob in pairs(glob_table) do
for file,_ in pairs(tree(source,glob)) do
-- Just want the name
- local file = gsub(file,"^%./","")
+ local path,filename = splitpath(file)
+ local sourcepath = "/"
+ if path == "." then
+ sourcepaths[filename] = source
+ else
+ path = gsub(path,"^%.","")
+ sourcepaths[filename] = source .. path
+ if not flattentds then sourcepath = path .. "/" end
+ end
local matched = false
for _,location in ipairs(tdslocations) do
local path,glob = splitpath(location)
local pattern = glob_to_pattern(glob)
- if match(file,pattern) then
+ if match(filename,pattern) then
insert(paths,path)
- insert(filenames,path .. "/" .. file)
+ insert(filenames,path .. sourcepath .. filename)
matched = true
break
end
end
if not matched then
insert(paths,dir)
- insert(filenames,dir .. "/" .. file)
+ insert(filenames,dir .. sourcepath .. filename)
end
end
end
@@ -155,7 +164,9 @@ function install_files(target,full,dry_run)
print("- " .. file)
else
local path,file = splitpath(file)
- errorlevel = cp(file,source,target .. "/" .. path)
+ local installpath = target .. "/" .. path
+ mkdir(installpath)
+ errorlevel = cp(file,sourcepaths[file],installpath)
if errorlevel ~= 0 then return errorlevel end
end
end
diff --git a/macros/latex/contrib/l3build/l3build-variables.lua b/macros/latex/contrib/l3build/l3build-variables.lua
index 11186c0e3f..06cfdd34af 100644
--- a/macros/latex/contrib/l3build/l3build-variables.lua
+++ b/macros/latex/contrib/l3build/l3build-variables.lua
@@ -177,6 +177,9 @@ epoch = epoch or 1463734800
if flatten == nil then
flatten = true
end
+if flattentds == nil then
+ flattentds = true
+end
maxprintline = maxprintline or 79
packtdszip = packtdszip or false
typesetcmds = typesetcmds or ""
diff --git a/macros/latex/contrib/l3build/l3build.1 b/macros/latex/contrib/l3build/l3build.1
index 8812fdb603..3317114e5b 100644
--- a/macros/latex/contrib/l3build/l3build.1
+++ b/macros/latex/contrib/l3build/l3build.1
@@ -1,4 +1,4 @@
-.TH l3build 1 "2019-09-29"
+.TH l3build 1 "2019-09-30"
.SH NAME
l3build \- Checking and building packages
.SH SYNOPSIS
diff --git a/macros/latex/contrib/l3build/l3build.dtx b/macros/latex/contrib/l3build/l3build.dtx
index dfaca41187..5c1f0db5ed 100644
--- a/macros/latex/contrib/l3build/l3build.dtx
+++ b/macros/latex/contrib/l3build/l3build.dtx
@@ -147,6 +147,7 @@
\luavarset{ctanzip}{ctanpkg ... "-ctan"}{Name of the zip file (without extension) created for upload to CTAN}
\luavarset{epoch} {1463734800} {Epoch (Unix date) to set for test runs}
\luavarset{flatten} {true} {Switch to flatten any source structure when sending to CTAN}
+\luavarset{flattentds} {true} {Switch to flatten any source structure when creating a TDS structure}
\luavarset{maxprintline}{79} {Length of line to use in log files}
\luavarset{packtdszip} {false} {Switch to build a TDS-style zip file for CTAN}
\luavarset{typesetcmds} {""} {Instructions to be passed to \TeX{} when doing typesetting}
@@ -230,7 +231,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-29}
+% \date{Released 2019-09-30}
%
% \maketitle
% \tableofcontents
@@ -401,6 +402,12 @@
% Options passed to the binary are defined in the variable \var{checkopts}.
%
% By default, |texmf| trees are searched for input files when checking. This can be disabled by setting \var{checksearch} to |false|: isolation provides confidence that the tests cannot accidentally be running with incorrect files installed in the main distribution or |hometexmf|.
+%
+% The \var{texmfdir} variable sets a directory which is made available for
+% recursive searching \emph{in addition} to any files copied from
+% \var{supportdir}. No subdivison of \var{texmfdir} is attempted, thus it
+% should not contain multiple files with the same name. The \var{texmfdir}
+% is made available both to checking and typesetting.
% \end{buildcmd}
%
%
@@ -768,7 +775,8 @@
% be useful in these cases: this enables recursive searching in the appropriate
% tree locations. With the standard settings, this structure will be removed
% when creating a CTAN release: the variable \var{flatten} may be
-% used to control this behavior.
+% used to control this behavior. The \var{flattentds} setting controls
+% the same concept for TDS creation.
%
% A series of example layouts and matching |build.lua| files are available from
% \url{https://github.com/latex3/l3build/tree/master/examples}.
diff --git a/macros/latex/contrib/l3build/l3build.lua b/macros/latex/contrib/l3build/l3build.lua
index 1696ef1872..7f0f9dced9 100644..100755
--- a/macros/latex/contrib/l3build/l3build.lua
+++ b/macros/latex/contrib/l3build/l3build.lua
@@ -25,7 +25,7 @@ for those people who are interested.
--]]
-- Version information
-release_date = "2019-09-29"
+release_date = "2019-09-30"
-- File operations are aided by the LuaFileSystem module
local lfs = require("lfs")
diff --git a/macros/latex/contrib/l3build/l3build.pdf b/macros/latex/contrib/l3build/l3build.pdf
index 7e9ddb0aed..41594c4ebb 100644
--- a/macros/latex/contrib/l3build/l3build.pdf
+++ b/macros/latex/contrib/l3build/l3build.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/CHANGELOG.md b/macros/latex/contrib/l3kernel/CHANGELOG.md
index 4e8c9fc093..8196a8b410 100644
--- a/macros/latex/contrib/l3kernel/CHANGELOG.md
+++ b/macros/latex/contrib/l3kernel/CHANGELOG.md
@@ -7,6 +7,8 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2019-09-30]
+
## [2019-09-28]
### Changed
@@ -527,7 +529,8 @@ this project uses date-based 'snapshot' version identifiers.
- Step func­tions have been added for dim vari­ables,
e.g. `\dim_step_in­line:nnnn`
-[Unreleased]: https://github.com/latex3/latex3/compare/2019-09-28...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2019-09-30...HEAD
+[2019-09-30]: https://github.com/latex3/latex3/compare/2019-09-28...2019-09-30
[2019-09-28]: https://github.com/latex3/latex3/compare/2019-09-19...2019-09-28
[2019-09-19]: https://github.com/latex3/latex3/compare/2019-09-08...2019-09-19
[2019-09-08]: https://github.com/latex3/latex3/compare/2019-09-05...2019-09-08
diff --git a/macros/latex/contrib/l3kernel/README.md b/macros/latex/contrib/l3kernel/README.md
index 1937491098..8a0d11f63f 100644
--- a/macros/latex/contrib/l3kernel/README.md
+++ b/macros/latex/contrib/l3kernel/README.md
@@ -1,7 +1,7 @@
LaTeX3 Programming Conventions
==============================
-Release 2019-09-28
+Release 2019-09-30
Overview
--------
diff --git a/macros/latex/contrib/l3kernel/expl3.dtx b/macros/latex/contrib/l3kernel/expl3.dtx
index 64cb393585..a311b7e3eb 100644
--- a/macros/latex/contrib/l3kernel/expl3.dtx
+++ b/macros/latex/contrib/l3kernel/expl3.dtx
@@ -23,7 +23,7 @@
% for those people who are interested.
%
%<*driver|generic|package>
-\def\ExplFileDate{2019-09-28}%
+\def\ExplFileDate{2019-09-30}%
%</driver|generic|package>
%<*driver>
\documentclass[full]{l3doc}
@@ -51,7 +51,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
@@ -1300,7 +1300,7 @@
\tl_to_str:N \@currname
\tl_to_str:N \@currext
}
- \tl_put_left:Nx \l__expl_status_stack_tl
+ \tl_put_left:Nx \l_@@_status_stack_tl
{
\bool_if:NTF \l__kernel_expl_bool
{ 1 }
@@ -1321,9 +1321,9 @@
\tl_put_right:Nn \@popfilename
{
\__kernel_file_input_pop:
- \tl_if_empty:NTF \l__expl_status_stack_tl
+ \tl_if_empty:NTF \l_@@_status_stack_tl
{ \ExplSyntaxOff }
- { \exp_after:wN \@@_status_pop:w \l__expl_status_stack_tl \q_stop }
+ { \exp_after:wN \@@_status_pop:w \l_@@_status_stack_tl \q_stop }
}
% \end{macrocode}
% The pop auxiliary function removes the first item from the stack,
@@ -1332,7 +1332,7 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_status_pop:w #1#2 \q_stop
{
- \tl_set:Nn \l__expl_status_stack_tl {#2}
+ \tl_set:Nn \l_@@_status_stack_tl {#2}
\int_if_odd:nTF {#1}
{ \ExplSyntaxOn }
{ \ExplSyntaxOff }
@@ -1341,13 +1341,13 @@
% \end{macro}
% \end{macro}
%
-% \begin{variable}{\l__expl_status_stack_tl}
+% \begin{variable}{\l_@@_status_stack_tl}
% As \pkg{expl3} itself cannot be loaded with the code environment
% already active, at the end of the package \cs{ExplSyntaxOff} can
% safely be called.
% \begin{macrocode}
-\tl_new:N \l__expl_status_stack_tl
-\tl_set:Nn \l__expl_status_stack_tl { 0 }
+\tl_new:N \l_@@_status_stack_tl
+\tl_set:Nn \l_@@_status_stack_tl { 0 }
% \end{macrocode}
% \end{variable}
%
diff --git a/macros/latex/contrib/l3kernel/expl3.pdf b/macros/latex/contrib/l3kernel/expl3.pdf
index 9238eea6fc..8c789f813a 100644
--- a/macros/latex/contrib/l3kernel/expl3.pdf
+++ b/macros/latex/contrib/l3kernel/expl3.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/interface3.pdf b/macros/latex/contrib/l3kernel/interface3.pdf
index 86d1535a11..e7883a270c 100644
--- a/macros/latex/contrib/l3kernel/interface3.pdf
+++ b/macros/latex/contrib/l3kernel/interface3.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/interface3.tex b/macros/latex/contrib/l3kernel/interface3.tex
index 98a236cb65..a7469bf2ed 100644
--- a/macros/latex/contrib/l3kernel/interface3.tex
+++ b/macros/latex/contrib/l3kernel/interface3.tex
@@ -54,7 +54,7 @@ for those people who are interested.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2019-09-28}
+\date{Released 2019-09-30}
\pagenumbering{roman}
\maketitle
diff --git a/macros/latex/contrib/l3kernel/l3alloc.dtx b/macros/latex/contrib/l3kernel/l3alloc.dtx
index 30f1859170..0600b35399 100644
--- a/macros/latex/contrib/l3kernel/l3alloc.dtx
+++ b/macros/latex/contrib/l3kernel/l3alloc.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3basics.dtx b/macros/latex/contrib/l3kernel/l3basics.dtx
index 002e524aa8..908aa45fdd 100644
--- a/macros/latex/contrib/l3kernel/l3basics.dtx
+++ b/macros/latex/contrib/l3kernel/l3basics.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3bootstrap.dtx b/macros/latex/contrib/l3kernel/l3bootstrap.dtx
index 8dd79bc523..6d6a3996d8 100644
--- a/macros/latex/contrib/l3kernel/l3bootstrap.dtx
+++ b/macros/latex/contrib/l3kernel/l3bootstrap.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3box.dtx b/macros/latex/contrib/l3kernel/l3box.dtx
index 815f0ca6df..46c94babd2 100644
--- a/macros/latex/contrib/l3kernel/l3box.dtx
+++ b/macros/latex/contrib/l3kernel/l3box.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3candidates.dtx b/macros/latex/contrib/l3kernel/l3candidates.dtx
index d726722ad1..e443aa27c4 100644
--- a/macros/latex/contrib/l3kernel/l3candidates.dtx
+++ b/macros/latex/contrib/l3kernel/l3candidates.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3clist.dtx b/macros/latex/contrib/l3kernel/l3clist.dtx
index 3b3b8041ab..666b00f261 100644
--- a/macros/latex/contrib/l3kernel/l3clist.dtx
+++ b/macros/latex/contrib/l3kernel/l3clist.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3coffins.dtx b/macros/latex/contrib/l3kernel/l3coffins.dtx
index 92ee217586..92478082eb 100644
--- a/macros/latex/contrib/l3kernel/l3coffins.dtx
+++ b/macros/latex/contrib/l3kernel/l3coffins.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3color-base.dtx b/macros/latex/contrib/l3kernel/l3color-base.dtx
index 3b58b7e280..adde016182 100644
--- a/macros/latex/contrib/l3kernel/l3color-base.dtx
+++ b/macros/latex/contrib/l3kernel/l3color-base.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3debug.dtx b/macros/latex/contrib/l3kernel/l3debug.dtx
index 55b16ec0e2..6d423a94ee 100644
--- a/macros/latex/contrib/l3kernel/l3debug.dtx
+++ b/macros/latex/contrib/l3kernel/l3debug.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3deprecation.dtx b/macros/latex/contrib/l3kernel/l3deprecation.dtx
index 82a770ad80..56f2ac701d 100644
--- a/macros/latex/contrib/l3kernel/l3deprecation.dtx
+++ b/macros/latex/contrib/l3kernel/l3deprecation.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3doc.dtx b/macros/latex/contrib/l3kernel/l3doc.dtx
index 6932483f93..050b192a16 100644
--- a/macros/latex/contrib/l3kernel/l3doc.dtx
+++ b/macros/latex/contrib/l3kernel/l3doc.dtx
@@ -79,7 +79,7 @@ and all files in that bundle must be distributed together.
%
% \title{The \cls{l3doc} class}
% \author{\Team}
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
% \maketitle
% \tableofcontents
%
diff --git a/macros/latex/contrib/l3kernel/l3docstrip.dtx b/macros/latex/contrib/l3kernel/l3docstrip.dtx
index 0c0980060e..a88fa12e46 100644
--- a/macros/latex/contrib/l3kernel/l3docstrip.dtx
+++ b/macros/latex/contrib/l3kernel/l3docstrip.dtx
@@ -63,7 +63,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3docstrip.pdf b/macros/latex/contrib/l3kernel/l3docstrip.pdf
index 53f2a49d0d..fb042e2af1 100644
--- a/macros/latex/contrib/l3kernel/l3docstrip.pdf
+++ b/macros/latex/contrib/l3kernel/l3docstrip.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3expan.dtx b/macros/latex/contrib/l3kernel/l3expan.dtx
index ab72686865..06c78048ad 100644
--- a/macros/latex/contrib/l3kernel/l3expan.dtx
+++ b/macros/latex/contrib/l3kernel/l3expan.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3file.dtx b/macros/latex/contrib/l3kernel/l3file.dtx
index cea19957df..40a93f5715 100644
--- a/macros/latex/contrib/l3kernel/l3file.dtx
+++ b/macros/latex/contrib/l3kernel/l3file.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
@@ -2607,7 +2607,7 @@
\cs_new:Npn \@@_full_name_aux:nn #1#2
{
\exp_args:Ne \@@_full_name_aux:n
- { \__kernel_file_name_quote:e { \tl_to_str:n {#2} #1 } }
+ { \__kernel_file_name_quote:e { \tl_to_str:n {#2} / #1 } }
}
\cs_new:Npn \@@_full_name_aux:n #1
{
@@ -2620,7 +2620,7 @@
}
}
}
-\cs_new:Npn \@@_file_name_cleanup:w #1 \@@_file_name_end:n #2 { }
+\cs_new:Npn \@@_file_name_cleanup:w #1 \@@_file_name_end: { }
\cs_new:Npn \@@_file_name_end: { }
% \end{macrocode}
% As \TeX{} automatically adds |.tex| if there is no extension,
diff --git a/macros/latex/contrib/l3kernel/l3final.dtx b/macros/latex/contrib/l3kernel/l3final.dtx
index 21534789e3..9565e313c5 100644
--- a/macros/latex/contrib/l3kernel/l3final.dtx
+++ b/macros/latex/contrib/l3kernel/l3final.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3flag.dtx b/macros/latex/contrib/l3kernel/l3flag.dtx
index 6f86d193c1..013558817a 100644
--- a/macros/latex/contrib/l3kernel/l3flag.dtx
+++ b/macros/latex/contrib/l3kernel/l3flag.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-assign.dtx b/macros/latex/contrib/l3kernel/l3fp-assign.dtx
index 6f65566c3e..e27e29a90b 100644
--- a/macros/latex/contrib/l3kernel/l3fp-assign.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-assign.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
% \maketitle
%
% \begin{documentation}
diff --git a/macros/latex/contrib/l3kernel/l3fp-aux.dtx b/macros/latex/contrib/l3kernel/l3fp-aux.dtx
index a7cc9a2e95..755e5735b4 100644
--- a/macros/latex/contrib/l3kernel/l3fp-aux.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-aux.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-basics.dtx b/macros/latex/contrib/l3kernel/l3fp-basics.dtx
index 03d127cc24..0ab701078a 100644
--- a/macros/latex/contrib/l3kernel/l3fp-basics.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-basics.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-convert.dtx b/macros/latex/contrib/l3kernel/l3fp-convert.dtx
index cdf2868c81..4a6de12835 100644
--- a/macros/latex/contrib/l3kernel/l3fp-convert.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-convert.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-expo.dtx b/macros/latex/contrib/l3kernel/l3fp-expo.dtx
index eb764de3b8..f6e8809402 100644
--- a/macros/latex/contrib/l3kernel/l3fp-expo.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-expo.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-extended.dtx b/macros/latex/contrib/l3kernel/l3fp-extended.dtx
index b716765b48..5f8a75b080 100644
--- a/macros/latex/contrib/l3kernel/l3fp-extended.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-extended.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-logic.dtx b/macros/latex/contrib/l3kernel/l3fp-logic.dtx
index 7414c7d31c..88c9deea1b 100644
--- a/macros/latex/contrib/l3kernel/l3fp-logic.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-logic.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-parse.dtx b/macros/latex/contrib/l3kernel/l3fp-parse.dtx
index 71258ad48c..ee162e22d5 100644
--- a/macros/latex/contrib/l3kernel/l3fp-parse.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-parse.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-random.dtx b/macros/latex/contrib/l3kernel/l3fp-random.dtx
index 64dc995c04..5c2237cb31 100644
--- a/macros/latex/contrib/l3kernel/l3fp-random.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-random.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-round.dtx b/macros/latex/contrib/l3kernel/l3fp-round.dtx
index 1ef386ad6e..3e0bc28943 100644
--- a/macros/latex/contrib/l3kernel/l3fp-round.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-round.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-traps.dtx b/macros/latex/contrib/l3kernel/l3fp-traps.dtx
index 7e0cf605ee..90270c1668 100644
--- a/macros/latex/contrib/l3kernel/l3fp-traps.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-traps.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
% \maketitle
%
% \begin{documentation}
diff --git a/macros/latex/contrib/l3kernel/l3fp-trig.dtx b/macros/latex/contrib/l3kernel/l3fp-trig.dtx
index f490649563..abfbb289b8 100644
--- a/macros/latex/contrib/l3kernel/l3fp-trig.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-trig.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp.dtx b/macros/latex/contrib/l3kernel/l3fp.dtx
index 4c0451d726..d6a8270034 100644
--- a/macros/latex/contrib/l3kernel/l3fp.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp.dtx
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fparray.dtx b/macros/latex/contrib/l3kernel/l3fparray.dtx
index 4dcf58decf..4eabaaf227 100644
--- a/macros/latex/contrib/l3kernel/l3fparray.dtx
+++ b/macros/latex/contrib/l3kernel/l3fparray.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3int.dtx b/macros/latex/contrib/l3kernel/l3int.dtx
index 042f4d656c..833f4b1e20 100644
--- a/macros/latex/contrib/l3kernel/l3int.dtx
+++ b/macros/latex/contrib/l3kernel/l3int.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3intarray.dtx b/macros/latex/contrib/l3kernel/l3intarray.dtx
index 8b998f6e0e..40f4cea35f 100644
--- a/macros/latex/contrib/l3kernel/l3intarray.dtx
+++ b/macros/latex/contrib/l3kernel/l3intarray.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3kernel-functions.dtx b/macros/latex/contrib/l3kernel/l3kernel-functions.dtx
index e5b0ce80cd..47631ec4bc 100644
--- a/macros/latex/contrib/l3kernel/l3kernel-functions.dtx
+++ b/macros/latex/contrib/l3kernel/l3kernel-functions.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3keys.dtx b/macros/latex/contrib/l3kernel/l3keys.dtx
index a7097c3d5b..b9bff1511f 100644
--- a/macros/latex/contrib/l3kernel/l3keys.dtx
+++ b/macros/latex/contrib/l3kernel/l3keys.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3legacy.dtx b/macros/latex/contrib/l3kernel/l3legacy.dtx
index 87695c7601..06657dcddf 100644
--- a/macros/latex/contrib/l3kernel/l3legacy.dtx
+++ b/macros/latex/contrib/l3kernel/l3legacy.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3luatex.dtx b/macros/latex/contrib/l3kernel/l3luatex.dtx
index f499317f98..80ee007613 100644
--- a/macros/latex/contrib/l3kernel/l3luatex.dtx
+++ b/macros/latex/contrib/l3kernel/l3luatex.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3msg.dtx b/macros/latex/contrib/l3kernel/l3msg.dtx
index 717002aaca..8335c43043 100644
--- a/macros/latex/contrib/l3kernel/l3msg.dtx
+++ b/macros/latex/contrib/l3kernel/l3msg.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3names.dtx b/macros/latex/contrib/l3kernel/l3names.dtx
index 674f69815e..0e130a5664 100644
--- a/macros/latex/contrib/l3kernel/l3names.dtx
+++ b/macros/latex/contrib/l3kernel/l3names.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3prefixes.pdf b/macros/latex/contrib/l3kernel/l3prefixes.pdf
index 79f0770ee6..a7ec7b442a 100644
--- a/macros/latex/contrib/l3kernel/l3prefixes.pdf
+++ b/macros/latex/contrib/l3kernel/l3prefixes.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3prg.dtx b/macros/latex/contrib/l3kernel/l3prg.dtx
index 14a9a789b6..34df225f22 100644
--- a/macros/latex/contrib/l3kernel/l3prg.dtx
+++ b/macros/latex/contrib/l3kernel/l3prg.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3prop.dtx b/macros/latex/contrib/l3kernel/l3prop.dtx
index a49e006089..1e96ab3799 100644
--- a/macros/latex/contrib/l3kernel/l3prop.dtx
+++ b/macros/latex/contrib/l3kernel/l3prop.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3quark.dtx b/macros/latex/contrib/l3kernel/l3quark.dtx
index bbeac9461b..faf90acf0c 100644
--- a/macros/latex/contrib/l3kernel/l3quark.dtx
+++ b/macros/latex/contrib/l3kernel/l3quark.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3regex.dtx b/macros/latex/contrib/l3kernel/l3regex.dtx
index 13faf8fc86..76415e1314 100644
--- a/macros/latex/contrib/l3kernel/l3regex.dtx
+++ b/macros/latex/contrib/l3kernel/l3regex.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3seq.dtx b/macros/latex/contrib/l3kernel/l3seq.dtx
index 7dfd5d3ba6..ede24233ce 100644
--- a/macros/latex/contrib/l3kernel/l3seq.dtx
+++ b/macros/latex/contrib/l3kernel/l3seq.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3skip.dtx b/macros/latex/contrib/l3kernel/l3skip.dtx
index da8a06f38b..cc71cbd8f8 100644
--- a/macros/latex/contrib/l3kernel/l3skip.dtx
+++ b/macros/latex/contrib/l3kernel/l3skip.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3sort.dtx b/macros/latex/contrib/l3kernel/l3sort.dtx
index 826117c512..57df7c0fb5 100644
--- a/macros/latex/contrib/l3kernel/l3sort.dtx
+++ b/macros/latex/contrib/l3kernel/l3sort.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3str-convert.dtx b/macros/latex/contrib/l3kernel/l3str-convert.dtx
index 289f57f144..c54db667d9 100644
--- a/macros/latex/contrib/l3kernel/l3str-convert.dtx
+++ b/macros/latex/contrib/l3kernel/l3str-convert.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3str.dtx b/macros/latex/contrib/l3kernel/l3str.dtx
index 7754289843..70f9623622 100644
--- a/macros/latex/contrib/l3kernel/l3str.dtx
+++ b/macros/latex/contrib/l3kernel/l3str.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3styleguide.pdf b/macros/latex/contrib/l3kernel/l3styleguide.pdf
index ad8f8ab034..df9dc880c8 100644
--- a/macros/latex/contrib/l3kernel/l3styleguide.pdf
+++ b/macros/latex/contrib/l3kernel/l3styleguide.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3styleguide.tex b/macros/latex/contrib/l3kernel/l3styleguide.tex
index 42093dd42f..186fadcfde 100644
--- a/macros/latex/contrib/l3kernel/l3styleguide.tex
+++ b/macros/latex/contrib/l3kernel/l3styleguide.tex
@@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2019-09-28}
+\date{Released 2019-09-30}
\begin{document}
diff --git a/macros/latex/contrib/l3kernel/l3syntax-changes.pdf b/macros/latex/contrib/l3kernel/l3syntax-changes.pdf
index 26eb195778..02c06ac986 100644
--- a/macros/latex/contrib/l3kernel/l3syntax-changes.pdf
+++ b/macros/latex/contrib/l3kernel/l3syntax-changes.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3syntax-changes.tex b/macros/latex/contrib/l3kernel/l3syntax-changes.tex
index 2742ef5ee9..40060cf73c 100644
--- a/macros/latex/contrib/l3kernel/l3syntax-changes.tex
+++ b/macros/latex/contrib/l3kernel/l3syntax-changes.tex
@@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2019-09-28}
+\date{Released 2019-09-30}
\newcommand{\TF}{\textit{(TF)}}
diff --git a/macros/latex/contrib/l3kernel/l3sys.dtx b/macros/latex/contrib/l3kernel/l3sys.dtx
index 73d4e787f7..7d696c2785 100644
--- a/macros/latex/contrib/l3kernel/l3sys.dtx
+++ b/macros/latex/contrib/l3kernel/l3sys.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3term-glossary.pdf b/macros/latex/contrib/l3kernel/l3term-glossary.pdf
index cc7ce4b0be..c950debcf5 100644
--- a/macros/latex/contrib/l3kernel/l3term-glossary.pdf
+++ b/macros/latex/contrib/l3kernel/l3term-glossary.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3term-glossary.tex b/macros/latex/contrib/l3kernel/l3term-glossary.tex
index a499c943fb..4eb0ac92ab 100644
--- a/macros/latex/contrib/l3kernel/l3term-glossary.tex
+++ b/macros/latex/contrib/l3kernel/l3term-glossary.tex
@@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2019-09-28}
+\date{Released 2019-09-30}
\newcommand{\TF}{\textit{(TF)}}
diff --git a/macros/latex/contrib/l3kernel/l3tl-analysis.dtx b/macros/latex/contrib/l3kernel/l3tl-analysis.dtx
index 07ed2c8f57..6f16f0c82e 100644
--- a/macros/latex/contrib/l3kernel/l3tl-analysis.dtx
+++ b/macros/latex/contrib/l3kernel/l3tl-analysis.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3tl.dtx b/macros/latex/contrib/l3kernel/l3tl.dtx
index c7728a33f2..e6f21cc21f 100644
--- a/macros/latex/contrib/l3kernel/l3tl.dtx
+++ b/macros/latex/contrib/l3kernel/l3tl.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3token.dtx b/macros/latex/contrib/l3kernel/l3token.dtx
index df41d89943..e876b75260 100644
--- a/macros/latex/contrib/l3kernel/l3token.dtx
+++ b/macros/latex/contrib/l3kernel/l3token.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3unicode.dtx b/macros/latex/contrib/l3kernel/l3unicode.dtx
index c7e465576a..39f9948eed 100644
--- a/macros/latex/contrib/l3kernel/l3unicode.dtx
+++ b/macros/latex/contrib/l3kernel/l3unicode.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-09-28}
+% \date{Released 2019-09-30}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/source3.pdf b/macros/latex/contrib/l3kernel/source3.pdf
index 5243735d86..528d4d7b07 100644
--- a/macros/latex/contrib/l3kernel/source3.pdf
+++ b/macros/latex/contrib/l3kernel/source3.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/source3.tex b/macros/latex/contrib/l3kernel/source3.tex
index c4662a7770..ffed5ceede 100644
--- a/macros/latex/contrib/l3kernel/source3.tex
+++ b/macros/latex/contrib/l3kernel/source3.tex
@@ -53,7 +53,7 @@ for those people who are interested.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2019-09-28}
+\date{Released 2019-09-30}
\pagenumbering{roman}
\maketitle
diff --git a/macros/latex/contrib/media9/ChangeLog b/macros/latex/contrib/media9/ChangeLog
index fe6b6348a5..3d190ba787 100644
--- a/macros/latex/contrib/media9/ChangeLog
+++ b/macros/latex/contrib/media9/ChangeLog
@@ -1,3 +1,8 @@
+2019-09-30
+ * v1.03 : media9.sty
+ * v0.34 : pdfbase.sty
+ * fix : expl3 functions to be deprecated in 2020
+
2019-07-11
* v1.02 : media9.sty
* v0.33 : pdfbase.sty
diff --git a/macros/latex/contrib/media9/doc/media9.pdf b/macros/latex/contrib/media9/doc/media9.pdf
index fccdfd98a5..bac0d6c043 100644
--- a/macros/latex/contrib/media9/doc/media9.pdf
+++ b/macros/latex/contrib/media9/doc/media9.pdf
Binary files differ
diff --git a/macros/latex/contrib/media9/doc/media9.tex b/macros/latex/contrib/media9/doc/media9.tex
index 628384f736..715faca371 100644
--- a/macros/latex/contrib/media9/doc/media9.tex
+++ b/macros/latex/contrib/media9/doc/media9.tex
@@ -1257,17 +1257,17 @@ This package was written using the new \LaTeX3 syntax which was a lot of fun. Ma
\begin{thebibliography}{9}
\bibitem{strobe} Adobe Systems Inc.: \emph{Strobe Media Playback}, 2010, available at \url{http://osmf.org/strobe_mediaplayback.html}
- \bibitem{supplement} Adobe Systems Inc.: \emph{Adobe Supplement to ISO 32000, BaseVersion 1.7, ExtensionLevel 3}, 2008, available at \url{http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/pdf/pdfs/adobe_supplement_iso32000.pdf}
+ \bibitem{supplement} Adobe Systems Inc.: \emph{Adobe Supplement to ISO 32000, BaseVersion 1.7, ExtensionLevel 3}, 2008, available at \url{https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/adobe_supplement_iso32000.pdf}
- \bibitem{jscript3D} Adobe Systems Inc.: \emph{JavaScript for Acrobat 3D Annotations API Ref\-er\-ence}, available at \url{http://livedocs.adobe.com/acrobat_sdk/10/Acrobat10_HTMLHelp/JS_3D_Intro.90.1.html}
+ \bibitem{jscript3D} Adobe Systems Inc.: \emph{JavaScript for Acrobat 3D Annotations API Ref\-er\-ence}, available at \url{https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/Acro12_MasterBook/JS_3D_Intro/JS_3D_Intro.htm}
- \bibitem{jscript} Adobe Systems Inc.: \emph{JavaScript for Acrobat API Reference}, available at \url{http://livedocs.adobe.com/acrobat_sdk/10/Acrobat10_HTMLHelp/JS_API_AcroJSPreface.87.1.html}
+ \bibitem{jscript} Adobe Systems Inc.: \emph{JavaScript for Acrobat API Reference}, available at \url{https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/Acro12_MasterBook/JS_API_AcroJSPreface/JS_API_AcroJSPreface.htm}
\bibitem{flex} The Apache Software Foundation: \emph{Apache Flex SDK}, available at \url{http://flex.apache.org}
\bibitem{u3d} ECMA International: \emph{Universal 3D File Format (ECMA-363), 4th Edition}, 2007, available at \url{http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-363\%204th\%20Edition.pdf}
- \bibitem{prc} Adobe Systems Inc.: \emph{PRC Format Specification}, available at \url{http://livedocs.adobe.com/acrobat_sdk/10/Acrobat10_HTMLHelp/API_References/PRCReference/PRC_Format_Specification/index.html}
+ \bibitem{prc} Adobe Systems Inc.: \emph{PRC Format Specification}, available at \url{https://web.archive.org/web/20081202034541/http://livedocs.adobe.com/acrobat_sdk/9/Acrobat9_HTMLHelp/API_References/PRCReference/PRC_Format_Specification/index.html}
\bibitem{asy} A. Hammerlindl, J. Bowman and T. Prince: \emph{Asymptote: The Vector Graphics Language}, available at \url{http://asymptote.sourceforge.net}
diff --git a/macros/latex/contrib/media9/media9.sty b/macros/latex/contrib/media9/media9.sty
index d32f880d5b..396b84a60b 100644
--- a/macros/latex/contrib/media9/media9.sty
+++ b/macros/latex/contrib/media9/media9.sty
@@ -45,8 +45,8 @@
\RequirePackage{xparse}
\RequirePackage{atbegshi}
-\def\g@mix@date@tl{2019/07/11}
-\def\g@mix@version@tl{1.02}
+\def\g@mix@date@tl{2019/09/30}
+\def\g@mix@version@tl{1.03}
\ProvidesExplPackage{media9}{\g@mix@date@tl}{\g@mix@version@tl}
{acrobat-9/X compatible media}
diff --git a/macros/latex/contrib/media9/pdfbase.sty b/macros/latex/contrib/media9/pdfbase.sty
index 37cbd103ff..788dbe90a2 100644
--- a/macros/latex/contrib/media9/pdfbase.sty
+++ b/macros/latex/contrib/media9/pdfbase.sty
@@ -169,8 +169,8 @@
\RequirePackage{expl3}
\RequirePackage{l3keys2e}
-\def\g@pbs@date@tl{2019/07/11}
-\def\g@pbs@version@tl{0.33}
+\def\g@pbs@date@tl{2019/09/30}
+\def\g@pbs@version@tl{0.34}
\ProvidesExplPackage{pdfbase}{\g@pbs@date@tl}{\g@pbs@version@tl}
{driver independent access to low-level PDF features}
@@ -206,13 +206,6 @@
as~image~resources.
}
-%pdfTeX version check
-\sys_if_engine_pdftex:T{
- \int_compare:nT{\pdftexversion<130}{
- \msg_interrupt:nnn{pdfbase~error}{pdfTeX,~version~>=~1.30~required.}{}
- }
-}
-
% page (bop, eop) hooks
\cs_new_protected:Nn\pbs_bop_action:n{\seq_gput_right:Nn\g_pbs_bop_seq{#1}}
\cs_new_protected:Nn\pbs_eop_action:n{\seq_gput_right:Nn\g_pbs_eop_seq{#1}}
@@ -864,6 +857,9 @@
}
}
+ \msg_new:nnn{pdfbase}{generic-object-pdfmark}{
+ Generic~object~creation~not~supported~by~PDFmarks
+ }
\cs_new_protected_nopar:Nn\pbs_pdfobj:nnn{
\tl_clear:N\l_pbs_usenum_tl
\tl_if_blank:oTF{#1}{
@@ -873,9 +869,7 @@
\tl_set:Nx\l_pbs_usenum_tl{#1}
}
\str_if_eq:nnT{#2}{generic}{
- \msg_interrupt:nnn{pdfbase~error}{
- generic~object~creation~not~supported~by~PDFmarks
- }{}
+ \msg_error:nn{pdfbase}{generic-object-pdfmark}
}
\tl_if_blank:oF{#3}{
\bool_if:nTF{
diff --git a/macros/latex/contrib/notes2bib/README b/macros/latex/contrib/notes2bib/README.md
index be328819d8..4b3e575f27 100644
--- a/macros/latex/contrib/notes2bib/README
+++ b/macros/latex/contrib/notes2bib/README.md
@@ -28,11 +28,11 @@ necessary). LaTeX3, and so `notes2bib`, requires the e-TeX
extensions: these are available on all modern TeX systems.
Typesetting the documentation requires a number of packages in
-addition to those needed to use the package. This is mainly
-because of the number of demonstration items included in the
-text. To compile the documentation without error, you will
+addition to those needed to use the package. This is mainly
+because of the number of demonstration items included in the
+text. To compile the documentation without error, you will
need the packages:
- `csquotes`
- `helvet`
- `mathpazo`
- - `listings`
+ - `listings` \ No newline at end of file
diff --git a/macros/latex/contrib/notes2bib/notes2bib.dtx b/macros/latex/contrib/notes2bib/notes2bib.dtx
index b3979b548d..9e497dd57e 100644
--- a/macros/latex/contrib/notes2bib/notes2bib.dtx
+++ b/macros/latex/contrib/notes2bib/notes2bib.dtx
@@ -33,9 +33,9 @@ necessary). LaTeX3, and so `notes2bib`, requires the e-TeX
extensions: these are available on all modern TeX systems.
Typesetting the documentation requires a number of packages in
-addition to those needed to use the package. This is mainly
-because of the number of demonstration items included in the
-text. To compile the documentation without error, you will
+addition to those needed to use the package. This is mainly
+because of the number of demonstration items included in the
+text. To compile the documentation without error, you will
need the packages:
- `csquotes`
- `helvet`
@@ -65,8 +65,7 @@ See http://www.latex-project.org/lppl.txt
\endpreamble
\postamble
-Copyright (C) 2007-2011,2013 by
-Copyright (C) 2007-2013 by
+Copyright (C) 2007-2013,2016,2019 by
Joseph Wright <joseph.wright@morningstar2.co.uk>
It may be distributed and/or modified under the conditions of
@@ -120,348 +119,348 @@ This work consists of the file notes2bib.dtx
\end{document}
%</driver>
% \fi
-%
-%\makeatletter
-%
-%^^A For creating examples with nice highlighting of code, and so
-%^^A on; based on the system used in the listings source (lstsample).
-%\lst@RequireAspects{writefile}
-%\newsavebox{\LaTeXdemo@box}
-%\lstnewenvironment{LaTeXdemo}[1][code and example]{^^A
-% \global\let\lst@intname\@empty
-% \expandafter\let\expandafter\LaTeXdemo@end
-% \csname LaTeXdemo@#1@end\endcsname
-% \@nameuse{LaTeXdemo@#1}^^A
-%}{^^A
-% \LaTeXdemo@end
-%}
-%\newcommand*\LaTeXdemo@new[3]{^^A
-% \expandafter\newcommand\expandafter*\expandafter
-% {\csname LaTeXdemo@#1\endcsname}{#2}^^A
-% \expandafter\newcommand\expandafter*\expandafter
-% {\csname LaTeXdemo@#1@end\endcsname}{#3}^^A
-%}
-%\newcommand*\LaTeXdemo@common{^^A
-% \setkeys{lst}{
-% basicstyle = \small\ttfamily,
-% basewidth = 0.51em,
-% gobble = 3,
-% keywordstyle = \color{blue},
-% language = [LaTeX]{TeX},
-% moretexcs = {
-% bibnote ,
-% bibnotemark ,
-% bibnotesetup ,
-% bibnotetext ,
-% printbibnotes
-% }
-% }^^A
-%}
-%\newcommand*\LaTeXdemo@input{^^A
-% \MakePercentComment
-% \catcode`\^^M=10\relax
-% \small
-% \begingroup
-% \setkeys{lst}{
-% SelectCharTable=\lst@ReplaceInput{\^\^I}{\lst@ProcessTabulator}
-% }^^A
-% \leavevmode
-% \input{\jobname.tmp}^^A
-% \endgroup
-% \MakePercentIgnore
-%}
-%\LaTeXdemo@new{code and example}{^^A
-% \setbox\LaTeXdemo@box=\hbox\bgroup
-% \lst@BeginAlsoWriteFile{\jobname.tmp}^^A
-% \LaTeXdemo@common
-%}{^^A
-% \lst@EndWriteFile
-% \egroup
-% \begin{center}
-% \ifdim\wd\LaTeXdemo@box>0.48\linewidth\relax
-% \hbox to\linewidth{\box\LaTeXdemo@box\hss}^^A
-% \begin{minipage}{\linewidth}
-% \LaTeXdemo@input
-% \end{minipage}
-% \else
-% \begin{minipage}{0.48\linewidth}
-% \LaTeXdemo@input
-% \end{minipage}
-% \hfill
-% \begin{minipage}{0.48\linewidth}
-% \hbox to\linewidth{\box\LaTeXdemo@box\hss}^^A
-% \end{minipage}
-% \fi
-% \end{center}
-%}
-%\LaTeXdemo@new{code only}{^^A
-% \LaTeXdemo@common
-%}{^^A
-%}
-%
-%\providecommand*\opt[1]{\texttt{#1}}
-%
-%\makeatother
-%
-%\GetFileInfo{\jobname.sty}
-%
-%\changes{v1.0}{2007/08/30}{Initial public release}
-%\changes{v2.0}{2009/09/24}{Second version of package using \pkg{expl3}
-% internally}
-%
-%\title{^^A
-% \pkg{notes2bib} --- Integrating notes into the bibliography^^A
-% \thanks{^^A
-% This file describes version \fileversion, last revised
-% \filedate.^^A
-% }^^A
-%}
-%\author{^^A
-% Joseph Wright\thanks{E-mail: joseph.wright@morningstar2.co.uk}^^A
-%}
-%\date{Released \filedate}
-%
-%\maketitle
-%
-%\begin{abstract}
-% The \pkg{notes2bib} package defines a new type of note, \cs{bibnote},
-% which will always be added to the bibliography. The package allows
-% footnotes and endnotes to be moved into the bibliography in the same
-% way. The package can be used with \pkg{natbib} and \pkg{biblatex} as
-% well as plain LaTeX citations. Both sorted and unsorted bibliography
-% styles are supported.
-%\end{abstract}
-%
-%\tableofcontents
-%
-%\begin{documentation}
-%
-%\section{Introduction}
+%
+% \makeatletter
+%
+% ^^A For creating examples with nice highlighting of code, and so
+% ^^A on; based on the system used in the listings source (lstsample).
+% \lst@RequireAspects{writefile}
+% \newsavebox{\LaTeXdemo@box}
+% \lstnewenvironment{LaTeXdemo}[1][code and example]{^^A
+% \global\let\lst@intname\@empty
+% \expandafter\let\expandafter\LaTeXdemo@end
+% \csname LaTeXdemo@#1@end\endcsname
+% \@nameuse{LaTeXdemo@#1}^^A
+% }{^^A
+% \LaTeXdemo@end
+% }
+% \newcommand*\LaTeXdemo@new[3]{^^A
+% \expandafter\newcommand\expandafter*\expandafter
+% {\csname LaTeXdemo@#1\endcsname}{#2}^^A
+% \expandafter\newcommand\expandafter*\expandafter
+% {\csname LaTeXdemo@#1@end\endcsname}{#3}^^A
+% }
+% \newcommand*\LaTeXdemo@common{^^A
+% \setkeys{lst}{
+% basicstyle = \small\ttfamily,
+% basewidth = 0.51em,
+% gobble = 4,
+% keywordstyle = \color{blue},
+% language = [LaTeX]{TeX},
+% moretexcs = {
+% bibnote ,
+% bibnotemark ,
+% bibnotesetup ,
+% bibnotetext ,
+% printbibnotes
+% }
+% }^^A
+% }
+% \newcommand*\LaTeXdemo@input{^^A
+% \MakePercentComment
+% \catcode`\^^M=10\relax
+% \small
+% \begingroup
+% \setkeys{lst}{
+% SelectCharTable=\lst@ReplaceInput{\^\^I}{\lst@ProcessTabulator}
+% }^^A
+% \leavevmode
+% \input{\jobname.tmp}^^A
+% \endgroup
+% \MakePercentIgnore
+% }
+% \LaTeXdemo@new{code and example}{^^A
+% \setbox\LaTeXdemo@box=\hbox\bgroup
+% \lst@BeginAlsoWriteFile{\jobname.tmp}^^A
+% \LaTeXdemo@common
+% }{^^A
+% \lst@EndWriteFile
+% \egroup
+% \begin{center}
+% \ifdim\wd\LaTeXdemo@box>0.48\linewidth\relax
+% \hbox to\linewidth{\box\LaTeXdemo@box\hss}^^A
+% \begin{minipage}{\linewidth}
+% \LaTeXdemo@input
+% \end{minipage}
+% \else
+% \begin{minipage}{0.48\linewidth}
+% \LaTeXdemo@input
+% \end{minipage}
+% \hfill
+% \begin{minipage}{0.48\linewidth}
+% \hbox to\linewidth{\box\LaTeXdemo@box\hss}^^A
+% \end{minipage}
+% \fi
+% \end{center}
+% }
+% \LaTeXdemo@new{code only}{^^A
+% \LaTeXdemo@common
+% }{^^A
+% }
+%
+% \providecommand*\opt[1]{\texttt{#1}}
+%
+% \makeatother
+%
+% \GetFileInfo{\jobname.sty}
+%
+% \changes{v1.0}{2007/08/30}{Initial public release}
+% \changes{v2.0}{2009/09/24}{Second version of package using \pkg{expl3}
+% internally}
+%
+% \title{^^A
+% \pkg{notes2bib} --- Integrating notes into the bibliography^^A
+% \thanks{^^A
+% This file describes version \fileversion, last revised
+% \filedate.^^A
+% }^^A
+% }
+% \author{^^A
+% Joseph Wright\thanks{E-mail: joseph.wright@morningstar2.co.uk}^^A
+% }
+% \date{Released \filedate}
+%
+% \maketitle
+%
+% \begin{abstract}
+% The \pkg{notes2bib} package defines a new type of note, \cs{bibnote},
+% which will always be added to the bibliography. The package allows
+% footnotes and endnotes to be moved into the bibliography in the same
+% way. The package can be used with \pkg{natbib} and \pkg{biblatex} as
+% well as plain \LaTeX{} citations. Both sorted and unsorted bibliography
+% styles are supported.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \begin{documentation}
+%
+ %\section{Introduction}
%
% In most subject areas, bibliographic citations and notes are
% separate entities. However, in some parts of the physical sciences
% (chemistry and physics) it is usual for references to the
% literature and notes to be given together in a \enquote{References and
-% Notes} section. By default, this requires that \BibTeX\ users
+% Notes} section. By default, this requires that \BibTeX{} users
% create a notes database for each document that they write. This is
% also true if complex references are needed, which cannot be handled
% automatically.
-%
+%
% The aim of the \pkg{notes2bib} package is to make integration of notes
% into the bibliography easy. Notes can be written as normal in the
-% LaTeX source, and are automatically moved to the bibliography. The
-% package is compatible with sorted and unsorted bibliography styles.
-% The package has been designed for use with numerical citations,
+% \LaTeX{} source, and are automatically moved to the bibliography. The
+% package is compatible with sorted and unsorted bibliography styles.
+% The package has been designed for use with numerical citations,
% although it will work with other systems.
-%
-%\section{Installation}
%
-%\changes{v2.0b}{2010/01/08}{Better documentation for unpacking and
-% installation}
+% \section{Installation}
+%
+% \changes{v2.0b}{2010/01/08}{Better documentation for unpacking and
+% installation}
% The package is supplied in \file{dtx} format and as a pre-extracted
% zip file, \file{\jobname.tds.zip}. The later is most convenient for
% most users: simply unzip this in your local texmf directory and
% run \texttt{texhash} to update the database of file locations. If
-% you want to unpack the \file{dtx} yourself, running
+% you want to unpack the \file{dtx} yourself, running
% \texttt{tex \jobname.dtx} will extract the package whereas
% \texttt{latex \jobname.dtx} will extract it and also typeset the
% documentation.
%
-% The package requires LaTeX3 support as provided in the
+% The package requires \LaTeX3 support as provided in the
% \pkg{l3kernel} and \pkg{l3packages} bundles. Both of these are available
% on \href{http://www.ctan.org}{\textsc{ctan}} as ready-to-install
% zip files. Suitable versions are available in MiKTeX 2.9 and
% TeX Live 2011 (updating the relevant packages online may be
-% necessary). LaTeX3, and so \pkg{notes2bib}, requires the e-TeX
-% extensions: these are available on all modern \TeX\ systems.
-%
+% necessary). \LaTeX3, and so \pkg{notes2bib}, requires the e-\TeX{}
+% extensions: these are available on all modern \TeX{} systems.
+%
% Typesetting the documentation requires a number of packages in
-% addition to those needed to use the package. This is mainly
+% addition to those needed to use the package. This is mainly
% because of the number of demonstration items included in the text. To
% compile the documentation without error, you will need the packages:
% \begin{itemize}
-% \item \pkg{csquotes}
-% \item \pkg{helvet}
-% \item \pkg{mathpazo}
-% \item \pkg{listings}
-%\end{itemize}
+% \item \pkg{csquotes}
+% \item \pkg{helvet}
+% \item \pkg{mathpazo}
+% \item \pkg{listings}
+% \end{itemize}
%
-%\section{Using the package}
+% \section{Using the package}
%
-% The package should be loaded as normal in the preamble. The package
+% The package should be loaded as normal in the preamble. The package
% recognises a number of options, which can also be used in teh document
% body. These are described later in this document.
-%\begin{LaTeXdemo}[code only]
-% \usepackage[<options>]{notes2bib}
-%\end{LaTeXdemo}
-%
-%\DescribeMacro {\bibnote}
-%\begin{syntax}
-% \cs{bibnote} \oarg{name} \marg{text}
-%\end{syntax}
+% \begin{LaTeXdemo}[code only]
+% \usepackage[<options>]{notes2bib}
+% \end{LaTeXdemo}
+%
+% \DescribeMacro {\bibnote}
+% \begin{syntax}
+% \cs{bibnote} \oarg{name} \marg{text}
+% \end{syntax}
% The basic function provided by \pkg{notes2bib} is the \cs{bibnote}
% macro. This is used in exactly the same way as footnotes, taking
-% a mandatory argument, the \meta{text} of the note, and an optional
+% a mandatory argument, the \meta{text} of the note, and an optional
% argument, a \meta{name} for the note. The \meta{text} will be saved to
-% a \BibTeX\ database file for later inclusion in the bibliography, and
-% a reference will be placed in the body text at the position of the
+% a \BibTeX{} database file for later inclusion in the bibliography, and
+% a reference will be placed in the body text at the position of the
% note.
-%\begin{LaTeXdemo}
-% A very simple example of a bibliography note
-% \bibnote{Note for the first example}.
-%\end{LaTeXdemo}
-% When used without the optional \meta{name} argument, each note is
+% \begin{LaTeXdemo}
+% A very simple example of a bibliography note
+% \bibnote{Note for the first example}.
+% \end{LaTeXdemo}
+% When used without the optional \meta{name} argument, each note is
% given an automatically-generated name. If notes need to be referred to
-% again in a document, the optional argument avoids the need to
+% again in a document, the optional argument avoids the need to
% understand the detail of the automated system.
-%\begin{LaTeXdemo}
-% An example of a named note \bibnote[labelled]{Note for the second
-% example}. The text can then continue and reference the note again
-% later \bibnotemark[labelled].
-%\end{LaTeXdemo}
+% \begin{LaTeXdemo}
+% An example of a named note \bibnote[labelled]{Note for the second
+% example}. The text can then continue and reference the note again
+% later \bibnotemark[labelled].
+% \end{LaTeXdemo}
%
% Verbatim text cannot be added directly to notes (in the same way that
% it cannot be used in footnotes). This means that the normal care
-% will be needed with verbatim-like material.
-%\begin{LaTeXdemo}
-% The next note contains some awkward text
-% \bibnote{Some \texttt{\textbackslash verb}-like output}.
-%\end{LaTeXdemo}
-%
-%\DescribeMacro {\bibnotemark}
-%\begin{syntax}
-% \cs{bibnotemark} \oarg{name}
-%\end{syntax}
-%\DescribeMacro \bibnotetext
-%\begin{syntax}
-% \cs{bibnotetext} \oarg{name} \marg{text}
-%\end{syntax}
+% will be needed with verbatim-like material.
+% \begin{LaTeXdemo}
+% The next note contains some awkward text
+% \bibnote{Some \texttt{\textbackslash verb}-like output}.
+% \end{LaTeXdemo}
+%
+% \DescribeMacro {\bibnotemark}
+% \begin{syntax}
+% \cs{bibnotemark} \oarg{name}
+% \end{syntax}
+% \DescribeMacro \bibnotetext
+% \begin{syntax}
+% \cs{bibnotetext} \oarg{name} \marg{text}
+% \end{syntax}
% In common with \cs{footnote}, the basic \cs{bibnote} macro has
% companion macros \cs{bibnotemark} and \cs{bibnotetext}. In contrast
-% to the LaTeX2e kernel \cs{footnote} macro, \cs{bibnote} is naturally
+% to the \LaTeXe{} kernel \cs{footnote} macro, \cs{bibnote} is naturally
% robust and so \cs{bibnotemark} and \cs{bibnotetext} should be needed
% much more rarely than the \cs{footnote} versions.
-%
+%
% As with the related \cs{footnote} functions, \cs{bibnotemark} can be
-% used alone or will recognise an optional argument giving the
-% \meta{name} of the note. \cs{bibnotetext} also recognises the same
+% used alone or will recognise an optional argument giving the
+% \meta{name} of the note. \cs{bibnotetext} also recognises the same
% optional \meta{name} argument as well as the mandatory \meta{text}.
-%\begin{LaTeXdemo}
-% A note without a name \bibnotemark\ can be given with some
-% text \bibnotetext{Text for the fourth example}. Note can also be
-% given names \bibnotemark[named], which are then used for the
-% text\bibnotetext[named]{More text for the fourth example}.
-%\end{LaTeXdemo}
+% \begin{LaTeXdemo}
+% A note without a name \bibnotemark{} can be given with some
+% text \bibnotetext{Text for the fourth example}. Note can also be
+% given names \bibnotemark[named], which are then used for the
+% text\bibnotetext[named]{More text for the fourth example}.
+% \end{LaTeXdemo}
%
% The \cs{bibnotemark} macro can also be used to cross-reference notes
-% given earlier in the document. This method is preferred for
-% referencing notes over using the \cs{cite} macro as
+% given earlier in the document. This method is preferred for
+% referencing notes over using the \cs{cite} macro as
% \cs{bibnotemark} will cope correctly with out-of-order notes
% (see Section~\ref{out-of-order}).
-%\begin{LaTeXdemo}
-% See notes \bibnotemark[labelled] and \bibnotemark[named].
-%\end{LaTeXdemo}
-%
-%\DescribeMacro {\printbibnotes}
-%\begin{syntax}
-% \cs{printbibnotes}
-%\end{syntax}
+% \begin{LaTeXdemo}
+% See notes \bibnotemark[labelled] and \bibnotemark[named].
+% \end{LaTeXdemo}
+%
+% \DescribeMacro {\printbibnotes}
+% \begin{syntax}
+% \cs{printbibnotes}
+% \end{syntax}
% In most cases, there will be both notes and references in a document.
-% The notes will be printed along with cited literature in the
+% The notes will be printed along with cited literature in the
% bibliography, produced using the \cs{bibliography} macro (or
-% \cs{printbibliography} when using \pkg{biblatex}). However, it is
+% \cs{printbibliography} when using \pkg{biblatex}). However, it is
% possible to print only the notes in a document using the
% \cs{printbibnotes} macro.
% \bibliographystyle{unsrt}
-%\begin{LaTeXdemo}
-% \printbibnotes
-%\end{LaTeXdemo}
-%
-%\DescribeMacro {\bibnotesetup}
-%\begin{syntax}
-% \cs{bibnotesetup} \marg{key--value list}
-%\end{syntax}
+% \begin{LaTeXdemo}
+% \printbibnotes
+% \end{LaTeXdemo}
+%
+% \DescribeMacro {\bibnotesetup}
+% \begin{syntax}
+% \cs{bibnotesetup} \marg{key--value list}
+% \end{syntax}
% The behaviour of \pkg{notes2bib} can be altered by setting one or
-% more package options. These are given as arguments to the
+% more package options. These are given as arguments to the
% \cs{bibnotesetup} function, which takes a \meta{key--value list} and
% uses this to set up the package. With the exception of the
% \opt{file-name} option, all of the settings can be altered in the
% preamble or the document body. The various package options are
% described below.
%
-%\subsection{Auto-generated note names}
+% \subsection{Auto-generated note names}
%
-%\DescribeOption {note-name}
-% When no explicit label is given for a note, one is generated
+% \DescribeOption {note-name}
+% When no explicit label is given for a note, one is generated
% automatically by the package. This consists of two parts, a name and
-% a number. The text of the name can be set up using the
-% \opt{note-name} option. This should not contain any spaces, as
-% \BibTeX\ does not support records with spaces in names. The numerical
+% a number. The text of the name can be set up using the
+% \opt{note-name} option. This should not contain any spaces, as
+% \BibTeX{} does not support records with spaces in names. The numerical
% part of the label is always generated automatically, and is the
% number of the note. The standard setting for \opt{note-name} is
% \opt{Note}.
-%
-%\DescribeOption {refsection-name}
-%\DescribeOption {refsection-separator}
+%
+% \DescribeOption {refsection-name}
+% \DescribeOption {refsection-separator}
% When using \pkg{biblatex}'s \texttt{refsection} system, additional
% information is added to all labels from the second \texttt{refsection}
% onward (\emph{i.e.}~to all except \texttt{refsection} 0). This
% additional text is added before the note name, and always includes the
% \texttt{refsection} number. The settings \opt{refsection-name} and
-% \opt{refsection-separator} determine the exact text added:
+% \opt{refsection-separator} determine the exact text added:
% \opt{refsection-name} comes before the \texttt{refsection} number and
% has default \opt{Refsection}, while \opt{refsection-separator} comes
% after it and has default value \opt{-}.
%
-%\subsection{Underlying citation system}
+% \subsection{Underlying citation system}
%
-%\DescribeOption {cite-function}
+% \DescribeOption {cite-function}
% \pkg{notes2bib} works by making the text of notes into citations.
% To do this, each note has to be \enquote{cited} in the appropriate
-% place. \pkg{notes2bib} does not carry out any low-level citation
+% place. \pkg{notes2bib} does not carry out any low-level citation
% itself: instead, a general citation macro is called. The nature of
% the function is set up using the \opt{cite-function} option,
% which should be set to a citation macro taking one mandatory
% argument. The initial setting is \opt{cite-function = \cs{cite}}.
%
-%\subsection{Controlling the temporary database}
-%
-%\DescribeOption {file-name}
+% \subsection{Controlling the temporary database}
+%
+% \DescribeOption {file-name}
% The file name used for the database of notes is set using the
% \opt{file-name} option. The standard setting is to call the file
% |notes2bib-\jobname|, which may not be appropriate (for example, file
-% names containing spaces may be problematic). Setting the
-% \opt{file-name} option will alter the name of the file, with the
+% names containing spaces may be problematic). Setting the
+% \opt{file-name} option will alter the name of the file, with the
% file extension fixed as \file{bib}. In contrast to the other package
% options, this value can only be set in the preamble.
-%
-%\DescribeOption {record-type}
-% Each note is written to the database as a standard \BibTeX\ record.
+%
+% \DescribeOption {record-type}
+% Each note is written to the database as a standard \BibTeX{} record.
% The type of record created is set using the \opt{record-type}
% option. Usually, this will be set to \opt{misc}; \pkg{biblatex} v1.1a
% upwards provides the \opt{bibnote} record type, and this is used if
-% available. Some \BibTeX\ styles have dedicated support for notes: if
+% available. Some \BibTeX{} styles have dedicated support for notes: if
% so, the appropriate value should be set for this option.
-%
-%\DescribeOption {note-field}
+%
+% \DescribeOption {note-field}
% The database field used to store the text of the note is available
-% for change \emph{via} the \opt{note-field} option. The standard
+% for change \emph{via} the \opt{note-field} option. The standard
% setting is \opt{note}.
%
-%\DescribeOption {keyword-entry}
-% Some styles (most notably \pkg{biblatex}) recognise keywords in
-% \BibTeX\ records, stored in a \texttt{keywords} field. To allow the
+% \DescribeOption {keyword-entry}
+% Some styles (most notably \pkg{biblatex}) recognise keywords in
+% \BibTeX{} records, stored in a \texttt{keywords} field. To allow the
% selective printing of notes, \pkg{notes2bib} includes a keyword in
% each note record. The keyword is set using the \opt{keyword-entry}
% option: the standard setting is \opt{note}.
%
-%\subsection{Ordering notes in relation to citations}
-%\label{out-of-order}
+% \subsection{Ordering notes in relation to citations}
+% \label{out-of-order}
%
-%\DescribeOption {placement}
+% \DescribeOption {placement}
% The standard method used by \pkg{notes2bib} places notes into the
% bibliography with no particular control of the relative position of
-% notes with respect to citations. For unsorted bibliography styles,
+% notes with respect to citations. For unsorted bibliography styles,
% this will result in the notes appearing mixed in with citations.
% However, \pkg{notes2bib} can create notes so that they appear before
% or after citations, with both sorted an unsorted bibliography styles.
@@ -471,118 +470,118 @@ This work consists of the file notes2bib.dtx
% the \opt{after} setting forcing notes to appear after citation.
% The standard setting is \opt{placement = mixed}, which will result
% in mixing of notes and citations.
-%
+%
% When notes are placed in the bibliography without any change of order,
% it is possible to cross-reference to them using the standard \cs{cite}
% macro. However, when notes are out of the normal order this can lead
% to problems. These can be avoided by using the \cs{bibnotemark} macro
% to cross-reference notes. As this method will always work correctly,
-% it is the recommended method for referencing notes under all
+% it is the recommended method for referencing notes under all
% circumstances.
-%
-%\DescribeOption {presort-before}
-%\DescribeOption {presort-mixed}
-%\DescribeOption {presort-after}
-%\DescribeOption {sort-key-before}
-%\DescribeOption {sort-key-mixed}
-%\DescribeOption {sort-key-after}
+%
+% \DescribeOption {presort-before}
+% \DescribeOption {presort-mixed}
+% \DescribeOption {presort-after}
+% \DescribeOption {sort-key-before}
+% \DescribeOption {sort-key-mixed}
+% \DescribeOption {sort-key-after}
% There are a number of different mechanisms used by \pkg{notes2bib} to
-% achieve the desired ordering. Most standard \BibTeX\ styles recognise
+% achieve the desired ordering. Most standard \BibTeX{} styles recognise
% a \texttt{key} field, which can be used to override sorting by author
% or title. This is used by \pkg{notes2bib}, with the note name prefixed
-% by a string to force the sort order. The appropriate strings are
+% by a string to force the sort order. The appropriate strings are
% stored using the options \opt{sort-key-before}, \opt{sort-key-mixed}
% and \opt{sort-key-after}. These have standard settings
-% \opt{aaa}, \opt{\meta{blank}} and \opt{zzz}, respectively. When the
+% \opt{aaa}, \opt{\meta{blank}} and \opt{zzz}, respectively. When the
% \pkg{biblatex} package is in use, a more powerful method is available
% to control sorting: the \texttt{presort} field. Data to be written
-% to this field is set up using the \opt{presort-before},
-% \opt{presort-mixed} and \opt{presort-after} options. Here, the
+% to this field is set up using the \opt{presort-before},
+% \opt{presort-mixed} and \opt{presort-after} options. Here, the
% standard values are \opt{ml}, \opt{mm} and \opt{mn}, respectively.
-% These standard values will probably be appropriate in almost all
+% These standard values will probably be appropriate in almost all
% cases.
-%
-%\subsection{Converting footnotes and endnotes}
%
-%\DescribeOption {convert-endnotes}
-%\DescribeOption {convert-footnotes}
+% \subsection{Converting footnotes and endnotes}
+%
+% \DescribeOption {convert-endnotes}
+% \DescribeOption {convert-footnotes}
% It is possible to convert both \cs{footnote} and \cs{endnote}
% entries in a file into \cs{bibnote} entries in a flexible manner.
% This behaviour is controlled using the \opt{convert-endnotes} and
% \opt{convert-footnotes} options; both recognise the values
% \opt{true} and \opt{false}. The original definitions for the
-% appropriate macros are stored by \pkg{notes2bib}, and so it is
+% appropriate macros are stored by \pkg{notes2bib}, and so it is
% possible to switch this behaviour on and off.
-%
-%\DescribeMacro {\thanks}
+%
+% \DescribeMacro {\thanks}
% The package is designed so that converting footnotes to bibliographic
% notes will not affect the \cs{thanks} macro. Thus the option
% \opt{convert-footnotes = true} can be given before \cs{maketitle}
% with no implication for and \cs{thanks}.
-%
-%\subsection{Using unsorted bibliography styles}
%
-%\changes{v2.0b}{2010/01/08}{Improvements to details concerning
-% \opt{use-sort-key} option}
-%\DescribeOption {use-sort-key}
-% Some bibliography styles (most notably those using the
+% \subsection{Using unsorted bibliography styles}
+%
+% \changes{v2.0b}{2010/01/08}{Improvements to details concerning
+% \opt{use-sort-key} option}
+% \DescribeOption {use-sort-key}
+% Some bibliography styles (most notably those using the
% author--date system) may not work well with the settings
-% of the package as supplied. Some of the data written by
-% \pkg{notes2bib} can be misunderstood by styles such as
+% of the package as supplied. Some of the data written by
+% \pkg{notes2bib} can be misunderstood by styles such as
% \file{unsrtnat}. To suppress creating a \texttt{key} field in the
% database, the option \opt{use-sort-key} should be set to \opt{false}
% with these problematic styles. At the same time, it may be necessary
% to alter the \opt{note-name} option to a blank value.
-%\begin{LaTeXdemo}[code only]
-% \bibnotesetup{
-% note-name = ,
-% use-sort-key = false
-% }
-%\end{LaTeXdemo}
-%
-%\section{Data written to the \texttt{aux} file}
-%
+% \begin{LaTeXdemo}[code only]
+% \bibnotesetup{
+% note-name = ,
+% use-sort-key = false
+% }
+% \end{LaTeXdemo}
+%
+% \section{Data written to the \texttt{aux} file}
+%
% \pkg{notes2bib} writes some information to the \file{aux} file, so
-% that it is available between runs. The functions added to the
+% that it is available between runs. The functions added to the
% file are not needed directly by the user, but are documented here
% for completeness. However, it may be necessary to worry about the
% \file{aux} file when splitting bibliographies.
-%
-%\DescribeMacro {\recordnotes}
+%
+% \DescribeMacro {\recordnotes}
% \begin{syntax}
% \cs{recordnotes}
% \end{syntax}
-% When notes are placed out-of-order in in a document (using
+% When notes are placed out-of-order in in a document (using
% \opt{placement = before} or \opt{placement = after}) \pkg{notes2bib}
% has to record information in the current \file{aux} file. When using
% multiple bibliographies, this will not necessarily happen totally
-% automatically. To force \pkg{notes2bib} to write the current
+% automatically. To force \pkg{notes2bib} to write the current
% out-of-order notes to the \file{aux} file, the macro
% \cs{recordnotes} is available. It should be used immediately
% before changing between auxiliary files.
-%
-%\DescribeMacro {\TotalNotes}
-%\begin{syntax}
-% \cs{TotalNotes} \marg{number}
-%\end{syntax}
-% Records the total number of auto-numbered notes in a run. This
-% information is needed to check if zero-filling is needed for the
-% numbers used.
-%
-%\DescribeMacro {\NotesAfterCitations}
+%
+% \DescribeMacro {\TotalNotes}
% \begin{syntax}
-% \cs{NotesAfterCitations} \marg{note-list}
+% \cs{TotalNotes} \marg{number}
% \end{syntax}
-%\DescribeMacro {\NotesBeforeCitations}
+% Records the total number of auto-numbered notes in a run. This
+% information is needed to check if zero-filling is needed for the
+% numbers used.
+%
+% \DescribeMacro {\NotesAfterCitations}
+% \begin{syntax}
+% \cs{NotesAfterCitations} \marg{note-list}
+% \end{syntax}
+% \DescribeMacro {\NotesBeforeCitations}
% \begin{syntax}
% \cs{NotesBeforeCitations} \marg{note-list}
% \end{syntax}
% These functions record the notes which have been placed outside of
% the normal order by the package. This information is used to check
-% for changes in note order between LaTeX runs, so that the need for
-% re-running LaTeX and BibTeX can be detected.
-%
-%\section{Notes for upgrading from version one}
+% for changes in note order between \LaTeX{} runs, so that the need for
+% re-running \LaTeX{} and \BibTeX{} can be detected.
+%
+% \section{Notes for upgrading from version one}
%
% Documents which compile with version one of \pkg{notes2bib} should
% work equally well with version two. The package recognises the
@@ -590,1056 +589,1019 @@ This work consists of the file notes2bib.dtx
% are not documented here as all new documents should use the improved
% structures provided here. As some auxiliary file functions have been
% altered, it may be necessary to delete \file{aux} files for documents
-% processed initially with older versions of \pkg{notes2bib}.
-%
-%\end{documentation}
-%
-%\begin{implementation}
-%
-%\section{Implementation}
-%
-%\changes{v2.0a}{2009/11/01}{Changed all \cs{cs_set:Nn}, \emph{etc}.\
-% to \cs{cs_set:Npn}, \emph{etc}.\ to match \pkg{expl3} changes}
-%\changes{v2.0b}{2010/01/09}{A few missed \cs{cs_set:Nn}, \cs{cs_set:Nx},
-% \emph{etc}.\ changed}
-%\changes{v2.0b}{2010/01/09}{Reformatted code to reflect style settled
-% on by LaTeX3 Project}
-%\changes{v2.0c}{2010/02/09}{Switch from \cs{iow_space:} to
-% \cs{c_space_tl}}
-%\changes{v2.0c}{2010/02/09}{Collect all notes into a token register
-% and write in one go to file (using a pooled stream)}
-%\changes{v2.0c}{2010/02/09}{Items \cs{AtBeginDocument} and
-% \cs{AtEndDocument} now set up directly (no functions needed)
-% unless the function is required for other reasons}
-%\changes{v2.0c}{2010/03/30}{Make internal functions protected}
-%\changes{v2.0c}{2010/03/30}{Change token registers to token list
-% variables}
-%\changes{v2.0g}{2011/06/30}{Switch from \cs{intexpr_\ldots} to
-% \cs{int_\ldots} functions}
-%\changes{v2.0j}{2012/11/07}{Change internal prefix}
+% processed initially with older versions of \pkg{notes2bib}.
+%
+% \section{Code-level interfaces}
+%
+% In common with other \LaTeX3 modules, \pkg{notes2bib} makes functionality
+% available at a code (\cs{ExplSyntaxOn}) level. End users \emph{do not}
+% need to read this section!
+%
+% Programmers should note that \pkg{notes2bib} uses the module prefix
+% \texttt{notestobib}, but that the options use the \pkg{l3keys} module
+% name \texttt{notes2bib}.
+%
+% \begin{function}{\notestobib_write_note:nn, \notestobib_write_note:xn}
+% \begin{syntax}
+% \cs{notestobib_write_note:nn} \marg{note} \marg{text}
+% \end{syntax}
+% Adds the \meta{text} for the \meta{note} to the dynamic database
+% created by \pkg{notes2bib}. Note that the \meta{note} name should be
+% unique and that the writing operation is delayed by the package until
+% either the end of the document or an explicit write request.
+% \end{function}
+%
+% \end{documentation}
+%
+% \begin{implementation}
+%
+% \section{Implementation}
%
% \begin{macrocode}
%<*package>
% \end{macrocode}
-%
+%
% \begin{macrocode}
%<@@=notestobib>
% \end{macrocode}
%
% Version data to start with.
% \begin{macrocode}
-\ProvidesExplPackage
- {notes2bib} {2013/07/11} {2.0k}
+\ProvidesExplPackage {notes2bib} {2019-09-28} {2.0m}
{Integrating notes into the bibliography}
\RequirePackage{l3keys2e}
-% \end{macrocode}
-%
-%\subsection{Variables and constants}
-%
-%\begin{macro}{\c_@@_file_message_tl}
-% A short piece of text that is added to the top of an auto-generated
-% file. Setting this up as a constant means that it can be changed
-% (for example for translation) if necessary.
+% \end{macrocode}
+%
+% \subsection{Variables and constants}
+%
+% \begin{macro}{\c_@@_file_message_tl}
+% A short piece of text that is added to the top of an auto-generated
+% file. Setting this up as a constant means that it can be changed
+% (for example for translation) if necessary.
% \begin{macrocode}
-\tl_new:N \c_@@_file_message_tl
-\tl_set:Nn \c_@@_file_message_tl {
- \iow_char:N \% ~
- This~is~an~auxiliary~file~used~by~the~'notes2bib'~package.
- \iow_newline:
- \iow_char:N \% ~
- This~file~may~safely~be~deleted.
- \iow_newline:
- \iow_char:N \% ~
- It~will~be~recreated~as~required.
- \iow_newline:
-}
+\tl_const:Nn \c_@@_file_message_tl
+ {
+ \iow_char:N \% ~
+ This~is~an~auxiliary~file~used~by~the~'notes2bib'~package.
+ \iow_newline:
+ \iow_char:N \% ~
+ This~file~may~safely~be~deleted.
+ \iow_newline:
+ \iow_char:N \% ~
+ It~will~be~recreated~as~required.
+ \iow_newline:
+ }
% \end{macrocode}
-%\end{macro}
+% \end{macro}
%
-%\begin{macro}{\g_@@_after_clist}
-%\begin{macro}{\g_@@_before_clist}
-% Notes to be placed either before or after citations need to be tracked
-% by the module. Simple comma lists will achieve this.
+% \begin{macro}{\g_@@_after_clist, \g_@@_before_clist}
+% Notes to be placed either before or after citations need to be tracked
+% by the module. Simple comma lists will achieve this.
% \begin{macrocode}
\clist_new:N \g_@@_after_clist
\clist_new:N \g_@@_before_clist
% \end{macrocode}
-%\end{macro}
-%\end{macro}
+% \end{macro}
%
-%\begin{macro}{\g_@@_all_after_clist}
-%\begin{macro}{\g_@@_all_before_clist}
-% As notes after citations can be flushed, there is a need for a second
-% list which is never emptied.
+% \begin{macro}{\g_@@_all_after_clist, \g_@@_all_before_clist}
+% As notes after citations can be flushed, there is a need for a second
+% list which is never emptied.
% \begin{macrocode}
\clist_new:N \g_@@_all_after_clist
\clist_new:N \g_@@_all_before_clist
% \end{macrocode}
-%\end{macro}
-%\end{macro}
+% \end{macro}
%
-%\begin{macro}{\g_@@_note_int}
-% A counter for the automatically-created notes is needed. This is a
-% global value (life will get very complicated if not).
+% \begin{macro}{\g_@@_note_int}
+% A counter for the automatically-created notes is needed. This is a
+% global value (life will get very complicated if not).
% \begin{macrocode}
\int_new:N \g_@@_note_int
% \end{macrocode}
-%\end{macro}
+% \end{macro}
%
-%\begin{macro}{\l_@@_presort_tl}
-%\begin{macro}{\l_@@_sortkey_tl}
-% The text used for sorting citations is stored here: it is never set
-% directly, as it depends on the type of sorting taking place.
+% \begin{macro}{\l_@@_presort_tl, \l_@@_sortkey_tl}
+% The text used for sorting citations is stored here: it is never set
+% directly, as it depends on the type of sorting taking place.
% \begin{macrocode}
\tl_new:N \l_@@_presort_tl
\tl_new:N \l_@@_sortkey_tl
% \end{macrocode}
-%\end{macro}
-%\end{macro}
+% \end{macro}
%
-%\begin{macro}{\g_@@_previous_after_clist}
-%\begin{macro}{\g_@@_previous_before_clist}
-% For comparison purposes, the lists of out-of-order notes from the
-% previous LaTeX run are needed.
+% \begin{macro}{\g_@@_previous_after_clist, \g_@@_previous_before_clist}
+% For comparison purposes, the lists of out-of-order notes from the
+% previous \LaTeX{} run are needed.
% \begin{macrocode}
\clist_new:N \g_@@_previous_after_clist
\clist_new:N \g_@@_previous_before_clist
% \end{macrocode}
-%\end{macro}
-%\end{macro}
+% \end{macro}
%
-%\begin{macro}{\g_@@_previous_notes_int}
-% The total number of notes created is needed, as this is used to see
-% if any zero-padding is required for the numbers. Of course, for this
-% to work there has to be a second LaTeX run.
+% \begin{macro}{\g_@@_previous_notes_int}
+% The total number of notes created is needed, as this is used to see
+% if any zero-padding is required for the numbers. Of course, for this
+% to work there has to be a second \LaTeX{} run.
% \begin{macrocode}
\int_new:N \g_@@_previous_notes_int
% \end{macrocode}
-%\end{macro}
+% \end{macro}
%
-%\begin{macro}{\g_@@_notes_tl}
-% Used to collect up the note text for writing in a single block
-% at the end of the document.
+% \begin{macro}{\g_@@_notes_tl}
+% Used to collect up the note text for writing in a single block
+% at the end of the document.
% \begin{macrocode}
\tl_new:N \g_@@_notes_tl
% \end{macrocode}
-%\end{macro}
+% \end{macro}
%
-%\begin{macro}{\l_@@_sortkey_field_tl}
-% The key for sorting is called \texttt{key} by standard \BibTeX\ and
-% \texttt{sortkey} by \pkg{biblatex}. It keeps everything clearer if
-% the appropriate name is stored in a token list. The value itself is
-% set up later.
+% \begin{macro}{\l_@@_sortkey_field_tl}
+% The key for sorting is called \texttt{key} by standard \BibTeX{} and
+% \texttt{sortkey} by \pkg{biblatex}. It keeps everything clearer if
+% the appropriate name is stored in a token list. The value itself is
+% set up later.
% \begin{macrocode}
\tl_new:N \l_@@_sortkey_field_tl
% \end{macrocode}
-%\end{macro}
+% \end{macro}
%
-%\begin{macro}{\g_@@_total_notes_int}
-% Tracks the total number of notes created, so that the module can tell
-% if any have been used.
+% \begin{macro}{\g_@@_total_notes_int}
+% Tracks the total number of notes created, so that the module can tell
+% if any have been used.
% \begin{macrocode}
\int_new:N \g_@@_total_notes_int
% \end{macrocode}
-%\end{macro}
+% \end{macro}
%
-%\subsection{Control options}
+% \subsection{Control options}
%
-%\begin{macro}{\@@_cite:w}
-% The underlying function for citation starts off with no value:
-% this is then set up by the key--value settings given next.
+% \begin{macro}{\@@_cite:w}
+% The underlying function for citation starts off with no value:
+% this is then set up by the key--value settings given next.
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_cite:w { }
+\cs_new:Npn \@@_cite:w { }
% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\g_@@_filename_tl}
-%\begin{macro}{\l_@@_keyword_tl}
-%\begin{macro}{\l_@@_note_field_tl}
-%\begin{macro}{\l_@@_note_name_tl}
-%\begin{macro}{\l_@@_presort_after_tl}
-%\begin{macro}{\l_@@_presort_before_tl}
-%\begin{macro}{\l_@@_presort_mixed_tl}
-%\begin{macro}{\l_@@_record_type_tl}
-%\begin{macro}{\l_@@_refsection_name_tl}
-%\begin{macro}{\l_@@_refsection_sep_tl}
-%\begin{macro}{\l_@@_record_type_tl}
-%\begin{macro}{\l_@@_sortkey_after_tl}
-%\begin{macro}{\l_@@_sortkey_before_tl}
-%\begin{macro}{\l_@@_sortkey_mixed_tl}
-%\begin{macro}{\l_@@_write_sortkey_bool}
-% The various package options are created.
+% \end{macro}
+%
+% \begin{macro}{\g_@@_filename_tl}
+% \begin{macro}
+% {
+% \l_@@_keyword_tl ,
+% \l_@@_note_field_tl ,
+% \l_@@_note_name_tl ,
+% \l_@@_presort_after_tl ,
+% \l_@@_presort_before_tl ,
+% \l_@@_presort_mixed_tl ,
+% \l_@@_record_type_tl ,
+% \l_@@_refsection_name_tl,
+% \l_@@_refsection_sep_tl ,
+% \l_@@_record_type_tl ,
+% \l_@@_sortkey_after_tl ,
+% \l_@@_sortkey_before_tl ,
+% \l_@@_sortkey_mixed_tl ,
+% \l_@@_write_sortkey_bool
+% }
+% The various package options are created.
% \begin{macrocode}
-\keys_define:nn { notes2bib } {
- cite-function .code:n =
- { \AtBeginDocument { \cs_set_eq:NN \@@_cite:w #1 } } ,
- file-name .tl_gset_x:N = \g_@@_filename_tl ,
- convert-endnotes .choice: ,
- convert-endnotes
- / false .code:n =
- { \AtBeginDocument { \@@_from_bibnote:n { endnote } } } ,
- convert-endnotes
- / true .code:n =
- { \AtBeginDocument { \@@_to_bibnote:n { endnote } } } ,
- convert-footnotes .choice: ,
- convert-footnotes
- / false .code:n =
- { \AtBeginDocument { \@@_from_bibnote:n { footnote } } } ,
- convert-footnotes
- / true .code:n =
- { \AtBeginDocument { \@@_to_bibnote:n { footnote } } } ,
- keyword-entry .tl_set:N = \l_@@_keyword_tl ,
- note-field .tl_set:N = \l_@@_note_field_tl ,
- note-name .tl_set:N = \l_@@_note_name_tl ,
- placement .choice: ,
- placement
- / after .code:n =
- {
- \cs_set_eq:NN \@@_mark_note:n \@@_mark_note_after:n
- \tl_set_eq:NN \l_@@_presort_tl \l_@@_presort_after_tl
- \tl_set_eq:NN \l_@@_sortkey_tl \l_@@_sortkey_after_tl
- },
- placement
- / before .code:n =
- {
- \cs_set_eq:NN \@@_mark_note:n \@@_mark_note_before:n
- \tl_set_eq:NN \l_@@_presort_tl \l_@@_presort_before_tl
- \tl_set_eq:NN \l_@@_sortkey_tl \l_@@_sortkey_before_tl
- },
- placement
- / mixed .code:n =
- {
- \cs_set_eq:NN \@@_mark_note:n \@@_mark_note_mixed:n
- \tl_set_eq:NN \l_@@_presort_tl \l_@@_presort_mixed_tl
- \tl_set_eq:NN \l_@@_sortkey_tl \l_@@_sortkey_mixed_tl
- },
- presort-after .tl_set:N = \l_@@_presort_after_tl ,
- presort-before .tl_set:N = \l_@@_presort_before_tl ,
- presort-mixed .tl_set:N = \l_@@_presort_mixed_tl ,
- record-type .tl_set:N = \l_@@_record_type_tl ,
- refsection-name .tl_set:N = \l_@@_refsection_name_tl ,
- refsection-separator .tl_set:N = \l_@@_refsection_sep_tl ,
- sort-key-after .tl_set:N = \l_@@_sortkey_before_tl ,
- sort-key-before .tl_set:N = \l_@@_sortkey_after_tl ,
- sort-key-mixed .tl_set:N = \l_@@_sortkey_mixed_tl ,
- use-sort-key .bool_set:N = \l_@@_write_sortkey_bool ,
-}
+\keys_define:nn { notes2bib }
+ {
+ cite-function .code:n =
+ { \AtBeginDocument { \cs_set_eq:NN \@@_cite:w #1 } } ,
+ file-name .tl_gset_x:N = \g_@@_filename_tl ,
+ convert-endnotes .choice: ,
+ convert-endnotes
+ / false .code:n =
+ { \AtBeginDocument { \@@_from_bibnote:n { endnote } } } ,
+ convert-endnotes
+ / true .code:n =
+ { \AtBeginDocument { \@@_to_bibnote:n { endnote } } } ,
+ convert-footnotes .choice: ,
+ convert-footnotes
+ / false .code:n =
+ { \AtBeginDocument { \@@_from_bibnote:n { footnote } } } ,
+ convert-footnotes
+ / true .code:n =
+ { \AtBeginDocument { \@@_to_bibnote:n { footnote } } } ,
+ keyword-entry .tl_set:N = \l_@@_keyword_tl ,
+ note-field .tl_set:N = \l_@@_note_field_tl ,
+ note-name .tl_set:N = \l_@@_note_name_tl ,
+ placement .choice: ,
+ placement
+ / after .code:n =
+ {
+ \cs_set_eq:NN \@@_mark_note:n \@@_mark_note_after:n
+ \tl_set_eq:NN \l_@@_presort_tl \l_@@_presort_after_tl
+ \tl_set_eq:NN \l_@@_sortkey_tl \l_@@_sortkey_after_tl
+ },
+ placement
+ / before .code:n =
+ {
+ \cs_set_eq:NN \@@_mark_note:n \@@_mark_note_before:n
+ \tl_set_eq:NN \l_@@_presort_tl \l_@@_presort_before_tl
+ \tl_set_eq:NN \l_@@_sortkey_tl \l_@@_sortkey_before_tl
+ },
+ placement
+ / mixed .code:n =
+ {
+ \cs_set_eq:NN \@@_mark_note:n \@@_mark_note_mixed:n
+ \tl_set_eq:NN \l_@@_presort_tl \l_@@_presort_mixed_tl
+ \tl_set_eq:NN \l_@@_sortkey_tl \l_@@_sortkey_mixed_tl
+ },
+ presort-after .tl_set:N = \l_@@_presort_after_tl ,
+ presort-before .tl_set:N = \l_@@_presort_before_tl ,
+ presort-mixed .tl_set:N = \l_@@_presort_mixed_tl ,
+ record-type .tl_set:N = \l_@@_record_type_tl ,
+ refsection-name .tl_set:N = \l_@@_refsection_name_tl ,
+ refsection-separator .tl_set:N = \l_@@_refsection_sep_tl ,
+ sort-key-after .tl_set:N = \l_@@_sortkey_before_tl ,
+ sort-key-before .tl_set:N = \l_@@_sortkey_after_tl ,
+ sort-key-mixed .tl_set:N = \l_@@_sortkey_mixed_tl ,
+ use-sort-key .bool_set:N = \l_@@_write_sortkey_bool
+ }
% \end{macrocode}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%\end{macro}
+% \end{macro}
+% \end{macro}
%
% Default values for the keys are set up. Many of these probably never
% change, but done in this way the package is much more flexible.
% \begin{macrocode}
-\keys_set:nn { notes2bib } {
- cite-function = \cite ,
- file-name = notes2bib-\jobname ,
- keyword-entry = note ,
- note-field = note ,
- note-name = Note ,
- presort-after = mn ,
- presort-before = ml ,
- presort-mixed = mm ,
- record-type = misc ,
- refsection-name = Refsection ,
- refsection-separator = - ,
- sort-key-after = zzz ,
- sort-key-before = aaa ,
- use-sort-key = true
+\keys_set:nn { notes2bib }
+ {
+ cite-function = \cite ,
+ file-name = notes2bib-\jobname ,
+ keyword-entry = note ,
+ note-field = note ,
+ note-name = Note ,
+ presort-after = mn ,
+ presort-before = ml ,
+ presort-mixed = mm ,
+ record-type = misc ,
+ refsection-name = Refsection ,
+ refsection-separator = - ,
+ sort-key-after = zzz ,
+ sort-key-before = aaa ,
+ use-sort-key = true
}
% \end{macrocode}
-%
-%\changes{v2.0d}{2011/01/08}{Use new \cs{bibnote} record type with
-% \pkg{biblatex} v1.1a or later}
-%\changes{v2.0e}{2011/01/18}{Add back references to bibnotes}
+%
% A few options need to be altered or deactivated at the start of
% the document.
% \begin{macrocode}
-\AtBeginDocument {
- \@ifpackageloaded { biblatex }
- {
- \@ifpackagelater { biblatex } { 2011/01/08 }
- {
- \keys_set:nn { notes2bib }
- { record-type = bibnote }
- \DeclareBibliographyDriver { bibnote }
- {
- \usebibmacro { begentry }
- \printfield { note }
- \setunit { \bibpagerefpunct }
- \newblock
- \usebibmacro { pageref }
- \usebibmacro { finentry }
- }
- }
- { }
- }
- { }
- \keys_define:nn { notes2bib }
- {
- cite-function .code:n =
- { \cs_set_eq:NN \@@_cite:w #1 } ,
- file-name .code:n =
- { \msg_info:nnn { notes2bib } { preamble-only } { file-name } },
- convert-endnotes / false .code:n =
- { \@@_from_bibnote:n { endnote } } ,
- convert-endnotes / true .code:n =
- { \@@_to_bibnote:n { endnote } } ,
- convert-footnotes / false .code:n =
- { \@@_from_bibnote:n { footnote } } ,
- convert-footnotes / true .code:n =
- { \@@_to_bibnote:n { footnote } } ,
- }
-}
-\msg_new:nnn { notes2bib } { preamble-only }
+\AtBeginDocument
+ {
+ \@ifpackageloaded { biblatex }
+ {
+ \@ifpackagelater { biblatex } { 2011/01/08 }
+ {
+ \keys_set:nn { notes2bib } { record-type = bibnote }
+ \DeclareBibliographyDriver { bibnote }
+ {
+ \usebibmacro { begentry }
+ \printfield { note }
+ \setunit { \bibpagerefpunct }
+ \newblock
+ \usebibmacro { pageref }
+ \usebibmacro { finentry }
+ }
+ }
+ { }
+ }
+ { }
+ \keys_define:nn { notes2bib }
+ {
+ cite-function .code:n =
+ { \cs_set_eq:NN \@@_cite:w #1 } ,
+ file-name .code:n =
+ { \msg_info:nnn { notes2bib } { preamble-only } { file-name } } ,
+ convert-endnotes / false .code:n =
+ { \@@_from_bibnote:n { endnote } } ,
+ convert-endnotes / true .code:n =
+ { \@@_to_bibnote:n { endnote } } ,
+ convert-footnotes / false .code:n =
+ { \@@_from_bibnote:n { footnote } } ,
+ convert-footnotes / true .code:n =
+ { \@@_to_bibnote:n { footnote } }
+ }
+ }
+\msg_new:nnn { notes2bib } { preamble-only }
{ The~option~'#1'~can~only~be~used~in~the~preamble. }
% \end{macrocode}
-%
-%\subsection{Support for \pkg{biblatex} \texttt{refsection} system}
-%
-%\begin{macro}{\@@_insert_refsection:}
-%\changes{v2.0d}{2011/01/08}{Added support for refsections}
-% When using \pkg{biblatex}, it's possible that \texttt{refsection}s are
-% in use. If so, to ensure that labels are always unique the
-% \texttt{refsection} number is added to the label.
+%
+% \subsection{Support for \pkg{biblatex} \texttt{refsection} system}
+%
+% \begin{macro}[EXP]{\@@_insert_refsection:}
+% When using \pkg{biblatex}, it's possible that \texttt{refsection}s are
+% in use. If so, to ensure that labels are always unique the
+% \texttt{refsection} number is added to the label.
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_insert_refsection: { }
-\AtBeginDocument {
- \@ifpackageloaded { biblatex }
- {
- \cs_set_nopar:Npn \@@_insert_refsection:
- {
- \int_compare:nNnT { \value { refsection } } > { 0 }
- {
- \tl_use:N \l_@@_refsection_name_tl
- \arabic { refsection }
- \tl_use:N \l_@@_refsection_sep_tl
+\cs_new:Npn \@@_insert_refsection: { }
+\AtBeginDocument
+ {
+ \@ifpackageloaded { biblatex }
+ {
+ \cs_set:Npn \@@_insert_refsection:
+ {
+ \int_compare:nNnT { \value { refsection } } > { 0 }
+ {
+ \tl_use:N \l_@@_refsection_name_tl
+ \arabic { refsection }
+ \tl_use:N \l_@@_refsection_sep_tl
}
- }
- }
- { }
-}
+ }
+ }
+ { }
+ }
% \end{macrocode}
-%\end{macro}
-%
-%\subsection{Options from version one}
+% \end{macro}
+%
+% \subsection{Options from version one}
%
-%\changes{v2.0k}{2013/07/11}{Drop use of \texttt{.meta:x} key property}
-% The new option names are preferred, but the old ones still need to
+% The new option names are preferred, but the old ones still need to
% work correctly.
% \begin{macrocode}
-\keys_define:nn { notes2bib } {
- cite .code:n =
- {
- \use:x
- { \keys_set:nn { notes2bib } { cite-function = \exp_not:c {#1} } }
- } ,
- debug .code:n = { } ,
- endnotes .meta:n = { convert-footnotes = #1 } ,
- etex .code:n = { } ,
- field .meta:n = { note-field = #1 } ,
- footnotes .meta:n = { convert-footnotes = #1 } ,
- head .meta:n = { placement = before } ,
- keyhead .meta:n = { sort-key-before = #1 } ,
- keytail .meta:n = { sort-key-after = #1 } ,
- keynone .meta:n = { sort-key-mixed = #1 } ,
- keyword .meta:n = { keyword-entry = #1 } ,
- log .meta:n = { } ,
- name .meta:n = { note-name = #1 } ,
- prefix .meta:n = { file-name = #1 \jobname } ,
- presorthead .meta:n = { presort-before = #1 } ,
- presorttail .meta:n = { presort-after = #1 } ,
- presortnone .meta:n = { presort-mixed = #1 } ,
- record .meta:n = { record-type = #1 } ,
- sort .choice: ,
- sort / head .meta:n = { placement = before } ,
- sort / none .meta:n = { placement = after } ,
- sort / tail .meta:n = { placement = mixed } ,
- tail .meta:n = { placement = after } ,
- writekey .meta:n = { use-sort-key = #1 }
-}
+\keys_define:nn { notes2bib }
+ {
+ cite .code:n =
+ {
+ \use:x
+ { \keys_set:nn { notes2bib } { cite-function = \exp_not:c {#1} } }
+ } ,
+ debug .code:n = { } ,
+ endnotes .meta:n = { convert-footnotes = #1 } ,
+ etex .code:n = { } ,
+ field .meta:n = { note-field = #1 } ,
+ footnotes .meta:n = { convert-footnotes = #1 } ,
+ head .meta:n = { placement = before } ,
+ keyhead .meta:n = { sort-key-before = #1 } ,
+ keytail .meta:n = { sort-key-after = #1 } ,
+ keynone .meta:n = { sort-key-mixed = #1 } ,
+ keyword .meta:n = { keyword-entry = #1 } ,
+ log .meta:n = { } ,
+ name .meta:n = { note-name = #1 } ,
+ prefix .meta:n = { file-name = #1 \jobname } ,
+ presorthead .meta:n = { presort-before = #1 } ,
+ presorttail .meta:n = { presort-after = #1 } ,
+ presortnone .meta:n = { presort-mixed = #1 } ,
+ record .meta:n = { record-type = #1 } ,
+ sort .choice: ,
+ sort / head .meta:n = { placement = before } ,
+ sort / none .meta:n = { placement = after } ,
+ sort / tail .meta:n = { placement = mixed } ,
+ tail .meta:n = { placement = after } ,
+ writekey .meta:n = { use-sort-key = #1 }
+ }
% \end{macrocode}
-%
-%\subsection{Utility functions}
-%
-%\begin{macro}{\@@_note_name:}
-% When note citations are generated automatically, the text to indicate
-% a note plus the number of the current note needs to be turned into
-% something printable. The value tests here mean that if there are more
-% than nine notes, notes 1--9 have the number padded to get proper
-% sorting. This needs two passes, as the total number of notes is only
-% available at the end of the LaTeX run.
+%
+% \subsection{Utility functions}
+%
+% \begin{macro}[EXP]{\@@_note_name:}
+% When note citations are generated automatically, the text to indicate
+% a note plus the number of the current note needs to be turned into
+% something printable. The value tests here mean that if there are more
+% than nine notes, notes 1--9 have the number padded to get proper
+% sorting. This needs two passes, as the total number of notes is only
+% available at the end of the \LaTeX{} run.
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_note_name: {
- \@@_insert_refsection:
- \tl_use:N \l_@@_note_name_tl
- \int_compare:nNnT \g_@@_previous_notes_int > \c_nine
- { \int_compare:nNnT \g_@@_note_int < \c_ten { 0 } }
- \int_to_arabic:n { \g_@@_note_int }
-}
+\cs_new:Npn \@@_note_name:
+ {
+ \@@_insert_refsection:
+ \tl_use:N \l_@@_note_name_tl
+ \int_compare:nNnT \g_@@_previous_notes_int > 9
+ { \int_compare:nNnT \g_@@_note_int < { 10 } { 0 } }
+ \int_to_arabic:n { \g_@@_note_int }
+ }
% \end{macrocode}
-%\end{macro}
+% \end{macro}
%
-%\begin{macro}{\@@_filesw:}
-% Making sorting work means messing about with \cs{if@filesw}. The
-% function created here is used to store the current status of the
-% flag.
+% \begin{macro}{\@@_filesw:}
+% Making sorting work means messing about with \cs{if@filesw}. The
+% function created here is used to store the current status of the
+% flag. As this is needed for saving \TeX{} true/false status, it's
+% best to set it up from the start as a conditional.
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_filesw: { }
+\cs_new_eq:NN \@@_filesw: \tex_iftrue:D
% \end{macrocode}
-%\end{macro}
+% \end{macro}
%
-%\subsection{Marking notes in the text}
+% \subsection{Marking notes in the text}
%
-%\begin{macro}{\@@_mark_note:n}
-%\begin{macro}{\@@_mark_note:x}
-% The function to mark note positions is initially declared with no
-% expansion. The real meaning will be set by the key--value setting,
-% and depends on the placement of notes compared with real citations.
+% \begin{macro}{\@@_mark_note:n, \@@_mark_note:x}
+% The function to mark note positions is initially declared with no
+% expansion. The real meaning will be set by the key--value setting,
+% and depends on the placement of notes compared with real citations.
% \begin{macrocode}
-\cs_new:Npn \@@_mark_note:n #1 { }
+\cs_new_protected:Npn \@@_mark_note:n #1 { }
\cs_generate_variant:Nn \@@_mark_note:n { x }
% \end{macrocode}
-%\end{macro}
-%\end{macro}
-%
-%\begin{macro}{\@@_mark_note_after:n}
-%\begin{macro}[aux]{\@@_mark_note_after_aux:n}
-% For notes which come after citations, the entry is recorded and an
-% auxiliary is called. The nature of the second function is dependent
-% on the other packages loaded.
+% \end{macro}
+%
+% \begin{macro}{\@@_mark_note_after:n}
+% \begin{macro}[aux]{\@@_mark_note_after_aux:n}
+% For notes which come after citations, the entry is recorded and an
+% auxiliary is called. The nature of the second function is dependent
+% on the other packages loaded.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_mark_note_after:n #1 {
- \int_gincr:N \g_@@_total_notes_int
- \clist_gput_right:Nx \g_@@_after_clist {#1}
- \@@_mark_note_after_aux:n {#1}
-}
-\cs_new:Npn \@@_mark_note_after_aux:n #1 { }
+\cs_new_protected:Npn \@@_mark_note_after:n #1
+ {
+ \int_gincr:N \g_@@_total_notes_int
+ \clist_gput_right:Nx \g_@@_after_clist {#1}
+ \@@_mark_note_after_aux:n {#1}
+ }
+\cs_new_protected:Npn \@@_mark_note_after_aux:n #1 { }
% \end{macrocode}
-%\end{macro}
-%\end{macro}
+% \end{macro}
+% \end{macro}
%
-%\begin{macro}{\@@_mark_note_before:n}
-% Notes to appear before all citations are simple recorded, as they will
-% be set up on the next LaTeX run.
+% \begin{macro}{\@@_mark_note_before:n}
+% Notes to appear before all citations are simple recorded, as they will
+% be set up on the next \LaTeX{} run.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_mark_note_before:n #1 {
- \int_gincr:N \g_@@_total_notes_int
- \clist_gput_right:Nx \g_@@_before_clist {#1}
- \@@_cite:w {#1}
-}
+\cs_new_protected:Npn \@@_mark_note_before:n #1
+ {
+ \int_gincr:N \g_@@_total_notes_int
+ \clist_gput_right:Nx \g_@@_before_clist {#1}
+ \@@_cite:w {#1}
+ }
% \end{macrocode}
-%\end{macro}
+% \end{macro}
%
-%\begin{macro}{\@@_mark_note_mixed:n}
-% Mixed citations are very easy to handle: just use whatever cite
-% command is current.
+% \begin{macro}{\@@_mark_note_mixed:n}
+% Mixed citations are very easy to handle: just use whatever cite
+% command is current.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_mark_note_mixed:n #1 {
- \int_gincr:N \g_@@_total_notes_int
- \@@_cite:w {#1}
-}
+\cs_new_protected:Npn \@@_mark_note_mixed:n #1
+ {
+ \int_gincr:N \g_@@_total_notes_int
+ \@@_cite:w {#1}
+ }
% \end{macrocode}
-%\end{macro}
-%
-%\subsection{Writing note text to the database}
-%
-%\begin{macro}{\@@_write_field:nn}
-%\begin{macro}{\@@_write_field:Vn}
-% To keep the auto-generated database readable, there needs to be some
-% formatting. This is provided by using a dedicated function to
-% write the various fields to it. Although the \texttt{V} variant is
-% not technically needed (writing expands everything), it helps to keep
-% the intention of the code here clearer.
+% \end{macro}
+%
+% \subsection{Writing note text to the database}
+%
+% \begin{macro}[EXP]{\@@_write_field:nn, \@@_write_field:Vn}
+% To keep the auto-generated database readable, there needs to be some
+% formatting. This is provided by using a dedicated function to
+% write the various fields to it. Although the \texttt{V} variant is
+% not technically needed (writing expands everything), it helps to keep
+% the intention of the code here clearer.
% \begin{macrocode}
-\cs_new:Npn \@@_write_field:nn #1#2 {
- \c_space_tl \c_space_tl #1 \c_space_tl = \c_space_tl {#2} ,
- \iow_newline:
-}
+\cs_new:Npn \@@_write_field:nn #1#2
+ {
+ \c_space_tl \c_space_tl #1 \c_space_tl = \c_space_tl {#2} ,
+ \iow_newline:
+ }
\cs_generate_variant:Nn \@@_write_field:nn { V }
% \end{macrocode}
-%\end{macro}
-%\end{macro}
-%
-%\begin{macro}{\@@_write_note:nn}
-%\changes{v2.0b}{2010/01/09}{Add \cs{else:} branch to handle case
-% where \cs{if@filesw} is false}
-%\begin{macro}[aux]{\@@_write_note_aux:nn}
-%\begin{macro}{\@@_write_note:xn}
-% The writing function takes two arguments: the name of the note, and
-% the text itself. There is a need to check on the LaTeX2e system to
-% turn off writing, with a hand-over so there is no problem with
-% balancing ifs.
+% \end{macro}
+%
+% \begin{macro}{\notestobib_write_note:nn, \notestobib_write_note:xn}
+% \begin{macro}[aux]{\@@_write_note:nn}
+% The writing function takes two arguments: the name of the note, and
+% the text itself. There is a need to check on the \LaTeXe{} system to
+% turn off writing, with a hand-over so there is no problem with
+% balancing ifs.
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_write_note:nn {
- \if@filesw
- \exp_after:wN \@@_write_note_aux:nn
- \else:
- \exp_after:wN \use_none:nn
- \fi:
-}
-\cs_new_protected:Npn \@@_write_note_aux:nn #1#2 {
- \tl_gput_right:Nx \g_@@_notes_tl
- {
- @ \l_@@_record_type_tl
- {
- #1 , \iow_newline:
- \@@_write_field:Vn \l_@@_note_field_tl { \exp_not:n {#2} }
- \bool_if:NT \l_@@_write_sortkey_bool
- {
- \@@_write_field:Vn \l_@@_sortkey_field_tl
- { \l_@@_sortkey_tl #1 }
- }
- \@@_write_field:nn { keywords } { \l_@@_keyword_tl }
- \@@_write_field:nn { presort } { \l_@@_presort_tl }
- }
- \iow_newline:
- \iow_newline:
- }
-}
-\cs_generate_variant:Nn \@@_write_note:nn { x }
+\cs_new_protected:Npn \notestobib_write_note:nn
+ {
+ \if@filesw
+ \exp_after:wN \@@_write_note:nn
+ \else:
+ \exp_after:wN \use_none:nn
+ \fi:
+ }
+\cs_generate_variant:Nn \notestobib_write_note:nn { x }
+\cs_new_protected:Npn \@@_write_note:nn #1#2
+ {
+ \tl_gput_right:Nx \g_@@_notes_tl
+ {
+ @ \l_@@_record_type_tl
+ {
+ #1 , \iow_newline:
+ \@@_write_field:Vn \l_@@_note_field_tl { \exp_not:n {#2} }
+ \bool_if:NT \l_@@_write_sortkey_bool
+ {
+ \@@_write_field:Vn \l_@@_sortkey_field_tl
+ { \l_@@_sortkey_tl #1 }
+ }
+ \@@_write_field:nn { keywords } { \l_@@_keyword_tl }
+ \@@_write_field:nn { presort } { \l_@@_presort_tl }
+ }
+ \iow_newline:
+ \iow_newline:
+ }
+ }
% \end{macrocode}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%
-%\subsection{Handling out of order notes}
-%
-%\begin{macro}{\@@_record_notes:}
-%\begin{macro}[aux]{\@@_flush_notes_aux:}
-% Notes after citations are not written to the \file{aux} file when
-% given, but are held in a queue. This is flushed here, which means
-% actually doing the citation and also recording the notes so they
-% are available in the next LaTeX run. The list is also transferred
-% to a secondary one, which is used for comparison purposes right at the
-% end of the document.
+
+% \end{macro}
+% \end{macro}
+%
+% \subsection{Handling out of order notes}
+%
+% \begin{macro}{\@@_record_notes:}
+% \begin{macro}[aux]{\@@_flush_notes_aux:}
+% Notes after citations are not written to the \file{aux} file when
+% given, but are held in a queue. This is flushed here, which means
+% actually doing the citation and also recording the notes so they
+% are available in the next \LaTeX{} run. The list is also transferred
+% to a secondary one, which is used for comparison purposes right at the
+% end of the document.
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_record_notes: {
- \if@filesw
- \exp_after:wN \@@_flush_notes_aux:
- \fi
-}
-\cs_new_protected_nopar:Npn \@@_flush_notes_aux: {
- \clist_if_empty:NF \g_@@_before_clist
- {
- \iow_now:Nx \@auxout
- { \NotesBeforeCitations { \exp_not:V \g_@@_before_clist } }
- \clist_gput_right:NV \g_@@_all_before_clist \g_@@_before_clist
- \clist_gclear:N \g_@@_before_clist
- }
- \clist_if_empty:NF \g_@@_after_clist
- {
- \iow_now:Nx \@auxout
- { \NotesAfterCitations { \exp_not:V \g_@@_after_clist } }
- \exp_args:NV \nocite \g_@@_after_clist
- \clist_gput_right:NV \g_@@_all_after_clist \g_@@_after_clist
- \clist_gclear:N \g_@@_after_clist
- }
-}
+\cs_new_protected:Npn \@@_record_notes:
+ {
+ \if@filesw
+ \exp_after:wN \@@_flush_notes_aux:
+ \fi
+ }
+\cs_new_protected:Npn \@@_flush_notes_aux:
+ {
+ \clist_if_empty:NF \g_@@_before_clist
+ {
+ \iow_now:Nx \@auxout
+ { \NotesBeforeCitations { \exp_not:V \g_@@_before_clist } }
+ \clist_gput_right:NV \g_@@_all_before_clist \g_@@_before_clist
+ \clist_gclear:N \g_@@_before_clist
+ }
+ \clist_if_empty:NF \g_@@_after_clist
+ {
+ \iow_now:Nx \@auxout
+ { \NotesAfterCitations { \exp_not:V \g_@@_after_clist } }
+ \exp_args:NV \nocite \g_@@_after_clist
+ \clist_gput_right:NV \g_@@_all_after_clist \g_@@_after_clist
+ \clist_gclear:N \g_@@_after_clist
+ }
+ }
% \end{macrocode}
-%\end{macro}
-%\end{macro}
+% \end{macro}
+% \end{macro}
%
-%\subsection{Interchanging note types}
+% \subsection{Interchanging note types}
%
-%\begin{macro}{\@@_to_bibnote:n}
-% Converting other notes to bibliography notes is simple: just set
-% them equal.
+% \begin{macro}{\@@_to_bibnote:n}
+% Converting other notes to bibliography notes is simple: just set
+% them equal.
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_to_bibnote:n #1 {
- \cs_set_eq:cN {#1} \bibnote
- \cs_set_eq:cN { #1 mark } \bibnotemark
- \cs_set_eq:cN { #1 text } \bibnotetext
-}
+\cs_new_protected:Npn \@@_to_bibnote:n #1
+ {
+ \cs_set_eq:cN {#1} \bibnote
+ \cs_set_eq:cN { #1 mark } \bibnotemark
+ \cs_set_eq:cN { #1 text } \bibnotetext
+ }
% \end{macrocode}
-%\end{macro}
+% \end{macro}
%
-%\begin{macro}{\@@_from_bibnote:n}
-% The reverse process needs the original definitions, which are saved
-% by the module for later recovery.
+% \begin{macro}{\@@_from_bibnote:n}
+% The reverse process needs the original definitions, which are saved
+% by the module for later recovery.
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \@@_from_bibnote:n #1 {
- \cs_set_eq:cc {#1} { @@_ #1 :w }
- \cs_set_eq:cc { #1 mark } { @@_ #1 mark:w }
- \cs_set_eq:cc { #1 text } { @@_ #1 text:w }
-}
+\cs_new_protected:Npn \@@_from_bibnote:n #1
+ {
+ \cs_set_eq:cc {#1} { @@_ #1 :w }
+ \cs_set_eq:cc { #1 mark } { @@_ #1 mark:w }
+ \cs_set_eq:cc { #1 text } { @@_ #1 text:w }
+ }
% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\@@_endnote:w}
-%\begin{macro}{\@@_endnotemark:w}
-%\begin{macro}{\@@_endnotetext:w}
-%\begin{macro}{\@@_footnote:w}
-%\begin{macro}{\@@_footnotemark:w}
-%\begin{macro}{\@@_footnotetext:w}
-% At the start of the document, the definitions for endnotes and
-% footnotes are saved so that footnotes and endnotes can be turned into
-% bibliography notes and back again.
+% \end{macro}
+%
+% \begin{macro}
+% {
+% \@@_endnote:w ,
+% \@@_endnotemark:w ,
+% \@@_endnotetext:w ,
+% \@@_footnote:w ,
+% \@@_footnotemark:w,
+% \@@_footnotetext:w
+% }
+% At the start of the document, the definitions for endnotes and
+% footnotes are saved so that footnotes and endnotes can be turned into
+% bibliography notes and back again.
% \begin{macrocode}
-\AtBeginDocument {
- \cs_set_eq:NN \@@_endnote:w \endnote
- \cs_set_eq:NN \@@_endnotemark:w \endnotemark
- \cs_set_eq:NN \@@_endnotetext:w \endnotetext
- \cs_set_eq:NN \@@_footnote:w \footnote
- \cs_set_eq:NN \@@_footnotemark:w \footnotemark
- \cs_set_eq:NN \@@_footnotetext:w \footnotetext
-}
+\AtBeginDocument
+ {
+ \cs_new_eq:NN \@@_endnote:w \endnote
+ \cs_new_eq:NN \@@_endnotemark:w \endnotemark
+ \cs_new_eq:NN \@@_endnotetext:w \endnotetext
+ \cs_new_eq:NN \@@_footnote:w \footnote
+ \cs_new_eq:NN \@@_footnotemark:w \footnotemark
+ \cs_new_eq:NN \@@_footnotetext:w \footnotetext
+ }
% \end{macrocode}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%
-%\subsection{Package-dependent code}
-%
-%\begin{macro}{\@@_create_print_notes:}
-%\begin{macro}{\@@_print_notes:}
-% The method for printing notes depends on whether \pkg{biblatex} is
-% in use. If it is, then a selective call to \cs{printbibliography} is
-% made. Otherwise, the original \cs{bibliography} function is called,
-% and passed the name of the notes file.
+% \end{macro}
+%
+% \subsection{Package-dependent code}
+%
+% \begin{macro}{\@@_create_print_notes:, \@@_print_notes:}
+% The method for printing notes depends on whether \pkg{biblatex} is
+% in use. If it is, then a selective call to \cs{printbibliography} is
+% made. Otherwise, the original \cs{bibliography} function is called,
+% and passed the name of the notes file.
% \begin{macrocode}
-\AtBeginDocument {
- \@ifpackageloaded { biblatex }
- {
- \cs_new_protected_nopar:Npn \@@_print_notes:
- {
- \cs_set_nopar:Npx \@@_create_print_notes:
- {
- \printbibliography
- [ keyword = \exp_not:V \l_@@_keyword_tl ]
- }
- \@@_create_print_notes:
- }
- }
- {
- \cs_new_protected_nopar:Npn \@@_print_notes:
- { \exp_args:NV \@@_bibliography:n \g_@@_filename_tl }
- }
-}
-\cs_new_nopar:Npn \@@_create_print_notes: { }
+\AtBeginDocument
+ {
+ \@ifpackageloaded { biblatex }
+ {
+ \cs_new_protected:Npn \@@_print_notes:
+ {
+ \cs_set:Npx \@@_create_print_notes:
+ {
+ \printbibliography
+ [ keyword = \exp_not:V \l_@@_keyword_tl ]
+ }
+ \@@_create_print_notes:
+ }
+ }
+ {
+ \cs_new_protected:Npn \@@_print_notes:
+ { \exp_args:NV \@@_bibliography:n \g_@@_filename_tl }
+ }
+ }
+\cs_new_protected:Npn \@@_create_print_notes: { }
% \end{macrocode}
-%\end{macro}
-%\end{macro}
-%
-%\begin{macro}{\@@_attach_bibliography:}
-%\changes{v2.0d}{2011/01/08}{Use new \cs{bibliography*} function with
-% \pkg{biblatex} v1.1a or later}
-%\changes{v2.0f}{2011/02/23}{Use new \cs{addglobalbib} function with
-% \pkg{biblatex} v1.2 or later}
-%\changes{v2.0h}{2011/09/09}{Use \cs{addglobalbib} function irrespective
-% of load order}
-%\begin{macro}{\bibliography}
-%\begin{macro}{\@@_bibliography:n}
-% Getting the database created here to be scanned by \BibTeX\ is
-% dependant on whether \pkg{biblatex} is being used. If it is, and it is
-% already loaded, then the data can be added now. On the other hand, if
-% it is not already loaded a check is made at the end of the preamble.
-% The \cs{bibliography} function has to be patched if \pkg{biblatex} is
-% not in use.
+% \end{macro}
+%
+% \begin{macro}{\@@_attach_bibliography:}
+% \begin{macro}{\bibliography}
+% \begin{macro}{\@@_bibliography:n}
+% Getting the database created here to be scanned by \BibTeX{} is
+% dependant on whether \pkg{biblatex} is being used. If it is, and it is
+% already loaded, then the data can be added now. On the other hand, if
+% it is not already loaded a check is made at the end of the preamble.
+% The \cs{bibliography} function has to be patched if \pkg{biblatex} is
+% not in use.
% \begin{macrocode}
-\cs_new_nopar:Npn \@@_attach_bibliography: {
- \@ifpackageloaded { biblatex }
- {
- \@ifpackagelater { biblatex } { 2011/01/08 }
- {
- \@ifpackagelater { biblatex } { 2011/02/12 }
- {
-
- \exp_args:No \addglobalbib
- { \g_@@_filename_tl .bib }
- }
- { \exp_args:NNV \bibliography * \g_@@_filename_tl }
- }
- { \exp_args:NV \bibliography \g_@@_filename_tl }
- }
- {
- \cs_new_eq:NN \@@_bibliography:n \bibliography
- \RenewDocumentCommand \bibliography { m }
- {
- \int_compare:nNnTF \g_@@_total_notes_int = \c_zero
- { \@@_bibliography:n {##1} }
- {
- \cs_set_nopar:Npx \@@_attach_bibliography:
- {
- \exp_not:N \@@_bibliography:n
- {
- \exp_not:n {##1} , \exp_not:V \g_@@_filename_tl
- }
- }
- \@@_attach_bibliography:
- }
- }
- }
-}
-\@ifpackageloaded { biblatex }
+\cs_new_protected:Npn \@@_attach_bibliography:
+ {
+ \@ifpackageloaded { biblatex }
+ {
+ \@ifpackagelater { biblatex } { 2011/01/08 }
+ {
+ \@ifpackagelater { biblatex } { 2011/02/12 }
+ { \exp_args:No \addglobalbib { \g_@@_filename_tl .bib } }
+ { \exp_args:NNV \bibliography * \g_@@_filename_tl }
+ }
+ { \exp_args:NV \bibliography \g_@@_filename_tl }
+ }
+ {
+ \cs_new_eq:NN \@@_bibliography:n \bibliography
+ \RenewDocumentCommand \bibliography { m }
+ {
+ \int_compare:nNnTF \g_@@_total_notes_int = 0
+ { \@@_bibliography:n {##1} }
+ {
+ \cs_set:Npx \@@_attach_bibliography:
+ {
+ \exp_not:N \@@_bibliography:n
+ { \exp_not:n {##1} , \exp_not:V \g_@@_filename_tl }
+ }
+ \@@_attach_bibliography:
+ }
+ }
+ }
+ }
+\@ifpackageloaded { biblatex }
{
\@ifpackagelater { biblatex } { 2011/01/08 }
- {
+ {
\@ifpackagelater { biblatex } { 2011/02/12 }
- {
-
- \exp_args:No \addglobalbib
- { \g_@@_filename_tl .bib }
- }
+ { \exp_args:No \addglobalbib { \g_@@_filename_tl .bib } }
{ \exp_args:NNV \bibliography * \g_@@_filename_tl }
}
{ \exp_args:NV \bibliography \g_@@_filename_tl }
}
{ \AtBeginDocument { \@@_attach_bibliography: } }
% \end{macrocode}
-%\end{macro}
-%\end{macro}
-%\end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \pkg{biblatex} uses the name \texttt{sortkey} for a key to sort by,
% whereas other style call the same concept \texttt{key}.
% \begin{macrocode}
-\AtBeginDocument {
- \@ifpackageloaded { biblatex }
- { \tl_set:Nn \l_@@_sortkey_field_tl { sortkey } }
- { \tl_set:Nn \l_@@_sortkey_field_tl { key } }
-}
+\AtBeginDocument
+ {
+ \@ifpackageloaded { biblatex }
+ { \tl_set:Nn \l_@@_sortkey_field_tl { sortkey } }
+ { \tl_set:Nn \l_@@_sortkey_field_tl { key } }
+ }
% \end{macrocode}
%
% To get the correct ordering for notes, writing to the \file{aux} file
-% needs to be turned on and off. With \pkg{biblatex}, there is a
+% needs to be turned on and off. With \pkg{biblatex}, there is a
% convenient hook for this. Otherwise, everything has to happen after
% the citation command.
% \begin{macrocode}
-\AtBeginDocument {
- \@ifpackageloaded { biblatex }
- {
- \cs_set:Npn \@@_mark_note_after_aux:n #1
- {
- \AtNextCite { \@fileswfalse }
- \@@_cite:w {#1}
- }
- }
- {
- \cs_set:Npn \@@_mark_note_after_aux:n #1
- {
- \cs_set_eq:NN \@@_filesw: \if@filesw
- \@fileswfalse
- \@@_cite:w {#1}
- \cs_set_eq:NN \if@filesw \@@_filesw:
- }
- }
-}
+\AtBeginDocument
+ {
+ \@ifpackageloaded { biblatex }
+ {
+ \cs_set_protected:Npn \@@_mark_note_after_aux:n #1
+ {
+ \AtNextCite { \@fileswfalse }
+ \@@_cite:w {#1}
+ }
+ }
+ {
+ \cs_set_protected:Npn \@@_mark_note_after_aux:n #1
+ {
+ \cs_set_eq:NN \@@_filesw: \if@filesw
+ \@fileswfalse
+ \@@_cite:w {#1}
+ \cs_set_eq:NN \if@filesw \@@_filesw:
+ }
+ }
+ }
% \end{macrocode}
%
-%\begin{macro}{\@@_aux_hook:}
-% If the \pkg{cite} package is loaded, then there is a hook to
-% reset the \file{aux} file after the citation. This means that moving
-% punctuation will still work under these circumstances. However, the
-% way \pkg{cite} sets things up is a little complicated. The link needs
-% to be made at the end of the \cs{document} macro.
+% \begin{macro}{\@@_aux_hook:}
+% If the \pkg{cite} package is loaded, then there is a hook to
+% reset the \file{aux} file after the citation. This means that moving
+% punctuation will still work under these circumstances. However, the
+% way \pkg{cite} sets things up is a little complicated. The link needs
+% to be made at the end of the \cs{document} macro.
% \begin{macrocode}
-\AtBeginDocument {
- \@ifpackageloaded { cite }
- {
- \cs_set:Npn \@@_mark_note_after_aux:n #1
- {
- \cs_set_eq:NN \@@_filesw: \if@filesw
- \@fileswfalse
- \cs_set_nopar:Npn \@@_aux_hook:
- {
- \cs_set_eq:NN \if@filesw \@@_filesw:
- \cs_set_nopar:Npn \@@_aux_hook: { }
- }
- \@@_cite:w {#1}
- }
- \cs_new_nopar:Npn \@@_aux_hook: { }
- \tl_gput_right:Nn \g_@@_document_hook_tl
- {
- \cs_if_exist:NF \@restore@auxhandle
- { \tl_new:N \@restore@auxhandle }
- \tl_put_right:Nn \@restore@auxhandle { \@@_aux_hook: }
- }
- }
- { }
-}
+\AtBeginDocument
+ {
+ \@ifpackageloaded { cite }
+ {
+ \cs_set_protected:Npn \@@_mark_note_after_aux:n #1
+ {
+ \cs_set_eq:NN \@@_filesw: \if@filesw
+ \@fileswfalse
+ \cs_set:Npn \@@_aux_hook:
+ {
+ \cs_set_eq:NN \if@filesw \@@_filesw:
+ \cs_set:Npn \@@_aux_hook: { }
+ }
+ \@@_cite:w {#1}
+ }
+ \cs_new:Npn \@@_aux_hook: { }
+ \tl_gput_right:Nn \g_@@_document_hook_tl
+ {
+ \cs_if_exist:NF \@restore@auxhandle
+ { \tl_new:N \@restore@auxhandle }
+ \tl_put_right:Nn \@restore@auxhandle { \@@_aux_hook: }
+ }
+ }
+ { }
+ }
% \end{macrocode}
-%\end{macro}
+% \end{macro}
%
%\subsection{User functions}
%
-%\begin{macro}{\bibnote}
-%\begin{macro}{\@@_bibnote:nn}
-%\begin{macro}{\@@_bibnote:xn}
-% Creating a not from scratch is a multi-step operation. First, check
-% if a label was given by the user. If it was not, then one is created
-% by incrementing the automatic number and fully expanding
-% \cs{@@_note_name:}. The second phase is to create the note. The text
-% is dealt with first as this leaves the note-marking code at the end
-% of the function (needed if punctuation is to be moved).
+% \begin{macro}{\bibnote}
+% \begin{macro}{\@@_bibnote:nn, \@@_bibnote:xn}
+% Creating a not from scratch is a multi-step operation. First, check
+% if a label was given by the user. If it was not, then one is created
+% by incrementing the automatic number and fully expanding
+% \cs{@@_note_name:}. The second phase is to create the note. The text
+% is dealt with first as this leaves the note-marking code at the end
+% of the function (needed if punctuation is to be moved).
% \begin{macrocode}
-\NewDocumentCommand \bibnote { o +m } {
- \IfNoValueTF {#1}
- {
- \int_gincr:N \g_@@_note_int
- \@@_bibnote:xn { \@@_note_name: } {#2}
- }
- { \@@_bibnote:xn { \@@_insert_refsection: #1 } {#2} }
-}
-\cs_new_protected:Npn \@@_bibnote:nn #1#2 {
- \@@_write_note:nn {#1} {#2}
- \@@_mark_note:n {#1}
-}
+\NewDocumentCommand \bibnote { o +m }
+ {
+ \IfNoValueTF {#1}
+ {
+ \int_gincr:N \g_@@_note_int
+ \@@_bibnote:xn { \@@_note_name: } {#2}
+ }
+ { \@@_bibnote:xn { \@@_insert_refsection: #1 } {#2} }
+ }
+\cs_new_protected:Npn \@@_bibnote:nn #1#2
+ {
+ \notestobib_write_note:nn {#1} {#2}
+ \@@_mark_note:n {#1}
+ }
\cs_generate_variant:Nn \@@_bibnote:nn { x }
% \end{macrocode}
-%\end{macro}
-%\end{macro}
-%\end{macro}
+% \end{macro}
+% \end{macro}
%
-%\begin{macro}{\bibnotemark}
-% Simply marking a note has similar requirements, but as there is only
-% a single internal function to call the code is less complex.
+% \begin{macro}{\bibnotemark}
+% Simply marking a note has similar requirements, but as there is only
+% a single internal function to call the code is less complex.
% \begin{macrocode}
-\NewDocumentCommand \bibnotemark { o } {
- \IfNoValueTF {#1}
- {
- \int_gincr:N \g_@@_note_int
- \@@_mark_note:x { \@@_note_name: }
- }
- { \@@_mark_note:x { \@@_insert_refsection: #1 } }
-}
+\NewDocumentCommand \bibnotemark { o }
+ {
+ \IfNoValueTF {#1}
+ {
+ \int_gincr:N \g_@@_note_int
+ \@@_mark_note:x { \@@_note_name: }
+ }
+ { \@@_mark_note:x { \@@_insert_refsection: #1 } }
+ }
% \end{macrocode}
-%\end{macro}
+% \end{macro}
%
-%\begin{macro}{\bibnotetext}
-% As text for a note uses the same number as the preceeding mark,
-% things are slightly less complex here. The basic \texttt{o} argument
-% type is used as this means that full expansion of the note name can
-% take place \enquote{early}.
+% \begin{macro}{\bibnotetext}
+% As text for a note uses the same number as the preceding mark,
+% things are slightly less complex here. The basic \texttt{o} argument
+% type is used as this means that full expansion of the note name can
+% take place \enquote{early}.
% \begin{macrocode}
-\NewDocumentCommand \bibnotetext { o +m } {
- \IfNoValueTF {#1}
- { \@@_write_note:xn { \@@_note_name: } {#2} }
- { \@@_write_note:xn { \@@_insert_refsection: #1 } {#2} }
-}
+\NewDocumentCommand \bibnotetext { o +m }
+ {
+ \IfNoValueTF {#1}
+ { \notestobib_write_note:xn { \@@_note_name: } {#2} }
+ { \notestobib_write_note:xn { \@@_insert_refsection: #1 } {#2} }
+ }
% \end{macrocode}
-%\end{macro}
+% \end{macro}
%
-%\begin{macro}{\recordnotes}
-% A direct call to the internal function: no arguments are needed.
+% \begin{macro}{\recordnotes}
+% A direct call to the internal function: no arguments are needed.
% \begin{macrocode}
-\NewDocumentCommand \recordnotes { } {
- \@@_record_notes:
-}
+\NewDocumentCommand \recordnotes { }
+ { \@@_record_notes: }
% \end{macrocode}
-%\end{macro}
+% \end{macro}
%
-%\begin{macro}{\bibnotesetup}
+% \begin{macro}{\bibnotesetup}
% A user set up function.
% \begin{macrocode}
-\NewDocumentCommand \bibnotesetup { m } {
- \keys_set:nn { notes2bib } {#1}
-}
+\NewDocumentCommand \bibnotesetup { m }
+ { \keys_set:nn { notes2bib } {#1} }
% \end{macrocode}
-%\end{macro}
+% \end{macro}
%
-%\begin{macro}{\printbibnotes}
-% A direct translation for the internal function.
+% \begin{macro}{\printbibnotes}
+% A direct translation for the internal function.
% \begin{macrocode}
-\NewDocumentCommand \printbibnotes { } {
- \@@_print_notes:
-}
+\NewDocumentCommand \printbibnotes { }
+ { \@@_print_notes: }
% \end{macrocode}
-%\end{macro}
-%
-%\begin{macro}{\citenote}
-%\changes{v2.0}{2009/09/25}{Depreciated in favour of \cs{bibnotemark}}
-%\begin{macro}{\flushnotestack}
-%\changes{v2.0}{2009/09/28}{Depreciated in favour of
-% \cs{recordnotes}}
-%\begin{macro}{\niibsetup}
-%\changes{v2.0}{2009/09/25}{Depreciated in favour of \cs{bibnotesetup}}
-% A few functions which are depreciated in version two.
+% \end{macro}
+%
+% \begin{macro}{\citenote}
+% \begin{macro}{\flushnotestack}
+% \begin{macro}{\niibsetup}
+% A few functions which are depreciated in version two.
% \begin{macrocode}
-\NewDocumentCommand \citenote { m } {
- \@@_mark_note:n {#1}
-}
+\NewDocumentCommand \citenote { m }
+ { \@@_mark_note:n {#1} }
\cs_new_eq:NN \flushnotestack \recordnotes
\cs_new_eq:NN \niibsetup \bibnotesetup
% \end{macrocode}
-%\end{macro}
-%\end{macro}
-%\end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
-%\subsection{Auxiliary file functions}
+% \subsection{Auxiliary file functions}
%
% \pkg{notes2bib} needs to write information to the \file{aux} file
% for carrying information between runs. Rather than give them cryptic
% names, they have long design-level ones. They are also declared
-% as protected functions so that writing to the \file{aux} file is
+% as protected functions so that writing to the \file{aux} file is
% easier.
%
-%\begin{macro}{\NotesAfterCitations}
-%\changes{v2.0b}{2009/01/09}{Define using
-% \cs{cs_new_protected_nopar:Npn}}
-%\begin{macro}{\NotesBeforeCitations}
-%\changes{v2.0b}{2009/01/09}{Define using
-% \cs{cs_new_protected_nopar:Npn}}
-% The functions to pass information on out-of-order notes from one
-% run to another both add the information to the appropriate lists.
-% For notes before citations, there is also a need to put the
-% \cs{citation} calls into the \file{aux} file at the correct stage.
+% \begin{macro}{\NotesAfterCitations}
+% \begin{macro}{\NotesBeforeCitations}
+% The functions to pass information on out-of-order notes from one
+% run to another both add the information to the appropriate lists.
+% For notes before citations, there is also a need to put the
+% \cs{citation} calls into the \file{aux} file at the correct stage.
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \NotesAfterCitations #1 {
- \clist_gput_right:Nn \g_@@_previous_after_clist {#1}
-}
-\cs_new_protected_nopar:Npn \NotesBeforeCitations #1 {
- \clist_gput_right:Nn \g_@@_previous_after_clist {#1}
- \tl_gput_right:Nn \g_@@_document_hook_tl { \nocite {#1} }
-}
+\cs_new_protected:Npn \NotesAfterCitations #1
+ { \clist_gput_right:Nn \g_@@_previous_after_clist {#1} }
+\cs_new_protected:Npn \NotesBeforeCitations #1
+ {
+ \clist_gput_right:Nn \g_@@_previous_after_clist {#1}
+ \tl_gput_right:Nn \g_@@_document_hook_tl { \nocite {#1} }
+ }
% \end{macrocode}
-%\end{macro}
-%\end{macro}
-%
-%\begin{macro}{\TotalNotes}
-%\changes{v2.0b}{2009/01/09}{Define using
-% \cs{cs_new_protected_nopar:Npn}}
-% This function allows the total number of bibliography notes to be
-% carried forward from one run to the next.
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\TotalNotes}
+% This function allows the total number of bibliography notes to be
+% carried forward from one run to the next.
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \TotalNotes #1 {
- \int_gset:Nn \g_@@_previous_notes_int {#1}
-}
+\cs_new_protected:Npn \TotalNotes #1
+ { \int_gset:Nn \g_@@_previous_notes_int {#1} }
% \end{macrocode}
-%\end{macro}
+% \end{macro}
%
-%\subsection{Code at the start of the document}
+% \subsection{Code at the start of the document}
%
-%\begin{macro}{\g_@@_document_hook_tl}
-% \pkg{notes2bib} needs to be able to carry out a few tasks right at the
-% beginning of the document. To do that, a hook is added to the
-% \cs{document} macro, which can be treated as a token list variable
-% as it has no arguments.
+% \begin{macro}{\g_@@_document_hook_tl}
+% \pkg{notes2bib} needs to be able to carry out a few tasks right at the
+% beginning of the document. To do that, a hook is added to the
+% \cs{document} macro, which can be treated as a token list variable
+% as it has no arguments.
% \begin{macrocode}
\tl_gput_right:Nn \document { \g_@@_document_hook_tl }
\tl_new:N \g_@@_document_hook_tl
% \end{macrocode}
-%\end{macro}
+% \end{macro}
%
-%\subsection{Code at end of the document}
+% \subsection{Code at end of the document}
+%
+% There are a few tasks which have to be carried out a the end of
+% the \LaTeX{} run, so that data is available for the next run.
%
-% There are a few tasks which have to be carried out a the end of
-% the LaTeX run, so that data is available for the next run.
-%
% First, all of the notes need to be added to the auxiliary file.
% This ensures that the comparisons made in the next step make sense.
% \begin{macrocode}
\AtEndDocument { \@@_record_notes: }
% \end{macrocode}
-%
+%
% The list of out-of-order notes from the current run needs to match
% that from the previous run. If not, then there is a need to re-run
-% LaTeX.
+% \LaTeX{}.
% \begin{macrocode}
-\AtEndDocument {
- \tl_if_eq:NNTF \g_@@_all_before_clist \g_@@_previous_before_clist
- {
- \tl_if_eq:NNF \g_@@_all_after_clist \g_@@_previous_after_clist
- { \msg_info:nn { notes2bib } { rerun } }
- }
- { \msg_info:nn { notes2bib } { rerun } }
-}
-\msg_new:nnn { notes2bib } { rerun } {
- To~get~notes~in~the~correct~order,~please~run: \\%
- \c_space_tl 1)~LaTeX \\
- \c_space_tl 2)~BibTeX \\
- \c_space_tl 3)~LaTeX
-}
+\AtEndDocument
+ {
+ \tl_if_eq:NNTF \g_@@_all_before_clist \g_@@_previous_before_clist
+ {
+ \tl_if_eq:NNF \g_@@_all_after_clist \g_@@_previous_after_clist
+ { \msg_info:nn { notes2bib } { rerun } }
+ }
+ { \msg_info:nn { notes2bib } { rerun } }
+ }
+\msg_new:nnn { notes2bib } { rerun }
+ {
+ To~get~notes~in~the~correct~order,~please~run: \\%
+ \c_space_tl 1)~LaTeX \\
+ \c_space_tl 2)~BibTeX \\
+ \c_space_tl 3)~LaTeX
+ }
% \end{macrocode}
-%
-%\begin{macro}{\@@_write_note_file:}
-%\begin{macro}{\g_@@_file_iow}
-% \changes{v2.0i}{2012/07/16}{Define stream in all cases}
-% The notes themselves are now written in one block: this avoids
-% using up a stream for any longer than necessary.
+%
+% \begin{macro}{\@@_write_note_file:}
+% \begin{macro}{\g_@@_file_iow}
+% The notes themselves are now written in one block: this avoids
+% using up a stream for any longer than necessary.
% \begin{macrocode}
-\AtEndDocument {
- \if@filesw
- \exp_after:wN \@@_write_note_file:
- \fi:
-}
-\cs_new_protected_nopar:Npn \@@_write_note_file: {
- \tl_if_empty:NF \g_@@_notes_tl {
- \iow_open:Nn \g_@@_file_iow { \g_@@_filename_tl .bib }
- \iow_now:Nx \g_@@_file_iow { \c_@@_file_message_tl }
- \iow_now:Nx \g_@@_file_iow
- { \exp_not:V \g_@@_notes_tl }
- \iow_close:N \g_@@_file_iow
+\AtEndDocument
+ {
+ \if@filesw
+ \exp_after:wN \@@_write_note_file:
+ \fi:
+ }
+\cs_new_protected:Npn \@@_write_note_file:
+ {
+ \tl_if_empty:NF \g_@@_notes_tl
+ {
+ \iow_open:Nn \g_@@_file_iow { \g_@@_filename_tl .bib }
+ \iow_now:Nx \g_@@_file_iow { \c_@@_file_message_tl }
+ \iow_now:Nx \g_@@_file_iow { \exp_not:V \g_@@_notes_tl }
+ \iow_close:N \g_@@_file_iow
+ }
}
-}
\iow_new:N \g_@@_file_iow
% \end{macrocode}
-%\end{macro}
-%\end{macro}
-%
+% \end{macro}
+% \end{macro}
+%
% The total number of bibliography notes from the current run is
% recorded to the \file{aux} file. This will then be picked up in the
% \begin{macrocode}
-\AtEndDocument {
- \int_compare:nNnT \g_@@_note_int > \c_zero
- {
- \iow_now:Nx \@auxout
- { \TotalNotes { \int_to_arabic:n { \g_@@_note_int } } }
- }
-}
+\AtEndDocument
+ {
+ \int_compare:nNnT \g_@@_note_int > 0
+ {
+ \iow_now:Nx \@auxout
+ { \TotalNotes { \int_to_arabic:n { \g_@@_note_int } } }
+ }
+ }
% \end{macrocode}
%
-%\subsection{Tidying up}
+% \subsection{Tidying up}
%
-%\begin{macro}{\thanks}
-% The \cs{thanks} macro has to be replaced by one that uses the original
-% \cs{footnotemark} and \cs{footnotetext} under all circumstances. This
-% is the kernel definition modified: if an alternative version is in use
-% things may go wrong.
+% \begin{macro}{\thanks}
+% The \cs{thanks} macro has to be replaced by one that uses the original
+% \cs{footnotemark} and \cs{footnotetext} under all circumstances. This
+% is the kernel definition modified: if an alternative version is in use
+% things may go wrong.
% \begin{macrocode}
-\cs_set:Npn \thanks #1 {
- \@@_footnotemark:w
- \protected@xdef \@thanks
- {
- \@thanks
- \protect \@@_footnotetext:w [ \the \c@footnote ] {#1}
- }
-}
+\cs_set:Npn \thanks #1
+ {
+ \@@_footnotemark:w
+ \protected@xdef \@thanks
+ {
+ \@thanks
+ \protect \@@_footnotetext:w [ \the \c@footnote ] {#1}
+ }
+ }
% \end{macrocode}
-%\end{macro}
+% \end{macro}
%
% The final job is to set note placement: this is done here as various
-% parts of the module need to be in place for this to work correctly.
+% parts of the module need to be in place for this to work correctly.
% \begin{macrocode}
\keys_set:nn { notes2bib } { placement = mixed }
% \end{macrocode}
-%
-% Any load time options are processed.
+%
+% Any load time options are processed.
% \begin{macrocode}
\ProcessKeysOptions { notes2bib }
% \end{macrocode}
-%
+%
% \begin{macrocode}
%</package>
% \end{macrocode}
%
-%\end{implementation}
+% \end{implementation}
%
-%\PrintChanges
-%\PrintIndex \ No newline at end of file
+% \PrintChanges
+% \PrintIndex
diff --git a/macros/latex/contrib/notes2bib/notes2bib.pdf b/macros/latex/contrib/notes2bib/notes2bib.pdf
index bfa4086e4f..e4238fcf27 100644
--- a/macros/latex/contrib/notes2bib/notes2bib.pdf
+++ b/macros/latex/contrib/notes2bib/notes2bib.pdf
Binary files differ
diff --git a/macros/latex/contrib/xsim/README b/macros/latex/contrib/xsim/README
index 1c1284233f..722702fd3c 100644
--- a/macros/latex/contrib/xsim/README
+++ b/macros/latex/contrib/xsim/README
@@ -1,5 +1,5 @@
--------------------------------------------------------------------------
-XSIM 2018/02/12 v0.11
+XSIM 2019/09/30 v0.12
eXercise Sheets IMproved
@@ -8,7 +8,7 @@ Clemens Niederberger
Web: https://github.com/cgnieder/xsim
E-Mail: contact@mychemistry.eu
--------------------------------------------------------------------------
-Copyright 2017--2018 Clemens Niederberger
+Copyright 2017--2019 Clemens Niederberger
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
@@ -25,6 +25,7 @@ The Current Maintainer of this work is Clemens Niederberger.
The xsim package consists of the code files:
xsim.sty
xsimverb.sty
+ xsim.auxfile.code.tex
xsim.base.code.tex
xsim.blanks.code.tex
xsim.collections.code.tex
@@ -34,11 +35,11 @@ The xsim package consists of the code files:
xsim.goals.code.tex
xsim.grades.code.tex
xsim.interface.code.tex
- xsim.layouts.code.tex
xsim.modules.code.tex
xsim.properties.code.tex
xsim.random.code.tex
xsim.solutions.code.tex
+ xsim.style.layouts.code.tex
xsim.tags.code.tex
xsim.templates.code.tex
xsim.translations.code.tex
@@ -63,8 +64,8 @@ The xsim package consists of the example files:
xsim.grade-distribution.tex, xsim.grade-distribution.pdf
xsim.hints.tex, xsim.hints.pdf
xsim.listings.tex, xsim.listings.pdf
- xsim.multiplechoice.tex, xsim.multiplechoice.pdf
xsim.listofexercises.tex, xsim.listofexercises.pdf
+ xsim.multiplechoice.tex, xsim.multiplechoice.pdf
xsim.pointsums.tex, xsim.pointsums.pdf
xsim.randomexercises.tex, xsim.randomexercises.pdf
xsim.various.tex, xsim.various.pdf
diff --git a/macros/latex/contrib/xsim/code/xsim.auxfile.code.tex b/macros/latex/contrib/xsim/code/xsim.auxfile.code.tex
index e5eff8b728..39a4306f59 100644
--- a/macros/latex/contrib/xsim/code/xsim.auxfile.code.tex
+++ b/macros/latex/contrib/xsim/code/xsim.auxfile.code.tex
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/xsim
% E-Mail: contact@mychemistry.eu
% ----------------------------------------------------------------------------
-% Copyright 2017--2018 Clemens Niederberger
+% Copyright 2017--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/xsim/code/xsim.base.code.tex b/macros/latex/contrib/xsim/code/xsim.base.code.tex
index 32fee6e1bd..df767976b6 100644
--- a/macros/latex/contrib/xsim/code/xsim.base.code.tex
+++ b/macros/latex/contrib/xsim/code/xsim.base.code.tex
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/xsim
% E-Mail: contact@mychemistry.eu
% ----------------------------------------------------------------------------
-% Copyright 2017--2018 Clemens Niederberger
+% Copyright 2017--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -57,6 +57,8 @@
\cs_generate_variant:Nn \tl_set_rescan:Nnn {Nnn}
\cs_generate_variant:Nn \iow_now:Nn {NV}
\cs_generate_variant:Nn \str_if_eq:nnT {x}
+\cs_generate_variant:Nn \str_if_eq:nnF {xx}
+\cs_generate_variant:Nn \str_if_eq_p:nn {e}
\cs_generate_variant:Nn \iow_now:Nn {NV}
\cs_generate_variant:Nn \prg_new_protected_conditional:Npnn {c}
diff --git a/macros/latex/contrib/xsim/code/xsim.blanks.code.tex b/macros/latex/contrib/xsim/code/xsim.blanks.code.tex
index 97a37e2f71..18af3f404d 100644
--- a/macros/latex/contrib/xsim/code/xsim.blanks.code.tex
+++ b/macros/latex/contrib/xsim/code/xsim.blanks.code.tex
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/xsim
% E-Mail: contact@mychemistry.eu
% ----------------------------------------------------------------------------
-% Copyright 2017--2018 Clemens Niederberger
+% Copyright 2017--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -67,7 +67,7 @@
\tl_set:Nn \l__xsim_blank_linespread_tl {#1} ,
linespread .initial:n = 1 ,
line-increment .dim_set:N = \l__xsim_blank_line_increment_dim ,
- line-increment .initial:n = 1pt ,
+ line-increment .initial:n = 0.001\linewidth ,
line-minimum-length .dim_set:N = \l__xsim_blank_line_minimum_length_dim ,
line-minimum-length .initial:n = 2em
}
diff --git a/macros/latex/contrib/xsim/code/xsim.collections.code.tex b/macros/latex/contrib/xsim/code/xsim.collections.code.tex
index 62c963d631..b7d348e0d5 100644
--- a/macros/latex/contrib/xsim/code/xsim.collections.code.tex
+++ b/macros/latex/contrib/xsim/code/xsim.collections.code.tex
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/xsim
% E-Mail: contact@mychemistry.eu
% ----------------------------------------------------------------------------
-% Copyright 2017--2018 Clemens Niederberger
+% Copyright 2017--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -353,7 +353,7 @@
{
\bool_if:nTF
{
- !\str_if_eq_x_p:nn {#1} {all~ exercises} &&
+ !\str_if_eq_p:en {#1} {all~ exercises} &&
\prop_item:Nn \g__xsim_collections_prop {#1}
}
{ \prg_return_true: }
diff --git a/macros/latex/contrib/xsim/code/xsim.definitions.code.tex b/macros/latex/contrib/xsim/code/xsim.definitions.code.tex
index 1c27ad960a..02fb1444f7 100644
--- a/macros/latex/contrib/xsim/code/xsim.definitions.code.tex
+++ b/macros/latex/contrib/xsim/code/xsim.definitions.code.tex
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/xsim
% E-Mail: contact@mychemistry.eu
% ----------------------------------------------------------------------------
-% Copyright 2017--2018 Clemens Niederberger
+% Copyright 2017--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -34,6 +34,8 @@
\DeclareExerciseParameter*!{solution-env}
\DeclareExerciseParameter !{exercise-name}
\DeclareExerciseParameter !{solution-name}
+\DeclareExerciseParameter {exercises-name}
+\DeclareExerciseParameter {solutions-name}
\DeclareExerciseParameter !{exercise-template}
\DeclareExerciseParameter !{solution-template}
\DeclareExerciseParameter* {counter}
@@ -75,7 +77,7 @@
\DeclareExerciseTagging {tags}
\DeclareExerciseTagging {topics}
-\xsimsetup{tags/ingore-untagged=false}
+\xsimsetup{tags/ignore-untagged=false}
% ----------------------------------------------------------------------------
@@ -160,7 +162,9 @@
exercise-env = exercise ,
solution-env = solution ,
exercise-name = \XSIMtranslate {exercise} ,
+ exercises-name = \XSIMtranslate {exercises} ,
solution-name = \XSIMtranslate {solution} ,
+ solutions-name = \XSIMtranslate {solutions} ,
exercise-template = default ,
solution-template = default
}
@@ -339,6 +343,13 @@
German = \"Ubung
}
+\DeclareExerciseTranslations {exercises} {
+ Fallback = exercises ,
+ English = exercises ,
+ French = exercices ,
+ German = \"Ubungen
+}
+
\DeclareExerciseTranslations {question} {
Fallback = question ,
English = question ,
@@ -346,6 +357,13 @@
German = Aufgabe
}
+\DeclareExerciseTranslations {questions} {
+ Fallback = questions ,
+ English = questions ,
+ French = questions ,
+ German = Aufgaben
+}
+
\DeclareExerciseTranslations {solution} {
Fallback = solution ,
English = solution ,
@@ -353,6 +371,13 @@
German = L\"osung
}
+\DeclareExerciseTranslations {solutions} {
+ Fallback = solutions ,
+ English = solutions ,
+ French = solutions ,
+ German = L\"osungen
+}
+
\DeclareExerciseTranslations {point-abbr} {
Fallback = p. ,
English = p. ,
@@ -377,55 +402,66 @@
\DeclareExerciseTranslations {reached} {
Fallback = reached ,
English = reached ,
- French = atteint ,
+ French = obtenus ,
German = erreicht
}
\DeclareExerciseTranslations {total} {
Fallback = total ,
English = total ,
- French = totalement ,
+ French = total ,
German = insgesamt
}
\DeclareExerciseTranslations {default-heading} {
- Fallback = \XSIMmixedcase { \GetExerciseParameter {solution-name} s }~
- to~ the~ \XSIMmixedcase { \GetExerciseParameter {exercise-name} s} ,
- English = \XSIMmixedcase { \GetExerciseParameter {solution-name} s }~
- to~ the~ \XSIMmixedcase { \GetExerciseParameter {exercise-name} s} ,
- German = \XSIMmixedcase { \GetExerciseParameter {solution-name} en }~
- zu~ den~ \XSIMmixedcase { \GetExerciseParameter {exercise-name} en}
+ Fallback = \XSIMmixedcase { \GetExerciseParameter {solutions-name} }~
+ to~ the~ \XSIMmixedcase { \GetExerciseParameter {exercises-name} } ,
+ English = \XSIMmixedcase { \GetExerciseParameter {solutions-name} }~
+ to~ the~ \XSIMmixedcase { \GetExerciseParameter {exercises-name} } ,
+ French = \XSIMmixedcase { \GetExerciseParameter {solutions-name} ~
+ des~ \GetExerciseParameter {exercises-name} } ,
+ German = \XSIMmixedcase { \GetExerciseParameter {solutions-name} }~
+ zu~ den~ \XSIMmixedcase { \GetExerciseParameter {exercises-name} }
}
\DeclareExerciseTranslations {collection-heading} {
- Fallback = \XSIMmixedcase { \GetExerciseParameter {exercise-name} s } ,
- English = \XSIMmixedcase { \GetExerciseParameter {exercise-name} s } ,
- German = \XSIMmixedcase { \GetExerciseParameter {exercise-name} en }
+ Fallback = \XSIMmixedcase { \GetExerciseParameter {exercises-name} } ,
+ English = \XSIMmixedcase { \GetExerciseParameter {exercises-name} } ,
+ French = \XSIMmixedcase { \GetExerciseParameter {exercises-name} } ,
+ German = \XSIMmixedcase { \GetExerciseParameter {exercises-name} }
}
\DeclareExerciseTranslations {per-section-heading} {
- Fallback = \XSIMmixedcase { \GetExerciseParameter {solution-name} s }~
- to~ the~ \XSIMmixedcase { \GetExerciseParameter {exercise-name} s}~
+ Fallback = \XSIMmixedcase { \GetExerciseParameter {solutions-name} } ~
+ to~ the~ \XSIMmixedcase { \GetExerciseParameter {exercises-name} } ~
of~ Section \nobreakspace \ExerciseSection ,
- English = \XSIMmixedcase { \GetExerciseParameter {solution-name} s }~
- to~ the~ \XSIMmixedcase { \GetExerciseParameter {exercise-name} s}~
+ English = \XSIMmixedcase { \GetExerciseParameter {solutions-name} } ~
+ to~ the~ \XSIMmixedcase { \GetExerciseParameter {exercises-name} } ~
of~ Section \nobreakspace \ExerciseSection ,
- German = \XSIMmixedcase { \GetExerciseParameter {solution-name} en }~
- zu~ den~ \XSIMmixedcase { \GetExerciseParameter {exercise-name} en}~
+ French = \XSIMmixedcase { \GetExerciseParameter {solutions-name} ~
+ des~ \GetExerciseParameter {exercises-name} ~ de~ la~
+ section \nobreakspace \ExerciseSection } ,
+ German = \XSIMmixedcase { \GetExerciseParameter {solutions-name} } ~
+ zu~ den~ \XSIMmixedcase { \GetExerciseParameter {exercises-name} }~
in~ Abschnitt \nobreakspace \ExerciseSection
}
\DeclareExerciseTranslations {per-chapter-heading} {
- Fallback = \XSIMmixedcase { \GetExerciseParameter {solution-name} s }~
- to~ the~ \XSIMmixedcase { \GetExerciseParameter {exercise-name} s}~
+ Fallback = \XSIMmixedcase { \GetExerciseParameter {solutions-name} } ~
+ to~ the~ \XSIMmixedcase { \GetExerciseParameter {exercises-name} } ~
of~ Chapter \nobreakspace \ExerciseChapter ,
- English = \XSIMmixedcase { \GetExerciseParameter {solution-name} s }~
- to~ the~ \XSIMmixedcase { \GetExerciseParameter {exercise-name} s}~
+ English = \XSIMmixedcase { \GetExerciseParameter {solutions-name} } ~
+ to~ the~ \XSIMmixedcase { \GetExerciseParameter {exercises-name} } ~
of~ Chapter \nobreakspace \ExerciseChapter ,
- German = \XSIMmixedcase { \GetExerciseParameter {solution-name} en }~
- zu~ den~ \XSIMmixedcase { \GetExerciseParameter {exercise-name} en}~
+ French = \XSIMmixedcase { \GetExerciseParameter {solutions-name} ~
+ des~ \GetExerciseParameter {exercises-name} ~
+ du~ chapitre \nobreakspace \ExerciseChapter } ,
+ German = \XSIMmixedcase { \GetExerciseParameter {solutions-name} } ~
+ zu~ den~ \XSIMmixedcase { \GetExerciseParameter {exercises-name} } ~
in~ Kapitel \nobreakspace \ExerciseChapter
}
% ----------------------------------------------------------------------------
\file_input_stop:
+
+2019/02/17 fixed error in German translations (issue 39)
diff --git a/macros/latex/contrib/xsim/code/xsim.environments.code.tex b/macros/latex/contrib/xsim/code/xsim.environments.code.tex
index ac12cb5153..49976aa53f 100644
--- a/macros/latex/contrib/xsim/code/xsim.environments.code.tex
+++ b/macros/latex/contrib/xsim/code/xsim.environments.code.tex
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/xsim
% E-Mail: contact@mychemistry.eu
% ----------------------------------------------------------------------------
-% Copyright 2017--2018 Clemens Niederberger
+% Copyright 2017--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -295,8 +295,7 @@
\str_if_eq:nnT {#4} {solution}
{
\__xsim_set_file_signature:nnn {#1} {#2} {exercise}
- \tl_set_from_file:Nnn \ExerciseText {}
- {\l__xsim_file_path_and_name_tl}
+ \file_get:nnN {\l__xsim_file_path_and_name_tl} {} \ExerciseText
\tl_trim_spaces:N \ExerciseText
}
\use:x
@@ -378,3 +377,5 @@
% ----------------------------------------------------------------------------
\file_input_stop:
+
+2019/02/17 - fix issue #43
diff --git a/macros/latex/contrib/xsim/code/xsim.exercises.code.tex b/macros/latex/contrib/xsim/code/xsim.exercises.code.tex
index a269fe2c5d..98cebe3eb3 100644
--- a/macros/latex/contrib/xsim/code/xsim.exercises.code.tex
+++ b/macros/latex/contrib/xsim/code/xsim.exercises.code.tex
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/xsim
% E-Mail: contact@mychemistry.eu
% ----------------------------------------------------------------------------
-% Copyright 2017--2018 Clemens Niederberger
+% Copyright 2017--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -317,6 +317,16 @@
\xsim_set_parameter:nnx {#1} {number}
{ number of \xsim_get_parameter:nn {#1} {exercise-env} s }
\xsim_check_mandatory_parameters:n {#1}
+ \xsim_if_parameter_set:nnF {#1} {exercises-name}
+ {
+ \xsim_set_parameters:nn {#1}
+ { exercises-name = \xsim_get_parameter:nn {#1} {exercise-name} s }
+ }
+ \xsim_if_parameter_set:nnF {#1} {solutions-name}
+ {
+ \xsim_set_parameters:nn {#1}
+ { solutions-name = \xsim_get_parameter:nn {#1} {solution-name} s }
+ }
\xsim_if_parameter_set:nnF {#1} {counter}
{
\xsim_set_parameters:nx {#1}
diff --git a/macros/latex/contrib/xsim/code/xsim.goals.code.tex b/macros/latex/contrib/xsim/code/xsim.goals.code.tex
index ab8662ad71..98847ae129 100644
--- a/macros/latex/contrib/xsim/code/xsim.goals.code.tex
+++ b/macros/latex/contrib/xsim/code/xsim.goals.code.tex
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/xsim
% E-Mail: contact@mychemistry.eu
% ----------------------------------------------------------------------------
-% Copyright 2017--2018 Clemens Niederberger
+% Copyright 2017--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -81,9 +81,9 @@
\xsim_if_goal_exists:nT {#3}
{
\fp_gadd:cn {g__xsim_goal_#3_fp}
- { 0 \xsim_get_property:nnn {#1} {#2} {#3} }
+ { \xsim_get_property:nnn {#1} {#2} {#3} + 0 }
\fp_gadd:cn {g__xsim_#1_goal_#3_fp}
- { 0 \xsim_get_property:nnn {#1} {#2} {#3} }
+ { \xsim_get_property:nnn {#1} {#2} {#3} + 0 }
}
}
@@ -305,3 +305,5 @@
% ----------------------------------------------------------------------------
\file_input_stop:
+
+2019/01/30 bug fix (cf. https://texwelt.de/wissen/fragen/24101/)
diff --git a/macros/latex/contrib/xsim/code/xsim.grades.code.tex b/macros/latex/contrib/xsim/code/xsim.grades.code.tex
index 4c25e99b45..e8a75cf85b 100644
--- a/macros/latex/contrib/xsim/code/xsim.grades.code.tex
+++ b/macros/latex/contrib/xsim/code/xsim.grades.code.tex
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/xsim
% E-Mail: contact@mychemistry.eu
% ----------------------------------------------------------------------------
-% Copyright 2017--2018 Clemens Niederberger
+% Copyright 2017--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/xsim/code/xsim.interface.code.tex b/macros/latex/contrib/xsim/code/xsim.interface.code.tex
index 32beb12208..b8798e9c47 100644
--- a/macros/latex/contrib/xsim/code/xsim.interface.code.tex
+++ b/macros/latex/contrib/xsim/code/xsim.interface.code.tex
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/xsim
% E-Mail: contact@mychemistry.eu
% ----------------------------------------------------------------------------
-% Copyright 2017--2018 Clemens Niederberger
+% Copyright 2017--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -227,14 +227,14 @@
\NewDocumentCommand \DeclareExerciseParameter {st!m}
{
- \IfBooleanTF {#1}
+ \IfBooleanTF {#1} % fixed
{
- \IfBooleanTF {#2}
+ \IfBooleanTF {#2} % mandatory
{ \xsim_declare_parameter:nnn {true} {true} {#3} }
{ \xsim_declare_parameter:nnn {true} {false} {#3} }
}
{
- \IfBooleanTF {#2}
+ \IfBooleanTF {#2} % mandatory
{ \xsim_declare_parameter:nnn {false} {true} {#3} }
{ \xsim_declare_parameter:nnn {false} {false} {#3} }
}
diff --git a/macros/latex/contrib/xsim/code/xsim.modules.code.tex b/macros/latex/contrib/xsim/code/xsim.modules.code.tex
index 9337dc2073..3d94ca4b61 100644
--- a/macros/latex/contrib/xsim/code/xsim.modules.code.tex
+++ b/macros/latex/contrib/xsim/code/xsim.modules.code.tex
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/xsim
% E-Mail: contact@mychemistry.eu
% ----------------------------------------------------------------------------
-% Copyright 2017--2018 Clemens Niederberger
+% Copyright 2017--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -66,7 +66,7 @@
\cs_new_protected:Npn \xsim_load_module:n #1
{
\tl_set:Nx \l_tmpa_tl { \tl_trim_spaces:n {#1} }
- \str_if_eq_x:nnTF { \l_tmpa_tl } {modules}
+ \str_if_eq:VnTF \l_tmpa_tl {modules}
{ \msg_error:nn {xsim} {forbidden-module} }
{ \__xsim_load_module:V \l_tmpa_tl }
}
@@ -162,12 +162,14 @@
\tl_set:Nx \l__xsim_module_date_tl {\c_xsim_date_tl}
\tl_set:Nx \l__xsim_module_version_tl {\c_xsim_version_tl}
}
-
+
+\cs_generate_variant:Nn \str_if_eq:nnF {xx}
+
\cs_new_protected:Npn \__xsim_module:nn #1#2
{
\seq_gput_right:Nn \g__xsim_loaded_modules_seq {#1}
\prop_gput:Nnn \g__xsim_loaded_modules_prop {#1} {#2}
- \str_if_eq_x:nnF
+ \str_if_eq:xxF
{\c__xsim_module_prefix_tl.#1.\c__xsim_module_extension_tl}
{\@currname.\@currext}
{
diff --git a/macros/latex/contrib/xsim/code/xsim.properties.code.tex b/macros/latex/contrib/xsim/code/xsim.properties.code.tex
index 06558868cb..1222a61b2e 100644
--- a/macros/latex/contrib/xsim/code/xsim.properties.code.tex
+++ b/macros/latex/contrib/xsim/code/xsim.properties.code.tex
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/xsim
% E-Mail: contact@mychemistry.eu
% ----------------------------------------------------------------------------
-% Copyright 2017--2018 Clemens Niederberger
+% Copyright 2017--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -182,7 +182,7 @@
\cs_new_protected:Npn \__xsim_set_boolean_property:nnnn #1#2#3#4
{
- \str_case_x:nnTF { \str_lower_case:n {#4} }
+ \str_case_e:nnTF { \str_lower_case:n {#4} }
{
{} {}
{true} {}
diff --git a/macros/latex/contrib/xsim/code/xsim.random.code.tex b/macros/latex/contrib/xsim/code/xsim.random.code.tex
index e8bddf2a10..7cdaa0a948 100644
--- a/macros/latex/contrib/xsim/code/xsim.random.code.tex
+++ b/macros/latex/contrib/xsim/code/xsim.random.code.tex
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/xsim
% E-Mail: contact@mychemistry.eu
% ----------------------------------------------------------------------------
-% Copyright 2017--2018 Clemens Niederberger
+% Copyright 2017--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -295,7 +295,7 @@
{
\tl_set:Nx \l__xsim_tmpa_tl
{ \xsim_get_id_for_property:nn {ID} {##1} }
- \tl_if_blank:NTF \l__xsim_tmpa_tl
+ \tl_if_blank:VTF \l__xsim_tmpa_tl
{ \seq_put_right:Nn \l__xsim_tmpa_seq {##1} }
{
\seq_put_right:Nx \l__xsim_tmpa_seq
diff --git a/macros/latex/contrib/xsim/code/xsim.solutions.code.tex b/macros/latex/contrib/xsim/code/xsim.solutions.code.tex
index b8ac06aca0..fda5152a50 100644
--- a/macros/latex/contrib/xsim/code/xsim.solutions.code.tex
+++ b/macros/latex/contrib/xsim/code/xsim.solutions.code.tex
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/xsim
% E-Mail: contact@mychemistry.eu
% ----------------------------------------------------------------------------
-% Copyright 2017--2018 Clemens Niederberger
+% Copyright 2017--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/xsim/code/xsim.sty b/macros/latex/contrib/xsim/code/xsim.sty
index 9374722397..8570e7a186 100644
--- a/macros/latex/contrib/xsim/code/xsim.sty
+++ b/macros/latex/contrib/xsim/code/xsim.sty
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/xsim
% E-Mail: contact@mychemistry.eu
% ----------------------------------------------------------------------------
-% Copyright 2017--2018 Clemens Niederberger
+% Copyright 2017--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -29,9 +29,9 @@
\ExplSyntaxOn
-\tl_const:Nn \c_xsim_date_tl {2018/02/12}
+\tl_const:Nn \c_xsim_date_tl {2019/09/30}
\tl_const:Nn \c_xsim_version_major_number_tl {0}
-\tl_const:Nn \c_xsim_version_minor_number_tl {11}
+\tl_const:Nn \c_xsim_version_minor_number_tl {12}
\tl_const:Nn \c_xsim_version_subrelease_tl {}
\tl_const:Nx \c_xsim_version_number_tl
{
diff --git a/macros/latex/contrib/xsim/code/xsim.style.layouts.code.tex b/macros/latex/contrib/xsim/code/xsim.style.layouts.code.tex
index e8a43b0992..304316eed0 100644
--- a/macros/latex/contrib/xsim/code/xsim.style.layouts.code.tex
+++ b/macros/latex/contrib/xsim/code/xsim.style.layouts.code.tex
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/xsim
% E-Mail: contact@mychemistry.eu
% ----------------------------------------------------------------------------
-% Copyright 2017--2018 Clemens Niederberger
+% Copyright 2017--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/xsim/code/xsim.tags.code.tex b/macros/latex/contrib/xsim/code/xsim.tags.code.tex
index 4fac1762f8..52ac1b519a 100644
--- a/macros/latex/contrib/xsim/code/xsim.tags.code.tex
+++ b/macros/latex/contrib/xsim/code/xsim.tags.code.tex
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/xsim
% E-Mail: contact@mychemistry.eu
% ----------------------------------------------------------------------------
-% Copyright 2017--2018 Clemens Niederberger
+% Copyright 2017--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -54,7 +54,7 @@
\bool_new:c {l____xsim_tagged_#1_bool}
\keys_define:nn {xsim}
{
- #1/ingore-untagged .bool_set:c = {l__xsim_ignore_untagged_#1_bool} ,
+ #1/ignore-untagged .bool_set:c = {l__xsim_ignore_untagged_#1_bool} ,
#1/ignore-untagged .initial:n = true ,
#1 .code:n =
\xsim_set_seq_from_clist:cn {l__xsim_chosen_tags_#1_seq} {##1}
diff --git a/macros/latex/contrib/xsim/code/xsim.templates.code.tex b/macros/latex/contrib/xsim/code/xsim.templates.code.tex
index 9ed767f4a7..2f167a23a4 100644
--- a/macros/latex/contrib/xsim/code/xsim.templates.code.tex
+++ b/macros/latex/contrib/xsim/code/xsim.templates.code.tex
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/xsim
% E-Mail: contact@mychemistry.eu
% ----------------------------------------------------------------------------
-% Copyright 2017--2018 Clemens Niederberger
+% Copyright 2017--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/xsim/code/xsim.translations.code.tex b/macros/latex/contrib/xsim/code/xsim.translations.code.tex
index e398575c40..978413f6e6 100644
--- a/macros/latex/contrib/xsim/code/xsim.translations.code.tex
+++ b/macros/latex/contrib/xsim/code/xsim.translations.code.tex
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/xsim
% E-Mail: contact@mychemistry.eu
% ----------------------------------------------------------------------------
-% Copyright 2017--2018 Clemens Niederberger
+% Copyright 2017--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/xsim/code/xsim.verbwrite.code.tex b/macros/latex/contrib/xsim/code/xsim.verbwrite.code.tex
index 83124c5ff2..a04ab8fed4 100644
--- a/macros/latex/contrib/xsim/code/xsim.verbwrite.code.tex
+++ b/macros/latex/contrib/xsim/code/xsim.verbwrite.code.tex
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/xsim
% E-Mail: contact@mychemistry.eu
% ----------------------------------------------------------------------------
-% Copyright 2017--2018 Clemens Niederberger
+% Copyright 2017--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -66,7 +66,7 @@
{ \xsim_if_final:F { \iow_close:N #1 } }
% #1: write stream
-% #1: contents
+% #2: contents
\cs_new_protected:Npn \__xsim_write_to_stream:Nn #1#2
{
\xsim_if_final:F
@@ -75,6 +75,9 @@
% no options are given to the surrounding environment:
\tl_set:Nn \l__xsim_tmpa_tl {#2}
\tl_remove_once:Nn \l__xsim_tmpa_tl {~}
+ % \tl_show:N \l__xsim_tmpa_tl
+ % \int_show:n { \tl_count:N \l__xsim_tmpa_tl }
+ % \tl_analysis_show:N \l__xsim_tmpa_tl
\int_zero:N \l__xsim_tmpa_int
\int_while_do:nn { \l__xsim_tmpa_int < \l_xsim_line_gobble_int }
{
@@ -147,10 +150,10 @@
\cs_set:Npx \__xsim_M:w { \exp_not:N \end {\@currenvir} } %
\char_set_active_eq:nN {13} \__xsim_M:w %
% the last line is `##1 \end{\@currenvir} ##2':
- % \tl_if_blank:nF {##1} %
- % { \__xsim_write_to_stream:Nn \l__file_contents_iow {##1} }%
- % \tl_if_blank:nF {##2} %
- % {}%
+ \tl_if_blank:nF {##1} %
+ { \__xsim_write_to_stream:Nn \l__file_contents_iow {##1} }%
+ \tl_if_blank:nF {##2} %
+ {} %
} %
^^M %
} %
@@ -204,6 +207,6 @@
\NewDocumentCommand \XSIMgobblechars {m}
{ \int_set:Nn \l_xsim_line_gobble_int {#1} }
-
+
% ----------------------------------------------------------------------------
\file_input_stop:
diff --git a/macros/latex/contrib/xsim/code/xsimverb.sty b/macros/latex/contrib/xsim/code/xsimverb.sty
index 8064d0d06d..4046415277 100644
--- a/macros/latex/contrib/xsim/code/xsimverb.sty
+++ b/macros/latex/contrib/xsim/code/xsimverb.sty
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/xsim
% E-Mail: contact@mychemistry.eu
% ----------------------------------------------------------------------------
-% Copyright 2017--2018 Clemens Niederberger
+% Copyright 2017--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/latex/contrib/xsim/doc/examples/xsim.code-and-output.pdf b/macros/latex/contrib/xsim/doc/examples/xsim.code-and-output.pdf
index bbbcfbc18a..72894ac9a6 100644
--- a/macros/latex/contrib/xsim/doc/examples/xsim.code-and-output.pdf
+++ b/macros/latex/contrib/xsim/doc/examples/xsim.code-and-output.pdf
Binary files differ
diff --git a/macros/latex/contrib/xsim/doc/examples/xsim.code-and-output.tex b/macros/latex/contrib/xsim/doc/examples/xsim.code-and-output.tex
index f753f13939..66afaf9b8a 100644
--- a/macros/latex/contrib/xsim/doc/examples/xsim.code-and-output.tex
+++ b/macros/latex/contrib/xsim/doc/examples/xsim.code-and-output.tex
@@ -10,7 +10,7 @@
}
\makeatletter
-\NewDocumentEnvironment{example}{o}
+\NewDocumentEnvironment{example}{!o}
{%
\XSIMgobblechars{2}%
\XSIMsetfilebegin{\@percentchar\space file `\jobname.tmp'}%
@@ -25,7 +25,7 @@
\input{\jobname.tmp}
}
-\NewDocumentEnvironment{code}{o}
+\NewDocumentEnvironment{code}{!o}
{%
\XSIMgobblechars{2}%
\IfNoValueTF{#1}
@@ -46,7 +46,7 @@
\bigskip
-\begin{code}
+\begin{code}[]
blubber \LaTeX
\end{code}
diff --git a/macros/latex/contrib/xsim/doc/xsim-manual.cls b/macros/latex/contrib/xsim/doc/xsim-manual.cls
index 1db5337a58..00bab72636 100644
--- a/macros/latex/contrib/xsim/doc/xsim-manual.cls
+++ b/macros/latex/contrib/xsim/doc/xsim-manual.cls
@@ -8,7 +8,7 @@
% Web: https://github.com/cgnieder/xsim
% E-Mail: contact@mychemistry.eu
% ----------------------------------------------------------------------------
-% Copyright 2017--2018 Clemens Niederberger
+% Copyright 2017--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -29,7 +29,7 @@
% please ignore the contents of this file -- it is not a good example for
% coding...
%
-\ProvidesClass{xsim-manual}[2017/09/18]
+\ProvidesClass{xsim-manual}[2019/09/27]
\LoadClass[load-preamble,add-index]{cnltx-doc}
\RequirePackage{imakeidx}
@@ -286,6 +286,7 @@
style=cnltx,
sortlocale=en_US,
indexing=cite]{biblatex}
+\RequirePackage{csquotes}
\addbibresource{cnltx.bib}
\RequirePackage[biblatex]{embrac}
@@ -452,20 +453,6 @@
tables.}
}
-\ExplSyntaxOn
-\NewAcroCommand \Acs
- {
- \acro_first_upper:
- \acro_short:n {#1}
- }
-\NewAcroCommand \Acsp
- {
- \acro_first_upper:
- \acro_plural:
- \acro_short:n {#1}
- }
-\ExplSyntaxOff
-
\newcommand*\environ{\@ifstar\environ@star\environ@nostar}
\newcommand*\environ@star[1]{\beginenv*\Marg{\env*{#1}}}
\newcommand*\environ@nostar[1]{\beginenv*\Marg{\env{#1}}}
@@ -494,23 +481,36 @@
#1%
}
-\RenewDocumentEnvironment{sourcecode}{O{}}
+\newcommand*\xsimman@readoptions[1]{%
+ \catcode`\^^M=13
+ \xsimman@read@options{#1}%
+}
+
+\begingroup
+\catcode`\^^M=13
+\gdef\xsimman@read@options#1#2^^M{%
+ \ifblank{#2}{}{\xsimman@read@options@#2}%
+ #1%
+ \XSIMfilewritestart*{\jobname.tmp}%
+}%
+\endgroup
+\def\xsimman@read@options@[#1]{\pgfqkeys{/cnltx}{#1}}
+
+\RenewDocumentEnvironment{sourcecode}{}
{%
- \pgfqkeys{/cnltx}{#1}%
- \setlength\cnltx@sidebysidewidth
- {\dimexpr .45\columnwidth -\lst@xleftmargin -\lst@xrightmargin\relax}%
- \XSIMexpandcode{%
- \noexpand\lstset{
- style=cnltx,
- \ifboolexpe{ bool {cnltx@sidebyside} and not bool {cnltx@codeonly} }
- {linewidth=\cnltx@sidebysidewidth,}{}%
- \expandonce\cnltx@local@listings@options
+ \xsimman@readoptions{%
+ \setlength\cnltx@sidebysidewidth
+ {\dimexpr .45\columnwidth -\lst@xleftmargin -\lst@xrightmargin\relax}%
+ \XSIMexpandcode{%
+ \noexpand\lstset{
+ style=cnltx,
+ \ifboolexpe{ bool {cnltx@sidebyside} and not bool {cnltx@codeonly} }
+ {linewidth=\cnltx@sidebysidewidth,}{}%
+ \expandonce\cnltx@local@listings@options
+ }%
}%
+ \XSIMgobblechars{2}%
}%
- \XSIMgobblechars{2}%
- \XSIMifblankTF{#1}
- {\XSIMfilewritestart*{\jobname.tmp}}
- {\XSIMfilewritestart{\jobname.tmp}}%
}
{%
\XSIMfilewritestop
@@ -519,23 +519,21 @@
\endcnltxcode
}
-\RenewDocumentEnvironment{example} {O{}}
+\RenewDocumentEnvironment{example}{}
{%
- \pgfqkeys{/cnltx}{#1}%
- \setlength\cnltx@sidebysidewidth
- {\dimexpr .45\columnwidth -\lst@xleftmargin -\lst@xrightmargin\relax}%
- \XSIMexpandcode{%
- \noexpand\lstset{
- style=cnltx,
- \ifboolexpe{ bool {cnltx@sidebyside} and not bool {cnltx@codeonly} }
- {linewidth=\cnltx@sidebysidewidth,}{}%
- \expandonce\cnltx@local@listings@options
+ \xsimman@readoptions{%
+ \setlength\cnltx@sidebysidewidth
+ {\dimexpr .45\columnwidth -\lst@xleftmargin -\lst@xrightmargin\relax}%
+ \XSIMexpandcode{%
+ \noexpand\lstset{
+ style=cnltx,
+ \ifboolexpe{ bool {cnltx@sidebyside} and not bool {cnltx@codeonly} }
+ {linewidth=\cnltx@sidebysidewidth,}{}%
+ \expandonce\cnltx@local@listings@options
+ }%
}%
+ \XSIMgobblechars{2}%
}%
- \XSIMgobblechars{2}%
- \XSIMifblankTF{#1}
- {\XSIMfilewritestart*{\jobname.tmp}}
- {\XSIMfilewritestart{\jobname.tmp}}%
}
{%
\XSIMfilewritestop
@@ -730,18 +728,29 @@
\begin{cnltxcode}[
step and label={examplefile}{example:##1} ,
sidebyside align=top seam,sidebyside,
- righthand width=\linewidth/4,
- sidebyside gap=0pt,
+ righthand width=.3\linewidth,
+ sidebyside gap=1em,
lower separated=false,
+ bottom=1mm,
+ % rightlower=0pt,
+ % halign lower=flush right,
+ % clip lower,
title=Example~\theexamplefile\ \enquote{\texttt{##1}}
\xsim@example@links{##1}%
]
\bookmark[level=2,dest=examplefile.\arabic{examplefile}]{Example~\theexamplefile\ (##1)}%
- \lstinputlisting[style=cnltx,lastline=10]{\xsim@example@texfile@path{##1}}
+ \lstinputlisting[style=cnltx,firstline=7,lastline=16]{\xsim@example@texfile@path{##1}}
\tcblower
\fbox{%
- \href{\xsim@example@pdffile@path{##1}}{%
- \includegraphics[width=.8\linewidth]{\xsim@example@pdffile@path{##1}}}}%
+ \href
+ {\xsim@example@pdffile@path{##1}}
+ {%
+ \includegraphics[
+ pagebox=cropbox,
+ viewport=4.5cm 18cm 8.7cm 23.3cm,
+ clip]{\xsim@example@pdffile@path{##1}}%
+ }%
+ }%
\end{cnltxcode}
}%
\dolistloop\xsim@examplefiles
@@ -817,6 +826,7 @@
\xsim@add@version{0.10} {2017-09-19}
\xsim@add@version{0.10a} {2017-10-04}
\xsim@add@version{0.11} {2018-02-12}
+\xsim@add@version{0.12} {2019-09-26}
% ----------------------------------------------------------------------------
\endinput
diff --git a/macros/latex/contrib/xsim/doc/xsim.history b/macros/latex/contrib/xsim/doc/xsim.history
index b0a2fe526b..a22d42ad03 100644
--- a/macros/latex/contrib/xsim/doc/xsim.history
+++ b/macros/latex/contrib/xsim/doc/xsim.history
@@ -7,7 +7,7 @@ Clemens Niederberger
Web: https://github.com/cgnieder/xsim
E-Mail: contact@mychemistry.eu
--------------------------------------------------------------------------
-Copyright 2017--2018 Clemens Niederberger
+Copyright 2017--2019 Clemens Niederberger
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
@@ -111,3 +111,6 @@ HISTORY:
- introduce a \xsim_if_<tagging>_value:nTF for each tag
kind
- \ProvideExerciseTagging
+ v0.12 2019/09/30 - add parameter versions for the plural forms of exercise
+ and solution names
+ - bug fixes (issues 37, 39, 43, 47)
diff --git a/macros/latex/contrib/xsim/doc/xsim.ideas b/macros/latex/contrib/xsim/doc/xsim.ideas
index 29fa058fde..7a7810f84d 100644
--- a/macros/latex/contrib/xsim/doc/xsim.ideas
+++ b/macros/latex/contrib/xsim/doc/xsim.ideas
@@ -7,7 +7,7 @@ Clemens Niederberger
Web: https://github.com/cgnieder/xsim
E-Mail: contact@mychemistry.eu
--------------------------------------------------------------------------
-Copyright 2017--2018 Clemens Niederberger
+Copyright 2017--2019 Clemens Niederberger
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
@@ -29,3 +29,4 @@ IDEAS:
- provide a switch: either write the environments to an external file
or save it to an auxiliary file ? (not really sure about this one --
probably not)
+- some kind of `subexercise' mechanism
diff --git a/macros/latex/contrib/xsim/doc/xsim_manual.pdf b/macros/latex/contrib/xsim/doc/xsim_manual.pdf
index 2cc93eb00b..bfd2c31641 100644
--- a/macros/latex/contrib/xsim/doc/xsim_manual.pdf
+++ b/macros/latex/contrib/xsim/doc/xsim_manual.pdf
Binary files differ
diff --git a/macros/latex/contrib/xsim/doc/xsim_manual.tex b/macros/latex/contrib/xsim/doc/xsim_manual.tex
index 53c620c1bb..afc17fd68a 100644
--- a/macros/latex/contrib/xsim/doc/xsim_manual.tex
+++ b/macros/latex/contrib/xsim/doc/xsim_manual.tex
@@ -13,7 +13,7 @@
% Web: https://github.com/cgnieder/xsim
% E-Mail: contact@mychemistry.eu
% ----------------------------------------------------------------------------
-% Copyright 2017--2018 Clemens Niederberger
+% Copyright 2017--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -218,7 +218,7 @@ As can be seen in the example a solution is not printed with the default
setup. This can be changed using the following option.
\begin{options}
\keybool{print}\Module{solution}\Default{false}
- Set if solutions are printed or or not.
+ Set if solutions are printed or not.
\end{options}
The option (belonging to the module \module*{solution}) can either be set
@@ -238,13 +238,13 @@ or with the setup command for all following solutions:
There is an completely analoguous option for the \env{exercise} environment:
\begin{options}
\keybool{print}\Module{exercise}\Default{true}
- Set if exercises are printed or or not.
+ Set if exercises are printed or not.
\end{options}
More details on those two environments can be found in
section~\vref{sec:using-printing}.
\section{How the Exercise Environments Work}\label{sec:how-exerc-envir}
-Both the exercise and the solution enviroments write the contents of their
+Both the exercise and the solution environments write the contents of their
bodies verbatim to external files following a certain naming structure:
\begin{itemize}
\item
@@ -252,7 +252,7 @@ bodies verbatim to external files following a certain naming structure:
\end{itemize}
The name starts with the name of the job (which is the name of the document
itself) followed by type and id of the corresponding exercise and then
-followed by the environment type. For example both enviroments from the first
+followed by the environment type. For example both environments from the first
example have been written to files named
\begin{itemize}
\item \verbcode+xsim_manual-exercise-1-exercise-body.tex+ and
@@ -287,9 +287,12 @@ order to deal with this somehow \xsim\ offers the following option:
auxiliary files.
\end{options}
-Another thing to keep in mind: the environment in many ways works the same way
-as the \env{filecontents} environment. \emph{This also means that you
- \emph{cannot} have comments on the first line of the environments:}
+\begin{bewareofthedog}
+ Another thing to keep in mind: the environment in many ways works the same
+ way as the \env{filecontents} environment. \emph{This also means that you
+ \emph{cannot} have comments or \cs*{label}s or anything else on the first
+ line of the environments!}
+\end{bewareofthedog}
\begin{sourcecode}
\begin{exercise}[points=2] % this comment will cause trouble
Lorem ipsum
@@ -357,7 +360,9 @@ Declaring a new exercise type will also define a new command:
exercise-env = exercise ,
solution-env = solution ,
exercise-name = \XSIMtranslate{exercise} ,
+ exercises-name = \XSIMtranslate{exercises} ,
solution-name = \XSIMtranslate{solution} ,
+ solutions-name = \XSIMtranslate{solutions} ,
exercise-template = default ,
solution-template = default
}
@@ -375,9 +380,17 @@ must) be set. Here is the complete list:
\paraval{exercise-name}{exercise name}
The name of the exercises of type \meta{type} -- used for typesetting.
\emph{This parameter is mandatory.}
+ \paraval{exercises-name}{exercises name}
+ The\sinceversion{0.12} plural name of the exercises of type \meta{type} --
+ used for typesetting. If this is not set explicitly an \code{s} is
+ appended to the singular name.
\paraval{solution-name}{solution name}
The name of the solutions of type \meta{type} -- used for typesetting.
\emph{This parameter is mandatory.}
+ \paraval{solutions-name}{solutions name}
+ The\sinceversion{0.12} plural name of the solutions of type \meta{type} --
+ used for typesetting. If this is not set explicitly an \code{s} is
+ appended to the singular name.
\paraval{exercise-template}{exercise template}
The template used for typesetting the exercises of type \meta{type}.
\emph{This parameter is mandatory.} See
@@ -446,7 +459,7 @@ Exercise like the \env{exercise} environment and possibly others defined with
Holds the user id of an exercise if defined. Otherwise it is equal to
\property{id}.
\propval{counter}{text}
- Holds the counter value represenation of an exercise (\ie, what you
+ Holds the counter value representation of an exercise (\ie, what you
usually know as \cs*{the\meta{counter}}). \emph{Cannot be set by the
user}.
\propval{counter-value}{integer}
@@ -477,19 +490,19 @@ Exercise like the \env{exercise} environment and possibly others defined with
\propval{topics}{csv list of topics}
Holds the list of topics the exercise should be associated with.
\propval{page}{text}
- Holds the page counter value represenation of an exercise (\ie, what you
+ Holds the page counter value representation of an exercise (\ie, what you
usually know as \cs*{thepage}).
\propval{page-value}{integer}
Holds the page counter value of an exercise (\ie, what you usually know as
\cs*{arabic}\Marg{page}).
\propval{section}{text}
- Holds the section counter value represenation of an exercise (\ie, what
+ Holds the section counter value representation of an exercise (\ie, what
you usually know as \cs*{thesection}).
\propval{section-value}{integer}
Holds the section counter value of an exercise (\ie, what you usually know
as \cs*{arabic}\Marg{section}).
\propval{chapter}{text}
- Holds the chapter counter value represenation of an exercise (\ie, what
+ Holds the chapter counter value representation of an exercise (\ie, what
you usually know as \cs*{thechapter}). \emph{Only if a command
\cs*{chapter} \emph{and} a counter \code{chapter} exist.}
\propval{chapter-value}{integer}
@@ -631,7 +644,7 @@ available (after a compilation) throughout the document.
respectively. The starred version prints nothing. Defined in terms of
\cs{AddtoExerciseGoal} and \cs{AddtoExerciseGoalPrint}.
\command{points}[\marg{value}]
- Print \meta{value}followed by an appropriate translation of the words
+ Print \meta{value} followed by an appropriate translation of the words
\enquote{point} or \enquote{points}, respectively. Defined in terms of
\cs{ExerciseGoalValuePrint}.
\command{printbonus}[\marg{type}]
@@ -709,7 +722,7 @@ following code:
\begin{sourcecode}
\DeclareExerciseTagging{tags}
\DeclareExerciseTagging{topics}
- \xsimsetup{tags/ingore-untagged=false}
+ \xsimsetup{tags/ignore-untagged=false}
\end{sourcecode}
This means that these options are available:
\begin{options}
@@ -1536,7 +1549,7 @@ Table templates are used by \cs{gradingtable}. Those are the templates set
with the option \option{template} of module \module{grading-table}
The predefined templates are \enquote{\code{default}} and
-\enquote{\code{default}}, see sections~\vref{sec:table-templ-default}
+\enquote{\code{default*}}, see sections~\vref{sec:table-templ-default}
and~\vref{sec:table-templ-default*}.
\subsection{Examples}\label{sec:template-examples}
@@ -1938,7 +1951,7 @@ Those are the options for customization:
\keyval{linespread}{decimal number}\Module{blank}\Default{\code{1}}
Set the linespread for the blank lines. This only has an effect if
\cs{blank} is used at the begin of a paragraph.
- \keyval{line-increment}{dim}\Module{blank}\Default{\code{1pt}}
+ \keyval{line-increment}{dim}\Module{blank}\Default{\code{0.001\cs*{linewidth}}}
The blank line is built in multiples of this value. If the value is too
large you may end up with uneven lines. If the value is too small you may
end up with a non-ending compilation. Experiment with values to find the
@@ -2281,6 +2294,9 @@ package work or how different kinds of problems can be solved or how different
kinds of layouts can be achieved as well as how to solve concrete problems
that have come up in different \LaTeX\ forums.
+Besides showing excerpts of the code and the resulting pdf the examples below
+also link to both the \code{tex} source the resulting pdf.
+
\listexamplefiles
\printbibliography