summaryrefslogtreecommitdiff
path: root/macros/latex/contrib
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-03-26 03:02:49 +0000
committerNorbert Preining <norbert@preining.info>2020-03-26 03:02:49 +0000
commit2bd4f7f317b392c32ce18c70d03fd5ba9ddd9e6d (patch)
tree1031fd1abadb4f1ac0a0f2e904a911a36278cb50 /macros/latex/contrib
parente32477e40d853a81951c9811f8554455dbff4014 (diff)
CTAN sync 202003260302
Diffstat (limited to 'macros/latex/contrib')
-rw-r--r--macros/latex/contrib/animate/ChangeLog3
-rw-r--r--macros/latex/contrib/animate/animate.pdfbin3909425 -> 3909427 bytes
-rw-r--r--macros/latex/contrib/animate/animate.sty6
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-iso690/README.md154
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-iso690/biblatex-iso690.pdfbin167673 -> 258286 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-iso690/biblatex-iso690.tex899
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-iso690/bulgarian-iso.lbx30
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-iso690/czech-iso.lbx14
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-iso690/english-iso.lbx14
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-iso690/french-iso.lbx35
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-iso690/german-iso.lbx14
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-alphabetic.bbx6
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-alphabetic.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-alphabetic.dbx12
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authortitle.bbx5
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authortitle.cbx7
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authortitle.dbx14
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authoryear.bbx94
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authoryear.cbx15
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authoryear.dbx14
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-fullcite.cbx23
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-numeric.bbx32
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-numeric.cbx11
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-numeric.dbx14
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso.bbx942
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-iso690/mybib.bib569
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-iso690/polish-iso.lbx14
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-iso690/slovak-iso.lbx18
-rw-r--r--macros/latex/contrib/l3build/CHANGELOG.md9
-rw-r--r--macros/latex/contrib/l3build/README.md2
-rw-r--r--macros/latex/contrib/l3build/l3build-clean.lua26
-rw-r--r--macros/latex/contrib/l3build/l3build-file-functions.lua2
-rw-r--r--macros/latex/contrib/l3build/l3build-variables.lua7
-rw-r--r--macros/latex/contrib/l3build/l3build.12
-rw-r--r--macros/latex/contrib/l3build/l3build.dtx2
-rwxr-xr-xmacros/latex/contrib/l3build/l3build.lua2
-rw-r--r--macros/latex/contrib/l3build/l3build.pdfbin707228 -> 707064 bytes
-rw-r--r--macros/latex/contrib/listings/Makefile3
-rw-r--r--macros/latex/contrib/listings/README2
-rw-r--r--macros/latex/contrib/listings/listings-devel.pdfbin1142824 -> 1150640 bytes
-rw-r--r--macros/latex/contrib/listings/listings.dtx124
-rw-r--r--macros/latex/contrib/listings/listings.pdfbin744403 -> 750616 bytes
-rw-r--r--macros/latex/contrib/listings/lstdrvrs.dtx6
-rw-r--r--macros/latex/contrib/listings/lstdrvrs.pdfbin565021 -> 565192 bytes
-rw-r--r--macros/latex/contrib/lwarp/README.txt2
-rw-r--r--macros/latex/contrib/lwarp/lwarp.dtx2083
-rw-r--r--macros/latex/contrib/lwarp/lwarp.ins3
-rw-r--r--macros/latex/contrib/lwarp/lwarp.pdfbin2685560 -> 2652966 bytes
-rwxr-xr-xmacros/latex/contrib/lwarp/lwarpmk.lua2
-rw-r--r--macros/latex/contrib/media9/ChangeLog6
-rw-r--r--macros/latex/contrib/media9/doc/media9.pdfbin3727327 -> 3727327 bytes
-rw-r--r--macros/latex/contrib/media9/media9.sty4
-rw-r--r--macros/latex/contrib/media9/pdfbase.sty9
-rw-r--r--macros/latex/contrib/memoir/README24
-rw-r--r--macros/latex/contrib/memoir/doc-src/memman.tex302
-rw-r--r--macros/latex/contrib/memoir/doc-src/memsty.sty19
-rw-r--r--macros/latex/contrib/memoir/memman.pdfbin2800333 -> 2780019 bytes
-rw-r--r--macros/latex/contrib/memoir/memoir.dtx78
-rw-r--r--macros/latex/contrib/memoir/memoir.ins28
-rw-r--r--macros/latex/contrib/memoir/mempatch.ins2
-rw-r--r--macros/latex/contrib/polyglossia/README4
-rw-r--r--macros/latex/contrib/polyglossia/polyglossia.dtx283
-rw-r--r--macros/latex/contrib/polyglossia/polyglossia.ins279
-rw-r--r--macros/latex/contrib/polyglossia/polyglossia.pdfbin267795 -> 268164 bytes
-rw-r--r--macros/latex/contrib/xpatch/README8
-rw-r--r--macros/latex/contrib/xpatch/xpatch.dtx9
-rw-r--r--macros/latex/contrib/xpatch/xpatch.ins2
-rw-r--r--macros/latex/contrib/xpatch/xpatch.pdfbin450940 -> 470369 bytes
68 files changed, 4501 insertions, 1794 deletions
diff --git a/macros/latex/contrib/animate/ChangeLog b/macros/latex/contrib/animate/ChangeLog
index 55ece87d2e..44a258a0da 100644
--- a/macros/latex/contrib/animate/ChangeLog
+++ b/macros/latex/contrib/animate/ChangeLog
@@ -1,3 +1,6 @@
+2020-03-25
+ * fix: using `controlsaligned' as package option
+
2020-03-24
* new: option `controlsaligned' extended for refined adjustment of
horizontal position
diff --git a/macros/latex/contrib/animate/animate.pdf b/macros/latex/contrib/animate/animate.pdf
index da8dc82801..b404cbf505 100644
--- a/macros/latex/contrib/animate/animate.pdf
+++ b/macros/latex/contrib/animate/animate.pdf
Binary files differ
diff --git a/macros/latex/contrib/animate/animate.sty b/macros/latex/contrib/animate/animate.sty
index a5c45e8316..75fca7a6a4 100644
--- a/macros/latex/contrib/animate/animate.sty
+++ b/macros/latex/contrib/animate/animate.sty
@@ -13,7 +13,7 @@
\NeedsTeXFormat{LaTeX2e}
-\def\@anim@version{2020/03/23}
+\def\@anim@version{2020/03/25}
\ProvidesPackage{animate}
[\@anim@version\space PDF & SVG animations from files and inline graphics]
@@ -3391,11 +3391,11 @@
\define@key{anim@pkg}{controlsaligned}{%
\@anim@parse@ctrlsalignarg\@anim@tmpvar\@anim@tmpdima#1+\@nil%
\setboolean{@anim@@ctrlcentre}{false}%
- \ifthenelse{\equal{#1}{left}}{%
+ \ifthenelse{\equal{\@anim@tmpvar}{left}}{%
\setboolean{@anim@@ctrlleft}{true}%
\edef\@anim@@ctrlsindent{\the\@anim@tmpdima}%
}{%
- \ifthenelse{\equal{#1}{right}}{%
+ \ifthenelse{\equal{\@anim@tmpvar}{right}}{%
\setboolean{@anim@@ctrlright}{true}%
\edef\@anim@@ctrlsindent{\the\@anim@tmpdima}%
}{\setboolean{@anim@@ctrlcentre}{true}}%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/README.md b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/README.md
index b9d59710e0..cdf10a4892 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/README.md
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/README.md
@@ -1,21 +1,31 @@
# Biblatex style for ISO 690 standard
-Biblatex is a bibliography and citation tool for LaTeX. This project provides
-support for citations in ISO 690 style. As the standard is a little bit ambiguous
-in some details regarding formatting of records, we largely follow
+`biblatex` is a bibliography and citation tool for LaTeX. This project provides
+support for citations in ISO 690 style. As the standard is a little bit
+ambiguous in some details regarding formatting of records, we largely follow
requirements of Czech interpretation, as it is required form in many Czech
universities. The style can be used in other languages as well, of course.
-## Install
+## Installation
-Open the terminal and find location of your `TEXMFHOME` directory with this command:
+The package is included in MikTeX and TeX Live distributions since 2016, so it
+could be shipped with your TeX installation.
+
+It is also available on CTAN as `biblatex-iso690`:
+
+https://www.ctan.org/pkg/biblatex-iso690
+
+### Install from GitHub
+
+Open the terminal and find location of your `TEXMFHOME` directory with this
+command:
kpsewhich -var-value TEXMFHOME
-Open this directory and check that the directory `$TEXMFHOME/tex/latex` exists.
-If it doesn't exist, you must create it. You can do this from the
-command line or using a file manager. Open the `$TEXMFHOME/tex/latex` directory and either
-run the command
+Open this directory and check that the directory `$TEXMFHOME/tex/latex`
+exists. If it doesn't exist, you must create it. You can do this from the
+command line or using a file manager. Open the `$TEXMFHOME/tex/latex`
+directory and either run the command
git clone git@github.com:michal-h21/biblatex-iso690.git
@@ -23,23 +33,22 @@ or unzip the file
https://github.com/michal-h21/biblatex-iso690/archive/master.zip
-here. You should be able to use **biblatex-iso690** now.
+here. You should be able to use `biblatex-iso690` now.
-## Usage:
-```
-\usepackage[english,czech]{babel} % main language of the document must be last
+## Usage
+
+```latex
+\usepackage[english,czech]{babel} % the main document language is the last one
\usepackage[
- backend=biber % if we want unicode
- ,style=iso-authoryear % or iso-numeric for numeric citation method
- ,autolang=other % to support multiple languages in bibliography
- ,sortlocale=cs_CZ % locale of main language, for sorting
- ,bibencoding=UTF8 % this is necessary only if bibliography file is in different encoding than main document
+ backend=biber, % if we want unicode and many other features (biber is already by default)
+ style=iso-authoryear, % or iso-numeric for numeric citation method
]{biblatex}
```
### Custom options
-Above and beyond the scope of package options provided by `biblatex` itself, here are also some more. Default values are in **bold**.
+Above and beyond the scope of package options provided by `biblatex` itself,
+here are also some more. Default values are in **bold**.
* `spacecolon`
add space before colon in publisher and title (and also title and subtitle):
@@ -55,45 +64,115 @@ Above and beyond the scope of package options provided by `biblatex` itself, her
* **[false]** ... 2011, vol. 32, no. 3, pp. 289–301 [visited on 2016-05-14] ...
* `thesisinfoinnotes`
print out thesis information in notes section
- * **[true]** Available from: <...>. BP. MU, FI, Brno. Supervisor Petr SOJKA
- * [false] BP. MU, FI, Brno. Supervisor Petr SOJKA. Available from: <...>
+ * **[true]** Available from: <...>. BP. MU, FI, Brno. Supervised by Petr SOJKA
+ * [false] BP. MU, FI, Brno. Supervised by Petr SOJKA. Available from: <...>
+* `doi`
+ enable or disable printing of the DOI number
+ * **[true]** Available from DOI: [10.5300/2016-1-4/106](https://doi.org/10.5300/2016-1-4/106)
+ * [false] --
+* `isbn`
+ enable or disable printing of the ISBN, ISSN and other standard identifiers
+ * **[true]** ISBN 0-201-36299-6
+ * [false] --
+* `eprint`
+ enable or disable printing of the eprint field
+ * **[true]** Available from arXiv: 1905.10545
+ * [false] --
+* `url`
+ enable or disable printing of the URL (this option also affects the printing
+ of `[online]` medium designation for electronic resources other than
+ `@online` entry type)
+ * **[true]** Available from: <https://github.com/michal-h21/biblatex-iso690>
+ * [false] --
+* `articlepubinfo`
+ enable or disable printing publication information (`location` and
+ `publisher` fields) for an `@article` entry type
+ * [true] Journal of Money, Credit and Banking. Ohio State University Press, vol. 38, no. 1, pp. 119–140.
+ * **[false]** Journal of Money, Credit and Banking. Vol. 38, no. 1, pp. 119–140.
### Bibliographic fields
-Some fields have a different meaning than in plain BibTeX.
-1\. If the publication is written in a different language to the main document, it should have a filled `langid` field.
+Some fields have a different meaning than in plain BibTeX, as compared to
+`biblatex`.
+
+1\. If the publication is written in a different language to the main
+document, it should have a filled `langid` field.
+
```
-langid = {czech}
+langid = {czech},
```
-2\. Publications with online versions should have a `urldate` field. It is the date when you last checked the publication online.
+2\. Publications with online versions should have a `urldate` field. It is the
+date when you last checked the publication online.
+
```
-urldate = {2011-01-12}
+urldate = {2011-01-12},
```
-3\. If the publication has more than one ISBN or ISSN number, use just one of them.
+3\. If the publication has more than one ISBN or ISSN number, preferably use
+just one of them. Otherwise you can separate multiple numbers with comma in
+the respective field.
4\. Publisher and place:
+
```
location = {Praha},
-publisher = {Academia}
+publisher = {Academia},
+```
+
+Some fields are added on top of the fields supported by `biblatex` and are
+valid only for this package.
+
+5\. Supervisor of thesis / dissertation:
+
+```
+supervisor = {Petr Sojka},
```
-For more details see the file [mybib.bib](https://github.com/michal-h21/biblatex-iso690/blob/master/mybib.bib).
+6\. Date specificities, anything that doesn't fit into the `date` field:
+
+```
+dateaddon = {\mkbibbrackets{16th century}},
+```
+
+For more details see the example bibliography file [mybib.bib](./mybib.bib).
+
+## Contributing
+
+### Translations
+
+This package comes with the extension of the localization files (`.lbx`) to
+their standard versions shipped with `biblatex`. The naming convention for
+these files is `<langid>-iso.lbx`, where `langid` is the name of the language
+known by Babel.
+
+If the `<langid>.lbx` is already included in `biblatex`, adding a
+`<langid>-iso.lbx` is as easy as adding this single file to the root directory
+of this package. Otherwise, please consider [a contribution to the `biblatex`
+package](https://github.com/plk/biblatex/#translation) first.
+
+If you also aim to add new localisation strings, you have to define them via
+`\NewBibliographyString` command at the beginning of the [iso.bbx](iso.bbx)
+file.
+
+A quick translation guideline for the additional strings is available at the
+wiki page [Translation
+Guideline](https://github.com/michal-h21/biblatex-iso690/wiki/Translation-Guideline).
+
+You might want to see also some already existing translations, e.g.
+[english-iso.lbx](english-iso.lbx) or [slovak-iso.lbx](slovak-iso.lbx).
## License
-Copyright (C) 2011--2017 Michal Hoftich
- 2015--2017 Moritz Wemheuer
- 2016--2017 Dávid Lupták
+Copyright (C) 2011--2020 Michal Hoftich
+ 2015--2020 Moritz Wemheuer
+ 2016--2020 Dávid Lupták
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
-
+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.
@@ -102,3 +181,8 @@ This work has the LPPL maintenance status `maintained`.
The Current Maintainer of this work is Michal Hoftich.
This work consists of all files listed in [manifest.txt](./manifest.txt).
+
+The package is available on CTAN https://www.ctan.org/pkg/biblatex-iso690
+and is included in MikTeX and TeX Live 2016 or later as `biblatex-iso690`.
+The development version can be found on GitHub
+https://github.com/michal-h21/biblatex-iso690.
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/biblatex-iso690.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/biblatex-iso690.pdf
index 99bf7c4a52..9a9386f5c7 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/biblatex-iso690.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/biblatex-iso690.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/biblatex-iso690.tex b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/biblatex-iso690.tex
index 1ff35be97a..92fa8bd246 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/biblatex-iso690.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/biblatex-iso690.tex
@@ -1,11 +1,20 @@
\documentclass[a4paper,10pt]{ltxdockit}
-\usepackage[czech,english]{babel}
\usepackage[utf8]{inputenc}
-%\usepackage{tgpagella}
\usepackage[T1]{fontenc}
+\usepackage[czech,vietnamese,english]{babel}
+\usepackage{csquotes}
+\usepackage[useregional]{datetime2}
+%\usepackage{tgpagella}
\usepackage{microtype}
\usepackage{hanging}
+\usepackage{doc}% Macro \BibTeX
+% Set up the style (blue colors)
+\addtokomafont{section}{\spotcolor}
+\addtokomafont{subsection}{\spotcolor}
+\addtokomafont{subsubsection}{\spotcolor}
+\addtokomafont{paragraph}{\spotcolor}
+\addtokomafont{descriptionlabel}{\spotcolor}
\def\t|#1|{\texttt{#1}}
\def\c#1{%
@@ -14,34 +23,67 @@
\newcommand*{\biber}{\sty{biber}\xspace}
\newcommand*{\biblatex}{\sty{biblatex}\xspace}
+\newcommand*{\biblatexiso}{\sty{biblatex-iso690}\xspace}
\usepackage[
- backend=biber
- ,style=iso-authoryear
- ,autolang=other
- ,pagetotal=true
- ,sortlocale=cs_CZ
- ,bibencoding=UTF8
- ,spacecolon=false
- % ,isbn=false
- %,block=ragged
+ style=iso-authoryear,
+ sortlocale=cs_CZ,% We need this for proper sorting,
+ % because most of the bib examples are Czech ones,
+ % but the main document language is English
+ pagetotal=true,
]{biblatex}
\addbibresource{mybib.bib}
+% Support diacritics in Czech examples
+% ref.: https://stackoverflow.com/a/16084246
+\lstset{
+ literate=
+ {á}{{\'a}}1
+ {č}{{\v{c}}}1
+ {ď}{{\v{d}}}1
+ {é}{{\'e}}1
+ {ě}{{\v{e}}}1
+ {í}{{\'i}}1
+ {ň}{{\v{n}}}1
+ {ó}{{\'o}}1
+ {ř}{{\v{r}}}1
+ {š}{{\v{s}}}1
+ {ť}{{\v{t}}}1
+ {ú}{{\'u}}1
+ {ů}{{\r{u}}}1
+ {ý}{{\'y}}1
+ {ž}{{\v{z}}}1
+ {Á}{{\'A}}1
+ {Č}{{\v{C}}}1
+ {Ď}{{\v{D}}}1
+ {É}{{\'E}}1
+ {Ě}{{\v{E}}}1
+ {Í}{{\'I}}1
+ {Ň}{{\v{N}}}1
+ {Ó}{{\'O}}1
+ {Ř}{{\v{R}}}1
+ {Š}{{\v{S}}}1
+ {Ť}{{\v{T}}}1
+ {Ú}{{\'U}}1
+ {Ů}{{\r{U}}}1
+ {Ý}{{\'Y}}1
+ {Ž}{{\v{Z}}}1
+}
+
\titlepage{%
title={ISO~690 \biblatex style},
subtitle={},
url={https://github.com/michal-h21/biblatex-iso690},
author={Michal Hoftich},
email={michal.h21@gmail.com},
- revision={0.3.3},
- date={\today}}
+ revision={0.4.0},
+ date={\DTMDate{2020-03-25}}}
\hypersetup{%
pdftitle={ISO~690 \biblatex style},
pdfsubject={Bibliography References and Citations by ISO~690},
- pdfauthor={Michal Hoftich with Johannes Böttcher, Moewew and Dávid Lupták},
+ pdfauthor={Michal Hoftich with Johannes Böttcher, Moritz Wemheuer and Dávid Lupták},
pdfkeywords={tex, latex, bibtex, biblatex, bibliography, references, citation}}
\begin{document}
@@ -52,228 +94,351 @@
\section{Introduction}
\subsection{About}
+\label{sec:about}
-\biblatex is a bibliography and citation tool for \LaTeX. This project provides
-support for citations and references according to the ISO~690 international standard.
-As the norm ISO~690 is a little bit ambiguous in some details regarding formatting of records,
-we largely follow requirements of the Czech interpretation, as it is the required form
-in many Czech universities. Of course, the style can be used in other languages as well.
+\biblatex is a bibliography and citation tool for \LaTeX. This project
+provides support for citations and references according to the ISO~690
+international standard. As the standard ISO~690 is a little bit ambiguous in
+some details regarding the formatting of records, we largely follow the
+requirements of the Czech interpretation, as it is the required form in many
+Czech universities. Of course, the style can be used in other languages as
+well.
\subsection{Requirements}
-Basically, \biblatex $\geq$ 3.4 with \biber $\geq$ 2.5 is all you need to use this package.
-No special packages different from those required by the \biblatex package are used. For a complete
-list of such packages, please refer to the \biblatex documentation.
+Basically, \biblatex $\geq$ 3.14 with \biber $\geq$ 2.14 (both versions dated
+2019-12-01) is all you need to use this package. No special packages different
+from those required by the \biblatex package are used. For a complete list of
+such packages, please refer to the \biblatex documentation.
+
+\subsection{Accessibility}
+\label{sec:accessibility}
+
+This package is available on \textsc{ctan}%
+\footnote{\url{https://www.ctan.org/pkg/biblatex-iso690}} and is included in
+MiK\TeX{} and \TeX{}~Live 2016 or later as \biblatexiso. The development
+version can be found on GitHub.%
+\footnote{\url{https://github.com/michal-h21/biblatex-iso690}}
\subsection{License}
-This project is released under the LaTeX Project Public License\footnote{\url{http://www.latex-project.org/lppl.txt}}.
+This project is released under the LaTeX Project Public License%
+\footnote{\url{https://www.latex-project.org/lppl.txt}}.
\subsection{Acknowledgments}
Thanks to all contributors who have participated in the development of this style,
-especially Johannes Böttcher, Moewew, Dávid Lupták and others.
+especially Johannes Böttcher, Moritz Wemheuer, Dávid Lupták and others.
\subsection{Feedback}
+\label{sec:feedback}
-The project lives on the GitHub page \url{https://github.com/michal-h21/biblatex-iso690}
-so feel free to use the possibilites provided there for reporting issues and the like.
+The project lives on the GitHub page \url{https://github.com/michal-h21/biblatex-iso690},
+so feel free to use the possibilities provided there for reporting issues and the like.
-\section{Use}
+\section{Usage}
\subsection{General}
+\label{sec:general:multilang}
-\begin{verbatim}
-..
-\usepackage[english,czech]{babel} % [other,main]
-% or in case of using xelatex, use the 'polyglossia' package instead
+A minimal working example for \t|babel| package:
+\begin{ltxexample}
+\documentclass{article}
+\usepackage[utf8]{inputenc}
+\usepackage[english,czech]{babel}
+% \usepackage[main=czech,english]{babel}
+\usepackage{csquotes}
+
+\usepackage[style=iso-authoryear]{biblatex}
+\addbibresource{mybib.bib}
+
+\begin{document}
+\cite{knuth1990virtual}
+\printbibliography
+\end{document}
+\end{ltxexample}
+
+\noindent
+A minimal working example for \t|polyglossia| package:
+\begin{ltxexample}
+\documentclass{article}
+\usepackage[utf8]{inputenc}
\usepackage{polyglossia}
\setmainlanguage{czech}
\setotherlanguage{english}
-..
-\usepackage[
- backend=biber
- ,style=iso-authoryear
- ,sortlocale=cs_CZ
- ,autolang=other
- ,bibencoding=UTF8
-]{biblatex}
-\addbibresource{filename.fileextension}
-..
-\printbibliography
+\usepackage{csquotes}
+
+\usepackage[style=iso-authoryear]{biblatex}
+\addbibresource{mybib.bib}
-\end{verbatim}
+\begin{document}
+\cite{knuth1990virtual}
+\printbibliography
+\end{document}
+\end{ltxexample}
-According to the ISO~690 norm, some of the elements of the bibliographic
+According to the ISO~690 standard, some of the elements of the bibliographic
resource should be printed in the main document language (language I~am
-currently writing) while the others should be in the language of a resource. You can
-specify the language of a resource into the field \t|langid| on a per-entry
-basis in a resource (\t|.bib|) file. In addition, all of the languages
-specified in these fields have to be loaded by the \t|babel| or \t|polyglossia|
-package respectively.\label{gen:multilang}
+currently writing) while the others should be in the language of a resource.
+You can specify the language of a resource into the field \t|langid| on a
+per-entry basis in a resource (\t|.bib|) file. In addition, all of the
+languages specified in these fields have to be loaded by the \t|babel| or
+\t|polyglossia| package respectively.
Note that for correct support of localization functionality, the \t|babel|
or \t|polyglossia| package should be used. The main document language
-is the last one entered in a list of languages passed to the \t|babel| package,
-respectively the directives \t|\textbackslash setmainlanguage| and
-\t|\textbackslash setotherlanguage| in case the \t|polyglossia| package
-is used.
+is:
+
+\begin{description}
+ \item[babel] the last one entered in a list of languages passed to the
+ \t|babel| package options, or the one specified by \t|main| keyword
+ (see MWE above)
+ \item[polyglossia] the one specified in the directive
+ \cmd{setmainlanguage} (other languages could be specified using
+ \cmd{setotherlanguage}) (see MWE above)
+\end{description}
+
+\subsection{Citation systems}
+\label{sec:citation:systems}
-\subsection{Citation methods}
+The international standard ISO~690 introduces three methods
+(\ref{sec:standard:methods}) of citation and referencing in its informative
+annex. You can select a citation/referencing method in the \t|style| option:
+
+\begin{ltxexample}
+ \usepackage[style=<method>]{biblatex}
+\end{ltxexample}
-The international standard ISO 690 prescribes exactly 3 methods of
-citation. However, based on the user input, this package contains
-more of them.
\subsubsection{Standardized methods}
+\label{sec:standard:methods}
+
+The informative annex of the standard mentions name and date, numeric, and
+running notes systems. This package does not support the last one.
\begin{description}
-\item[iso-authoryear] name and date system, so-called Harvard style
-\item[iso-numeric] numeric system
+ \item[iso-authoryear] name and date system, so-called Harvard style
+ \item[iso-numeric] numeric system
\end{description}
-There is also one more system of running notes, which is not
-implemented yet.
-
\subsubsection{Non-standardized methods}
+\label{sec:nonstandard:methods}
+
+Based on the user input, this package also supports other citation/referencing
+methods:
\begin{description}
-\item[iso-alphabetic] alphabetic system
-\item[iso-authortitle] name and title system
+ \item[iso-alphabetic] alphabetic system
+ \item[iso-authortitle] name and title system
\end{description}
+\subsection{Citation commands}
+
+\biblatex provides a lot of citation commands out of the box. However, to
+conform to the standard, it is necessary to know which command can be used
+for which citation method. Here is an overview.
+
+\subsubsection{Numeric system}
+\label{sec:numeric}
+
+For \t|iso-numeric| style, the usage of cite command is as simple as
+\cmd{cite} (citation number in brackets), \cmd{parencite} (citation number in
+parentheses), or \cmd{supercite} (citation number as a superscript).
+
+\noindent
+Example (number 1 only serves as a random citation number):
+\begin{itemize}
+ \item command \cmd{cite\{knuth1990virtual\}} outputs [1],
+ \item command \cmd{parencite\{knuth1990virtual\}} outputs (1),
+ \item command \cmd{supercite\{knuth1990virtual\}} outputs $^1$.
+\end{itemize}
+
+\noindent
+According to the standard, pick and stick to only one citation format in the
+whole document (select either only \cmd{cite}, or \cmd{parencite}, or
+\cmd{supercite}).
+
+\subsubsection{Author-date system}
+
+For \t|iso-authoryear| method (and possibly also for other methods
+\t|iso-alphabetic| and \t|iso-authortitle|), you should distinguish two
+situations:
+
+\begin{itemize}
+ \item The name of the creator appears naturally in the text, so only the year is
+ in parentheses; use \cmd{textcite}.
+
+ \noindent
+ Example: command \cmd{textcite\{knuth1990virtual\}} outputs
+ \textcite{knuth1990virtual}.
+
+ \item The name of the creator doesn't appear naturally in the text, so both name
+ and the year are in parentheses; use \cmd{parencite}.
+
+ \noindent
+ Example: command \cmd{parencite\{knuth1990virtual\}} outputs
+ \parencite{knuth1990virtual}.
+\end{itemize}
+
\subsection{Package options}
\subsubsection{Provided by \biblatex by default}
+\label{sec:pkg:opt}
-Frequently used package options are
+Frequently used package options are:
-\begin{description}
-\item[style] style to be used for bibliographic references and citations.
-Four possibilities are available for the \t|biblatex-iso690| package,
-\t|iso-authoryear| commonly known as “Harvard system”, \t|iso-numeric| as a
-numeric system, \t|iso-alphabetic| and \t|iso-authortitle|.
-
-\item[backend] backend program for generating bibliographic entries. \biber
-is the default one for the \biblatex package, providing a large variety
-of features. Other options are \t|bibtex| and \t|bibtex8|, but they both
-are far behind the possibilities of \biber. \biber is the recommended backend.
-
-\item[autolang] controls which language environment is used. The most
-significant value is \t|other|, which supports printing localization
-terms in the language of the resource or language specific hyphenation.
-Default value for \biblatex package is \t|none|, which disables this feature.
-Default value for \t|biblatex-iso690| package is \t|other|.
-
-\item[sortlocale] responsible for sorting the bibliography according to the
-entered \t|locale| identifier. It should usually be set to one using the
-main document language, e.g. \t|en\_IN| for English as used in India.
-
-\item[bibencoding] specifies the character encoding of the \t|bib| files.
-\t|<encoding>| needs to be explicitly specified only if the encoding of the
-\t|bib| file is different from the one of the \t|tex| file. Default value
-is \t|auto|, i.e. the encoding of the \t|bib| file is identical to the
-encoding of the \t|tex| file.
-\end{description}
+\begin{optionlist}
-\subsubsection{Provided by \t|biblatex-iso690| in addition}
+\optitem[]{style}{\opt{iso-authoryear}, \opt{iso-numeric},
+ \opt{iso-alphabetic}, \opt{iso-authortitle}}
-\begin{description}
- \item[spacecolon] if \t|true|, a space is printed before the colon
- used in subtitles and publication information. Printing the colon this way
- is not recommended. Default value is \t|false|.
-
- \item[pagetotal] the number of total pages is no longer required if the
- item is being cited as a whole. Setting this option to \t|true| will print
- such optional information in the notes section at the end of the reference.
- Default value is \t|false|.\label{pkg:opt:iso690:pp}
-
- \item[shortnumeration] the standard ISO~690 allows omission of term
- \t|volume| and terms for smaller components of a serial publication.
- If this option is \t|true|, such terms are distinguished typographically
- (the volume number in bold type and the part number, if required, in
- parentheses). If \t|false|, such terms are printed with preceding
- literal terms.
-
- \item[thesisinfoinnotes] to print a thesis information
- (thesis type, institution and supervisor) before the section
- \textit{availability and access} is possible by setting the option
- to \t|false|. Otherwise it will be printed in the \textit{notes} section.
- Default value is \t|true|.
-
- \item[doi] enable or disable printing of the DOI number. Default value is
- \t|true|.
-
- \item[isbn] enable or disable printing of the ISBN, ISSN and other standard
- identifiers. Default value is \t|true|.
-
- \item[eprint] enable or disable printing of the eprint field. Default value
- is \t|true|.
-
- \item[url] enable or disable printing of the URL. Default value is \t|true|.
+Style to be used for bibliography references and citations. Four possibilities
+are available for the \biblatexiso package, see~\ref{sec:citation:systems} for
+details.
-\end{description}
+\optitem[biber]{backend}{\opt{biber}, \opt{bibtex}, \opt{bibtex8}}
+
+Backend program for generating bibliographic entries. \biber is the default
+one for the \biblatex package, providing a large variety of features. Other
+options are \t|bibtex| and \t|bibtex8|, but they both are far behind the
+possibilities of \biber. \biber is the recommended backend.
+
+\optitem[other]{autolang}{\opt{other}, see \biblatex documentation for more
+ options}
+
+Controls which language environment is used. The default value for this
+package is \t|other|, which encloses the \t|bib| entry in an \t|otherlanguage|
+environment and prints localization terms in the language of the resource or
+uses language-specific hyphenation. Use the \t|langid| field in \t|bib| entry
+to specify its language.
+
+\optitem[auto]{sortlocale}{\opt{auto}, \prm{locale}}
+
+Responsible for sorting the bibliography according to the entered \prm{locale}
+identifier. The default value is \t|auto|, meaning the \prm{locale} is set to
+the main document language identifier (if \t|babel|/\t|polyglossia| is used).
+A real use case example: this document is in English (main document language),
+but uses Czech sorting (\t|sortlocale=cs\_CZ|).
+
+\end{optionlist}
+
+\subsubsection{Provided by \biblatexiso in addition}
+\label{sec:pkg:opt:iso690}
+
+\begin{optionlist}
+
+\boolitem[false]{spacecolon}
+
+If \t|true|, a space is printed before the colon used in subtitles and
+publication information. Printing the colon this way is not recommended.
+The default value is \t|false|.
+
+\boolitem[false]{pagetotal}
+
+The number of total pages is no longer required if the item is being cited as
+a whole. Setting this option to \t|true| will print such optional information
+in the notes section at the end of the reference in brackets. The default
+value is \t|false|.
+
+\boolitem[false]{shortnumeration}
+
+The standard ISO~690 allows omission of term \t|volume| and terms for smaller
+components of a serial publication. If this option is \t|true|, such terms are
+distinguished typographically (the volume number in bold type and the part
+number, if required, in parentheses). If \t|false|, such terms are printed
+with preceding literal terms.
+
+\boolitem[true]{thesisinfoinnotes}
+
+To print a thesis information (thesis type, institution and supervisor) before
+the section \textit{availability and access} is possible by setting the option
+to \t|false|. Otherwise it will be printed in the \textit{notes} section.
+The default value is \t|true|.
+
+\boolitem[true]{doi}
+
+Enable or disable printing of the DOI number.
+
+\boolitem[true]{isbn}
+
+Enable or disable printing of the ISBN, ISSN, and other standard identifiers.
+
+\boolitem[true]{eprint}
+
+Enable or disable printing of the eprint field.
+
+\boolitem[true]{url}
+
+Enable or disable the printing of the URL. This option also affects the
+printing of \t|[online]| medium designation for electronic resources other
+than \t|@online| entry type (see \ref{sec:howpublished}).
+
+\boolitem[false]{articlepubinfo}
+
+Enable or disable printing publication information (\t|location| and
+\t|publisher| fields) for an \t|@article| entry type. The default value is
+\t|false| since it is very unusual behavior and rarely used by either other
+citation styles or citation managers.
+
+\end{optionlist}
\subsection{Database guide}
+\label{sec:database}
-\t|biblatex| supports more entry fields than legacy \t|bibtex|. Hence
+\biblatex supports more entry fields than legacy \BibTeX. Hence
some examples of bibliography entry types with respective fields follow.
%\begin{description}
\paragraph{Book} \hfill\\
-\c{t01}
-\begin{verbatim}
-@BOOK{t01,
- author = {Borgman, Christine L.},
- year = {2003},
- title = {From Gutenberg to the global information infrastructure},
- subtitle = {access to information in the networked world},
- edition = {1}, % should not be stated
- location = {Cambridge (Mass)},
- publisher = {The MIT Press},
- pagetotal = {xviii, 324},
- isbn = {0-262-52345-0},
- langid = {english}
+\c{borgman2003from}
+\begin{ltxexample}
+@book{borgman2003from,
+ author = {Borgman, Christine L.},
+ title = {From {Gutenberg} to the Global Information Infrastructure},
+ subtitle = {Access to Information in the Networked World},
+ location = {Cambridge (Mass.)},
+ publisher = {The MIT Press},
+ date = {2003},
+ pagetotal = {xviii, 324},
+ isbn = {0-262-52345-0},
+ langid = {english},
}
-\end{verbatim}
-
-The \t|edition| field is the edition of a printed publication. It is required
-if the item is not a first edition. Use an integer or a literal string to fill
-in this field.
+\end{ltxexample}
The \t|pagetotal| field is the total number of pages of the work. If multiple
-kinds of numeration are used in the work, e.g. arabic as well as roman numerals,
+kinds of numeration are used in the work, e.g. Arabic as well as Roman numerals,
both can be provided, separated by a comma. The localization term \t|pages| is
-only appended for arabic numerals, though. Note that the total number of pages
-is no longer required by the norm itself, see also \ref{pkg:opt:iso690:pp}.
+only appended for Arabic numerals, though. Note that the total number of pages
+is no longer required by the standard itself, see also \ref{sec:pkg:opt:iso690}.
The \t|langid| field is required for multilingual support of printing
-references. This affects printing of localization terms used in the reference,
-e.g. \t|edition| field. See also \ref{gen:multilang}.
+references. This option affects the printing of localization terms used in the
+reference, e.g. \t|edition| field. See also \ref{sec:general:multilang}.
\paragraph{Contribution to a collection} \hfill\\
-\c{t02}
-\begin{verbatim}
-@INCOLLECTION{t02,
- author = {Greenberg, David},
- year = {1998},
- title = {Camel drivers and gatecrashers},
- subtitle = {quality control in the digital research library},
- editor = {Hawkins, B.L and Battin, P},
- booktitle = {The mirage of continuity},
- booksubtitle = {reconfiguring academic information
- resources for the 21st century},
- location = {Washington (D.C.)},
- publisher = {Council on Library and Information Resources;
- Association of American Universities},
- pages = {105-116},
- langid = {english}
+\c{greenberg1998camel}
+\begin{ltxexample}
+@incollection{greenberg1998camel,
+ author = {Greenberg, Douglas},
+ title = {Camel Drivers and Gatecrashers},
+ subtitle = {Quality Control in the Digital Research Library},
+ editor = {Hawkins, Brian L. and Battin, Patricia},
+ booktitle = {The Mirage of Continuity},
+ booksubtitle = {Reconfiguring Academic Information
+ Resources for the 21st Century},
+ date = {1998},
+ location = {Washington (D.C.)},
+ publisher = {Council on Library and Information Resources;
+ Association of American Universities},
+ isbn = {1-887334-59-9},
+ pages = {105--116},
+ langid = {english},
}
-\end{verbatim}
+\end{ltxexample}
The \t|title| field is the title of the contribution, the \t|booktitle|
is the title of the collection.
@@ -288,26 +453,26 @@ from a contribution entry (child entry) to a separate entry of a collection
as the following example shows:
\newline
-\noindent\c{prispevek1}
+\noindent\c{sbornik2007clanek}
-\begin{verbatim}
-@COLLECTION{sbornik,
- title = {Mimořádně užitečný sborník},
- editor = {Geniální, Jiří},
- year = {2007},
- langid = {czech},
- location = {Praha},
- publisher = {Academia},
- isbn = {978-222-626-222-2}
+\begin{ltxexample}
+@collection{sbornik2007,
+ title = {Mimořádně užitečný sborník},
+ editor = {Geniální, Jiří},
+ location = {Praha},
+ publisher = {Academia},
+ date = {2007},
+ isbn = {978-3-4947-0284-1},
+ langid = {czech},
}
-@INCOLLECTION{prispevek1,
- crossref = {sbornik},
- title = {Velmi zajímavý článek},
- author = {Vlaštovka, Josef},
- pages = {22-45}
+@incollection{sbornik2007clanek,
+ author = {Vlaštovka, Josef},
+ title = {Velmi zajímavý článek},
+ pages = {22--45},
+ crossref = {sbornik2007},
}
-\end{verbatim}
+\end{ltxexample}
Now, there is no need to fill in \t|booktitle| in the \t|sbornik| entry.
The \t|biber| backend program performs the inheritance between parent and
@@ -315,84 +480,127 @@ child entry automatically. Other backends may not support this feature.
\paragraph{Article in a serial}\hfill\\
-\c{t03}
-\begin{verbatim}
-@ARTICLE{t03,
- author = {LYNCH, C.},
- year = {2005},
- title = {Where do we go from here?},
- subtitle = {the next decade for digital libraries},
- journaltitle = {DLib Magazine},
- volume = {11},
- number = {7/8},
- urldate = {2005-08-15},
- url = {http://www.dlib.org/dlib/july05/lynch/07lynch.html},
- issn = {1082-9873},
- langid = {english}
+\c{lynch2005where}
+\begin{ltxexample}
+@article{lynch2005where,
+ author = {Lynch, Clifford},
+ title = {Where Do We Go From Here?},
+ subtitle = {The Next Decade for Digital Libraries},
+ journaltitle = {D-Lib Magazine},
+ date = {2005},
+ volume = {11},
+ number = {7/8},
+ issn = {1082-9873},
+ doi = {10.1045/july2005-lynch},
+ url = {http://www.dlib.org/dlib/july05/lynch/07lynch.html},
+ urldate = {2005-08-15},
+ langid = {english},
}
-\end{verbatim}
+\end{ltxexample}
The example above is an article in an online magazine. If the magazine
is available online only, i.e. it is not published in print,
it should be cited as an electronic information resource. This can be
-achieved by providing the \t|urldate| field. On the other hand
+achieved by providing the \t|urldate| field (see \ref{sec:howpublished}).
+On the other hand
\newline
-\c{knuth}
-\begin{verbatim}
-@PERIODICAL{tug,
- journaltitle = {TUGBoat},
- publisher = {TUG},
- issn = {1222-3333},
- langid = {english},
- date = {1980/},
- url = {http://tugboat.tug.org/}
+\c{knuth1990virtual}
+\begin{ltxexample}
+@periodical{tugboat1980,
+ journaltitle = {TUGBoat},
+ publisher = {TUG},
+ date = {1980/},
+ issn = {0896-3207},
+ url = {http://tugboat.tug.org/TUGboat},
+ langid = {english},
+ options = {skipbib=true},
}
-@ARTICLE{knuth,
- author = {Knuth, Donald},
- title = {Journeys of \TeX},
- volume = {17},
- number = {3},
- year = {2003},
- pages = {12-22},
- url = {http://tugboat.tug.org/kkk.pdf},
- crossref = {tug}
+@article{knuth1990virtual,
+ author = {Knuth, Donald},
+ title = {Virtual Fonts: More Fun for Grand Wizards},
+ date = {1990-04},
+ volume = {11},
+ number = {1},
+ pages = {13--23},
+ url = {http://tugboat.tug.org/TUGboat/tb11-1/tb27knut.pdf},
+ crossref = {tugboat1980},
}
-\end{verbatim}
+\end{ltxexample}
\noindent the example shows an article in a printed magazine, which is
\emph{also} available online. Similar to the contribution to a collection,
-using cross-referencing feature can be beneficial.
+using the cross-referencing feature can be beneficial.
\subsubsection{Specific entry types}
\paragraph{Thesis}\hfill\\
+\label{sec:thesis}
The \t|thesis| entry type and its aliases \t|mastersthesis| and
\t|phdthesis| are available by default for thesis works. Use the
\t|type| field to specify the type of the thesis -- a localization
term or literal string can be entered. For the list of supported
localization terms, please refer to section 4.9.2.13 of the
-\t|biblatex| documentation. Names of the supervisor and school
-(institution) can be entered into the fields \t|supervisor| and
-\t|institution|, respectively.
+\biblatex documentation. Available terms are \t|bathesis|,
+\t|mathesis|, \t|phdthesis|, and \t|candthesis|. Names of the
+supervisor and school (institution) can be entered into the fields
+\t|supervisor| and \t|institution|, respectively.
+\newline
+
+\c{luptak2016thesis}
+\begin{ltxexample}
+@thesis{luptak2016thesis,
+ author = {Lupták, Dávid},
+ title = {Typesetting of Bibliography According to ISO 690 Norm},
+ date = {2016},
+ type = {bathesis},
+ institution = {Masaryk University, Faculty of Informatics},
+ location = {Brno},
+ supervisor = {Petr Sojka},
+ url = {https://is.muni.cz/th/422640/fi_b/},
+}
+\end{ltxexample}
\paragraph{Patent}\hfill\\
+\label{sec:patent}
+
+The field \t|number| is available for the patent classification
+or request number.
+If the inventor is also known, we can use \t|editora| and \t|editoratype|
+fields to specify that. Use an additionally created role \t|inventor| for the
+\t|editoratype| field; it is the key that translates based on the localization
+strings.
+For the patent type, we can use localization strings as well, e.g.
+\t|patenteu|.
+\newline
-The field \t|classification| is available for the respective stuff.
-For other details regarding \t|patent| type, please refer
-to the \t|biblatex| documentation.
+\c{groll2008method}
+\begin{ltxexample}
+@patent{groll2008method,
+ author = {Clad Metals LLC Canonsburg, PA 15317 (US)},
+ title = {Method of making a copper core five-ply composite
+ and cooking vessel},
+ editora = {Groll, W. A.},
+ editoratype = {inventor},
+ publisher = {Google Patents},
+ number = {EP 1 094 937 B1},
+ type = {patenteu},
+ date = {2008-07-30},
+ url = {https://patents.google.com/patent/EP1094937B1},
+}
+\end{ltxexample}
\subsection{Hints and Caveats}
-This section provides additional hints concerning the \t|biblatex| package
+This section provides additional hints concerning the \biblatex package
as well as the ISO~690 standard.
For now, some of the things have to be dealt with at the level of the
\t|bib| file, other ones are directly addressed in this style package.
-Everything else relies on the \t|biblatex| package, so please also refer
-to the \t|biblatex| documentation.
+Everything else relies on the \biblatex package, so please also refer
+to the \biblatex documentation.
\subsubsection{Creators}
@@ -404,39 +612,31 @@ specific ones (e.g. \t|translator|) can be used. Note also the field
to specify the type of the editor. This is useful to distinguish the role
of the creator and their relationship to the cited work. Some roles
are supported by default, e.g. \t|editor|, \t|compiler|, \t|founder|
-and \t|reviser|, in other cases the literal string can be entered.
+and \t|reviser|, some are created additionally, i.e. \t|inventor|,
+\t|director|; in other cases, use the literal string.
Example:
-When citing cinematographic works which are typically the output of many
+When citing cinematographic works, which are typically the output of many
individuals, the title should be used as the first element of the reference.
However, it is appropriate to include some relevant roles, e.g. the director:
-%\begin{ltxexample}
-\begin{verbatim}
- ..
- editora = {Welles, Orson}
- editoratype = {Directed by}
- ..
-\end{verbatim}
-%\end{ltxexample}
-
-in English, or
+\begin{ltxexample}
+ editora = {Welles, Orson},
+ editoratype = {director},
+\end{ltxexample}
-%\begin{ltxexample}
-\begin{verbatim}
- ..
- editora = {Welles, Orson}
- editoratype = {Réžia}
- ..
-\end{verbatim}
-%\end{ltxexample}
+The field \t|nameaddon| can be used to append additional information
+to the creator's name, e.g. variant forms of a name, name additions,
+or pseudonyms. This field is printed as is, in square brackets, after
+the creator's name, see~\parencite{gorki1955artamonovs}.
-in Slovak.
+If possible, all names of multiple creators should be given in the reference
+(the upper limit is set to 99 names). If you need to omit any names, you can
+use the keyword \uv{\t|and others|} in the name list for your \t|bib| entry:
-The field \t|nameaddon| can be used to append additional information
-to the creator's name, e.g. variant forms of a name, name additions
-or pseudonyms. This field is printed as is, in square brackets after
-the creator's name.
+\begin{ltxexample}
+ editor = {Humphrey Appleby and others},
+\end{ltxexample}
For anonymous works cited by the author-year method, the term \textit{Anon}
should be used in place of the creator's name. Please reflect this
@@ -446,17 +646,29 @@ in the \t|bib| file, since there is no other support for this for now.
Similar to the \t|nameaddon| field for names, \t|titleaddon| serves such
purpose for titles. This field is appropriate for providing other or
-alternative titles, elucidation of ambiguous or incorrect titles,
-substitute for no titles, translation of titles, etc.
+alternative titles, elucidation of ambiguous or incorrect titles, substitute
+for no titles, translation of titles, etc.,
+see~\parencite{gorki1955artamonovs}.
Note that also other \t|*titleaddon| fields are supported by default.
\subsubsection{Medium type}
+\label{sec:howpublished}
+
+The field \t|howpublished| is used for providing information about the medium
+designation (e.g., Braille, film, and photograph) or type of medium for the
+electronic resources (e.g., online, online database, and podcast). The default
+output for electronic information resources (\t|@online| entry types or
+entries including \t|urldate| field) is \t|[online]|, even without
-The field \t|howpublished| is used for providing information about
-the medium designation or type of medium. Default value for electronic
-information resources is \t|online|. This field is printed as is,
-in square brackets after title section, generally.
+\begin{ltxexample}
+ howpublished = {online},
+\end{ltxexample}
+
+\noindent
+listed in the \t|bib| file. The \t|howpublished| field is printed as is,
+in square brackets, after the title section, generally. The field accepts
+localization strings (e.g. \t|online| or \t|film|) or literal string values.
\subsubsection{Edition}
@@ -470,48 +682,80 @@ The \t|version| field is used for providing information about
updated versions of an item, usually software.
\subsubsection{Date}
+\label{sec:date}
+
+If an exact date is not known, an approximate date should be supplied in
+brackets preceded by a circa localization string (e.g. ca.). To achieve this
+behavior, specify the date followed by a tilde, as in the example below:
+
+\begin{ltxexample}
+ date = {1490~}, % tilde meaning circa
+\end{ltxexample}
In case no date is given and also no approximation is possible, that
should be stated. Please reflect this in the \t|bib| file by including
-the following line in the respective entry.
-
-\begin{verbatim}
- ..
- date = {\mkbibbrackets{\bibsstring{nodate}}}
- ..
-\end{verbatim}
-
-Explanation of the above code:
-\t|nodate| is a localization string which prints something like
-\textit{n.d.}, \textit{b.r.}, etc. depending on the language,
-\t|bibsstring| is a command to use such localization terms and
-\t|mkbibbrackets| is a command used to wrap its argument into
-square brackets. Finally, this statement is entered into
-the date entry field to be available as a date in a reference.
-So as a result we get e.g. \textit{[n.d.]}, which conforms to
-the standard.
+no date field in the respective entry. It automatically translates
+to something like \textit{[n.d.]}, based on your language, meaning
+\textit{no date}.
+
+The \biblatexiso package provides new field \t|dateaddon| that can be
+used for date specificities. Description of some known use cases follows.
+
+If the date provided in the primary source of data is obviously incorrect
+(e.g. 1959), the correction should be supplied in brackets (e.g. [i.e. 1995]):
+
+\begin{ltxexample}
+ date = {1959},
+ dateaddon = {\mkbibbrackets{i.e. 1995}},
+\end{ltxexample}
+
+You can use \t|dateaddon| field also for missing dates and their rough
+approximations (e.g. providing only centuries), or for different calendar
+systems:
+
+\begin{ltxexample}
+ dateaddon = {\mkbibbrackets{16th century}},
+ dateaddon = {Jewish calendar 5685 \mkbibbrackets{1925}},
+\end{ltxexample}
+
+And if you need to use a copyright date alongside the publication date, or
+only a copyright date, you can use \t|dateaddon| field as well:
+
+\begin{ltxexample}
+ date = {2000},
+ dateaddon = {\addcomma\space\textcopyright\addnbthinspace 2001},
+\end{ltxexample}
+
+If you have only a copyright date (e.g. \textcopyright\,2001), you can use
+\t|sortyear| field to clarify the sorting, the entry will be sorted by the
+year (2001) and not the literal value (\textcopyright\,2001):
+
+\begin{ltxexample}
+ dateaddon = {\textcopyright\addnbthinspace 2001},
+ sortyear = {2001},
+\end{ltxexample}
Please also note the syntax for dates -- ISO 8601 format
-(YYYY-MM-DD) is accepted. Please use slash instead of
+(\t|YYYY-MM-DD|) is accepted. Please use slash instead of
any kind of dash for ranges of dates. If the range is
open ended, enter just the first date followed by a slash.
-And last, but not least, use the \t|date| field instead of
-the \t|year| field in general.
+And last but not least, use the \t|date| field instead of
+the \t|year| field in general. Examples follow:
-Examples follow:
-
-\begin{verbatim}
- date = {2012-12-21} % exact date
- date = {1998/2001} % date range
- date = {2016/} % open ended date range
-\end{verbatim}
+\begin{ltxexample}
+ date = {2012-12-21}, % exact date
+ date = {1998/2001}, % date range
+ date = {2016/}, % open ended date range
+\end{ltxexample}
\subsubsection{Location}
+\label{sec:library}
If only a limited number of copies of the work exists or
the location of a graphic work is essential to its identification,
such location (e.g. library or repository) should be stated
-in a reference. The field \t|library| serves for this purpose.
+in a reference. The field \t|library| serves for this purpose,
+see~\parencite{gosse1912garden}.
\nocite{*}
\printbibliography[title={Reference bibliography},heading={bibnumbered}]
@@ -521,56 +765,97 @@ in a reference. The field \t|library| serves for this purpose.
\begin{changelog}
+\begin{release}{0.4.0}{2020-03-25}
+\item Fixed deprecated name handling
+\item Declared mapping suffix (\t|<lang>-iso.lbx|) for localization files
+\item Updated and improved documentation, README, and \t|bib| examples
+\item Delimiters defined by the new way
+\item Refined \t|date| and \t|names| macros
+\item Added date circa\see{sec:date}
+\item Added \t|dateaddon| field\see{sec:date}
+\item Commented source code to understand it for others better
+\item Employed standard \cmd{mkbibacro} for DOI, ISBN, ISSN, ISAN, ISMN, ISRN,
+ ISWC (small caps instead of uppercase)
+\item INCOMPATIBLE CHANGE: replaced \t|classification| with \t|number| field
+ for patent entries\see{sec:patent}
+\item Added localization strings \t|director|, \t|bydirector|, \t|inventor|,
+ \t|byinventor|, \t|online|, \t|film|
+\item Added Bulgarian and French localization
+\item Increased maximum number of names to print to 99 (9 before)
+\item Removed \biblatex{} backwards compatibility code
+\item Fixed printing \t|url| and \t|urldate| for \t|@online| entries
+\item Fixed multiple ISBNs / ISSNs
+\item Allowed the package option \t|abbreviate=[true\textbar false]| to work
+ for all bibstrings\see{sec:pkg:opt}
+\item Added \cmd{parencite} support for \t|iso-numeric| style\see{sec:numeric}
+\item Added \t|articlepubinfo| package option\see{sec:pkg:opt:iso690}
+\item Logging only to \t|.log| file (no terminal output)
+\item Added support for \t|report| and \t|movie| entry types
+\item Added support of localization strings in \t|howpublished|
+ field\see{sec:howpublished}
+\item Fixed typos, code improvements
+\end{release}
+
\begin{release}{0.3.3}{2019-10-30}
-\item Doc better wording
-\item Enable multilingual references by default
-\item Added isbn, doi, url and eprint options for blocking corresponding fields
+\item Documentation with better wording
+\item Enable multilingual references by default\see{sec:pkg:opt}
+\item Added \t|isbn|, \t|doi|, \t|url| and \t|eprint| package options for
+ blocking corresponding fields\see{sec:pkg:opt:iso690}
\item Printing out (the same) editors also in the consecutive entries --
get rid of the dash as default (\t|iso-authoryear| style)
\item Removed deprecated \biblatex\ options
\item Changed URL address for DOI records
\item Clean up of indentation and spacing in the source code
\item Renamed \t|editor| macro to \t|incollection-editor|
+\item Added Polish localization
\end{release}
\begin{release}{0.3.2}{2017-04-25}
-\item Synchronized \t|iso-numeric| bibliography environment with original \t|numeric| style
-\item Added support for alphabetic bibliographic style (\t|iso-alphabetic|)
-\item Incompatible change: \t|thesisinfolast| package option changed to \t|thesisinfoinnotes|
+\item Synchronized \t|iso-numeric| bibliography environment with original
+ \t|numeric| style
+\item Added support for alphabetic bibliographic style
+ (\t|iso-alphabetic|)\see{sec:nonstandard:methods}
+\item INCOMPATIBLE CHANGE: \t|thesisinfolast| package option changed to
+ \t|thesisinfoinnotes|\see{sec:pkg:opt:iso690}
\item README copyediting and conversion to markdown
-\item Various doc and README corrections and enhancements
+\item Various documentation and README corrections and enhancements
\item Added German localization
\end{release}
\begin{release}{0.3.1}{2016-05-13}
-\item Added support for entry types \t|thesis| and \t|patent|
-\item Added support for including location information (\t|library| field)
+\item First public release on \textsc{ctan}\see{sec:accessibility}
+\item Added support for \t|thesis| entry type\see{sec:thesis}
+\item Added support for \t|patent| entry type\see{sec:patent}
+\item Added support for including location information (\t|library|
+ field)\see{sec:library}
\item Added Slovak localization
\item Removed non-breaking space after standard identifier terms
-\item Streamlined the author-title citation style
-\item Minor doc corrections
+\item Streamlined \t|iso-authortitle| citation style\see{sec:nonstandard:methods}
+\item Minor documentation corrections
\end{release}
\begin{release}{0.3}{2016-05-04}
-\item A~complete refactoring of the style to comply the latest version of the \t|biblatex| package as well as ISO~690 international standard
-\item Added english version of the documentation/user guide (this document)
+\item A~complete refactoring of the style to comply the latest version of the
+ \biblatex package as well as ISO~690 international standard\see{sec:about}
+\item Added English version of the documentation/user guide (this document)
\end{release}
\begin{release}{0.2.1}{2016-03-13}
\item Solved issues about punctuation marks and redundant spaces
-\item Compatibility support for the latest version of the \t|biblatex| package
-\item Reformatted the driver for \verb|inbook| entry type
+\item Compatibility support for the latest version of the \biblatex package
+\item Reformatted the driver for \t|inbook| entry type
\end{release}
\begin{release}{0.2}{2015-03-25}
-\item Gathered changes during past four years
-\item Solved issue about the spacing of strings in main document language
+\item Gathered changes during the past four years
+\item Solved issue about the spacing of strings in the main document language
\end{release}
\begin{release}{0.1}{2011-02-03}
-\item First release
+\item First public release\see{sec:feedback}
\item Draft of the documentation (only in Czech)
-\item Support for almost all of the entry types provided by the \t|biblatex| package
+\item Support for almost all of the entry types provided by the \biblatex
+ package\see{sec:database}
\end{release}
\end{changelog}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/bulgarian-iso.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/bulgarian-iso.lbx
new file mode 100644
index 0000000000..858f936995
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/bulgarian-iso.lbx
@@ -0,0 +1,30 @@
+\ProvidesFile{bulgarian-iso.lbx}
+ [2020/03/25 v0.4.0 ISO 690 extended biblatex localization]
+
+\InheritBibliographyExtras{bulgarian}
+\InheritBibliographyStrings{bulgarian}
+
+\DeclareBibliographyStrings{%
+ at = {{в}%
+ {в}},
+ bysupervisor = {{ръководен от}%
+ {ръков\adddotspace от}},
+ url = {{достъпен на}%
+ {дост\adddotspace на}},
+ urlalso = {{също достъпен на}%
+ {също дост\adddotspace на}},
+ director = {{режисьор}%
+ {реж\adddot}},
+ bydirector = {{режисиран от}%
+ {реж\adddotspace от}},
+ inventor = {{изобретател}%
+ {изобр\adddot}},
+ byinventor = {{изобретен от}%
+ {изобр\adddotspace от}},
+ online = {{онлайн}%
+ {онлайн}},
+ film = {{филм}%
+ {филм}},
+}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/czech-iso.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/czech-iso.lbx
index 84546aa71d..ff7967e00f 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/czech-iso.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/czech-iso.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{czech-iso.lbx}
-[2017/04/25 v0.3.2 biblatex localization]
+ [2020/03/25 v0.4.0 ISO 690 extended biblatex localization]
\InheritBibliographyExtras{czech}
\InheritBibliographyStrings{czech}
@@ -13,6 +13,18 @@
{dostupn\'{e} z}},
urlalso = {{dostupn\'{e} tak\'{e} z}%
{dostupn\'{e} tak\'{e} z}},
+ director = {{re\v{z}is\'{e}r}%
+ {re\v{z}is\'{e}r}},
+ bydirector = {{re\v{z}ie}%
+ {re\v{z}ie}},
+ inventor = {{vyn\'{a}lezce}%
+ {vyn\'{a}lezce}},
+ byinventor = {{vyn\'{a}lezce\addcolon}%
+ {vyn\'{a}lezce\addcolon}},% FIXME: unsure
+ online = {{online}%
+ {online}},
+ film = {{film}%
+ {film}},
}
\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/english-iso.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/english-iso.lbx
index e1a5e01b6b..916128b6b8 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/english-iso.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/english-iso.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{english-iso.lbx}
-[2017/04/25 v0.3.2 biblatex localization]
+ [2020/03/25 v0.4.0 ISO 690 extended biblatex localization]
\InheritBibliographyExtras{english}
\InheritBibliographyStrings{english}
@@ -11,6 +11,18 @@
{supervised by}},
urlalso = {{available also from}%
{available also from}},
+ director = {{director}%
+ {director}},
+ bydirector = {{directed by}%
+ {directed by}},
+ inventor = {{inventor}%
+ {inventor}},
+ byinventor = {{invented by}%
+ {invented by}},
+ online = {{online}%
+ {online}},
+ film = {{film}%
+ {film}},
}
\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/french-iso.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/french-iso.lbx
new file mode 100644
index 0000000000..e249655c71
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/french-iso.lbx
@@ -0,0 +1,35 @@
+\ProvidesFile{french-iso.lbx}
+ [2020/03/25 v0.4.0 ISO 690 extended biblatex localization]
+
+\InheritBibliographyExtras{french}
+\InheritBibliographyStrings{french}
+
+% `french.lbx` overrides the family name format to \textsc
+% that is against the consistency rule since we use uppercase
+% as default.
+\DeclareBibliographyExtras{%
+ \restorecommand\mkbibnamefamily
+}
+
+\DeclareBibliographyStrings{%
+ at = {{à}%
+ {à}},
+ bysupervisor = {{supervisé par}%
+ {supervisé par}},
+ urlalso = {{aussi disponible à l'adresse}%
+ {aussi disponible à l'adresse}},
+ director = {{réalisateur}%
+ {réalisateur}},
+ bydirector = {{réalisé par}%
+ {réalisé par}},
+ inventor = {{inventeur}%
+ {inventeur}},
+ byinventor = {{inventé par}%
+ {inventé par}},
+ online = {{en ligne}%
+ {en ligne}},
+ film = {{film}%
+ {film}},
+}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/german-iso.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/german-iso.lbx
index 486a5d506d..7146b27e7c 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/german-iso.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/german-iso.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{german-iso.lbx}
-[2017/04/25 v0.3.2 biblatex localization]
+ [2020/03/25 v0.4.0 ISO 690 extended biblatex localization]
\InheritBibliographyExtras{german}
\InheritBibliographyStrings{german}
@@ -11,6 +11,18 @@
{betreut von}},
urlalso = {{auch verf\"{u}gbar unter}
{auch verf\"{u}gbar unter}},
+% director = {{}%
+% {}},% FIXME: missing
+% bydirector = {{}%
+% {}},% FIXME: missing
+% inventor = {{}%
+% {}},% FIXME: missing
+% byinventor = {{}%
+% {}},% FIXME: missing
+% online = {{}%
+% {}},% FIXME: missing
+% film = {{}%
+% {}},% FIXME: missing
}
\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-alphabetic.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-alphabetic.bbx
index 8e460f2cbb..beef88d414 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-alphabetic.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-alphabetic.bbx
@@ -1,5 +1,5 @@
-\ProvidesFile{alphabetic.bbx}
-[2017/04/25 v0.3.2 biblatex citation style]
+\ProvidesFile{iso-alphabetic.bbx}
+ [2020/03/25 v0.4.0 ISO 690 biblatex bibliography style]
% This is a copy of alphabetic.bbx
% It only uses iso as base style, instead of standard
@@ -18,7 +18,7 @@
{\list
{\printtext[labelalphawidth]{%
\printfield{labelprefix}%
- \printfield{labelalpha}%
+ \printfield{labelalpha}%
\printfield{extraalpha}}}
{\setlength{\labelwidth}{\labelalphawidth}%
\setlength{\leftmargin}{\labelwidth}%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-alphabetic.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-alphabetic.cbx
index 2a4bdcbfa0..2d90c118d0 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-alphabetic.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-alphabetic.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{iso-alphabetic.cbx}
-[2017/04/25 v0.3.2 biblatex citation style]
+ [2020/03/25 v0.4.0 ISO 690 biblatex citation style]
\RequireCitationStyle{alphabetic}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-alphabetic.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-alphabetic.dbx
new file mode 100644
index 0000000000..2248f37e35
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-alphabetic.dbx
@@ -0,0 +1,12 @@
+\ProvidesFile{iso-alphabetic.dbx}
+ [2020/03/25 v0.4.0 ISO 690 biblatex data model extension]
+
+\RequireBiber[3]
+
+% Declare new fields
+\DeclareDatamodelFields[type=list, datatype=name]{supervisor}
+\DeclareDatamodelFields[type=field, datatype=literal]{dateaddon}
+
+% Declare new fields for (specific / all) entry types
+\DeclareDatamodelEntryfields[thesis]{supervisor}
+\DeclareDatamodelEntryfields{dateaddon}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authortitle.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authortitle.bbx
index e558c54fda..ab683014ce 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authortitle.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authortitle.bbx
@@ -1,8 +1,9 @@
-\ProvidesFile{iso-authortitle.bbx}[2017/04/25 v0.3.2 biblatex bibliography style]
+\ProvidesFile{iso-authortitle.bbx}
+ [2020/03/25 v0.4.0 ISO 690 biblatex bibliography style]
\RequireBibliographyStyle{iso}
\ExecuteBibliographyOptions{%
- sorting=nty
+ sorting=nty,
}
\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authortitle.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authortitle.cbx
index f6b9e0aa8d..8226b9bc92 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authortitle.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authortitle.cbx
@@ -1,8 +1,9 @@
-\ProvidesFile{iso-authortitle.cbx}[2017/04/25 v0.3.2 biblatex citation style]
+\ProvidesFile{iso-authortitle.cbx}
+ [2020/03/25 v0.4.0 ISO 690 biblatex citation style]
\ExecuteBibliographyOptions{%
- maxcitenames=1
- ,mincitenames=1
+ maxcitenames=1,
+ mincitenames=1,
}
\RequireCitationStyle{authortitle}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authortitle.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authortitle.dbx
index fe51d184d2..f6d17afa40 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authortitle.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authortitle.dbx
@@ -1,6 +1,12 @@
-\ProvidesFile{iso-authortitle.dbx}[2017/04/25 v0.3.2 biblatex data model extension]
+\ProvidesFile{iso-authortitle.dbx}
+ [2020/03/25 v0.4.0 ISO 690 biblatex data model extension]
+
\RequireBiber[3]
-\DeclareDatamodelFields[type=list,datatype=name]{supervisor}
-\DeclareDatamodelFields[type=field,datatype=literal]{classification}
+
+% Declare new fields
+\DeclareDatamodelFields[type=list, datatype=name]{supervisor}
+\DeclareDatamodelFields[type=field, datatype=literal]{dateaddon}
+
+% Declare new fields for (specific / all) entry types
\DeclareDatamodelEntryfields[thesis]{supervisor}
-\DeclareDatamodelEntryfields[patent]{classification}
+\DeclareDatamodelEntryfields{dateaddon}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authoryear.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authoryear.bbx
index a7a84cb7bc..6a8da0a12d 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authoryear.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authoryear.bbx
@@ -1,41 +1,101 @@
-\ProvidesFile{iso-authoryear.bbx}[2017/04/25 v0.3.2 biblatex bibliography style]
+\ProvidesFile{iso-authoryear.bbx}
+ [2020/03/25 v0.4.0 ISO 690 biblatex bibliography style]
\RequireBibliographyStyle{iso}
\ExecuteBibliographyOptions{%
- sorting=nyt
+ sorting=nyt,
}
-\def\printextrayear{%
- \ifentrytype{patent}
- {}
- {\printfield{year}\printfield{extradate}}%
+% The separator between 'titles' and the numeration section.
+% Overrides the command in 'iso.bbx'.
+\renewcommand{\numerationpunct}{\newunitpunct}
+
+% Delimiter between creator name and year in bibliography
+\DeclareDelimFormat[bib,biblist]{nameyeardelim}{\addcomma\space}
+% Delimiter between substitution of creator name (if any)
+% and year in bibliography
+\DeclareDelimFormat[bib,biblist]{nonameyeardelim}{\addcomma\space}
+
+% a)
+% The field extradate turns from integer type to a letter
+% after year to distinguish more works of the author
+% from the same year, e.g. 1994a, 1994b.
+% We use 'labeldate' as it is also used in standard styles.
+% b)
+% Moreover we print additional date information (dateaddon).
+\newbibmacro*{date+extradate}{%
+ \printlabeldateextra
+ \setunit{\dateaddonpunct}%
+ \iffieldequalstr{labeldatesource}{dateaddon}
+ {}% Do not print dateaddon twice
+ {\printfield{dateaddon}}%
+}
+
+% Check if 'date' field holds only year or a more specific date.
+% Inspired by \ifdatehasyearonlyprecision from 'biblatex.sty',
+% but the test date==year is left out, because we use date=year
+% in package options so it turned always true.
+\newcommand{\ifdatehasyearonly}{%
+ \ifboolexpr{not test {\iffieldundef{year}}
+ and (test {\iffieldundef{month}}
+ and test {\iffieldundef{season}})}
+}
+
+% If there is no more specific date available, we shouldn't repeat
+% the year in publication info section.
+% Overrides macro 'fulldate' in 'iso.bbx'.
+\renewbibmacro*{fulldate}{%
+ \ifdatehasyearonly%
+ {}% Print nothing (only year is available)
+ {\mkdaterangeiso{}}%
}
-% remove second appearance of year in a reference
+% Remove second appearance of year in a reference
\renewbibmacro*{date}{}%
-% overwrite names:primary to print year right after
+% Overwrite names:primary to print year right after:
% 1) author
% 2) editor
% 3) label/title
-% need to handle not to print editor twice (primary
-% and subsidiary names)
+% Need to handle not to print editor twice (primary
+% and subsidiary names): editor macro includes \clearname{editor}
\renewbibmacro*{names:primary}{%
+ % First check if we have author(s) available
\ifboolexpr{
test \ifuseauthor
and
not test {\ifnameundef{author}}
}
- {\usebibmacro{author}}%
- {\usebibmacro{editor}}%
- \setunit{\addspace}\printfield{nameaddon}%
- \setunit{\addcomma\space}\printextrayear%
+ {\usebibmacro{author}%
+ \setunit{\addspace}%
+ \printfield{nameaddon}%
+ \setunit{\printdelim{nameyeardelim}}}%
+ {% If no author(s) is available, check for editor(s)
+ \ifboolexpr{
+ test \ifuseeditor
+ and
+ not test {\ifnameundef{editor}}
+ }
+ {\usebibmacro{editor}%
+ \setunit{\printdelim{nameyeardelim}}}%
+ {% If no editor(s) is available, use label/title
+ \usebibmacro{labeltitle}%
+ \setunit{\printdelim{nonameyeardelim}}}}%
+ % And finally print date
+ \usebibmacro{date+extradate}%
}
-\InitializeBibliographyStyle{\global\undef\bbx@lasthash}
+% Print label or title in place of names if they are not available
+\newbibmacro*{labeltitle}{%
+ \iffieldundef{label}
+ {\iffieldundef{shorttitle}
+ {\usebibmacro{titles}{}{emph}%
+ \clearfield{title}%
+ \clearfield{subtitle}%
+ \clearfield{titleaddon}}
+ {\printfield[title]{shorttitle}}}
+ {\printfield{label}}}
-\newbibmacro*{bbx:savehash}{%
- \savefield{fullhash}{\bbx@lasthash}}
\newbool{bbx@inset}
\DeclareBibliographyDriver{set}{%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authoryear.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authoryear.cbx
index 2d58ac71d9..abdd15db20 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authoryear.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authoryear.cbx
@@ -1,14 +1,19 @@
-\ProvidesFile{iso-authoryear.cbx}[2017/04/25 v0.3.2 biblatex citation style]
+\ProvidesFile{iso-authoryear.cbx}
+ [2020/03/25 v0.4.0 ISO 690 biblatex citation style]
+% Use only one name in citation to be consistent
\ExecuteBibliographyOptions{%
- maxcitenames=1
- ,mincitenames=1
+ maxcitenames=1,
+ mincitenames=1,
}
\RequireCitationStyle{authoryear}
\RequireCitationStyle{iso-fullcite}
-\renewcommand*{\nameyeardelim}{\addcomma\addspace}
-\renewcommand*{\nonameyeardelim}{\addcomma\addspace}
+% Delimiter between creator name and year in citation
+\DeclareDelimFormat{nameyeardelim}{\addcomma\space}
+% Delimiter between substitution of creator name (if any)
+% and year in citation
+\DeclareDelimFormat{nonameyeardelim}{\addcomma\space}
\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authoryear.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authoryear.dbx
index c024de9d21..8b08856bba 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authoryear.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authoryear.dbx
@@ -1,6 +1,12 @@
-\ProvidesFile{iso-authoryear.dbx}[2017/04/25 v0.3.2 biblatex data model extension]
+\ProvidesFile{iso-authoryear.dbx}
+ [2020/03/25 v0.4.0 ISO 690 biblatex data model extension]
+
\RequireBiber[3]
-\DeclareDatamodelFields[type=list,datatype=name]{supervisor}
-\DeclareDatamodelFields[type=field,datatype=literal]{classification}
+
+% Declare new fields
+\DeclareDatamodelFields[type=list, datatype=name]{supervisor}
+\DeclareDatamodelFields[type=field, datatype=literal]{dateaddon}
+
+% Declare new fields for (specific / all) entry types
\DeclareDatamodelEntryfields[thesis]{supervisor}
-\DeclareDatamodelEntryfields[patent]{classification}
+\DeclareDatamodelEntryfields{dateaddon}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-fullcite.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-fullcite.cbx
index 76d3ada239..4e3af0c95a 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-fullcite.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-fullcite.cbx
@@ -1,20 +1,27 @@
+\ProvidesFile{iso-fullcite.cbx}
+ [2020/03/25 v0.4.0 ISO 690 biblatex fullcite modifications]
+
% Fix for fullcite
+
+% Based on \fullcite standard command
+% Adds only formatting directive of \mkbibnamefamily
\DeclareCiteCommand{\fullcite}
- {\usebibmacro{prenote}%
- \renewcommand*\mkbibnamelast{\lastnameformat}%
- \renewcommand*\mkbibnamefamily{\lastnameformat}}
+ {\usebibmacro{prenote}}
{\usedriver
- {\DeclareNameAlias{sortname}{default}}
+ {\DeclareNameAlias{sortname}{default}%
+ \renewcommand*{\mkbibnamefamily}{\familynameformat}}
{\thefield{entrytype}}}
{\multicitedelim}
{\usebibmacro{postnote}}
+
+% Based on \footfullcite standard command
+% Adds only formatting directive of \mkbibnamefamily
\DeclareCiteCommand{\footfullcite}[\mkbibfootnote]
- {\usebibmacro{prenote}%
- \renewcommand*\mkbibnamelast{\textsc}%
- \renewcommand*\mkbibnamefamily{\textsc}}
+ {\usebibmacro{prenote}}
{\usedriver
- {\DeclareNameAlias{sortname}{default}}
+ {\DeclareNameAlias{sortname}{default}%
+ \renewcommand*{\mkbibnamefamily}{\familynameformat}}
{\thefield{entrytype}}}
{\multicitedelim}
{\usebibmacro{postnote}}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-numeric.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-numeric.bbx
index ba64c58a69..c4bb9b742b 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-numeric.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-numeric.bbx
@@ -1,36 +1,30 @@
-\ProvidesFile{iso-numeric.bbx}[2017/04/25 v0.3.2 biblatex bibliography style]
+\ProvidesFile{iso-numeric.bbx}
+ [2020/03/25 v0.4.0 ISO 690 biblatex bibliography style]
\RequireBibliographyStyle{iso}
\ExecuteBibliographyOptions{%
- sorting=none,
- labelnumber
+ sorting=none,% bib entries in the bibliography are in their citation order
+ labelnumber,% enable numbers for bib entries
}
+% The numbers of bib entries are printed with a dot after number
+% in the bibliography.
\DeclareFieldFormat{labelnumberwidth}{#1\adddot}
-\@ifpackagelater{biblatex}{2016/03/27}
- {\newcommand\MethodFormat{%
- \printtext[labelnumberwidth]{%
- \printfield{labelprefix}%
- \printfield{labelnumber}}}}%
- {\newcommand\MethodFormat{%
- \printtext[labelnumberwidth]{%
- \printfield{prefixnumber}%
- \printfield{labelnumber}}}}%
-
% Copy-pasted from 'numeric.bbx'
\defbibenvironment{bibliography}
- {\list%
- {\MethodFormat}%
+ {\list
+ {\printtext[labelnumberwidth]{%
+ \printfield{labelprefix}%
+ \printfield{labelnumber}}}
{\setlength{\labelwidth}{\labelnumberwidth}%
\setlength{\leftmargin}{\labelwidth}%
\setlength{\labelsep}{\biblabelsep}%
\addtolength{\leftmargin}{\labelsep}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}}%
- \renewcommand*{\makelabel}[1]{\hss##1}
- }%
- {\endlist}%
- {\item}%
+ \renewcommand*{\makelabel}[1]{\hss##1}}
+ {\endlist}
+ {\item}
\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-numeric.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-numeric.cbx
index dc54ba5227..a7dbe8e970 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-numeric.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-numeric.cbx
@@ -1,6 +1,15 @@
-\ProvidesFile{iso-numeric.cbx}[2017/04/25 v0.3.2 biblatex citation style]
+\ProvidesFile{iso-numeric.cbx}
+ [2020/03/25 v0.4.0 ISO 690 biblatex citation style]
\RequireCitationStyle{numeric}
\RequireCitationStyle{iso-fullcite}
+% Format \parencite with parentheses instead of brackets
+\DeclareCiteCommand{\parencite}[\mkbibparens]% <---- was \mkbibbrackets
+ {\usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {\multicitedelim}
+ {\usebibmacro{postnote}}
+
\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-numeric.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-numeric.dbx
index c2bded8f07..6cf14fe74e 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-numeric.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-numeric.dbx
@@ -1,6 +1,12 @@
-\ProvidesFile{iso-numeric.dbx}[2017/04/25 v0.3.2 biblatex data model extension]
+\ProvidesFile{iso-numeric.dbx}
+ [2020/03/25 v0.4.0 ISO 690 biblatex data model extension]
+
\RequireBiber[3]
-\DeclareDatamodelFields[type=list,datatype=name]{supervisor}
-\DeclareDatamodelFields[type=field,datatype=literal]{classification}
+
+% Declare new fields
+\DeclareDatamodelFields[type=list, datatype=name]{supervisor}
+\DeclareDatamodelFields[type=field, datatype=literal]{dateaddon}
+
+% Declare new fields for (specific / all) entry types
\DeclareDatamodelEntryfields[thesis]{supervisor}
-\DeclareDatamodelEntryfields[patent]{classification}
+\DeclareDatamodelEntryfields{dateaddon}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso.bbx
index c4d0f16531..ce2668f718 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso.bbx
@@ -1,54 +1,76 @@
-\ProvidesFile{iso.bbx}[2017/04/25 v0.3.2 biblatex bibliography style]
+\ProvidesFile{iso.bbx}
+ [2020/03/25 v0.4.0 ISO 690 biblatex bibliography style]
-\DeclareLanguageMapping{czech}{czech-iso}
-\DeclareLanguageMapping{english}{english-iso}
-\DeclareLanguageMapping{slovak}{slovak-iso}
-\DeclareLanguageMapping{german}{german-iso}
-\DeclareLanguageMapping{polish}{polish-iso}
-\NewBibliographyString{at,bysupervisor,urlalso}
+% Currently available language mappings:
+% Czech, English, Slovak, German, Polish, Bulgarian,
+% French
+\DeclareLanguageMappingSuffix{-iso}
+% Currently needed the following additional language strings:
+\NewBibliographyString{at,bysupervisor,urlalso,
+ director,bydirector,inventor,byinventor,online,film}
-%options
+% PACKAGE OPTIONS
+% Define new package options
+% These toggle names are internal
\newtoggle{bbx:spcolon}
+\newtoggle{bbx:totalpages}
+\newtoggle{bbx:shortnum}
+\newtoggle{bbx:thesisinfoinnotes}
+\newtoggle{bbx:url}
+\newtoggle{bbx:isbn}
+\newtoggle{bbx:doi}
+\newtoggle{bbx:eprint}
+\newtoggle{bbx:articlepubinfo}
+
+% Print info about package options into .log file
+\protected\def\isoblx@info@noline#1{%
+ \PackageInfo{biblatex-iso690}{#1\@gobble}}
+\let\isoblx@info\isoblx@info@noline
+\AtEndOfPackage{%
+ \protected\def\isoblx@info#1{%
+ \PackageInfo{biblatex-iso690}{#1}}}
+
+% Declare new package options
+% Description of these options is in the doc file
+% '\isoblx@info@noline' command prints to the .log file
\DeclareBibliographyOption{spacecolon}[true]{%
\settoggle{bbx:spcolon}{#1}%
- \typeout{Space colon enabled: #1}}
+ \isoblx@info@noline{Space colon enabled: #1}}
-\newtoggle{bbx:totalpages}
\DeclareBibliographyOption{pagetotal}[true]{%
\settoggle{bbx:totalpages}{#1}%
- \typeout{Showing total pages enabled: #1}}
+ \isoblx@info@noline{Total pages enabled: #1}}
-\newtoggle{bbx:shortnum}
\DeclareBibliographyOption{shortnumeration}[true]{%
\settoggle{bbx:shortnum}{#1}%
- \typeout{Short numeration enabled: #1}}
+ \isoblx@info@noline{Short numeration enabled: #1}}
-\newtoggle{bbx:thesisinfoinnotes}
\DeclareBibliographyOption{thesisinfoinnotes}[true]{%
\settoggle{bbx:thesisinfoinnotes}{#1}%
- \typeout{Printing thesis info at the end enabled: #1}}
+ \isoblx@info@noline{Printing thesis info at the end enabled: #1}}
-\newtoggle{bbx:url}
\DeclareBibliographyOption{url}[true]{%
\settoggle{bbx:url}{#1}%
- \typeout{Showing URL field enabled: #1}}
+ \isoblx@info@noline{URL field enabled: #1}}
-\newtoggle{bbx:isbn}
\DeclareBibliographyOption{isbn}[true]{%
\settoggle{bbx:isbn}{#1}%
- \typeout{Showing ISBN field enabled: #1}}
+ \isoblx@info@noline{ISBN field enabled: #1}}
-\newtoggle{bbx:doi}
\DeclareBibliographyOption{doi}[true]{%
\settoggle{bbx:doi}{#1}%
- \typeout{Showing DOI field enabled: #1}}
+ \isoblx@info@noline{DOI field enabled: #1}}
-\newtoggle{bbx:eprint}
\DeclareBibliographyOption{eprint}[true]{%
\settoggle{bbx:eprint}{#1}%
- \typeout{Showing eprint field enabled: #1}}
+ \isoblx@info@noline{eprint field enabled: #1}}
+
+\DeclareBibliographyOption{articlepubinfo}[true]{%
+ \settoggle{bbx:articlepubinfo}{#1}%
+ \isoblx@info@noline{Article publication info enabled: #1}}
+% Set default package options
\ExecuteBibliographyOptions{%
spacecolon=false,
pagetotal=false,
@@ -58,47 +80,67 @@
isbn=true,
doi=true,
eprint=true,
- % sorting=nyt,
- maxnames=9,
- minnames=1,
- citetracker=true,
- autolang=other,
- date=year,
- urldate=iso,
- seconds=true,
+ articlepubinfo=false, % Printing article publication info is unusual
+ maxnames=99,% If possible, all creators should be given in the reference
+ minnames=1,% If any names are omitted => first creator + and others (et al.)
+ citetracker=true,% Citation tracker in global mode
+ autolang=other,% Use the 'langid' language for the entry
+ date=year,% Use only years
+ urldate=iso,% Use ISO8601 Extended Format (yyyy-mm-dd) for URL 'seen' dates
+ seconds=true,% ISO8601 format requires 'seconds=true'
+ datecirca=true,% Use circa for approximate dates
}
+% Default definitions of beginning and closing macro
+% in bibliography drivers
\newbibmacro*{begentry}{}
\newbibmacro*{finentry}{\finentry}
-%commands
+% COMMANDS
-\newcommand\mainsstring[1]{\bibsstring[\mainlang]{#1}}
-\newcommand\mainlstring[1]{\biblstring[\mainlang]{#1}}
+% The separator between 'titles' and 'subtitles'
+\renewcommand*{\subtitlepunct}{\addspacecolon\space}
-\renewcommand*\subtitlepunct{\addspacecolon\addspace}
-\renewcommand\multinamedelim{\addsemicolon\addspace}
-\renewcommand\finalnamedelim{\multinamedelim}
+% The separator between more standard identifiers, like ISBNs or ISSNs.
+% Default separator is comma and space. You can use something like
+% \renewcommand{\stdidentifierspunct}{\addsemicolon\space}
+% in the preamble to change the separator
+\newcommand{\stdidentifierspunct}{\addcomma\space}
-\newcommand\addspacecolon{%
+% The separator between date and dateaddon
+\newcommand{\dateaddonpunct}{\addspace}
+
+% The separator between 'dates' and the numeration section
+\newcommand{\numerationpunct}{\addcomma\space}
+
+% A colon preceded with or without space
+\newcommand{\addspacecolon}{%
\iftoggle{bbx:spcolon}
- {\addnbspace\blx@addsppunct{colon}}
- {\unspace\blx@addsppunct{colon}}%
+ {\addnbspace\addspcolon}
+ {\unspace\addspcolon}%
}
-% Thanks Moewew for sugesting this. Make uppercase names only in biblipgraphy.
+% Context-sensitive delimiters
+
+% The delimiter between mutliple names
+% A semicolon: legacy of older versions of standard / Czech interpretations
+\DeclareDelimFormat{multinamedelim}{\addsemicolon\space}
+
+% The delimiter before the final name
+% Use consistent name format for all creators
+\DeclareDelimAlias{finalnamedelim}{multinamedelim}
+
+% Thanks Moewew for sugesting this. Make uppercase names only in bibliography.
% Default name format is ALL-CAPS
-% use something like
-% \let\lastnameformat=\textsc
+% use something like
+% \let\familynameformat=\textsc
% to change this
-
-\providecommand{\mkbibnamefamily}[1]{#1}
-\newcommand\lastnameformat[1]{\MakeUppercase{#1}}
+\newcommand{\familynameformat}[1]{\MakeUppercase{#1}}
\AtBeginBibliography{%
- \renewcommand\mkbibnamelast{\lastnameformat}%
- \renewcommand\mkbibnamefamily{\lastnameformat}%
+ \renewcommand{\mkbibnamefamily}{\familynameformat}%
}
+% Default bibliography environment (layout)
\defbibenvironment{bibliography}
{\list%
{}%
@@ -106,94 +148,187 @@
\setlength{\itemindent}{-\leftmargin}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}}%
- \renewcommand*{\makelabel}[1]{\hss##1}
- %\raggedright}
- }%
+ \renewcommand*{\makelabel}[1]{\hss##1}}%
{\endlist}%
{\item}%
-%
-%field formats
+% FIELD FORMATS
+
+% Format title and subtitle as is
\DeclareFieldFormat*{title}{#1}
\DeclareFieldFormat*{subtitle}{#1}
-\DeclareFieldFormat{volume}{\bibsstring{volume}\addnbspace#1}% volume of a book
+
+% Format volume field with localisation string
+\DeclareFieldFormat{volume}{\bibstring{volume}\addnbspace#1}% volume of a book
+% Differentiate volume in journal
\DeclareFieldFormat[article,periodical]{volume}{%
\iftoggle{bbx:shortnum}
{\mkbibbold{#1}}
- {\bibsstring{jourvol}\addnbspace#1}% volume of a journal
+ {\bibstring{jourvol}\addnbspace#1}% volume of a journal
}
+
+% Edition field could be:
+% a) numeral: use with localisation string
+% b) literal: capitalize given string
\DeclareFieldFormat*{edition}{%
\ifnumeral{#1}%
- {\mkbibordedition{#1}\addnbspace\bibsstring{edition}}%
+ {\mkbibordedition{#1}\addnbspace\bibstring{edition}}%
{\MakeCapital{#1}}%
}%
+
+% Format pagination for page range
+% Always use main document language for this field
\DeclareFieldFormat*{pages}{\mkmlpageprefix[bookpagination]{#1}}
+% Differentiate page range in journal
\DeclareFieldFormat[article,periodical]{pages}{%
\iftoggle{bbx:shortnum}
{#1}
- {\mainsstring{pages}\addspace\printtext{#1}}%
+ {\mkmlpageprefix[bookpagination]{#1}}%
}
+
+% Format pagination for total number of pages
+% Always use main document language for this field
\DeclareFieldFormat*{pagetotal}{\mkbibbrackets{\mkmlpagetotal[bookpagination]{#1}}}
-\DeclareFieldFormat*{number}{\bibsstring{number}\addspace\printtext{#1}}
+
+% Format number field with localisation string
+\DeclareFieldFormat*{number}{\bibstring{number}\addspace #1}
+% Differentiate number in journal
\DeclareFieldFormat[article,periodical]{number}{%
\iftoggle{bbx:shortnum}
{\mkbibparens{#1}}
- {\bibsstring{number}\addspace\printtext{#1}}%
+ {\bibstring{number}\addspace #1}%
}
-\DeclareFieldFormat[patent]{number}{#1}
+% Differentiate number for patent and report: format as is
+\DeclareFieldFormat[patent,report]{number}{#1}
+
+% a) url AND no urldate: use localisation string 'available ALSO from',
+% meaning: the work is not primarily published electronically
+% b) url AND urldate: use localisation string 'available from'
\DeclareFieldFormat*{url}{%
\iffieldundef{urlyear}
- {\mainlstring{urlalso}\addcolon\space\url{#1}}
- {\mainlstring{urlfrom}\addcolon\space\url{#1}}%
+ {\mainlangbibstring{urlalso}}
+ {\mainlangbibstring{urlfrom}}%
+ \addcolon\space\url{#1}%
}
-\DeclareFieldFormat{doi}{%
- \printtext{DOI}\addcolon\space
- \ifhyperref
- {\href{https://doi.org/#1}{\nolinkurl{#1}}}
- {\nolinkurl{#1}}%
-}
-\DeclareFieldFormat{howpublished}{\mkbibbrackets{#1}}
-\DeclareFieldFormat[online]{howpublished}{%
- \iffieldundef{howpublished}
- {\mkbibbrackets{online}}
+
+% Format medium type in square brackets
+% If available, use the localisation string for the key
+\DeclareFieldFormat{howpublished}{%
+ \ifbibstring{#1}
+ {\mainlangbibstring[\mkbibbrackets]{#1}}
{\mkbibbrackets{#1}}%
}
+% Format type, e.g. type of thesis
+% If available, use the localisation string for the key
\DeclareFieldFormat{type}{%
\ifbibstring{#1}
- {\mainlstring{#1}}
+ {\mainlangbibstring{#1}}
{#1}%
}
+% Format supervisor of thesis (precedes the name with a localisation string)
\DeclareFieldFormat{supervisor}{%
- \mainlstring{bysupervisor}\addspace#1}
+ \mainlangbibstring{bysupervisor}\addspace#1}
+
+% \mkbibacro typesets acronyms in small caps by default,
+% if we want to override this, pass the value as is (uppercase)
+% \renewcommand*{\mkbibacro}[1]{#1}
+% Applies to DOI, ISBN, ISSN, ISAN, ISMN, ISRN, ISWC
-%We must handle more than one isbn and issn
+% If we really must handle more than one ISBN and ISSN.
+%
+% Typically there could be different ISBN / ISSN for printed and electronic
+% media versions, but the standard says that the specific copy or instance of
+% the document should be cited, so the author should choose the appropriate
+% number in the bib file. Otherwise include comma-separated list of numbers in
+% the bib field 'isbn' or 'issn'.
+
+% Separator value between more ISBNs / ISSNs is handled by '\stdidentifierspunct'.
+% Default format is the name of identifier + space + number:
+% e.g. 'ISBN 978-3-642-21665-7'
\DeclareFieldFormat{isbn}{%
- %\renewcommand*{\do}[1]{\printtext{ISBN}\addspace#1\adddot\addspace}%
- \printtext{ISBN}\addspace#1}%
+ % Execute this rule for the first value of the csv field
+ \def\do##1{\mkbibacro{ISBN}\space##1%
+ % Execute this rule for the next value(s) of the csv field
+ \def\do####1{\stdidentifierspunct\mkbibacro{ISBN}\space####1}}%
+ % Process the csv field with \do command
+ \docsvfield{isbn}%
+}
+% The same formatting rules as for ISBN above
\DeclareFieldFormat{issn}{%
- \renewcommand*{\do}[1]{\printtext{ISSN}\addspace#1\adddot\addspace}%
- \docsvfield{issn}}%
+ \def\do##1{\mkbibacro{ISSN}\space##1%
+ \def\do####1{\stdidentifierspunct\mkbibacro{ISSN}\space####1}}%
+ \docsvfield{issn}%
+}
+
+% Format other standard identifiers
+% Default format is the name of identifier + space + number
+\DeclareFieldFormat{isan}{\mkbibacro{ISAN}\addspace#1}
+\DeclareFieldFormat{ismn}{\mkbibacro{ISMN}\addspace#1}
+\DeclareFieldFormat{isrn}{\mkbibacro{ISRN}\addspace#1}
+\DeclareFieldFormat{iswc}{\mkbibacro{ISWC}\addspace#1}
-\DeclareFieldFormat{isan}{\printtext{ISAN}\addspace#1}
-\DeclareFieldFormat{ismn}{\printtext{ISMN}\addspace#1}
-\DeclareFieldFormat{isrn}{\printtext{ISRN}\addspace#1}
-\DeclareFieldFormat{iswc}{\printtext{ISWC}\addspace#1}
+% Format url seen date with preceding localisation string in square brackets
+\DeclareFieldFormat{urldate}{\mkbibbrackets{\mainlangbibstring{urlseen}\space#1}}
-\DeclareFieldFormat{urldate}{\mkbibbrackets{\mainsstring{urlseen}\space#1}}
+% Format additional date information as is (use bib file for modifications).
+\DeclareFieldFormat{dateaddon}{#1}
+% Format circa date with preceding localisation string in square brackets;
+% default \datecircaprint is \bibstring{circa}\printdelim{datecircadelim},
+% e.g. [ca. 1940].
+\DeclareFieldFormat{date}{%
+ \ifdatecirca
+ {\mkbibbrackets{#1}}%
+ {#1}%
+}
+
+% Format 'labeldate' the same as 'date' field.
+% We use 'labeldate' in 'iso-authoryear' style.
+% Format circa date and nodate. Dateaddon and date as is.
+\DeclareFieldFormat{labeldate}{%
+ \ifdatecirca
+ {\mkbibbrackets{#1}}%
+ {% Check if there is 'nodate' from 'labeldate'
+ \iffieldequalstr{labeldatesource}{nodate}
+ % This is a \literal{nodate}, meaning that it uses the 'nodate'
+ % localisation string due to default \DeclareLabeldate setting
+ {\mkbibbrackets{#1}}%
+ {#1}}% This is the go-to format
+}
+
+% Define dates to consider for 'labeldate', based on
+% the default definition, but without 'urldate' field,
+% preventing printing url seen date in place of the year
+% of a publication.
+\DeclareLabeldate{%
+ \field{date}
+ \field{year}
+ \field{dateaddon}% <---- biblatex-iso690 data model extension
+ \field{eventdate}
+ \field{origdate}
+ \literal{nodate}
+}
+
+% Format chapter of book with preceding localisation string
\DeclareFieldFormat{chapter}{\bibstring{chapter}\addnbspace#1\isdot}
+
+% Version field could be:
+% a) numeral: use with localisation string
+% b) literal: capitalize given string
\DeclareFieldFormat{version}{%
\ifnumeral{#1}%
- {\biblstring{version}\addnbspace#1}%
+ {\bibstring{version}\addnbspace#1}%
{\MakeCapital{#1}}%
}
+% Format library field as is (location information)
\DeclareFieldFormat{library}{#1}
+% Format (sub)titles as they are
\DeclareFieldFormat{journaltitle}{#1}
\DeclareFieldFormat{booktitle}{#1}
\DeclareFieldFormat{maintitle}{#1}
@@ -203,55 +338,72 @@
\DeclareFieldFormat{mainsubtitle}{#1}
\DeclareFieldFormat{issuesubtitle}{#1}
+% Format other / alternative titles in square brackets
\DeclareFieldFormat{titleaddon}{\mkbibbrackets{#1}}
-\DeclareFieldFormat{booktitleaddon}{\mkbibbrackets{#1}}
-\DeclareFieldFormat{maintitleaddon}{\mkbibbrackets{#1}}
+\DeclareFieldAlias{booktitleaddon}{titleaddon}
+\DeclareFieldAlias{maintitleaddon}{titleaddon}
+% Format additional name information in square brackets
\DeclareFieldFormat{nameaddon}{\mkbibbrackets{#1}}
-%name alias
+% NAME ALIAS
-\DeclareNameAlias{default}{last-first}
-\DeclareNameAlias{supervisor}{first-last}
+% Default name list format is last (family) followed by given (first) name
+\DeclareNameAlias{default}{family-given}
+% For supervisor, use the reversed order format:
+% given (first) name followed by last (family) name,
+% so it may sound more naturally in this order
+\DeclareNameAlias{supervisor}{given-family}
-%bibliography macros
+% BIBLIOGRAPHY MACROS
-%names
+% NAMES MACROS
-% based on author/editor macro
+% Based on author/editor macro
+% Adds nameaddon field to author names
\newbibmacro*{names:primary}{%
\ifboolexpr{
test \ifuseauthor
and
not test {\ifnameundef{author}}
}
- {\usebibmacro{author}}
+ {\usebibmacro{author}%
+ \setunit{\addspace}%
+ \printfield{nameaddon}}%
{\usebibmacro{editor}}%
- \setunit{\addspace}\printfield{nameaddon}%
}
+% Macro for secondary authors with their role
\newbibmacro*{names:subsidiary}{%
\usebibmacro{byeditor}%
\newunit
\usebibmacro{bytranslator}%
}
+% Don't owerwrite default macros to change only delimiters / punctuation,
+% declare their format instead.
% https://github.com/michal-h21/biblatex-iso690/issues/68#issuecomment-435650072
-\DeclareFieldFormat{editortype}{\mkbibparens{#1}}
+\DeclareFieldFormat{editortype}{\mkbibparens{#1}}
\DeclareDelimFormat{editortypedelim}{\addspace}
+\DeclareFieldFormat{authortype}{\mkbibparens{#1}}
+\DeclareDelimFormat{authortypedelim}{\addspace}
-
+% Macro for printing supervisor field
\newbibmacro*{thesissupervisor}{%
\ifnameundef{supervisor}
{}
- {\printtext{\mainlstring{bysupervisor}}%
- \addspace%
+ {\mainlangbibstring{bysupervisor}%
+ \setunit{\addspace}%
\printnames{supervisor}}%
}
-%titles
+% TITLES MACROS
+% Macro for formatting <prefix>titles
+% 1st argument: prefix / type of title (e.g. main, book, event),
+% if empty, 'title' field is handled
+% 2nd argument: formatting directive (e.g. emph)
\newbibmacro{titles}[2]{%
\ifboolexpr{
test {\iffieldundef{#1title}}
@@ -262,19 +414,21 @@
\printfield{#1title}%
\setunit{\subtitlepunct}%
\printfield{#1subtitle}}%
- \setunit{\addspace}}%
+ \setunit{\addspace}}%
\printfield{#1titleaddon}%
\newunit
}%
+% Macro for printing volumes (part of volumes)
\newbibmacro{volume}{%
\iffieldundef{volume}
{}
{\printfield{volume}%
\printfield{part}%
- \setunit{\addcomma\addspace}}%
+ \setunit{\addcomma\space}}%
}
+% Macro for formatting multiple titles
\newbibmacro{multi:titles}{%
\iffieldundef{maintitle}
{\iffieldundef{booktitle}
@@ -287,6 +441,8 @@
\usebibmacro{titles}{}{}}%
}
+% Macro for formatting multiple hierarchical titles
+% (e.g. for inbook, incollection)
\newbibmacro{host:titles}{%
\iffieldundef{maintitle}
{\iffieldundef{booktitle}
@@ -295,6 +451,7 @@
{\usebibmacro{titles}{main}{emph}}%
}%
+% Macro for formatting multiple titles in periodicals
\newbibmacro{periodical:titles}{%
\usebibmacro{titles}{}{emph}%
\newunit
@@ -305,64 +462,117 @@
{\usebibmacro{titles}{issue}{}}%
}
-%medium type
+% MEDIUM TYPE MACROS
\newbibmacro*{medium-type}{%
\iffieldundef{howpublished}
- {\iffieldundef{urlyear}
- {}
- {\printtext{\mkbibbrackets{online}}}}
- {\printfield{howpublished}}%
+ {% Automatic printing of '[online]' type of medium when
+ % a) 'urldate' is present AND
+ % b) url is enabled (pkg option url=true) OR
+ % entry type is '@online'
+ \ifboolexpr{
+ not test {\iffieldundef{urlyear}}
+ and ( test {\iftoggle{bbx:url}}
+ or test {\ifentrytype{online}})
+ }
+ % Use a localisation string 'online' in the main document language
+ {\mainlangbibstring[\mkbibbrackets]{online}}%
+ {}}% Don't print anything
+ {% The only situation when we don't want to print
+ % 'howpublished' field is when
+ % a) url is disabled (pkg option url=false) AND
+ % b) entry type is other than '@online' AND
+ % c) 'howpublished' field is 'online'.
+ % Please note that this field is not checked against
+ % any possible literal value (e.g. electronic, online article)
+ % that should be probably also hidden when a) AND b) hold.
+ \ifboolexpr{
+ test {\iffieldequalstr{howpublished}{online}}
+ and not test {\iftoggle{bbx:url}}
+ and not test {\ifentrytype{online}}
+ }
+ {}% Don't print 'howpublished' field
+ {\printfield{howpublished}}}%
}
-%publication info
+% PUBLICATION INFO MACROS
+
+% By default only year is used, but for some entries,
+% we need full date (day or even time precision),
+% (e.g. patents, TV shows, newspapers, online news)
-\newbibmacro{fulldate}{%
- \printtext{\csname mkbibrangeiso8601\endcsname{\thefield{date}}}%
+% Macro for printing full date (full = YYYY-MM-DD)
+\newbibmacro*{fulldate}{%
+ \mkdaterangeiso{}%
}
+% a)
+% If there is no date field in the bib entry,
+% we should state there is no date by printing
+% a localisation string, e.g. [n.d.].
+% b)
+% Order: <date> <dateaddon>
\renewbibmacro*{date}{%
- \iffieldequalstr{endyear}{}%
- {\printdate\mbox{\addnbspace}}%
- {\printdate}%
+ \iffieldundef{year}
+ {\iffieldundef{dateaddon}
+ {\bibstring[\mkbibbrackets]{nodate}}%
+ {\printfield{dateaddon}}}%
+ {\printdate%
+ \setunit{\dateaddonpunct}%
+ \printfield{dateaddon}}%
}
-\newbibmacro*{location+publisher+date}{%
+% Based on publisher+location+date macro (defined in standard.bbx)
+% Differs only in punctuation
+%
+% Wrapper for printing normal or full date. 1st argument:
+% * empty: \usebibmacro{date}
+% * 'full': \usebibmacro{fulldate}
+\newbibmacro*{location+publisher+dateform}[1]{%
\printlist{location}%
\iflistundef{publisher}
- {\setunit*{\addcomma\space}}%
- {\setunit*{\subtitlepunct}}%
+ {\setunit*{\addcomma\space}}
+ {\setunit*{\subtitlepunct}}% <---- different punctuation
\printlist{publisher}%
\setunit*{\addcomma\space}%
- \usebibmacro{date}%
+ \usebibmacro{#1date}%
\newunit}
-%numeration
+\newbibmacro*{location+publisher+date}{%
+ \usebibmacro{location+publisher+dateform}{}}
+
+\newbibmacro*{location+publisher+fulldate}{%
+ \usebibmacro{location+publisher+dateform}{full}}
+
+% NUMERATION MACROS
\newbibmacro*{serial:numeration}{%
\printfield{volume}%
\iftoggle{bbx:shortnum}
{}
- {\setunit*{\addcomma\addspace}}%
+ {\setunit*{\addcomma\space}}%
\printfield{number}%
}
\newbibmacro*{book:numeration}{%
\printfield{volume}%
- \setunit*{\addcomma\addspace}%
+ \setunit*{\addcomma\space}%
\printfield{chapter}%
}
-%series title and number
+% SERIES TITLE AND NUMBER MACROS
+% Based on series+number macro (defined in standard.bbx)
+% Differs only in punctuation
\newbibmacro*{series+number}{%
\printfield{series}%
\setunit*{\addcomma\space}%
\printfield{number}%
}%
-%standard identifiers
+% STANDARD IDENTIFIERS MACROS
+% Bunch of standard identifiers
\newbibmacro*{identifier}{%
\iftoggle{bbx:isbn}
{\printfield{isan}%
@@ -380,32 +590,63 @@
{}%
}
-%availability and access
+% AVAILABILITY AND ACCESS MACROS
+% Precedes DOI field with urlfrom localisation string
\newbibmacro*{from-doi}{%
- \mainlstring{urlfrom}\addspace\printfield{doi}%
+ \mainlangbibstring{urlfrom}%
+ \setunit{\addspace}%
+ \printfield{doi}%
}
+% Precedes eprint field with urlfrom localisation string
+% Use default eprint formatting macro
\newbibmacro*{from-eprint}{%
- \mainlstring{urlfrom}\addspace\usebibmacro{eprint}%
+ \mainlangbibstring{urlfrom}
+ \setunit{\addspace}%
+ \usebibmacro{eprint}%
}
+% Macro for availability and access information
+% with order of importance: doi, eprint, url
\newbibmacro*{availability+access}{%
- \iffieldundef{doi}
- {\iffieldundef{eprint}
- {\iftoggle{bbx:url}
- {\printfield{url}}
- {}}
- {\iftoggle{bbx:eprint}
- {\usebibmacro{from-eprint}}
- {}}}
- {\iftoggle{bbx:doi}
- {\usebibmacro{from-doi}}
- {}}%
+ \ifboolexpr{
+ test {\iftoggle{bbx:doi}}
+ and not test {\iffieldundef{doi}}
+ }
+ {\usebibmacro{from-doi}}%
+ {%
+ \ifboolexpr{
+ test {\iftoggle{bbx:eprint}}
+ and not test {\iffieldundef{eprint}}
+ }
+ {\usebibmacro{from-eprint}}%
+ {\usebibmacro{url}}}%
+}
+
+% The url field of @online entries is always printed
+\renewbibmacro*{url}{%
+ \ifboolexpr{
+ test {\iftoggle{bbx:url}}
+ or test {\ifentrytype{online}}
+ }
+ {\printfield{url}}%
+ {}%
}
-%location
+% The url seen date of @online entries is always printed
+\renewbibmacro*{urldate}{%
+ \ifboolexpr{
+ test {\iftoggle{bbx:url}}
+ or test {\ifentrytype{online}}
+ }
+ {\printurldate}%
+ {}%
+}
+
+% LOCATION MACROS
+% Additional location information (e.g. library, repository)
\newbibmacro*{location}{%
\iffieldundef{library}
{}
@@ -413,37 +654,79 @@
\printfield{library}}%
}
-%other
+% OTHER MACROS
-% redeclare in: bibmacro to use the main document language.
-% there was discussion whether literal "In:" should be used,
+% Redeclare in: bibmacro to use the main document language.
+% There was discussion whether literal "In:" should be used,
% but that would look weird in non-latin languages.
-% context: https://github.com/michal-h21/biblatex-iso690/pull/33
+% Context: https://github.com/michal-h21/biblatex-iso690/pull/33
+% Force to use the main document language for 'in' localisation string
\renewbibmacro*{in:}{%
- \printtext{\mainsstring{in}\intitlepunct}%
+ \mainlangbibstring{in}%
+ \printunit{\intitlepunct}%
}
+% Based on 'in:' macro for 'at' localisation string
\newbibmacro*{at:}{%
- \printtext{\mainsstring{at}\intitlepunct}%
+ \mainlangbibstring{at}%
+ \printunit{\intitlepunct}%
}
-%biblatex core
+% BIBLATEX CORE ADJUSTMENTS
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Localisation strings in the main document language
+%
+% \mainlangbibstring in place of \bibstring
+% \mainlangbiblstring in place of \biblstring
+% \mainlangbibsstring in place of \bibsstring
+
+% [<wrapper>]{<string>}
+\newrobustcmd*{\blx@imc@mainlangbibstring}[2][\@firstofone]{%
+ \blx@mainlangbibstring{#1}{\abx@str}{#2}}
+
+\newrobustcmd*{\blx@imc@mainlangbiblstring}[2][\@firstofone]{%
+ \blx@mainlangbibstring{#1}{abx@lstr}{#2}}
+
+\newrobustcmd*{\blx@imc@mainlangbibsstring}[2][\@firstofone]{%
+ \blx@mainlangbibstring{#1}{abx@sstr}{#2}}
+
+\protected\def\blx@mainlangbibstring#1#2#3{%
+ {\mainlang% <---- use main document language
+ \blx@begunit
+ \blx@hyphenreset
+ \blx@bibstringsimple
+ \lowercase{\edef\blx@tempa{#3}}%
+ \ifcsundef{#2@\blx@tempa}
+ {\blx@warn@nostring\blx@tempa
+ \blx@endnounit}
+ {\blx@imc@ifcapital
+ {#1{\MakeCapital{\csuse{#2@\blx@tempa}}}}
+ {#1{\csuse{#2@\blx@tempa}}}%
+ \blx@endunit}}}
+
+\blx@regimcs{%
+ \mainlangbibstring \mainlangbiblstring \mainlangbibsstring
+}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% overriding bookpagination to use document main language
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Overriding bookpagination to use document main language
+%
+% Use new name 'mkpagetotal' over 'mkmlpagetotal'
+% Use 'mainlangbibsstring' over 'bibstring'
\newrobustcmd*{\blx@imc@mkmlpagetotal}[1][bookpagination]{%
\begingroup
- \def\blx@tempa{\blx@mkmlpagetotal{page}}%
+ \def\blx@tempa{\blx@mkmlpagetotal{pagetotal}}%
\iffieldundef{#1}
{}
{\iffieldequalstr{#1}{none}
{\def\blx@tempa{\blx@mkmlpagetotal@i}}
- {\iffieldbibstring{#1}
- {\edef\blx@tempa{\blx@mkmlpagetotal{\thefield{#1}}}}
+ {\iffieldplusstringbibstring{#1}{total}
+ {\edef\blx@tempa{\blx@mkmlpagetotal{\thefield{#1}total}}}
{\blx@warning@entry{%
- Unknown pagination type '\strfield{#1}'}}}}%
+ Unknown pagination type '\strfield{#1}total'}}}}%
\@ifnextchar[%]
{\blx@tempa}
{\blx@tempa[\@firstofone]}}
@@ -457,10 +740,10 @@
\else
\aftergroup\@secondoftwo
\fi}%
- {#2{#3}\ppspace\mainsstring{#1}}
- {#2{#3}\ppspace\mainsstring{#1s}}}
- {\def\pno{\mainsstring{#1}}%
- \def\ppno{\mainsstring{#1s}}%
+ {#2{#3}\ppspace\mainlangbibsstring{#1}}
+ {#2{#3}\ppspace\mainlangbibsstring{#1s}}}
+ {\def\pno{\mainlangbibsstring{#1}}%
+ \def\ppno{\mainlangbibsstring{#1s}}%
#2{#3}}%
\endgroup}
@@ -468,8 +751,11 @@
\blx@regimcs{\mkmlpagetotal}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% overriding pagination to use document main language
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Overriding pagination to use document main language
+%
+% Use new name 'mkmlpageprefix' over 'mkpageprefix'
+% Use 'mainlangbibsstring' over 'bibstring'
\newrobustcmd*{\blx@imc@mkmlpageprefix}[1][pagination]{%
\begingroup
@@ -488,23 +774,28 @@
\protected\long\def\blx@mkmlpageprefix#1[#2]#3{%
\ifnumeral{#3}
- {\mainsstring{#1}\ppspace}
+ {\mainlangbibsstring{#1}\ppspace}
{\ifnumerals{#3}
- {\mainsstring{#1s}\ppspace}
- {\def\pno{\mainsstring{#1}}%
- \def\ppno{\mainsstring{#1s}}}}%
+ {\mainlangbibsstring{#1s}\ppspace}
+ {\def\pno{\mainlangbibsstring{#1}}%
+ \def\ppno{\mainlangbibsstring{#1s}}}}%
\blx@mkmlpageprefix@i[#2]{#3}}
\long\def\blx@mkmlpageprefix@i[#1]#2{#1{#2}\endgroup}
\blx@regimcs{\mkmlpageprefix}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% use space punctuation
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Use space punctuation, package option 'spacecolon',
+% toggle 'bbx:spcolon', command '\addspcolon' / '\addspacecolon'
-% see biblatex2.sty for these macros
-\blx@regimcs{% let biblatex know the new macros
- \addspcolon }%
+% See 'biblatex.sty' for these macros
+%
+% Let biblatex know the new macro
+\blx@regimcs{\addspcolon}
+% Define the new macro
+\protected\def\blx@imc@addspcolon{\blx@addsppunct{colon}}
+% Implement the new macro
\def\blx@addsppunct#1{% <---- new name for spaced punctuation
%\unspace <----- commented out
\ifnum\blx@spacefactor<\blx@sf@threshold@low
@@ -520,13 +811,247 @@
\fi%
\csuse{blx@pq@#1}}%
-%bibliography drivers
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Adds non-breaking space after open date range, e.g. '1492-- '
+%
+
+\newcommand*{\mkopenendeddaterange}{\mbox{\bibdaterangesep\addnbspace}}
+
+% Used by '\printdate'
+%
+% {<short|long>}{<datetype>}
+\renewrobustcmd*{\mkdaterangefull}[2]{%
+ \begingroup
+ \blx@metadateinfo{#2}%
+ \iffieldundef{#2year}
+ {\blx@nounit}
+ {\printtext[{#2date}]{%
+ \datecircaprint
+ % Such a season component can only come from an ISO8601 season which replaces
+ % a normal month so if it exists, we know that a normal date print is ruled out
+ \iffieldundef{#2season}
+ {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
+ % Optionally print the time after the date
+ \blx@printtime{#2}{}}
+ {\csuse{mkbibseasondate#1}{#2year}{#2season}}%
+ \dateuncertainprint
+ \dateeraprint{#2year}%
+ \iffieldundef{#2endyear}
+ {}
+ {\iffieldequalstr{#2endyear}{}
+ {\mkopenendeddaterange}% <---- added \addnbspace
+ {\bibdaterangesep
+ \enddatecircaprint
+ \iffieldundef{#2endseason}
+ {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}%
+ % Optionally print the time after the date
+ \blx@printtime{#2}{end}}
+ {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}%
+ \enddateuncertainprint
+ \dateeraprint{#2endyear}}}}}%
+ \endgroup}
+
+% Used by '\printlabeldateextra' in 'iso-authoryear.bbx'
+%
+% {<short|long>}{<datetype>}
+\renewrobustcmd*{\mkdaterangefullextra}[2]{%
+ \begingroup
+ \blx@metadateinfo{#2}%
+ \iffieldundef{#2year}
+ {\blx@nounit}
+ {\printtext[{#2date}]{%
+ \datecircaprint
+ % Such a season component can only come from an ISO8601 season which replaces
+ % a normal month so if it exists, we know that a normal date print is ruled out
+ \iffieldundef{#2season}
+ {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
+ % Optionally print the time after the date
+ \blx@printtime{#2}{}}
+ {\csuse{mkbibseasondate#1}{#2year}{#2season}}%
+ \dateuncertainprint
+ \dateeraprint{#2year}%
+ \iffieldundef{#2endyear}
+ {\printfield{extradate}}
+ {\iffieldequalstr{#2endyear}{}
+ {\printfield{extradate}%
+ \printtext{\mkopenendeddaterange}}% <---- added \addnbspace
+ {\printtext{%
+ \bibdaterangesep
+ \enddatecircaprint
+ \iffieldundef{#2endseason}
+ {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}%
+ % Optionally print the time after the date
+ \blx@printtime{#2}{end}}
+ {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}%
+ \printfield{extradate}%
+ \enddateuncertainprint
+ \dateeraprint{#2endyear}}}}}%
+ \endgroup}
+
+% Other date formats for completeness
+
+% Avoids error with older biblatex version
+% WARNING: of course this means that in older versions the
+% date printing macro will not be changed as expected
+% this is not an issue for biblatex-iso690 since it only uses
+% \mkdaterangefull and \mkdaterangefullextra anyway
+\providecommand*{\mkdaterangetrunc@i}{}
+
+\renewrobustcmd*{\mkdaterangetrunc@i}[2]{%
+ \begingroup
+ \blx@metadateinfo{#2}%
+ \iffieldundef{#2year}
+ {\blx@nounit}
+ {\printtext[{#2date}]{%
+ \datecircaprint
+ % Such a season component can only come from an ISO8601 season which replaces
+ % a normal month so if it exists, we know that a normal date print is ruled out
+ \iffieldundef{#2season}
+ {\ifdateyearsequal{#2}{#2end}
+ {\iffieldsequal{#2month}{#2endmonth}
+ {\csuse{mkbibdate#1}{}{}{#2day}}
+ {\csuse{mkbibdate#1}{}{#2month}{#2day}}}
+ {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
+ \iffieldsequal{#2dateera}{#2enddateera}{}
+ {\dateeraprint{#2year}}}}
+ {\ifdateyearsequal{#2}{#2end}
+ {\csuse{mkbibseasondate#1}{}{#2season}}
+ {\csuse{mkbibseasondate#1}{#2year}{#2season}%
+ \iffieldsequal{#2dateera}{#2enddateera}{}
+ {\dateeraprint{#2year}}}}%
+ \dateuncertainprint
+ \iffieldundef{#2endyear}
+ {}
+ {\iffieldequalstr{#2endyear}{}
+ {\mkopenendeddaterange}
+ {\bibdaterangesep
+ \enddatecircaprint
+ \iffieldundef{#2endseason}
+ {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}
+ {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}%
+ \enddateuncertainprint
+ \dateeraprint{#2endyear}}}}}%
+ \endgroup}
+
+% Avoids error with older biblatex version
+% WARNING: of course this means that in older versions the
+% date printing macro will not be changed as expected
+% this is not an issue for biblatex-iso690 since it only uses
+% \mkdaterangefull and \mkdaterangefullextra anyway
+\providecommand*{\mkdaterangetruncextra@i}{}
+
+\renewrobustcmd*{\mkdaterangetruncextra@i}[2]{%
+ \begingroup
+ \blx@metadateinfo{#2}%
+ \iffieldundef{#2year}
+ {\blx@nounit}
+ {\printtext[{#2date}]{%
+ \datecircaprint
+ % Such a season component can only come from an ISO8601 season which replaces
+ % a normal month so if it exists, we know that a normal date print is ruled out
+ \iffieldundef{#2season}
+ {\ifdateyearsequal{#2}{#2end}
+ {\iffieldsequal{#2month}{#2endmonth}
+ {\csuse{mkbibdate#1}{}{}{#2day}}
+ {\csuse{mkbibdate#1}{}{#2month}{#2day}}}
+ {\csuse{mkbibdate#1}{#2year}{#2month}{#2day}%
+ \iffieldsequal{#2dateera}{#2enddateera}{}
+ {\dateeraprint{#2year}}}}
+ {\ifdateyearsequal{#2}{#2end}
+ {\csuse{mkbibseasondate#1}{}{#2season}}
+ {\csuse{mkbibseasondate#1}{#2year}{#2season}%
+ \iffieldsequal{#2dateera}{#2enddateera}{}
+ {\dateeraprint{#2year}}}}%
+ \dateuncertainprint
+ \iffieldundef{#2endyear}
+ {\printfield{extradate}}
+ {\iffieldequalstr{#2endyear}{}
+ {\printfield{extradate}%
+ \printtext{\mkopenendeddaterange}}
+ {\printtext{%
+ \bibdaterangesep
+ \enddatecircaprint
+ \iffieldundef{#2endseason}
+ {\csuse{mkbibdate#1}{#2endyear}{#2endmonth}{#2endday}}
+ {\csuse{mkbibseasondate#1}{#2endyear}{#2endseason}}}%
+ \printfield{extradate}%
+ \enddateuncertainprint
+ \dateeraprint{#2endyear}}}}}%
+ \endgroup}
+
+
+% {<datetype>}
+\renewrobustcmd*{\mkdaterangeymd}[1]{%
+ \begingroup
+ \blx@metadateinfo{#1}%
+ \iffieldundef{#1year}
+ {\blx@nounit}
+ {\printtext[{#1date}]{%
+ \datecircaprint
+ % Such a season component can only come from an ISO8601 season which replaces
+ % a normal month so if it exists, we know that a normal date print is ruled out
+ \iffieldundef{#1season}
+ {\blx@ymddate{#1}{}%
+ % Optionally print the time after the date
+ \blx@printtime{#1}{}}
+ {\csuse{mkbibseasondateshort}{#1year}{#1season}}%
+ \dateuncertainprint
+ \dateeraprint{#1year}%
+ \iffieldundef{#1endyear}
+ {}
+ {\iffieldequalstr{#1endyear}{}
+ {\mkopenendeddaterange}
+ {\bibdaterangesep
+ \enddatecircaprint
+ \iffieldundef{#1season}
+ {\blx@ymddate{#1}{end}%
+ % Optionally print the time after the date
+ \blx@printtime{#1}{end}}
+ {\csuse{mkbibseasondateshort}{#1endyear}{#1endseason}}%
+ \enddateuncertainprint
+ \dateeraprint{#1endyear}}}}}%
+ \endgroup}
+
+% {<datetype>}
+\renewrobustcmd*{\mkdaterangeymdextra}[1]{%
+ \begingroup
+ \blx@metadateinfo{#1}%
+ \iffieldundef{#1year}
+ {\blx@nounit}
+ {\printtext[{#1date}]{%
+ \datecircaprint
+ % Such a season component can only come from an ISO8601 season which replaces
+ % a normal month so if it exists, we know that a normal date print is ruled out
+ \iffieldundef{#1season}
+ {\blx@ymddate[extradate]{#1}{}%
+ % Optionally print the time after the date
+ \blx@printtime{#1}{}}
+ {\csuse{mkbibseasondateshort}{#1year}{#1season}}%
+ \dateuncertainprint
+ \dateeraprint{#1year}%
+ \iffieldundef{#1endyear}
+ {}
+ {\iffieldequalstr{#1endyear}{}
+ {\mkopenendeddaterange}
+ {\printtext{%
+ \bibdaterangesep
+ \enddatecircaprint
+ \iffieldundef{#1season}
+ {\blx@ymddate{#1}{end}%
+ % Optionally print the time after the date
+ \blx@printtime{#1}{end}}
+ {\csuse{mkbibseasondateshort}{#1endyear}{#1endseason}}}%
+ \enddateuncertainprint
+ \dateeraprint{#1endyear}}}}}%
+ \endgroup}
+
+% BIBLIOGRAPHY DRIVERS
\DeclareBibliographyDriver{book}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{names:primary}%
- \setunit{\labelnamepunct}\newblock
+ \setunit{\printdelim{nametitledelim}}\newblock
\usebibmacro{multi:titles}%
\setunit{\addspace}%
\usebibmacro{medium-type}%
@@ -562,9 +1087,9 @@
\DeclareBibliographyDriver{periodical}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
- % names macro just because of author-year style
+ % Names macro just because of author-year style
\usebibmacro{names:primary}%
- \setunit{\labelnamepunct}\newblock
+ \setunit{\printdelim{nametitledelim}}\newblock
\usebibmacro{periodical:titles}%
\setunit{\addspace}%
\usebibmacro{medium-type}%
@@ -572,7 +1097,7 @@
\printfield{edition}%
\newunit\newblock
\usebibmacro{location+publisher+date}%
- \setunit*{\addcomma\addspace}%
+ \setunit{\numerationpunct}%
\usebibmacro{serial:numeration}%
\setunit{\addspace}%
\usebibmacro{urldate}%
@@ -593,7 +1118,7 @@
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{names:primary}%
- \setunit{\labelnamepunct}\newblock
+ \setunit{\printdelim{nametitledelim}}\newblock
\usebibmacro{titles}{}{}%
\newunit\newblock
\usebibmacro{titles}{journal}{emph}%
@@ -602,8 +1127,10 @@
\newunit\newblock
\printfield{edition}%
\newunit\newblock
- \usebibmacro{date}
- \setunit*{\addcomma\addspace}%
+ \iftoggle{bbx:articlepubinfo}
+ {\usebibmacro{location+publisher+date}}
+ {\usebibmacro{date}}%
+ \setunit{\numerationpunct}%
\usebibmacro{serial:numeration}%
\setunit{\bibpagespunct}%
\printfield{pages}%
@@ -625,7 +1152,7 @@
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{names:primary}%
- \setunit{\labelnamepunct}\newblock
+ \setunit{\printdelim{nametitledelim}}\newblock
\usebibmacro{titles}{}{}%
\newunit\newblock
\usebibmacro{in:}%
@@ -640,7 +1167,7 @@
\usebibmacro{names:subsidiary}%
\newunit\newblock
\usebibmacro{location+publisher+date}%
- \setunit*{\addcomma\addspace}%
+ \setunit{\addcomma\space}%
\usebibmacro{book:numeration}%
\setunit{\bibpagespunct}%
\printfield{pages}%
@@ -667,7 +1194,7 @@
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{names:primary}%
- \setunit{\labelnamepunct}\newblock
+ \setunit{\printdelim{nametitledelim}}\newblock
\usebibmacro{titles}{}{}%
\newunit\newblock
\usebibmacro{in:}%
@@ -682,9 +1209,9 @@
\usebibmacro{names:subsidiary}%
\newunit\newblock
\usebibmacro{location+publisher+date}%
- % could number be even used in `incollection`?
+ % could number be even used in `incollection`?
% It should be at some other place in this case
- \setunit*{\addcomma\addspace}%
+ \setunit{\numerationpunct}%
\usebibmacro{book:numeration}%
\setunit{\bibpagespunct}%
\printfield{pages}%
@@ -711,7 +1238,7 @@
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{names:primary}%
- \setunit{\labelnamepunct}\newblock
+ \setunit{\printdelim{nametitledelim}}\newblock
\usebibmacro{multi:titles}%
\setunit{\addspace}%
\usebibmacro{medium-type}%
@@ -720,7 +1247,7 @@
\newunit\newblock
\usebibmacro{names:subsidiary}%
\newunit\newblock
- \usebibmacro{location+publisher+date}%
+ \usebibmacro{location+publisher+fulldate}%
\newunit
\printfield{version}%
\setunit{\addspace}%
@@ -735,6 +1262,7 @@
\iftoggle{bbx:totalpages}
{\printfield{pagetotal}}
{}%
+ \newunit\newblock
\printfield{note}%
\newunit\newblock
\setunit{\bibpagerefpunct}\newblock
@@ -745,7 +1273,7 @@
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{names:primary}%
- \setunit{\labelnamepunct}\newblock
+ \setunit{\printdelim{nametitledelim}}\newblock
\usebibmacro{titles}{}{emph}%
\setunit{\addspace}%
\usebibmacro{medium-type}%
@@ -760,7 +1288,7 @@
\newunit\newblock
\iftoggle{bbx:thesisinfoinnotes}
{}
- {\printfield{type}
+ {\printfield{type}%
\newunit\newblock
\printlist{institution}%
\newunit\newblock
@@ -786,17 +1314,52 @@
\usebibmacro{pageref}%
\usebibmacro{finentry}}%
+\DeclareBibliographyDriver{report}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{names:primary}%
+ \setunit{\printdelim{nametitledelim}}\newblock
+ \usebibmacro{titles}{}{emph}%
+ \setunit{\addspace}%
+ \usebibmacro{medium-type}%
+ \newunit\newblock
+ \usebibmacro{location+publisher+fulldate}%
+ \newunit
+ \printfield{version}%
+ \setunit{\addspace}%
+ \usebibmacro{urldate}%
+ \newunit\newblock
+ \iffieldundef{type}
+ {}
+ {\printfield{type}%
+ \setunit*{\addcomma\space}}%
+ \printfield{number}%
+ \newunit\newblock
+ \printlist{institution}%
+ \newunit\newblock
+ \usebibmacro{identifier}%
+ \newunit\newblock
+ \usebibmacro{availability+access}%
+ \setunit{\addspace}%
+ \iftoggle{bbx:totalpages}
+ {\printfield{pagetotal}}
+ {}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \usebibmacro{finentry}}
+
\DeclareBibliographyDriver{patent}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{names:primary}%
- \setunit{\labelnamepunct}\newblock
+ \setunit{\printdelim{nametitledelim}}\newblock
\usebibmacro{titles}{}{emph}%
\newunit\newblock
\usebibmacro{names:subsidiary}%
\newunit\newblock
- \printfield{classification}%
- \newunit\newblock
\printlist{location}%
\newunit\newblock
\iffieldundef{type}
@@ -809,15 +1372,15 @@
\setunit{\addspace}%
\usebibmacro{urldate}%
\newunit\newblock
- \printfield{note}%
- \newunit\newblock
\usebibmacro{availability+access}%
\newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\usebibmacro{finentry}}%
-%bibliography aliases
+% BIBLIOGRAPHY ALIASES
\DeclareBibliographyAlias{bookinbook}{inbook}
\DeclareBibliographyAlias{suppbook}{inbook}
@@ -831,8 +1394,9 @@
\DeclareBibliographyAlias{inproceedings}{incollection}
\DeclareBibliographyAlias{reference}{collection}
\DeclareBibliographyAlias{inreference}{incollection}
-\DeclareBibliographyAlias{report}{thesis}
\DeclareBibliographyAlias{unpublished}{book}
+\DeclareBibliographyAlias{movie}{book}
+\DeclareBibliographyAlias{music}{book}
\DeclareBibliographyAlias{*}{misc}
\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/mybib.bib b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/mybib.bib
index f0115ff9b2..f87684085f 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/mybib.bib
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/mybib.bib
@@ -1,194 +1,415 @@
-% This file was created with JabRef 2.6.
-% Encoding: UTF8
-@ONLINE{t00,
- editor = {Bratková, Eva},
- editortype={compiler},
- title = {Metody citování literatury a strukturování bibliografických záznamů podle mezinárodních norem ISO 690 a ISO 690-2},
- subtitle = {metodický materiál pro autory vysokoškolských kvalifikačních prací}, edition = {Verze 2.0, aktualiz. a rozšíř.},
- location = {Praha},
- publisher = {Odborná komise pro otázky elektronického zpřístupňování vysokoškolských kvalifikačních prací, Asociace knihoven vysokých škol ČR},
- date = {2008-12-22},
- pagetotal = {60},
- url = {http://www.evskp.cz/SD/4c.pdf},
- urldate = {2011-02-02},
- langid={czech}
-}
-
-@BOOK{t01,
- author = {Borgman, Christine L.},
- year={2003},
- title = {From Gutenberg to the global information infrastructure},
- subtitle = {access to information in the networked world},
- edition= {1}, % should not be stated
- location = {Cambridge (Mass)},
+% Encoding: UTF-8
+
+@online{bratkova2008metody,
+ editor = {Bratková, Eva},
+ editortype = {compiler},
+ title = {Metody citování literatury a strukturování bibliografických záznamů podle mezinárodních norem ISO 690 a ISO 690-2},
+ subtitle = {metodický materiál pro autory vysokoškolských kvalifikačních prací},
+ edition = {Verze 2.0, aktualiz. a rozšíř.},
+ location = {Praha},
+ publisher = {Odborná komise pro otázky elektronického zpřístupňování vysokoškolských kvalifikačních prací, Asociace knihoven vysokých škol ČR},
+ date = {2008-12-22},
+ pagetotal = {60},
+ url = {http://www.evskp.cz/SD/4c.pdf},
+ urldate = {2011-02-02},
+ langid = {czech},
+}
+
+@book{borgman2003from,
+ author = {Borgman, Christine L.},
+ title = {From {Gutenberg} to the Global Information Infrastructure},
+ subtitle = {Access to Information in the Networked World},
+ location = {Cambridge (Mass.)},
publisher = {The MIT Press},
- pagetotal = {xviii, 324},
- isbn = {0-262-52345-0},
- langid={english}
-}
-
-@INCOLLECTION{t02,
- author = {Greenberg, David},
- year = {1998},
- title = {Camel drivers and gatecrashers},
- subtitle = {quality control in the digital research library},
- editor = {Hawkins, B.L and Battin, P},
- booktitle = {The mirage of continuity},
- booksubtitle = {reconfiguring academic information resources for the 21st century},
- location = {Washington (D.C.)},
- publisher = {Council on Library and Information Resources; Association of American Universities},
- pages = {105-116},
- langid = {english}
-}
-
-@ARTICLE{t03,
- author = {LYNCH, C.},
- year = {2005},
- title = {Where do we go from here?},
- subtitle = {the next decade for digital libraries},
- journaltitle = {DLib Magazine},
- volume = {11},
- number = {7/8},
- urldate ={2005-08-15},
- url = {http://www.dlib.org/dlib/july05/lynch/07lynch.html},
- issn = {1082-9873},
- langid = {english}
-}
-
-@ARTICLE{cr,
- author = {{Národní knihovna}},
- title = {A big paper},
+ date = {2003},
+ pagetotal = {xviii, 324},
+ isbn = {0-262-52345-0},
+ langid = {english},
+}
+
+@incollection{greenberg1998camel,
+ author = {Greenberg, Douglas},
+ title = {Camel Drivers and Gatecrashers},
+ subtitle = {Quality Control in the Digital Research Library},
+ editor = {Hawkins, Brian L. and Battin, Patricia},
+ booktitle = {The Mirage of Continuity},
+ booksubtitle = {Reconfiguring Academic Information Resources for the 21st Century},
+ date = {1998},
+ location = {Washington (D.C.)},
+ publisher = {Council on Library and Information Resources; Association of American Universities},
+ isbn = {1-887334-59-9},
+ pages = {105--116},
+ langid = {english},
+}
+
+@article{lynch2005where,
+ author = {Lynch, Clifford},
+ title = {Where Do We Go From Here?},
+ subtitle = {The Next Decade for Digital Libraries},
+ journaltitle = {D-Lib Magazine},
+ date = {2005},
+ volume = {11},
+ number = {7/8},
+ issn = {1082-9873},
+ doi = {10.1045/july2005-lynch},
+ url = {http://www.dlib.org/dlib/july05/lynch/07lynch.html},
+ urldate = {2005-08-15},
+ langid = {english},
+}
+
+% Made-up bib entry
+@article{cr,
+ author = {{Národní knihovna}},
+ title = {A big paper},
journaltitle = {The journal of big papers},
- year = {1991},
- volume = {12},
- number = {3},
- issn={2232-332X},
- langid={english}
+ date = {1991},
+ volume = {12},
+ number = {3},
+ issn = {0000-0000},
+ langid = {english},
}
-@BOOK{kniha,
- title = {A big paper},
- subtitle={Podtitul},
+% Made-up bib entry
+@book{kniha,
+ author = {Děťa, Hugh and Rychlík, Tomáš},
+ title = {A big paper},
+ subtitle = {Podtitul},
+ edition = {2},
+ series = {Pokusná edice},
+ location = {Praha},
publisher = {Academia},
- year = {1991},
- author = {Děťa, Hugh and Rychlík, Tomáš},
- edition = {2},
+ date = {1991},
pagetotal = {550},
+ isbn = {978-3-3670-4032-2},% made-up but valid isbn
+ url = {http://example.com},
+ urldate = {2011-01-12},
+ langid = {czech},
+}
+
+% Made-up bib entry
+@book{kniha2,
+ author = {Děťa, Hugh and Rychlík, Tomáš and Další, Pepa and Spousta, Pepa and Skoro, Moc and Ale, Nestačí and Hodně},
+ title = {Úplně úžasná knížka},
+ edition = {3},
location = {Praha},
- series={Pokusná edice},
- isbn={978-44-55-X},
- url={http://pokus.cz},
- comment={Dostupné také z WWW},
- urldate = {2011-01-12},
- langid={czech}
-}
-
-@BOOK{kniha2,
- title = {Úplně úžasná knížka},
- year = {1991},
- author = {Děťa, Hugh and Rychlík, Tomáš and Další, Pepa and Spousta, Pepa and Skoro, Moc and Ale, Nestačí and Hodně},
- edition = {3},
- address = {Praha},
- langid={czech}
-}
-
-@BOOK{kniha3,
- title = {Úplně úžasná knížka},
- year = {1991},
- author = {Děťa, Hugh and Rychlík, Tomáš and Další, Pepa and Spousta, Pepa and Skoro, Moc and Ale, Nestačí and Hodně},
- edition = {3},
- publisher={MIT Press},
- address = {Praha},
- pagetotal={332},
- langid={english}
-}
-
-@ARTICLE{small,
- author = {Freely, I.P.},
- title = {A small paper},
- subtitle = {Podtitulek},
+ date = {1991},
+ langid = {czech},
+}
+
+% Made-up bib entry
+@book{kniha3,
+ author = {Děťa, Hugh and Rychlík, Tomáš and Další, Pepa and Spousta, Pepa and Skoro, Moc and Ale, Nestačí and Hodně},
+ title = {Úplně úžasná knížka},
+ edition = {3},
+ location = {Praha},
+ publisher = {MIT Press},
+ date = {1991},
+ pagetotal = {332},
+ langid = {english},
+}
+
+% Made-up bib entry
+@article{small,
+ author = {Freely, I. P.},
+ title = {A small paper},
+ subtitle = {Podtitulek},
journaltitle = {The journal of small papers},
- year = {1997},
- volume = {1},
- note = {to appear},
- pages={2-5},
- number={3},
- langid={czech}
+ date = {1997},
+ volume = {1},
+ number = {3},
+ pages = {2--5},
+ note = {This is a note.},
+ langid = {czech},
}
-@ARTICLE{big,
- author = {Jass, Hugh},
- title = {A big paper},
- journal = {The journal of big papers},
- year = {1991},
- volume = {23}
+% Made-up bib entry
+@article{big,
+ author = {Jass, Hugh},
+ title = {A big paper},
+ journaltitle = {The journal of big papers},
+ date = {1991},
+ volume = {23},
}
-@ARTICLE{cs,
+% Made-up bib entry
+@article{cs,
COMMENT_OUTauthor = {Černý, Hugh},
- title = {Titulek},
- journal = {The journal of big papers},
- year = {1991},
- volume = {12},
- pages = {22-44},
- doi = {10.112.22/jkn},
- number = {2},
-}
-
-@BOOK{koll,
- author = {Kollmannová, Ludmila and Bubeníková, Libuše and Kopecká, Alena},
- title = {Angličtina pro samouky},
- edition = {5},
- location = {Praha},
- publisher = {Státní pedagogické nakladatelství},
- year = {1977},
+ title = {Titulek},
+ journaltitle = {The journal of big papers},
+ date = {1991},
+ volume = {12},
+ number = {2},
+ pages = {22--44},
+ doi = {10.1000/182},
+}
+
+@book{kollmann1991anglictina,
+ author = {Kollmannová, Ludmila and Bubeníková, Libuše and Kopecká, Alena},
+ title = {Angličtina pro samouky},
+ edition = {5},
+ location = {Praha},
+ publisher = {Státní pedagogické nakladatelství},
+ date = {1991},
pagetotal = {525},
- series = {Učebnice pro samouky},
- number = {4},
- isbn = {80-04-25663-5}
+ series = {Učebnice pro samouky},
+ number = {4},
+ isbn = {80-04-25663-5},
+ langid = {czech},
}
-@INBOOK{kap,
- author = {Novotná, Pepina},
- title = {Podkapitola},
- pages = {22-29},
- chapter = {2.},
- crossref = {koll}
+% Made-up bib entry
+@inbook{novotna1991podkapitola,
+ author = {Novotná, Pepina},
+ title = {Podkapitola},
+ pages = {22--29},
+ chapter = {2},
+ crossref = {kollmann1991anglictina},
}
-@PERIODICAL{tug,
+@periodical{tugboat1980,
journaltitle = {TUGBoat},
- publisher = {TUG},
- issn = {1222-3333},
- langid = {english},
- date = {1980/},
- options = {skipbib=true},
- url={http://tugboat.tug.org/}
-}
-
-@ARTICLE{knuth,
- author = {Knuth, Donald},
- title = {Journeys of \TeX},
- volume = {17},
- number = {3},
- year = {2003},
- pages = {12-22},
- url = {http://tugboat.tug.org/kkk.pdf},
- crossref={tug}
-}
-
-@COLLECTION{sbornik,
-title = {Mimořádně užitečný sborník},
-editor = {Geniální, Jiří},
-year = {2007},
-langid = {czech},
-location = {Praha},
-publisher = {Academia},
-isbn = {978-222-626-222-2}
-}
-@INCOLLECTION{prispevek1,
-crossref = {sbornik},
-title = {Velmi zajímavý článek},
-author = {Vlaštovka, Josef},
-pages = {22-45}
+ publisher = {TUG},
+ date = {1980/},
+ issn = {0896-3207},
+ url = {http://tugboat.tug.org/TUGboat},
+ langid = {english},
+ options = {skipbib=true},
+}
+
+@article{knuth1990virtual,
+ author = {Knuth, Donald},
+ title = {Virtual Fonts: More Fun for Grand Wizards},
+ date = {1990-04},
+ volume = {11},
+ number = {1},
+ pages = {13--23},
+ url = {http://tugboat.tug.org/TUGboat/tb11-1/tb27knut.pdf},
+ crossref = {tugboat1980},
+}
+
+% Made-up bib entry
+@collection{sbornik2007,
+ title = {Mimořádně užitečný sborník},
+ editor = {Geniální, Jiří},
+ location = {Praha},
+ publisher = {Academia},
+ date = {2007},
+ isbn = {978-3-4947-0284-1},% made-up but valid isbn
+ langid = {czech},
+}
+
+% Made-up bib entry
+@incollection{sbornik2007clanek,
+ author = {Vlaštovka, Josef},
+ title = {Velmi zajímavý článek},
+ pages = {22--45},
+ crossref = {sbornik2007},
+}
+
+@thesis{luptak2016thesis,
+ author = {Lupták, Dávid},
+ title = {Typesetting of Bibliography According to ISO 690 Norm},
+ date = {2016},
+ type = {bathesis},
+ institution = {Masaryk University, Faculty of Informatics},
+ location = {Brno},
+ supervisor = {Petr Sojka},
+ url = {https://is.muni.cz/th/422640/fi_b/},
+}
+
+% @phdthesis is an alias for @thesis with the default type = {phdthesis}
+@phdthesis{hanthe2001micro,
+ author = {\foreignlanguage{vietnamese}{Hàn Thế}, \foreignlanguage{vietnamese}{Thành}},
+ title = {Micro-typographic extensions to the \TeX{} typesetting system},
+ date = {2001},
+ institution = {Masaryk University, Faculty of Informatics},
+ location = {Brno},
+ url = {http://www.pragma-ade.nl/pdftex/thesis.pdf},
+ langid = {english},
}
+
+@patent{groll2008method,
+ author = {Clad Metals LLC Canonsburg, PA 15317 (US)},
+ title = {Method of making a copper core five-ply composite and cooking vessel},
+ editora = {Groll, W. A.},
+ editoratype = {inventor},
+ publisher = {Google Patents},
+ number = {EP 1 094 937 B1},
+ type = {patenteu},
+ date = {2008-07-30},
+ url = {https://patents.google.com/patent/EP1094937B1},
+}
+
+% Made-up bib entry
+% No date example
+@book{applebyND,
+ author = {Humphrey Appleby},
+ title = {On the Importance of the Civil Service},
+ note = {A book with no date},
+}
+
+% Made-up bib entry
+% Circa date example
+@book{appleby1490circa,
+ author = {Humphrey Appleby},
+ title = {On the Importance of the Higher Civil Service},
+ date = {1490~},
+ note = {A book with an approximate date},
+}
+
+% Made-up bib entry
+% Open ended circa date range example
+@periodical{appleby1452yet,
+ editor = {Humphrey Appleby and others},
+ title = {Thinking and Writing},
+ date = {1452~/},
+ note = {A periodical with an open ended date range},
+}
+
+% Made-up bib entry
+% Copyright date example
+@book{appleby2000copyright,
+ author = {Humphrey Appleby},
+ title = {What Is a Copyright?},
+ date = {2000},
+ dateaddon = {\addcomma\space\textcopyright\addnbthinspace 2001},
+ % sortyear = {2001},% modify the date sorting if needed (no 'date' field)
+ note = {A book with a copyright date},
+}
+
+% Made-up bib entry
+% Corrected date example
+@book{appleby1959corrected,
+ author = {Humphrey Appleby},
+ title = {How to supply a correct date},
+ date = {1959},
+ dateaddon = {\mkbibbrackets{i.e. 1995}},
+ note = {A book with a corrected date},
+}
+
+% Multiple ISSNs example
+@article{dewachter2006macro,
+ author = {Hans Dewachter and Marco Lyrio},
+ title = {Macro Factors and the Term Structure of Interest Rates},
+ journal = {Journal of Money, Credit and Banking},
+ publisher = {Ohio State University Press},
+ date = {2006},
+ volume = {38},
+ number = {1},
+ pages = {119--140},
+ issn = {0022-2879, 1538-4616},% ISSN (ISSN-L), e-ISSN
+ url = {http://www.jstor.org/stable/3839071},
+ urldate = {2020-01-20},
+}
+
+% Report type example
+@report{chapman1958approximate,
+ author = {Chapman, Dean R.},
+ title = {An Approximate Analytical Method for Studying Entry into Planetary Atmospheres},
+ date = {1958-05-01},
+ type = {\autocap{t}echnical note},
+ number = {NACA TN 4276},
+ institution = {National Advisory Committee for Aeronautics},
+ location = {Washington},
+ pagetotal = {103},
+ url = {http://hdl.handle.net/2060/19930085059},
+}
+
+% Movie type example #1
+% Movie is a co-operative work ==> title first (in place of creator)
+@movie{macbeth1948welles,
+ title = {Macbeth},
+ howpublished = {film},
+ editor = {Welles, Orson},
+ editortype = {director},
+ date = {1948},
+ location = {United States},
+ publisher = {Republic Pictures},
+ isan = {0000-0000-3B1A-0000-2-0000-0000-V},
+ options = {useeditor=false},% title first
+}
+
+% Movie type exaple #2
+% Someone has a dominant role (e.g. clearly responsible for the intellectual
+% content) ==> given as the creator at the first place
+@movie{vlacil1967marketa,
+ author = {Vláčil, František},
+ authortype = {director},
+ title = {Marketa Lazarová},
+ howpublished = {film},
+ date = {1967-11-24},
+ location = {Praha},
+ publisher = {Filmové studio Barrandov},
+ isan = {0000-0000-82AA-0000-1-0000-0000-Y},
+ langid = {czech},
+}
+
+% Music type example
+@music{britten1980eight,
+ author = {Britten, Benjamin},
+ title = {Eight folk song arrangements for high voice and harp},
+ editor = {Ellis, Osian},
+ date = {1980},
+ location = {London},
+ publisher = {Faber Music},
+}
+
+% Music type example
+% More editor types
+@music{pacini1832corsaro,
+ author = {Pacini, Giovanni},
+ title = {Il corsaro},
+ editor = {Ferretti, Jacopo},
+ editortype = {\autocap{l}ibretto by},
+ % editortype = {\autocap{l}ibrettist},% alternative
+ editora = {Byron, Lord},
+ editoratype = {\autocap{b}ased on the novel by},
+ % editoratype = {\autocap{n}ovelist},% alternative
+ date = {1832},
+ location = {Milan},
+ publisher = {G. Ricordi},
+}
+
+% Nameaddon example
+% Titleaddon example
+% Origlanguage example
+@book{gorki1955artamonovs,
+ author = {Maxim Gorki},
+ nameaddon = {Gorky},
+ title = {The Artamonovs},
+ titleaddon = {Delo Artamonovykh},
+ translator = {Alec Brown},
+ origlanguage = {russian},
+ date = {1955},
+ location = {London},
+ publisher = {Folio Society},
+ pagetotal = {281},
+}
+
+% Graphic work example
+% Specific location (library field) example
+% Howpublished literal string example
+@misc{gosse1912garden,
+ author = {Gosse, Sylvia},
+ title = {The Garden, Rowlandson House},
+ howpublished = {etching and aquatint},
+ date = {1912},
+ library = {London\subtitlepunct British Museum, Department of Prints and Drawings},
+ note = {Register number 1915-27-41},
+}
+
+% ArXiv preprint example
+@online{maldacena1997large,
+ author = {Juan M. Maldacena},
+ title = {The Large N Limit of Superconformal Field Theories and Supergravity},
+ date = {1998-01-22},
+ version = {3},
+ eprint = {hep-th/9711200},
+ eprinttype = {arXiv},
+ urldate = {2020-03-25},
+}
+
+% Made-up ISBNs generated by https://generate.plus/en/number/isbn
+
+% biber --tool --validate-datamodel --tool-fieldcase=lower --output-align mybib.bib
+% + sort fields in the meaningful order
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/polish-iso.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/polish-iso.lbx
index 9384b047ae..b3b7f148da 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/polish-iso.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/polish-iso.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{polish-iso.lbx}
-[2016/05/13 v0.3.1 biblatex localization]
+ [2020/03/25 v0.4.0 ISO 690 extended biblatex localization]
\InheritBibliographyExtras{polish}
\InheritBibliographyStrings{polish}
@@ -13,6 +13,18 @@
{dostępne z}},
urlalso = {{dostępne także z}%
{dostępne także z}},
+% director = {{}%
+% {}},% FIXME: missing
+% bydirector = {{}%
+% {}},% FIXME: missing
+% inventor = {{}%
+% {}},% FIXME: missing
+% byinventor = {{}%
+% {}},% FIXME: missing
+% online = {{}%
+% {}},% FIXME: missing
+% film = {{}%
+% {}},% FIXME: missing
}
\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/slovak-iso.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/slovak-iso.lbx
index 313a4245b6..8bd4e4b096 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/slovak-iso.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/slovak-iso.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{slovak-iso.lbx}
-[2017/04/25 v0.3.2 biblatex localization]
+ [2020/03/25 v0.4.0 ISO 690 extended biblatex localization]
\InheritBibliographyExtras{slovak}
\InheritBibliographyStrings{slovak}
@@ -9,8 +9,20 @@
{v}},
bysupervisor = {{ved\'{u}ci pr\'{a}ce}%
{ved\'{u}ci pr\'{a}ce}},
- urlalso = {{dostupn\'{e} tie\v{z} z}%
- {dostupn\'{e} tie\v{z} z}},
+ urlalso = {{dostupn\'{e} tie\v{z} z}%
+ {dostupn\'{e} tie\v{z} z}},
+ director = {{re\v{z}is\'{e}r}%
+ {re\v{z}is\'{e}r}},
+ bydirector = {{r\'{e}\v{z}ia}%
+ {r\'{e}\v{z}ia}},
+ inventor = {{vyn\'{a}lezca}%
+ {vyn\'{a}lezca}},
+ byinventor = {{vyn\'{a}lezca\addcolon}%
+ {vyn\'{a}lezca\addcolon}},% FIXME: unsure
+ online = {{online}%
+ {online}},
+ film = {{film}%
+ {film}},
}
\endinput
diff --git a/macros/latex/contrib/l3build/CHANGELOG.md b/macros/latex/contrib/l3build/CHANGELOG.md
index c7dfda8d22..67509493f3 100644
--- a/macros/latex/contrib/l3build/CHANGELOG.md
+++ b/macros/latex/contrib/l3build/CHANGELOG.md
@@ -7,6 +7,12 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2020-03-25]
+
+### Changed
+- Exclude `sourcefiles` entries from file clean-up
+- Adjust defaults for TeX Live 2020 LuaHBTeX usage
+
## [2020-03-16]
### Changed
@@ -460,7 +466,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/2020-03-16...HEAD
+[Unreleased]: https://github.com/latex3/l3build/compare/2020-03-25...HEAD
+[2020-03-25]: https://github.com/latex3/l3build/compare/2020-03-16...2020-03-25
[2020-03-16]: https://github.com/latex3/l3build/compare/2020-03-13...2020-03-16
[2020-03-13]: https://github.com/latex3/l3build/compare/2020-03-12...2020-03-13
[2020-03-12]: https://github.com/latex3/l3build/compare/2020-02-21...2020-03-12
diff --git a/macros/latex/contrib/l3build/README.md b/macros/latex/contrib/l3build/README.md
index 49635e3d94..b721010c22 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 2020-03-16
+Release 2020-03-25
Overview
--------
diff --git a/macros/latex/contrib/l3build/l3build-clean.lua b/macros/latex/contrib/l3build/l3build-clean.lua
index 01927a71d0..27ed42be9c 100644
--- a/macros/latex/contrib/l3build/l3build-clean.lua
+++ b/macros/latex/contrib/l3build/l3build-clean.lua
@@ -1,6 +1,6 @@
--[[
-File l3build-clean.lua Copyright (C) 2018 The LaTeX3 Project
+File l3build-clean.lua Copyright (C) 2018,2020 The LaTeX3 Project
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -34,12 +34,28 @@ function clean()
cleandir(testdir) +
cleandir(typesetdir) +
cleandir(unpackdir)
- for _,i in ipairs(cleanfiles) do
- for _,dir in pairs(remove_duplicates({maindir, sourcefiledir, docfiledir})) do
- errorlevel = rm(dir, i) + errorlevel
+
+ if errorlevel ~= 0 then return errorlevel end
+
+ local clean_list = { }
+ for _,dir in pairs(remove_duplicates({maindir,sourcefiledir,docfiledir})) do
+ for _,glob in pairs(cleanfiles) do
+ for file,_ in pairs(tree(dir,glob)) do
+ clean_list[file] = true
+ end
+ end
+ for _,glob in pairs(sourcefiles) do
+ for file,_ in pairs(tree(dir,glob)) do
+ clean_list[file] = nil
+ end
+ end
+ for file,_ in pairs(clean_list) do
+ errorlevel = rm(dir,file)
+ if errorlevel ~= 0 then return errorlevel end
end
end
- return errorlevel
+
+ return 0
end
function bundleclean()
diff --git a/macros/latex/contrib/l3build/l3build-file-functions.lua b/macros/latex/contrib/l3build/l3build-file-functions.lua
index 6c420f80a2..7d13fc933e 100644
--- a/macros/latex/contrib/l3build/l3build-file-functions.lua
+++ b/macros/latex/contrib/l3build/l3build-file-functions.lua
@@ -241,7 +241,7 @@ function direxists(dir)
errorlevel =
execute("if not exist \"" .. unix_to_win(dir) .. "\" exit 1")
else
- errorlevel = execute("[ -d " .. dir .. " ]")
+ errorlevel = execute("[ -d '" .. dir .. "' ]")
end
if errorlevel ~= 0 then
return false
diff --git a/macros/latex/contrib/l3build/l3build-variables.lua b/macros/latex/contrib/l3build/l3build-variables.lua
index dcb2521869..432bfe6b15 100644
--- a/macros/latex/contrib/l3build/l3build-variables.lua
+++ b/macros/latex/contrib/l3build/l3build-variables.lua
@@ -128,6 +128,13 @@ specialformats.latex = specialformats.latex or {
ptex = {binary = "eptex"},
uptex = {binary = "euptex"}
}
+if not string.find(status.banner,"2019") then
+ specialformats.latex.luatex = specialformats.latex.luatex or
+ {binary = "luahbtex",format = "lualatex"}
+ specialformats["latex-dev"] = specialformats["latex-dev"] or
+ {luatex = {binary="luahbtex",format = "lualatex-dev"}}
+end
+
stdengine = stdengine or "pdftex"
-- The tests themselves
diff --git a/macros/latex/contrib/l3build/l3build.1 b/macros/latex/contrib/l3build/l3build.1
index 7271ec549d..776d9e9ede 100644
--- a/macros/latex/contrib/l3build/l3build.1
+++ b/macros/latex/contrib/l3build/l3build.1
@@ -1,4 +1,4 @@
-.TH l3build 1 "2020-03-16"
+.TH l3build 1 "2020-03-25"
.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 a8d812d6d9..a513e3e6c5 100644
--- a/macros/latex/contrib/l3build/l3build.dtx
+++ b/macros/latex/contrib/l3build/l3build.dtx
@@ -234,7 +234,7 @@
% }^^A
% }
%
-% \date{Released 2020-03-16}
+% \date{Released 2020-03-25}
%
% \maketitle
% \tableofcontents
diff --git a/macros/latex/contrib/l3build/l3build.lua b/macros/latex/contrib/l3build/l3build.lua
index 63eed70306..083b6b81ba 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 = "2020-03-16"
+release_date = "2020-03-25"
-- 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 ea6b310b2f..a3ee41c426 100644
--- a/macros/latex/contrib/l3build/l3build.pdf
+++ b/macros/latex/contrib/l3build/l3build.pdf
Binary files differ
diff --git a/macros/latex/contrib/listings/Makefile b/macros/latex/contrib/listings/Makefile
index 5792254ad4..49750393d3 100644
--- a/macros/latex/contrib/listings/Makefile
+++ b/macros/latex/contrib/listings/Makefile
@@ -36,9 +36,10 @@ DISTRIBUTION_FILES = ../$(PACKAGE)/$(PACKAGE).pdf \
../$(PACKAGE)/README \
../$(PACKAGE)/Makefile \
../$(PACKAGE)/lstdrvrs.dtx \
- ../$(PACKAGE)/lstdrvrs.ins \
../$(PACKAGE)/lstdrvrs.pdf
PACKAGE_FILES = $(subst ../$(PACKAGE)/,,$(DISTRIBUTION_FILES))
+STY_FILES = listings.cfg listings.sty lstmisc.sty \
+ lstlang0.sty lstlang1.sty lstlang2.sty
.SUFFIXES: # Delete the default suffixes
.SUFFIXES: .dtx .ins .pdf .sty # Define our own suffix list
diff --git a/macros/latex/contrib/listings/README b/macros/latex/contrib/listings/README
index a6f0849c16..5c4a4f0628 100644
--- a/macros/latex/contrib/listings/README
+++ b/macros/latex/contrib/listings/README
@@ -3,7 +3,7 @@ Listings package
Copyright 1996--2004 Carsten Heinz (the package)
Copyright 1996--2007 individual authors (language drivers)
Copyright 2006--2007 Brooks Moses (continued maintenance)
-Copyright 2013--2019 Jobst Hoffmann (continued maintenance)
+Copyright 2013--2020 Jobst Hoffmann (continued maintenance)
Released under the LaTeX Project Public License 1.3c or later
diff --git a/macros/latex/contrib/listings/listings-devel.pdf b/macros/latex/contrib/listings/listings-devel.pdf
index 72c41df9a6..bece208f87 100644
--- a/macros/latex/contrib/listings/listings-devel.pdf
+++ b/macros/latex/contrib/listings/listings-devel.pdf
Binary files differ
diff --git a/macros/latex/contrib/listings/listings.dtx b/macros/latex/contrib/listings/listings.dtx
index c63ef2ffab..1874a17849 100644
--- a/macros/latex/contrib/listings/listings.dtx
+++ b/macros/latex/contrib/listings/listings.dtx
@@ -22,7 +22,7 @@
%
% The listings package and its drivers 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.
+% 1.3c of this license or (at your option) any later version.
% The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions of LaTeX
@@ -96,8 +96,8 @@
%\lstisaspect[kernel]{basewidth,fontadjust,columns,flexiblecolumns,identifierstyle,^^A
% tabsize,showtabs,tab,showspaces,keepspaces,formfeed,SelectCharTable,^^A
% MoreSelectCharTable,extendedchars,alsoletter,alsodigit,alsoother,excludedelims,^^A
-% literate,basicstyle,print,firstline,lastline,linerange,nolol,captionpos,^^A
-% abovecaptionskip,^^A
+% literate,basicstyle,print,firstline,lastline,linerange,^^A
+% consecutivenumbers,nolol,captionpos,abovecaptionskip,^^A
% belowcaptionskip,label,title,caption,\string\lstlistingname,^^A
% \string\lstlistingnamestyle,boxpos,float,^^A
% floatplacement,aboveskip,belowskip,everydisplay,showlines,emptylines,gobble,name,^^A
@@ -133,7 +133,7 @@
% Hoffmann became the maintainer of the \packagename{listings}
% package in 2013; see the Preface for details.}~ %
% \textless\lstemail\textgreater}
-% \date{2019/09/10\enspace\enspace Version 1.8c\ \box\abstractbox}
+% \date{2020/03/24\enspace\enspace Version 1.8d\ \box\abstractbox}
% \def\lstemail{\href{mailto:j.hoffmann@fh-aachen.de}{\texttt{j.hoffmann(at)fh-aachen.de}}}
% \ifhyper
% \hypersetup{pdftitle=The Listings Package,
@@ -727,7 +727,7 @@
% \paragraph{Distribution and modification}
% The \packagename{listings} package and its drivers 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.
+% either version 1.3c of this license or (at your option) any later version.
% The latest version of this license is in
% \href{http://www.latex-project.org/lppl.txt}{http://www.latex-project.org/lppl.txt}
% and version 1.3c or later is part of all distributions of LaTeX version
@@ -1106,6 +1106,58 @@
% \end{lstsample}
% The next |Test| listing goes on with line number {\makeatletter\lstno@Test},
% no matter whether there are other listings in between.
+%
+% You can also select the lines to be printed, the options
+% `\ikeyname{linerange}' and `\ikeyname{consecutivenumbers}' are your
+% friend. In a presentation for example you don't need comments for your
+% programs, so you prefer the line numbers being consecutively numbered,
+% but the results should reflect the behaviour of the program---you omit
+% parts of the lengthy output. So
+% you may have the following program and its results.
+% \begin{lstsample}[name]{\lstset{numbers=left,numberstyle=\tiny,stepnumber=1,numbersep=5pt}}{}
+% \begin{lstlisting}[name=Test,
+% language={[ansi]C},
+% linerange={1-4,6-7,10-14,
+% 17-19,21-22},
+% firstnumber=1]
+% #include <stdio.h>
+% #include <stdlib.h>
+%
+% int main(int argc,char* argv[]){
+% /* declaring variables */
+% int i;
+% int limit;
+%
+% /* checking arguments */
+% if ( argc > 1 ) {
+% limit = atoi(argv[1]);
+% } else {
+% limit = 100;
+% }
+%
+% /* counting lines */
+% for (i = 1;i <= limit;i++) {
+% printf("Line no. %3.0d\n", i);
+% }
+%
+% return 0;
+% }
+%
+% \end{lstlisting}
+% And these are the results:
+% \begin{lstlisting}[language={},
+% linerange={1-2,6-7},
+% consecutivenumbers=false]
+% Line no. 1
+% Line no. 2
+% Line no. 3
+% Line no. 4
+% Line no. 5
+% Line no. 6
+% Line no. 7
+% \end{lstlisting}
+% \end{lstsample}
+%
% \begin{advise}
% \item Okay. And how can I get decreasing line numbers?
% \advisespace
@@ -2294,6 +2346,16 @@
% listing are displayed. The intervals must be sorted and must not
% intersect.
%
+% \item[1.8, true]
+% \rkeyname{consecutivenumbers}|=|\meta{\alternative{true,false}}^^A
+% \syntaxor\rkeyname{consecutivenumbers}\label{uoption:consecutivenumbers}
+%
+% can be used on individual listings only. Its use makes sense only if
+% also \rkeyname{linerange} is used. The default (true) value means that
+% the line numbering for \emph{all} lineranges happens to be consecutively,
+% e\,g. 1, 2, 3,\ldots. If it is set to false, different ranges get
+% their own numbering (see sec. \ref{uLineNumbers}).
+%
% \item[0.20,false]
% \rkeyname{showlines}|=|\meta{\alternative{true,false}}\syntaxor\rkeyname{showlines}
%
@@ -2640,7 +2702,7 @@
% the number corresponding to the first input line.
%
% \texttt{last} continues the numbering of the most recent listing and
-% \meta{number} sets it to the number.
+% \meta{number} sets it to the (logical) number.
%
% \item[1.0] \rkeyname{name}|=|\meta{name}
%
@@ -3984,6 +4046,10 @@
% \item[1.2,true] \rkeyname{includerangemarker}|=|\meta{\alternative{true,false}}
%
% shows or hides the markers in the output.
+%
+% \textbf{Remark:} If |firstnumber| is set, it refers to
+% the line which contains the marker. So if one wants to start a range with
+% the number 1, one has to set |includerangemarker=false, firstnumber=0|.
% \end{syntax}
% \begin{lstsample}{\lstset{rangeprefix=\{\ ,rangesuffix=\ \}}}{}
% \begin{lstlisting}%
@@ -4357,7 +4423,7 @@
% \end{advise}
% First of all, you'll need Metafont source files for bold typewriter, e.g.~
% \texttt{cmbtt8.mf}, \texttt{cmbtt9.mf} and \texttt{cmbtt10.mf} from
-% \href{ftp://ftp.dante.de/tex-archive/fonts/cm/mf-extra/bold}
+% \href{http://mirror.ctan.org/fonts/cm/mf-extra/bold}
% {CTAN/fonts/cm/mf-extra/bold}.
% Secondly you have to create \texttt{.tfm}-files, i.e.~run the Metafont
% program on these sources. This is possibly done automatically when you use
@@ -5843,7 +5909,7 @@
% \part{Implementation}
%
%
-% \CheckSum{12380}
+% \CheckSum{12394}
%^^A
%^^A Don't index TeX-primitives.
%^^A
@@ -5987,8 +6053,8 @@
% All files will have same date and version.
% \begin{macrocode}
%<*kernel|misc|doc>
-\def\filedate{2019/09/10}
-\def\fileversion{1.8c}
+\def\filedate{2020/03/24}
+\def\fileversion{1.8d}
%</kernel|misc|doc>
% \end{macrocode}
% What we need and who we are.
@@ -8775,7 +8841,15 @@
\lst@ProcessOther {"27}{\lst@ifupquote \textquotesingle
\else \char39\relax \fi}
\lst@ProcessOther {"2A}{\lst@ttfamily*\textasteriskcentered}
- \lst@ProcessOther {"2D}{\lst@ttfamily{-{}}{$-$}}
+% \end{macrocode}
+% \lsthelper{Ulrike~Fischer}{2020/02/19}{Inkompabilität von breqn/flexisym
+% mit listings} pointed out the incompatibility between
+% \packagename{flexisym} and \packagename{listings}: \packagename{flexisym}
+% changes the math code while \packagename{listings} changes the
+% meaning. So the minus character vanishes. Replacing the original |$-$| by
+% |\textminus| should remedy the problem.
+% \begin{macrocode}
+ \lst@ProcessOther {"2D}{\lst@ttfamily{-{}}{\textminus}}
\lst@ProcessOther {"3C}{\lst@ttfamily<\textless}
\lst@ProcessOther {"3E}{\lst@ttfamily>\textgreater}
\lst@ProcessOther {"5C}{\lst@ttfamily{\char92}\textbackslash}
@@ -13638,6 +13712,7 @@
% line ranges with numbers and range markers. It uses some more keys:
%
% \begin{lstkey}{linerange}
+% \begin{lstkey}{consecutivenumbers}
% \begin{lstkey}{rangeprefix}
% \begin{lstkey}{rangesuffix}
% \begin{lstkey}{rangebeginprefix}
@@ -13649,6 +13724,9 @@
% \begin{macrocode}
\lst@Key{linerange}\relax{\lstKV@OptArg[]{#1}{%
\def\lst@interrange{##1}\def\lst@linerange{##2,}}}
+% \end{macrocode}
+%
+% \begin{macrocode}
\lst@Key{rangeprefix}\relax{\def\lst@rangebeginprefix{#1}%
\def\lst@rangeendprefix{#1}}
\lst@Key{rangesuffix}\relax{\def\lst@rangebeginsuffix{#1}%
@@ -13727,7 +13805,7 @@
% \end{macrocode}
% \end{lstkey}\end{lstkey}\end{lstkey}
% \end{lstkey}\end{lstkey}\end{lstkey}
-% \end{lstkey}\end{lstkey}
+% \end{lstkey}\end{lstkey}\end{lstkey}
%
% Actually defining the marker (via |\lst@GLI@|, |\lst@DefRange|,
% |\lst@CArgX| as seen above) is similar to |\lst@DefDelimB|---except that
@@ -14738,7 +14816,9 @@
% package, which is part of |doc.dtx| from the Standard \LaTeX\ documentation
% package, version 2006/02/02 v2.1d. Portions of it are thus copyright
% 1993--2006 by The \LaTeX3 Project and copyright 1989--1999 by Frank
-% Mittelbach.
+% Mittelbach. \lsthelper{Denis~Bitouz\'e}{2020/03/21}
+% {Typos in error messages} used the Corona crisis to have look at the
+% error messages and found some typos.
%
% \begin{macro}{\lstMakeShortInline}
% \begin{macro}{\lstMakeShortInline@}
@@ -15023,11 +15103,21 @@
% We just look whether to drop more lines or to leave the mode which restores
% the definition of chr(13) and chr(10).
% \begin{macrocode}
+ \lst@Key{consecutivenumbers}{true}[t]{\lstKV@SetIf{#1}\lst@ifconsecutivenumbers}
+ \def\lst@DisplayConsecutiveNumbersOrNot{%
+ \lst@ifconsecutivenumbers\typeout{consecutive:}\else%
+ \typeout{non-consecutive:}
+ \c@lstnumber=\numexpr-1+\lst@lineno %\relax % this enforces the
+ %displayed line numbers to always be the
+ %input line numbers
+ \fi%
+}
\def\lst@MSkipToFirst{%
\global\advance\lst@lineno\@ne
\ifnum \lst@lineno=\lst@firstline
\lst@LeaveMode \global\lst@newlines\z@
\lsthk@InitVarsBOL
+ \lst@DisplayConsecutiveNumbersOrNot
\expandafter\lst@BOLGobble
\fi}
% \end{macrocode}
@@ -15335,9 +15425,13 @@
% \lsthelper{Karl~Berry}{2018/10/26}{listings 1.7 \rcmdname\leavevmode -> blank line} and
% \lsthelper{Sven~Schreiber}{2018/10/23}{Geändertes Verhalten in der neuen listings-Version} reported
% independently, so the proposed code goes into the second part of the
-% environment definition
+% environment definition. \lsthelper{Enrico Gregorio}{2019/05/04}{Is it a
+% listings package bug?} answered on
+% \url{https://tex.stackexchange.com/questions/489121/is-it-a-listings-package-bug}
+% that the previous solution |\let\if@nobreak\iffalse| is wrong because it
+% is a local assignment, but a globally setting is needed.
% \begin{macrocode}
- \let\if@nobreak\iffalse%
+ \@nobreakfalse
\csname\@lst @SaveFirstNumber\endcsname%
}
% \end{macrocode}
diff --git a/macros/latex/contrib/listings/listings.pdf b/macros/latex/contrib/listings/listings.pdf
index 0a6b5f5fb3..4d827f4980 100644
--- a/macros/latex/contrib/listings/listings.pdf
+++ b/macros/latex/contrib/listings/listings.pdf
Binary files differ
diff --git a/macros/latex/contrib/listings/lstdrvrs.dtx b/macros/latex/contrib/listings/lstdrvrs.dtx
index 69c0af8b85..f710ef02ae 100644
--- a/macros/latex/contrib/listings/lstdrvrs.dtx
+++ b/macros/latex/contrib/listings/lstdrvrs.dtx
@@ -33,7 +33,7 @@
% \title{Language, Style and Format drivers\\ for \textsf{Listings}\\
% {\large by Carsten Heinz and individual authors:}}
% \author{\InputIfFileExists{lstdrvrs.tmp}{}{}}
-% \date{2019/09/10\enspace\enspace Version 1.8c\ \box\abstractbox}
+% \date{2020/03/24\enspace\enspace Version 1.8d\ \box\abstractbox}
%
% \ifhyper
% \hypersetup{pdftitle={Language, Style and Format drivers for the
@@ -137,7 +137,7 @@
% \endgroup
% We mainly define default dialects.
% \begin{macrocode}
-\ProvidesFile{listings.cfg}[2019/09/10 1.8c listings configuration]
+\ProvidesFile{listings.cfg}[2020/03/24 1.8d listings configuration]
\def\lstlanguagefiles
{lstlang0.sty,lstlang1.sty,lstlang2.sty,lstlang3.sty}
\lstset{defaultdialect=[R/3 6.10]ABAP,
@@ -184,7 +184,7 @@
%<+hansl-prf>\ProvidesFile{listings-hansl.prf}
%<+lua-prf>\ProvidesFile{listings-lua.prf}
%<+python-prf>\ProvidesFile{listings-python.prf}
-%<-config> [2019/09/10 1.8c listings language file]
+%<-config> [2020/03/24 1.8d listings language file]
% \end{macrocode}
%
%
diff --git a/macros/latex/contrib/listings/lstdrvrs.pdf b/macros/latex/contrib/listings/lstdrvrs.pdf
index 9abb3a1d00..baac9f4b03 100644
--- a/macros/latex/contrib/listings/lstdrvrs.pdf
+++ b/macros/latex/contrib/listings/lstdrvrs.pdf
Binary files differ
diff --git a/macros/latex/contrib/lwarp/README.txt b/macros/latex/contrib/lwarp/README.txt
index c18fff0ffe..c268cd3712 100644
--- a/macros/latex/contrib/lwarp/README.txt
+++ b/macros/latex/contrib/lwarp/README.txt
@@ -1,5 +1,5 @@
-LaTeX lwarp package v0.81 README.txt
+LaTeX lwarp package v0.82 README.txt
Files included are:
diff --git a/macros/latex/contrib/lwarp/lwarp.dtx b/macros/latex/contrib/lwarp/lwarp.dtx
index d0f16200b9..a4c164964e 100644
--- a/macros/latex/contrib/lwarp/lwarp.dtx
+++ b/macros/latex/contrib/lwarp/lwarp.dtx
@@ -16,7 +16,7 @@
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package>\ProvidesPackage{lwarp}
-%<package> [2020/03/04 v0.81 Allows LaTeX to directly produce HTML5 output.]
+%<package> [2020/03/25 v0.82 Allows LaTeX to directly produce HTML5 output.]
%
%<*driver>
\documentclass{ltxdoc}
@@ -778,6 +778,10 @@ if \texttt{FileDepth} allows:
\cs{ForceHTMLPage} \\
\cs{theendnotes}
\end{sourcedisplay}
+
+If using \brand{MathJax}, see \cref{sec:limitsfootnotes}
+\watchout[\cs{endnotemark}]\margintag{numbering}
+regarding the use of \cs{endnotemark} and \cs{endnotetext}.
}
@@ -913,6 +917,31 @@ due to the limited number of symbols which are available.
\limitsperpage
+If using \brand{MathJax}, after each math expression with a \cs{footnotemark},
+\watchout[MathJax, \cs{footnotemark}]
+adjust the \ctr{footnote} counter by the number of \cs{footnotemark}s:
+\begin{sourcedisplay}
+\cs{[} (math expression with \textgreen{two} instances of \cs{footnotemark}) \cs{]} \\
+\textred{\cs{warpHTMLonly}\{}\cs{addtocounter}\{footnote\}\{\textgreen{2}\}\textred{\}}
+\end{sourcedisplay}
+Similarly for \pkg{endnotes}, but \emph{not} \pkg{sidenotes}.
+
+Also for \brand{MathJax}, \cs{footnotename} is used for a \cs{footnotemark}
+if the actual footnote number is not known.
+To redefine it, provide it before loading \pkg{lwarp}:
+\begin{sourcedisplay}
+\cs{providecommand}\{\cs{footnotename}\}\{something\} \\
+\cs{usepackage}\{lwarp\}
+\end{sourcedisplay}
+Similar for \pkg{sidenotes}.
+For \pkg{endnotes}:
+\begin{sourcedisplay}
+\cs{def}\cs{endnotename}\{something\}\% \cs{def} allows name to start with "end"
+\end{sourcedisplay}
+
+For the \pkg{pagenote} package, there is no \cs{pagenotename} to define,
+since there is no \cs{pagenotemark} command.
+
The \pkg{footmisc} \optn{stable} option is emulated by \pkg{lwarp}.
\margintag{\pkg{footmisc}}
@@ -1124,7 +1153,7 @@ which defaults to:
Math may be rendered
\margintag{Math rendering}
as \SVG\ graphics or using the \brand{MathJax} JavaScript display engine.
-\gindex{JavaScript=\brand{JavaScript}>MathJax=\brand{MathJax}}
+\gindex{JavaScript=\brand{JavaScript}>mathjax=\brand{MathJax}}
Rendering math as images creates a new \SVG\ file for each expression,
\margintag{\SVG\ files}
@@ -1198,8 +1227,8 @@ before and after each image.
The popular \brand{MathJax} alternative (\url{mathjax.org}) may be used to display math.
\margintag{\brand{MathJax} math option}
\DescribeProgram{MathJax}
-\gindex{math>MathJax=\brand{MathJax} summary}
-\gindex{MathJax=\brand{MathJax}>summary}
+\gindex{math>mathjax=\brand{MathJax} summary}
+\gindex{mathjax=\brand{MathJax}>summary}
When \brand{MathJax} is enabled, math is rendered twice:
\begin{enumerate}
@@ -1214,8 +1243,8 @@ seamlessly integrating with the rest of the \LaTeX\ code.
\subsubsection{Customizing \brand{MathJax}}
\label{sec:limitscustomizemathjax}
-\gindex{MathJax=\brand{MathJax}>custom functions}
-\gindex{math>MathJax=\brand{MathJax} custom functions}
+\gindex{mathjax=\brand{MathJax}>custom functions}
+\gindex{math>mathjax=\brand{MathJax} custom functions}
\limitscustomizemathjax
\subsubsection{\brand{MathJax} limitations}
@@ -1225,30 +1254,33 @@ Limitations when using \brand{MathJax} include:
\begin{itemize}
\item \brand{MathJax} does not support \cs{multicolumn} or \pkg{multirow}.
\trouble[\cs{multicolumn}, \pkg{multirow}]%
- {multicolumn=\cs{multicolumn}>MathJax=\brand{MathJax}}
- \trouble{multirow=\pkg{multirow}>MathJax=\brand{MathJax}}
- \trouble{array=\env{array}>MathJax=\brand{MathJax}}
- \trouble{MathJax=\brand{MathJax}>multicolumn=\cs{multicolumn}}
- \trouble{MathJax=\brand{MathJax}>multirow=\cs{multirow}}
+ {multicolumn=\cs{multicolumn}>mathjax=\brand{MathJax}}
+ \trouble{multirow=\pkg{multirow}>mathjax=\brand{MathJax}}
+ \trouble{array=\env{array}>mathjax=\brand{MathJax}}
+ \trouble{mathjax=\brand{MathJax}>multicolumn=\cs{multicolumn}}
+ \trouble{mathjax=\brand{MathJax}>multirow=\cs{multirow}}
These may be used in text \env{tabular}s or \SVG\ math,
but in \brand{MathJax} math \env{array}s they are emulated.
\cs{multicolumn} only fills a single cell, resulting in a short row.
\cs{multirow} simply prints its text on the first line.
\item \brand{MathJax} does not support subequations.
- \trouble[subequations]{MathJax=\brand{MathJax}>subequations}%
+ \trouble[subequations]{mathjax=\brand{MathJax}>subequations}%
\trouble{math>subequations}%
This may be improved by parsing the \LaTeX{}
math expression to manually insert tags, but this has not yet been done.
-\item Footnotes inside equations are not yet supported while using \brand{MathJax}.
- \watchout[footnotes in math]
- \pkg{lwarp} provides a basic emulation for \brand{MathJax}.
+\item Footnotes are emulated when used inside a \brand{MathJax} expression.
+ \watchout[footnotes]
+ For an equation with a single footnote, the correct footnote number is used.
+ For non-equations, \cs{footnotename} is used instead, since the actual
+ number cannot be tracked.
+ See \cref{sec:limitsfootnotes} regarding the use of footnotes with \brand{MathJax}.
\item Inside a \brand{MathJax} expression,
- \trouble[references in math]{MathJax=\brand{MathJax}>references}
- \trouble{cross reference>MathJax=\brand{MathJax}}
- \trouble{reference>MathJax=\brand{MathJax}}
+ \trouble[references]{mathjax=\brand{MathJax}>references}
+ \trouble{cross reference>mathjax=\brand{MathJax}}
+ \trouble{reference>mathjax=\brand{MathJax}}
references to equations work within the same \HTML\ web page, but do not
work when referring to an equation in a different \HTML\ web page.
Outside of a \brand{MathJax} expression, in the text body, references work
@@ -1274,7 +1306,7 @@ Limitations when using \brand{MathJax} include:
render the horizontal alignment of the math and text following after on the same line.
\item Other math-related macros and packages are not directly supported by \brand{MathJax},
- \trouble[other macros and packages]{MathJax=\brand{MathJax}>unsupported packages}
+ \trouble[other macros and packages]{mathjax=\brand{MathJax}>unsupported packages}
including \cs{ensuremath} and \pkg{bigdelim},
and occasionally-used macros such as \cs{relax}.
While using \brand{MathJax}, \pkg{lwarp} provides emulation
@@ -1282,9 +1314,9 @@ Limitations when using \brand{MathJax} include:
\pkg{nicefrac}, \pkg{siunitx}, and \pkg{units}.
\item Starred macros are generally not supported
- \trouble[starred macros]{starred macros>MathJax=\brand{MathJax}}
- \trouble{math>starred macros and MathJax=\brand{MathJax}}
- \trouble{MathJax=\brand{MathJax}>starred macros}
+ \trouble[starred macros]{starred macros>mathjax=\brand{MathJax}}
+ \trouble{math>starred macros and mathjax=\brand{MathJax}}
+ \trouble{mathjax=\brand{MathJax}>starred macros}
by MathJax or the \pkg{lwarp} emulations.
\end{itemize}
}
@@ -1376,7 +1408,7 @@ Examples:
\textred{\cs{end}\{warpMathJax\}}
\end{sourcedisplay}
To avoid a slowdown in compile speed, use
-\trouble[slow compilation]{MathJax=\brand{MathJax}>slow compilation}
+\trouble[slow compilation]{mathjax=\brand{MathJax}>slow compilation}
\trouble{compiling>slow \brand{MathJax}}
the \env{warpMathJax} environment to prevent its contents from being processed in
print or \SVG\ math output.
@@ -1463,7 +1495,7 @@ Or, use a short name for the \TOC\ entry without the math, or use \cs{texorpdfst
\watchout[italic correction]
If using \brand{MathJax}:
- \trouble[\brand{MathJax}]{MathJax=\brand{MathJax}>mathtools=\pkg{mathtools}}
+ \trouble[\brand{MathJax}]{mathjax=\brand{MathJax}>mathtools=\pkg{mathtools}}
\begin{itemize}
\item Starred macros are not available. Starred environments do work.
\item \pkg{mathtools} \optn{disallowspaces} does not work for \brand{MathJax}.
@@ -1502,8 +1534,8 @@ wrap both inside a single \env{lateximage}:
\newcommand{\limitschemformula}{%
\pkg{chemformula} works best without \brand{MathJax}.
-\trouble[\pkg{chemformula} with \brand{MathJax}]{MathJax=\brand{MathJax}>chemformula=\pkg{chemformula}}
-\trouble{chemformula=\pkg{chemformula}>MathJax=\brand{MathJax}}
+\trouble[\pkg{chemformula} with \brand{MathJax}]{mathjax=\brand{MathJax}>chemformula=\pkg{chemformula}}
+\trouble{chemformula=\pkg{chemformula}>mathjax=\brand{MathJax}}
If \brand{MathJax} is used,
\cs{displaymathother} must be used before \env{array}, and then
\cs{displaymathnormal} may be used after.
@@ -2098,8 +2130,8 @@ or the packages \pkg{multirow}, \pkg{longtable}, \pkg{supertabular}, or \pkg{xta
\end{tabular}
\end{sourcedisplay}
\item \brand{MathJax} does not support \pkg{multirow}, so it is emulated
- \trouble[MathJax]{MathJax=\brand{MathJax}>multirow=\cs{multirow}}
- \trouble{multirow=\pkg{multirow}>MathJax=\brand{MathJax}}
+ \trouble[MathJax]{mathjax=\brand{MathJax}>multirow=\cs{multirow}}
+ \trouble{multirow=\pkg{multirow}>mathjax=\brand{MathJax}}
to only print its text on the first row.
\cs{multirow} works as expected in text \env{tabular}s or \SVG\ math.
\end{itemize}
@@ -2625,8 +2657,8 @@ generating the \SVG\ image.
For text mode, \pkg{lwarp} uses an emulation which provides a very effective
\HTML\ interpretation of \pkg{siunitx}.
For math expressions while using \brand{MathJax},
-\trouble{siunitx=\pkg{siunitx}>MathJax=\brand{MathJax}}
-\trouble[MathJax]{MathJax=\brand{MathJax}>siunitx=\pkg{siunitx}}
+\trouble{siunitx=\pkg{siunitx}>mathjax=\brand{MathJax}}
+\trouble[MathJax]{mathjax=\brand{MathJax}>siunitx=\pkg{siunitx}}
a limited emulation is used.
Most functions work reasonably well, but many options cannot be emulated.
\pkg{siunitx} macros with more than one optional value cannot absorb the second optional
@@ -2893,7 +2925,7 @@ This boolean may be tested by the user for later use.
%<*package>
% \fi
%
-% \CheckSum{42916}
+% \CheckSum{43557}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -3017,6 +3049,7 @@ This boolean may be tested by the user for later use.
% \changes{v0.79}{2020/02/01}{\ 2020/02/01}
% \changes{v0.80}{2020/02/19}{\ 2020/02/19}
% \changes{v0.81}{2020/03/04}{\ 2020/03/04}
+% \changes{v0.82}{2020/03/25}{\ 2020/03/25}
@@ -3239,6 +3272,25 @@ This boolean may be tested by the user for later use.
%
% \begin{description}
% \needspace{2\baselineskip}
+% \item[v0.82:] \brand{MathJax} notes, \pkg{xpinyin} improvements, various updates.
+% \begin{itemize}
+% \item Improved footnotes with \brand{MathJax}.
+% \margintag{\brand{MathJax}}
+% \item Added \brand{MathJax} emulation for \pkg{endnotes}, \pkg{marginnote},
+% \pkg{nccfoots}, \pkg{pagenote}, \pkg{parnotes}, \pkg{sidenotes}.
+% \item \pkg{xpinyin}: Added pinyin with modern \HTML.
+% \margintag{packages}
+% \item \pkg{luatexko}: Added \cs{dotemph}, \cs{ruby}, \cs{uline}, etc.
+% \item \pkg{soul}: Fixed \cs{<}.
+% \item \pkg{chemfig}: Updated to v1.5.
+% \item \pkg{draftwatermark}: Updated to v2.0.
+% \item \pkg{ulem}: Fixed: \cs{dashuline}.
+% \item \pkg{amsmath}: Fixed: \cs{intertext} with \brand{MathJax}.
+% \item \pkg{endnotes}: Fixed: Marks in print mode.
+% \item \pkg{tocvsec2}, \pkg{tableof}: Verified to work as-is.
+% \item Added \pkg{etoc} (nullified).
+% \end{itemize}
+% \needspace{2\baselineskip}
% \item[v0.81:] \brand{MathJax} speedup and additional emulations.
% \begin{itemize}
% \item Improved warning regarding \SVG\ math sizing \Slash baselines and
@@ -4120,590 +4172,590 @@ This boolean may be tested by the user for later use.
% \pkg{chemfig}, \pkg{chemformula}, \pkg{chemmacros}, \pkg{chemnum}, \pkg{chemgreek},
% \pkg{epstopdf-base}, \pkg{grid}, \pkg{ltxgrid}.
% \end{itemize}
-% \needspace{2\baselineskip}
-% \item[v0.50:] Improved \SVG\ math.
-% \begin{itemize}
-% \item \SVG\ math and other \env{lateximage}s now are
-% converted to \SVG\ using \margintag{\SVG\ math}
-% parallel background tasks, utilizing all available \acro{CPU} cores.
-% \item Inline \SVG\ math image file names now are MD5 hashes made from
-% their source \LaTeX\ code.
-% Identical inline math expressions, such as multiple instance of \$x\$,
-% now share a single image file.
-% This reduces the number of images to store, transmit, process, and display.
-% Each image file is only converted to \SVG\ a single time, and reused if it
-% already exists.
-% Display math and other forms of \SVG\ image such as \env{picture} and
-% \tikz\ still use individual image files which are recreated each time
-% \cmds{lwarpmk limages} is run.
-% \item Fixes: SVG math and/or \cs{underline} in a sectioning file name.
-% \item Improved \SVG\ display math and tags.
-% \item Improved \SVG\ math and \pkg{siunitx} \attribute{alt} tags.
-% \item Improved \pkg{siunitx} units.
-% \item Fix: \cs{ensuremath} with MathJax now creates a \env{lateximage}.
-% \item Fix: \cs{centering}, etc. in \SVG\ math, \env{lateximage}, \tikz.
-% \item Fix: Made various macros robust,
-% additionally fixing \pkg{authblk}.\margintag{misc. fixes}
-% \item Fix: \pkg{ntheorem} if neither \optn{standard} nor \optn{amsthm} selected.
-% \item Fix: \pkg{listings}: Improved column alignment.
-% \item Fix: Load \pkg{fontspec} if necessary.
-% \item Added \pkg{xy}, \pkg{epstopdf}, \pkg{diagbox}, \pkg{pbox}, \margintag{packages}
-% \pkg{bytefield}, \pkg{axodraw2}, \pkg{phfqit},
-% \pkg{schemata},
-% \pkg{dblfloatfix}, \pkg{nonfloat}, \pkg{morefloats}.
-% \end{itemize}
-% \needspace{2\baselineskip}
-% \item[v0.49:] \
-% \begin{itemize}
-% \item Added \pkg{xcolor} \cs{rowcolors}.\margintag{tabular}
-% \item Fix: \cs{noalign} inside a \env{tabular}.
-% \item Fix: \cs{eqref} in a caption.\margintag{math}
-% \item Fix: Incorrect \PDF\ font size changes
-% caused occasional \HTML\ corruption.\margintag{misc fixes}
-% \item Fix: \pkg{printlen} changes are now grouped for \HTML\ output.
-% \item Added \pkg{vwcol}, \pkg{vertbars}, \pkg{hyphenat}, \margintag{packages}
-% \pkg{lineno}, \pkg{fnlineno}, \pkg{figsize}, \pkg{hypdestopt}, \pkg{pagegrid},
-% \pkg{pdfrender}, \pkg{luacolor}, \pkg{resizegather}.
-% \end{itemize}
-% \needspace{2\baselineskip}
-% \item[v0.48:] \
-% \begin{itemize}
-% \item Added some documentation
-% \margintag{documentation}
-% regarding converting an existing document. See \cref{sec:convertexisting}.
-% \item Updated compatibility for new \pkg{cleveref} v0.21.\margintag{\pkg{cleveref}}
-% \item Fix: Ignores optional tabular column arguments.\margintag{tabular}
-% \item Added \cs{leftline}, \cs{centerline},
-% \cs{rightline}.\margintag{minor updates}
-% \item Lists have improved font control via \cs{makelabel}.
-% \item Print-mode \env{lateximage} now boxed to the natural width of its
-% multiline contents.
-% \item \env{abstract} now allows an optional name, as required by some classes.
-% \item Fix: Improved spacing, \cs{mbox}, and font sizes
-% with \SVG\ math, \tikz.\margintag{math}
-% \item \pkg{siunitx}: Improved \SVG\ math, fraction compatibility, color output.
-% \item Fix: LOF/LOT links.\margintag{misc. fixes}
-% \item Fix: Virtual page size grouping caused excessive \PDF\ page breaks.
-% \item Fix: Parsing similar package names in a
-% single \cs{usepackage}.
-% \item Fix: Adapts to classes without \cs{part}.
-% \item Fix: \cs{newline} in \cs{title} was causing |<br>| in window title.
-% \item Fix: \cs{maketitle} with \cs{cr}, \cs{crcr}, \cs{noalign},
-% for \pkg{IEEEtran} class.
-% \item Fix: \pkg{xfrac} neutralized \env{BlockClass} and others.
-% \item Fix: \pkg{todonotes} and \pkg{luatodonotes}: Improved \cs{todototoc}.
-% \item Added \pkg{colortbl}, \margintag{packages}
-% \pkg{chapterbib}, \pkg{acro}, \pkg{acronym},
-% \pkg{hypernat}, \pkg{hypcap}, \pkg{stfloats},
-% \pkg{vmargin}, \pkg{fancyheadings}.
-% \item \pkg{fancyref}: Now directly supported.
-% \end{itemize}
-% \needspace{2\baselineskip}
-% \item[v0.47:] \
-% \begin{itemize}
-% \item Improved \SVG\ math baseline and sizing.\margintag{math}
-% \item Fixes: \SVG math in captions, subcaptions, \cs{nameref}.
-% \item Fixes: Line wrap at hyphen in \HTML\ output.
-% \item Added \pkg{endheads}, \pkg{multitoc}, \pkg{sectionbreak},
-% \pkg{blowup}, \pkg{xurl}.\margintag{packages}
-% \end{itemize}
-% \needspace{2\baselineskip}
-% \item[v0.46:] \
-% \begin{itemize}
-% \item \cs{PrintStack} changed to \cs{LWRPrintStack}.\watchout[name change]
-% \item Fix: Empty lines between \env{tabular} rows.\margintag{misc. fixes}
-% \item Fix: Stack unnesting.
-% \item Fix: SVG math and \env{lateximage}s in numerous situations.
-% \item Fix: Spaces in \cs{usepackage}.
-% \item Fix: Now allows \brand{MathJax} inside \env{verse}.
-% \end{itemize}
-% \needspace{2\baselineskip}
-% \item[v0.45:] \
-% \begin{itemize}
-% \item Improved \prog{MiKTeX} install instructions.
-% \margintag{documentation}
-% \item Improved graphics and \pkg{epstopdf} instructions.
-% \item Updates to the \nameref{sec:introduction}.
-% \item Added \pkg{memoir}, \pkg{memhfixc}.
-% See \cref{sec:limitsmemoir}.\margintag{memoir}
-% \item Fix: Now allows underscores in labels.\margintag{cross-references}
-% \item Fix: \cs{\_} and |\<blank>| in section/file names.
-% \item Fix: Now allows \brand{MathJax} inside \env{tabbing}.\margintag{math}
-% \item Fix: Bibliography \cs{em} names.\margintag{bibliography}
-% \item Added \pkg{cite}, \pkg{natbib}, \pkg{backref}.
-% (Also works as-is with \pkg{biblatex}.)
-% \item Fix: Empty lines between \env{tabular} rows.\margintag{misc. fixes}
-% \item Fix: ``Improper \cs{prevdepth}'' with minipages, lists.
-% \item Fix: Incorrect \SVG\ math and |lateximage|s with \pkg{subfig}.
-% \item Fix: Lateximages from incorrect pages with Mathjax.
-% \item Fix: Missing sidetoc if using \pkg{listings}.
-% \item Fix: Added an \pkg{array} emulation package.
-% \item Added
-% \pkg{subfigure}, \pkg{prettyref}, \margintag{packages}
-% \pkg{hanging}, \pkg{midpage},
-% \pkg{flafter}, \pkg{fltrace}, \pkg{changebar}, \pkg{endfloat},
-% \pkg{continue}, \pkg{fwlw}, \pkg{turnthepage}, \pkg{footnpag},
-% \pkg{pagesel}, \pkg{textfit}, \pkg{titleref}.
-% \end{itemize}
-% \needspace{2\baselineskip}
-% \item[v0.44:] \
-% \begin{itemize}
-% \item Added \pkg{koma-script} classes (except \pkg{scrlttr2}, \pkg{scrjura}).
-% \margintag{\pkg{koma-script}}
-% \item Added \pkg{scrextend},
-% \pkg{scrlayer}, \pkg{scrlayer-notecolumn}, \pkg{scrlayer-scrpage},
-% \pkg{scrhack}, \pkg{tocstyle}, \pkg{tocbasic}.
-% \item Added \cs{HTMLTitle}.
-% \margintag{\HTML\ title and author}
-% Fixed web page title if \cs{HTMLTitle} empty and no \cs{title} given and
-% not using \pkg{titling} package.
-% \item Fixed web page author if \cs{HTMLauthor} is empty and \cs{author} is not given.
-% \item If using \prog{pdflatex}, automatically loads T1 and \UTF-8 encodings.
-% \margintag{encodings}
-% (Additional \pkg{fontenc} encodings may be loaded after \pkg{lwarp}.)
-% \item Added \env{list} and \env{trivlist} environments, \pkg{hang}.\margintag{lists}
-% \item Fix: \cs{multicolumn} alignment if formatting for a word processor.
-% \margintag{tabular}
-% \item Added \pkg{ltxtable}.
-% \item Fix: \brand{MathJax} combined with \env{lateximage}s.\margintag{math}
-% \item \pkg{algorithmicx}: Improved comment symbol and floating.
-% \item Completed \pkg{todonotes} and \pkg{luatodonotes}.
-% \margintag{\pkg{packages}}
-% \item Added \pkg{todo}, \pkg{easy-todo}, \pkg{fixmetodonotes}, \pkg{fixme}.
-% \item Added \pkg{soulutf8}, \pkg{soulpos}, \pkg{cancel}.
-% \item Added \pkg{section}, \pkg{fancyref}, \pkg{ifoddpage}.
-% \item Added \pkg{preview}, \pkg{atbegshi}, \pkg{watermark}.
-% \item Improved \pkg{tocloft} \cs{newlistof} and \cs{newlistentry}.
-% \end{itemize}
-% \needspace{2\baselineskip}
-% \item[v0.43:] \
-% \begin{itemize}
-% \item Docs: Reorganized \HTML\ customization, added an \HTML\ settings table.
-% See \cref{sec:htmlsettings}.
-% \item Added \progcode{FootnoteDepth} to control the placement
-% \margintag{footnotes}
-% of pending footnotes before section breaks.
-% By default, pending footnotes are printed before
-% each \cs{subparagraph} or higher.
-% \item Fix: Expansion in section name. \margintag{sectioning}
-% \item Fix: Ignore spaces in tabular column specification.
-% \margintag{\env{tabular}}
-% \item Fix: Tabular rules at bottom or when finishing incomplete rows.
-% \item Fix: \cs{multicolumn} at/bang/before/after specifications, trim,
-% and vertical rules.
-% \item Fix: \pkg{supertabular} and \pkg{xtab} column misalignment.
-% \item Fix: \env{equation*}.
-% \margintag{math}
-% \item Fix: \SVG\ math in a section name.
-% \item Fix: \cs{ref} and \cs{eqref} in \SVG\ math.
-% \item Added \pkg{todonotes} and \pkg{luatodonotes} (but only |disabled|).
-% \margintag{packages}
-% \item Added \pkg{breakurl}.
-% \item \pkg{hyperref}: Fix: Several macros were made robust, \cs{Gauge} added.
-% \end{itemize}
-% \needspace{2\baselineskip}
-% \item[v0.42:] \
-% \begin{itemize}
-% \item Added \TeX\ development support page.
-% (See page \pageref{sec:supportinglatex}.)
-% \margintag{Support \TeX!}
-% \item Improved assitance for word-processor conversions when
-% \margintag{word-processor conversion}
-% boolean |FormatWP| is set |true|.
-% See \cref{sec:wordprocessorconversion}.
-% \begin{itemize}
-% \item \textred{The} \watchout[name change]
-% \textred{boolean |FormatWordProcessor| has
-% been renamed |FormatWP|.}
-% \item \textred{The} \watchout[name change]
-% \textred{boolean |HTMLMarkFloats| has
-% been renamed |WPMarkFloats|.}
-% \item New booleans control whether to place additional
-% marks around minipages, at the table of contents,
-% at the \LOF\ and \LOT, and whether to
-% print math as \LaTeX\ source for copy/paste into the
-% \prog{LibreOffice Writer TeXMaths} extension.
-% \item Improved formatting for numerous objects.
-% See \cref{sec:wordprocessorconversion}.
-% \end{itemize}
-% \item Add: \env{tabbing} environment.
-% \margintag{\env{tabbing}}
-% \item Add: \pkg{overpic} package. See \cref{sec:overpic}.
-% \margintag{\pkg{overpic}}
-% \item Fix: Text copy/paste of \AmS\ math environment numbers and names.
-% \margintag{math}
-% \item Improved \cs{ensuremath}.
-% \item \brand{MathJax} with \pkg{siunitx}: Updated script and documentation.
-% \item \pkg{textcomp}: Improved \cs{textinterrobangdown}.
-% \margintag{symbols}
-% \item \pkg{realscripts}: Fix for subscripts in a \env{lateximage}.
-% \item \pkg{morewrites}: Enforces loading before \pkg{lwarp}.
-% \margintag{load order}
-% \end{itemize}
-% \needspace{2\baselineskip}
-% \item[v0.41:] \
-% \begin{itemize}
-% \item Added tabular vertical rules, subject to some limitations.
-% \margintag{\env{tabular}}
-% See the rules section of \cref{sec:limitstabular}.
-% \item Improved \pkg{booktabs}: Width and trim are honored.
-% \item Added \cs{mcolrowcell} for empty cells inside a \cs{multicolumnrow}.
-% \watchout[new syntax]
-% \textred{Use \cs{mcolrowcell} instead of \cs{mrowcell} for two-dimensional
-% cells created by \cs{multicolumnrow}.}
-% Continue to use \cs{mrowcell} for empty cells in a \cs{multirow}.
-% See \cref{sec:multicolumnmultirow} on \cpageref{sec:multicolumnmultirow}.
-% \item Fix: Unfinished tabular rows are automatically filled.
-% \item Fix for tabular column specifiers while using \pkg{babel-french}.
-% (\cs{NoAutoSpacing} is activated then nullified inside the tabular,
-% due to a conflict with the tabular column parsing code.)
-% \end{itemize}
-% \item[v0.40:] \
-% \begin{itemize}
-% \item \pkg{graphics} and \pkg{graphicx} have been moved from the
-% \margintag{\pkg{graphics}, \pkg{graphicx}}
-% \pkg{lwarp} core, and are only loaded if requested with \cs{usepackage}.
-% \item Improved \pkg{graphics} \cs{graphicspath} support.
-% \margintag{\cs{includegraphics} path}
-% Multiple image directories may now be used.
-% \textred{Refer to |.pdf| files without a file extension}
-% \watchout[image file extensions]
-% to allow the \HTML\ version
-% to use a |.svg|, |.png|, |.jpg|, or |.gif| version instead.
-% See \cref{sec:limitsgraphics}.
-% \item \pkg{grffile} is now directly supported instead of emulated.
-% \item Fix for \pkg{bigdelim}, and improved documentation.
-% \margintag{\pkg{bigdelim}}
-% See \cref{sec:bigdelim}.
-% \item Improved \LaTeX\ and \pkg{textcomp} symbols.\margintag{\pkg{symbols}}
-% \item Fix for \LaTeX\ logos and \cs{InlineClass}, etc. inside a \env{lateximage}.
-% \margintag{\pkg{fixes}}
-% \item Fix for \pkg{xltxtra} with \XeLaTeX.
-% \item Fixes for \pkg{tocbibind} with \cs{simplechapter}, etc.
-% \item Fixes for \cs{multicolumnrow} and \cs{nullfonts} with older versions
-% of \pkg{multirow} and \pkg{xparse}.
-% \item Added \cs{underline}.
-% \item Added \pkg{adjmulticol}.\margintag{margins}
-% \item Added \pkg{cuted}, \pkg{midfloat}.\margintag{columns}
-% \item Added \pkg{pfnote}, \pkg{fnpos}, \pkg{dblfnote}.\margintag{footnotes}
-% \item Added \pkg{stabular}, \pkg{tabls}.\margintag{tabular}
-% \item Added \pkg{sectsty}, \pkg{anonchap}, \pkg{quotchap}.\margintag{sectioning}
-% \end{itemize}
-% \needspace{2\baselineskip}
-% \item[v0.39:] \
-% \begin{itemize}
-% \item Improved the titlepage \HTML\ code, \cs{thanks} notes,
-% \margintag{title pages}
-% and \cs{maketitle}.
-% \pkg{titling} is no longer required, but is still supported.
-% The \cs{published} and \cs{subtitle} fields are no longer provided,
-% \watchout[\cs{published} and \cs{subtitle}]
-% but \cs{AddSubtitlePublished} replicates them using \pkg{titling}.
-% See \cref{sec:publishedsubtitle}.
-% \pkg{authblk} is added, and should be loaded before \pkg{titling}.
-% \watchout[load order]
-% See \cref{sec:titles}.
-% \item \cs{multirow} now supports the new optional |vpos| argument.
-% \margintag{tabular}
-% \item Added \cs{multicolumnrow} for combined
-% \margintag{multi column/row cell}
-% \cs{multicolumn} and \cs{multirow}.
-% See \cref{sec:multicolumnmultirow}.
-% \item Tabular special cases:
-% \begin{itemize}
-% \item Added \cs{TabularMacro} to mark custom macros
-% \watchout[macros inside tabular]
-% inside tabular data cells, avoiding row corruption.
-% See \cref{sec:limitstabular}.
-% \item Added \cs{ResumeTabular} for use when a \env{tabular} environment
-% \watchout[tabular defined inside another environment]
-% is defined inside another environment.
-% See \cref{sec:limitstabular}.
-% \end{itemize}
-% \item Added \pkg{supertabular}, \pkg{xtab}, \pkg{bigstrut}, \pkg{bigdelim}.
-% \margintag{tabular}
-% \item Added \pkg{fullwidth}.\margintag{margins}
-% \item Added \pkg{addlines}, \pkg{anysize}, \pkg{a4}, \pkg{a4wide}, \pkg{a5comb},
-% \margintag{page layout}
-% \pkg{textarea}, \pkg{zwpagelayout}, \pkg{typearea}, \pkg{ebook}.
-% \end{itemize}
-% \item[v0.38:] \
-% \begin{itemize}
-% \item Added \cmds{lwarpmk print1} and \cmds{lwarpmk html1} actions to
-% \margintag{forced single-pass compile}
-% force a compile of the project a single time.
-% Useful when multiple passes are not needed,
-% or changes were not detected.
-% \item Added \cs{ForceHTMLPage} and \cs{ForceHTMLTOC} to force
-% \margintag{starred sections}
-% a starred sectional unit onto its own \HTML\ page
-% and with its own \TOC\ entry.
-% See \cref{sec:forcesectionstar}.
-% \item Modified the tutorial to use the new \cs{ForceHTMLPage}
-% \margintag{updated tutorial}
-% and \cs{ForceHTMLTOC} macros.
-% \item Added \pkg{appendix}, \pkg{tocbibind}, \pkg{fncychap}, \pkg{fix2col}.
-% \margintag{packages}
-% \item Added \pkg{relsize}, \pkg{scalefnt}.\margintag{font size}
-% \item Added \pkg{realscripts}, \pkg{metalogo}, \pkg{xltxtra}.
-% \item Added \pkg{grffile}, \pkg{romanbar}.
-% \item Added \pkg{arabicfront}, \pkg{chappg}, \pkg{nonumonpart}, \pkg{nopageno},
-% \margintag{page numbering}
-% \pkg{romanbarpagenumber}.
-% \item Docs: Improved description of the use of front/back matter.
-% \margintag{front \& back matter}
-% See \cref{sec:frontbackmatter}.
-% \item Fix: \pkg{color} requests \pkg{xcolor}.
-% \item Fix: \cs{part} for \pkg{article} class.
-% \end{itemize}
-% \needspace{2\baselineskip}
-% \item[v0.37:] \
-% \begin{itemize}
-% \item \cs{include} now maintains independent |.aux| files
-% \margintag{\cs{include} for \HTML}
-% for \HTML\ versions.
-% \item \pkg{comment}, used by \pkg{lwarp}, now maintains
-% \margintag{\prog{latexmk}}
-% independent cut files for print and \HTML\ versions, helping \prog{latexmk} to
-% better know whether to recompile.
-% \item Improved support for \LaTeX\ accents,
-% \margintag{accents and symbols}
-% \pkg{textcomp}, \pkg{siunitx} symbols.
-% \item Improved \pkg{babel-french} handling for
-% \margintag{\pkg{babel-french}}
-% load order and \textasciitilde\ tilde.
-% \end{itemize}
-% \item[v0.36:] \
-% \begin{itemize}
-% \item Recorganized the documentation section regarding special cases and limitations.
-% (\Cref{sec:limitations})
-% \item Improved source formatting.
-% \item \cs{fbox} and related now use \cs{fboxsep} and \cs{fboxrule}.
-% \margintag{boxes and frames}
-% \item \cs{makebox} and \cs{framebox} now use width and position.
-% \item \cs{fcolorbox} and related now work inside a \env{lateximage}.
-% \item \pkg{babel-french}: Improvements for French variants, load order,
-% \margintag{\pkg{babel-french}}
-% footnotes, ellipses.
-% \item Improved footnote numbering.
-% \margintag{footnotes}
-% \env{lateximage} footnotes now appear as regular footnotes to match
-% the numbering of the print version.
-% Also fixed a regression with \brand{MathJax}.
-% \item Improved \pkg{siunitx} units.
-% \margintag{\pkg{siunitx}}
-% \item Fix for filenames while using \brand{MathJax}.
-% \item Fix for \cs{rule} when \pkg{xcolor} is not loaded.
-% \item Added \pkg{transparent}, \pkg{upref}.
-% \end{itemize}
-% \item[v0.35:] Fix: \cs{textbf} and related.
-% \item[v0.34:] \
-% \begin{itemize}
-% \item \env{BlockClass}'s optional argument has been moved
-% \watchout[Optional arguments]
-% in front of the mandatory argument:
-% \begin{sourcedisplay}
-% |BlockClass[style]{class}| \quad \textrm{(NEW)}
-% \end{sourcedisplay}
-% instead of:
-% \begin{sourcedisplay}
-% |BlockClass{class}[style]| \quad \textrm{(OLD)}
-% \end{sourcedisplay}
-% This change makes it more consistent with \LaTeX\ standards,
-% and avoids problems with space between arguments.
-% \item Likewise, \cs{InlineClass}'s optional argument now
-% \watchout[Optional arguments]
-% comes before the mandatory arguments:
-% \begin{sourcedisplay}
-% |\InlineClass[style]{class}{text}|
-% \end{sourcedisplay}
-% \item Improved compatibility between spans, minipages, lists,
-% \margintag{spans with minipages}
-% frames, and math.
-% Handles minipages and lists inside an \HTML\ span,
-% such as an \cs{fbox} containing a minipage,
-% although with minimal \HTML\ fomatting.
-% See \cref{sec:minipages}.
-% \cs{fboxBlock} is added to frame minipages, tables,
-% \margintag{framing minipages}
-% and lists with full \HTML\ formatting
-% but no longer inline, and behaves as \cs{fbox} for print output.
-% The \env{fminipage} environment is added for framed minipages,
-% as an environment with full \HTML\ formatting,
-% and draws a framed minipage in print output.
-% See \cref{sec:framedminipages}.
-% \cs{fbox} and minipages now often work in \SVG\ math and \env{lateximage}s.
-% \brand{MathJax} supports \cs{fbox}, but not \cs{fboxBlock} nor \env{fminipage}.
-% \item Improved compatibility between \env{lateximage} and
-% \margintag{\env{lateximage}, \SVG\ math, \env{tabular}}
-% \env{minipage}, \cs{parbox}, \cs{makebox}, \cs{fbox}, \cs{framebox},
-% \cs{raisebox}, \cs{scalebox}, \cs{reflectbox}, \env{tabular}, \pkg{booktabs}.
-% \item Improved font control for \env{lateximage}es and \SVG\ math.
-% \item Added the \env{eqnarray} environments.\margintag{\env{eqnarray}}
-% \item \pkg{fancyvrb} is no longer required (preloaded),
-% \margintag{verbatim packages}
-% but is still supported.
-% \item Added \pkg{verbatim} and \pkg{moreverb}.
-% \item Added \pkg{fancybox}, \pkg{boxedminipage2e} and \pkg{shadow}.
-% \margintag{framing packages}
-% \item \pkg{enumitem} is no longer required, but is still supported.
-% \margintag{list packages}
-% \item Added \pkg{enumerate} and \pkg{paralist}.
-% \item \pkg{titleps} is no longer required, but is still supported.
-% \item Added \pkg{crop}.
-% \item Added \pkg{rotfloat}, \pkg{marginfit},
-% and several minor packages; see the change log.
-% \item Adds fixed-width \HTML\ spaces around punctuation
-% \margintag{\pkg{babel-french}}
-% when using \pkg{babel-french}.
-% \LuaTeX\ does not yet use the extra punctuation spacing.
-% \end{itemize}
-% \needspace{2\baselineskip}
-% \item[v0.33:] \
-% \begin{itemize}
-% \item Tabular |@| and |!| columns now havetheir own \HTML\ columns.
-% \item |&| catcode changes are localized, perhaps causing errors
-% about the tab alignment character |&|,
-% so any definitions of macros or environments
-% which themselves contain \env{tabular} and |&| must be enclosed within \cs{StartDefiningTabulars}
-% and \cs{StopDefiningTabulars} (previously called \cs{EndDefiningTabulars}.
-% See \cref{sec:localizingcatcodes}.
-% This change is not required for the routine use of tables,
-% but only when a table is defined inside another macro or environment,
-% and while also using the |&| character inside the definition.
-% This may include the use inside conditional expressions.
-% \item Several math environments were incorrectly placed inline.
-% Also, for \pkg{amsmath} with \SVG\ math, the \optn{fleqn} option has been removed,
-% resulting in improved spacing for aligned equations.
-% \item Bug fixes; see the changelog.
-% \end{itemize}
-% \item[v0.32:] Bug fixes; no source changes needed:
-% \begin{itemize}
-% \item \prog{lwarpmk} has been adjusted to work with the latest \prog{luatex}.
-% \item Spaces in the \cs{usepackage} and \cs{RequirePackage} package lists are now accepted and ignored.
-% \item Fix for the \pkg{glossaries} package and \cs{glo@name}.
-% \end{itemize}
-% \item[v0.31:] Bug fix; no source changes needed:
-% \begin{itemize}
-% \item Improved compatibility with \pkg{keyfloat},
-% including the new \env{keywrap} environment.
-% \end{itemize}
-% \needspace{2\baselineskip}
-% \item[v0.30:] \
-% \begin{itemize}
-% \item \pkg{lwarp-newproject} has been removed, and its functions
-% \watchout[\pkg{lwarp-newproject}]
-% have been combined with \pkg{lwarp}.
-%
-% To modify existing documents, remove from the document source:
-% \begin{sourceverb}
-% \usepackage{lwarp-newproject}
-% \end{sourceverb}
-%
-% The \pkg{lwarp} package now produces the configuration files during
-% print output, and also accepts the option \optn{lwarpmk} if desired.
-%
-% \item A number of macros
-% \watchout[HTML setup changes.]
-% related to \HTML\ settings have been converted to options, and
-% other macros and options have been renamed to create a consistent syntax:
-% \begin{center}
-% \begin{tabular}{cc}
-% \toprule
-% Old Macro & New Package Option \\ \midrule
-% \cs{HomeHTMLFileName} & |HomeHTMLFilename| \\
-% \cs{HTMLFileName} & |HTMLFilename| \\
-% \cs{useLatexmk} & |latexmk| \\
-% \cs{warpOSwindows} & |OSWindows| \\[2.5ex] \toprule
-% Old Package Option & New Package Option \\ \midrule
-% \optn{lwarpmklang} & \optn{xindyLanguage} \\
-% (new) & \optn{xindyStyle} \\[2.5ex] \toprule
-% Old Macro & New Macro \\ \midrule
-% \cs{MetaLanguage} & \cs{HTMLLanguage} \\
-% \cs{HTMLauthor} & \cs{HTMLAuthor} \\
-% \cs{NewHTMLdescription} & \cs{HTMLDescription} \\
-% \cs{SetFirstPageTop} & \cs{HTMLFirstPageTop} \\
-% \cs{SetPageTop} & \cs{HTMLPageTop} \\
-% \cs{SetPageBottom} & \cs{HTMLPageBottom} \\
-% \cs{NewCSS} & \cs{CSSFilename} \\
-% \bottomrule
-% \end{tabular}
-% \end{center}
-%
-% \needspace{2\baselineskip}
-% \item Per the above changes, in existing documents,
-% modify the package load of \pkg{lwarp}, such as:
-% \begin{sourceverb}
-% \usepackage[
-% HomeHTMLFilename=index,
-% HTMLFilename={},
-% xindyLanguage=english
-% ]{lwarp}
-% \end{sourceverb}
-%
-% \item The file |lwarp_html.xdy| has been renamed |lwarp.xdy|.
-% To update each document's project:
-% \begin{enumerate}
-% \item Make the changes shown above.
-% \item Recompile the document in print mode.
-% This updates the project's configuration files, and also generates the
-% new file |lwarp.xdy|.
-% \item The old file |lwarp_html.xdy| may be deleted.
-% \end{enumerate}
-%
-% \item The new \pkg{lwarp} package option \optn{xindyStyle} may be used to tell
-% \prog{lwarpmk} to use a custom |.xdy| file instead of |lwarp.xdy|.
-% See \cref{sec:modifyxindy}.
-%
-% \item Improvements in index processing:
-% \begin{itemize}
-% \item \prog{xindy}'s language is now used for index processing
-% as well as glossary.
-% \item Print mode without \prog{latexmk} now uses \prog{xindy} instead of \prog{makeindex}.
-% \item \prog{texindy}/\prog{xindy} usage depends on \prog{pdflatex} vs \prog{xelatex}, \prog{lualatex}.
-% \item For \prog{pdflatex} and \prog{texindy}, the \optn{-C utf8} option is used. This is
-% supported in modern distributions, but a customized \filenm{lwarpmk.lua} may
-% need to be created for use with older distributions.
-% \end{itemize}
-%
-% \end{itemize}
-%
-% \needspace{2\baselineskip}
-%
-% \item[v0.29:] \
-% \begin{itemize}
-% \item Add: \optn{lwarpmklang} option for \pkg{lwarp-newproject} and \pkg{lwarp}.
-% Sets the language to use while processing the glossary.
-% (As of v0.30, this has been changed to the \optn{IndexLanguage} option.)
-% (As of v0.54, this has been changed to the \optn{xindyLanguage} option.)
-% \item Fix: \cs{includegraphics} when no optional arguments.
-% \end{itemize}
-% \item[v0.28:] \
-% \begin{itemize}
-% \item \cs{HTMLAuthor} \marg{name} assigns \HTML\ meta author if non-empty.
-% Defaults to \cs{theauthor}.
-% \item Booean |HTMLDebugComments| controls whether \HTML\ comments are
-% added for closing \element{div}s, opening and closing sections, etc.
-% \item Boolean |FormatEPUB| changes \HTML\ output for easy \EPUB\ conversion
-% via an external program.
-% Removes per-file headers, footers, and nav. Adds footnotes per chapter/section.
-% \item Boolean |FormatWordProcessor| changes \HTML\ output for easier conversion
-% by a word processor. Removes headers and nav, prints footnotes per section,
-% and also forces single-file output and turns off \HTML\ debug comments.
-% Name changed to |FormatWP| as of v0.42.
-% \item Boolean |HTMLMarkFloats| adds text marks around floats only if the boolean
-% |FormatWordProcessor| is |true|.
-% These make it easier to identify float boundaries,
-% which are to be manually converted to word-processor frames.
-% Name changed to |WPMarkFloats| as of v0.42.
-% \item Updated for the new \brand{MathJax} \acro{CDN} repository.
-% \item Adds \pkg{tabulary}.
-% \item Supports the options syntax for \pkg{graphics}.
-% \item Improved index references, now pointing exactly to their target.
-% \item Adds \pkg{glossaries}.
-% \prog{lwarpmk} is modified to add |printglosssary| and |htmlglossary| actions.
-% \end{itemize}
-%
+% ^^A \needspace{2\baselineskip}
+% ^^A \item[v0.50:] Improved \SVG\ math.
+% ^^A \begin{itemize}
+% ^^A \item \SVG\ math and other \env{lateximage}s now are
+% ^^A converted to \SVG\ using \margintag{\SVG\ math}
+% ^^A parallel background tasks, utilizing all available \acro{CPU} cores.
+% ^^A \item Inline \SVG\ math image file names now are MD5 hashes made from
+% ^^A their source \LaTeX\ code.
+% ^^A Identical inline math expressions, such as multiple instance of \$x\$,
+% ^^A now share a single image file.
+% ^^A This reduces the number of images to store, transmit, process, and display.
+% ^^A Each image file is only converted to \SVG\ a single time, and reused if it
+% ^^A already exists.
+% ^^A Display math and other forms of \SVG\ image such as \env{picture} and
+% ^^A \tikz\ still use individual image files which are recreated each time
+% ^^A \cmds{lwarpmk limages} is run.
+% ^^A \item Fixes: SVG math and/or \cs{underline} in a sectioning file name.
+% ^^A \item Improved \SVG\ display math and tags.
+% ^^A \item Improved \SVG\ math and \pkg{siunitx} \attribute{alt} tags.
+% ^^A \item Improved \pkg{siunitx} units.
+% ^^A \item Fix: \cs{ensuremath} with MathJax now creates a \env{lateximage}.
+% ^^A \item Fix: \cs{centering}, etc. in \SVG\ math, \env{lateximage}, \tikz.
+% ^^A \item Fix: Made various macros robust,
+% ^^A additionally fixing \pkg{authblk}.\margintag{misc. fixes}
+% ^^A \item Fix: \pkg{ntheorem} if neither \optn{standard} nor \optn{amsthm} selected.
+% ^^A \item Fix: \pkg{listings}: Improved column alignment.
+% ^^A \item Fix: Load \pkg{fontspec} if necessary.
+% ^^A \item Added \pkg{xy}, \pkg{epstopdf}, \pkg{diagbox}, \pkg{pbox}, \margintag{packages}
+% ^^A \pkg{bytefield}, \pkg{axodraw2}, \pkg{phfqit},
+% ^^A \pkg{schemata},
+% ^^A \pkg{dblfloatfix}, \pkg{nonfloat}, \pkg{morefloats}.
+% ^^A \end{itemize}
+% ^^A \needspace{2\baselineskip}
+% ^^A \item[v0.49:] \
+% ^^A \begin{itemize}
+% ^^A \item Added \pkg{xcolor} \cs{rowcolors}.\margintag{tabular}
+% ^^A \item Fix: \cs{noalign} inside a \env{tabular}.
+% ^^A \item Fix: \cs{eqref} in a caption.\margintag{math}
+% ^^A \item Fix: Incorrect \PDF\ font size changes
+% ^^A caused occasional \HTML\ corruption.\margintag{misc fixes}
+% ^^A \item Fix: \pkg{printlen} changes are now grouped for \HTML\ output.
+% ^^A \item Added \pkg{vwcol}, \pkg{vertbars}, \pkg{hyphenat}, \margintag{packages}
+% ^^A \pkg{lineno}, \pkg{fnlineno}, \pkg{figsize}, \pkg{hypdestopt}, \pkg{pagegrid},
+% ^^A \pkg{pdfrender}, \pkg{luacolor}, \pkg{resizegather}.
+% ^^A \end{itemize}
+% ^^A \needspace{2\baselineskip}
+% ^^A \item[v0.48:] \
+% ^^A \begin{itemize}
+% ^^A \item Added some documentation
+% ^^A \margintag{documentation}
+% ^^A regarding converting an existing document. See \cref{sec:convertexisting}.
+% ^^A \item Updated compatibility for new \pkg{cleveref} v0.21.\margintag{\pkg{cleveref}}
+% ^^A \item Fix: Ignores optional tabular column arguments.\margintag{tabular}
+% ^^A \item Added \cs{leftline}, \cs{centerline},
+% ^^A \cs{rightline}.\margintag{minor updates}
+% ^^A \item Lists have improved font control via \cs{makelabel}.
+% ^^A \item Print-mode \env{lateximage} now boxed to the natural width of its
+% ^^A multiline contents.
+% ^^A \item \env{abstract} now allows an optional name, as required by some classes.
+% ^^A \item Fix: Improved spacing, \cs{mbox}, and font sizes
+% ^^A with \SVG\ math, \tikz.\margintag{math}
+% ^^A \item \pkg{siunitx}: Improved \SVG\ math, fraction compatibility, color output.
+% ^^A \item Fix: LOF/LOT links.\margintag{misc. fixes}
+% ^^A \item Fix: Virtual page size grouping caused excessive \PDF\ page breaks.
+% ^^A \item Fix: Parsing similar package names in a
+% ^^A single \cs{usepackage}.
+% ^^A \item Fix: Adapts to classes without \cs{part}.
+% ^^A \item Fix: \cs{newline} in \cs{title} was causing |<br>| in window title.
+% ^^A \item Fix: \cs{maketitle} with \cs{cr}, \cs{crcr}, \cs{noalign},
+% ^^A for \pkg{IEEEtran} class.
+% ^^A \item Fix: \pkg{xfrac} neutralized \env{BlockClass} and others.
+% ^^A \item Fix: \pkg{todonotes} and \pkg{luatodonotes}: Improved \cs{todototoc}.
+% ^^A \item Added \pkg{colortbl}, \margintag{packages}
+% ^^A \pkg{chapterbib}, \pkg{acro}, \pkg{acronym},
+% ^^A \pkg{hypernat}, \pkg{hypcap}, \pkg{stfloats},
+% ^^A \pkg{vmargin}, \pkg{fancyheadings}.
+% ^^A \item \pkg{fancyref}: Now directly supported.
+% ^^A \end{itemize}
+% ^^A \needspace{2\baselineskip}
+% ^^A \item[v0.47:] \
+% ^^A \begin{itemize}
+% ^^A \item Improved \SVG\ math baseline and sizing.\margintag{math}
+% ^^A \item Fixes: \SVG math in captions, subcaptions, \cs{nameref}.
+% ^^A \item Fixes: Line wrap at hyphen in \HTML\ output.
+% ^^A \item Added \pkg{endheads}, \pkg{multitoc}, \pkg{sectionbreak},
+% ^^A \pkg{blowup}, \pkg{xurl}.\margintag{packages}
+% ^^A \end{itemize}
+% ^^A \needspace{2\baselineskip}
+% ^^A \item[v0.46:] \
+% ^^A \begin{itemize}
+% ^^A \item \cs{PrintStack} changed to \cs{LWRPrintStack}.\watchout[name change]
+% ^^A \item Fix: Empty lines between \env{tabular} rows.\margintag{misc. fixes}
+% ^^A \item Fix: Stack unnesting.
+% ^^A \item Fix: SVG math and \env{lateximage}s in numerous situations.
+% ^^A \item Fix: Spaces in \cs{usepackage}.
+% ^^A \item Fix: Now allows \brand{MathJax} inside \env{verse}.
+% ^^A \end{itemize}
+% ^^A \needspace{2\baselineskip}
+% ^^A \item[v0.45:] \
+% ^^A \begin{itemize}
+% ^^A \item Improved \prog{MiKTeX} install instructions.
+% ^^A \margintag{documentation}
+% ^^A \item Improved graphics and \pkg{epstopdf} instructions.
+% ^^A \item Updates to the \nameref{sec:introduction}.
+% ^^A \item Added \pkg{memoir}, \pkg{memhfixc}.
+% ^^A See \cref{sec:limitsmemoir}.\margintag{memoir}
+% ^^A \item Fix: Now allows underscores in labels.\margintag{cross-references}
+% ^^A \item Fix: \cs{\_} and |\<blank>| in section/file names.
+% ^^A \item Fix: Now allows \brand{MathJax} inside \env{tabbing}.\margintag{math}
+% ^^A \item Fix: Bibliography \cs{em} names.\margintag{bibliography}
+% ^^A \item Added \pkg{cite}, \pkg{natbib}, \pkg{backref}.
+% ^^A (Also works as-is with \pkg{biblatex}.)
+% ^^A \item Fix: Empty lines between \env{tabular} rows.\margintag{misc. fixes}
+% ^^A \item Fix: ``Improper \cs{prevdepth}'' with minipages, lists.
+% ^^A \item Fix: Incorrect \SVG\ math and |lateximage|s with \pkg{subfig}.
+% ^^A \item Fix: Lateximages from incorrect pages with Mathjax.
+% ^^A \item Fix: Missing sidetoc if using \pkg{listings}.
+% ^^A \item Fix: Added an \pkg{array} emulation package.
+% ^^A \item Added
+% ^^A \pkg{subfigure}, \pkg{prettyref}, \margintag{packages}
+% ^^A \pkg{hanging}, \pkg{midpage},
+% ^^A \pkg{flafter}, \pkg{fltrace}, \pkg{changebar}, \pkg{endfloat},
+% ^^A \pkg{continue}, \pkg{fwlw}, \pkg{turnthepage}, \pkg{footnpag},
+% ^^A \pkg{pagesel}, \pkg{textfit}, \pkg{titleref}.
+% ^^A \end{itemize}
+% ^^A \needspace{2\baselineskip}
+% ^^A \item[v0.44:] \
+% ^^A \begin{itemize}
+% ^^A \item Added \pkg{koma-script} classes (except \pkg{scrlttr2}, \pkg{scrjura}).
+% ^^A \margintag{\pkg{koma-script}}
+% ^^A \item Added \pkg{scrextend},
+% ^^A \pkg{scrlayer}, \pkg{scrlayer-notecolumn}, \pkg{scrlayer-scrpage},
+% ^^A \pkg{scrhack}, \pkg{tocstyle}, \pkg{tocbasic}.
+% ^^A \item Added \cs{HTMLTitle}.
+% ^^A \margintag{\HTML\ title and author}
+% ^^A Fixed web page title if \cs{HTMLTitle} empty and no \cs{title} given and
+% ^^A not using \pkg{titling} package.
+% ^^A \item Fixed web page author if \cs{HTMLauthor} is empty and \cs{author} is not given.
+% ^^A \item If using \prog{pdflatex}, automatically loads T1 and \UTF-8 encodings.
+% ^^A \margintag{encodings}
+% ^^A (Additional \pkg{fontenc} encodings may be loaded after \pkg{lwarp}.)
+% ^^A \item Added \env{list} and \env{trivlist} environments, \pkg{hang}.\margintag{lists}
+% ^^A \item Fix: \cs{multicolumn} alignment if formatting for a word processor.
+% ^^A \margintag{tabular}
+% ^^A \item Added \pkg{ltxtable}.
+% ^^A \item Fix: \brand{MathJax} combined with \env{lateximage}s.\margintag{math}
+% ^^A \item \pkg{algorithmicx}: Improved comment symbol and floating.
+% ^^A \item Completed \pkg{todonotes} and \pkg{luatodonotes}.
+% ^^A \margintag{\pkg{packages}}
+% ^^A \item Added \pkg{todo}, \pkg{easy-todo}, \pkg{fixmetodonotes}, \pkg{fixme}.
+% ^^A \item Added \pkg{soulutf8}, \pkg{soulpos}, \pkg{cancel}.
+% ^^A \item Added \pkg{section}, \pkg{fancyref}, \pkg{ifoddpage}.
+% ^^A \item Added \pkg{preview}, \pkg{atbegshi}, \pkg{watermark}.
+% ^^A \item Improved \pkg{tocloft} \cs{newlistof} and \cs{newlistentry}.
+% ^^A \end{itemize}
+% ^^A \needspace{2\baselineskip}
+% ^^A \item[v0.43:] \
+% ^^A \begin{itemize}
+% ^^A \item Docs: Reorganized \HTML\ customization, added an \HTML\ settings table.
+% ^^A See \cref{sec:htmlsettings}.
+% ^^A \item Added \progcode{FootnoteDepth} to control the placement
+% ^^A \margintag{footnotes}
+% ^^A of pending footnotes before section breaks.
+% ^^A By default, pending footnotes are printed before
+% ^^A each \cs{subparagraph} or higher.
+% ^^A \item Fix: Expansion in section name. \margintag{sectioning}
+% ^^A \item Fix: Ignore spaces in tabular column specification.
+% ^^A \margintag{\env{tabular}}
+% ^^A \item Fix: Tabular rules at bottom or when finishing incomplete rows.
+% ^^A \item Fix: \cs{multicolumn} at/bang/before/after specifications, trim,
+% ^^A and vertical rules.
+% ^^A \item Fix: \pkg{supertabular} and \pkg{xtab} column misalignment.
+% ^^A \item Fix: \env{equation*}.
+% ^^A \margintag{math}
+% ^^A \item Fix: \SVG\ math in a section name.
+% ^^A \item Fix: \cs{ref} and \cs{eqref} in \SVG\ math.
+% ^^A \item Added \pkg{todonotes} and \pkg{luatodonotes} (but only |disabled|).
+% ^^A \margintag{packages}
+% ^^A \item Added \pkg{breakurl}.
+% ^^A \item \pkg{hyperref}: Fix: Several macros were made robust, \cs{Gauge} added.
+% ^^A \end{itemize}
+% ^^A \needspace{2\baselineskip}
+% ^^A \item[v0.42:] \
+% ^^A \begin{itemize}
+% ^^A \item Added \TeX\ development support page.
+% ^^A (See page \pageref{sec:supportinglatex}.)
+% ^^A \margintag{Support \TeX!}
+% ^^A \item Improved assitance for word-processor conversions when
+% ^^A \margintag{word-processor conversion}
+% ^^A boolean |FormatWP| is set |true|.
+% ^^A See \cref{sec:wordprocessorconversion}.
+% ^^A \begin{itemize}
+% ^^A \item \textred{The} \watchout[name change]
+% ^^A \textred{boolean |FormatWordProcessor| has
+% ^^A been renamed |FormatWP|.}
+% ^^A \item \textred{The} \watchout[name change]
+% ^^A \textred{boolean |HTMLMarkFloats| has
+% ^^A been renamed |WPMarkFloats|.}
+% ^^A \item New booleans control whether to place additional
+% ^^A marks around minipages, at the table of contents,
+% ^^A at the \LOF\ and \LOT, and whether to
+% ^^A print math as \LaTeX\ source for copy/paste into the
+% ^^A \prog{LibreOffice Writer TeXMaths} extension.
+% ^^A \item Improved formatting for numerous objects.
+% ^^A See \cref{sec:wordprocessorconversion}.
+% ^^A \end{itemize}
+% ^^A \item Add: \env{tabbing} environment.
+% ^^A \margintag{\env{tabbing}}
+% ^^A \item Add: \pkg{overpic} package. See \cref{sec:overpic}.
+% ^^A \margintag{\pkg{overpic}}
+% ^^A \item Fix: Text copy/paste of \AmS\ math environment numbers and names.
+% ^^A \margintag{math}
+% ^^A \item Improved \cs{ensuremath}.
+% ^^A \item \brand{MathJax} with \pkg{siunitx}: Updated script and documentation.
+% ^^A \item \pkg{textcomp}: Improved \cs{textinterrobangdown}.
+% ^^A \margintag{symbols}
+% ^^A \item \pkg{realscripts}: Fix for subscripts in a \env{lateximage}.
+% ^^A \item \pkg{morewrites}: Enforces loading before \pkg{lwarp}.
+% ^^A \margintag{load order}
+% ^^A \end{itemize}
+% ^^A \needspace{2\baselineskip}
+% ^^A \item[v0.41:] \
+% ^^A \begin{itemize}
+% ^^A \item Added tabular vertical rules, subject to some limitations.
+% ^^A \margintag{\env{tabular}}
+% ^^A See the rules section of \cref{sec:limitstabular}.
+% ^^A \item Improved \pkg{booktabs}: Width and trim are honored.
+% ^^A \item Added \cs{mcolrowcell} for empty cells inside a \cs{multicolumnrow}.
+% ^^A \watchout[new syntax]
+% ^^A \textred{Use \cs{mcolrowcell} instead of \cs{mrowcell} for two-dimensional
+% ^^A cells created by \cs{multicolumnrow}.}
+% ^^A Continue to use \cs{mrowcell} for empty cells in a \cs{multirow}.
+% ^^A See \cref{sec:multicolumnmultirow} on \cpageref{sec:multicolumnmultirow}.
+% ^^A \item Fix: Unfinished tabular rows are automatically filled.
+% ^^A \item Fix for tabular column specifiers while using \pkg{babel-french}.
+% ^^A (\cs{NoAutoSpacing} is activated then nullified inside the tabular,
+% ^^A due to a conflict with the tabular column parsing code.)
+% ^^A \end{itemize}
+% ^^A \item[v0.40:] \
+% ^^A \begin{itemize}
+% ^^A \item \pkg{graphics} and \pkg{graphicx} have been moved from the
+% ^^A \margintag{\pkg{graphics}, \pkg{graphicx}}
+% ^^A \pkg{lwarp} core, and are only loaded if requested with \cs{usepackage}.
+% ^^A \item Improved \pkg{graphics} \cs{graphicspath} support.
+% ^^A \margintag{\cs{includegraphics} path}
+% ^^A Multiple image directories may now be used.
+% ^^A \textred{Refer to |.pdf| files without a file extension}
+% ^^A \watchout[image file extensions]
+% ^^A to allow the \HTML\ version
+% ^^A to use a |.svg|, |.png|, |.jpg|, or |.gif| version instead.
+% ^^A See \cref{sec:limitsgraphics}.
+% ^^A \item \pkg{grffile} is now directly supported instead of emulated.
+% ^^A \item Fix for \pkg{bigdelim}, and improved documentation.
+% ^^A \margintag{\pkg{bigdelim}}
+% ^^A See \cref{sec:bigdelim}.
+% ^^A \item Improved \LaTeX\ and \pkg{textcomp} symbols.\margintag{\pkg{symbols}}
+% ^^A \item Fix for \LaTeX\ logos and \cs{InlineClass}, etc. inside a \env{lateximage}.
+% ^^A \margintag{\pkg{fixes}}
+% ^^A \item Fix for \pkg{xltxtra} with \XeLaTeX.
+% ^^A \item Fixes for \pkg{tocbibind} with \cs{simplechapter}, etc.
+% ^^A \item Fixes for \cs{multicolumnrow} and \cs{nullfonts} with older versions
+% ^^A of \pkg{multirow} and \pkg{xparse}.
+% ^^A \item Added \cs{underline}.
+% ^^A \item Added \pkg{adjmulticol}.\margintag{margins}
+% ^^A \item Added \pkg{cuted}, \pkg{midfloat}.\margintag{columns}
+% ^^A \item Added \pkg{pfnote}, \pkg{fnpos}, \pkg{dblfnote}.\margintag{footnotes}
+% ^^A \item Added \pkg{stabular}, \pkg{tabls}.\margintag{tabular}
+% ^^A \item Added \pkg{sectsty}, \pkg{anonchap}, \pkg{quotchap}.\margintag{sectioning}
+% ^^A \end{itemize}
+% ^^A \needspace{2\baselineskip}
+% ^^A \item[v0.39:] \
+% ^^A \begin{itemize}
+% ^^A \item Improved the titlepage \HTML\ code, \cs{thanks} notes,
+% ^^A \margintag{title pages}
+% ^^A and \cs{maketitle}.
+% ^^A \pkg{titling} is no longer required, but is still supported.
+% ^^A The \cs{published} and \cs{subtitle} fields are no longer provided,
+% ^^A \watchout[\cs{published} and \cs{subtitle}]
+% ^^A but \cs{AddSubtitlePublished} replicates them using \pkg{titling}.
+% ^^A See \cref{sec:publishedsubtitle}.
+% ^^A \pkg{authblk} is added, and should be loaded before \pkg{titling}.
+% ^^A \watchout[load order]
+% ^^A See \cref{sec:titles}.
+% ^^A \item \cs{multirow} now supports the new optional |vpos| argument.
+% ^^A \margintag{tabular}
+% ^^A \item Added \cs{multicolumnrow} for combined
+% ^^A \margintag{multi column/row cell}
+% ^^A \cs{multicolumn} and \cs{multirow}.
+% ^^A See \cref{sec:multicolumnmultirow}.
+% ^^A \item Tabular special cases:
+% ^^A \begin{itemize}
+% ^^A \item Added \cs{TabularMacro} to mark custom macros
+% ^^A \watchout[macros inside tabular]
+% ^^A inside tabular data cells, avoiding row corruption.
+% ^^A See \cref{sec:limitstabular}.
+% ^^A \item Added \cs{ResumeTabular} for use when a \env{tabular} environment
+% ^^A \watchout[tabular defined inside another environment]
+% ^^A is defined inside another environment.
+% ^^A See \cref{sec:limitstabular}.
+% ^^A \end{itemize}
+% ^^A \item Added \pkg{supertabular}, \pkg{xtab}, \pkg{bigstrut}, \pkg{bigdelim}.
+% ^^A \margintag{tabular}
+% ^^A \item Added \pkg{fullwidth}.\margintag{margins}
+% ^^A \item Added \pkg{addlines}, \pkg{anysize}, \pkg{a4}, \pkg{a4wide}, \pkg{a5comb},
+% ^^A \margintag{page layout}
+% ^^A \pkg{textarea}, \pkg{zwpagelayout}, \pkg{typearea}, \pkg{ebook}.
+% ^^A \end{itemize}
+% ^^A \item[v0.38:] \
+% ^^A \begin{itemize}
+% ^^A \item Added \cmds{lwarpmk print1} and \cmds{lwarpmk html1} actions to
+% ^^A \margintag{forced single-pass compile}
+% ^^A force a compile of the project a single time.
+% ^^A Useful when multiple passes are not needed,
+% ^^A or changes were not detected.
+% ^^A \item Added \cs{ForceHTMLPage} and \cs{ForceHTMLTOC} to force
+% ^^A \margintag{starred sections}
+% ^^A a starred sectional unit onto its own \HTML\ page
+% ^^A and with its own \TOC\ entry.
+% ^^A See \cref{sec:forcesectionstar}.
+% ^^A \item Modified the tutorial to use the new \cs{ForceHTMLPage}
+% ^^A \margintag{updated tutorial}
+% ^^A and \cs{ForceHTMLTOC} macros.
+% ^^A \item Added \pkg{appendix}, \pkg{tocbibind}, \pkg{fncychap}, \pkg{fix2col}.
+% ^^A \margintag{packages}
+% ^^A \item Added \pkg{relsize}, \pkg{scalefnt}.\margintag{font size}
+% ^^A \item Added \pkg{realscripts}, \pkg{metalogo}, \pkg{xltxtra}.
+% ^^A \item Added \pkg{grffile}, \pkg{romanbar}.
+% ^^A \item Added \pkg{arabicfront}, \pkg{chappg}, \pkg{nonumonpart}, \pkg{nopageno},
+% ^^A \margintag{page numbering}
+% ^^A \pkg{romanbarpagenumber}.
+% ^^A \item Docs: Improved description of the use of front/back matter.
+% ^^A \margintag{front \& back matter}
+% ^^A See \cref{sec:frontbackmatter}.
+% ^^A \item Fix: \pkg{color} requests \pkg{xcolor}.
+% ^^A \item Fix: \cs{part} for \pkg{article} class.
+% ^^A \end{itemize}
+% ^^A \needspace{2\baselineskip}
+% ^^A \item[v0.37:] \
+% ^^A \begin{itemize}
+% ^^A \item \cs{include} now maintains independent |.aux| files
+% ^^A \margintag{\cs{include} for \HTML}
+% ^^A for \HTML\ versions.
+% ^^A \item \pkg{comment}, used by \pkg{lwarp}, now maintains
+% ^^A \margintag{\prog{latexmk}}
+% ^^A independent cut files for print and \HTML\ versions, helping \prog{latexmk} to
+% ^^A better know whether to recompile.
+% ^^A \item Improved support for \LaTeX\ accents,
+% ^^A \margintag{accents and symbols}
+% ^^A \pkg{textcomp}, \pkg{siunitx} symbols.
+% ^^A \item Improved \pkg{babel-french} handling for
+% ^^A \margintag{\pkg{babel-french}}
+% ^^A load order and \textasciitilde\ tilde.
+% ^^A \end{itemize}
+% ^^A \item[v0.36:] \
+% ^^A \begin{itemize}
+% ^^A \item Recorganized the documentation section regarding special cases and limitations.
+% ^^A (\Cref{sec:limitations})
+% ^^A \item Improved source formatting.
+% ^^A \item \cs{fbox} and related now use \cs{fboxsep} and \cs{fboxrule}.
+% ^^A \margintag{boxes and frames}
+% ^^A \item \cs{makebox} and \cs{framebox} now use width and position.
+% ^^A \item \cs{fcolorbox} and related now work inside a \env{lateximage}.
+% ^^A \item \pkg{babel-french}: Improvements for French variants, load order,
+% ^^A \margintag{\pkg{babel-french}}
+% ^^A footnotes, ellipses.
+% ^^A \item Improved footnote numbering.
+% ^^A \margintag{footnotes}
+% ^^A \env{lateximage} footnotes now appear as regular footnotes to match
+% ^^A the numbering of the print version.
+% ^^A Also fixed a regression with \brand{MathJax}.
+% ^^A \item Improved \pkg{siunitx} units.
+% ^^A \margintag{\pkg{siunitx}}
+% ^^A \item Fix for filenames while using \brand{MathJax}.
+% ^^A \item Fix for \cs{rule} when \pkg{xcolor} is not loaded.
+% ^^A \item Added \pkg{transparent}, \pkg{upref}.
+% ^^A \end{itemize}
+% ^^A \item[v0.35:] Fix: \cs{textbf} and related.
+% ^^A \item[v0.34:] \
+% ^^A \begin{itemize}
+% ^^A \item \env{BlockClass}'s optional argument has been moved
+% ^^A \watchout[Optional arguments]
+% ^^A in front of the mandatory argument:
+% ^^A \begin{sourcedisplay}
+% ^^A |BlockClass[style]{class}| \quad \textrm{(NEW)}
+% ^^A \end{sourcedisplay}
+% ^^A instead of:
+% ^^A \begin{sourcedisplay}
+% ^^A |BlockClass{class}[style]| \quad \textrm{(OLD)}
+% ^^A \end{sourcedisplay}
+% ^^A This change makes it more consistent with \LaTeX\ standards,
+% ^^A and avoids problems with space between arguments.
+% ^^A \item Likewise, \cs{InlineClass}'s optional argument now
+% ^^A \watchout[Optional arguments]
+% ^^A comes before the mandatory arguments:
+% ^^A \begin{sourcedisplay}
+% ^^A |\InlineClass[style]{class}{text}|
+% ^^A \end{sourcedisplay}
+% ^^A \item Improved compatibility between spans, minipages, lists,
+% ^^A \margintag{spans with minipages}
+% ^^A frames, and math.
+% ^^A Handles minipages and lists inside an \HTML\ span,
+% ^^A such as an \cs{fbox} containing a minipage,
+% ^^A although with minimal \HTML\ fomatting.
+% ^^A See \cref{sec:minipages}.
+% ^^A \cs{fboxBlock} is added to frame minipages, tables,
+% ^^A \margintag{framing minipages}
+% ^^A and lists with full \HTML\ formatting
+% ^^A but no longer inline, and behaves as \cs{fbox} for print output.
+% ^^A The \env{fminipage} environment is added for framed minipages,
+% ^^A as an environment with full \HTML\ formatting,
+% ^^A and draws a framed minipage in print output.
+% ^^A See \cref{sec:framedminipages}.
+% ^^A \cs{fbox} and minipages now often work in \SVG\ math and \env{lateximage}s.
+% ^^A \brand{MathJax} supports \cs{fbox}, but not \cs{fboxBlock} nor \env{fminipage}.
+% ^^A \item Improved compatibility between \env{lateximage} and
+% ^^A \margintag{\env{lateximage}, \SVG\ math, \env{tabular}}
+% ^^A \env{minipage}, \cs{parbox}, \cs{makebox}, \cs{fbox}, \cs{framebox},
+% ^^A \cs{raisebox}, \cs{scalebox}, \cs{reflectbox}, \env{tabular}, \pkg{booktabs}.
+% ^^A \item Improved font control for \env{lateximage}es and \SVG\ math.
+% ^^A \item Added the \env{eqnarray} environments.\margintag{\env{eqnarray}}
+% ^^A \item \pkg{fancyvrb} is no longer required (preloaded),
+% ^^A \margintag{verbatim packages}
+% ^^A but is still supported.
+% ^^A \item Added \pkg{verbatim} and \pkg{moreverb}.
+% ^^A \item Added \pkg{fancybox}, \pkg{boxedminipage2e} and \pkg{shadow}.
+% ^^A \margintag{framing packages}
+% ^^A \item \pkg{enumitem} is no longer required, but is still supported.
+% ^^A \margintag{list packages}
+% ^^A \item Added \pkg{enumerate} and \pkg{paralist}.
+% ^^A \item \pkg{titleps} is no longer required, but is still supported.
+% ^^A \item Added \pkg{crop}.
+% ^^A \item Added \pkg{rotfloat}, \pkg{marginfit},
+% ^^A and several minor packages; see the change log.
+% ^^A \item Adds fixed-width \HTML\ spaces around punctuation
+% ^^A \margintag{\pkg{babel-french}}
+% ^^A when using \pkg{babel-french}.
+% ^^A \LuaTeX\ does not yet use the extra punctuation spacing.
+% ^^A \end{itemize}
+% ^^A \needspace{2\baselineskip}
+% ^^A \item[v0.33:] \
+% ^^A \begin{itemize}
+% ^^A \item Tabular |@| and |!| columns now havetheir own \HTML\ columns.
+% ^^A \item |&| catcode changes are localized, perhaps causing errors
+% ^^A about the tab alignment character |&|,
+% ^^A so any definitions of macros or environments
+% ^^A which themselves contain \env{tabular} and |&| must be enclosed within \cs{StartDefiningTabulars}
+% ^^A and \cs{StopDefiningTabulars} (previously called \cs{EndDefiningTabulars}.
+% ^^A See \cref{sec:localizingcatcodes}.
+% ^^A This change is not required for the routine use of tables,
+% ^^A but only when a table is defined inside another macro or environment,
+% ^^A and while also using the |&| character inside the definition.
+% ^^A This may include the use inside conditional expressions.
+% ^^A \item Several math environments were incorrectly placed inline.
+% ^^A Also, for \pkg{amsmath} with \SVG\ math, the \optn{fleqn} option has been removed,
+% ^^A resulting in improved spacing for aligned equations.
+% ^^A \item Bug fixes; see the changelog.
+% ^^A \end{itemize}
+% ^^A \item[v0.32:] Bug fixes; no source changes needed:
+% ^^A \begin{itemize}
+% ^^A \item \prog{lwarpmk} has been adjusted to work with the latest \prog{luatex}.
+% ^^A \item Spaces in the \cs{usepackage} and \cs{RequirePackage} package lists are now accepted and ignored.
+% ^^A \item Fix for the \pkg{glossaries} package and \cs{glo@name}.
+% ^^A \end{itemize}
+% ^^A \item[v0.31:] Bug fix; no source changes needed:
+% ^^A \begin{itemize}
+% ^^A \item Improved compatibility with \pkg{keyfloat},
+% ^^A including the new \env{keywrap} environment.
+% ^^A \end{itemize}
+% ^^A \needspace{2\baselineskip}
+% ^^A \item[v0.30:] \
+% ^^A \begin{itemize}
+% ^^A \item \pkg{lwarp-newproject} has been removed, and its functions
+% ^^A \watchout[\pkg{lwarp-newproject}]
+% ^^A have been combined with \pkg{lwarp}.
+% ^^A
+% ^^A To modify existing documents, remove from the document source:
+% ^^A \begin{sourceverb}
+% ^^A \usepackage{lwarp-newproject}
+% ^^A \end{sourceverb}
+% ^^A
+% ^^A The \pkg{lwarp} package now produces the configuration files during
+% ^^A print output, and also accepts the option \optn{lwarpmk} if desired.
+% ^^A
+% ^^A \item A number of macros
+% ^^A \watchout[HTML setup changes.]
+% ^^A related to \HTML\ settings have been converted to options, and
+% ^^A other macros and options have been renamed to create a consistent syntax:
+% ^^A \begin{center}
+% ^^A \begin{tabular}{cc}
+% ^^A \toprule
+% ^^A Old Macro & New Package Option \\ \midrule
+% ^^A \cs{HomeHTMLFileName} & |HomeHTMLFilename| \\
+% ^^A \cs{HTMLFileName} & |HTMLFilename| \\
+% ^^A \cs{useLatexmk} & |latexmk| \\
+% ^^A \cs{warpOSwindows} & |OSWindows| \\[2.5ex] \toprule
+% ^^A Old Package Option & New Package Option \\ \midrule
+% ^^A \optn{lwarpmklang} & \optn{xindyLanguage} \\
+% ^^A (new) & \optn{xindyStyle} \\[2.5ex] \toprule
+% ^^A Old Macro & New Macro \\ \midrule
+% ^^A \cs{MetaLanguage} & \cs{HTMLLanguage} \\
+% ^^A \cs{HTMLauthor} & \cs{HTMLAuthor} \\
+% ^^A \cs{NewHTMLdescription} & \cs{HTMLDescription} \\
+% ^^A \cs{SetFirstPageTop} & \cs{HTMLFirstPageTop} \\
+% ^^A \cs{SetPageTop} & \cs{HTMLPageTop} \\
+% ^^A \cs{SetPageBottom} & \cs{HTMLPageBottom} \\
+% ^^A \cs{NewCSS} & \cs{CSSFilename} \\
+% ^^A \bottomrule
+% ^^A \end{tabular}
+% ^^A \end{center}
+% ^^A
+% ^^A \needspace{2\baselineskip}
+% ^^A \item Per the above changes, in existing documents,
+% ^^A modify the package load of \pkg{lwarp}, such as:
+% ^^A \begin{sourceverb}
+% ^^A \usepackage[
+% ^^A HomeHTMLFilename=index,
+% ^^A HTMLFilename={},
+% ^^A xindyLanguage=english
+% ^^A ]{lwarp}
+% ^^A \end{sourceverb}
+% ^^A
+% ^^A \item The file |lwarp_html.xdy| has been renamed |lwarp.xdy|.
+% ^^A To update each document's project:
+% ^^A \begin{enumerate}
+% ^^A \item Make the changes shown above.
+% ^^A \item Recompile the document in print mode.
+% ^^A This updates the project's configuration files, and also generates the
+% ^^A new file |lwarp.xdy|.
+% ^^A \item The old file |lwarp_html.xdy| may be deleted.
+% ^^A \end{enumerate}
+% ^^A
+% ^^A \item The new \pkg{lwarp} package option \optn{xindyStyle} may be used to tell
+% ^^A \prog{lwarpmk} to use a custom |.xdy| file instead of |lwarp.xdy|.
+% ^^A See \cref{sec:modifyxindy}.
+% ^^A
+% ^^A \item Improvements in index processing:
+% ^^A \begin{itemize}
+% ^^A \item \prog{xindy}'s language is now used for index processing
+% ^^A as well as glossary.
+% ^^A \item Print mode without \prog{latexmk} now uses \prog{xindy} instead of \prog{makeindex}.
+% ^^A \item \prog{texindy}/\prog{xindy} usage depends on \prog{pdflatex} vs \prog{xelatex}, \prog{lualatex}.
+% ^^A \item For \prog{pdflatex} and \prog{texindy}, the \optn{-C utf8} option is used. This is
+% ^^A supported in modern distributions, but a customized \filenm{lwarpmk.lua} may
+% ^^A need to be created for use with older distributions.
+% ^^A \end{itemize}
+% ^^A
+% ^^A \end{itemize}
+% ^^A
+% ^^A \needspace{2\baselineskip}
+% ^^A
+% ^^A \item[v0.29:] \
+% ^^A \begin{itemize}
+% ^^A \item Add: \optn{lwarpmklang} option for \pkg{lwarp-newproject} and \pkg{lwarp}.
+% ^^A Sets the language to use while processing the glossary.
+% ^^A (As of v0.30, this has been changed to the \optn{IndexLanguage} option.)
+% ^^A (As of v0.54, this has been changed to the \optn{xindyLanguage} option.)
+% ^^A \item Fix: \cs{includegraphics} when no optional arguments.
+% ^^A \end{itemize}
+% ^^A \item[v0.28:] \
+% ^^A \begin{itemize}
+% ^^A \item \cs{HTMLAuthor} \marg{name} assigns \HTML\ meta author if non-empty.
+% ^^A Defaults to \cs{theauthor}.
+% ^^A \item Booean |HTMLDebugComments| controls whether \HTML\ comments are
+% ^^A added for closing \element{div}s, opening and closing sections, etc.
+% ^^A \item Boolean |FormatEPUB| changes \HTML\ output for easy \EPUB\ conversion
+% ^^A via an external program.
+% ^^A Removes per-file headers, footers, and nav. Adds footnotes per chapter/section.
+% ^^A \item Boolean |FormatWordProcessor| changes \HTML\ output for easier conversion
+% ^^A by a word processor. Removes headers and nav, prints footnotes per section,
+% ^^A and also forces single-file output and turns off \HTML\ debug comments.
+% ^^A Name changed to |FormatWP| as of v0.42.
+% ^^A \item Boolean |HTMLMarkFloats| adds text marks around floats only if the boolean
+% ^^A |FormatWordProcessor| is |true|.
+% ^^A These make it easier to identify float boundaries,
+% ^^A which are to be manually converted to word-processor frames.
+% ^^A Name changed to |WPMarkFloats| as of v0.42.
+% ^^A \item Updated for the new \brand{MathJax} \acro{CDN} repository.
+% ^^A \item Adds \pkg{tabulary}.
+% ^^A \item Supports the options syntax for \pkg{graphics}.
+% ^^A \item Improved index references, now pointing exactly to their target.
+% ^^A \item Adds \pkg{glossaries}.
+% ^^A \prog{lwarpmk} is modified to add |printglosssary| and |htmlglossary| actions.
+% ^^A \end{itemize}
+% ^^A
% ^^A \needspace{2\baselineskip}
% ^^A \item[v0.27:] \
% ^^A \begin{itemize}
@@ -5078,7 +5130,7 @@ This boolean may be tested by the user for later use.
% \spkg{ujarticle} and related,
% \spkg{utarticle} and related. \\
%
-% Korean: & \spkg{kotex}, \spkg{luatexko}, \spkg{xetexko}. \\
+% Korean: & \spkg{kotex}, \mpkg{luatexko}, \spkg{xetexko}. \\
%
% \midrule
%
@@ -5113,13 +5165,15 @@ This boolean may be tested by the user for later use.
% Common short words and punctuation are removed from the filenames.
% \epkg{anonchap}, \ipkg{bsheaders}, \ipkg{fncychap}, \epkg{hypbmsec},
% \epkg{indentfirst}, \epkg{quotchap},
-% \ipkg{section}, \mpkg{sectionbreak}, \spkg{secdot}, \ipkg{sectsty}, \ipkg{titlesec}.
+% \ipkg{section}, \mpkg{sectionbreak}, \spkg{secdot}, \ipkg{sectsty},
+% \ipkg{titlesec}, \spkg{tocvsec2}.
% \\
%
% Table of contents, figures, tables: & Supported, with hyperlinks.
-% \ipkg{minitoc}, \ipkg{multitoc}, \spkg{shorttoc}, \ipkg{titletoc},
+% \ipkg{etoc}, \ipkg{minitoc}, \ipkg{multitoc}, \spkg{shorttoc},
+% \spkg{tableof}, \ipkg{titletoc},
% \ipkg{tocbasic}, \mpkg{tocbibind}, \mpkg{tocdata},
-% \ipkg{tocloft}, \ipkg{tocstyle}. \\
+% \ipkg{tocloft}, \ipkg{tocstyle}, \spkg{tocvsec2}. \\
%
% Title page: & \cs{maketitle}, \env{titlepage}, \mpkg{authblk}, \mpkg{titling}. \\
%
@@ -5153,14 +5207,15 @@ This boolean may be tested by the user for later use.
% \epkg{scrlayer-notecolumn}, \epkg{versonotes}. \\
%
% Footnotes: & Adds \progcode{FootnoteDepth} to print footnotes at section breaks.
+% \brand{MathJax} emulation for \cs{footnote}, and also as marked in the following:
% \epkg{bigfoot}, \ipkg{dblfnote},
-% \ipkg{endheads}, \mpkg{endnotes}, \spkg{fixfoot},
+% \ipkg{endheads}, \mpkg{endnotes}\ejax, \spkg{fixfoot},
% \ipkg{fnbreak}, \ipkg{fnpara}, \ipkg{fnpos},
% \epkg{footmisc}, \mpkg{footnote}, \ipkg{footnotebackref},
% \mpkg{footnoterange}, \ipkg{footnpag}, \epkg{manyfoot},
-% \epkg{marginnote}, \spkg{nccfoots}, \spkg{pagenote},
-% \mpkg{parnotes}, \ipkg{pdfcolfoot}, \ipkg{pfnote}, \spkg{sepfootnotes},
-% \mpkg{sidenotes}, \ipkg{tablefootnote}.
+% \epkg{marginnote}\ejax, \spkg{nccfoots}\ejax, \spkg{pagenote}\ejax,
+% \mpkg{parnotes}\ejax, \ipkg{pdfcolfoot}, \ipkg{pfnote}, \spkg{sepfootnotes},
+% \mpkg{sidenotes}\ejax, \ipkg{tablefootnote}.
% \\
%
% \midrule
@@ -6761,7 +6816,7 @@ This boolean may be tested by the user for later use.
% \gindex{HTML>alt text=\attribute{alt} text}
% \gindex{image>alt text=\attribute{alt} text}
% \gindex{math>alt text=\attribute{alt} text}
-% \gindex{MathJax=\brand{MathJax}>accessibility}
+% \gindex{mathjax=\brand{MathJax}>accessibility}
% \gindex{link>title=\attribute{title} text}
% \gindex{hyperref=\pkg{hyperref}>title=\attribute{title} text}
% \gindex{settings>accessibility}
@@ -8544,12 +8599,17 @@ This boolean may be tested by the user for later use.
% \limitshyperlinks
%
%
-% \subsubsection{Footnotes and page notes}
+% \subsubsection{Footnotes, endnotes, and page notes}
% \label{sec:limitsfootnotes}
%
% \trouble{footnote>numbering}
% \gindex{footnotes>numbering}
+% \gindex{footnotes>mathjax=\brand{MathJax}}
% \trouble{footnote>in sectioning command}
+% \trouble{mathjax=\brand{MathJax}>footnotes}
+% \trouble{math>footnote>mathjax=\brand{MathJax}}
+% \trouble{footnote>mathjax=\brand{MathJax}}
+% \trouble{sidenotes=\pkg{sidenotes}>numbering}
%
% \limitsfootnotes
%
@@ -8597,11 +8657,12 @@ This boolean may be tested by the user for later use.
% \changes{v0.38}{2017/08/24}{Docs: Starred sections.}
%
% The following describes \cs{ForceHTMLPage} and \cs{ForceHTMLTOC},
+% \margintag{\HTML\ page and \TOC}
% which may be used for \pkg{endnotes}, \pkg{glossaries}, \pkg{tocbibind},
% bibliographies, and the index.
% See the following sections where applicable.
% Continue here if interested in the reason for adding these commands to \pkg{lwarp}.
-% \trouble{endnotes>HTML=\HTML\ page and \TOC}
+% \trouble{endnotes=\pkg{endnotes}>HTML=\HTML\ page and \TOC}
% \trouble{glossaries=\pkg{glossaries}>HTML=\HTML\ page and \TOC}
% \trouble{bibliography>HTML=\HTML\ page and \TOC}
% \trouble{index>HTML=\HTML\ page and \TOC}
@@ -8680,6 +8741,7 @@ This boolean may be tested by the user for later use.
% \subsubsection{\pkg{endnotes} package}
%
% \DescribePackage{endnotes}
+% \trouble{endnotes=\pkg{endnotes}>numbering}
% \limitsendnotes
%
%
@@ -9412,7 +9474,7 @@ This boolean may be tested by the user for later use.
% \gindex{dynamic math}
% \trouble{math>tikz=\tikz}
% \trouble{tikz>in math}
-% \trouble{MathJax=\brand{MathJax}>errors}
+% \trouble{mathjax=\brand{MathJax}>errors}
% \trouble{HTML>alt tags}
% \trouble{alt tags}
%
@@ -9448,8 +9510,8 @@ This boolean may be tested by the user for later use.
% \subsubsection{\pkg{physics} package}
% \label{sec:limitsphysics}
%
-% \trouble{MathJax=\brand{MathJax}>physics=\pkg{physics}}
-% \trouble{physics=\pkg{physics}>MathJax=\brand{MathJax}}
+% \trouble{mathjax=\brand{MathJax}>physics=\pkg{physics}}
+% \trouble{physics=\pkg{physics}>mathjax=\brand{MathJax}}
%
% \DescribePackage{physics}
% \limitsphysics
@@ -11035,8 +11097,8 @@ This boolean may be tested by the user for later use.
%
% \needspace{3\baselineskip}
% \item [Incorrect \brand{MathJax}:] Some objects do not convert to \brand{Mathjax}.
-% \trouble[\brand{MathJax}]{MathJax=\brand{MathJax}>errors}
-% \trouble{MathJax=\brand{MathJax}>unsupported packages}
+% \trouble[\brand{MathJax}]{mathjax=\brand{MathJax}>errors}
+% \trouble{mathjax=\brand{MathJax}>unsupported packages}
% Use \cs{displaymathother} before these objects, then \cs{displaymathnormal} to return
% to ``normal'' display math.
% See \cref{sec:displaymathother}.
@@ -11599,9 +11661,9 @@ This boolean may be tested by the user for later use.
\@ifpackageloaded{#1}
{}
{
-\PackageError{lwarp}
-{Package #1 must be loaded before lwarp}
-{Move \detokenize{\usepackage}{#1} before \detokenize{\usepackage}{lwarp}.}
+ \PackageError{lwarp}
+ {Package #1 must be loaded before lwarp}
+ {Move \detokenize{\usepackage}{#1} before \detokenize{\usepackage}{lwarp}.}
}
}
% \end{macrocode}
@@ -11788,6 +11850,7 @@ This boolean may be tested by the user for later use.
% \LuaLaTeX\ to preload graphics and graphicx.}
% \changes{v0.45}{2017/12/03}{Allows \pkg{memoir}'s preloaded packages.}
% \changes{v0.58}{2018/06/21}{Fix: \pkg{memoir} and \pkg{ccaption}.}
+% \changes{v0.82}{2020/03/17}{\pkg{syntonly}: Added to \cs{LWR@loadafter}.}
%
% The following packages must be loaded after \pkg{lwarp}:
% ^^A *loadafter
@@ -11916,6 +11979,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{eqparbox}
\LWR@loadafter{errata}
\LWR@loadafter{eso-pic}
+\LWR@loadafter{etoc}
\LWR@loadafter{eurosym}
\LWR@loadafter{everypage}
\LWR@loadafter{everyshi}
@@ -12064,6 +12128,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{nameref}
\LWR@loadafter{natbib}
\LWR@notmemoirloadafter{nccfancyhdr}
+\LWR@loadafter{nccfoots}
\LWR@loadafter{nccmath}
\LWR@notmemoirloadafter{needspace}
% newclude must be loaded before lwarp
@@ -12195,6 +12260,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{subsupscripts}
\LWR@loadafter{supertabular}
\LWR@loadafter{svg}
+\LWR@loadafter{syntonly}
\LWR@loadafter{t1inc}
\LWR@loadafter{tabfigures}
\LWR@loadafter{tabls}
@@ -12552,6 +12618,16 @@ This boolean may be tested by the user for later use.
% \end{macro}
%
%
+% \begin{macro}{\LWR@disablepinyin} Disable \pkg{xpinyin} during
+% file, side\acro{TOC}, and footnote generation.
+% Set by \pkg{xpinyin}.
+% \changes{v0.82}{2020/03/25}{Added.}
+% \begin{macrocode}
+\newcommand*{\LWR@disablepinyin}{}
+% \end{macrocode}
+% \end{macro}
+%
+%
% \subsection{Inserting vertical space}
%
% \begin{macro}{\LWR@forceemptyline} Extra vertical space in the \HTML\ output.
@@ -12925,7 +13001,7 @@ This boolean may be tested by the user for later use.
% \DescribeOption{mathjax}
% Option \optn{mathjax} selects \brand{MathJax} math display:
% \gindex{math>mathjax=\optn{mathjax} option}
-% \gindex{MathJax=\brand{MathJax}>mathjax=\optn{mathjax} option}
+% \gindex{mathjax=\brand{MathJax}>mathjax=\optn{mathjax} option}
% If the \optn{mathjax} option is given, boolean |mathjax| is true, may be used for \cs{ifbool} tests.
% \begin{macrocode}
\DeclareVoidOption{mathjax}{%
@@ -14785,6 +14861,7 @@ This boolean may be tested by the user for later use.
% then redefines \cs{name} to use either the print or \HTML\ version depending
% on which mode \pkg{lwarp} is using. \pkg{xparse} may be used to
% define the new \HTML\ version, even if the original did not use \pkg{xparse}.
+% \pkg{expl3} syntax may be used as well.
% \item[For a preexisiting environment, not defined with \pkg{xparse}:] The process
% is similar. Note the use of \cs{LWR@formattedenv} instead of \cs{LWR@formatted}.
@@ -14828,6 +14905,7 @@ This boolean may be tested by the user for later use.
% The plain \cs{name} or environment \env{name} is used for the printed
% version, and is placed inside \env{warpall}.
% \pkg{xparse} may be used for the \cs{LWR@HTML@<name>} version.
+% \pkg{expl3} syntax may be used for the print and \HTML\ versions.
%
% \item [For a new macro or environment, using \pkg{xparse}:]
% It is possible to use \pkg{xparse} for an entirely new macro or environment
@@ -18261,8 +18339,8 @@ page_compositor "."
% but do not need to be present when distributing
% the resulting \HTML\ files.
%
-% \gindex{MathJax=\brand{MathJax}>custom script}
-% \trouble{MathJax=\brand{MathJax}>custom script}
+% \gindex{mathjax=\brand{MathJax}>custom script}
+% \trouble{mathjax=\brand{MathJax}>custom script}
% To generate a custom script, such as to use a local repository,
% \margintag{custom script}
% copy \filenm{lwarp_mathjax.txt} to a new file,
@@ -18527,7 +18605,7 @@ src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.6/MathJax.js?config=TeX-
-- Copyright 2016-2020 Brian Dunn
-printversion = "v0.81"
+printversion = "v0.82"
requiredconfversion = "2" -- also at *lwarpmk.conf
function printhelp ()
@@ -19811,7 +19889,7 @@ end -- not --version
% \gindex{SVG>dynamic math}
% \trouble{math>incorrect}
% \trouble{math>dynamic}
-% \trouble{MathJax=\brand{MathJax}>errors}
+% \trouble{mathjax=\brand{MathJax}>errors}
% \gindex{math>dynamic}
% \gindex{dynamic math expressions}
%
@@ -20043,7 +20121,14 @@ end -- not --version
% \begin{macrocode}
\newcommand*{\LWR@htmlsectionfilename}[1]{%
\LWR@traceinfo{LWR@htmlsectionfilename A !\detokenize{#1}!}%
+\begingroup%
+% \end{macrocode}
+%
+% Disable CJK \pkg{xpinyin} while generating file names.
+% \begin{macrocode}
+\LWR@disablepinyin%
% \end{macrocode}
+%
% Section 0 or empty is given the home filename.
% The filename must be detokenized for underscores.
% \begin{macrocode}
@@ -20086,6 +20171,7 @@ end -- not --version
}%
}%
\LWR@traceinfo{LWR@htmlsectionfilename Z}%
+\endgroup%
}
% \end{macrocode}
% \end{macro}
@@ -21967,11 +22053,19 @@ end -- not --version
% \begin{macrocode}
\color@begingroup%
% \end{macrocode}
-% Use \HTML\ superscripts in the footnote even inside a \env{lateximage}:
+%
+% Disable CJK \pkg{xpinyin} while generating footnotes.
+% \begin{macrocode}
+ \LWR@disablepinyin%
+% \end{macrocode}
+%
+% Use \HTML\ superscripts in the footnote even when the main text is
+% inside a \env{lateximage}, because the footnote will be in \HTML:
% \changes{v0.50}{2018/02/20}{Robustify macros.}
% \begin{macrocode}
\renewrobustcmd{\textsuperscript}[1]{\LWR@htmlspan{sup}{##1}}%
% \end{macrocode}
+%
% Use paragraph tags if in a tabular data cell or a \env{lateximage}:
% \changes{v0.66}{2019/02/02}{Improved \HTML\ formatting.}
% \begin{macrocode}
@@ -22830,15 +22924,54 @@ end -- not --version
%
% Default customizations:
+% \margintag{defaults}
%
-% \changes{v0.51}{2018/03/18}{MathJax: Nullifies \cs{ensuremath}.}
-% \changes{v0.57}{2018/05/24}{MathJax: Supports \cs{footnote}, \cs{footnotemark}.}
+% In the \brand{MathJax} code, footnotes are only referenced.
+% For equations, they are also generated
+% in the \HTML\ when the \LaTeX\ math is generated inside the \HTML\ comment.
+% For other math environments, the \cs{footnotemark} \Slash \cs{footnotetext}
+% method must be used. See \cref{sec:limitsfootnotes} regarding \cs{footnotemark}.
+% \watchout[\cs{footnotemark}]
+%
+% \changes{v0.51}{2018/03/18}{\brand{MathJax}: Nullifies \cs{ensuremath}.}
+% \changes{v0.57}{2018/05/24}{\brand{MathJax}: Supports \cs{footnote}, \cs{footnotemark}.}
% \changes{v0.79}{2020/01/24}{\brand{MathJax}: Additional macros.}
+%
+% For footnotes, \cs{footnotename} is used in most cases, however
+% for \env{equation} the footnote is picked up from \LaTeX in \cs{LWR@doendequation}.
+%
+% First, \cs{footnotename} for \brand{MathJax} is copied from \LaTeX.
+% \changes{v0.82}{2020/03/09}{\brand{MathJax}: Improved footnotes.}
+% \begin{macrocode}
+\providecommand{\footnotename}{footnote}
+
+% due to warpMathJax:
+\end{warpHTML}
+
+\begin{warpMathJax}
+\xdef\LWR@customizedMathJax{\LWR@customizedMathJax%
+ \LWRbackslash(%
+ \LWRbackslash{}newcommand%
+ \{\LWRbackslash{}footnotename\}%
+ \{\footnotename\}%
+ \LWRbackslash)\par%
+}
+\end{warpMathJax}
+% \end{macrocode}
+
+% \cs{LWRfootnote} is set per \env{equation} if a footnote is detected in the
+% equation's math expression, otherwise it defaults to \cs{footnotename}.
+% \begin{macrocode}
+\begin{warpMathJax}
+\CustomizeMathJax{\def\LWRfootnote{1}}
+\CustomizeMathJax{\newcommand{\footnote}[2][\LWRfootnote]{{}^{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\footnotemark}[1][\LWRfootnote]{{}^{\mathrm{#1}}}}
+\end{warpMathJax}
+% \end{macrocode}
+
% \begin{macrocode}
\begin{warpMathJax}
\CustomizeMathJax{\newcommand\ensuremath[1]{#1}}
-\CustomizeMathJax{\newcommand\footnote[2][]{\text{( Footnote #1 )}}}
-\CustomizeMathJax{\newcommand\footnotemark[1][]{\text{( Footnote #1 )}}}
\CustomizeMathJax{% absorb two optional arguments
\newcommand{\LWRframebox}[2][]{\fbox{#2}}
\newcommand{\framebox}[1][]{\LWRframebox}
@@ -22851,6 +22984,8 @@ end -- not --version
\CustomizeMathJax{\newcommand{\directlua}[1]{\text{(directlua)}}}
\CustomizeMathJax{\newcommand{\luatexdirectlua}[1]{\text{(directlua)}}}
\end{warpMathJax}
+
+\begin{warpHTML}% due to warpMathJax
% \end{macrocode}
@@ -31633,20 +31768,26 @@ end -- not --version
% Only if the file exists:
% \begin{macrocode}
\IfFileExists{\jobname.#1}{%
- \LWR@traceinfo{LWR@myshorttoc: loading}%
+ \LWR@traceinfo{LWR@myshorttoc: loading}%
% \end{macrocode}
%
% Many of the commands in the file will have |@| characters in them, so |@|
% \watchout
% must be made a regular letter.
% \begin{macrocode}
- \begingroup%
- \makeatletter%
+ \begingroup%
+ \makeatletter%
% \end{macrocode}
+%
+% Disable CJK \pkg{xpinyin} while generating the side\TOC.
+% \begin{macrocode}
+ \LWR@disablepinyin%
+% \end{macrocode}
+%
% Read in the \TOC\ file:
% \begin{macrocode}
- \@input{\jobname.#1}%
- \endgroup%
+ \@input{\jobname.#1}%
+ \endgroup%
}%
{}%
\LWR@traceinfo{LWR@myshorttoc: done}%
@@ -33296,7 +33437,11 @@ end -- not --version
% \begin{macrocode}
{%
\LWR@traceinfo{LWR@subsingledollar: Mathjax}%
- {\textbackslash(\LWR@HTMLsanitize{#4}\textbackslash)}%
+ {%
+ \textbackslash(%
+ \LWR@HTMLsanitize{#4}%
+ \textbackslash)%
+ }%
}% mathjax
% \end{macrocode}
% For SVG, print the math inside a \env{lateximage},
@@ -33632,13 +33777,16 @@ end -- not --version
% \end{macrocode}
% If using chapters, place the chapter number in front of the equation.
% Otherwise, use the simple equation number.
+% \changes{v0.82}{2020/03/09}{Removed \element{par} tags.}
% \begin{macrocode}
\ifcsdef{thechapter}{
+ \LWR@stoppars%
\InlineClass{hidden}{
\textbackslash(
\textbackslash{}seteqsection \{\thechapter\}
\textbackslash)
}
+ \LWR@startpars%
}
{}% not using chapters
% \end{macrocode}
@@ -33655,12 +33803,15 @@ end -- not --version
% \end{macrocode}
% Place the \brand{MathJax} command inside ``\cs{(}'' and ``\cs{)}'' characters,
% to be printed to \HTML, not interpreted by \LaTeX.
+% \changes{v0.82}{2020/03/09}{Removed \element{par} tags.}
% \begin{macrocode}
+ \LWR@stoppars%
\InlineClass{hidden}{
\textbackslash(
\textbackslash{}seteqnumber \{\arabic{LWR@nextequation}\}
\textbackslash)
}
+ \LWR@startpars%
}{}% not eq > 0
}
% \end{macrocode}
@@ -33786,7 +33937,7 @@ end -- not --version
% Print commands to syncronize \brand{MathJax}'s equation number and format
% to the current \LaTeX\ chapter/section and equation number:
% \begin{macrocode}
- \LWR@syncmathjax
+ \LWR@syncmathjax%
% \end{macrocode}
% Print the \LaTeX\ math inside an \HTML\ comment:
% \begin{macrocode}
@@ -33849,14 +34000,22 @@ end -- not --version
}
% \end{macrocode}
%
-%
% After the environment, if \brand{MathJax}, print the math to the \HTML\ output
-% for \brand{MathJax} processing:
+% for \brand{MathJax} processing.
+% If a footnote is used, sync the \ctr{footnote} counter before,
+% then unsync after for non-equation environments, as defined next.
+% \changes{v0.82}{2020/03/09}{\brand{MathJax}: Improved footnotes.}
% \begin{macrocode}
\newcommand*{\LWR@doendequation}[1]{%
\ifboolexpr{bool{mathjax} or ( bool{FormatWP} and bool{WPMarkMath} ) }%
{%
- \LWR@addmathjax{#1}{\BODY}%
+ \IfSubStr{\detokenize\expandafter{\BODY}}{\detokenize{note}}{%
+ \InlineClass{hidden}{\LWR@syncnotenumbers}%
+ \LWR@addmathjax{#1}{\BODY}%
+ \InlineClass{hidden}{\LWR@syncnotenames}%
+ }{%
+ \LWR@addmathjax{#1}{\BODY}%
+ }%
}{}%
% \end{macrocode}
@@ -33869,6 +34028,51 @@ end -- not --version
% \end{macro}
+% The following are used to syncronize footnote marks and related to
+% \brand{MathJax} if |*note*| is used inside the \brand{MathJax} expression.
+% The counter is read from \LaTeX\ then defined into \brand{MathJax} for use during
+% the following equation. After the equation, the \brand{MathJax} value is
+% returned to the text from \cs{footnotename}. Other notes may be added by
+% appending to \cs{LWR@syncnotenumbers} and \cs{LWR@syncnotenames}.
+%
+% \changes{v0.82}{2020/03/09}{\brand{MathJax}: Improved footnotes.}
+%
+% \begin{macro}{\LWR@synconenotenumber} \marg{\brand{MathJax} variable} \marg{mark}
+% \begin{macrocode}
+\newcommand*{\LWR@synconenotenumber}[2]{%
+ \textbackslash(
+ \textbackslash{}def\textbackslash{}#1\{#2\}
+ \textbackslash)
+}
+% \end{macrocode}
+% \end{macro}
+
+
+% \begin{macro}{\LWR@syncnotenumbers} Assignments to make.
+% \begin{macrocode}
+\newcommand*{\LWR@syncnotenumbers}{\LWR@synconenotenumber{LWRfootnote}{\thefootnote}}
+% \end{macrocode}
+% \end{macro}
+
+
+% \begin{macro}{\LWR@synconenotename} \marg{\brand{MathJax} variable} \marg{text}
+% \begin{macrocode}
+\newcommand*{\LWR@synconenotename}[2]{%
+ \textbackslash(
+ \textbackslash{}def\textbackslash{}#1\{#2\}
+ \textbackslash)
+}
+% \end{macrocode}
+% \end{macro}
+
+
+% \begin{macro}{\LWR@syncnotenames} Assignments to make.
+% \begin{macrocode}
+\newcommand*{\LWR@syncnotenames}{\LWR@synconenotename{LWRfootnote}{\footnotename}}
+% \end{macrocode}
+% \end{macro}
+
+
% Remove existing \env{equation} environment:
% \begin{macrocode}
\AtBeginDocument{
@@ -35155,6 +35359,12 @@ end -- not --version
\LWR@PreloadedPackage{lltjext}
% \end{macrocode}
+% \pkg{luatexko} must be loaded before \pkg{lwarp}.
+% \begin{macrocode}
+\LWR@PreloadedPackage{luatexko}
+% \end{macrocode}
+
+
% \begin{macrocode}
\end{warpHTML}
% \end{macrocode}
@@ -40098,9 +40308,10 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"%
%
% For \brand{MathJax}:
% \changes{v0.79}{2020/01/27}{\pkg{amsmath}: Added \brand{MathJax} emulation.}
+% \changes{v0.82}{2020/03/14}{\pkg{amsmath}: Fixed: \cs{intertext} for \brand{MathJax}.}
% \begin{macrocode}
\begin{warpMathJax}
-\CustomizeMathJax{\newcommand{\intertext}[1]{\\ \text{#1}\notag \\}}
+\CustomizeMathJax{\newcommand{\intertext}[1]{\text{#1}\notag \\}}
\end{warpMathJax}
% \end{macrocode}
%
@@ -40707,7 +40918,7 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"%
%
% For \brand{MathJax}, limited emulation is provided for math mode.
% \trouble{arydshln=\pkg{arydshln}}
-% \trouble{Mathjax=\brand{MathJax}>arydshln=\pkg{arydshln}}
+% \trouble{mathjax=\brand{MathJax}>arydshln=\pkg{arydshln}}
%
% \changes{v0.56}{2018/05/02}{\pkg{arydshln}: Added.}
%
@@ -42459,7 +42670,7 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"%
%
% For \brand{MathJax}, emulation is provided in math mode, but \watchout[\cs{cmidrule}]
% \trouble{booktabs=\pkg{booktabs}}
-% \trouble{Mathjax=\brand{MathJax}>booktabs=\pkg{booktabs}}
+% \trouble{mathjax=\brand{MathJax}>booktabs=\pkg{booktabs}}
% \cs{cmidrule} trim must not be used.
%
% \changes{v0.34}{2017/08/08}{\pkg{booktabs}: Works inside \env{lateximage}.}
@@ -43775,21 +43986,33 @@ s%
% may be changed at any time, and are unlikely to be reused inline anyhow.
%
% \changes{v0.51}{2018/03/04}{\pkg{chemfig}: Added.}
-% \changes{v0.71}{2019/04/25}{\pkg{chemfig}: Updated for v1.4.}
+% \changes{v0.71}{2019/04/25}{\pkg{chemfig}: Updated to v1.4.}
+% \changes{v0.82}{2020/03/12}{\pkg{chemfig}: Updated to v1.5.}
%
% \codehtml
%
% \begin{macrocode}
-\LWR@ProvidesPackagePass{chemfig}
+\LWR@ProvidesPackagePass{chemfig}[2020/03/05]
% \end{macrocode}
% \begin{macrocode}
\catcode`\_=11
+\@ifpackagelater{chemfig}{2020/03/05}
+{
+ \xpretocmd\charge{\begin{lateximage}[-chemfig-~\PackageDiagramAltText]}
+ {}{\LWR@patcherror{chemfig}{charge}}
+ \xpretocmd\Charge{\begin{lateximage}[-chemfig-~\PackageDiagramAltText]}
+ {}{\LWR@patcherror{chemfig}{Charge}}
+ \xapptocmd\charge_c{\end{lateximage}}
+ {}{\LWR@patcherror{chemfig}{charge_c}}
+}{}
+
\@ifpackagelater{chemfig}{2019/04/18}%
{% 2019/04/18 or newer
+
\LetLtxMacro\LWR@chemfig@origchemfig\chemfig
\renewcommand*{\chemfig}[2][]{%
@@ -45499,6 +45722,8 @@ name = \chemmacros_translate:n {scheme-name}
%
%
%
+%
+%
% \iffalse
%<*CJK>
% \fi
@@ -46735,6 +46960,7 @@ name = \chemmacros_translate:n {scheme-name}
% \credits{Sergio Callegari}
%
% \changes{v0.20}{2017/01/11}{\pkg{draftwatermark}: Added.}
+% \changes{v0.82}{2020/03/21}{\pkg{draftwatermark}: Updated to v2.0.}
%
% \DescribePackage{draftwatermark}
% \pkg{draftwatermark} is ignored.
@@ -46742,10 +46968,12 @@ name = \chemmacros_translate:n {scheme-name}
% \codehtml
% \begin{macrocode}
-\LWR@ProvidesPackageDrop{draftwatermark}[2015/02/19]
+\LWR@ProvidesPackageDrop{draftwatermark}[2020/03/14]
% \end{macrocode}
% \begin{macrocode}
+\newcommand{\DraftwatermarkOptions}[1]{}
+\newcommand{\DraftwatermarkStdMark}{}
\newcommand{\SetWatermarkAngle}[1]{}
\newcommand{\SetWatermarkColor}[1]{}
\newcommand{\SetWatermarkLightness}[1]{}
@@ -47430,11 +47658,31 @@ name = \chemmacros_translate:n {scheme-name}
\makeenmark
% }
}
+% \end{macrocode}
+%
+% \changes{v0.82}{2020/03/14}{\pkg{endnotes}: Fix: Mark in print mode.}
+% \begin{macrocode}
+\def\LWR@HTML@@makeenmark{\hbox{\LWR@htmlspan{sup}{\normalfont\theenmark}}}
+\LWR@formatted{@makeenmark}
-\def\@makeenmark{\hbox{\LWR@htmlspan{sup}{\normalfont\theenmark}}}
\def\makeenmark{\@makeenmark}
% \end{macrocode}
%
+%
+% For \brand{MathJax}:
+% \changes{v0.82}{2020/03/14}{\pkg{endnotes}: Added \brand{MathJax} emulation.}
+% \begin{macrocode}
+\begin{warpMathJax}
+\def\endnotename{endnote}
+\appto\LWR@syncnotenumbers{\LWR@synconenotenumber{LWRendnote}{\theendnote}}
+\appto\LWR@syncnotenames{\LWR@synconenotename{LWRendnote}{\endnotename}}
+\CustomizeMathJax{\def\LWRendnote{1}}
+\CustomizeMathJax{\newcommand{\endnote}[2][\LWRendnote]{{}^{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\endnotemark}[1][\LWRendnote]{{}^{\mathrm{#1}}}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+%
% \iffalse
%</endnotes>
% \fi
@@ -48313,6 +48561,169 @@ name = \chemmacros_translate:n {scheme-name}
%
%
% \iffalse
+%<*etoc>
+% \fi
+%
+% \part{lwarp-etoc.sty}
+%
+% \section{etoc}
+%
+% \DescribePackage{etoc}
+% \pkg{etoc} is ignored.
+% All commands are nullified.
+%
+% The \pkg{etoc} package uses a non-standard syntax which looks ahead
+% \watchout[\cs{tableofcontents} with \cs{ref}]
+% after a \cs{tableofcontents} for a following \cs{ref}.
+% These \cs{ref}s appear in the \HTML\ result unless they are removed.
+% Where a \cs{tableofcontents} is followed by \cs{ref}, and perhaps also
+% \cs{label} as well, enclose all of them inside \cs{warpprintonly}:
+% \begin{sourcedisplay}
+% \textblue{\cs{warpprintonly}\{}\cs{tableofcontents}
+% \textred{\cs{ref}\{toc:abc\}} \cs{label}\{toc:def\}\textblue{\}}
+% \end{sourcedisplay}
+% or place all code related to a local \cs{tableofcontents} inside
+% a \env{warpprint} environment.
+%
+% Be sure to keep the initial \cs{tableofcontents} on the home page,
+% \watchout[home page]
+% perhaps in its own \cs{warpHTMLonly} macro or \env{warpHTML} environment.
+%
+% \changes{v0.82}{2020/03/22}{\pkg{etoc}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackageDrop{etoc}[2019/11/17]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\etocsetlevel#1#2{}
+\def\etocskipfirstprefix{}
+\let\etocthename \@empty
+\let\etocthenumber \@empty
+\let\etocthepage \@empty
+\let\etocthelinkedname \@empty
+\let\etocthelinkednumber \@empty
+\let\etocthelinkedpage \@empty
+\let\etocthelink \@firstofone % prior to 1.08j its was \let to \@empty
+\DeclareRobustCommand*{\etocname} {}
+\DeclareRobustCommand*{\etocnumber}{}
+\DeclareRobustCommand*{\etocpage} {}
+\DeclareRobustCommand*{\etoclink} {\@firstofone}
+\DeclareRobustCommand*{\etocifnumbered}{\@firstoftwo}
+\DeclareRobustCommand*{\etociffirst}{\@firstoftwo}
+\DeclareRobustCommand*\etocifwasempty{\@firstoftwo}
+\let\etocaftertitlehook \@empty
+\let\etocaftercontentshook \@empty
+\def\etoctableofcontents{}
+\newcommand*\localtableofcontents{}
+\newcommand*\localtableofcontentswithrelativedepth[1]{}
+\newcommand\etocsettocstyle[2]{}
+\long\def\etocsetstyle#1#2#3#4#5{}
+\def\etocfontminustwo {\normalfont \LARGE \bfseries}
+\def\etocfontminusone {\normalfont \large \bfseries}
+\def\etocfontzero {\normalfont \large \bfseries}
+\def\etocfontone {\normalfont \normalsize \bfseries}
+\def\etocfonttwo {\normalfont \normalsize}
+\def\etocfontthree {\normalfont \footnotesize}
+\def\etocsepminustwo {4ex \@plus .5ex \@minus .5ex}
+\def\etocsepminusone {4ex \@plus .5ex \@minus .5ex}
+\def\etocsepzero {2.5ex \@plus .4ex \@minus .4ex}
+\def\etocsepone {1.5ex \@plus .3ex \@minus .3ex}
+\def\etocseptwo {.5ex \@plus .1ex \@minus .1ex}
+\def\etocsepthree {.25ex \@plus .05ex \@minus .05ex}
+\def\etocbaselinespreadminustwo {1}
+\def\etocbaselinespreadminusone {1}
+\def\etocbaselinespreadzero {1}
+\def\etocbaselinespreadone {1}
+\def\etocbaselinespreadtwo {1}
+\def\etocbaselinespreadthree {.9}
+\def\etocminustwoleftmargin {1.5em plus 0.5fil}
+\def\etocminustworightmargin {1.5em plus -0.5fil}
+\def\etocminusoneleftmargin {1em}
+\def\etocminusonerightmargin {1em}
+\def\etoctoclineleaders
+ {\hbox{\normalfont\normalsize\hb@xt@2ex {\hss.\hss}}}
+\def\etocabbrevpagename {p.~}
+\def\etocpartname {Part}% modified 1.08b
+\def\etocbookname {Book}
+\def\etocdefaultlines{}
+\def\etocabovetocskip{3.5ex \@plus 1ex \@minus .2ex}
+\def\etocbelowtocskip{3.5ex \@plus 1ex \@minus .2ex}
+\def\etoccolumnsep{2em}
+\def\etocmulticolsep{0ex}
+\def\etocmulticolpretolerance{-1}
+\def\etocmulticoltolerance{200}
+\def\etocdefaultnbcol{2}
+\def\etocinnertopsep{2ex}
+\newcommand\etocmulticolstyle[2][]{}
+\def\etocinnerbottomsep{3.5ex}
+\def\etocinnerleftsep{2em}
+\def\etocinnerrightsep{2em}
+\def\etoctoprule{\hrule}
+\def\etocleftrule{\vrule}
+\def\etocrightrule{\vrule}
+\def\etocbottomrule{\hrule}
+\def\etoctoprulecolorcmd{\relax}
+\def\etocbottomrulecolorcmd{\relax}
+\def\etocleftrulecolorcmd{\relax}
+\def\etocrightrulecolorcmd{\relax}
+\newcommand*\etocruledstyle[2][]{}
+\def\etocframedmphook{\relax}
+\long\def\etocbkgcolorcmd{\relax}
+\newcommand*\etocframedstyle[2][]{}
+\def\etocmulticol{}
+\def\etocruled{}
+\def\etocframed{}
+\def\etoclocalmulticol{}
+\def\etoclocalruled{}
+\def\etoclocalframed{}
+\def\etocarticlestyle{}
+\def\etocarticlestylenomarks{}
+\def\etocbookstyle{}
+\def\etocbookstylenomarks{}
+\let\etocreportstyle\etocbookstyle
+\let\etocreportstylenomarks\etocbookstylenomarks
+\def\etocmemoirtoctotocfmt #1#2{}
+\def\etocmemoirstyle{}
+\def\etocscrartclstyle{}
+\let\etocscrbookstyle\etocscrartclstyle
+\let\etocscrreprtstyle\etocscrartclstyle
+\def\etocstandarddisplaystyle{\etocarticlestyle}
+\newcommand*\etocmarkboth[1]{}
+\newcommand*\etocmarkbothnouc[1]{}
+\newcommand\etoctocstyle[3][section]{}
+\newcommand\etoctocstylewithmarks[4][section]{}
+\newcommand\etoctocstylewithmarksnouc[4][section]{}
+\def\etocignoretoctocdepth{}
+\def\etocsettocdepth[1]{}
+\def\etocdepthtag #1#{\Etoc@depthtag }
+\def\Etoc@depthtag #1{}
+\def\etocignoredepthtags {}
+\def\etocobeydepthtags {}
+\def\etocsettagdepth #1#2{}
+\def\invisibletableofcontents {}
+\def\invisiblelocaltableofcontents{}
+\def\etocsetnexttocdepth #1{}
+\def\etocsetlocaltop #1#{\Etoc@set@localtop}
+\def\Etoc@set@localtop #1{}
+\def\etocstandardlines {}
+\def\etoctoclines {}
+\let\etocaftertochook \@empty
+\let\etocbeforetitlehook \@empty
+\appto\tableofcontents{\def\tableofcontents{}}
+% \end{macrocode}
+%
+% \iffalse
+%</etoc>
+% \fi
+%
+%
+%
+%
+%
+% \iffalse
%<*eurosym>
% \fi
%
@@ -56334,6 +56745,144 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
%
%
+%
+%
+% \iffalse
+%<*luatexko>
+% \fi
+%
+% \part{lwarp-luatexko.sty}
+%
+% \section{luatexko}
+%
+% \credits{Dohyun Kim, Soojin Nam}
+%
+% \DescribePackage{luatexko}
+% \pkg{luatexko} is patched for use by \pkg{lwarp}.
+%
+% Modern \HTML\ is used for \cs{dotemph}, \cs{ruby}, and
+% offset and thickness control for \cs{uline}, etc.
+%
+% \changes{v0.82}{2020/03/22}{\pkg{luatexko}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{luatexko}[2020/03/20]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand{\LWR@HTML@dotemph}[1]{%
+% \uline{#1}%
+ \InlineClass[text-emphasis-style: dot]{dotemph}{#1}%
+}
+\LWR@formatted{dotemph}
+
+\newcommand{\LWR@HTML@ruby}[2]{%
+ \LWR@htmltagc{ruby}%
+ \LWR@htmltagc{rb}#1\LWR@htmltagc{/rb}%
+ \LWR@htmltagc{rp}(\LWR@htmltagc{/rp}%
+ \LWR@htmltagc{rt}#2\LWR@htmltagc{/rt}%
+ \LWR@htmltagc{rp})\LWR@htmltagc{/rp}%
+ \LWR@htmltagc{/ruby}%
+}
+\LWR@formatted{ruby}
+% \end{macrocode}
+%
+% The following is modified from \pkg{lwarp-ulem}:
+% \begin{macrocode}
+\NewDocumentCommand{\LWR@HTML@uline}{+m}{%
+ \InlineClass%
+ (text-decoration:underline; text-decoration-skip: auto)%
+ [%
+ text-underline-offset: \ulinedown ;
+ text-decoration-thickness: \ulinewidth%
+ ]%
+ {uline}{\LWR@isolate{#1}}%
+}
+\LWR@formatted{uline}
+
+\NewDocumentCommand{\LWR@HTML@uuline}{+m}{%
+ \InlineClass%
+ (%
+ text-decoration:underline; text-decoration-skip: auto;%
+ text-decoration-style:double%
+ )%
+ [%
+ text-underline-offset: \ulinedown ;
+ text-decoration-thickness: \ulinewidth%
+ ]%
+ {uuline}{\LWR@isolate{#1}}%
+}
+\LWR@formatted{uuline}
+
+\NewDocumentCommand{\LWR@HTML@uwave}{+m}{%
+ \InlineClass%
+ (%
+ text-decoration:underline; text-decoration-skip: auto;%
+ text-decoration-style:wavy%
+ )%
+ [%
+ text-underline-offset: \ulinedown ;
+ text-decoration-thickness: \ulinewidth%
+ ]%
+ {uwave}{\LWR@isolate{#1}}%
+}
+\LWR@formatted{uwave}
+
+\NewDocumentCommand{\LWR@HTML@sout}{+m}{%
+ \InlineClass%
+ (text-decoration:line-through)%
+ [text-decoration-thickness: \ulinewidth]%
+ {sout}{\LWR@isolate{#1}}%
+}
+\LWR@formatted{sout}
+
+\NewDocumentCommand{\LWR@HTML@xout}{+m}{%
+ \InlineClass%
+ (text-decoration:line-through)%
+ [text-decoration-thickness: \ulinewidth]%
+ {xout}{\LWR@isolate{#1}}%
+}
+\LWR@formatted{xout}
+
+\NewDocumentCommand{\LWR@HTML@dashuline}{+m}{%
+ \InlineClass%
+ (%
+ text-decoration:underline;%
+ text-decoration-skip: auto;%
+ text-decoration-style:dashed%
+ )%
+ [%
+ text-underline-offset: \ulinedown ;
+ text-decoration-thickness: \ulinewidth%
+ ]%
+ {dashuline}{\LWR@isolate{#1}}%
+}
+\LWR@formatted{dashuline}
+
+\NewDocumentCommand{\LWR@HTML@dotuline}{+m}{%
+ \InlineClass%
+ (%
+ text-decoration:underline;%
+ text-decoration-skip: auto;%
+ text-decoration-style: dotted%
+ )%
+ [%
+ text-underline-offset: \ulinedown ;
+ text-decoration-thickness: \ulinewidth%
+ ]%
+ {dotuline}{\LWR@isolate{#1}}%
+}
+\LWR@formatted{dotuline}
+% \end{macrocode}
+%
+% \iffalse
+%</luatexko>
+% \fi
+%
+%
+%
% \iffalse
%<*luatodonotes>
% \fi
@@ -56970,6 +57519,22 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
\newcommand*{\raggedrightmarginnote}{}
% \end{macrocode}
%
+% \changes{v0.82}{2020/03/14}{\pkg{marginnote}: Fix: Neutralize in print mode.}
+% \begin{macrocode}
+\appto\LWR@restoreorigformatting{%
+ \RenewDocumentCommand{\marginnote}{+o +m o}{}
+}
+% \end{macrocode}
+%
+% For \brand{MathJax}:
+% \changes{v0.82}{2020/03/14}{\pkg{marginnote}: Added \brand{MathJax} emulation.}
+% \begin{macrocode}
+\begin{warpMathJax}
+\CustomizeMathJax{\newcommand{\LWRmarginnote}[1][]{}}
+\CustomizeMathJax{\newcommand{\marginnote}[2][]{\qquad{\small\textrm{#2}}\LWRmarginnote}}
+\end{warpMathJax}
+% \end{macrocode}
+%
% \iffalse
%</marginnote>
% \fi
@@ -58282,8 +58847,8 @@ background:
% and assume that any \pkg{mhchem} options are global.
%
% For \brand{MathJax}, the \pkg{mhchem} extension is used if
-% \trouble{MathJax=\brand{MathJax}>mhchem=\pkg{mhchem}}
-% \trouble{mhchem=\pkg{mhchem}>MathJax=\brand{MathJax}}
+% \trouble{mathjax=\brand{MathJax}>mhchem=\pkg{mhchem}}
+% \trouble{mhchem=\pkg{mhchem}>mathjax=\brand{MathJax}}
% \margintag{\brand{MathJax} with \pkg{mhchem} extension}
% the \pkg{mhchem} expression is used inside a math expression:
% \begin{sourceverb}
@@ -60084,6 +60649,44 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
%
%
%
+% \iffalse
+%<*nccfoots>
+% \fi
+%
+% \part{lwarp-nccfoots.sty}
+%
+% \section{nccfoots}
+%
+% \credits{Alexander I. Rozhenko}
+%
+% \DescribePackage{nccfoots}
+% \pkg{nccfoots} is used as-is, and emulated for \brand{MathJax}.
+%
+% \changes{v0.82}{2020/03/14}{\pkg{nccfoots}: Added \brand{MathJax} emulation.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{nccfoots}[2005/02/03]
+% \end{macrocode}
+%
+% For \brand{MathJax}.
+% There is no way to test for an empty argument, \watchout
+% so the mark is not automatically duplicated.
+% \begin{macrocode}
+\begin{warpMathJax}
+\CustomizeMathJax{\newcommand{\Footnotemark}[1]{{}^{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\Footnote}[2]{\Footnotemark{#1}}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</nccfoots>
+% \fi
+%
+%
+%
+%
%
% \iffalse
%<*nccmath>
@@ -62048,6 +62651,24 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
\LWR@ProvidesPackagePass{pagenote}[2009/09/03]
% \end{macrocode}
%
+%
+% For \brand{MathJax}:
+% \changes{v0.82}{2020/03/14}{\pkg{pagenote}: Added \brand{MathJax} emulation.}
+% \begin{macrocode}
+\begin{warpMathJax}
+\appto\LWR@syncnotenumbers{\LWR@synconenotenumber{LWRpagenote}{\thepagenote}}
+\CustomizeMathJax{\def\LWRpagenote{1}}
+\CustomizeMathJax{\newcommand{\pagenote}[2][\LWRpagenote]{{}^{\mathrm{#1}}}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% There is no \cs{pagenotemark}, so the following are not required:
+% \begin{sourceverb}
+% \providecommand{\pagenotename}{pagenote}
+% \appto\LWR@syncnotenames{\LWR@synconenotename{LWRpagenote}{\pagenotename}}
+% \end{sourceverb}
+%
+%
% \iffalse
%</pagenote>
% \fi
@@ -62444,6 +63065,26 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
}
% \end{macrocode}
%
+%
+% For \brand{MathJax}:
+% \changes{v0.82}{2020/03/15}{\pkg{parnotes}: Added \brand{MathJax} emulation.}
+% \begin{macrocode}
+\begin{warpMathJax}
+\providecommand{\parnotename}{parnote}
+\appto\LWR@syncnotenumbers{%
+ \addtocounter{parnotemark}{-1}% specific to parnotes
+ \LWR@synconenotenumber{LWRparnote}{\theparnotemark}%
+ \addtocounter{parnotemark}{1}% specific to parnotes
+}
+\appto\LWR@syncnotenames{\LWR@synconenotename{LWRparnote}{\parnotename}}
+\CustomizeMathJax{\def\LWRparnote{1}}
+\CustomizeMathJax{\newcommand{\parnote}[2][\LWRparnote]{{}^{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\parnotemark}[1][\LWRparnote]{{}^{\mathrm{#1}}}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+%
+%
% \iffalse
%</parnotes>
% \fi
@@ -66551,6 +67192,30 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
{\end@dblfloat}
% \end{macrocode}
%
+%
+% For \brand{MathJax}:
+%
+% Note that \pkg{sidenotes} does not support \cs{sidenote} inside math in print mode.
+% \watchout
+% Use \cs{sidenotemark} and \cs{sidenotetext} instead.
+%
+% \changes{v0.82}{2020/03/14}{\pkg{sidenotes}: Added \brand{MathJax} emulation.}
+% \begin{macrocode}
+\begin{warpMathJax}
+\providecommand{\sidenotename}{sidenote}
+\appto\LWR@syncnotenumbers{\LWR@synconenotenumber{LWRsidenote}{\thesidenote}}
+\appto\LWR@syncnotenames{\LWR@synconenotename{LWRsidenote}{\sidenotename}}
+\CustomizeMathJax{\def\LWRsidenote{1}}
+\CustomizeMathJax{\newcommand{\sidenotemark}[1][\LWRsidenote]{{}^{\mathrm{#1}}}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% The following is not defined since is not allowed inside math in print mode,
+% and also would have to be modified to parse the optional offset argument:
+% \begin{sourceverb}
+% \CustomizeMathJax{\newcommand{\sidenote}[2][\LWRsidenote]{{}^{\mathrm{#1}}}}
+% \end{sourceverb}
+%
% \iffalse
%</sidenotes>
% \fi
@@ -67678,6 +68343,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \changes{v0.27}{2017/04/02}{\pkg{soul}: Added.}
% \changes{v0.42}{2017/10/20}{\pkg{soul}: If \progcode{FormatWP}, add explicit styles.}
+% \changes{v0.82}{2020/03/06}{\pkg{soul}: Fixed: \cs{<}.}
%
% \codehtml
%
@@ -67767,6 +68433,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\newcommand*{\resetul}{}
\newcommand*{\setuldepth}[1]{}
\newcommand*{\setuloverlap}[1]{}
+\newcommand*{\<}{}
% \end{macrocode}
%
% Set colors:
@@ -69445,6 +70112,11 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
\@onlypreamble\syntaxonly
% \end{macrocode}
+
+% \changes{v0.82}{2020/03/17}{\pkg{syntonly}: Added \cs{nopages@}.}
+% \begin{macrocode}
+\def\nopages@{}
+% \end{macrocode}
%
% \iffalse
%</syntonly>
@@ -73144,6 +73816,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \changes{v0.27}{2017/04/02}{\pkg{ulem}: Added.}
% \changes{v0.62}{2018/11/16}{\pkg{ulem}: Improved compatibility with \pkg{CJKulem}.}
% \changes{v0.62}{2018/11/17}{\pkg{ulem}: Now works in a \env{lateximage}.}
+% \changes{v0.82}{2020/03/21}{\pkg{ulem}: Fixed: \cs{dashuline}.}
%
% \codehtml
%
@@ -73196,6 +73869,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
(text-decoration:line-through)%
{xout}{\LWR@isolate{#1}}%
}
+\LWR@formatted{xout}
\NewDocumentCommand{\LWR@HTML@dashuline}{+m}{%
\InlineClass%
@@ -73206,7 +73880,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
)%
{dashuline}{\LWR@isolate{#1}}%
}
-\LWR@formatted{xout}
+\LWR@formatted{dashuline}
\NewDocumentCommand{\LWR@HTML@dotuline}{+m}{%
\InlineClass%
@@ -75761,25 +76435,83 @@ height:\LWR@printlength{\LWR@tempheight}%
% \credits{Soben Lee}
%
% \DescribePackage{xpinyin}
-% \pkg{xpinyin} is partly supported.
-% \cs{xpinyin} and \env{pinyinscope} are nullified, but \cs{pinyin} works.
+% \pkg{xpinyin} is supported.
+%
+% Pinyin is disabled for file names, the side\TOC, and regular footnotes,
+% but is left enabled for minipage footnotes, as per the print mode.
%
% \changes{v0.63}{2018/12/03}{\pkg{xpinyin}: Added.}
+% \changes{v0.82}{2020/03/25}{\pkg{xpinyin}: Added full pinyin support.}
%
% \codehtml
%
% \begin{macrocode}
-\LWR@ProvidesPackagePass{xpinyin}[2018/01/28]
+\LWR@ProvidesPackagePass{xpinyin}[2019-04-07]
% \end{macrocode}
%
+% The original's boxes are not used, instead the contents are used with
+% \element{ruby}, \element{rb}, and \element{rt} tags per modern \HTML.
+% Color is detected. \optn{ratio} is ignored for \prog{pdftotext} to work correctly.
+% Extra spaces are placed inside the tags to allow line breaks in the \HTML\
+% text.
% \begin{macrocode}
-\RenewDocumentEnvironment{pinyinscope}{O{}}{}{}
+\ExplSyntaxOn
+\cs_new_protected_nopar:Npn \LWR@HTML@__xpinyin_make_pinyin_box:nnn #1#2#3
+{
+ \color_group_begin: \color_ensure_current:
+ \l__xpinyin_pinyin_box_hook_tl
+ \renewcommand*{\l__xpinyin_ratio_tl}{1}% for pdftotext
+ \__xpinyin_select_font:
+ \clist_if_exist:cTF { c__xpinyin_multiple_ #1 _clist }
+ { \l__xpinyin_multiple_tl \l__xpinyin_format_tl }
+ { \l__xpinyin_format_tl }
+ \ifdefempty{\l__xpinyin_format_tl}
+ {#3}
+ {\LWR@textcurrentcolor{#3}}
+ \color_group_end:
+}
+\LWR@formatted{__xpinyin_make_pinyin_box:nnn}
+
+\cs_new_protected_nopar:Npn \LWR@HTML@__xpinyin_CJKsymbol:nn #1#2
+ {
+ \__xpinyin_leavevmode:
+ \LWR@htmltagc{ruby}
+ \LWR@htmltagc{rb}
+ \__xpinyin_save_CJKsymbol:n {#2}\null% \null removes extra space
+ \LWR@htmltagc{/rb\space}
+ \LWR@htmltagc{rp}(\LWR@htmltagc{/rp\space}
+ \LWR@htmltagc{rt}
+ \__xpinyin_make_pinyin_box:nnn {#1} {#2} { \use:c { c__xpinyin_ #1 _tl } }
+ \LWR@htmltagc{/rt\space}
+ \LWR@htmltagc{rp})\LWR@htmltagc{/rp\space}
+ \LWR@htmltagc{/ruby\space}\null
+ }
+\LWR@formatted{__xpinyin_CJKsymbol:nn}
-\RenewDocumentCommand{\xpinyin}{s O{} m}{%
- \IfBooleanTF{#1}{#3}{\@firstoftwo#3}%
-}
+\cs_new_protected_nopar:Npn \LWR@HTML@__xpinyin_single_CJKsymbol:nn #1#2
+ {
+ \__xpinyin_leavevmode:
+ \LWR@htmltagc{ruby}
+ \LWR@htmltagc{rb}
+ \__xpinyin_save_CJKsymbol:n {#1}\null% \null removes extra space
+ \LWR@htmltagc{/rb\space}
+ \LWR@htmltagc{rp}(\LWR@htmltagc{/rp\space}
+ \LWR@htmltagc{rt}
+ \__xpinyin_make_pinyin_box:xnn
+ { \__xpinyin_to_unicode:n {#1} } {#1} { \__xpinyin_pinyin:n {#2} }
+ \LWR@htmltagc{/rt\space}
+ \LWR@htmltagc{rp})\LWR@htmltagc{/rp\space}
+ \LWR@htmltagc{/ruby\space}\null
+ }
+\LWR@formatted{__xpinyin_single_CJKsymbol:nn}
-\RenewDocumentCommand{\enablepinyin}{}{}
+\ExplSyntaxOff
+% \end{macrocode}
+%
+% The \pkg{lwarp} core uses the following to disable CJK \pkg{xpinyin} for
+% filenames, side\TOC, and footnotes.
+% \begin{macrocode}
+\renewcommand*{\LWR@disablepinyin}{\disablepinyin}
% \end{macrocode}
%
% \iffalse
@@ -76792,6 +77524,7 @@ height:\LWR@printlength{\LWR@tempheight}%
}
% \end{macrocode}
%
+% \changes{v0.82}{2020/03/24}{\pkg{lwarp-patch-memoir}: Supports \pkg{tocvsec2}.}
% \begin{macrocode}
\renewcommand*{\raggedbottomsection}{}
\renewcommand*{\normalbottomsection}{}
@@ -76800,8 +77533,6 @@ height:\LWR@printlength{\LWR@tempheight}%
\csletcs{appendixpage*}{appendixpage}
\renewcommand*{\namedsubappendices}{}
\renewcommand*{\unnamedsubappendices}{}
-\renewcommand*{\setsecnumdepth}[1]{}% todo tocvsec2
-\renewcommand*{\maxsecnumdepth}[1]{}% todo tocvsec2
\renewcommand*{\beforebookskip}{}
\renewcommand*{\afterbookskip}{}
\renewcommand*{\beforepartskip}{}
@@ -77033,6 +77764,8 @@ height:\LWR@printlength{\LWR@tempheight}%
% \end{macrocode}
%
% \subsection{Contents lists}
+%
+% \changes{v0.82}{2020/03/24}{\pkg{lwarp-patch-memoir}: Supports \pkg{tocvsec2}.}
% \begin{macrocode}
\csletcs{tableofcontents*}{tableofcontents}
\csletcs{listoffigures*}{listoffigures}
@@ -77043,8 +77776,6 @@ height:\LWR@printlength{\LWR@tempheight}%
\renewcommand*{\ensureonecol}{}
\renewcommand*{\restorefromonecol}{}
\renewcommand*{\doccoltocetc}{}
-\renewcommand*{\maxtocdepth}[1]{}% tocvsec2
-\renewcommand*{\settocdepth}[1]{}% tocvsec2
\renewcommand{\tocheadstart}{}
\renewcommand{\printtoctitle}[1]{}
diff --git a/macros/latex/contrib/lwarp/lwarp.ins b/macros/latex/contrib/lwarp/lwarp.ins
index 395ee2af8f..dc5805e34b 100644
--- a/macros/latex/contrib/lwarp/lwarp.ins
+++ b/macros/latex/contrib/lwarp/lwarp.ins
@@ -158,6 +158,7 @@ version 2005/12/01 or later.
\file{lwarp-eqparbox.sty}{\from{lwarp.dtx}{eqparbox}}
\file{lwarp-errata.sty}{\from{lwarp.dtx}{errata}}
\file{lwarp-eso-pic.sty}{\from{lwarp.dtx}{eso-pic}}
+\file{lwarp-etoc.sty}{\from{lwarp.dtx}{etoc}}
\file{lwarp-eurosym.sty}{\from{lwarp.dtx}{eurosym}}
\file{lwarp-everypage.sty}{\from{lwarp.dtx}{everypage}}
\file{lwarp-everyshi.sty}{\from{lwarp.dtx}{everyshi}}
@@ -260,6 +261,7 @@ version 2005/12/01 or later.
\file{lwarp-lua-visual-debug.sty}{\from{lwarp.dtx}{lua-visual-debug}}
\file{lwarp-luacolor.sty}{\from{lwarp.dtx}{luacolor}}
\file{lwarp-luamplib.sty}{\from{lwarp.dtx}{luamplib}}
+\file{lwarp-luatexko.sty}{\from{lwarp.dtx}{luatexko}}
\file{lwarp-luatodonotes.sty}{\from{lwarp.dtx}{luatodonotes}}
\file{lwarp-lyluatex.sty}{\from{lwarp.dtx}{lyluatex}}
\file{lwarp-magaz.sty}{\from{lwarp.dtx}{magaz}}
@@ -303,6 +305,7 @@ version 2005/12/01 or later.
\file{lwarp-nameref.sty}{\from{lwarp.dtx}{nameref}}
\file{lwarp-natbib.sty}{\from{lwarp.dtx}{natbib}}
\file{lwarp-nccfancyhdr.sty}{\from{lwarp.dtx}{nccfancyhdr}}
+\file{lwarp-nccfoots.sty}{\from{lwarp.dtx}{nccfoots}}
\file{lwarp-nccmath.sty}{\from{lwarp.dtx}{nccmath}}
\file{lwarp-needspace.sty}{\from{lwarp.dtx}{needspace}}
\file{lwarp-nextpage.sty}{\from{lwarp.dtx}{nextpage}}
diff --git a/macros/latex/contrib/lwarp/lwarp.pdf b/macros/latex/contrib/lwarp/lwarp.pdf
index 2b838cf756..0256496dc7 100644
--- a/macros/latex/contrib/lwarp/lwarp.pdf
+++ b/macros/latex/contrib/lwarp/lwarp.pdf
Binary files differ
diff --git a/macros/latex/contrib/lwarp/lwarpmk.lua b/macros/latex/contrib/lwarp/lwarpmk.lua
index a862d7f8bb..2ace342c56 100755
--- a/macros/latex/contrib/lwarp/lwarpmk.lua
+++ b/macros/latex/contrib/lwarp/lwarpmk.lua
@@ -2,7 +2,7 @@
-- Copyright 2016-2020 Brian Dunn
-printversion = "v0.81"
+printversion = "v0.82"
requiredconfversion = "2" -- also at *lwarpmk.conf
function printhelp ()
diff --git a/macros/latex/contrib/media9/ChangeLog b/macros/latex/contrib/media9/ChangeLog
index 8b2e4840c0..f5b9f4ce3e 100644
--- a/macros/latex/contrib/media9/ChangeLog
+++ b/macros/latex/contrib/media9/ChangeLog
@@ -1,4 +1,10 @@
2020-03-24
+ * v1.10 : media9.sty
+ * v0.41 : pdfbase.sty
+ * fix : pdfbase.sty, dvisvgm driver: missing id and class attrs in
+ \pbs_pdfxform:nnnnn
+
+2020-03-24
* v1.09 : media9.sty
* v0.40 : pdfbase.sty
* fix : pdfbase.sty, dvisvgm driver: supporting latest dvisvgm-2.9.1
diff --git a/macros/latex/contrib/media9/doc/media9.pdf b/macros/latex/contrib/media9/doc/media9.pdf
index 8bf6dd7aec..d125af86c3 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/media9.sty b/macros/latex/contrib/media9/media9.sty
index e393be3d76..69c563bfab 100644
--- a/macros/latex/contrib/media9/media9.sty
+++ b/macros/latex/contrib/media9/media9.sty
@@ -37,8 +37,8 @@
\RequirePackage{xparse}
\RequirePackage{atbegshi}
-\def\g@mix@date@tl{2020/03/24}
-\def\g@mix@version@tl{1.09}
+\def\g@mix@date@tl{2020/03/25}
+\def\g@mix@version@tl{1.10}
\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 c6bc82b002..b30650dc99 100644
--- a/macros/latex/contrib/media9/pdfbase.sty
+++ b/macros/latex/contrib/media9/pdfbase.sty
@@ -159,8 +159,8 @@
\RequirePackage{expl3}
\RequirePackage{l3keys2e}
-\def\g@pbs@date@tl{2020/03/24}
-\def\g@pbs@version@tl{0.40}
+\def\g@pbs@date@tl{2020/03/25}
+\def\g@pbs@version@tl{0.41}
\ProvidesExplPackage{pdfbase}{\g@pbs@date@tl}{\g@pbs@version@tl}
{driver independent access to low-level PDF features}
@@ -750,7 +750,10 @@
\makebox[\c_zero_dim][l]{
\raisebox{\c_zero_dim}[\c_zero_dim][\c_zero_dim]{
\special{dvisvgm:raw~{?nl}<defs>{?nl}
- <g~transform='translate({?(-(x))},{?(-(y))})'~#4>
+ <g~
+ transform='translate({?(-(x))},{?(-(y))})'~#4~
+ id='pbs@obj\int_use:N\g_pbs_obj_int'~class='xform'
+ >
}
\special{dvisvgm:bbox~lock}
\box_use_drop:N#5
diff --git a/macros/latex/contrib/memoir/README b/macros/latex/contrib/memoir/README
index 8f2448200d..f27ca28265 100644
--- a/macros/latex/contrib/memoir/README
+++ b/macros/latex/contrib/memoir/README
@@ -27,6 +27,30 @@ o Backmatter:
Command glossary ~ 40 pages
Bibliography, indexes ~ 50 pages
+
+
+Changed (2020/03/25)
+
+o memoir v3.7k
+
+-- Changed how glossaries are written to the glo file. Should now
+ support UTF8 just fine. This fixes
+ https://tex.stackexchange.com/q/529127/3929
+
+-- typo in manual: for \subbottom the \label goes into the subtitle
+ part, aka \subbottom[...\label{...}]{...}. Text in example fixed
+
+-- added a check for showkeys final-mode, and do nothing in that
+ case. This fixes https://tex.stackexchange.com/q/526922/3929
+
+-- brought the class into sync with booktabs dated 2020/01/12
+
+-- the provided .ins files will now just overwrite instead of asking
+ for permission.
+
+-- various typos
+
+
Changed (2019/11/21)
o memoir v3.7j
diff --git a/macros/latex/contrib/memoir/doc-src/memman.tex b/macros/latex/contrib/memoir/doc-src/memman.tex
index 965da3bb86..5ed8b9935c 100644
--- a/macros/latex/contrib/memoir/doc-src/memman.tex
+++ b/macros/latex/contrib/memoir/doc-src/memman.tex
@@ -7,12 +7,14 @@
% This work has the LPPL maintenance status "maintained".
% Maintainer: Lars Madsen (daleif at math dot au dot dk)
%
-\listfiles
+%\listfiles
\documentclass[10pt,letterpaper,extrafontsizes]{memoir}
\usepackage{comment}
\hfuzz=5pt
+%\setlength\overfullrule{5pt}
+
% For (non-printing) notes \PWnote{date}{text}
\newcommand{\PWnote}[2]{}
@@ -84,8 +86,8 @@
% \svnidlong
% {}
-% {$LastChangedDate: 2019-11-14 18:06:44 +0100 (Thu, 14 Nov 2019) $}
-% {$LastChangedRevision: 662 $}
+% {$LastChangedDate: 2020-03-25 19:00:55 +0100 (Wed, 25 Mar 2020) $}
+% {$LastChangedRevision: 686 $}
% {$LastChangedBy: daleif@math.au.dk $}
@@ -124,7 +126,7 @@
%#% extend
-\hfuzz=10pt
+%\hfuzz=10pt
\usepackage[draft]{fixme}
\fxsetup{
@@ -346,7 +348,7 @@ Manual last changed \svnyear/\svnmonth/\svnday
\setupshorttoc
\tableofcontents
-\clearpage
+\clearforchapter
\setupparasubsecs
\setupmaintoc
@@ -2273,8 +2275,8 @@ an em, often a quad is 1em.
\svnidlong
{$Ignore: $}
-{$LastChangedDate: 2019-11-04 16:13:21 +0100 (Mon, 04 Nov 2019) $}
-{$LastChangedRevision: 658 $}
+{$LastChangedDate: 2020-02-19 15:38:41 +0100 (Wed, 19 Feb 2020) $}
+{$LastChangedRevision: 679 $}
{$LastChangedBy: daleif@math.au.dk $}
\chapter{Starting off} \label{chap:starting}
@@ -2586,7 +2588,7 @@ offers a wider range of type sizes\index{type size} than usual. These are:\index
\emph{Note that this includes \cs{huge}, \cs{Huge} and \cs{HUGE}
under \Lopt{14pt}. For \Lopt{17pt} and up, an error is thrown if
- used withput \Lopt{extrafontsizes}, no error is given for
+ used without \Lopt{extrafontsizes}, no error is given for
\Lopt{14pt}, there sizes above \cs{LARGE} will just be unavailable
unless \Lopt{extrafontsizes} is used.}
\glossary(extrafontsizes)%
@@ -2905,8 +2907,8 @@ want to put \cmd{\raggedbottom} in the preamble\index{preamble}.
\svnidlong
{$Ignore: $}
-{$LastChangedDate: 2018-03-12 11:00:16 +0100 (Mon, 12 Mar 2018) $}
-{$LastChangedRevision: 589 $}
+{$LastChangedDate: 2020-03-25 19:00:55 +0100 (Wed, 25 Mar 2020) $}
+{$LastChangedRevision: 686 $}
{$LastChangedBy: daleif@math.au.dk $}
\chapter{Laying out the page} \label{chap:layingpage}
@@ -3253,8 +3255,8 @@ on and specify
\fancybreak{}
-See also section~\ref{sec:predefined-layouts} --
-\emph{\titleref{sec:predefined-layouts}}, where we present some extra
+See also section~\ref{sec:place-trimmed-page} --
+\emph{\titleref{sec:place-trimmed-page}}, where we present some extra
commands. For example \cmd{\setpagecc} for placing a trimmed page
centered on the stock.
@@ -3854,33 +3856,11 @@ is calculated from $B_{h} = P_{h} - U - L$.
Readers may find several folio designs in \cite{MEMDESIGN}.
\end{note}
+See also Section~\ref{sec:predefined-layouts}
+(\emph{\titleref{sec:predefined-layouts}}) for some predefined layouts.
-\fancybreak{}
-\begin{syntax}
-\cmd{\setcolsepandrule}\marg{colsep}\marg{thickness} \\
-\end{syntax}
-\glossary(setcolsepandrule)%
- {\cs{setcolsepandrule}\marg{colsep}\marg{thickness}}%
- {Sets the width of the gutter and the thickness of the rule in the gutter.}
-\glossary(columnsep)%
- {\ls{columnsep}}%
- {Width of the gutter between columns.}
-\glossary(columnseprule)%
- {\ls{columnseprule}}%
- {Thickness of the rule in the gutter.}
- For twocolumn\index{column!double} text the width of
-the gutter\index{gutter}
-between the columns must be specified. \ltx\ also lets you draw a
-vertical rule in the middle of the
-gutter. The macro \cmd{\setcolsepandrule}
-sets the gutter width\index{gutter!width}, \lnc{\columnsep}, to \meta{colsep}
-and the thickness of the rule, \lnc{\columnseprule},
-to \meta{thickness}. A \meta{thickness} of 0pt means that the rule will be
-invisible. Visible rules usually have a thickness\index{rule!thickness}
-of about 0.4pt. The total width of the twocolumns\index{column!double}
-of text and the gutter equals the width of the typeblock\index{typeblock}.
This completes the methods for specifying the layout of the
main elements of the page --- the page\index{page!specifying size}
@@ -4032,6 +4012,33 @@ is set to \meta{push}.
\section{Other}
\label{sec:other}
+\begin{syntax}
+\cmd{\setcolsepandrule}\marg{colsep}\marg{thickness} \\
+\end{syntax}
+\glossary(setcolsepandrule)%
+ {\cs{setcolsepandrule}\marg{colsep}\marg{thickness}}%
+ {Sets the width of the gutter and the thickness of the rule in the gutter.}
+\glossary(columnsep)%
+ {\ls{columnsep}}%
+ {Width of the gutter between columns.}
+\glossary(columnseprule)%
+ {\ls{columnseprule}}%
+ {Thickness of the rule in the gutter.}
+ For twocolumn\index{column!double} text the width of
+the gutter\index{gutter}
+between the columns must be specified. \ltx\ also lets you draw a
+vertical rule in the middle of the
+gutter. The macro \cmd{\setcolsepandrule}
+sets the gutter width\index{gutter!width}, \lnc{\columnsep}, to \meta{colsep}
+and the thickness of the rule, \lnc{\columnseprule},
+to \meta{thickness}. A \meta{thickness} of 0pt means that the rule will be
+invisible. Visible rules usually have a thickness\index{rule!thickness}
+of about 0.4pt. The total width of the twocolumns\index{column!double}
+of text and the gutter equals the width of the typeblock\index{typeblock}.
+
+
+\fancybreak{}
+
\begin{syntax}
\cmd{\setfootins}\marg{length for normal}\marg{length for minipage} \\
@@ -4303,6 +4310,23 @@ the layout in any way, you must call \cmd{\checkandfixthelayout} after you have
made all the necessary changes. As an aid, the final layout parameter values
are displayed on the terminal and written out to the log file.
+At the beginning of the document we will automatically add the
+page/stock sizes etc to the output such that viewers etc reacts
+accordingly. In incase you need to manually have the class rewrite
+these sizes to the document, you can use
+
+\begin{syntax}
+\cmd{\refixpagelayout}\\
+\end{syntax}
+\glossary(refixpagelayout)%
+ {\cs{refixpagelayout}}%
+ {Command to reemit the document size to the output.}%
+Please note that this macro (and its name), may change in the
+future.\footnote{In a comming version, in later in 2020, we will
+ hopefully be able to support changing the stock and layout mid
+ document, like what is provided by the \Lpack{geometry}.}
+
+
\LMnote{2010/09/17}{added \cs{\settypeoutlayoutunit}}
\begin{syntax}
\cmd{\typeoutlayout} \\
@@ -4607,7 +4631,8 @@ changes to match the new layout).
\begin{minipage}[b]{\pwlayi}
\drawaspread{\pwlayii}{1.3}{1.62}{0.18}{1.13}{1.5}{0}
\end{minipage}
-\caption{Default layout for letterpaper} \label{fig:pagefirstlay}
+\caption{Default layout for letterpaper}
+\label{fig:pagefirstlay}
\begin{minipage}[b]{\pwlayi}
\drawaspread{\pwlayii}{1.3}{1.19}{0.11}{1.5}{2}{0}
@@ -4697,7 +4722,8 @@ example, to get narrower margins with the spine being 1/12 the page width:
\begin{lcode}
\medievalpage[12]
\end{lcode}
-Note that \meta{spine} must be an integer.
+Note that \meta{spine} must be an integer. See
+Figures~\ref{fig:pagefirstlay}--\ref{fig:pagelastlay}.
\begin{syntax}
\cmd{\isopage}\oarg{spine} \\
@@ -4735,12 +4761,30 @@ of \cmd{\isopage}.
through \ref{fig:pagelastlay}. These were produced with the aid of the
\Lpack{layouts} package.
-\fancybreak{}
+
+\section{Place trimmed page on the stock}
+\label{sec:place-trimmed-page}
+
+As mentined earlier, when the resulting paper size is smaller than the
+stock that it is printed on, you'll need to specify the trimmed size
+(the resulting paper size) using \cmd{\settrimmedsize} and you'll want
+to position that in relation to the stock using \cmd{\settrims}.
+
+There are nine common layouts, so we made nine easy tro use
+macros. The take the same arguments as \cmd{\settrimmedsize} and then
+automatically add an appropriate \cmd{\settrims}.
+
\begin{syntax}
-\cmd{\setpagebl}\marg{height}\marg{width}\marg{ratio} \\
-\cmd{\setpageml}\marg{height}\marg{width}\marg{ratio} \\
-\cmd{\setpagetl}\marg{height}\marg{width}\marg{ratio} \\
+\cmd{\setpagetl}\marg{height}\marg{width}\marg{ratio} (top-left) \\
+\cmd{\setpagetm}\marg{height}\marg{width}\marg{ratio} (top-middle)\\
+\cmd{\setpagetr}\marg{height}\marg{width}\marg{ratio} (top-right)\\
+\cmd{\setpagebl}\marg{height}\marg{width}\marg{ratio} (bottom-left)\\
+\cmd{\setpagebm}\marg{height}\marg{width}\marg{ratio} (bottom-middle)\\
+\cmd{\setpagebr}\marg{height}\marg{width}\marg{ratio} (bottom-right) \\
+\cmd{\setpageml}\marg{height}\marg{width}\marg{ratio} (middle-left) \\
+\cmd{\setpagecc}\marg{height}\marg{width}\marg{ratio} (center, alias \cmd{\setpagemm}) \\
+\cmd{\setpagemr}\marg{height}\marg{width}\marg{ratio} (middle-right)\\
\end{syntax}
\glossary(setpagebl)%
{\cs{setpagebl}\marg{height}\marg{width}\marg{ratio}}%
@@ -4753,42 +4797,7 @@ through \ref{fig:pagelastlay}. These were produced with the aid of the
\glossary(setpagebl)%
{\cs{setpagetl}\marg{height}\marg{width}\marg{ratio}}%
{Specifies a page of the given dimensions positioned at the top left
- of the stock; see \cs{settrimmedsize}.}
-When your page is smaller than the stock it has to be positioned on
-the stock by specifying the trims to give the desired size and location.
-The macro \cmd{\setpagebl}, which takes the same arguments as
-\cmd{\settrimmedsize} (see \tref{tab:rectsize} on \pref{tab:rectsize}),
-calculates the trims so that the page is located at the bottom left of
-the stock. Similarly \cmd{\setpageml} and \cmd{\setpagetl} will locate
-the page at the middle left and the top left, respectively, of the stock.
-For instance, if you are using letterpaper stock but want the final trimmed
-page size to be A5, then this will put page area at the bottom left of the
-stock.
-\begin{lcode}
-\pagebv % sets page height and width for A5 paper
-\setpagebl{\paperheight}{\paperwidth}{*}
-...
-\checkandfixthelayout
-\end{lcode}
-The above macros position the page at the left of the stock because usually
-trimming of the stock is limited to the top, right, and bottom, the left
-being the spine when the pages are finally assembled. To reposition the page to
-the center of the stock the following will halve the top and edge
-trims.
-\begin{lcode}
-\settrims{0.5\trimtop}{0.5\trimedge}
-...
-\checkandfixthelayout
-\end{lcode}
-
-\begin{syntax}
-\cmd{\setpagetm}\marg{height}\marg{width}\marg{ratio} \\
-\cmd{\setpagetr}\marg{height}\marg{width}\marg{ratio} \\
-\cmd{\setpagemr}\marg{height}\marg{width}\marg{ratio} \\
-\cmd{\setpagebr}\marg{height}\marg{width}\marg{ratio} \\
-\cmd{\setpagebm}\marg{height}\marg{width}\marg{ratio} \\
-\cmd{\setpagecc}\marg{height}\marg{width}\marg{ratio} \\
-\end{syntax}
+ of the stock; see \cs{settrimmedsize}.}
\glossary(setpagetm)%
{\cs{setpagetm}\marg{height}\marg{width}\marg{ratio}}%
{Specifies a page of the given dimensions positioned at the top middle
@@ -4812,31 +4821,72 @@ trims.
\glossary(setpagecc)%
{\cs{setpagecc}\marg{height}\marg{width}\marg{ratio}}%
{Specifies a page of the given dimensions positioned at the center
- of the stock; see \cs{settrimmedsize}.}
+ of the stock; see \cs{settrimmedsize}.}
+
+ \noindent
+Note: Always remember to combine this with \cmd{\checkandfixthelayout}!
+
+
+% When your page is smaller than the stock it has to be positioned on
+% the stock by specifying the trims to give the desired size and location.
+% The macro \cmd{\setpagebl}, which takes the same arguments as
+% \cmd{\settrimmedsize} (see \tref{tab:rectsize} on \pref{tab:rectsize}),
+% calculates the trims so that the page is located at the bottom left of
+% the stock. Similarly \cmd{\setpageml} and \cmd{\setpagetl} will locate
+% the page at the middle left and the top left, respectively, of the
+% stock.
+
+\goodbreak
+
+ \noindent
+For instance, if you are using letterpaper stock but want the final trimmed
+page size to be A5, then this will put page area at the bottom left of the
+stock.
+\begin{lcode}
+% letterpaper stock added via class option
+\pagebv % sets \paperheight and \paperwidth for A5 paper
+\setpagebl{\paperheight}{\paperwidth}{*}
+...
+\checkandfixthelayout
+\end{lcode}
+The above macros position the page at the left of the stock because usually
+trimming of the stock is limited to the top, right, and bottom, the left
+being the spine when the pages are finally assembled.
- The commands \cmd{\setpagetm}, \cmd{\setpagetr}, \cmd{\setpagemr},
-\cmd{\setpagebr}, \cmd{\setpagebm}, \cmd{\setpagecc} are analagous to the
-earlier ones and they set a page at the top middle, top right, middle right,
-bottom right, bottom middle and centered with respect to the stock.
+% To reposition the page to
+% the center of the stock the following will halve the top and edge
+% trims.
+% \begin{lcode}
+% \settrims{0.5\trimtop}{0.5\trimedge}
+% ...
+% \checkandfixthelayout
+% \end{lcode}
-Remember that after you have finished defining the layout you want you
-have to call \cmd{\checkandfixthelayout} for all the changes to take
-effect.
+% \begin{syntax}
+% \end{syntax}
-\fancybreak{}
+% The commands \cmd{\setpagetm}, \cmd{\setpagetr}, \cmd{\setpagemr},
+% \cmd{\setpagebr}, \cmd{\setpagebm}, \cmd{\setpagecc} are analagous to the
+% earlier ones and they set a page at the top middle, top right, middle right,
+% bottom right, bottom middle and centered with respect to the stock.
+
+
+% Remember that after you have finished defining the layout you want you
+% have to call \cmd{\checkandfixthelayout} for all the changes to take
+% effect.
+
+% \fancybreak{}
In Figure~\ref{fig:setpage} we show the effect of the nine
\cmd{\setpageXX}. The code used for the examples is similar to the
-code below, and then the result is scaled down.
+code below, and then the result was scaled down.
\begin{lcode}
\documentclass[showtrims]{memoir}
\trimLmarks
\setstocksize{18cm}{15cm}
-\makeatletter
\setpagebl{16cm}{12cm}{*}
-\makeatother
\setlrmarginsandblock{15mm}{15mm}{*}
\setulmarginsandblock{15mm}{15mm}{*}
\setheadfoot{5mm}{5mm}
@@ -4882,7 +4932,9 @@ code below, and then the result is scaled down.
\caption{Example of the nine \cs{setpageXX} macros for placing
a trimmed page on the stock. These are all odd pages, under
- \Lopt{twoside}, even pages will have the left/right trims reversed.}
+ \Lopt{twoside}, even pages will have the left/right trims
+ reversed. The outer fra indicate the stock size. Inside the trim
+ marks hint at where the page is positioned on the stock.}
\label{fig:setpage}
\end{figure}
@@ -4895,8 +4947,8 @@ code below, and then the result is scaled down.
\svnidlong
{$Ignore: $}
-{$LastChangedDate: 2019-10-22 14:49:52 +0200 (Tue, 22 Oct 2019) $}
-{$LastChangedRevision: 651 $}
+{$LastChangedDate: 2020-03-25 19:00:55 +0100 (Wed, 25 Mar 2020) $}
+{$LastChangedRevision: 686 $}
{$LastChangedBy: daleif@math.au.dk $}
@@ -5885,6 +5937,9 @@ spaced text then you
may need to use the \Ie{vminipage} environment instead to get the before and
after spacing correct.
+\index{double spacing|)}
+
+
\section{Overfull lines}
@@ -15399,8 +15454,8 @@ before the stuff you want to have moved out of, say, a part.
\svnidlong
{$Ignore: $}
-{$LastChangedDate: 2018-09-06 15:05:23 +0200 (Thu, 06 Sep 2018) $}
-{$LastChangedRevision: 612 $}
+{$LastChangedDate: 2020-03-15 19:48:39 +0100 (Sun, 15 Mar 2020) $}
+{$LastChangedRevision: 682 $}
{$LastChangedBy: daleif@math.au.dk $}
@@ -16161,7 +16216,7 @@ commands. This can be done via
\glossary(setFloatBlockFor)%
{\cs{setFloatBLockFor}\marg{sectional name}}%
{Adds \cs{FloatBlock} within the \cs{\meta{section name}} macro.}
-where \meta{sectional name} is \emph{withput} the \cs{}, i.e.\
+where \meta{sectional name} is \emph{without} the \cs{}, i.e.\
\begin{lcode}
\setFloatBlockFor{section}
\end{lcode}
@@ -16401,6 +16456,17 @@ figure\index{figure} environment.
The commands described below are very similar to
those supplied by the \Lpack{ccaption} package~\cite{CCAPTION}.
+As an alternative (it has more features that what the class offers) we
+recommend the \Lpack{caption} package by Axel Sommerfeldt. In fact if
+the \Lpack{caption} package is loaded, the class will detect it and
+reset it self such that \Lpack{caption} can take over. This also means
+that all the macros described in the next section will have no effect
+if \Lpack{caption} is loaded (either intentionally or
+unintentionally).
+
+
+
+
\section{Caption styling}
\index{caption!style|(} %)|
@@ -17491,9 +17557,9 @@ following this one were produced by the code shown below.
namely \ref{sf:1} and \subcaptionref{sf:2}.
\begin{shadefigure}
%\centering
-\subbottom[Subfigure 1]{\fbox{SUBFIGURE ONE}\label{sf:1}}
+\subbottom[Subfigure 1\label{sf:1}]{\fbox{SUBFIGURE ONE}}
\hfill
-\subbottom[Subfigure 2]{\fbox{SUBFIGURE TWO}\label{sf:2}}
+\subbottom[Subfigure 2\label{sf:2}]{\fbox{SUBFIGURE TWO}}
\caption{Figure with two subfigures} \label{fig:twosubfig}
\end{shadefigure}
\begin{lcode}
@@ -17501,9 +17567,9 @@ namely \ref{sf:1} and \subcaptionref{sf:2}.
namely \ref{sf:1} and \subcaptionref{sf:2}.
\begin{figure}
\centering
-\subbottom[Subfigure 1]{\fbox{SUBFIGURE ONE}\label{sf:1}}
+\subbottom[Subfigure 1\label{sf:1}]{\fbox{SUBFIGURE ONE}}
\hfill
-\subbottom[Subfigure 2]{\fbox{SUBFIGURE TWO}\label{sf:2}}
+\subbottom[Subfigure 2\label{sf:2}]{\fbox{SUBFIGURE TWO}}
\caption{Figure with two subfigures} \label{fig:twosubfig}
\end{figure}
\end{lcode}
@@ -20276,8 +20342,8 @@ illustrate these points.
\svnidlong
{$Ignore: $}
-{$LastChangedDate: 2019-11-14 18:06:44 +0100 (Thu, 14 Nov 2019) $}
-{$LastChangedRevision: 662 $}
+{$LastChangedDate: 2020-03-25 19:00:55 +0100 (Wed, 25 Mar 2020) $}
+{$LastChangedRevision: 686 $}
{$LastChangedBy: daleif@math.au.dk $}
\chapter{Page notes} \label{chap:mnotes}
@@ -20292,6 +20358,7 @@ for fixed marginal notes and sidebars.
\section{Footnotes}
+\index{footnote|(}
A footnote can be considered to be a special kind of float\index{float}
@@ -26232,9 +26299,9 @@ will require the use of \cmd{\titleref} and so the declaration
\svnidlong
{$Ignore: $}
-{$LastChangedDate: 2014-03-31 11:34:44 +0200 (Mon, 31 Mar 2014) $}
-{$LastChangedRevision: 480 $}
-{$LastChangedBy: daleif $}
+{$LastChangedDate: 2020-03-25 19:00:55 +0100 (Wed, 25 Mar 2020) $}
+{$LastChangedRevision: 686 $}
+{$LastChangedBy: daleif@math.au.dk $}
\LMnote{2010/06/09}{Several \cs{ixfile}'s changed to \cs{pixfile},
@@ -27055,6 +27122,8 @@ Which will be remember'd for a very long time.
\end{verse}}
was mentioned on page 37.
+\index{index!preparation|)}
+
\subsection{MakeIndex}
@@ -27311,7 +27380,7 @@ and \cmd{\alsoname}, whose default definitions are:
of the \texttt{!}, \texttt{@}, \texttt{|} or \texttt{"} characters there
is the difficulty of persuading \Lmakeindex\ to ignore the special
meaning. This is solved by the \texttt{quote} specifier, which is
-normally the \texttt{"} character\index{\" (qs)?\texttt{"} (quote specifier)}.
+normally the \texttt{"} character\index{\"" (qs)?\texttt{""} (quote specifier)}.
The character
immediately after \texttt{"} is treated as non-special. For example,
if you needed to index the \texttt{@} and \texttt{!} characters:
@@ -30665,9 +30734,9 @@ of the standard commands needs to be replaced.
\svnidlong
{$Ignore: $}
-{$LastChangedDate: 2013-04-24 17:14:15 +0200 (Wed, 24 Apr 2013) $}
-{$LastChangedRevision: 442 $}
-{$LastChangedBy: daleif $}
+{$LastChangedDate: 2020-03-25 19:00:55 +0100 (Wed, 25 Mar 2020) $}
+{$LastChangedRevision: 686 $}
+{$LastChangedBy: daleif@math.au.dk $}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -30936,6 +31005,7 @@ to the page size --- another reason for not switching the layout here.
\drawmarginparstrue
\drawparametersfalse
\drawstock
+\vskip-2pt
\legend{An illustration of Bringhurst's page layout style when printed
on US letter paper stock. Also shown are the values used for the
page layout parameters for this design.} \label{fig:bplayout}
@@ -39763,13 +39833,6 @@ Martin Scharrer,
\url{/macros/latex/contrib/booklet})
\end{comment}
-%%% keep
-\bibitem[Wil03a]{LAYOUTS}
- Peter Wilson.
- \newblock \emph{The layouts package}
- \newblock November, 2003.
- \newblock (Available from CTAN in
- \CTANurl{/macros/latex/contrib/layouts/})
%%% keep
\bibitem[Wil03b]{LEDMAC}
@@ -39804,6 +39867,13 @@ Peter Wilson.
\CTANurl{/macros/latex/contrib/pagenote/})
+%%% keep
+\bibitem[Wil04c]{LAYOUTS}
+ Peter Wilson.
+ \newblock \emph{The layouts package}
+ \newblock October, 2004.
+ \newblock (Available from CTAN in
+ \CTANurl{/macros/latex/contrib/layouts/})
%%% keep
diff --git a/macros/latex/contrib/memoir/doc-src/memsty.sty b/macros/latex/contrib/memoir/doc-src/memsty.sty
index a0427c232b..b3362e981e 100644
--- a/macros/latex/contrib/memoir/doc-src/memsty.sty
+++ b/macros/latex/contrib/memoir/doc-src/memsty.sty
@@ -92,6 +92,7 @@
\let\oldprecistoctext\precistoctext
\renewcommand{\precistoctext}[1]{}
\let\oldcftchapterfillnum\cftchapterfillnum
+ \let\oldcftchapterformatpnum\cftchapterformatpnum
\renewcommand*{\changetocdepth}[1]{}
\setcounter{tocdepth}{0}% chapters
\renewcommand*{\cftchapterfont}{\hfill\sffamily}
@@ -100,10 +101,16 @@
\renewcommand*{\cftchapterafterpnum}{\cftparfillskip}
%% \setpnumwidth{0em}
%% \setpnumwidth{1.5em}
- \renewcommand*{\cftchapterfillnum}[1]{%
- {\cftchapterleader}\nobreak
- \hbox to 1.5em{\cftchapterpagefont ##1\hfil}\cftchapterafterpnum\par}
+% \renewcommand*{\cftchapterfillnum}[1]{%
+% {\cftchapterleader}\nobreak
+% \hbox to 2.5em{\cftchapterpagefont
+% ##1\hfil}\cftchapterafterpnum\par}
+ % make the box left aligned not right aliged
+ \renewcommand*{\cftchapterformatpnum}[1]{%
+ \cftchapterformatpnumhook{##1}%
+ \hb@xt@\@pnumwidth{\cftchapterpagefont ##1\hfil}}
\setrmarg{0.3\textwidth}
+% \setpnumwidth{6em}
\setlength{\unitlength}{\@tocrmarg}
\addtolength{\unitlength}{1.5em}
\let\oldcftpartformatpnum\cftpartformatpnum
@@ -141,6 +148,7 @@
\let\changetocdepth\oldchangetocdepth
\let\precistoctext\oldprecistoctext
\let\cftchapterfillnum\oldcftchapterfillnum
+ \let\cftchapterformatpnum\oldcftchapterformatpnum
\addtodef{\cftchapterbreak}{\par}{}
\renewcommand*{\cftchapterfont}{\normalfont\sffamily}
\renewcommand*{\cftchapterleader}{\sffamily\cftdotfill{\cftchapterdotsep}}
@@ -1025,6 +1033,7 @@ chapterstyle. It is one of several styles that come as part of the
\settypeblocksize{7.75in}{33pc}{*}
\setulmargins{4cm}{*}{*}
\setlrmargins{1.25in}{*}{*}
+%\setlrmargins{*}{*}{1}
\setmarginnotes{17pt}{51pt}{\onelineskip}
\setheadfoot{\onelineskip}{2\onelineskip}
\setheaderspaces{*}{2\onelineskip}{*}
@@ -1052,8 +1061,8 @@ it to use the new width for the margin par}
%%%%% Pavlic `fix' for index
-\let\original@wrindexm@m\@wrindexm@m
-\def\@wrindexm@m{\catcode`\ =10 \original@wrindexm@m}
+%\let\original@wrindexm@m\@wrindexm@m
+%\def\@wrindexm@m{\catcode`\ =10 \original@wrindexm@m}
% for letter group bookmarks for glossary items
\newcommand\doglobookmark[1]{%
diff --git a/macros/latex/contrib/memoir/memman.pdf b/macros/latex/contrib/memoir/memman.pdf
index 01af28adb9..4f0f312569 100644
--- a/macros/latex/contrib/memoir/memman.pdf
+++ b/macros/latex/contrib/memoir/memman.pdf
Binary files differ
diff --git a/macros/latex/contrib/memoir/memoir.dtx b/macros/latex/contrib/memoir/memoir.dtx
index 0139b5c4bd..1d45b94727 100644
--- a/macros/latex/contrib/memoir/memoir.dtx
+++ b/macros/latex/contrib/memoir/memoir.dtx
@@ -20,7 +20,7 @@
% This work consists of the files listed in the README file.
%
% \fi
-% \CheckSum{31140}
+% \CheckSum{31149}
%
% \changes{v0.1}{2001/05/20}{First public alpha release}
% \changes{v0.2}{2001/06/03}{First beta release}
@@ -120,7 +120,8 @@
% \changes{v3.7i}{2019/11/15}{Maintenance, various edits}
% \changes{v3.7j}{2019/11/21}{Typo in embeded textcase, now that it is
% inside \cs{IfFileExists} \# needs to be doubled}
-%
+% \changes{v3.7k}{2020/03/25}{Maintenance}
+%
% \def\dtxfile{memoir.dtx}
%
% \def\fileversion{v0.1} \def\filedate{2001/05/20}
@@ -178,6 +179,7 @@
% \def\fileversion{v3.7h} \def\filedate{2018/12/12}
% \def\fileversion{v3.7i} \def\filedate{2019/11/15}
% \def\fileversion{v3.7j} \def\filedate{2019/11/21}
+% \def\fileversion{v3.7k} \def\filedate{2020/03/25}
% \title{The LaTeX \Lpack{memoir} class for configurable book
% typesetting: Source code\thanks{This
% file (\texttt{\dtxfile}) has version number \fileversion, last revised
@@ -408,11 +410,11 @@
% Announce the name, option files and version for LaTeX2e files:
% \begin{macrocode}
%<class>\ProvidesClass{memoir}%
-%<class> [2019/11/21 v3.7j configurable book, report, article document class]
+%<class> [2020/03/25 v3.7k configurable book, report, article document class]
% \end{macrocode}
% In the manual it is useful to know the current version.
% \begin{macrocode}
-%<class>\newcommand\memversion{v3.7j, 2019/11/21}
+%<class>\newcommand\memversion{v3.7k, 2020/03/25}
%<9pt>\ProvidesFile{mem9.clo}%
%<9pt> [2008/01/30 v0.4 memoir class 9pt size option]
%<10pt>\ProvidesFile{mem10.clo}%
@@ -5245,6 +5247,11 @@
}
\AtBeginDocument{\mem@fixpagelayout}
+% \end{macrocode}
+%
+% \changes{v3.7k}{2020/03/25}{Added a link to \cs{mem@fixpagelayout}}
+% \begin{macrocode}
+\let\refixpagelayout\mem@fixpagelayout
% \end{macrocode}
% \end{macro}
@@ -5474,6 +5481,7 @@
% at the top right, middle right, bottom right, bottom middle, and centered.
% \changes{v1.6180339c}{2008/12/26}{Added \cs{setpagetr}, \cs{setpagemr}, \cs{setpagebr},
% \cs{setpagebm} and \cs{setpagecc}}
+% \changes{v3.7k}{2020/03/15}{Added \cs{setpagemm} as an alias to \cs{setpagecc}}
% \begin{macrocode}
\newcommand*{\setpagetr}[3]{%
\settrimmedsize{#1}{#2}{#3}%
@@ -5499,7 +5507,8 @@
\advance\trimtop -0.5\trimtop
\trimedge=\stockwidth \advance\trimedge -\paperwidth
\advance\trimedge -0.5\trimedge}
-
+\let\setpagemm\setpagecc
+
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -18316,39 +18325,34 @@
%
% \changes{v3.7f}{2016/05/16}{changed the order so the \cs{ifx} lines
% come first. From booktabs 2016/04/27 v1.618033}
-% Now we work out, by a very nasty hack, if we're within a
-% \texttt{longtable}. It's easy if \cs{longtable} isn't even defined: then we
-% can't be. But it is not enough just to check if \texttt{longtable} is
+% \changes{v3.7k}{2020/02/06}{changed to be in sync with booktabs
+% datad 2020/01/12. The comments are a carbon copy from booktabs.dtx}
+% Now we work out, by a very nasty hack, if we're within a
+% \verb|longtable|. It's easy if \verb=\longtable= isn't even defined: then we
+% can't be. But it is not enough just to check if \verb=longtable= is
% loaded --- we might be within an ordinary table rather than a
-% longtable. So we look to see if \cs{hline} has been re-defined
+% longtable. So we look to see if \verb=\hline= has been re-defined
% from its \LaTeX\ definition to be the same as
-% \cs{LT@hline}. (Longtable currently does this redefinition when it opens a
-% \texttt{longtable} environment, but not globally, so it is
+% \verb=\LT@hline=. (Longtable currently does this redefinition when it opens a
+% \verb=longtable= environment, but not globally, so it is
% cleared it when the environment closes.) Another
-% package could potentially do this! And \texttt{longtable} might change the
+% package could potentially do this! And \verb=longtable= might change the
% way it implements this! So, it is not entirely safe, but I have
% found no better way so far.
%
-% We set up \cs{@BTswitch} to call \cs{@BTnormal} or \cs{@BLTrule}, as
+% We set up \verb=\@BTswitch= to call \verb=\@BTnormal= or \verb=\@BLTrule=, as
% appropriate, then call it.
% \begin{macrocode}
- \ifx\longtable\undefined
+ \ifx\longtable\undefined
\let\@BTswitch\@BTnormal
\else\ifx\hline\LT@hline
+ \nobreak
\let\@BTswitch\@BLTrule
\else
+ \let\@BTswitch\@BTnormal
+ \fi\fi
% \end{macrocode}
-% \changes{v3.7i}{2019/10/21}{Added this extra if construction to
-% bring the class back into line with the latest booktabs changes, now
-% matching booktabs v1.6180339}
-% \begin{macrocode}
- \ifx\xltabular\undefined
- \let\@BTswitch\@BTnormal
- \else
- \let\@BTswitch\@BLTrule
- \fi\fi\fi
-% \end{macrocode}
-% On with the code
+% Call \verb=\@BTswitch= at end of macro
% \begin{macrocode}
\global\@thisrulewidth=#1\relax
% \end{macrocode}
@@ -21080,11 +21084,15 @@
% note that the placement of the \Lpack{showkeys} label, might be a
% little strange.
% \changes{v3.7g}{2018/02/28}{added}
+% \changes{v3.7k}{2020/02/06}{Added a check on \cs{SK@}, if not
+% defined showkeys is running under final mode}
% \begin{macrocode}
- \@ifpackageloaded{showkeys}{%
- \renewcommand\sf@@memsub@label@hook[1]{%
- \SK@\SK@@label{#1}%
- }
+ \@ifpackageloaded{showkeys}{%
+ \ifdefined\SK@\relax
+ \renewcommand\sf@@memsub@label@hook[1]{%
+ \SK@\SK@@label{#1}%
+ }
+ \fi
}{}
} % end AtBeginDocument
@@ -25575,12 +25583,18 @@
% \verb?\glosaryentry{key@{data}}{num}? \\
% (note where all the braces are).
%
+%
+% \changes{v3.7k}{2020/02/24}{Rewritten to use
+% \cs{immediate@protected@write} instead, otherwise UTF8 may get
+% written as latin1}
% \begin{macrocode}
\newcommand{\memwritetoglo}[5]{\endgroup}
\newcommand{\@ctualm@mwritetoglo}[5]{%
- \immediate\write \memglofile{\string\glossaryentry{#1\@nameuse{memglsact\m@mgf}
- {\string\memgloterm{#2}}{\string\memglodesc{#3}}
- {\string\memgloref{#4}}\@nameuse{memglsnf\m@mgf}}{#5}}%
+ %\immediate\write \memglofile%
+ \immediate@protected@write\memglofile{}%
+ {\string\glossaryentry{#1\@nameuse{memglsact\m@mgf}
+ {\string\memgloterm{#2}}{\string\memglodesc{#3}}
+ {\string\memgloref{#4}}\@nameuse{memglsnf\m@mgf}}{#5}}%
\endgroup}
\AtBeginDocument{%
\let\memwritetoglo\@ctualm@mwritetoglo}
diff --git a/macros/latex/contrib/memoir/memoir.ins b/macros/latex/contrib/memoir/memoir.ins
index 9ab3871610..51d5199da7 100644
--- a/macros/latex/contrib/memoir/memoir.ins
+++ b/macros/latex/contrib/memoir/memoir.ins
@@ -58,29 +58,29 @@
\Msg{*** Generating the LaTeX2e document class files ***}
-\generateFile{memoir.cls}{t}{\from{memoir.dtx}{class}}
+\generateFile{memoir.cls}{n}{\from{memoir.dtx}{class}}
\Msg{*** Generating the LaTeX2e document class option files ***}
-\generateFile{mem9.clo}{t}{\from{memoir.dtx}{9pt}}
-\generateFile{mem10.clo}{t}{\from{memoir.dtx}{10pt}}
-\generateFile{mem11.clo}{t}{\from{memoir.dtx}{11pt}}
-\generateFile{mem12.clo}{t}{\from{memoir.dtx}{12pt}}
-\generateFile{mem14.clo}{t}{\from{memoir.dtx}{14pt}}
-\generateFile{mem17.clo}{t}{\from{memoir.dtx}{17pt}}
-\generateFile{mem20.clo}{t}{\from{memoir.dtx}{20pt}}
-\generateFile{mem25.clo}{t}{\from{memoir.dtx}{25pt}}
-\generateFile{mem30.clo}{t}{\from{memoir.dtx}{30pt}}
-\generateFile{mem36.clo}{t}{\from{memoir.dtx}{36pt}}
-\generateFile{mem48.clo}{t}{\from{memoir.dtx}{48pt}}
-\generateFile{mem60.clo}{t}{\from{memoir.dtx}{60pt}}
+\generateFile{mem9.clo}{n}{\from{memoir.dtx}{9pt}}
+\generateFile{mem10.clo}{n}{\from{memoir.dtx}{10pt}}
+\generateFile{mem11.clo}{n}{\from{memoir.dtx}{11pt}}
+\generateFile{mem12.clo}{n}{\from{memoir.dtx}{12pt}}
+\generateFile{mem14.clo}{n}{\from{memoir.dtx}{14pt}}
+\generateFile{mem17.clo}{n}{\from{memoir.dtx}{17pt}}
+\generateFile{mem20.clo}{n}{\from{memoir.dtx}{20pt}}
+\generateFile{mem25.clo}{n}{\from{memoir.dtx}{25pt}}
+\generateFile{mem30.clo}{n}{\from{memoir.dtx}{30pt}}
+\generateFile{mem36.clo}{n}{\from{memoir.dtx}{36pt}}
+\generateFile{mem48.clo}{n}{\from{memoir.dtx}{48pt}}
+\generateFile{mem60.clo}{n}{\from{memoir.dtx}{60pt}}
\Msg{*** Generating the MakeIndex configuration files ***}
%%%%\usepreamble\empty
\usepostamble\empty
-\generateFile{basic.gst}{t}{\from{memoir.dtx}{gst}}
+\generateFile{basic.gst}{n}{\from{memoir.dtx}{gst}}
\Msg{***********************************************************}
\Msg{*}
diff --git a/macros/latex/contrib/memoir/mempatch.ins b/macros/latex/contrib/memoir/mempatch.ins
index 39c858e3d7..a42ac89c6c 100644
--- a/macros/latex/contrib/memoir/mempatch.ins
+++ b/macros/latex/contrib/memoir/mempatch.ins
@@ -58,7 +58,7 @@
\Msg{*** Generating the LaTeX2e package files ***}
-\generateFile{memhfixc.sty}{t}{\from{mempatch.dtx}{hyper}}
+\generateFile{memhfixc.sty}{n}{\from{mempatch.dtx}{hyper}}
%\generateFile{mempatch.sty}{t}{\from{mempatch.dtx}{patch}}
\Msg{***********************************************************}
diff --git a/macros/latex/contrib/polyglossia/README b/macros/latex/contrib/polyglossia/README
index b2864ae1d1..acac78e598 100644
--- a/macros/latex/contrib/polyglossia/README
+++ b/macros/latex/contrib/polyglossia/README
@@ -1,7 +1,7 @@
¦----------------------------------------------¦
¦ ¦
- ¦ THE POLYGLOSSIA PACKAGE v1.47 ¦
+ ¦ THE POLYGLOSSIA PACKAGE v1.48 ¦
¦ ¦
¦ Modern multilingual typesetting ¦
¦ with XeLaTeX and LuaLaTeX ¦
@@ -10,7 +10,7 @@
This package provides an alternative to Babel for users of XeLaTeX and LuaLaTeX
(with a few languages incompletely supported for the latter). This version
-includes support for 79 different languages, some of which in different
+includes support for over 70 different languages, some of which in different
regional or national varieties, or using a different writing system.
Polyglossia makes it possible to automate the following tasks:
diff --git a/macros/latex/contrib/polyglossia/polyglossia.dtx b/macros/latex/contrib/polyglossia/polyglossia.dtx
index 3c85e2c6ff..e70cec7999 100644
--- a/macros/latex/contrib/polyglossia/polyglossia.dtx
+++ b/macros/latex/contrib/polyglossia/polyglossia.dtx
@@ -11,7 +11,7 @@
¦----------------------------------------------¦
¦ ¦
- ¦ THE POLYGLOSSIA PACKAGE v1.47 ¦
+ ¦ THE POLYGLOSSIA PACKAGE v1.48 ¦
¦ ¦
¦ Modern multilingual typesetting ¦
¦ with XeLaTeX and LuaLaTeX ¦
@@ -20,7 +20,7 @@
This package provides an alternative to Babel for users of XeLaTeX and LuaLaTeX
(with a few languages incompletely supported for the latter). This version
-includes support for 79 different languages, some of which in different
+includes support for over 70 different languages, some of which in different
regional or national varieties, or using a different writing system.
Polyglossia makes it possible to automate the following tasks:
@@ -902,18 +902,22 @@ to track the issues and follow progress.
% Russian, Slovak, and Ukrainian. Please refer to the respective language descriptions
% (sec.~\ref{specific}) for details.
%
-% \item \xpgoption{localmarks} redefines the internal \LaTeX\ macros \cmd\markboth\ and
-% \cmd\markright. In earlier versions of \pkg{polyglossia},\new{1.2.0} this
-% option was set by default, but we now realize that it causes more problems
-% than it helps, so it is now off by default. For backwards-compatibility, the
+% \item \xpgboolkeyfalse{localmarks} redefines the internal \LaTeX\ macros \cmd\markboth\ and
+% \cmd\markright\ to the effect that the header text is explicitly set in the currently
+% active language (\ie wrapped into \cmd\foreignlanguage\{\meta{lang}\}\{\meta{\ldots}\}).
+%
+% In earlier versions of \pkg{polyglossia},\new{1.2.0} this
+% option was enabled by default, but we now realize that it causes more problems
+% than it helps (since it breaks if a package or class redefines \cmd\markboth\ or
+% \cmd\markright), so it is now disabled by default. For backwards compatibility, the
% option \xpgoption{nolocalmarks} which used to switch off the previous default, and
-% now does nothing, is still available.
+% now equals the default, is still available.
%
% \item \xpgoption{quiet} turns off most info messages and some of the warnings issued
% by \LaTeX, \pkg{fontspec} and \pkg{polyglossia}.
% \end{itemize}
%
-% \condbreak{5\baselineskip}
+% \pagebreak
% \section{Language-switching commands}\label{languageswitching}
%
% \subsection{Recommended commands}\label{sec:langcmds}
@@ -3412,15 +3416,15 @@ and may look very wrong.}
\newif\if@eastern@armenian
\@eastern@armenianfalse
-\define@choicekey*+{armenian}{variant}[\val\nr]{western,eastern}[western]{%
- \ifcase\nr\relax
+\define@choicekey*+{armenian}{variant}[\xpg@val\xpg@nr]{western,eastern}[western]{%
+ \ifcase\xpg@nr\relax
% western:
\@eastern@armenianfalse%
\or
% eastern:
\@eastern@armeniantrue%
\fi
- \xpg@info{Option: Armenian, variant=\val}%
+ \xpg@info{Option: Armenian, variant=\xpg@val}%
}{\xpg@warning{Unknown Armenian variant `#1'}}
\newif\if@armenian@numerals
@@ -3892,8 +3896,8 @@ and may look very wrong.}
\setlanguagealias*{belarusian}{be}
\def\belarusian@spelling{modern}
-\define@choicekey*+{belarusian}{spelling}[\val\nr]{modern,classic,tarask}[modern]{%
- \ifcase\nr\relax
+\define@choicekey*+{belarusian}{spelling}[\xpg@val\xpg@nr]{modern,classic,tarask}[modern]{%
+ \ifcase\xpg@nr\relax
% modern:
\def\belarusian@spelling{modern}%
\SetLanguageKeys{belarusian}{bcp47=be}%
@@ -3910,8 +3914,8 @@ and may look very wrong.}
\newif\ifcyrillic@numerals
\newif\ifcyrillic@asbuk@numerals
-\define@choicekey*+{belarusian}{numerals}[\val\nr]{arabic,cyrillic,cyrillic-trad,cyrillic-alph}[arabic]{%
- \ifcase\nr\relax
+\define@choicekey*+{belarusian}{numerals}[\xpg@val\xpg@nr]{arabic,cyrillic,cyrillic-trad,cyrillic-alph}[arabic]{%
+ \ifcase\xpg@nr\relax
% arabic:
\cyrillic@numeralsfalse%
\cyrillic@asbuk@numeralsfalse%
@@ -3928,7 +3932,7 @@ and may look very wrong.}
\cyrillic@numeralstrue%
\cyrillic@asbuk@numeralstrue%
\fi
- \xpg@info{Option: Belarusian, numerals=\val}%
+ \xpg@info{Option: Belarusian, numerals=\xpg@val}%
}{\xpg@warning{Unknown Belarusian numerals value `#1'}}
\define@boolkey{belarusian}[belarusian@]{babelshorthands}[true]{}
@@ -4222,8 +4226,8 @@ and may look very wrong.}
\newif\ifbengali@devanagari@numerals
\newif\ifbengali@bengali@numerals
-\define@choicekey*+{bengali}{numerals}[\val\nr]{Devanagari,Bengali,Western}[Devanagari]{%
- \ifcase\nr\relax
+\define@choicekey*+{bengali}{numerals}[\xpg@val\xpg@nr]{Devanagari,Bengali,Western}[Devanagari]{%
+ \ifcase\xpg@nr\relax
% Devanagari:
\bengali@bengali@numeralsfalse%
\bengali@devanagari@numeralstrue%
@@ -4236,7 +4240,7 @@ and may look very wrong.}
\bengali@bengali@numeralsfalse%
\bengali@devanagari@numeralsfalse%
\fi
- \xpg@info{Option: Bengali, numerals=\val}%
+ \xpg@info{Option: Bengali, numerals=\xpg@val}%
}{\xpg@warning{Unknown Bengali numeral `#1'}}
\def\extras@bengali{}
@@ -6205,8 +6209,8 @@ and may look very wrong.}
% Option ordinalmonthday
\define@boolkey{english}[english@]{ordinalmonthday}[true]{}
-\define@choicekey*+{english}{variant}[\val\nr]{uk,british,us,american,usmax,australian,newzealand,canadian}[us]{%
- \ifcase\nr\relax
+\define@choicekey*+{english}{variant}[\xpg@val\xpg@nr]{uk,british,us,american,usmax,australian,newzealand,canadian}[us]{%
+ \ifcase\xpg@nr\relax
% uk:
\british@hyphentrue
\british@dateformattrue
@@ -6815,8 +6819,8 @@ and may look very wrong.}
\setlanguagealias[variant=canadian]{french}{canadien}
\def\french@variant{french}
-\define@choicekey*+{french}{variant}[\val\nr]{french,canadian,acadian,swiss}[french]{%
- \ifcase\nr\relax
+\define@choicekey*+{french}{variant}[\xpg@val\xpg@nr]{french,canadian,acadian,swiss}[french]{%
+ \ifcase\xpg@nr\relax
% french:
\def\french@variant{french}%
\SetLanguageKeys{french}{babelname=french,bcp47=fr-FR}%
@@ -6846,7 +6850,7 @@ and may look very wrong.}
\adddialect\l@swissfrench\l@french\relax%
\french@thincolonspacetrue
\fi
- \xpg@info{Option: French, variant=\val}%
+ \xpg@info{Option: French, variant=\xpg@val}%
}{\xpg@warning{Unknown French variant `#1'}}
@@ -6869,7 +6873,11 @@ and may look very wrong.}
\def\xpg@unskip{\ifhmode\ifdim\lastskip>\z@\unskip\fi\fi}
% Save original footnote definition
-\let\xpg@orig@makefntext\@makefntext
+% Do this at the end of the preamble to catch other
+% packages' footnote changes (#391)
+\AtEndPreamble{%
+ \let\xpg@orig@makefntext\@makefntext
+}
\define@boolkey{french}[french@]{frenchfootnote}[true]{%
\AfterPreamble{%
@@ -7343,8 +7351,8 @@ and may look very wrong.}
\setlanguagealias[variant=scottish]{gaelic}{scottish}
\def\gaelic@variant{irish}
-\define@choicekey*+{gaelic}{variant}[\val\nr]{irish,scottish}[irish]{%
- \ifcase\nr\relax
+\define@choicekey*+{gaelic}{variant}[\xpg@val\xpg@nr]{irish,scottish}[irish]{%
+ \ifcase\xpg@nr\relax
% irish:
\gdef\gaelic@variant{irish}%
\SetLanguageKeys{gaelic}{language=Irish,langtag=IRI,babelname=irish,bcp47=ga}%
@@ -7355,7 +7363,7 @@ and may look very wrong.}
\SetLanguageKeys{gaelic}{language=Gaelic,langtag=GAE,babelname=scottish,bcp47=gd}%
\xpg@fontsetup@latin{gaelic}%
\fi
- \xpg@info{Option: gaelic, variant=\val}%
+ \xpg@info{Option: gaelic, variant=\xpg@val}%
}{\xpg@warning{Unknown gaelic variant `#1'}}
% Register default options
@@ -7799,8 +7807,8 @@ and may look very wrong.}
\newif\if@german@oldspelling
\@german@oldspellingfalse
-\define@choicekey*+{german}{spelling}[\val\nr]{new,old,1901,1996}[new]{%
- \ifcase\nr\relax
+\define@choicekey*+{german}{spelling}[\xpg@val\xpg@nr]{new,old,1901,1996}[new]{%
+ \ifcase\xpg@nr\relax
% new:
\@german@oldspellingfalse
\or
@@ -7814,15 +7822,15 @@ and may look very wrong.}
\@german@oldspellingfalse
\fi
\german@set@babelname%
- \xpg@info{Option: German, spelling=\val}%
+ \xpg@info{Option: German, spelling=\xpg@val}%
}{\xpg@warning{Unknown German spelling `#1'}}
\newif\if@austrian@locale
\@austrian@localefalse
\newif\if@swiss@locale
\@swiss@localefalse
-\define@choicekey*+{german}{variant}[\val\nr]{german,austrian,swiss}[german]{%
- \ifcase\nr\relax
+\define@choicekey*+{german}{variant}[\xpg@val\xpg@nr]{german,austrian,swiss}[german]{%
+ \ifcase\xpg@nr\relax
% german:
\@swiss@localefalse%
\@austrian@localefalse%
@@ -7842,7 +7850,7 @@ and may look very wrong.}
}%
\fi
\german@set@babelname%
- \xpg@info{Option: German, variant=\val}%
+ \xpg@info{Option: German, variant=\xpg@val}%
}{\xpg@warning{Unknown German variant `#1'}}
\def\german@set@babelname{%
@@ -7892,8 +7900,8 @@ and may look very wrong.}
}
\newif\if@german@blackletter
-\define@choicekey*+{german}{script}[\val\nr]{latin,blackletter,fraktur}[latin]{%
- \ifcase\nr\relax
+\define@choicekey*+{german}{script}[\xpg@val\xpg@nr]{latin,blackletter,fraktur}[latin]{%
+ \ifcase\xpg@nr\relax
% latin:
\@german@blackletterfalse%
\or
@@ -7904,7 +7912,7 @@ and may look very wrong.}
\@german@blacklettertrue%
\fi
\german@set@babelname%
- \xpg@info{Option: German, script=\val}%
+ \xpg@info{Option: German, script=\xpg@val}%
}{\xpg@warning{Unknown German script `#1'}}
% Option defunc'ed, as bot XeTeX and LuaTeX meanwhile
@@ -8681,19 +8689,19 @@ and may look very wrong.}
% RTL. Hebrew uses LTR numbers, though. So we insert an LTR mark to revert
% the directionality
\ifxetex
- \newcommand\xpg@hebrew@DigitsDotDashInterCharToks{\if@nonlatin\char"200E \fi}
+ \newcommand\xpg@hebrew@DigitsDotDashInterCharToks{\ifbool{@nonlatin}{\char"200E }{}}
\fi
\def\hebrew@ltr@numbers{%
\ifxetex
- \XeTeXinterchartoks \bidi@sepmark@charclass \bidi@digits@charclass = {\xpg@hebrew@DigitsDotDashInterCharToks}
+ \XeTeXinterchartoks \bidi@sepmark@charclass \bidi@digits@charclass = {\xpg@hebrew@DigitsDotDashInterCharToks}%
\fi%
}
\def\nohebrew@ltr@numbers{%
\ifxetex
% This is bidi's original intervention
- \XeTeXinterchartoks \bidi@sepmark@charclass \bidi@digits@charclass = {\DigitsDotDashInterCharToks}
+ \XeTeXinterchartoks \bidi@sepmark@charclass \bidi@digits@charclass = {\DigitsDotDashInterCharToks}%
\fi%
}
@@ -8951,8 +8959,8 @@ and may look very wrong.}
\newif\if@hungarian@swapcaptions
\newif\if@hungarian@swapheadings
\newif\if@hungarian@swapheaders
-\define@choicekey*+{hungarian}{swapstrings}[\val\nr]{all,captions,headings,headers,hheaders,none}[all]{%
- \ifcase\nr\relax
+\define@choicekey*+{hungarian}{swapstrings}[\xpg@val\xpg@nr]{all,captions,headings,headers,hheaders,none}[all]{%
+ \ifcase\xpg@nr\relax
% all:
\@hungarian@swapcaptionstrue%
\@hungarian@swapheadingstrue%
@@ -8983,7 +8991,7 @@ and may look very wrong.}
\@hungarian@swapheadingsfalse%
\@hungarian@swapheadersfalse%
\fi
- \xpg@info{Option: Hungarian, swapstrings=\val}%
+ \xpg@info{Option: Hungarian, swapstrings=\xpg@val}%
}{\xpg@warning{Unknown Hungarian swapstrings value `#1'}}
% Register default options
@@ -10245,18 +10253,18 @@ and may look very wrong.}
\setlanguagealias*{korean}{ko}
% variant : plain (0), classic (1), or modern (2)
-\define@choicekey{korean}{variant}[\val\nr]{plain,classic,modern}[plain]{%
- \let\xpg@korean@variant\nr
+\define@choicekey{korean}{variant}[\xpg@val\xpg@nr]{plain,classic,modern}[plain]{%
+ \let\xpg@korean@variant\xpg@nr
}
% captions : hangul (0) or hanja (1)
-\define@choicekey{korean}{captions}[\val\nr]{hangul,hanja}[hangul]{%
- \let\xpg@korean@captions\nr
+\define@choicekey{korean}{captions}[\xpg@val\xpg@nr]{hangul,hanja}[hangul]{%
+ \let\xpg@korean@captions\xpg@nr
}
% swapstrings: all (0), headings (1), headers (2), or none (3)
\newif\if@korean@swapheadings
\newif\if@korean@swapheaders
-\define@choicekey*+{korean}{swapstrings}[\val\nr]{all,headings,headers,none}[all]{%
- \ifcase\nr\relax
+\define@choicekey*+{korean}{swapstrings}[\xpg@val\xpg@nr]{all,headings,headers,none}[all]{%
+ \ifcase\xpg@nr\relax
% all:
\@korean@swapheadingstrue%
\@korean@swapheaderstrue%
@@ -10273,7 +10281,7 @@ and may look very wrong.}
\@korean@swapheadingsfalse%
\@korean@swapheadersfalse%
\fi
- \xpg@info{Option: Korean, swapstrings=\val}%
+ \xpg@info{Option: Korean, swapstrings=\xpg@val}%
}{\xpg@warning{Unknown Korean swapstrings value `#1'}}
% Register default options
@@ -10741,8 +10749,8 @@ and may look very wrong.}
\newif\if@kurdish@kurmanji
\def\kurdish@variant{sorani}
-\define@choicekey*+{kurdish}{variant}[\val\nr]{sorani,kurmanji}[sorani]{%
- \ifcase\nr\relax
+\define@choicekey*+{kurdish}{variant}[\xpg@val\xpg@nr]{sorani,kurmanji}[sorani]{%
+ \ifcase\xpg@nr\relax
% sorani:
\def\kurdish@variant{sorani}%
\@kurdish@kurmanjifalse%
@@ -10752,13 +10760,13 @@ and may look very wrong.}
\@kurdish@kurmanjitrue%
\fi
\kurdish@set@variety%
- \xpg@info{Option: kurdish, variant=\val}%
+ \xpg@info{Option: kurdish, variant=\xpg@val}%
}{\xpg@warning{Unknown Kurdish variant `#1'}}
\newif\if@kurdish@latin
\newif\if@kurdish@arabic
-\define@choicekey*+{kurdish}{script}[\val\nr]{Arabic,Latin}{%
- \ifcase\nr\relax
+\define@choicekey*+{kurdish}{script}[\xpg@val\xpg@nr]{Arabic,Latin}{%
+ \ifcase\xpg@nr\relax
% Arabic:
\@kurdish@latinfalse%
\@kurdish@arabictrue%
@@ -10768,7 +10776,7 @@ and may look very wrong.}
\@kurdish@arabicfalse%
\fi
\kurdish@set@variety%
- \xpg@info{Option: kurdish, script=\val}%
+ \xpg@info{Option: kurdish, script=\xpg@val}%
}{\xpg@warning{Unknown Kurdish script `#1'}}
@@ -11331,7 +11339,7 @@ and may look very wrong.}
%
% \subsection{gloss-latin.ldf}
% \begin{macrocode}
-\ProvidesFile{gloss-latin.ldf}[polyglossia: module for Latin v.2.2 2020-01-03]
+\ProvidesFile{gloss-latin.ldf}[polyglossia: module for Latin v.2.3 2020-03-08]
\ExplSyntaxOn
@@ -11433,9 +11441,10 @@ and may look very wrong.}
\str_case:Vn \l_polyglossia_latin_variant_str
{
{classic} {
- \str_if_eq:nnTF{#1}{liturgicallatin}
- { \adddialect \l@classiclatin { \use:c {l@#1} } }
- {}
+ \str_if_eq:nnF {#1} {classiclatin}
+ {
+ \adddialect \l@classiclatin { \use:c {l@#1} }
+ }
}
{medieval} { \adddialect \l@medievallatin { \use:c {l@#1} } }
{modern} { \adddialect \l@latin { \use:c {l@#1} } }
@@ -11641,10 +11650,15 @@ and may look very wrong.}
%%%%% Messages and commands concerning footnotes
-\cs_if_exist:NT \@makefntext
- {
- \cs_set_eq:NN \polyglossia_latin_original_footnote:n \@makefntext
- }
+% Save original footnote definition
+% Do this at the end of the preamble to catch other
+% packages' footnote changes (#391)
+\AtEndPreamble{%
+ \cs_if_exist:NT \@makefntext
+ {
+ \cs_set_eq:NN \polyglossia_latin_original_footnote:n \@makefntext
+ }
+}
% This is the footnote style as defined by the "ecclesiastic" package.
\cs_new:Npn \polyglossia_latin_variant_footnote:n #1
@@ -11947,9 +11961,12 @@ and may look very wrong.}
\shorthandoff {^}
\shorthandoff {=}
-% The active '=' character may cause problems with key=value interfaces.
+% The active = character may cause problems with key=value interfaces.
% We have to make sure here that no problems can occur outside a Latin
% prosodic shorthand environment.
+% The active ' character may cause problems with the unicode-math package
+% (in case Latin is used as a secondary language, see #394). We have to
+% turn it of if Latin is not the main language.
\protected@write \@auxout { } { \shorthandoff {=} } % for the aux file
@@ -11964,9 +11981,13 @@ and may look very wrong.}
}
{
% The following command should not be called if the main language
- % defines a '=' shorthand. However, there are no languages besides
+ % defines a = shorthand. However, there are no languages besides
% Latin defining such a shorthand in polyglossia.
\shorthandoff {=}
+ % The following command should not be called if the main language
+ % defines a ' shorthand. However, there are no languages besides
+ % Latin defining such a shorthand in polyglossia.
+ \shorthandoff {'}
}
}
@@ -11984,12 +12005,18 @@ and may look very wrong.}
\polyglossia_latin_apply_quotemark:N
}
}
+ % The ' shorthand is normally turned off to avoid problems with the unicode-math
+ % package. We have to turn it on here.
+ \shorthandon {'}
\bbl@activate {'}
\declare@shorthand {latin} {'}
{
\mode_if_math:TF
{
\active@math@prime % defined in "latex.ltx"
+ % This definition is differing from the primes of the unicode-math package.
+ % TO DO: Make sure that the appearance of primes is the same as with the
+ % unicode-math package if this package is loaded.
}
{
\polyglossia_latin_put_acute:N
@@ -12260,7 +12287,9 @@ and may look very wrong.}
\def \noextras@latin
{
- \polyglossia_latin_no_shorthands:
+ \iflatin@babelshorthands
+ \polyglossia_latin_no_shorthands:
+ \fi
\xpgla@savedvalues
\polyglossia_latin_no_punctuation_spacing:
\polyglossia_latin_modern_character_codes:
@@ -12728,8 +12757,8 @@ and may look very wrong.}
\providebool{malay@melayu}
\malay@melayufalse
\def\malay@variant{malay}
-\define@choicekey*+{malay}{variant}[\val\nr]{indonesian,malaysian}[malaysian]{%
- \ifcase\nr\relax
+\define@choicekey*+{malay}{variant}[\xpg@val\xpg@nr]{indonesian,malaysian}[malaysian]{%
+ \ifcase\xpg@nr\relax
% indonesian:
\def\malay@variant{indonesian}%
\malay@melayufalse
@@ -12775,7 +12804,7 @@ and may look very wrong.}
}%
}%
\fi
- \xpg@info{Option: malay, variant=\val}%
+ \xpg@info{Option: malay, variant=\xpg@val}%
}{\xpg@warning{Unknown malay variant `#1'}}
% Register default options
@@ -12998,15 +13027,15 @@ and may look very wrong.}
\newif\ifmarathi@devanagari@numerals
\marathi@devanagari@numeralstrue
-\define@choicekey*+{marathi}{numerals}[\val\nr]{Western,Devanagari}[Devanagari]{%
- \ifcase\nr\relax
+\define@choicekey*+{marathi}{numerals}[\xpg@val\xpg@nr]{Western,Devanagari}[Devanagari]{%
+ \ifcase\xpg@nr\relax
% Western:
\marathi@devanagari@numeralsfalse%
\or
% Devanagari:
\marathi@devanagari@numeralstrue%
\fi
- \xpg@info{Option: Marathi, numerals=\val}%
+ \xpg@info{Option: Marathi, numerals=\xpg@val}%
}{\xpg@warning{Unknown Marathi numerals value `#1'}}
% Register default options
@@ -13202,8 +13231,8 @@ and may look very wrong.}
\newif\ifcyrillic@numerals
\newif\ifcyrillic@asbuk@numerals
-\define@choicekey*+{mongolian}{numerals}[\val\nr]{arabic,cyrillic,cyrillic-trad,cyrillic-alph}[arabic]{%
- \ifcase\nr\relax
+\define@choicekey*+{mongolian}{numerals}[\xpg@val\xpg@nr]{arabic,cyrillic,cyrillic-trad,cyrillic-alph}[arabic]{%
+ \ifcase\xpg@nr\relax
% arabic:
\cyrillic@numeralsfalse%
\cyrillic@asbuk@numeralsfalse%
@@ -13220,7 +13249,7 @@ and may look very wrong.}
\cyrillic@numeralstrue%
\cyrillic@asbuk@numeralstrue%
\fi
- \xpg@info{Option: Mongolian, numerals=\val}%
+ \xpg@info{Option: Mongolian, numerals=\xpg@val}%
}{\xpg@warning{Unknown Mongolian numerals value `#1'}}
\define@boolkey{mongolian}[mongolian@]{babelshorthands}[true]{}
@@ -13612,8 +13641,8 @@ and may look very wrong.}
\setlanguagealias[variant=nynorsk]{norwegian}{nynorsk}
\def\norwegian@variant{nynorsk}
-\define@choicekey*+{norwegian}{variant}[\val\nr]{nynorsk,bokmal}[nynorsk]{%
- \ifcase\nr\relax
+\define@choicekey*+{norwegian}{variant}[\xpg@val\xpg@nr]{nynorsk,bokmal}[nynorsk]{%
+ \ifcase\xpg@nr\relax
% nynorsk:
\def\norwegian@variant{nynorsk}%
\SetLanguageKeys{norwegian}{langtag=NYN,babelname=nynorsk,bcp47=nn}%
@@ -13624,7 +13653,7 @@ and may look very wrong.}
\SetLanguageKeys{norwegian}{langtag=NOR,babelname=norsk,bcp47=nb}%
\xpg@fontsetup@latin{norwegian}%
\fi
- \xpg@info{Option: norwegian, variant=\val}%
+ \xpg@info{Option: norwegian, variant=\xpg@val}%
}{\xpg@warning{Unknown norwegian variant `#1'}}
@@ -14310,8 +14339,8 @@ and may look very wrong.}
\setlanguagealias[variant=brazilian]{portuguese}{brazil}
\def\portuguese@variant{portuges}
-\define@choicekey*+{portuguese}{variant}[\val\nr]{portuguese,brazilian}[portuguese]{%
- \ifcase\nr\relax
+\define@choicekey*+{portuguese}{variant}[\xpg@val\xpg@nr]{portuguese,brazilian}[portuguese]{%
+ \ifcase\xpg@nr\relax
% portuguese:
\def\portuguese@variant{portuges}%
\SetLanguageKeys{portuguese}{babelname=portuges,bcp47=pt-PT}%
@@ -14324,7 +14353,7 @@ and may look very wrong.}
I will use the standard patterns for Portuguese instead}%
\adddialect\l@brazil\l@portuges\relax}%
\fi
- \xpg@info{Option: portuguese, variant=\val}%
+ \xpg@info{Option: portuguese, variant=\xpg@val}%
}{\xpg@warning{Unknown portuguese variant `#1'}}
@@ -14565,8 +14594,8 @@ and may look very wrong.}
\newif\ifcyrillic@numerals
\newif\ifcyrillic@asbuk@numerals
-\define@choicekey*+{russian}{numerals}[\val\nr]{arabic,cyrillic,cyrillic-trad,cyrillic-alph}[arabic]{%
- \ifcase\nr\relax
+\define@choicekey*+{russian}{numerals}[\xpg@val\xpg@nr]{arabic,cyrillic,cyrillic-trad,cyrillic-alph}[arabic]{%
+ \ifcase\xpg@nr\relax
% arabic:
\cyrillic@numeralsfalse%
\cyrillic@asbuk@numeralsfalse%
@@ -14583,7 +14612,7 @@ and may look very wrong.}
\cyrillic@numeralstrue%
\cyrillic@asbuk@numeralstrue%
\fi
- \xpg@info{Option: Russian, numerals=\val}%
+ \xpg@info{Option: Russian, numerals=\xpg@val}%
}{\xpg@warning{Unknown Russian numerals value `#1'}}
\define@boolkey{russian}[russian@]{indentfirst}[true]{
@@ -14930,8 +14959,8 @@ and may look very wrong.}
% TODO: Add other Sami varieties
\def\sami@variant{northern}
-%\define@choicekey*+{sami}{variant}[\val\nr]{northern}[nothern]{%
-% \ifcase\nr\relax
+%\define@choicekey*+{sami}{variant}[\xpg@val\xpg@nr]{northern}[nothern]{%
+% \ifcase\xpg@nr\relax
% % northern:
% \def\sami@variant{samin}%
% \SetLanguageKeys{sami}{language=Northern Sami,langtag=NSM}%
@@ -14942,7 +14971,7 @@ and may look very wrong.}
% \SetLanguageKeys{sami}{language= Sami,langtag=}%
% \xpg@fontsetup@latin{sami}%
% \fi
-% \xpg@info{Option: sami, variant=\val}%
+% \xpg@info{Option: sami, variant=\xpg@val}%
%}{\xpg@warning{Unknown sami variant `#1'}}
@@ -15089,15 +15118,15 @@ and may look very wrong.}
\newif\ifsanskrit@devanagari@numerals
\sanskrit@devanagari@numeralstrue
-\define@choicekey*+{sanskrit}{numerals}[\val\nr]{Devanagari,Western}[Devanagari]{%
- \ifcase\nr\relax
+\define@choicekey*+{sanskrit}{numerals}[\xpg@val\xpg@nr]{Devanagari,Western}[Devanagari]{%
+ \ifcase\xpg@nr\relax
% Devanagari:
\sanskrit@devanagari@numeralstrue%
\or
% Western:
\sanskrit@devanagari@numeralsfalse%
\fi
- \xpg@info{Option: Sanskrit, numerals=\val}%
+ \xpg@info{Option: Sanskrit, numerals=\xpg@val}%
}{\xpg@warning{Unknown Sanskrit numeral `#1'}}
@@ -15227,8 +15256,8 @@ and may look very wrong.}
\setlanguagealias[script=Cyrillic]{serbian}{serbianc}
\newif\if@serbian@cyr
-\define@choicekey*+{serbian}{Script}[\val\nr]{cyrillic,latin}[cyrillic]{%
- \ifcase\nr\relax
+\define@choicekey*+{serbian}{Script}[\xpg@val\xpg@nr]{cyrillic,latin}[cyrillic]{%
+ \ifcase\xpg@nr\relax
% cyrillic:
\@serbian@cyrtrue
\SetLanguageKeys{serbian}{scripttag=cyrl,script=Cyrillic,babelname=serbianc,bcp47=sr-Cyrl}
@@ -15241,15 +15270,15 @@ and may look very wrong.}
%TODO \def\serbian@language{\language=\l@serbianlat}%
% or should we use Croatian patterns as a fallback for the time being???
\fi
- \xpg@info{Option: Serbian, script=\val}%
+ \xpg@info{Option: Serbian, script=\xpg@val}%
}{\xpg@warning{Unknown Serbian script `#1'}}
\define@key{serbian}{script}[Cyrillic]{\setkeys{serbian}{Script=#1}}
\newif\ifcyrillic@numerals
\newif\ifcyrillic@asbuk@numerals
-\define@choicekey*+{serbian}{numerals}[\val\nr]{arabic,cyrillic,cyrillic-trad,cyrillic-alph}[arabic]{%
- \ifcase\nr\relax
+\define@choicekey*+{serbian}{numerals}[\xpg@val\xpg@nr]{arabic,cyrillic,cyrillic-trad,cyrillic-alph}[arabic]{%
+ \ifcase\xpg@nr\relax
% arabic:
\cyrillic@numeralsfalse%
\cyrillic@asbuk@numeralsfalse%
@@ -15266,7 +15295,7 @@ and may look very wrong.}
\cyrillic@numeralstrue%
\cyrillic@asbuk@numeralstrue%
\fi
- \xpg@info{Option: Serbian, numerals=\val}%
+ \xpg@info{Option: Serbian, numerals=\xpg@val}%
}{\xpg@warning{Unknown Serbian numerals value `#1'}}
\setkeys{serbian}{Script,numerals}
@@ -15387,7 +15416,7 @@ and may look very wrong.}
\def\serbian@numbers{%
\let\latin@alph\@alph
\let\latin@Alph\@Alph
- \ifserbian@numerals
+ \ifcyrillic@numerals
\def\serbian@alph##1{\expandafter\serbiannumeral\expandafter{\the##1}}%
\def\serbian@Alph##1{\expandafter\Serbiannumeral\expandafter{\the##1}}%
\let\@alph\serbian@alph%
@@ -15401,11 +15430,11 @@ and may look very wrong.}
}
\def\blockextras@serbian{%
- \ifserbian@numerals\serbian@numbers\fi
+ \ifcyrillic@numerals\serbian@numbers\fi
}
\def\noextras@serbian{%
- \ifserbian@numerals\noserbian@numbers\fi
+ \ifcyrillic@numerals\noserbian@numbers\fi
}
\def\Asbuk#1{\expandafter\serbian@asbuk@Alph\csname c@#1\endcsname}
@@ -15831,8 +15860,8 @@ and may look very wrong.}
\setlanguagealias[variant=upper]{sorbian}{uppersorbian}
\def\sorbian@variant{usorbian}
-\define@choicekey*+{sorbian}{variant}[\val\nr]{upper,lower}[upper]{%
- \ifcase\nr\relax
+\define@choicekey*+{sorbian}{variant}[\xpg@val\xpg@nr]{upper,lower}[upper]{%
+ \ifcase\xpg@nr\relax
% upper:
\def\sorbian@variant{usorbian}%
\SetLanguageKeys{sorbian}{language=Upper Sorbian,langtag=USB,babelname=uppersorbian,bcp47=hsb}%
@@ -15873,7 +15902,7 @@ and may look very wrong.}
}
}%
\fi
- \xpg@info{Option: sorbian, variant=\val}%
+ \xpg@info{Option: sorbian, variant=\xpg@val}%
}{\xpg@warning{Unknown sorbian variant `#1'}}
@@ -16018,8 +16047,8 @@ and may look very wrong.}
\newif\if@spanish@mexico
\@spanish@mexicofalse
-\define@choicekey*+{spanish}{variant}[\val\nr]{spanish,mexican}[spanish]{%
- \ifcase\nr\relax
+\define@choicekey*+{spanish}{variant}[\xpg@val\xpg@nr]{spanish,mexican}[spanish]{%
+ \ifcase\xpg@nr\relax
% spanish:
\@spanish@mexicofalse%
\SetLanguageKeys{spanish}{babelname=spanish,bcp47=es-ES}%
@@ -16028,7 +16057,7 @@ and may look very wrong.}
\@spanish@mexicotrue%
\SetLanguageKeys{spanish}{babelname=spanishmx,bcp47=es-MX}%
\fi
- \xpg@info{Option: spanish, variant=\val}%
+ \xpg@info{Option: spanish, variant=\xpg@val}%
}{\xpg@warning{Unknown spanish variant `#1'}}
% Localized math operators à la babel
@@ -16036,8 +16065,8 @@ and may look very wrong.}
\newif\ifspanish@spacedoperators
\newif\ifspanish@locoperators
-\define@choicekey*+{spanish}{spanishoperators}[\val\nr]{all,accented,spaced,none}[all]{%
- \ifcase\nr\relax
+\define@choicekey*+{spanish}{spanishoperators}[\xpg@val\xpg@nr]{all,accented,spaced,none}[all]{%
+ \ifcase\xpg@nr\relax
% all:
\spanish@locoperatorstrue%
\spanish@accentedoperatorstrue%
@@ -16058,7 +16087,7 @@ and may look very wrong.}
\spanish@accentedoperatorsfalse%
\spanish@spacedoperatorsfalse%
\fi
- \xpg@info{Option: Spanish, spanishoperators=\val}%
+ \xpg@info{Option: Spanish, spanishoperators=\xpg@val}%
}{\xpg@warning{Unknown spanishoperators value `#1'}}
@@ -17183,8 +17212,8 @@ and may look very wrong.}
\newif\ifcyrillic@numerals
\newif\ifcyrillic@asbuk@numerals
-\define@choicekey*+{ukrainian}{numerals}[\val\nr]{arabic,cyrillic,cyrillic-trad,cyrillic-alph}[arabic]{%
- \ifcase\nr\relax
+\define@choicekey*+{ukrainian}{numerals}[\xpg@val\xpg@nr]{arabic,cyrillic,cyrillic-trad,cyrillic-alph}[arabic]{%
+ \ifcase\xpg@nr\relax
% arabic:
\cyrillic@numeralsfalse%
\cyrillic@asbuk@numeralsfalse%
@@ -17201,7 +17230,7 @@ and may look very wrong.}
\cyrillic@numeralstrue%
\cyrillic@asbuk@numeralstrue%
\fi
- \xpg@info{Option: Ukrainian, numerals=\val}%
+ \xpg@info{Option: Ukrainian, numerals=\xpg@val}%
}{\xpg@warning{Unknown Ukrainian numerals value `#1'}}
@@ -17700,15 +17729,15 @@ and may look very wrong.}
\providebool{welsh@formaldate}
-\define@choicekey*+{welsh}{date}[\val\nr]{long,short}[short]{%
- \ifcase\nr\relax
+\define@choicekey*+{welsh}{date}[\xpg@val\xpg@nr]{long,short}[short]{%
+ \ifcase\xpg@nr\relax
% long:
\welsh@formaldatetrue
\or
% accented:
\welsh@formaldatefalse
\fi
- \xpg@info{Option: Welsh, date=\val}%
+ \xpg@info{Option: Welsh, date=\xpg@val}%
}{\xpg@warning{Unknown date value `#1'}}
% Register default options
@@ -19337,7 +19366,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
¦----------------------------------------------¦
¦ ¦
- ¦ THE POLYGLOSSIA PACKAGE v1.47 ¦
+ ¦ THE POLYGLOSSIA PACKAGE v1.48 ¦
¦ ¦
¦ Modern multilingual typesetting ¦
¦ with XeLaTeX and LuaLaTeX ¦
@@ -19346,7 +19375,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
This package provides an alternative to Babel for users of XeLaTeX and LuaLaTeX
(with a few languages incompletely supported for the latter). This version
-includes support for 79 different languages, some of which in different
+includes support for over 70 different languages, some of which in different
regional or national varieties, or using a different writing system.
Polyglossia makes it possible to automate the following tasks:
@@ -19385,6 +19414,26 @@ This is more efficient than contacting the maintainer by email as it allows me
to track the issues and follow progress.
%</../README>
%<*Changelog>
+1.48 (25-03-2020)
+
+No new features
+
+Bug fixes:
+ * Fix use of Hebrew with LuaLaTeX (#389).
+ * Do not overwrite footnote redefinitions of other packages
+ with Latin and French (#391)
+ * Fix Serbian cyrillic numerals code (#392).
+ * Fix [no]localmarks option, whose logic was swapped (part of #395).
+ * Protect localmarks function against uppercased language names (part of #395).
+ * Fix buggy redefinition of \@markright with option localmarks (#396).
+ * Fix incompatibility between Latin and unicode-math (#394).
+ * Make (undocumented) \defineshorthand command (imported from babel) work.
+ * Fix usage of localmarks option without value.
+ * Emergency fixes for bugs caused by updates in Babel’s switch.def (#399 and #400).
+
+Interface and defaults changes:
+ * Use private macros in keyval choice keys (#390).
+
1.47 (29-01-2020)
New features:
diff --git a/macros/latex/contrib/polyglossia/polyglossia.ins b/macros/latex/contrib/polyglossia/polyglossia.ins
new file mode 100644
index 0000000000..9a7041dec4
--- /dev/null
+++ b/macros/latex/contrib/polyglossia/polyglossia.ins
@@ -0,0 +1,279 @@
+\input docstrip.tex
+\keepsilent
+\let\MetaPrefix\relax
+\preamble
+ ____________________________
+
+ The polyglossia package
+ (C) 2008–2010 François Charette
+ (C) 2011-2020 Arthur Reutenauer
+ (C) 2013 Elie Roux
+ License information appended
+
+\endpreamble
+\postamble
+
+ Copyright (C) 2020 by Arthur Reutenauer <arthur 'dot' reutenauer 'at' normalesup 'dot' org>
+
+ This work may be distributed and/or modified under the
+ conditions of the LaTeX Project Public License, either version 1.3
+ of this license of (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 Arthur Reutenauer.
+
+\endpostamble
+\let\MetaPrefix\DoubleperCent
+\askforoverwritefalse
+\generate{\file{gloss-acadien.ldf}{\from{polyglossia.dtx}{gloss-acadien.ldf}}}
+\generate{\file{gloss-aeb.ldf}{\from{polyglossia.dtx}{gloss-aeb.ldf}}}
+\generate{\file{gloss-af.ldf}{\from{polyglossia.dtx}{gloss-af.ldf}}}
+\generate{\file{gloss-afb.ldf}{\from{polyglossia.dtx}{gloss-afb.ldf}}}
+\generate{\file{gloss-afrikaans.ldf}{\from{polyglossia.dtx}{gloss-afrikaans.ldf}}}
+\generate{\file{gloss-albanian.ldf}{\from{polyglossia.dtx}{gloss-albanian.ldf}}}
+\generate{\file{gloss-am.ldf}{\from{polyglossia.dtx}{gloss-am.ldf}}}
+\generate{\file{gloss-american.ldf}{\from{polyglossia.dtx}{gloss-american.ldf}}}
+\generate{\file{gloss-amharic.ldf}{\from{polyglossia.dtx}{gloss-amharic.ldf}}}
+\generate{\file{gloss-apd.ldf}{\from{polyglossia.dtx}{gloss-apd.ldf}}}
+\generate{\file{gloss-ar-IQ.ldf}{\from{polyglossia.dtx}{gloss-ar-IQ.ldf}}}
+\generate{\file{gloss-ar-JO.ldf}{\from{polyglossia.dtx}{gloss-ar-JO.ldf}}}
+\generate{\file{gloss-ar-LB.ldf}{\from{polyglossia.dtx}{gloss-ar-LB.ldf}}}
+\generate{\file{gloss-ar-MR.ldf}{\from{polyglossia.dtx}{gloss-ar-MR.ldf}}}
+\generate{\file{gloss-ar-PS.ldf}{\from{polyglossia.dtx}{gloss-ar-PS.ldf}}}
+\generate{\file{gloss-ar-SY.ldf}{\from{polyglossia.dtx}{gloss-ar-SY.ldf}}}
+\generate{\file{gloss-ar-YE.ldf}{\from{polyglossia.dtx}{gloss-ar-YE.ldf}}}
+\generate{\file{gloss-ar.ldf}{\from{polyglossia.dtx}{gloss-ar.ldf}}}
+\generate{\file{gloss-arabic.ldf}{\from{polyglossia.dtx}{gloss-arabic.ldf}}}
+\generate{\file{gloss-armenian.ldf}{\from{polyglossia.dtx}{gloss-armenian.ldf}}}
+\generate{\file{gloss-arq.ldf}{\from{polyglossia.dtx}{gloss-arq.ldf}}}
+\generate{\file{gloss-ary.ldf}{\from{polyglossia.dtx}{gloss-ary.ldf}}}
+\generate{\file{gloss-arz.ldf}{\from{polyglossia.dtx}{gloss-arz.ldf}}}
+\generate{\file{gloss-ast.ldf}{\from{polyglossia.dtx}{gloss-ast.ldf}}}
+\generate{\file{gloss-asturian.ldf}{\from{polyglossia.dtx}{gloss-asturian.ldf}}}
+\generate{\file{gloss-australian.ldf}{\from{polyglossia.dtx}{gloss-australian.ldf}}}
+\generate{\file{gloss-austrian.ldf}{\from{polyglossia.dtx}{gloss-austrian.ldf}}}
+\generate{\file{gloss-ayl.ldf}{\from{polyglossia.dtx}{gloss-ayl.ldf}}}
+\generate{\file{gloss-bahasa.ldf}{\from{polyglossia.dtx}{gloss-bahasa.ldf}}}
+\generate{\file{gloss-bahasai.ldf}{\from{polyglossia.dtx}{gloss-bahasai.ldf}}}
+\generate{\file{gloss-bahasam.ldf}{\from{polyglossia.dtx}{gloss-bahasam.ldf}}}
+\generate{\file{gloss-basque.ldf}{\from{polyglossia.dtx}{gloss-basque.ldf}}}
+\generate{\file{gloss-be-tarask.ldf}{\from{polyglossia.dtx}{gloss-be-tarask.ldf}}}
+\generate{\file{gloss-be.ldf}{\from{polyglossia.dtx}{gloss-be.ldf}}}
+\generate{\file{gloss-belarusian.ldf}{\from{polyglossia.dtx}{gloss-belarusian.ldf}}}
+\generate{\file{gloss-bengali.ldf}{\from{polyglossia.dtx}{gloss-bengali.ldf}}}
+\generate{\file{gloss-bg.ldf}{\from{polyglossia.dtx}{gloss-bg.ldf}}}
+\generate{\file{gloss-bn.ldf}{\from{polyglossia.dtx}{gloss-bn.ldf}}}
+\generate{\file{gloss-bo.ldf}{\from{polyglossia.dtx}{gloss-bo.ldf}}}
+\generate{\file{gloss-bosnian.ldf}{\from{polyglossia.dtx}{gloss-bosnian.ldf}}}
+\generate{\file{gloss-br.ldf}{\from{polyglossia.dtx}{gloss-br.ldf}}}
+\generate{\file{gloss-brazil.ldf}{\from{polyglossia.dtx}{gloss-brazil.ldf}}}
+\generate{\file{gloss-breton.ldf}{\from{polyglossia.dtx}{gloss-breton.ldf}}}
+\generate{\file{gloss-british.ldf}{\from{polyglossia.dtx}{gloss-british.ldf}}}
+\generate{\file{gloss-bs.ldf}{\from{polyglossia.dtx}{gloss-bs.ldf}}}
+\generate{\file{gloss-bulgarian.ldf}{\from{polyglossia.dtx}{gloss-bulgarian.ldf}}}
+\generate{\file{gloss-ca.ldf}{\from{polyglossia.dtx}{gloss-ca.ldf}}}
+\generate{\file{gloss-canadian.ldf}{\from{polyglossia.dtx}{gloss-canadian.ldf}}}
+\generate{\file{gloss-canadien.ldf}{\from{polyglossia.dtx}{gloss-canadien.ldf}}}
+\generate{\file{gloss-catalan.ldf}{\from{polyglossia.dtx}{gloss-catalan.ldf}}}
+\generate{\file{gloss-ckb-Arab.ldf}{\from{polyglossia.dtx}{gloss-ckb-Arab.ldf}}}
+\generate{\file{gloss-ckb-Latn.ldf}{\from{polyglossia.dtx}{gloss-ckb-Latn.ldf}}}
+\generate{\file{gloss-ckb.ldf}{\from{polyglossia.dtx}{gloss-ckb.ldf}}}
+\generate{\file{gloss-cop.ldf}{\from{polyglossia.dtx}{gloss-cop.ldf}}}
+\generate{\file{gloss-coptic.ldf}{\from{polyglossia.dtx}{gloss-coptic.ldf}}}
+\generate{\file{gloss-croatian.ldf}{\from{polyglossia.dtx}{gloss-croatian.ldf}}}
+\generate{\file{gloss-cy.ldf}{\from{polyglossia.dtx}{gloss-cy.ldf}}}
+\generate{\file{gloss-cz.ldf}{\from{polyglossia.dtx}{gloss-cz.ldf}}}
+\generate{\file{gloss-czech.ldf}{\from{polyglossia.dtx}{gloss-czech.ldf}}}
+\generate{\file{gloss-da.ldf}{\from{polyglossia.dtx}{gloss-da.ldf}}}
+\generate{\file{gloss-danish.ldf}{\from{polyglossia.dtx}{gloss-danish.ldf}}}
+\generate{\file{gloss-de-AT-1901.ldf}{\from{polyglossia.dtx}{gloss-de-AT-1901.ldf}}}
+\generate{\file{gloss-de-AT-1996.ldf}{\from{polyglossia.dtx}{gloss-de-AT-1996.ldf}}}
+\generate{\file{gloss-de-AT.ldf}{\from{polyglossia.dtx}{gloss-de-AT.ldf}}}
+\generate{\file{gloss-de-CH-1901.ldf}{\from{polyglossia.dtx}{gloss-de-CH-1901.ldf}}}
+\generate{\file{gloss-de-CH-1996.ldf}{\from{polyglossia.dtx}{gloss-de-CH-1996.ldf}}}
+\generate{\file{gloss-de-CH.ldf}{\from{polyglossia.dtx}{gloss-de-CH.ldf}}}
+\generate{\file{gloss-de-DE-1901.ldf}{\from{polyglossia.dtx}{gloss-de-DE-1901.ldf}}}
+\generate{\file{gloss-de-DE-1996.ldf}{\from{polyglossia.dtx}{gloss-de-DE-1996.ldf}}}
+\generate{\file{gloss-de-DE.ldf}{\from{polyglossia.dtx}{gloss-de-DE.ldf}}}
+\generate{\file{gloss-de-Latf-AT-1901.ldf}{\from{polyglossia.dtx}{gloss-de-Latf-AT-1901.ldf}}}
+\generate{\file{gloss-de-Latf-AT-1996.ldf}{\from{polyglossia.dtx}{gloss-de-Latf-AT-1996.ldf}}}
+\generate{\file{gloss-de-Latf-AT.ldf}{\from{polyglossia.dtx}{gloss-de-Latf-AT.ldf}}}
+\generate{\file{gloss-de-Latf-CH-1901.ldf}{\from{polyglossia.dtx}{gloss-de-Latf-CH-1901.ldf}}}
+\generate{\file{gloss-de-Latf-CH-1996.ldf}{\from{polyglossia.dtx}{gloss-de-Latf-CH-1996.ldf}}}
+\generate{\file{gloss-de-Latf-CH.ldf}{\from{polyglossia.dtx}{gloss-de-Latf-CH.ldf}}}
+\generate{\file{gloss-de-Latf-DE-1901.ldf}{\from{polyglossia.dtx}{gloss-de-Latf-DE-1901.ldf}}}
+\generate{\file{gloss-de-Latf-DE-1996.ldf}{\from{polyglossia.dtx}{gloss-de-Latf-DE-1996.ldf}}}
+\generate{\file{gloss-de-Latf-DE.ldf}{\from{polyglossia.dtx}{gloss-de-Latf-DE.ldf}}}
+\generate{\file{gloss-de-Latf.ldf}{\from{polyglossia.dtx}{gloss-de-Latf.ldf}}}
+\generate{\file{gloss-de.ldf}{\from{polyglossia.dtx}{gloss-de.ldf}}}
+\generate{\file{gloss-divehi.ldf}{\from{polyglossia.dtx}{gloss-divehi.ldf}}}
+\generate{\file{gloss-dsb.ldf}{\from{polyglossia.dtx}{gloss-dsb.ldf}}}
+\generate{\file{gloss-dutch.ldf}{\from{polyglossia.dtx}{gloss-dutch.ldf}}}
+\generate{\file{gloss-dv.ldf}{\from{polyglossia.dtx}{gloss-dv.ldf}}}
+\generate{\file{gloss-el-monoton.ldf}{\from{polyglossia.dtx}{gloss-el-monoton.ldf}}}
+\generate{\file{gloss-el-polyton.ldf}{\from{polyglossia.dtx}{gloss-el-polyton.ldf}}}
+\generate{\file{gloss-el.ldf}{\from{polyglossia.dtx}{gloss-el.ldf}}}
+\generate{\file{gloss-en-AU.ldf}{\from{polyglossia.dtx}{gloss-en-AU.ldf}}}
+\generate{\file{gloss-en-CA.ldf}{\from{polyglossia.dtx}{gloss-en-CA.ldf}}}
+\generate{\file{gloss-en-GB.ldf}{\from{polyglossia.dtx}{gloss-en-GB.ldf}}}
+\generate{\file{gloss-en-NZ.ldf}{\from{polyglossia.dtx}{gloss-en-NZ.ldf}}}
+\generate{\file{gloss-en-US.ldf}{\from{polyglossia.dtx}{gloss-en-US.ldf}}}
+\generate{\file{gloss-en.ldf}{\from{polyglossia.dtx}{gloss-en.ldf}}}
+\generate{\file{gloss-english.ldf}{\from{polyglossia.dtx}{gloss-english.ldf}}}
+\generate{\file{gloss-eo.ldf}{\from{polyglossia.dtx}{gloss-eo.ldf}}}
+\generate{\file{gloss-es-ES.ldf}{\from{polyglossia.dtx}{gloss-es-ES.ldf}}}
+\generate{\file{gloss-es-MX.ldf}{\from{polyglossia.dtx}{gloss-es-MX.ldf}}}
+\generate{\file{gloss-es.ldf}{\from{polyglossia.dtx}{gloss-es.ldf}}}
+\generate{\file{gloss-esperanto.ldf}{\from{polyglossia.dtx}{gloss-esperanto.ldf}}}
+\generate{\file{gloss-estonian.ldf}{\from{polyglossia.dtx}{gloss-estonian.ldf}}}
+\generate{\file{gloss-et.ldf}{\from{polyglossia.dtx}{gloss-et.ldf}}}
+\generate{\file{gloss-eu.ldf}{\from{polyglossia.dtx}{gloss-eu.ldf}}}
+\generate{\file{gloss-fa.ldf}{\from{polyglossia.dtx}{gloss-fa.ldf}}}
+\generate{\file{gloss-farsi.ldf}{\from{polyglossia.dtx}{gloss-farsi.ldf}}}
+\generate{\file{gloss-fi.ldf}{\from{polyglossia.dtx}{gloss-fi.ldf}}}
+\generate{\file{gloss-finnish.ldf}{\from{polyglossia.dtx}{gloss-finnish.ldf}}}
+\generate{\file{gloss-fr-CA.ldf}{\from{polyglossia.dtx}{gloss-fr-CA.ldf}}}
+\generate{\file{gloss-fr-CH.ldf}{\from{polyglossia.dtx}{gloss-fr-CH.ldf}}}
+\generate{\file{gloss-fr-FR.ldf}{\from{polyglossia.dtx}{gloss-fr-FR.ldf}}}
+\generate{\file{gloss-fr.ldf}{\from{polyglossia.dtx}{gloss-fr.ldf}}}
+\generate{\file{gloss-french.ldf}{\from{polyglossia.dtx}{gloss-french.ldf}}}
+\generate{\file{gloss-friulan.ldf}{\from{polyglossia.dtx}{gloss-friulan.ldf}}}
+\generate{\file{gloss-friulian.ldf}{\from{polyglossia.dtx}{gloss-friulian.ldf}}}
+\generate{\file{gloss-fur.ldf}{\from{polyglossia.dtx}{gloss-fur.ldf}}}
+\generate{\file{gloss-ga.ldf}{\from{polyglossia.dtx}{gloss-ga.ldf}}}
+\generate{\file{gloss-gaelic.ldf}{\from{polyglossia.dtx}{gloss-gaelic.ldf}}}
+\generate{\file{gloss-galician.ldf}{\from{polyglossia.dtx}{gloss-galician.ldf}}}
+\generate{\file{gloss-gd.ldf}{\from{polyglossia.dtx}{gloss-gd.ldf}}}
+\generate{\file{gloss-georgian.ldf}{\from{polyglossia.dtx}{gloss-georgian.ldf}}}
+\generate{\file{gloss-german.ldf}{\from{polyglossia.dtx}{gloss-german.ldf}}}
+\generate{\file{gloss-germanb.ldf}{\from{polyglossia.dtx}{gloss-germanb.ldf}}}
+\generate{\file{gloss-gl.ldf}{\from{polyglossia.dtx}{gloss-gl.ldf}}}
+\generate{\file{gloss-grc.ldf}{\from{polyglossia.dtx}{gloss-grc.ldf}}}
+\generate{\file{gloss-greek.ldf}{\from{polyglossia.dtx}{gloss-greek.ldf}}}
+\generate{\file{gloss-he.ldf}{\from{polyglossia.dtx}{gloss-he.ldf}}}
+\generate{\file{gloss-hebrew.ldf}{\from{polyglossia.dtx}{gloss-hebrew.ldf}}}
+\generate{\file{gloss-hi.ldf}{\from{polyglossia.dtx}{gloss-hi.ldf}}}
+\generate{\file{gloss-hindi.ldf}{\from{polyglossia.dtx}{gloss-hindi.ldf}}}
+\generate{\file{gloss-hr.ldf}{\from{polyglossia.dtx}{gloss-hr.ldf}}}
+\generate{\file{gloss-hsb.ldf}{\from{polyglossia.dtx}{gloss-hsb.ldf}}}
+\generate{\file{gloss-hu.ldf}{\from{polyglossia.dtx}{gloss-hu.ldf}}}
+\generate{\file{gloss-hungarian.ldf}{\from{polyglossia.dtx}{gloss-hungarian.ldf}}}
+\generate{\file{gloss-hy.ldf}{\from{polyglossia.dtx}{gloss-hy.ldf}}}
+\generate{\file{gloss-ia.ldf}{\from{polyglossia.dtx}{gloss-ia.ldf}}}
+\generate{\file{gloss-icelandic.ldf}{\from{polyglossia.dtx}{gloss-icelandic.ldf}}}
+\generate{\file{gloss-id.ldf}{\from{polyglossia.dtx}{gloss-id.ldf}}}
+\generate{\file{gloss-interlingua.ldf}{\from{polyglossia.dtx}{gloss-interlingua.ldf}}}
+\generate{\file{gloss-irish.ldf}{\from{polyglossia.dtx}{gloss-irish.ldf}}}
+\generate{\file{gloss-is.ldf}{\from{polyglossia.dtx}{gloss-is.ldf}}}
+\generate{\file{gloss-it.ldf}{\from{polyglossia.dtx}{gloss-it.ldf}}}
+\generate{\file{gloss-italian.ldf}{\from{polyglossia.dtx}{gloss-italian.ldf}}}
+\generate{\file{gloss-ja.ldf}{\from{polyglossia.dtx}{gloss-ja.ldf}}}
+\generate{\file{gloss-japanese.ldf}{\from{polyglossia.dtx}{gloss-japanese.ldf}}}
+\generate{\file{gloss-ka.ldf}{\from{polyglossia.dtx}{gloss-ka.ldf}}}
+\generate{\file{gloss-kannada.ldf}{\from{polyglossia.dtx}{gloss-kannada.ldf}}}
+\generate{\file{gloss-khmer.ldf}{\from{polyglossia.dtx}{gloss-khmer.ldf}}}
+\generate{\file{gloss-km.ldf}{\from{polyglossia.dtx}{gloss-km.ldf}}}
+\generate{\file{gloss-kmr-Arab.ldf}{\from{polyglossia.dtx}{gloss-kmr-Arab.ldf}}}
+\generate{\file{gloss-kmr-Latn.ldf}{\from{polyglossia.dtx}{gloss-kmr-Latn.ldf}}}
+\generate{\file{gloss-kmr.ldf}{\from{polyglossia.dtx}{gloss-kmr.ldf}}}
+\generate{\file{gloss-kn.ldf}{\from{polyglossia.dtx}{gloss-kn.ldf}}}
+\generate{\file{gloss-ko.ldf}{\from{polyglossia.dtx}{gloss-ko.ldf}}}
+\generate{\file{gloss-korean.ldf}{\from{polyglossia.dtx}{gloss-korean.ldf}}}
+\generate{\file{gloss-ku-Arab.ldf}{\from{polyglossia.dtx}{gloss-ku-Arab.ldf}}}
+\generate{\file{gloss-ku-Latn.ldf}{\from{polyglossia.dtx}{gloss-ku-Latn.ldf}}}
+\generate{\file{gloss-ku.ldf}{\from{polyglossia.dtx}{gloss-ku.ldf}}}
+\generate{\file{gloss-kurdish.ldf}{\from{polyglossia.dtx}{gloss-kurdish.ldf}}}
+\generate{\file{gloss-kurmanji.ldf}{\from{polyglossia.dtx}{gloss-kurmanji.ldf}}}
+\generate{\file{gloss-la-x-classic.ldf}{\from{polyglossia.dtx}{gloss-la-x-classic.ldf}}}
+\generate{\file{gloss-la-x-ecclesia.ldf}{\from{polyglossia.dtx}{gloss-la-x-ecclesia.ldf}}}
+\generate{\file{gloss-la-x-medieval.ldf}{\from{polyglossia.dtx}{gloss-la-x-medieval.ldf}}}
+\generate{\file{gloss-la.ldf}{\from{polyglossia.dtx}{gloss-la.ldf}}}
+\generate{\file{gloss-lao.ldf}{\from{polyglossia.dtx}{gloss-lao.ldf}}}
+\generate{\file{gloss-latex.ldf}{\from{polyglossia.dtx}{gloss-latex.ldf}}}
+\generate{\file{gloss-latin.ldf}{\from{polyglossia.dtx}{gloss-latin.ldf}}}
+\generate{\file{gloss-latinclassic.ldf}{\from{polyglossia.dtx}{gloss-latinclassic.ldf}}}
+\generate{\file{gloss-latinecclesiastic.ldf}{\from{polyglossia.dtx}{gloss-latinecclesiastic.ldf}}}
+\generate{\file{gloss-latinmedieval.ldf}{\from{polyglossia.dtx}{gloss-latinmedieval.ldf}}}
+\generate{\file{gloss-latvian.ldf}{\from{polyglossia.dtx}{gloss-latvian.ldf}}}
+\generate{\file{gloss-lithuanian.ldf}{\from{polyglossia.dtx}{gloss-lithuanian.ldf}}}
+\generate{\file{gloss-lo.ldf}{\from{polyglossia.dtx}{gloss-lo.ldf}}}
+\generate{\file{gloss-lowersorbian.ldf}{\from{polyglossia.dtx}{gloss-lowersorbian.ldf}}}
+\generate{\file{gloss-lsorbian.ldf}{\from{polyglossia.dtx}{gloss-lsorbian.ldf}}}
+\generate{\file{gloss-lt.ldf}{\from{polyglossia.dtx}{gloss-lt.ldf}}}
+\generate{\file{gloss-lv.ldf}{\from{polyglossia.dtx}{gloss-lv.ldf}}}
+\generate{\file{gloss-macedonian.ldf}{\from{polyglossia.dtx}{gloss-macedonian.ldf}}}
+\generate{\file{gloss-magyar.ldf}{\from{polyglossia.dtx}{gloss-magyar.ldf}}}
+\generate{\file{gloss-malay.ldf}{\from{polyglossia.dtx}{gloss-malay.ldf}}}
+\generate{\file{gloss-malayalam.ldf}{\from{polyglossia.dtx}{gloss-malayalam.ldf}}}
+\generate{\file{gloss-marathi.ldf}{\from{polyglossia.dtx}{gloss-marathi.ldf}}}
+\generate{\file{gloss-mk.ldf}{\from{polyglossia.dtx}{gloss-mk.ldf}}}
+\generate{\file{gloss-ml.ldf}{\from{polyglossia.dtx}{gloss-ml.ldf}}}
+\generate{\file{gloss-mn.ldf}{\from{polyglossia.dtx}{gloss-mn.ldf}}}
+\generate{\file{gloss-mongolian.ldf}{\from{polyglossia.dtx}{gloss-mongolian.ldf}}}
+\generate{\file{gloss-mr.ldf}{\from{polyglossia.dtx}{gloss-mr.ldf}}}
+\generate{\file{gloss-naustrian.ldf}{\from{polyglossia.dtx}{gloss-naustrian.ldf}}}
+\generate{\file{gloss-nb.ldf}{\from{polyglossia.dtx}{gloss-nb.ldf}}}
+\generate{\file{gloss-newzealand.ldf}{\from{polyglossia.dtx}{gloss-newzealand.ldf}}}
+\generate{\file{gloss-ngerman.ldf}{\from{polyglossia.dtx}{gloss-ngerman.ldf}}}
+\generate{\file{gloss-nko.ldf}{\from{polyglossia.dtx}{gloss-nko.ldf}}}
+\generate{\file{gloss-norsk.ldf}{\from{polyglossia.dtx}{gloss-norsk.ldf}}}
+\generate{\file{gloss-norwegian.ldf}{\from{polyglossia.dtx}{gloss-norwegian.ldf}}}
+\generate{\file{gloss-nswissgerman.ldf}{\from{polyglossia.dtx}{gloss-nswissgerman.ldf}}}
+\generate{\file{gloss-nynorsk.ldf}{\from{polyglossia.dtx}{gloss-nynorsk.ldf}}}
+\generate{\file{gloss-occitan.ldf}{\from{polyglossia.dtx}{gloss-occitan.ldf}}}
+\generate{\file{gloss-persian.ldf}{\from{polyglossia.dtx}{gloss-persian.ldf}}}
+\generate{\file{gloss-piedmontese.ldf}{\from{polyglossia.dtx}{gloss-piedmontese.ldf}}}
+\generate{\file{gloss-polish.ldf}{\from{polyglossia.dtx}{gloss-polish.ldf}}}
+\generate{\file{gloss-polutonikogreek.ldf}{\from{polyglossia.dtx}{gloss-polutonikogreek.ldf}}}
+\generate{\file{gloss-portuges.ldf}{\from{polyglossia.dtx}{gloss-portuges.ldf}}}
+\generate{\file{gloss-portuguese.ldf}{\from{polyglossia.dtx}{gloss-portuguese.ldf}}}
+\generate{\file{gloss-romanian.ldf}{\from{polyglossia.dtx}{gloss-romanian.ldf}}}
+\generate{\file{gloss-romansh.ldf}{\from{polyglossia.dtx}{gloss-romansh.ldf}}}
+\generate{\file{gloss-russian.ldf}{\from{polyglossia.dtx}{gloss-russian.ldf}}}
+\generate{\file{gloss-sami.ldf}{\from{polyglossia.dtx}{gloss-sami.ldf}}}
+\generate{\file{gloss-samin.ldf}{\from{polyglossia.dtx}{gloss-samin.ldf}}}
+\generate{\file{gloss-sanskrit.ldf}{\from{polyglossia.dtx}{gloss-sanskrit.ldf}}}
+\generate{\file{gloss-scottish.ldf}{\from{polyglossia.dtx}{gloss-scottish.ldf}}}
+\generate{\file{gloss-serbian.ldf}{\from{polyglossia.dtx}{gloss-serbian.ldf}}}
+\generate{\file{gloss-serbianc.ldf}{\from{polyglossia.dtx}{gloss-serbianc.ldf}}}
+\generate{\file{gloss-slovak.ldf}{\from{polyglossia.dtx}{gloss-slovak.ldf}}}
+\generate{\file{gloss-slovene.ldf}{\from{polyglossia.dtx}{gloss-slovene.ldf}}}
+\generate{\file{gloss-slovenian.ldf}{\from{polyglossia.dtx}{gloss-slovenian.ldf}}}
+\generate{\file{gloss-sorbian.ldf}{\from{polyglossia.dtx}{gloss-sorbian.ldf}}}
+\generate{\file{gloss-spanish.ldf}{\from{polyglossia.dtx}{gloss-spanish.ldf}}}
+\generate{\file{gloss-spanishmx.ldf}{\from{polyglossia.dtx}{gloss-spanishmx.ldf}}}
+\generate{\file{gloss-swedish.ldf}{\from{polyglossia.dtx}{gloss-swedish.ldf}}}
+\generate{\file{gloss-swissgerman.ldf}{\from{polyglossia.dtx}{gloss-swissgerman.ldf}}}
+\generate{\file{gloss-syriac.ldf}{\from{polyglossia.dtx}{gloss-syriac.ldf}}}
+\generate{\file{gloss-tamil.ldf}{\from{polyglossia.dtx}{gloss-tamil.ldf}}}
+\generate{\file{gloss-telugu.ldf}{\from{polyglossia.dtx}{gloss-telugu.ldf}}}
+\generate{\file{gloss-thai.ldf}{\from{polyglossia.dtx}{gloss-thai.ldf}}}
+\generate{\file{gloss-tibetan.ldf}{\from{polyglossia.dtx}{gloss-tibetan.ldf}}}
+\generate{\file{gloss-turkish.ldf}{\from{polyglossia.dtx}{gloss-turkish.ldf}}}
+\generate{\file{gloss-turkmen.ldf}{\from{polyglossia.dtx}{gloss-turkmen.ldf}}}
+\generate{\file{gloss-ukrainian.ldf}{\from{polyglossia.dtx}{gloss-ukrainian.ldf}}}
+\generate{\file{gloss-uppersorbian.ldf}{\from{polyglossia.dtx}{gloss-uppersorbian.ldf}}}
+\generate{\file{gloss-urdu.ldf}{\from{polyglossia.dtx}{gloss-urdu.ldf}}}
+\generate{\file{gloss-usorbian.ldf}{\from{polyglossia.dtx}{gloss-usorbian.ldf}}}
+\generate{\file{gloss-vietnamese.ldf}{\from{polyglossia.dtx}{gloss-vietnamese.ldf}}}
+\generate{\file{gloss-welsh.ldf}{\from{polyglossia.dtx}{gloss-welsh.ldf}}}
+\generate{\file{arabicdigits.map}{\from{polyglossia.dtx}{arabicdigits.map}}}
+\generate{\file{bengalidigits.map}{\from{polyglossia.dtx}{bengalidigits.map}}}
+\generate{\file{devanagaridigits.map}{\from{polyglossia.dtx}{devanagaridigits.map}}}
+\generate{\file{farsidigits.map}{\from{polyglossia.dtx}{farsidigits.map}}}
+\generate{\file{thaidigits.map}{\from{polyglossia.dtx}{thaidigits.map}}}
+\def\MetaPrefix{-- }
+\generate{\file{polyglossia-french.lua}{\from{polyglossia.dtx}{polyglossia-french.lua}}}
+\generate{\file{polyglossia-korean.lua}{\from{polyglossia.dtx}{polyglossia-korean.lua}}}
+\generate{\file{polyglossia-latin.lua}{\from{polyglossia.dtx}{polyglossia-latin.lua}}}
+\generate{\file{polyglossia-punct.lua}{\from{polyglossia.dtx}{polyglossia-punct.lua}}}
+\generate{\file{polyglossia-sanskrit.lua}{\from{polyglossia.dtx}{polyglossia-sanskrit.lua}}}
+\generate{\file{polyglossia-tibt.lua}{\from{polyglossia.dtx}{polyglossia-tibt.lua}}}
+\generate{\file{polyglossia.lua}{\from{polyglossia.dtx}{polyglossia.lua}}}
+\let\MetaPrefix\DoubleperCent
+\endbatchfile
diff --git a/macros/latex/contrib/polyglossia/polyglossia.pdf b/macros/latex/contrib/polyglossia/polyglossia.pdf
index 94b595acc6..6ac006692b 100644
--- a/macros/latex/contrib/polyglossia/polyglossia.pdf
+++ b/macros/latex/contrib/polyglossia/polyglossia.pdf
Binary files differ
diff --git a/macros/latex/contrib/xpatch/README b/macros/latex/contrib/xpatch/README
index e228ead5cc..41c2870bf4 100644
--- a/macros/latex/contrib/xpatch/README
+++ b/macros/latex/contrib/xpatch/README
@@ -1,14 +1,18 @@
The xpatch package generalizes the macro patching commands provided by
P. Lehmann's `etoolbox'.
-This is version 0.3 of the package
+This is version 0.3a of the package
+
+Changes from version 0.3
+o Changed deprecated function \token_get_replacement_spec:N
+ to \cs_replacement_spec:N
Changes from version 0.2
o Added \xpatch...format, \xpreto...format and \xappto...format macros
for patching internal biblatex macros defined \Declare...Format
(under kind request by Audrey Boruvka)
- Copyright 2012 Enrico Gregorio
+ Copyright 2012-2020 Enrico Gregorio
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
diff --git a/macros/latex/contrib/xpatch/xpatch.dtx b/macros/latex/contrib/xpatch/xpatch.dtx
index f901c32048..2fe484e667 100644
--- a/macros/latex/contrib/xpatch/xpatch.dtx
+++ b/macros/latex/contrib/xpatch/xpatch.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: xpatch.dtx (C) Copyright 2012 Enrico Gregorio
+%% File: xpatch.dtx (C) Copyright 2012-2020 Enrico Gregorio
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -24,7 +24,7 @@
\usepackage{bookmark}
%</driver>
%<*driver|package>
-\GetIdInfo$Id: xpatch.dtx 0.3 2012-10-02 12:00:00Z Enrico $
+\GetIdInfo$Id: xpatch.dtx 0.3a 2020-03-25 12:00:00Z Enrico $
{Extending etoolbox patching commands}
%</driver|package>
%<*driver>
@@ -36,6 +36,7 @@
% \changes{v0.2}{2012/01/13}{Added \texttt{\char`\\x...bibdriver} macros; fixed a bug for
% control symbols defined with \texttt{\char`\\newcommand} and an optional argument.}
% \changes{v0.3}{2012/10/01}{Added a bunch of biblatex related commands}
+% \changes{v0.3a}{2020/03/25}{Changed deprecated function}
%
% \title{^^A
% The \textsf{xpatch} package\\ Extending \textsf{etoolbox} patching
@@ -543,7 +544,7 @@
% \pkg{l3regex} stabilizes.}
% \begin{macrocode}
\tl_set:Nx \l__xpatch_repl_tl
- { \c__xpatch_bizarre_tl \token_get_replacement_spec:N #2 }
+ { \c__xpatch_bizarre_tl \cs_replacement_spec:N #2 }
% \end{macrocode}
% We look whether the token list contains the bizarre list followed by
% |\protect| and the same name (with two spaces) which happens if |#2|
@@ -635,7 +636,7 @@
{
\tl_set:Nx \l__xpatch_repl_tl
{ \c__xpatch_bizarre_tl
- \exp_after:wN \token_get_replacement_spec:N
+ \exp_after:wN \cs_replacement_spec:N
\cs:w \l__xpatch_name_tl \cs_end: }
\tl_if_in:NxT \l__xpatch_repl_tl
{
diff --git a/macros/latex/contrib/xpatch/xpatch.ins b/macros/latex/contrib/xpatch/xpatch.ins
index 28ca5db676..dc0ad457d6 100644
--- a/macros/latex/contrib/xpatch/xpatch.ins
+++ b/macros/latex/contrib/xpatch/xpatch.ins
@@ -1,6 +1,6 @@
\iffalse meta-comment
-File xpatch.ins Copyright (C) 2012 Enrico Gregorio
+File xpatch.ins Copyright (C) 2012-2020 Enrico Gregorio
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
diff --git a/macros/latex/contrib/xpatch/xpatch.pdf b/macros/latex/contrib/xpatch/xpatch.pdf
index f84680cc4f..be1e39fe49 100644
--- a/macros/latex/contrib/xpatch/xpatch.pdf
+++ b/macros/latex/contrib/xpatch/xpatch.pdf
Binary files differ