summaryrefslogtreecommitdiff
path: root/macros/latex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-03-05 03:00:59 +0000
committerNorbert Preining <norbert@preining.info>2020-03-05 03:00:59 +0000
commit898048513951b471a492afa23e46112d14bcb236 (patch)
tree8596afc705f55d2d07b324a756f7283ac0e2d21b /macros/latex
parent19d25b8009801aa98ea2f46b45c37c257f990491 (diff)
CTAN sync 202003050300
Diffstat (limited to 'macros/latex')
-rw-r--r--macros/latex/contrib/babel-contrib/spanglish/README32
-rw-r--r--macros/latex/contrib/babel-contrib/spanglish/spanglish.ldf268
-rw-r--r--macros/latex/contrib/babel-contrib/spanglish/spanglish.sty55
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ajc2020unofficial/README.md42
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ajc2020unofficial/ajc2020unofficial.bbx73
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-ajc2020unofficial/ajc2020unofficial.cbx4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md949
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015-preamble.tex12
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdfbin1526661 -> 2452077 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex544
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/chinese-erj.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx375
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx33
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx30
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx29
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gbT7714-2015.tex4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gbT7714-2015ms.tex4
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gbT7714-2015thesis.tex4
-rw-r--r--macros/latex/contrib/ltxindex/README15
-rw-r--r--macros/latex/contrib/ltxindex/copying.txt340
-rw-r--r--macros/latex/contrib/ltxindex/ltxindex.dtx499
-rw-r--r--macros/latex/contrib/ltxindex/ltxindex.pdfbin80113 -> 0 bytes
-rw-r--r--macros/latex/contrib/ltxindex/ltxindex.sty202
-rw-r--r--macros/latex/contrib/lwarp/README.txt2
-rw-r--r--macros/latex/contrib/lwarp/lwarp.dtx2359
-rw-r--r--macros/latex/contrib/lwarp/lwarp.ins15
-rw-r--r--macros/latex/contrib/lwarp/lwarp.pdfbin2633200 -> 2685560 bytes
-rwxr-xr-xmacros/latex/contrib/lwarp/lwarpmk.lua6
-rw-r--r--macros/latex/contrib/media9/ChangeLog7
-rw-r--r--macros/latex/contrib/media9/doc/media9.pdfbin3735214 -> 3735211 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/xsavebox/ChangeLog4
-rw-r--r--macros/latex/contrib/xsavebox/README.md1
-rw-r--r--macros/latex/contrib/xsavebox/xsavebox.pdfbin368416 -> 368610 bytes
-rw-r--r--macros/latex/contrib/xsavebox/xsavebox.sty12
-rw-r--r--macros/latex/contrib/xsavebox/xsavebox.tex2
-rw-r--r--macros/latex/contrib/zref/zref.dtx564
-rw-r--r--macros/latex/contrib/zref/zref.pdfbin686493 -> 671033 bytes
39 files changed, 4126 insertions, 2375 deletions
diff --git a/macros/latex/contrib/babel-contrib/spanglish/README b/macros/latex/contrib/babel-contrib/spanglish/README
deleted file mode 100644
index 65b38855de..0000000000
--- a/macros/latex/contrib/babel-contrib/spanglish/README
+++ /dev/null
@@ -1,32 +0,0 @@
-
-The \textsf{Spanglish} ``language'' is a compromise between the use of the
-Spanish language in writing and English mathematics.
-
-Thus, there are no Spanish mathematical features supported (no accented
-operators, no decimal comma), and there is (probably less than) minimal
-Spanish language support for text.
-There is a conscious effort to make this ``language'' upwards compatible with
-the ``standard'' Spanish language definition, so the shorthands implemented here
-are but a very narrow subset of the standard Spanish language:
-those strictly necessary to handle Spanish hyphenation properly,
-and a few extras to straighten the text a little in a Spanish layout and support
-plain ASCII input in LaTeX, like frenchspacing, indentfirst,
-symbolic footnotes, lowercase roman numerals,
-and a few shorthands to improve hyphenation.
-All other typographic decisions are left to other macro packages
-according to user's taste (or lack thereof).
-So, in a sense, this ``language'' is a very stripped down or ultra-sloppy
-version of the ``standard'' spanish.ldf, mainly as a fallback solution.
-
-There are two public attributes/modifiers enabled for this ``language'',
-asc and tn, designed to improve support of ASCII input;
-the former activates all shorthands necessary to input Spanish with plain ASCII
-characters: this modifier supersedes the need to call the activeacute option
-from Babel;
-while the latter supports the input of Spanish \~n with the tilde ~n.
-Both modifiers are provided for backwards compatibility, assuming that most
-Spanish users actually choose a suitable 8bit font and input encoding.
-
-Questions, comments? Drop me an email at jlrn77 at gmail dot com
-
-April 1, 2015.
diff --git a/macros/latex/contrib/babel-contrib/spanglish/spanglish.ldf b/macros/latex/contrib/babel-contrib/spanglish/spanglish.ldf
deleted file mode 100644
index 0c7a7f0e23..0000000000
--- a/macros/latex/contrib/babel-contrib/spanglish/spanglish.ldf
+++ /dev/null
@@ -1,268 +0,0 @@
-%%
-%% This is file `spanglish.ldf',
-%% Copyright 2008-2015 Luis Rivera and any individual authors
-%% listed elsewhere in this file. All rights reserved.
-%%
-% The 'spanglish' dialect was originally adapted from the 'galician'
-% language (v1.2l 2005/03/30), by Manuel Carriba (mcarriba at eunetcom.net),
-% based on the original spanish.sty, written by Julio S\'anchez,
-% (jsanchez at gmv.es)
-% Additional code from spanish.ldf v4.2, by Javier Bezos L\'opez (JBL).
-%%
-%% This file may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either version 1.3
-%% of this license or (at your option) any later version.
-%% The latest version of this license is in
-%% http://www.latex-project.org/lppl.txt
-%% and version 1.3 or later is part of all distributions of LaTeX
-%% version 2003/12/01 or later.
-%%
-%% This work has the LPPL maintenance status "maintained".
-%%
-%% The Current Maintainer of this work is J. Luis Rivera N.
-%% jlrn77 at gmail dot com
-%%
-%% \changes{2010/12/28}{Release version, from 2007/01/26 code.}
-%5 \changes{2013/03/01}{Bug fixes.}
-%% \changes{2015/04/01}{Removed accented math operators and \bbl@activate patch.}
-%% \changes{2015/04/10}{Removed activeacute support and added ascii input modifiers.}
-%% \changes{2015/04/10}{Removed dependency on esindex: now you have to load it yourself.}
-%%
-\ProvidesLanguage{spanglish}
- [2015/04/01 v0.3 Spanglish: Simpler Spanish support]
-\LdfInit{spanglish}\captionsspanglish
-% spanglish is a dialect of either Spanish or English
-\ifx\l@spanglish\@undefined
- \ifx\l@spanish\@undefined
- \@nopatterns{span[gl]ish}
- \adddialect\l@spanglish0
- \else
- \adddialect\l@spanglish\l@spanish
- \fi\fi
-%
-\addto\captionsspanglish{%
- \def\prefacename{Prefacio}%
- \def\refname{Referencias}%
- \def\abstractname{Resumen}%
- \def\bibname{Bibliograf\'{\i}a}%
- \def\chaptername{Cap\'{\i}tulo}%
- \def\appendixname{Ap\'endice}%
- \def\contentsname{\'Indice}%
- \def\listfigurename{\'Indice de Figuras}%
- \def\listtablename{\'Indice de Cuadros}%
- \def\indexname{\'Indice Alfab\'etico}%
- \def\figurename{Figura}%
- \def\tablename{Cuadro}%
- \def\partname{Parte}%
- \def\enclname{Anexo}%
- \def\ccname{Copia a}%
- \def\headtoname{A}%
- \def\pagename{P\'agina}%
- \def\seename{v\'ease}%
- \def\alsoname{v\'ease tambi\'en}%
- \def\proofname{Demostraci\'on}%
- \def\glossaryname{Glosario}%
-}
-%
-\def\datespanglish{%
- \def\today{\number\day\space de \ifcase\month\or
- enero\or febrero\or marzo\or abril\or mayo\or junio\or
- julio\or agosto\or septiembre\or octubre\or noviembre\or diciembre\fi
- \space de \number\year}}
-\addto\extrasspanglish{\bbl@frenchspacing}
-\addto\noextrasspanglish{\bbl@nonfrenchspacing}
-%
-\newif\ifesmx@latex
-\@ifundefined{documentclass}
- {\esmx@latexfalse}
- {\esmx@latextrue}
-%
-\addto\extrasspanglish{\languageshorthands{spanglish}}
-\initiate@active@char{"}% Only doublequote is active by default
-\addto\extrasspanglish{%
- \bbl@activate{"}}
-\addto\noextrasspanglish{%
- \bbl@deactivate{"}}
-\addto\extrasspanglish{%
- \babel@save\"%
- \def\"{\protect\@umlaut}}
-\let\dieresis\"
-\def\@umlaut#1{\allowhyphens\dieresis{#1}\allowhyphens}
-% shorthands for hyphenation
-\declare@shorthand{spanglish}{"-}{\nobreak-\bbl@allowhyphens}
-\declare@shorthand{spanglish}{"|}{\discretionary{-}{}{\kern.03em}}
-\declare@shorthand{spanglish}{"r}% to hyphenate para"rrayos properly
- {\bbl@allowhyphens\discretionary{\char\hyphenchar\font}%
- {}{r}\bbl@allowhyphens}
-\declare@shorthand{spanglish}{"R}
- {\bbl@allowhyphens\discretionary{\char\hyphenchar\font}%
- {}{R}\bbl@allowhyphens}
-\ifesmx@latex% this guillemets hack, by jbl
- \DeclareTextCommand{\guillemotleft}{OT1}{%
- \ifmmode\ll
- \else
- \save@sf@q{\penalty\@M
- \leavevmode\hbox{\usefont{U}{lasy}{m}{n}%
- \char40 \kern-0.19em\char40 }}%
- \fi}%
- \DeclareTextCommand{\guillemotright}{OT1}{%
- \ifmmode\gg
- \else
- \save@sf@q{\penalty\@M
- \leavevmode\hbox{\usefont{U}{lasy}{m}{n}%
- \char41 \kern-0.19em\char41 }}%
- \fi}%
-% end jbl; jlrn's American double quotes
-\declare@shorthand{spanglish}{"`}{\textquotedblleft{}}
-\declare@shorthand{spanglish}{"'}{\textquotedblright{}}
-\fi % end quotedbldefs
-% three hacks by JBL to adjust height of ?`!`/ with all uppercase letters
-\declare@shorthand{spanglish}{"/}% first
- {\setbox\z@\hbox{/}%
- \dimen@\ht\z@
- \advance\dimen@-1ex
- \advance\dimen@\dp\z@
- \dimen@.31\dimen@
- \advance\dimen@-\dp\z@
- \ifdim\dimen@>0pt
- \kern.01em\lower\dimen@\box\z@\kern.03em
- \else
- \box\z@
- \fi}
-\declare@shorthand{spanglish}{"?}% second
- {\setbox\z@\hbox{?`}%
- \leavevmode\raise\dp\z@\box\z@}
-\declare@shorthand{spanglish}{"!}% third
- {\setbox\z@\hbox{!`}%
- \leavevmode\raise\dp\z@\box\z@}
-\addto\extrasspanglish{% JS's discretionary hyphens
- \babel@save{\-}%
- \def\-{\bbl@allowhyphens\discretionary{-}{}{}\bbl@allowhyphens}}
-%%%
-%%% some code to support accented and spaced math operators was here. RIP.
-%%%
-% support for abbreviations
-\def\esmx@plain@esabrv#1{.$^{{\rm #1}}$}
-\def\esmx@ltx@esabrv#1{.\textsuperscript{#1}}
-\def\esmx@esabrv@r#1#2{\esabrv{#1#2}}% nice trick by JBL
-\ifesmx@latex
- \let\esabrv\esmx@ltx@esabrv
- \else
- \let\esabrv\esmx@plain@esabrv
-\fi
-%% ascii shorthands, rearranged, without activeacute...
-\bbl@declare@ttribute{spanglish}{asc}{
- \initiate@active@char{'}
- \addto\extrasspanglish{\bbl@activate{'}}
- \addto\noextrasspanglish{\bbl@deactivate{'}}
- \babel@save\'%
- \addto\extrasspanglish{\def\'{\protect\@acute}}
- \let\textacute\'
- \def\@acute##1{\allowhyphens\textacute{##1}\allowhyphens}
- \declare@shorthand{spanglish}{'a}{\textormath{\@acute a}{^{\prime} a}}
- \declare@shorthand{spanglish}{'e}{\textormath{\@acute e}{^{\prime} e}}
- \declare@shorthand{spanglish}{'i}{\textormath{\@acute\i{}}{^{\prime}i}}
- \declare@shorthand{spanglish}{'o}{\textormath{\@acute o}{^{\prime} o}}
- \declare@shorthand{spanglish}{'u}{\textormath{\@acute u}{^{\prime} u}}
- \declare@shorthand{spanglish}{'A}{\textormath{\@acute A}{^{\prime} A}}
- \declare@shorthand{spanglish}{'E}{\textormath{\@acute E}{^{\prime} E}}
- \declare@shorthand{spanglish}{'I}{\textormath{\@acute I}{^{\prime} I}}
- \declare@shorthand{spanglish}{'O}{\textormath{\@acute O}{^{\prime} O}}
- \declare@shorthand{spanglish}{'U}{\textormath{\@acute U}{^{\prime} U}}
- \declare@shorthand{spanglish}{'n}{\textormath{\~n}{^{\prime} n}}
- \declare@shorthand{spanglish}{'N}{\textormath{\~N}{^{\prime} N}}
- \declare@shorthand{spanglish}{''}{\textormath{\textquotedblright}{\sp\bgroup\prim@s'}}
- \declare@shorthand{spanglish}{"u}{\@umlaut{u}}
- \declare@shorthand{spanglish}{"U}{\@umlaut{U}}
- \declare@shorthand{spanglish}{"i}{\@umlaut{\i}}
- \declare@shorthand{spanglish}{"I}{\@umlaut{I}}
- \declare@shorthand{spanglish}{"a}{\esabrv{a}}
- \declare@shorthand{spanglish}{"o}{\esabrv{o}}
- \declare@shorthand{spanglish}{"e}{\protect\esmx@esabrv@r{e}}
- \declare@shorthand{spanglish}{"A}{\esabrv{A}}
- \declare@shorthand{spanglish}{"O}{\esabrv{O}}
- \declare@shorthand{spanglish}{"E}{\protect\esmx@esabrv@r{E}}
- \declare@shorthand{spanglish}{"<}{\guillemotleft{}}
- \declare@shorthand{spanglish}{">}{\guillemotright{}}
-}
-%% tilden tildeN
-\bbl@declare@ttribute{spanglish}{nt}{
- \initiate@active@char{~}
- \addto\extrasspanglish{\bbl@activate{~}\def\~{\protect\@tilde}}
- \addto\noextrasspanglish{\bbl@deactivate{~}}
- \addto\extrasspanglish{\babel@save\~}
- \let\texttilde\~
- \let\@tilde\texttilde
- \declare@shorthand{spanglish}{~n}{\textormath{\~n}{\@tilde n}}
- \declare@shorthand{spanglish}{~N}{\textormath{\~N}{\@tilde N}}
-}
-% A crude hack to turn ES into US abbreviations.
-\bbl@declare@ttribute{spanglish}{usord}{
-\addto\extrasspanglish{% this code should state ordinal 1"o as 1o.
- \def\esmx@usabrv##1{##1.}
- \let\esabrv\esmx@usabrv
- \def\esmx@esabrv@r##1##2{\esabrv{##1##2}}
- }
-}
-% spanish layout
-\addto\extrasspanglish{%
- \def\@alph#1%
- {\ifcase#1\or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or
- k\or l\or m\or n\or \~n\or o\or p\or q\or r\or s\or t\or u\or v\or
- w\or x\or y\or z\else\@ctrerr\fi}%
- \def\@Alph#1%
- {\ifcase#1\or A\or B\or C\or D\or E\or F\or G\or H\or I\or J\or
- K\or L\or M\or N\or \~N\or O\or P\or Q\or R\or S\or T\or U\or V\or
- W\or X\or Y\or Z\else\@ctrerr\fi}
- }
-% JBL's fix (lowercase small caps) for lowercase roman numbers and acronyms.
-\ifesmx@latex
- \addto\textspanish{%
- \babel@save\lsc
- \def\lsc{\protect\esmx@lsc}}
-%
- \def\esmx@lsc#1{%
- \leavevmode
- \hbox{\scshape\selectfont
- \expandafter\ifx\csname\f@encoding/\f@family/\f@series
- /n/\f@size\expandafter\endcsname
- \csname\curr@fontshape/\f@size\endcsname
- \csname S@\f@size\endcsname
- \fontsize\sf@size\z@\selectfont
- \PackageInfo{spanglish}{Replacing undefined sc font\MessageBreak
- shape by faked small caps}%
- \MakeUppercase{#1}%
- \else
- \MakeLowercase{#1}%
- \fi}}
-%
-\DeclareTextCompositeCommand{\'}{OT1}{i}{\@tabacckludge'{\i}}
-%
- \def\spanglishlayout{
- \def\theenumii{\alph{enumii}}% fix the second level enumeration label
- \def\labelenumii{\textit{\theenumii})}
- \def\p@enumii{\textit{\theenumii}}
- \def\theenumiii{\Roman{enumiii}}% fix the third level enumeration label
- \def\labelenumiii{\theenumiii.}
- \def\p@enumiii{\theenumiii}
- \let\@afterindentfalse\@afterindenttrue% afterindent true
- \@afterindenttrue%
- \def\@fnsymbol##1%
- {\ifcase##1\or*\or**\or***\or****\or
- *****\or******\else\@ctrerr\fi}%
- \def\@roman##1{\protect\esmx@roman{\number##1}}%
- \def\esmx@roman##1{\protect\esmx@lsc{\romannumeral##1}}%
- %\def\esromanindex##1##2{##1{\protect\esmx@lsc{##2}}}
- }
-\AtEndOfPackage{%
- %\RequirePackage{esindex}% now load it on your own!
- \def\bbl@tempa{spanglish}%
- \ifx\bbl@main@language\bbl@tempa%
- \AtBeginDocument{\spanglishlayout}\fi%
- }
-\fi
-%% A patch to fix a bug in \bbl@activate was here. RIP.
-\ldf@finish{spanglish}
-\endinput
-%%
-%% End of file `spanglish.ldf'. \ No newline at end of file
diff --git a/macros/latex/contrib/babel-contrib/spanglish/spanglish.sty b/macros/latex/contrib/babel-contrib/spanglish/spanglish.sty
deleted file mode 100644
index cfd269ff65..0000000000
--- a/macros/latex/contrib/babel-contrib/spanglish/spanglish.sty
+++ /dev/null
@@ -1,55 +0,0 @@
-%%
-%% This is file `spanglish.sty',
-%%
-%% Copyright 2008 Luis Rivera and any individual authors
-%% listed elsewhere in this file. All rights reserved.
-%%
-%% This file may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either version 1.3
-%% of this license or (at your option) any later version.
-%% The latest version of this license is in
-%% http://www.latex-project.org/lppl.txt
-%% and version 1.3 or later is part of all distributions of LaTeX
-%% version 2003/12/01 or later.
-%%
-%% This work has the LPPL maintenance status "maintained".
-%%
-%% The Current Maintainer of this work is Luis Rivera.
-%% jlrn7 at gmail dot com
-%%
-\ifx\LdfInit\undefined
- \def\LdfInit{%
- \chardef\atcatcode=\catcode`\@
- \catcode`\@=11\relax
- \input babel.def\relax
- \catcode`\@=\atcatcode \let\atcatcode\relax
- \LdfInit}
-\fi
-\ifx\PackageError\undefined
- \def\ProvidesLanguage#1[#2 #3 #4]{%
- \wlog{Language: #1 #4 #3 <#2>}}%
-\else
- \def\bblstyerror{%
- \PackageError{babel}%
- {You have used an old interface to call babel\MessageBreak
- You may expect compatibility problems wit other packages}%
- {You could proceed but don't complain if you run into errors}%
- \let\bblstyerror\@undefined
- }
- \ifx\ProvidesLanguage\undefined
- \bblstyerror
- \def\ProvidesLanguage{%
- \chardef\atcatcode=\catcode`\@
- \catcode`\@=11\relax
- \input babel.def\relax
- \catcode`\@=\atcatcode \let\atcatcode\relax
- \ProvidesLanguage}
- \else
- \bblstyerror
- \fi
-\fi
-\def\CurrentOption{spanglish}
-\input spanglish.ldf\relax
-\endinput
-%%
-%% End of file `spanglish.sty'. \ No newline at end of file
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ajc2020unofficial/README.md b/macros/latex/contrib/biblatex-contrib/biblatex-ajc2020unofficial/README.md
new file mode 100644
index 0000000000..4959b4cd89
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ajc2020unofficial/README.md
@@ -0,0 +1,42 @@
+# biblatex-ajc2020unofficial
+
+An *unofficial* `biblatex` style files for Australasian Journal of Combinatorics.
+Note that the journal (as for 01 March 2020) does not accept `biblatex`,
+so you probably want to use [`biblatex2bibitem`](https://gitlab.com/Nickkolok/biblatex2bibitem).
+
+This is de-facto fork of [`biblatex-math`](https://github.com/konn/biblatex-math).
+
+## License
+
+LPPL - LaTeX Project Public License v1.3c+, DFSG compat.
+
+## Options
+
+<dl>
+<dt><code>sentencedtitle</code> (default: <code>false</code>)</dt>
+<dd>
+Whether to make title alphabet sentence-style or not.
+If <code>true</code>, for example, <code>The Proof of Riemann Hypothesis</code> will be rendered as "The proof of riemann hypothesis". To prevent letters to be downcased, you can use braces: <code>The Proof of {Riemann} Hypothesis</code> will result in <code>The proof of Riemann hypothesis</code>.
+You also have to embrace maths with <code>{</code> and <code>}</code>, as in <code>A short proof of {$1 + 1 \neq 2$}</code>, otherwise LaTeX halts with an error.
+</dd>
+<dt><code>dashed</code> (default: <code>false</code>)</dt>
+<dd>Whether to omit the same author(s) by <code>_____</code>, as in <code>amsrefs</code>.
+**Not recommended for AJC, but left here for compatibility reasons.**</dd>
+</dl>
+
+## Usage
+
+1. Copy the two files ( `biblatex-ajc2020unofficial.bbx` and `biblatex-ajc2020unofficial.cbx` ) into the folder with your paper
+or install them globally (manually or from CTAN);
+
+2. Use `biblatex` with `style=ajc2020unofficial` option, e.g.
+```latex
+\usepackage[backend=biber,style=ajc2020unofficial]{biblatex}
+
+```
+
+## Project pages
+
++ [GitLab](https://gitlab.com/Nickkolok/biblatex-ajc2020unofficial)
+
++ [CTAN](https://ctan.org/pkg/biblatex-ajc2020unofficial)
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ajc2020unofficial/ajc2020unofficial.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ajc2020unofficial/ajc2020unofficial.bbx
new file mode 100644
index 0000000000..7b52892aae
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ajc2020unofficial/ajc2020unofficial.bbx
@@ -0,0 +1,73 @@
+\ProvidesFile{ajc2020unofficial.bbx}[2020/03/03 v0.0.1 unofficial biblatex bibliography style for Australasian Journal of Combinatorics]
+
+\RequireBibliographyStyle{numeric}
+\RequireCitationStyle{numeric}
+
+\ExecuteBibliographyOptions{labelnumber,firstinits=true,sorting=nyt}
+
+
+\RequireBibliographyStyle{standard}
+\newbibmacro*{bbx:savehash}{%
+ \savefield{fullhash}{\bbx@lasthash}}
+\DeclareBibliographyOption[boolean]{dashed}[false]{%
+ \ifstrequal{#1}{true}{
+ \ExecuteBibliographyOptions{pagetracker}%
+ \renewbibmacro*{bbx:savehash}{\savefield{fullhash}{\bbx@lasthash}}
+ }{
+ \renewbibmacro*{bbx:savehash}{}
+ }
+}
+\DeclareBibliographyOption[boolean]{sentencetitle}[false]{%
+ \ifstrequal{#1}{true}{%
+ \DeclareFieldFormat{titlecase}{\MakeSentenceCase*{##1}}%
+ }{
+ \DeclareFieldFormat{titlecase}{{##1}}%
+ }%
+}
+\ExecuteBibliographyOptions{sentencetitle,dashed}
+
+\renewcommand*{\bibfont}{\footnotesize}
+\renewcommand*{\subtitlepunct}{\textup{\addcolon}\space}
+\renewcommand*{\newunitpunct}{\addcomma\space}
+\renewcommand*{\mkbibquote}[1]{\mkbibemph{#1}}
+\renewcommand*{\labelnamepunct}{\addcomma\space}
+\renewbibmacro*{in:}{}
+\renewbibmacro*{author}{%
+ \ifboolexpr{
+ test \ifuseauthor
+ and
+ not test {\ifnameundef{author}}
+ }
+ {\usebibmacro{bbx:dashcheck}
+ {\bibnamedash}
+ {\printnames{author}%
+ \setunit{\addcomma\space}%
+ \usebibmacro{bbx:savehash}}%
+ \usebibmacro{authorstrg}}
+ {\global\undef\bbx@lasthash}}
+
+\DeclareFieldFormat{journaltitle}{\textup{#1}}
+\DeclareFieldFormat{booktitle}{\textup{#1}}
+\DeclareFieldFormat[article]{number}{\mkbibbold{#1}}
+\DeclareFieldFormat[book]{number}{\mkbibbold{#1}}
+\DeclareFieldFormat
+ [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
+ {title}{\mkbibemph{#1\isdot}}
+
+\newbibmacro*{bbx:dashcheck}[2]{%
+ \ifboolexpr{
+ test {\iffieldequals{fullhash}{\bbx@lasthash}}
+ and
+ not test \iffirstonpage
+ }
+ {#1}
+ {#2}}
+\renewcommand*{\bibnamedash}{\rule{3em}{0.4pt}\hspace*{.16667em}\addcomma\addspace}
+
+
+\DeclareFieldFormat{pages}{#1}
+\DeclareFieldFormat{journaltitle}{\mkbibemph{#1}\isdot}
+\DeclareFieldFormat*{title}{#1}
+
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ajc2020unofficial/ajc2020unofficial.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ajc2020unofficial/ajc2020unofficial.cbx
new file mode 100644
index 0000000000..77c0589e7c
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-ajc2020unofficial/ajc2020unofficial.cbx
@@ -0,0 +1,4 @@
+\ProvidesFile{ajc2020unofficial.cbx}[2020/03/03 v0.0.1 unofficial biblatex bibliography style for Australasian Journal of Combinatorics]
+\RequireCitationStyle{numeric}
+
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md
index a0bb4f301c..c3f3656ea0 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md
@@ -1,4 +1,4 @@
-<b>Date of last change: 2019-08-28 to version v1.0s</b>
+<b>Date of last change: 2020-03-04 to version v1.0t</b>
# biblatex-gb7714-2015: a biblatex style package
@@ -22,211 +22,25 @@ A biblatex implementation of the `GB/T 7714-2015` bibliography style for Chinese
The biblatex-gb7714-2015 package provides an implementation of the bibliography style of the `GB/T 7714-2015` bibliography style. This implementation follows `GB/T 7714-2015` standard, and can be used simply by loading biblatex with the appropriate option
----------------------------------------------------------
-
-## Need to do:
-
- * special characters in all fields?
- * entry without author: the delimiter between title and year?
- * TEST FOR texlive 2015,2016,2017
-
-
-
-## Usage
-* for numerical sequence style: gb7714-2015
-
- `\usepackage[backend=biber,style=gb7714-2015]{biblatex}`
-
- - add an option `gbalign` to control the align style of the numerical label:
-
- `gbalign=right` for the label ragged left in a list environment, this is the default setting.
-
- `gbalign=center` for the same width label in a list environment with the number centered in a wrapper like bracket []
-
- `gbalign=left` for the label ragged right in list environment
-
- `gbalign=gb7714-2015` for the label in paragraph with same separation space between label and content of the reference entry
-
- `\usepackage[backend=biber,style=gb7714-2015,gbalign=gb7714-2015]{biblatex}`
-
- - add an option `gbpub` for dealing publishing items (This option is also for author-year style):
-
- `gbpub = true` for gb7714 style, to print `[出版者不详]` and the like when publisher or address is absent, this is the default setting.
-
- `gbpub = false` for standard style, not to print the additional infomation.
-
- `\usepackage[backend=biber,style=gb7714-2015,gbpub=true]{biblatex}`
-
- - add an option `gbnamefmt` for dealing author name's letter case (This option is also for author-year style):
-
- `gbnamefmt = uppercase` for gb7714 style, to capitalize all the letters of the name, like: ZHANG M L, this is the default setting.
-
- `gbnamefmt = lowercase` for gb7714 style, do no case switch of the name, like: Zhang M L
-
- `gbnamefmt = givenahead` for standard style, given-family style, like: M. L. Zhang as the ieee style
-
- `gbnamefmt = familyahead` for standard style, family-given style, like: Zhang, M. L. as the apa style.
-
- `gbnamefmt = pinyin` for a common Chinese style, like: ZHANG Min-li, YI Shi-he and so on.
-
- `gbnamefmt = reserveorder` for standard style:family-given/given-family style
-
- the name format can be set per-entry using a field `nameformat`, add this field like `nameformat={pinyin}` to an entry in the bib file to set the entry's name format.
-
- `\usepackage[backend=biber,style=gb7714-2015,gbnamefmt=uppercase]{biblatex}`
-
- - add an option `gbbiblabel` to control the format of the numerical label:
-
- `gbbiblabel=bracket` for the numerical number in the label wrapped by bracket, like: [1], this is the default setting.
-
- `gbbiblabel=parens` for the numerical number in the label wrapped by parenthesis, like: (1)
-
- `gbbiblabel=plain` for the numerical number in the label wrapped by nothing, like: 1
-
- `gbbiblabel=dot` for the numerical number in the label followed with dot, like: 1.
-
- `gbbiblabel=box` for the numerical number in the label wrapped by box which generated by `\framebox`
-
- `gbbiblabel=circle` for the numerical number in the label wrapped by circle which generated by `\textcircled`
-
- `\usepackage[backend=biber,style=gb7714-2015,gbbiblabel=bracket]{biblatex}`
-
- - add an option `gbtype` to control the output of the reference type and carrier identifier like [J/OL] (This option is also for author year style):
-
- `gbtype = true` for gb7714 style, print a title with the identifier, like: `an on-line article [J/OL]`, this is the default setting.
-
- `gbtype = false` for none identifier, print a title without identifier, like: `an on-line article`
-
- `\usepackage[backend=biber,style=gb7714-2015,gbtype=true]{biblatex}`
-
- - add an option `gbfieldtype` to control the output of field type:
-
- `gbfieldtype = true` to print type field, like the thesis type: `PHD thesis` or `博士学位论文`。please use `\DefineBibliographyStrings{english}{mathesis={str you want}}`,`\DefineBibliographyStrings{english}{phdthesis={str you want}}`,
- `\DefineBibliographyStrings{english}{mathesiscn={str you want}}`,`\DefineBibliographyStrings{english}{phdthesiscn={str you want}}` to
- define the output string, or set it in bibfile like: `type={str you want},`
-
- `gbfieldtype = false` not to print type field.
+biblatex-gb7714-2015 宏包是中文参考文献著录/标注标准 `GB/T 7714-2015` 的 biblatex 实现。它本质上是一个样式包,提供了顺序编码制和著者年份制样式,在 tex 文档中配合 biblatex 宏包使用,以生成满足《GB/T 7714-2015 信息与文献 参考文献著录规则》要求的参考文献。除了具备 biblatex 提供的不同于传统基于 bibtex 的参考文献解决方案的特点外,还具有如下特点:
- `\usepackage[backend=biber,style=gb7714-2015,gbfieldtype=true]{biblatex}`
-
-
- - add an option `gbpunctin` to control the output of `//` before bookauthor for entrytypes like inbook/incollection/inproceedings(This option is also for author year style):
-
- `gbpunctin=true` for gb7714 style, to output `//`, this is the default setting
-
- `gbpunctin=false` for standard style, to output a bibstring, for English it is `IN:`, If you want to eliminate it at all, please redefine the bibstring like `\DefineBibliographyStrings{english}{in={}}` and `\DefineBibliographyStrings{english}{incn={}}`in the preamble.
+* 较强的兼容性。能够兼容 biblatex v2.8 以上版本;能够兼容国标样式的一些常用条目类型、数据域。
- `\usepackage[backend=biber,style=gb7714-2015,gbpunctin=true]{biblatex}`
-
- - add an option `gbctexset` to control the bibliography heading's setting method (This option is also for author year style):
-
- `gbctexset=true` , the bibliography heading can be set by `\bibname` or `\refname`, this is the default setting.
-
- `gbpunctin=false`, the heading can be set by bibstring like `\DefineBibliographyStrings{english}{bibliography={title you want}}` or `\DefineBibliographyStrings{english}{references={title you want}}`
-
- or alternatively, it can also be set through the printbibliography option `title`, like `printbibliography[title=title you want]`.
-
- `\usepackage[backend=biber,style=gb7714-2015,gbctexset=true]{biblatex}`
-
- - add an option `gbcodegbk` to deal the tex source file encoded with GBK (This option is also for author year style):
-
- `gbcodegbk=true` , if you want to compile the GBK encoded source file with pdflatex or latex
-
- `gbcodegbk=false`, if you want to compile the utf-8 endcoded source file with xelatex, this is the default setting.
-
- `\usepackage[backend=biber,style=gb7714-2015,gbcodegbk=true]{biblatex}`
-
- - add an option `gbtitlelink` to control the hyperlink of title field (This option is also for author year style):
-
- `gbtitlelink = false` not to add hyperlink, this is the default setting.
-
- `gbtitlelink = true` to set the title as a hyperlink.
-
- `\usepackage[backend=biber,style=gb7714-2015,gbtitlelink=true]{biblatex}`
-
- - add an option `gbfootbib` to control the bibliography in footnote (This option is also for author year style):
-
- `gbfootbib = true` make patches to match the standard, this is the default setting.
-
- `gbfootbib = false` not to patch.
-
- `\usepackage[backend=biber,style=gb7714-2015,gbtitlelink=true]{biblatex}`
-
- - add options `gbcitelocal` `gbbiblocal` to control the local strings in citation and bibliography respectively, the `gblocal` set the both options (These options are also for author year style):
-
- `gbcitelocal = gb7714-2015` to output local strings according to the reference's language, this is the default setting.
-
- `gbcitelocal = chinese` to output local strings with chinese language word like "等".
-
- `gbcitelocal = english` to output local strings with western language word like "et al.".
-
- `\usepackage[backend=biber,style=gb7714-2015,gbcitelocal = chinese]{biblatex}`
-
- - add an option `gbstrict` to control the output of some unnecessary fields for GB/T7714-2015 (This option is also for author year style).
-
- `gbstrict=true`, not to print those fields such as language, eprint, this is the default setting.
-
- `gbstrict=false`, to output them as the standard style
-
- `\usepackage[backend=biber,style=gb7714-2015,gbstrict=true]{biblatex}`
-
- - add an option `gbfieldstd` to control the format of some fields such as title, url and pages (This option is also for author year style):
-
- `gbfieldstd = false` for gb7714 style, format of the fields follows the GB/T7714-2015 standard, this is the default setting.
-
- `gbfieldstd = true` for standard style.
-
- `\usepackage[backend=biber,style=gb7714-2015,gbfieldstd=true]{biblatex}`
-
+* 较高的易用性。标注/著录格式完全由样式实现,不必为排序、多语言等问题手动处理bib文件;提供了丰富的标注(引用)命令,包括一些中文中习惯的命令;提供了多语言对照,多语言文献表等功能。
-
-* for multi-style: gb7714-2015ms
+* 较大的灵活性。提供丰富的选项来帮助用户进行排序调整、著录项(姓名、出版项、文献标识符、标题超链接)格式调整、文献表格式(标签对齐、标签格式、条目格式、字体、段落格式)调整、编码兼容。
- In order to use two styles in a tex file, add a style gb7714-2015ms. option `gbstyle` is added to control the using mode. `gbstyle=true` means all references are printed with GB/T7714-2015 style, and `gbstyle=false` means the chinese references are printed with GB/T7714-2015 style while the other references are printed with standard style shipped by biblatex, and `gbstyle=true` is the default set. all the options for numerical sequence style gb7714-2015 can also be used in gb7714-2015ms.
-
- `\usepackage[backend=biber,style=gb7714-2015ms,gbstyle=false]{biblatex}`
+* 较好的维护性。样式代码主要是在标准样式基础上提供的中文国标解决方案,保持与标准样式一致的结构、风格和习惯,并提供详尽的注释,用户可轻松理解,并可在其基础上进一步修改以实现其它要求的样式,比如宏包附带的chinese-erj样式,就是基于本样式实现的经济学研究期刊的参考文献样式。
-* for author year style: gb7714-2015ay
+简单使用说明见:[使用入门](#jumptotutorial)
- `\usepackage[backend=biber,style=gb7714-2015ay,gbpub=true]{biblatex}`
-
- - add an option `gbnoauthor` for dealing undefined author:
-
- `gbnoauthor = true` for gb7714 style, to print `佚名` or `Anon` when the author of the entry is absent.
-
- `gbnoauthor = false` for standard style, not to pring anything, this is the default setting.
-
- `\usepackage[backend=biber,style=gb7714-2015ay,gbnoauthor=true]{biblatex}`
-
- - add an option value `mergedate=none` to control the date in bibliography:
-
- `mergedate=true` to output date only after author,like:LAMPORT L, (1986). Document Preparation System[M]. [S.l.]: Addison-Wesley Reading, MA.
-
- `mergedate=false` to output date after author and in publish items,like:LAMPORT L, (1986). Document Preparation System[M]. [S.l.]: Addison-Wesley Reading, MA, 1986.
-
- `mergedate=none` to output date only in publish items,like:LAMPORT L. Document Preparation System[M]. [S.l.]: Addison-Wesley Reading, MA, 1986.
-
- do not set mergedate output like:LAMPORT L, 1986. Document Preparation System[M]. [S.l.]: Addison-Wesley Reading, MA.
-
- `\usepackage[backend=biber,style=gb7714-2015ay,mergedate=none]{biblatex}`
-
- - add an option `gblanorder` to control sequence of reference groups of different languagesin the bibliography:
-
- `gblanorder=chineseahead` to set the sequence as: cn;jp;kr;en;fr;ru
-
- `gblanorder=englishahead` to set the sequence as: en;fr;ru;cn;jp;kr
-
- `gblanorder=user defined string like: cn;en;jp;kr;fr;ru` to set the sequence as: cn;en;jp;kr;fr;ru.
-
- `\usepackage[backend=biber,style=gb7714-2015ay,gblanorder=cn;en;jp;fr;kr;ru]{biblatex}`
-
-* for perl script transformation tool(only for the numerical style)
-
- `perl gb7714texttobib.pl in=textfilename out=bibfilename`
+---------------------------------------------------------
-A demonstration database is provided to show how to format input for the style. The biblatex-gb7714-2015 style works with texlive2014, texlive2015, texlive2016, texlive2017 , texlive2018 and so on.
+## Need to do:
-please see the file 'biblatex-gb7714-2015.pdf' for further information!
+ * special characters in all fields?
+ * entry without author: the delimiter between title and year?
+ * TEST FOR texlive 2015,2016,2017
## Applications
@@ -246,8 +60,6 @@ please see the file 'biblatex-gb7714-2015.pdf' for further information!
* [...]
-
-
## Related Links
* [Biblatex 宏包](https://github.com/plk/biblatex)
@@ -265,12 +77,54 @@ please see the file 'biblatex-gb7714-2015.pdf' for further information!
---------------------------------------------------------
<h2 id="jumptotutorial">Tutorial/使用入门</h2>
+[//]: # "这里这种方式不适合可能主要是因为标题所导致,因此用上面的方式进行处理"
-[comment]: # (这里这种方式不适合可能主要是因为标题所导致,因此用上面的方式进行处理
-<span id="jumptotutorial">## Tutorial/使用入门</span>)
+<h3 id="jumptopkgload">0. pacakge usage/宏包加载方式</h3>
+样式包配合biblatex使用,即在biblatex调用时加载样式包:
+
+* 使用顺序编码制:
+
+```
+ \usepackage[backend=biber,style=gb7714-2015]{biblatex}
+```
+
+* 使用著者-出版年制:
+
+```
+ \usepackage[backend=biber,style=gb7714-2015ay]{biblatex}
+```
+
+* 使用宏包提供的选项:
+
+```
+ %设置gbalign选项以改变文献表序号标签对齐方式,
+ %设置gbpub=false取消缺省出版项自填补信息,比如:
+ \usepackage[backend=biber,style=gb7714-2015,gbalign=gb7714-2015,gbpub=false]{biblatex}
+```
+
+* 使用同一文献表中不同语言区分著录格式的样式(gb7714-2015ms):
+
+```
+ %设置gbstyle=false,中文文献使用GB/T 7714-2015著录格式,而其它语言文献使用biblatex标准样式
+ \usepackage[backend=biber,style=gb7714-2015ms,gbstyle=false]{biblatex}
+```
+
+* 同一文档中不同文献分节区分不同著录格式的样式(gb7714-2015mx):
+
+```
+ %gb7714-2015mx默认使用顺序编码制样式
+ \usepackage[backend=biber,style=gb7714-2015mx]{biblatex}
+ %如需在某一参考文件分节使用著者年份制样式,比如第2个refsection中使用时,则在导言区设置:
+ \setaystylesection{2}
+```
+
+更多宏包选项的说明见:[biblatex-gb7714-2015.pdf](biblatex-gb7714-2015.pdf)
+
+宏包加载的完整文档示例见:[tex文档一般结构](#jumptotexsrcf)
<h3 id="jumptotexsrcf">1. Tex source file/tex文档一般结构</h3>
+注意其中加载biblatex宏包的代码:
```
\documentclass{article}%文档类%导言区开始:
@@ -299,7 +153,7 @@ citestyle=gb7714-2015%,backref=true%%其中后端backend使用biber
}
@Book{蔡敏2006--,
- Title = {UML基础和Rose建模教程},
+ Title = {UML基础和Rose建模教程},27
Address = {北京},
Author = {蔡敏 and 徐慧慧 and 黄柄强},
Publisher = {人民邮电出版社},
@@ -330,7 +184,7 @@ citestyle=gb7714-2015%,backref=true%%其中后端backend使用biber
4. 顺序编码制中同时输出作者和顺序编码标签,比如:\\
见\citeauthor{蔡敏2006--}\cite{蔡敏2006--}\\
- 见\authornumcite{蔡敏2006--}\\
+ 见\authornu*mcite{蔡敏2006--}\\
见\textcite{蔡敏2006--} (顺序编码标签不上标)
5. 作者年制文中已有作者还需要年份和页码(顺序编码制与pagescite作用相同,作者年制年份行内页码上标):\\
@@ -373,7 +227,7 @@ citestyle=gb7714-2015%,backref=true%%其中后端backend使用biber
### 3. Recommended environment/推荐使用环境
-
+
- Texlive+Winedt
- Texlive+Texstudio
- texlive及其它发行版安装见[安装指南](https://github.com/sjtug/SJTUThesis/wiki/%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97)
@@ -385,58 +239,89 @@ citestyle=gb7714-2015%,backref=true%%其中后端backend使用biber
* <b>怎么利用biblatex生成国标GB/T 7714-2015格式的参考文献表?</b>
-> (1)在导言区加载biblatex宏包,并使用gb7714-2015样式:
+(1)在导言区加载biblatex宏包,并使用gb7714-2015样式:
-```\usepackage[backend=biber,style=gb7714-2015]{biblatex}```
+``` \usepackage[backend=biber,style=gb7714-2015]{biblatex}```
-> (2)正文中引用参考文献:
+(2)正文中引用参考文献:
-```见文献\cite{referencbibtexkey}```
+``` 见文献\cite{referencbibtexkey}```
-> (3)在需要的地方打印参考文献表:
+(3)在需要的地方打印参考文献表:
```\printbibliography```
-
更直接的例子见前述的[tex源文档](#jumptotexsrcf)
+
* <b>请问我应该怎么安装和更新biblatex-gb7714-2015宏包?</b>
-> biblatex-gb7714-2015宏包是基于biblatex的样式宏包,目前texlive,miktex都已收录,因此可以直接使用,一般不需要安装。如果使用时,系统提示找不gb7714-2015.bbx或gb7714-2015ay.bbx文件的错误,说明当前tex系统未安装biblatex-gb7714-2015样式包,这时需要安装它。最简单的方法是从本项目源码中下载 gb7714-2015.bbx, gb7714-2015ay.bbx, gb7714-2015.cbx, gb7714-2015ay.cbx 四个文件放到你要编译的主文档所在目录,如果需要使用gbk编码,则还需复制 gb7714-2015-gbk.def 文件。对于已经安装的用户需要更新到最新版,则可以下载这些文件替换系统已经安装的文件。
+
+biblatex-gb7714-2015宏包是基于biblatex的样式宏包,目前texlive,miktex都已收录,因此可以直接使用,一般不需要安装。
+
+如果使用时,系统提示找不gb7714-2015.bbx或gb7714-2015ay.bbx文件的错误,说明当前tex系统未安装biblatex-gb7714-2015样式包,这时需要安装它。
+
+最简单的方法是从本项目源码中下载 gb7714-2015.bbx, gb7714-2015ay.bbx, gb7714-2015.cbx, gb7714-2015ay.cbx 四个文件放到你要编译的主文档所在目录,如果需要使用gbk编码,则还需复制 gb7714-2015-gbk.def 文件。对于已经安装的用户需要更新到最新版,也可以下载这些文件替换系统已经安装的文件。
+
+
+
+* <b>请问使用时biblatex-gb7714-2015宏包时出现错误“ Package xkeyval Error: gb****** ' undefined in families blx@opt@pre'. [\blx@processoptions] ”?</b>
+
+
+
+因为宏包的功能不断增加和完善,当在tex源文档中,使用新版中的一些选项时,而系统中的biblatex-gb7714-2015宏包是旧版时,就会出现`gb****`选项未定义的错误。解决方法就是更新biblatex-gb7714-2015宏包。更新方法见上一个问题。
* <b>为什么我之前使用样式`style=caspervector`进行编译没有问题,换成`style=gb7714-2015`后,编译就出现错误?</b>
-
-> 可能有三个原因:
-> 1. 辅助文件没有清理导致,当采用caspervector样式时编译产生的辅助文件中可能带有该样式的一些特有信息,由此产生一些不兼容。因此需要的操作是,清除辅助文件,然后再进行编译。清除命令为(下面的命令是windows下的,linux下的是类似的只需把删除命令换成`rm -f`):
+可能有三个原因:
+
+(1) 辅助文件没有清理导致,当采用caspervector样式时编译产生的辅助文件中可能带有该样式的一些特有信息,由此产生一些不兼容。因此需要的操作是,清除辅助文件,然后再进行编译。清除命令为(下面的命令是windows下的,linux下的是类似的只需把删除命令换成`rm -f`):
```del /q *.aux *.bbl *.blg *.log *.out *.toc *.bcf *.xml *.synctex *.nlo *.nls *.bak *.ind *.idx *.ilg *.lof *.lot *.ent-x *.tmp *.ltx *.los *.lol *.loc *.listing *.gz *.synctex(busy) *.nav *.snm *.vrb *.fls *.xdv *.fdb_latexmk```
-> 2. biblatex-gb7714-2015 版本过于陈旧,旧版本对于一些特殊情况可能考虑不全面。因此需要的操作是更新biblatex-gb7714-2015,方法见上一个问题。
+(2) biblatex-gb7714-2015 版本过于陈旧,旧版本对于一些特殊情况可能考虑不全面。因此需要的操作是更新biblatex-gb7714-2015,方法见上一个问题。
+
+(3) 编译命令问题,通常情况下tex文档和bib文档是utf8编码的,因此最好采用xelatex编译,而不用pdflatex。因此如果编译时用pdflatex出现错误,请换成xelatex。
-> 3. 编译命令问题,通常情况下tex文档和bib文档是utf8编码的,因此最好采用xelatex编译,而不用pdflatex。因此如果编译时用pdflatex出现错误,请换成xelatex。
+* <b>为什么我编译文档后没有出现参考文献表?</b>
+
+当编译过程出现错误时,那么检查错误的原因,并解决它。
+当编译过程没有出现错误,那么很有可能是没有采用正确的命令进行文献编译,比如采用了传统的bibtex而不是biber。那么采用正确的编译命令重新编译即可:
+```
+xelatex jobname.tex
+biber jobname
+xelatex jobname.tex
+```
* <b>为什么利用 ctex2.9 套装进行编译时,出现错误?</b>
-> 由于ctex2.9套装多年未更新,其中的biblatex宏包过于陈旧,所以需要更新 biblatex。
-
-
-
+
+由于ctex2.9套装多年未更新,其中的biblatex宏包过于陈旧,所以需要更新 biblatex。
+
+
+
* <b>请问除了利用xelatex进行编译外,能不能用pdflatex进行编译?</b>
-> 能用pdflatex进行编译,但要注意的是因为某些样式比如authoryear等使用了xstring宏包中的一些命令,所以会产生错误,但numeric类样式通常没有问题。这一问题在biblatex更新到3.12版本后取消xstring宏包后得以解决。
-> 中文用户需要注意一些编码的问题。utf-8编码的文档,采用xelatex编译没有任何注意事项,但使用pdflatex编译时,需要给ctex宏包加载UTF8选项,比如`\usepackage[UTF8]{ctex}`或者在文档类加载时给出也可以比如`\documentclass[[UTF8]{article}`,同时引用文献时使用的引用关键词应使用英文。当文档使用其他编码时,xelatex编译通常需要指定一个文档编码,比如windows环境下的GB2312编码的文档需要指定`\XeTeXinputencoding "GBK"`, 否则显示乱码。使用pdflatex进行编译,如果biblatex不能正确的处理编码问题,那么需要为其明确的指定texencoding和bibencoding选项。比如windows环境下的GB2312编码的文档,需要指定`\usepackge[texencoding=GBK]{biblatex}`。
+能用pdflatex进行编译。但要注意的是因为某些样式比如authoryear等使用了xstring宏包中的一些命令,所以会产生错误,但numeric类样式通常没有问题。这一问题在biblatex更新到3.12版本后取消xstring宏包后得以解决。
+
+中文用户需要注意一些编码的问题:
+
+utf-8编码的文档,采用xelatex编译没有任何注意事项,但使用pdflatex编译时,需要给ctex宏包加载UTF8选项,比如`\usepackage[UTF8]{ctex}`或者在文档类加载时给出也可以比如`\documentclass[[UTF8]{article}`,同时引用文献时使用的引用关键词应使用英文。
+
+当文档使用其他编码时,xelatex编译通常需要指定一个文档编码,比如windows环境下的GB2312编码的文档需要指定`\XeTeXinputencoding "GBK"`, 否则显示乱码。使用pdflatex进行编译,如果biblatex不能正确的处理编码问题,那么需要为其明确的指定texencoding和bibencoding选项。比如windows环境下的GB2312编码的文档,需要指定`\usepackge[texencoding=GBK]{biblatex}`。
* <b>请问使用backref=true选项后,某个反向超链接总是链接到封面页是怎么回事?</b>
-> 对页码进行正确超链接需要一个前提是,当前链接的页码是唯一的。当有两页具有相同的页码时,超链接总是链接到第一各具有该页码的页面上。比如封面页页码是1,正文第一页页码也是1,那么到正文第一页的反向超链接总会链接到封面页上。解决该问题就是要解决页码的唯一性问题。当页码的表示形式不是同一种时,那么也会得到正确的区分。比如封面页用罗马字母I表示,而正文第一页用阿拉伯数字1表示,那么就能得到正确的反向超链接。类似于:
+
+对页码进行正确超链接需要一个前提是,当前链接的页码是唯一的。当有两页具有相同的页码时,超链接总是链接到第一各具有该页码的页面上。比如封面页页码是1,正文第一页页码也是1,那么到正文第一页的反向超链接总会链接到封面页上。解决该问题就是要解决页码的唯一性问题。当页码的表示形式不是同一种时,那么也会得到正确的区分。比如封面页用罗马字母I表示,而正文第一页用阿拉伯数字1表示,那么就能得到正确的反向超链接。类似于:
+
```
\pagenumbering{roman}
\title{title}
@@ -446,25 +331,29 @@ citestyle=gb7714-2015%,backref=true%%其中后端backend使用biber
\pagenumbering{arabic}
\section{文献表}
```
-
-
+
+
* <b>我希望参考文献表中的文献不是按引用顺序而是以文献作者的字母顺序排序,怎么实现?</b>
-> 一般情况下文献表是按引用顺序进行排列,标签是顺序的数字,这种方式称为顺序编码制。
-> 如果要以文献作者字母顺序排列,那么可以换一种编制方式,称为作者年制:
-
+
+一般情况下文献表是按引用顺序进行排列,标签是顺序的数字,这种方式称为顺序编码制。
+如果要以文献作者字母顺序排列,那么可以换一种编制方式,称为作者年制:
+
```\usepackage[backend=biber,style=gb7714-2015ay]{biblatex}```
-> 如果要求使用顺序编码制文献表,又要以文献作者字母顺序排列,那么可以增加排序选项`sorting=nyt`:
-
+如果要求使用顺序编码制文献表,又要以文献作者字母顺序排列,那么可以增加排序选项`sorting=nyt`,意为按照姓名、年份、标题的字母顺序进行排序:
+
```\usepackage[backend=biber,style=gb7714-2015,sorting=nyt]{biblatex}```
* <b>作者年制中英文文献能按字母顺序排列,那么中文文献能否以拼音或者笔画进行排序呢?</b>
-> 能,可以通过编译时给biber设置选项来实现:
-
+
+能,有两种方式实现:
+
+(1)通过编译时给biber设置选项来实现:
+
```
%按拼音排序,biber命令
biber -l zh__pinyin jobname
@@ -472,51 +361,71 @@ biber -l zh__pinyin jobname
biber -l zh__stroke jobname
```
-> 或者,也可以通过增加 biblatex 选项来实现(此时biber编译无需另加选项),比如:
+(2)通过增加 biblatex 选项来实现(此时biber编译无需另加选项),比如:
```\usepackage[backend=biber,style=gb7714-2015ay,sortlocale=zh__pinyin]{biblatex}```
-
-
+
+
* <b>作者年制参考文献表目前的排序时升序排列,能不能改成降序排序?</b>
-> 能,这需要通过修改gb7714-2015ay.bbx中的代码来实现,找到:
-```\sort{%[direction=descending]```
+能,通过修改sorting选项实现:
+
+
+```\usepackage[backend=biber,style=gb7714-2015ay,sorting=gbnytd]{biblatex}```
+
+可用的选项值包括:
+```
+nty 按照姓名、标题、年份排序。
+nyt 按照姓名、年份、标题排序。
+nyvt 按照姓名、年份、卷数、标题排序。
+anyt 按照字母标签、姓名、年份、标题排序。
+anyvt 按照字母标签、姓名、年份、卷数、标题排序。
+ynt 按照年份、姓名、标题排序。
+ydnt 按照年份(降序)、姓名、标题排序。
+none 不进行排序。所有的条目按照引用顺序处理。
+gb7714-2015 以语言、作者、年份、标题、升序排列
+gbnytd 以语言、作者、年份、标题、降序排列
+gbynta 以语言、年份、作者、标题、升序排列
+gbyntd 以语言、年份、作者、标题、降序排列
+```
+
+* <b>如果我还希望顺序编码的文献著录表以拼音排序,请问该怎么操作?</b>
+
+顺序编码文献著录表默认是按引用顺序排序,但可以通过设置sorting选项进行调整,比如sorting=nyt表示按作者姓名年份以及文献标题进行排序。要使中文能按拼音排序,可以设置本地化排序调整方案,即sortlocale选项,比如:
+
+```\usepackage[backend=biber,citestyle=gb7714-2015ay,bibstyle=gb7714-2015,sorting=nyt,sortlocale=zh__pinyin]{biblatex}```
-> 修改为:
-```\sort[direction=descending]{%```
* <b>我希望文献表以阿拉伯数字编号,而正文中的引用标签使用作者和年份标注而不是数字,请问我该如何处理?</b>
-> 可以设置不同的标注和著录样式,比如标注样式用作者年制,而著录样式用顺序编码制,比如:
+可以设置不同的标注和著录样式,比如标注样式用作者年制,而著录样式用顺序编码制,比如:
```\usepackage[backend=biber,citestyle=gb7714-2015ay,bibstyle=gb7714-2015]{biblatex}```
-> 参见:[issue:参考文献的顺序](https://github.com/sjtug/SJTUThesis/issues/300)
+参见:[issue:参考文献的顺序](https://github.com/sjtug/SJTUThesis/issues/300)
-* <b>如果我还希望顺序编码的文献著录表以拼音排序,请问该怎么操作?</b>
-> 顺序编码文献著录表默认是按引用顺序排序,但可以通过设置sorting选项进行调整,比如sorting=nyt表示按作者姓名年份以及文献标题进行排序。要使中文能按拼音排序,可以设置本地化排序调整方案,即sortlocale选项,比如:
-```\usepackage[backend=biber,citestyle=gb7714-2015ay,bibstyle=gb7714-2015,sorting=nyt,sortlocale=zh__pinyin]{biblatex}```
-
-
+​
* <b>请问如果参考文献中存在一些特殊字符比如&或者一些特殊命令比如\LaTex{}等,是不是会出现问题?</b>
-> 通常不会出现问题,直接输入即可,当出现问题时可以手动调整比如修改为`\&`和`{\LaTex{}}`
+
+通常不会出现问题,直接输入即可,当出现问题时可以手动调整比如修改为`\&`和`{\LaTex{}}`
* <b>如果希望在参考文献中直接使用一些unicode字符比如希腊字母等而不想用数学环境中的命令,请问该怎么处理?</b>
-> 直接显示希腊字母等unicode字符需要字体的支持,比如CMU Serif等,可以在整个文档全局使用该字体,也可以仅在文献表中使用该字体,比如:
+
+直接显示希腊字母等unicode字符需要字体的支持,比如CMU Serif等,可以在整个文档全局使用该字体,也可以仅在文献表中使用该字体,比如:
```
{
@@ -526,82 +435,192 @@ biber -l zh__stroke jobname
}
```
-> 当然字体设置需要fontspec宏包的支持。
-
-
-
+当然字体设置需要fontspec宏包的支持。
+
+
+
+* <b>如何修改参考文献文献表的垂直间距(竖直间距)?</b>
+
+设置如下尺寸即可
+
+```
+% 间距的控制
+\setlength{\bibitemsep}{0ex}
+\setlength{\bibnamesep}{0ex}
+\setlength{\bibinitsep}{0ex}
+
+```
+其中itemsep设置各条文献之间的间隔,一般够用,后面两个常在西文中使用。具体意义参考biblatex-zh-cn
+
+
+
+* <b>如何修参考文献表的缩进?</b>
+
+对于著者-出版年制文献表,设置如下尺寸即可:
+```
+% 文献表中各条文献的缩进控制
+\setlength{\bibitemindent}{0em} % bibitemindent表示一条文献中第一行相对后面各行的缩进
+\setlength{\bibhang}{0pt} % 著者-出版年制中 bibhang 表示的各行起始位置到页边的距离
+```
+
+对于顺序编码制文献表,可以采用如下方法:
+
+由于顺序编码制存在数字标签,且其宽度与参考文献数量相关的,在biblatex中这个宽度是一个动态变量,不是提前设定的,而是在文献表生成时给出,所以设定缩进需要更复杂的操作。
+
+对于采用list环境的文献表,即设置gbalign=left、right、center时,那么需要修改文献表环境来设定缩进,比如:
+
+```
+%调整顺序标签与文献内容的间距
+\setlength{\biblabelsep}{2mm}
+%修改对齐环境-使不缩进
+\defbibenvironment{bibliography}
+ {\list
+ {\printtext[labelnumberwidth]{%
+ \printfield{labelprefix}%
+ \printfield{labelnumber}}}
+ {%这里是所做的调整,通过设置\bibitemindent,\bibhang调整缩进
+ \addtolength{\bibitemindent}{\labelnumberwidth}%
+ \addtolength{\bibitemindent}{\biblabelsep}%
+ \addtolength{\bibhang}{-\labelnumberwidth} %
+ \addtolength{\bibhang}{-\biblabelsep}%
+ %以下是默认的设置
+ \setlength{\labelwidth}{\labelnumberwidth}%
+ \setlength{\labelsep}{\biblabelsep}%
+ \setlength{\leftmargin}{\bibhang}%
+ \addtolength{\leftmargin}{\labelnumberwidth}%
+ \setlength{\itemindent}{\bibitemindent}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}}%
+ \renewcommand*{\makelabel}[1]{\hss##1}}
+ {\endlist}
+ {\item}
+```
+
+对于不采用list环境的文献表,即设置gbalign=gb7714-2015时,可以采用如下设定:
+
+```
+%调整顺序标签与文献内容的间距
+\setlength{\biblabelsep}{2mm}
+%修改对齐环境-使不缩进
+\renewcommand{\itemcmd}{%
+\settowidth{\lengthid}{\mkgbnumlabel{\printfield{labelnumber}}}
+%%这里是所做的调整,以下两句通过调整\lengthid来调整缩进
+\setlength{\lengthid}{0pt}
+\addtolength{\lengthid}{-\biblabelsep}
+%如下是默认设置
+\addtolength{\lengthid}{\biblabelsep}
+\setlength{\lengthlw}{\textwidth}
+\addtolength{\lengthlw}{-\lengthid}
+\addvspace{\bibitemsep}%恢复\bibitemsep的作用
+%\parshape 2 0em \textwidth \lengthid \lengthlw
+\hangindent\lengthid
+\mkgbnumlabel{\printfield{labelnumber}}%
+\hspace{\biblabelsep}}
+```
+
+示例见:https://github.com/hushidong/biblatex-gb7714-2015/issues/62
+
+
+
+
+* <b>如何修改参考文献表的字体字号?</b>
+
+通过修改如下命令实现
+
+```
+% 字体的控制: \textit, sl, emph-楷体, \textbf, sf-黑体, \texttt-仿宋, \textsc, md, up-宋体
+% 全局字体
+\renewcommand{\bibfont}{\zihao{-5}}%\fangsong
+% 题名字体
+\renewcommand{\bibauthorfont}{\bfseries\color{teal}}%
+\renewcommand{\bibtitlefont}{\ttfamily\color{blue}}%
+\renewcommand{\bibpubfont}{\itshape\color{violet}}%
+% url和doi字体
+\def\UrlFont{\ttfamily} %\urlstyle{sf} %\def\UrlFont{\bfseries}
+```
+
+​
* <b>我习惯用传统的bst文件来生成参考文献,有没有GB/T 7714-2015标准的实现版本?</b>
-> GB/T 7714-2015标准实现的bst版本,已经由[zeping lee](https://github.com/zepinglee/gbt7714-bibtex-style)开发完毕,直接使用即可。
-
-
-
+
+GB/T 7714-2015标准实现的bst版本,已经由[zeping lee](https://github.com/zepinglee/gbt7714-bibtex-style)开发完毕,直接使用即可。
+
+
+
* <b>我在使用过程中遇到了一些无法理解和无法解决的问题,怎么办?</b>
-> 请邮件联系hzzmail@163.com或在项目内发issue提问即可。
-
-
+
+请邮件联系hzzmail@163.com或在项目内发issue提问即可。
+
+
#### 4.2 Bibliography format/文献表著录格式
* <b>请问可以在参考文献表中实现类似于word那样的与文献内容等间距标签对齐格式么?</b>
-> 可以,latex的列表通常用list来实现,因此一般列表的内容都是对齐的,
-> 此时如果标签右对齐的,那么标签和内容等间距,但标签左侧是不对齐的。
-> 如果标签是左对齐的,那么标签和内容的间距不相等。
-> 如果要求标签左侧对齐,且标签与内容等间距必须放弃使用list。
-> biblatex-7714-2015的顺序编码制样式特别设计了这样的环境,以保持和word一致。通过设置选项gbalign来实现:
-
+
+可以,latex的列表通常用list来实现,因此一般列表的内容都是对齐的,
+此时如果标签右对齐的,那么标签和内容等间距,但标签左侧是不对齐的。
+如果标签是左对齐的,那么标签和内容的间距不相等。
+如果要求标签左侧对齐,且标签与内容等间距必须放弃使用list。
+biblatex-7714-2015的顺序编码制样式特别设计了这样的环境,以保持和word一致。通过设置选项gbalign来实现:
+
```\usepackage[backend=biber,bibstyle=gb7714-2015,gbalign=gb7714-2015]{biblatex}```
-
-
+
+
* <b>如果不希望在参考文献表中出现类似“出版地不详”“出版者不详”等信息时,请问该怎么处理?</b>
-> 设置选项gbpub可以实现,当gbpub=false时,biblatex-gb7714-2015宏包会放弃国标的要求,不使用“出版地不详”等补充信息:
-
+
+设置选项gbpub可以实现,当gbpub=false时,biblatex-gb7714-2015宏包会放弃国标的要求,不使用“出版地不详”等补充信息:
+
```\usepackage[backend=biber,bibstyle=gb7714-2015,gbpub=false]{biblatex}```
-
-
+
+​
* <b>我觉得文献表中英文作者全部用大写不好看,请问能换一种大小写方式么?</b>
-> 能,通过设置gbnamefmt可以实现,默认情况下gbnamefmt=uppercase,作者姓名字母全部大写。
-> 当设置gbnamefmt=lowercase时,biblatex-gb7714-2015宏包对于bib文件中的作者姓名的大小写不做改变,
-> 这时可以在bib文件中手动设置想要的大小写方式。
-> 当要实现类似ZHAO Yu-xin这样的拼音方式,则可以设置gbnamefmt=pinyin:
-
+
+能,通过设置gbnamefmt可以实现,默认情况下gbnamefmt=uppercase,作者姓名字母全部大写。
+当设置gbnamefmt=lowercase时,biblatex-gb7714-2015宏包对于bib文件中的作者姓名的大小写不做改变,
+这时可以在bib文件中手动设置想要的大小写方式。
+当要实现类似ZHAO Yu-xin这样的拼音方式,则可以设置gbnamefmt=pinyin:
+
```\usepackage[backend=biber,bibstyle=gb7714-2015,gbnamefmt=lowercase]{biblatex}```
* <b>如果不希望在参考文献表中出现类似“[M]”“[J]”等文献类型标识符时,请问该怎么处理?</b>
-> 可通过设置选项gbtype=false实现:
-
+
+可通过设置选项gbtype=false实现:
+
```\usepackage[backend=biber,bibstyle=gb7714-2015,gbtype=false]{biblatex}```
* <b>如果不希望在参考文献表中出现网址信息时,请问该怎么处理?</b>
-> 可通过设置选项url=false实现:
-
+
+可通过设置选项url=false实现:
+
```\usepackage[backend=biber,bibstyle=gb7714-2015,url=false]{biblatex}```
* <b>如果不希望在参考文献表中出现DOI信息时,请问该怎么处理?</b>
-> 可通过设置选项doi=false实现:
-
+
+可通过设置选项doi=false实现:
+
```\usepackage[backend=biber,bibstyle=gb7714-2015,doi=false]{biblatex}```
-
+
* <b>如果对当前文献中的url或doi显示效果(包括间距和断行)不满意,能否进行调整?</b>
-> 能,可以通过设置三个计数器的值来调整,取值范围0到9999,计数器的值越大则越容易在相应的内容后断行:
-
+
+能,可以通过设置三个计数器的值来调整,取值范围0到9999,计数器的值越大则越容易在相应的内容后断行:
+
```
\setcounter{biburlnumpenalty}{100}%大于0允许在数字后面断行
\setcounter{biburlucpenalty}{100}%大于0允许在大写字母后面断行
@@ -610,141 +629,164 @@ biber -l zh__stroke jobname
```
-
+​
* <b>当参考文献没有作者时,希望用佚名或Anon代替作者时,请问该怎么处理?</b>
-> 可通过设置选项gbnoauthor=true实现,注意该处理主要用在作者年制中:
-
+
+可通过设置选项gbnoauthor=true实现,注意该处理主要用在作者年制中:
+
```\usepackage[backend=biber,bibstyle=gb7714-2015,gbnoauthor=true]{biblatex}```
* <b>如果希望参考文献表中文献作者数量超过国标规定的3个时,请问该怎么处理?</b>
-> 可通过设置选项maxbibnames,minbibnames实现,比如下面的设置用于显示5个作者:
-
+
+可通过设置选项maxbibnames,minbibnames实现,比如下面的设置用于显示5个作者:
+
```\usepackage[backend=biber,bibstyle=gb7714-2015,maxbibnames=5,minbibnames=5]{biblatex}```
* <b>请问如何将作者之间的分隔符调整为and而不是用逗号?</b>
-> 可以通过重设两个分隔符来实现,分别是multinamedelim和finalnamedelim。低版本的biblatex直接重定义命令`\multinamedelim`和`\finalnamedelim`,高版本的biblatex可以使用分隔符环境,这样可以在标注、文献表等不同位置直接使用不同的分隔符,而不像低版本biblatex那样只能在不同的位置修改局部定义。比如:
-
+
+可以通过重设两个分隔符来实现,分别是multinamedelim和finalnamedelim。低版本的biblatex直接重定义命令`\multinamedelim`和`\finalnamedelim`,高版本的biblatex可以使用分隔符环境,这样可以在标注、文献表等不同位置直接使用不同的分隔符,而不像低版本biblatex那样只能在不同的位置修改局部定义。比如:
+
```
\DeclareDelimFormat[bib]{multinamedelim}{\addspace and \addspace}
\DeclareDelimFormat[bib]{finalnamedelim}{\addspace and \addspace}
\DeclareDelimFormat[cite]{multinamedelim}{\addcomma\addspace}
\DeclareDelimFormat[cite]{finalnamedelim}{\addcomma\addspace}
```
-
-
-
+
+
+​
* <b>请问如何使文献表中文献标题的是句首字母大写而其它所有字母均小写?</b>
-> 默认情况下,biblatex-gb7714-2015不对标题的字母大小写做处理,因此要得到想要的字母大小写格式,
-> 需要在bib文件输入参考文献信息时给出需要的大小写格式。
-
-
-
+
+默认情况下,biblatex-gb7714-2015仅对标题首字母做调整,使其变成为大写,而其他字母大小写不做处理,因此要得到想要的字母大小写格式,需要在bib文件输入参考文献信息时给出需要的除首字母外的其它字母的大小写格式。
+
+若有特殊情况,需要首字母为小写,可采用如下两种方法:
+
+(1)根据字符大小写更换命令比如
+
+`{\MakeLowercase i}FogSim title contents`
+
+(2)修改titlecase域格式,即将如下命令放到导言区中,放biblatex后面
+
+```
+\DeclareFieldFormat{titlecase}{\iftoggle{bbx:titlelink}{%
+\iffieldundef{url}{#1}{%
+\href{\thefield{url}}{#1}}}{#1}}%重设标题格式,将去除首字母大写
+```
+
+​
* <b>请问如何使文献表中的期刊名是单词首字母大写的?</b>
-> 默认情况下,biblatex-gb7714-2015不对期刊名的字母大小写做处理,
-> 因此需要在bib文件输入参考文献信息时给出需要的大小写格式。
-
-
-
+
+默认情况下,biblatex-gb7714-2015不对期刊名的字母大小写做处理,
+因此需要在bib文件输入参考文献信息时给出需要的大小写格式。
+
+
+​
* <b>我想得到中英文对照的双语参考文献,请问该如何处理?</b>
-> biblatex-gb7714-2015设计了两种多语言对照参考文献的实现方式,
-> 一种是利用条目集的概念,另一种是利用关联条目的概念。
-> 因此有两种方法:
-> 方法一,动态定义条目集:
-> 在导言区或正文中定义:
+biblatex-gb7714-2015设计了两种多语言对照参考文献的实现方式,
+一种是利用条目集的概念,另一种是利用关联条目的概念。
+因此有两种方法:
+
+(1)方法一,动态定义条目集:
+在导言区或正文中定义:
```\defbibentryset{易仕和,等,2013}{易仕和2013--,Yi2013--}```
-> 在正文中引用:
-``双语文献引用\cite{易仕和,等,2013}```
+在正文中引用:
+```双语文献引用\cite{易仕和,等,2013}```
-> 方法二,动态定义关联条目:
-> 在导言区定义:
+(2)方法二,动态定义关联条目:
+在导言区定义:
```\defdoublelangentry{易仕和2013--}{Yi2013--}```
-> 在正文中引用:
+在正文中引用:
```双语文献引用\cite{易仕和2013--}```
+
+
* <b>我想修改文献条目的日期项诸如格式,请问该如何处理?</b>
参考文献中日期格式主要有四种修改方式:
-1. 利用biblatex选项全局的修改日期格式
-2. 修改日期输出宏,使根据条目类型输出不同的日期格式
-3. 修改日期输出宏,使根据具体条目输出不同的日期格式
-4. 修改参考文献信息,使当前条目原样输出需要的格式
+(1) 利用biblatex选项全局的修改日期格式
+(2) 修改日期输出宏,使根据条目类型输出不同的日期格式
+(3) 修改日期输出宏,使根据具体条目输出不同的日期格式
+(4) 修改参考文献信息,使当前条目原样输出需要的格式
具体示例见:[biblatex中如何修改参考文献中日期的著录格式](https://blog.csdn.net/xenonhu/article/details/86933525)
-
-
+
+​
#### 4.3 Citation format/正文引用的标注格式
* <b>我希望在正文中同时使用上标和非上标的引用标签,请问该怎么操作?</b>
-> 可以使用不同的命令来实现上标和非上标的标签,
-> 上标标签的命令为`\cite{bibtexkey}`,非上标标签的命令为`\parencite{bibtexkey}`。
-> 当希望上标的标签也给出国标要求的页码时,则可以使用`\pagescite[50-55]{bibtexkey}`给出指定页码
-> 或者`\pagescite{bibtexkey}`直接使用bib文件中的页码。
-
-
-
+
+可以使用不同的命令来实现上标和非上标的标签,
+上标标签的命令为`\cite{bibtexkey}` ,非上标标签的命令为 `\parencite{bibtexkey}`。
+当希望上标的标签也给出国标要求的页码时,则可以使用`\cite[50-55]{bibtexkey}`、`\pagescite[50-55]{bibtexkey}`给出指定页码 或者`\pagescite{bibtexkey}` 直接使用bib文件中的页码。
+
+
+​
* <b>我在引用文献时已经给出作者信息,希望引用标签仅包含年份和页码信息或者仅包含年份信息时,该怎么操作?</b>
-> 需要给出年份的标签是作者年制的标签,可以使用命令`\yearpagescite{bibtexkey}`给出包含年份和页码信息的标签,
-> 使用命令`\yearcite{bibtexkey}`给出仅包含年份的标签。
+
+ 需要给出年份的标签是作者年制的标签,可以使用命令`\yearpagescite{bibtexkey}`给出包含年份和页码信息的标签,
+ 使用命令`\yearcite{bibtexkey}`给出仅包含年份的标签。
* <b>在使用作者年制时,我希望文献表是按作者年份标题排序,而正文某处一个cite命令引用多个参考文献,且这些文献的标签是按年份作者标题排序,该怎么操作?</b>
-> 有两种方法:
-> 一是自动排序
+ 有两种方法:
+
+(1) 一是自动排序
-> 宏包加载时使用:
+ 宏包加载时使用:
```\usepackage[backend=biber,style=gb7714-2015ay,sortcites,sorting=ynt]{biblatex}```
-> 正文中引用:
+ 正文中引用:
```\cite{refa2010,refb2008,refc2009}```
-> 然后在文献打印前加
+ 然后在文献打印前加
```\newrefcontext[sorting=nyt]```
-> 二是手动给出排序
+(2) 二是手动给出排序
-> 宏包加载时使用
+ 宏包加载时使用
```\usepackage[backend=biber,style=gb7714-2015ay]{biblatex}```
-> 引用多个文献时按照年份顺序给出引用关键字,即正文中引用:
+ 引用多个文献时按照年份顺序给出引用关键字,即正文中引用:
```\cite{refb2008,refc2009,refa2010}```
-> 参考:[issue:citation的顺序和bibliography的顺序如何不关联](https://github.com/hushidong/biblatex-gb7714-2015/issues/30)
+ 参考:[issue:citation的顺序和bibliography的顺序如何不关联](https://github.com/hushidong/biblatex-gb7714-2015/issues/30)
* <b>在使用作者年制时,我希望文献表同一位置引用同一作者的不同的文献实现作者姓名的压缩,该怎么操作?</b>
-> 可以通过将gb7714-2015ay.cbx 中的引用的基础样式authoryear更换成authoryear-comp。
+可以通过将gb7714-2015ay.cbx 中的引用的基础样式authoryear更换成authoryear-comp。
-
+​
* <b>请问希望正文中作者年制的标注(引用)标签中作者数量超过国标规定的1个时,该怎么处理?</b>
-> 可通过设置选项maxcitenames,mincitenames实现,比如下面的设置用于显示5个作者:
+
+可通过设置选项maxcitenames,mincitenames实现,比如下面的设置用于显示5个作者:
```\usepackage[backend=biber,style=gb7714-2015ay,maxcitenames=5,mincitenames=5]{biblatex}```
@@ -752,7 +794,8 @@ biber -l zh__stroke jobname
* <b>请问希望正文中作者年制的标注(引用)标签中作者数量只能是1个,而不管是否存在歧义时,该怎么处理?</b>
-> 可通过设置选项uniquelist=false实现,该设置标签中的作者只会是指定的1个:
+
+可通过设置选项uniquelist=false实现,该设置标签中的作者只会是指定的1个:
```\usepackage[backend=biber,style=gb7714-2015ay,uniquelist=false]{biblatex}```
@@ -760,7 +803,8 @@ biber -l zh__stroke jobname
* <b>请问希望正文中作者年制的标注(引用)标签中作者数量只能是1个,且只用其作者的姓而不管是否存在歧义时,该怎么处理?</b>
-> 可通过设置选项uniquelist=false, uniquename=false实现,该设置标签中的作者只会是指定的1个且只用该作者的姓:
+
+可通过设置选项uniquelist=false, uniquename=false实现,该设置标签中的作者只会是指定的1个且只用该作者的姓:
```\usepackage[backend=biber,style=gb7714-2015ay,uniquelist=false,uniquename=false]{biblatex}```
@@ -769,7 +813,8 @@ biber -l zh__stroke jobname
* <b>请问上标的标注(引用)标签过长导致行溢出,该怎么处理?</b>
-> 上标的标注与行内的标注不一样,因此采用了上标的处理,所以上标的标注无法自动断行,因此在页边附近的长标注很有可能会溢出。由于上标标注的断行国标中并没有什么明确要求和说明,因此只能按照自己的方式进行处理,通常是将一个长标注手动分成两个短的标注,比如将:
+
+上标的标注与行内的标注不一样,因此采用了上标的处理,所以上标的标注无法自动断行,因此在页边附近的长标注很有可能会溢出。由于上标标注的断行国标中并没有什么明确要求和说明,因此只能按照自己的方式进行处理,通常是将一个长标注手动分成两个短的标注,比如将:
```\cite{key1,key2,key3,key4,key5,key6,key7}```
@@ -783,7 +828,8 @@ biber -l zh__stroke jobname
* <b>在顺序编码制标签中,希望数字编码从两个连续编码就开始压缩,比如[1,2]压缩成[1-2],该怎么处理?</b>
-> biblatex中处理顺序数字编码压缩的代码默认从3个连续编码开始压缩,比如[1,2,3]压缩成[1-3]。如果要修改为从2个连续编码开始压缩,只需要做一个很简单的修改即可:
+
+biblatex中处理顺序数字编码压缩的代码默认从3个连续编码开始压缩,比如[1,2,3]压缩成[1-3]。如果要修改为从2个连续编码开始压缩,只需要做一个很简单的修改即可:
```
%该宏的目的是抛弃压缩内部的编号,而仅输出最后一个编号,主要通过cbx@tempcnta来控制
@@ -809,7 +855,8 @@ biber -l zh__stroke jobname
* <b>在正文中的某一部分,希望取消顺序编码标签中的压缩,而其他部分保持这种压缩,该怎么处理?</b>
-> 顺序数字编码压缩的代码,主要有cite:comp:comp宏控制,因此需要局部取消压缩,可以局部的修改该宏。修改很简单,只需要注释掉其中的一行,在需要取消压缩的环境中,重定义该宏,比如:
+
+顺序数字编码压缩的代码,主要有cite:comp:comp宏控制,因此需要局部取消压缩,可以局部的修改该宏。修改很简单,只需要注释掉其中的一行,在需要取消压缩的环境中,重定义该宏,比如:
```
\renewbibmacro*{cite:comp:comp}{%
@@ -837,10 +884,9 @@ biber -l zh__stroke jobname
```
-
-
-
+​
### 5. Examples/著录和标注结果示例
+
* 顺序编码制
![示例a](example/fig-style-numeric.png)
@@ -854,6 +900,7 @@ biber -l zh__stroke jobname
对于bib文件中的如下条目,有:
+```
@Article{Zhang2007-500-503,
Title = {The design and experimental investigations of supersonic length shorted nozzle},
Author = {Zhang, Min-li and Yi, Shi-he and Zhao, Yu-xin},
@@ -887,13 +934,210 @@ biber -l zh__stroke jobname
Publisher = {China Astronautic Publishing House},
Year = {2003}
}
-
+```
![示例c](example/fig-nameformat.png)
---------------------------------------------------------
+
+## Usage
+* for numerical sequence style: gb7714-2015
+
+ `\usepackage[backend=biber,style=gb7714-2015]{biblatex}`
+
+ - add an option `gbalign` to control the align style of the numerical label:
+
+ `gbalign=right` for the label ragged left in a list environment, this is the default setting.
+
+ `gbalign=center` for the same width label in a list environment with the number centered in a wrapper like bracket []
+
+ `gbalign=left` for the label ragged right in list environment
+
+ `gbalign=gb7714-2015` for the label in paragraph with same separation space between label and content of the reference entry
+
+ `\usepackage[backend=biber,style=gb7714-2015,gbalign=gb7714-2015]{biblatex}`
+
+ - add an option `gbpub` for dealing publishing items (This option is also for author-year style):
+
+ `gbpub = true` for gb7714 style, to print `[出版者不详]` and the like when publisher or address is absent, this is the default setting.
+
+ `gbpub = false` for standard style, not to print the additional infomation.
+
+ `\usepackage[backend=biber,style=gb7714-2015,gbpub=true]{biblatex}`
+
+ - add an option `gbnamefmt` for dealing author name's letter case (This option is also for author-year style):
+
+ `gbnamefmt = uppercase` for gb7714 style, to capitalize all the letters of the name, like: ZHANG M L, this is the default setting.
+
+ `gbnamefmt = lowercase` for gb7714 style, do no case switch of the name, like: Zhang M L
+
+ `gbnamefmt = givenahead` for standard style, given-family style, like: M. L. Zhang as the ieee style
+
+ `gbnamefmt = familyahead` for standard style, family-given style, like: Zhang, M. L. as the apa style.
+
+ `gbnamefmt = pinyin` for a common Chinese style, like: ZHANG Min-li, YI Shi-he and so on.
+
+ `gbnamefmt = reserveorder` for standard style:family-given/given-family style
+
+ the name format can be set per-entry using a field `nameformat`, add this field like `nameformat={pinyin}` to an entry in the bib file to set the entry's name format.
+
+ `\usepackage[backend=biber,style=gb7714-2015,gbnamefmt=uppercase]{biblatex}`
+
+ - add an option `gbbiblabel` to control the format of the numerical label:
+
+ `gbbiblabel=bracket` for the numerical number in the label wrapped by bracket, like: [1], this is the default setting.
+
+ `gbbiblabel=parens` for the numerical number in the label wrapped by parenthesis, like: (1)
+
+ `gbbiblabel=plain` for the numerical number in the label wrapped by nothing, like: 1
+
+ `gbbiblabel=dot` for the numerical number in the label followed with dot, like: 1.
+
+ `gbbiblabel=box` for the numerical number in the label wrapped by box which generated by `\framebox`
+
+ `gbbiblabel=circle` for the numerical number in the label wrapped by circle which generated by `\textcircled`
+
+ `\usepackage[backend=biber,style=gb7714-2015,gbbiblabel=bracket]{biblatex}`
+
+ - add an option `gbtype` to control the output of the reference type and carrier identifier like [J/OL] (This option is also for author year style):
+
+ `gbtype = true` for gb7714 style, print a title with the identifier, like: `an on-line article [J/OL]`, this is the default setting.
+
+ `gbtype = false` for none identifier, print a title without identifier, like: `an on-line article`
+
+ `\usepackage[backend=biber,style=gb7714-2015,gbtype=true]{biblatex}`
+
+ - add an option `gbfieldtype` to control the output of field type:
+
+ `gbfieldtype = true` to print type field, like the thesis type: `PHD thesis` or `博士学位论文`。please use `\DefineBibliographyStrings{english}{mathesis={str you want}}`,`\DefineBibliographyStrings{english}{phdthesis={str you want}}`,
+ `\DefineBibliographyStrings{english}{mathesiscn={str you want}}`,`\DefineBibliographyStrings{english}{phdthesiscn={str you want}}` to
+ define the output string, or set it in bibfile like: `type={str you want},`
+
+ `gbfieldtype = false` not to print type field.
+
+ `\usepackage[backend=biber,style=gb7714-2015,gbfieldtype=true]{biblatex}`
+
+ - add an option `gbpunctin` to control the output of `//` before bookauthor for entrytypes like inbook/incollection/inproceedings(This option is also for author year style):
+
+ `gbpunctin=true` for gb7714 style, to output `//`, this is the default setting
+
+ `gbpunctin=false` for standard style, to output a bibstring, for English it is `IN:`, If you want to eliminate it at all, please redefine the bibstring like `\DefineBibliographyStrings{english}{in={}}` and `\DefineBibliographyStrings{english}{incn={}}`in the preamble.
+
+ `\usepackage[backend=biber,style=gb7714-2015,gbpunctin=true]{biblatex}`
+
+ - add an option `gbctexset` to control the bibliography heading's setting method (This option is also for author year style):
+
+ `gbctexset=true` , the bibliography heading can be set by `\bibname` or `\refname`, this is the default setting.
+
+ `gbpunctin=false`, the heading can be set by bibstring like `\DefineBibliographyStrings{english}{bibliography={title you want}}` or `\DefineBibliographyStrings{english}{references={title you want}}`
+
+ or alternatively, it can also be set through the printbibliography option `title`, like `printbibliography[title=title you want]`.
+
+ `\usepackage[backend=biber,style=gb7714-2015,gbctexset=true]{biblatex}`
+
+ - add an option `gbcodegbk` to deal the tex source file encoded with GBK (This option is also for author year style):
+
+ `gbcodegbk=true` , if you want to compile the GBK encoded source file with pdflatex or latex
+
+ `gbcodegbk=false`, if you want to compile the utf-8 endcoded source file with xelatex, this is the default setting.
+
+ `\usepackage[backend=biber,style=gb7714-2015,gbcodegbk=true]{biblatex}`
+
+ - add an option `gbtitlelink` to control the hyperlink of title field (This option is also for author year style):
+
+ `gbtitlelink = false` not to add hyperlink, this is the default setting.
+
+ `gbtitlelink = true` to set the title as a hyperlink.
+
+ `\usepackage[backend=biber,style=gb7714-2015,gbtitlelink=true]{biblatex}`
+
+ - add an option `gbfootbib` to control the bibliography in footnote (This option is also for author year style):
+
+ `gbfootbib = true` make patches to match the standard, this is the default setting.
+
+ `gbfootbib = false` not to patch.
+
+ `\usepackage[backend=biber,style=gb7714-2015,gbtitlelink=true]{biblatex}`
+
+ - add options `gbcitelocal` `gbbiblocal` to control the local strings in citation and bibliography respectively, the `gblocal` set the both options (These options are also for author year style):
+
+ `gbcitelocal = gb7714-2015` to output local strings according to the reference's language, this is the default setting.
+
+ `gbcitelocal = chinese` to output local strings with chinese language word like "等".
+
+ `gbcitelocal = english` to output local strings with western language word like "et al.".
+
+ `\usepackage[backend=biber,style=gb7714-2015,gbcitelocal = chinese]{biblatex}`
+
+ - add an option `gbstrict` to control the output of some unnecessary fields for GB/T7714-2015 (This option is also for author year style).
+
+ `gbstrict=true`, not to print those fields such as language, eprint, this is the default setting.
+
+ `gbstrict=false`, to output them as the standard style
+
+ `\usepackage[backend=biber,style=gb7714-2015,gbstrict=true]{biblatex}`
+
+ - add an option `gbfieldstd` to control the format of some fields such as title, url and pages (This option is also for author year style):
+
+ `gbfieldstd = false` for gb7714 style, format of the fields follows the GB/T7714-2015 standard, this is the default setting.
+
+ `gbfieldstd = true` for standard style.
+
+ `\usepackage[backend=biber,style=gb7714-2015,gbfieldstd=true]{biblatex}`
+
+
+* for multi-style: gb7714-2015ms
+
+ In order to use two styles in a tex file, add a style gb7714-2015ms. option `gbstyle` is added to control the using mode. `gbstyle=true` means all references are printed with GB/T7714-2015 style, and `gbstyle=false` means the chinese references are printed with GB/T7714-2015 style while the other references are printed with standard style shipped by biblatex, and `gbstyle=true` is the default set. all the options for numerical sequence style gb7714-2015 can also be used in gb7714-2015ms.
+
+
+ `\usepackage[backend=biber,style=gb7714-2015ms,gbstyle=false]{biblatex}`
+
+* for author year style: gb7714-2015ay
+
+ `\usepackage[backend=biber,style=gb7714-2015ay,gbpub=true]{biblatex}`
+
+ - add an option `gbnoauthor` for dealing undefined author:
+
+ `gbnoauthor = true` for gb7714 style, to print `佚名` or `Anon` when the author of the entry is absent.
+
+ `gbnoauthor = false` for standard style, not to pring anything, this is the default setting.
+
+ `\usepackage[backend=biber,style=gb7714-2015ay,gbnoauthor=true]{biblatex}`
+
+ - add an option value `mergedate=none` to control the date in bibliography:
+
+ `mergedate=true` to output date only after author,like:LAMPORT L, (1986). Document Preparation System[M]. [S.l.]: Addison-Wesley Reading, MA.
+
+ `mergedate=false` to output date after author and in publish items,like:LAMPORT L, (1986). Document Preparation System[M]. [S.l.]: Addison-Wesley Reading, MA, 1986.
+
+ `mergedate=none` to output date only in publish items,like:LAMPORT L. Document Preparation System[M]. [S.l.]: Addison-Wesley Reading, MA, 1986.
+
+ do not set mergedate output like:LAMPORT L, 1986. Document Preparation System[M]. [S.l.]: Addison-Wesley Reading, MA.
+
+ `\usepackage[backend=biber,style=gb7714-2015ay,mergedate=none]{biblatex}`
+
+ - add an option `gblanorder` to control sequence of reference groups of different languagesin the bibliography:
+
+ `gblanorder=chineseahead` to set the sequence as: cn;jp;kr;en;fr;ru
+
+ `gblanorder=englishahead` to set the sequence as: en;fr;ru;cn;jp;kr
+
+ `gblanorder=user defined string like: cn;en;jp;kr;fr;ru` to set the sequence as: cn;en;jp;kr;fr;ru.
+
+ `\usepackage[backend=biber,style=gb7714-2015ay,gblanorder=cn;en;jp;fr;kr;ru]{biblatex}`
+
+* for perl script transformation tool(only for the numerical style)
+
+ `perl gb7714texttobib.pl in=textfilename out=bibfilename`
+
+A demonstration database is provided to show how to format input for the style. The biblatex-gb7714-2015 style works with texlive2014, texlive2015, texlive2016, texlive2017 , texlive2018 and so on.
+
+please see the file 'biblatex-gb7714-2015.pdf' for further information!
+
+
## Version history:
* 2016/05/20 v1.0
@@ -916,6 +1160,7 @@ biber -l zh__stroke jobname
* 2019/03/28 v1.0r
* 2019/03/29 v1.0rm,rename erj to chinese-erj,ctan
* 2019/08/28 v1.0s
+* 2020/03/04 v1.0t,ctan
---------------------------------------------------------
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015-preamble.tex b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015-preamble.tex
index fbf92f0fea..e5ff2178e6 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015-preamble.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015-preamble.tex
@@ -13,8 +13,10 @@
\setmonofont[Ligatures=TeX]{TeX Gyre Pagella}
%\usepackage{unicode-math}
%\setmathfont[math-style=ISO,bold-style=ISO]{TeX Gyre Pagella Math}
-\setCJKmainfont
-[BoldFont=SourceHanSansSC-Regular.otf, ItalicFont=simkai.ttf]{SourceHanSerifSC-Regular.otf}
+
+\setmainfont{CMU Serif}
+\IfFileExists{SourceHanSerifSC-Regular.otf}
+{\setCJKmainfont[BoldFont=SourceHanSansSC-Regular.otf, ItalicFont=simkai.ttf]{SourceHanSerifSC-Regular.otf}}{}
\usepackage[dvipsnames]{xcolor}
\colorlet{examplefill}{yellow!80!black}
@@ -92,7 +94,9 @@
%超链接书签功能,选项去掉链接红色方框
\usepackage[colorlinks=true,%
-pdfstartview=FitH,allcolors=gbemphcolor]{hyperref}
+pdfstartview=FitH,allcolors=gbemphcolor,
+bookmarksopenlevel=4,%
+bookmarksdepth=4,]{hyperref}
%linkcolor=gbblue,anchorcolor=gbblue,citecolor=gbblue
%linkcolor=black,linkcolor=green,blue,red,cyan, magenta,
%yellow, black, gray,white, darkgray, lightgray, brown,
@@ -124,7 +128,7 @@ pdfstartview=FitH,allcolors=gbemphcolor]{hyperref}
%目录,图/表/例目录,图表题注
-\usepackage{subfigure}
+\usepackage[bf]{subfigure}
\usepackage[subfigure]{tocloft} %注意其与titletoc共用时分页会有问题
\usepackage{ccaption}
\captiondelim{. } %图序图题中间的间隔符号
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf
index 6da5621607..a0dae26ec4 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex
index 72ec1e17c6..d0513bffb8 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex
@@ -1,11 +1,15 @@
\documentclass[11pt]{article} %用draft选项找到badbox的位置 twoside,
\input{biblatex-gb7714-2015-preamble} %宏包和一些格式设置
+\usepackage{microtype}
+%\usepackage[russian,french,english]{babel}
+%\DefineHyphenationExceptions{english}{conf-erence}
\begin{document}
\hyphenpenalty=100 %断词阈值,值越大越不容易出现断词
\tolerance=9000 %丑度,10000为最大无溢出盒子,参考the texbook 第6章
+
%------------------------------------------------------------
% 标题和目录
%------------------------------------------------------------
@@ -271,15 +275,21 @@ latexmk -xelatex jobname.tex
\begin{tcolorbox}[left skip=0pt,right skip=0pt,%
width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,%
leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
-\deflength{\textparwd}{\linewidth-1cm}
-\parbox{\textparwd}{%\raggedright
-\hyphenpenalty=50 %断词阈值,值越大越不容易出现断词
-\tolerance=9500 %丑度,10000为最大无溢出盒子,参考the texbook 第6章
-详见文献\cite{Peebles2001-100-100}\parencite{Babu2014--}
-另见文献\cite[49]{于潇2012-1518-1523}\parencite[106]{Babu2014--}
-\renewcommand{\bibfont}{\zihao{-5}}
-\printbibliography[heading=subbibliography,title=参考文献]
-}
+\includegraphics*[page=1,viewport=0cm 0.4cm 14cm 6.1cm,clip=true]{egfigure/egmwe.pdf}
+%\deflength{\textparwd}{\linewidth-1.5cm}
+%\begin{minipage}{\textparwd}
+%\fbox{\parbox{\textparwd}{%\raggedright
+%详见文献\cite{Peebles2001-100-100}\parencite{Babu2014--}
+%另见文献\cite[49]{于潇2012-1518-1523}\parencite[106]{Babu2014--}
+%\renewcommand{\bibfont}{\zihao{-5}}
+%{
+%\hyphenation{conference}
+%\hyphenpenalty=100 %断词阈值,值越大越不容易出现断词
+%\tolerance=100 %丑度,10000为最大无溢出盒子,参考the texbook 第6章
+%\printbibliography[heading=subbibliography,title=参考文献]
+%\par}
+%}}
+%\end{minipage}
\end{tcolorbox}
\caption{最小工作示例编译生成的PDF文档}\label{fig:eg:ref}
\end{figure}
@@ -290,8 +300,11 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
\subsection{样式及选项加载}
+\subsubsection{几种样式}
+
例\ref{code:doc:structrue}中给出了宏包和样式的基本加载方式,选项的加载也类似。比如:
+\pdfbookmark[4]{gb7714-2015}{stygb7714-2015}
\begin{example}{顺序编码制(gb7714-2015)加载方式}{eg:gb7714numeric}
\begin{texlist}
%简单方式:
@@ -303,6 +316,8 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
\end{texlist}
\end{example}
+
+\pdfbookmark[4]{gb7714-2015ay}{stygb7714-2015ay}
\begin{example}{著者-出版年制(gb7714-2015ay)加载方式}{eg:gb7714authoryear}
\begin{texlist}
%简单方式:
@@ -312,6 +327,8 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
\end{texlist}
\end{example}
+
+\pdfbookmark[4]{gb7714-2015ms}{stygb7714-2015ms}
\begin{example}{同一文献表中不同语言区分著录格式的样式(gb7714-2015ms)}{eg:gb7714ms}
\begin{texlist}
%默认方式,所有文献使用一种著录格式,即GB/T 7714-2015样式
@@ -320,7 +337,10 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
\usepackage[backend=biber,style=gb7714-2015ms,gbstyle=false]{biblatex}
\end{texlist}
\end{example}
+格式效果如图\ref{fig:eg:ms}所示。
+
+\pdfbookmark[4]{gb7714-2015mx}{stygb7714-2015mx}
\begin{example}{同一文档中不同文献分节区分不同著录格式的样式(gb7714-2015mx)}{eg:gb7714mx}
\begin{texlist}
%默认方式使用顺序编码制样式
@@ -329,6 +349,8 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
\setaystylesection{2}
\end{texlist}
\end{example}
+格式效果如图\ref{fig:eg:mx}所示。
+
\begin{example}{参考文献文本转换为bib文件perl脚本使用方式}{eg:transtobib}
\begin{texlist}
@@ -336,11 +358,24 @@ perl gb7714texttobib.pl in=textfilename out=bibfilename
\end{texlist}
\end{example}
-其中,v1.0m版本增加的gb7714-2015ms样式文件,主要是为了在一个文献表中针对不同语言使用不同多种样式,比如中文文献使用GB/T 7714-2015规定的著录格式,而其它语言文献使用biblatex提供的标准样式。v1.0r版本增加了gb7714-2015mx样式,主要是为了在一个文档中针对不同参考文献分节使用不同的参考文献样式,比如某些节使用著者年份制,某些节使用顺序编码制。尽管这些方式不常用,但偶尔也有需求,所以都做了实现。另外应ddswhu要求,v1.0r版本增加了chinese-erj样式用于生成经济研究期刊的文献。且在egthesis文件夹内,针对国内一些大学的学位论文文献要求,基于国标样式做了一些定制和测试。
+其中,v1.0m版本增加的gb7714-2015ms样式文件,主要是为了在一个文献表中针对不同语言使用不同多种样式,比如中文文献使用GB/T 7714-2015规定的著录格式,而其它语言文献使用biblatex提供的标准样式。v1.0r版本增加了gb7714-2015mx样式,主要是为了在一个文档中针对不同参考文献分节使用不同的参考文献样式,比如某些节使用著者年份制,某些节使用顺序编码制。尽管这些方式不常用,但偶尔也有需求,所以都做了实现。
+
+另外应ddswhu要求,v1.0r版本增加了chinese-erj样式用于生成经济研究期刊的文献。且在egthesis文件夹内,针对国内一些大学的学位论文文献要求,基于国标样式做了一些定制和测试。
+
+\pdfbookmark[4]{chinese-erj}{chinese-erj}
+\begin{example}{经济研究期刊文献样式(chinese-erj)}{eg:gbchineseerj}
+\begin{texlist}
+%使用经济研究期刊文献样式
+\usepackage[backend=biber,style=chinese-erj]{biblatex}
+\end{texlist}
+\end{example}
+
\subsubsection{新增选项}\label{sec:added:opt}
样式包新增了一些选项,用于标签对齐方式、出版项缺省处理、责任者(作者)缺省处理等功能的控制,其使用方式与biblatex宏包选项完全相同:
\begin{description}
+
+ \pdfbookmark[4]{gbalign}{gbalign}
\item[gbalign]=\textbf{right},left,center,gb7714-2015. \hfill default is right
为顺序编码制增加的选项,用于选择参考文献表序号标签的对齐方式。
@@ -357,8 +392,22 @@ perl gb7714texttobib.pl in=textfilename out=bibfilename
\href{run:./example/opt-gbalign-left.tex}{opt-gbalign-left.tex},
项对齐(标签与内容等间距)见:
\href{run:./example/opt-gbalign-gb.tex}{opt-gbalign-gb.tex}。
+ 效果示例如图\ref{fig:eg:optgbalign}所示。
+\begin{figure}[!htb]
+\centering
+\begin{tcolorbox}[left skip=0pt,right skip=0pt,%
+width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,%
+leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
+\subfigure[\heiti gbalign=right 即右对齐]{\parbox{0.5\linewidth}{\includegraphics*[page=4,viewport=1cm 0cm 8cm 4.5cm,clip=true]{egphoto/opt-gbalign-right.pdf}}}
+\subfigure[\heiti gbalign=left 即左对齐]{\parbox{0.5\linewidth}{\includegraphics*[page=4,viewport=1cm 0cm 8cm 4.5cm,clip=true]{egphoto/opt-gbalign-left.pdf}}}\\
+\subfigure[\heiti gbalign=center 即中对齐]{\parbox{0.5\linewidth}{\includegraphics*[page=4,viewport=1cm 0cm 8cm 4.5cm,clip=true]{egphoto/opt-gbalign-center.pdf}}}
+\subfigure[\heiti gbalign=gb7714-2015 即项对齐]{\parbox{0.5\linewidth}{\includegraphics*[page=4,viewport=1cm 0cm 8cm 4.5cm,clip=true]{egphoto/opt-gbalign-gb.pdf}}}
+\end{tcolorbox}
+\caption{文献表标签对齐选项gbalign效果}\label{fig:eg:optgbalign}
+\end{figure}
+ \pdfbookmark[4]{gbpub}{gbpub}
\item[gbpub]=\textbf{true},false. \hfill default is true
为控制出版信息缺失处理增加的选项。
@@ -369,8 +418,44 @@ perl gb7714texttobib.pl in=textfilename out=bibfilename
顺序编码制测试(著者年份制类似)见:
\href{run:./example/opt-gbpub-true.tex}{opt-gbpub-true.tex},
\href{run:./example/opt-gbpub-false.tex}{opt-gbpub-false.tex}。
+ 效果示例如图\ref{fig:eg:optgbpub}所示。
+
+\begin{figure}[!htb]
+\centering
+\begin{tcolorbox}[left skip=0pt,right skip=0pt,%
+width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,%
+leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
+\subfigure[\heiti gbpub=false 出版项缺省]{\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0cm 9cm 4.5cm,clip=true]{egphoto/opt-gbpub-false.pdf}}}
+\subfigure[\heiti gbpub=true 出版项补充]{\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0cm 10cm 4.5cm,clip=true]{egphoto/opt-gbpub-true.pdf}}}
+\end{tcolorbox}
+\caption{文献表出版项缺失处理选项gbpub效果}\label{fig:eg:optgbpub}
+\end{figure}
+
+ \pdfbookmark[4]{gbnoauthor}{gbnoauthor}
+ \item[gbnoauthor]=true,\textbf{false}. \hfill default is false
+
+ 为著者年份制增加的选项,用于控制责任者缺失时的处理。
+ \begin{itemize}
+ \item gbnoauthor=false,当作者信息缺失时默认不做处理,使用标准样式的处理方式;
+ \item gbnoauthor=true,则根据GB/T 7714-2015 的要求进行处理,中文文献使用“佚名”来代替author,英文文献用“Anon”来代替author。
+ \end{itemize}
+ 测试结果见:
+ \href{run:./example/opt-gbnoauthor-true.tex}{opt-gbnoauthor-true.tex},
+ \href{run:./example/opt-gbnoauthor-false.tex}{opt-gbnoauthor-false.tex}。
+ 效果示例如图\ref{fig:eg:optgbnoauthor}所示。
+\begin{figure}[!htb]
+\centering
+\begin{tcolorbox}[left skip=0pt,right skip=0pt,%
+width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,%
+leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
+\subfigure[\heiti gbnoauthor=true] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.4cm 7.5cm 2.8cm,clip=true]{egphoto/opt-gbnoauthor-true.pdf}}}
+\subfigure[\heiti gbnoauthor=false] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.4cm 7.5cm 2.8cm,clip=true]{egphoto/opt-gbnoauthor-false.pdf}}}
+\end{tcolorbox}
+\caption{文献表作者缺失处理选项gbnoauthor效果}\label{fig:eg:optgbnoauthor}
+\end{figure}
+ \pdfbookmark[4]{gbbiblabel}{gbbiblabel}
\item[gbbiblabel]=\textbf{bracket},parens,plain,dot,box,circle. \hfill default is bracket
为顺序编码制增加的选项,用于选择参考文献表序号数字的格式。
@@ -382,19 +467,25 @@ perl gb7714texttobib.pl in=textfilename out=bibfilename
\item gbbiblabel=box,序号数字由方框包围,比如\framebox{1};
\item gbbiblabel=circle,序号数字由圆圈包围,比如\textcircled{1}。
\end{itemize}
+ 效果示例如图\ref{fig:eg:optgbbiblabel}所示。
- \item[gbnoauthor]=true,\textbf{false}. \hfill default is false
-
- 为著者年份制增加的选项,用于控制责任者缺失时的处理。
- \begin{itemize}
- \item gbnoauthor=false,当作者信息缺失时默认不做处理,使用标准样式的处理方式;
- \item gbnoauthor=true,则根据GB/T 7714-2015 的要求进行处理,中文文献使用“佚名”来代替author,英文文献用“Anon”来代替author。
- \end{itemize}
- 测试结果见:
- \href{run:./example/opt-gbnoauthor-true.tex}{opt-gbnoauthor-true.tex},
- \href{run:./example/opt-gbnoauthor-false.tex}{opt-gbnoauthor-false.tex}。
+\begin{figure}[!htb]
+\centering
+\begin{tcolorbox}[left skip=0pt,right skip=0pt,%
+width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,%
+leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
+\subfigure[\heiti gbbiblabel=box] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 8cm 2.8cm,clip=true]{egphoto/opt-gbbiblabela.pdf}}}
+\subfigure[\heiti gbbiblabel=bracket] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 8cm 2.8cm,clip=true]{egphoto/opt-gbbiblabelb.pdf}}}\\
+\subfigure[\heiti gbbiblabel=parens] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 8cm 2.8cm,clip=true]{egphoto/opt-gbbiblabelc.pdf}}}
+\subfigure[\heiti gbbiblabel=dot] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 8cm 2.8cm,clip=true]{egphoto/opt-gbbiblabeld.pdf}}}\\
+\subfigure[\heiti gbbiblabel=plain] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 8cm 2.8cm,clip=true]{egphoto/opt-gbbiblabele.pdf}}}
+\subfigure[\heiti gbbiblabel=circle] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 8cm 2.8cm,clip=true]{egphoto/opt-gbbiblabelf.pdf}}}\\
+\end{tcolorbox}
+\caption{文献表标签数字格式选项gbbiblabel效果}\label{fig:eg:optgbbiblabel}
+\end{figure}
+ \pdfbookmark[4]{gbnamefmt}{gbnamefmt}
\item[gbnamefmt]=\textbf{uppercase},lowercase,givenahead,familyahead,pinyin. \hfill default is uppercase
为姓名大小写格式控制增加的选项。
@@ -411,8 +502,25 @@ perl gb7714texttobib.pl in=textfilename out=bibfilename
测试结果见:
\href{run:./example/opt-gbnamefmt.tex}{opt-gbnamefmt.tex},
\href{run:./example/opt-gbnamefmt-default.tex}{opt-gbnamefmt-default.tex}。
+ 效果示例如图\ref{fig:eg:optgbnamefmt}所示。
+\begin{figure}[!htb]
+\centering
+\begin{tcolorbox}[left skip=0pt,right skip=0pt,%
+width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,%
+leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
+\subfigure[\heiti gbnamefmt=uppercase] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 8cm 2.8cm,clip=true]{egphoto/opt-gbnamefmt-a.pdf}}}
+\subfigure[\heiti gbnamefmt=lowercase] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 8cm 2.8cm,clip=true]{egphoto/opt-gbnamefmt-b.pdf}}}\\
+\subfigure[\heiti gbnamefmt=givenahead] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 8cm 2.8cm,clip=true]{egphoto/opt-gbnamefmt-c.pdf}}}
+\subfigure[\heiti gbnamefmt=familyahead] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 8cm 2.8cm,clip=true]{egphoto/opt-gbnamefmt-d.pdf}}}\\
+\subfigure[\heiti gbnamefmt=pinyin] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 8cm 2.8cm,clip=true]{egphoto/opt-gbnamefmt-e.pdf}}}
+\subfigure[\heiti gbnamefmt=reverseorder] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 8cm 2.8cm,clip=true]{egphoto/opt-gbnamefmt-f.pdf}}}\\
+\end{tcolorbox}
+\caption{文献表姓名格式选项gbnamefmt效果}\label{fig:eg:optgbnamefmt}
+\end{figure}
+
+ \pdfbookmark[4]{gbtype}{gbtype}
\item[gbtype]=\textbf{true},false. \hfill default is true
为控制是否输出题名后面的文献类型和载体标识符而增加的选项。
@@ -420,7 +528,44 @@ perl gb7714texttobib.pl in=textfilename out=bibfilename
\item gbtype=true,根据GB/T 7714-2015 要求输出标识符,例如“在线的期刊析出文献题名[J/OL]”。
\item gbtype=false,则不输出标识符,例如“在线的期刊析出文献题名”。
\end{itemize}
+ 效果示例如图\ref{fig:eg:optgbtype}所示。
+
+\begin{figure}[!htb]
+\centering
+\begin{tcolorbox}[left skip=0pt,right skip=0pt,%
+width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,%
+leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
+\subfigure[\heiti gbtype=true] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 8cm 2.8cm,clip=true]{egphoto/opt-gbtype-true.pdf}}}
+\subfigure[\heiti gbtype=false] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 8cm 2.8cm,clip=true]{egphoto/opt-gbtype-false.pdf}}}
+\end{tcolorbox}
+\caption{文献类型标识符输出控制选项}\label{fig:eg:optgbtype}
+\end{figure}
+
+
+ \pdfbookmark[4]{gbmedium}{gbmedium}
+ \item[gbmedium]=\textbf{true},false. \hfill default is true
+
+ 为控制是否输出题名后面的文献载体标识符而增加的选项。
+ \begin{itemize}
+ \item gbmedium=true,根据GB/T 7714-2015 要求输出载体标识符,例如“在线的期刊析出文献题名[J/OL]”。
+ \item gbmedium=false,则不输出标识符,例如“在线的期刊析出文献题名[J]”。
+ \end{itemize}
+ 注意:gbtype选项是更大范围的控制,包括了gbmedium。当gbtype=false时,无所谓gbmedium设置什么,因为整个文献类型和载体标识符整个都不显示,而gbmedium只是设置载体标识的。
+ 效果示例如图\ref{fig:eg:optgbmedium}所示。
+
+\begin{figure}[!htb]
+\centering
+\begin{tcolorbox}[left skip=0pt,right skip=0pt,%
+width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,%
+leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
+\subfigure[\heiti gbmedium=true] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 8cm 2.8cm,clip=true]{egphoto/opt-gbmedium-true.pdf}}}
+\subfigure[\heiti gbmedium=false] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 8cm 2.8cm,clip=true]{egphoto/opt-gbmedium-false.pdf}}}
+\end{tcolorbox}
+\caption{文献载体标识符输出控制选项}\label{fig:eg:optgbmedium}
+\end{figure}
+
+ \pdfbookmark[4]{gbfieldtype}{gbfieldtype}
\item[gbfieldtype]=true,\textbf{false}. \hfill default is false
为控制是否输出type域而增加的选项。
@@ -438,8 +583,20 @@ perl gb7714texttobib.pl in=textfilename out=bibfilename
二是设置type域,比如在bib文件直接设置需要输出的字符,比如type=\{[博士学位论文]\}。
\end{itemize}
+ 效果示例如图\ref{fig:eg:optgbfieldtype}所示。
+\begin{figure}[!htb]
+\centering
+\begin{tcolorbox}[left skip=0pt,right skip=0pt,%
+width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,%
+leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
+\subfigure[\heiti gbfieldtype=true] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=8cm 0.2cm 14.5cm 2.8cm,clip=true]{egphoto/opt-gbfieldtype-true.pdf}}}
+\subfigure[\heiti gbfieldtype=false] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=8cm 0.2cm 14.5cm 2.8cm,clip=true]{egphoto/opt-gbfieldtype-false.pdf}}}
+\end{tcolorbox}
+\caption{文献表类型(type)域输出控制选项}\label{fig:eg:optgbfieldtype}
+\end{figure}
+ \pdfbookmark[4]{gbpunctin}{gbpunctin}
\item[gbpunctin]=\textbf{true},false. \hfill default is true
为控制inbook,incollection,inproceedings中析出来源文献前的\texttt{//}符号而增加的选项。
@@ -450,7 +607,149 @@ perl gb7714texttobib.pl in=textfilename out=bibfilename
\lstinline!\DefineBibliographyStrings{english}{in={}}!,\lstinline!\DefineBibliographyStrings{english}{incn={}}!。
之所以用加cn的本地化字符串是为了适应某些样式对中英文文献的区别设置。
\end{itemize}
+ 效果示例如图\ref{fig:eg:optgbpunctin}所示。
+
+\begin{figure}[!htb]
+\centering
+\begin{tcolorbox}[left skip=0pt,right skip=0pt,%
+width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,%
+leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
+\subfigure[\heiti gbpunctin=true] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 7.5cm 2.8cm,clip=true]{egphoto/opt-gbpunctin-true.pdf}}}
+\subfigure[\heiti gbpunctin=false] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 7.5cm 2.8cm,clip=true]{egphoto/opt-gbpunctin-false.pdf}}}
+\end{tcolorbox}
+\caption{析出文献标识符号控制选项}\label{fig:eg:optgbpunctin}
+\end{figure}
+
+ \pdfbookmark[4]{gbtitlelink}{gbtitlelink}
+ \item[gbtitlelink]=true,\textbf{false}. \hfill default is false
+
+ 为设置标题的超链接增加的选项。
+ \begin{itemize}
+ \item gbtitlelink=false,即默认不给标题设置超链接。
+ \item gbtitlelink=true,当文献存在url 域时为文献标题设置超链接。
+ \end{itemize}
+ 测试文件见:
+ \href{run:example/opt-gbtitlelink.tex}{opt-gbtitlelink.tex}。
+ 效果示例如图\ref{fig:eg:optgbtitlelink}所示。
+
+\begin{figure}[!htb]
+\centering
+\begin{tcolorbox}[left skip=0pt,right skip=0pt,%
+width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,%
+leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
+\subfigure[\heiti gbtitlelink=true] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 7.5cm 2.8cm,clip=true]{egphoto/opt-gbtitlelink-true.pdf}}}
+\subfigure[\heiti gbtitlelink=false] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 7.5cm 2.8cm,clip=true]{egphoto/opt-gbtitlelink-false.pdf}}}
+\end{tcolorbox}
+\caption{文献标题超链接控制选项}\label{fig:eg:optgbtitlelink}
+\end{figure}
+
+ \pdfbookmark[4]{gblocal}{gblocal}
+ \item[gblocal]=\textbf{gb7714-2015},chinese,english. \hfill default is gb7714-2015
+ \item[gbcitelocal]=\textbf{gb7714-2015},chinese,english. \hfill default is gb7714-2015
+ \item[gbbiblocal]=\textbf{gb7714-2015},chinese,english. \hfill default is gb7714-2015
+
+ 为设置引用标注标签和文献表中的本地化字符串而增加的选项。其中gbcitelocal 用于控制标注中的本地化字符串,而gbbiblocal用于控制文献表中的本地化字符串,gblocal选项等价于同时设置gbcitelocal 和 gbbiblocal。
+ 配合\lstinline[breaklines=true]!\DefineBibliographyStrings!命令对本地化字符串进行设置可以实现一些特殊的效果。图\ref{fig:content:fmtc}就是该选项的一个使用示例。
+ \begin{itemize}
+ \item gblocal=gb7714-2015,即默认区分中英文,不同语言采用不同的字符串比如中文使用“等”“和”,而英文使用“et al.”“and”。
+ \item gblocal=chinese,强制设置所有的本地化字符串使用中文。
+ \item gblocal=english,强制设置所有的本地化字符串使用英文。
+ \end{itemize}
+ 测试文件见:
+ \href{run:egfigure/egcontentfmtc.tex}{egcontentfmtc.tex}。
+ 效果示例如图\ref{fig:eg:optgblocal}所示。
+
+\begin{figure}[!htb]
+\centering
+\begin{tcolorbox}[left skip=0pt,right skip=0pt,%
+width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,%
+leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
+\centering
+\subfigure[\heiti gblocal=gb7714-2015] {\parbox{0.45\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 7.5cm 2.8cm,clip=true]{egphoto/opt-gblocal-gb.pdf}}}\hfill
+\subfigure[\heiti gblocal=chinese] {\parbox{0.45\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 7.5cm 2.8cm,clip=true]{egphoto/opt-gblocal-chinese.pdf}}}\\
+\subfigure[\heiti gblocal=english] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 7.5cm 2.8cm,clip=true]{egphoto/opt-gblocal-english.pdf}}}
+\end{tcolorbox}
+\caption{常用本地化字符串的中英文控制选项}\label{fig:eg:optgblocal}
+\end{figure}
+
+ \pdfbookmark[4]{mergedate}{mergedate}
+ \item[mergedate]=true,false,none.
+
+ 为著者年份制是否在文献表中作者后面输出日期信息而增加了选项值none。
+ \begin{itemize}
+ \item mergedate=true,著者年份制文献表仅在作者后输出日期
+ \item mergedate=false,著者年份制文献表在作者后和出版项中输出日期
+ \item mergedate=none,著者年份制文献表仅在出版项中输出日期。该选项用于满足中科院大学的著者年份制格式要求。
+ \item no mergedate,即不给出该选项,这是gb7714-2015ay默认的情况,仅在作者后输出日期且已经根据国标格式化。
+ \end{itemize}
+ 效果示例如图\ref{fig:eg:optmergedate}所示。
+
+\begin{figure}[!htb]
+\centering
+\begin{tcolorbox}[left skip=0pt,right skip=0pt,%
+width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,%
+leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
+\subfigure[\heiti mergedate 不给出] {\parbox{\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 14.5cm 2.8cm,clip=true]{egphoto/opt-mergedate-a.pdf}}}\\
+\subfigure[\heiti mergedate=true] {\parbox{\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 14.5cm 2.8cm,clip=true]{egphoto/opt-mergedate-b.pdf}}}\\
+\subfigure[\heiti mergedate=false] {\parbox{\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 14.5cm 2.8cm,clip=true]{egphoto/opt-mergedate-c.pdf}}}\\
+\subfigure[\heiti mergedate=none] {\parbox{\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 14.5cm 2.8cm,clip=true]{egphoto/opt-mergedate-d.pdf}}}\\
+\end{tcolorbox}
+\caption{作者年制文献表年份格式控制选项}\label{fig:eg:optmergedate}
+\end{figure}
+
+
+ \pdfbookmark[4]{gblanorder}{gblanorder}
+ \item[gblanorder]=\textbf{chineseahead},englishahead,userdefinedstr like:cn;en;ru;fr;jp;kr . \hfill default is chineseahead
+
+ 为著者年份制文献不同文种分集排序而增加的选项。
+ \begin{itemize}
+ \item gblanorder=chineseahead,即默认做中文文献在前英文文献在后的排序,各语言顺序为: cn;jp;kr;en;fr;ru。
+ \item gblanorder=englishahead,做英文在前中文文献在后的排序,各语言顺序为: en;fr;ru;cn;jp;kr。
+ \item gblanorder=自定义字符串,比如cn;en;ru;fr;jp;kr。这是一个用分号分隔的语言缩写名构成的字符串,缩写名的前后顺序代表文献表中文种分集的顺序。
+ \end{itemize}
+
+ 测试文档见:\href{run:./example/opt-gblanorder.tex}{opt-gblanorder.tex}。
+ 效果示例如图\ref{fig:eg:optgblanorder}所示。
+
+\begin{figure}[!htb]
+\centering
+\begin{tcolorbox}[left skip=0pt,right skip=0pt,%
+width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,%
+leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
+\centering
+\subfigure[\heiti gblanorder=chineseahead] {\parbox{0.45\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 7.5cm 4.0cm,clip=true]{egphoto/opt-gblanorder-chineseahead.pdf}}}\hfill
+\subfigure[\heiti gblanorder=englishahead] {\parbox{0.45\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 7.5cm 4.0cm,clip=true]{egphoto/opt-gblanorder-englishahead.pdf}}}\\
+\subfigure[\heiti gblanorder=cn;en;ru;fr;jp;kr] {\parbox{0.5\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 7.5cm 4.0cm,clip=true]{egphoto/opt-gblanorder-udf.pdf}}}
+\end{tcolorbox}
+\caption{多语言文献表语言排序控制选项}\label{fig:eg:optgblanorder}
+\end{figure}
+
+
+ \pdfbookmark[4]{gbannote}{gbannote}
+ \item[gbannote]=true,\textbf{false}. \hfill default is false
+
+ 为控制是否在文献条目后面输出由annotation或annote域提供的注释信息而增加的选项。
+ \begin{itemize}
+ \item gbannote=false,即默认不输出。
+ \item gbannote=true,输出注释信息。
+ \end{itemize}
+
+ 测试文档见:\href{run:./example/opt-gbannote.tex}{opt-gbannote.tex}。
+ 效果示例如图\ref{fig:eg:optgbannote}所示。
+
+\begin{figure}[!htb]
+\centering
+\begin{tcolorbox}[left skip=0pt,right skip=0pt,%
+width=\linewidth,colframe=gblabelcolor,colback=white,arc=0pt,%
+leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
+\subfigure[\heiti gbannote=true] {\parbox{\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 16cm 2.8cm,clip=true]{egphoto/opt-gbannote-true.pdf}}}\\
+\subfigure[\heiti gbannote=false] {\parbox{\linewidth}{\includegraphics*[page=1,viewport=1cm 0.2cm 16cm 2.8cm,clip=true]{egphoto/opt-gbannote-false.pdf}}}
+\end{tcolorbox}
+\caption{文献的附加注释输出控制选项}\label{fig:eg:optgbannote}
+\end{figure}
+
+ \pdfbookmark[4]{gbctexset}{gbctexset}
\item[gbctexset]=\textbf{true},false. \hfill default is true
为控制参考文献标题内容的设置方式增加的选项。
@@ -467,6 +766,7 @@ perl gb7714texttobib.pl in=textfilename out=bibfilename
\lstinline[breaklines=true]!\printbibliography[title=title you want]!。
+ \pdfbookmark[4]{gbcodegbk}{gbcodegbk}
\item[gbcodegbk]=true,\textbf{false}. \hfill default is false
为兼容GBK编码的文档增加的选项。
@@ -477,37 +777,11 @@ perl gb7714texttobib.pl in=textfilename out=bibfilename
当在源文档前面增加 XeTeX 原语:\lstinline!\XeTeXinputencoding "GBK"! 后,GBK编码的文档也可以使用xelatex编译,这时应设置为false或不给出该选项。测试文件见:
\href{run:example/codeopt-gbcodegbk.tex}{codeopt-gbcodegbk.tex}。
- \item[gbstrict]=\textbf{true},false. \hfill default is true
-
- 为避免输出bib文件中多余的域信息而增加选项,目的是为了兼容一些bib文件,因为某些bst样式文件进行中英文判断需要在bib文件中增加类似language这样的域作为支撑,而其中某些域在标准的biblatex样式文件中是默认输出的。
- \begin{itemize}
- \item gbstrict=true,即默认不输出。
- \item gbstrict=false,需要还原标准样式的输出情况时使用。
- \end{itemize}
-
-
- \item[gbfieldstd]=true,\textbf{false}. \hfill default is false
-
- 为控制一些域如标题,网址,卷域的格式而增加选项。目的是使用一些标准样式的处理来增加格式多样性。
- \begin{itemize}
- \item gbfieldstd=false,即默认使用GB/T 7714-2015要求的样式。
- \item gbfieldstd=true,即还原使用标准样式的格式,比如使用引号,字体,加引导词等。当然要调整这些格式也可采用biblatex提供的更为直接的设置域格式的方式。
- \end{itemize}
-
-
- \item[gbtitlelink]=true,\textbf{false}. \hfill default is false
-
- 为设置标题的超链接增加的选项。
- \begin{itemize}
- \item gbtitlelink=false,即默认不给标题设置超链接。
- \item gbtitlelink=true,当文献存在url 域时为文献标题设置超链接。
- \end{itemize}
- 测试文件见:
- \href{run:example/opt-gbtitlelink.tex}{opt-gbtitlelink.tex}。
+ \pdfbookmark[4]{gbstyle}{gbstyle}
\item[gbstyle]=\textbf{true},false. \hfill default is true
- 为实现多种样式并存而增加的选项。
+ 为实现多种样式并存而增加的选项。仅用于gb7714-2015ms样式中。
\begin{itemize}
\item gbstyle=true,即默认全部文献使用gb7714-2015样式。
\item gbstyle=false,仅中文文献使用gb7714-2015样式,其它语言文献使用biblatex默认样式。
@@ -515,21 +789,8 @@ perl gb7714texttobib.pl in=textfilename out=bibfilename
该选项的实现原理是把所有国标格式设置局部化到每一条文献打印时,处理时首先判断gbstyle 选项及文献的语言,当满足要求则使用这些局部化格式,否则使用默认的标准样式。这种实现为一篇文档内实现两种样式提供解决思路,尽管目前非中文语言文献的著录格式是标准样式,但只要对标准样式做进一步的修改就可以形成符合某种格式规范的样式,比如像ieee,nature等的样式。因此存在中文使用GB/T 7714-2015 著录格式,而英文文献使用ieee等著录格式的可能性。测试文档见:\href{run:./example/opt-gbstyle.tex}{opt-gbstyle.tex}。
- \item[gblocal]=\textbf{gb7714-2015},chinese,english. \hfill default is gb7714-2015
- \item[gbcitelocal]=\textbf{gb7714-2015},chinese,english. \hfill default is gb7714-2015
- \item[gbbiblocal]=\textbf{gb7714-2015},chinese,english. \hfill default is gb7714-2015
-
- 为设置引用标注标签和文献表中的本地化字符串而增加的选项。其中gbcitelocal 用于控制标注中的本地化字符串,而gbbiblocal用于控制文献表中的本地化字符串,gblocal选项等价于同时设置gbcitelocal 和 gbbiblocal。
- 配合\lstinline[breaklines=true]!\DefineBibliographyStrings!命令对本地化字符串进行设置可以实现一些特殊的效果。图\ref{fig:content:fmtc}就是该选项的一个使用示例。
- \begin{itemize}
- \item gblocal=gb7714-2015,即默认区分中英文,不同语言采用不同的字符串比如中文使用“等”“和”,而英文使用“et al.”“and”。
- \item gblocal=chinese,强制设置所有的本地化字符串使用中文。
- \item gblocal=english,强制设置所有的本地化字符串使用英文。
- \end{itemize}
- 测试文件见:
- \href{run:egfigure/egcontentfmtc.tex}{egcontentfmtc.tex}。
-
+ \pdfbookmark[4]{gbfootbib}{gbfootbib}
\item[gbfootbib]=true,\textbf{false}. \hfill default is false
为实现国标样式的脚注文献表格式而增加的选项。
@@ -582,7 +843,7 @@ perl gb7714texttobib.pl in=textfilename out=bibfilename
对于表格环境中的引用无法产生脚注文献表的问题,可以将其置于小页环境中实现或者采用前述图标标题中的类似处理方式。
注意:latex核心代码参考latex.ltx,而hyperref代码参考hyperref.STY。
-
+ \pdfbookmark[4]{gbfnperpage}{gbfnperpage}
\item[gbfnperpage]=true,\textbf{false}. \hfill default is false
为脚注计数器根据页码更新而增加的选项。
@@ -594,37 +855,23 @@ perl gb7714texttobib.pl in=textfilename out=bibfilename
注意,若要让脚注计数器与其它计数器比如chapter等关联,那么采用latex的常规方法就能解决,比如使用latex内核常用的\verb|\@addtoreset|命令。
- \item[mergedate]=true,false,none.
-
- 为著者年份制是否在文献表中作者后面输出日期信息而增加了选项值none。
- \begin{itemize}
- \item mergedate=true,著者年份制文献表仅在作者后输出日期
- \item mergedate=false,著者年份制文献表在作者后和出版项中输出日期
- \item mergedate=none,著者年份制文献表仅在出版项中输出日期。该选项用于满足中科院大学的著者年份制格式要求。
- \item no mergedate,即不给出该选项,这是gb7714-2015ay默认的情况,仅在作者后输出日期且已经根据国标格式化。
- \end{itemize}
-
- \item[gblanorder]=\textbf{chineseahead},englishahead,userdefinedstr like:cn;en;ru;fr;jp;kr . \hfill default is chineseahead
+ \item[gbstrict]=\textbf{true},false. \hfill default is true
- 为著者年份制文献不同文种分集排序而增加的选项。
+ 为避免输出bib文件中多余的域信息而增加选项,目的是为了兼容一些bib文件,因为某些bst样式文件进行中英文判断需要在bib文件中增加类似language这样的域作为支撑,而其中某些域在标准的biblatex样式文件中是默认输出的。
\begin{itemize}
- \item gblanorder=chineseahead,即默认做中文文献在前英文文献在后的排序,各语言顺序为: cn;jp;kr;en;fr;ru。
- \item gblanorder=englishahead,做英文在前中文文献在后的排序,各语言顺序为: en;fr;ru;cn;jp;kr。
- \item gblanorder=自定义字符串,比如cn;en;ru;fr;jp;kr。这是一个用分号分隔的语言缩写名构成的字符串,缩写名的前后顺序代表文献表中文种分集的顺序。
+ \item gbstrict=true,即默认不输出。
+ \item gbstrict=false,需要还原标准样式的输出情况时使用。
\end{itemize}
- 测试文档见:\href{run:./example/opt-gblanorder.tex}{opt-gblanorder.tex}。
- \item[gbannote]=true,\textbf{false}. \hfill default is false
+ \item[gbfieldstd]=true,\textbf{false}. \hfill default is false
- 为控制是否在文献条目后面输出由annotation或annote域提供的注释信息而增加的选项。
+ 为控制一些域如标题,网址,卷域的格式而增加选项。目的是使用一些标准样式的处理来增加格式多样性。
\begin{itemize}
- \item gbannote=false,即默认不输出。
- \item gbannote=true,输出注释信息。
+ \item gbfieldstd=false,即默认使用GB/T 7714-2015要求的样式。
+ \item gbfieldstd=true,即还原使用标准样式的格式,比如使用引号,字体,加引导词等。当然要调整这些格式也可采用biblatex提供的更为直接的设置域格式的方式。
\end{itemize}
- 测试文档见:\href{run:./example/opt-gbannote.tex}{opt-gbannote.tex}。
-
\end{description}
@@ -857,7 +1104,7 @@ perl gb7714texttobib.pl in=textfilename out=bibfilename
\begin{table}[!htb]
\centering
\caption{著者年份制常用命令示例}\label{tab:cite:authoryear}
-\hspace{-1cm}{\parbox{\linewidth}{\includegraphics[scale=0.95]{egciteaytab.pdf}}}
+\hspace{-1cm}{\parbox{\linewidth}{\includegraphics[scale=0.95,page=2]{egciteaytab.pdf}}}
\end{table}
@@ -965,9 +1212,9 @@ perl gb7714texttobib.pl in=textfilename out=bibfilename
用法具体见例\ref{eg:biblist:fontset},结果如图\ref{fig:par:fmt}所示。
测试用例见\href{run:example/testfontinbiblio.tex}{testfontinbiblio.tex}。
-\begin{example}{文献表段落格式、字体、颜色、间距控制}{eg:biblist:fontset}
+\begin{example}{文献表段落格式、字体、颜色}{eg:biblist:fontset}
\begin{texlist}
-% 换行的控制
+% 文献项之间的间隔符控制(比如是否换行)
% 选项 block=none , space , par , nbpar , ragged
% 或\renewcommand*{\newblockpunct}{\par\nobreak}
% 字体的控制:\textit,sl,emph-楷体,\textbf,sf-黑体,\texttt-仿宋,\textsc,md,up-宋体
@@ -979,14 +1226,6 @@ perl gb7714texttobib.pl in=textfilename out=bibfilename
\renewcommand{\bibpubfont}{\itshape\color{violet}}%
% url和doi字体
\def\UrlFont{\ttfamily} %\urlstyle{sf} %\def\UrlFont{\bfseries}
-
-% 间距的控制
-\setlength{\bibitemsep}{0ex}\setlength{\bibnamesep}{0ex}\setlength{\bibinitsep}{0ex}
-% 文献表中各条文献的缩进控制
-%\setlength{\bibitemindent}{0em} % bibitemindent表示一条文献中第一行相对后面各行的缩进
-%\setlength{\bibhang}{0pt} % 著者-出版年制中 bibhang 表示的各行起始位置到页边的距离,顺序编码制中 bibhang+labelnumberwidth 表示各行起始位置到页边的距离
-
-% 标点类型的控制(全局字体能控制标点的字体)
\end{texlist}
\end{example}
@@ -1001,6 +1240,105 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
\caption{文献表段落格式示例}\label{fig:par:fmt}
\end{figure}
+文献表各条目之间的竖直间距控制如例\ref{eg:biblist:vspace}所示:
+
+\begin{example}{文献表竖直间距控制}{eg:biblist:vspace}
+\begin{texlist}
+% 竖直间距的控制
+\setlength{\bibitemsep}{0ex}
+\setlength{\bibnamesep}{0ex}
+\setlength{\bibinitsep}{0ex}
+\end{texlist}
+\end{example}
+
+文献表的水平缩进控制,两种编制方式下是不同的。对于著者-出版年制文献表,bibitemindent表示一条文献中第一行相对后面各行的缩进,bibhang 表示页边到文献各行起始位置的距离。因此要调整缩进就是要设置这两尺寸。
+
+对于顺序编码制文献表,由于存在数字标签,且其宽度与参考文献数量相关,所以这个宽度是动态变的,无能提前设定的,而是在文献表生成时给出,所以调整缩进需要在文献表输出环境中调整。由于顺序编码样式使用了两类输出环境,所以需要根据设定的选项区分处理:
+
+一是采用list环境的文献表,即设置gbalign=left、right、center时(即顺序编码标签是左对齐、右对齐和居中对齐的情况),在重定义的文献表环境中,调整bibitemindent和bibhang两个尺寸,默认情况下bibhang+labelnumberwidth的长度是页边到各行起始位置的距离。
+
+二是采用正常段落环境的文献表,即设置gbalign=gb7714-2015时(即项对齐情况,就是各条文献是自身对齐的情况),在重定义的命令中通过调整lengthid尺寸来设置每条参考文献第二行开始的缩进距离。
+调整方法见例\ref{eg:biblist:hspace}。
+
+\begin{example}{文献表水平缩进控制}{eg:biblist:hspace}
+\begin{texlist}
+% 著者-出版年制文献表缩进控制
+\setlength{\bibitemindent}{0em} % bibitemindent表示一条文献中第一行相对后面各行的缩进
+\setlength{\bibhang}{0pt} % 著者-出版年制中 bibhang 表示的各行起始位置到页边的距离
+
+% 顺序编码制文献表缩进控制
+% 调整顺序标签与文献内容的间距
+\setlength{\biblabelsep}{2mm}
+
+% 调整各条文献的缩进:
+%-1-----gbalign=left、right、center时,重定义 bibenvironment
+\defbibenvironment{bibliography}%修改对齐环境-调整缩进
+ {\list
+ {\printtext[labelnumberwidth]{%
+ \printfield{labelprefix}%
+ \printfield{labelnumber}}}
+{%
+%这里是所做的调整,通过设置\bibitemindent,\bibhang调整缩进
+\addtolength{\bibitemindent}{\labelnumberwidth}%
+\addtolength{\bibitemindent}{\biblabelsep}%
+\addtolength{\bibhang}{-\labelnumberwidth} %
+\addtolength{\bibhang}{-\biblabelsep}%
+ %
+ %以下是默认的设置
+ \setlength{\labelwidth}{\labelnumberwidth}%
+ \setlength{\labelsep}{\biblabelsep}%
+ \setlength{\leftmargin}{\bibhang}%
+ \addtolength{\leftmargin}{\labelnumberwidth}%
+ \setlength{\itemindent}{\bibitemindent}%
+ \setlength{\itemsep}{\bibitemsep}%
+ \setlength{\parsep}{\bibparsep}}%
+ \renewcommand*{\makelabel}[1]{\hss##1}}
+ {\endlist}
+ {\item}
+
+%-2-----gbalign=gb7714-2015时,重定义 \itemcmd命令
+\renewcommand{\itemcmd}{%%修改对齐环境-调整缩进
+\settowidth{\lengthid}{\mkgbnumlabel{\printfield{labelnumber}}}
+%
+%%这里是所做的调整,以下两句通过调整\lengthid来调整缩进
+\setlength{\lengthid}{0pt}
+\addtolength{\lengthid}{-\biblabelsep}
+%
+%如下是默认设置
+\addtolength{\lengthid}{\biblabelsep}
+\setlength{\lengthlw}{\textwidth}
+\addtolength{\lengthlw}{-\lengthid}
+\addvspace{\bibitemsep}%恢复\bibitemsep的作用
+%\parshape 2 0em \textwidth \lengthid \lengthlw
+\hangindent\lengthid
+\mkgbnumlabel{\printfield{labelnumber}}%
+\hspace{\biblabelsep}}
+\end{texlist}
+\end{example}
+
+文献表中有时需要调整标点为中文的全角标点,可以通过不同机制下的标点设置来调整。
+调整方式如例\ref{eg:biblist:separator}所示。有时在本地化字符串中也可以实现标点调整,比如and,in等本地化字符串。有时在域格式中也可能出现标点调整,比如title域格式。而且因为不同语言的处理,可能内部也存在标点的调整。具体情况是比较复杂的,这里不再一一列举,一些修改示例可以参考:
+\href{run:./chinese-erj.bbx}{chinese-erj.bbx},
+\href{run:./egthesis/thesis-uibe-numeric.tex}{thesis-uibe-numeric.tex}。具体的标点命令的意义详见biblatex手册。
+
+\begin{example}{文献表常见标点控制}{eg:biblist:separator}
+\begin{texlist}
+% 标点类型的控制(注意:全局字体能控制标点的字体)
+
+%文献表各条文献中各单元间隔标点设置(与异步标点机制相关的)
+\renewcommand*{\newunitpunct}{,}%\addcomma\space %,
+\renewcommand*{\finentrypunct}{\iffieldequalstr{userd}{chinese}{。}{\adddot}}
+
+%姓名格式相关的标点
+\DeclareDelimFormat{nameyeardelim}{,}%\addcomma\addspace
+%\DeclareDelimFormat[bib,biblist]{nameyeardelim}{,}%\addcomma\addspace
+\DeclareDelimFormat{multinamedelim}{,}%[bib,biblist]
+\DeclareDelimFormat{finalnamedelim}{,}
+\DeclareDelimFormat{andothersdelim}{,}
+\renewcommand*{\revsdnamepunct}{,}%
+\end{texlist}
+\end{example}
+
\subsubsection{条目著录格式控制}\label{sec:entry:fmt}
文献表输出的格式即参考文献著录样式,除了整体的段落格式外,还有条目内部的格式可以控制,条目内部的这些项称为著录项,这些著录项的格式通常可由选项控制。可用选项除了biblatex 提供的标准选项外,也包括样式包提供的选项。
@@ -1132,7 +1470,7 @@ sorting=gb7714-2015,gblanorder=chineseahead,sortlocale=zh__pinyin
文献表中文献的排序通常是由处理bib文件的后端程序实施的,比如bibtex或biber程序。通常biblatex选择biber作为后端程序来实现更灵活的排序机制。biber在处理过程中读取bib文件信息并根据biblatex宏包和文献样式在bcf文件中输出设置信息执行排序。而bibtex程序则在读取bib文件后根据bst样式进行排序,尽管可以让bibtex读入特殊格式bib文件来提供一些设置参数,但总的来说基于bibtex的文献排序是由bst样式决定的。而biber程序则是提供了一套工具,具体的排序方式是由biblatex宏包和样式文件中的设置决定的,biber根据这些设置执行特定的逻辑来实现排序。
-biblatex通过sorting选项选择排序模板来进行排序,而排序模板是可以自定义的。
+biblatex通过sorting选项选择排序模板来进行排序,而排序模板是可以自定义的。gb7714-2015及
gb7714-2015ay样式提供了gblanorder选项来选择文种的排列顺序,其本质是对排序模板中与语言相关的域进行设置,因此它是与sorting选项选择的排序模板密切相关的,biblatex提供的标准样式排序模板并不支持该选项。
而sortlocale选项则是针对字符排序选择本地化调整方案,比如选项zh\_\_pinyin就是选择针对中文字符根据拼音进行排序。本地化调整方案是由perl模块提供,中文字符排序的可用选项值详见前面的sortlocale选项说明。需要注意的是本地化字符排序调整方案设置也可以通过biber命令行选项提供,biblatex设置和biber命令行设置两种方式见例\ref{eg:sort:opts}、例\ref{eg:sort:bibercmd}。
@@ -1173,7 +1511,7 @@ biber -l zh__stroke jobname
\item[none] 不进行排序。所有的条目按照引用顺序处理。
\end{description}
-而gb7741-2015ay样式提供了4个排序模板:
+而gb7741-2015和gb7741-2015ay样式提供了4个排序模板:
\begin{description}
\item[gb7714-2015] 以语言、作者、年份、标题、升序排列
@@ -1182,7 +1520,7 @@ biber -l zh__stroke jobname
\item[gbyntd] 以语言、年份、作者、标题、降序排列
\end{description}
-在使用gb7714-2015ay样式时可以使用上述排序模板。用户也可以增加自定义模板,比如为了处理多音字的问题,用户可以手动设置key域用来对中文文献进行排序,定义如下的排序模板:
+在使用gb7714-2015和gb7714-2015ay样式时可以使用上述排序模板。用户也可以增加自定义模板,比如为了处理多音字的问题,用户可以手动设置key域用来对中文文献进行排序,定义如下的排序模板:
\begin{example}{针对多音字问题的排序模板}{eg:sort:multipinyin}
\begin{texlist}
@@ -1474,7 +1812,7 @@ leftrule=0pt,rightrule=0pt,toprule=0.4pt,bottomrule=0.4pt]
\deflength{\textparwd}{\linewidth-1cm}
\includegraphics[width=\textparwd]{egmsindfrefsec.pdf}
\end{tcolorbox}
-\caption{不同参考文献分节采用不同著录样式}\label{fig:eg:ms}
+\caption{不同参考文献分节采用不同著录样式}\label{fig:eg:mx}
\end{figure}
测试见文档\href{run:egfigure/egmsindfrefsec.tex}{egmsindfrefsec.tex}。
@@ -1818,7 +2156,7 @@ bib文件中的参考文献信息是以条目形式组织,一篇文献创建
\subsection{GB/T 7714-2015 标准示例}
-详见文档:\href{run:./stdGBT7714-2015.pdf}{GBT7714-2015std}
+详见文档:\href{run:./stdGBT7714-2015.pdf}{stdGBT7714-2015.pdf}
\subsection{多语言支持相关测试示例}
@@ -1869,7 +2207,7 @@ beamer类示例,参见: \href{run:./example/egbeamer.tex}{顺序编码制};
\href{run:./example/testallformat.tex}{testallformat.tex}。
详见文档:
-\href{run:./example/stdGBT7714-2015eg.pdf}{GBT7714-2015egstd},
+\href{run:./example/stdGBT7714-2015eg.pdf}{stdGBT7714-2015eg.pdf},
\href{run:./example/stdgbT7714-2015fmt.pdf}{stdgbT7714-2015fmt.pdf}。
@@ -2104,7 +2442,7 @@ author.title[usera].organization/instiution,date或year:pages(date/enddate/event
\begin{refentry}{}{}
会议文集的biblatex的entrytype为:proceedings。文献类型标识用C表示。
-\paragraph{其著录格式为} 采用与book类似的格式。
+\bibliofmt{其著录格式为} 采用与book类似的格式。
\end{refentry}
\subsubsection{会议文集中析出的文献/inproceedings}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/chinese-erj.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/chinese-erj.bbx
index 7a0646b562..dbb03b854a 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/chinese-erj.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/chinese-erj.bbx
@@ -75,7 +75,7 @@
%为标注和文献表中标点格式,重设and本地化字符串
%==================================================
\DefineBibliographyStrings{english}{
- and = { and },
+ and = { and},%and后面的空格在finalnamedelim已经加过了,所以这里去掉20191009
andcn = {、},
andincitecn = {和},%将标注中的分开,便于与文献表中的区分
andincite = {\&},
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx
index 7bc20e9163..2178050a45 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx
@@ -199,12 +199,28 @@
\DeclareDatamodelFields[type=field,datatype=literal]{shortbooktitle}
\DeclareDatamodelFields[type=field,datatype=literal]{lansortorder}
+ %因为biblatex更新3.14版本以后,biber对于为声明数据模型的条目类型
+ %不再默认读取,而是以空字符串作为条目类型名,自然在条目定义alias时
+ %就会出现问题,因此显式的声明一下newspaper,然后保留后面采用alias的方式
+ %而standard类型则是采用另一种方式直接在sourcemap中转换为其它类型。
+ \@ifpackagelater{biblatex}{2019/11/30}{%2019/12/01 v3.14
+ \DeclareDatamodelEntrytypes{newspaper}%
+ }{}
+
%=====================================================================
% 设置宏包选项
%=====================================================================
%
+ % 增加一个控制是否输出文献载体的选项
+ % 20191125,v1,0s,hzz
+ \newtoggle{bbx:gbmedium}
+ \DeclareBibliographyOption{gbmedium}[true]{%biblatex低版本
+ \settoggle{bbx:gbmedium}{#1}}
+ \ExecuteBibliographyOptions{gbmedium}
+
+ %
% 增加一个控制是否输出annotation域的选项,该域可以用于在文献条目后面输出一些注释信息
% 20190509,v1,0s,hzz
\newtoggle{bbx:gbannote}
@@ -606,7 +622,39 @@
% numeric样式,不使用该选项,这里给出仅为兼容性考虑
% v1.0q,20190307,hzz
%
- \DeclareBibliographyOption[string]{gblanorder}[chineseahead]{}
+ % 增加不同语言排序的切换选项
+ % gblanorder=chineseahead的顺序为cn,jp,kr,en,fr,ru
+ % gblanorder=englishahead的顺序为en,fr,ru,cn,jp,kr
+ % gblanorder=cn;en;ru;fr;jp;kr的顺序为指定的cn;en;ru;fr;jp;kr,自定义内容可以随意写以分号分隔
+ % v1.0q,20190307,hzz
+ %
+ \DeclareBibliographyOption[string]{gblanorder}[chineseahead]{%
+ \ifstrequal{#1}{chineseahead}%%中文在前的顺序
+ {\gdef\lancnorder{1}\gdef\lanjporder{2}\gdef\lankrorder{3}%
+ \gdef\lanenorder{4}\gdef\lanfrorder{5}\gdef\lanruorder{6}}%
+ {%
+ \ifstrequal{#1}{englishahead}%
+ {\execlanodeah\dealsortlan}%
+ {\execlanodudf{#1}\dealsortlan}%
+ }%
+ }
+ \ExecuteBibliographyOptions{gblanorder}
+
+ \def\execlanodeah{%中文在后的顺序
+ \gdef\lancnorder{4}
+ \gdef\lanjporder{5}
+ \gdef\lankrorder{6}
+ \gdef\lanenorder{1}
+ \gdef\lanfrorder{2}
+ \gdef\lanruorder{3}}
+
+ \newcounter{lanordernum}
+ \newcommand{\execlanodudf}[1]{%like:cn;en;ru;fr;jp;kr
+ \setcounter{lanordernum}{0}
+ \DeclareListParser{\parsinglanorder}{;}
+ \renewcommand*{\do}[1]{\stepcounter{lanordernum}\csxdef{lan##1order}{\thelanordernum}}
+ \parsinglanorder{#1}
+ }
%
% 增加本地化字符串的中英文切换选项
@@ -670,7 +718,7 @@
}
{% 针对biblatex<3.3版本的选项设置
% 增加不同语言排序的切换选项
- % numeric样式,不使用该选项,这里给出仅为兼容性考虑
+ % numeric样式, biblatex 3.4及以下版本不能使用多个stylesourcemap,所以不使用该选项
% v1.0q,20190307,hzz
%
\DeclareBibliographyOption{gblanorder}[chineseahead]{}
@@ -1237,26 +1285,32 @@
\map{%当文献给出language域时,设置文献要使用的本地化字符串的语言
\step[fieldsource=language,match=\regexp{(e|E)(n|N)(g|G)(l|L)(i|I)(s|S)(h|H)},final]
\step[fieldset=langid,fieldvalue={english}]
+ \step[fieldset=lansortorder,fieldvalue=\lanenorder]
}
\map{
\step[fieldsource=language,match=\regexp{(r|R)(u|U)(s|S)(s|S)(i|I)(a|A)(n|N)},final]
\step[fieldset=langid,fieldvalue={russian}]
+ \step[fieldset=lansortorder,fieldvalue=\lanruorder]
}
\map{%
\step[fieldsource=language,match=\regexp{(f|F)(r|R)(e|E)(n|N)(c|C)(h|H)},final]
\step[fieldset=langid,fieldvalue={french}]
+ \step[fieldset=lansortorder,fieldvalue=\lanfrorder]
}
\map{%
\step[fieldsource=language,match=\regexp{(c|C)(h|H)(i|I)(n|N)(e|E)(s|S)(e|E)},final]%中日韩语目前都用english,
\step[fieldset=langid,fieldvalue={english}]
+ \step[fieldset=lansortorder,fieldvalue=\lancnorder]
}
\map{%
\step[fieldsource=language,match=\regexp{(j|J)(a|A)(p|P)(a|A)(n|N)(e|E)(s|S)(e|E)},final]%中日韩语目前都用english,
\step[fieldset=langid,fieldvalue={english}]
+ \step[fieldset=lansortorder,fieldvalue=\lanjporder]
}
\map{%
\step[fieldsource=language,match=\regexp{(k|K)(o|O)(r|R)(e|E)(a|A)(n|N)},final]%中日韩语目前都用english,
\step[fieldset=langid,fieldvalue={english}]
+ \step[fieldset=lansortorder,fieldvalue=\lankrorder]
}
}
}
@@ -1562,6 +1616,42 @@
{\switchversion{3.0}{map}}%%当采用biblatex<=3.2版本时
{\switchversion{3.4}{map}}%%当采用3.3<=biblatex版本时
+
+%
+% 不同语言分集调整的实现方式
+%
+% 原理方法:利用样式层的动态数据修改lansortorder域来实现排序
+\def\dealsortlan{
+ \DeclareStyleSourcemap{
+ \maps[datatype=bibtex]{
+ \map[overwrite]{%当文献给出language域时,设置文献要使用的本地化字符串的语言
+ \step[fieldsource=language,match=english,final]
+ \step[fieldset=lansortorder,fieldvalue=\lanenorder]
+ }
+ \map[overwrite]{
+ \step[fieldsource=language,match=russian,final]
+ \step[fieldset=lansortorder,fieldvalue=\lanruorder]
+ }
+ \map[overwrite]{%
+ \step[fieldsource=language,match=french,final]
+ \step[fieldset=lansortorder,fieldvalue=\lanfrorder]
+ }
+ \map[overwrite]{%
+ \step[fieldsource=language,match=chinese,final]%中日韩语目前都用english,
+ \step[fieldset=lansortorder,fieldvalue=\lancnorder]
+ }
+ \map[overwrite]{%
+ \step[fieldsource=language,match=japanese,final]%中日韩语目前都用english,
+ \step[fieldset=lansortorder,fieldvalue=\lanjporder]
+ }
+ \map[overwrite]{%
+ \step[fieldsource=language,match=korean,final]%中日韩语目前都用english,
+ \step[fieldset=lansortorder,fieldvalue=\lankrorder]
+ }
+ }
+ }
+}
+
%
%驱动别名等价于驱动层映射
%
@@ -1579,7 +1669,274 @@
\DeclareBibliographyAlias{map}{manual}
\DeclareBibliographyAlias{archive}{manual}
+%=====================================================================
+% 设置排序格式
+%=====================================================================
+%
+% 排序格式,用降序,及userb域,针对biblatex3.7及以下版本
+%
+\defversion{3.7}{sort}{%这是3.4版的,3.7版略有差异,但不大,后面有注释
+ \DeclareSortingScheme{gb7714-2015}{
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort{
+ \field{lansortorder}%language
+ }
+ \sort{%[direction=descending]
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ }
+ \sort{
+ \field{sortyear}
+ \field{year}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{title}
+ }
+ \sort{
+ \field[padside=left,padwidth=4,padchar=0]{volume}%3.7版是\field{volume}
+ \literal{0000}%3.7版是\literal{0}
+ }
+ }
+ %降序的nyt
+ \DeclareSortingScheme{gbnytd}{
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort{
+ \field{lansortorder}%language
+ }
+ \sort[direction=descending]{
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ }
+ \sort{
+ \field{sortyear}
+ \field{year}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{title}
+ }
+ \sort{
+ \field[padside=left,padwidth=4,padchar=0]{volume}%3.7版是\field{volume}
+ \literal{0000}%3.7版是\literal{0}
+ }
+ }
+
+ %降序的ynt
+ \DeclareSortingScheme{gbyntd}{
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort{
+ \field{lansortorder}%language
+ }
+ \sort[direction=descending]{
+ \field{sortyear}
+ \field{year}
+ }
+ \sort{
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{title}
+ }
+ \sort{
+ \field[padside=left,padwidth=4,padchar=0]{volume}%3.7版是\field{volume}
+ \literal{0000}%3.7版是\literal{0}
+ }
+ }
+
+ %升序的ynt
+ \DeclareSortingScheme{gbynta}{
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort{
+ \field{lansortorder}%language
+ }
+ \sort{
+ \field{sortyear}
+ \field{year}
+ }
+ \sort{
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{title}
+ }
+ \sort{
+ \field[padside=left,padwidth=4,padchar=0]{volume}%3.7版是\field{volume}
+ \literal{0000}%3.7版是\literal{0}
+ }
+ }
+}
+
+
+%
+% 排序格式,用降序,及userb域,针对biblatex3.8及以上版本
+%
+\defversion{3.8}{sort}{
+ \DeclareSortingTemplate{gb7714-2015}{
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort{
+ \field{lansortorder}%language
+ }
+ \sort{%[direction=descending]
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ }
+ \sort{
+ \field{sortyear}
+ \field{year}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{title}
+ }
+ \sort{
+ \field{volume}
+ \literal{0}
+ }
+ }
+
+ %降序的nyt
+ \DeclareSortingTemplate{gbnytd}{
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort{
+ \field{lansortorder}%language
+ }
+ \sort[direction=descending]{%
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ }
+ \sort{
+ \field{sortyear}
+ \field{year}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{title}
+ }
+ \sort{
+ \field{volume}
+ \literal{0}
+ }
+ }
+
+ %降序的ynt
+ \DeclareSortingTemplate{gbyntd}{
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort{
+ \field{lansortorder}%language
+ }
+ \sort[direction=descending]{
+ \field{sortyear}
+ \field{year}
+ }
+ \sort{%
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{title}
+ }
+ \sort{
+ \field{volume}
+ \literal{0}
+ }
+ }
+
+ %升序的ynt
+ \DeclareSortingTemplate{gbynta}{
+ \sort{
+ \field{presort}
+ }
+ \sort[final]{
+ \field{sortkey}
+ }
+ \sort{
+ \field{lansortorder}%language
+ }
+ \sort{%[direction=ascending]
+ \field{sortyear}
+ \field{year}
+ }
+ \sort{%
+ \field{sortname}
+ \field{author}
+ \field{editor}
+ \field{translator}
+ }
+ \sort{
+ \field{sorttitle}
+ \field{title}
+ }
+ \sort{
+ \field{volume}
+ \literal{0}
+ }
+ }
+}
+
+
+\ifboolexpr{
+test {\iftoggle{iftlfive}}
+or
+test {\iftoggle{iftlsix}}
+or
+test {\iftoggle{iftlseven}}%biblatex<=3.7
+}{\switchversion{3.7}{sort}}{\switchversion{3.8}{sort}}%3.8<=biblatex
%=====================================================================
% 参考文献表环境
@@ -1708,7 +2065,8 @@
% 而[]中间的内容,从4.6.2节的例子看也是可以分割的,因此内部的nobreak也可以去掉
%
\DeclareFieldFormat{gbtypeflag}{%
-\iftoggle{bbx:url}%
+\iftoggle{bbx:gbmedium}%
+{\iftoggle{bbx:url}%
{\iffieldundef{url}%当存在url时,增加一个OL标识符
{\nobreak\printtext{[}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}}%
{\nobreak\printtext{[}\nobreak#1\nobreak\printtext{\texttt{/}OL]}}%
@@ -1716,31 +2074,36 @@
{\ifentrytype{online}%
{\nobreak\printtext{[}\nobreak#1\nobreak\printtext{\texttt{/}OL]}}%
{\nobreak\printtext{[}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}}%
- }%
+ }}%
+ {\nobreak\printtext{[}\nobreak#1\nobreak\printtext{]}}%
}
%
% 新增用于报纸的文献类型标识符的格式
%
\DeclareFieldFormat{gbtypeflagn}{%用于报纸newspaper
-\iftoggle{bbx:url}%
+\iftoggle{bbx:gbmedium}%
+{\iftoggle{bbx:url}%
{\iffieldundef{url}%当存在url时,增加一个OL标识符
{\nobreak\printtext{[}\nobreak N\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
{\nobreak\printtext{[}\nobreak N\printtext{\texttt{/}OL]}\nobreak}%
}%
{\nobreak\printtext{[}\nobreak N\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
+}{\nobreak\printtext{[}\nobreak N\printtext{]}\nobreak}%
}
%
% 新增用于标准的文献类型标识符的格式
%
\DeclareFieldFormat{gbtypeflags}{%用于标准standard
-\iftoggle{bbx:url}%
+\iftoggle{bbx:gbmedium}%
+{\iftoggle{bbx:url}%
{\iffieldundef{url}%当存在url时,增加一个OL标识符
{\nobreak\printtext{[}\nobreak S\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
{\nobreak\printtext{[}\nobreak S\printtext{\texttt{/}OL]}\nobreak}%
}%
{\nobreak\printtext{[}\nobreak S\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
+}{\nobreak\printtext{[}\nobreak S\printtext{]}\nobreak}%
}
%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx
index e0609f60a1..d6d9a84174 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx
@@ -196,12 +196,26 @@
\DeclareDatamodelFields[type=field,datatype=literal]{shortbooktitle}
\DeclareDatamodelFields[type=field,datatype=literal]{lansortorder}
-
+ %因为biblatex更新3.14版本以后,biber对于为声明数据模型的条目类型
+ %不再默认读取,而是以空字符串作为条目类型名,自然在条目定义alias时
+ %就会出现问题,因此显式的声明一下newspaper,然后保留后面采用alias的方式
+ %而standard类型则是采用另一种方式直接在sourcemap中转换为其它类型。
+ \@ifpackagelater{biblatex}{2019/11/30}{%2019/12/01 v3.14
+ \DeclareDatamodelEntrytypes{newspaper}%
+ }{}
%=====================================================================
% 设置宏包选项
%=====================================================================
%
+ % 增加一个控制是否输出文献载体的选项
+ % 20191125,v1,0s,hzz
+ \newtoggle{bbx:gbmedium}
+ \DeclareBibliographyOption{gbmedium}[true]{%biblatex低版本
+ \settoggle{bbx:gbmedium}{#1}}
+ \ExecuteBibliographyOptions{gbmedium}
+
+ %
% 增加一个控制是否输出annotation域的选项,该域可以用于在文献条目后面输出一些注释信息
% 20190509,v1,0s,hzz
\newtoggle{bbx:gbannote}
@@ -1805,6 +1819,7 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
\setlength{\bibhang}{1em}
\newlength{\bibitemindent}
\setlength{\bibitemindent}{-\bibhang}
+\setlength{\bibitemsep}{4.5pt}
\defbibenvironment{bibliography}
{\list
{}
@@ -1841,7 +1856,8 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
% 而[]中间的内容,从4.6.2节的例子看也是可以分割的,因此内部的nobreak也可以去掉
%
\DeclareFieldFormat{gbtypeflag}{%
-\iftoggle{bbx:url}%
+\iftoggle{bbx:gbmedium}%
+{\iftoggle{bbx:url}%
{\iffieldundef{url}%当存在url时,增加一个OL标识符
{\nobreak\printtext{[}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}}%
{\nobreak\printtext{[}\nobreak#1\nobreak\printtext{\texttt{/}OL]}}%
@@ -1849,33 +1865,36 @@ test {\iftoggle{iftlseven}}%biblatex<=3.7
{\ifentrytype{online}%
{\nobreak\printtext{[}\nobreak#1\nobreak\printtext{\texttt{/}OL]}}%
{\nobreak\printtext{[}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}}%
- }%
+ }}%
+ {\nobreak\printtext{[}\nobreak#1\nobreak\printtext{]}}%
}
-
%
% 新增用于报纸的文献类型标识符的格式
%
\DeclareFieldFormat{gbtypeflagn}{%用于报纸newspaper
-\iftoggle{bbx:url}%
+\iftoggle{bbx:gbmedium}%
+{\iftoggle{bbx:url}%
{\iffieldundef{url}%当存在url时,增加一个OL标识符
{\nobreak\printtext{[}\nobreak N\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
{\nobreak\printtext{[}\nobreak N\printtext{\texttt{/}OL]}\nobreak}%
}%
{\nobreak\printtext{[}\nobreak N\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
+}{\nobreak\printtext{[}\nobreak N\printtext{]}\nobreak}%
}
-
%
% 新增用于标准的文献类型标识符的格式
%
\DeclareFieldFormat{gbtypeflags}{%用于标准standard
-\iftoggle{bbx:url}%
+\iftoggle{bbx:gbmedium}%
+{\iftoggle{bbx:url}%
{\iffieldundef{url}%当存在url时,增加一个OL标识符
{\nobreak\printtext{[}\nobreak S\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
{\nobreak\printtext{[}\nobreak S\printtext{\texttt{/}OL]}\nobreak}%
}%
{\nobreak\printtext{[}\nobreak S\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
+}{\nobreak\printtext{[}\nobreak S\printtext{]}\nobreak}%
}
%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx
index 13d158fd93..0efdddd18d 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx
@@ -87,12 +87,26 @@
\DeclareDatamodelFields[type=field,datatype=literal]{shortbooktitle}
\DeclareDatamodelFields[type=field,datatype=literal]{lansortorder}
-
+ %因为biblatex更新3.14版本以后,biber对于为声明数据模型的条目类型
+ %不再默认读取,而是以空字符串作为条目类型名,自然在条目定义alias时
+ %就会出现问题,因此显式的声明一下newspaper,然后保留后面采用alias的方式
+ %而standard类型则是采用另一种方式直接在sourcemap中转换为其它类型。
+ \@ifpackagelater{biblatex}{2019/11/30}{%2019/12/01 v3.14
+ \DeclareDatamodelEntrytypes{newspaper}%
+ }{}
%=====================================================================
% 设置宏包选项
%=====================================================================
%
+ % 增加一个控制是否输出文献载体的选项
+ % 20191125,v1,0s,hzz
+ \newtoggle{bbx:gbmedium}
+ \DeclareBibliographyOption{gbmedium}[true]{%biblatex低版本
+ \settoggle{bbx:gbmedium}{#1}}
+ \ExecuteBibliographyOptions{gbmedium}
+
+ %
% 增加一个控制是否输出annotation域的选项,该域可以用于在文献条目后面输出一些注释信息
% 20190509,v1,0s,hzz
\newtoggle{bbx:gbannote}
@@ -1302,7 +1316,8 @@
% 而[]中间的内容,从4.6.2节的例子看也是可以分割的,因此内部的nobreak也可以去掉
%
\DeclareFieldFormat{gbtypeflag}{%
-\iftoggle{bbx:url}%
+\iftoggle{bbx:gbmedium}%
+{\iftoggle{bbx:url}%
{\iffieldundef{url}%当存在url时,增加一个OL标识符
{\nobreak\printtext{[}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}}%
{\nobreak\printtext{[}\nobreak#1\nobreak\printtext{\texttt{/}OL]}}%
@@ -1310,31 +1325,36 @@
{\ifentrytype{online}%
{\nobreak\printtext{[}\nobreak#1\nobreak\printtext{\texttt{/}OL]}}%
{\nobreak\printtext{[}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}}%
- }%
+ }}%
+ {\nobreak\printtext{[}\nobreak#1\nobreak\printtext{]}}%
}
%
% 新增用于报纸的文献类型标识符的格式
%
\DeclareFieldFormat{gbtypeflagn}{%用于报纸newspaper
-\iftoggle{bbx:url}%
+\iftoggle{bbx:gbmedium}%
+{\iftoggle{bbx:url}%
{\iffieldundef{url}%当存在url时,增加一个OL标识符
{\nobreak\printtext{[}\nobreak N\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
{\nobreak\printtext{[}\nobreak N\printtext{\texttt{/}OL]}\nobreak}%
}%
{\nobreak\printtext{[}\nobreak N\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
+}{\nobreak\printtext{[}\nobreak N\printtext{]}\nobreak}%
}
%
% 新增用于标准的文献类型标识符的格式
%
\DeclareFieldFormat{gbtypeflags}{%用于标准standard
-\iftoggle{bbx:url}%
+\iftoggle{bbx:gbmedium}%
+{\iftoggle{bbx:url}%
{\iffieldundef{url}%当存在url时,增加一个OL标识符
{\nobreak\printtext{[}\nobreak S\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
{\nobreak\printtext{[}\nobreak S\printtext{\texttt{/}OL]}\nobreak}%
}%
{\nobreak\printtext{[}\nobreak S\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
+}{\nobreak\printtext{[}\nobreak S\printtext{]}\nobreak}%
}
%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx
index d92ac1daf9..81cf2b95b8 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx
@@ -27,6 +27,13 @@
% 功能函数
%=====================================================================
%
+ % 增加一个控制是否输出文献载体的选项
+ % 20191125,v1,0s,hzz
+ \newtoggle{bbx:gbmedium}
+ \DeclareBibliographyOption{gbmedium}[true]{%biblatex低版本
+ \settoggle{bbx:gbmedium}{#1}}
+ \ExecuteBibliographyOptions{gbmedium}
+ %
% 增加一个控制是否输出annotation域的选项,该域可以用于在文献条目后面输出一些注释信息
% 20190509,v1,0s,hzz
\newtoggle{bbx:gbannote}
@@ -110,7 +117,13 @@
\DeclareDatamodelFields[type=field,datatype=integer]{aysections}
\DeclareDatamodelFields[type=field,datatype=literal]{styleaysection}
-
+ %因为biblatex更新3.14版本以后,biber对于为声明数据模型的条目类型
+ %不再默认读取,而是以空字符串作为条目类型名,自然在条目定义alias时
+ %就会出现问题,因此显式的声明一下newspaper,然后保留后面采用alias的方式
+ %而standard类型则是采用另一种方式直接在sourcemap中转换为其它类型。
+ \@ifpackagelater{biblatex}{2019/11/30}{%2019/12/01 v3.14
+ \DeclareDatamodelEntrytypes{newspaper}%
+ }{}
@@ -1591,7 +1604,8 @@
% 而[]中间的内容,从4.6.2节的例子看也是可以分割的,因此内部的nobreak也可以去掉
%
\DeclareFieldFormat{gbtypeflag}{%
-\iftoggle{bbx:url}%
+\iftoggle{bbx:gbmedium}%
+{\iftoggle{bbx:url}%
{\iffieldundef{url}%当存在url时,增加一个OL标识符
{\nobreak\printtext{[}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}}%
{\nobreak\printtext{[}\nobreak#1\nobreak\printtext{\texttt{/}OL]}}%
@@ -1599,31 +1613,36 @@
{\ifentrytype{online}%
{\nobreak\printtext{[}\nobreak#1\nobreak\printtext{\texttt{/}OL]}}%
{\nobreak\printtext{[}\nobreak#1\nobreak\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}}%
- }%
+ }}%
+ {\nobreak\printtext{[}\nobreak#1\nobreak\printtext{]}}%
}
%
% 新增用于报纸的文献类型标识符的格式
%
\DeclareFieldFormat{gbtypeflagn}{%用于报纸newspaper
-\iftoggle{bbx:url}%
+\iftoggle{bbx:gbmedium}%
+{\iftoggle{bbx:url}%
{\iffieldundef{url}%当存在url时,增加一个OL标识符
{\nobreak\printtext{[}\nobreak N\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
{\nobreak\printtext{[}\nobreak N\printtext{\texttt{/}OL]}\nobreak}%
}%
{\nobreak\printtext{[}\nobreak N\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
+}{\nobreak\printtext{[}\nobreak N\printtext{]}\nobreak}%
}
%
% 新增用于标准的文献类型标识符的格式
%
\DeclareFieldFormat{gbtypeflags}{%用于标准standard
-\iftoggle{bbx:url}%
+\iftoggle{bbx:gbmedium}%
+{\iftoggle{bbx:url}%
{\iffieldundef{url}%当存在url时,增加一个OL标识符
{\nobreak\printtext{[}\nobreak S\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
{\nobreak\printtext{[}\nobreak S\printtext{\texttt{/}OL]}\nobreak}%
}%
{\nobreak\printtext{[}\nobreak S\printtext{\iffieldundef{medium}{}{\texttt{/}\thefield{medium}}]}\nobreak}%
+}{\nobreak\printtext{[}\nobreak S\printtext{]}\nobreak}%
}
%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gbT7714-2015.tex b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gbT7714-2015.tex
index 06a16f4e33..b495abd4d8 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gbT7714-2015.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gbT7714-2015.tex
@@ -6,7 +6,9 @@
\includepdf[pages=-]{egfigure/tgbcitation.pdf}
-\includepdf[pages=-]{egfigure/tgbcitationay.pdf}
+\IfFileExists{egfigure/tngbcitationay.pdf}
+{\includepdf[pages=-]{egfigure/tngbcitationay.pdf}}
+{\includepdf[pages=-]{egfigure/tngbcitationaynew.pdf}}
\includepdf[pages=-]{egfigure/tgbbiblio.pdf}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gbT7714-2015ms.tex b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gbT7714-2015ms.tex
index 2a53a7ed9f..ffc76f6e26 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gbT7714-2015ms.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gbT7714-2015ms.tex
@@ -6,7 +6,9 @@
\includepdf[pages=-]{egfigure/tgbcitationms.pdf}
-\includepdf[pages=-]{egfigure/tgbcitationay.pdf}
+\IfFileExists{egfigure/tngbcitationay.pdf}
+{\includepdf[pages=-]{egfigure/tngbcitationay.pdf}}
+{\includepdf[pages=-]{egfigure/tngbcitationaynew.pdf}}
\includepdf[pages=-]{egfigure/tgbbiblioms.pdf}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gbT7714-2015thesis.tex b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gbT7714-2015thesis.tex
index 7c12dc47a9..80ede4a301 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gbT7714-2015thesis.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gbT7714-2015thesis.tex
@@ -44,8 +44,8 @@
\includepdf[pages=-,addtotoc={1,section,1,UCAS-m,eg:UCASm}]{egthesis/thesis-ucas-m.pdf}
-%\addcontentsline{toc}{section}{UCAS}
-\includepdf[pages=-,addtotoc={1,section,1,UCAS-x,eg:UCASx}]{egthesis/thesis-ucas-x.pdf}
+%\addcontentsline{toc}{section}{UIBE}
+\includepdf[pages=-,addtotoc={1,section,1,UIBE,eg:UIBE}]{egthesis/thesis-uibe-numeric.pdf}
%\addcontentsline{toc}{section}{USTC}
diff --git a/macros/latex/contrib/ltxindex/README b/macros/latex/contrib/ltxindex/README
deleted file mode 100644
index 61df56b47f..0000000000
--- a/macros/latex/contrib/ltxindex/README
+++ /dev/null
@@ -1,15 +0,0 @@
-ltxindex is a simple package to make indices for LATEX documents with
-GNU's texindex. Though missing some important functionality, texindex
-is much simpler to use; and if you don't need anything fancy, such an
-index may be useful.
-
-This package only implements the standard indices used by texinfo, and
-only defines the concept index (cp) by default. You can't define custom
-indices (yet), and you must set up the fn, ky, pg, tp, and vr indices on
-your own. Read the manual for more information on usage, plans, and
-limitations.
-
-Good luck and happy TeXing,
-
-Luis.
-
diff --git a/macros/latex/contrib/ltxindex/copying.txt b/macros/latex/contrib/ltxindex/copying.txt
deleted file mode 100644
index 60549be514..0000000000
--- a/macros/latex/contrib/ltxindex/copying.txt
+++ /dev/null
@@ -1,340 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/macros/latex/contrib/ltxindex/ltxindex.dtx b/macros/latex/contrib/ltxindex/ltxindex.dtx
deleted file mode 100644
index b82a959c3c..0000000000
--- a/macros/latex/contrib/ltxindex/ltxindex.dtx
+++ /dev/null
@@ -1,499 +0,0 @@
-%\iffalse meta-comment
-% ltxindex.dtx generated using /usr/local/bin/makedtx version 0.9b (c) Nicola Talbot
-% Command line args:
-% -src "ltxindex\.sty=>ltxindex.sty"
-% -doc "README"
-% ltxindex
-% Created on 2006/11/26 15:10
-%
-% ltxindex.sty, a LaTeX package to typeset indices with GNU's Texindex
-% Copyright (C) 2004 by Richard Stallman, Robert J. Chassell,
-% Michael Clarkson, \& Luis Rivera.
-%
-% This program is free software; you can redistribute it and/or modify
-% it under the terms of the GNU General Public License as published by
-% the Free Software Foundation; either version 2, or (at your option)
-% any later version.
-%
-% This program is distributed in the hope that it will be useful,
-% but WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-% GNU General Public License for more details.
-%
-% You should have received a copy of the GNU General Public License
-% along with this program; if not, write to the Free Software
-% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-%
-% This work has the LPPL maintenance status "unmaintained".
-%
-%\fi
-%\iffalse
-%<*driver>
-\ProvidesFile{ltxindex.dtx}
-%</driver>
-%<ltxindex>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
-%<ltxindex>\ProvidesPackage{ltxindex}
- [2008/06/06 v0.1c ltxindex: LaTeX indexing, texindex style]
-%<*batchfile>
-\begingroup
-\input docstrip
-\keepsilent
-\usedir{tex/latex/contrib/ltxindex}
-\preamble
-
- ltxindex.sty, a LaTeX package to typeset indices with GNU's Texindex
- Copyright (C) 2004 by Richard Stallman, Robert J. Chassell,
- Michael Clarkson, \& Luis Rivera.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- WARNING!!! This code is fairly experimental.
-
-\endpreamble
-
-\askforoverwritefalse
-
-\IfFileExists{ltxindex.sty}{}{%
-\generate{\file{ltxindex.sty}{\usepreamble\defaultpreamble
-\usepostamble\defaultpostamble\from{ltxindex.dtx}{ltxindex,package}}
-}}
-\endgroup
-%</batchfile>
-%\fi
-%
-%\iffalse
-%<*driver>
-\documentclass{ltxdoc}
-\newcommand{\texindex}{\texttt{texindex}}
-\newcommand{\ltxindex}{\textsf{ltxindex}}
-\OnlyDescription
-\begin{document}
- \DocInput{ltxindex.dtx}
-\end{document}
-%</driver>
-%\fi
-%
-% \CheckSum{548}
-%
-% \changes{0.1}{2004/06/30}{First Release.}
-% \changes{0.1b}{2007/12/14}{Made a first dtx file.}
-% \changes{0.1c}{2008/06/06}{Single file release, nomulticol option, dropped support.}
-%
-% \GetFileInfo{ltxindex.dtx}
-%
-% \title{\ltxindex: Making \LaTeX\ indexes with GNU's \texindex%
-% \thanks{This file documents version~\fileversion, as of~\filedate.
-% This package has been orphaned: please adopt a package!}}
-% \author{Luis Rivera}
-% \date{June 6, 2008}
-% \maketitle
-%
-% \ltxindex\ is a simple package to make indices for \LaTeX\
-% documents with \texindex\ instead of |makeindex|.
-% Though missing some important functionality, \texindex\ seems much
-% simpler to use;
-% and if you don't need anything fancy, such an index may be useful.
-%
-% This package only implements the standard indices used by
-% texinfo, and only defines the concept index (cp) by default.
-% You can't define custom indices (yet), and you must set up the fn, ky, pg,
-% tp, and vr indices on your own.
-%
-% \section{Usage}
-%
-% Call this package in the preamble: |\usepackage{ltxindex}|
-%
-% The package implements the following commands,
-%
-% |\cpindex|\marg{concept} indexes \emph{concept}, without typesetting it in the
-% main text.
-%
-% |\cpsubindex|\marg{concept}\marg{subconcept} indexes \emph{subconcept} under
-% \emph{concept}, without typesetting it in the main text.
-%
-% |\indexcp|\marg{concept} typesets \emph{concept} and puts it in the |cp| index.
-%
-% |\subindex|\marg{subconcept}\marg{concept} typesets \emph{subconcept} in the main
-% document and puts it under \emph{concept} in the |cp| index.
-%
-% You may set up fnindex, kyindex, pgindex, tpindex, and vrindex with the
-% command |\newindex|\marg{??}, where |??| is either fn, ky, pg, tp, or vr.
-% This way, you enable commands |\??index|\marg{word}, which allows you to
-% index \emph{word} in the appropriate index.
-% Texinfo's shortcuts |\cindex|, |\findex|, |\kindex|, |\pindex|, |\tindex|, and
-% |\vindex|, are also available.
-%
-% |\synindex|\marg{foo}\marg{bar} subsumes index \emph{foo} under index \emph{bar}.
-%
-% |\syncodeindex|\marg{foo}\marg{bar} is similar, but typesets all entries for
-% index \emph{foo} in boldface.
-%
-% As in Texinfo, all these commands produce auxiliary files |<filename>.??|
-%
-% Once you're done with the main body of your document, you ask
-% \LaTeX\ to typeset the index with the command |\printindex|\marg{??}, wherever
-% you like. Make sure you precede it with some informative heading,
-% like |\section*{Concept Index}|. In short:
-%
-% \begin{description}
-% \item{Run} \LaTeX\ on filename to produce the |.aux| and |.??| files
-% \item{Run} \texindex\ on every unsorted index file (|<filename>.??|) you created
-% for your document (|<filename>.cp|, by default). \texindex\ will
-% create a sorted index file for your index file (|<filename>.cps|, by
-% default).
-% \item{ReRun} \LaTeX\ to incorporate the indices.
-% \item{ReRun} \texindex\ on every index file (to ensure right cross-references).
-% \item{ReRun} \LaTeX\ to put everything in order.
-% \end{description}
-%
-% You may avoid all this work in drafting and proofreading:
-% the package prints ``(Index is empty)'' or ``(Index is nonexistent)''
-% in the appropriate places if the indices are unsorted or
-% undefined.
-%
-% \section{Acknowledgements}
-%
-% As you may see by simple inspection of the code, I just ``borrowed''
-% the code from the old |latexinfo.sty|, available on CTAN, and patched
-% it up to run as a \LaTeX\ package.
-% Thus, all credits should go to Richard Stallman, Robert J. Chassell,
-% \& Michael Clarkson.
-%
-% \section{To Do's and Warnings}
-%
-% \begin{itemize}
-% \item Two column output is somewhat clumsy; you may have to edit the
-% |.??s| file manually to add |\columnbreak|'s in the appropriate places.
-% \item Devise a more general mechanism to create arbitrary indices.
-% \item Write some macros to modify the appearance of the index (by means
-% of some commands or package options).
-% \item PDF is not supported at all.
-% \item Documentation is wanting.
-% \end{itemize}
-%
-% There is something odd about the license of this package: it may
-% be fixed by adding an independent implementation of multicolumns.
-%
-% This package is distributed along the lines of the GNU General Public
-% License version 2.0, in compliance with the original license for
-% |latexinfo.sty|.
-%
-% There are additional conditions imposed on the use ---not the
-% distribution--- of the package, due to the usage of the \textsf{multicol}
-% package, by Frank Mittelbach.
-% Even though \textsf{multicol} is a required file for any \LaTeX\
-% installation, you are \emph{morally} required to pay a license fee if you
-% use it as a part of a proprietary or commercially distributed product
-% based on or using \textsf{multicol}. The \ltxindex\ package is distributed
-% `gratis', so as long as you distribute or use this package for a
-% non-commercial or non-proprietary end product (document or software),
-% you don't acquire this moral obligation.
-% Otherwise, you are morally required to pay that fee, because of the usage
-% of \textsf{multicol}.
-% See the file |multicol.dtx| for details.
-%
-% Confused? Well, just use the package option |nomulticol|.
-% The output will be ugly, but free from moral trouble.
-%
-%\StopEventually{}
-%
-%\section{The Code}
-%
-% This package may require the package \textsf{multicol} to typeset the index
-% in a two column environment. This should be the default behavior, save
-% the case documented above.
-% \begin{macrocode}
-%<*ltxindex>
-\RequirePackage{multicol}
-\newenvironment{ltxmulticols}{\begin{multicols}{2}}{\end{multicols}}
-\DeclareOption{nomulticol}{\renewenvironment{ltxmulticols}{}{}}
-% \end{macrocode}
-% Index generation facilities
-%
-% Define the texinfo user-accessible indexing commands for backwards
-% compatability.
-%
-% \begin{macrocode}
-\def\cindex{\cpindex}
-\def\pindex{\pgindex}
-\def\vindex{\vrindex}
-\def\tindex{\tpindex}
-\def\kindex{\kyindex}
-\def\findex{\fnindex}
-% \end{macrocode}
-%
-% |\newindex{foo}| defines an index named foo.
-% It automatically defines |\fooindex| such that
-% |\fooindex ...rest of line...| puts an entry in the index foo.
-% It also defines |\fooindfile| to be the number of the output channel for
-% the file that accumulates this index. The file's extension is foo.
-% The name of an index should be no more than 2 characters long
-% for the sake of vms.
-% \begin{macrocode}
-\def\newindex#1{\csname newindex#1\endcsname}
-% \end{macrocode}
-%
-% Yes I know this could be done shorter, but safer??
-%
-% \begin{macrocode}
-\def\newindexcp{\if@filesw \newwrite\@cpindexfile
- \immediate\openout\@cpindexfile=\jobname.cp
- \def\cpindex{\@bsphack\begingroup
- \def\protect####1{\string####1\space}\@sanitize
- \@wrindex\@cpindexfile}%
- \def\cpsubindex{\@bsphack\begingroup
- \def\protect####1{\string####1\space}\@sanitize
- \@wrsubindex\@cpindexfile}%
- \def\cpindexbold{\@bsphack\begingroup
- \def\protect####1{\string####1\space}\@sanitize
- \@wrindexbold\@cpindexfile}
- \typeout{Writing concepts index file \jobname.cp }%
- \fi}
-
-\def\cpindex{\@bsphack\begingroup \@sanitize\@index}
-\def\cpsubindex{\@bsphack\begingroup \@sanitize\@index}
-\def\cpindexbold{\@bsphack\begingroup \@sanitize\@index}
-
-\def\@wrindex#1#2{\let\thepage\relax
- \xdef\@gtempa{\write#1{\string \entry{#2}{\thepage}{#2}}}\endgroup
- \def\@tempa{}\def\thing{#2}\ifx\thing\@tempa\relax\else\@gtempa\fi
- \if@nobreak \ifvmode\nobreak\fi\fi\@esphack}
-
-\def\@wrindexbold#1#2{\let\thepage\relax \let\bf\relax
- \xdef\@gtempa{\write#1{\string \entry{#2}{\b{\thepage}}{#2}}}\endgroup
- \def\@tempa{}\def\thing{#2}\ifx\thing\@tempa\relax\else\@gtempa\fi
- \if@nobreak \ifvmode\nobreak\fi\fi\@esphack}
-
-\def\@wrsubindex#1#2#3{\let\thepage\relax
- \xdef\@gtempa{\write#1{\string \entry{#2 #3}{\thepage}{#2}{#3}}}\endgroup%
- \@gtempa
- \if@nobreak \ifvmode\nobreak\fi\fi\@esphack}
-
-\def\@index#1{\endgroup\@esphack}
-
-\def\pgindex{\@bsphack\begingroup \@sanitize\@index}
-\def\newindexpg{\if@filesw \newwrite\@pgindexfile
- \immediate\openout\@pgindexfile=\jobname.pg
- \def\pgindex{\@bsphack\begingroup
- \def\protect####1{\string####1\space}\@sanitize
- \@wrindex\@pgindexfile}
- \def\pgindexbold{\@bsphack\begingroup
- \def\protect####1{\string####1\space}\@sanitize
- \@wrindexbold\@pgindexfile}
- \typeout{Writing index file \jobname.pg }\fi}
-
-\def\pgindex{\@bsphack\begingroup \@sanitize\@index}
-\def\pgindexbold{\@bsphack\begingroup \@sanitize\@index}
-
-\def\newindexvr{\if@filesw \newwrite\@vrindexfile
- \immediate\openout\@vrindexfile=\jobname.vr
- \def\vrindex{\@bsphack\begingroup
- \def\protect####1{\string####1\space}\@sanitize
- \@wrindex\@vrindexfile}
- \def\vrindexbold{\@bsphack\begingroup
- \def\protect####1{\string####1\space}\@sanitize
- \@wrindexbold\@vrindexfile}
- \typeout{Writing variable index file \jobname.vr }\fi}
-
-\def\vrindex{\@bsphack\begingroup \@sanitize\@index}
-\def\vrindexbold{\@bsphack\begingroup \@sanitize\@index}
-
-\def\newindextp{\if@filesw \newwrite\@tpindexfile
- \immediate\openout\@tpindexfile=\jobname.tp
- \def\tpindex{\@bsphack\begingroup
- \def\protect####1{\string####1\space}\@sanitize
- \@wrindex\@tpindexfile}
- \def\tpindexbold{\@bsphack\begingroup
- \def\protect####1{\string####1\space}\@sanitize
- \@wrindexbold\@tpindexfile}
- \typeout{Writing datatype index file \jobname.tp }\fi}
-
-\def\tpindex{\@bsphack\begingroup \@sanitize\@index}
-\def\tpindexbold{\@bsphack\begingroup \@sanitize\@index}
-
-\def\newindexky{\if@filesw
- \newwrite\@kyindexfile
- \immediate\openout\@kyindexfile=\jobname.ky
- \def\kyindex{\@bsphack\begingroup
- \def\protect####1{\string####1\space}\@sanitize
- \@wrindex\@kyindexfile}\typeout{Writing key index file \jobname.ky}
- \fi}
-
-\def\kyindex{\@bsphack\begingroup \@sanitize\@index}
-\def\kyindexbold{\@bsphack\begingroup \@sanitize\@index}
-
-\def\newindexfn{\if@filesw \newwrite\@fnindexfile
- \immediate\openout\@fnindexfile=\jobname.fn
- \def\fnindex{\@bsphack\begingroup
- \def\protect####1{\string####1\space}\@sanitize
- \@wrindex\@fnindexfile}
- \def\fnindexbold{\@bsphack\begingroup
- \def\protect####1{\string####1\space}\@sanitize
- \@wrindexbold\@fnindexfile}
- \typeout{Writing function index file \jobname.fn }\fi}
-
-\def\fnindex{\@bsphack\begingroup \@sanitize\@index}
-\def\fnindexbold{\@bsphack\begingroup \@sanitize\@index}
-% \end{macrocode}
-%
-% |\synindex{foo}{bar}| makes index foo feed into index bar.
-%
-% \begin{macrocode}
-\def\synindex#1#2{\expandafter\xdef \csname @#1index\endcsname{%
- \noexpand\csname @#2index\endcsname}%
-\expandafter \chardef \csname @#1indexfile\endcsname=\csname @#2indexfile\endcsname}
-% \end{macrocode}
-%
-% |\syncodeindex{foo}{bar}| similar, but put all entries made for index foo
-% inside bold.
-%
-% \begin{macrocode}
-\def\syncodeindex#1#2{%
-\expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
-\expandafter\let\csname#1indfile\endcsname=\synindexfoo
-\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
-\csname#1boldindex\endcsname{#2}}%
-}
-% \end{macrocode}
-%
-% Define the macros used in formatting output of the sorted index material.
-% This is what you call to cause a particular index to get printed.
-% Write |\section*{Function Index}| to |\printindex{fn}|
-%
-% \begin{macrocode}
-\newskip\secondaryindent
-\secondaryindent=0.5cm
-% \end{macrocode}
-%
-% In case index foo is undefined, or sorted index |foo.??s| is empty...
-%
-% \begin{macrocode}
-\ifx\putwordIndexNonexistent\undefined
- \gdef\putwordIndexNonexistent{(Index is nonexistent)}
-\fi
-\ifx\putwordIndexIsEmpty\undefined
- \gdef\putwordIndexIsEmpty{(Index is empty)}
-\fi
-% \end{macrocode}
-%
-% The command |\printindex| typesets the index in the appropriate place.
-% This is the piece of code where the \textsf{multicol} package is used,
-% and some replacement is needed.
-%
-% \begin{macrocode}
-\def\printindex#1{
-\def\indexbackslash{\rawbackslashxx}
-\tolerance=9500 \advance\baselineskip -1pt
-\openin 1 \jobname.#1s
-\ifeof 1
- \putwordIndexNonexistent
- \else
- \read 1 to \temp
- \ifeof 1
- \putwordIndexIsEmpty
- \else
- \begin{ltxmulticols}
- \input \jobname.#1s
- \end{ltxmulticols}
- \fi
-\fi
-\closein 1
-}
-% \end{macrocode}
-%
-% These macros are used by the sorted index file itself.
-% Change them to control the appearance of the index.
-%
-% \begin{macrocode}
-\def\Dotsbox{\hbox to 1em{\hss.\hss}} % Used by index macros
-\def\pline{\hbox to\hsize}
-
-\def\initial#1{%
-{\bigbreak\pline{\large\bf#1\hfill}\kern 2pt\penalty3000}}
-
-\def\entry #1#2{
-{\parfillskip=0in \parskip=0in \parindent=0in \small
-\hangindent=1in \hangafter=1%
-\noindent\hbox{#1}\leaders\Dotsbox\hskip 0pt plus 1filll\relax #2\par
-}}
-
-\def\primary #1{\pline{\small#1\hfil}}
-
-\def\secondary #1#2{
-{\parfillskip=0in \parskip=0in \small
-\hangindent =1in \hangafter=1
-\noindent\hskip\secondaryindent\hbox{#1}\leaders\Dotsbox\hskip 0pt plus 1filll#2\par
-}}
-% \end{macrocode}
-%
-% Args are the skip and penalty (usually negative)
-%
-% \begin{macrocode}
-\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
-% \end{macrocode}
-%
-% Now we set up the default concept index...
-%
-% \begin{macrocode}
-\newindex{cp}
-% \end{macrocode}
-%
-% ...and two useful macros to save typing time.
-%
-% \begin{macrocode}
-\newcommand{\indexcp}[1]{#1\cpindex{#1}}
-\newcommand{\subindexcp}[2]{#1\cpsubindex{#2}{#1}}
-% \end{macrocode}
-%
-% Finally, process options.
-%
-% \begin{macrocode}
-\ExecuteOptions{}
-\ProcessOptions
-%</ltxindex>
-% \end{macrocode}
-%
-% et voil\`a!
-%
-%\Finale
-%
-% \CharacterTable
-% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
-%
-% \typeout{**************************************************}
-% \typeout{*}
-% \typeout{* To finish the installation you have to move the}
-% \typeout{* following file into a directory searched by TeX:}
-% \typeout{*}
-% \typeout{* \space\space ltxindex.sty}
-% \typeout{*}
-% \typeout{* Documentation is in ltxindex.pdf or ltxindex.dvi}
-% \typeout{*}
-% \typeout{* Happy TeXing!}
-% \typeout{**************************************************}
-% \ No newline at end of file
diff --git a/macros/latex/contrib/ltxindex/ltxindex.pdf b/macros/latex/contrib/ltxindex/ltxindex.pdf
deleted file mode 100644
index 1734c08649..0000000000
--- a/macros/latex/contrib/ltxindex/ltxindex.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/ltxindex/ltxindex.sty b/macros/latex/contrib/ltxindex/ltxindex.sty
deleted file mode 100644
index a8436e3403..0000000000
--- a/macros/latex/contrib/ltxindex/ltxindex.sty
+++ /dev/null
@@ -1,202 +0,0 @@
-%%
-%% This is file `ltxindex.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% ltxindex.dtx (with options: `ltxindex,package')
-%%
-%% ltxindex.sty, a LaTeX package to typeset indices with GNU's Texindex
-%% Copyright (C) 2004 by Richard Stallman, Robert J. Chassell,
-%% Michael Clarkson, \& Luis Rivera.
-%%
-%% This program is free software; you can redistribute it and/or modify
-%% it under the terms of the GNU General Public License as published by
-%% the Free Software Foundation; either version 2, or (at your option)
-%% any later version.
-%%
-%% This program is distributed in the hope that it will be useful,
-%% but WITHOUT ANY WARRANTY; without even the implied warranty of
-%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-%% GNU General Public License for more details.
-%%
-%% You should have received a copy of the GNU General Public License
-%% along with this program; if not, write to the Free Software
-%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-%%
-%% WARNING!!! This code is fairly experimental.
-%%
-\NeedsTeXFormat{LaTeX2e}[1995/06/01]
-\ProvidesPackage{ltxindex}
- [2008/06/06 v0.1c ltxindex: LaTeX indexing, texindex style]
-\RequirePackage{multicol}
-\newenvironment{ltxmulticols}{\begin{multicols}{2}}{\end{multicols}}
-\DeclareOption{nomulticol}{\renewenvironment{ltxmulticols}{}{}}
-\def\cindex{\cpindex}
-\def\pindex{\pgindex}
-\def\vindex{\vrindex}
-\def\tindex{\tpindex}
-\def\kindex{\kyindex}
-\def\findex{\fnindex}
-\def\newindex#1{\csname newindex#1\endcsname}
-\def\newindexcp{\if@filesw \newwrite\@cpindexfile
- \immediate\openout\@cpindexfile=\jobname.cp
- \def\cpindex{\@bsphack\begingroup
- \def\protect####1{\string####1\space}\@sanitize
- \@wrindex\@cpindexfile}%
- \def\cpsubindex{\@bsphack\begingroup
- \def\protect####1{\string####1\space}\@sanitize
- \@wrsubindex\@cpindexfile}%
- \def\cpindexbold{\@bsphack\begingroup
- \def\protect####1{\string####1\space}\@sanitize
- \@wrindexbold\@cpindexfile}
- \typeout{Writing concepts index file \jobname.cp }%
- \fi}
-
-\def\cpindex{\@bsphack\begingroup \@sanitize\@index}
-\def\cpsubindex{\@bsphack\begingroup \@sanitize\@index}
-\def\cpindexbold{\@bsphack\begingroup \@sanitize\@index}
-
-\def\@wrindex#1#2{\let\thepage\relax
- \xdef\@gtempa{\write#1{\string \entry{#2}{\thepage}{#2}}}\endgroup
- \def\@tempa{}\def\thing{#2}\ifx\thing\@tempa\relax\else\@gtempa\fi
- \if@nobreak \ifvmode\nobreak\fi\fi\@esphack}
-
-\def\@wrindexbold#1#2{\let\thepage\relax \let\bf\relax
- \xdef\@gtempa{\write#1{\string \entry{#2}{\b{\thepage}}{#2}}}\endgroup
- \def\@tempa{}\def\thing{#2}\ifx\thing\@tempa\relax\else\@gtempa\fi
- \if@nobreak \ifvmode\nobreak\fi\fi\@esphack}
-
-\def\@wrsubindex#1#2#3{\let\thepage\relax
-\xdef\@gtempa{\write#1{\string \entry{#2 #3}{\thepage}{#2}{#3}}}\endgroup%
-\@gtempa
- \if@nobreak \ifvmode\nobreak\fi\fi\@esphack}
-
-\def\@index#1{\endgroup\@esphack}
-
-\def\pgindex{\@bsphack\begingroup \@sanitize\@index}
-\def\newindexpg{\if@filesw \newwrite\@pgindexfile
- \immediate\openout\@pgindexfile=\jobname.pg
- \def\pgindex{\@bsphack\begingroup
- \def\protect####1{\string####1\space}\@sanitize
- \@wrindex\@pgindexfile}
- \def\pgindexbold{\@bsphack\begingroup
- \def\protect####1{\string####1\space}\@sanitize
- \@wrindexbold\@pgindexfile}
-\typeout{Writing index file \jobname.pg }\fi}
-
-\def\pgindex{\@bsphack\begingroup \@sanitize\@index}
-\def\pgindexbold{\@bsphack\begingroup \@sanitize\@index}
-
-\def\newindexvr{\if@filesw \newwrite\@vrindexfile
- \immediate\openout\@vrindexfile=\jobname.vr
- \def\vrindex{\@bsphack\begingroup
- \def\protect####1{\string####1\space}\@sanitize
- \@wrindex\@vrindexfile}
- \def\vrindexbold{\@bsphack\begingroup
- \def\protect####1{\string####1\space}\@sanitize
- \@wrindexbold\@vrindexfile}
-\typeout{Writing variable index file \jobname.vr }\fi}
-
-\def\vrindex{\@bsphack\begingroup \@sanitize\@index}
-\def\vrindexbold{\@bsphack\begingroup \@sanitize\@index}
-
-\def\newindextp{\if@filesw \newwrite\@tpindexfile
- \immediate\openout\@tpindexfile=\jobname.tp
- \def\tpindex{\@bsphack\begingroup
- \def\protect####1{\string####1\space}\@sanitize
- \@wrindex\@tpindexfile}
- \def\tpindexbold{\@bsphack\begingroup
- \def\protect####1{\string####1\space}\@sanitize
- \@wrindexbold\@tpindexfile}
-\typeout{Writing datatype index file \jobname.tp }\fi}
-
-\def\tpindex{\@bsphack\begingroup \@sanitize\@index}
-\def\tpindexbold{\@bsphack\begingroup \@sanitize\@index}
-
-\def\newindexky{\if@filesw
- \newwrite\@kyindexfile
- \immediate\openout\@kyindexfile=\jobname.ky
- \def\kyindex{\@bsphack\begingroup
- \def\protect####1{\string####1\space}\@sanitize
- \@wrindex\@kyindexfile}\typeout{Writing key index file \jobname.ky}
- \fi}
-
-\def\kyindex{\@bsphack\begingroup \@sanitize\@index}
-\def\kyindexbold{\@bsphack\begingroup \@sanitize\@index}
-
-\def\newindexfn{\if@filesw \newwrite\@fnindexfile
- \immediate\openout\@fnindexfile=\jobname.fn
- \def\fnindex{\@bsphack\begingroup
- \def\protect####1{\string####1\space}\@sanitize
- \@wrindex\@fnindexfile}
- \def\fnindexbold{\@bsphack\begingroup
- \def\protect####1{\string####1\space}\@sanitize
- \@wrindexbold\@fnindexfile}
-\typeout{Writing function index file \jobname.fn }\fi}
-
-\def\fnindex{\@bsphack\begingroup \@sanitize\@index}
-\def\fnindexbold{\@bsphack\begingroup \@sanitize\@index}
-\def\synindex#1#2{\expandafter\xdef \csname @#1index\endcsname{%
-\noexpand\csname @#2index\endcsname}%
-\expandafter \chardef \csname @#1indexfile\endcsname=\csname @#2indexfile\endcsname}
-\def\syncodeindex#1#2{%
-\expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
-\expandafter\let\csname#1indfile\endcsname=\synindexfoo
-\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
-\csname#1boldindex\endcsname{#2}}%
-}
-\newskip\secondaryindent
-\secondaryindent=0.5cm
-\ifx\putwordIndexNonexistent\undefined
- \gdef\putwordIndexNonexistent{(Index is nonexistent)}
-\fi
-\ifx\putwordIndexIsEmpty\undefined
- \gdef\putwordIndexIsEmpty{(Index is empty)}
-\fi
-\def\printindex#1{
-\def\indexbackslash{\rawbackslashxx}
-\tolerance=9500 \advance\baselineskip -1pt
-\openin 1 \jobname.#1s
-\ifeof 1
- \putwordIndexNonexistent
- \else
- \read 1 to \temp
- \ifeof 1
- \putwordIndexIsEmpty
- \else
- \begin{ltxmulticols}
- \input \jobname.#1s
- \end{ltxmulticols}
- \fi
-\fi
-\closein 1
-}
-\def\Dotsbox{\hbox to 1em{\hss.\hss}} % Used by index macros
-\def\pline{\hbox to\hsize}
-
-\def\initial#1{%
-{\bigbreak\pline{\large\bf#1\hfill}\kern 2pt\penalty3000}}
-
-\def\entry #1#2{
-{\parfillskip=0in \parskip=0in \parindent=0in \small
-\hangindent=1in \hangafter=1%
-\noindent\hbox{#1}\leaders\Dotsbox\hskip 0pt plus 1filll\relax #2\par
-}}
-
-\def\primary #1{\pline{\small#1\hfil}}
-
-\def\secondary #1#2{
-{\parfillskip=0in \parskip=0in \small
-\hangindent =1in \hangafter=1
-\noindent\hskip\secondaryindent\hbox{#1}\leaders\Dotsbox\hskip 0pt plus 1filll#2\par
-}}
-\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
-\newindex{cp}
-\newcommand{\indexcp}[1]{#1\cpindex{#1}}
-\newcommand{\subindexcp}[2]{#1\cpsubindex{#2}{#1}}
-\ExecuteOptions{}
-\ProcessOptions
-\endinput
-%%
-%% End of file `ltxindex.sty'.
diff --git a/macros/latex/contrib/lwarp/README.txt b/macros/latex/contrib/lwarp/README.txt
index 12e0d44443..c18fff0ffe 100644
--- a/macros/latex/contrib/lwarp/README.txt
+++ b/macros/latex/contrib/lwarp/README.txt
@@ -1,5 +1,5 @@
-LaTeX lwarp package v0.80 README.txt
+LaTeX lwarp package v0.81 README.txt
Files included are:
diff --git a/macros/latex/contrib/lwarp/lwarp.dtx b/macros/latex/contrib/lwarp/lwarp.dtx
index e80de5d4ad..d0f16200b9 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/02/19 v0.80 Allows LaTeX to directly produce HTML5 output.]
+%<package> [2020/03/04 v0.81 Allows LaTeX to directly produce HTML5 output.]
%
%<*driver>
\documentclass{ltxdoc}
@@ -272,6 +272,8 @@ Keywords={LaTeX, HTML, conversion}%
\newcommand*{\goesto}{$\Rightarrow$}
+\newcommand*{\orelse}{---\,\textit{or}\,---}
+
\newcommand*{\AV}{\acro{A}\Slash\acro{V}}
\makeatletter
@@ -306,7 +308,9 @@ Keywords={LaTeX, HTML, conversion}%
\newcommand{\epkg}[1]{\textcolor[Hsb]{300,1,.5}{\pkg{#1}}}% package emulated for HTML
\newcommand{\ipkg}[1]{\textcolor[Hsb]{0,0,.5}{\pkg{#1}}}% package ignored
\newcommand{\wpkg}[1]{\textcolor[Hsb]{0,1,.5}{\pkg{#1}}}% package warning special case
-\newcommand{\sjax}{\textsuperscript{\textcolor{orange!70!black}{MJ}}}
+\newcommand{\sjax}{\textsuperscript{\textcolor[Hsb]{120,1,.4}{MJ}}}
+\newcommand{\ejax}{\textsuperscript{\textcolor[Hsb]{300,1,.5}{MJ}}}
+\newcommand{\ijax}{\textsuperscript{\textcolor[Hsb]{0,0,.5}{MJ}}}
% green/cyan/blue/magenta
% \newcommand{\spkg}[1]{\textcolor[Hsb]{120,1,.4}{\pkg{#1}}}% package supported as-is
@@ -1089,7 +1093,7 @@ exactly, in which case a label may be shifted by one space.
\newcommand{\limitslateximagefontsize}{%
For the \env{lateximage} environment,
the size of the math and text used
-\margintag{SVG image font size}
+\margintag{\SVG\ image font size}
in the \SVG\ image may be adjusted
\gindex{font>size>lateximage}%
\gindex{font>size>math, SVG}%
@@ -1122,25 +1126,27 @@ Math may be rendered
as \SVG\ graphics or using the \brand{MathJax} JavaScript display engine.
\gindex{JavaScript=\brand{JavaScript}>MathJax=\brand{MathJax}}
-Rendering math as images creates a new \SVG\ file for each expression, \margintag{SVG files}
+Rendering math as images creates a new \SVG\ file for each expression,
+\margintag{\SVG\ files}
except that an MD5 hash is used to combine identical duplicates of the same
inline math expression into a single file, which must be converted to \SVG\ only once.
Display math is still handled as individual files, since it may contain labels
or references which are likely to change.
-The \SVG\ images are currently stored separately, \margintag{SVG inline}
+The \SVG\ images are currently stored separately,
+\margintag{\SVG\ inline}
but they could be encoded in-line directly into the \HTML\ document.
This may reduce the number of files and potentially speed loading the images,
but slows the display of the rest of the document before the images are loaded.
Others \LaTeX-to-\HTML\ converters have used \PNG\ files,
-\margintag{PNG files}
+\margintag{\PNG\ files}
sometimes pre-scaled for print resolution but displayed
on-screen at a scaled down size. This allows high-quality print output at the expense
of larger files, but \SVG\ files are the preferred approach for scalable graphics.
Conversion to \MathML\ might be a better approach,
-\margintag{MathML}
+\margintag{\MathML}
among other things allowing a more compact representation of math than \SVG\ drawings.
Problems with \MathML\ include limited browser support and some
issues with the fine control of the appearance of the result.
@@ -1149,7 +1155,7 @@ Also see \cref{sec:epub} regarding \EPUB\ output with \brand{MathJax}.
\subsubsection{\SVG\ option}
For \SVG\ math,
-\margintag{SVG math option}
+\margintag{\SVG\ math option}
math is rendered as usual by \LaTeX{} into the initial \PDF\ file using the
\gindex{math>SVG summary}%
\gindex{SVG>math summary}%
@@ -1165,7 +1171,7 @@ math, allowing copy/paste of the \LaTeX{} math expression into other documents.
\limitslateximagefontsize
For \SVG\ math, text copy/paste from the \HTML\ \element{alt} tags lists the
-\margintag{SVG math copy/paste}
+\margintag{\SVG\ math copy/paste}
equation number or tag for single equations, along with the \LaTeX\ code
for the math expression.
For \AmS\ environments with multiple numbers in the same environment,
@@ -1173,8 +1179,17 @@ only the first and last is copy/pasted, as a range.
No tags are listed inside a starred \AmS\ environment, although the \cs{tag}
macro will still appear inside the \LaTeX\ math expression.
-SVG math does not work inside \TeX\ boxes, since a \cs{newpage} is required
-\trouble[SVG math in \TeX\ boxes]{math>in \TeX\ boxes}
+\SVG\ math sizing and baselines are improved if the \pkg{graphics} or \pkg{graphicx}
+\trouble[\SVG\ math size, baseline]{math>size incorrect}
+\trouble{math>baseline incorrect}
+\trouble{image>svg=\SVG\ math size and baseline}
+\trouble{SVG image>math size and baseline}
+package is loaded. An almost-invisible marker is placed at either end of the image
+to assist in cropping and computing the baseline. A warning is issued at the
+end of the compile if \pkg{graphics} or \pkg{graphicx} are not used.
+
+\SVG\ math does not work inside \TeX\ boxes, since a \cs{newpage} is required
+\trouble[\SVG\ math in \TeX\ boxes]{math>in \TeX\ boxes}
before and after each image.
\subsubsection{\brand{MathJax} option}
@@ -2878,7 +2893,7 @@ This boolean may be tested by the user for later use.
%<*package>
% \fi
%
-% \CheckSum{37579}
+% \CheckSum{42916}
%
% \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
@@ -3001,6 +3016,7 @@ This boolean may be tested by the user for later use.
% \changes{v0.78}{2019/11/07}{\ 2019/11/07}
% \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}
@@ -3033,7 +3049,8 @@ This boolean may be tested by the user for later use.
% The \pkg{lwarp} package converts \LaTeX\ to \HTML\ by using \LaTeX\ to process the
% user's document and directly generate \HTML\ tags. External utility programs are only
% used for the final conversion of text and images. Math may be represented
-% by \SVG\ images or MathJax. Hundreds of \LaTeX\ packages are supported.
+% by \SVG\ images or \brand{MathJax}. Hundreds of \LaTeX\ packages are supported,
+% including dozens with \brand{MathJax} emulation.
%
% Documents may be produced by \DVI\ or \PDF\ \LaTeX, Lua\LaTeX, \XeLaTeX;
% by several CJK engines, classes, and packages;
@@ -3222,6 +3239,28 @@ This boolean may be tested by the user for later use.
%
% \begin{description}
% \needspace{2\baselineskip}
+% \item[v0.81:] \brand{MathJax} speedup and additional emulations.
+% \begin{itemize}
+% \item Improved warning regarding \SVG\ math sizing \Slash baselines and
+% \margintag{core}
+% \pkg{graphics} \Slash \pkg{graphicx}. See \cref{sec:limitsmath}.
+% \item Improved \brand{MathJax} emulation processing speed.
+% \margintag{\brand{MathJax}}
+% \item Added \brand{MathJax} emulation for \pkg{accsupp}, \pkg{axessibiltiy},
+% \pkg{colonequals},
+% \pkg{decimal}, \pkg{dotlessi}, \pkg{econometrics}, \pkg{engtlc},
+% \pkg{multiobjective}, \pkg{physunits}, \pkg{SIunits}, \pkg{stackrel},
+% \pkg{statmath}.
+% \item \pkg{axessibility}: Updated to 2020/01/08 version.
+% \margintag{packages}
+% \item \pkg{gridset}: Updated to v0.3.
+% \item \pkg{SIunits}: Fixed for math mode.
+% \item Added \pkg{DotArrow}, \pkg{nolbreaks}, \pkg{luamplib}, \pkg{returntogrid},
+% \pkg{statex2}, \pkg{tagpdf}.
+% \item Verified to work as-is with \pkg{icomma}, \pkg{mathpunctspace},
+% \pkg{textualicomma}.
+% \end{itemize}
+% \needspace{2\baselineskip}
% \item[v0.80:] \brand{MathJax}, \pkg{biblatex}.
% \begin{itemize}
% \item Added docs and warning/info messages
@@ -4978,7 +5017,9 @@ This boolean may be tested by the user for later use.
% as print output in \SVG\ math or \env{lateximage} environments.
% \item[\epkg{name}:] Emulated for \HTML\ output.
% \item[\ipkg{name}:] Ignored for \HTML\ output, but provides source-level compatibility.
-% \item[\sjax:] Emulated for \brand{MathJax}, subject to limitations.
+% \item[\sjax:] Supported as-is for \brand{MathJax}, subject to limitations.
+% \item[\ejax:] Emulated for \brand{MathJax} using custom macros, subject to limitations.
+% \item[\ijax:] Ignored by \brand{MathJax}, but may be used in the document source.
% \end{description}
%
% \renewcommand{\arraystretch}{1.5}
@@ -5056,7 +5097,7 @@ This boolean may be tested by the user for later use.
% \ipkg{ltxgrid}, \ipkg{nccfancyhdr}, \ipkg{notespages}, \ipkg{nowidow},
% \ipkg{pagegrid}, \ipkg{pagesel}, \epkg{parallel}, \epkg{parcolumns},
% \ipkg{pdfcolparallel}, \ipkg{pdfcolparcolumns}, \ipkg{pdfcrypt}, \ipkg{pdfprivacy},
-% \ipkg{preview}, \epkg{ragged2e}, \ipkg{rmpage},
+% \ipkg{preview}, \epkg{ragged2e}, \ipkg{returntogrid}, \ipkg{rmpage},
% \epkg{scrlayer-scrpage}, \epkg{scrpage2}, \epkg{setspace},
% \ipkg{textarea}, \ipkg{threadcol},
% \ipkg{thumb}, \ipkg{thumbs}, \ipkg{titleps}, \ipkg{tocenter},
@@ -5127,7 +5168,7 @@ This boolean may be tested by the user for later use.
% Math: & Converted to \SVG\ images with \HTML\ \element{alt} tags containing the
% \LaTeX\ source for the math expression.
% \brand{MathJax} supported as an alternative.
-% \mpkg{amsmath}\sjax: \AmS\ environments are supported.
+% \mpkg{amsmath}\ejax: \AmS\ environments are supported.
% User-defined macros are available during converson,
% due to native \LaTeX\ processing.\\
%
@@ -5135,18 +5176,23 @@ This boolean may be tested by the user for later use.
% \mpkg{amsthm}, \mpkg{ntheorem}, \mpkg{theorem}. \\
%
% Additional math: & Math fonts via \SVG\ images,
-% \spkg{amscd}, \spkg{autobreak}\sjax, \ipkg{autonum},
-% \mpkg{backnaur}, \mpkg{bm}\sjax, \spkg{braket}\sjax,
-% \mpkg{breqn}, \mpkg{cases}, \spkg{centernot}\sjax,
-% \spkg{delarray}, \spkg{extarrows}\sjax, \spkg{fouridx}\sjax,
-% \spkg{guass}, \spkg{jkmath},
-% \spkg{leftidx}\sjax, \spkg{mathcomp}\sjax, \spkg{mathdots}\sjax, \spkg{mathfixs}\sjax,
-% \spkg{mathspec}, \mpkg{mathtools}\sjax, \mpkg{mismath}\sjax,
-% \mpkg{nccmath}\sjax,
-% \spkg{nicematrix}, \spkg{noitcrul}\sjax, \spkg{pb-diagram},
-% \ipkg{resizegather}, \spkg{rmathbr}\sjax, \spkg{subsupscripts}\sjax,
-% \spkg{unicode-math}\sjax, \mpkg{witharrows}\sjax,
-% \mpkg{xfakebold}\sjax, \mpkg{xy}.
+% \spkg{amscd}, \spkg{autobreak}\ejax, \ipkg{autonum},
+% \mpkg{backnaur}, \mpkg{bm}\ejax, \spkg{braket}\ejax,
+% \mpkg{breqn}, \mpkg{cases}, \spkg{centernot}\ejax, \spkg{colonequals}\ejax,
+% \spkg{decimal}\ejax,
+% \spkg{delarray}, \mpkg{DotArrow}\ejax, \spkg{dotlessi}\ejax, \spkg{dotlessj}\sjax,
+% \spkg{extarrows}\ejax, \spkg{fouridx}\ejax,
+% \spkg{guass}, \spkg{icomma}\ijax, \spkg{jkmath},
+% \spkg{leftidx}\ejax, \spkg{mathcomp}\ejax, \spkg{mathdots}\ejax,
+% \spkg{mathfixs}\ejax, \spkg{mathpunctspace}\ijax,
+% \spkg{mathspec}, \mpkg{mathtools}\ejax, \mpkg{mismath}\ejax,
+% \spkg{multiobjective}\ejax, \mpkg{nccmath}\ejax,
+% \spkg{nicematrix}, \spkg{noitcrul}\ejax, \spkg{pb-diagram},
+% \ipkg{resizegather}, \spkg{rmathbr}\ejax, \spkg{stackrel}\ejax,
+% \mpkg{statex2}\ejax, \spkg{statmath}\ejax,
+% \spkg{subsupscripts}\ejax, \spkg{textualicomma}\ijax,
+% \spkg{unicode-math}\ejax, \mpkg{witharrows}\ejax,
+% \mpkg{xfakebold}\ejax, \mpkg{xy}.
% Many others work as-is. \\
%
% Display math with \cs{displaymathother}: & %
@@ -5155,8 +5201,8 @@ This boolean may be tested by the user for later use.
% \midrule
%
% Units and fractions: &
-% \mpkg{nicefrac}\sjax, \mpkg{SIunits}, \mpkg{siunitx}\sjax,
-% \mpkg{units}\sjax, \mpkg{unitsdef}, \mpkg{xfrac}\sjax. \\
+% \mpkg{nicefrac}\ejax, \mpkg{SIunits}\ejax, \mpkg{siunitx}\ejax,
+% \mpkg{units}\ejax, \mpkg{unitsdef}, \mpkg{xfrac}\ejax. \\
%
% \midrule
%
@@ -5173,11 +5219,11 @@ This boolean may be tested by the user for later use.
% \midrule
%
% Tabular: &
-% \env{tabular} environment, \mpkg{array}\sjax, \epkg{arydshln}\sjax,
-% \mpkg{bigdelim}\sjax, \mpkg{bigstrut}\sjax, \mpkg{booktabs}\sjax,
-% \mpkg{colortbl}, \mpkg{ctable}, \mpkg{diagbox}, \mpkg{hhline}\sjax, \epkg{longtable},
+% \env{tabular} environment, \mpkg{array}\ejax, \epkg{arydshln}\ejax,
+% \mpkg{bigdelim}\ejax, \mpkg{bigstrut}\ejax, \mpkg{booktabs}\ejax,
+% \mpkg{colortbl}, \mpkg{ctable}, \mpkg{diagbox}, \mpkg{hhline}\ejax, \epkg{longtable},
% \epkg{ltablex}, \epkg{ltxtable},
-% \mpkg{multirow}\sjax, \epkg{supertabular}, \epkg{tabularx}, \epkg{tabulary},
+% \mpkg{multirow}\ejax, \epkg{supertabular}, \epkg{tabularx}, \epkg{tabulary},
% \epkg{threeparttable}, \mpkg{threeparttablex},
% \epkg{widetable}, \epkg{xltabular}, \epkg{xtab}. \\
%
@@ -5195,7 +5241,8 @@ This boolean may be tested by the user for later use.
% \mpkg{asymptote}, \spkg{curves}, \spkg{datatool},
% \spkg{eepic}, \epkg{epsfig}, \spkg{epstopdf},
% \epkg{figsize}, \ipkg{fitbox},
-% \spkg{grffile}, \epkg{media9}, \epkg{movie15}, \epkg{multimedia}, \mpkg{overpic},
+% \spkg{grffile}, \mpkg{luamplib}, \epkg{media9},
+% \epkg{movie15}, \epkg{multimedia}, \mpkg{overpic},
% \mpkg{psfrag}, \mpkg{psfragx}, \mpkg{pst-eps}, \mpkg{pstool}, \mpkg{pstricks},
% \spkg{rviewport}, \mpkg{svg}, \spkg{svg-extract}, \spkg{tikz-3dplot}. \\
%
@@ -5245,9 +5292,10 @@ This boolean may be tested by the user for later use.
% \cs{bfseries}, etc.\ are only supported in some cases.
% \mpkg{cancel}, \epkg{ellipsis}, \mpkg{embrac}, \spkg{enparen},
% \ipkg{hyphenat}, \epkg{lettrine}, \epkg{lips},
-% \ipkg{lua-check-hyphen}, \ipkg{luacolor}, \epkg{magaz}, \ipkg{normalcolor},
+% \ipkg{lua-check-hyphen}, \ipkg{luacolor}, \epkg{magaz}, \epkg{nolbreaks},
+% \ipkg{normalcolor},
% \ipkg{pdfcol}, \ipkg{pdfcolmk},
-% \ipkg{pdfrender}, \epkg{realscripts}, \mpkg{relsize}\sjax,
+% \ipkg{pdfrender}, \epkg{realscripts}, \mpkg{relsize}\ejax,
% \ipkg{scalefnt}, \epkg{soul}, \epkg{soulpos}, \epkg{soulutf8}, \mpkg{stackengine},
% \epkg{textfit}, \epkg{thinsp}, \ipkg{trimclip}, \ipkg{truncate},
% \mpkg{ulem}, \mpkg{umoline}, \ipkg{underscore}, \ipkg{uspace},
@@ -5282,8 +5330,8 @@ This boolean may be tested by the user for later use.
%
% Symbols: & Native \LaTeX\ diacriticals, \mpkg{academicons}, \mpkg{bbding},
% \mpkg{chemgreek}, \mpkg{dingbat}, \spkg{euro}, \mpkg{eurosym},
-% \mpkg{fontawesome}, \mpkg{fontawesome5}, \spkg{gensymb}\sjax, \mpkg{marvosym},
-% \spkg{mathcomp}\sjax, \mpkg{metalogo}, \mpkg{metalogox},
+% \mpkg{fontawesome}, \mpkg{fontawesome5}, \spkg{gensymb}\ejax, \mpkg{marvosym},
+% \spkg{mathcomp}\ejax, \mpkg{metalogo}, \mpkg{metalogox},
% \mpkg{pifont}, \spkg{textalpha},
% \mpkg{textcomp}, \spkg{textgreek}, \mpkg{typicons}, \mpkg{xunicode}.
% \\
@@ -5298,18 +5346,18 @@ This boolean may be tested by the user for later use.
% \midrule
%
% Science and engineering: &
-% \mpkg{algorithm2e}, \mpkg{algorithmicx}, \mpkg{ar}\sjax, \spkg{askmaps},
+% \mpkg{algorithm2e}, \mpkg{algorithmicx}, \mpkg{ar}\ejax, \spkg{askmaps},
% \mpkg{axodraw2}, \mpkg{bitpattern}, \spkg{blochsphere}, \spkg{bodegraph},
% \spkg{bohr}, \mpkg{bytefield},
% \mpkg{chemfig}, \mpkg{chemformula}, \mpkg{chemgreek},
% \mpkg{chemmacros}, \mpkg{chemnum},
-% \spkg{circuitikz}, \spkg{elements}, \spkg{engtlc}, \spkg{fast-diagram},
-% \mpkg{ghsystem},
+% \spkg{circuitikz}, \spkg{econometrics}\ejax, \spkg{elements},
+% \mpkg{engtlc}\ejax, \spkg{fast-diagram}, \mpkg{ghsystem},
% \spkg{hepnicenames}, \spkg{heppennames}, \spkg{karnaughmap}, \mpkg{karnaugh-map},
% \mpkg{listings}, \spkg{linop}, \mpkg{mhchem}\sjax, \spkg{pgfgantt},
-% \mpkg{phfqit}, \spkg{physics}\sjax, \spkg{qcircuit},
+% \mpkg{phfqit}, \spkg{physics}\ejax, \spkg{physunits}\ejax, \spkg{qcircuit},
% \mpkg{register}, \spkg{simpler-wick},
-% \spkg{slashed}\sjax, \mpkg{steinmetz}\sjax, \spkg{structmech}, \mpkg{struktex}.
+% \spkg{slashed}\ejax, \mpkg{steinmetz}\ejax, \spkg{structmech}, \mpkg{struktex}.
% \spkg{tikz-karnaugh}, \spkg{tikzcodeblocks} \\
%
% \midrule
@@ -5327,14 +5375,15 @@ This boolean may be tested by the user for later use.
% Editorial: & \ipkg{changebar}, \spkg{changelog}, \mpkg{changes},
% \mpkg{easy-todo}, \spkg{easyReview}, \mpkg{ed}, \mpkg{errata}, \mpkg{fixme},
% \mpkg{fixmetodonotes},
-% \ipkg{pdfcomment}\sjax, \ipkg{pdfmarginpar},
+% \ipkg{pdfcomment}\ejax, \ipkg{pdfmarginpar},
% \mpkg{todo}, \mpkg{todonotes}, \epkg{tram}, \ipkg{xechangebar}.
% \\
%
% \midrule
%
-% Accessibility: & \epkg{accessibility}\sjax, \ipkg{accsupp}, \ipkg{axessibility},
-% \ipkg{pdfcomment}\sjax. \\
+% Accessibility: & \epkg{accessibility}\ijax, \ipkg{accsupp}\ijax,
+% \ipkg{axessibility}\ijax,
+% \ipkg{pdfcomment}\ijax, \ipkg{tagpdf}. \\
%
% \midrule
%
@@ -6382,7 +6431,7 @@ This boolean may be tested by the user for later use.
%
% \item Use \prog{xelatex} or \prog{lualatex} to compile the printed version
% a single time.
-% \userentry{xelatex tutorial.tex} \quad -or-
+% \userentry{xelatex tutorial.tex} \quad \orelse
% \userentry{lualatex tutorial.tex}
%
% When the compile occurs,
@@ -6873,9 +6922,9 @@ This boolean may be tested by the user for later use.
% See the next section regarding index encoding.
%
% \XeLaTeX{} and \LuaLaTeX{} users must use the \pkg{fontspec} package.
-% \trouble[\prog{xelatex} and \prog{lualatex}]{xelatex=xe\LaTeX}
+% \trouble[\prog{xelatex}, \prog{lualatex}, \pkg{fontspec}]{xelatex=xe\LaTeX}
% \trouble{lualatex=lua\LaTeX}
-% \trouble{fontspec=\pkg{fontspec}}
+% \trouble{fontspec=\pkg{fontspec}>xelatex=with \XeLaTeX, \LuaLaTeX.}
% Do NOT use \pkg{fontenc}!
%
% Place \pkg{fontspec} or \pkg{fontenc}, \pkg{xunicode}, and other font and UTF-8 related commands
@@ -6927,10 +6976,16 @@ This boolean may be tested by the user for later use.
% \item |\input glyphtounicode-cmr.tex% from the pdfx package|
% \item |\pdfgentounicode=1|
% \end{enumerate}
-% \item Another option to assist with the \PDF-\HTML\ conversion:
+% \item Another option to assist with the \PDF-\HTML\ conversion, such
+% as the dotless j (\cs{j}):
+% \trouble[dotless j]{dotless j}
+% \trouble{j=\cs{j}}
% \begin{itemize}
-% \item |\usepackage{cmap}|
+% \item |\usepackage{cmap}| \qquad \orelse
% \DescribePackage{cmap}
+% \item |\usepackage{mmap}| \qquad \orelse
+% \DescribePackage{mmap}
+% \item |\usepackage[noTeX]{mmap}|
% \end{itemize}
% \item |\usepackage{textcomp}|
% \DescribePackage{textcomp}
@@ -6943,14 +6998,15 @@ This boolean may be tested by the user for later use.
% ^^A \gindex{ligatures}\gindex{font>ligatures}
% \end{enumerate}
% \end{itemize}
-% \item |\usepackage{lwarp}| (\cref{sec:loading}) goes after any of the above, followed by:
+% \item |\usepackage{lwarp}| (\cref{sec:loading}) is placed after any of the above, followed by:
% \item |\usepackage{newtxmath}| or other math-related font packages.
% Many of these load \pkg{amsmath}, which must be loaded after \pkg{lwarp},
% so they must also be loaded after \pkg{lwarp}.
% \item |\setmonofont{TeX Gyre Cursor}| or similar may be required if using
-% \trouble[\pkg{fontspec} with traditional font packages]{font>monospace}
+% \trouble[\pkg{fontspec} with monospaced fonts]{font>monospace}
% \trouble{font>ligatures}
% \trouble{ligatures}
+% \trouble{fontspec=\pkg{fontspec}>mono=with monospaced fonts}
% \XeLaTeX\ or \LuaLaTeX\ and \pkg{fontspec} along with
% traditional font packages such as \pkg{txfonts}, \pkg{newtxtext}, etc.
% This is required to turn off the monospaced font's ligatures
@@ -10578,7 +10634,7 @@ This boolean may be tested by the user for later use.
% Each |lwarp-*| package should first call either of:
% \begin{sourcedisplay}
% \cs{LWR@ProvidesPackage\textblue{Drop}} \\
-% \fquad \textrm{-or-} \\
+% \fquad \textrm{\orelse} \\
% \cs{LWR@ProvidesPackage\textblue{Pass}}
% \end{sourcedisplay}
% If ``|Drop|''ped, the original print-version
@@ -10804,7 +10860,7 @@ This boolean may be tested by the user for later use.
% \item[(width,height) missing a comma:] \cs{makebox} and \cs{framebox} can accept
% a parenthesis-delimited width and height, which must be separated by a comma.
% \item[``Load graphicx or graphics for improved SVG math baselines.'':] \SVG\ math
-% baselines are improved if either of these packages are used.
+% sizing and baselines are improved if either of these packages are used.
% \item[``Load graphicx or graphics for improved XeTeX logo.'':] If these packages
% are loaded, the \XeLaTeX\ logo can use the reversed ``E''.
% \item[``It is recommended to use \texttt{[width=xx\cs{linewidth}]}
@@ -10839,6 +10895,9 @@ This boolean may be tested by the user for later use.
% the characters |&|, |<|, and |>|.
% \end{itemize}
%
+% \item [Dotless j (\cs{j}):] See \cref{sec:fonts} regarding \pkg{cmap}, \pkg{mmap}.
+% \trouble[\pkg{dotlessj}]{dotlessj=\pkg{dotlessj}}
+%
% \item [Undefined \HTML\ settings:] \
% \trouble{HTML>settings>undefined}
% \begin{itemize}
@@ -10955,11 +11014,11 @@ This boolean may be tested by the user for later use.
% may not compile in \pkg{lwarp}'s normal math emulation.
% Insert
% \begin{sourcedisplay}
-% \cs{displaymathother} \textrm{-or-} \cs{inlinemathother}
+% \cs{displaymathother} \textrm{\orelse} \cs{inlinemathother}
% \end{sourcedisplay}
% before the math, and then
% \begin{sourcedisplay}
-% \cs{displaymathnormal} \textrm{-or-} \cs{inlinemathnormal}
+% \cs{displaymathnormal} \textrm{\orelse} \cs{inlinemathnormal}
% \end{sourcedisplay}
% when displaying ``normal'' math.
% See \cref{sec:displaymathother}.
@@ -11663,6 +11722,7 @@ This boolean may be tested by the user for later use.
% \pkg{picinpar}, \pkg{picins}, \pkg{sistyle}, \pkg{ucs}.}
% \changes{v0.68}{2019/02/26}{Prevented \pkg{alg}, \pkg{algorithmic}, \pkg{fncylab}, \pkg{pdfcprot}.}
% \changes{v0.80}{2020/02/15}{Prevented \pkg{formula}, \pkg{shadethm}, \pkg{slashbox}.}
+% \changes{v0.81}{2020/02/15}{Prevented \pkg{statex}.}
%
% \begin{macrocode}
\LWR@earlyclassloadnever{jarticle}{ujarticle}
@@ -11697,6 +11757,7 @@ This boolean may be tested by the user for later use.
\LWR@earlyloadnever{si}{siunitx}
\LWR@earlyloadnever{sistyle}{siunitx}
\LWR@earlyloadnever{slashbox}{diagbox}
+\LWR@earlyloadnever{statex}{statex2}
\LWR@earlyloadnever{t1enc}{fontenc, inputenc, inputenx}
\LWR@earlyloadnever{ucs}{inputenc, inputencx}
\LWR@earlyloadnever{wasysym}{textcomp, amssymb, amsfonts, mnsymbol, fdsymbol}
@@ -11794,7 +11855,9 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{caption}
\LWR@loadafter{caption2}
\LWR@loadafter{cases}
+% catoptions is supported by the lwarp core
% \LWR@loadafter{ccaption}% may be preloaded by memoir
+\LWR@loadafter{centernot}
\LWR@loadafter{changebar}
\LWR@loadafter{changelayout}
\LWR@notmemoirloadafter{changepage}
@@ -11810,6 +11873,7 @@ This boolean may be tested by the user for later use.
\LWR@notmemoirloadafter{chngpage}
\LWR@loadafter{cite}
\LWR@loadafter{cmdtrack}
+\LWR@loadafter{colonequals}
\LWR@loadafter{color}
\LWR@loadafter{colortbl}
\LWR@loadafter{continue}
@@ -11822,14 +11886,18 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{dblfloatfix}
\LWR@loadafter{dblfnote}
\LWR@notmemoirloadafter{dcolumn}
+\LWR@loadafter{decimal}
\LWR@loadafter{diagbox}
\LWR@loadafter{dingbat}
+\LWR@loadafter{DotArrow}
+\LWR@loadafter{dotlessi}
\LWR@loadafter{dprogress}
\LWR@loadafter{draftcopy}
\LWR@loadafter{draftfigure}
\LWR@loadafter{draftwatermark}
\LWR@loadafter{easy-todo}
\LWR@loadafter{ebook}
+\LWR@loadafter{econometrics}
\LWR@loadafter{ed}
\LWR@loadafter{ellipsis}
\LWR@loadafter{embrac}
@@ -11837,6 +11905,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{endfloat}
\LWR@loadafter{endheads}
\LWR@loadafter{endnotes}
+\LWR@loadafter{engtlc}
\LWR@notmemoirloadafter{enumerate}
\LWR@loadafter{enumitem}
\LWR@notmemoirloadafter{epigraph}
@@ -11951,6 +12020,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{lua-check-hyphen}
\LWR@loadafter{lua-visual-debug}
\LWR@loadafter{luacolor}
+\LWR@loadafter{luamplib}
\LWR@loadafter{luatodonotes}
\LWR@loadafter{lyluatex}
\LWR@loadafter{magaz}
@@ -11961,6 +12031,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{marginnote}
\LWR@loadafter{marvosym}
\LWR@loadafter{mathcomp}
+\LWR@loadafter{mathdots}
\LWR@loadafter{mathfixs}
\LWR@loadafter{mathtools}
\LWR@loadafter{mcaption}
@@ -11985,6 +12056,7 @@ This boolean may be tested by the user for later use.
%\LWR@loadafter{multicol}% loaded by ltxdoc
\LWR@loadafter{multicolrule}
\LWR@loadafter{multimedia}
+\LWR@loadafter{multiobjective}
\LWR@loadafter{multirow}
\LWR@loadafter{multitoc}
\LWR@loadafter{musicography}
@@ -12001,6 +12073,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{nicefrac}
\LWR@loadafter{niceframe}
\LWR@loadafter{noitcrul}
+\LWR@loadafter{nolbreaks}
\LWR@loadafter{nomencl}
\LWR@loadafter{nonfloat}
\LWR@loadafter{nonumonpart}
@@ -12039,6 +12112,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{pfnote}
\LWR@loadafter{phfqit}
\LWR@loadafter{physics}
+\LWR@loadafter{physunits}
\LWR@loadafter{pifont}
\LWR@loadafter{placeins}
\LWR@loadafter{plarray}
@@ -12068,6 +12142,7 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{relsize}
\LWR@loadafter{repeatindex}
\LWR@loadafter{resizegather}
+\LWR@loadafter{returntogrid}
\LWR@loadafter{rmathbr}
\LWR@loadafter{rmpage}
\LWR@loadafter{romanbar}
@@ -12108,6 +12183,9 @@ This boolean may be tested by the user for later use.
\LWR@loadafter{srctex}
\LWR@loadafter{stabular}
\LWR@loadafter{stackengine}
+\LWR@loadafter{stackrel}
+\LWR@loadafter{statex2}
+\LWR@loadafter{statmath}
\LWR@loadafter{steinmetz}
\LWR@notltjloadafter{stfloats}
\LWR@loadafter{struktex}
@@ -12124,6 +12202,7 @@ This boolean may be tested by the user for later use.
\LWR@notmemoirloadafter{tabularx}
\LWR@loadafter{tabulary}
\LWR@loadafter{tascmac}
+\LWR@loadafter{tagpdf}
\LWR@loadafter{textarea}
% \LWR@loadafter{textcomp}% maybe before lwarp with font packages
\LWR@loadafter{textfit}
@@ -14079,6 +14158,7 @@ This boolean may be tested by the user for later use.
% \changes{v0.68}{2019/02/26}{Prevented \pkg{alg}, \pkg{algorithmic}, \pkg{fncylab}, \pkg{pdfcprot}.}
% \changes{v0.79}{2020/01/09}{Prevented \pkg{bxcjkjatype}, \pkg{hangul}.}
% \changes{v0.80}{2020/02/15}{Prevented \pkg{formula}, \pkg{shadethm}, \pkg{slashbox}.}
+% \changes{v0.81}{2020/02/28}{Prevented \pkg{statex}.}
%
% The following should never be loaded:
% \begin{macrocode}
@@ -14109,6 +14189,7 @@ This boolean may be tested by the user for later use.
\LWR@checkloadnever{#1}{si}{siunitx}
\LWR@checkloadnever{#1}{sistyle}{siunitx}
\LWR@checkloadnever{#1}{slashbox}{diagbox}
+\LWR@checkloadnever{#1}{statex}{statex2}
\LWR@checkloadnever{#1}{t1enc}{fontenc, inputenc, inputenx}
\LWR@checkloadnever{#1}{ucs}{inputenc, inputencx}
\LWR@checkloadnever{#1}{wasysym}{textcomp, amssymb, amsfonts, mnsymbol, fdsymbol}
@@ -15872,6 +15953,7 @@ This boolean may be tested by the user for later use.
% \changes{v0.75}{2019/09/22}{\filenm{lwarp.css}: Improved marginblock.}
% \changes{v0.76}{2019/10/02}{\filenm{lwarp.css}: Fix for small caps.}
% \changes{v0.79}{2020/01/17}{\filenm{lwarp.css}: Fix: Nested \env{tabular}s.}
+% \changes{v0.81}{2020/02/22}{\filenm{lwarp.css}: Added \pkg{nolbreaks}.}
%
% ^^A *lwarp.css
%
@@ -17351,6 +17433,10 @@ div.notesicon {
div.notescontents { font-style: italic }
+/* nolbreaks package: */
+span.nolbreaks { white-space: nowrap ; }
+
+
/*
For CSS LaTeX and related logos:
Based on spacing demonstrated by the metafont package.
@@ -18425,6 +18511,7 @@ src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.6/MathJax.js?config=TeX-
% displays the print command to recompile.}%
% \changes{v0.74}{2019/08/05}{\prog{lwarpmk}: \cmds{lwarpmk clean} removes add'l files.}%
% \changes{v0.74}{2019/08/14}{\prog{lwarpmk}: \cmds{lwarpmk epstopdf} and \cmds{pdftosvg} honor directories.}%
+% \changes{v0.81}{2020/03/04}{\prog{lwarpmk}: Improved error if in \pkg{lwarp} source directory.}%
%
% The following is only generated if the \optn{lwarpmk} option
% was given to \pkg{lwarp}.
@@ -18440,7 +18527,7 @@ src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.6/MathJax.js?config=TeX-
-- Copyright 2016-2020 Brian Dunn
-printversion = "v0.80"
+printversion = "v0.81"
requiredconfversion = "2" -- also at *lwarpmk.conf
function printhelp ()
@@ -18672,7 +18759,9 @@ if sourcename=="lwarp" then
print ("lwarpmk: ===")
print ("lwarpmk: lwarp.sty has recently been recompiled in this directory,")
print ("lwarpmk: and \"lwarpmk.conf\" is no longer set for your own project.")
- print ("lwarpmk: Recompile your own project using pdf/lua/xelatex <projectname>.")
+ print ("lwarpmk: (Perhaps you are not in your project's directory?)")
+ print ("lwarpmk: In your project directory, recompile your project")
+ print ("lwarpmk: using pdf/lua/xelatex <projectname>.")
print ("lwarpmk: After a recompile, \"lwarpmk.conf\" will be set for your project,")
print ("lwarpmk: and you may again use lwarpmk.")
print ("lwarpmk: ===")
@@ -22530,6 +22619,37 @@ end -- not --version
% inside an \HTML\ \element{alt} tag, so must convert them to \HTML\ entities.
%
%
+% \begin{macro}{\LWR@replacestrings} \marg{search} \marg{replace}
+%
+% Replaces strings inside \cs{tmpb}.
+%
+% Modified from the original by \textsc{Petr Olsak}, from the \pkg{opmac} package.
+%
+% \changes{v0.81}{2020/02/24}{Added.}
+% \begin{macrocode}
+\bgroup
+\catcode`!=3 \catcode`?=3
+
+\long\gdef\LWR@replacestrings@addto#1#2{%
+ \expandafter\def\expandafter#1\expandafter{#1#2}%
+}
+
+\gdef\LWR@replacestrings#1#2{%
+ \long\def\LWR@replacestringsA##1#1{\def\tmpb{##1}\LWR@replacestringsB}%
+ \long\def\LWR@replacestringsB##1#1{%
+ \ifx!##1\relax \else\LWR@replacestrings@addto\tmpb{#2##1}%
+ \expandafter\LWR@replacestringsB\fi%
+ }% improved version <May 2016> inspired
+ \expandafter\LWR@replacestringsA\tmpb?#1!#1% from pysyntax.tex by Petr Krajnik
+ \long\def\LWR@replacestringsA##1?{%
+ \def\tmpb{##1}%
+ }\expandafter\LWR@replacestringsA\tmpb%
+}
+\egroup
+% \end{macrocode}
+% \end{macro}
+
+
% \begin{macro}{\LWR@subHTMLsanitize}
%
% \cs{LWR@strresult} must first be set by \cs{LWR@HTMLsanitize},
@@ -22538,26 +22658,23 @@ end -- not --version
% \changes{v0.36}{2017/08/16}{Fix for \pkg{babel-french}.}
% \changes{v0.51}{2018/03/07}{Fix: Escapes double quotes.}
% \changes{v0.79}{2020/01/27}{Fix: \cs{\&}. Factored.}
+% \changes{v0.81}{2020/02/24}{Faster.}
% \begin{macrocode}
+\catcode`\#=12
+\catcode`\&=12
\newcommand{\LWR@subHTMLsanitize}{%
% \end{macrocode}
% The |&|, |<|, and |>| may be interpreted by the browser:
+%
% \begin{macrocode}
- \protect\StrSubstitute{\detokenize\expandafter{\LWR@strresult}}%
- {\detokenize{&}}{\detokenize{&amp;}}[\LWR@strresult]%
-% \end{macrocode}
-% \begin{macrocode}
- \protect\StrSubstitute{\detokenize\expandafter{\LWR@strresult}}%
- {\detokenize{<}}{\detokenize{&lt;}}[\LWR@strresult]%
-% \end{macrocode}
-% \begin{macrocode}
- \protect\StrSubstitute{\detokenize\expandafter{\LWR@strresult}}%
- {\detokenize{>}}{\detokenize{&gt;}}[\LWR@strresult]%
+ \edef\tmpb{\detokenize\expandafter{\LWR@strresult}}%
+ \LWR@replacestrings{&}{&amp;}%
+ \LWR@replacestrings{<}{&lt;}%
+ \LWR@replacestrings{>}{&gt;}%
% \end{macrocode}
% The double quote occasionally causes problems.
% \begin{macrocode}
- \protect\StrSubstitute{\detokenize\expandafter{\LWR@strresult}}%
- {\detokenize{"}}{\detokenize{&quot;}}[\LWR@strresult]%
+ \LWR@replacestrings{"}{&quot;}%
% \end{macrocode}
% MathJax allows expressions to be defined with \cs{newcommand}.
% These expressions would appear with |##| for each argument,
@@ -22565,11 +22682,11 @@ end -- not --version
% This must be done after all the above changes.
% Attempting another conversion after this causes an error upon further expansion.
% \begin{macrocode}
- \protect\StrSubstitute{\detokenize\expandafter{\LWR@strresult}}%
- {\detokenize{##}}{\LWR@origpound}[\LWR@strresult]%
-% \end{macrocode}
-% \begin{macrocode}
+ \LWR@replacestrings{##}{#}%
+ \edef\LWR@strresult{\detokenize\expandafter{\tmpb}}%
}
+\catcode`\#=6
+\catcode`\&=4
% \end{macrocode}
% \end{macro}
@@ -22703,8 +22820,10 @@ end -- not --version
% \changes{v0.80}{2020/02/06}{Add: Info message.}
% \begin{macrocode}
\newcommand*{\LWR@infoprocessingmathjax}[1]{%
+\typeout{---}
\typeout{Package lwarp: Processing MathJax customizations for #1.}
\typeout{\space\space This may take a moment.}
+\typeout{---}
}
% \end{macrocode}
% \end{macro}
@@ -25595,7 +25714,7 @@ end -- not --version
% \changes{v0.25}{2017/03/17}{Basic \LaTeX\ theorems: improved \CSS.}
%
%
-% \DescribeMacro{\newtheorem} \marg{text} \oarg{counter} -or- \oarg{oldname} \marg{text}
+% \DescribeMacro{\newtheorem} \marg{text} \oarg{counter} \orelse\ \oarg{oldname} \marg{text}
%
% A few minor changes are made to supply \HTML\ tags.
%
@@ -27754,7 +27873,7 @@ end -- not --version
% \subsection{Printing @ or ! tags}
-% \begin{macro}{\LWR@printatbang} \marg{at -or- bang} \marg{index}
+% \begin{macro}{\LWR@printatbang} \marg{at \orelse\ bang} \marg{index}
%
% \changes{v0.41}{2017/09/28}{Add: \cs{cmidrule} trims.}
% \changes{v0.41}{2017/10/02}{Add: Mute at and bang columns for \cs{bottomrule}.}
@@ -32735,6 +32854,7 @@ end -- not --version
% or if graphicx/s not loaded.}
% \changes{v0.59}{2018/09/02}{Uses \filenm{.eps} if \DVI\ \prog{latex}.}
% \changes{v0.73}{2019/06/30}{Improved warning messages.}
+% \changes{v0.81}{2020/02/29}{Improved warning messages.}
% \begin{macrocode}
\AtBeginDocument{
@@ -32760,19 +32880,31 @@ end -- not --version
\LWR@origincludegraphics{\LWR@baselinename}%
}
}{
- \PackageWarningNoLine{lwarp}{Load graphicx or graphics
- for improved\MessageBreak
- SVG math baselines%
+ \newcommand*{\LWR@addbaselinemarker}{%
+ \global\booltrue{LWR@warnbaselinemarker}%
+ }
+ \AtEndDocument{
+ \ifbool{LWR@warnbaselinemarker}{
+ \PackageWarningNoLine{lwarp}{%
+ Load graphicx or graphics for improved\MessageBreak
+ SVG math sizing and baselines%
+ }
+ }{}
}
- \newcommand*{\LWR@addbaselinemarker}{}
}
}
}{% lwarp_baseline_marker.png or .eps is not present
- \PackageWarningNoLine{lwarp}{%
- File \LWR@baselinename\space is not installed\MessageBreak
- alongside the lwarp-*.sty files,\MessageBreak
- so SVG math baselines may not be accurate}
- \newcommand*{\LWR@addbaselinemarker}{}
+ \newcommand*{\LWR@addbaselinemarker}{%
+ \global\booltrue{LWR@warnbaselinemarker}%
+ }
+ \AtEndDocument{
+ \ifbool{LWR@warnbaselinemarker}{
+ \PackageWarningNoLine{lwarp}{%
+ File \LWR@baselinename\space is not installed\MessageBreak
+ alongside the lwarp-*.sty files, so\MessageBreak
+ SVG math sizing and baselines may not be accurate}
+ }{}
+ }
}
}% AtBeginDocument
@@ -32780,6 +32912,16 @@ end -- not --version
% \end{macro}
+% \DescribeBoolean{LWR@warnbaselinemarker}
+% True if the math baseline marker was ever called for, but
+% \pkg{graphics} or \pkg{graphicx} were not loaded.
+% \begin{macrocode}
+\newbool{LWR@warnbaselinemarker}
+\boolfalse{LWR@warnbaselinemarker}
+% \end{macrocode}
+
+
+
% \DescribeBoolean{LWR@unknownmathsize}
% If \tikz\ or other objects are used inside math mode, the resulting
% image may exceed the \TeX\ box, resulting in an incorrect measurement of
@@ -33343,9 +33485,12 @@ end -- not --version
\renewcommand{\@ensuredmath}[1]{%
\ifbool{mathjax}{%
- \LWR@subsingledollar*{\AltTextOpen\MathImageAltText\AltTextClose}{%
+ \LWR@subsingledollar*{\AltTextOpen\MathImageAltText\AltTextClose}%
+ {%
\protect\LWR@HTMLsanitize{\detokenize\expandafter{#1}}%
- }{\relax%
+ }%
+ {%
+ \relax%
\LWR@origensuredmath{#1}%
}%
}{% SVG math
@@ -38933,6 +39078,15 @@ color:\LWR@origpound\LWR@tempcolor%
\newcommand*{\EndAccSupp}[1]{}
% \end{macrocode}
%
+% For \brand{MathJax}:
+% \changes{v0.80}{2020/02/20}{\pkg{accsupp}: Added \brand{MathJax} emulation.}
+% \begin{macrocode}
+\begin{warpMathJax}
+\CustomizeMathJax{\newcommand{\BeginAccSupp}[1]{}}
+\CustomizeMathJax{\newcommand{\EndAccSupp}[1]{}}
+\end{warpMathJax}
+% \end{macrocode}
+%
% \iffalse
%</accsupp>
% \fi
@@ -41255,15 +41409,49 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"%
% \pkg{axessibility} is ignored.
%
% \changes{v0.59}{2018/07/25}{\pkg{axessibility}: Added.}
+% \changes{v0.81}{2020/02/20}{\pkg{axessibility}: Updated to 2020/01/08 version.}
%
% \codehtml
%
% \begin{macrocode}
-\LWR@ProvidesPackageDrop{axessibility}
+\PackageInfo{lwarp}{Using the lwarp version of package `axessibility'.}%
+\ProvidesPackage{lwarp-axessibility}% no date is declared by the original
+
+\newif\iftagpdfopt
+
+\DeclareOption{accsupp}{
+ \tagpdfoptfalse
+}
+
+\DeclareOption{tagpdf}{
+ \tagpdfopttrue
+}
+
+\ProcessOptions\relax
+
+\iftagpdfopt
+ \RequirePackage{tagpdf}
+\else
+ \RequirePackage{accsupp}
+\fi
% \end{macrocode}
%
% \begin{macrocode}
-\newcommand{\wrap}[1]{}
+\long\def\wrap#1{}
+\long\def\wrapml#1{}
+\long\def\wrapmlstar#1{}
+\long\def\wrapmlalt#1{}
+% \end{macrocode}
+%
+% For \brand{MathJax}. These usually will not be needed.
+% \changes{v0.81}{2020/02/20}{\pkg{axessibility}: Added \brand{MathJax} emulation.}
+% \begin{macrocode}
+\begin{warpMathJax}
+\CustomizeMathJax{\newcommand{\wrap}[1]{}}
+\CustomizeMathJax{\newcommand{\wrapml}[1]{}}
+\CustomizeMathJax{\newcommand{\wrapmlstar}[1]{}}
+\CustomizeMathJax{\newcommand{\wrapmlalt}[1]{}}
+\end{warpMathJax}
% \end{macrocode}
%
% \iffalse
@@ -41271,6 +41459,8 @@ span style="width:\LWR@printlength{\ALG@thistlm}; display:inline-block;"%
% \fi
%
%
+%
+%
% \iffalse
%<*axodraw2>
% \fi
@@ -45424,6 +45614,66 @@ name = \chemmacros_translate:n {scheme-name}
%
%
%
+% \iffalse
+%<*colonequals>
+% \fi
+%
+% \part{lwarp-colonequals.sty}
+%
+% \section{colonequals}
+%
+% \credits{Heiko Oberdiek}
+%
+% \DescribePackage{colonequals}
+% \pkg{colonequals} is used as-is for \SVG\ math, and
+% is emulated for \brand{MathJax}.
+%
+% Since \brand{Unicode} symbols are not available for each of the following,
+% only two are used for the single and double colons, and the other symbols
+% are derived in a consistent manner. Occasional negative space is added as well.
+% This may need to be undone for some fonts.
+%
+% \changes{v0.81}{2020/03/03}{\pkg{colonequals}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{colonequals}[2016/05/16]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\begin{warpMathJax}
+\LWR@infoprocessingmathjax{colonequals}
+
+\CustomizeMathJax{\newcommand{\ratio}{\unicode{x2236}}}
+\CustomizeMathJax{\newcommand{\coloncolon}{\unicode{x2237}}}
+\CustomizeMathJax{\newcommand{\colonequals}{\coloncolon=}}
+\CustomizeMathJax{\newcommand{\coloncolonequals}{\coloncolon=}}
+\CustomizeMathJax{\newcommand{\equalscolon}{=\!\ratio}}
+\CustomizeMathJax{\newcommand{\equalscoloncolon}{=\!\coloncolon}}
+\CustomizeMathJax{\newcommand{\colonminus}{\ratio-}}
+\CustomizeMathJax{\newcommand{\coloncolonminus}{\coloncolon-}}
+\CustomizeMathJax{\newcommand{\minuscolon}{-\ratio}}
+\CustomizeMathJax{\newcommand{\minuscoloncolon}{-\coloncolon}}
+\CustomizeMathJax{\newcommand{\colonapprox}{\ratio\approx}}
+\CustomizeMathJax{\newcommand{\coloncolonapprox}{\coloncolon\approx}}
+\CustomizeMathJax{\newcommand{\approxcolon}{\approx\!\ratio}}
+\CustomizeMathJax{\newcommand{\approxcoloncolon}{\approx\!\coloncolon}}
+\CustomizeMathJax{\newcommand{\colonsim}{\ratio\sim}}
+\CustomizeMathJax{\newcommand{\coloncolonsim}{\coloncolon\sim}}
+\CustomizeMathJax{\newcommand{\simcolon}{\sim\!\ratio}}
+\CustomizeMathJax{\newcommand{\simcoloncolon}{\sim\!\coloncolon}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</colonequals>
+% \fi
+%
+%
+%
+%
+%
%
% \iffalse
%<*color>
@@ -46061,6 +46311,42 @@ name = \chemmacros_translate:n {scheme-name}
%
%
%
+%
+% \iffalse
+%<*decimal>
+% \fi
+%
+% \part{lwarp-decimal.sty}
+%
+% \section{decimal}
+%
+% \credits{A.\,Syropoulos and R.\,W.\,D.\,Nickalls}
+%
+% \DescribePackage{decimal}
+% \pkg{decimal} works as-is for \SVG\ math, and
+% is emulated for \brand{MathJax}.
+%
+% \changes{v0.81}{2020/02/22}{\pkg{decimal}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{decimal}[2011/06/03]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\begin{warpMathJax}
+\CustomizeMathJax{\def\.{\mbox{.}}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</decimal>
+% \fi
+%
+%
+%
+%
% \iffalse
%<*diagbox>
% \fi
@@ -46249,6 +46535,90 @@ name = \chemmacros_translate:n {scheme-name}
%
%
%
+%
+% \iffalse
+%<*DotArrow>
+% \fi
+%
+% \part{lwarp-DotArrow.sty}
+%
+% \section{DotArrow}
+%
+% \credits{Sven Schneider}
+%
+% \DescribePackage{DotArrow}
+% \pkg{DotArrow} is patched for use by \pkg{lwarp},
+% and emulated for \brand{MathJax}.
+%
+% \changes{v0.81}{2020/03/03}{\pkg{DotArrow}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{DotArrow}[2007/02/12]
+% \end{macrocode}
+%
+% The width must be recomputed each time, depending on print or \HTML\ output.
+% \begin{macrocode}
+\xpretocmd{\dotarrow}{\settowidth{\oneWidth}{\onePartX}}{}{}
+
+\begin{warpMathJax}
+\CustomizeMathJax{\newcommand{\dotarrow}[1]{\stackrel{#1}{\unicode{x21E2}}}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</DotArrow>
+% \fi
+%
+%
+%
+%
+%
+% \iffalse
+%<*dotlessi>
+% \fi
+%
+% \part{lwarp-dotlessi.sty}
+%
+% \section{dotlessi}
+%
+% \credits{Javier Bezos}
+%
+% \DescribePackage{dotlessi}
+% \pkg{dotlessi} is used as-is for \SVG\ math, and
+% is emulated for \brand{MathJax}.
+%
+% Use |\usepackage{cmap}| if \cs{dotlessj} does not appear in \HTML\ in text mode.
+% \watchout[\HTML\ \cs{dotlessj}]
+% See \cref{sec:fonts}.
+%
+% For \brand{MathJax}, use \cs{boldsymbol} instead of \cs{mathbf}.
+% \watchout[not bold]
+%
+% \changes{v0.81}{2020/02/21}{\pkg{dotlessi}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{dotlessi}[1999/10/12]
+% \end{macrocode}
+%
+% For \brand{MathJax}:
+% \begin{macrocode}
+\begin{warpMathJax}
+\CustomizeMathJax{\let\dotlessi\imath}
+\CustomizeMathJax{\let\dotlessj\jmath}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</dotlessi>
+% \fi
+%
+%
+%
+%
% \iffalse
%<*dprogress>
% \fi
@@ -46503,6 +46873,246 @@ name = \chemmacros_translate:n {scheme-name}
%
%
%
+% \iffalse
+%<*econometrics>
+% \fi
+%
+% \part{lwarp-econometrics.sty}
+%
+% \section{econometrics}
+%
+% \credits{Erik Kole}
+%
+% \DescribePackage{econometrics}
+% \pkg{econometrics} is used as-is for \SVG\ math, and
+% is emulated for \brand{MathJax}.
+%
+% \changes{v0.81}{2020/03/01}{\pkg{econometrics}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{econometrics}% no date specified in the original
+% \end{macrocode}
+%
+% \begin{macrocode}
+\begin{warpMathJax}
+\LWR@infoprocessingmathjax{econometrics}
+
+\CustomizeMathJax{\newcommand{\SC}{\mathbb{C}}}
+\CustomizeMathJax{\newcommand{\SN}{\mathbb{N}}}
+\CustomizeMathJax{\newcommand{\SQ}{\mathbb{Q}}}
+\CustomizeMathJax{\newcommand{\SR}{\mathbb{R}}}
+\CustomizeMathJax{\newcommand{\SZ}{\mathbb{Z}}}
+
+\CustomizeMathJax{\newcommand{\calA}{\mathcal{A}}}
+\CustomizeMathJax{\newcommand{\calB}{\mathcal{B}}}
+\CustomizeMathJax{\newcommand{\calC}{\mathcal{C}}}
+\CustomizeMathJax{\newcommand{\calD}{\mathcal{D}}}
+\CustomizeMathJax{\newcommand{\calE}{\mathcal{E}}}
+\CustomizeMathJax{\newcommand{\calF}{\mathcal{F}}}
+\CustomizeMathJax{\newcommand{\calG}{\mathcal{G}}}
+\CustomizeMathJax{\newcommand{\calH}{\mathcal{H}}}
+\CustomizeMathJax{\newcommand{\calI}{\mathcal{I}}}
+\CustomizeMathJax{\newcommand{\calJ}{\mathcal{J}}}
+\CustomizeMathJax{\newcommand{\calK}{\mathcal{K}}}
+\CustomizeMathJax{\newcommand{\calL}{\mathcal{L}}}
+\CustomizeMathJax{\newcommand{\calM}{\mathcal{M}}}
+\CustomizeMathJax{\newcommand{\calN}{\mathcal{N}}}
+\CustomizeMathJax{\newcommand{\calO}{\mathcal{O}}}
+\CustomizeMathJax{\newcommand{\calP}{\mathcal{P}}}
+\CustomizeMathJax{\newcommand{\calQ}{\mathcal{Q}}}
+\CustomizeMathJax{\newcommand{\calR}{\mathcal{R}}}
+\CustomizeMathJax{\newcommand{\calS}{\mathcal{S}}}
+\CustomizeMathJax{\newcommand{\calT}{\mathcal{T}}}
+\CustomizeMathJax{\newcommand{\calU}{\mathcal{U}}}
+\CustomizeMathJax{\newcommand{\calV}{\mathcal{V}}}
+\CustomizeMathJax{\newcommand{\calW}{\mathcal{W}}}
+\CustomizeMathJax{\newcommand{\calX}{\mathcal{X}}}
+\CustomizeMathJax{\newcommand{\calY}{\mathcal{Y}}}
+\CustomizeMathJax{\newcommand{\calZ}{\mathcal{Z}}}
+
+\CustomizeMathJax{\newcommand{\mA}{\bm A}}
+\CustomizeMathJax{\newcommand{\va}{\bm a}}
+\CustomizeMathJax{\newcommand{\mB}{\bm B}}
+\CustomizeMathJax{\newcommand{\vb}{\bm b}}
+\CustomizeMathJax{\newcommand{\mC}{\bm C}}
+\CustomizeMathJax{\newcommand{\vc}{\bm c}}
+\CustomizeMathJax{\newcommand{\mD}{\bm D}}
+\CustomizeMathJax{\newcommand{\vd}{\bm d}}
+\CustomizeMathJax{\newcommand{\mE}{\bm E}}
+\CustomizeMathJax{\newcommand{\ve}{\bm e}}
+\CustomizeMathJax{\newcommand{\mF}{\bm F}}
+\CustomizeMathJax{\newcommand{\vf}{\bm f}}
+\CustomizeMathJax{\newcommand{\mG}{\bm G}}
+\CustomizeMathJax{\newcommand{\vg}{\bm g}}
+\CustomizeMathJax{\newcommand{\mH}{\bm H}}
+\CustomizeMathJax{\newcommand{\vh}{\bm h}}
+\CustomizeMathJax{\newcommand{\mI}{\bm I}}
+\CustomizeMathJax{\newcommand{\vi}{\bm i}}
+\CustomizeMathJax{\newcommand{\mJ}{\bm J}}
+\CustomizeMathJax{\newcommand{\vj}{\bm j}}
+\CustomizeMathJax{\newcommand{\mK}{\bm K}}
+\CustomizeMathJax{\newcommand{\vk}{\bm k}}
+\CustomizeMathJax{\newcommand{\mL}{\bm L}}
+\CustomizeMathJax{\newcommand{\vl}{\bm l}}
+\CustomizeMathJax{\newcommand{\mM}{\bm M}}
+\CustomizeMathJax{\newcommand{\vm}{\bm m}}
+\CustomizeMathJax{\newcommand{\mN}{\bm N}}
+\CustomizeMathJax{\newcommand{\vn}{\bm n}}
+\CustomizeMathJax{\newcommand{\mO}{\bm O}}
+\CustomizeMathJax{\newcommand{\vo}{\bm o}}
+\CustomizeMathJax{\newcommand{\mP}{\bm P}}
+\CustomizeMathJax{\newcommand{\vp}{\bm p}}
+\CustomizeMathJax{\newcommand{\mQ}{\bm Q}}
+\CustomizeMathJax{\newcommand{\vq}{\bm q}}
+\CustomizeMathJax{\newcommand{\mR}{\bm R}}
+\CustomizeMathJax{\newcommand{\vr}{\bm r}}
+\CustomizeMathJax{\newcommand{\mS}{\bm S}}
+\CustomizeMathJax{\newcommand{\vs}{\bm s}}
+\CustomizeMathJax{\newcommand{\mT}{\bm T}}
+\CustomizeMathJax{\newcommand{\vt}{\bm t}}
+\CustomizeMathJax{\newcommand{\mU}{\bm U}}
+\CustomizeMathJax{\newcommand{\vu}{\bm u}}
+\CustomizeMathJax{\newcommand{\mV}{\bm V}}
+\CustomizeMathJax{\newcommand{\vv}{\bm v}}
+\CustomizeMathJax{\newcommand{\mW}{\bm W}}
+\CustomizeMathJax{\newcommand{\vw}{\bm w}}
+\CustomizeMathJax{\newcommand{\mX}{\bm X}}
+\CustomizeMathJax{\newcommand{\vx}{\bm x}}
+\CustomizeMathJax{\newcommand{\mY}{\bm Y}}
+\CustomizeMathJax{\newcommand{\vy}{\bm y}}
+\CustomizeMathJax{\newcommand{\mZ}{\bm Z}}
+\CustomizeMathJax{\newcommand{\vz}{\bm z}}
+
+\CustomizeMathJax{\newcommand{\valpha}{\bm \alpha}}
+\CustomizeMathJax{\newcommand{\vbeta}{\bm \beta}}
+\CustomizeMathJax{\newcommand{\vgamma}{\bm \gamma}}
+\CustomizeMathJax{\newcommand{\vdelta}{\bm \delta}}
+\CustomizeMathJax{\newcommand{\vepsi}{\bm \epsi}}
+\CustomizeMathJax{\newcommand{\vvarepsilon}{\bm \varepsilon}}
+\CustomizeMathJax{\newcommand{\vzeta}{\bm \zeta}}
+\CustomizeMathJax{\newcommand{\veta}{\bm \eta}}
+\CustomizeMathJax{\newcommand{\vtheta}{\bm \theta}}
+\CustomizeMathJax{\newcommand{\viota}{\bm \iota}}
+\CustomizeMathJax{\newcommand{\vkappa}{\bm \kappa}}
+\CustomizeMathJax{\newcommand{\vlambda}{\bm \lambda}}
+\CustomizeMathJax{\newcommand{\vmu}{\bm \mu}}
+\CustomizeMathJax{\newcommand{\vnu}{\bm \nu}}
+\CustomizeMathJax{\newcommand{\vxi}{\bm \xi}}
+\CustomizeMathJax{\newcommand{\vpi}{\bm \pi}}
+\CustomizeMathJax{\newcommand{\vrho}{\bm \rho}}
+\CustomizeMathJax{\newcommand{\vsigma}{\bm \sigma}}
+\CustomizeMathJax{\newcommand{\vtau}{\bm \tau}}
+\CustomizeMathJax{\newcommand{\vupsilon}{\bm \upsilon}}
+\CustomizeMathJax{\newcommand{\vphi}{\bm \phi}}
+\CustomizeMathJax{\newcommand{\vchi}{\bm \chi}}
+\CustomizeMathJax{\newcommand{\vpsi}{\bm \psi}}
+\CustomizeMathJax{\newcommand{\vomega}{\bm \omega}}
+
+\CustomizeMathJax{\newcommand{\mGamma}{\bm \varGamma}}
+\CustomizeMathJax{\newcommand{\mDelta}{\bm \varDelta}}
+\CustomizeMathJax{\newcommand{\mTheta}{\bm \varTheta}}
+\CustomizeMathJax{\newcommand{\mLambda}{\bm \varLambda}}
+\CustomizeMathJax{\newcommand{\mXi}{\bm \varXi}}
+\CustomizeMathJax{\newcommand{\mPi}{\bm \varPi}}
+\CustomizeMathJax{\newcommand{\mSigma}{\bm \varSigma}}
+\CustomizeMathJax{\newcommand{\mUpsilon}{\bm \varUpsilon}}
+\CustomizeMathJax{\newcommand{\mPhi}{\bm \varPhi}}
+\CustomizeMathJax{\newcommand{\mPsi}{\bm \varPsi}}
+\CustomizeMathJax{\newcommand{\mOmega}{\bm \varOmega}}
+
+\CustomizeMathJax{\newcommand{\rb}{\mathrm{b}}}
+\CustomizeMathJax{\newcommand{\rB}{\mathrm{B}}}
+\CustomizeMathJax{\newcommand{\rC}{\mathrm{C}}}
+\CustomizeMathJax{\newcommand{\rD}{\mathrm{D}}}
+\CustomizeMathJax{\newcommand{\rf}{\mathrm{f}}}
+\CustomizeMathJax{\newcommand{\rF}{\mathrm{F}}}
+\CustomizeMathJax{\newcommand{\rH}{\mathrm{H}}}
+\CustomizeMathJax{\newcommand{\rL}{\mathrm{L}}}
+\CustomizeMathJax{\newcommand{\rN}{\mathrm{N}}}
+\CustomizeMathJax{\newcommand{\rt}{\mathrm{t}}}
+\CustomizeMathJax{\newcommand{\rU}{\mathrm{U}}}
+\CustomizeMathJax{\newcommand{\rGam}{\mathrm{Gam}}}
+\CustomizeMathJax{\newcommand{\rBeta}{\mathrm{Beta}}}
+
+\CustomizeMathJax{\newcommand{\Bin}{\mathrm{Bin}}}
+\CustomizeMathJax{\newcommand{\eu}{\mathrm{e}}}
+\CustomizeMathJax{\newcommand{\iu}{\mathrm{i}}}
+\CustomizeMathJax{\newcommand{\LN}{\mathrm{LN}}}
+\CustomizeMathJax{\newcommand{\IN}{\mathrm{IN}}}
+
+\CustomizeMathJax{\newcommand{\Poi}{\mathrm{Poi}}}
+
+\CustomizeMathJax{\newcommand{\ped}[1]{_\mathrm{#1}}}
+\CustomizeMathJax{\newcommand{\ap}[1]{^\mathrm{#1}}}
+\CustomizeMathJax{\renewcommand{\Re}{\mathrm{Re}}{\nolimits}}
+\CustomizeMathJax{\renewcommand{\Im}{\mathrm{Im}}{\nolimits}}
+
+\CustomizeMathJax{\newcommand{\deriv}[3][]{%
+ \frac{\mathrm{d}^{#1}#2}{\mathrm{d}\,#3^{#1}}%
+}}
+\CustomizeMathJax{\newcommand{\pderiv}[3][]{%
+ \frac{\partial^{#1}#2}{\partial #3^{#1}}%
+}}
+
+\CustomizeMathJax{\newcommand{\bias}{\operatorname{bias}}}
+\CustomizeMathJax{\newcommand{\col}{\operatorname{col}}}
+\CustomizeMathJax{\newcommand{\corr}{\operatorname{corr}}}
+\CustomizeMathJax{\newcommand{\cov}{\operatorname{cov}}}
+\CustomizeMathJax{\newcommand{\dg}{\operatorname{dg}}}
+\CustomizeMathJax{\newcommand{\diag}{\operatorname{diag}}}
+\CustomizeMathJax{\newcommand{\E}{\operatorname{E}}}
+\CustomizeMathJax{\newcommand{\etr}{\operatorname{etr}}}
+\CustomizeMathJax{\newcommand{\ip}{\mathrm{int}}{\nolimits}}
+\CustomizeMathJax{\newcommand{\kur}{\operatorname{kur}}}
+\CustomizeMathJax{\newcommand{\MSE}{\operatorname{MSE}}}
+\CustomizeMathJax{\newcommand{\MSFE}{\operatorname{MSFE}}}
+\CustomizeMathJax{\newcommand{\OLS}{\operatorname{OLS}}}
+\CustomizeMathJax{\newcommand{\plim}{\operatorname{plim}}}
+\CustomizeMathJax{\newcommand{\resid}{\operatorname{resid}}}
+\CustomizeMathJax{\newcommand{\rk}{\operatorname{rk}}}
+\CustomizeMathJax{\newcommand{\SE}{\operatorname{SE}}}
+\CustomizeMathJax{\newcommand{\sgn}{\operatorname{sgn}}}
+\CustomizeMathJax{\newcommand{\tr}{\operatorname{tr}}}
+\CustomizeMathJax{\newcommand{\var}{\operatorname{var}}}
+\CustomizeMathJax{\renewcommand{\vec}{\operatorname{vec}}}
+\CustomizeMathJax{\newcommand{\vech}{\operatorname{vech}}}
+
+\CustomizeMathJax{\newcommand{\distr}{\sim}}
+\CustomizeMathJax{\newcommand{\adistr}{\stackrel{a}{\distr}}}
+\CustomizeMathJax{\newcommand{\diff}{\Delta}}
+\CustomizeMathJax{\newcommand{\fdiff}{\diff_{\rf}}}
+\CustomizeMathJax{\newcommand{\bdiff}{\diff_{\rb}}}
+
+\CustomizeMathJax{\newcommand{\eps}{\epsilon}}
+\CustomizeMathJax{\newcommand{\epsi}{\varepsilon}}
+
+\CustomizeMathJax{\newcommand{\longto}{\longrightarrow}}
+\CustomizeMathJax{\newcommand{\pto}{\stackrel{p}{\longrightarrow}}}
+\CustomizeMathJax{\newcommand{\dto}{\stackrel{d}{\longrightarrow}}}
+\CustomizeMathJax{\newcommand{\wto}{\stackrel{w}{\longrightarrow}}}
+
+\CustomizeMathJax{\newcommand{\Infmat}{\bm\calI}}
+\CustomizeMathJax{\newcommand{\Hesmat}{\bm\calH}}
+\CustomizeMathJax{\newcommand{\bcdot}{\bullet}}
+
+\CustomizeMathJax{\newcommand{\vones}{\bm\imath}}
+\CustomizeMathJax{\newcommand{\vzeros}{\boldsymbol{0}}}
+\CustomizeMathJax{\newcommand{\mZeros}{\mathbf{O}}}
+
+\CustomizeMathJax{\newcommand{\e}{\eu}}
+\CustomizeMathJax{\newcommand{\mply}{\cdot}}
+\CustomizeMathJax{\newcommand{\rW}{\ensuremath{\mathrm{W}}}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</econometrics>
+% \fi
+%
+%
+%
%
% \iffalse
%<*ed>
@@ -46832,6 +47442,267 @@ name = \chemmacros_translate:n {scheme-name}
%
%
%
+% \iffalse
+%<*engtlc>
+% \fi
+%
+% \part{lwarp-engtlc.sty}
+%
+% \section{engtlc}
+%
+% \credits{Claudio Fiandrino}
+%
+% \DescribePackage{engtlc}
+% \pkg{engtlc} is patched for use by \pkg{lwarp}.
+% \brand{MathJax} is emulated.
+%
+% For \brand{MathJax}, \cs{signt}, \cs{signf}, \cs{signn}, and \cs{signz}
+% \watchout
+% do not force letter case as they do in \SVG\ math.
+%
+% \changes{v0.81}{2020/02/25}{\pkg{engtlc}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{engtlc}[2012/12/18]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand{\LWR@HTML@finees}{%
+ \begin{BlockClass}[text-align:right]{exerend}%
+ \HTMLunicode{220E}%
+ \end{BlockClass}%
+}
+\LWR@formatted{finees}
+
+\newcommand{\LWR@HTML@exerend}{\finees}
+\LWR@formatted{exerend}
+
+\begin{warpMathJax}
+\LWR@infoprocessingmathjax{engtlc}
+
+\CustomizeMathJax{\newcommand{\unit}[1]{\,\mathrm{#1}}}
+\CustomizeMathJax{\newcommand{\micro}{\mathrm{\unicode{x00B5}}}}
+%
+\CustomizeMathJax{\newcommand{\ho}{\unit{h}}}
+\CustomizeMathJax{\newcommand{\s}{\unit{s}}}
+\CustomizeMathJax{\newcommand{\ms}{\unit{ms}}}
+\CustomizeMathJax{\newcommand{\us}{\unit{\micro s}}}
+\CustomizeMathJax{\newcommand{\ns}{\unit{ns}}}
+\CustomizeMathJax{\newcommand{\ps}{\unit{ps}}}
+%
+\CustomizeMathJax{\newcommand{\um}{\unit{\micro m}}}
+\CustomizeMathJax{\newcommand{\mm}{\unit{mm}}}
+\CustomizeMathJax{\newcommand{\cm}{\unit{cm}}}
+\CustomizeMathJax{\newcommand{\dm}{\unit{dm}}}
+\CustomizeMathJax{\newcommand{\m}{\unit{m}}}
+\CustomizeMathJax{\newcommand{\km}{\unit{km}}}
+%
+\CustomizeMathJax{\newcommand{\MA}{\unit{MA}}}
+\CustomizeMathJax{\newcommand{\kA}{\unit{kA}}}
+\CustomizeMathJax{\newcommand{\A}{\unit{A}}}
+\CustomizeMathJax{\newcommand{\mA}{\unit{mA}}}
+\CustomizeMathJax{\newcommand{\uA}{\unit{\micro A}}}
+\CustomizeMathJax{\newcommand{\nA}{\unit{nA}}}
+%
+\CustomizeMathJax{\newcommand{\MV}{\unit{MV}}}
+\CustomizeMathJax{\newcommand{\kV}{\unit{kV }}}
+\CustomizeMathJax{\newcommand{\V}{\unit{V}}}
+\CustomizeMathJax{\newcommand{\mV}{\unit{mV}}}
+\CustomizeMathJax{\newcommand{\uV}{\unit{\micro V}}}
+%
+\CustomizeMathJax{\newcommand{\mohm}{\unit{m\Omega}}}
+\CustomizeMathJax{\newcommand{\ohm}{\unit{\Omega}}}
+\CustomizeMathJax{\newcommand{\kohm}{\unit{k\Omega}}}
+\CustomizeMathJax{\newcommand{\Mohm}{\unit{M\Omega}}}
+%
+\CustomizeMathJax{\newcommand{\pSi}{\unit{pS}}}
+\CustomizeMathJax{\newcommand{\nSi}{\unit{nS}}}
+\CustomizeMathJax{\newcommand{\uSi}{\unit{\micro S}}}
+\CustomizeMathJax{\newcommand{\mSi}{\unit{mS}}}
+\CustomizeMathJax{\newcommand{\Si}{\unit{S}}}
+\CustomizeMathJax{\newcommand{\kSi}{\unit{kS}}}
+\CustomizeMathJax{\newcommand{\MSi}{\unit{MS}}}
+%
+\CustomizeMathJax{\newcommand{\fFa}{\unit{fF}}}
+\CustomizeMathJax{\newcommand{\pFa}{\unit{pF}}}
+\CustomizeMathJax{\newcommand{\nFa}{\unit{nF}}}
+\CustomizeMathJax{\newcommand{\uFa}{\unit{\micro F}}}
+\CustomizeMathJax{\newcommand{\mFa}{\unit{mF}}}
+\CustomizeMathJax{\newcommand{\Fa}{\unit{F}}}
+%
+\CustomizeMathJax{\newcommand{\fHe}{\unit{fH}}}
+\CustomizeMathJax{\newcommand{\pHe}{\unit{pH}}}
+\CustomizeMathJax{\newcommand{\nHe}{\unit{nH}}}
+\CustomizeMathJax{\newcommand{\uHe}{\unit{\micro H}}}
+\CustomizeMathJax{\newcommand{\mHe}{\unit{mH}}}
+\CustomizeMathJax{\newcommand{\He}{\unit{H}}}
+%
+\CustomizeMathJax{\newcommand{\dB}{\unit{dB}}}
+\CustomizeMathJax{\newcommand{\dBm}{\unit{dBm}}}
+%
+\CustomizeMathJax{\newcommand{\uW}{\unit{\micro W}}}
+\CustomizeMathJax{\newcommand{\mW}{\unit{mW}}}
+\CustomizeMathJax{\newcommand{\W}{\unit{W}}}
+\CustomizeMathJax{\newcommand{\kW}{\unit{kW}}}
+\CustomizeMathJax{\newcommand{\MW}{\unit{MW}}}
+%
+\CustomizeMathJax{\newcommand{\Hz}{\unit{Hz}}}
+\CustomizeMathJax{\newcommand{\kHz}{\unit{kHz}}}
+\CustomizeMathJax{\newcommand{\MHz}{\unit{MHz}}}
+\CustomizeMathJax{\newcommand{\GHz}{\unit{GHz}}}
+\CustomizeMathJax{\newcommand{\THz}{\unit{THz}}}
+%
+\CustomizeMathJax{\newcommand{\bit}{\unit{bit}}}
+\CustomizeMathJax{\newcommand{\kbit}{\unit{Kib}}}
+\CustomizeMathJax{\newcommand{\Mbit}{\unit{Mib}}}
+\CustomizeMathJax{\newcommand{\Byte}{\unit{B}}}
+\CustomizeMathJax{\newcommand{\kByte}{\unit{KiB}}}
+\CustomizeMathJax{\newcommand{\MByte}{\unit{Mib}}}
+\CustomizeMathJax{\newcommand{\GByte}{\unit{GiB}}}
+\CustomizeMathJax{\newcommand{\TByte}{\unit{TiB}}}
+\CustomizeMathJax{\newcommand{\bits}{\unit{bit/s}}}
+\CustomizeMathJax{\newcommand{\kbits}{\unit{Kib/s}}}
+\CustomizeMathJax{\newcommand{\Mbits}{\unit{Mib/s}}}
+\CustomizeMathJax{\newcommand{\Bytes}{\unit{B/s}}}
+\CustomizeMathJax{\newcommand{\kBytes}{\unit{KiB/s}}}
+\CustomizeMathJax{\newcommand{\MBytes}{\unit{MiB/s}}}
+\CustomizeMathJax{\newcommand{\GBytes}{\unit{GiB/s}}}
+\CustomizeMathJax{\newcommand{\TBytes}{\unit{TiB/s}}}
+\CustomizeMathJax{\newcommand{\chips}{\unit{chip/s}}}
+\CustomizeMathJax{\newcommand{\kchips}{\unit{Ki\mkern2mu chip/s}}}
+\CustomizeMathJax{\newcommand{\Mchips}{\unit{Mi\mkern2mu chip/s}}}
+\CustomizeMathJax{\newcommand{\chipsubit}{\unit{chip/bit}}}
+%
+\CustomizeMathJax{\newcommand{\frecciadex}[1][0.5]{%
+ \hspace{.25cm}\Longrightarrow \hspace{.25cm}}%
+}
+\CustomizeMathJax{\newcommand{\varianzarumore}{\frac{N_0}{2}}}
+%
+\CustomizeMathJax{\newcommand{\etsymbolbracearg}[2]{%
+ #1\mathopen{}\left\lbrace#2\right\rbrace\mathclose{}}%
+}
+\CustomizeMathJax{\newcommand{\fourier}[1]{\etsymbolbracearg{\mathcal{F}}{#1}}}
+\CustomizeMathJax{\newcommand{\invfourier}[1]{\etsymbolbracearg{\mathcal{F}^{-1}}{#1}}}
+\CustomizeMathJax{\newcommand{\partereale}[1]{\etsymbolbracearg{\textbf{Re}}{#1}}}
+\CustomizeMathJax{\newcommand{\parteimm}[1]{\etsymbolbracearg{\textbf{Im}}{#1}}}
+\CustomizeMathJax{\newcommand{\Info}[1]{I\left(#1\right)}}
+\CustomizeMathJax{\newcommand{\versore}[1]{\hat{#1}}}
+\CustomizeMathJax{\newcommand{\vettore}[1]{\overrightarrow{#1}}}
+\CustomizeMathJax{\newcommand{\coseno}[1]{\cos\left(2\pi#1t\right)}}
+\CustomizeMathJax{\newcommand{\seno}[1]{\sin\left(2\pi#1t\right)}}
+\CustomizeMathJax{\newcommand{\energia}[1]{\mathcal{E}_{#1}}}
+\CustomizeMathJax{\newcommand{\moduloexp}[2]{\left\vert#1\right\vert^{#2}}}
+\CustomizeMathJax{\newcommand{\modulo}[1]{\left\vert#1\right\vert}}
+\CustomizeMathJax{\newcommand{\indB}[1]{%
+ \mathopen{}\left.#1\right\vert_{\mathrm{dB}}\mathclose{}}}%
+\CustomizeMathJax{\newcommand{\for}[2]{\left. #1 \right\vert_{#2}}}
+\CustomizeMathJax{\newcommand{\massimo}[1]{\etsymbolbracearg{\max}{#1}}}
+\CustomizeMathJax{\newcommand{\minimo}[1]{\etsymbolbracearg{\min}{#1}}}
+\CustomizeMathJax{\newcommand{\valc}{3\cdot 10^8}}
+\CustomizeMathJax{\newcommand{\loga}[2]{\log_{#1}#2}}
+\CustomizeMathJax{\newcommand{\analitic}[1]{\mathring{#1}}}
+\CustomizeMathJax{\newcommand{\diff}{\mathop{}\mathopen{\mathrm{d}}}}
+\CustomizeMathJax{\newcommand{\intinf}[1]{\int_{-\infty}^{+\infty}{#1}}}
+\CustomizeMathJax{\newcommand{\deltain}[1]{\delta\left(#1\right)}}
+\CustomizeMathJax{\newcommand{\iu}{\mathrm{j}}}
+\CustomizeMathJax{\newcommand{\ex}[1]{\mathrm{e}^{#1}}}
+%
+\CustomizeMathJax{\newcommand{\gammatens}{{}^{\mathrm{V}}\Gamma}}
+\CustomizeMathJax{\newcommand{\gammacorr}{{}^{\mathrm{I}}\Gamma}}
+\CustomizeMathJax{\newcommand{\gammatensin}[1]{{}^{\mathrm{V}}\Gamma_{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\gammacorrin}[1]{{}^{\mathrm{I}}\Gamma_{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\gammain}[1]{\Gamma_{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\gammak}{{}^{\mathrm{k}}\Gamma}}
+%
+\CustomizeMathJax{\newcommand{\lbvt}{\lambda_0}}
+\CustomizeMathJax{\newcommand{\lbg}{\lambda_g}}
+\CustomizeMathJax{\newcommand{\lbgvt}{\lambda_{g_0}}}
+%
+\CustomizeMathJax{\newcommand{\potin}[1]{P_{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\potdisp}[1][]{P_{\mathrm{disp}}^{#1}}}
+\CustomizeMathJax{\newcommand{\potDC}[1][]{P_{\mathrm{DC}}^{#1}}}
+\CustomizeMathJax{\newcommand{\potCC}[1][]{P_{\mathrm{CC}}^{#1}}}
+\CustomizeMathJax{\newcommand{\potirr}[1][]{P_{\mathrm{irr}}^{#1}}}
+\CustomizeMathJax{\newcommand{\potdiss}[1][]{P_{\mathrm{diss}}^{#1}}}
+\CustomizeMathJax{\newcommand{\potinc}[1][]{P_{\mathrm{inc}}^{#1}}}
+%
+\CustomizeMathJax{\newcommand{\z}[1]{Z_{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\znorm}[1]{z_{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\y}[1]{Y_{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\ynorm}[1]{y_{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\zinf}[1][]{Z_{\infty#1}}}
+\CustomizeMathJax{\newcommand{\zinfn}[1]{\zinf[#1]}}
+\CustomizeMathJax{\newcommand{\yinf}[1][]{Y_{\infty#1}}}
+\CustomizeMathJax{\newcommand{\yinfn}[1]{\yinf[#1]}}
+\CustomizeMathJax{\newcommand{\zvt}{Z_0}}
+\CustomizeMathJax{\newcommand{\yvt}{Y_0}}
+%
+\CustomizeMathJax{\newcommand{\campoe}{\underline{\mathcal{E}}(\underline{r},t)}}
+\CustomizeMathJax{\newcommand{\campoefas}{\underline{E}(\underline{r})}}
+\CustomizeMathJax{\newcommand{\campoh}{\underline{\mathcal{H}}(\underline{r},t)}}
+\CustomizeMathJax{\newcommand{\campohfas}{\underline{H}(\underline{r})}}
+%
+\CustomizeMathJax{\newcommand{\signt}[1]{{#1}(t)}}
+\CustomizeMathJax{\newcommand{\signf}[1]{{#1}(f)}}
+\CustomizeMathJax{\newcommand{\signn}[1]{{#1}(n)}}
+\CustomizeMathJax{\newcommand{\signz}[1]{{#1}(z)}}
+%
+\CustomizeMathJax{\newcommand{\prob}[1]{\mathcal{P}\left(#1\right)}}
+\CustomizeMathJax{\newcommand{\valatt}[1]{\mathbb{E}\left[#1\right]}}
+\CustomizeMathJax{\newcommand{\var}[1]{\mathrm{Var}\left[#1\right]}}
+\CustomizeMathJax{\newcommand{\comma}{\, , \,}}
+\CustomizeMathJax{\newcommand{\dato}{\,|\,}}
+%
+\CustomizeMathJax{\let\bfRe\partereale}
+\CustomizeMathJax{\let\bfIm\parteimm}
+\CustomizeMathJax{\let\noisevar\varianzarumore}
+% \CustomizeMathJax{\let\exerend\finees}
+\CustomizeMathJax{\let\Spimplies\frecciadex}
+\CustomizeMathJax{\let\Downimplies\frecciadown}
+\CustomizeMathJax{\let\unitvec\versore}
+\CustomizeMathJax{\let\vector\vettore}
+\CustomizeMathJax{\let\cosine\coseno}
+\CustomizeMathJax{\let\sine\seno}
+\CustomizeMathJax{\let\energy\energia}
+\CustomizeMathJax{\let\Abs\modulo}
+\CustomizeMathJax{\let\AbsPow\moduloexp}
+\CustomizeMathJax{\let\Max\massimo}
+\CustomizeMathJax{\let\Min\minimo}
+\CustomizeMathJax{\let\clight\valc}
+\CustomizeMathJax{\let\Log\loga}
+\CustomizeMathJax{\let\analytic\analitic}
+\CustomizeMathJax{\let\infint\intinf}
+\CustomizeMathJax{\let\deltaimp\deltain}
+\CustomizeMathJax{\let\Vgamma\gammatens}
+\CustomizeMathJax{\let\Cgamma\gammacorr}
+\CustomizeMathJax{\let\Vgammain\gammatensin}
+\CustomizeMathJax{\let\Cgammain\gammacorrin}
+\CustomizeMathJax{\let\Kgamma\gammak}
+\CustomizeMathJax{\let\powerin\potin}
+\CustomizeMathJax{\let\availpow\potdisp}
+\CustomizeMathJax{\let\irrpow\potirr}
+\CustomizeMathJax{\let\disspow\potdiss}
+\CustomizeMathJax{\let\incpow\potinc}
+\CustomizeMathJax{\let\potalim\potCC}
+\CustomizeMathJax{\let\potDC\potCC}
+\CustomizeMathJax{\let\Efield\campoe}
+\CustomizeMathJax{\let\Hfield\campoh}
+\CustomizeMathJax{\let\phasorEfield\campoefas}
+\CustomizeMathJax{\let\phasorHfiled\campohfas}
+\CustomizeMathJax{\let\given\dato}
+\CustomizeMathJax{\let\expval\valatt}
+\CustomizeMathJax{\let\rmexp\ex}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</engtlc>
+% \fi
+%
+%
+%
%
%
% \iffalse
@@ -52021,22 +52892,26 @@ solid {\FancyVerbRuleColor{\LWR@origpound\LWR@tempcolor}} ; % space
% \pkg{gridset} is ignored.
%
% \changes{v0.54}{2018/04/11}{\pkg{gridset}: Added.}
+% \changes{v0.81}{2020/02/21}{\pkg{gridset}: Updated to v0.3.}
%
% \codehtml
%
% \begin{macrocode}
-\LWR@ProvidesPackageDrop{gridset}
+\LWR@ProvidesPackageDrop{gridset}[2020-02-12]
% \end{macrocode}
%
% \begin{macrocode}
\newcommand*{\gridbase}{}
\newcommand*{\gridinterval}{}
-\newcommand*{\savepos}[1]{}
-\newcounter{gridcnt}
+\newcommand*{\SavePos}[1]{}
+\ifLuaTeX
+\else
+\let\savepos\SavePos
+\fi
\newcommand*{\vskipnextgrid}{}
-\newcommand*{\thegridinfo}[1]{}
-\newcommand*{\theposinfo}[1]{}
-\newcommand*{\theypos}[1]{}
+\newcommand*{\thegridinfo}[1]{(thegridinfo)}
+\newcommand*{\theposinfo}[1]{(theposinfo)}
+\newcommand*{\theypos}[1]{(theypos)}
% \end{macrocode}
%
% \iffalse
@@ -52666,6 +53541,15 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
% \end{noindmacro}
+% \begin{noindmacro}{\pdfstringdefDisableCommands} \marg{commands}
+%
+% \changes{v0.81}{2020/03/04}{\pkg{hyperref}: Added \cs{pdfstringdefDisableCommands}.}
+% \begin{macrocode}
+\newcommand{\pdfstringdefDisableCommands}[1]{}
+% \end{macrocode}
+% \end{noindmacro}
+
+
% \begin{noindmacro}{\hypercalcbp} \marg{dimen} \quad
% From \pkg{hyperref}.
%
@@ -55415,6 +56299,41 @@ do not attempt to patch lwarp's version of `hyperref'.)\MessageBreak}
%
%
%
+%
+% \iffalse
+%<*luamplib>
+% \fi
+%
+% \part{lwarp-luamplib.sty}
+%
+% \section{luamplib}
+%
+% \credits{Hans Hagen, Taco Hoekwater, Elie Roux, Philipp Gesang, Kim Dohyun}
+%
+% \DescribePackage{luamplib}
+% \pkg{luamplib} is patched for use by \pkg{lwarp}.
+%
+% \changes{v0.81}{2020/02/27}{\pkg{luamplib}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{luamplib}[2020/02/24]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\BeforeBeginEnvironment{mplibcode}{%
+ \begin{lateximage}[-mplibcode-~\PackageDiagramAltText]%
+}
+\AfterEndEnvironment{mplibcode}{\end{lateximage}}
+% \end{macrocode}
+%
+% \iffalse
+%</luamplib>
+% \fi
+%
+%
+%
% \iffalse
%<*luatodonotes>
% \fi
@@ -56854,7 +57773,7 @@ background:
%
%
% \begin{noindmacro}{\LWR@mdfsubtitlecommon}
-% \marg{sub -or- subsub} \oarg{options} \marg{title}
+% \marg{sub \orelse\ subsub} \oarg{options} \marg{title}
%
% Common code for \cs{LWR@mdfsubtitle} and \cs{LWR@mdfsubsubtitle}.
%
@@ -58420,6 +59339,67 @@ background:
%
%
%
+% \iffalse
+%<*multiobjective>
+% \fi
+%
+% \part{lwarp-multiobjective.sty}
+%
+% \section{multiobjective}
+%
+% \credits{Luis Mart\'{i}}
+%
+% \DescribePackage{multiobjective}
+% \pkg{multiobjective} is used as-is for \SVG\ math, and
+% is emulated for \brand{MathJax}.
+%
+% \changes{v0.81}{2020/03/03}{\pkg{multiobjective}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{multiobjective}[2008/08/19]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\begin{warpMathJax}
+\CustomizeMathJax{\newcommand{\dom}{\prec}}
+\CustomizeMathJax{\newcommand{\negdom}{\not\prec}}
+\CustomizeMathJax{\newcommand{\weakdom}{\preccurlyeq}}
+\CustomizeMathJax{\newcommand{\negweakdom}{\not\preccurlyeq}}
+\CustomizeMathJax{\newcommand{\strictdom}{\prec\!\!\!\prec}}
+\CustomizeMathJax{\newcommand{\negstrictdom}{\not\prec\!\!\!\prec}}
+\CustomizeMathJax{\newcommand{\multepsilondom}{\preccurlyeq_{\epsilon\cdot}}}
+\CustomizeMathJax{\newcommand{\addiepsilondom}{\preccurlyeq_{\epsilon +}}}
+\CustomizeMathJax{\newcommand{\better}{\triangleleft}}
+\CustomizeMathJax{\def\vec#1{%
+ \mathchoice%
+ {{\displaystyle\boldsymbol{#1}}}%
+ {{\textstyle\boldsymbol{#1}}}%
+ {{\scriptstyle\boldsymbol{#1}}}%
+ {{\scriptscriptstyle\boldsymbol{#1}}}%
+}}
+
+\CustomizeMathJax{\newcommand{\set}[1]{%
+ \mathchoice%
+ {{\displaystyle\mathcal{#1}}}%
+ {{\textstyle\mathcal{#1}}}%
+ {{\scriptstyle\mathcal{#1}}}%
+ {{\scriptscriptstyle\mathcal{#1}}}%
+}}
+\CustomizeMathJax{\def\argmax{\mathop{{\mathrm{arg}}\,\max}}}
+\CustomizeMathJax{\def\argmin{\mathop{{\mathrm{arg}}\,\min}
+}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</multiobjective>
+% \fi
+%
+%
+%
+%
%
% \iffalse
%<*multirow>
@@ -59886,6 +60866,40 @@ do not attempt to patch lwarp's version of `nameref'.)\MessageBreak
%
%
%
+%
+%
+% \iffalse
+%<*nolbreaks>
+% \fi
+%
+% \part{lwarp-nolbreaks.sty}
+%
+% \section{nolbreaks}
+%
+% \credits{Donald Arseneau}
+%
+% \DescribePackage{nolbreaks}
+% \pkg{nolbreaks} is emulated.
+%
+% \changes{v0.81}{2020/02/22}{\pkg{nolbreaks}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackageDrop{nolbreaks}[2012/05/31]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\NewDocumentCommand{\nolbreaks}{s m}{\InlineClass{nolbreaks}{#2}}
+% \end{macrocode}
+%
+% \iffalse
+%</nolbreaks>
+% \fi
+%
+%
+%
+%
% \iffalse
%<*nomencl>
% \fi
@@ -62653,6 +63667,122 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
%
% \iffalse
+%<*physunits>
+% \fi
+%
+% \part{lwarp-physunits.sty}
+%
+% \section{physunits}
+%
+% \credits{Brian W. Mulligan}
+%
+% \DescribePackage{physunits}
+% \pkg{physunits} is supported as-is for \SVG\ math, and
+% is emulated for \brand{MathJax}.
+%
+% \changes{v0.81}{2020/02/29}{\pkg{physunits}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{physunits}[2020/01/26]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\begin{warpMathJax}
+\LWR@infoprocessingmathjax{physunits}
+
+\CustomizeMathJax{\newcommand{\micro}{\mu}}
+\CustomizeMathJax{\newcommand{\V}[1][ ]{\,\mathrm{#1V}}}
+\CustomizeMathJax{\newcommand{\Volt}[1][ ]{\,\mathrm{#1V}}}
+\CustomizeMathJax{\newcommand{\Coulomb}[1][ ]{\,\mathrm{#1C}}}
+\CustomizeMathJax{\newcommand{\esu}{\,\mathrm{esu}}}
+\CustomizeMathJax{\newcommand{\Ohm}[1][ ]{\,\mathrm{#1\Omega}}}
+\CustomizeMathJax{\newcommand{\Amp}[1][ ]{\,\mathrm{#1A}}}
+\CustomizeMathJax{\newcommand{\Farad}[1][ ]{\,\mathrm{#1F}}}
+\CustomizeMathJax{\newcommand{\Tesla}[1][ ]{\,\mathrm{#1T}}}
+\CustomizeMathJax{\newcommand{\Gauss}[1][ ]{\,\mathrm{#1G}}}
+\CustomizeMathJax{\newcommand{\Henry}[1][ ]{\,\mathrm{#1H}}}
+\CustomizeMathJax{\newcommand{\eV}[1][ ]{\,\mathrm{#1eV}}}
+\CustomizeMathJax{\newcommand{\keV}{\,\mathrm{keV}}}
+\CustomizeMathJax{\newcommand{\MeV}{\,\mathrm{MeV}}}
+\CustomizeMathJax{\newcommand{\J}[1][ ]{\,\mathrm{#1J}}}
+\CustomizeMathJax{\newcommand{\Joule}[1][ ]{\,\mathrm{#1J}}}
+\CustomizeMathJax{\newcommand{\erg}{\,\mathrm{erg}}}
+\CustomizeMathJax{\newcommand{\kcal}[1]{\,\mathrm{kcal}}}% bug
+\CustomizeMathJax{\newcommand{\Cal}{\,\mathrm{Cal}}}
+\CustomizeMathJax{\newcommand{\calorie}[1][ ]{\,\mathrm{#1cal}}}
+\CustomizeMathJax{\newcommand{\BTU}{\,\mathrm{BTU}}}
+\CustomizeMathJax{\newcommand{\tnt}{\,\mathrm{ton\, of\, TNT}}}
+\CustomizeMathJax{\newcommand{\Watt}[1][ ]{\,\mathrm{#1W}}}
+\CustomizeMathJax{\newcommand{\hpi}{\,\mathrm{hp(I)}}}
+\CustomizeMathJax{\newcommand{\hpm}{\,\mathrm{hp(M)}}}
+\CustomizeMathJax{\newcommand{\hp}{\,\mathrm{hp}}}
+\CustomizeMathJax{\newcommand{\meter}[1][ ]{\,\mathrm{#1m}}}
+\CustomizeMathJax{\newcommand{\m}[1][ ]{\,\mathrm{#1m}}}
+\CustomizeMathJax{\newcommand{\km}{\,\mathrm{km}}}
+\CustomizeMathJax{\newcommand{\au}{\,\mathrm{au}}}
+\CustomizeMathJax{\newcommand{\pc}[1][ ]{\,\mathrm{#1pc}}}
+\CustomizeMathJax{\newcommand{\ly}[1][ ]{\,\mathrm{#1ly}}}
+\CustomizeMathJax{\newcommand{\cm}{\,\mathrm{cm}}}
+\CustomizeMathJax{\newcommand{\nm}{\,\mathrm{nm}}}
+\CustomizeMathJax{\newcommand{\ft}{\,\mathrm{ft}}}
+\CustomizeMathJax{\newcommand{\inch}{\,\mathrm{in}}}
+\CustomizeMathJax{\newcommand{\mi}{\,\mathrm{mi}}}
+\CustomizeMathJax{\newcommand{\s}[1][ ]{\,\mathrm{#1s}}}
+\CustomizeMathJax{\newcommand{\Sec}[1][ ]{\,\mathrm{#1s}}}
+\CustomizeMathJax{\newcommand{\Min}{\,\mathrm{min}}}
+\CustomizeMathJax{\newcommand{\h}{\,\mathrm{h}}}
+\CustomizeMathJax{\newcommand{\y}[1][ ]{\,\mathrm{#1y}}}
+\CustomizeMathJax{\newcommand{\Day}{\,\mathrm{d}}}
+
+\CustomizeMathJax{\newcommand{\gm}[1][ ]{\,\mathrm{#1g}}}
+\CustomizeMathJax{\newcommand{\kg}{\,\mathrm{kg}}}
+\CustomizeMathJax{\newcommand{\lb}{\,\mathrm{lb}}}
+\CustomizeMathJax{\newcommand{\amu}{\,\mathrm{amu}}}
+\CustomizeMathJax{\newcommand{\N}[1][ ]{\,\mathrm{#1N}}}
+\CustomizeMathJax{\newcommand{\Newton}[1][ ]{\,\mathrm{#1N}}}
+\CustomizeMathJax{\newcommand{\dyne}[1][ ]{\,\mathrm{#1dyn}}}
+\CustomizeMathJax{\newcommand{\lbf}{\,\mathrm{lbf}}}
+\CustomizeMathJax{\newcommand{\kmps}{\,\mathrm{km}\,\mathrm{s}^{-1}}}
+\CustomizeMathJax{\newcommand{\kmph}{\,\mathrm{km}\,\mathrm{h}^{-1}}}
+\CustomizeMathJax{\newcommand{\mps}[1][ ]{\,\mathrm{#1m}\,\mathrm{s}^{-1}}}
+\CustomizeMathJax{\newcommand{\miph}{\,\mathrm{mi}\,\mathrm{h}^{-1}}}
+\CustomizeMathJax{\newcommand{\kts}{\,\mathrm{kts}}}
+
+\CustomizeMathJax{\newcommand{\mpss}[1][ ]{\,\mathrm{#1m}\,\mathrm{s}^{-2}}}
+\CustomizeMathJax{\newcommand{\gacc}{\,\mathrm{g}}}
+\CustomizeMathJax{\newcommand{\ftpss}{\,\mathrm{ft}\,\mathrm{s}^{-2}}}
+\CustomizeMathJax{\newcommand{\K}[1][ ]{\,\mathrm{#1K}}}
+\CustomizeMathJax{\newcommand{\Kelvin}[1][ ]{\,\mathrm{#1K}}}
+\CustomizeMathJax{\newcommand{\Celcius}{^\circ{\,\mathrm{C}}}}% move space
+\CustomizeMathJax{\newcommand{\Rankine}{^\circ{\,\mathrm{R}}}}% move space
+\CustomizeMathJax{\newcommand{\Fahrenheit}{^\circ{\,\mathrm{F}}}}% move space
+
+\CustomizeMathJax{\newcommand{\rpm}{\,\mathrm{rev}\,\Min^{-1}}}
+
+\CustomizeMathJax{\newcommand{\Hz}[1][ ]{\,\mathrm{#1Hz}}}
+\CustomizeMathJax{\newcommand{\barP}[1][ ]{\,\mathrm{#1bar}}}
+\CustomizeMathJax{\newcommand{\atm}{\,\mathrm{atm}}}
+\CustomizeMathJax{\newcommand{\Pa}[1][ ]{\,\mathrm{#1Pa}}}
+\CustomizeMathJax{\newcommand{\mmHg}{\,\mathrm{mmHg}}}
+\CustomizeMathJax{\newcommand{\inHg}{\,\mathrm{inHg}}}
+\CustomizeMathJax{\newcommand{\lbsi}{\,\mathrm{psi}}}
+\CustomizeMathJax{\newcommand{\lbsf}{\,\mathrm{psf}}}
+\CustomizeMathJax{\newcommand{\Ba}[1][ ]{\,\mathrm{#1Ba}}}
+\CustomizeMathJax{\newcommand{\Torr}[1][ ]{\,\mathrm{#1Torr}}}
+\CustomizeMathJax{\newcommand{\mol}{\,\mathrm{mol}}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</physunits>
+% \fi
+%
+%
+%
+%
+% \iffalse
%<*pifont>
% \fi
%
@@ -63867,6 +64997,40 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
%
% \iffalse
+%<*returntogrid>
+% \fi
+%
+% \part{lwarp-returntogrid.sty}
+%
+% \section{returntogrid}
+%
+% \DescribePackage{returntogrid}
+% \pkg{returntogrid} is ignored.
+%
+% \changes{v0.81}{2020/02/21}{\pkg{returntogrid}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackageDrop{returntogrid}[2018/08/21]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\NewDocumentCommand\returntogrid{ O {} }{}
+\NewDocumentCommand\returntogridsetup { m } {}
+\NewDocumentCommand\showdebugpagegrid {} {}
+% \end{macrocode}
+%
+% \iffalse
+%</returntogrid>
+% \fi
+%
+%
+%
+%
+%
+%
+% \iffalse
%<*rmathbr>
% \fi
%
@@ -65408,7 +66572,7 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% \DescribePackage{SIunits}
% \pkg{SIunits} is patched for use by \pkg{lwarp}.
%
-% It is recommended to use \cs{unit} where possible, which
+% For \SVG\ math, it is recommended to use \cs{unit} where possible, which
% combines the entire expression into a single \env{lateximage},
% and adds the \attribute{alt} tag containing the \LaTeX\ code, allowing for
% copy/paste. When units are used outside of the \cs{unit} macro,
@@ -65416,7 +66580,16 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
% and each will have the \attribute{alt} tag set according to \cs{MathImageAltText},
% which defaults to \optn{(math image)}.
%
+% For \brand{MathJax}, individual units used in text will appear as \SVG\ images,
+% since \cs{ensuremath} is used in the original defintions,
+% and \cs{ensuremath} often has expressions which do not work well in \brand{MathJax},
+% so it is always forced to an \SVG\ image.
+% If, however, \cs{unit} is used, the result is expressed with \brand{MathJax}
+% instead of an \SVG\ image.
+%
% \changes{v0.59}{2018/07/11}{\pkg{SIunits}: Added.}
+% \changes{v0.81}{2020/02/23}{\pkg{SIunits}: Improved \cs{unit}. Fixed in math mode.
+% Added \brand{MathJax} emulation.}
%
% \codehtml
%
@@ -65426,21 +66599,393 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% Patched for copy/paste with the \HTML\ \attribute{alt} tag:
% \begin{macrocode}
-\DeclareRobustCommand{\unit}[2]{%
-\@inunitcommandtrue% original
-\LWR@subsingledollar*% lwarp
-{% alt tag
- \textbackslash{}unit\{\LWR@HTMLsanitize{#1}\}%
- \{ \LWR@HTMLsanitize{#2}\}% extra space
-}%
-{SIunits}% add'l hashing
-{%
- \LWR@origensuredmath{% lwarp modification
- \SI@fstyle{#1\@qsk\period@active{#2}}% original
- }%
-}% contents
-\@inunitcommandfalse% original
-}
+\ifbool{mathjax}{
+ \DeclareRobustCommand{\LWR@HTML@unit}[2]{%
+ \LWR@subsingledollar*% lwarp
+ {% alt tag
+ \textbackslash{}unit\{\LWR@HTMLsanitize{#1}\}%
+ \{ \LWR@HTMLsanitize{#2}\}% extra space
+ }%
+ {SIunits}% add'l hashing
+ {%
+ #1\,{#2}%
+ }% contents
+ }
+}{% not MathJax
+ \DeclareRobustCommand{\LWR@HTML@unit}[2]{%
+ \@inunitcommandtrue% original
+ \LWR@subsingledollar*% lwarp
+ {% alt tag
+ \textbackslash{}unit\{\LWR@HTMLsanitize{#1}\}%
+ \{ \LWR@HTMLsanitize{#2}\}% extra space
+ }%
+ {SIunits}% add'l hashing
+ {%
+ \LWR@origensuredmath{% lwarp modification
+ \SI@fstyle{%
+ {#1}\@qsk\period@active{#2}%
+ }% original
+ }%
+ }% contents
+ \@inunitcommandfalse% original
+ }
+}% not MathJax
+\LWR@formatted{unit}
+% \end{macrocode}
+%
+%
+% For \brand{MathJax}:
+% \begin{macrocode}
+\begin{warpMathJax}
+\LWR@infoprocessingmathjax{SIunits}
+
+\CustomizeMathJax{\newcommand{\one}{}}
+\CustomizeMathJax{\newcommand{\meter}{\metre}}
+\CustomizeMathJax{\newcommand{\deka}{\deca}}
+\CustomizeMathJax{\newcommand{\dekad}{\decad}}
+\CustomizeMathJax{\newcommand{\per}{/}}
+\CustomizeMathJax{\newcommand{\usk}{\;}}
+\CustomizeMathJax{\newcommand{\unit}[2]{#1\,{#2}}}
+\CustomizeMathJax{\newcommand{\power}[2]{#1^{#2}}}
+
+\AtBeginDocument{%
+ \if@redefsquare
+ \CustomizeMathJax{\renewcommand{\square}[1]{\power{#1}{2}}}
+ \else
+ \if@defsquaren
+ \CustomizeMathJax{\newcommand{\squaren}[1]{\power{#1}{2}}}
+ \else
+ \CustomizeMathJax{\renewcommand{\square}[1]{\power{#1}{2}}}
+ \fi %\if@defsquaren
+ \fi %\if@redefsquare
+} %\AtBeginDocument
+
+\CustomizeMathJax{\newcommand{\squared}{^{2}}}
+\CustomizeMathJax{\newcommand{\cubic}[1]{\power{#1}{3}}}
+\CustomizeMathJax{\newcommand{\cubed}{^{3}}}
+\CustomizeMathJax{\newcommand{\fourth}[1]{\power{#1}{4}}}
+\CustomizeMathJax{\newcommand{\reciprocal}[1]{\power{#1}{-1}}}
+\CustomizeMathJax{\newcommand{\rp}{\reciprocal}}
+\CustomizeMathJax{\newcommand{\rpsquare}[1]{\power{#1}{-2}}}
+\CustomizeMathJax{\newcommand{\rpsquared}{^{-2}}}
+\CustomizeMathJax{\newcommand{\rpcubic}[1]{\power{#1}{-3}}}
+\CustomizeMathJax{\newcommand{\rpcubed}{^{-3}}}
+\CustomizeMathJax{\newcommand{\rpfourth}[1]{\power{#1}{-4}}}
+\CustomizeMathJax{\newcommand{\yocto}{\mathrm{y}}}
+\CustomizeMathJax{\newcommand{\zepto}{\mathrm{z}}}
+\CustomizeMathJax{\newcommand{\atto}{\mathrm{a}}}
+\CustomizeMathJax{\newcommand{\femto}{\mathrm{f}}}
+\CustomizeMathJax{\newcommand{\pico}{\mathrm{p}}}
+\CustomizeMathJax{\newcommand{\nano}{\mathrm{n}}}
+\CustomizeMathJax{\newcommand{\micro}{\mathrm{\unicode{x00B5}}}}
+\CustomizeMathJax{\newcommand{\milli}{\mathrm{m}}}
+\CustomizeMathJax{\newcommand{\centi}{\mathrm{c}}}
+\CustomizeMathJax{\newcommand{\deci}{\mathrm{d}}}
+\CustomizeMathJax{\newcommand{\deca}{\mathrm{da}}}
+\CustomizeMathJax{\newcommand{\hecto}{\mathrm{h}}}
+\CustomizeMathJax{\newcommand{\kilo}{\mathrm{k}}}
+\CustomizeMathJax{\newcommand{\mega}{\mathrm{M}}}
+\CustomizeMathJax{\newcommand{\giga}{\mathrm{G}}}
+\CustomizeMathJax{\newcommand{\tera}{\mathrm{T}}}
+\CustomizeMathJax{\newcommand{\peta}{\mathrm{P}}}
+\CustomizeMathJax{\newcommand{\exa}{\mathrm{E}}}
+\CustomizeMathJax{\newcommand{\zetta}{\mathrm{Z}}}
+\CustomizeMathJax{\newcommand{\yotta}{\mathrm{Y}}}
+\CustomizeMathJax{\newcommand{\yoctod}{\power{10}{-24}}}
+\CustomizeMathJax{\newcommand{\zeptod}{\power{10}{-21}}}
+\CustomizeMathJax{\newcommand{\attod}{\power{10}{-18}}}
+\CustomizeMathJax{\newcommand{\femtod}{\power{10}{-15}}}
+\CustomizeMathJax{\newcommand{\picod}{\power{10}{-12}}}
+\CustomizeMathJax{\newcommand{\nanod}{\power{10}{-9}}}
+\CustomizeMathJax{\newcommand{\microd}{\power{10}{-6}}}
+\CustomizeMathJax{\newcommand{\millid}{\power{10}{-3}}}
+\CustomizeMathJax{\newcommand{\centid}{\power{10}{-2}}}
+\CustomizeMathJax{\newcommand{\decid}{\power{10}{-1}}}
+\CustomizeMathJax{\newcommand{\decad}{\power{10}{1}}}
+\CustomizeMathJax{\newcommand{\hectod}{\power{10}{2}}}
+\CustomizeMathJax{\newcommand{\kilod}{\power{10}{3}}}
+\CustomizeMathJax{\newcommand{\megad}{\power{10}{6}}}
+\CustomizeMathJax{\newcommand{\gigad}{\power{10}{9}}}
+\CustomizeMathJax{\newcommand{\terad}{\power{10}{12}}}
+\CustomizeMathJax{\newcommand{\petad}{\power{10}{15}}}
+\CustomizeMathJax{\newcommand{\exad}{\power{10}{18}}}
+\CustomizeMathJax{\newcommand{\zettad}{\power{10}{21}}}
+\CustomizeMathJax{\newcommand{\yottad}{\power{10}{24}}}
+\CustomizeMathJax{\newcommand{\gram}{\mathrm{g}}}
+\CustomizeMathJax{\newcommand{\metre}{\mathrm{m}}}
+\CustomizeMathJax{\newcommand{\kilogram}{\kilo\gram}}
+\CustomizeMathJax{\newcommand{\second}{\mathrm{s}}}
+\CustomizeMathJax{\newcommand{\ampere}{\mathrm{A}}}
+\CustomizeMathJax{\newcommand{\kelvin}{\mathrm{K}}}
+\CustomizeMathJax{\newcommand{\mole}{\mathrm{mol}}}
+\CustomizeMathJax{\newcommand{\candela}{\mathrm{cd}}}
+\CustomizeMathJax{\newcommand{\radian}{\mathrm{rad}}}
+\CustomizeMathJax{\newcommand{\steradian}{\mathrm{sr}}}
+\CustomizeMathJax{\newcommand{\hertz}{\mathrm{Hz}}}
+\CustomizeMathJax{\newcommand{\newton}{\mathrm{N}}}
+\CustomizeMathJax{\newcommand{\pascal}{\mathrm{Pa}}}
+\CustomizeMathJax{\newcommand{\joule}{\mathrm{J}}}
+\CustomizeMathJax{\newcommand{\watt}{\mathrm{W}}}
+\CustomizeMathJax{\newcommand{\coulomb}{\mathrm{C}}}
+\CustomizeMathJax{\newcommand{\volt}{\mathrm{V}}}
+\CustomizeMathJax{\newcommand{\farad}{\mathrm{F}}}
+\CustomizeMathJax{\newcommand{\ohm}{\mathrm{\Omega}}}
+\CustomizeMathJax{\newcommand{\siemens}{\mathrm{S}}}
+\CustomizeMathJax{\newcommand{\weber}{\mathrm{Wb}}}
+\CustomizeMathJax{\newcommand{\tesla}{\mathrm{T}}}
+\CustomizeMathJax{\newcommand{\henry}{\mathrm{H}}}
+\CustomizeMathJax{\newcommand{\degreecelsius}{\mathrm{\unicode{x2103}}}}
+\CustomizeMathJax{\newcommand{\celsius}{\degreecelsius}}
+\CustomizeMathJax{\newcommand{\lumen}{\mathrm{lm}}}
+\CustomizeMathJax{\newcommand{\lux}{\mathrm{lx}}}
+\CustomizeMathJax{\newcommand{\becquerel}{\mathrm{Bq}}}
+\CustomizeMathJax{\newcommand{\sievert}{\mathrm{Sv}}}
+\CustomizeMathJax{\newcommand{\katal}{\mathrm{kat}}}
+
+\ifdef{\radianbase}{
+\CustomizeMathJax{\newcommand{\radianbase}%
+ {\metre\usk\reciprocal\metre}}
+\CustomizeMathJax{\newcommand{\steradianbase}%
+ {\squaremetre\usk\rpsquare\metre}}
+\CustomizeMathJax{\newcommand{\hertzbase}%
+ {\reciprocal\second}}
+\CustomizeMathJax{\newcommand{\newtonbase}%
+ {\metre\usk\kilogram\usk\second\rpsquared}}
+\CustomizeMathJax{\newcommand{\pascalbase}%
+ {\reciprocal\metre\usk\kilogram\usk\second\rpsquared}}
+\CustomizeMathJax{\newcommand{\joulebase}%
+ {\squaremetre\usk\kilogram\usk\second\rpsquared}}
+\CustomizeMathJax{\newcommand{\wattbase}%
+ {\squaremetre\usk\kilogram\usk\rpcubic\second}}
+\CustomizeMathJax{\newcommand{\coulombbase}%
+ {\ampere\usk\second}}
+\CustomizeMathJax{\newcommand{\voltbase}%
+ {\squaremetre\usk\kilogram\usk\rpcubic\second\usk\reciprocal\ampere}}
+\CustomizeMathJax{\newcommand{\faradbase}%
+ {\rpsquare\metre\usk\reciprocal\kilogram\usk\fourth\second\usk\ampere\squared}}
+\CustomizeMathJax{\newcommand{\ohmbase}%
+ {\squaremetre\usk\kilogram\usk\rpcubic\second\usk\rpsquare\ampere}}
+\CustomizeMathJax{\newcommand{\siemensbase}%
+ {\rpsquare\metre\usk\reciprocal\kilogram\usk\cubic\second\usk\ampere\squared}}
+\CustomizeMathJax{\newcommand{\weberbase}%
+ {\squaremetre\usk\kilogram\usk\second\rpsquared\usk\reciprocal\ampere}}
+\CustomizeMathJax{\newcommand{\teslabase}%
+ {\kilogram\usk\second\rpsquared\usk\reciprocal\ampere}}
+\CustomizeMathJax{\newcommand{\henrybase}%
+ {\squaremetre\usk\kilogram\usk\second\rpsquared\usk\rpsquare\ampere}}
+\CustomizeMathJax{\newcommand{\celsiusbase}%
+ {\kelvin}}
+\CustomizeMathJax{\newcommand{\lumenbase}%
+ {\candela\usk\squaremetre\usk\rpsquare\metre}}
+\CustomizeMathJax{\newcommand{\luxbase}%
+ {\candela\usk\squaremetre\usk\rpfourth\metre}}
+\CustomizeMathJax{\newcommand{\becquerelbase}%
+ {\hertzbase}}
+\CustomizeMathJax{\newcommand{\graybase}%
+ {\squaremetre\usk\second\rpsquared}}
+\CustomizeMathJax{\newcommand{\sievertbase}%
+ {\graybase}}
+\CustomizeMathJax{\newcommand{\katalbase}%
+ {\rp\second\usk\mole }}
+}{}
+
+\ifdef{\derradian}{
+\CustomizeMathJax{\newcommand{\derradian}%
+ {\metre\usk\reciprocal\metre}}
+\CustomizeMathJax{\newcommand{\dersteradian}%
+ {\squaremetre\usk\rpsquare\metre}}
+\CustomizeMathJax{\newcommand{\derhertz}%
+ {\reciprocal\second}}
+\CustomizeMathJax{\newcommand{\dernewton}%
+ {\metre\usk\kilogram\usk\second\rpsquared}}
+\CustomizeMathJax{\newcommand{\derpascal}%
+ {\newton\usk\rpsquare\metre}}
+\CustomizeMathJax{\newcommand{\derjoule}%
+ {\newton\usk\metre}}
+\CustomizeMathJax{\newcommand{\derwatt}%
+ {\joule\usk\reciprocal\second}}
+\CustomizeMathJax{\newcommand{\dercoulomb}%
+ {\ampere\usk\second}}
+\CustomizeMathJax{\newcommand{\dervolt}%
+ {\watt\usk\reciprocal\ampere}}
+\CustomizeMathJax{\newcommand{\derfarad}%
+ {\coulomb\usk\reciprocal\volt}}
+\CustomizeMathJax{\newcommand{\derohm}%
+ {\volt\usk\reciprocal\ampere}}
+\CustomizeMathJax{\newcommand{\dersiemens}%
+ {\ampere\usk\reciprocal\volt}}
+\CustomizeMathJax{\newcommand{\derweber}%
+ {\squaremetre\usk\kilogram\usk\second\rpsquared\usk\reciprocal\ampere}}
+\CustomizeMathJax{\newcommand{\dertesla}%
+ {\weber\usk\rpsquare\metre}}
+\CustomizeMathJax{\newcommand{\derhenry}%
+ {\weber\usk\reciprocal\ampere}}
+\CustomizeMathJax{\newcommand{\dercelsius}%
+ {\kelvin}}
+\CustomizeMathJax{\newcommand{\derlumen}%
+ {\candela\usk\steradian}}
+\CustomizeMathJax{\newcommand{\derlux}%
+ {\lumen\usk\rpsquare\metre}}
+\CustomizeMathJax{\newcommand{\derbecquerel}%
+ {\derhertz}}
+\CustomizeMathJax{\newcommand{\dergray}%
+ {\joule\usk\reciprocal\kilogram}}
+\CustomizeMathJax{\newcommand{\dersievert}%
+ {\dergray}}
+\CustomizeMathJax{\newcommand{\derkatal}%
+ {\katalbase}}
+}{}
+
+\CustomizeMathJax{\newcommand{\minute}{\mathrm{min}}}
+\CustomizeMathJax{\newcommand{\hour}{\mathrm{h}}}
+\CustomizeMathJax{\newcommand{\dday}{\mathrm{d}}}
+\CustomizeMathJax{\newcommand{\degree}{\mathrm{^\circ}}}
+\CustomizeMathJax{\newcommand{\paminute}{^\prime}}
+\CustomizeMathJax{\newcommand{\arcminute}{^\prime}}
+\CustomizeMathJax{\newcommand{\pasecond}{^{\prime\prime}}}
+\CustomizeMathJax{\newcommand{\arcsecond}{^{\prime\prime}}}
+\CustomizeMathJax{\newcommand{\ton}{\mathrm{t}}}
+\CustomizeMathJax{\newcommand{\tonne}{\mathrm{t}}}
+\CustomizeMathJax{\newcommand{\liter}{\mathrm{L}}}
+\CustomizeMathJax{\newcommand{\litre}{\mathrm{l}}}
+\CustomizeMathJax{\newcommand{\neper}{\mathrm{Np}}}
+\CustomizeMathJax{\newcommand{\bel}{\mathrm{B}}}
+\CustomizeMathJax{\newcommand{\curie}{\mathrm{Ci}}}
+\CustomizeMathJax{\newcommand{\rad}{\mathrm{rad}}}
+\CustomizeMathJax{\newcommand{\arad}{\mathrm{rd}}}
+\CustomizeMathJax{\newcommand{\rem}{\mathrm{rem}}}
+\CustomizeMathJax{\newcommand{\roentgen}{\mathrm{R}}}
+\CustomizeMathJax{\newcommand{\electronvolt}{\mathrm{\mathrm{eV}}}}
+\CustomizeMathJax{\newcommand{\atomicmass}{\mathrm{u}}}
+\CustomizeMathJax{\newcommand{\atomicmassunit}{\mathrm{u}}}
+\CustomizeMathJax{\newcommand{\dalton}{\mathrm{Da}}}
+\CustomizeMathJax{\newcommand{\are}{\mathrm{a}}}
+\CustomizeMathJax{\newcommand{\hectare}{\mathrm{\hecto\are}}}
+\CustomizeMathJax{\newcommand{\barn}{\mathrm{b}}}
+\CustomizeMathJax{\newcommand{\bbar}{\mathrm{bar}}}
+\CustomizeMathJax{\newcommand{\gal}{\mathrm{Gal}}}
+\CustomizeMathJax{\newcommand{\angstrom}{\mathrm{\unicode{x00C5}}}}
+\CustomizeMathJax{\newcommand{\rperminute}{\mathrm{r}\per\minute}}
+\CustomizeMathJax{\newcommand{\rpersecond}{\mathrm{r}\per\second}}
+\CustomizeMathJax{\newcommand{\squaremetre}{\power{\metre}{2}}}
+\CustomizeMathJax{\newcommand{\cubicmetre}{\cubic\metre}}
+\CustomizeMathJax{\newcommand{\graypersecond}{\gray\per\second}}
+\CustomizeMathJax{\newcommand{\graypersecondnp}{\gray\usk\reciprocal\second}}
+\CustomizeMathJax{\newcommand{\metrepersquaresecond}{\metre\per\second\squared}}
+\CustomizeMathJax{\newcommand{\metrepersquaresecondnp}{\metre\usk\second\rpsquared}}
+\CustomizeMathJax{\newcommand{\joulepermole}{\joule\per\mole}}
+\CustomizeMathJax{\newcommand{\joulepermolenp}{\joule\usk\reciprocal\mole}}
+\CustomizeMathJax{\newcommand{\molepercubicmetre}{\mole\per\cubic\metre}}
+\CustomizeMathJax{\newcommand{\molepercubicmetrenp}{\mole\usk\rpcubic\metre}}
+\CustomizeMathJax{\newcommand{\radianpersquaresecond}{\radian\per\second\squared}}
+\CustomizeMathJax{\newcommand{\radianpersquaresecondnp}{\radian\usk\second\rpsquared}}
+\CustomizeMathJax{\newcommand{\kilogramsquaremetrepersecond}{\kilogram\usk\squaremetre\per\second}}
+\CustomizeMathJax{\newcommand{\kilogramsquaremetrepersecondnp}{\kilogram\usk\squaremetre\usk\reciprocal\second}}
+\CustomizeMathJax{\newcommand{\radianpersecond}{\radian\per\second}}
+\CustomizeMathJax{\newcommand{\radianpersecondnp}{\radian\usk\reciprocal\second}}
+\CustomizeMathJax{\newcommand{\squaremetrepercubicmetre}{\squaremetre\per\cubic\metre}}
+\CustomizeMathJax{\newcommand{\squaremetrepercubicmetrenp}{\squaremetre\usk\rpcubic\metre}}
+\CustomizeMathJax{\newcommand{\katalpercubicmetre}{\katal\per\cubic\metre}}
+\CustomizeMathJax{\newcommand{\katalpercubicmetrenp}{\katal\usk\rpcubic\metre}}
+\CustomizeMathJax{\newcommand{\coulombpermol}{\coulomb\per\mole}}
+\CustomizeMathJax{\newcommand{\coulombpermolnp}{\coulomb\usk\reciprocal\mole}}
+\CustomizeMathJax{\newcommand{\amperepersquaremetre}{\ampere\per\squaremetre}}
+\CustomizeMathJax{\newcommand{\amperepersquaremetrenp}{\ampere\usk\rpsquare\metre}}
+\CustomizeMathJax{\newcommand{\kilogrampercubicmetre}{\kilogram\per\cubic\metre}}
+\CustomizeMathJax{\newcommand{\kilogrampercubicmetrenp}{\kilogram\usk\rpcubic\metre}}
+\CustomizeMathJax{\newcommand{\squaremetrepernewtonsecond}{\squaremetre\per\newton\usk\second}}
+\CustomizeMathJax{\newcommand{\squaremetrepernewtonsecondnp}{\squaremetre\usk\reciprocal\newton\usk\reciprocal\second}}
+\CustomizeMathJax{\newcommand{\pascalsecond}{\pascal\usk\second}}
+\CustomizeMathJax{\newcommand{\coulombpercubicmetre}{\coulomb\per\cubic\metre}}
+\CustomizeMathJax{\newcommand{\coulombpercubicmetrenp}{\coulomb\usk\rpcubic\metre}}
+\CustomizeMathJax{\newcommand{\amperemetresecond}{\ampere\usk\metre\usk\second}}
+\CustomizeMathJax{\newcommand{\voltpermetre}{\volt\per\metre}}
+\CustomizeMathJax{\newcommand{\voltpermetrenp}{\volt\usk\reciprocal\metre}}
+\CustomizeMathJax{\newcommand{\coulombpersquaremetre}{\coulomb\per\squaremetre}}
+\CustomizeMathJax{\newcommand{\coulombpersquaremetrenp}{\coulomb\usk\rpsquare\metre}}
+\CustomizeMathJax{\newcommand{\faradpermetre}{\farad\per\metre}}
+\CustomizeMathJax{\newcommand{\faradpermetrenp}{\farad\usk\reciprocal\metre}}
+\CustomizeMathJax{\newcommand{\ohmmetre}{\ohm\usk\metre}}
+\CustomizeMathJax{\newcommand{\kilowatthour}{\kilo\watt\hour}}
+\CustomizeMathJax{\newcommand{\wattpersquaremetre}{\watt\per\squaremetre}}
+\CustomizeMathJax{\newcommand{\wattpersquaremetrenp}{\watt\usk\rpsquare\metre}}
+\CustomizeMathJax{\newcommand{\joulepersquaremetre}{\joule\per\squaremetre}}
+\CustomizeMathJax{\newcommand{\joulepersquaremetrenp}{\joule\usk\rpsquare\metre}}
+\CustomizeMathJax{\newcommand{\newtonpercubicmetre}{\newton\per\cubic\metre}}
+\CustomizeMathJax{\newcommand{\newtonpercubicmetrenp}{\newton\usk\rpcubic\metre}}
+\CustomizeMathJax{\newcommand{\newtonperkilogram}{\newton\per\kilogram}}
+\CustomizeMathJax{\newcommand{\newtonperkilogramnp}{\newton\usk\reciprocal\kilogram}}
+\CustomizeMathJax{\newcommand{\jouleperkelvin}{\joule\per\kelvin}}
+\CustomizeMathJax{\newcommand{\jouleperkelvinnp}{\joule\usk\reciprocal\kelvin}}
+\CustomizeMathJax{\newcommand{\jouleperkilogram}{\joule\per\kilogram}}
+\CustomizeMathJax{\newcommand{\jouleperkilogramnp}{\joule\usk\reciprocal\kilogram}}
+\CustomizeMathJax{\newcommand{\coulombperkilogram}{\coulomb\per\kilogram}}
+\CustomizeMathJax{\newcommand{\coulombperkilogramnp}{\coulomb\usk\reciprocal\kilogram}}
+\CustomizeMathJax{\newcommand{\squaremetrepersecond}{\squaremetre\per\second}}
+\CustomizeMathJax{\newcommand{\squaremetrepersecondnp}{\squaremetre\usk\reciprocal\second}}
+\CustomizeMathJax{\newcommand{\squaremetrepersquaresecond}{\squaremetre\per\second\squared}}
+\CustomizeMathJax{\newcommand{\squaremetrepersquaresecondnp}{\squaremetre\usk\second\rpsquared}}
+\CustomizeMathJax{\newcommand{\kilogrammetrepersecond}{\kilogram\usk\metre\per\second}}
+\CustomizeMathJax{\newcommand{\kilogrammetrepersecondnp}{\kilogram\usk\metre\usk\reciprocal\second}}
+\CustomizeMathJax{\newcommand{\candelapersquaremetre}{\candela\per\squaremetre}}
+\CustomizeMathJax{\newcommand{\candelapersquaremetrenp}{\candela\usk\rpsquare\metre}}
+\CustomizeMathJax{\newcommand{\amperepermetre}{\ampere\per\metre}}
+\CustomizeMathJax{\newcommand{\amperepermetrenp}{\ampere\usk\reciprocal\metre}}
+\CustomizeMathJax{\newcommand{\joulepertesla}{\joule\per\tesla}}
+\CustomizeMathJax{\newcommand{\jouleperteslanp}{\joule\usk\reciprocal\tesla}}
+\CustomizeMathJax{\newcommand{\henrypermetre}{\henry\per\metre}}
+\CustomizeMathJax{\newcommand{\henrypermetrenp}{\henry\usk\reciprocal\metre}}
+\CustomizeMathJax{\newcommand{\kilogrampersecond}{\kilogram\per\second}}
+\CustomizeMathJax{\newcommand{\kilogrampersecondnp}{\kilogram\usk\reciprocal\second}}
+\CustomizeMathJax{\newcommand{\kilogrampersquaremetresecond}{\kilogram\per\squaremetre\usk\second}}
+\CustomizeMathJax{\newcommand{\kilogrampersquaremetresecondnp}{\kilogram\usk\rpsquare\metre\usk\reciprocal\second}}
+\CustomizeMathJax{\newcommand{\kilogrampersquaremetre}{\kilogram\per\squaremetre}}
+\CustomizeMathJax{\newcommand{\kilogrampersquaremetrenp}{\kilogram\usk\rpsquare\metre}}
+\CustomizeMathJax{\newcommand{\kilogrampermetre}{\kilogram\per\metre}}
+\CustomizeMathJax{\newcommand{\kilogrampermetrenp}{\kilogram\usk\reciprocal\metre}}
+\CustomizeMathJax{\newcommand{\joulepermolekelvin}{\joule\per\mole\usk\kelvin}}
+\CustomizeMathJax{\newcommand{\joulepermolekelvinnp}{\joule\usk\reciprocal\mole\usk\reciprocal\kelvin}}
+\CustomizeMathJax{\newcommand{\kilogramperkilomole}{\kilogram\per\kilo\mole}}
+\CustomizeMathJax{\newcommand{\kilogramperkilomolenp}{\kilogram\usk\kilo\reciprocal\mole}}
+\CustomizeMathJax{\newcommand{\kilogramsquaremetre}{\kilogram\usk\squaremetre}}
+\CustomizeMathJax{\newcommand{\kilogramsquaremetrenp}{\kilogramsquaremetre}}
+\CustomizeMathJax{\newcommand{\kilogrammetrepersquaresecond}{\kilogram\usk\metre\per\second\squared}}
+\CustomizeMathJax{\newcommand{\kilogrammetrepersquaresecondnp}{\kilogram\usk\metre\usk\second\rpsquared}}
+\CustomizeMathJax{\newcommand{\newtonpersquaremetre}{\newton\per\squaremetre}}
+\CustomizeMathJax{\newcommand{\newtonpersquaremetrenp}{\newton\usk\rpsquare\metre}}
+\CustomizeMathJax{\newcommand{\persquaremetresecond}{1\per\squaremetre\usk\second}}
+\CustomizeMathJax{\newcommand{\persquaremetresecondnp}{\rpsquare\metre\usk\reciprocal\second}}
+\CustomizeMathJax{\newcommand{\wattperkilogram}{\watt\per\kilogram}}
+\CustomizeMathJax{\newcommand{\wattperkilogramnp}{\watt\usk\reciprocal\kilogram}}
+\CustomizeMathJax{\newcommand{\wattpercubicmetre}{\watt\per\cubic\metre}}
+\CustomizeMathJax{\newcommand{\wattpercubicmetrenp}{\watt\usk\rpcubic\metre}}
+\CustomizeMathJax{\newcommand{\wattpersquaremetresteradian}{\watt\per\squaremetre\usk\steradian}}
+\CustomizeMathJax{\newcommand{\wattpersquaremetresteradiannp}{\watt\usk\rpsquare\metre\usk\rp\steradian}}
+\CustomizeMathJax{\newcommand{\jouleperkilogramkelvin}{\joule\per\kilogram\usk\kelvin}}
+\CustomizeMathJax{\newcommand{\jouleperkilogramkelvinnp}{\joule\usk\reciprocal\kilogram\usk\reciprocal\kelvin}}
+\CustomizeMathJax{\newcommand{\squaremetreperkilogram}{\squaremetre\per\kilogram}}
+\CustomizeMathJax{\newcommand{\rpsquaremetreperkilogram}{\squaremetre\usk\reciprocal\kilogram}}
+\CustomizeMathJax{\newcommand{\cubicmetreperkilogram}{\cubic\metre\per\kilogram}}
+\CustomizeMathJax{\newcommand{\rpcubicmetreperkilogram}{\cubic\metre\usk\reciprocal\kilogram}}
+\CustomizeMathJax{\newcommand{\newtonpermetre}{\newton\per\metre}}
+\CustomizeMathJax{\newcommand{\newtonpermetrenp}{\newton\usk\reciprocal\metre}}
+\CustomizeMathJax{\newcommand{\Celsius}{\unicode{x2103}}}
+\CustomizeMathJax{\newcommand{\wattpermetrekelvin}{\watt\per\metre\usk\kelvin}}
+\CustomizeMathJax{\newcommand{\wattpermetrekelvinnp}{\watt\usk\reciprocal\metre\usk\reciprocal\kelvin}}
+\CustomizeMathJax{\newcommand{\newtonmetre}{\newton\usk\metre} \CustomizeMathJax{\newcommand{\newtonmetrenp}{\newtonmetre}}}
+\CustomizeMathJax{\newcommand{\squaremetrepercubicsecond}{\squaremetre\per\cubic\second}}
+\CustomizeMathJax{\newcommand{\squaremetrepercubicsecondnp}{\squaremetre\usk\rpcubic\second}}
+\CustomizeMathJax{\newcommand{\metrepersecond}{\metre\per\second}}
+\CustomizeMathJax{\newcommand{\metrepersecondnp}{\metre\usk\reciprocal\second}}
+\CustomizeMathJax{\newcommand{\joulepercubicmetre}{\joule\per\cubicmetre}}
+\CustomizeMathJax{\newcommand{\joulepercubicmetrenp}{\joule\usk\rpcubic\metre}}
+\CustomizeMathJax{\newcommand{\kilogrampercubicmetrecoulomb}{\kilogram\per\cubic\metre\usk\coulomb}}
+\CustomizeMathJax{\newcommand{\kilogrampercubicmetrecoulombnp}{\kilogram\usk\rpcubic\metre\usk\reciprocal\coulomb}}
+\CustomizeMathJax{\newcommand{\cubicmetrepersecond}{\cubicmetre\per\second}}
+\CustomizeMathJax{\newcommand{\rpcubicmetrepersecond}{\cubicmetre\usk\reciprocal\second}}
+\CustomizeMathJax{\newcommand{\kilogrampersecondcubicmetre}{\kilogram\per\second\usk\cubicmetre}}
+\CustomizeMathJax{\newcommand{\kilogrampersecondcubicmetrenp}{\kilogram\usk\reciprocal\second\usk\rpcubic\metre}}
+\end{warpMathJax}
% \end{macrocode}
%
% \iffalse
@@ -66661,6 +68206,444 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
%
% \iffalse
+%<*stackrel>
+% \fi
+%
+% \part{lwarp-stackrel.sty}
+%
+% \section{stackrel}
+%
+% \credits{Heiko Oberdiek}
+%
+% \DescribePackage{stackrel}
+% \pkg{stackrel} is used as-is for \SVG\ math, and
+% is emulated for \brand{MathJax}.
+%
+% \changes{v0.81}{2020/03/03}{\pkg{stackrel}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{stackrel}[2016/05/16]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\begin{warpMathJax}
+\CustomizeMathJax{\renewcommand{\stackrel}[3][]{%
+ \mathrel{\mathop{#3}\limits_{#1}^{#2}}%
+}}
+
+\CustomizeMathJax{\newcommand{\stackbin}[3][]{%
+ \mathbin{\mathop{#3}\limits_{#1}^{#2}}%
+}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</stackrel>
+% \fi
+%
+%
+%
+% \iffalse
+%<*statex2>
+% \fi
+%
+% \part{lwarp-statex2.sty}
+%
+% \section{statex2}
+%
+% \credits{Rodney A Sparapani}
+%
+% \DescribePackage{statex2}
+% \pkg{statex2} is patched for use by \pkg{lwarp},
+% and emulated for \brand{MathJax}.
+%
+% As of this version, option \optn{autobold} does not appear to work for \PDF\ output.
+% \watchout
+%
+% For \brand{MathJax}, the tilde character |~| does not create \cs{sim}.
+% \watchout
+% Use \cs{sim} directly.
+%
+% Because \brand{MathJax} has limited conditional processing:
+% \watchout
+% \begin{itemize}
+% \item \cs{wrap} only creates square braces, no matter what its optional arguments.
+% \item \cs{P}, \cs{pCau}, \cs{pN}, and \cs{pU} do not handle special cases.
+% \end{itemize}
+%
+% To have \cs{and} work if using \cs{maketitle},
+% \watchout[\cs{and}]
+% place the following after the start of the document:
+% \begin{sourceverb}
+% \newcommand*{\and}{%
+% \relax\ifmmode%
+% \expandafter\;\mb{\mathrm{and}}\;%
+% \else%
+% \expandafter\STATEXand%
+% \fi%
+% }
+% \end{sourceverb}
+%
+% \changes{v0.81}{2020/02/28}{\pkg{statex2}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{statex2}[2011/09/14]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand*{\LWR@HTML@Alpha}[1][]{%
+ \fcolorbox{black}{ForestGreen}{\textcolor{white}{\textsf{ALPHA}}}%
+ \textbf{\textcolor{ForestGreen}{\textsf{#1}}}%
+}
+\LWR@formatted{Alpha}
+
+\newcommand*{\LWR@HTML@List}[1]{%
+ \textbf{\textcolor{Dandelion}{\textsf{L}\textsubscript{\textit{#1}}}}%
+}
+\LWR@formatted{List}
+
+\newcommand*{\LWR@HTML@Snd}[1][]{%
+ \fcolorbox{black}{Dandelion}{\textcolor{white}{\textsf{2nd}}}%
+ \textbf{\textcolor{Dandelion}{\textsf{#1}}}%
+}
+\LWR@formatted{Snd}
+
+\begin{warpMathJax}
+\LWR@infoprocessingmathjax{statex2}
+
+\CustomizeMathJax{\newcommand{\cpi}{\boldsymbol{\pi}}}
+\CustomizeMathJax{\newcommand{\c}[1]{\boldsymbol{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\sfsl}[1]{\mathsf#1}}% not slanted
+
+\if@manualbold
+\CustomizeMathJax{\newcommand{\mb}[1]{#1}}
+\else
+\CustomizeMathJax{\newcommand{\mb}[1]{\boldsymbol{#1}}}
+\fi
+
+\CustomizeMathJax{\newcommand{\diag}{\mb{\mathrm{diag}}}}
+\CustomizeMathJax{\newcommand{\blockdiag}{\mb{\mathrm{blockdiag}}}}
+\CustomizeMathJax{\newcommand{\erf}{\mb{\mathrm{erf}}}}
+\CustomizeMathJax{\newcommand{\logit}{\mb{\mathrm{logit}}}}
+\CustomizeMathJax{\newcommand{\trace}{\mb{\mathrm{trace}}}}
+
+\CustomizeMathJax{\newcommand{\chisq}{{\mb{\chi^2}}}}
+\CustomizeMathJax{\newcommand{\deriv}[2]{\mb{\frac{\d{}}{\d{#1}}}\wrap{\mb{#2}}}}
+\CustomizeMathJax{\newcommand{\derivf}[2]{\mb{\frac{\d{}}{\d{#2}}}\wrap{\mb{#1}}}}
+\CustomizeMathJax{\newcommand{\e}[1]{\mb{\mathrm{e}^{#1}}}}
+\CustomizeMathJax{\newcommand{\E}[2][]{\mb{\mathrm{E}}_{\mb{#1}} \wrap{\mb{#2}}}}
+\CustomizeMathJax{\newcommand{\ha}{{\mb{\frac{\alpha}{2}}}}}
+\CustomizeMathJax{\newcommand{\I}[2][]{%
+ \mb{\mathrm{I}}_{\mb{#1}} \LWRwrapparen{\mb{#2}}%
+}}
+\CustomizeMathJax{\newcommand{\IBeta}[2]{%
+ \mb{\frac{\Gamma[#1+#2]}{\Gamma[#1]\Gamma[#2]}}%
+}}
+\CustomizeMathJax{\newcommand{\If}{\;\mb{\mathrm{if}}\;}}
+\CustomizeMathJax{\newcommand{\im}{\mb{\mathrm{i}}}}
+\CustomizeMathJax{\newcommand{\ol}{\overline}}
+\CustomizeMathJax{\newcommand{\ow}{\;\mb{\mathrm{otherwise}}\;}}
+\CustomizeMathJax{\newcommand{\pderiv}[2]{%
+ \mb{\frac{\partial}{\partial #1}}\wrap{\mb{#2}}%
+}}
+\CustomizeMathJax{\newcommand{\pderivf}[2]{%
+ \mb{\frac{\partial}{\partial #2}}\wrap{\mb{#1}}%
+}}
+\CustomizeMathJax{\newcommand{\sd}{\mb{\sigma}}}
+\CustomizeMathJax{\newcommand{\ul}{\underline}}
+\CustomizeMathJax{\newcommand{\V}[2][]{\mb{\mathrm{V}}_{\mb{#1}} \wrap{\mb{#2}}}}
+\CustomizeMathJax{\newcommand{\vs}{\;\mb{\mathrm{vs.}}\;}}
+\CustomizeMathJax{\newcommand{\where}{\;\mb{\mathrm{where}}\;}}
+\CustomizeMathJax{\newcommand{\wrap}[2][]{\left[ #2 \right]}}% only []
+\CustomizeMathJax{\newcommand{\LWRwrapparen}[1]{\left( #1 \right)}}% lwarp
+
+% \CustomizeMathJax{\renewcommand{~}{\mb{\sim}}}% doesn't work,
+% replace <space>~<space> with <space>\sim<space>
+
+\CustomizeMathJax{\newcommand{\iid}{\;\stackrel{\mb{\mathrm{iid}}}{\sim}\;}}
+\CustomizeMathJax{\newcommand{\ind}{\;\stackrel{\mb{\mathrm{ind}}}{\sim}\;}}
+\CustomizeMathJax{\newcommand{\indpr}{%
+ \;\stackrel{\mb{\mathrm{ind}}}{\stackrel{\mb{\mathrm{prior}}}{\sim}}\;%
+}}
+\CustomizeMathJax{\newcommand{\post}{\;\stackrel{\mb{\mathrm{post}}}{\sim}\;}}
+\CustomizeMathJax{\newcommand{\prior}{\;\stackrel{\mb{\mathrm{prior}}}{\sim}\;}}
+
+\CustomizeMathJax{\let\STATEXGamma=\Gamma}
+\CustomizeMathJax{\renewcommand{\Gamma}[1][]{\mb{\STATEXGamma}\LWRwrapparen{\mb{#1}}}}
+%
+\CustomizeMathJax{\renewcommand{\and}{\;\mb{\mathrm{and}}\;}}
+%
+\CustomizeMathJax{\newcommand{\H}{\mb{\mathrm{H}}}}
+%
+\CustomizeMathJax{\newcommand{\P}[2][]{\mb{\mathrm{P}}_{\mb{#1}}\wrap{\mb{#2}}}}
+%
+\CustomizeMathJax{\newcommand{\|}{\mb{\mid}}}
+
+\CustomizeMathJax{\newcommand{\B}[1]{\mb{\mathrm{B}}\LWRwrapparen{\mb{#1}}}}
+\CustomizeMathJax{\newcommand{\BB}[1]{\mb{\mathrm{BetaBin}}\LWRwrapparen{\mb{#1}}}}
+\CustomizeMathJax{\newcommand{\Bin}[2]{\mb{\mathrm{Bin}}\LWRwrapparen{\mb{#1,\ #2}}}}
+\CustomizeMathJax{\newcommand{\Dir}[1]{\mb{\mathrm{Dirichlet}}\LWRwrapparen{\mb{#1}}}}
+\CustomizeMathJax{\newcommand{\HG}[3]{%
+ \mb{\mathrm{Hypergeometric}}\LWRwrapparen{\mb{#1,\ #2,\ #3}}%
+}}
+\CustomizeMathJax{\newcommand{\M}[2]{%
+ \mb{\mathrm{Multinomial}}\LWRwrapparen{\mb{#1,\ #2}}%
+}}
+\CustomizeMathJax{\newcommand{\NB}[2]{\mb{\mathrm{NegBin}}\LWRwrapparen{\mb{#1,\ #2}}}}
+\CustomizeMathJax{\newcommand{\Poi}[1]{\mb{\mathrm{Poisson}}\LWRwrapparen{\mb{#1}}}}
+\CustomizeMathJax{\let\Poisson=\Poi}
+
+\CustomizeMathJax{\newcommand{\pBB}[4][x]{%
+ \mb{\frac{\Gamma[#2+1]\Gamma[#3+#1]\Gamma[#2+#4-#1]\Gamma[#3+#4]}%
+ {\Gamma[#1+1]\Gamma[#2-#1+1]\Gamma[#2+#3+#4]\Gamma[#3]\Gamma[#4]}%
+ \I[#1]{\{0, 1,\., #2\}}, \where #3>0,\; #4>0 \and n=1, 2,\.}%
+}}
+\CustomizeMathJax{\newcommand{\pBin}[3][x]{%
+ \mb{\binom{#2}{#1}#3^#1} \LWRwrapparen{\mb{{1-#3}^{#2-#1}}}%
+ \mb{\I[#1]{\{0,1,\.,#2\}}, \where p \in (0, 1) \and n=1, 2,\.}%
+}}
+\CustomizeMathJax{\newcommand{\pPoi}[2][x]{%
+ \mb{\frac{1}{#1!}#2^{#1}\e{-#2}\I[#1]{\{0, 1,\.\}}, \where #2>0}%
+}}
+
+\CustomizeMathJax{\newcommand{\Cau}[2]{\mb{\mathrm{Cauchy}}\LWRwrapparen{\mb{#1,\ #2}}}}
+\CustomizeMathJax{\let\Cauchy=\Cau}
+\CustomizeMathJax{\newcommand{\Chi}[2][]{%
+ \chisq_{\mb{#1}}\LWRwrapparen{\mb{#2}}%
+}}
+\CustomizeMathJax{\let\Chisq=\Chi}
+\CustomizeMathJax{\newcommand{\Bet}[2]{\mb{\mathrm{Beta}}\LWRwrapparen{\mb{#1,\ #2}}}}
+\CustomizeMathJax{\let\Beta=\Bet}
+\CustomizeMathJax{\newcommand{\Exp}[1]{\mb{\mathrm{Exp}}\LWRwrapparen{\mb{#1}}}}
+\CustomizeMathJax{\newcommand{\F}[2]{\mb{\mathrm{F}}\LWRwrapparen{\mb{#1,\ #2}}}}
+\CustomizeMathJax{\newcommand{\Gam}[2]{\mb{\mathrm{Gamma}}\LWRwrapparen{\mb{#1,\ #2}}}}
+\CustomizeMathJax{\newcommand{\IC}[1]{\mb{\mathrm{\chi^{-2}}}\LWRwrapparen{\mb{#1}}}}
+\CustomizeMathJax{\newcommand{\IG}[2]{%
+ \mb{\mathrm{Gamma^{-1}}}\LWRwrapparen{\mb{#1,\ #2}}%
+}}
+\CustomizeMathJax{\newcommand{\IW}[2]{%
+ \mb{\mathrm{Wishart^{-1}}}\LWRwrapparen{\mb{#1,\ #2}}%
+}}
+\CustomizeMathJax{\newcommand{\Log}[2]{%
+\mb{\mathrm{Logistic}}\LWRwrapparen{\mb{#1,\ #2}}%
+}}
+\CustomizeMathJax{\newcommand{\LogN}[2]{%
+ \mb{\mathrm{Log\!-\!N}}\LWRwrapparen{\mb{#1,\ #2}}%
+}}
+\CustomizeMathJax{\newcommand{\N}[3][]{%
+ \mb{\mathrm{N}}_{\mb{#1}}\LWRwrapparen{\mb{#2,\ #3}}%
+}}
+\CustomizeMathJax{\newcommand{\Par}[2]{\mb{\mathrm{Pareto}}\LWRwrapparen{\mb{#1,\ #2}}}}
+\CustomizeMathJax{\let\Pareto=\Par}
+\CustomizeMathJax{\newcommand{\Tsq}[2]{\mb{\mathrm{T^2}}\LWRwrapparen{\mb{#1,\ #2}}}}
+\CustomizeMathJax{\newcommand{\U}[1]{\mb{\mathrm{U}}\LWRwrapparen{\mb{#1}}}}
+\CustomizeMathJax{\newcommand{\W}[2]{\mb{\mathrm{Wishart}}\LWRwrapparen{\mb{#1,\ #2}}}}
+
+\CustomizeMathJax{\renewcommand{\t}[1]{\mb{\mathrm{t}}\LWRwrapparen{\mb{#1}}}}
+
+\CustomizeMathJax{\newcommand{\pBet}[3][x]{%
+ \IBeta{#2}{#3}%
+ #1^{#2-1}\LWRwrapparen{1-#1}^{#3-1}\I[#1]{0,\ 1}, \where #2>0 \and #3>0%
+}}
+\CustomizeMathJax{\newcommand{\pCau}[3][x]{%
+% \ifthenelse{\equal{#2, #3}{0, 1}}{\frac{1}{\cpi\LWRwrapparen{1+#1}^2}}%
+ {\frac{1}{#3\cpi\left\{1+\wrap{\LWRwrapparen{x-#2}/#3}^2\right\}}, \where #3>0}%
+}}% no special case for 0,1
+\CustomizeMathJax{\newcommand{\pChi}[2][x]{%
+ \frac{2^{-#2/2}}{\Gamma[#2/2]}#1^{#2/2-1}\e{-#1/2}%
+ \I[#1]{0,\infty}, \where #2>0%
+}}
+\CustomizeMathJax{\newcommand{\pExp}[2][x]{%
+ \frac{1}{#2}\e{-#1/#2}\I[#1]{0,\infty},%
+ \where #2>0%
+}}
+\CustomizeMathJax{\newcommand{\pGam}[3][x]{%
+ \frac{#3^{#2}}{\Gamma[#2]}#1^{#2-1}\e{-#3#1}%
+ \I[#1]{0,\infty}, \where #2>0 \and #3>0%
+}}
+\CustomizeMathJax{\newcommand{\pN}[3][x]{%
+% \ifthenelse{\equal{#2, #3}{0, 1}}%
+% {\frac{1}{\sqrt{2\cpi}}\e{-#1^2/2}}%
+ {\frac{1}{\sqrt{2\cpi \cdot #3}}\e{-\LWRwrapparen{#1-#2}^2/2 \cdot #3}}%
+}}% no test for 0,1, must add \cdot
+\CustomizeMathJax{\newcommand{\pPar}[3][x]{%
+ \frac{#3}{#2\LWRwrapparen{1+#1/#2}^{#3+1}}\I[#1]{0,\infty},%
+ \where #2>0 \and #3>0%
+}}
+\CustomizeMathJax{\newcommand{\pU}[3][x]{%
+% \ifthenelse{\equal{#2, #3}{0, 1}}{\I[#1]{0,\ 1}}%
+ {\frac{1}{#3-#2}\I[#1]{#2,\ #3}, \where #2<#3}%
+}}% no special case for 0,1
+
+\CustomizeMathJax{\newcommand{\=}[1]{\bar{#1}}}
+\CustomizeMathJax{\let\^\widehat}
+\CustomizeMathJax{\let\~\widetilde}
+\CustomizeMathJax{\newcommand{\'}[1]{\LWRwrapparen{\mb{#1}}}}
+\CustomizeMathJax{\newcommand{\b}[1]{\bar{#1}}}
+\CustomizeMathJax{\newcommand{\c}[1]{\mb{\mathrm{#1}}}}
+\CustomizeMathJax{\newcommand{\d}[1]{\,\mb{\mathrm{d}{#1}}}}
+\CustomizeMathJax{\newcommand{\.}{\mb{\ldots}}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</statex2>
+% \fi
+%
+%
+%
+%
+% \iffalse
+%<*statmath>
+% \fi
+%
+% \part{lwarp-statmath.sty}
+%
+% \section{statmath}
+%
+% \credits{Sebastian Ankargren}
+%
+% \DescribePackage{statmath}
+% \pkg{statmath} is used as-is for \SVG\ math, and
+% is emulated for \brand{MathJax}.
+%
+% \changes{v0.81}{2020/02/28}{\pkg{statmath}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackagePass{statmath}[2018/03/08]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\begin{warpMathJax}
+\LWR@infoprocessingmathjax{statmath}
+
+\CustomizeMathJax{\let\abcbf\mathbf}
+\CustomizeMathJax{\newcommand{\greekbf}[1]{\boldsymbol{#1}}}
+\CustomizeMathJax{\newcommand{\bfA}{\abcbf A}}
+\CustomizeMathJax{\newcommand{\bfB}{\abcbf B}}
+\CustomizeMathJax{\newcommand{\bfC}{\abcbf C}}
+\CustomizeMathJax{\newcommand{\bfD}{\abcbf D}}
+\CustomizeMathJax{\newcommand{\bfE}{\abcbf E}}
+\CustomizeMathJax{\newcommand{\bfF}{\abcbf F}}
+\CustomizeMathJax{\newcommand{\bfG}{\abcbf G}}
+\CustomizeMathJax{\newcommand{\bfH}{\abcbf H}}
+\CustomizeMathJax{\newcommand{\bfI}{\abcbf I}}
+\CustomizeMathJax{\newcommand{\bfJ}{\abcbf J}}
+\CustomizeMathJax{\newcommand{\bfK}{\abcbf K}}
+\CustomizeMathJax{\newcommand{\bfL}{\abcbf L}}
+\CustomizeMathJax{\newcommand{\bfM}{\abcbf M}}
+\CustomizeMathJax{\newcommand{\bfN}{\abcbf N}}
+\CustomizeMathJax{\newcommand{\bfO}{\abcbf O}}
+\CustomizeMathJax{\newcommand{\bfP}{\abcbf P}}
+\CustomizeMathJax{\newcommand{\bfQ}{\abcbf Q}}
+\CustomizeMathJax{\newcommand{\bfR}{\abcbf R}}
+\CustomizeMathJax{\newcommand{\bfS}{\abcbf S}}
+\CustomizeMathJax{\newcommand{\bfT}{\abcbf T}}
+\CustomizeMathJax{\newcommand{\bfU}{\abcbf U}}
+\CustomizeMathJax{\newcommand{\bfV}{\abcbf V}}
+\CustomizeMathJax{\newcommand{\bfW}{\abcbf W}}
+\CustomizeMathJax{\newcommand{\bfX}{\abcbf X}}
+\CustomizeMathJax{\newcommand{\bfY}{\abcbf Y}}
+\CustomizeMathJax{\newcommand{\bfZ}{\abcbf Z}}
+\CustomizeMathJax{\newcommand{\bfa}{\abcbf a}}
+\CustomizeMathJax{\newcommand{\bfb}{\abcbf b}}
+\CustomizeMathJax{\newcommand{\bfc}{\abcbf c}}
+\CustomizeMathJax{\newcommand{\bfd}{\abcbf d}}
+\CustomizeMathJax{\newcommand{\bfe}{\abcbf e}}
+\CustomizeMathJax{\newcommand{\bff}{\abcbf f}}
+\CustomizeMathJax{\newcommand{\bfg}{\abcbf g}}
+\CustomizeMathJax{\newcommand{\bfh}{\abcbf h}}
+\CustomizeMathJax{\newcommand{\bfi}{\abcbf i}}
+\CustomizeMathJax{\newcommand{\bfj}{\abcbf j}}
+\CustomizeMathJax{\newcommand{\bfk}{\abcbf k}}
+\CustomizeMathJax{\newcommand{\bfl}{\abcbf l}}
+\CustomizeMathJax{\newcommand{\bfm}{\abcbf m}}
+\CustomizeMathJax{\newcommand{\bfn}{\abcbf n}}
+\CustomizeMathJax{\newcommand{\bfo}{\abcbf o}}
+\CustomizeMathJax{\newcommand{\bfp}{\abcbf p}}
+\CustomizeMathJax{\newcommand{\bfq}{\abcbf q}}
+\CustomizeMathJax{\newcommand{\bfr}{\abcbf r}}
+\CustomizeMathJax{\newcommand{\bfs}{\abcbf s}}
+\CustomizeMathJax{\newcommand{\bft}{\abcbf t}}
+\CustomizeMathJax{\newcommand{\bfu}{\abcbf u}}
+\CustomizeMathJax{\newcommand{\bfv}{\abcbf v}}
+\CustomizeMathJax{\newcommand{\bfw}{\abcbf w}}
+\CustomizeMathJax{\newcommand{\bfx}{\abcbf x}}
+\CustomizeMathJax{\newcommand{\bfy}{\abcbf y}}
+\CustomizeMathJax{\newcommand{\bfz}{\abcbf z}}
+\CustomizeMathJax{\newcommand{\bfalpha}{\greekbf \alpha}}
+\CustomizeMathJax{\newcommand{\bfbeta}{\greekbf \beta}}
+\CustomizeMathJax{\newcommand{\bfdelta}{\greekbf \delta}}
+\CustomizeMathJax{\newcommand{\bfepsilon}{\greekbf \epsilon}}
+\CustomizeMathJax{\newcommand{\bfvarepsilon}{\greekbf \varepsilon}}
+\CustomizeMathJax{\newcommand{\bfzeta}{\greekbf \zeta}}
+\CustomizeMathJax{\newcommand{\bfeta}{\greekbf \eta}}
+\CustomizeMathJax{\newcommand{\bftheta}{\greekbf \theta}}
+\CustomizeMathJax{\newcommand{\bfvartheta}{\greekbf \vartheta}}
+\CustomizeMathJax{\newcommand{\bfgamma}{\greekbf \gamma}}
+\CustomizeMathJax{\newcommand{\bfkappa}{\greekbf \kappa}}
+\CustomizeMathJax{\newcommand{\bflambda}{\greekbf \lambda}}
+\CustomizeMathJax{\newcommand{\bfmu}{\greekbf \mu}}
+\CustomizeMathJax{\newcommand{\bfnu}{\greekbf \nu}}
+\CustomizeMathJax{\newcommand{\bfxi}{\greekbf \xi}}
+\CustomizeMathJax{\newcommand{\bfpi}{\greekbf \pi}}
+\CustomizeMathJax{\newcommand{\bfvarpi}{\greekbf \varpi}}
+\CustomizeMathJax{\newcommand{\bfrho}{\greekbf \rho}}
+\CustomizeMathJax{\newcommand{\bfvarrho}{\greekbf \varrho}}
+\CustomizeMathJax{\newcommand{\bfsigma}{\greekbf \sigma}}
+\CustomizeMathJax{\newcommand{\bfvarsigma}{\greekbf \varsigma}}
+\CustomizeMathJax{\newcommand{\bftau}{\greekbf \tau}}
+\CustomizeMathJax{\newcommand{\bfupsilon}{\greekbf \upsilon}}
+\CustomizeMathJax{\newcommand{\bfphi}{\greekbf \phi}}
+\CustomizeMathJax{\newcommand{\bfvarphi}{\greekbf \varphi}}
+\CustomizeMathJax{\newcommand{\bfchi}{\greekbf \chi}}
+\CustomizeMathJax{\newcommand{\bfpsi}{\greekbf \psi}}
+\CustomizeMathJax{\newcommand{\bfomega}{\greekbf \omega}}
+\CustomizeMathJax{\newcommand{\bfiota}{\greekbf \iota}}
+\CustomizeMathJax{\newcommand{\bfGamma}{\greekbf \Gamma}}
+\CustomizeMathJax{\newcommand{\bfDelta}{\greekbf \Delta}}
+\CustomizeMathJax{\newcommand{\bfTheta}{\greekbf \Theta}}
+\CustomizeMathJax{\newcommand{\bfLambda}{\greekbf \Lambda}}
+\CustomizeMathJax{\newcommand{\bfXi}{\greekbf \Xi}}
+\CustomizeMathJax{\newcommand{\bfPi}{\greekbf \Pi}}
+\CustomizeMathJax{\newcommand{\bfSigma}{\greekbf \Sigma}}
+\CustomizeMathJax{\newcommand{\bfUpsilon}{\greekbf \Upsilon}}
+\CustomizeMathJax{\newcommand{\bfPhi}{\greekbf \Phi}}
+\CustomizeMathJax{\newcommand{\bfPsi}{\greekbf \Psi}}
+\CustomizeMathJax{\newcommand{\bfOmega}{\greekbf \Omega}}
+\CustomizeMathJax{\newcommand{\bfzero}{\greekbf 0}}
+\CustomizeMathJax{\DeclareMathOperator{\cov}{Cov}}
+\CustomizeMathJax{\DeclareMathOperator{\E}{E}}
+\CustomizeMathJax{\DeclareMathOperator{\V}{V}}
+\CustomizeMathJax{\newcommand{\inas}{\overset{a.s.}{\to}}}
+\CustomizeMathJax{\newcommand{\indist}{\overset{d}{\to}}}
+\CustomizeMathJax{\newcommand{\inprob}{\overset{p}{\to}}}
+\CustomizeMathJax{\DeclareMathOperator{\plim}{plim}}
+\CustomizeMathJax{\DeclareMathOperator{\tr}{tr}}
+\CustomizeMathJax{\DeclareMathOperator{\vc}{vec}}
+\CustomizeMathJax{\DeclareMathOperator{\vcs}{vecs}}
+\CustomizeMathJax{\DeclareMathOperator{\vch}{vech}}
+\CustomizeMathJax{\DeclareMathOperator{\diag}{diag}}
+\CustomizeMathJax{\DeclareMathOperator{\argmin}{arg\,min}}
+\CustomizeMathJax{\DeclareMathOperator{\argmax}{arg\,max}}
+\end{warpMathJax}
+% \end{macrocode}
+%
+% \iffalse
+%</statmath>
+% \fi
+%
+%
+%
+%
+%
+% \iffalse
%<*steinmetz>
% \fi
%
@@ -67659,6 +69642,147 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
%
%
+% \iffalse
+%<*tagpdf>
+% \fi
+%
+% \part{lwarp-tagpdf.sty}
+%
+% \section{tagpdf}
+%
+% \DescribePackage{tagpdf}
+% \pkg{tagpdf} is mostly ignored, but emulates alt text, for images only.
+% (\HTML\ only has alternate text for images.)
+%
+% (If left enabled for \HTML\ output, \pkg{tagpdf} errors when producing \HTML,
+% somehow due to the \HTML\ page numbers.)
+%
+% \changes{v0.80}{2020/02/20}{\pkg{tagpdf}: Added.}
+%
+% \codehtml
+%
+% \begin{macrocode}
+\LWR@ProvidesPackageDrop{tagpdf}[2019/07/02]
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ExplSyntaxOn
+
+\tl_new:N \l__uftag_mc_key_label_tl
+
+\keys_define:nn { uftag / mc }
+ {
+ tag .code:n = % the name (H,P,Span etc
+ {},
+ raw .code:n =
+ {}
+ ,
+ alttext .code:n = % Alt property
+ {
+ \gdef\LWR@ThisAltText{\detokenize\expandafter{#1}}%
+ },
+ alttext-o .code:n = % Alt property
+ {
+ \gdef\LWR@ThisAltText{\detokenize\expandafter{#1}}%
+ },
+ actualtext .code:n = % ActualText property
+ {},
+ actualtext-o .code:n = % ActualText property
+ {},
+ label .tl_set:N = \l__uftag_mc_key_label_tl,
+ artifact .code:n = {},
+ artifact .default:n = {notype}
+ }
+
+\keys_define:nn { uftag / struct }
+ {
+ label .tl_set:N = \l__uftag_struct_key_label_tl,
+ stash .bool_set:N = \l__uftag_struct_elem_stash_bool,
+ tag .code:n = % S property
+ {},
+ title .code:n = % T property
+ {},
+ title-o .code:n = % T property
+ {},
+ alttext .code:n = % Alt property
+ {
+ \gdef\LWR@ThisAltText{\detokenize\expandafter{#1}}%
+ },
+ alttext-o .code:n = % Alt property
+ {
+ \gdef\LWR@ThisAltText{\detokenize\expandafter{#1}}%
+ },
+ actualtext .code:n = % ActualText property
+ {},
+ actualtext-o .code:n = % ActualText property
+ {},
+}
+
+\NewDocumentCommand \tagpdfsetup { m }{}
+
+\cs_set_eq:NN\tagpdfifluatexTF \sys_if_engine_luatex:TF
+\cs_set_eq:NN\tagpdfifluatexT \sys_if_engine_luatex:T
+\cs_set_eq:NN\tagpdfifpdftexT \sys_if_engine_pdftex:T
+\cs_new:Npn \tagpdfget #1 {}
+\cs_new:Npn \uftag_get:n #1 {}
+
+\NewDocumentCommand \tagmcifinTF { m m }{}
+
+\NewDocumentCommand \tagmcbegin { m }{\uftag_mc_begin:n {#1}\ignorespaces}
+\cs_new_protected:Nn \uftag_mc_begin:n {
+ \group_begin:
+ \keys_set:nn { uftag / mc } {#1}
+ \group_end:
+}
+
+\NewDocumentCommand \tagmcend {}{\ThisAltText{}}
+
+\cs_new_protected:Nn \uftag_mc_end: {\ThisAltText{}}
+
+\NewDocumentCommand \tagmcuse { m }{}
+
+\cs_new_protected:Nn \uftag_mc_use:n {}
+
+\NewDocumentCommand \tagstructbegin { m }{
+ \uftag_struct_begin:n {#1}
+}
+
+\cs_new_protected:Nn \uftag_struct_begin:n
+{
+ \group_begin:
+ \keys_set:nn {uftag / struct} { #1 }
+ \group_end:
+}
+
+\NewDocumentCommand \tagstructend { }{\ThisAltText{}}
+
+\cs_new_protected:Nn \uftag_struct_end: {\ThisAltText{}}
+
+\NewDocumentCommand \tagstructuse { m }{}
+
+% \NewDocumentCommand\showtagpdfmcdata { O {\__uftag_get_mc_abs_cnt:} }{}
+% What is the second argument?
+
+\NewDocumentCommand\showtagpdfattributes { }{}
+
+\sys_if_engine_luatex:T
+{
+ \NewDocumentCommand\pdffakespace { }
+ {
+ \__uftag_fakespace:
+ }
+}
+
+\ExplSyntaxOff
+% \end{macrocode}
+%
+% \iffalse
+%</tagpdf>
+% \fi
+%
+%
+%
+%
%
% \iffalse
%<*tascmac>
@@ -71207,7 +73331,9 @@ remember to convert PDF images to SVG using 'lwarpmk pdftosvg *-fig.pdf',
%
% \DescribePackage{unicode-math}
% \pkg{unicode-math} is supported as-is for \HTML\ with \SVG math.
-% For \brand{MathJax}, many characters do not seem to be encoded correctly,
+%
+% For \brand{MathJax}, many characters may not be read correctly,
+% such as bold letters,
% and so are not read correctly by \prog{pdftotext} for \HTML.
% Symbol font commands are emulated, but not all combinations are
% supported by MathJax.
@@ -72696,6 +74822,7 @@ padding:\LWR@printlength{\fboxsep}%
% Converted into an \HTML\ hex color span.
%
% \changes{v0.57}{2018/06/02}{\pkg{xcolor}: New system for switching print and \HTML\ outputs.}
+% \changes{v0.81}{2020/02/28}{\pkg{xcolor}: \cs{textcolor}: Spurrious space.}
% \begin{macrocode}
\NewDocumentCommand{\LWR@HTML@textcolor}{o m m}{%
\begingroup%
@@ -72703,7 +74830,7 @@ padding:\LWR@printlength{\fboxsep}%
\color[#1]{#2}%
}{%
\color{#2}%
-}
+}%
\InlineClass[color:\LWR@currenttextcolor]{textcolor}{#3}%
\endgroup%
}%
diff --git a/macros/latex/contrib/lwarp/lwarp.ins b/macros/latex/contrib/lwarp/lwarp.ins
index 5c9f591ed7..395ee2af8f 100644
--- a/macros/latex/contrib/lwarp/lwarp.ins
+++ b/macros/latex/contrib/lwarp/lwarp.ins
@@ -116,6 +116,7 @@ version 2005/12/01 or later.
\file{lwarp-CJKutf8.sty}{\from{lwarp.dtx}{CJKutf8}}
\file{lwarp-clrdblpg.sty}{\from{lwarp.dtx}{clrdblpg}}
\file{lwarp-cmdtrack.sty}{\from{lwarp.dtx}{cmdtrack}}
+\file{lwarp-colonequals.sty}{\from{lwarp.dtx}{colonequals}}
\file{lwarp-color.sty}{\from{lwarp.dtx}{color}}
\file{lwarp-colortbl.sty}{\from{lwarp.dtx}{colortbl}}
\file{lwarp-continue.sty}{\from{lwarp.dtx}{continue}}
@@ -127,14 +128,18 @@ version 2005/12/01 or later.
\file{lwarp-dblfloatfix.sty}{\from{lwarp.dtx}{dblfloatfix}}
\file{lwarp-dblfnote.sty}{\from{lwarp.dtx}{dblfnote}}
\file{lwarp-dcolumn.sty}{\from{lwarp.dtx}{dcolumn}}
+\file{lwarp-decimal.sty}{\from{lwarp.dtx}{decimal}}
\file{lwarp-diagbox.sty}{\from{lwarp.dtx}{diagbox}}
\file{lwarp-dingbat.sty}{\from{lwarp.dtx}{dingbat}}
+\file{lwarp-DotArrow.sty}{\from{lwarp.dtx}{DotArrow}}
+\file{lwarp-dotlessi.sty}{\from{lwarp.dtx}{dotlessi}}
\file{lwarp-dprogress.sty}{\from{lwarp.dtx}{dprogress}}
\file{lwarp-draftcopy.sty}{\from{lwarp.dtx}{draftcopy}}
\file{lwarp-draftfigure.sty}{\from{lwarp.dtx}{draftfigure}}
\file{lwarp-draftwatermark.sty}{\from{lwarp.dtx}{draftwatermark}}
\file{lwarp-easy-todo.sty}{\from{lwarp.dtx}{easy-todo}}
\file{lwarp-ebook.sty}{\from{lwarp.dtx}{ebook}}
+\file{lwarp-econometrics.sty}{\from{lwarp.dtx}{econometrics}}
\file{lwarp-ed.sty}{\from{lwarp.dtx}{ed}}
\file{lwarp-ellipsis.sty}{\from{lwarp.dtx}{ellipsis}}
\file{lwarp-embrac.sty}{\from{lwarp.dtx}{embrac}}
@@ -142,6 +147,7 @@ version 2005/12/01 or later.
\file{lwarp-endfloat.sty}{\from{lwarp.dtx}{endfloat}}
\file{lwarp-endheads.sty}{\from{lwarp.dtx}{endheads}}
\file{lwarp-endnotes.sty}{\from{lwarp.dtx}{endnotes}}
+\file{lwarp-engtlc.sty}{\from{lwarp.dtx}{engtlc}}
\file{lwarp-enumerate.sty}{\from{lwarp.dtx}{enumerate}}
\file{lwarp-enumitem.sty}{\from{lwarp.dtx}{enumitem}}
\file{lwarp-epigraph.sty}{\from{lwarp.dtx}{epigraph}}
@@ -253,6 +259,7 @@ version 2005/12/01 or later.
\file{lwarp-lua-check-hyphen.sty}{\from{lwarp.dtx}{lua-check-hyphen}}
\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-luatodonotes.sty}{\from{lwarp.dtx}{luatodonotes}}
\file{lwarp-lyluatex.sty}{\from{lwarp.dtx}{lyluatex}}
\file{lwarp-magaz.sty}{\from{lwarp.dtx}{magaz}}
@@ -288,6 +295,7 @@ version 2005/12/01 or later.
\file{lwarp-multicol.sty}{\from{lwarp.dtx}{multicol}}
\file{lwarp-multicolrule.sty}{\from{lwarp.dtx}{multicolrule}}
\file{lwarp-multimedia.sty}{\from{lwarp.dtx}{multimedia}}
+\file{lwarp-multiobjective.sty}{\from{lwarp.dtx}{multiobjective}}
\file{lwarp-multirow.sty}{\from{lwarp.dtx}{multirow}}
\file{lwarp-multitoc.sty}{\from{lwarp.dtx}{multitoc}}
\file{lwarp-musicography.sty}{\from{lwarp.dtx}{musicography}}
@@ -302,6 +310,7 @@ version 2005/12/01 or later.
\file{lwarp-nicefrac.sty}{\from{lwarp.dtx}{nicefrac}}
\file{lwarp-niceframe.sty}{\from{lwarp.dtx}{niceframe}}
\file{lwarp-noitcrul.sty}{\from{lwarp.dtx}{noitcrul}}
+\file{lwarp-nolbreaks.sty}{\from{lwarp.dtx}{nolbreaks}}
\file{lwarp-nomencl.sty}{\from{lwarp.dtx}{nomencl}}
\file{lwarp-nonfloat.sty}{\from{lwarp.dtx}{nonfloat}}
\file{lwarp-nonumonpart.sty}{\from{lwarp.dtx}{nonumonpart}}
@@ -340,6 +349,7 @@ version 2005/12/01 or later.
\file{lwarp-pfnote.sty}{\from{lwarp.dtx}{pfnote}}
\file{lwarp-phfqit.sty}{\from{lwarp.dtx}{phfqit}}
\file{lwarp-physics.sty}{\from{lwarp.dtx}{physics}}
+\file{lwarp-physunits.sty}{\from{lwarp.dtx}{physunits}}
\file{lwarp-pifont.sty}{\from{lwarp.dtx}{pifont}}
\file{lwarp-placeins.sty}{\from{lwarp.dtx}{placeins}}
\file{lwarp-plarydshln.sty}{\from{lwarp.dtx}{plarydshln}}
@@ -367,6 +377,7 @@ version 2005/12/01 or later.
\file{lwarp-relsize.sty}{\from{lwarp.dtx}{relsize}}
\file{lwarp-repeatindex.sty}{\from{lwarp.dtx}{repeatindex}}
\file{lwarp-resizegather.sty}{\from{lwarp.dtx}{resizegather}}
+\file{lwarp-returntogrid.sty}{\from{lwarp.dtx}{returntogrid}}
\file{lwarp-rmathbr.sty}{\from{lwarp.dtx}{rmathbr}}
\file{lwarp-rmpage.sty}{\from{lwarp.dtx}{rmpage}}
\file{lwarp-romanbar.sty}{\from{lwarp.dtx}{romanbar}}
@@ -407,6 +418,9 @@ version 2005/12/01 or later.
\file{lwarp-srctex.sty}{\from{lwarp.dtx}{srctex}}
\file{lwarp-stabular.sty}{\from{lwarp.dtx}{stabular}}
\file{lwarp-stackengine.sty}{\from{lwarp.dtx}{stackengine}}
+\file{lwarp-stackrel.sty}{\from{lwarp.dtx}{stackrel}}
+\file{lwarp-statex2.sty}{\from{lwarp.dtx}{statex2}}
+\file{lwarp-statmath.sty}{\from{lwarp.dtx}{statmath}}
\file{lwarp-steinmetz.sty}{\from{lwarp.dtx}{steinmetz}}
\file{lwarp-stfloats.sty}{\from{lwarp.dtx}{stfloats}}
\file{lwarp-struktex.sty}{\from{lwarp.dtx}{struktex}}
@@ -422,6 +436,7 @@ version 2005/12/01 or later.
\file{lwarp-tabls.sty}{\from{lwarp.dtx}{tabls}}
\file{lwarp-tabularx.sty}{\from{lwarp.dtx}{tabularx}}
\file{lwarp-tabulary.sty}{\from{lwarp.dtx}{tabulary}}
+\file{lwarp-tagpdf.sty}{\from{lwarp.dtx}{tagpdf}}
\file{lwarp-tascmac.sty}{\from{lwarp.dtx}{tascmac}}
\file{lwarp-textarea.sty}{\from{lwarp.dtx}{textarea}}
\file{lwarp-textcomp.sty}{\from{lwarp.dtx}{textcomp}}
diff --git a/macros/latex/contrib/lwarp/lwarp.pdf b/macros/latex/contrib/lwarp/lwarp.pdf
index de944bc2ac..2b838cf756 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 afa450930a..a862d7f8bb 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.80"
+printversion = "v0.81"
requiredconfversion = "2" -- also at *lwarpmk.conf
function printhelp ()
@@ -228,7 +228,9 @@ if sourcename=="lwarp" then
print ("lwarpmk: ===")
print ("lwarpmk: lwarp.sty has recently been recompiled in this directory,")
print ("lwarpmk: and \"lwarpmk.conf\" is no longer set for your own project.")
- print ("lwarpmk: Recompile your own project using pdf/lua/xelatex <projectname>.")
+ print ("lwarpmk: (Perhaps you are not in your project's directory?)")
+ print ("lwarpmk: In your project directory, recompile your project")
+ print ("lwarpmk: using pdf/lua/xelatex <projectname>.")
print ("lwarpmk: After a recompile, \"lwarpmk.conf\" will be set for your project,")
print ("lwarpmk: and you may again use lwarpmk.")
print ("lwarpmk: ===")
diff --git a/macros/latex/contrib/media9/ChangeLog b/macros/latex/contrib/media9/ChangeLog
index e69d741450..7f0efbbb69 100644
--- a/macros/latex/contrib/media9/ChangeLog
+++ b/macros/latex/contrib/media9/ChangeLog
@@ -1,3 +1,10 @@
+2020-03-04
+ * v1.06 : media9.sty
+ * v0.37 : pdfbase.sty
+ * fix : pdfbase.sty, dvisvgm driver: fixed behaviour of
+ \pbs_pdfrefxform:n under rotation/scaling, \pbs_pdfxform:nnnnn not changing
+ page bbox anymore
+
2020-01-27
* v1.05 : media9.sty
* v0.36 : pdfbase.sty
diff --git a/macros/latex/contrib/media9/doc/media9.pdf b/macros/latex/contrib/media9/doc/media9.pdf
index 982d811758..9750cd8a7d 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 14ba62ef41..0126bcbc21 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/01/27}
-\def\g@mix@version@tl{1.05}
+\def\g@mix@date@tl{2020/03/04}
+\def\g@mix@version@tl{1.06}
\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 a791da1eee..f03a11ac24 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/01/27}
-\def\g@pbs@version@tl{0.36}
+\def\g@pbs@date@tl{2020/03/04}
+\def\g@pbs@version@tl{0.37}
\ProvidesExplPackage{pdfbase}{\g@pbs@date@tl}{\g@pbs@version@tl}
{driver independent access to low-level PDF features}
@@ -751,7 +751,9 @@
id='pbs@obj\int_use:N\g_pbs_obj_int'~class='xform'
>
}
+ \special{dvisvgm:bbox~lock}
\box_use_drop:N#5
+ \special{dvisvgm:bbox~unlock}
\special{dvisvgm:raw~{?nl}</g>{?nl}</defs>}
}
}
@@ -760,7 +762,8 @@
}
\cs_new_protected_nopar:Nn\pbs_pdfrefxform:n{
- \special{dvisvgm:raw~{?nl}<use~x='{?x}'~y='{?y}'~xlink:href='#1'/>}
+ \special{dvisvgm:raw~{?nl}
+ <use~x='{?x}'~y='{?y}'~transform='{?matrix}'~xlink:href='#1'/>}
}
}{
%dvips
diff --git a/macros/latex/contrib/xsavebox/ChangeLog b/macros/latex/contrib/xsavebox/ChangeLog
index c039533f0d..b2097c7004 100644
--- a/macros/latex/contrib/xsavebox/ChangeLog
+++ b/macros/latex/contrib/xsavebox/ChangeLog
@@ -1,3 +1,7 @@
+2020-03-04
+ * v0.16
+ * fix: dvisvgm-special `bbox' option `transform' added
+
2019-11-12
* v0.15
* fix: output driver set-up
diff --git a/macros/latex/contrib/xsavebox/README.md b/macros/latex/contrib/xsavebox/README.md
index 61d91bfa99..89ff617c37 100644
--- a/macros/latex/contrib/xsavebox/README.md
+++ b/macros/latex/contrib/xsavebox/README.md
@@ -14,6 +14,7 @@ All common TeX engines and back-ends are supported:
* pdfLaTeX, LuaLaTeX
* LaTeX &rArr; dvips &rArr; ps2pdf/Distiller
* (Xe)LaTeX &rArr; (x)dvipdfmx
+* LaTeX &rArr; dvisvgm
## User commands
diff --git a/macros/latex/contrib/xsavebox/xsavebox.pdf b/macros/latex/contrib/xsavebox/xsavebox.pdf
index 0c2d0fb2e9..9f8d52ba89 100644
--- a/macros/latex/contrib/xsavebox/xsavebox.pdf
+++ b/macros/latex/contrib/xsavebox/xsavebox.pdf
Binary files differ
diff --git a/macros/latex/contrib/xsavebox/xsavebox.sty b/macros/latex/contrib/xsavebox/xsavebox.sty
index 686640aaa9..2f3fac684f 100644
--- a/macros/latex/contrib/xsavebox/xsavebox.sty
+++ b/macros/latex/contrib/xsavebox/xsavebox.sty
@@ -28,8 +28,8 @@
% \xusebox{<name>}
% \the<name> %short form of \xusebox{<name>} for <name> composed of [a-zA-Z]
%
-% Supports all known engines and backends including
-% pdflatex, latex+dvips+ps2pdf, xelatex, latex+dvipdfmx, lualatex.
+% Supports all known engines and backends including pdflatex,
+% latex+dvips+ps2pdf, xelatex, latex+dvipdfmx, lualatex, latex+dvisvgm.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -48,8 +48,8 @@
\RequirePackage{xparse}
\RequirePackage{l3keys2e}
-\def\g@xsb@version@tl{0.15}
-\def\g@xsb@date@tl{2019/11/12}
+\def\g@xsb@version@tl{0.16}
+\def\g@xsb@date@tl{2020/03/04}
\ProvidesExplPackage{xsavebox}{\g@xsb@date@tl}{\g@xsb@version@tl}
{saveboxes for repeating content without code replication}
@@ -121,7 +121,9 @@
\bool_if:NTF\g_xsb_dvisvgm_bool{
\tl_gset:Nn\g_xsb_margin_tl{0pt}
- \cs_new_protected_nopar:Nn\xsb_updatebbox:nnn{\special{dvisvgm:bbox~#1~#2~#3}}
+ \cs_new_protected_nopar:Nn\xsb_updatebbox:nnn{
+ \special{dvisvgm:bbox~#1~#2~#3~transform}
+ }
}{
\cs_new_protected_nopar:Nn\xsb_updatebbox:nnn{}
}
diff --git a/macros/latex/contrib/xsavebox/xsavebox.tex b/macros/latex/contrib/xsavebox/xsavebox.tex
index 1739f1f072..b7d437cfb0 100644
--- a/macros/latex/contrib/xsavebox/xsavebox.tex
+++ b/macros/latex/contrib/xsavebox/xsavebox.tex
@@ -32,7 +32,7 @@
pdftitle={The xsavebox Package},
pdfsubject={Documentation},
pdfauthor={Alexander Grahn},
- pdfkeywords={PDF features, XObject, savebox, LaTeX, dvips, repeated content, repeated graphics, eps, PostScript, ps2pdf, XeLaTeX, pdfLaTeX, LuaLaTeX, dvipdfmx, dvisvgmx},
+ pdfkeywords={PDF features, XObject, savebox, LaTeX, dvips, repeated content, repeated graphics, eps, PostScript, ps2pdf, XeLaTeX, pdfLaTeX, LuaLaTeX, dvipdfmx, dvisvgm},
citebordercolor={0 0 1},
filebordercolor={0 0 1},
linkbordercolor={0 0 1},
diff --git a/macros/latex/contrib/zref/zref.dtx b/macros/latex/contrib/zref/zref.dtx
index c1c76e7210..d7a5b0863e 100644
--- a/macros/latex/contrib/zref/zref.dtx
+++ b/macros/latex/contrib/zref/zref.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
%
% File: zref.dtx
-% Version: 2019/11/29 v2.28
+% Version: 2020-03-03 v2.29
% Info: A new reference scheme for LaTeX
%
% Copyright (C)
@@ -95,10 +95,6 @@
% TDS:doc/latex/zref/zref-example.tex
% TDS:doc/latex/zref/zref-example-lastpage.tex
% TDS:doc/latex/zref/zref-example-nextpage.tex
-% TDS:doc/latex/zref/test/zref-test1.tex
-% TDS:doc/latex/zref/test/zref-test-base.tex
-% TDS:doc/latex/zref/test/zref-test-runs.tex
-% TDS:doc/latex/zref/test/zref-test-titleref-memoir.tex
% TDS:source/latex/zref/zref.dtx
%
%<*ignore>
@@ -116,7 +112,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: zref 2019/11/29 v2.28 A new reference scheme for LaTeX (HO)}
+\Msg{* Package: zref 2020-03-03 v2.29 A new reference scheme for LaTeX (HO)}
\Msg{************************************************************************}
\keepsilent
@@ -128,11 +124,11 @@
This is a generated file.
Project: zref
-Version: 2019/11/29 v2.28
+Version: 2020-03-03 v2.29
Copyright (C)
2006-2012 Heiko Oberdiek
- 2016-2019 Oberdiek Package Support Group
+ 2016-2020 Oberdiek Package Support Group
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
@@ -202,10 +198,6 @@ and the derived files
% \file{zref-test-base.tex}{\from{zref.dtx}{test-base}}%
% \file{zref-test-runs.tex}{\from{zref.dtx}{test-runs}}%
% \file{zref-test-titleref-memoir.tex}{\from{zref.dtx}{test-titleref-memoir}}%
- \nopreamble
- \nopostamble
-% \usedir{source/latex/zref/catalogue}%
-% \file{zref.xml}{\from{zref.dtx}{catalogue}}%
}
\catcode32=13\relax% active space
@@ -238,7 +230,7 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{zref.drv}%
- [2019/11/29 v2.28 A new reference scheme for LaTeX (HO)]%
+ [2020-03-03 v2.29 A new reference scheme for LaTeX (HO)]%
\documentclass{ltxdoc}
\usepackage{holtxdoc}[2011/11/22]
\setlength{\emergencystretch}{1em}
@@ -249,26 +241,11 @@ and the derived files
% \fi
%
%
-% \CharacterTable
-% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
%
% \GetFileInfo{zref.drv}
%
% \title{The \xpackage{zref} package}
-% \date{2019/11/29 v2.28}
+% \date{2020-03-03 v2.29}
% \author{Heiko Oberdiek\thanks
% {Please report any issues at \url{https://github.com/ho-tex/zref/issues}}}
%
@@ -878,6 +855,10 @@ and the derived files
%
% With the help of package \xpackage{atbegshi}
% a new counter |abspage| with absolute page numbers is provided.
+% For technical and historical reasons the counter itself is zero based:
+% if you use it directly on the first page, e.g
+% with |\arabic{abspage}| you will get 0 as value. When using |\zref|
+% the first page will be page 1 as expected.
% Also a new property |abspage| is defined and added to the
% main property list. Thus you can reference the absolute
% page number:
@@ -1339,6 +1320,46 @@ and the derived files
% The property list |savepos| contains the properties |posx|
% and |posy|.
%
+% \subsection{Module \xmodule{abspos}}
+% Module \xmodule{abspos} allows to get various values of the page layout. There is no user
+% command, only a number of internal commands. For example:
+% \begin{quote}
+% |\zref@absposx{|\meta{label}|}{|\meta{value}|}{|\meta{position}|}|\\
+% |\zref@absposy{|\meta{label}|}{|\meta{value}|}{|\meta{position}|}|
+% \end{quote}
+%
+% The return value is like in the module \xmodule{savepos} a number representing a length in sp.
+% The length are measured from the bottom left of the page.
+%
+% \meta{label} is a label set with \cs{zlabel} or \cs{zsavepos} that allows to retrieve the
+% absolute page number.
+%
+% \meta{position} is for the x-command one of |left|, |right| or |center|. For the y-command
+% it is one of |top|, |bottom|, |center|.
+%
+% The possible content of \meta{value} can be seen in the following table. Be aware that the code
+% makes some assumptions which are perhaps not always true -- for example that the left of
+% the head is identical to the left of the body.
+%
+% \medskip
+% \begin{tabular}{lll}
+% \textbf{value} & \textbf{axis} & \textbf{comments}\\\hline
+% media & x & left=0, right=\cs{pdfpagewidth} \\
+% paper & x & left=0, right=\cs{paperwidth}\\
+% stock & x & derived from paper\\
+% media & y & bottom=0, top=\cs{pdfpageheigh}\\
+% paper & y & top=\cs{pdfpageheight}, bottom=top-\cs{paperheight}\\
+% stock & y & top derived from paper\\
+% head & x & calculated with hoffset, horigin, etc\\
+% head & y & calculated\\
+% body & x & = head value\\%
+% body & y & = head bottom - \cs{headsep}\\
+% foot & x & = head\\
+% foot & y & calculated from body bottom and \cs{footskip}\\
+% marginpar & x &different on odd/even pages! \\
+% marginpar & y & = body %
+% \end{tabular}
+%
% \subsection{Module \xmodule{dotfill}}
%
% \begin{declcs}{zdotfill}
@@ -1433,6 +1454,17 @@ and the derived files
% this macro as extension. \cs{XR@ext} is used if
% \xpackage{hyperref} is loaded, otherwise |pdf|.
%
+% \subsection{Module \xmodule{pageattr}}
+%
+% This module allows to recover the content of the register
+% \cs{pdfpageattr} and \cs{pdfpagesattr} in pdftex and the equivalent register
+% in luatex. There is no user command. Programmer commands are
+%
+% \begin{quote}
+% |\zref@pdfpageattr{|\meta{absolute page number}|}|
+%
+% |\zref@pdfpagesattr{|\meta{absolute page number}|}|
+% \end{quote}
% \section{ToDo}\label{sec:todo}
%
% Among other things the following issues are left for future work:
@@ -1631,7 +1663,7 @@ the height difference of the two baselines is
%<*package>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref}
- [2019/11/29 v2.28 A new reference scheme for LaTeX (HO)]%
+ [2020-03-03 v2.29 A new reference scheme for LaTeX (HO)]%
% \end{macrocode}
%
% \subsubsection{Load basic module}
@@ -1718,7 +1750,7 @@ the height difference of the two baselines is
%<*base>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-base}%
- [2019/11/29 v2.28 Module base for zref (HO)]%
+ [2020-03-03 v2.29 Module base for zref (HO)]%
% \end{macrocode}
%
% \subsubsection{Utilities}
@@ -3025,7 +3057,7 @@ the height difference of the two baselines is
%<*user>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-user}%
- [2019/11/29 v2.28 Module user for zref (HO)]%
+ [2020-03-03 v2.29 Module user for zref (HO)]%
\RequirePackage{zref-base}[2019/11/29]
\ifx\ZREF@base@ok Y%
\else
@@ -3116,7 +3148,7 @@ the height difference of the two baselines is
%<*abspage>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-abspage}%
- [2019/11/29 v2.28 Module abspage for zref (HO)]%
+ [2020-03-03 v2.29 Module abspage for zref (HO)]%
\RequirePackage{zref-base}[2019/11/29]
\ifx\ZREF@base@ok Y%
\else
@@ -3164,7 +3196,7 @@ the height difference of the two baselines is
%<*counter>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-counter}%
- [2019/11/29 v2.28 Module counter for zref (HO)]%
+ [2020-03-03 v2.29 Module counter for zref (HO)]%
\RequirePackage{zref-base}[2019/11/29]
\ifx\ZREF@base@ok Y%
\else
@@ -3204,7 +3236,7 @@ the height difference of the two baselines is
%<*lastpage>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-lastpage}%
- [2019/11/29 v2.28 Module lastpage for zref (HO)]%
+ [2020-03-03 v2.29 Module lastpage for zref (HO)]%
\RequirePackage{zref-base}[2019/11/29]
\RequirePackage{zref-abspage}[2019/11/29]
\RequirePackage{atveryend}[2009/12/07]
@@ -3276,7 +3308,7 @@ the height difference of the two baselines is
%<*thepage>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-thepage}%
- [2019/11/29 v2.28 Module thepage for zref (HO)]%
+ [2020-03-03 v2.29 Module thepage for zref (HO)]%
\RequirePackage{zref-base}[2019/11/29]
\ifx\ZREF@base@ok Y%
\else
@@ -3351,7 +3383,7 @@ the height difference of the two baselines is
%<*nextpage>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-nextpage}%
- [2019/11/29 v2.28 Module nextpage for zref (HO)]%
+ [2020-03-03 v2.29 Module nextpage for zref (HO)]%
\RequirePackage{zref-base}[2019/11/29]
\ifx\ZREF@base@ok Y%
\else
@@ -3455,7 +3487,7 @@ the height difference of the two baselines is
%<*totpages>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-totpages}%
- [2019/11/29 v2.28 Module totpages for zref (HO)]%
+ [2020-03-03 v2.29 Module totpages for zref (HO)]%
\RequirePackage{zref-base}[2019/11/29]
\ifx\ZREF@base@ok Y%
\else
@@ -3497,7 +3529,7 @@ the height difference of the two baselines is
%<*pagelayout>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-pagelayout}%
- [2019/11/29 v2.28 Module pagelayout for zref (HO)]%
+ [2020-03-03 v2.29 Module pagelayout for zref (HO)]%
\RequirePackage{zref-base}[2019/11/29]
\ifx\ZREF@base@ok Y%
\else
@@ -3511,39 +3543,6 @@ the height difference of the two baselines is
\RequirePackage{atveryend}[2010/03/24]
% \end{macrocode}
%
-% \subsubsection{Support for \hologo{LuaTeX}}
-%
-% \begin{macrocode}
-\ifluatex
- \ifnum\luatexversion<39 %
- \else
- \begingroup
- \escapechar=-1 %
- \def\ZREF@temp#1{%
- \ltx@IfUndefined{\string#1}{%
- \let#1\ltx@undefined
- \directlua{%
- if tex.enableprimitives then %
- tex.enableprimitives('', {'\string#1'})%
- end%
- }%
- \ltx@ifundefined{\string#1}{%
- }{%
- \global#1=#1%
- \@PackageInfoNoLine{zref-pagelayout}{%
- \string#1 enabled%
- }%
- }%
- }{}%
- }%
- \ZREF@temp\pdfpagewidth
- \ZREF@temp\pdfpageheight
- \ZREF@temp\pdfhorigin
- \ZREF@temp\pdfvorigin
- \endgroup
- \fi
-\fi
-% \end{macrocode}
%
% \subsubsection{Define layout properties}
%
@@ -3569,10 +3568,29 @@ the height difference of the two baselines is
\ZREF@temp\stockheight % memoir.cls, crop.sty
\ZREF@temp\mediawidth % VTeX
\ZREF@temp\mediaheight % VTeX
+\ifluatex
+\zref@newprop*{pdfvorigin}%
+ [\number\pdfvariable vorigin]% hash-ok
+ {\number\pdfvariable vorigin}%
+\zref@addprop{thepage}{pdfvorigin}
+\zref@newprop*{pdfhorigin}%
+ [\number\pdfvariable horigin]% hash-ok
+ {\number\pdfvariable horigin}%
+\zref@addprop{thepage}{pdfhorigin}
+\zref@newprop*{pdfpageheight}%
+ [\number\pageheight]% hash-ok
+ {\number\pageheight}%
+\zref@addprop{thepage}{pdfpageheight}
+\zref@newprop*{pdfpagewidth}%
+ [\number\pagewidth]% hash-ok
+ {\number\pagewidth}%
+\zref@addprop{thepage}{pdfpagewidth}
+\else
\ZREF@temp\pdfpagewidth
\ZREF@temp\pdfpageheight
\ZREF@temp\pdfhorigin
\ZREF@temp\pdfvorigin
+\fi
\ZREF@temp\hoffset
\ZREF@temp\voffset
\ZREF@temp\topmargin
@@ -3739,7 +3757,7 @@ the height difference of the two baselines is
%<*pageattr>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-pageattr}%
- [2019/11/29 v2.28 Module pageattr for zref (HO)]%
+ [2020-03-03 v2.29 Module pageattr for zref (HO)]%
\RequirePackage{zref-base}[2019/11/29]
\ifx\ZREF@base@ok Y%
\else
@@ -3751,61 +3769,48 @@ the height difference of the two baselines is
\RequirePackage{iftex}[2019/11/07]%
% \end{macrocode}
%
-% \begin{macrocode}
-\ifluatex
- \ifnum\luatexversion<39 %
- \else
- \begingroup
- \escapechar=-1 %
- \def\ZREF@temp#1{%
- \ltx@IfUndefined{\string#1}{%
- \let#1\ltx@undefined
- \directlua{%
- if tex.enableprimitives then %
- tex.enableprimitives('', {'\string#1'})%
- end%
- }%
- \ltx@ifundefined{\string#1}{%
- }{%
- \global#1=#1%
- \@PackageInfoNoLine{zref-pageattr}{%
- \string#1 enabled%
- }%
- }%
- }{}%
- }%
- \ZREF@temp\pdfpageattr
- \ZREF@temp\pdfpagesattr
- \endgroup
- \fi
-\fi
-% \end{macrocode}
%
% \begin{macrocode}
\let\ZREF@temp=N%
-\ltx@IfUndefined{pdfpageattr}{%
+\ifluatex
+\expandafter\@firstoftwo
+\else
+\expandafter\@secondoftwo
+\fi
+{%luatex
+ \RequirePackage{zref-thepage}[2019/11/29]
+ \RequirePackage{zref-lastpage}[2019/11/29]%
+ \zref@newprop*{pdfpageattr}[]{\zref@hex{\the\pdfvariable pageattr}}%
+ \zref@addprop{thepage}{pdfpageattr}%
+ \zref@newprop*{pdfpagesattr}[]{\zref@hex{\the\pdfvariable pagesattr}}%
+ \zref@addprop{LastPage}{pdfpagesattr}%
+ \let\ZREF@temp=Y%
+}
+{%other
+ \ltx@IfUndefined{pdfpageattr}{%
\@PackageInfoNoLine{zref-pageattr}{%
\string\pdfpageattr\space is not available%
}%
\def\zref@pdfpageattr#1{}%
\def\zref@pdfpageattr@used#1{}%
-}{%
+ }{%
\RequirePackage{zref-thepage}[2019/11/29]%
\zref@newprop*{pdfpageattr}[]{\zref@hex{\the\pdfpageattr}}%
\zref@addprop{thepage}{pdfpageattr}%
\let\ZREF@temp=Y%
-}
-\ltx@IfUndefined{pdfpagesattr}{%
+ }
+ \ltx@IfUndefined{pdfpagesattr}{%
\@PackageInfoNoLine{zref-pageattr}{%
\string\pdfpagesattr\space is not available%
}%
\def\zref@pdfpagesattr{}%
\def\zref@pdfpagesattr@used{}%
-}{%
+ }{%
\RequirePackage{zref-lastpage}[2019/11/29]%
\zref@newprop*{pdfpagesattr}[]{\zref@hex{\the\pdfpagesattr}}%
\zref@addprop{LastPage}{pdfpagesattr}%
\let\ZREF@temp=Y%
+ }%
}%
% \end{macrocode}
% \begin{macrocode}
@@ -3863,12 +3868,23 @@ the height difference of the two baselines is
% \end{macro}
% \begin{macro}{\ZREF@pa@AtVeryEnd}
% \begin{macrocode}
-\ltx@IfUndefined{pdfpageattr}{%
+\let\ZREF@temp=Y%
+\ltx@IfUndefined{pdfpageattr}{}{\let\ZREF@temp=N}
+\ifluatex \let\ZREF@temp=N \fi
+\ifx\ZREF@temp Y
+ \expandafter\@firstoftwo
+\else
+ \expandafter\@secondoftwo
+\fi
+ {%
\def\ZREF@pa@AtVeryEnd{}%
-}{%
+ }
+ {%
\def\ZREF@pa@AtVeryEnd{%
\begingroup
- \toks@{List of \ltx@backslashchar pdfpageattr:\MessageBreak}%
+ \toks@{List of \ltx@backslashchar
+ \ifluatex pdfvariable\else pdf\fi
+ pdfpageattr:\MessageBreak}%
\count@=1 %
\ZREF@pa@ListPage
\edef\x{\endgroup
@@ -3882,11 +3898,13 @@ the height difference of the two baselines is
% \end{macro}
% \begin{macro}{\zref@pageattr}
% \begin{macrocode}
-\def\zref@pageattr#1{%
+\def\zref@pdfpageattr#1{%
\zref@unhex{%
\zref@extract{thepage\ZREF@number{#1}}{pdfpageattr}%
}%
}
+% compability, \zref@pageattr was defined in older versions
+\let\zref@pageattr\zref@pdfpageattr
% \end{macrocode}
% \end{macro}
% \begin{macro}{\zref@pageattr@used}
@@ -3921,8 +3939,13 @@ the height difference of the two baselines is
% \end{macrocode}
% \end{macro}
% \begin{macrocode}
-\ltx@IfUndefined{pdfpagesattr}{%
-}{%
+\let\ZREF@temp=Y%
+\ltx@IfUndefined{pdfpagesattr}{}{\let\ZREF@temp=N}
+\ifluatex \let\ZREF@temp=N \fi
+\ifx\ZREF@temp N
+ \expandafter\@firstofone
+\fi
+ {%
% \end{macrocode}
% \begin{macro}{\zref@pdfpagesattr}
% \begin{macrocode}
@@ -3943,7 +3966,9 @@ the height difference of the two baselines is
% \begin{macrocode}
\ltx@LocalAppendToMacro\ZREF@pa@AtVeryEnd{%
\@PackageInfoNoLine{zref-pageattr}{%
- \ltx@backslashchar pdfpagesattr:\MessageBreak
+ \ltx@backslashchar
+ \ifluatex pdfvariable\else pdf\fi
+ pagesattr:\MessageBreak
<<\zref@pdfpagesattr>>%
\MessageBreak
}%
@@ -3964,7 +3989,7 @@ the height difference of the two baselines is
%<*marks>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-marks}%
- [2019/11/29 v2.28 Module marks for zref (HO)]%
+ [2020-03-03 v2.29 Module marks for zref (HO)]%
\RequirePackage{zref-base}[2019/11/29]
\ifx\ZREF@base@ok Y%
\else
@@ -4070,7 +4095,7 @@ the height difference of the two baselines is
%<*runs>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-runs}%
- [2019/11/29 v2.28 Module runs for zref (HO)]%
+ [2020-03-03 v2.29 Module runs for zref (HO)]%
% \end{macrocode}
%
% \begin{macro}{\zruns}
@@ -4102,7 +4127,7 @@ the height difference of the two baselines is
%<*perpage>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-perpage}%
- [2019/11/29 v2.28 Module perpage for zref (HO)]%
+ [2020-03-03 v2.29 Module perpage for zref (HO)]%
\RequirePackage{zref-base}[2019/11/29]
\ifx\ZREF@base@ok Y%
\else
@@ -4284,7 +4309,7 @@ the height difference of the two baselines is
%<*titleref>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-titleref}%
- [2019/11/29 v2.28 Module titleref for zref (HO)]%
+ [2020-03-03 v2.29 Module titleref for zref (HO)]%
\RequirePackage{zref-base}[2019/11/29]
\ifx\ZREF@base@ok Y%
\else
@@ -4697,7 +4722,7 @@ the height difference of the two baselines is
%<*xr>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-xr}%
- [2019/11/29 v2.28 Module xr for zref (HO)]%
+ [2020-03-03 v2.29 Module xr for zref (HO)]%
\RequirePackage{zref-base}[2019/11/29]
\ifx\ZREF@base@ok Y%
\else
@@ -5233,7 +5258,7 @@ the height difference of the two baselines is
%<*hyperref>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-hyperref}%
- [2019/11/29 v2.28 Module hyperref for zref (HO)]%
+ [2020-03-03 v2.29 Module hyperref for zref (HO)]%
\RequirePackage{zref-base}[2019/11/29]
\ifx\ZREF@base@ok Y%
\else
@@ -5263,26 +5288,19 @@ the height difference of the two baselines is
%<*savepos>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-savepos}%
- [2019/11/29 v2.28 Module savepos for zref (HO)]%
+ [2020-03-03 v2.29 Module savepos for zref (HO)]%
\RequirePackage{zref-base}[2019/11/29]
\ifx\ZREF@base@ok Y%
\else
\expandafter\endinput
\fi
% \end{macrocode}
-% LuaTeX compatibility
-% \begin{macrocode}
-\ifx\pdfsavepos\@undefined
- \let\pdfsavepos \savepos
- \let\pdflastxpos \lastxpos
- \let\pdflastypos \lastypos
-\fi
-% \end{macrocode}
%
% \subsubsection{Availability}
%
% First we check, whether the feature is available.
% \begin{macrocode}
+\ifx\directlua\@undefined
\ltx@IfUndefined{pdfsavepos}{%
\PackageError\ZREF@name{%
\string\pdfsavepos\space is not supported.\MessageBreak
@@ -5290,13 +5308,13 @@ the height difference of the two baselines is
}\ZREF@UpdatePdfTeX
\endinput
}{}%
+\fi
% \end{macrocode}
% In PDF mode we are done. However support for DVI mode
% was added later in version 1.40.0. In earlier versions
% \cs{pdfsavepos} is defined, but its execution raises
% an error. Note that \hologo{XeTeX} also provides \cs{pdfsavepos}.
% \begin{macrocode}
-\RequirePackage{ifpdf}
\ifpdf
\else
\ltx@IfUndefined{pdftexversion}{%
@@ -5317,8 +5335,13 @@ the height difference of the two baselines is
%
% \begin{macrocode}
\zref@newlist{savepos}
-\zref@newprop*{posx}[0]{\the\pdflastxpos}
-\zref@newprop*{posy}[0]{\the\pdflastypos}
+\ifx\directlua\@undefined
+ \zref@newprop*{posx}[0]{\the\pdflastxpos}
+ \zref@newprop*{posy}[0]{\the\pdflastypos}
+\else
+ \zref@newprop*{posx}[0]{\the\lastxpos}
+ \zref@newprop*{posy}[0]{\the\lastypos}
+\fi
\zref@addprops{savepos}{posx,posy}
% \end{macrocode}
%
@@ -5326,11 +5349,19 @@ the height difference of the two baselines is
%
% \begin{macro}{\zref@savepos}
% \begin{macrocode}
-\def\zref@savepos{%
- \if@filesw
- \pdfsavepos
- \fi
-}
+\ifx\directlua\@undefined
+ \def\zref@savepos{%
+ \if@filesw
+ \pdfsavepos
+ \fi
+ }
+\else
+ \def\zref@savepos{%
+ \if@filesw
+ \savepos
+ \fi
+ }
+\fi
% \end{macrocode}
% \end{macro}
%
@@ -5430,7 +5461,7 @@ the height difference of the two baselines is
%<*abspos>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-abspos}%
- [2019/11/29 v2.28 Module abspos for zref (HO)]%
+ [2020-03-03 v2.29 Module abspos for zref (HO)]%
\RequirePackage{zref-base}[2019/11/29]
\ifx\ZREF@base@ok Y%
\else
@@ -5450,10 +5481,6 @@ the height difference of the two baselines is
\zref@addprop{savepos}{abspage}
% \end{macrocode}
%
-% \begin{macrocode}
-\RequirePackage{ifpdf}[2010/09/13]
-% \end{macrocode}
-%
% \begin{macro}{\zref@absposx}
% \begin{macrocode}
\newcommand*{\zref@absposx}[3]{%
@@ -5655,6 +5682,9 @@ the height difference of the two baselines is
pdfpagewidth%
}%
}
+\ifluatex
+\def\ZREF@abspos@media@width{pdfpagewidth}%
+\fi
% \end{macrocode}
% \end{macro}
% \begin{macro}{\ZREF@abspos@media@height}
@@ -5682,6 +5712,18 @@ the height difference of the two baselines is
\noexpand\fi
}%
}
+\ifluatex
+\edef\ZREF@abspos@media@height{%
+ \noexpand\ifcase\pageheight
+ \ltx@ifundefined{stockheight}{%
+ paperheight%
+ }{%
+ stockheight%
+ }%
+ \noexpand\else
+ pdfpageheight%
+ \noexpand\fi}%
+\fi
% \end{macrocode}
% \end{macro}
%
@@ -5778,14 +5820,22 @@ the height difference of the two baselines is
%
% \subsubsection{Origin}
%
+% There doesn't seem a good reason to make these tests depend on pdf mode
+% in current engines, so comment out the \verb|\ifpdf| tests.
% \begin{macro}{\ZREF@abspos@origin@x}
% \begin{macrocode}
\let\ZREF@temp\ltx@two
\ltx@IfUndefined{pdfhorigin}{}{%
- \ifpdf
+% \ifpdf
\let\ZREF@temp\ltx@zero
- \fi
+% \fi
}
+\ifluatex
+% \ifpdf
+ \let\ZREF@temp\ltx@zero
+% \fi
+\fi
+
\ifx\ZREF@temp\ltx@two
\ifnum\mag=1000 %
\let\ZREF@temp\ltx@one
@@ -5810,10 +5860,15 @@ the height difference of the two baselines is
% \begin{macrocode}
\let\ZREF@temp\ltx@two
\ltx@IfUndefined{pdfvorigin}{}{%
- \ifpdf
+% \ifpdf
\let\ZREF@temp\ltx@zero
- \fi
+% \fi
}
+\ifluatex
+% \ifpdf
+ \let\ZREF@temp\ltx@zero
+% \fi
+\fi
\ifx\ZREF@temp\ltx@two
\ifnum\mag=1000 %
\let\ZREF@temp\ltx@one
@@ -6059,7 +6114,7 @@ the height difference of the two baselines is
%<*dotfill>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-dotfill}%
- [2019/11/29 v2.28 Module dotfill for zref (HO)]%
+ [2020-03-03 v2.29 Module dotfill for zref (HO)]%
\RequirePackage{zref-base}[2019/11/29]
\ifx\ZREF@base@ok Y%
\else
@@ -6159,7 +6214,7 @@ the height difference of the two baselines is
%<*env>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{zref-env}%
- [2019/11/29 v2.28 Module env for zref (HO)]%
+ [2020-03-03 v2.29 Module env for zref (HO)]%
\RequirePackage{zref-base}[2019/11/29]
\ifx\ZREF@base@ok Y%
\else
@@ -6195,201 +6250,7 @@ the height difference of the two baselines is
%</env>
% \end{macrocode}
%
-%
-% \section{Test}
-%
-% \subsection{\cs{zref@localaddprop}}
-%
-% \begin{macrocode}
-%<*test1>
-\NeedsTeXFormat{LaTeX2e}
-\nofiles
-\documentclass{article}
-\usepackage{zref-base}[2019/11/29]
-\usepackage{qstest}
-\IncludeTests{*}
-\LogTests{log}{*}{*}
-
-\makeatletter
-\def\ExpectList#1#2{%
- \expandafter\expandafter\expandafter\Expect
- \expandafter\expandafter\expandafter{\csname Z@L@#1\endcsname}{#2}%
-}
-\begin{qstest}{localaddprop}{localaddprop}
- \ExpectList{main}{\default\page}%
- \Expect{undefined}*{\meaning\foobar}%
- \zref@newprop{foobar}{FOO}%
- \Expect{undefined}*{\meaning\foobar}%
- \zref@newlist{alist}%
- \ExpectList{alist}{}%
- \begingroup
- \zref@localaddprop{main}{foobar}%
- \Expect{undefined}*{\meaning\foobar}%
- \ExpectList{main}{\default\page\foobar}%
- \zref@localaddprop{alist}{page}%
- \ExpectList{alist}{\page}%
- \endgroup
- \ExpectList{main}{\default\page}%
- \ExpectList{alist}{}%
- \zref@addprop{alist}{foobar}%
- \ExpectList{alist}{\foobar}%
- \Expect{undefined}*{\meaning\foobar}%
-\end{qstest}
-\@@end
-%</test1>
-% \end{macrocode}
-%
-% \subsection{Module \xmodule{base}}
-%
-% \begin{macrocode}
-%<*test-base>
-\NeedsTeXFormat{LaTeX2e}
-\documentclass{article}
-\usepackage{zref-base,zref-titleref}[2019/11/29]
-\usepackage{qstest}
-\IncludeTests{*}
-\LogTests{log}{*}{*}
-
-\makeatletter
-\newcommand*{\DefExpand}[2]{%
- \expandafter\expandafter\expandafter\def
- \expandafter\expandafter\expandafter#1%
- \expandafter\expandafter\expandafter{#2}%
- \@onelevel@sanitize#1%
-}
-\newcommand*{\Test}[3]{%
- \Expect{#2}*{#1}%
- \zref@wrapper@unexpanded{%
- \Expect*{#3}*{#1}%
- }%
- \DefExpand\x{#1}%
- \Expect*{#3}*{\x}%
-}
-\makeatother
-
-\begin{document}
-\section{\textit{Hello} \textbf{World}}
-\label{sec:hello}
-\makeatletter
-\zref@newprop{foo}[\@empty D\@empty efault]{\@empty V\@empty alue}
-\begin{qstest}{getcurrent}{getcurrent}
- \Test{\zref@getcurrent{foo}}%
- {Value}{\noexpand\@empty V\noexpand\@empty alue}%
- \Test{\zref@getcurrent{xy}}{}{}%
-\end{qstest}
-\begin{qstest}{extract}{extract}
- \def\textbf#1{<#1>}%
- \def\textit#1{[#1]}% hash-ok
- \Test{\zref@extractdefault{xy}{page}{\@empty D\@empty efault}}%
- {Default}{\noexpand\@empty D\noexpand\@empty efault}%
- \Test{\zref@extractdefault{sec:hello}{foo}{\@empty A\@empty B}}%
- {AB}{\noexpand\@empty A\noexpand\@empty B}%
- \Test{\zref@extract{sec:hello}{foo}}%
- {Default}{\noexpand\@empty D\noexpand\@empty efault}%
- \zref@ifrefundefined{sec:hello}{%
- }{%
- \Test{\zref@extract{sec:hello}{default}}{1}{1}%
- \Test{\zref@extract{sec:hello}{title}}%
- {[Hello] <World>}%
- {\noexpand\textit{Hello} \noexpand\textbf{World}}%
- }%
-\end{qstest}
-\end{document}
-%</test-base>
-% \end{macrocode}
-%
-% \subsection{Module \xmodule{runs}}
-%
-% \begin{macrocode}
-%<*test-runs>
-\NeedsTeXFormat{LaTeX2e}
-\documentclass{article}
-\usepackage{zref-runs}[2019/11/29]
-\usepackage{qstest}
-\IncludeTests{*}
-\LogTests{log}{*}{*}
-
-\begin{qstest}{zruns-preamble}{zruns-preamble}
- \Expect{0}*{\zruns}%
-\end{qstest}
-
-\AtBeginDocument{%
- \begin{qstest}{zruns-atbegindocument}{zruns-atbegindocument}%
- \Expect*{\number\ExpectRuns}*{\zruns}%
- \end{qstest}%
-}
-
-\begin{document}
-\begin{qstest}{zruns-document}{zruns-document}
- \Expect*{\number\ExpectRuns}*{\zruns}%
-\end{qstest}
-\end{document}
-%</test-runs>
-% \end{macrocode}
-%
-% \subsection{Module \xmodule{titleref}}
-%
-% \begin{macrocode}
-%<*test-titleref-memoir>
-\NeedsTeXFormat{LaTeX2e}
-\documentclass{memoir}
-\usepackage{zref-titleref}[2019/11/29]
-\usepackage{qstest}
-\IncludeTests{*}
-\LogTests{log}{*}{*}
-\begin{document}
-\makeatletter
-\def\List{}
-\def\Label#1{%
- \zref@label{#1}%
- \g@addto@macro\List{%
- \par
- #1: [\ztitleref{#1}]%
- }%
- \mbox{}%
- \zref@refused{#1}%
- \zref@ifrefundefined{#1}{%
- }{%
- \begingroup
- \edef\x{\zref@extract{#1}{title}}%
- \Expect{OK/}*{\expandafter\ltx@carthree\x{}{}{}\@nil}%
- \endgroup
- }%
-}
-\def\Test#1{%
- \csname#1\endcsname*{OK/#1}%
- \Label{#1*}%
- \csname#1\endcsname{OK/#1}%
- \Label{#1}%
- \csname#1\endcsname[OK/#1-toc]%
- {WRONG-in-titleref/#1-toc-2}%
- \Label{#1-toc}%
- \expandafter\ifx\csname#1\endcsname\part
- \else
- \headnamereffalse
- \csname#1\endcsname[OK/#1-th-toc]%
- [WRONG-in-titleref/#1-th-toc-2]%
- {WRONG-in-titleref/#1-th-toc-3}%
- \Label{#1-th-toc}%
- \headnamereftrue
- \csname#1\endcsname[WRONG-in-titleref/#1-th-head-1]%
- [OK/#1-th-head]%
- {WRONG-in-titleref/#1-th-head-3}%
- \Label{#1-th-head}%
- \fi
-}
-\begin{qstest}{section}{section}
- \@for\x:=part,chapter,section,subsection,subsubsection\do{%
- \expandafter\Test\expandafter{\x}%
- }%
-\end{qstest}
-\newpage
-\List
-\end{document}
-%</test-titleref-memoir>
-% \end{macrocode}
-%
-% \section{Installation}
+%% \section{Installation}
%
% \subsection{Download}
%
@@ -6462,10 +6323,6 @@ the height difference of the two baselines is
% zref-example.tex & doc/latex/zref/zref-example.tex\\
% zref-example-lastpage.tex & doc/latex/zref/zref-example-lastpage.tex\\
% zref-example-nextpage.tex & doc/latex/zref/zref-example-nextpage.tex\\
-% test/zref-test1.tex & doc/latex/zref/test/zref-test1.tex\\
-% test/zref-test-base.tex & doc/latex/zref/test/zref-test-base.tex\\
-% test/zref-test-runs.tex & doc/latex/zref/test/zref-test-runs.tex\\
-% test/zref-test-titleref-memoir.tex & doc/latex/zref/test/zref-test-titleref-memoir.tex\\
% zref.dtx & source/latex/zref/zref.dtx\\
% \end{tabular}^^A
% }^^A
@@ -6865,6 +6722,19 @@ the height difference of the two baselines is
% \item
% Use \xpackage{iftex} directly.
% \end{Version}
+% \begin{Version}{2020-03-03 v2.29}
+% \item
+% adapted in module zref-pagelayout the properties pdfhorigin, pdfvorigin,
+% pdfpagewidth, pdfpageheight for luatex to the right primitives.
+% \item
+% Removed no longer needed code for older lualatex versions.
+% \item added some documentation of the abspos module.
+% \item adapted the abspos module to the new luatex primitives.
+% \item adapted pageattr module to the new luatex primitives.
+% \item added short documentation for pageattr module
+% \item use luatex command names directly in zref-savepos rather than defining pdftex compatibility names.
+% \item allow zref-abspos to use \verb|\pdf[vh]origin| in dvi mode.
+% \end{Version}
% \end{History}
%
% \PrintIndex
diff --git a/macros/latex/contrib/zref/zref.pdf b/macros/latex/contrib/zref/zref.pdf
index fee81c695c..79542ad086 100644
--- a/macros/latex/contrib/zref/zref.pdf
+++ b/macros/latex/contrib/zref/zref.pdf
Binary files differ