summaryrefslogtreecommitdiff
path: root/macros/latex/contrib
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-10-27 03:02:53 +0000
committerNorbert Preining <norbert@preining.info>2020-10-27 03:02:53 +0000
commit83aaf60600dc0b191bacbaacc786dbda33d7190a (patch)
tree57482692c8aaf7f19c79919b74e821dbeea5652e /macros/latex/contrib
parent0ceea51e3c4c2d7364ffacd728497a66f16aa2ed (diff)
CTAN sync 202010270302
Diffstat (limited to 'macros/latex/contrib')
-rw-r--r--macros/latex/contrib/acmart/README4
-rw-r--r--macros/latex/contrib/acmart/acmart.dtx13
-rw-r--r--macros/latex/contrib/acmart/acmart.pdfbin833076 -> 857825 bytes
-rw-r--r--macros/latex/contrib/acmart/acmguide.pdfbin414628 -> 414633 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmlarge.pdfbin605236 -> 587177 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdfbin1049664 -> 1031530 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdfbin617494 -> 599461 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmsmall.pdfbin615055 -> 597030 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-acmtog.pdfbin561536 -> 544722 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-authordraft.pdfbin1040427 -> 1023661 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-lualatex.pdfbin719153 -> 768503 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-manuscript.pdfbin615814 -> 599099 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-sigconf.pdfbin1036629 -> 1019869 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-sigplan.pdfbin1047112 -> 1029005 bytes
-rw-r--r--macros/latex/contrib/acmart/samples/sample-xelatex.pdfbin653215 -> 653288 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/README.md18
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerinnerthemefocus.sty16
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerouterthemefocus.sty17
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerthemefocus.sty2
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-subsectionpage.jpgbin26430 -> 0 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.pdf (renamed from macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo.pdf)bin324539 -> 324510 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.tex (renamed from macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo.tex)4
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-appendix.jpg (renamed from macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-appendix.jpg)bin27131 -> 27131 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-focus.jpg (renamed from macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-focus.jpg)bin9717 -> 9717 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-references.jpg (renamed from macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-references.jpg)bin32126 -> 32126 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-subsectionpage.jpgbin0 -> 35571 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-titlepage-color.jpg (renamed from macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-titlepage-color.jpg)bin57942 -> 57942 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-titlepage.jpg (renamed from macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-titlepage.jpg)bin35777 -> 35777 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-typeset.jpg (renamed from macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-typeset.jpg)bin49291 -> 49291 bytes
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo_bibliography.bib (renamed from macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo_bibliography.bib)0
-rw-r--r--macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-logo.pdf (renamed from macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focuslogo.pdf)bin4062 -> 4062 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost-examples.pdfbin634668 -> 634631 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost.pdfbin291778 -> 292445 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost.tex78
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic-min.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear-min.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote-min.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-inline-min.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-inline.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric-min.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric.bbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-standard.bbx17
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/biblatex-gost.def9
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic-min.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear-min.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote-min.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline-min.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric-min.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric.cbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/biblatex-gost.dbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic-min.dbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic.dbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-authoryear-min.dbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-authoryear.dbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote-min.dbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote.dbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline-min.dbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline.dbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric-min.dbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric.dbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/american-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/brazilian-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/british-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/catalan-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/croatian-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/english-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/french-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/galician-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/german-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/greek-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/icelandic-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/italian-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/portuguese-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/russian-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/slovene-gost.lbx2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/spanish-gost.lbx2
-rw-r--r--macros/latex/contrib/caption/CHANGELOG3
-rw-r--r--macros/latex/contrib/caption/README4
-rw-r--r--macros/latex/contrib/caption/bicaption.dtx114
-rw-r--r--macros/latex/contrib/caption/bicaption.pdfbin115778 -> 117664 bytes
-rw-r--r--macros/latex/contrib/caption/caption-ams-smf.dtx2
-rw-r--r--macros/latex/contrib/caption/caption-beamer.dtx2
-rw-r--r--macros/latex/contrib/caption/caption-elsarticle.dtx2
-rw-r--r--macros/latex/contrib/caption/caption-eng.pdfbin402642 -> 402934 bytes
-rw-r--r--macros/latex/contrib/caption/caption-eng.tex69
-rw-r--r--macros/latex/contrib/caption/caption-koma.dtx8
-rw-r--r--macros/latex/contrib/caption/caption-light.dtx2
-rw-r--r--macros/latex/contrib/caption/caption-memoir.dtx113
-rw-r--r--macros/latex/contrib/caption/caption-ntg.dtx2
-rw-r--r--macros/latex/contrib/caption/caption-thesis.dtx2
-rw-r--r--macros/latex/contrib/caption/caption.dtx273
-rw-r--r--macros/latex/contrib/caption/caption2.dtx61
-rw-r--r--macros/latex/contrib/caption/caption3.dtx397
-rw-r--r--macros/latex/contrib/caption/ltcaption.dtx2
-rw-r--r--macros/latex/contrib/caption/subcaption.dtx101
-rw-r--r--macros/latex/contrib/fgruler/fgruler.dtx571
-rw-r--r--macros/latex/contrib/fgruler/fgruler.pdfbin259375 -> 283694 bytes
-rw-r--r--macros/latex/contrib/principia/README2
-rw-r--r--macros/latex/contrib/principia/principia.pdfbin368370 -> 366457 bytes
-rw-r--r--macros/latex/contrib/principia/principia.sty37
-rw-r--r--macros/latex/contrib/principia/principia.tex27
-rw-r--r--macros/latex/contrib/sttools/README.md6
-rw-r--r--macros/latex/contrib/sttools/flushend.dtx231
-rw-r--r--macros/latex/contrib/sttools/flushend.pdfbin147962 -> 83883 bytes
111 files changed, 1406 insertions, 897 deletions
diff --git a/macros/latex/contrib/acmart/README b/macros/latex/contrib/acmart/README
index 17cf74a203..67302fa174 100644
--- a/macros/latex/contrib/acmart/README
+++ b/macros/latex/contrib/acmart/README
@@ -275,4 +275,6 @@ Version 1.72 Bug fixes. Better handling of metadata.
Version 1.73 Bug fixes
The elements institution, city and country are now obligatory
for affiliations
- \ No newline at end of file
+
+Version 1.74 Bug fixes. A regression introduced in the font changes
+ is reverted. \ No newline at end of file
diff --git a/macros/latex/contrib/acmart/acmart.dtx b/macros/latex/contrib/acmart/acmart.dtx
index 1138db98e9..a901526f72 100644
--- a/macros/latex/contrib/acmart/acmart.dtx
+++ b/macros/latex/contrib/acmart/acmart.dtx
@@ -1886,7 +1886,7 @@
\ProvidesFile{acmart.dtx}
%</gobble>
%<class>\ProvidesClass{acmart}
-[2020/09/13 v1.73 Typesetting articles for the Association for Computing Machinery]
+[2020/10/25 v1.74 Typesetting articles for the Association for Computing Machinery]
% \end{macrocode}
%
% \changes{v1.00}{2016/04/14}{First released version}
@@ -3212,22 +3212,29 @@
% Breitner)}
% \changes{v1.54}{2018/07/16}{XeTeX now uses T1 encoding}
% \changes{v1.56}{2018/11/11}{Looks like XeTeX requires explicit
-% monotype font delcaration}
+% monotype font declaration}
+% \changes{v1.74}{2020/10/25}{Changed the order of font loading}%
% We use Libertine throughout.
% \begin{macrocode}
\if@ACM@newfonts
\RequirePackage[T1]{fontenc}
- \RequirePackage[libertine]{newtxmath}
+ % Note that the order in which packages are loaded matters,
+ % and the correct order depends on the LaTeX engine used.
+ % See https://github.com/borisveytsman/acmart/issues/402
+ % and https://github.com/borisveytsman/acmart/issues/410
\ifxetex
+ \RequirePackage[libertine]{newtxmath}
\RequirePackage[tt=false]{libertine}
\setmonofont[StylisticSet=3]{inconsolata}
\else
\ifluatex
+ \RequirePackage[libertine]{newtxmath}
\RequirePackage[tt=false]{libertine}
\setmonofont[StylisticSet=3]{inconsolata}
\else
\RequirePackage[tt=false, type1=true]{libertine}
\RequirePackage[varqu]{zi4}
+ \RequirePackage[libertine]{newtxmath}
\fi
\fi
\fi
diff --git a/macros/latex/contrib/acmart/acmart.pdf b/macros/latex/contrib/acmart/acmart.pdf
index 2277d25c20..97af4bc0b9 100644
--- a/macros/latex/contrib/acmart/acmart.pdf
+++ b/macros/latex/contrib/acmart/acmart.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/acmguide.pdf b/macros/latex/contrib/acmart/acmguide.pdf
index 089664bc53..974e50ecb0 100644
--- a/macros/latex/contrib/acmart/acmguide.pdf
+++ b/macros/latex/contrib/acmart/acmguide.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmlarge.pdf b/macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
index 23e6435b0a..6da30912f5 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmlarge.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf b/macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf
index 815150402a..2e3826f380 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmsmall-conf.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf b/macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf
index 4a79a30f9e..380e3c4054 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmsmall-submission.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmsmall.pdf b/macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
index 999f18a825..3b982c2b9c 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmsmall.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-acmtog.pdf b/macros/latex/contrib/acmart/samples/sample-acmtog.pdf
index 9db12266a6..eb5aa9d0e3 100644
--- a/macros/latex/contrib/acmart/samples/sample-acmtog.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-acmtog.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-authordraft.pdf b/macros/latex/contrib/acmart/samples/sample-authordraft.pdf
index 13d9f8c29d..39ddfcb499 100644
--- a/macros/latex/contrib/acmart/samples/sample-authordraft.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-authordraft.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-lualatex.pdf b/macros/latex/contrib/acmart/samples/sample-lualatex.pdf
index 66626b757c..67ab63ed06 100644
--- a/macros/latex/contrib/acmart/samples/sample-lualatex.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-lualatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-manuscript.pdf b/macros/latex/contrib/acmart/samples/sample-manuscript.pdf
index d38eacec64..e2349dd0aa 100644
--- a/macros/latex/contrib/acmart/samples/sample-manuscript.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-manuscript.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-sigconf.pdf b/macros/latex/contrib/acmart/samples/sample-sigconf.pdf
index ac225b5f82..3114e63ddc 100644
--- a/macros/latex/contrib/acmart/samples/sample-sigconf.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-sigconf.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-sigplan.pdf b/macros/latex/contrib/acmart/samples/sample-sigplan.pdf
index 3fb6176307..2d4b6a5a54 100644
--- a/macros/latex/contrib/acmart/samples/sample-sigplan.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-sigplan.pdf
Binary files differ
diff --git a/macros/latex/contrib/acmart/samples/sample-xelatex.pdf b/macros/latex/contrib/acmart/samples/sample-xelatex.pdf
index c41474733a..a6840bf543 100644
--- a/macros/latex/contrib/acmart/samples/sample-xelatex.pdf
+++ b/macros/latex/contrib/acmart/samples/sample-xelatex.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/README.md b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/README.md
index 154ae8123a..94dbbb48d3 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/README.md
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/README.md
@@ -1,4 +1,4 @@
-# Focus v2.6
+# Focus v2.7
A presentation theme for LaTeX Beamer that aims at a clean and minimalist design,
so to minimize distractions and put the focus directly on the content.
@@ -11,14 +11,14 @@ to be installed in your LaTeX distribution.
Demo
----
-A full demo is available. Refer to `demo.tex` and `demo.pdf`.
+A full demo is available. Refer to `focus-demo.tex` and `focus-demo.pdf`.
-![](https://github.com/elauksap/focustheme/blob/master/demo-screenshots/demo-titlepage.jpg)
-![](https://github.com/elauksap/focustheme/blob/master/demo-screenshots/demo-subsectionpage.jpg)
-![](https://github.com/elauksap/focustheme/blob/master/demo-screenshots/demo-typeset.jpg)
-![](https://github.com/elauksap/focustheme/blob/master/demo-screenshots/demo-focus.jpg)
-![](https://github.com/elauksap/focustheme/blob/master/demo-screenshots/demo-references.jpg)
-![](https://github.com/elauksap/focustheme/blob/master/demo-screenshots/demo-appendix.jpg)
+![](https://github.com/elauksap/focustheme/blob/master/focus-demo/demo-titlepage.jpg)
+![](https://github.com/elauksap/focustheme/blob/master/focus-demo/demo-subsectionpage.jpg)
+![](https://github.com/elauksap/focustheme/blob/master/focus-demo/demo-typeset.jpg)
+![](https://github.com/elauksap/focustheme/blob/master/focus-demo/demo-focus.jpg)
+![](https://github.com/elauksap/focustheme/blob/master/focus-demo/demo-references.jpg)
+![](https://github.com/elauksap/focustheme/blob/master/focus-demo/demo-appendix.jpg)
Download
========
@@ -49,7 +49,7 @@ For example:
```
produces the following ice-blue color theme.
-![](https://github.com/elauksap/focustheme/blob/master/demo-screenshots/demo-titlepage-color.jpg)
+![](https://github.com/elauksap/focustheme/blob/master/focus-demo/demo-titlepage-color.jpg)
Customize the footline
----------------------
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerinnerthemefocus.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerinnerthemefocus.sty
index e0317d51af..637c95cd7d 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerinnerthemefocus.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerinnerthemefocus.sty
@@ -38,9 +38,9 @@
\defbeamertemplate*{title page}{focus}{%
{%
\usebeamercolor{frametitle}\colorlet{focus@@temp}{bg}%
- \begin{tikzpicture}[overlay, remember picture]
- \fill[color=focus@@temp] (current page.north west) rectangle ([shift = {(0, -0.45\paperheight)}] current page.north east);
- \end{tikzpicture}
+ \begin{tikzpicture}[overlay, remember picture]
+ \fill[color=focus@@temp] (current page.north west) rectangle ([shift = {(0, -0.45\paperheight)}] current page.north east);
+ \end{tikzpicture}
}
\vspace{-1.65\baselineskip}
@@ -103,8 +103,8 @@
\let\hyperlink\@secondoftwo\insertsection
\end{minipage}
- \vspace{1.5\baselineskip}
- \begin{minipage}[t][0.55\paperheight]{\textwidth}
+ \vspace{\baselineskip}
+ \begin{minipage}[t][0.5\paperheight]{\textwidth}
\usebeamerfont{subsectiontitle}
\usebeamercolor[bg]{frametitle}
\insertsubsection
@@ -122,7 +122,7 @@
{%
\usebeamercolor{frametitle}\colorlet{focus@@temp}{bg}%
\begin{tikzpicture}[overlay, remember picture]
- \fill[color=focus@@temp] (current page.north west) rectangle ([shift = {(0, -0.45\paperheight)}] current page.north east);
+ \fill[color=focus@@temp] (current page.north west) rectangle ([shift = {(0, -0.45\paperheight)}] current page.north east);
\end{tikzpicture}%
}
@@ -133,8 +133,8 @@
\let\hyperlink\@secondoftwo\insertsection
\end{minipage}
- \vspace{1.5\baselineskip}
- \begin{minipage}[t][0.55\paperheight]{\textwidth}
+ \vspace{\baselineskip}
+ \begin{minipage}[t][0.5\paperheight]{\textwidth}
\usebeamerfont{subsectiontitle}
\usebeamercolor[bg]{frametitle}
\insertsubsection
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerouterthemefocus.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerouterthemefocus.sty
index bbf893eeaa..88e82d3c71 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerouterthemefocus.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerouterthemefocus.sty
@@ -51,7 +51,7 @@
}
% Plain header.
-\defbeamertemplate*{frametitle}{plain}{%
+\defbeamertemplate{frametitle}{plain}{%
% If not title page.
\ifnum\value{realframenumber}>0%
\vspace{-1pt}%
@@ -109,7 +109,7 @@
}
% Full bar footline.
-\defbeamertemplate*{footline}{fullbar}{%
+\defbeamertemplate{footline}{fullbar}{%
% If not appendix.
\ifnum\mainend<0% From package appendixnumberbeamer.
%
@@ -134,7 +134,7 @@
}
% Empty footline.
-\defbeamertemplate*{footline}{none}{}
+\defbeamertemplate{footline}{none}{}
\DeclareOptionBeamer{numbering}{\def\beamer@focus@numbering{#1}}
\ExecuteOptionsBeamer{numbering=progressbar}
@@ -153,14 +153,7 @@
\end{tikzpicture}%
}
-\defbeamertemplate*{background canvas}{focusplain}{%
- \begin{tikzpicture}
- \clip (0,0) rectangle ++(\paperwidth,\paperheight);
- \fill[normal text.bg] (0,0) rectangle ++(\paperwidth,\paperheight);
- \end{tikzpicture}%
-}
-
-\defbeamertemplate*{background canvas}{focusframe}{%
+\defbeamertemplate{background canvas}{focusframe}{%
\begin{tikzpicture}
\clip (0,0) rectangle ++(\paperwidth,\paperheight);
\fill[frametitle.bg] (0,0) rectangle ++(\paperwidth,\paperheight);
@@ -207,7 +200,7 @@
% Enable plain option.
\define@key{beamerframe}{plain}[true]{%
- \setbeamertemplate{background canvas}[focusplain]%
+ \setbeamertemplate{background canvas}[focus]%
\setbeamertemplate{frametitle}[plain]%
%
\setbeamertemplate{footline}[none]%
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerthemefocus.sty b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerthemefocus.sty
index 6da4b05683..b8ac174f3d 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerthemefocus.sty
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/beamerthemefocus.sty
@@ -19,7 +19,7 @@
% along with beamerthemefocus. If not, see <http://www.gnu.org/licenses/>.
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{beamerthemefocus}[2020/04/15 v2.6 Focus Beamer theme]
+\ProvidesPackage{beamerthemefocus}[2020/10/26 v2.7 Focus Beamer theme]
\mode<presentation>
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-subsectionpage.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-subsectionpage.jpg
deleted file mode 100644
index f993c1beea..0000000000
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-subsectionpage.jpg
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.pdf
index d4eafee0dc..ac3f38f0f5 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo.pdf
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.pdf
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo.tex b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.tex
index a4153d1be4..bc77b118d0 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo.tex
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo.tex
@@ -103,7 +103,7 @@
\column{0.4\textwidth}
\begin{figure}
\centering
- \includegraphics{focuslogo.pdf}
+ \includegraphics{focus-logo.pdf}
\caption{Figure caption.}
\label{fig:focuslogo}
\end{figure}
@@ -130,7 +130,7 @@
\appendix
\begin{frame}{References}
\nocite{*}
- \bibliography{demo_bibliography}
+ \bibliography{focus-demo_bibliography}
\bibliographystyle{plain}
\end{frame}
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-appendix.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-appendix.jpg
index d8ad6e3bfa..d8ad6e3bfa 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-appendix.jpg
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-appendix.jpg
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-focus.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-focus.jpg
index 1a2e576aba..1a2e576aba 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-focus.jpg
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-focus.jpg
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-references.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-references.jpg
index e2f93f76a4..e2f93f76a4 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-references.jpg
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-references.jpg
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-subsectionpage.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-subsectionpage.jpg
new file mode 100644
index 0000000000..348e6444e9
--- /dev/null
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-subsectionpage.jpg
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-titlepage-color.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-titlepage-color.jpg
index 000339af6e..000339af6e 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-titlepage-color.jpg
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-titlepage-color.jpg
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-titlepage.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-titlepage.jpg
index 8d7d3c3b4b..8d7d3c3b4b 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-titlepage.jpg
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-titlepage.jpg
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-typeset.jpg b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-typeset.jpg
index a0132b54ea..a0132b54ea 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo-screenshots/demo-typeset.jpg
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo/demo-typeset.jpg
Binary files differ
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo_bibliography.bib b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo_bibliography.bib
index 819fe0e886..819fe0e886 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/demo_bibliography.bib
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-demo_bibliography.bib
diff --git a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focuslogo.pdf b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-logo.pdf
index c8327be60e..c8327be60e 100644
--- a/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focuslogo.pdf
+++ b/macros/latex/contrib/beamer-contrib/themes/beamertheme-focus/focus-logo.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost-examples.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost-examples.pdf
index 1c6e5eb055..2df72e6cbd 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost-examples.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost-examples.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost.pdf
index e8650e5644..93b9931faf 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost.tex b/macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost.tex
index 2b56723ae4..ddd886ddbe 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost.tex
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost.tex
@@ -487,10 +487,15 @@ This package is maintained.
\bibfield{shorttitle} (о многоточиях при сокращении заголовков
см.~\secref{ellipsis}).
-По умолчанию стиль устанавливает опции \kvopt{autocite}{inline}, \kvopt{sorting}{ntvy},
- \kvopt{pagetracker}{true}, \kvopt{strict}{true}, \kvopt{citetracker}{constrict},
-\kvopt{opcittracker}{constrict}, \kvopt{citepages}{omit},
-\kvopt{labelyear}{true}.
+По умолчанию стиль устанавливает опции \kvopt{autocite}{inline}, %
+\kvopt{sorting}{ntvy}, %
+\kvopt{pagetracker}{true}, %
+\kvopt{strict}{true}, %
+\kvopt{citetracker}{constrict}, %
+\kvopt{opcittracker}{constrict}, %
+\kvopt{citepages}{omit}, %
+\kvopt{labeldateparts}{true}, %
+\kvopt{labeltitle}{true}.
\item[gost-footnote]
Подстрочные ссылки.
@@ -508,10 +513,15 @@ This package is maintained.
там не выводятся поля \bibfield{doi},
\bibfield{eprint}, \bibfield{url}, \bibfield{addendum}, \bibfield{pubstate}.
-По умолчанию стиль устанавливает опции \kvopt{autocite}{footnote}, \kvopt{sorting}{ntvy},
-\kvopt{pagetracker}{true}, \kvopt{strict}{true}, \kvopt{citetracker}{constrict},
-\kvopt{opcittracker}{constrict}, \kvopt{citepages}{omit},
-\kvopt{labelyear}{true}.
+По умолчанию стиль устанавливает опции \kvopt{autocite}{footnote}, %
+\kvopt{sorting}{ntvy}, %
+\kvopt{pagetracker}{true}, %
+\kvopt{strict}{true}, %
+\kvopt{citetracker}{constrict}, %
+\kvopt{opcittracker}{constrict}, %
+\kvopt{citepages}{omit}, %
+\kvopt{labeldateparts}{true}, %
+\kvopt{labeltitle}{true}.
\item[gost-numeric]
Затекстовые ссылки. Основан на стандартном стиле \bibsty{numeric-comp} и отличается
@@ -526,7 +536,8 @@ This package is maintained.
\renewcommand*{\multicitedelim}{\addsemicolon\space}
\end{lstlisting}
-По умолчанию стиль устанавливает опции \kvopt{autocite}{inline}, \kvopt{sortcites}{true}.
+По умолчанию стиль устанавливает опцию %
+% \kvopt{autocite}{inline}, \kvopt{sortcites}{true}.
\kvopt{labelnumber}{true}.
\item[gost-authoryear]
@@ -548,16 +559,25 @@ This package is maintained.
имеется лишь одна публикация данного автора или лишь одна публикация без автора с данным
названием).
-По умолчанию стиль устанавливает опции
-\kvopt{autocite}{inline},
-\kvopt{sorting}{nyt},
-\kvopt{pagetracker}{true},
-\kvopt{mergedate}{gostletter},
+По умолчанию стиль устанавливает опции %
+\kvopt{autocite}{inline}, %
+\kvopt{sorting}{nyt}, %
+\kvopt{pagetracker}{true}, %
+\kvopt{mergedate}{gostletter}, %
\kvopt{dropdates}{false},
(или \opt{true} при \kvopt{mergedate}{goststrict},
-см.~\secref{sec:newoptions}).
-
-\item[gost-alphabetic]
+см.~\secref{sec:newoptions}), %
+\kvopt{labeldateparts}{true}, %
+\kvopt{citetracker}{constrict}, %
+\kvopt{loccittracker}{constrict}, %
+\kvopt{dropdates}{false}, %
+\kvopt{labeltitleyear}{true}, %
+\kvopt{uniquename}{init}, % %
+\kvopt{uniquelist}{true}, %
+\kvopt{ibidtracker}{constrict}, %
+\kvopt{sortcites}{true}.
+
+\item[gost-alphabetic] %
Этот стиль не предусмотрен ГОСТом, но добавлен для полноты. Он соответствует стандартному
стилю \bibsty{alphabetic}, а также \bibsty{alphabetic-verb}, если его использовать в виде:
@@ -617,11 +637,21 @@ This package is maintained.
\starsdelim
Дополнительно, все стили по умолчанию устанавливают опции
-\kvopt{dashed}{false},
-\kvopt{useeditor}{false},
-\kvopt{usetranslator}{false},
-\kvopt{maxnames}{3},
-\kvopt{minnames}{1}.
+\kvopt{dashed}{false}, %
+\kvopt{useeditor}{false}, %
+\kvopt{usetranslator}{false}, %
+\kvopt{maxnames}{3}, %
+\kvopt{minnames}{1}, %
+\kvopt{dashed}{false}, %
+\kvopt{movenames}{true}, %
+\kvopt{giveninits}{true}, %
+\kvopt{volsorder}{vbpi}, %
+\kvopt{related}{true}, %
+\kvopt{alldates}{short}, %
+\kvopt{eventdate}{comp}, %
+\kvopt{blockpunct}{emdash}, %
+\kvopt{doublevols}{true}, %
+\kvopt{otherlangs}{true}. %
Значения по умолчанию для опций \opt{cite\ldots} и \opt{bib\ldots} см. в \tabref{tab:bibcite}.
\vspace{.5\baselineskip}
@@ -2509,6 +2539,10 @@ pageref & + & + & + & + & + & + & + & +
\begin{changelog}
+ \begin{release}{1.19}{25-10-2020}
+ \item Добавлен обход для deprecated \cmd{mkrelatedstring}.
+ \end{release}
+
\begin{release}{1.18}{23-02-2020}
\item Добавлен патч для обхода ошибки \biblatex 3.14.
См. подробнее \url{https://github.com/odomanov/biblatex-gost/issues/22},
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic-min.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic-min.bbx
index afb0c782ef..4248d44720 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic-min.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic-min.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-alphabetic-min.bbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireBibliographyStyle{gost-alphabetic}
\AtEveryBibitem{%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic.bbx
index b220e27f93..ff92a99d29 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-alphabetic.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-alphabetic.bbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireBibliographyStyle{gost-standard}
\ExecuteBibliographyOptions{labelalpha,sorting=anyvt}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear-min.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear-min.bbx
index 542d584d44..7b390ffe75 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear-min.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear-min.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-authoryear-min.bbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireBibliographyStyle{gost-authoryear}
\AtEveryBibitem{%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear.bbx
index 849e83fd6b..3326eca938 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-authoryear.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-authoryear.bbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireBibliographyStyle{gost-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote-min.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote-min.bbx
index c84cd3b379..4de83c4f59 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote-min.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote-min.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-footnote-min.bbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireBibliographyStyle{gost-inline-min}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote.bbx
index 0845dd95a4..ebdae552a2 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-footnote.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-footnote.bbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireBibliographyStyle{gost-inline}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-inline-min.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-inline-min.bbx
index a27ac3bad9..a627604418 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-inline-min.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-inline-min.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-inline-min.bbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireBibliographyStyle{gost-inline}
\AtEveryBibitem{%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-inline.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-inline.bbx
index 2d45396449..483303ab48 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-inline.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-inline.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-inline.bbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireBibliographyStyle{gost-standard}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric-min.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric-min.bbx
index d3d2c750b8..f87f542cd6 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric-min.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric-min.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-numeric-min.bbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireBibliographyStyle{gost-numeric}
\AtEveryBibitem{%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric.bbx
index 26dc8db11c..1c23b7b8d9 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-numeric.bbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-numeric.bbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireBibliographyStyle{gost-standard}
\ExecuteBibliographyOptions{labelnumber,bibisbn,biburl,bibdoi,bibeprint}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-standard.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-standard.bbx
index befce113ae..2d92933cfa 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-standard.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/bbx/gost-standard.bbx
@@ -1,8 +1,8 @@
\ProvidesFile{gost-standard.bbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
-\def\bbx@gost@date{2020/02/23}
-\def\bbx@gost@version{1.18}
+\def\bbx@gost@date{2020/10/25}
+\def\bbx@gost@version{1.19}
\@ifpackagelater{biblatex}{2019/09/01}
{}
@@ -35,6 +35,10 @@
\RequireBiber[3] % strictly required
+% workaround for the \mkrelatedstring deprecation.
+% https://github.com/odomanov/biblatex-gost/issues/27
+\providecommand*{\mkrelatedstringtext}[1]{{{\mainlang #1}}}
+
\blx@inputonce{biblatex-gost.def}{biblatex-gost generic definitions}{}{}{}{}
\newtoggle{bbx:isbn}
@@ -535,6 +539,7 @@
% clear \newblock in citations, not in biblists
\AtUsedriver*{%
+ \delimcontext{bib}%
\ifcitation{\let\newblock\relax}{}%
\let\finentry\blx@finentry@usedrv
\let\abx@macro@bibindex\@empty
@@ -2468,14 +2473,14 @@
test {\ifbibxstring{\thefield{relatedtype}s}}
}
{\printtext[\bbx@tempb]{%
- \bibstring[\mkrelatedstring]{\thefield{relatedtype}s}}}
+ \bibstring[\mkrelatedstringtext]{\thefield{relatedtype}s}}}
{\iffieldbibstring{relatedtype}
{\printtext[\bbx@tempb]{%
- \bibstring[\mkrelatedstring]{\thefield{relatedtype}}}}
+ \bibstring[\mkrelatedstringtext]{\thefield{relatedtype}}}}
{}}}
{\iffieldbibstring{relatedstring}
{\printtext[\bbx@tempb]{%
- \bibstring[\mkrelatedstring]{\thefield{relatedstring}}}}
+ \bibstring[\mkrelatedstringtext]{\thefield{relatedstring}}}}
{\printfield[\bbx@tempb]{relatedstring}}}%
\docsvfield{related}%
\usebibmacro{endrelatedloop}}}%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/biblatex-gost.def b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/biblatex-gost.def
index 21ada061cb..0aaf4389ec 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/biblatex-gost.def
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/biblatex-gost.def
@@ -1,5 +1,5 @@
\ProvidesFile{biblatex-gost.def}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
% these declarations should be here, not in lbx, to be initialized for all languages
\NewBibliographyString{
@@ -520,13 +520,10 @@
\entrydata{#1}{%
\renewbibmacro*{name:hook}[1]{%
\ifnumequal{\value{listcount}}{1}
- {\begingroup
- \mkrelatedstring%
- \lbx@initnamehook{#1}%
- \endgroup}
+ {\mkrelatedstringtext{\lbx@initnamehook{#1}}}
{}}%
\printnames[bytranslator]{translator}%
- \setunit*{\addspace\bibstring[\mkrelatedstring]{astitle}\space}%
+ \setunit*{\addspace\bibstring[\mkrelatedstringtext]{astitle}\space}%
\usebibmacro{author}%
\setunit*{\labelnamepunct}%
\usebibmacro{title}%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic-min.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic-min.cbx
index 7779c2e34a..b82670552e 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic-min.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic-min.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-alphabetic-min.cbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireCitationStyle{gost-alphabetic}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic.cbx
index d6ebfe597b..77aa8f5a92 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-alphabetic.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-alphabetic.cbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireCitationStyle{alphabetic}
\ExecuteBibliographyOptions{labelalpha,autocite=inline}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear-min.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear-min.cbx
index b49f13dd78..76da8fd244 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear-min.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear-min.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-authoryear-min.cbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireCitationStyle{gost-authoryear}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear.cbx
index 42cc003886..f3925e6473 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-authoryear.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-authoryear.cbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\ExecuteBibliographyOptions{dashed=false,citetracker=constrict,loccittracker=constrict,
dropdates=false,
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote-min.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote-min.cbx
index 5dfdcff83a..ac99c6c51d 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote-min.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote-min.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-footnote-min.cbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireCitationStyle{gost-footnote}
\renewbibmacro*{cite:clearfields}{%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote.cbx
index a84aba835c..d3a6e98774 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-footnote.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-footnote.cbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireCitationStyle{gost-inline}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline-min.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline-min.cbx
index c4a9c94dc7..bd6e2387f7 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline-min.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline-min.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-inline-min.cbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireCitationStyle{gost-inline}
\renewbibmacro*{cite:clearfields}{%
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline.cbx
index 9521e93d64..6ecc9b91d1 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-inline.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-inline.cbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\DeclareLabelname
[inbook,incollection,inproceedings,inreference,suppbook,suppcollection,suppperiodical,bookinbook]
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric-min.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric-min.cbx
index c041821c47..d36549a545 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric-min.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric-min.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-numeric-min.cbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireCitationStyle{gost-numeric}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric.cbx
index 7f31a0858f..d7a0ae6af2 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric.cbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/cbx/gost-numeric.cbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-numeric.cbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\RequireCitationStyle{numeric-comp}
\ExecuteBibliographyOptions{dashed=false,citeisbn,citeurl,citedoi,citeeprint}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/biblatex-gost.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/biblatex-gost.dbx
index 3c7f3b3c34..c710909b37 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/biblatex-gost.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/biblatex-gost.dbx
@@ -1,5 +1,5 @@
\ProvidesFile{biblatex-gost.dbx}
-[2020/02/23\space v1.18\space biblatex-gost data model]
+[2020/10/25\space v1.19\space biblatex-gost data model]
% Biblatex-GOST data model
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic-min.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic-min.dbx
index f2fe4543fa..1ccbe7ce3e 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic-min.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic-min.dbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-alphabetic-min.dbx}
-[2020/02/23\space v1.18\space biblatex-gost data model]
+[2020/10/25\space v1.19\space biblatex-gost data model]
\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic.dbx
index 61039e80a4..c1f95f4a75 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-alphabetic.dbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-alphabetic.dbx}
-[2020/02/23\space v1.18\space biblatex-gost data model]
+[2020/10/25\space v1.19\space biblatex-gost data model]
\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-authoryear-min.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-authoryear-min.dbx
index 91773b5351..50841a9fba 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-authoryear-min.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-authoryear-min.dbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-authoryear-min.dbx}
-[2020/02/23\space v1.18\space biblatex-gost data model]
+[2020/10/25\space v1.19\space biblatex-gost data model]
\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-authoryear.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-authoryear.dbx
index 1c85e127a1..813c788163 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-authoryear.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-authoryear.dbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-authoryear.dbx}
-[2020/02/23\space v1.18\space biblatex-gost data model]
+[2020/10/25\space v1.19\space biblatex-gost data model]
\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote-min.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote-min.dbx
index 7755432e02..175a01a316 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote-min.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote-min.dbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-footnote-min.dbx}
-[2020/02/23\space v1.18\space biblatex-gost data model]
+[2020/10/25\space v1.19\space biblatex-gost data model]
\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote.dbx
index 2d840913b9..8e192490a9 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-footnote.dbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-footnote.dbx}
-[2020/02/23\space v1.18\space biblatex-gost data model]
+[2020/10/25\space v1.19\space biblatex-gost data model]
\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline-min.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline-min.dbx
index 746c27a6c7..68b24367a8 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline-min.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline-min.dbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-inline-min.dbx}
-[2020/02/23\space v1.18\space biblatex-gost data model]
+[2020/10/25\space v1.19\space biblatex-gost data model]
\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline.dbx
index 98250941e1..be249bd300 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-inline.dbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-inline.dbx}
-[2020/02/23\space v1.18\space biblatex-gost data model]
+[2020/10/25\space v1.19\space biblatex-gost data model]
\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric-min.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric-min.dbx
index 0e9f2779da..256c87eda4 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric-min.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric-min.dbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-numeric-min.dbx}
-[2020/02/23\space v1.18\space biblatex-gost data model]
+[2020/10/25\space v1.19\space biblatex-gost data model]
\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric.dbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric.dbx
index b010d659a7..6d4a172443 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric.dbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/dbx/gost-numeric.dbx
@@ -1,5 +1,5 @@
\ProvidesFile{gost-numeric.dbx}
-[2020/02/23\space v1.18\space biblatex-gost data model]
+[2020/10/25\space v1.19\space biblatex-gost data model]
\blx@inputonce{biblatex-gost.dbx}{biblatex-gost data model}{}{}{}{}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/american-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/american-gost.lbx
index 9d8b6281d8..a720763766 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/american-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/american-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{american-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{american}
\InheritBibliographyStrings{american}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/brazilian-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/brazilian-gost.lbx
index c4052074cb..0d8fbdc823 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/brazilian-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/brazilian-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{brazilian-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{brazilian}
\InheritBibliographyStrings{brazilian}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/british-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/british-gost.lbx
index d235ceaa6c..586af50de8 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/british-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/british-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{british-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{british}
\InheritBibliographyStrings{british}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/catalan-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/catalan-gost.lbx
index 57e4a5774b..c5d83b553f 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/catalan-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/catalan-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{catalan-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{catalan}
\InheritBibliographyStrings{catalan}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/croatian-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/croatian-gost.lbx
index 4be2631311..271e423fcc 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/croatian-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/croatian-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{croatian-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{croatian}
\InheritBibliographyStrings{croatian}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/english-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/english-gost.lbx
index 4b2f928433..381bf677c9 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/english-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/english-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{english-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{english}
\InheritBibliographyStrings{english}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/french-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/french-gost.lbx
index 1cd2477f32..a5c6524e61 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/french-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/french-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{french-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{french}
\InheritBibliographyStrings{french}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/galician-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/galician-gost.lbx
index 24d423937c..4bcd22a322 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/galician-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/galician-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{galician-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{galician}
\InheritBibliographyStrings{galician}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/german-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/german-gost.lbx
index 5060e35457..0a9c7efd84 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/german-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/german-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{german-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{german}
\InheritBibliographyStrings{german}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/greek-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/greek-gost.lbx
index c760f0643c..106978a969 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/greek-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/greek-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{greek-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{greek}
\InheritBibliographyStrings{greek}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/icelandic-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/icelandic-gost.lbx
index 19e640fb06..1b3c4ae492 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/icelandic-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/icelandic-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{icelandic-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{icelandic}
\InheritBibliographyStrings{icelandic}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/italian-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/italian-gost.lbx
index 0ef978a477..43795ac9d0 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/italian-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/italian-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{italian-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{italian}
\InheritBibliographyStrings{italian}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/portuguese-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/portuguese-gost.lbx
index 7d49f2e285..a25f644b72 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/portuguese-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/portuguese-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{portuguese-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{portuguese}
\InheritBibliographyStrings{portuguese}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/russian-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/russian-gost.lbx
index 89ec537b3b..355db49ad5 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/russian-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/russian-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{russian-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{russian}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/slovene-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/slovene-gost.lbx
index 4f9f1f089d..d7e987cec6 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/slovene-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/slovene-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{slovene-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{slovene}
\InheritBibliographyStrings{slovene}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/spanish-gost.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/spanish-gost.lbx
index 1c7c6b203d..dc9e62ae67 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/spanish-gost.lbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-gost/tex/lbx/spanish-gost.lbx
@@ -1,5 +1,5 @@
\ProvidesFile{spanish-gost.lbx}
-[2020/02/23\space v1.18\space biblatex-gost styles]
+[2020/10/25\space v1.19\space biblatex-gost styles]
\InheritBibliographyExtras{spanish}
\InheritBibliographyStrings{spanish}
diff --git a/macros/latex/contrib/caption/CHANGELOG b/macros/latex/contrib/caption/CHANGELOG
index 089a3caa59..1eba38b6a1 100644
--- a/macros/latex/contrib/caption/CHANGELOG
+++ b/macros/latex/contrib/caption/CHANGELOG
@@ -146,6 +146,9 @@ v1.1 (2012/12/26)
v1.2 (2016/03/27)
- \DeclareLangDependantCaptionOption added
+v1.3 (2020/10/25)
+- Option "bi-separator" and command \DeclareBiCaptionSeparator added
+
ltcaption package
-----------------
diff --git a/macros/latex/contrib/caption/README b/macros/latex/contrib/caption/README
index fc4002ca49..143820eda6 100644
--- a/macros/latex/contrib/caption/README
+++ b/macros/latex/contrib/caption/README
@@ -1,7 +1,7 @@
==========================================================================
The `caption' package bundle
-Release 2020-09-17
+Release 2020-10-26
Copyright (C) 1994-2020 Axel Sommerfeldt (axel.sommerfeldt@f-m.fm)
License: LPPL = LaTeX Project Public Licence
@@ -45,7 +45,7 @@ User Manual: caption-eng.pdf (English)
--------------------------------------------------------------------------
-The `bicaption' package v1.2 is a tiny package supporting the typesetting
+The `bicaption' package v1.3 is a tiny package supporting the typesetting
of bilingual captions.
User Manual: bicaption.pdf (English)
diff --git a/macros/latex/contrib/caption/bicaption.dtx b/macros/latex/contrib/caption/bicaption.dtx
index f2a52185c9..5bba05cb2f 100644
--- a/macros/latex/contrib/caption/bicaption.dtx
+++ b/macros/latex/contrib/caption/bicaption.dtx
@@ -2,7 +2,7 @@
%
% This is file `bicaption.dtx'.
%
-% Copyright (C) 2010-2018 Axel Sommerfeldt (axel.sommerfeldt@f-m.fm)
+% Copyright (C) 2010-2020 Axel Sommerfeldt (axel.sommerfeldt@f-m.fm)
%
% --------------------------------------------------------------------------
%
@@ -32,12 +32,12 @@
% caption-deu.tex, caption-eng.tex, caption-rus.tex.
%
% \fi
-% \CheckSum{431}
+% \CheckSum{457}
%
% \iffalse
%<*driver>
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesFile{bicaption.drv}[2016/03/27 v1.2 Adds a bilingual caption feature to the caption package]
+\ProvidesFile{bicaption.drv}[2020/10/25 v1.3 Adds a bilingual caption feature to the caption package]
\hbadness=9999 \newcount\hbadness \hfuzz=74pt % Make TeX shut up.
%\errorcontextlines=3
%
@@ -45,17 +45,11 @@
\setlength\parindent{0pt}
\setlength\parskip{\smallskipamount}
%
-\newcommand\LineBreak{\linebreak[3]}
-\newcommand\PageBreak{\pagebreak[3]}
\usepackage{ifpdf}
\ifpdf
\usepackage{mathptmx,courier}
\usepackage[scaled=0.90]{helvet}
\addtolength\marginparwidth{15pt}
- \ifdim\paperheight=297mm % a4paper
- \renewcommand\LineBreak{\\}
- \renewcommand\PageBreak{\clearpage}
- \fi
\fi
%
\usepackage[T1]{fontenc}
@@ -79,7 +73,7 @@
%
\newcommand*\csmarg[1]{\texttt{\char`\{#1\char`\}}}
\newcommand*\csoarg[1]{\texttt{\char`\[#1\char`\]}}
-\newcommand*\version[2][]{$v#2$}
+\newcommand*\version[2][]{v$#2$}
%
\usepackage{marvosym}
\makeatletter
@@ -167,16 +161,17 @@
% \label{sec:options}
%
% \DescribeMacro{\captionsetup}
+% The command
% \begin{quote}
% |\captionsetup[bi]|\marg{options}
% \end{quote}
-% do setup options which will be used for bilanguage captions \emph{additionally}
+% does setup options which will be used for bilanguage captions \emph{additionally}
% to the ones which are setup for the specific floating environment.
%
% \begin{quote}
% |\captionsetup[bi-first]|\marg{options}
% \end{quote}
-% do setup options which will be used for the \emph{first} heading
+% does setup options which will be used for the \emph{first} heading
% of the bilanguage captions \emph{additionally}
% to the ones which are setup for the specific floating environment
% and the ones which are setup by |\captionsetup[bi]{|\ldots|}|.
@@ -184,16 +179,16 @@
% \begin{quote}
% |\captionsetup[bi-second]|\marg{options}
% \end{quote}
-% do setup options which will be used for the \emph{second} heading
+% does setup options which will be used for the \emph{second} heading
% of the bilanguage captions \emph{additionally}
% to the ones which are setup for the specific floating environment
% and the ones which are setup by |\captionsetup[bi]{|\ldots|}|.
%
% \bigskip
%
-% Options specified with |\use|\-|package[|\ldots|]{bi|\-|caption}| and
-% |\caption|\-|setup[bi|\ldots|]{|\ldots|}| will override the ones specified by
-% |\caption|\-|setup{|\ldots|}| and |\caption|\-|setup[fig|\-|ure]{|\ldots|}|
+% Options specified with |\use|\-|package[|\ldots|]{bi|\-|cap|\-|tion}| and
+% |\cap|\-|tion|\-|setup[bi|\ldots|]{|\ldots|}| will override the ones specified by
+% |\cap|\-|tion|\-|setup{|\ldots|}| and |\cap|\-|tion|\-|setup[fig|\-|ure]{|\ldots|}|
% (same for `table'). So finally we have the following order how
% settings for bilingual captions are applied:
% \begin{enumerate}
@@ -242,7 +237,6 @@
%
% \begin{Options}{language=}
% \item[lang=]
-% \DescribeMacro{language=}
% Sets the language of the caption, e.g.
% \begin{quote}|\use|\-|package|\-|[lang=eng|\-|lish]{bi|\-|caption}|\end{quote}
% will typeset the second caption of bilingual captions in English.
@@ -250,7 +244,6 @@
% see \autoref{sec:babel} for details.)
%
% \item[bi-lang=]
-% \DescribeMacro{bi-lang=}
% Causes a selection of the headings of bilingual captions.
% \begin{quote}|\captionsetup{bi-lang=both}|\end{quote}
% will cause that both caption headings are being typeset.\\
@@ -261,18 +254,42 @@
% will cause that only the \emph{second} heading is being typeset.
%
% \item[bi-slc=]
-% \DescribeMacro{bi-singlelinecheck=}
-% Switches the common single-line-check |on| or |off|, i.e.~when switched on
+% \begin{quote}|\captionsetup{bi-slc=|\meta{bool}|}|\end{quote}
+% switches the common single-line-check |on| or |off|, i.e.~when switched on
% only a single check will be done for both captions, and the result will affect
% both captions afterwards. So if only one caption is longer than a single line,
% both captions will be treated as if they are longer than a single line, even if
% the second one isn't. (The default is |on|.)
%
% \item[bi-swap=]
-% \DescribeMacro{bi-swap=}
% \begin{quote}|\captionsetup{bi-swap}|\end{quote}
% will swap the primary and secondary language,
% making the first language the second one and vice versa. (The default is |false|.)
+%
+% \NEWfeature{v1.3}
+% \item[bi-separator=]
+% \begin{quote}|\captionsetup{bi-separator=|\meta{name}|}|\end{quote}
+% will select a separator between first and second bilingual caption.
+% You could choose one of the following: `none' (which is the default one
+% and could also be addressed as `default'), `smallskip', `medskip',
+% `largeskip', or a self-defined one using
+% \DescribeMacro{\DeclareBiCaptionSeparator}
+% \begin{quote}|\DeclareBiCaptionSeparator|\marg{name}\marg{code}\end{quote}
+% Examples:
+% \begin{quote}
+% |\captionsetup{bi-separator=smallskip}|
+% \end{quote}
+% will put a |\smallskip| between the two bilingual captions.
+% \begin{quote}
+% |\DeclareBiCaptionSeparator{hrule}{\hrule}|\\
+% |\captionsetup{bi-separator=hrule}|
+% \end{quote}
+% will draw a horizontal line between the two bilingual captions.
+% \begin{quote}
+% |\DeclareBiCaptionSeparator{3pt}{\vspace{3pt}}|\\
+% |\captionsetup{bi-separator=3pt}|
+% \end{quote}
+% will put |3pt| vertical space between the two bilingual captions.
% \end{Options}
%
% \section{The \cs{bicaption} commands}
@@ -337,7 +354,7 @@
% \cs{subcaptionbox}.)
% \endgroup
%
-% \PageBreak
+% \pagebreak[3]
% \section{A sample document}
% \label{sec:example}
%
@@ -444,7 +461,7 @@
% |\end{document}|
% \end{quote}
%
-% \PageBreak
+% \pagebreak[3]
% \captionsetup[bi-first]{lang=german}
% \captionsetup[bi-second]{lang=english,font=it}
% \captionsetup[sub]{format=hang,list=on}
@@ -535,7 +552,7 @@
% {Short English heading}
% \end{figure}
%
-% \PageBreak
+% \pagebreak[3]
% \section{Customising lists}
% \label{sec:lists}
%
@@ -831,7 +848,7 @@
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesPackage{bicaption}[2020/08/23 v1.2a Bilingual Captions (AR)]
+\ProvidesPackage{bicaption}[2020/10/25 v1.3 Bilingual Captions (AR)]
% \end{macrocode}
% \begin{macrocode}
\RequirePackage{caption}[2020/08/23] % needs v3.5 or newer
@@ -953,6 +970,37 @@
\caption@set@bool\bicaption@ifswap{#1}}
% \end{macrocode}
%
+% The option |bi-separator| will setup the separator between
+% the two bi-lingual captions.
+% \begin{macrocode}
+\DeclareCaptionOption{bi-separator}[1]{%
+ \caption@set{biseparator}{#1}}
+% \end{macrocode}
+%
+% \begin{macro}{\DeclareBiCaptionSeparator}
+% \changes{v1.3}{2020/10/25}{This macro added}
+% |\DeclareBiCaptionSeparator|\marg{name}\marg{code}
+% \begin{macrocode}
+\newcommand\DeclareBiCaptionSeparator[2]{%
+ \caption@decl{biseparator}{#1}{#2}}
+\@onlypreamble\DeclareBiCaptionSeparator
+% \end{macrocode}
+% \end{macro}
+%
+% There are four pre-defined separators, called `none',
+% `smallskip', `medskip', and `bigskip'.
+% \begin{macrocode}
+\DeclareBiCaptionSeparator{none}{}
+\DeclareBiCaptionSeparator{smallskip}{\smallskip}
+\DeclareBiCaptionSeparator{medskip}{\medskip}
+\DeclareBiCaptionSeparator{bigskip}{\bigskip}
+% \end{macrocode}
+%
+% The default separator usually maps to `none'.
+% \begin{macrocode}
+\SetCaptionDefault{biseparator}{none}
+% \end{macrocode}
+%
% The option |lang=|\meta{language} will setup the language of the caption.
% We can't set the language immediately because otherwise we will get in trouble, e.g. when
% using the \package{microtype} package via |\usepackage[babel]{microtype}|.
@@ -1052,9 +1100,10 @@
% \pagebreak[3]
% \subsection{Execution of options}
%
-% Setup default values for |bi-lang| and |bi-singlelinecheck|.
+% Setup default values for |bi-lang|, |bi-single|\-|line|\-|check|,
+% |bi-swap|, and |bi-separator|.
% \begin{macrocode}
-\caption@ExecuteOptions{caption}{bi-lang=0,bi-slc=1,bi-swap=0}
+\caption@ExecuteOptions{caption}{bi-lang=0,bi-slc=1,bi-swap=0,bi-separator=default}
% \end{macrocode}
%
% Set the language for the first caption.
@@ -1178,6 +1227,7 @@
%
% \begin{macro}{\bicaption@@make}
% \changes{v1.1}{2015/09/16}{\cs{bicaption@label} replaced by \cs{caption@thelabel}}
+% \changes{v1.3}{2020/10/25}{Usage of \cs{caption@biseparator} added}
% |\bicaption@@make|\marg{text \#2}\marg{label}\marg{text \#1}\par
% Typeset both captions using the original version of \cs{caption@@make}.
% \begin{macrocode}
@@ -1191,8 +1241,8 @@
% \begin{macrocode}
\ifnum\bicaption@lang=0\relax
\bicaption@ifslc
- {\caption@slc{#2}{#3}{}{\KV@caption@singlelinecheck0}%
- \caption@slc{#2}{#1}{}{\KV@caption@singlelinecheck0}}%
+ {\caption@slc{#2}{#3}{}{\caption@setsinglelinecheck0}%
+ \caption@slc{#2}{#1}{}{\caption@setsinglelinecheck0}}%
{}%
\fi
% \end{macrocode}
@@ -1202,17 +1252,20 @@
\ifnum\bicaption@lang=2\relax
\caption@thelabel
\global\let\caption@thelabel\relax
+ \let\bicaption@tempa\relax
\else
\begingroup
\caption@setoptions{bi-first}%
\caption@@make@{#2}{#3}%
\endgroup
+ \def\bicaption@tempa{\bicaption@separator\caption@biseparator}%
\fi
% \end{macrocode}
% Typeset the second caption, if requested.
% \begin{macrocode}
\ifnum\bicaption@lang=1\relax
\else
+ \bicaption@tempa
\begingroup
\caption@setoptions{bi-second}%
\caption@@make@{#2}{#1}%
@@ -1220,6 +1273,9 @@
\fi
}
% \end{macrocode}
+% \begin{macrocode}
+\newcommand*\bicaption@separator{\par}
+% \end{macrocode}
% \end{macro}
%
% \pagebreak[3]
diff --git a/macros/latex/contrib/caption/bicaption.pdf b/macros/latex/contrib/caption/bicaption.pdf
index 577c124eac..07d8b5937c 100644
--- a/macros/latex/contrib/caption/bicaption.pdf
+++ b/macros/latex/contrib/caption/bicaption.pdf
Binary files differ
diff --git a/macros/latex/contrib/caption/caption-ams-smf.dtx b/macros/latex/contrib/caption/caption-ams-smf.dtx
index e36d586fb5..cc036505c6 100644
--- a/macros/latex/contrib/caption/caption-ams-smf.dtx
+++ b/macros/latex/contrib/caption/caption-ams-smf.dtx
@@ -80,7 +80,7 @@
%
% \newcommand*\csmarg[1]{\texttt{\char`\{#1\char`\}}}
% \newcommand*\csoarg[1]{\texttt{\char`\[#1\char`\]}}
-% \newcommand*\version[2][]{\textit{v#2}}
+% \newcommand*\version[2][]{v$#2$}
%
% \GetFileInfo{caption-ams-smf.drv}
% \let\docdate\filedate
diff --git a/macros/latex/contrib/caption/caption-beamer.dtx b/macros/latex/contrib/caption/caption-beamer.dtx
index 57993b5c49..934f489f4a 100644
--- a/macros/latex/contrib/caption/caption-beamer.dtx
+++ b/macros/latex/contrib/caption/caption-beamer.dtx
@@ -75,7 +75,7 @@
%
% \newcommand*\csmarg[1]{\texttt{\char`\{#1\char`\}}}
% \newcommand*\csoarg[1]{\texttt{\char`\[#1\char`\]}}
-% \newcommand*\version[2][]{\textit{v#2}}
+% \newcommand*\version[2][]{v$#2$}
%
% \GetFileInfo{caption-beamer.drv}
% \let\docdate\filedate
diff --git a/macros/latex/contrib/caption/caption-elsarticle.dtx b/macros/latex/contrib/caption/caption-elsarticle.dtx
index c7f0922c14..878e855022 100644
--- a/macros/latex/contrib/caption/caption-elsarticle.dtx
+++ b/macros/latex/contrib/caption/caption-elsarticle.dtx
@@ -75,7 +75,7 @@
%
% \newcommand*\csmarg[1]{\texttt{\char`\{#1\char`\}}}
% \newcommand*\csoarg[1]{\texttt{\char`\[#1\char`\]}}
-% \newcommand*\version[2][]{\textit{v#2}}
+% \newcommand*\version[2][]{v$#2$}
%
% \GetFileInfo{caption-elsarticle.drv}
% \let\docdate\filedate
diff --git a/macros/latex/contrib/caption/caption-eng.pdf b/macros/latex/contrib/caption/caption-eng.pdf
index 781d10e0c4..866fef2063 100644
--- a/macros/latex/contrib/caption/caption-eng.pdf
+++ b/macros/latex/contrib/caption/caption-eng.pdf
Binary files differ
diff --git a/macros/latex/contrib/caption/caption-eng.tex b/macros/latex/contrib/caption/caption-eng.tex
index a26aa0ca3b..21a61546be 100644
--- a/macros/latex/contrib/caption/caption-eng.tex
+++ b/macros/latex/contrib/caption/caption-eng.tex
@@ -31,7 +31,7 @@
% caption-deu.tex, caption-eng.tex, caption-rus.tex.
%
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesFile{caption-eng.tex}[2020/09/12 v3.5 The caption package]
+\ProvidesFile{caption-eng.tex}[2020/09/21 v3.5 The caption package]
\hbadness=9999 \newcount\hbadness \hfuzz=20pt % Make TeX shut up.
%\errorcontextlines=3
@@ -115,7 +115,7 @@
\newcommand*\csmarg[1]{\texttt{\char`\{#1\char`\}}}
\newcommand*\csoarg[1]{\texttt{\char`\[#1\char`\]}}
-\newcommand*\version[2][]{$v#2$}
+\newcommand*\version[2][]{v$#2$}
\newcommand*\x{\discretionary{}{}{}}
\newenvironment{Annotation}%
@@ -253,7 +253,7 @@ It documents the options and commands available in version \version{3.1} of the
What now?
\begin{itemize}
\item
- I will start revising this documentation in the next weeks, finally bringing it up-to-date.
+ I will update this documentation in the next weeks, finally bringing it up-to-date.
\item
Until the revised documentation is ready the most recent version could be found at
\url{https://gitlab.com/axelsommerfeldt/caption/-/blob/master/doc/caption-eng.pdf}
@@ -447,10 +447,14 @@ you specify how the caption label will be typeset.
There are five standard caption label formats:
\begin{Options}{\OptionLabel}
- \item[default]
+ \item[original]
The caption label will be typeset as specified by the document class,
usually this means the name and the number (like \texttt{simple}).
- (This is the default behaviour.)
+
+ Until \version{3.4} of \thispackage\ this label format was called `default'.
+ Since \version{3.5} it is called `original' and usually is the default label
+ format, so |label|\-|format=|\-|default| will still select this label format,
+ unless the default was changed by either a document class or babel language package.
\item[empty]
The caption label will be empty.
@@ -4147,36 +4151,51 @@ could be used to adapt the \package{caption} package default values:
\DescribeMacro{\SetCaptionDefault}
The command
-\begin{quote}|\SetCaptionDefault*|\marg{option}\marg{default value}\end{quote}
+\begin{quote}
+ |\SetCaptionDefault*|\marg{option}\marg{default value}
+\end{quote}
changes the default value for the option \meta{option}, for example:
\begin{quote}
-|\SetCaptionDefault{format}{hang}|\\
-|\SetCaptionDefault{justification}{raggedright}|\\
-|\DeclareCaptionLabelSeparator{silly}{ +++ }|\\
-|\SetCaptionDefault{labelseparator}{silly}|
+ |\SetCaptionDefault{format}{hang}|\\
+ |\SetCaptionDefault{justification}{raggedright}|\\
+ |\DeclareCaptionLabelSeparator{silly}{ +++ }|\\
+ |\SetCaptionDefault{labelseparator}{silly}|
\end{quote}
This command is available for the options
-|box|,
-|font|,
-|format|,
-|justification|,
-|label|\-|font|,
-|label|\-|format|,
-|label|\-|separator|,
-|list|\-|format|,
-|margin|,
-|parbox|,
-|position|,
-|single|\-|line|\-|check|,
-|text|\-|font|,
-|text|\-|format|, and
-|width|.
+ |box|,
+ |font|,
+ |format|,
+ |justification|,
+ |label|\-|font|,
+ |label|\-|format|,
+ |label|\-|separator|,
+ |list|\-|format|,
+ |margin|,
+ |parbox|,
+ |position|,
+ |single|\-|line|\-|check|,
+ |text|\-|font|,
+ |text|\-|format|, and
+ |width|.
The starred variant only makes a difference when setting the default length
of either |margin| or |width|, in this case it will use |\def| internally
instead of |\edef| to store the value so the actual margin will be calculated
when used (and not when set).
+\DescribeMacro{\SetCaptionFallback}
+The command
+\begin{quote}
+ |\SetCaptionFallback|\marg{option}\marg{fallback value}
+\end{quote}
+changes the fallback value for the option \meta{option}, for example:
+\begin{quote}
+ |\SetCaptionFallback{labelformat}{simple}|
+\end{quote}
+Currently only the pre-defined label format `original' uses a fallback
+value when |\fnum@|\meta{environment} is not defined for the current (floating)
+environment.
+
\DescribeMacro{\AtCaptionPackage}
The adaption file will be loaded when the \package{caption} kernel |caption3.sty|
will be loaded so the given adaptions will be done for the \package{floatrow}
diff --git a/macros/latex/contrib/caption/caption-koma.dtx b/macros/latex/contrib/caption/caption-koma.dtx
index dc76dbad1c..380a054df9 100644
--- a/macros/latex/contrib/caption/caption-koma.dtx
+++ b/macros/latex/contrib/caption/caption-koma.dtx
@@ -79,7 +79,7 @@
%
% \newcommand*\csmarg[1]{\texttt{\char`\{#1\char`\}}}
% \newcommand*\csoarg[1]{\texttt{\char`\[#1\char`\]}}
-% \newcommand*\version[2][]{\textit{v#2}}
+% \newcommand*\version[2][]{v$#2$}
%
% \GetFileInfo{caption-koma.drv}
% \let\docdate\filedate
@@ -193,7 +193,7 @@
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesFile{caption-koma.sto}[2020/09/12 v2.0a Adaption of the caption package to the KOMA-Script document classes (AR)]
+\ProvidesFile{caption-koma.sto}[2020/09/21 v2.0b Adaption of the caption package to the KOMA-Script document classes (AR)]
% \end{macrocode}
%
% \section{Margin resp. width}
@@ -380,9 +380,9 @@
%
% \section{Label format}
%
-% The `default' caption label format maps to `autodot'.
+% The `fallback' caption label format maps to `autodot'.
% \begin{macrocode}
-\SetCaptionDefault{labelformat}{autodot}
+\SetCaptionFallback{labelformat}{autodot}
% \end{macrocode}
%
% \section{Label separator}
diff --git a/macros/latex/contrib/caption/caption-light.dtx b/macros/latex/contrib/caption/caption-light.dtx
index 3b9b907112..c56734a414 100644
--- a/macros/latex/contrib/caption/caption-light.dtx
+++ b/macros/latex/contrib/caption/caption-light.dtx
@@ -75,7 +75,7 @@
%
\newcommand*\csmarg[1]{\texttt{\char`\{#1\char`\}}}
\newcommand*\csoarg[1]{\texttt{\char`\[#1\char`\]}}
-\newcommand*\version[2][]{$v#2$}
+\newcommand*\version[2][]{v$#2$}
%
\usepackage{marvosym}
\makeatletter
diff --git a/macros/latex/contrib/caption/caption-memoir.dtx b/macros/latex/contrib/caption/caption-memoir.dtx
index 1233515b1c..1f29e68cb8 100644
--- a/macros/latex/contrib/caption/caption-memoir.dtx
+++ b/macros/latex/contrib/caption/caption-memoir.dtx
@@ -32,12 +32,12 @@
% caption-deu.tex, caption-eng.tex, caption-rus.tex.
%
% \fi
-% \CheckSum{7}
+% \CheckSum{56}
%
% \iffalse
%<*driver>
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesFile{caption-memoir.drv}[2018/05/24 v2.0 Implementation of the caption-memoir package]
+\ProvidesFile{caption-memoir.drv}[2020/10/10 v2.1 Implementation of the caption-memoir package]
\hbadness=9999 \newcount\hbadness \hfuzz=100pt % Make TeX shut up.
%\errorcontextlines=3
%
@@ -75,7 +75,7 @@
%
% \newcommand*\csmarg[1]{\texttt{\char`\{#1\char`\}}}
% \newcommand*\csoarg[1]{\texttt{\char`\[#1\char`\]}}
-% \newcommand*\version[2][]{\textit{v#2}}
+% \newcommand*\version[2][]{v$#2$}
%
% \GetFileInfo{caption-memoir.drv}
% \let\docdate\filedate
@@ -183,7 +183,7 @@
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesFile{caption-memoir.sto}[2020/07/31 v2.0 Adaption of the caption package to the memoir document class (AR)]
+\ProvidesFile{caption-memoir.sto}[2020/10/10 v2.1 Adaption of the caption package to the memoir document class (AR)]
% \end{macrocode}
%
% \section{Adaptions already included in the caption package}
@@ -193,24 +193,115 @@
% \item \cs{@caption} expands \cs{memcaptioninfo}
% \item \cs{caption@prepareanchor} expands \cs{M@gettitle}
% \item \cs{caption@refstepcounter} expands \cs{donemaincaptiontrue}
-% \item Since the \class{memoir} document class resets the sub-caption
-% counter at |\@float|, right after |\done|\-|main|\-|caption|\-|false|,
-% all sub-caption counters will be saved at |\done|\-|main|\-|caption|\-|false|
-% so they can (and will) be restored using |\caption@|\-|restore|\-|counters|
-% at |\continued|\-|float|.
+% \item All sub-caption counters will be reset at |\@mem|\-|reset|\-|sub|\-|counter|,
+% even if they weren't defined by the \class{memoir} document class itself.
+% As work-around this command will be patched to protect the counters
+% defined by |\Declare|\-|Caption|\-|Sub|\-|Type|.
% \end{itemize}
%
% \section{Single-line-check}
%
% \begin{macro}{\caption@prepareslc}
-% \changes{v1.4a}{2011/10/21}{Redefinition of \cs{pagenote} from \textsf{memoir} document class added}
-% We re-define \cs{pagenote} here so it won't disturb the single-line-check.
+% \changes{v1.4a}{2011/10/21}{Re-definition of \cs{pagenote} added}
+% We re-define \cs{pagenote} here so it won't disturb the single-line-check.
% \begin{macrocode}
\g@addto@macro\caption@prepareslc{%
\let\pagenote\caption@gobble}
% \end{macrocode}
% \end{macro}
%
+% \section{Label separator}
+%
+% The `default' caption label separator maps to \cs{@contdelim}.
+% \begin{macrocode}
+\DeclareCaptionLabelSeparator{@contdelim}{\@contdelim}
+\SetCaptionDefault{labelseparator}{@contdelim}
+% \end{macrocode}
+%
+% \begin{macro}{\captiondelim}
+% \changes{v2.1}{2020/10/10}{Re-definition of \cs{captiondelim} added}
+% We re-define |\caption|\-|delim| so it will set the \package{caption3} label separator setting, too.
+% \begin{macrocode}
+\let\caption@memoir@delim\captiondelim
+\renewcommand\captiondelim{%
+ \captionsetup{labelsep=@contdelim}%
+ \caption@memoir@delim}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v2.0a}{2020/10/10}{Re-definition of label separator `gobble' added}
+% If |\fnum@figure| (or |\fnum@table| or\ldots) ends with |\@gobble|, the `:' part of the caption
+% label separator will be suppressed when a standard document class (\class{article}, \class{report},
+% or \class{book}) will be used, leaving the following space character intact.
+% This is different when using the \class{memoir} document class, in this case the complete
+% label separator will be suppressed. For this reason we re-define the pre-defined caption label
+% separator `gobble' to emulate this behaviour.
+%
+% \begin{macrocode}
+\DeclareCaptionLabelSeparator{gobble}{}
+% \end{macrocode}
+%
+% \section{Fonts}
+%
+% The `default' caption fonts map to \cs{@contnfont} resp.~\cs{conttfont}.
+% \begin{macrocode}
+\DeclareCaptionFont{@contnfont}{\@contnfont}
+\SetCaptionDefault{labelfont}{@contnfont}
+% \end{macrocode}
+% \begin{macrocode}
+\DeclareCaptionFont{@conttfont}{\@conttfont}
+\SetCaptionDefault{textfont}{@conttfont}
+% \end{macrocode}
+%
+% \begin{macro}{\captionnamefont}
+% \changes{v2.1}{2020/10/10}{Re-definition of \cs{captionnamefont} added}
+% We re-define |\caption|\-|delim| so it will set the \package{caption3} label separator setting, too.
+% \begin{macrocode}
+\let\caption@memoir@namefont\captionnamefont
+\renewcommand\captionnamefont{%
+ \captionsetup{labelfont=@contnfont}%
+ \caption@memoir@namefont}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\captiontitlefont}
+% \changes{v2.1}{2020/10/10}{Re-definition of \cs{captiontitlefont} added}
+% We re-define |\caption|\-|delim| so it will set the \package{caption3} label separator setting, too.
+% \begin{macrocode}
+\let\caption@memoir@titlefont\captiontitlefont
+\renewcommand\captiontitlefont{%
+ \captionsetup{textfont=@conttfont}%
+ \caption@memoir@titlefont}
+% \end{macrocode}
+% \end{macro}
+%
+% \section{Vertical spaces before and after captions}
+%
+% The \class{memoir} document classes uses |\above|\-|caption|\-|skip| and |\below|\-|caption|\-|skip|
+% different than the standard document classes and the \package{caption} package:
+% They always typeset |\above|\-|caption|\-|skip| before the caption and
+% |\below|\-|caption|\-|skip| after the captions. Both are preset to |0.5\one|\-|line|\-|skip|.
+%
+% For this reason we have to set the |\below|\-|caption|\-|skip| to |0pt| if the \package{caption}
+% package is used, so no extra vertical space will be created.
+%
+% \begin{macrocode}
+\AtCaptionPackage{\setlength\belowcaptionskip{0pt}}
+% \end{macrocode}
+%
+% \section{TODO}
+%
+% \begin{macrocode}
+% TODO: \captionstyle
+% TODO: \captionwidth, \changecaptionwidth, \normalcaptionwidth
+% TODO: \hangcaption, \indentcaption, \normalcaption
+% TODO: \precaption, \postcaption, \midbicaption
+% TODO: \captiontitlefinal
+% TODO: \contcaption
+% TODO: \newfixedcaption, \renewfixedcaption, \providefixedcaption
+%
+% \end{macrocode}
+%
% \iffalse
%</package>
% \fi
diff --git a/macros/latex/contrib/caption/caption-ntg.dtx b/macros/latex/contrib/caption/caption-ntg.dtx
index 61c6ed8116..97e0379f5f 100644
--- a/macros/latex/contrib/caption/caption-ntg.dtx
+++ b/macros/latex/contrib/caption/caption-ntg.dtx
@@ -77,7 +77,7 @@
%
% \newcommand*\csmarg[1]{\texttt{\char`\{#1\char`\}}}
% \newcommand*\csoarg[1]{\texttt{\char`\[#1\char`\]}}
-% \newcommand*\version[2][]{\textit{v#2}}
+% \newcommand*\version[2][]{v$#2$}
%
% \GetFileInfo{caption-ntg.drv}
% \let\docdate\filedate
diff --git a/macros/latex/contrib/caption/caption-thesis.dtx b/macros/latex/contrib/caption/caption-thesis.dtx
index a26ea7b31a..c358eadff1 100644
--- a/macros/latex/contrib/caption/caption-thesis.dtx
+++ b/macros/latex/contrib/caption/caption-thesis.dtx
@@ -75,7 +75,7 @@
%
% \newcommand*\csmarg[1]{\texttt{\char`\{#1\char`\}}}
% \newcommand*\csoarg[1]{\texttt{\char`\[#1\char`\]}}
-% \newcommand*\version[2][]{\textit{v#2}}
+% \newcommand*\version[2][]{v$#2$}
%
% \GetFileInfo{caption-thesis.drv}
% \let\docdate\filedate
diff --git a/macros/latex/contrib/caption/caption.dtx b/macros/latex/contrib/caption/caption.dtx
index 3e79199f55..09cef7fb86 100644
--- a/macros/latex/contrib/caption/caption.dtx
+++ b/macros/latex/contrib/caption/caption.dtx
@@ -32,12 +32,12 @@
% caption-deu.tex, caption-eng.tex, caption-rus.tex.
%
% \fi
-% \CheckSum{2697}
+% \CheckSum{2692}
%
% \iffalse
%<*driver>
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesFile{caption.drv}[2015/09/16 v3.5 Implementation of the caption package]
+\ProvidesFile{caption.drv}[2020/10/11 v3.5 Implementation of the caption package]
\hbadness=9999 \newcount\hbadness \hfuzz=100pt % Make TeX shut up.
%\errorcontextlines=3
%
@@ -84,7 +84,7 @@
%
% \newcommand*\csmarg[1]{\texttt{\char`\{#1\char`\}}}
% \newcommand*\csoarg[1]{\texttt{\char`\[#1\char`\]}}
-% \newcommand*\version[2][]{\textit{v#2}}
+% \newcommand*\version[2][]{v$#2$}
%
% \newcommand*\issue[1]{GitLab~\##1}
%
@@ -136,6 +136,30 @@
% \footnotetext{Thanks a lot to Olga Lapko for this translation}
% \end{quote}
%
+% \pagebreak[4]
+% \section*{Internal commands}
+%
+% These internal commands are save to use by other packages as well
+% since their interface will not change in future releases:
+% \begin{quote}\begin{tabular}{ll}
+% Internal command & Currently used by \\
+% \hline
+% |\caption@kernel@addcontentsline| & \package{floatrow} \\
+% |\caption@makecaption| & \package{bidi} \\
+% |\caption@settype| & \package{newfloat} \\
+% |\caption@setsubtype| & \package{floatrow} \\
+% |\caption@starfalse| & \package{bidi} \\
+% |\caption@startrue| & \package{bidi} \\
+% |\caption@xlabel| & \package{cleveref} \\
+% \end{tabular}\end{quote}
+%
+% If your package wants to use any other internal command of the \package{caption} package,
+% please write me an e-mail so we can define a proper interface together.
+%
+% The \package{lwarp} package uses a lot of internal commands as well,
+% but we are working on it on the Git branch \texttt{feature/lwarp}:
+% \url{https://gitlab.com/axelsommerfeldt/caption/-/tree/feature/lwarp}
+%
% \StopEventually{}
% \clearpage
% \tableofcontents
@@ -217,13 +241,13 @@
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesPackage{caption}[2020/09/12 v3.5b Customizing captions (AR)]
+\ProvidesPackage{caption}[2020/10/26 v3.5g Customizing captions (AR)]
% \end{macrocode}
%
% \section{Loading the kernel}
%
% \begin{macrocode}
-\RequirePackage{caption3}[2020/09/12] % needs v2.1 or newer
+\RequirePackage{caption3}[2020/10/06] % needs v2.2b or newer
% \end{macrocode}
%
% \section{Check against unknown document classes}
@@ -311,36 +335,105 @@
\captionsetup{list-entry=default}
% \end{macrocode}
%
+% \begin{macro}{\caption@declparboxrestore}
+% \changes{v3.5g}{2020/10/26}{This macro added}
+% |\caption@declparboxrestore|\marg{name}\marg{code}
+% \begin{macrocode}
+% TODO: Remove \caption@declparboxrestore
+\newcommand\caption@declparboxrestore{%
+ \caption@decl{parboxrestore}}
+% \end{macrocode}
+% \begin{macrocode}
+\@onlypreamble\caption@declparboxrestore
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\caption@setparboxrestore}
% \changes{v3.2}{2010/11/07}{This macro added}
+% \changes{v3.5g}{2020/10/26}{New implementation; default changed from `partial' to `full'}
% |\caption@setparboxrestore|\marg{\purett{partial} or \purett{full}}
% \begin{macrocode}
-\newcommand*\caption@setparboxrestore[1]{%
- \caption@ifinlist{#1}{full}{%
- \caption@setfullparboxrestore
- }{\caption@ifinlist{#1}{default,light,partial}{%
- \let\caption@parboxrestore\@secondoftwo
- }{%
- \caption@Error{Undefined parboxrestore `#1'}%
- }}}
+% TODO: Remove \caption@setparboxrestore
+\newcommand*\caption@setparboxrestore{%
+ \caption@set{parboxrestore}}
+% \end{macrocode}
+% \begin{macrocode}
+\caption@declparboxrestore{full}{%
+ \@parboxrestore}
+% \end{macrocode}
+% The original code (from |latex/base/ltboxes.dtx|):
+% \begin{verbatim}
+% \def\@parboxrestore{\@arrayparboxrestore\let\\\@normalcr}
+% \def\@arrayparboxrestore{%
+% \let\if@nobreak\iffalse
+% \let\if@noskipsec\iffalse
+% \let\par\@@par
+% \let\-\@dischyph
+% \let\'\@acci\let\`\@accii\let\=\@acciii
+% \parindent\z@ \parskip\z@skip
+% \everypar{}%
+% \linewidth\hsize
+% \@totalleftmargin\z@
+% \leftskip\z@skip \rightskip\z@skip \@rightskip\z@skip
+% \parfillskip\@flushglue \lineskip\normallineskip
+% \baselineskip\normalbaselineskip
+% \sloppy}
+% \end{verbatim}%^^A
+% This one will be used by |\@caption| instead of |\@parboxrestore|.
+% \begin{macrocode}
+\caption@declparboxrestore{partial}{%
+ \let\if@nobreak\iffalse
+ \let\if@noskipsec\iffalse
+ \let\par\@@par
+% \let\-\@dischyph
+% \let\'\@acci\let\`\@accii\let\=\@acciii
+ \parindent\z@ \parskip\z@skip
+ \everypar{}%
+% \linewidth\hsize
+% \@totalleftmargin\z@
+ \leftskip\z@skip \rightskip\z@skip \@rightskip\z@skip
+ \parfillskip\@flushglue \lineskip\normallineskip
+ \baselineskip\normalbaselineskip
+ \sloppy
+ \let\\\@normalcr}
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\caption@setfullparboxrestore}
-% \changes{v3.2}{2010/11/07}{This macro added}
-% |\caption@setfullparboxrestore|\par
-% This is an abbreviation for |\caption@setparboxrestore{full}|.
+% \begin{macro}{\caption@parboxrestore@mini}
+% \changes{v3.2}{2010/10/24}{This macro added}
+% \changes{v3.5g}{2020/10/26}{Renamed from \cs{caption@boxrestore@mini} to \cs{caption@parboxrestore@mini}}
+% Resets |\par| so the very first |\par| in |\@caption| behaves quite the same as in floating environments.
+% Will be used by |\set|\-|caption|\-|type|.
% \begin{macrocode}
-\newcommand*\caption@setfullparboxrestore{%
- \let\caption@parboxrestore\@firstoftwo}
+\caption@declparboxrestore{mini}{%
+ \let\par\@@par
+ \parindent\z@ \parskip\z@skip
+ \sloppy}
% \end{macrocode}
% \end{macro}
%
+% `default' usually maps to `full'.
+% \changes{v3.5g}{2020/10/26}{The default of \cs{caption@parboxrestore} maps to `full' instead of `partial' now}
+% \begin{macrocode}
+\SetCaptionDefault{parboxrestore}{full}
+% \end{macrocode}
+%
% \changes{v3.2}{2010/11/07}{Option \opt{parboxrestore} added}
% \begin{macrocode}
+% TODO: Remove the (undocumentated) option "parboxrestore"
\DeclareCaptionOption{parboxrestore}{\caption@setparboxrestore{#1}}
+% \end{macrocode}
+%
+% \begin{macro}{\caption@parboxrestore}
+% \changes{v3.1}{2007/03/03}{This macro and its usage added}
+% \changes{v3.1b}{2007/09/17}{Bugfix: Redefinition of CR added}
+% \changes{v3.2}{2010/11/07}{Support of option \opt{parboxrestore} added}
+% \changes{v3.5g}{2020/10/26}{New implementation; renamed from \cs{caption@boxrestore} to \cs{caption@parboxrestore}}
+% \begin{macrocode}
+% TODO: Change definition to \def\caption@parboxrestore{\@parboxrestore}
\captionsetup{parboxrestore=default}
% \end{macrocode}
+% \end{macro}
%
% \changes{v3.1f}{2007/11/28}{Option \opt{@minipage=} added}
% \begin{macrocode}
@@ -644,14 +737,10 @@
% \changes{v3.2f}{2012/01/14}{Usage of \cs{M@gettitle} moved to \cs{caption@prepareanchor}}
% \changes{v3.3}{2013/01/06}{Adapted to the \textsf{nag} package}
% As above, our version has been adapted to the packages we support.
-% Additionally our code is nested by |\caption@beginex| \&
-% |\caption@end| instead of |\begingroup| \& |\endgroup|.
-% Furthermore we use |\caption@boxrestore| instead of |\@parboxrestore|
-% so this code also works correctly inside list-based environments
-% like |wide| \& |addmargin|. (This, and the fact that we use
-% |\linewidth| instead of |\hsize| inside |\@makecaption|, solves
-% \href{http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=latex/2472}%^^A
-% {\LaTeX\ PR \texttt{latex/2472}}.)
+% Additionally our code is nested by |\caption@begin|\-|ex| \&
+% |\caption@end| instead of |\begin|\-|group| \& |\end|\-|group|.
+% Furthermore we use |\caption@par|\-|box|\-|restore| instead of
+% |\@parbox|\-|restore|.
% \begin{macrocode}
\long\def\caption@@caption#1[#2]#3{%
% \end{macrocode}
@@ -666,7 +755,7 @@
\par
\caption@beginex{#1}{#2}{#3}%
\caption@setfloatcapt{%
- \caption@boxrestore
+ \caption@parboxrestore
\if@minipage
\@setminipage
\fi
@@ -916,16 +1005,17 @@
% \changes{v3.2}{2010/10/24}{This macro added}
% \changes{v3.4e}{2020/01/02}{Check added if the subtype is defined}
% \changes{v3.5}{2020/08/24}{Definition method adapted to the \package{caption-light} package}
-% Like |\captionsetup{type=xxx}|, but also works if \cs{captionsetup} was redefined.
+% Like |\captionsetup{type=xxx}|, but also works if |\caption|\-|setup| was redefined.
% \begin{macrocode}
\def\setcaptiontype{%
- \caption@boxrestore@mini
+ \caption@parboxrestore@mini
\caption@settype}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\setcaptionsubtype}
% \changes{v3.2a}{2011/08/15}{This macro added}
+% \changes{v3.5d}{2020/09/28}{This macro revised}
% Same, but sets the sub-type.
% \begin{macrocode}
\newcommand\setcaptionsubtype{%
@@ -935,9 +1025,11 @@
% \end{macrocode}
% \begin{macrocode}
\newcommand\caption@setsubtype{%
- \@ifstar
- {\caption@@settype{sub}*{sub\@captype}}%
- {\caption@@settype{sub}{sub\@captype}}}%
+ \caption@teststar\caption@@setsubtype\@firstoftwo\@secondoftwo}
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand*\caption@@setsubtype[1]{%
+ \caption@@@settype{sub}{#1}{sub\@captype}}
% \end{macrocode}
% \end{macro}
%
@@ -951,6 +1043,7 @@
% \changes{v3.2}{2010/10/26}{Error message moved from here to \cs{caption@refstepcounter}}
% \changes{v3.3}{2011/12/28}{Resetting of \cs{ifcaption@caption} and \cs{ifcaption@subcaption} added}
% \changes{v3.4e}{2020/01/02}{Checks added to prevent misuse regading subtypes}
+% \changes{v3.5d}{2020/09/28}{This macro revised}
% |\caption@settype*|\marg{type}\par
% sets |\@captype| and executes the options associated with it
% (using |\caption@set|\-|options|).
@@ -968,17 +1061,17 @@
% \end{macrocode}
% \begin{macrocode}
\newcommand*\caption@set@type{%
- \caption@@settype{}}
+ \caption@teststar\caption@@settype\@firstoftwo\@secondoftwo}
% \end{macrocode}
% \begin{macrocode}
-\newcommand*\caption@@settype[1]{%
- \caption@teststar{\caption@@@settype{#1}}\@firstoftwo\@secondoftwo}
+\newcommand*\caption@@settype{%
+ \caption@@@settype{}}
% \end{macrocode}
% \begin{macrocode}
\newcommand*\caption@@@settype[3]{%
% #1 = "" or "sub"
% #2 = \@firstoftwo in star form, \@secondoftwo otherwise
-% #3 = <type>, e.g. "figure" or "subfigure"
+% #3 = <type>, e.g.: "figure" or "subfigure"
\caption@Debug{#1type=#3}%
\@nameuse{caption@check#1type}{#3}%
{\caption@checkgrouplevel{#1}{%
@@ -1273,6 +1366,7 @@
% \changes{v3.3}{2013/05/01}{Usage of \cs{caption@restorecounters} added}
% \changes{v3.3}{2013/12/16}{Bugfix: Does not use \cs{caption@ContinuedFloat} anymore since this breaks \cs{ContinuedFloat} offered by the \package{subfig} package}
% \changes{v3.4}{2015/09/16}{Renamed from \cs{ContinuedFloat} to \cs{continuedfloat}}
+% \changes{v3.5f}{2020/10/06}{Usage of \cs{caption@restorecounters} removed}
% |\continuedfloat|\\
% |\continuedfloat*|\par
% This mainly sets the appropriate flag, increments the
@@ -1308,7 +1402,6 @@
\newcommand*\caption@continued@float[1]{%
\edef\caption@tempa{#1}%
\ifx\caption@tempa\caption@CFtype
- \caption@restorecounters
\caption@@continuedfloat{#1}%
\else
\caption@Error{Continued `#1' after `\caption@CFtype'}%
@@ -1381,18 +1474,6 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\donemaincaptionfalse}
-% Since the \class{memoir} document class resets the sub-caption
-% counter at |\@float|, right after |\done|\-|main|\-|caption|\-|false|,
-% we save all sub-caption counters at |\done|\-|main|\-|caption|\-|false|
-% so we can restore them using |\caption@restore|\-|counters|
-% inside |\continued|\-|float|.
-% \begin{macrocode}
-\caption@ifdefined\donemaincaptionfalse{%
- \g@addto@macro\donemaincaptionfalse\caption@savesubcounters}{}
-% \end{macrocode}
-% \end{macro}
-%
% \section{Internal helpers}
%
% \begin{macro}{\caption@refstepcounter}
@@ -1400,6 +1481,7 @@
% \changes{v3.2}{2010/10/26}{Error message moved from \cs{caption@@@settype} to here}
% \changes{v3.2c}{2011/09/04}{Support of \cs{donemaincaptiontrue} from \textsf{memoir} document class added}
% \changes{v3.3}{2011/12/28}{Usage of \cs{ifcaption@caption}, \cs{ifcaption@subcaption}, and \cs{ifcaption@ContinuedFloat} added}
+% \changes{v3.5e}{2020/09/28}{Bugfix in re-definition of \cs{stepcounter}; uses \cs{edef} instead of \cs{def} now}
% Increments the float (i.e. |figure| or |table|) counter,
% resets the continuation counter, and redefines itself to |\@gobble|.
% \begin{macrocode}
@@ -1433,7 +1515,7 @@
\let\caption@tempa\caption@@refstepcounter
\caption@ifflag2{}{% caption
\caption@ifflag4{% subcaption
-% Counter was already incremented by content, so we suppress \stepcounter{#1} here
+ % Counter was already incremented by content, so we suppress \stepcounter{#1} here
\let\caption@tempa\caption@@refcounter
}{}%
}%
@@ -1444,8 +1526,8 @@
\newcommand*\caption@@refcounter[1]{%
\let\caption@stepcounter@ORI\stepcounter
\def\stepcounter##1{%
- \def\caption@tempa{#1}%
- \def\caption@tempb{##1}%
+ \edef\caption@tempa{#1}%
+ \edef\caption@tempb{##1}%
\ifx\caption@tempa\caption@tempb \else
\caption@stepcounter@ORI{##1}%
\fi}%
@@ -1477,8 +1559,7 @@
%
% \begin{macro}{\caption@dblarg}
% \changes{v3.1}{2007/02/05}{This macro added}
-% \changes{v3.1f}{2007/12/06}{Bugfix 07-12-06: Changed so it works without \cs{kernel@ifnextchar}
-% (which was introduced in \LaTeXe\ 2004/01/23), too}
+% \changes{v3.1f}{2007/12/06}{Bugfix 07-12-06: Changed so it works without \cs{kernel@ifnextchar} (which was introduced in \LaTeXe\ 2004/01/23), too}
% \changes{v3.3}{2012/03/25}{Support of option \opt{list-entry} added}
% A |\relax| was added compared to |\@dblarg| so |\caption{}| will be
% expanded to |\caption[\relax]{}| (and not to |\caption[]{}|).
@@ -1572,62 +1653,6 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\caption@boxrestore}
-% \changes{v3.1}{2007/03/03}{This macro and its usage added}
-% \changes{v3.1b}{2007/09/17}{Bugfix: Redefinition of CR added}
-% \changes{v3.2}{2010/11/07}{Support of option \opt{parboxrestore} added}
-% The original code (from |latex/base/ltboxes.dtx|):
-% \begin{verbatim}
-% \def\@parboxrestore{\@arrayparboxrestore\let\\\@normalcr}
-% \def\@arrayparboxrestore{%
-% \let\if@nobreak\iffalse
-% \let\if@noskipsec\iffalse
-% \let\par\@@par
-% \let\-\@dischyph
-% \let\'\@acci\let\`\@accii\let\=\@acciii
-% \parindent\z@ \parskip\z@skip
-% \everypar{}%
-% \linewidth\hsize
-% \@totalleftmargin\z@
-% \leftskip\z@skip \rightskip\z@skip \@rightskip\z@skip
-% \parfillskip\@flushglue \lineskip\normallineskip
-% \baselineskip\normalbaselineskip
-% \sloppy}
-% \end{verbatim}%^^A
-% This one will be used by |\@caption| instead of |\@parboxrestore|.
-% \begin{macrocode}
-\newcommand*\caption@boxrestore{%
- \caption@parboxrestore{\@parboxrestore}{%
- \let\if@nobreak\iffalse
- \let\if@noskipsec\iffalse
- \let\par\@@par
-% \let\-\@dischyph
-% \let\'\@acci\let\`\@accii\let\=\@acciii
- \parindent\z@ \parskip\z@skip
- \everypar{}%
-% \linewidth\hsize
-% \@totalleftmargin\z@
- \leftskip\z@skip \rightskip\z@skip \@rightskip\z@skip
- \parfillskip\@flushglue \lineskip\normallineskip
- \baselineskip\normalbaselineskip
- \sloppy
- \let\\\@normalcr
- }}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\caption@boxrestore@mini}
-% \changes{v3.2}{2010/10/24}{This macro added}
-% Resets \cs{par} so the very first \cs{par} in \cs{@caption} behaves quite the same as in floating environments.
-% Will be used by \cs{setcaptiontype}.
-% \begin{macrocode}
-\newcommand\caption@boxrestore@mini{%
- \let\par\@@par
- \parindent\z@ \parskip\z@skip
- \sloppy}
-% \end{macrocode}
-% \end{macro}
-%
% \begin{macro}{\caption@normalsize}
% \changes{v3.1}{2007/05/05}{This macro and its usage added}
% \changes{v3.5}{2020/07/27}{Adapted to \package{caption3} v2.0}
@@ -1776,7 +1801,8 @@
\caption@AtBeginDocument{%
\caption@ifundefined\@subfloatrowtrue
{\newif\if@subfloatrow
- \caption@ifundefined\subfloatrow{}%
+ \caption@ifundefined\subfloatrow
+ {}%
{\caption@Debug{Patching subfloatrow environment}%
\g@addto@macro\capsubrowsettings{\@subfloatrowtrue}%
\g@addto@macro\killfloatstyle{%
@@ -1831,8 +1857,7 @@
% \end{macro}
%
% \begin{macro}{\caption@addsubcontentsline}
-% \changes{v3.1i}{2008/08/02}{Bugfix 08-07-28:
-% \cs{label}, \cs{index}, and \cs{glossary} are allowed inside the list entry now}
+% \changes{v3.1i}{2008/08/02}{\cs{label}, \cs{index}, and \cs{glossary} are allowed inside the list entry now}
% \changes{v3.2}{2011/06/26}{Uses \cs{caption@@addcontentsline} instead of \cs{addcontentsline} now}
% \changes{v3.2c}{2011/08/19}{Uses \cs{caption@gobble} instead of \cs{@gobble} now}
% \changes{v3.3}{2012/01/15}{Debug message added}
@@ -2551,14 +2576,14 @@
% |\caption|\-|setup[|\-|floating|\meta{type}|]{|\ldots|}| is supported.
% \item |\line|\-|width| must be set correctly.
% Usually this is done by |\@par|\-|box|\-|restore| inside |\@caption|,
-% but since we use |\@caption@box|\-|restore| we have to map this to
+% but since we use |\@caption@parbox|\-|restore| we have to map this to
% |\@par|\-|box|\-|restore| instead.
% \end{enumerate}
% \begin{macrocode}
\newcommand*\caption@floatflt[1]{%
\caption@settype{#1}%
\caption@clearmargin
- \caption@setfullparboxrestore
+ \caption@setparboxrestore{full}%
\caption@setoptions{floating#1}}%
% \end{macrocode}
% \end{macro}
@@ -3451,7 +3476,7 @@
%
% \begin{macro}{\caption@window}
% \changes{v3.1c}{2007/10/06}{Bugfix: \cs{caption@clearmargin} added}
-% Beside calling |\caption@settype| we redefine |\caption@boxrestore|
+% Beside calling |\caption@settype| we redefine |\caption@par|\-|box|\-|restore|
% (as in \package{floatflt} \& \package{picins} package support)
% and |\@makecaption| (as in \package{float} package support) here.
% \begin{macrocode}
@@ -3460,7 +3485,7 @@
\caption@setautoposition b%
\caption@settype{#1}%
\caption@clearmargin
- \caption@setfullparboxrestore}%
+ \caption@setparboxrestore{full}}%
% \end{macrocode}
% \end{macro}
%
@@ -3567,9 +3592,9 @@
% \item We use |\caption@setoptions{parpic}| so
% |\captionsetup[parpic]{|\ldots|}| is supported.
% \item |\linewidth| must be set correctly.
-% Usually this is done by |\@parboxrestore| inside |\@caption|,
-% but since we use |\@caption@boxrestore| we have to map this to
-% |\@parboxrestore| instead.
+% Usually this is done by |\@parbox|\-|restore| inside |\@caption|,
+% but since we use |\@caption@parbox|\-|restore| we have to map this to
+% |\@parbox|\-|restore| instead.
% \item The two arguments of |\caption| (|\sh@rtf@rm| \& |\capti@nt@xt|)
% should be expanded on first level so |\caption[]{|\ldots|}| and
% |\caption[|\ldots|]{}| work correctly.
@@ -3588,7 +3613,7 @@
% \else
% \captionwidth\z@ % do not use "width=" setting
% \fi
- \caption@setfullparboxrestore
+ \caption@setparboxrestore{full}%
\caption@setoptions{parpic}%
\caption@setautoposition b%
% \end{macrocode}
@@ -3905,7 +3930,7 @@
% \end{macrocode}
% \begin{macrocode}
\caption@beginex{#1}{#2}{#3}%
- \caption@boxrestore
+ \caption@parboxrestore
\caption@normalsize
\@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
\caption@end}%
@@ -3972,7 +3997,7 @@
% \begin{macrocode}
\@initisotab
\caption@beginex{#1}{#2}{#3}%
- \caption@boxrestore
+ \caption@parboxrestore
\caption@normalsize
\@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
\caption@end
diff --git a/macros/latex/contrib/caption/caption2.dtx b/macros/latex/contrib/caption/caption2.dtx
index 074dd7c630..9e6850dfe6 100644
--- a/macros/latex/contrib/caption/caption2.dtx
+++ b/macros/latex/contrib/caption/caption2.dtx
@@ -32,7 +32,7 @@
% caption-deu.tex, caption-eng.tex, caption-rus.tex.
%
% \fi
-% \CheckSum{868}
+% \CheckSum{864}
%
% \iffalse
%<*driver>
@@ -211,7 +211,7 @@
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesPackage{caption2}[2020/01/02 v2.2e Customising captions (AR)]
+\ProvidesPackage{caption2}[2020/09/28 v2.2f Customising captions (AR)]
% \end{macrocode}
%
% \changes{v2.2b}{2007/06/15}{Made obsolete warning even more annoying}
@@ -230,7 +230,7 @@
% \subsection{Loading the caption3 kernel}
%
% \begin{macrocode}
-\RequirePackage{caption3}[2019/12/31] % should be used with v1.8f or newer
+\RequirePackage{caption3}[2020/09/28] % needs v2.2a or newer
% \end{macrocode}
% We undefine user commands offered by \package{caption} but not by \package{caption2}
% since they should not be used together with \package{caption2}.
@@ -242,15 +242,25 @@
\let\DeclareCaptionSubType\@undefined
% \end{macrocode}
%
+% \begin{macro}{\captiontwo@Error}
+% \changes{v2.2f}{2020/09/28}{This macro added}
+% |\captiontwo@Error|\marg{message}\\
+% issues an error message (with code line indication).
+% \begin{macrocode}
+\newcommand*\captiontwo@Error[2][]{%
+ \PackageError{caption2}{#2}{#1\caption@@eh{caption2}}}
+% \end{macrocode}
+% \end{macro}
+%
% \subsection{Check against the regular caption package}
% \changes{v2.2}{2007/04/06}{Check against regular \package{caption} package added}
% \changes{v2.2a}{2007/04/11}{Bugfix: Usage of \cs{caption@error} replaced by \cs{PackageError}}
%
% \begin{macrocode}
\@ifpackageloaded{caption}{%
- \PackageError{caption2}{%
+ \captiontwo@Error{%
You can't use both, the (current) caption *and*\MessageBreak
- the (obsolete) caption2 package}\caption@eh
+ the (obsolete) caption2 package}%
\endinput
}{}
% \end{macrocode}
@@ -347,7 +357,9 @@
%
% \begin{macro}{\defcaptionstyle}
% \begin{macro}{\newcaptionstyle}
+% \changes{v2.2f}{2020/09/28}{Uses \cs{captiontwo@Error} instead of \cs{PackageError} now}
% \begin{macro}{\renewcaptionstyle}
+% \changes{v2.2f}{2020/09/28}{Uses \cs{captiontwo@Error} instead of \cs{PackageError} now}
% These macros will define a new caption style. \cs{newcaptionstyle} and \cs{renewcaptionstyle}
% will additionally check if the caption style already exists or not.
% \begin{macrocode}
@@ -359,7 +371,7 @@
\expandafter\ifx\csname caption@@#1\endcsname\relax
\expandafter\defcaptionstyle
\else
- \PackageError{caption2}{Caption style `#1' already defined}{\caption@eh}%
+ \captiontwo@Error{Caption style `#1' already defined}%
\expandafter\@gobbletwo
\fi
{#1}}
@@ -367,7 +379,7 @@
% \begin{macrocode}
\newcommand*\renewcaptionstyle[1]{%
\expandafter\ifx\csname caption@@#1\endcsname\relax
- \PackageError{caption2}{Caption style `#1' undefined}{\caption@eh}%
+ \captiontwo@Error{Caption style `#1' undefined}%
\expandafter\@gobbletwo
\else
\expandafter\defcaptionstyle
@@ -379,6 +391,7 @@
% \end{macro}
%
% \begin{macro}{\dummycaptionstyle}
+% \changes{v2.2f}{2020/09/28}{Uses \cs{captiontwo@Error} instead of \cs{PackageError} now}
% This macro will also define a new caption style, but a one which is based on the
% actual set caption style. Therefore you can't set a caption style made with this
% command with \cs{captionstyle} -- we check this to avoid an endless recursion.
@@ -387,11 +400,11 @@
\defcaptionstyle{#1}{%
\expandafter\ifx\csname caption@@\caption@style\expandafter\endcsname%
\csname caption@@#1\endcsname
- \PackageError{caption2}{You can't use the caption style `#1' directy}{%
- The caption style `#1' is only a dummy and does not really exists.%
- \MessageBreak You have to redefine it (with \protect\renewcaptionstyle)
- before you can select\MessageBreak it with \protect\captionstyle.
- \space\caption@eh}%
+ \captiontwo@Error
+ [The caption style `#1' is only a dummy and does not really exists.%
+ \MessageBreak You have to redefine it (with \protect\renewcaptionstyle)
+ before you can select\MessageBreak it with \protect\captionstyle.\space]%
+ {You can't use the caption style `#1' directy}%
\else
#2\usecaptionstyle\caption@style
\fi}}
@@ -399,12 +412,13 @@
% \end{macro}
%
% \begin{macro}{\captionstyle}
+% \changes{v2.2f}{2020/09/28}{Uses \cs{captiontwo@Error} instead of \cs{PackageError} now}
% \cs{captionstyle} sets the actual caption style. It includes a check if the given caption
% style is defined or not.
% \begin{macrocode}
\newcommand*\captionstyle[1]{%
\expandafter\ifx\csname caption@@#1\endcsname\relax
- \PackageError{caption2}{Undefined caption style `#1'}{\caption@eh}%
+ \captiontwo@Error{Undefined caption style `#1'}%
\else
\def\caption@style{#1}%
\fi}
@@ -824,22 +838,22 @@
% \end{macro}
%
% \begin{macro}{\usecaptionstyle}
-% First we check if we are inside a caption -- if \cs{captiontext} is undefined we are not.
-% If we are we call the appropriate caption definition.
-%
% \changes{v2.1b}{2004/04/16}{Missing percent added (and extra space removed)}
% \changes{v2.2}{2007/04/06}{\cs{let}\cs{caption@make}\cs{caption@makecaption} added}
+% \changes{v2.2f}{2020/09/28}{Uses \cs{captiontwo@Error} instead of \cs{PackageError} now}
+% First we check if we are inside a caption -- if \cs{captiontext} is undefined we are not.
+% If we are we call the appropriate caption definition.
% \begin{macrocode}
\newcommand*\usecaptionstyle[1]{%
\caption@ifundefined\captiontext{%
- \PackageError{caption2}{You can't use \protect#1
- in normal text}{The usage of \protect#1 is only
- allowed inside code declared with\MessageBreak \protect\defcaptionstyle,
- \protect\newcaptionstyle \space or \protect\renewcaptionstyle.
- \space\caption@eh}
+ \captiontwo@Error
+ [The usage of \protect#1 is only
+ allowed inside code declared with\MessageBreak \protect\defcaptionstyle,
+ \protect\newcaptionstyle \space or \protect\renewcaptionstyle.\space]%
+ {You can't use \protect#1 in normal text}%
}{%
\@ifundefined{caption@@#1}%
- {\PackageError{caption2}{Caption style `#1' undefined}{\caption@eh}}%
+ {\captiontwo@Error{Caption style `#1' undefined}}%
{\let\caption@make\caption@makecaption
\@nameuse{caption@@#1}}%
}}
@@ -1301,12 +1315,13 @@
% \end{macro}
%
% \begin{macro}{\subcapstyle}
+% \changes{v2.2f}{2020/09/28}{Uses \cs{captiontwo@Error} instead of \cs{PackageError} now}
% Analogous to \cs{captionstyle} we define \cs{subcapstyle}
% and set it (via \cs{setsubcapstyle}) to a appropriate value.
% \begin{macrocode}
\newcommand*\subcapstyle[1]{%
\expandafter\ifx\csname caption@@#1\endcsname\relax
- \PackageError{caption2}{Undefined caption style `#1'}{\caption@eh}%
+ \captiontwo@Error{Undefined caption style `#1'}%
\else
\def\caption@substyle{#1}%
\fi}
diff --git a/macros/latex/contrib/caption/caption3.dtx b/macros/latex/contrib/caption/caption3.dtx
index ea759a3c87..96b2bc8ea9 100644
--- a/macros/latex/contrib/caption/caption3.dtx
+++ b/macros/latex/contrib/caption/caption3.dtx
@@ -32,12 +32,12 @@
% caption-deu.tex, caption-eng.tex, caption-rus.tex.
%
% \fi
-% \CheckSum{3648}
+% \CheckSum{3674}
%
% \iffalse
%<*driver>
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesFile{caption3.drv}[2020/09/12 v2.1 Implementation of the caption kernel]
+\ProvidesFile{caption3.drv}[2020/10/11 v2.2 Implementation of the caption kernel]
\hbadness=9999 \newcount\hbadness \hfuzz=100pt % Make TeX shut up.
%\errorcontextlines=3
%
@@ -84,7 +84,7 @@
%
% \newcommand*\csmarg[1]{\texttt{\char`\{#1\char`\}}}
% \newcommand*\csoarg[1]{\texttt{\char`\[#1\char`\]}}
-% \newcommand*\version[2][]{\textit{v#2}}
+% \newcommand*\version[2][]{v$#2$}
%
% \GetFileInfo{caption3.drv}
% \let\docdate\filedate
@@ -117,6 +117,56 @@
% \package{subfig} packages.
% \end{abstract}
%
+% \section*{Internal commands}
+%
+% These internal commands are save to use by other packages as well
+% since their interface will not change in future releases:
+% \begin{quote}\begin{tabular}{ll}
+% Internal command & Currently used by \\
+% \hline
+% |\caption@addcontentsline| & \package{floatrow} \\
+% |\caption@fnun| & \package{floatrow} \\
+% |\caption@ifinlist| & \package{floatrow} \\
+% |\caption@iftop| & \package{keyfloat}, \package{subfig} \\
+% |\caption@make| & \package{subfig} \\
+% |\caption@@make| & \package{floatrow} \\
+% |\caption@setautoposition| & \package{bidi} \\
+% |\caption@setoptions| & \package{floatrow} \\
+% |\caption@setposition| & \package{floatrow} \\
+% |\caption@switchdefault| & \emph{none} \\
+% \end{tabular}\end{quote}
+%
+% If your package wants to use any other internal command of the \package{caption3} package,
+% please write me an e-mail so we can define a proper interface together.
+%
+% Unfortunately these internal commands are used by other packages and therefore will likely
+% not change in the future, too, but I do not support them (and maybe I will change them anyway
+% and patch the other package on-the-fly instead, at least if it's unmaintained):
+% \begin{quote}\begin{tabular}{ll}
+% Internal command & Currently used by \\
+% \hline
+% |\caption@hangindent | & \package{bidi} \\
+% |\caption@@@make| & \package{floatrow} \\
+% |\caption@@par| & \package{bidi} \\
+% |\caption@parindent| & \package{bidi} \\
+% |\caption@set@bool| & \package{floatrow} \\
+% |\caption@setfont| & \package{floatrow} \\
+% |\caption@setkeys| & \package{floatrow} \\
+% |\caption@setstyle*| & \package{floatrow} \\
+% \hline
+% |\caption@hj@|\meta{name} & \package{floatrow} \\
+% |\caption@lsep@|\meta{name} & \package{floatrow} \\
+% |\caption@lsep@default| & \package{babel-hungarian} \\
+% |\caption@sty@|\meta{name} & \package{floatrow} \\
+% \end{tabular}\end{quote}
+%
+% Furthermore the \package{floatrow} package uses the undocumented option
+% |position=a| (as abbreviation of |position=auto|).
+%
+% The \package{lwarp} package uses a lot of internal commands as well,
+% but we are working on it on the Git branch \texttt{feature/lwarp}:
+% \url{https://gitlab.com/axelsommerfeldt/caption/-/tree/feature/lwarp}
+%
% \StopEventually{}
% \clearpage
% \tableofcontents
@@ -192,17 +242,17 @@
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesPackage{caption3}[2020/09/17 v2.1b caption3 kernel (AR)]
+\ProvidesPackage{caption3}[2020/10/21 v2.2e caption3 kernel (AR)]
% \end{macrocode}
%
% \section{Generic helpers}
%
% \begin{macro}{\@nameundef}
% |\@nameundef|\marg{command name}\\
-% is the opposite to |\@namedef| which is offered by the \LaTeX\ kernel.
+% is the opposite to |\@name|\-|def| which is offered by the \LaTeX\ kernel.
% We use it to remove the definition of some commands and keyval options after
% |\begin{document}| (to save \TeX\ memory) and to remove caption options defined
-% with |\captionsetup|\oarg{type}.
+% with |\caption|\-|setup|\oarg{type}.
% \begin{macrocode}
\providecommand*\@nameundef[1]{%
\expandafter\let\csname #1\endcsname\@undefined}
@@ -223,29 +273,44 @@
% \end{macro}
%
% \begin{macro}{\bothIfFirst}
+% \changes{v2.2}{2020/09/21}{Usage of \cs{caption@prepare@bothif} added}
% \begin{macro}{\bothIfSecond}
+% \changes{v2.2}{2020/09/21}{Usage of \cs{caption@prepare@bothif} added}
% |\bothIfFirst|\marg{code no. 1}\marg{code no. 2}\\
% |\bothIfSecond|\marg{code no. 1}\marg{code no. 2}\\
% |\bothIfFirst| tests if the first argument is not empty, |\bothIfSecond|
% tests if the second argument is not empty. If yes both arguments get
% typeset, otherwise none of them.
% \begin{macrocode}
-\def\bothIfFirst#1#2{%
- \protected@edef\caption@tempa{#1}%
- \ifx\caption@tempa\@empty \else
- #1#2%
- \fi}
+\def\bothIfFirst#1#2{\caption@bothif{#1}{#1#2}}
+% \end{macrocode}
+% \begin{macrocode}
+\def\bothIfSecond#1#2{\caption@bothif{#2}{#1#2}}
% \end{macrocode}
% \begin{macrocode}
-\def\bothIfSecond#1#2{%
- \protected@edef\caption@tempa{#2}%
+\newcommand*\caption@bothif[2]{%
+ \begingroup
+ \caption@prepare@bothif
+ \protected@xdef\caption@tempa{#1}%
+ \endgroup
\ifx\caption@tempa\@empty \else
- #1#2%
+ #2%
\fi}
% \end{macrocode}
% \end{macro}
% \end{macro}
%
+% \begin{macro}{\caption@prepare@bothif}
+% \changes{v2.2}{2020/09/21}{This macro added}
+% |\caption@prepare@bothif|\\
+% re-defines anything which could disturb either |\both|\-|If|\-|First| or |\both|\-|If|\-|Second| check.
+% \begin{macrocode}
+\providecommand*\caption@prepare@bothif{}
+\g@addto@macro\caption@prepare@bothif{%
+ \let\inputencoding\@gobble}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\caption@ifundefined}
% \changes{v1.3a}{2011/08/12}{This macro added}
% \changes{v1.3b}{2011/08/18}{Made expandable}
@@ -612,16 +677,17 @@
% \changes{v1.0j}{2007/01/20}{This macro added, will now be used for errors}
% \changes{v1.0o}{2007/04/11}{Renamed from \cs{caption@error} to \cs{caption@Error}}
% \changes{v1.1b}{2007/09/18}{Usage of \cs{caption@Package} removed}
+% \changes{v2.2a}{2020/09/28}{\cs{caption@eh} renamed to \cs{caption@@eh} and revised}
% |\caption@Error|\marg{message}\\
% issues an error message (with code line indication).
% \begin{macrocode}
\newcommand*\caption@Error[1]{%
- \PackageError{caption}{#1}\caption@eh}
+ \PackageError{caption}{#1}{\caption@@eh{caption}}}
% \end{macrocode}
% \begin{macrocode}
-\newcommand*\caption@eh{%
+\newcommand*\caption@@eh[1]{%
If you do not understand this error, please take a closer look\MessageBreak
- at the documentation of the `caption' package, especially the\MessageBreak
+ at the documentation of the `#1' package, especially the\MessageBreak
section about errors.\MessageBreak\@ehc}
% \end{macrocode}
% \end{macro}
@@ -729,7 +795,7 @@
%
% \begin{macro}{\ifcaptionsetup@star}
% \changes{v1.2a}{2008/01/12}{This macro added}
-% If the starred form of |\captionsetup| is used, this will be set to |true|.
+% If the starred form of |\caption|\-|setup| is used, this will be set to |true|.
% (It will be reset to |false| at the end of |\caption@set|\-|keys|.)
% \begin{macrocode}
\newif\ifcaptionsetup@star
@@ -1225,9 +1291,12 @@
% expands to \meta{yes-code} if the \meta{value} expands to `default',
% and to \meta{no-code} otherwise.
% \begin{macrocode}
-\newcommand*\caption@ifdefault[1]{%
+\newcommand*\caption@ifdefault{\caption@ifequal{default}}
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand*\caption@ifequal[2]{%
\edef\caption@tempa{#1}%
- \def\caption@tempb{default}%
+ \edef\caption@tempb{#2}%
\ifx\caption@tempa\caption@tempb
\expandafter\@firstoftwo
\else
@@ -1296,6 +1365,24 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\SetCaptionFallback}
+% \changes{v2.2}{2020/09/21}{This macro added}
+% |\SetCaptionFallback|\marg{option}\marg{name}\\
+% sets the fallback value for the \meta{option}.
+% \begin{macrocode}
+\newcommand*\SetCaptionFallback{%
+ \caption@maparg\caption@@setfallback}
+\@onlypreamble\SetCaptionFallback
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand*\caption@@setfallback[3]{%
+ \caption@ifequal{fallback}{#3}%
+ {\caption@Error{Invalid argument for \string\SetCaptionFallback: `#3'}}% would cause an infinite loop otherwise
+ {\caption@@set{#1}{#2@fallback}{#3}}}
+\@onlypreamble\caption@@setfallback
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\caption@decl@package}
% \changes{v2.0}{2020/07/26}{This macro added}
% |\caption@decl@package|\marg{option}\marg{cmd}\oarg{package}\marg{name}\ldots\\
@@ -1529,9 +1616,9 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\caption@counter}
+% \begin{macro}{\caption@thecounter}
% \changes{v1.0n}{2007/04/03}{This counter added}
-% \changes{v1.1e}{2007/10/28}{Renamed to \cs{caption@thecounter}; \cs{caption@stepcounter} added}
+% \changes{v1.1e}{2007/10/28}{Renamed from \cs{caption@counter} to \cs{caption@thecounter}; \cs{caption@stepcounter} added}
% \changes{v1.5}{2012/04/09}{\cs{caption@stepcounter} renamed to \cs{caption@stepthecounter}}
% Internal counter.
% At the moment it will be used inside |\caption@if|\-|odd|\-|page| only.
@@ -1541,7 +1628,7 @@
% \begin{macrocode}
\newcommand*\caption@stepthecounter{%
\@tempcnta\caption@thecounter
- \advance\@tempcnta\@ne
+ \advance\@tempcnta\@ne\relax
\xdef\caption@thecounter{\the\@tempcnta}}
% \end{macrocode}
% \end{macro}
@@ -1862,8 +1949,8 @@
\colorbox{\caption@boxcolor}{%
\setlength\caption@tempdima{#1}%
\addtolength\caption@tempdima{-2\fboxsep}%
- \linewidth\caption@tempdima
- \hsize\caption@tempdima
+ \linewidth\caption@tempdima\relax
+ \hsize\caption@tempdima\relax
#2}}
\DeclareCaptionOption{boxcolor}{\def\caption@boxcolor{#1}}
\DeclareCaptionOption{boxsep}{\setlength\fboxsep{#1}}
@@ -1938,8 +2025,8 @@
The option `labelsep=\caption@labelsep@name' does not work\MessageBreak
with `format=hang'}}%
{\@hangfrom{#1#2}%
- \advance\caption@parindent\hangindent
- \advance\caption@hangindent\hangindent
+ \advance\caption@parindent\hangindent\relax
+ \advance\caption@hangindent\hangindent\relax
\caption@@par#3\par}}
% \end{macrocode}
%
@@ -1991,12 +2078,13 @@
\DeclareCaptionLabelFormat{original}{%
\caption@ifdefined\caption@original@fnum
{\caption@original@fnum}%
- {\caption@labelformat@simple{#1}{#2}}}
+ {\caption@labelformat@fallback{#1}{#2}}}
% \end{macrocode}
%
-% `default' usually maps to `original'.
+% `default' usually maps to `original' resp. `simple'.
% \begin{macrocode}
\SetCaptionDefault{labelformat}{original}
+\SetCaptionFallback{labelformat}{simple}
% \end{macrocode}
%
% \section{Label separators}
@@ -2094,8 +2182,9 @@
\DeclareCaptionOption{labelseparator}{\caption@set{labelseparator}{#1}}
% \end{macrocode}
%
-% \changes{v1.0e}{2005/06/11}{Bugfix 05-03-23: Caption label separator \opt{newline} implementation changed from \cs{newline} to \cs{\textbackslash}}
+% \changes{v1.0e}{2005/06/11}{Caption label separator \opt{newline} implementation changed from \cs{newline} to \cs{textbackslash}}
% \changes{v1.0f}{2005/08/24}{Caption label separator \opt{endash} added}
+% \changes{v1.12}{2020/05/30}{Caption label separator \opt{newline} implementation changed from \cs{textbackslash} to \cs{captionnewline}}
% There are seven pre-defined label separators, called `none', `colon', `period', `space',
% `quad', `newline', and `endash'.
% \begin{macrocode}
@@ -2105,10 +2194,35 @@
\DeclareCaptionLabelSeparator{space}{ }
\DeclareCaptionLabelSeparator*{quad}{\quad}
\DeclareCaptionLabelSeparator*{newline}{\captionnewline}
+% TODO: \DeclareCaptionLabelSeparator should detect on its own if it contains \captionnewline or not
\caption@LabelSeparatorWithNewline{newline} % does not work with "format=hang"
\DeclareCaptionLabelSeparator*{endash}{\space\textendash\space}
% \end{macrocode}
%
+% \changes{v2.2c}{2020/10/10}{Caption label separators \opt{gobble} and \opt{gobbletwo} added}
+%
+% It's a common hack to mis-use |\fnum@figure| and |\fnum@table| to replace the caption
+% label separator, for example changing the separator to a period plus space with
+% \begin{quote}
+% |\renewcommand\fnum@figure[1]{\figurename~\thefigure.}|
+% \end{quote}
+% or dropping the label and separator completely with
+% \begin{quote}
+% |\renewcommand\fnum@figure[1]{\ignorespaces}|\quad
+% \end{quote}
+% (taken from \url{http://compgroups.net/comp.text.tex/figure-without-caption/1915079}).
+%
+% We emulate the behaviour of |\@make|\-|caption| of the base document classes
+% \class{article}, \class{report}, and \class{book} in this regard (in |\caption@@@make|)
+% so these hacks still work if the \package{caption} package is loaded.
+%
+% These are the label separators used when one or two tokens after the label format
+% should be dropped, called `gobble' and `gobbletwo':
+% \begin{macrocode}
+\DeclareCaptionLabelSeparator{gobble}{ }
+\DeclareCaptionLabelSeparator{gobbletwo}{}
+% \end{macrocode}
+%
% \begin{macro}{\captionnewline}
% \changes{v1.12}{2020/05/30}{This macro added}
% \changes{v2.0}{2020/07/31}{\cs{relax} added to definition}
@@ -2358,6 +2472,15 @@
\SetCaptionDefault{textfont}{none}
% \end{macrocode}
%
+% The \package{floatrow} package uses the fonts `footfont` and `@tempa` additionally,
+% so we need to map and define the default value for them, too.
+% \begin{macrocode}
+\caption@setmapping{footfont}{font}
+\SetCaptionDefault{footfont}{none}
+\caption@setmapping{@tempa}{font}
+\SetCaptionDefault{@tempa}{none}
+% \end{macrocode}
+%
% \begin{macro}{\caption@smaller}
% |\caption@smaller|\\
% selects a font size which is smaller than the current one.
@@ -2612,9 +2735,6 @@
% \changes{v2.0}{2020/07/27}{Uses \cs{caption@set} now}
% |\caption@setposition|\marg{position}\\
% puts |\caption@position| to the right value.
-% \emph{Please do \textbf{not} use the internal macro
-% \cs{caption@position} in your own package or document, but use the
-% wrapper command \cs{caption@iftop} instead.}\par
% (Note: Since this command is used by the \package{floatrow} package as well
% its syntax should not change.)
% \begin{macrocode}
@@ -3093,7 +3213,7 @@
}
% \end{macrocode}
%
-% \subsection{The french babel option}
+% \subsection{The babel-french package}
% \changes{v1.1}{2006/05/14}{\package{frenchb} babel support added}
% \changes{v2.0}{2020/08/01}{\package{french} babel support updated}
%
@@ -3131,7 +3251,10 @@
% in order to avoid problems when |Auto|\-|Space|\-|Punctuation| is set to |false|.
%
% \begin{macrocode}
- \DeclareCaptionLabelSeparator{colon}{\autospace@beforeFDP : }%
+ \ifFB@active@punct
+ \DeclareCaptionLabelSeparator{colon}{%
+ \ifFBfrench\penalty\@M\FBcolonspace\fi : }%
+ \fi
% \end{macrocode}
%
% We switch the default label separator to `french', dependant on the switches
@@ -3215,7 +3338,7 @@
}{}
% \end{macrocode}
%
-% \subsection{The hungarian \& magyar babel option}
+% \subsection{The babel-hungarian package}
% \changes{v1.3}{2009/03/29}{\package{magyar} babel support added}
% \changes{v1.3a}{2011/08/12}{\package{magyar} babel support revised}
% \changes{v1.8b}{2018/08/26}{\package{magyar} babel support revised}
@@ -3388,84 +3511,6 @@
% \end{macrocode}
% \end{macro}
%
-% \subsection{The floatrow package}
-% \changes{v2.0}{2020/07/28}{Adaptions to the \package{floatrow} package added}
-%
-% Since the \package{floatrow} package is not maintained anymore,
-% we have to make adaptions to \thispackage~\version{2.0} here.
-% Please note that we only support the version $0.3b$ of the \package{floatrow} package,
-% so older versions do not work with this version of \thispackage, and newer
-% versions are expected to be adapted.
-%
-% \begin{macrocode}
-\caption@AtBeginDocument{%
- \def\@tempa{2008/08/02 v0.3b floatrow: float package extension}%
- \expandafter\ifx\csname ver@floatrow.sty\endcsname\@tempa
- \caption@InfoNoLine{floatrow package v0.3b is loaded}%
-% \end{macrocode}
-%
-% \begin{macro}{\captionlabel}
-% |\caption@format| needs to be expanded prior the use of |\caption@@@make|.
-% \begin{macrocode}
- \renewcommand\captionlabel[1]{{% l.559
- \def\FR@tmp{\@captype}%
- \ifnum\floatbox@depth>\@ne
- \def\FR@tmp{sub\@captype}\caption@setsubtype*{\FR@tmp}\stepcounter{\FR@tmp}%
- \fi
- \caption@format % <= This line added
- \caption@@@make{\caption@fnum\FR@tmp}{#1}}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\flrow@setstyle}
-% This patch isn't working since |\flrow@setstyle| will be used by
-% \package{floatrow} right after loading \package{caption3}.
-% For this reason we still define |\caption@sty@|\meta{name} in
-% |\Declare|\-|Caption|\-|Style| instead.
-% \begin{macrocode}
-% \renewcommand*\flrow@setstyle[1]{% l.986
-% \@ifundefined{flrow@sty@#1}%
-% {\flrow@error{Undefined float style `#1'}}%
-% {\FBstyle@reset
-% \def\flrow@capsetup{%
-% \caption@ifdecl{style}{#1}{\caption@setstyle*{#1}}{}%
-% \caption@setoptions{#1}}%
-% \flrow@esetup{\csname flrow@sty@#1\endcsname}}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\flrow@FBoAlign}
-% This patch isn't working since |\flrow@FBoAlign| will be used by
-% \package{floatrow} right after loading \package{caption3}.
-% For this reason we still define |\caption@hj@|\meta{name} in
-% |\Declare|\-|Caption|\-|Justification| instead.
-% \begin{macrocode}
-% \renewcommand*\flrow@FBoAlign[1]{% l.1168
-% \caption@ifdecl{justification}{#1}%
-% {\expandafter\let\expandafter\floatobjectset
-% \csname caption@justification@#1\endcsname}%
-% {\flrow@error{Undefined object setting `#1'}}}%
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\flrow@setFRsep}
-% This patch isn't working since |\flrow@setFRsep| will be used by
-% \package{floatrow} right after loading \package{caption3}.
-% For this reason we still define |\caption@lsep@|\meta{name} in
-% |\Declare|\-|Caption|\-|Label|\-|Separator| instead.
-% \begin{macrocode}
-% \renewcommand*\flrow@setFRsep[2]{% l.1187
-% \caption@ifdecl{labelseparator}{#2}%
-% {\@nameuse{caption@labelseparator@#2}% defines \caption@labelsep
-% \let#1\caption@labelsep}%
-% {\flrow@error{Undefined float separator `#2'}}}%
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macrocode}
- \fi}
-% \end{macrocode}
-%
% \subsection{The newfloat package}
%
% \begin{macro}{\caption@newfloat}
@@ -3626,6 +3671,7 @@
\caption@InfoNoLine{subfig package v1.3 is loaded}%
% \end{macrocode}
% \begin{macrocode}
+ \def\caption@eh{\caption@@eh{subfig}}%
\let\caption@setfloattype\@gobble
\let\@dottedxxxline\sf@NEW@dottedxxxline
\let\sf@subfloat\sf@NEW@subfloat
@@ -3670,7 +3716,7 @@
\let\sf@oldlabel=\label
\let\label=\subfloat@label
\ifmaincaptiontop\else
- \advance\@nameuse{c@\@captype}\@ne
+ \advance\@nameuse{c@\@captype}\@ne\relax
\fi
\refstepcounter{sub\@captype}%
\setcounter{sub\@captype @save}{\value{sub\@captype}}%
@@ -3857,9 +3903,9 @@
\caption@calcmargin
\caption@tempdima\captionmargin
\ifdim\captionmargin@=\z@ \else
- \caption@ifoddpage{}{\advance\caption@tempdima\captionmargin@}%
+ \caption@ifoddpage{}{\advance\caption@tempdima\captionmargin@\relax}%
\fi
- \caption@ifhmode{\advance\caption@tempdima\caption@indent}%
+ \caption@ifhmode{\advance\caption@tempdima\caption@indent\relax}%
\hspace\caption@tempdima
% \end{macrocode}
% We actually use a |\vbox| of width |\captionwidth - \caption@indent|
@@ -3868,7 +3914,7 @@
% was defined with \cs{DeclareCaptionFormat*}.}
% \begin{macrocode}
\caption@tempdima\captionwidth
- \caption@ifhmode{\advance\caption@tempdima-\caption@indent}%
+ \caption@ifhmode{\advance\caption@tempdima-\caption@indent\relax}%
\caption@parbox\caption@tempdima{%
% \end{macrocode}
% Typeset the indention (option |indention=|)\\
@@ -3890,7 +3936,7 @@
% \begin{macrocode}
\caption@tempdima\captionmargin
\ifdim\captionmargin@=\z@ \else
- \caption@ifoddpage{\advance\caption@tempdima\captionmargin@}{}%
+ \caption@ifoddpage{\advance\caption@tempdima\captionmargin@\relax}{}%
\fi
\hspace\caption@tempdima
% \end{macrocode}
@@ -3935,14 +3981,14 @@
% \end{macrocode}
% \begin{macrocode}
\ifdim\captionwidth=\z@
- \captionwidth\hsize
- \advance\captionwidth by -2\captionmargin
- \advance\captionwidth by -\captionmargin@
+ \captionwidth\hsize\relax
+ \advance\captionwidth by -2\captionmargin\relax
+ \advance\captionwidth by -\captionmargin@\relax
\else
- \captionmargin\hsize
- \advance\captionmargin by -\captionwidth
- \divide\captionmargin by 2
- \captionmargin@\z@
+ \captionmargin\hsize\relax
+ \advance\captionmargin by -\captionwidth\relax
+ \divide\captionmargin by 2\relax
+ \captionmargin@\z@\relax
\fi
% \end{macrocode}
% \begin{macrocode}
@@ -3959,9 +4005,9 @@
%
% \begin{macro}{\caption@slc}
% \changes{v1.1}{2007/06/13}{\cs{let}\cs{caption@justification}\cs{relax} added}
-% \changes{v1.1}{2007/07/29}{\cs{caption@setup}\cs{\caption@sls} added after \cs{begingroup}}
+% \changes{v1.1}{2007/07/29}{\cs{caption@setup}\cs{caption@sls} added after \cs{begingroup}}
% \changes{v1.1}{2007/07/29}{\cs{caption@calcmargin} added}
-% \changes{v1.1c}{2007/10/14}{\cs{caption@setup}\cs{\caption@opt@SingleLine} outsourced to \cs{caption@SingleLine}}
+% \changes{v1.1c}{2007/10/14}{\cs{caption@setup}\cs{caption@opt@SingleLine} outsourced to \cs{caption@SingleLine}}
% \changes{v1.3}{2010/09/04}{Split into \cs{caption@slc} and \cs{caption@@slc}}
% \changes{v1.5}{2012/12/26}{Merged into a single macro again}
% \changes{v1.5}{2013/04/14}{Usage of \cs{ifsinglelinecaption} added}
@@ -4143,18 +4189,44 @@
% \changes{v1.3}{2010/11/01}{Bugfix: If the caption text is empty, the text format will be set to \opt{simple} now}
% \changes{v1.7}{2016/02/01}{Bugfix: \cs{relax} added before \cs{caption@lsep} so the label separator will not be gobbled if the label font command ignores spaces, e.g. by usage of \cs{color}}
% \changes{v1.8}{2018/09/12}{\cs{par} replaced by \cs{caption@textend}}
+% \changes{v2.2c}{2020/10/10}{Usage of the label separators \opt{gobble} and \opt{gobbletwo} added}
+% \changes{v2.2e}{2020/10/21}{Adaptions to \package{floatrow} package added}
% |\caption@@@make|\marg{caption label}\marg{caption text}\\
% This one finally typesets the caption paragraph, without margin and indention.
% \begin{macrocode}
\newcommand\caption@@@make[2]{%
% \end{macrocode}
-% If the label is empty, we use no caption label separator.
-% \begin{macrocode}
- \sbox\@tempboxa{#1}%
+% The \package{floatrow} package uses |\caption@@@make|, too,
+% but without using |\caption@single|\-|line| or |\caption@multi|\-|line|.
+% For this reason we must expand |\caption@format| if |\caption@fmt| isn't defined yet.
+% Furthermore it uses |\caption@lfmt| as argument which was renamed to
+% |\caption@label|\-|format| in \package{caption3}\version{2.0}.
+% \begin{macrocode}
+ \ifx\caption@fmt\@undefined\caption@format\fi
+ \let\caption@lfmt\caption@labelformat
+% \end{macrocode}
+% If the label is empty, we use the label separator `none'.
+% Futhermore we use this check to determine if |#1| ends with either
+% |\@gobble|, |\@gobble|\-|two|, and/or |\ignore|\-|spaces|.
+% If yes, we use the corresponding label separator.
+% \begin{macrocode}
+ \global\def\caption@tempa{gobbletwo}%
+ \global\def\caption@tempb{}%
+ \sbox\@tempboxa{%
+ \let\caption@ignorespaces\ignorespaces
+ \def\ignorespaces{%
+ \global\def\caption@tempb{two}% "gobble" -> "gobbletwo" if \ignorespaces is used addtionally
+ \caption@ignorespaces}%
+ #1%
+ {\global\let\caption@tempa\@undefined\aftergroup\@gobble}%
+ {\global\def\caption@tempa{gobble\caption@tempb}}}%
\ifdim\wd\@tempboxa=\z@
- \caption@set{labelseparator}{none}%
+ \gdef\caption@tempa{none}%
% \@capbreakfalse
\fi
+ \ifx\caption@tempa\@undefined \else
+ \@expandtwoargs\caption@set{labelseparator}{\caption@tempa}%
+ \fi
% \end{macrocode}
% If the text is empty, we use no caption label separator, too.
% (And no text format either.)
@@ -4181,7 +4253,7 @@
{\ifcaption@star\else
\begingroup
\captionlabelfont
- #1%
+ #1\relax\relax
\endgroup
\fi}%
{\ifcaption@star\else
@@ -4385,7 +4457,7 @@
% Check if the sub-type was already defined by |\Declare|\-|Sub|\-|Type|.
% If not, define the counter and list entry.
% \begin{macrocode}
- \caption@ifin@list\caption@subtypelist{#4}%
+ \caption@ifsubtype{#4}%
{\caption@Debug{Modify subtype `#4'}}%
{\caption@Debug{New subtype `#4'}%
\newcounter{#4}[{#3}]%
@@ -4519,50 +4591,23 @@
% \end{macrocode}
% \end{macro}
%
-% Unfortunately the \class{memoir} document class resets the
-% \texttt{subfigure} resp.~\texttt{subtable} counter at the begin
-% of floating environments, i.e.~at |\@float|.
-% As a side-effect |\continued|\-|float| does not work correctly.
-% For that reason we need to introduce macros to save and restore
-% all sub-caption counters here.
-%
-% \begin{macro}{\caption@savesubcounters}
-% \changes{v1.5}{2013/05/01}{This macro added}
+% \begin{macro}{\@memresetsubcounter}
+% \changes{v1.5}{2013/05/01}{The macro \cs{caption@savesubcounters} added}
% \changes{v1.13}{2020/07/28}{Uses \cs{caption@for@list} now for iterating the list}
-% |\caption@save|\-|sub|\-|counters|\\
-% saves all sub-caption counters,
-% so they can be restored with |\caption@restore|\-|counters| later on.
-% \begin{macrocode}
-\newcommand*\caption@savesubcounters{%
- \caption@for@list\caption@subtypelist{\caption@savecounter{##1}}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\caption@savecounter}
-% \changes{v1.5}{2013/05/01}{This macro added}
-% |\caption@save|\-|counter|\marg{counter}\\
-% saves the given counter, so it can be restored with
-% |\caption@restore|\-|counters| later on.
-% \begin{macrocode}
-\newcommand*\caption@savecounter[1]{%
- \edef\caption@tempa{%
- \noexpand\l@addto@macro\noexpand\caption@restore@counters
- {\noexpand\setcounter{#1}{\number\value{#1}}}}%
- \caption@tempa}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\caption@restorecounters}
-% \changes{v1.5}{2013/05/01}{This macro added}
-% |\caption@restore|\-|counters|
-% restores all counters saved with |\caption@save|\-|counter|.
-% \begin{macrocode}
-\newcommand*\caption@restorecounters{%
- \caption@restore@counters
- \global\let\caption@restore@counters\@empty}
-% \end{macrocode}
+% \changes{v2.2b}{2020/10/06}{This stuff replaced by a patch of \cs{@memresetsubcounter}}
+% The \class{memoir} document class resets the \texttt{subfigure}
+% resp.~\texttt{subtable} counter at the begin of floating environments using
+% |\@mem|\-|reset|\-|sub|\-|counter|.
+% As a side-effect |\continued|\-|float| does not work correctly.
+% For that reason we need to patch |\@mem|\-|reset|\-|sub|\-|counter| here,
+% suppressing the counter reset if the counter was defined with
+% |\Declare|\-|Caption|\-|Sub|\-|Type|.
% \begin{macrocode}
-\newcommand*\caption@restore@counters{}
+\caption@ifdefined\@memresetsubcounter
+ {\let\caption@memresetsubcounter\@memresetsubcounter
+ \renewcommand*\@memresetsubcounter[1]{%
+ \caption@ifsubtype{sub#1}\@gobble\caption@memresetsubcounter{#1}}}%
+ {}
% \end{macrocode}
% \end{macro}
%
diff --git a/macros/latex/contrib/caption/ltcaption.dtx b/macros/latex/contrib/caption/ltcaption.dtx
index a4f75ae72a..fab8a4c05e 100644
--- a/macros/latex/contrib/caption/ltcaption.dtx
+++ b/macros/latex/contrib/caption/ltcaption.dtx
@@ -79,7 +79,7 @@
%
% \def\thispackage{the \package{ltcaption} package}
% \def\Thispackage{The \package{ltcaption} package}
-% \newcommand*\version[2][]{\textit{v#2}}
+% \newcommand*\version[2][]{v$#2$}
%
% \GetFileInfo{ltcaption.drv}
% \let\docdate\filedate
diff --git a/macros/latex/contrib/caption/subcaption.dtx b/macros/latex/contrib/caption/subcaption.dtx
index 90586d10d9..3dc8cca22e 100644
--- a/macros/latex/contrib/caption/subcaption.dtx
+++ b/macros/latex/contrib/caption/subcaption.dtx
@@ -32,7 +32,7 @@
% caption-deu.tex, caption-eng.tex, caption-rus.tex.
%
% \fi
-% \CheckSum{228}
+% \CheckSum{221}
%
% \iffalse
%<*driver>
@@ -78,7 +78,7 @@
%
\newcommand*\csmarg[1]{\texttt{\char`\{#1\char`\}}}
\newcommand*\csoarg[1]{\texttt{\char`\[#1\char`\]}}
-\newcommand*\version[2][]{$v#2$}
+\newcommand*\version[2][]{v$#2$}
%
\usepackage{marvosym}
\makeatletter
@@ -935,16 +935,26 @@
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesPackage{subcaption}[2020/08/23 v1.3g Sub-captions (AR)]
+\ProvidesPackage{subcaption}[2020/10/07 v1.3j Sub-captions (AR)]
% \end{macrocode}
%
% \subsection{Initial code}
%
% Since we base on the \package{caption} package we load it here.
% \begin{macrocode}
-\RequirePackage{caption}[2020/08/23] % needs v3.5 or newer
+\RequirePackage{caption}[2020/09/28] % needs v3.5c or newer
% \end{macrocode}
%
+% \begin{macro}{\subcaption@Error}
+% \changes{v1.3h}{2020/09/28}{This macro added}
+% |\subcaption@Error|\marg{message}\\
+% issues an error message (with code line indication).
+% \begin{macrocode}
+\newcommand*\subcaption@Error[1]{%
+ \PackageError{subcaption}{#1}{\caption@@eh{subcaption}}}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\subcaption@CheckCompatibility}
% \changes{v1.1}{2011/09/01}{Compatibility error added}
% \changes{v1.1}{2016/05/22}{The presence of \package{subfigure} or \package{subfig} will be checked \cs{AtBeginDocument}, too}
@@ -956,38 +966,29 @@
% \end{macrocode}
% \begin{macrocode}
\caption@ifcompatibility{%
- \PackageError{subcaption}%
+ \subcaption@Error
{This package does not work with\MessageBreak
caption option `compatibility=v1'}%
- {\subcaption@eh}%
\endinput}{}%
% \end{macrocode}
% \begin{macrocode}
\@ifpackageloaded{subfigure}{%
- \PackageError{subcaption}%
+ \subcaption@Error
{This package can't be used in cooperation\MessageBreak
with the subfigure package}%
- {\subcaption@eh}%
\endinput}{}%
% \end{macrocode}
% \begin{macrocode}
\@ifpackageloaded{subfig}{%
- \PackageError{subcaption}%
+ \subcaption@Error
{This package can't be used in cooperation\MessageBreak
with the subfig package}%
- {\subcaption@eh}%
\endinput}{}%
% \end{macrocode}
% \begin{macrocode}
}
% \end{macrocode}
% \begin{macrocode}
-\newcommand*\subcaption@eh{%
- If you do not understand this error, please take a closer look\MessageBreak
- at the documentation of the `subcaption' package, especially the\MessageBreak
- section about errors.\MessageBreak\@ehc}
-% \end{macrocode}
-% \begin{macrocode}
\subcaption@CheckCompatibility
\caption@AtBeginDocument{%
\subcaption@CheckCompatibility
@@ -997,29 +998,12 @@
%
% \subsection{Main code}
%
-% \changes{v1.1}{2011/10/30}{Adapted to the newfloat package}
-% We call |\Declare|\-|Caption|\-|Sub|\-|Type| for |figure|, |table|,
-% and each floating environment declared with |\Declare|\-|Floating|\-|Environment| here.
-% \begin{macrocode}
-\ForEachCaptionType{\DeclareCaptionSubType{#1}}
-% \end{macrocode}
-%
-% \begin{macro}{\newsubfloat}
-% \changes{v1.1}{2016/01/31}{Adapted to the memoir document class}
-% We re-define |\new|\-|sub|\-|float| (offered by the \package{memoir} document class),
-% so our stuff will be used instead.
-% \begin{macrocode}
-\caption@ifundefined\newsubfloat{}{%
- \renewcommand*\newsubfloat{\DeclareCaptionSubType}}
-% \end{macrocode}
-% \end{macro}
-%
% \pagebreak[3]
% \subsubsection{The \cs{subcaption} command}
%
% \begin{macro}{\subcaption}
-% \changes{v1.1}{2012/04/06}{\cs{newcommand} changed to \cs{def}
-% so it works with the \package{memoir} document class, too}
+% \changes{v1.1}{2012/04/06}{\cs{newcommand} changed to \cs{def} so it works with the \package{memoir} document class, too}
+% \changes{v1.3h}{2020/09/28}{Usage of \cs{caption@Error} replaced by \cs{subcaption@Error}}
% Without a prefacing |\set|\-|caption|\-|sub|\-|type|, |\sub|\-|caption| is some kind
% of |\caption|\-|of{sub|\-|\@cap|\-|type}|.
% \Note{Like \cs{captionof}, this command is designed to be used inside an
@@ -1028,7 +1012,7 @@
\def\subcaption{%
\caption@iftype
{\setcaptionsubtype*\caption}%
- {\caption@Error{\noexpand\subcaption outside float}%
+ {\subcaption@Error{\noexpand\subcaption outside float}%
\caption@gobble}}%
% \end{macrocode}
% But with a prefacing |\set|\-|caption|\-|sub|\-|type|, |\sub|\-|caption| is simply
@@ -1044,12 +1028,13 @@
%
% \begin{macro}{\phantomsubcaption}
% \changes{v1.1}{2011/08/17}{This macro added}
+% \changes{v1.3h}{2020/09/28}{Usage of \cs{caption@Error} replaced by \cs{subcaption@Error}}
% Same as |\phantom|\-|caption|, but for subfigures.
% \begin{macrocode}
\newcommand*\phantomsubcaption{%
\caption@iftype
{\setcaptionsubtype*\phantomcaption}%
- {\caption@Error{\noexpand\phantomsubcaption outside float}}}%
+ {\subcaption@Error{\noexpand\phantomsubcaption outside float}}}%
% \end{macrocode}
% \begin{macrocode}
\g@addto@macro\caption@subtypehook{%
@@ -1194,25 +1179,33 @@
%
% \begin{macro}{\subcaption@setrefformat}
% \changes{v1.3g}{2020/07/27}{Adapted to \package{caption3} v2.0}
+% \changes{v1.3h}{2020/09/28}{Usage of \cs{caption@Error} replaced by \cs{subcaption@Error}}
+% \changes{v1.3j}{2020/10/07}{Definition of the label formats \texttt{subsimple} and \texttt{subparens} added}
% |\subcaption@setrefformat|\marg{name}\par
% Selecting a subref format simply means saving the code (in |\subcaption@reffmt|).
% \begin{macrocode}
\newcommand*\subcaption@setrefformat[1]{%
\@ifundefined{caption@labelformat@#1}%
- {\caption@Error{Undefined label format `#1'}}%
+ {\subcaption@Error{Undefined label format `#1'}}%
{\expandafter\let\expandafter\subcaption@reffmt\csname caption@labelformat@#1\endcsname}}
% \end{macrocode}
% \begin{macrocode}
\subcaption@setrefformat{simple}
% \end{macrocode}
+% To offer a smooth transition from the \package{subfig} to the \package{subcaption} package
+% we offer the options |sub|\-|ref|\-|format=sub|\-|simple| and |sub|\-|ref|\-|format=sub|\-|parens|, too.
+% \begin{macrocode}
+\DeclareCaptionLabelFormat{subsimple}{#2}
+\DeclareCaptionLabelFormat{subparens}{(#2)}
+% \end{macrocode}
% \end{macro}
%
% \subsection{Execution of options}
%
-% We use |\caption@ExecuteOptions| and |\caption@ProcessOptions| here to add
-% the options to the `|sub|' option list instead of executing them immediately.
% \changes{v1.1}{2018/05/01}{Option \texttt{font+=smaller} changed to \texttt{size=smaller}}
% \changes{v1.3e}{2020/07/27}{Option \texttt{size=smaller} changed back to \texttt{font+=smaller}}
+% We use |\caption@Execute|\-|Options| and |\caption@Process|\-|Options| here to add
+% the options to the `|sub|' option list instead of executing them immediately.
% \begin{macrocode}
\caption@SetupOptions{subcaption}{\captionsetup[sub]{#2}}%
\caption@ExecuteOptions{subcaption}{%
@@ -1220,6 +1213,13 @@
\caption@ProcessOptions*{subcaption}
% \end{macrocode}
%
+% \changes{v1.1}{2011/10/30}{Adapted to the newfloat package}
+% We call |\Declare|\-|Caption|\-|Sub|\-|Type| for |figure|, |table|,
+% and each floating environment declared with |\Declare|\-|Floating|\-|Environment| here.
+% \begin{macrocode}
+\ForEachCaptionType{\DeclareCaptionSubType{#1}}
+% \end{macrocode}
+%
% \subsection{Bonus material}
%
% \subsubsection{The \cs{subfloat} command}
@@ -1231,32 +1231,37 @@
% \changes{v1.3a}{2019/09/01}{\cs{ignorespaces} copied from \cs{sf@@@subfloat}}
% \changes{v1.3b}{2020/01/03}{Previous definition of \cs{subfloat} will be overwritten}
% \changes{v1.3f}{2020/07/29}{Bugfix: Usage of \cs{caption@hj@default} replaced by \cs{captionbox@innerpos@default}}
+% \changes{v1.3i}{2020/09/28}{This macro will be defined with \cs{providecommand} now to preserve an original definition}
% |\subfloat|\oarg{list\_entry}\oarg{sub-caption}\marg{body}\par
% If \meta{sub-caption} is given, we map this to |\sub|\-|caption|\-|box|
% but transfer the |\label| from \meta{body} to \meta{sub-caption}.
% If not, we do the same as |\sub|\-|caption|\-|box| does, but use |\phantom|\-|caption| instead of |\caption|.
% In both cases we do a |\ignore|\-|spaces| at the end since the original implementation of |\sub|\-|float| does this, too.
% \begin{macrocode}
-\def\subfloat{%
- \@ifnextchar[\@subfloat\subfloat@}
+\caption@AtBeginDocument{\providecommand*\subfloat{%
+ \@ifnextchar[%]
+ \subcaption@subfloat
+ \subcaption@subfloat@}}
% \end{macrocode}
% \begin{macrocode}
-\long\def\@subfloat[#1]{%
- \@ifnextchar[{\@@subfloat{#1}}{\@@@subfloat\subcaptionbox{#1}}}
+\long\def\subcaption@subfloat[#1]{%
+ \@ifnextchar[%]
+ {\subcaption@@subfloat{#1}}%
+ {\subcaption@@@subfloat\subcaptionbox{#1}}}
% \end{macrocode}
% \begin{macrocode}
-\long\def\@@subfloat#1[#2]{%
- \@@@subfloat{\subcaptionbox[{#1}]}{#2}}
+\long\def\subcaption@@subfloat#1[#2]{%
+ \subcaption@@@subfloat{\subcaptionbox[{#1}]}{#2}}
% \end{macrocode}
% \begin{macrocode}
-\long\def\@@@subfloat#1#2#3{%
+\long\def\subcaption@@@subfloat#1#2#3{%
\caption@getlabel{#3}%
#1{#2\caption@thelabel}{\let\label\caption@gobble#3}%
\global\let\caption@thelabel\relax
\ignorespaces}
% \end{macrocode}
% \begin{macrocode}
-\def\subfloat@#1{%
+\def\subcaption@subfloat@#1{%
\setbox\@tempboxa\hbox{#1}%
\caption@iiiibox
\setcaptionsubtype
diff --git a/macros/latex/contrib/fgruler/fgruler.dtx b/macros/latex/contrib/fgruler/fgruler.dtx
index dd7ec0ba06..385795b7a8 100644
--- a/macros/latex/contrib/fgruler/fgruler.dtx
+++ b/macros/latex/contrib/fgruler/fgruler.dtx
@@ -21,7 +21,7 @@
\ProvidesFile{fgruler.dtx}
%</driver>
%<package>\NeedsTeXFormat{LaTeX2e}[2020/10/01]
-%<package>\ProvidesPackage{fgruler}[2020/10/22 v1.1 Package for drawing rulers on the foreground or in the text]
+%<package>\ProvidesPackage{fgruler}[2020/10/26 v1.2 Package for drawing rulers on the foreground or in the text]
%
%<*driver>
\documentclass{ltxdoc}
@@ -42,7 +42,11 @@ gobble=2,
belowskip=\bigskipamount,
basicstyle=\ttfamily,
backgroundcolor=\color{black!10},
+frame=trbl,
+framesep=3pt,
columns=fullflexible,
+xleftmargin=3.4pt,
+xrightmargin=3.4pt,
keepspaces}}{}
\newcommand{\commandinline}{\lstinline[
@@ -60,7 +64,7 @@ keepspaces]}
%
% \GetFileInfo{fgruler.sty}
%
-% \title{The {\bfseries\sffamily fgruler} package\\{\large v1.1 (2020/10/22)}}
+% \title{The {\bfseries\sffamily fgruler} package\\{\large v1.2 (2020/10/26)}}
% \author{Tibor T\'{o}m\'{a}cs\\{\normalsize\url{tomacs.tibor@uni-eszterhazy.hu}}}
% \date{}
% \maketitle
@@ -113,41 +117,42 @@ keepspaces]}
% \commandinline|upperright| Origin: upper right corner. Directions: down and left.\\
% \commandinline|lowerleft | Origin: lower left corner. Directions: up and right.\\
% \commandinline|lowerright| Origin: lower right corner. Directions: up and left.\\
-% \commandinline|none | Not drawing ruler.
+% \commandinline|none | Not drawing ruler.\\
+% \commandinline|user | Each \commandinline|!<unit>!|--\commandinline|!<type name>!| pair activates an \commandinline|\fgruler@!<unit>!@!<type name>!@fg| command. You can control the effect of this option by redefining the \commandinline|\fgruler@!<unit>!@user@fg| commands, which are empty in the default case. (See \ref{example:user1}, \ref{example:user2} and \ref{example:user3} examples.)
% \end{description}
%
% \item\commandinline|hshift=!<length>!|\\
% Horizontal shift.
-% The shift direction is right, if the \commandinline|!<type name>!| is \verb|upperleft| or \verb|lowerleft|, otherwise it is left.
-% Default: \verb|hshift=0cm|
+% The shift direction is right, if the \commandinline|!<type name>!| is \verb|upperleft| or \verb|lowerleft|, otherwise it is left.\\
+% Default: \verb|hshift=0cm|.\\ The \commandinline|!<length>!| is saved in \commandinline|\fgruler@hshift|.
%
% \item\commandinline|vshift=!<length>!|\\
% Vertical shift.
-% The shift direction is down, if the \commandinline|!<type name>!| is \verb|upperleft| or \verb|upperright|, otherwise it is up.
-% Default: \verb|vshift=0cm|
+% The shift direction is down, if the \commandinline|!<type name>!| is \verb|upperleft| or \verb|upperright|, otherwise it is up.\\
+% Default: \verb|vshift=0cm|.\\ The \commandinline|!<length>!| is saved in \commandinline|\fgruler@vshift|.
%
% \item\commandinline|color=!<color name>!|\\
-% Ruler color (see \texttt{xcolor} package).
-% Default: \verb|color=black|
+% Ruler color (see \texttt{xcolor} package).\\
+% Default: \verb|color=black|.\\ The \commandinline|!<color name>!| is saved in \commandinline|\fgruler@color|.
%
% \item\commandinline|numsep=!<length>!|\\
-% Separation between number and ruler.
-% Default: \verb|numsep=3pt|
+% Separation between number and ruler.\\
+% Default: \verb|numsep=3pt|.\\ The \commandinline|!<length>!| is saved in \commandinline|\fgruler@numsep|.
%
% \item\commandinline|markthick=!<length>!|\\
-% Mark thickness.
-% Default: \verb|markthick=0.4pt|
+% Mark thickness.\\
+% Default: \verb|markthick=0.4pt|.\\ The \commandinline|!<length>!| is saved in \commandinline|\fgruler@markthick|.
%
% \item\commandinline|marklength=!<length>!|\\
% Mark length at integer units:
-% {\fgrulernoborderline\fgrulercaptioncm{}\fgrulerthickcm{}{}{1pt}\fgrulercolorcm{}{}{red}\ruler{rightup}{3cm}}\quad
-% Default: \verb|marklength=2mm|\\
+% {\fgrulernoborderline\fgrulercaptioncm{}\fgrulerthickcm{}{}{1pt}\fgrulercolorcm{}{}{red}\ruler{rightup}{3cm}}\\
+% Default: \verb|marklength=2mm|.\\ The \commandinline|!<length>!| is saved in \commandinline|\fgruler@marklength|.\\
% See the length of the other marks in Section \ref{sec:additional}.
%
% \item\commandinline|numfont=!<font type>!|\\
-% Number font type.
+% Number font type.\\
% You can use this option only in \verb|\setfgruler| command.\\
-% Default: \verb|numfont=\scriptsize\sffamily|
+% Default: \verb|numfont=\scriptsize\sffamily|.\\ The \commandinline|!<font type>!| is saved in \commandinline|\fgruler@numfont|.
%
% \item\commandinline|showframe| or \commandinline|showframe=true|\\
% It draws visible frames for the text and margin area, and lines for the head and foot.
@@ -521,66 +526,166 @@ keepspaces]}
% \documentclass{article}
% \usepackage{fgruler}
% \begin{document}
-% % ...
+% ...
% \end{document}
% \end{examplelst}
%
% \newpage\fgrulerreset
-% \subsection{The showframe option}
+% \subsection{The `showframe' option}
% \setfgruler{color=red,showframe}
% \begin{examplelst}
% \documentclass{article}
% \usepackage[color=red,showframe]{fgruler}
% \begin{document}
-% % ...
+% ...
% \end{document}
% \end{examplelst}
%
% \newpage\fgrulerreset
-% \subsection{Shifting}
+% \subsection{Shifting in default case}
% \setfgruler{hshift=1cm,vshift=2cm}
% \begin{examplelst}
% \documentclass{article}
% \usepackage[hshift=1cm,vshift=2cm]{fgruler}
% \begin{document}
-% % ...
+% ...
% \end{document}
% \end{examplelst}
%
% \newpage\fgrulerreset
-% \subsection{Shifting in case type=upperright}
+% \subsection{Shifting in case `type=upperright' option}
% \setfgruler{type=upperright,hshift=1cm,vshift=2cm}
% \begin{examplelst}
% \documentclass{article}
% \usepackage[type=upperright,hshift=1cm,vshift=2cm]{fgruler}
% \begin{document}
-% % ...
+% ...
% \end{document}
% \end{examplelst}
%
% \newpage\fgrulerreset
-% \subsection{Shifting in case type=lowerleft}
+% \subsection{Shifting in case `type=lowerleft' option}
% \setfgruler{type=lowerleft,hshift=1cm,vshift=2cm}
% \begin{examplelst}
% \documentclass{article}
% \usepackage[type=lowerleft,hshift=1cm,vshift=2cm]{fgruler}
% \begin{document}
-% % ...
+% ...
% \end{document}
% \end{examplelst}
%
% \newpage\fgrulerreset
-% \subsection{Shifting in case type=lowerright}
+% \subsection{Shifting in case `type=lowerright' option}
% \setfgruler{type=lowerright,hshift=1cm,vshift=2cm}
% \begin{examplelst}
% \documentclass{article}
% \usepackage[type=lowerright,hshift=1cm,vshift=2cm]{fgruler}
% \begin{document}
-% % ...
+% ...
+% \end{document}
+% \end{examplelst}
+%
+% \newpage\fgrulerreset
+% \subsection{An example for the `type=user' option}\label{example:user1}
+% \setfgruler{type=none}
+% \begin{examplelst}
+% \documentclass{article}
+% \usepackage[type=user]{fgruler}
+% \makeatletter
+% \def\fgruler@cm@user@fg{%
+% \ifodd\value{page}\fgruler@cm@upperright@fg%
+% \else\fgruler@cm@upperleft@fg\fi}
+% \def\fgruler@in@user@fg{%
+% \ifodd\value{page}\fgruler@in@upperright@fg%
+% \else\fgruler@in@upperleft@fg\fi}
+% \makeatother
+% \begin{document}
+% ...
% \end{document}
% \end{examplelst}
+% In this case the \texttt{type=upperright} option will be activated, if the page number is odd. Otherwise \texttt{type=upperleft} will be activated.
%
% \newpage\fgrulerreset
+% \subsection{An other example for the `type=user' option}\label{example:user2}
+% \setfgruler{type=user,color=red}
+%\makeatletter
+%\newlength{\fgruler@tempdim}
+%\renewcommand{\fgruler@cm@user@fg}{\AtTextLowerLeft{\ignorespaces%
+%\settowidth{\fgruler@tempdim}{\ruler{downleft}{\textheight}}%
+%\rulerparams{}{}{\fgruler@color}{}{}%
+%\put(-\fgruler@tempdim,0){\ignorespaces%
+%\rulernorotatenum\fgrulercaptioncm{}\ruler{downleft}{\textheight}}%
+%\put(0,\textheight){\ignorespaces\ruler{rightup}{\textwidth}}}}
+%\makeatother
+% \begin{examplelst}
+% \documentclass{article}
+% \usepackage[type=user,color=red]{fgruler}
+% \makeatletter
+% \newlength{\fgruler@tempdim}
+% \newcommand{\fgruler@user}[1]{%
+% \AtTextLowerLeft{% See eso-pic package!
+% \rulerparams{\fgruler@markthick}{\fgruler@numfont}{\fgruler@color}%
+% {\fgruler@marklength}{\fgruler@numsep}%
+% \settowidth{\fgruler@tempdim}{\ruler[#1]{downleft}{\textheight}}%
+% \put(-\fgruler@tempdim,0){%
+% \rulernorotatenum%
+% \fgrulercaptioncm{}%
+% \fgrulercaptionin{}%
+% \ruler[#1]{downleft}{\textheight}%
+% }%
+% \put(0,\textheight){%
+% \ruler[#1]{rightup}{\textwidth}%
+% }%
+% }%
+% }
+% \renewcommand{\fgruler@cm@user@fg}{\fgruler@user{cm}}
+% \renewcommand{\fgruler@in@user@fg}{\fgruler@user{in}}
+% \makeatother
+% \begin{document}
+% ...
+% \end{document}
+% \end{examplelst}
+% This code places rulers at the left and the top border of the body. In this case the \texttt{hshift} and \texttt{vshift} options don't work.
+%
+% \newpage\fgrulerreset
+% \subsection{The third example for the `type=user' option}\label{example:user3}
+% \setfgruler{type=user,color=blue}
+%\makeatletter
+%\renewcommand{\fgruler@cm@user@fg}{\fgruler@cm@upperleft@fg\AtTextLowerLeft{\ignorespaces%
+%\rulerparams{}{}{\fgruler@color}{}{}%
+%\put(\textwidth,0){\ignorespaces%
+%\rulernorotatenum\fgrulercaptioncm{}\ruler{downright}{\textheight}}%
+%\put(0,\textheight){\ignorespaces\ruler{rightup}{\textwidth}}}}
+%\makeatother
+% \begin{examplelst}
+% \documentclass{article}
+% \usepackage[type=user,color=blue]{fgruler}
+% \makeatletter
+% \newcommand{\fgruler@user}[1]{%
+% \AtTextLowerLeft{% See eso-pic package!
+% \rulerparams{\fgruler@markthick}{\fgruler@numfont}{\fgruler@color}%
+% {\fgruler@marklength}{\fgruler@numsep}%
+% \put(\textwidth,0){%
+% \rulernorotatenum%
+% \fgrulercaptioncm{}%
+% \fgrulercaptionin{}%
+% \ruler[#1]{downright}{\textheight}%
+% }%
+% \put(0,\textheight){%
+% \ruler[#1]{rightup}{\textwidth}%
+% }%
+% }%
+% }
+% \renewcommand{\fgruler@cm@user@fg}{\fgruler@cm@upperleft@fg\fgruler@user{cm}}
+% \renewcommand{\fgruler@in@user@fg}{\fgruler@in@upperleft@fg\fgruler@user{in}}
+% \makeatother
+% \begin{document}
+% ...
+% \end{document}
+% \end{examplelst}
+% In this code the effect of \texttt{type=user} is similar to \texttt{type=upperleft}, but it places further rulers at the right and the top border of the body.
+%
+% \newpage\fgrulerreset
% \subsection{Rulers on the foreground of a given page, and in text}
% \setfgruler{color=blue}
% \fgruler{upperleft}{1cm}{1.5cm}
@@ -768,6 +873,37 @@ keepspaces]}
% \end{document}
% \end{examplelst}
%
+% \newpage\fgrulerreset
+% \subsection{A new square ruler}
+% \setfgruler{type=none}
+%
+% \makeatletter
+% \newcommand{\usersquareruler}[2]{
+% \begin{picture}(#1+1em+\fgruler@marklength,#2+1em+\fgruler@marklength)
+% {\fgrulercaptioncm{}
+% \ruler{downleft}{#2}}
+% \put(0,#2){\ruler{rightup}{#1}}
+% \end{picture}}
+% \makeatother
+% \usersquareruler{3cm}{5cm}
+%
+% \bigskip
+% \begin{examplelst}
+% \documentclass{article}
+% \usepackage[type=none]{fgruler}
+% \makeatletter
+% \newcommand{\usersquareruler}[2]{%
+% \begin{picture}(#1+1em+\fgruler@marklength,#2+1em+\fgruler@marklength)%
+% {\fgrulercaptioncm{}%
+% \ruler{downleft}{#2}}%
+% \put(0,#2){\ruler{rightup}{#1}}%
+% \end{picture}}
+% \makeatother
+% \begin{document}
+% \usersquareruler{3cm}{5cm}
+% \end{document}
+% \end{examplelst}
+%
% \StopEventually
%
% \begin{macrocode}
@@ -833,7 +969,8 @@ keepspaces]}
\def\fgruler@check{lowerleft}\ifx\fgruler@type\fgruler@check\else%
\def\fgruler@check{lowerright}\ifx\fgruler@type\fgruler@check\else%
\def\fgruler@check{none}\ifx\fgruler@type\fgruler@check\else%
-\@latexerr{Undefined type: \fgruler@type\space(Defined types: upperleft, upperright, lowerleft, lowerright, none)}{}\fi\fi\fi\fi\fi%
+\def\fgruler@check{user}\ifx\fgruler@type\fgruler@check\else%
+\@latexerr{Undefined type: \fgruler@type\space(Defined types: upperleft, upperright, lowerleft, lowerright, user, none)}{}\fi\fi\fi\fi\fi\fi%
\def\fgruler@output{\csname fgruler@\fgruler@unit @\fgruler@type @fg\endcsname}}
\def\fgrulerratiocm#1#2{%
@@ -902,10 +1039,13 @@ keepspaces]}
\def\setfgruler#1{\setkeys{fgruler}{#1}\fgruler@activate@type\ignorespaces}
+\newdimen\fgruler@tempdima
+\newdimen\fgruler@tempdimb
+
\newcommand\fgruler@div[2]{%
-\@tempdima=#1\relax\@tempdimb=\unitlength\relax
-\@tempdimb=#2\@tempdimb\divide\@tempdima by \@tempdimb
-\@tempcnta\@tempdima\advance\@tempcnta\@ne}
+\fgruler@tempdima=#1\relax\fgruler@tempdimb=\unitlength\relax
+\fgruler@tempdimb=#2\fgruler@tempdimb\divide\fgruler@tempdima by \fgruler@tempdimb
+\@tempcnta\fgruler@tempdima\advance\@tempcnta\@ne}
\def\fgruler@check@param#1#2{%
\def\fgruler@param{#1}%
@@ -970,8 +1110,6 @@ keepspaces]}
\def\fgruler@ifodd#1{\ifodd\value{fgrulernum}#1\fi\stepcounter{fgrulernum}}
-\def\fgruler@lentounit#1{\strip@pt\dimexpr#1*\p@/\unitlength}
-
\def\fgrulerstartnum#1{\def\fgruler@startnum{#1}\ignorespaces}
\def\fgruler@startnum{0}
@@ -1048,8 +1186,7 @@ keepspaces]}
\iffgruler@nonefgrulers
-\renewcommand{\fgruler}[4][cm]{}
-\providecommand{\AtPageLowerLeft}[1]{#1}
+\renewcommand{\fgruler}[4][]{}
\else
@@ -1061,26 +1198,26 @@ keepspaces]}
\fgruler@rulercolor%
\fgruler@markthickness%
\AtPageLowerLeft{%
- \framebox(\fgruler@lentounit{\paperwidth},\fgruler@lentounit{\paperheight}){}}%
+ \framebox(\paperwidth,\paperheight){}}%
\AtTextLowerLeft{%
- \framebox(\fgruler@lentounit{\textwidth},\fgruler@lentounit{\textheight}){}}%
+ \framebox(\textwidth,\textheight){}}%
\AtTextUpperLeft{%
- \put(0,\fgruler@lentounit{\headsep}){%
- \framebox(\fgruler@lentounit{\textwidth},\fgruler@lentounit{\headheight}){}}}%
+ \put(0,\headsep){%
+ \framebox(\textwidth,\headheight){}}}%
\AtTextLowerLeft{%
- \put(0,\fgruler@lentounit{-\footskip}){%
- \line(1,0){\fgruler@lentounit{\textwidth}}}}%
+ \put(0,-\footskip){%
+ \line(1,0){\textwidth}}}%
\AtTextLowerLeft{%
- \@tempdima=\textwidth\advance\@tempdima\marginparsep%
+ \fgruler@tempdima=\textwidth\advance\fgruler@tempdima\marginparsep%
\if@twoside
\ifodd\c@page\else
\if@mparswitch
- \@tempdima=-\marginparsep\advance\@tempdima-\marginparwidth
+ \fgruler@tempdima=-\marginparsep\advance\fgruler@tempdima-\marginparwidth
\fi
\fi
\fi
- \put(\fgruler@lentounit{\@tempdima},0)%
- {\framebox(\fgruler@lentounit{\marginparwidth},\fgruler@lentounit{\textheight}){}}%
+ \put(\fgruler@tempdima,0)%
+ {\framebox(\marginparwidth,\textheight){}}%
}%
\endgroup
}
@@ -1092,8 +1229,7 @@ keepspaces]}
\ESO@MEMOIR@corr
\put(\ESO@tempdima,\ESO@tempdimb){%
\iffgruler@showframe\fgruler@frame\fi%
- \fgruler@output%
- \fgruler@output@%
+ \fgruler@output\fgruler@output@%
\global\let\fgruler@output@\@empty%
}%
}%
@@ -1101,8 +1237,7 @@ keepspaces]}
\AddToHook{shipout/foreground}{%
\put(0,\ESO@yoffsetI){%
\iffgruler@showframe\fgruler@frame\fi%
- \fgruler@output%
- \fgruler@output@%
+ \fgruler@output\fgruler@output@%
\global\let\fgruler@output@\@empty%
}%
}%
@@ -1119,23 +1254,23 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(1,0){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(0,-1){\fgruler@lentounit{\fgruler@cm@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(1,0){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(0,-1){\fgruler@cm@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{5}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(5,0){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(0,-1){\fgruler@lentounit{\fgruler@cm@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(5,0){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(0,-1){\fgruler@cm@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{10}%
-\multiput(0,0)(10,0){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(0,-1){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(1,0){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(10,0){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(0,-1){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(1,0){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(10,-\fgruler@lentounit{\fgruler@sep})(10,0){\@tempdima}{\makebox(0,0)[t]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
+\multiput(10,-\fgruler@sep)(10,0){\fgruler@tempdima}{\makebox(0,0)[t]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
\def\fgruler@cm@rightdown@#1{%
\setlength{\unitlength}{1mm}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{\fgruler@width})(0,-\fgruler@lentounit{\fgruler@width})%
+\begin{picture}(#1,\fgruler@width)(0,-\fgruler@width)%
\fgruler@cm@rightdown{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(0,-\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}%
-\ifdim#1>.5cm\put(5,-\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@cm}}\fi%
+\put(0,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}%
+\ifdim#1>.5cm\put(5,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@cm}}\fi%
\end{picture}}
\def\fgruler@cm@rightdown@@#1{\leavevmode\hbox{}\lower\fgruler@width\hbox{\fgruler@cm@rightdown@{#1}}}
@@ -1146,29 +1281,29 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(1,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(0,-1){\fgruler@lentounit{\fgruler@in@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(1,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(0,-1){\fgruler@in@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{2}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(2,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(0,-1){\fgruler@lentounit{\fgruler@in@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(2,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(0,-1){\fgruler@in@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{4}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(4,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(0,-1){\fgruler@lentounit{\fgruler@in@ratio@iii\fgruler@marklth}}}}%
+\multiput(0,0)(4,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(0,-1){\fgruler@in@ratio@iii\fgruler@marklth}}}%
\fgruler@div{#1}{8}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(8,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(0,-1){\fgruler@lentounit{\fgruler@in@ratio@iv\fgruler@marklth}}}}%
+\multiput(0,0)(8,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(0,-1){\fgruler@in@ratio@iv\fgruler@marklth}}}%
\fgruler@div{#1}{16}%
-\multiput(0,0)(16,0){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(0,-1){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(1,0){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(16,0){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(0,-1){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(1,0){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(16,-\fgruler@lentounit{\fgruler@sep})(16,0){\@tempdima}{\makebox(0,0)[t]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
+\multiput(16,-\fgruler@sep)(16,0){\fgruler@tempdima}{\makebox(0,0)[t]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
\def\fgruler@in@rightdown@#1{%
\setlength{\unitlength}{.0625in}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{\fgruler@width})(0,-\fgruler@lentounit{\fgruler@width})%
+\begin{picture}(#1,\fgruler@width)(0,-\fgruler@width)%
\fgruler@in@rightdown{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(0,-\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}%
-\ifdim#1>.5in\put(8,-\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@in}}\fi%
+\put(0,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}%
+\ifdim#1>.5in\put(8,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@in}}\fi%
\end{picture}}
\def\fgruler@in@rightdown@@#1{\leavevmode\hbox{}\lower\fgruler@width\hbox{\fgruler@in@rightdown@{#1}}}
@@ -1179,23 +1314,23 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(1,0){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(0,1){\fgruler@lentounit{\fgruler@cm@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(1,0){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(0,1){\fgruler@cm@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{5}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(5,0){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(0,1){\fgruler@lentounit{\fgruler@cm@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(5,0){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(0,1){\fgruler@cm@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{10}%
-\multiput(0,0)(10,0){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(0,1){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(1,0){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(10,0){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(0,1){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(1,0){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(10,\fgruler@lentounit{\fgruler@sep})(10,0){\@tempdima}{\makebox(0,0)[b]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
+\multiput(10,\fgruler@sep)(10,0){\fgruler@tempdima}{\makebox(0,0)[b]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
\def\fgruler@cm@rightup@#1{%
\setlength{\unitlength}{1mm}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{\fgruler@width})%
+\begin{picture}(#1,\fgruler@width)%
\fgruler@cm@rightup{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(0,\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}%
-\ifdim#1>.5cm\put(5,\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@cm}}\fi%
+\put(0,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}%
+\ifdim#1>.5cm\put(5,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@cm}}\fi%
\end{picture}}
\def\fgruler@cm@rightup@@#1{\leavevmode\hbox{}\lower\fgruler@width\hbox{\fgruler@cm@rightup@{#1}}}
@@ -1206,29 +1341,29 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(1,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(0,1){\fgruler@lentounit{\fgruler@in@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(1,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(0,1){\fgruler@in@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{2}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(2,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(0,1){\fgruler@lentounit{\fgruler@in@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(2,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(0,1){\fgruler@in@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{4}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(4,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(0,1){\fgruler@lentounit{\fgruler@in@ratio@iii\fgruler@marklth}}}}%
+\multiput(0,0)(4,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(0,1){\fgruler@in@ratio@iii\fgruler@marklth}}}%
\fgruler@div{#1}{8}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(8,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(0,1){\fgruler@lentounit{\fgruler@in@ratio@iv\fgruler@marklth}}}}%
+\multiput(0,0)(8,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(0,1){\fgruler@in@ratio@iv\fgruler@marklth}}}%
\fgruler@div{#1}{16}%
-\multiput(0,0)(16,0){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(0,1){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(1,0){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(16,0){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(0,1){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(1,0){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(16,\fgruler@lentounit{\fgruler@sep})(16,0){\@tempdima}{\makebox(0,0)[b]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
+\multiput(16,\fgruler@sep)(16,0){\fgruler@tempdima}{\makebox(0,0)[b]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
\def\fgruler@in@rightup@#1{%
\setlength{\unitlength}{.0625in}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{\fgruler@width})%
+\begin{picture}(#1,\fgruler@width)%
\fgruler@in@rightup{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(0,\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}%
-\ifdim#1>.5in\put(8,\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@in}}\fi%
+\put(0,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}%
+\ifdim#1>.5in\put(8,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@in}}\fi%
\end{picture}}
\def\fgruler@in@rightup@@#1{\leavevmode\hbox{}\lower\fgruler@width\hbox{\fgruler@in@rightup@{#1}}}
@@ -1239,23 +1374,23 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(-1,0){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(0,-1){\fgruler@lentounit{\fgruler@cm@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(-1,0){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(0,-1){\fgruler@cm@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{5}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(-5,0){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(0,-1){\fgruler@lentounit{\fgruler@cm@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(-5,0){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(0,-1){\fgruler@cm@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{10}%
-\multiput(0,0)(-10,0){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(0,-1){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(-1,0){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(-10,0){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(0,-1){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(-1,0){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(-10,-\fgruler@lentounit{\fgruler@sep})(-10,0){\@tempdima}{\makebox(0,0)[t]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
+\multiput(-10,-\fgruler@sep)(-10,0){\fgruler@tempdima}{\makebox(0,0)[t]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
\def\fgruler@cm@leftdown@#1{%
\setlength{\unitlength}{1mm}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{\fgruler@width})(-\fgruler@lentounit{#1},-\fgruler@lentounit{\fgruler@width})%
+\begin{picture}(#1,\fgruler@width)(-#1,-\fgruler@width)%
\fgruler@cm@leftdown{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(0,-\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}%
-\ifdim#1>.5cm\put(-5,-\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@cm}}\fi%
+\put(0,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}%
+\ifdim#1>.5cm\put(-5,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@cm}}\fi%
\end{picture}}
\def\fgruler@cm@leftdown@@#1{\leavevmode\hbox{}\lower\fgruler@width\hbox{\fgruler@cm@leftdown@{#1}}}
@@ -1266,29 +1401,29 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(-1,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(0,-1){\fgruler@lentounit{\fgruler@in@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(-1,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(0,-1){\fgruler@in@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{2}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(-2,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(0,-1){\fgruler@lentounit{\fgruler@in@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(-2,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(0,-1){\fgruler@in@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{4}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(-4,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(0,-1){\fgruler@lentounit{\fgruler@in@ratio@iii\fgruler@marklth}}}}%
+\multiput(0,0)(-4,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(0,-1){\fgruler@in@ratio@iii\fgruler@marklth}}}%
\fgruler@div{#1}{8}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(-8,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(0,-1){\fgruler@lentounit{\fgruler@in@ratio@iv\fgruler@marklth}}}}%
+\multiput(0,0)(-8,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(0,-1){\fgruler@in@ratio@iv\fgruler@marklth}}}%
\fgruler@div{#1}{16}%
-\multiput(0,0)(-16,0){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(0,-1){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(-1,0){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(-16,0){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(0,-1){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(-1,0){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(-16,-\fgruler@lentounit{\fgruler@sep})(-16,0){\@tempdima}{\makebox(0,0)[t]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
+\multiput(-16,-\fgruler@sep)(-16,0){\fgruler@tempdima}{\makebox(0,0)[t]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
\def\fgruler@in@leftdown@#1{%
\setlength{\unitlength}{.0625in}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{\fgruler@width})(-\fgruler@lentounit{#1},-\fgruler@lentounit{\fgruler@width})%
+\begin{picture}(#1,\fgruler@width)(-#1,-\fgruler@width)%
\fgruler@in@leftdown{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(0,-\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}%
-\ifdim#1>.5in\put(-8,-\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@in}}\fi%
+\put(0,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}%
+\ifdim#1>.5in\put(-8,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@in}}\fi%
\end{picture}}
\def\fgruler@in@leftdown@@#1{\leavevmode\hbox{}\lower\fgruler@width\hbox{\fgruler@in@leftdown@{#1}}}
@@ -1299,23 +1434,23 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(-1,0){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(0,1){\fgruler@lentounit{\fgruler@cm@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(-1,0){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(0,1){\fgruler@cm@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{5}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(-5,0){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(0,1){\fgruler@lentounit{\fgruler@cm@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(-5,0){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(0,1){\fgruler@cm@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{10}%
-\multiput(0,0)(-10,0){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(0,1){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(-1,0){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(-10,0){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(0,1){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(-1,0){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(-10,\fgruler@lentounit{\fgruler@sep})(-10,0){\@tempdima}{\makebox(0,0)[b]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
+\multiput(-10,\fgruler@sep)(-10,0){\fgruler@tempdima}{\makebox(0,0)[b]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
\def\fgruler@cm@leftup@#1{%
\setlength{\unitlength}{1mm}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{\fgruler@width})(-\fgruler@lentounit{#1},0)%
+\begin{picture}(#1,\fgruler@width)(-#1,0)%
\fgruler@cm@leftup{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(0,\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}%
-\ifdim#1>.5cm\put(-5,\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@cm}}\fi%
+\put(0,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}%
+\ifdim#1>.5cm\put(-5,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@cm}}\fi%
\end{picture}}
\def\fgruler@cm@leftup@@#1{\leavevmode\hbox{}\lower\fgruler@width\hbox{\fgruler@cm@leftup@{#1}}}
@@ -1326,29 +1461,29 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(-1,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(0,1){\fgruler@lentounit{\fgruler@in@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(-1,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(0,1){\fgruler@in@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{2}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(-2,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(0,1){\fgruler@lentounit{\fgruler@in@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(-2,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(0,1){\fgruler@in@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{4}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(-4,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(0,1){\fgruler@lentounit{\fgruler@in@ratio@iii\fgruler@marklth}}}}%
+\multiput(0,0)(-4,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(0,1){\fgruler@in@ratio@iii\fgruler@marklth}}}%
\fgruler@div{#1}{8}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(-8,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(0,1){\fgruler@lentounit{\fgruler@in@ratio@iv\fgruler@marklth}}}}%
+\multiput(0,0)(-8,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(0,1){\fgruler@in@ratio@iv\fgruler@marklth}}}%
\fgruler@div{#1}{16}%
-\multiput(0,0)(-16,0){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(0,1){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(-1,0){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(-16,0){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(0,1){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(-1,0){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(-16,\fgruler@lentounit{\fgruler@sep})(-16,0){\@tempdima}{\makebox(0,0)[b]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
+\multiput(-16,\fgruler@sep)(-16,0){\fgruler@tempdima}{\makebox(0,0)[b]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}
\def\fgruler@in@leftup@#1{%
\setlength{\unitlength}{.0625in}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{\fgruler@width})(-\fgruler@lentounit{#1},0)%
+\begin{picture}(#1,\fgruler@width)(-#1,0)%
\fgruler@in@leftup{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(0,\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}%
-\ifdim#1>.5in\put(-8,\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@in}}\fi%
+\put(0,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}%
+\ifdim#1>.5in\put(-8,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@in}}\fi%
\end{picture}}
\def\fgruler@in@leftup@@#1{\leavevmode\hbox{}\lower\fgruler@width\hbox{\fgruler@in@leftup@{#1}}}
@@ -1359,23 +1494,23 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,-1){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(1,0){\fgruler@lentounit{\fgruler@cm@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(0,-1){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(1,0){\fgruler@cm@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{5}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,-5){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(1,0){\fgruler@lentounit{\fgruler@cm@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(0,-5){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(1,0){\fgruler@cm@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{10}%
-\multiput(0,0)(0,-10){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(1,0){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(0,-1){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(0,-10){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(1,0){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(0,-1){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(\fgruler@lentounit{\fgruler@sep},-10)(0,-10){\@tempdima}{\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
+\multiput(\fgruler@sep,-10)(0,-10){\fgruler@tempdima}{\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
\def\fgruler@cm@downright@#1{%
\setlength{\unitlength}{1mm}%
-\begin{picture}(\fgruler@lentounit{\fgruler@width},\fgruler@lentounit{#1})(0,-\fgruler@lentounit{#1})%
+\begin{picture}(\fgruler@width,#1)(0,-#1)%
\fgruler@cm@downright{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(\fgruler@lentounit{\fgruler@sep},0){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum}}}%
-\ifdim#1>.5cm\put(\fgruler@lentounit{\fgruler@sep},-5){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\fgruler@caption@cm}}}\fi%
+\put(\fgruler@sep,0){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum}}}%
+\ifdim#1>.5cm\put(\fgruler@sep,-5){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\fgruler@caption@cm}}}\fi%
\end{picture}}
\def\fgruler@cm@downright@@#1{\leavevmode\hbox{}\lower#1\hbox{\fgruler@cm@downright@{#1}}}
@@ -1386,29 +1521,29 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,-1){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(1,0){\fgruler@lentounit{\fgruler@in@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(0,-1){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(1,0){\fgruler@in@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{2}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,-2){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(1,0){\fgruler@lentounit{\fgruler@in@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(0,-2){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(1,0){\fgruler@in@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{4}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,-4){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(1,0){\fgruler@lentounit{\fgruler@in@ratio@iii\fgruler@marklth}}}}%
+\multiput(0,0)(0,-4){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(1,0){\fgruler@in@ratio@iii\fgruler@marklth}}}%
\fgruler@div{#1}{8}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,-8){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(1,0){\fgruler@lentounit{\fgruler@in@ratio@iv\fgruler@marklth}}}}%
+\multiput(0,0)(0,-8){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(1,0){\fgruler@in@ratio@iv\fgruler@marklth}}}%
\fgruler@div{#1}{16}%
-\multiput(0,0)(0,-16){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(1,0){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(0,-1){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(0,-16){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(1,0){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(0,-1){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(\fgruler@lentounit{\fgruler@sep},-16)(0,-16){\@tempdima}{\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
+\multiput(\fgruler@sep,-16)(0,-16){\fgruler@tempdima}{\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
\def\fgruler@in@downright@#1{%
\setlength{\unitlength}{.0625in}%
-\begin{picture}(\fgruler@lentounit{\fgruler@width},\fgruler@lentounit{#1})(0,-\fgruler@lentounit{#1})%
+\begin{picture}(\fgruler@width,#1)(0,-#1)%
\fgruler@in@downright{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(\fgruler@lentounit{\fgruler@sep},0){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum}}}%
-\ifdim#1>.5in\put(\fgruler@lentounit{\fgruler@sep},-8){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\fgruler@caption@in}}}\fi%
+\put(\fgruler@sep,0){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum}}}%
+\ifdim#1>.5in\put(\fgruler@sep,-8){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\fgruler@caption@in}}}\fi%
\end{picture}}
\def\fgruler@in@downright@@#1{\leavevmode\hbox{}\lower#1\hbox{\fgruler@in@downright@{#1}}}
@@ -1419,23 +1554,23 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,-1){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(-1,0){\fgruler@lentounit{\fgruler@cm@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(0,-1){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(-1,0){\fgruler@cm@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{5}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,-5){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(-1,0){\fgruler@lentounit{\fgruler@cm@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(0,-5){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(-1,0){\fgruler@cm@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{10}%
-\multiput(0,0)(0,-10){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(-1,0){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(0,-1){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(0,-10){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(-1,0){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(0,-1){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(-\fgruler@lentounit{\fgruler@sep},-10)(0,-10){\@tempdima}{\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
+\multiput(-\fgruler@sep,-10)(0,-10){\fgruler@tempdima}{\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
\def\fgruler@cm@downleft@#1{%
\setlength{\unitlength}{1mm}%
-\begin{picture}(\fgruler@lentounit{\fgruler@width},\fgruler@lentounit{#1})(-\fgruler@lentounit{\fgruler@width},-\fgruler@lentounit{#1})%
+\begin{picture}(\fgruler@width,#1)(-\fgruler@width,-#1)%
\fgruler@cm@downleft{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(-\fgruler@lentounit{\fgruler@sep},0){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum}}}%
-\ifdim#1>.5cm\put(-\fgruler@lentounit{\fgruler@sep},-5){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\fgruler@caption@cm}}}\fi%
+\put(-\fgruler@sep,0){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum}}}%
+\ifdim#1>.5cm\put(-\fgruler@sep,-5){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\fgruler@caption@cm}}}\fi%
\end{picture}}
\def\fgruler@cm@downleft@@#1{\leavevmode\hbox{}\lower#1\hbox{\fgruler@cm@downleft@{#1}}}
@@ -1446,29 +1581,29 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,-1){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(-1,0){\fgruler@lentounit{\fgruler@in@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(0,-1){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(-1,0){\fgruler@in@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{2}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,-2){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(-1,0){\fgruler@lentounit{\fgruler@in@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(0,-2){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(-1,0){\fgruler@in@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{4}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,-4){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(-1,0){\fgruler@lentounit{\fgruler@in@ratio@iii\fgruler@marklth}}}}%
+\multiput(0,0)(0,-4){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(-1,0){\fgruler@in@ratio@iii\fgruler@marklth}}}%
\fgruler@div{#1}{8}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,-8){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(-1,0){\fgruler@lentounit{\fgruler@in@ratio@iv\fgruler@marklth}}}}%
+\multiput(0,0)(0,-8){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(-1,0){\fgruler@in@ratio@iv\fgruler@marklth}}}%
\fgruler@div{#1}{16}%
-\multiput(0,0)(0,-16){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(-1,0){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(0,-1){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(0,-16){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(-1,0){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(0,-1){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(-\fgruler@lentounit{\fgruler@sep},-16)(0,-16){\@tempdima}{\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
+\multiput(-\fgruler@sep,-16)(0,-16){\fgruler@tempdima}{\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
\def\fgruler@in@downleft@#1{%
\setlength{\unitlength}{.0625in}%
-\begin{picture}(\fgruler@lentounit{\fgruler@width},\fgruler@lentounit{#1})(-\fgruler@lentounit{\fgruler@width},-\fgruler@lentounit{#1})%
+\begin{picture}(\fgruler@width,#1)(-\fgruler@width,-#1)%
\fgruler@in@downleft{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(-\fgruler@lentounit{\fgruler@sep},0){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum}}}%
-\ifdim#1>.5in\put(-\fgruler@lentounit{\fgruler@sep},-8){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\fgruler@caption@in}}}\fi%
+\put(-\fgruler@sep,0){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum}}}%
+\ifdim#1>.5in\put(-\fgruler@sep,-8){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\fgruler@caption@in}}}\fi%
\end{picture}}
\def\fgruler@in@downleft@@#1{\leavevmode\hbox{}\lower#1\hbox{\fgruler@in@downleft@{#1}}}
@@ -1479,23 +1614,23 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,1){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(1,0){\fgruler@lentounit{\fgruler@cm@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(0,1){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(1,0){\fgruler@cm@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{5}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,5){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(1,0){\fgruler@lentounit{\fgruler@cm@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(0,5){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(1,0){\fgruler@cm@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{10}%
-\multiput(0,0)(0,10){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(1,0){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(0,1){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(0,10){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(1,0){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(0,1){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(\fgruler@lentounit{\fgruler@sep},10)(0,10){\@tempdima}{\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
+\multiput(\fgruler@sep,10)(0,10){\fgruler@tempdima}{\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
\def\fgruler@cm@upright@#1{%
\setlength{\unitlength}{1mm}%
-\begin{picture}(\fgruler@lentounit{\fgruler@width},\fgruler@lentounit{#1})%
+\begin{picture}(\fgruler@width,#1)%
\fgruler@cm@upright{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(\fgruler@lentounit{\fgruler@sep},0){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum}}}%
-\ifdim#1>.5cm\put(\fgruler@lentounit{\fgruler@sep},5){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\fgruler@caption@cm}}}\fi%
+\put(\fgruler@sep,0){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum}}}%
+\ifdim#1>.5cm\put(\fgruler@sep,5){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\fgruler@caption@cm}}}\fi%
\end{picture}}
\def\fgruler@cm@upright@@#1{\leavevmode\hbox{}\lower#1\hbox{\fgruler@cm@upright@{#1}}}
@@ -1506,29 +1641,29 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,1){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(1,0){\fgruler@lentounit{\fgruler@in@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(0,1){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(1,0){\fgruler@in@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{2}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,2){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(1,0){\fgruler@lentounit{\fgruler@in@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(0,2){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(1,0){\fgruler@in@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{4}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,4){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(1,0){\fgruler@lentounit{\fgruler@in@ratio@iii\fgruler@marklth}}}}%
+\multiput(0,0)(0,4){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(1,0){\fgruler@in@ratio@iii\fgruler@marklth}}}%
\fgruler@div{#1}{8}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,8){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(1,0){\fgruler@lentounit{\fgruler@in@ratio@iv\fgruler@marklth}}}}%
+\multiput(0,0)(0,8){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(1,0){\fgruler@in@ratio@iv\fgruler@marklth}}}%
\fgruler@div{#1}{16}%
-\multiput(0,0)(0,16){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(1,0){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(0,1){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(0,16){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(1,0){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(0,1){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(\fgruler@lentounit{\fgruler@sep},16)(0,16){\@tempdima}{\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
+\multiput(\fgruler@sep,16)(0,16){\fgruler@tempdima}{\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
\def\fgruler@in@upright@#1{%
\setlength{\unitlength}{.0625in}%
-\begin{picture}(\fgruler@lentounit{\fgruler@width},\fgruler@lentounit{#1})%
+\begin{picture}(\fgruler@width,#1)%
\fgruler@in@upright{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(\fgruler@lentounit{\fgruler@sep},0){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum}}}%
-\ifdim#1>.5in\put(\fgruler@lentounit{\fgruler@sep},8){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\fgruler@caption@in}}}\fi%
+\put(\fgruler@sep,0){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum}}}%
+\ifdim#1>.5in\put(\fgruler@sep,8){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\fgruler@caption@in}}}\fi%
\end{picture}}
\def\fgruler@in@upright@@#1{\leavevmode\hbox{}\lower#1\hbox{\fgruler@in@upright@{#1}}}
@@ -1539,23 +1674,23 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,1){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(-1,0){\fgruler@lentounit{\fgruler@cm@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(0,1){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(-1,0){\fgruler@cm@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{5}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,5){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(-1,0){\fgruler@lentounit{\fgruler@cm@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(0,5){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(-1,0){\fgruler@cm@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{10}%
-\multiput(0,0)(0,10){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(-1,0){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(0,1){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(0,10){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(-1,0){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(0,1){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(-\fgruler@lentounit{\fgruler@sep},10)(0,10){\@tempdima}{\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
+\multiput(-\fgruler@sep,10)(0,10){\fgruler@tempdima}{\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
\def\fgruler@cm@upleft@#1{%
\setlength{\unitlength}{1mm}%
-\begin{picture}(\fgruler@lentounit{\fgruler@width},\fgruler@lentounit{#1})(-\fgruler@lentounit{\fgruler@width},0)%
+\begin{picture}(\fgruler@width,#1)(-\fgruler@width,0)%
\fgruler@cm@upleft{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(-\fgruler@lentounit{\fgruler@sep},0){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum}}}%
-\ifdim#1>.5cm\put(-\fgruler@lentounit{\fgruler@sep},5){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\fgruler@caption@cm}}}\fi%
+\put(-\fgruler@sep,0){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum}}}%
+\ifdim#1>.5cm\put(-\fgruler@sep,5){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\fgruler@caption@cm}}}\fi%
\end{picture}}
\def\fgruler@cm@upleft@@#1{\leavevmode\hbox{}\lower#1\hbox{\fgruler@cm@upleft@{#1}}}
@@ -1566,29 +1701,29 @@ keepspaces]}
\fgruler@markthickness%
\fgruler@div{#1}{1}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,1){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(-1,0){\fgruler@lentounit{\fgruler@in@ratio@i\fgruler@marklth}}}}%
+\multiput(0,0)(0,1){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(-1,0){\fgruler@in@ratio@i\fgruler@marklth}}}%
\fgruler@div{#1}{2}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,2){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(-1,0){\fgruler@lentounit{\fgruler@in@ratio@ii\fgruler@marklth}}}}%
+\multiput(0,0)(0,2){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(-1,0){\fgruler@in@ratio@ii\fgruler@marklth}}}%
\fgruler@div{#1}{4}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,4){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(-1,0){\fgruler@lentounit{\fgruler@in@ratio@iii\fgruler@marklth}}}}%
+\multiput(0,0)(0,4){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(-1,0){\fgruler@in@ratio@iii\fgruler@marklth}}}%
\fgruler@div{#1}{8}%
\setcounter{fgrulernum}{0}%
-\multiput(0,0)(0,8){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(-1,0){\fgruler@lentounit{\fgruler@in@ratio@iv\fgruler@marklth}}}}%
+\multiput(0,0)(0,8){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(-1,0){\fgruler@in@ratio@iv\fgruler@marklth}}}%
\fgruler@div{#1}{16}%
-\multiput(0,0)(0,16){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(-1,0){\fgruler@lentounit{\fgruler@marklth}}}%
-\iffgruler@borderline\put(0,0){\line(0,1){\fgruler@lentounit{#1}}}\fi%
+\multiput(0,0)(0,16){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(-1,0){\fgruler@marklth}}%
+\iffgruler@borderline\put(0,0){\line(0,1){#1}}\fi%
\setcounter{fgrulernum}{\fgruler@startnum}\stepcounter{fgrulernum}%
-\multiput(-\fgruler@lentounit{\fgruler@sep},16)(0,16){\@tempdima}{\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
+\multiput(-\fgruler@sep,16)(0,16){\fgruler@tempdima}{\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}}
\def\fgruler@in@upleft@#1{%
\setlength{\unitlength}{.0625in}%
-\begin{picture}(\fgruler@lentounit{\fgruler@width},\fgruler@lentounit{#1})(-\fgruler@lentounit{\fgruler@width},0)%
+\begin{picture}(\fgruler@width,#1)(-\fgruler@width,0)%
\fgruler@in@upleft{#1}%
\setcounter{fgrulernum}{\fgruler@startnum}%
-\put(-\fgruler@lentounit{\fgruler@sep},0){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum}}}%
-\ifdim#1>.5in\put(-\fgruler@lentounit{\fgruler@sep},8){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\fgruler@caption@in}}}\fi%
+\put(-\fgruler@sep,0){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum}}}%
+\ifdim#1>.5in\put(-\fgruler@sep,8){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\fgruler@caption@in}}}\fi%
\end{picture}}
\def\fgruler@in@upleft@@#1{\leavevmode\hbox{}\lower#1\hbox{\fgruler@in@upleft@{#1}}}
@@ -1596,10 +1731,10 @@ keepspaces]}
%% UPPERLEFT CM
\def\fgruler@cm@upperleft@#1#2{%
\setlength{\unitlength}{1mm}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{#2})(0,-\fgruler@lentounit{#2})%
+\begin{picture}(#1,#2)(0,-#2)%
\fgruler@cm@rightdown{#1}%
\fgruler@cm@downright{#2}%
-\ifdim#1>.5cm\put(5,-\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@cm}}\fi%
+\ifdim#1>.5cm\put(5,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@cm}}\fi%
\end{picture}}
\def\fgruler@cm@upperleft@@#1#2{\leavevmode\hbox{}\lower#2\hbox{\fgruler@cm@upperleft@{#1}{#2}}}
@@ -1611,7 +1746,7 @@ keepspaces]}
\setlength{\fgruler@fg@height}{\paperheight}%
\addtolength{\fgruler@fg@height}{-#2}%
\fgruler@fgsetting%
-\AtPageLowerLeft{\put(\fgruler@lentounit{#1},0){%
+\AtPageLowerLeft{\put(#1,0){%
\fgruler@cm@upperleft@{\fgruler@fg@width}{\fgruler@fg@height}}}%
\endgroup}
@@ -1620,10 +1755,10 @@ keepspaces]}
%% UPPERLEFT IN
\def\fgruler@in@upperleft@#1#2{%
\setlength{\unitlength}{.0625in}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{#2})(0,-\fgruler@lentounit{#2})%
+\begin{picture}(#1,#2)(0,-#2)%
\fgruler@in@rightdown{#1}%
\fgruler@in@downright{#2}%
-\ifdim#1>.5in\put(8,-\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@in}}\fi%
+\ifdim#1>.5in\put(8,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@in}}\fi%
\end{picture}}
\def\fgruler@in@upperleft@@#1#2{\leavevmode\hbox{}\lower#2\hbox{\fgruler@in@upperleft@{#1}{#2}}}
@@ -1635,7 +1770,7 @@ keepspaces]}
\setlength{\fgruler@fg@height}{\paperheight}%
\addtolength{\fgruler@fg@height}{-#2}%
\fgruler@fgsetting%
-\AtPageLowerLeft{\put(\fgruler@lentounit{#1},0){%
+\AtPageLowerLeft{\put(#1,0){%
\fgruler@in@upperleft@{\fgruler@fg@width}{\fgruler@fg@height}}}%
\endgroup}
@@ -1644,10 +1779,10 @@ keepspaces]}
%% UPPERRIGHT CM
\def\fgruler@cm@upperright@#1#2{%
\setlength{\unitlength}{1mm}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{#2})(-\fgruler@lentounit{#1},-\fgruler@lentounit{#2})%
+\begin{picture}(#1,#2)(-#1,-#2)%
\fgruler@cm@leftdown{#1}%
\fgruler@cm@downleft{#2}%
-\ifdim#1>.5cm\put(-5,-\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@cm}}\fi%
+\ifdim#1>.5cm\put(-5,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@cm}}\fi%
\end{picture}}
\def\fgruler@cm@upperright@@#1#2{\leavevmode\hbox{}\lower#2\hbox{\fgruler@cm@upperright@{#1}{#2}}}
@@ -1667,10 +1802,10 @@ keepspaces]}
%% UPPERRIGHT IN
\def\fgruler@in@upperright@#1#2{%
\setlength{\unitlength}{.0625in}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{#2})(-\fgruler@lentounit{#1},-\fgruler@lentounit{#2})%
+\begin{picture}(#1,#2)(-#1,-#2)%
\fgruler@in@leftdown{#1}%
\fgruler@in@downleft{#2}%
-\ifdim#1>.5in\put(-8,-\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@in}}\fi%
+\ifdim#1>.5in\put(-8,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@in}}\fi%
\end{picture}}
\def\fgruler@in@upperright@@#1#2{\leavevmode\hbox{}\lower#2\hbox{\fgruler@in@upperright@{#1}{#2}}}
@@ -1690,10 +1825,10 @@ keepspaces]}
%% LOWERLEFT CM
\def\fgruler@cm@lowerleft@#1#2{%
\setlength{\unitlength}{1mm}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{#2})%
+\begin{picture}(#1,#2)%
\fgruler@cm@rightup{#1}%
\fgruler@cm@upright{#2}%
-\ifdim#1>.5cm\put(5,\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@cm}}\fi%
+\ifdim#1>.5cm\put(5,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@cm}}\fi%
\end{picture}}
\def\fgruler@cm@lowerleft@@#1#2{\leavevmode\hbox{}\lower#2\hbox{\fgruler@cm@lowerleft@{#1}{#2}}}
@@ -1705,7 +1840,7 @@ keepspaces]}
\setlength{\fgruler@fg@height}{\paperheight}%
\addtolength{\fgruler@fg@height}{-#2}%
\fgruler@fgsetting%
-\AtPageLowerLeft{\put(\fgruler@lentounit{#1},\fgruler@lentounit{#2}){%
+\AtPageLowerLeft{\put(#1,#2){%
\fgruler@cm@lowerleft@{\fgruler@fg@width}{\fgruler@fg@height}}}%
\endgroup}
@@ -1714,10 +1849,10 @@ keepspaces]}
%% LOWERLEFT IN
\def\fgruler@in@lowerleft@#1#2{%
\setlength{\unitlength}{.0625in}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{#2})%
+\begin{picture}(#1,#2)%
\fgruler@in@rightup{#1}%
\fgruler@in@upright{#2}%
-\ifdim#1>.5in\put(8,\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@in}}\fi%
+\ifdim#1>.5in\put(8,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@in}}\fi%
\end{picture}}
\def\fgruler@in@lowerleft@@#1#2{\leavevmode\hbox{}\lower#2\hbox{\fgruler@in@lowerleft@{#1}{#2}}}
@@ -1729,7 +1864,7 @@ keepspaces]}
\setlength{\fgruler@fg@height}{\paperheight}%
\addtolength{\fgruler@fg@height}{-#2}%
\fgruler@fgsetting%
-\AtPageLowerLeft{\put(\fgruler@lentounit{#1},\fgruler@lentounit{#2}){%
+\AtPageLowerLeft{\put(#1,#2){%
\fgruler@in@lowerleft@{\fgruler@fg@width}{\fgruler@fg@height}}}%
\endgroup}
@@ -1738,10 +1873,10 @@ keepspaces]}
%% LOWERRIGHT CM
\def\fgruler@cm@lowerright@#1#2{%
\setlength{\unitlength}{1mm}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{#2})(-\fgruler@lentounit{#1},0)%
+\begin{picture}(#1,#2)(-#1,0)%
\fgruler@cm@leftup{#1}%
\fgruler@cm@upleft{#2}%
-\ifdim#1>.5cm\put(-5,\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@cm}}\fi%
+\ifdim#1>.5cm\put(-5,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@cm}}\fi%
\end{picture}}
\def\fgruler@cm@lowerright@@#1#2{\leavevmode\hbox{}\lower#2\hbox{\fgruler@cm@lowerright@{#1}{#2}}}
@@ -1753,7 +1888,7 @@ keepspaces]}
\setlength{\fgruler@fg@height}{\paperheight}%
\addtolength{\fgruler@fg@height}{-#2}%
\fgruler@fgsetting%
-\AtPageLowerLeft{\put(0,\fgruler@lentounit{#2}){%
+\AtPageLowerLeft{\put(0,#2){%
\fgruler@cm@lowerright@{\fgruler@fg@width}{\fgruler@fg@height}}}%
\endgroup}
@@ -1762,10 +1897,10 @@ keepspaces]}
%% LOWERRIGHT IN
\def\fgruler@in@lowerright@#1#2{%
\setlength{\unitlength}{.0625in}%
-\begin{picture}(\fgruler@lentounit{#1},\fgruler@lentounit{#2})(-\fgruler@lentounit{#1},0)%
+\begin{picture}(#1,#2)(-#1,0)%
\fgruler@in@leftup{#1}%
\fgruler@in@upleft{#2}%
-\ifdim#1>.5in\put(-8,\fgruler@lentounit{\fgruler@sep}){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@in}}\fi%
+\ifdim#1>.5in\put(-8,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@in}}\fi%
\end{picture}}
\def\fgruler@in@lowerright@@#1#2{\leavevmode\hbox{}\lower#2\hbox{\fgruler@in@lowerright@{#1}{#2}}}
@@ -1777,11 +1912,15 @@ keepspaces]}
\setlength{\fgruler@fg@height}{\paperheight}%
\addtolength{\fgruler@fg@height}{-#2}%
\fgruler@fgsetting%
-\AtPageLowerLeft{\put(0,\fgruler@lentounit{#2}){%
+\AtPageLowerLeft{\put(0,#2){%
\fgruler@in@lowerright@{\fgruler@fg@width}{\fgruler@fg@height}}}%
\endgroup}
\def\fgruler@in@lowerright@fg{\fgruler@in@lowerright@fg@{\fgruler@hshift}{\fgruler@vshift}}
+
+%% USER
+\def\fgruler@cm@user@fg{}
+\def\fgruler@in@user@fg{}
% \end{macrocode}
% \Finale
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/fgruler/fgruler.pdf b/macros/latex/contrib/fgruler/fgruler.pdf
index eb3be627b8..cd1989fa8f 100644
--- a/macros/latex/contrib/fgruler/fgruler.pdf
+++ b/macros/latex/contrib/fgruler/fgruler.pdf
Binary files differ
diff --git a/macros/latex/contrib/principia/README b/macros/latex/contrib/principia/README
index ceed875d85..885761b586 100644
--- a/macros/latex/contrib/principia/README
+++ b/macros/latex/contrib/principia/README
@@ -2,7 +2,7 @@ principia.sty - a LaTeX2e package for typesetting the "Peanese" notation of Whit
The file principia.sty is the original work of Landon D. C. Elkind (Copyright (c) 2020). It is released under the LaTeX Project Public License 1.3c.
-This is principia package Version 1.0. It covers typesetting the notations through Volume I of "Principia Mathematica". See the file principia.pdf for information on how to typeset these symbols in LaTeX.
+This is principia package Version 1.1 (25/10/2020). Like Version 1.0, it covers typesetting the notations through Volume I of "Principia Mathematica". Version 1.1 has some minor updates. See the file principia.pdf for information on these changes and for further information on how to typeset Peanese symbols in LaTeX with the principia package.
Updates to include all notations throughout Volumes II and III are planned. Further information and updates can be found at https://logicalatomist.github.io/principia/
diff --git a/macros/latex/contrib/principia/principia.pdf b/macros/latex/contrib/principia/principia.pdf
index 6d4b543228..c57ba8eab5 100644
--- a/macros/latex/contrib/principia/principia.pdf
+++ b/macros/latex/contrib/principia/principia.pdf
Binary files differ
diff --git a/macros/latex/contrib/principia/principia.sty b/macros/latex/contrib/principia/principia.sty
index 3a1fd3b271..f965b0ff66 100644
--- a/macros/latex/contrib/principia/principia.sty
+++ b/macros/latex/contrib/principia/principia.sty
@@ -1,12 +1,14 @@
-%This is the principia package is for representing notations in Whitehead and Russell's ``Principia Mathematica" close to their appearance in the original.
-%Copyright (C) 2020 by Landon D. C. Elkind (https://landondcelkind.com/contact/).
-%This program is free software. It may be redistributed and/or modified under the terms of the GNU General Public License as published by the Free Software Foundation, Version 3 or any later version.
-
%Package Identification
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{principia}[2020/10/20 principia package version 1.0] %Covers typesetting of notation through Volume I
+\ProvidesPackage{principia}[2020/10/25 principia package version 1.1] %This is the principia package is for representing notations in Whitehead and Russell's ``Principia Mathematica" close to their appearance in the original.
+%Version 1.0 (superseded by Version 1.1): Covers typesetting of notation through Volume I. 2020/10/24
+%Version 1.1 (updates): fixed the spacing of scope dots around parentheses; fixed spacing of theorem sign; fixed spacing around primitive proposition and definition signs. 2020/10/25
+%Licensed under LaTeX Project Public License 1.3c.
+%Copyright Landon D. C. Elkind, 2020. (https://landondcelkind.com/contact/).
%Principia package requirements
+\RequirePackage{amssymb} %This loads the relation domain and converse domain limitation symbols.
+\RequirePackage{amsmath} %This loads the circumflex, substitution into theorems, \text{}, \mathbf{}, \boldsymbol{}, \overleftarrow{}, \overrightarrow{}, etc.
\RequirePackage{graphicx} %This loads commands that flip iota for definite descriptions, Lambda for the universal class, and so on. The (superseded) graphics package should also work here, but is not recommended.
\RequirePackage{marvosym} %This loads the male and female symbol.
\RequirePackage{pifont} %This loads the symbols such as the eight-pointed asterisk.
@@ -21,25 +23,26 @@
\newcommand{\pmSubbb}[7]{\bigg \lbrack \normalsize #1 \text{ } \small \begin{array}{c c c} #2, & #4, & #6 \\ \hline #3, & #5, & #7 \end{array} \bigg \rbrack} %This is the substitution command.
\newcommand{\pmsubbbb}[8]{\bigg \lbrack \small \begin{array}{c c c c} #1, & #3, & #5, & #7 \\ \hline #2, & #4, & #6, & #8 \end{array} \bigg \rbrack} %This is the substitution command.
\newcommand{\pmSubbbb}[9]{\bigg \lbrack \normalsize #1 \text{ } \small \begin{array}{c c c c} #1, & #3, & #5, & #7 \\ \hline #2, & #4, & #6, & #8 \end{array} \bigg \rbrack} %This is the substitution command.
-\newcommand{\pmthm}{\text{\scalebox{.5}[1]{$\boldsymbol\vdash$}}} %This is the theorem sign.
+\newcommand{\pmthm}{\mathpunct{\text{\scalebox{.5}[1]{$\boldsymbol\vdash$}}}} %This is the theorem sign.
\newcommand{\pmast}{\text{\resizebox{!}{.75\height}{\ding{107}}}} %This is the sign introducing a theorem number.
\newcommand{\pmcdot}{\text{\raisebox{.05cm}{$\boldsymbol\cdot$}}} %This is a sign introducing a theorem sub-number.
-\newcommand{\pmdf}{=_\text{Df}}
-\newcommand{\pmpp}{\text{Pp}}
+\newcommand{\pmiddf}{\mathbin{=}}
+\newcommand{\pmdf}{\quad \text{Df}}
+\newcommand{\pmpp}{\quad \text{Pp}}
%Square dots for scope, defined for up to six dots
-\newcommand{\pmdot}{\mathop{\hbox{\rule{.3ex}{.3ex}}}}
-\newcommand{\pmdott}{\mathop{\overset{\pmdot}{\pmdot}}}
-\newcommand{\pmdottt}{\pmdott \pmdot}
-\newcommand{\pmdotttt}{\pmdott\pmdott}
-\newcommand{\pmdottttt}{\pmdott\pmdott\pmdot}
-\newcommand{\pmdotttttt}{\pmdott\pmdott\pmdott}
+\newcommand{\pmdot}{\mathrel{\hbox{\rule{.3ex}{.3ex}}}}
+\newcommand{\pmdott}{\mathrel{\overset{\pmdot}{\pmdot}}}
+\newcommand{\pmdottt}{\pmdott\hspace{.1em}\pmdot}
+\newcommand{\pmdotttt}{\pmdott\hspace{.1em}\pmdott}
+\newcommand{\pmdottttt}{\pmdott\hspace{.1em}\pmdott\hspace{.1em}\pmdot}
+\newcommand{\pmdotttttt}{\pmdott\hspace{.1em}\pmdott\hspace{.1em}\pmdott}
%Logical connectives
\newcommand{\pmnot}{\mathord{\sim}}
-\newcommand{\pmimp}{\boldsymbol{\supset}}
-\newcommand{\pmiff}{\equiv}
-\newcommand{\pmor}{\boldsymbol{\vee}}
+\newcommand{\pmimp}{\mathbin{\boldsymbol{\supset}}}
+\newcommand{\pmiff}{\mathbin{\equiv}}
+\newcommand{\pmor}{\mathbin{\boldsymbol{\vee}}}
\newcommand{\pmall}[1]{(#1)}
\newcommand{\pmsome}[1]{(\text{\raisebox{.5em}{\rotatebox{180}{E}}}#1)}
\newcommand{\pmSome}{\text{\raisebox{.5em}{\rotatebox{180}{E}}}}
diff --git a/macros/latex/contrib/principia/principia.tex b/macros/latex/contrib/principia/principia.tex
index 47db611908..7e0bced115 100644
--- a/macros/latex/contrib/principia/principia.tex
+++ b/macros/latex/contrib/principia/principia.tex
@@ -1,11 +1,11 @@
\documentclass[12pt]{article}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{principia}[2020/10/20 principia package version 1.0] %Covers typesetting of notation through Volume I
+\ProvidesPackage{principia}[2020/10/25 principia package version 1.1] %This package supports typesetting the Peanese notation in Volume I of Whitehead and Russell’s 1910 ``Principia Mathematica".
+%Version 1.0 (superseded by Version 1.1): Covers typesetting of notation through Volume I. 2020/10/24
+%Version 1.1 (updates): fixed the spacing of scope dots around parentheses; fixed spacing of theorem sign; fixed spacing around primitive proposition and definition signs. 2020/10/25
%Licensed under LaTeX Project Public License 1.3c.
-%Copyright Landon D. C. Elkind, 2020.
+%Copyright Landon D. C. Elkind, 2020. (https://landondcelkind.com/contact/).
-\usepackage{amssymb}
-\usepackage{amsmath}
\usepackage{fullpage}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
@@ -13,11 +13,13 @@
%Principia package requirements
\usepackage{principia} %The package itself, and its dependencies:
+\usepackage{amssymb} %This loads the relation domain and converse domain limitation symbols.
+\usepackage{amsmath} %This loads the circumflex, substitution into theorems, \text{}, \mathbf{}, \boldsymbol{}, \overleftarrow{}, \overrightarrow{}, etc.
\usepackage{pifont} %This loads the eight-pointed asterisk.
\usepackage{marvosym} %This loads the male and female symbol.
\usepackage{graphicx} %This loads commands that flip iota for definite descriptions, Lambda for the universal class, and so on. The (superseded) graphics package should also work here, but is not recommended.
-\title{\texttt{principia.sty }\\ A \LaTeXe \space Package for Typesetting Whitehead and Russell's \textit{Principia Mathematica} (Version 1.0)}
+\title{\texttt{principia.sty }\\ A \LaTeXe \space Package for Typesetting Whitehead and Russell's \textit{Principia Mathematica} (Version 1.1)}
\author{Landon D. C. Elkind \texttt{elkind@ualberta.ca}}
\date{\today}
@@ -30,22 +32,21 @@ The \texttt{principia} package is designed for typesetting the Peanese notation
In \textit{Principia Mathematica} some symbols occur with an argument and sometimes that same symbol occurs without an argument. For example, `$\pmsome{x}$' occurs in some formulas, but sometimes `$\pmSome$' occurs in the text when they talk about the symbol itself. \texttt{principia} is designed to accommodate these different occurrences of symbols. When a symbol is to occur without an argument, capitalize the first letter following the `\texttt{$\backslash$pm}' part of the command. E.g. \verb|\pmsome{x}| produces $\pmsome{x}$ and \verb|\pmSome| produces `$\pmSome$'. Note the former command requires an argument and the latter command does not. Not all commands in the \texttt{principia} package admit of such dual use because some symbols in \textit{Principia Mathematica} never occur without an argument or do not take an argument in the usual sense. For example, the propositional connectives do not take an `argument' in the way singular or plural descriptions do.
-Version 1.0 of \texttt{principia} is adequate to typeset all notations throughout Volume I of \textit{Principia}. Updates to include all notations throughout Volumes II and III are planned.
+Version 1.1 of \texttt{principia}, like Version 1.0, is adequate to typeset all notations throughout Volume I of \textit{Principia} and includes some fixes to spacing, etc. See the package documentation for details. Updates to include all notations throughout Volumes II and III are planned.
-\texttt{principia}'s dependencies are \texttt{pifont} (for the eight-pointed asterisk), \texttt{marvosym} (for the `$\pmop$' symbol), and \texttt{graphicx} (for singular descriptions, universal classes, and existential quantifiers). Make sure to load these package by typing \texttt{$\backslash$usepackage\{graphicx\}}, etc.
-
-To load \texttt{principia}, type \texttt{$\backslash$usepackage\{principia\}} in the preamble to the document.
+\texttt{principia}'s dependencies are \texttt{amsmath}, \texttt{amssymb}, \texttt{pifont}, \texttt{marvosym}, and \texttt{graphicx}. Make sure to load these package by typing \texttt{$\backslash$usepackage\{graphicx\}}, etc., into the document preamble. To load \texttt{principia}, type \texttt{$\backslash$usepackage\{principia\}} in the document's preamble.
\noindent \begin{tabular}{@{}p{3cm} | p{5cm} | p{8.25cm}}
\textbf{Symbol} & \textbf{\LaTeX command} & \textbf{Notes} \\ \hline
$\pmthm$ & \verb|\pmthm| & Theorem. \\
$\pmast$ & \verb|\pmast| & As in $\pmast1$. \\
$\pmcdot$ & \verb|\pmcdot| & As in, $\pmast1\pmcdot1$. \\
- $\pmpp$ & \verb|\pmpp| & Primitive proposition. \\
- $\pmdf$ & \verb|\pmdf| & Definition. \\
- $\pmdem$ & \verb|\pmdem| & This begins a proof. \\
+ $\pmpp$ & \verb|\pmpp| & Primitive proposition. Note the indentation. \\
+ $\pmiddf$ & \verb|\pmiddf| & Identity for definitions (`$=$' differs in spacing). \\
+ $\pmdf$ & \verb|\pmdf| & Definition. Note the indentation. \\
+ $\pmdem$ & \verb|\pmdem| & This symbol begins a proof. \\
$\pmsub{p}{q}$, $\pmsubb{p}{q}{r}{s}$, $\pmsubbb{p}{q}{r}{s}{t}{u}$, ... $\pmSub{\text{Add}}{p}{q}$, ... & \verb|\pmsub{p}{q}|, \verb|\pmsubb{p}{q}{r}{s}|, \verb|\pmsubbb{p}{q}| \par \hfill \verb|{r}{s}{t}{u}|, ... \verb|\pmSub{\text{Add}{p}{q}| & Substitution into theorems. Add `b's to the end of \verb|\pmsub| to increase the number of substitutions (up to four `b's). Each extra `b' adds two arguments. To substitute and specify the theorem as well, capitalize the `s' in \verb|\pmsub|. \\
- $\pmdot$, $\pmdott$, $\pmdottt$, $\pmdotttt$, $\pmdottttt$, $\pmdotttttt$ & \verb|\pmdot|, \verb|\pmdott|, \verb|\pmdottt|, ... & Add `t's to the end of \verb|\pmdot| to increase the number of dots (up to six `t's). Note that the spacing of \verb|\pmand| and \verb|\pmdot| differ. \\
+ $\pmdot$, $\pmdott$, $\pmdottt$, $\pmdotttt$, $\pmdottttt$, $\pmdotttttt$ & \verb|\pmdot|, \verb|\pmdott|, \verb|\pmdottt|, ... & Add `t's to the end of \verb|\pmdot| to increase the number of dots (up to six `t's). \\
$\pmand$, $\pmandd$, $\pmanddd$, $\pmandddd$, $\pmanddddd$, $\pmandddddd$ & \verb|\pmand|, \verb|\pmandd|, \verb|\pmanddd|, ...& Add `d's to the end of \verb|\pmand| command to increase the number of dots (up to six `d's). \\
$\pmor$ & \verb|\pmor| & Disjunction. \\
$\pmnot$ & \verb|\pmnot| & Negation. Note its spacing differs from \verb|\sim|. \\
diff --git a/macros/latex/contrib/sttools/README.md b/macros/latex/contrib/sttools/README.md
index eea5d0d9fc..3c48f3a113 100644
--- a/macros/latex/contrib/sttools/README.md
+++ b/macros/latex/contrib/sttools/README.md
@@ -1,4 +1,4 @@
-README for sttools, v2.0 2017/03/27
+README for sttools, v2.1 2020/10/16
INTRODUCTION
============
@@ -17,7 +17,7 @@ PACKAGES
* floatpag.sty, v1.1 2012/05/29:
– sets pagestyle for floats page;
-* flushend.sty, v3.3 2017/03/27:
+* flushend.sty, v3.5 2017/10/16:
– balances page in twocolumn mode;
(2014/03/03): totally rewritten with new algorithm to support footnotes,
top floats and column break before one line section title;
@@ -28,6 +28,8 @@ PACKAGES
(2015/04/14): set debug option off by default; keeplastbox modified;
(2016/06/21): bugfix compatibility with luatexja package;
(2017/03/27): bugfix version with new options for some checks on/off;
+ (2020/10/14): bugfix development and test;
+ (2020/10/16): bugfix version: modern with noautobase;
* marginal.sty, v1.1 2012/05/29:
– enlarges room for marginal inserts;
diff --git a/macros/latex/contrib/sttools/flushend.dtx b/macros/latex/contrib/sttools/flushend.dtx
index 2634f02e80..20d20f396e 100644
--- a/macros/latex/contrib/sttools/flushend.dtx
+++ b/macros/latex/contrib/sttools/flushend.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment/*% \end{macrocode}*/
%
-% Copyright (C) 2017 by Sigitas Tolu\v{s}is <sigitas@vtex.lt>
+% Copyright (C) 2020 by Sigitas Tolu\v{s}is <sigitas@vtex.lt>
% ---------------------------------------------------------------------------
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -26,7 +26,16 @@
%<*batchfile>
\input docstrip.tex
\keepsilent\askforoverwritefalse
-\nopreamble\nopostamble
+\preamble
+%%
+%% This is file `flushend.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% flushend.dtx (with options: `package')
+%%
+\endpreamble
\generate{\file{flushend.sty}{\from{flushend.dtx}{package}}}
%</batchfile>
%<batchfile>\endbatchfile
@@ -38,9 +47,8 @@
\ProvidesFile{flushend.dtx}
%</driver>
%<*package>
-%% Copyright (C) 1997-2017 by Sigitas Tolu\v{s}is <sigitas@vtex.lt>
+%% Copyright (C) 1997-2020 by Sigitas Tolu\v{s}is <sigitas@vtex.lt>
%% VTeX Ltd., Mokslinink\k{u} 2a, Vilnius, Lithuania
-%% http://www.vtex.lt/tex/download/macros/
%% --------------------------------------------------------------------------
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
@@ -56,12 +64,12 @@
%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package>\ProvidesPackage{flushend}
%<*package>
- [2017/03/27 v3.3 Balancing columns in twocolumn mode]
+ [2020/10/16 v3.5 Balancing columns in twocolumn mode]
%</package>
%
%<*driver>
\documentclass{ltxdoc}
-\usepackage{flushend}[2016/06/21]
+\usepackage{flushend}[2020/10/16]
\EnableCrossrefs
\CodelineIndex
%%\RecordChanges
@@ -74,7 +82,7 @@
%</driver>
% \fi
%
-% \CheckSum{1855}
+% \CheckSum{2020}
%
% \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
@@ -104,9 +112,11 @@
% ancient/modern,
% spread/nospread,
% removelastbox/keeplastbox}
-% \changes{v3.1}{2015/04/14}{set debug option off by default; keeplastbox modified;}
-% \changes{v3.2}{2016/06/21}{bugfix compatibility with luatexja}
-% \changes{v3.3}{2017/03/27}{bugfix for get@@footnoterule@@box; options for some checks on/off}
+% \changes{v3.1}{2015/04/14}{set debug option off by default; keeplastbox modified;}
+% \changes{v3.2}{2016/06/21}{bugfix compatibility with luatexja}
+% \changes{v3.3}{2017/03/27}{bugfix for get@@footnoterule@@box; options for some checks on/off}
+% \changes{v3.4}{2020/10/14}{bugfix development and test}
+% \changes{v3.5}{2020/10/16}{bugfix version: modern with noautobase}
%
% \DoNotIndex{\newcommand,\newenvironment}
%
@@ -121,16 +131,16 @@
% \section{Introduction}
%
% The package is used to balance columns on any page in twocolumn
-% mode. By default it is switched on at the end of document. It is
-% expected to work with footnotes, top floats and column break
+% mode. By default it is switched on at the end of document. It is
+% expected to work with footnotes, top floats and column break
% before one line section title.
%
% \section{Usage}
%
-% Just load the package to balance the last page: that's all.
+% Just load the package to balance the last page: that's all.
% To balance some page in middle of document use command
-% \cs{flushcolsend} at that page.
-%
+% \cs{flushcolsend} at that page.
+%
% \medskip
% \DescribeMacro{\flushend}
%
@@ -168,7 +178,7 @@
% Adds \meta{tokens} at the end of right column.
%
% \medskip
-% \textit{Example}: |\atColsEnd{\vfil}|.
+% \textit{Example}: |\atColsEnd{\vfil}|.
%
% \medskip
% \DescribeMacro{\showcolsendrule}
@@ -176,24 +186,24 @@
% It can be used just for debugging: adds rule to the bottom of columns.
%
% \subsection{Package options}
-%
+%
% \medskip
% \DescribeMacro{ancient}
% It is used to switch on old version of balancing algorithm.
% This version is not so accurate or "clever" but quite safe.
-%
+%
% \medskip
% \DescribeMacro{modern}
% [default] It is used to switch on new version of balancing algorithm.
% This version has some heuristic guesses for footnotes, floats
% and section like head skip. So it is more dangerous in the case
-% for text misplace or disappear.
+% for text misplace or disappear.
%
% \medskip
% \DescribeMacro{autobase}
% [default] It is used to guess |\baselineskip| value on original columns
% break. On failure just use |\atColsBreak{...}|.
-%
+%
% \medskip
% \DescribeMacro{noautobase}
% It is used to switch off the previous option behaviour.
@@ -201,7 +211,7 @@
% \medskip
% \DescribeMacro{spread}
% [default] It adds extra glue to the rightcolumn trying to balance.
-%
+%
% \medskip
% \DescribeMacro{nospread}
% It skips adding extra glue to the last column.
@@ -209,11 +219,11 @@
% \medskip
% \DescribeMacro{removelastbox}
% [default] It tries to remove an empty box (some more material) from the last column bottom.
-%
+%
% \medskip
% \DescribeMacro{keeplastbox}
-% It skips removing anything from the last column. As example it is usefull and can be used
-% then document ends by reference item and last line of text should be with indend.
+% It skips removing anything from the last column. As example it is usefull and can be used
+% then document ends by reference item and last line of text should be with indend.
%
% \medskip
% \DescribeMacro{checkfootnote}
@@ -241,7 +251,7 @@
% [default] Skips putting debuging lines.
%
% \StopEventually{}
-%
+%
% \section{Implementation}
%
% \iffalse
@@ -257,10 +267,10 @@
\newif\if@balance@debug \@balance@debugfalse
\DeclareOption{autobase}{\global\@auto@baselineskiptrue}
\DeclareOption{noautobase}{\global\@auto@baselineskipfalse}
-\DeclareOption{ancient}{\global\@ancient@balance@versiontrue}
-\DeclareOption{modern}{\global\@ancient@balance@versionfalse}
-\DeclareOption{spread}{\global\@right@column@spreadtrue}
-\DeclareOption{nospread}{\global\@right@column@spreadfalse}
+\DeclareOption{ancient}{\global\@ancient@balance@versiontrue}
+\DeclareOption{modern}{\global\@ancient@balance@versionfalse}
+\DeclareOption{spread}{\global\@right@column@spreadtrue}
+\DeclareOption{nospread}{\global\@right@column@spreadfalse}
\DeclareOption{removelastbox}{\global\@remove@lastbox@at@balancingtrue}
\DeclareOption{keeplastbox}{\global\@remove@lastbox@at@balancingfalse}
\DeclareOption{checkfootnote}{%
@@ -293,9 +303,11 @@
\newskip\flushend@@lastskip@b
\newskip\flushend@@lastskip@c
\newcount\flushend@@penalty@a
+\newcount\var@@loop@iter
\newdimen\flushend@@lastkern@a
\newdimen\var@@temp@spread
\newdimen\var@@temp@a
+\newdimen\var@@temp@loop
\def\top@@skip@@limit{.7\topskip}
\newdimen\flushend@@page@rule \flushend@@page@rule\z@
\def\showcolsendrule{\global\flushend@@page@rule=.4\p@}
@@ -353,7 +365,7 @@
}
\def\set@split@topskip@to#1{%
\splittopskip#1\relax \vfuzz\maxdimen \vbadness\maxdimen
- }
+ }
% \end{macrocode}
% \end{macro}
%
@@ -373,28 +385,28 @@
%
% To get more or less proper result we need to know about footnotes at
% the left column end, top floats at the right column top, skips and
-% so on. This part of the package is responsible for such analysis.
+% so on. This part of the package is responsible for such analysis.
%
% \begin{macrocode}
\gdef\analyze@lastbox@box#1{%
\setbox\flushend@@varbox@a\vbox{%
\unvbox#1%
- \global\flushend@@lastskip@a\lastskip
+ \global\flushend@@lastskip@a\lastskip
\unskip
- \global\var@@temp@a\lastkern
+ \global\var@@temp@a\lastkern
\unkern
- \global\flushend@@penalty@a\lastpenalty
+ \global\flushend@@penalty@a\lastpenalty
\unpenalty
\ifdim\lastskip>\z@
- \global\flushend@@lastskip@a\lastskip
- \fi
+ \global\flushend@@lastskip@a\lastskip
+ \fi
\unskip
\ifdim\lastkern>\z@
- \global\var@@temp@a\lastkern
- \fi
+ \global\var@@temp@a\lastkern
+ \fi
\unkern
\ifnum\lastpenalty>\z@
- \global\flushend@@penalty@a\lastpenalty
+ \global\flushend@@penalty@a\lastpenalty
\fi
\unpenalty
\global\setbox\flushend@@tempbox@a\lastbox
@@ -402,7 +414,7 @@
\wlog@balance@debug{^^J::analyze@lastbox@box::\log@box@info{#1}%
^^J ::unvbox: \log@box@info{\flushend@@varbox@a}%
^^J::lastbox: \log@box@info{\flushend@@tempbox@a}%
- ^^J::lastskip: \the\flushend@@lastskip@a;
+ ^^J::lastskip: \the\flushend@@lastskip@a;
lastkern: \the\var@@temp@a;
lastpenalty: \the\flushend@@penalty@a
}%
@@ -425,11 +437,11 @@
\wlog@balance@debug{^^Jmainbox: \log@box@info{#1}}%
\setbox\flushend@@varbox@a\vbox{%
\unvbox#1%
- \global\flushend@@lastskip@a\lastskip
+ \global\flushend@@lastskip@a\lastskip
\unskip
\global\flushend@@lastkern@a\lastkern
\unkern
- \global\flushend@@penalty@a\lastpenalty
+ \global\flushend@@penalty@a\lastpenalty
\unpenalty
\global\setbox\flushend@@tempbox@a\lastbox
}%
@@ -437,8 +449,8 @@
\advance\flushend@@lastskip@b -\ht\flushend@@tempbox@a
\wlog@balance@debug{.-box: \log@box@info{\flushend@@varbox@a}%
^^J.-lastbox: \log@box@info{\flushend@@tempbox@a}%
- ^^J.-lastskip: \the\flushend@@lastskip@a;
- lastkern: \the\flushend@@lastkern@a;
+ ^^J.-lastskip: \the\flushend@@lastskip@a;
+ lastkern: \the\flushend@@lastkern@a;
lastpenalty: \the\flushend@@penalty@a
^^J.-diff: \the\flushend@@lastskip@b
}%
@@ -486,6 +498,16 @@
\wlog@balance@debug{lastbox: \log@box@info{\flushend@@varbox@a}}%
\fi
\fi
+ \ifdim\var@@temp@loop=\ht\flushend@@varbox@a\relax
+ \global\advance\var@@loop@iter\@ne
+ \fi
+ \var@@temp@loop=\ht\flushend@@varbox@a\relax
+ \ifnum\var@@loop@iter<3\relax
+ \wlog@balance@debug{analyze left col: iteration \number\var@@loop@iter; ht \the\var@@temp@loop}%
+ \else
+ \wlog@balance@debug{analyze left col loop limit!}%
+ \ht\flushend@@varbox@a\z@
+ \fi
\ifdim\ht\flushend@@varbox@a>\topskip
\expandafter\analyze@leftcolumn@box\expandafter\flushend@@varbox@a
\fi
@@ -497,7 +519,7 @@
% \begin{macro}{\get@@footnoterule@@box}
%
% Gets dimensions of the box made by |footnoterule| and writes to:
-% |\footnoterule@@box@@ht|, |\footnoterule@@box@@dp|, |\footnoterule@@box@@wd|.
+% |\footnoterule@@box@@ht|, |\footnoterule@@box@@dp|, |\footnoterule@@box@@wd|.
%
% \begin{macrocode}
\def\get@@footnoterule@@box{%
@@ -522,8 +544,8 @@
%
% Checks if \marg{box1} dimensions equals to |footnoterule| box dimensions.
% If so and if \marg{skip} is not |\topskip| we guess it is footnote.
-% In that case we define |leftcolumn| height without |footnote| as
-% \marg{box2} height and save it as |\main@box@height|. Skip from text to
+% In that case we define |leftcolumn| height without |footnote| as
+% \marg{box2} height and save it as |\main@box@height|. Skip from text to
% footnote define as |\main@box@skip|.
%
% \begin{macrocode}
@@ -536,8 +558,8 @@
\else
\xdef\main@box@height{\the\ht#3}%
\xdef\main@box@skip{\the#2}%
- \wlog@balance@debug{^^J:footnoterule found:
- main@box <ht=\main@box@height,
+ \wlog@balance@debug{^^J:footnoterule found:
+ main@box <ht=\main@box@height,
skip=\main@box@skip>
}%
\global\let\check@@footnoterule@@box\@gobblethree
@@ -569,8 +591,8 @@
\let\initial@check@@baselineskip@@skip\check@@baselineskip@@skip
% \end{macrocode}
%
-% In the case we found footnote it is necessary to look for the last skip
-% between text lines again. For that we use
+% In the case we found footnote it is necessary to look for the last skip
+% between text lines again. For that we use
% |\reset@check@@baselineskip@@skip|. It activates |\check@@baselineskip@@skip|.
%
% \begin{macrocode}
@@ -693,7 +715,17 @@
\ifdim\flushend@@lastskip@b>\topskip
\xdef\top@@section@skip{\the\flushend@@lastskip@b}%
\fi
- \ifdim\ht\flushend@@varbox@a>2\topskip
+ \ifdim\var@@temp@loop=\ht\flushend@@varbox@a\relax
+ \advance\var@@loop@iter\@ne
+ \fi
+ \var@@temp@loop=\ht\flushend@@varbox@a\relax
+ \ifnum\var@@loop@iter<3\relax
+ \wlog@balance@debug{analyze right col: iteration \number\var@@loop@iter; ht \the\var@@temp@loop}%
+ \else
+ \wlog@balance@debug{analyze right col loop limit!}%
+ \ht\flushend@@varbox@a=\z@
+ \fi
+ \ifdim\ht\flushend@@varbox@a>2\topskip
\setbox\flushend@@tempbox@c\vbox{\unvbox\flushend@@varbox@a}%
\repeat
\fi
@@ -705,7 +737,7 @@
%
% \begin{macro}{\combine@columns@for@balance}
%
-% Collects both columns to one box removing left column footnotes
+% Collects both columns to one box removing left column footnotes
% and right column top float and adding right skip in between them.
%
% \begin{macrocode}
@@ -725,9 +757,11 @@
\setbox\@tempboxa\vbox{%
\unvbox\flushend@@varbox@a
\unskip\unkern\unpenalty
+ \hrule\@height\flushend@@page@rule width\columnwidth
+ \vskip-\flushend@@page@rule
+ \hrule\@height\z@ width\columnwidth
\vskip\flushend@@lastskip@c
\the\atColsBreak
- \hrule\@height\flushend@@page@rule width\columnwidth
\ifdim\top@@section@skip>\top@@skip@@limit
\vskip\top@@section@skip
\fi
@@ -741,11 +775,12 @@
\else
%% Ignore baselineskip value on column break
\setbox\@tempboxa\vbox{%
- \unvbox\@leftcolumn
- \setbox\z@\lastbox
+ \unvbox\flushend@@varbox@a
\unskip\unkern\unpenalty
- \the\atColsBreak
\hrule\@height\flushend@@page@rule width\columnwidth
+ \vskip-\flushend@@page@rule
+ \hrule\@height\z@ width\columnwidth
+ \the\atColsBreak
\unvbox\@outputbox
\remove@lastbox@at@balancing
\the\atColsEnd
@@ -758,11 +793,11 @@
% \begin{macro}{\set@outputbox@with@footnote}
%
% Calculates break position and formats balanced columns in the |\@outputbox|
-% with footnotes.
+% with footnotes.
%
% \begin{macrocode}
\def\set@outputbox@with@footnote{%
- %% footnote in left column
+ %% footnote in left column
\@tempdimb\ht\@tempboxa
\ifdim\top@@floatbox@skip>\z@
\advance\@tempdimb \top@@floatbox@skip
@@ -819,6 +854,8 @@
\vss
}%
\hrule\@height\flushend@@page@rule width\textwidth
+ \vskip-\flushend@@page@rule
+ \hrule\@height\z@ width\columnwidth
\vss
}%
\global\ht\@leftcolumn=\the\@tempdima
@@ -868,11 +905,11 @@
% \begin{macro}{\set@outputbox@without@footnote}
%
% Calculates break position and formats balanced columns in the |\@outputbox|
-% without footnotes.
+% without footnotes.
%
% \begin{macrocode}
\def\set@outputbox@without@footnote{%
- %% no footnote in left column
+ %% no footnote in left column
\@tempdimb \ht\@tempboxa
\ifdim\top@@floatbox@skip>\z@
\advance\@tempdimb \top@@floatbox@skip
@@ -919,6 +956,8 @@
\setbox\@leftcolumn\vbox to\@tempdima{%
\vbox to\@tempdimb{\unvbox\flushend@@varbox@c\vss}%
\hrule\@height\flushend@@page@rule width\textwidth
+ \vskip-\flushend@@page@rule
+ \hrule\@height\z@ width\textwidth
\vss
}%
\global\ht\@leftcolumn=\the\@tempdima
@@ -963,51 +1002,70 @@
% Columns balancing of the twocolumn mode page (modern algorithm).
% It is maybe not so safe for text moving or missing at all
% as it uses some heuristic technique to find footnotes, last skip between lines
-% at left column and floats or section like heads at right column top
-% for replacing them (except heads of course) to other places in text.
-%
+% at left column and floats or section like heads at right column top
+% for replacing them (except heads of course) to other places in text.
+%
% \begin{macrocode}
\def\last@outputdblcol@modern{%
\if@firstcolumn
\global \@firstcolumnfalse
- \global \setbox\@leftcolumn \box\@outputbox
+ \global\setbox\@leftcolumn\copy\@outputbox
+ \splitmaxdepth\maxdimen
+ \vbadness\maxdimen
+ \setbox\@outputbox\vbox{\unvbox\@outputbox\unskip}%
+ \setbox\@outputbox\vsplit\@outputbox to\maxdimen
+ \toks@\expandafter{\topmark}%
+ \xdef\@firstcoltopmark{\the\toks@}%
+ \toks@\expandafter{\splitfirstmark}%
+ \xdef\@firstcolfirstmark{\the\toks@}%
+ \ifx\@firstcolfirstmark\@empty
+ \global\let\@setmarks\relax
+ \else
+ \gdef\@setmarks{%
+ \let\firstmark\@firstcolfirstmark
+ \let\topmark\@firstcoltopmark
+ }%
+ \fi
\else
\global \@firstcolumntrue
\@tempdima\ht\@leftcolumn
+ \advance\@tempdima by\dp\@leftcolumn
\set@split@topskip@to\topskip
\var@@temp@spread=\wd\@outputbox
\get@@footnoterule@@box
\xdef\main@box@height{\the\ht\@leftcolumn}%
\xdef\main@box@skip{\z@}%
- \global\flushend@@lastskip@c\z@
- \setbox\flushend@@varbox@a\vbox{\unvcopy\@leftcolumn}%
+ \reset@check@@baselineskip@@skip\relax\relax\flushend@@lastskip@c
+ \setbox\flushend@@varbox@a\vbox{\unvcopy\@leftcolumn}%
+ \var@@loop@iter\z@ \var@@temp@loop\z@
\analyze@leftcolumn@box\flushend@@varbox@a
- \setbox\flushend@@varbox@a\vbox{\unvcopy\@outputbox}%
+ \setbox\flushend@@varbox@a\vbox{\unvcopy\@outputbox}%
+ \var@@loop@iter\z@ \var@@temp@loop\z@
\analyze@rightcolumn@box\flushend@@varbox@a
- \ifdim\main@box@skip>\z@
- %% footnote in left column
+ \ifdim\main@box@skip>\z@
+ %% footnote in left column
\set@split@topskip@to\z@
\setbox\flushend@@varbox@a\vsplit\@leftcolumn to\main@box@height
- \else
- %% no footnote in left column
+ \else
+ %% no footnote in left column
\setbox\flushend@@varbox@a\box\@leftcolumn
\fi
- \ifdim\var@@temp@spread>\z@
+ \ifdim\var@@temp@spread>\z@
%% rightcolumn non empty
\combine@columns@for@balance
- \else
+ \else
%% rightcolumn empty
\setbox\@tempboxa\vbox{%
\unvbox\flushend@@varbox@a
\remove@lastbox@at@balancing
\the\atColsEnd
}%
- \fi
+ \fi
\ifdim\main@box@skip>\z@
- %% footnote in left column
+ %% footnote in left column
\set@outputbox@with@footnote
\else
- %% no footnote in left column
+ %% no footnote in left column
\set@outputbox@without@footnote
\fi
\setbox\@outputbox \vbox {%
@@ -1028,6 +1086,7 @@
\setbox\@outputbox\vbox{\box\hold@viper\box\@outputbox}%
\fi
\@combinedblfloats
+ \csname @setmarks\endcsname
\@outputpage
\begingroup
\@dblfloatplacement
@@ -1050,9 +1109,9 @@
% \begin{macro}{\last@outputdblcol@old}
%
% Columns balancing of the twocolumn mode page (ancient algorithm).
-% It is maybe not so good in some cases but maybe more safe for text
+% It is maybe not so good in some cases but maybe more safe for text
% moving or missing at all.
-%
+%
% \begin{macrocode}
\def\last@outputdblcol@ancient{%
\if@firstcolumn
@@ -1096,6 +1155,8 @@
\unskip\unpenalty
\vskip\flushend@@lastskip@c
\hrule\@height\flushend@@page@rule width\columnwidth
+ \vskip-\flushend@@page@rule
+ \hrule\@height\z@ width\textwidth
\the\atColsBreak
\unvbox\@outputbox
\remove@lastbox@at@balancing
@@ -1107,6 +1168,8 @@
\setbox\z@\lastbox
\unskip
\hrule\@height\flushend@@page@rule width\columnwidth
+ \vskip-\flushend@@page@rule
+ \hrule\@height\z@ width\textwidth
\the\atColsBreak
\unvbox\@outputbox
\remove@lastbox@at@balancing
@@ -1132,8 +1195,8 @@
\vsplit\flushend@@tempbox@a to\@tempdimb
\vss
}%
- \wlog{(2)Left:\the\ht\flushend@@tempbox@c\space
- Right:\the\ht\flushend@@tempbox@a\space
+ \wlog{(2)Left:\the\ht\flushend@@tempbox@c\space
+ Right:\the\ht\flushend@@tempbox@a\space
Output:\the\@tempdimb
}%
\ifdim\ht\flushend@@tempbox@c<\ht\flushend@@tempbox@a
@@ -1156,6 +1219,8 @@
}%
}%
\hrule\@height\flushend@@page@rule
+ \vskip-\flushend@@page@rule
+ \hrule\@height\z@ width\textwidth
\vss
}%
\setbox\@outputbox\vbox to\@tempdima{%
@@ -1166,6 +1231,8 @@
}%
}%
\hrule\@height\flushend@@page@rule
+ \vskip-\flushend@@page@rule
+ \hrule\@height\z@ width\textwidth
\vss
}%
\setbox\@outputbox\vbox{%
@@ -1235,7 +1302,7 @@
\def\raggedcolsend{\global\let\@outputdblcol\saved@orig@@outputdblcol}
% \end{macrocode}
%
-% \cs{flushend} is used to switch on column balancing on the last page.
+% \cs{flushend} is used to switch on column balancing on the last page.
% It is used by default.
%
% \begin{macrocode}
diff --git a/macros/latex/contrib/sttools/flushend.pdf b/macros/latex/contrib/sttools/flushend.pdf
index 00a66aa208..0be3cddabc 100644
--- a/macros/latex/contrib/sttools/flushend.pdf
+++ b/macros/latex/contrib/sttools/flushend.pdf
Binary files differ