texlive[71755] Master/texmf-dist: synthslant (9jul24)

commits+karl at tug.org commits+karl at tug.org
Tue Jul 9 22:05:09 CEST 2024


Revision: 71755
          https://tug.org/svn/texlive?view=revision&revision=71755
Author:   karl
Date:     2024-07-09 22:05:08 +0200 (Tue, 09 Jul 2024)
Log Message:
-----------
synthslant (9jul24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/synthslant/LICENSE
    trunk/Master/texmf-dist/doc/latex/synthslant/README.md
    trunk/Master/texmf-dist/doc/latex/synthslant/shear-transform.mp
    trunk/Master/texmf-dist/doc/latex/synthslant/synthslant-gauge.pdf
    trunk/Master/texmf-dist/doc/latex/synthslant/synthslant-gauge.tex
    trunk/Master/texmf-dist/doc/latex/synthslant/synthslant.ist
    trunk/Master/texmf-dist/doc/latex/synthslant/synthslant.pdf
    trunk/Master/texmf-dist/doc/latex/synthslant/title.mp
    trunk/Master/texmf-dist/source/latex/synthslant/Makefile
    trunk/Master/texmf-dist/source/latex/synthslant/synthslant.dtx
    trunk/Master/texmf-dist/source/latex/synthslant/synthslant.ins
    trunk/Master/texmf-dist/tex/latex/synthslant/synthslant.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/synthslant/synthslant-minimal-test.tex
    trunk/Master/texmf-dist/doc/latex/synthslant/synthslant.gst

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/latex/synthslant/RELEASE-HOWTO.md
    trunk/Master/texmf-dist/doc/latex/synthslant/index.md

Modified: trunk/Master/texmf-dist/doc/latex/synthslant/LICENSE
===================================================================
--- trunk/Master/texmf-dist/doc/latex/synthslant/LICENSE	2024-07-09 20:04:54 UTC (rev 71754)
+++ trunk/Master/texmf-dist/doc/latex/synthslant/LICENSE	2024-07-09 20:05:08 UTC (rev 71755)
@@ -355,11 +355,11 @@
   %% Copyright 2005 M. Y. Name
   %
   % This work may be distributed and/or modified under the
-  % conditions of the LaTeX Project Public License, either version 1.3
+  % conditions of the LaTeX Project Public License, either version 1.3c
   % of this license or (at your option) any later version.
   % The latest version of this license is in
-  %   http://www.latex-project.org/lppl.txt
-  % and version 1.3 or later is part of all distributions of LaTeX
+  %   https://www.latex-project.org/lppl.txt
+  % and version 1.3c or later is part of all distributions of LaTeX
   % version 2005/12/01 or later.
   %
   % This work has the LPPL maintenance status `maintained'.

Modified: trunk/Master/texmf-dist/doc/latex/synthslant/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/synthslant/README.md	2024-07-09 20:04:54 UTC (rev 71754)
+++ trunk/Master/texmf-dist/doc/latex/synthslant/README.md	2024-07-09 20:05:08 UTC (rev 71755)
@@ -1,3 +1,6 @@
+![distcheck status](https://github.com/cspiel/synthslant/actions/workflows/distcheck.yml/badge.svg)
+
+
 #  SynthSlant – Synthetic slanting of glyphs
 
 LaTeX package `synthslant` slants short pieces of text to the right or to the left.

Deleted: trunk/Master/texmf-dist/doc/latex/synthslant/RELEASE-HOWTO.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/synthslant/RELEASE-HOWTO.md	2024-07-09 20:04:54 UTC (rev 71754)
+++ trunk/Master/texmf-dist/doc/latex/synthslant/RELEASE-HOWTO.md	2024-07-09 20:05:08 UTC (rev 71755)
@@ -1,51 +0,0 @@
-#  How to prepare a new release
-
-... and not make too many mistakes.
-
-
-1. Check that the work-area is clean with respect to **git**-tracked
-   files.
-
-   ``` git status ```
-
-1. Update the date stamp of `\ProvidesPackage`.
-
-1. (Temporarily) Zero the `\overfullrule`s of the documentation and
-   the example files.
-
-1. Thoroughly clean the work-area:
-
-   ```make maintainer-clean```
-
-1. Rebuild:
-
-   ```make```
-
-1. Check that all _*.sty_ and _*.pdf_ files are in good shape.
-
-1. Push the documentation files created in the previous step down into
-   the *docs* directory:
-
-   ```make update-docs```
-
-1. Undo the `\overfullrule` change.
-
-1. Commit the changes:
-
-   ```
-   git add .
-   ```
-
-   and finally
-
-   ```
-   git commit
-   ```
-
-1. Tag the commit with the version string of `\ProvidesPackage`:
-
-   ```git tag v1.23```
-
-1. Push the changes to the public repository:
-
-   ```git push origin master --tags```

Deleted: trunk/Master/texmf-dist/doc/latex/synthslant/index.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/synthslant/index.md	2024-07-09 20:04:54 UTC (rev 71754)
+++ trunk/Master/texmf-dist/doc/latex/synthslant/index.md	2024-07-09 20:05:08 UTC (rev 71755)
@@ -1,4 +0,0 @@
-### Package Documentation
-
-- Comprehensive `synthslant` documentation: [synthslant.pdf](https://cspiel.github.io/synthslant/synthslant.pdf)
-- `synthslant` test and demonstration: [synthslant-gauge.pdf](https://cspiel.github.io/synthslant/synthslant-gauge.pdf)

Modified: trunk/Master/texmf-dist/doc/latex/synthslant/shear-transform.mp
===================================================================
--- trunk/Master/texmf-dist/doc/latex/synthslant/shear-transform.mp	2024-07-09 20:04:54 UTC (rev 71754)
+++ trunk/Master/texmf-dist/doc/latex/synthslant/shear-transform.mp	2024-07-09 20:05:08 UTC (rev 71755)
@@ -11,11 +11,11 @@
 %% Copyright (C) 2024 by Ch. L. Spiel
 %% 
 %% This work may be distributed and/or modified under the conditions
-%% of the LaTeX Project Public License, either version 1.3 of this
+%% of the LaTeX Project Public License, either version 1.3c of this
 %% license or (at your option) any later version.  The latest version
 %% of this license is in
-%%     http://www.latex-project.org/lppl.txt
-%% and version 1.3 or later is part of all distributions of LaTeX
+%%     https://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
 %% version 2003/12/01 or later.
 %% 
 %% This work has the LPPL maintenance status `maintained'.

Modified: trunk/Master/texmf-dist/doc/latex/synthslant/synthslant-gauge.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/synthslant/synthslant-gauge.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/synthslant/synthslant-gauge.tex	2024-07-09 20:04:54 UTC (rev 71754)
+++ trunk/Master/texmf-dist/doc/latex/synthslant/synthslant-gauge.tex	2024-07-09 20:05:08 UTC (rev 71755)
@@ -11,11 +11,11 @@
 %% Copyright (C) 2024 by Ch. L. Spiel
 %% 
 %% This work may be distributed and/or modified under the conditions
-%% of the LaTeX Project Public License, either version 1.3 of this
+%% of the LaTeX Project Public License, either version 1.3c of this
 %% license or (at your option) any later version.  The latest version
 %% of this license is in
-%%     http://www.latex-project.org/lppl.txt
-%% and version 1.3 or later is part of all distributions of LaTeX
+%%     https://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
 %% version 2003/12/01 or later.
 %% 
 %% This work has the LPPL maintenance status `maintained'.
@@ -134,7 +134,7 @@
 \setlength{\headheight}{0pt}
 \setlength{\headsep}{0pt}
 
-\setlength{\overfullrule}{3pt}
+\setlength{\overfullrule}{0pt}
 
 \pagestyle{plain}
 

Added: trunk/Master/texmf-dist/doc/latex/synthslant/synthslant-minimal-test.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/synthslant/synthslant-minimal-test.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/synthslant/synthslant-minimal-test.tex	2024-07-09 20:05:08 UTC (rev 71755)
@@ -0,0 +1,39 @@
+%%
+%% This is file `synthslant-minimal-test.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% synthslant.dtx  (with options: `minimal-test')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright (C) 2024 by Ch. L. Spiel
+%% 
+%% This work may be distributed and/or modified under the conditions
+%% of the LaTeX Project Public License, either version 1.3c of this
+%% license or (at your option) any later version.  The latest version
+%% of this license is in
+%%     https://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2003/12/01 or later.
+%% 
+%% This work has the LPPL maintenance status `maintained'.
+%% 
+%% The Current Maintainer of this work is Ch. L. Spiel.
+%% 
+%% This work consists of the files synthslant.dtx and synthslant.ins
+%% and the derived files synthslant.sty, synthslant-gauge.tex,
+%% shear-transform.mp, and title.mp.
+%% 
+%% 
+\documentclass{minimal}
+
+\usepackage{synthslant}
+
+\begin{document}
+\textsynthslant{abc}
+\end{document}
+\endinput
+%%
+%% End of file `synthslant-minimal-test.tex'.


Property changes on: trunk/Master/texmf-dist/doc/latex/synthslant/synthslant-minimal-test.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/synthslant/synthslant.gst
===================================================================
--- trunk/Master/texmf-dist/doc/latex/synthslant/synthslant.gst	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/synthslant/synthslant.gst	2024-07-09 20:05:08 UTC (rev 71755)
@@ -0,0 +1,44 @@
+%%
+%% This is file `synthslant.gst',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% synthslant.dtx  (with options: `changes-style')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright (C) 2024 by Ch. L. Spiel
+%% 
+%% This work may be distributed and/or modified under the conditions
+%% of the LaTeX Project Public License, either version 1.3c of this
+%% license or (at your option) any later version.  The latest version
+%% of this license is in
+%%     https://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2003/12/01 or later.
+%% 
+%% This work has the LPPL maintenance status `maintained'.
+%% 
+%% The Current Maintainer of this work is Ch. L. Spiel.
+%% 
+%% This work consists of the files synthslant.dtx and synthslant.ins
+%% and the derived files synthslant.sty, synthslant-gauge.tex,
+%% shear-transform.mp, and title.mp.
+%% 
+%% 
+actual            '='
+delim_0           "\\nobreak\\enspace"
+delim_1           "\\nobreak\\enspace"
+delim_2           "\\nobreak\\enspace"
+heading_prefix    "\\pagebreak[3]\\smallskip\n\n{\\sffamily\\bfseries\\large "
+heading_suffix    "}\\nopagebreak\n"
+headings_flag     0
+item_x1           "\\efill\n\\subitem "
+item_x2           "\\ "
+keyword           "\\glossaryentry"
+level             '>'
+line_max          65536
+postamble         "\n\\end{theglossary}\n"
+preamble          "\\begin{theglossary}\n  \\makeatletter\\scan at allowedfalse"
+quote             '!'


Property changes on: trunk/Master/texmf-dist/doc/latex/synthslant/synthslant.gst
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/synthslant/synthslant.ist
===================================================================
--- trunk/Master/texmf-dist/doc/latex/synthslant/synthslant.ist	2024-07-09 20:04:54 UTC (rev 71754)
+++ trunk/Master/texmf-dist/doc/latex/synthslant/synthslant.ist	2024-07-09 20:05:08 UTC (rev 71755)
@@ -11,11 +11,11 @@
 %% Copyright (C) 2024 by Ch. L. Spiel
 %% 
 %% This work may be distributed and/or modified under the conditions
-%% of the LaTeX Project Public License, either version 1.3 of this
+%% of the LaTeX Project Public License, either version 1.3c of this
 %% license or (at your option) any later version.  The latest version
 %% of this license is in
-%%     http://www.latex-project.org/lppl.txt
-%% and version 1.3 or later is part of all distributions of LaTeX
+%%     https://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
 %% version 2003/12/01 or later.
 %% 
 %% This work has the LPPL maintenance status `maintained'.
@@ -28,11 +28,12 @@
 %% 
 %% 
 actual            '='
+delim_0           "\\nobreak\\enspace"
+delim_1           "\\nobreak\\enspace"
+delim_2           "\\nobreak\\enspace"
 heading_prefix    "\\pagebreak[3]\\smallskip\n\n{\\sffamily\\bfseries\\large "
 heading_suffix    "}\\nopagebreak\n"
 headings_flag     1
 level             '>'
+line_max          65536
 quote             '!'
-\endinput
-%%
-%% End of file `synthslant.ist'.

Modified: trunk/Master/texmf-dist/doc/latex/synthslant/synthslant.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/synthslant/title.mp
===================================================================
--- trunk/Master/texmf-dist/doc/latex/synthslant/title.mp	2024-07-09 20:04:54 UTC (rev 71754)
+++ trunk/Master/texmf-dist/doc/latex/synthslant/title.mp	2024-07-09 20:05:08 UTC (rev 71755)
@@ -11,11 +11,11 @@
 %% Copyright (C) 2024 by Ch. L. Spiel
 %% 
 %% This work may be distributed and/or modified under the conditions
-%% of the LaTeX Project Public License, either version 1.3 of this
+%% of the LaTeX Project Public License, either version 1.3c of this
 %% license or (at your option) any later version.  The latest version
 %% of this license is in
-%%     http://www.latex-project.org/lppl.txt
-%% and version 1.3 or later is part of all distributions of LaTeX
+%%     https://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
 %% version 2003/12/01 or later.
 %% 
 %% This work has the LPPL maintenance status `maintained'.

Modified: trunk/Master/texmf-dist/source/latex/synthslant/Makefile
===================================================================
--- trunk/Master/texmf-dist/source/latex/synthslant/Makefile	2024-07-09 20:04:54 UTC (rev 71754)
+++ trunk/Master/texmf-dist/source/latex/synthslant/Makefile	2024-07-09 20:05:08 UTC (rev 71755)
@@ -19,8 +19,9 @@
 DVIPS_FLAGS := -d1 # debug \special{}
 
 
-LATEX := /usr/bin/env max_print_line=2147483647 pdflatex
-LATEX_FLAGS := -file-line-error -halt-on-error -interaction=nonstopmode
+LATEX_PROPER := pdflatex
+LATEX := /usr/bin/env max_print_line=2147483647 $(LATEX_PROPER)
+LATEX_FLAGS := -file-line-error -halt-on-error -interaction=nonstopmode -output-directory=.
 LATEX_RERUN_TRIGGER := '^Package rerunfilecheck Warning: File [^ ]* has changed'
 LATEX_WARNING := '^LaTeX (|[A-Za-z0-9_]* )Warning:'
 
@@ -33,21 +34,12 @@
 METAPOST_FLAGS := -file-line-error -interaction=nonstopmode -tex=latex
 
 
-SPELLCHECK := aspell
-SPELLCHECK_FLAGS :=  \
-    --add-tex-command='citenum p'  --add-tex-command='code p'  \
-    --add-tex-command='Cref p' --add-tex-command='cref p'  \
-    --add-tex-command='cs p'  \
-    --add-tex-command='DescribeEnv p' --add-tex-command='DescribeMacro p'  \
-    --add-tex-command='marg p' --add-tex-command='meta p'  \
-    --add-tex-command='oarg p'  \
-    --lang=en_US --mode=tex
+PROJECT_NAME := synthslant
+SOURCE_FILES := LICENSE Makefile README.md synthslant.dtx synthslant.ins
+DOCUMENTATION_FILES := synthslant-gauge.pdf synthslant.pdf
 
 
-SOURCE_FILES := LICENSE Makefile synthslant.dtx synthslant.ins
 
-
-
 .PHONY: all
 all: sty pdf
 
@@ -57,7 +49,7 @@
 
 
 .PHONY: pdf
-pdf: doc gauge
+pdf: doc gauge test
 
 
 .PHONY: doc
@@ -68,21 +60,44 @@
 gauge: synthslant-gauge.pdf
 
 
-.PHONY: cpio
-cpio:
-	cd ..;  \
-        echo $(addprefix synthslant/,$(SOURCE_FILES))  |  \
-            cpio -o  |  \
-            gzip  > "synthslant-$$(date +%Y-%m-%d).cpio.gz"
+.PHONY: test
+test: synthslant-minimal-test.pdf
 
 
-.PHONY: tar
-tar:
-	cd ..;  \
-        tar czf "synthslant-$$(date +%Y-%m-%d).tar.gz"  \
-          $(addprefix synthslant/,$(SOURCE_FILES))
+export TEMPORARY_DIRECTORY
 
 
+.PHONY: dist
+dist:
+	$(eval TEMPORARY_DIRECTORY := $(shell mktemp -d))
+	trap '$(RM) -r $(TEMPORARY_DIRECTORY); exit 1' HUP INT QUIT TERM;  $(MAKE) __dist
+	$(RM) -r $(TEMPORARY_DIRECTORY)
+
+
+.PHONY: __dist
+__dist: LATEX_FLAGS += -interaction=batchmode
+__dist: $(DOCUMENTATION_FILES)
+	test -d '$(TEMPORARY_DIRECTORY)'
+	test -w '$(TEMPORARY_DIRECTORY)'
+	mkdir $(TEMPORARY_DIRECTORY)/$(PROJECT_NAME)
+	cp $(SOURCE_FILES) $(TEMPORARY_DIRECTORY)/$(PROJECT_NAME)
+	mkdir $(TEMPORARY_DIRECTORY)/$(PROJECT_NAME)/docs
+	cp $(DOCUMENTATION_FILES) $(TEMPORARY_DIRECTORY)/$(PROJECT_NAME)/docs
+	tar czf $(PROJECT_NAME).tar.gz -C $(TEMPORARY_DIRECTORY) $(PROJECT_NAME)
+
+
+.PHONY: distcheck
+distcheck: LATEX_FLAGS += -interaction=batchmode
+distcheck: dist
+	$(eval TEMPORARY_DIRECTORY := $(shell mktemp -d))
+	test -d '$(TEMPORARY_DIRECTORY)'
+	test -w '$(TEMPORARY_DIRECTORY)'
+	tar xzf $(PROJECT_NAME).tar.gz -C $(TEMPORARY_DIRECTORY)
+	$(MAKE) --directory=$(TEMPORARY_DIRECTORY)/$(PROJECT_NAME) LATEX_FLAGS='$(LATEX_FLAGS)' all
+	$(RM) -r $(TEMPORARY_DIRECTORY)
+	@printf '\n\ndistcheck passed.\n'
+
+
 .PHONY: clean
 clean:
 	$(RM) ./*.aux ./*.brf ./*.dvi ./*.glg ./*.glo ./*.gls
@@ -91,6 +106,7 @@
 	$(RM) mptextmp.* mpxerr.tex
 	$(RM) README README.html RELEASE-HOWTO RELEASE-HOWTO.html
 	$(RM) compare-with-the-gimp.eps compare-with-the-gimp.png
+	$(RM) $(PROJECT_NAME).tar.gz
 
 
 .PHONY: mostlyclean
@@ -99,37 +115,29 @@
 
 .PHONY: maintainer-clean
 maintainer-clean: mostlyclean
-	$(RM) ./*.base64 ./*.ist ./*.mp ./*.sty ./*.tex
+	$(RM) ./*.base64 ./*.gst ./*.ist ./*.mp ./*.sty ./*.tex
 
 
 .PHONY: perf
 perf: synthslant-gauge.tex synthslant.sty
-	perf stat --repeat=10 -- $(LATEX) $(LATEX_FLAGS) -interaction batchmode -draftmode $<
+	perf stat --repeat=10 -- $(LATEX) $(LATEX_FLAGS) -interaction=batchmode -draftmode $<
 
 
 .PHONY: tool-check
 tool-check:
-	@printf '***  LATEX = "%s"\n' '$(LATEX)'
-	$(LATEX) --version
+	@printf '***  LATEX_PROPER = "%s"\n' '$(LATEX_PROPER)'
+	$(LATEX_PROPER) --version
+	@printf '\n\n***  BibTeX\n'
+	bibtex --version
 	@printf '\n\n***  MAKEINDEX = "%s"\n' '$(MAKEINDEX)'
-	$(MAKEINDEX) < /dev/null
+	$(MAKEINDEX)  < /dev/null
 	@printf '\n\n***  METAPOST = "%s"\n' '$(METAPOST)'
 	$(METAPOST) --version
 	@printf '\n***  BASE64 = "%s"\n' '$(BASE64)'
 	$(BASE64) --version
-	@printf '\n\nTool check passed.\n'
+	@printf '\n\ntool check passed.\n'
 
 
-.PHONY: spell-check
-spell-check:
-	@sed -e '\#<DISABLE-SPELL-CHECK/>#d'  \
-             -e '\#<DISABLE-SPELL-CHECK>#,\#</DISABLE-SPELL-CHECK>#d'  < synthslant.dtx  |  \
-	    sed -e 's/^ *%%*//'  |  \
-	    sed -e 's/\\-//g' -e 's/|[^|]*|/ /g'  |  \
-	    $(SPELLCHECK) $(SPELLCHECK_FLAGS) list  |  \
-	    sort  |  uniq  |  fmt  |  sed -e 's/ /  /g'
-
-
 .PHONY: update-docs
 update-docs: pdf
 	cp -f synthslant.pdf synthslant-gauge.pdf docs
@@ -142,9 +150,13 @@
 
 clean:  Remove some products.
 
-cpio:   In the parent directory create a cpio(1) archive of the
-        project source files whose name is time-stamped.
+dist:   Create a tar file of the project source files and the PDF
+        documentation files.  The archive is in the form and has a
+        name that CTAN prefers.
 
+distcheck: Create a tar file of the project source files, unpack it in
+        a different location and build all targets.
+
 doc:    Build "synthslant.pdf" the Syntslant documentation.
 
 gauge:  Build "synthslant-gauge.pdf" the Syntslant gauge and example
@@ -160,15 +172,22 @@
 sty:    Only extract "synthslant.sty" from "synthslant.dtx".  This
         operation requires LaTeX (-> $(LATEX)) and nothing else.
 
-tar:    In the parent directory create a tar(1) file of the project
-        source files whose name is time-stamped.
+test:   Run some tests.  Currently only compiles a minimal document
+        to check whether "synthslant.sty" contains all the necessary
+        \RequirePackage directives.
 
 tool-check: Check whether some of the required tools to build the
         project are available.
 
+update-docs: Copy the documentation files into the "docs"
+        sub-directory.
 
+
 Selected Implicit Rules
 -----------------------
+%: %.html
+        Convert HTML to plain text.  Requires w3m(1).
+
 %.dvi %.pdf: %.dtx
         Run LaTeX or pdfLaTeX (-> $(LATEX)) on dtx source until a
         fix-point is reached.
@@ -177,6 +196,9 @@
         Run LaTeX or pdfLaTeX (-> $(LATEX)) on tex file until a
         fix-point is reached.
 
+%.html: %.md
+        Convert markdown to HTML.  Requires markdown(1).
+
 %.mx.pdf: %.dvi
         Convert dvi to pdf via dvipdfmx (-> $(DVIPDFMX)).
 
@@ -187,9 +209,9 @@
 Some Explicit Rules
 -------------------
 README.html:
-        Convert "README.md" to html.  Requires markdown(1).
+        Convert "README.md" to html.
 
-README: Convert "README.html" to plain text.  Requires w3m(1).
+README: Convert "README.html" to plain text.
 
 endef
 
@@ -205,8 +227,8 @@
 
 define MAKE_INDEX_AND_GLOSSARY
 sed -e '/@/d'  < $*.idx  > ,$*.idx;  mv ,$*.idx $*.idx;  \
-$(MAKEINDEX) $(MAKEINDEX_FLAGS) -s synthslant.ist -t $*.ilg -o $*.ind $*.idx;  \
-$(MAKEINDEX) $(MAKEINDEX_FLAGS) -s gglo.ist -t $*.glg -o $*.gls $*.glo
+$(MAKEINDEX) $(MAKEINDEX_FLAGS) -s $*.ist -t $*.ilg -o $*.ind $*.idx;  \
+$(MAKEINDEX) $(MAKEINDEX_FLAGS) -s $*.gst -t $*.glg -o $*.gls $*.glo
 endef
 
 define GREP_LATEX_WARNINGS
@@ -250,7 +272,13 @@
 
 
 %.mps: %.mp
-	$(METAPOST) -s 'outputtemplate="%j.mps"' $(METAPOST_FLAGS) $<
+	$(METAPOST) -s 'outputtemplate="%j.mps"' $(METAPOST_FLAGS) $<  ||  {  \
+            printf '===  $*.log  ===\n';  \
+            cat $*.log;  \
+            printf '\n\n===  mpxerr.log  ===\n';  \
+            cat mpxerr.log;  \
+            false;  \
+        }  1>&2
 
 
 %.eps: %.png
@@ -265,7 +293,8 @@
 
 
 
-synthslant.sty synthslant.ist synthslant-gauge.tex  \
+synthslant.sty synthslant.ist  \
+synthslant-gauge.tex synthslant-minimal-test.tex  \
 compare-with-the-gimp.png.base64 shear-transform.mp title.mp:  \
   synthslant.ins synthslant.dtx
 	$(LATEX) $(LATEX_FLAGS) $<

Modified: trunk/Master/texmf-dist/source/latex/synthslant/synthslant.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/synthslant/synthslant.dtx	2024-07-09 20:04:54 UTC (rev 71754)
+++ trunk/Master/texmf-dist/source/latex/synthslant/synthslant.dtx	2024-07-09 20:05:08 UTC (rev 71755)
@@ -3,11 +3,11 @@
 %  Copyright (C) 2024 by Ch. L. Spiel
 %
 %  This work may be distributed and/or modified under the conditions
-%  of the LaTeX Project Public License, either version 1.3 of this
+%  of the LaTeX Project Public License, either version 1.3c of this
 %  license or (at your option) any later version.  The latest version
 %  of this license is in
-%      http://www.latex-project.org/lppl.txt
-%  and version 1.3 or later is part of all distributions of LaTeX
+%      httpc://www.latex-project.org/lppl.txt
+%  and version 1.3c or later is part of all distributions of LaTeX
 %  version 2003/12/01 or later.
 %
 %  \fi
@@ -26,7 +26,6 @@
 
 \PassOptionsToClass{a4paper}{article}
 \PassOptionsToPackage{hyperfootnotes=false}{hyperref}
-\PassOptionsToPackage{charter, scale=1.06}{newtxmath}
 \PassOptionsToPackage{dvipsnames}{xcolor}
 
 \usepackage{amsmath}
@@ -52,6 +51,7 @@
   \newcommand*{\textls}[2][]{#2}
 \fi
 \usepackage{needspace}
+\usepackage[section]{placeins}
 \usepackage{ragged2e}
 \usepackage{setspace}
 \usepackage[slant=.18, negslant=-.16]{synthslant}
@@ -65,7 +65,7 @@
 \usepackage[default, lining, proportional, regular, semibold]{sourceserifpro}
 \usepackage[lining, proportional, regular, semibold]{sourcesanspro}
 \usepackage[lining, regular]{sourcecodepro}
-\usepackage[xcharter]{newtxmath}
+\usepackage[scaled=1.08, uprightscript, xcharter]{newtxmath}
 \setstretch{1.04166}% \baselineskip: 12.5pt
 
 
@@ -74,15 +74,15 @@
 \newcommand*{\fontclan}{\expandafter\@get at fontclan\f at family\relax}
 \makeatother
 
-\newcommand*{\proportionalliningfigures}{\fontfamily{\fontclan-LF}\selectfont}
-\newcommand*{\proportionaloldstylefigures}{\fontfamily{\fontclan-OsF}\selectfont}
-\newcommand*{\tabularliningfigures}{\fontfamily{\fontclan-TLF}\selectfont}
-\newcommand*{\tabularoldstylefigures}{\fontfamily{\fontclan-TOsF}\selectfont}
+\DeclareRobustCommand{\proportionalliningfigures}{\fontfamily{\fontclan-LF}\selectfont}
+\DeclareRobustCommand{\proportionaloldstylefigures}{\fontfamily{\fontclan-OsF}\selectfont}
+\DeclareRobustCommand{\tabularliningfigures}{\fontfamily{\fontclan-TLF}\selectfont}
+\DeclareRobustCommand{\tabularoldstylefigures}{\fontfamily{\fontclan-TOsF}\selectfont}
 
-\newcommand*{\textdenominator}[1]{{\fontfamily{\fontclan-Dnom}\selectfont #1}}
-\newcommand*{\textinferior}[1]{{\fontfamily{\fontclan-Inf}\selectfont #1}}
-\newcommand*{\textnumerator}[1]{{\fontfamily{\fontclan-Numr}\selectfont #1}}
-\newcommand*{\textsuperior}[1]{{\fontfamily{\fontclan-Sup}\selectfont #1}}
+\DeclareRobustCommand{\textdenominator}[1]{{\fontfamily{\fontclan-Dnom}\selectfont #1}}
+\DeclareRobustCommand{\textinferior}[1]{{\fontfamily{\fontclan-Inf}\selectfont #1}}
+\DeclareRobustCommand{\textnumerator}[1]{{\fontfamily{\fontclan-Numr}\selectfont #1}}
+\DeclareRobustCommand{\textsuperior}[1]{{\fontfamily{\fontclan-Sup}\selectfont #1}}
 
 \newcommand*{\nativetextfraction}[2]
             {\mbox{\textnumerator{#1}\textfractionsolidus\textdenominator{#2}}}
@@ -92,22 +92,24 @@
 \newenvironment*{tabfigures}
                 {\edef\rmdefault{\fontclan-T\sourceserifpro at figurestyle}\rm\ignorespaces}
                 {\ignorespacesafterend}
-
-\newcommand*{\elseries}{\def\mdseries at rm{el}\def\mdseries at sf{el}\def\mdseries at tt{el}}
-\newcommand*{\textel}[1]{{\elseries\textmd{#1}}}
-\newcommand*{\lseries}{\def\mdseries at rm{l}\def\mdseries at sf{l}\def\mdseries at tt{l}}
-\newcommand*{\textl}[1]{{\lseries\textmd{#1}}}
-%%--\newcommand*{\mdseries}{\def\mdseries at rm{m}\def\mdseries at sf{m}\def\mdseries at tt{m}}
-%%--\newcommand*{\textmd}[1]{{\mdseries\textmd{#1}}}
-\newcommand*{\sbseries}{\def\bfseries at rm{sb}\def\bfseries at sf{sb}\def\bfseries at tt{sb}}
-\newcommand*{\textsb}[1]{{\sbseries\textbf{#1}}}
-\newcommand*{\bseries}{\def\bfseries at rm{b}\def\bfseries at sf{b}\def\bfseries at tt{b}}
-\newcommand*{\textb}[1]{{\bseries\textbf{#1}}}
-\newcommand*{\ebseries}{\def\bfseries at rm{k}\def\bfseries at sf{eb}\def\bfseries at tt{k}}
-\newcommand*{\texteb}[1]{{\ebseries\textbf{#1}}}
 \makeatother
 
+\DeclareRobustCommand{\elseries}{\fontseries{el}\selectfont}
+\DeclareTextFontCommand{\textel}{\elseries}
+\DeclareRobustCommand{\lseries}{\fontseries{l}\selectfont}
+\DeclareTextFontCommand{\textl}{\lseries}
+%%--\DeclareRobustCommand{\mdseries}{\fontseries{m}\selectfont}
+%%--\DeclareTextFontCommand{\textmd}{\mdseries}
+\DeclareRobustCommand{\sbseries}{\fontseries{sb}\selectfont}
+\DeclareTextFontCommand{\textsb}{\sbseries}
+\DeclareRobustCommand{\bseries}{\fontseries{b}\selectfont}
+\DeclareTextFontCommand{\textb}{\bseries}
+\DeclareRobustCommand{\ebseries}{\fontseries{eb}\selectfont}
+\DeclareTextFontCommand{\texteb}{\ebseries}
+\DeclareRobustCommand{\ubseries}{\fontseries{k}\selectfont}
+\DeclareTextFontCommand{\textub}{\ubseries}
 
+
 \usepackage{cleveref}
 
 
@@ -119,7 +121,7 @@
   citecolor = blue,
   colorlinks = true,
   linkcolor = blue,
-  linktocpage = false,
+  linktocpage = true,
   pdfauthor={Dr. Christoph L. Spiel},
   pdfcreationdate={\pdffiledate},
   pdfkeywords={LaTeX, font, italic, oblique, slant, upright},
@@ -131,9 +133,94 @@
 }
 
 
+\SetExtraKerning[context=drop-left-sidebearing, name=source-code-normal, unit=space]
+                {font={T1/SourceCodePro-LF/m/n/44, T1/SourceCodePro-TLF/m/n/44}}
+                {
+                  1={-150,},
+                  2={-120,},
+                  3={-120,},
+                  4={-40,},
+                  A={-100,},
+                  B={-170,}
+                }
+
+\newlength{\sectiontocindent}
+\newlength{\sectionnumberwidth}
+\newlength{\subsectiontocindent}
+\newlength{\subsectionnumberwidth}
+\newlength{\subsubsectiontocindent}
+\newlength{\subsubsectionnumberwidth}
+
+\setlength{\sectiontocindent}{0pt}
+\setlength{\sectionnumberwidth}{40pt}
+\setlength{\subsectiontocindent}{40pt}
+\setlength{\subsectionnumberwidth}{25pt}
+\setlength{\subsubsectiontocindent}{65pt}
+\setlength{\subsubsectionnumberwidth}{30pt}
+
 \makeatletter
-\renewcommand*{\@dotsep}{10000} % suppress leaders
-\patchcmd{\@dottedtocline}{\normalfont}{\bfseries}{\relax}{\PatchingFailed}
+\renewcommand*{\l at section}[2]
+              {\ifnum \c at tocdepth >\z@
+                 \addpenalty\@secpenalty
+                 \addvspace{1.0em \@plus\p@}%
+                 \setlength{\@tempdima}{\sectionnumberwidth}%
+                 \begingroup
+                   \def\numberline##1{\hb at xt@\@tempdima{%
+                       \tt\lseries
+                       \fontsize{44}{0}\selectfont
+                       \microtypecontext{kerning=drop-left-sidebearing}%
+                       \iffalse\raisebox{-30pt}[0pt][0pt]{\rule{0.1pt}{40pt}}\fi
+                       \textcolor{customred3}{##1}%
+                       \hfil}}%
+                   \parindent \z@
+                   \rightskip \@pnumwidth
+                   \parfillskip -\@pnumwidth
+                   \leavevmode
+                   \advance\leftskip\@tempdima
+                   \hskip -\leftskip
+                   \bfseries
+                   \iffalse
+                     \nobreak\hfil
+                     \nobreak\hb at xt@\@pnumwidth{\hss #2\kern-\p@\kern\p@}%
+                   \else
+                     {\sffamily\large #1}\quad
+                     {#2}\hfil\hbox{}
+                   \fi
+                   \par
+                 \endgroup
+               \fi}
+
+\renewcommand*{\@dottedtocline}[5]
+              {\ifnum #1>\c at tocdepth
+               \else
+                 \vskip \z@ \@plus.2\p@
+                 \begingroup
+                 \leftskip #2\relax
+                 \rightskip \@tocrmarg
+                 \parfillskip -\rightskip
+                 \parindent #2\relax\@afterindenttrue
+                 \interlinepenalty\@M
+                 \leavevmode
+                 \@tempdima #3\relax
+                 \advance\leftskip \@tempdima
+                 \null\nobreak
+                 \hskip -\leftskip
+                 {#4}\nobreak
+                 \iffalse
+                   \leaders\hbox{$\m at th \mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$}\hfill
+                   \nobreak\hb at xt@\@pnumwidth{\hfil\normalfont \normalcolor #5\kern-\p@\kern\p@}%
+                 \else
+                   \hbox{\quad\normalfont\bfseries #5}\nobreak\hfill\hbox{}%
+                 \fi
+                 \par
+                 \endgroup
+               \fi}
+
+\renewcommand*{\l at subsection}{\@dottedtocline{2}{\subsectiontocindent}{\subsectionnumberwidth}}
+\renewcommand*{\l at subsubsection}{\@dottedtocline{3}{\subsubsectiontocindent}{\subsubsectionnumberwidth}}
+\newrobustcmd*{\tocsquashedsubsections}
+              {\def\l at subsection{\@dottedtocline{2}{0pt}{\subsubsectionnumberwidth}}%
+               \def\l at subsubsection{\@dottedtocline{3}{0pt}{\subsubsectionnumberwidth}}}
 \makeatother
 
 
@@ -156,8 +243,10 @@
 
 \newcommand*{\floatcaptionwidth}{.79\textwidth}
 
-\captionsetup[figure]{font=small, justification=centerlast, labelfont=sc, width=\floatcaptionwidth}
-\captionsetup[table]{font=small, justification=centerlast, labelfont=sc, width=\floatcaptionwidth}
+\captionsetup[figure]{font=small, justification=centerlast,
+                      labelfont=sc, width=\floatcaptionwidth}
+\captionsetup[table]{font=small, justification=centerlast,
+                     labelfont=sc, width=\floatcaptionwidth}
 
 
 \newsavebox{\listlabelbox}
@@ -188,13 +277,15 @@
 
 
 \fancypagestyle{pagenumberonly}{
+  \fancyhf{}
   \fancyhead[L]{}
   \fancyhead[R]{\thepage}
 }
-\pagestyle{fancy}
-\fancyhf{}
-\fancyhead[L]{\rightmark}
-\fancyhead[R]{\textsf{\thepage}}
+\fancypagestyle{fancy}{
+  \fancyhf{}
+  \fancyhead[L]{\rightmark}
+  \fancyhead[R]{\thepage}
+}
 \newcommand*{\resetfancyhead}
             {\fancyhead[L]{\textsf{\textsc{\textls[20]{\nouppercase\rightmark}}}}}
 
@@ -236,12 +327,9 @@
 \pretocmd{\DescribeMacro}{\needspace{25pt}}{\relax}{\PrependingFailed}
 
 
-\setcounter{IndexColumns}{2}
-
-
 \setlength{\columnsep}{20pt}
 \setlength{\skip\footins}{25pt}
-\setlength{\overfullrule}{3pt}
+\setlength{\overfullrule}{0pt}
 
 
 
@@ -273,15 +361,19 @@
 \newcommand*{\citenum}[1]{\@nameuse{b@#1}}
 \makeatother
 
-\def\code#1{\texttt{#1}}
+\renewcommand*{\code}[1]{\texttt{#1}}
 
+\newcommand*{\codelineindicator}{\mbox{\small$\mathscr{l}$}}
+
 \newrobustcmd*{\command}[1]{\mbox{\textbf{#1}}}
 
 \newcommand*{\degree}{{}^\circ}
 
+\newcommand*{\detoxindex}[1]{\index{\detokenize{#1}}}
+
 \newcommand*{\doublequotes}[1]{\guillemetright\kern-.03333em #1\guillemetleft}
 
-\newcommand*{\dumpmacro}[1]{\texttt{\detokenize\expandafter{#1}}}
+\newcommand*{\dumpmacro}[1]{\texttt{\detokenize\expandafter{#1}\unskip}}
 
 \newcommand*{\filesystem}[1]{\mbox{\textit{#1\/}}}
 
@@ -295,6 +387,20 @@
 \renewcommand*{\fps at table}{htbp}
 \makeatother
 
+\apptocmd{\GlossaryParms}
+         {\RaggedRight\normalsize}
+         {\relax}
+         {\AppendingFailed}
+
+\let\oldhdclindex=\hdclindex
+\renewcommand*{\hdclindex}[2]
+              {\ifstrequal{#2}{code}
+                          {\oldhdclindex{#1}{codeidx}}
+                          {\oldhdclindex{#1}{#2}}}
+
+\let\oldhdpindex=\hdpindex
+\renewcommand*{\hdpindex}[2]{\textbf{\oldhdpindex{#1}{#2}}}
+
 \newcommand*{\hollowrectangle}[2]
             {\setlength{\fboxrule}{.5pt}%
              \setlength{\fboxsep}{0pt}%
@@ -301,6 +407,28 @@
              \framebox{\rule{#1}{0pt}\rule{0pt}{#2}}}
 \newcommand*{\hollowsquare}[1]{\hollowrectangle{#1}{#1}}
 
+\apptocmd{\IndexParms}
+         {\RaggedRight\small}
+         {\relax}
+         {\AppendingFailed}
+
+\makeatletter
+\ExplSyntaxOn
+\apptocmd{\index at prologue}
+         {\legacy_if:nTF {codeline at index}
+                         {We\space prefix\space all\space references\space
+                          to\space code\space lines\space with~\singlequotes{\codelineindicator}.}
+                         {}}
+         {\relax}
+         {\AppendingFailed}
+
+\newcommand*{\linenumberdecoration}
+            {\legacy_if:nTF {codeline at index}
+                            {\codelineindicator}
+                            {}}
+\ExplSyntaxOff
+\makeatother
+
 \newcommand*{\logmacro}[1]
             {\ifdef{#1}
                    {\message{^^JDump of macro \string#1 follows.^^J}
@@ -314,6 +442,24 @@
                  \begin{fullwidth}}
                 {\end{fullwidth}}
 
+
+\let\originalmulticols=\multicols
+\let\endoriginalmulticols=\endmulticols
+\RenewDocumentEnvironment{multicols}{m o o}
+                         {\ifnum #1=1
+                            \IfNoValueTF{#2}{\relax}{#2}%
+                          \else
+                            \IfNoValueTF{#2}
+                                        {\originalmulticols{#1}}
+                                        {\originalmulticols{#1}[#2]}%
+                          \fi}
+                         {\ifnum #1=1
+                            \relax
+                          \else
+                            \endoriginalmulticols
+                          \fi}
+
+
 \newenvironment*{multilinecodeexample}
                 {\begin{quote}\tt
                  \def\indent{\mbox{}\hspace{25pt}}%
@@ -409,7 +555,7 @@
 \newenvironment*{specialcodesection}[1]
                 {\Needspace{4\baselineskip}%
                  \begin{tcolorbox}[colback=white, colframe=\markercolor,
-                                   bottomrule=0pt, leftrule=5pt, rightrule=0pt, toprule=0pt]
+                                   bottomrule=.5pt, leftrule=5pt, rightrule=.5pt, toprule=.5pt]
                  \sffamily
                  \begin{list}
                        {\specialcodesectionheading{#1}}
@@ -464,6 +610,12 @@
 
 \newcommand*{\tikzlogo}{\textrm{Ti\textit{k\/}Z}}
 
+\newcommand*{\toccontinuesonnextpage}
+            {\addtocontents{toc}{\par
+                                 \bigskip
+                                 \hfill\textit{Table of Contents continued on next page.}\par
+                                 \clearpage}}
+
 \newcommand*{\topstrut}{\rule{0pt}{1.3em}}
 
 \newcommand*{\transpose}[1]{{#1}^{\text{T}}}
@@ -477,6 +629,12 @@
              \copy0\kern\ttellipsisgap
              \box0\kern\ttellipsisgap}
 
+\newcommand*{\unmarkedfntext}[1]
+            {{\def\thefootnote{}\footnote{#1}%
+              \addtocounter{footnote}{-1}}}
+
+\newcommand*{\userman}[1]{\textbf{\hyperpage{#1}}}
+
 \newcommand*{\visualpar}{\textcolor{\markercolor}{\P}\linebreak[1]\enspace}
 
 \newenvironment*{widecodeexample}
@@ -491,6 +649,15 @@
 
 
 \hyphenation{% https://hyphenateit.com/en-us
+  neg-slant-context
+  neg-slant-environment
+  slant-context
+  slant-environment
+  synth-neg-slant
+  synth-slant
+  synth-slant-box
+  text-synth-slant
+  text-synth-upright-italic
 }
 
 
@@ -515,12 +682,33 @@
 %</driver>
 %<*index-style>
 actual            '='
+delim_0           "\\nobreak\\enspace"
+delim_1           "\\nobreak\\enspace"
+delim_2           "\\nobreak\\enspace"
 heading_prefix    "\\pagebreak[3]\\smallskip\n\n{\\sffamily\\bfseries\\large "
 heading_suffix    "}\\nopagebreak\n"
 headings_flag     1
 level             '>'
+line_max          65536
 quote             '!'
 %</index-style>
+%<*changes-style>
+actual            '='
+delim_0           "\\nobreak\\enspace"
+delim_1           "\\nobreak\\enspace"
+delim_2           "\\nobreak\\enspace"
+heading_prefix    "\\pagebreak[3]\\smallskip\n\n{\\sffamily\\bfseries\\large "
+heading_suffix    "}\\nopagebreak\n"
+headings_flag     0
+item_x1           "\\efill\n\\subitem "
+item_x2           "\\ "
+keyword           "\\glossaryentry"
+level             '>'
+line_max          65536
+postamble         "\n\\end{theglossary}\n"
+preamble          "\\begin{theglossary}\n  \\makeatletter\\scan at allowedfalse"
+quote             '!'
+%</changes-style>
 %  \fi
 %
 %
@@ -530,7 +718,7 @@
 %  \DoNotIndex{\edef,\else}
 %  \DoNotIndex{\endgroup,\endmicrotypecontext,\endnegslantenvironment,\endslantenvironment}
 %  \DoNotIndex{\expandafter,\ExplSyntaxOff,\ExplSyntaxOn}
-%  \DoNotIndex{\fi,\font,\fontdimen,\fontspec,\fp}
+%  \DoNotIndex{\fi,\font,\fontdimen,\fontspec,\fp,\fpeval}
 %  \DoNotIndex{\hbox,\hskip}
 %  \DoNotIndex{\ifcase,\ifcsdef,\ifdefined,\ifluatex,\ifmmode,\ifnum,\ifpdftex,\ifx,\itshape}
 %  \DoNotIndex{\kern}
@@ -540,16 +728,17 @@
 %  \DoNotIndex{\newbox,\newcommand,\NewDocumentCommand,\NewDocumentEnvironment,\newenvironment,\newrobustcmd}
 %  \DoNotIndex{\node,\nolinebreak}
 %  \DoNotIndex{\or}
-%  \DoNotIndex{\PackageInfo,\PackageWarning,\ProcessOptionsX,\providecommand,\ProvidesPackage}
+%  \DoNotIndex{\PackageError,\PackageInfo,\PackageWarning,\ProcessOptionsX,\providecommand,\ProvidesPackage}
 %  \DoNotIndex{\pdfoutput,\pdfrestore,\pdfsave,\pdfsetmatrix,\pstilt}
 %  \DoNotIndex{\relax,\RequirePackage}
-%  \DoNotIndex{\sbox,\skip,\space}
+%  \DoNotIndex{\sbox,\skip,\space,\string}
 %  \DoNotIndex{\tikz}
 %  \DoNotIndex{\upshape,\usebox}
 %  \DoNotIndex{\wd}
+%  \DoNotIndex{\xdef}
 %
 %
-%  \changes{v0.1}{2024-2-12}{Initial version}
+%  \changes{v0.1}{2024-2-12}{Initial version.}
 %
 %
 %  \pagenumbering{roman}
@@ -636,32 +825,25 @@
 %    \footnotesize
 %    \noindent
 %    This package is copyright \textcopyright~2024 Ch.~L.~Spiel.  It may be distributed and/or
-%    modified under the conditions of the \LaTeX{} Project Public License \acronym{(LPPL)},
-%    either version~1.3c of this license or --~at your option~-- any later version.  This work
-%    has the \acronym{LPPL} maintenance status \doublequotes{author-maintained}.\par
+%    modified under the conditions of the \href{https://www.latex-project.org/lppl.txt}{\LaTeX{}
+%    Project Public License} \acronym{(LPPL)}, either version~1.3c of this license or --~at your
+%    option~-- any later version.  This work has the \acronym{LPPL} maintenance status
+%    \doublequotes{author-maintained}.\par
 %  \endgroup
 %
 %
 %  \clearpage
-%  \thispagestyle{pagenumberonly}
+%  \pagestyle{pagenumberonly}
+%
+%  \unmarkedfntext{The font samples~\singlequotes{fga} on the title page were generated with the
+%    help of \MP{} using \doublequotes{\acronym{URW} Palladio} in styles~\singlequotes{roman}
+%    and~\singlequotes{italic}.  The affine transformations were\enspace \code{slanted
+%    .2}\enspace for the slanted roman and\enspace \code{slanted -.2}\enspace for the upright
+%    italics.}
 %  \tableofcontents
 %
-%  \vspace{\fill}
 %
-%  \begingroup
-%    \footnotesize
-%    \singlespacing
-%    \noindent
-%    The font samples~\singlequotes{fga} on the title page
-%    were generated with the help of \MP{} using \doublequotes{\acronym{URW} Palladio~L}
-%    in styles~\singlequotes{roman} and~\singlequotes{italic}.
-%    The affine transformations were \code{slanted .2} for the slanted roman and
-%    \code{slanted -.2} for the upright italics.\par
-%  \endgroup
-%
-%
 %  \clearpage
-%  \thispagestyle{pagenumberonly}
 %  \listoftables
 %  \bigskip
 %  \listoffigures
@@ -668,7 +850,58 @@
 %
 %
 %  \clearpage
+%  \phantomsection
+%  \addcontentsline{toc}{section}{\numberline{}Quick Reference}
+%  \addtocontents{toc}{\medskip}
+%  \section*{Quick Reference}
+%
+%  Alphabetically sorted list of all user macros and environments defined by
+%  package~\packagename{synthslant}.  The list of all package options can be found on
+%  \cpageref{sec:package-options} and \pageref{secend:package-options}.  The
+%  \hyperref[sec:index]{Index} on pages~\pageref{sec:index} to~\pageref{secend:index} may
+%  provide some more detailed insights.
+%
+%  \begin{list}{}{\itemindent=-\leftmargin \itemsep=4.5pt plus 2pt minus 1pt}
+%    \NewDocumentCommand{\qritem}{m m O{}}
+%                {\item
+%                 \hyperref[#1]{#2}#3\relax
+%                 \def\qrref{\cpageref{#1}}\par\ignorespaces}
+%  \qritem{syn:negslantcontext}{\cs{negslantcontext}}
+%    Name of the \packagename{microtype} context used when typesetting backward slanted
+%    text~(\qrref)
+%
+%  \qritem{syn:negslantenvironment}{\code{negslantenvironment}}
+%    Wrapper around \cs{synthslantbox} when slanting backward with
+%    \cs{textsynthuprightitalic}~(\qrref)
+%
+%  \qritem{syn:slantcontext}{\cs{slantcontext}}
+%    Name of the \packagename{microtype} context used when typesetting forward slanted
+%    text~(\cpageref{syn:slantcontext})
+%
+%  \qritem{syn:slantenvironment}{\code{slantenvironment}}
+%    Wrapper around \cs{synthslantbox} when slanting forward with
+%    \cs{textsynthslant}~(\qrref)
+%
+%  \qritem{syn:synthnegslant}{\cs{synthnegslant}}
+%    Slant value used by \cs{textsynthuprightitalic}~(\qrref)
+%
+%  \qritem{syn:synthslantbox}{\cs{synthslantbox}}[\marg{slant}\marg{text}]
+%    Slant \meta{text} (forward or backward) with \meta{slant}~(\qrref)
+%
+%  \qritem{syn:synthslant}{\cs{synthslant}}
+%    Slant value used by \cs{textsynthslant}~(\qrref)
+%
+%  \qritem{syn:textsynthslant}{\cs{textsynthslant}}[\marg{text}]
+%    Forward slant upright glyphs~(\qrref)
+%
+%  \qritem{syn:textsynthuprightitalic}{\cs{textsynthuprightitalic}}[\marg{text}]
+%    Backward slant italics or oblique glyphs~(\qrref)
+%  \end{list}
+%
+%
+%  \clearpage
 %  \pagenumbering{arabic}
+%  \pagestyle{fancy}
 %  \section{Introduction}\label{sec:introduction}
 %
 %  The \packagename{synthslant} package provides a translator (e.\,g.~\LaTeX, \pdfLaTeX, or
@@ -688,8 +921,8 @@
 %
 %  \subsection{Appeal for Artificially Slanted Type}\label{sec:appleal-for-artificially-slanted}
 %
-%  Artificially slanted type have a bad reputation.  Whenever there is an order to round up the
-%  usual font suspects synthetically slanted, bolded\footnote{Package~\packagename{amsbsy}
+%  Artificially slanted type have a lousy reputation.  Whenever there is an order to round up
+%  the usual font suspects synthetically slanted, bolded\footnote{Package~\packagename{amsbsy}
 %  defines a \doublequotes{Poor Man's Bold} macro~\cs{pmb} that works by
 %  \singlequotes{overprinting}.  The authors of \packagename{amsbsy} recommend to prefer
 %  package~\packagename{bm} for bold mathematical symbols, though.}, and condensed type along
@@ -699,8 +932,9 @@
 %  condescension for synthetic bold and condensed variants.  They spoil the glyphs' outline
 %  because they do not (and cannot) conserve the necessary proportions.  For small-caps the
 %  problems are somewhat minor and I wonder how far one could get with an
-%  \propername{OpenType}~font that supports a \code{size}~axis\index{font>axis>size=\code{size}}
-%  as well as an \code{opsz}~axis\index{font>axis>opsz=\code{opsz}} in the necessary ranges to
+%  \propername{OpenType}~font that supports a
+%  \code{size}~axis\index{font>axis>size=\code{size}|userman} as well as an
+%  \code{opsz}~axis\index{font>axis>opsz=\code{opsz}|userman} in the necessary ranges to
 %  construct convincing small-caps out of the multiple-master font.
 %
 %  In my view artificial slanting keeps much of the font's character intact.  In fact one
@@ -741,13 +975,14 @@
 %
 %  Some fonts in current \LaTeX{} distributions offer slanted series right out of the box.
 %  \foreignphrase{Eureka!}  In particular the oldest (and once upon a time the only) font family
-%  shipping with \TeX, \href{https://tug.org/FontCatalogue/cmrfonts.html}{Computer Modern
-%  Roman}\index{font>Computer Modern Roman} --~nowadays member of the \acronym{CM}-Super
-%  family~-- is available in a deluge of almost thirty shapes.  It covers not just slanted roman
-%  or slanted smallcaps but also slanted typewriter and somewhat surprisingly upright italics.
-%  Furthermore, the \LaTeXe{} font selection scheme provisions \singlequotes{\code{sl}} for
-%  slanted shapes and \singlequotes{\code{ui}} for upright italics~\cite{fntguide}.  The former
-%  is accompanied by the macros~\cs{slshape} and~\cs{textsl}.
+%  shipping with \TeX, \href{https://tug.org/FontCatalogue/cmrfonts.html}{\acronym{CM}
+%  Roman}\index{font>typeface>CM Roman=\acronym{CM} Roman|userman} --~nowadays member of the
+%  \acronym{CM}-Super family~-- is available in a deluge of almost thirty shapes.  It covers not
+%  just slanted roman or slanted smallcaps but also slanted typewriter and somewhat surprisingly
+%  upright italics.  Furthermore, the \LaTeXe{} font selection scheme provisions
+%  \singlequotes{\code{sl}} for slanted shapes and \singlequotes{\code{ui}} for upright
+%  italics~\cite{fntguide}.  The former is accompanied by the macros~\cs{slshape}
+%  and~\cs{textsl}.
 %
 %  \begin{wraptable}{r}{.382\textwidth}
 %    \renewcommand*{\floatcaptionwidth}{\textwidth}
@@ -759,15 +994,15 @@
 %
 %    \begin{tabular}{@{}l@{}}
 %      \toprule
-%      Font Name  \\
+%      Font  \\
 %      \midrule
-%      Cairo\index{font>Cairo}  \\
-%      Commissioner\index{font>Commissioner}  \\
-%      Geologica\index{font>Geologica}  \\
-%      Gluten\index{font>Gluten}  \\
-%      Inter\index{font>Inter}  \\
-%      Recursive\index{font>Recursive}   \\
-%      Roboto Flex\index{font>Roboto Flex}  \\
+%      Cairo\index{font>typeface>Cairo|userman}  \\
+%      Commissioner\index{font>typeface>Commissioner|userman}  \\
+%      Geologica\index{font>typeface>Geologica|userman}  \\
+%      Gluten\index{font>typeface>Gluten|userman}  \\
+%      Inter\index{font>typeface>Inter|userman}  \\
+%      Recursive\index{font>typeface>Recursive|userman}   \\
+%      Roboto Flex\index{font>typeface>Roboto Flex|userman}  \\
 %      \bottomrule
 %    \end{tabular}
 %  \end{wraptable}
@@ -781,8 +1016,9 @@
 %  \code{slnt}-axis} or fonts with an \href{https://v-fonts.com/tags/C5}{unusual variation} at
 %  \href{https://v-fonts.com/}{Variable Fonts}.}  that offer a slant-axis\footnote{The
 %  registered axis is called \code{slnt} and it is not to be confused with the
-%  \code{ital}~axis.}\index{font>axis>slant=\code{slant}}\index{font>axis>ital=\code{ital}} that
-%  can be controlled with \packagename{fontspec}'s\index{package>\packagename{fontspec}}
+%  \code{ital}~axis.}\index{font>axis>slant=\code{slant}|userman}\index{font>axis>ital=\code{ital}|userman}
+%  that can be controlled with
+%  \packagename{fontspec}'s\index{package>fontspec=\packagename{fontspec}|userman}
 %  \code{Slant}\footnote{Since \packagename{fontspec} version~2.9a as of 2024/2/13.}~key and
 %  \cref{tab:slanted-series-fonts} for a rather incomplete list of fonts that are shipped with
 %  slanted shapes.  For these fonts \packagename{synthslant} is largely superfluous unless
@@ -801,17 +1037,17 @@
 %
 %    \begin{tabular}[t]{@{}p{12em}@{}}
 %      \toprule
-%      Font Name  \\
+%      Font  \\
 %      \midrule
-%      Arvo\index{font>Arvo}  \\
-%      Computer Modern Roman\index{font>Computer Modern Roman}  \\
-%      Domitian\index{font>Domitian}  \\
-%      Droid Serif\index{font>Droid Serif}  \\
-%      Erewhon\index{font>Erewhon}  \\
-%      Extended Charter\index{font>Extended Charter}  \\
-%      \acronym{GFS} Artemisia\index{font>GFS Artemisia=\acronym{GFS} Artemisia}  \\
-%      \acronym{GFS} Bodoni\index{font>GFS Bodoni=\acronym{GFS} Bodoni} \\
-%      \acronym{GFS} Didot\index{font>GFSDidot=\acronym{GFS} Didot}  \\
+%      Arvo\index{font>typeface>Arvo|userman}  \\
+%      \acronym{CM} Roman\index{font>typeface>CM Roman=\acronym{CM} Roman|userman}  \\
+%      Domitian\index{font>typeface>Domitian|userman}  \\
+%      Droid Serif\index{font>typeface>Droid Serif|userman}  \\
+%      Erewhon\index{font>typeface>Erewhon|userman}  \\
+%      Extended Charter\index{font>typeface>Extended Charter|userman}  \\
+%      \acronym{GFS} Artemisia\index{font>typeface>GFS Artemisia=\acronym{GFS} Artemisia|userman}  \\
+%      \acronym{GFS} Bodoni\index{font>typeface>GFS Bodoni=\acronym{GFS} Bodoni|userman} \\
+%      \acronym{GFS} Didot\index{font>typeface>GFS Didot=\acronym{GFS} Didot|userman}  \\
 %      \\
 %      \bottomrule
 %    \end{tabular}
@@ -818,18 +1054,18 @@
 %    \qquad
 %    \begin{tabular}[t]{@{}p{12em}@{}}
 %      \toprule
-%      Font Name  \\
+%      Font  \\
 %      \midrule
-%      Cabin\index{font>Cabin}  \\
-%      Clear Sans\index{font>Clear Sans}  \\
-%      Cuprum\index{font>Cuprum}  \\
-%      Fira Sans\index{font>Fira Sans}  \\
-%      Gandhi Sans\index{font>Gandhi Sans}  \\
-%      \acronym{Inria} Sans\index{font>Inria Sans=\acronym{Inria} Sans}  \\
-%      Lato\index{font>Lato}\itshapemark  \\
-%      Montserrat\index{font>Montserrat}  \\
-%      \acronym{PT} Sans\index{font>PT Sans=\acronym{PT} Sans}  \\
-%      Source Sans Pro\index{font>Source Sans Pro}  \\
+%      Cabin\index{font>typeface>Cabin|userman}  \\
+%      Clear Sans\index{font>typeface>Clear Sans|userman}  \\
+%      Cuprum\index{font>typeface>Cuprum|userman}  \\
+%      Fira Sans\index{font>typeface>Fira Sans|userman}  \\
+%      Gandhi Sans\index{font>typeface>Gandhi Sans|userman}  \\
+%      \acronym{Inria} Sans\index{font>typeface>Inria Sans=\acronym{Inria} Sans|userman}  \\
+%      Lato\itshapemark\index{font>typeface>Lato|userman}  \\
+%      Montserrat\index{font>typeface>Montserrat|userman}  \\
+%      \acronym{PT} Sans\index{font>typeface>PT Sans=\acronym{PT} Sans|userman}  \\
+%      Source Sans Pro\index{font>typeface>Source Sans Pro|userman}  \\
 %      \bottomrule
 %    \end{tabular}
 %
@@ -852,15 +1088,16 @@
 %  \pdfTeX~version~1.40.0~\cite{schroeder:2007}.}  With the help of the latter affine
 %  transformations of arbitrary content can be coded directly by setting the transformation
 %  matrix.  A slight variant of his code is used in this package for the \acronym{PDF}- and
-%  \packagename{l3draw}\index{package>\packagename{l3draw}}-slant~engines.  The implementations
-%  for \pstrickslogo, \tikzlogo{}, and \packagename{fontspec}\packagename{fontspec} are trivial
-%  as they build upon shear~functions supplied by the respective packages.
+%  \packagename{l3draw}\index{package>l3draw=\packagename{l3draw}|userman}-slant~engines.  The
+%  implementations for \pstrickslogo, \tikzlogo{}, and
+%  \packagename{fontspec}\packagename{fontspec} are trivial as they build upon shear~functions
+%  supplied by the respective packages.
 %
 %
 %  \subsection{Shear Transformation, Slant, and Angle}\label{sec:shear-transformation}
 %
-%  \index{slant>operation}
-%  \index{shear>transformation}
+%  \index{slant>operation|userman}
+%  \index{shear>transformation|userman}
 %  Mathematically the slant operation is a shear transformation, which can be expressed with the
 %  equation
 %  \begin{equation}\label{equ:shear-transformation}
@@ -1018,7 +1255,7 @@
 %  For \(\alpha = 0\) the shear matrix becomes the identity matrix.  Throughout of
 %  \packagename{synthslant} we work with the \meta{slant} which is \(\sin \alpha\) in
 %  \cref{equ:shear-transformation} and avoid converting back and forth to the
-%  \index{shear>angle}shear angle~\(\alpha\).\footnote{At least one slant engine currently
+%  \index{shear>angle|userman}shear angle~\(\alpha\).\footnote{At least one slant engine currently
 %  requires such a conversion, namely~\pstrickslogo.  The math is hidden from the user, though.}
 %  Some values for orientation: \mbox{\(\sin 5.74\degree \approx .1\)}, \mbox{\(\sin 11.5\degree
 %  \approx .2\)}, and \mbox{\(\sin 17.5\degree \approx .3\)}.\footnote{For small
@@ -1038,8 +1275,8 @@
 %  \begin{enumerate}
 %  \item\label{it:no-italics}
 %    Generate a slanted serif in the unfortunate situation when a serif font comes without
-%    italics such as \singlequotes{\acronym{URW}~Antiqua}\index{font>URW Antiqua=\acronym{URW}
-%    Antiqua}.
+%    italics such as
+%    \singlequotes{\acronym{URW}~Antiqua}\index{font>typeface>URW Antiqua=\acronym{URW} Antiqua|userman}.
 %
 %    Here, the user is relatively free to choose a \meta{slant}, for there are no italics whose
 %    angle must be matched.  \packagename{Synthslant}'s default of~.2 should be a good starting
@@ -1053,8 +1290,8 @@
 %
 %  \item\label{it:correct-italics-angle}
 %    An italics shape that has an excessive slant angle, as
-%    e.\,g.~\singlequotes{Libre~Caslon}\index{font>Libre Caslon} may be corrected, i.\,e.,
-%    partially un-slanted.
+%    e.\,g.~\singlequotes{Libre~Caslon}\index{font>typeface>Libre Caslon|userman} may be corrected,
+%    i.\,e., partially un-slanted.
 %
 %    In this case, and generally if a font as a whole needs to be corrected, an alternative
 %    approach like the one sketched in \cref{sec:alternative} on \cpageref{sec:alternative} may
@@ -1062,16 +1299,16 @@
 %
 %  \item\label{it:generate-sole-obliques}
 %    Generate an oblique sans-serif if a sans-serif font comes without an oblique shape as,
-%    e.\,g., \singlequotes{\acronym{URW}~Grotesk}.\index{font>URW Grotesk=\acronym{URW} Grotesk}
+%    e.\,g., \singlequotes{\acronym{URW}~Grotesk}.\index{font>typeface>URW Grotesk=\acronym{URW} Grotesk|userman}
 %
 %  \item\label{it:generate-extra-obliques}
 %    Supply a slanted sans-serif shape for sans-serif fonts with designed, this is \emph{true}
-%    obliques as e.\,g.~\singlequotes{Open Sans}.\index{font>Open Sans}
+%    obliques as e.\,g.~\singlequotes{Open Sans}.\index{font>typeface>Open Sans|userman}
 %
 %  \item\label{it:slant-typewriter}
 %    Fixed-width --~also called \singlequotes{typewriter} or \singlequotes{teletype}~-- fonts
-%    without obliques (Yes, I am looking at you, Inconsolata!)\index{font>Inconsolata} finally
-%    get an oblique shape.
+%    without obliques (Yes, I am looking at you, Inconsolata!)\index{font>typeface>Inconsolata|userman}
+%    finally get an oblique shape.
 %
 %  \item\label{it:slanted-small-caps}
 %    Small caps without accompanying italics can be slanted, too.
@@ -1109,7 +1346,9 @@
 %
 %  \begingroup
 %  \newcommand*{\indexpackageoption}[1]
-%              {\index{package option>#1=\code{#1}}\index{#1=\code{#1}~(option)}\ignorespaces}
+%              {\detoxindex{package option>#1=\code{#1}|userman}%
+%               \detoxindex{#1=\code{#1}~(option)|userman}%
+%               \ignorespaces}
 %  \begin{description}
 %        [before={\let\oldmakelabel=\makelabel
 %                 \renewcommand{\makelabel}[1]
@@ -1130,13 +1369,14 @@
 %
 %  \item[|fontspec|]\label{item:fontspec}
 %    \indexpackageoption{fontspec}
-%    Use \packagename{fontspec}\index{package>\packagename{fontspec}} as slanting
-%    back-end.\footnote{Requires \filesystem{fontspec.sty.}}
+%    Use \packagename{fontspec}\index{package>fontspec=\packagename{fontspec}|userman} as
+%    slanting back-end.\footnote{Requires \filesystem{fontspec.sty.}}
 %
 %  \item[|l3draw|]\label{item:l3draw}
 %    \indexpackageoption{l3draw}
-%    Select the \singlequotes{draw} layer\index{package>\packagename{l3draw}} of \LaTeXIII{} as
-%    base for the slanting engine.\footnote{This option requires \filesystem{l3draw.sty.}}
+%    Select the \singlequotes{draw} layer\index{package>l3draw=\packagename{l3draw}|userman} of
+%    \LaTeXIII{} as base for the slanting engine.\footnote{This option requires
+%    \filesystem{l3draw.sty.}}
 %
 %    \begin{caution}
 %      This engine is experimental and the \singlequotes{draw} layer of \LaTeXIII{} itself is
@@ -1148,7 +1388,7 @@
 %    \indexpackageoption{negslant}
 %    Set the default value for \hyperref[syn:synthnegslant]{\cs{synthnegslant}} \emph{only.}
 %    The argument \meta{slant-expr} is a floating-point expression.  Note that for this option
-%    \meta{slant-expr} must evaluate to a non-positive value.
+%    \meta{slant-expr} must evaluate to a nonpositive value.
 %
 %  \item[|PDF|, |pdf|]\label{item:pdf}
 %    \indexpackageoption{pdf}
@@ -1159,14 +1399,14 @@
 %    \indexpackageoption{posslant}
 %    Set the default value for \hyperref[syn:synthslant]{\cs{synthslant}} \emph{only.}  The
 %    argument \meta{slant-expr} is a floating-point expression.  Note that for this option
-%    \meta{slant-expr} must evaluate to a non-negative value.
+%    \meta{slant-expr} must evaluate to a nonnegative value.
 %
 %  \item[|PS|, |ps|]\label{item:postscript}
-%    \index{ps}
-%    Use \pstrickslogo\index{package>\packagename{pstricks}} to delegate slanting to the
-%    PostScript\index{PostScript} interpreter.  Obviously requires \pstrickslogo\footnote{The
-%    package actually required is \filesystem{pst-3d.sty.}} and \acronym{DVI}-to-PostScript
-%    translation.
+%    \index{ps|userman}
+%    Use \pstrickslogo\index{package>pstricks=\packagename{pstricks}|userman} to delegate
+%    slanting to the PostScript\index{PostScript|userman} interpreter.  Obviously requires
+%    \pstrickslogo\footnote{The package actually required is \filesystem{pst-3d.sty.}} and
+%    \acronym{DVI}-to-PostScript translation.
 %
 %    \begin{caution}
 %      This engine is still experimental and produces low-quality output!  See
@@ -1176,7 +1416,7 @@
 %  \item[|slant=|\meta{slant-expr}]\label{item:slant}
 %    \indexpackageoption{slant}
 %    Set the default values for both \hyperref[syn:synthslant]{\cs{synthslant}} and
-%    \hyperref[syn:synthnegslant]{\cs{synthnegslant}}, this is, behave as if the two package
+%    \hyperref[syn:synthnegslant]{\cs{synthnegslant}}, this is, act as if the two package
 %    options \(\code{posslant} = \meta{slant-expr}\) and \(\code{negslant} =
 %    -(\meta{slant-expr})\) have been given.  The argument \meta{slant-expr} is a floating-point
 %    expression.
@@ -1185,8 +1425,8 @@
 %
 %  \item[|TikZ|, |tikz|]\label{item:tikz}
 %    \indexpackageoption{tikz}
-%    Use \packagename{TikZ}\index{package>\packagename{TikZ}} for slanting.\footnote{Requires
-%    \filesystem{tikz.sty.}}
+%    Use \packagename{TikZ}\index{package>tikz=\packagename{tikz}|userman} for
+%    slanting.\footnote{Requires \filesystem{tikz.sty.}}
 %
 %    \begin{caution}
 %      This engine is still experimental and produces low-quality output!  See
@@ -1199,7 +1439,7 @@
 %  floating-point \emph{expressions} as their arguments not just plain floating-point literals.
 %  See Ref.~\citenum{latex3-interfaces}, Ch.~29, \doublequotes{The \textsf{l3fp}~module~--
 %  Floating points} for a description of the floating-point expression syntax and the available
-%  functions.
+%  functions.\label{secend:package-options}
 %
 %
 %  \clearpage
@@ -1218,7 +1458,7 @@
 %
 %  \DescribeMacro{\synthslant}
 %  Control the slant applied by \hyperref[syn:textsynthslant]{\cs{textsynthslant}}.
-%  This value is non-negative.
+%  This value is nonnegative.
 %
 %  \begin{synopsis}\label{syn:synthslant}
 %    \cs{synthslant}
@@ -1248,43 +1488,43 @@
 %        \begin{tabfigures}
 %          \begin{tabular}[t]{@{}p{9.5em}l@{}}
 %            \toprule
-%            Font Name  &  Slant  \\
+%            Font  &  Slant  \\
 %            \midrule
-%            \acronym{ADF} Accanthis\index{font>ADF Accanthis=\acronym{ADF} Accanthis}  &  .26  \\
-%            \acronym{ADF} Baskervald\index{font>ADF Baskervald=\acronym{ADF} Baskervald}  &  .32  \\
-%            \acronym{ADF} Berenis\index{font>ADF Berenis=\acronym{ADF} Berenis}  &  .2  \\
-%            \acronym{ADF} Venturis\index{font>ADF Venturis=\acronym{ADF} Venturis}  &  .2  \\
-%            Alegreya\index{font>Alegreya}                                      &  .2  \\
-%            Arvo\index{font>Arvo}                                              &  .2  \\
-%            BaskervilleF\index{font>BaskervilleF}                              &  .2  \\
-%            Bera Serif\index{font>Bera Serif}                                  &  .2  \\
-%            Bitter\index{font>Bitter}                                          &  .16  \\
-%            Caladea\index{font>Caladea}                                        &  .14  \\
-%            Clara\index{font>Clara}                                            &  .24  \\
-%            Cochineal\index{font>Cochineal}                                    &  .2  \\
-%            Coelacanth\index{font>Coelacanth}                                  &  .2  \\
-%            Crimson Pro\index{font>Crimson Pro}                                &  .2  \\
-%            Crimson Text\index{font>Crimson Text}                              &  .2  \\
+%            \acronym{ADF} Accanthis\index{font>typeface>ADF Accanthis=\acronym{ADF} Accanthis|userman}  &  .26  \\
+%            \acronym{ADF} Baskervald\index{font>typeface>ADF Baskervald=\acronym{ADF} Baskervald|userman}  &  .32  \\
+%            \acronym{ADF} Berenis\index{font>typeface>ADF Berenis=\acronym{ADF} Berenis|userman}  &  .2  \\
+%            \acronym{ADF} Venturis\index{font>typeface>ADF Venturis=\acronym{ADF} Venturis|userman}  &  .2  \\
+%            Alegreya\index{font>typeface>Alegreya|userman}                                      &  .2  \\
+%            Arvo\index{font>typeface>Arvo|userman}                                              &  .2  \\
+%            BaskervilleF\index{font>typeface>BaskervilleF|userman}                              &  .2  \\
+%            Bera Serif\index{font>typeface>Bera Serif|userman}                                  &  .2  \\
+%            Bitter\index{font>typeface>Bitter|userman}                                          &  .16  \\
+%            Caladea\index{font>typeface>Caladea|userman}                                        &  .14  \\
+%            Clara\index{font>typeface>Clara|userman}                                            &  .24  \\
+%            Cochineal\index{font>typeface>Cochineal|userman}                                    &  .2  \\
+%            Coelacanth\index{font>typeface>Coelacanth|userman}                                  &  .2  \\
+%            Crimson Pro\index{font>typeface>Crimson Pro|userman}                                &  .2  \\
+%            Crimson Text\index{font>typeface>Crimson Text|userman}                              &  .2  \\
 %            \bottomrule
 %          \end{tabular}%
 %          \qquad
 %          \begin{tabular}[t]{@{}p{9.5em}l@{}}
 %            \toprule
-%            Font Name  &  Slant  \\
+%            Font  &  Slant  \\
 %            \midrule
-%            Day Roman\index{font>Day Roman}                                    &  .2  \\
-%            \acronym{EB} Garamond\index{font>EB Garamond=\acronym{EB} Garamond}  &  .3  \\
-%            etbb\index{font>etbb}                                              &  .2  \\
-%            fbb\index{font>fbb}                                                &  .2  \\
-%            Garamond Expert\index{font>Garamond Expert}                        &  .2  \\
-%            Gandhi Serif\index{font>Gandhi Serif}                              &  .2  \\
-%            Gentium\index{font>Gentium}                                        &  .2  \\
-%            Ibarra Real Nova\index{font>Ibarra Real Nova}                      &  .2  \\
-%            \acronym{IBM} Plex Serif\index{font>IBM Plex Serif=\acronym{IBM} Plex Serif}  &  .24  \\
-%            \acronym{Inria} Serif\index{font>Inria Serif=\acronym{Inria} Serif}  &  .2  \\
-%            Libertinus Serif\index{font>Libertinus Serif}                      &  .2  \\
-%            Libre Baskerville\index{font>Libre Baskerville}                    &  .3  \\
-%            Libre Caslon\index{font>Libre Caslon}                              &  .38  \\
+%            Day Roman\index{font>typeface>Day Roman|userman}                                    &  .2  \\
+%            \acronym{EB} Garamond\index{font>typeface>EB Garamond=\acronym{EB} Garamond|userman}  &  .3  \\
+%            etbb\index{font>typeface>etbb|userman}                                              &  .2  \\
+%            fbb\index{font>typeface>fbb|userman}                                                &  .2  \\
+%            Garamond Expert\index{font>typeface>Garamond Expert|userman}                        &  .2  \\
+%            Gandhi Serif\index{font>typeface>Gandhi Serif|userman}                              &  .2  \\
+%            Gentium\index{font>typeface>Gentium|userman}                                        &  .2  \\
+%            Ibarra Real Nova\index{font>typeface>Ibarra Real Nova|userman}                      &  .2  \\
+%            \acronym{IBM} Plex Serif\index{font>typeface>IBM Plex Serif=\acronym{IBM} Plex Serif|userman}  &  .24  \\
+%            \acronym{Inria} Serif\index{font>typeface>Inria Serif=\acronym{Inria} Serif|userman}  &  .2  \\
+%            Libertinus Serif\index{font>typeface>Libertinus Serif|userman}                      &  .2  \\
+%            Libre Baskerville\index{font>typeface>Libre Baskerville|userman}                    &  .3  \\
+%            Libre Caslon\index{font>typeface>Libre Caslon|userman}                              &  .38  \\
 %                                                                               &  \\
 %                                                                               &  \\
 %            \bottomrule
@@ -1292,22 +1532,22 @@
 %          \qquad
 %          \begin{tabular}[t]{@{}p{9.5em}l@{}}
 %            \toprule
-%            Font Name  &  Slant  \\
+%            Font  &  Slant  \\
 %            \midrule
-%            Merriweather\index{font>Merriweather}                              &  .14  \\
-%            MLModern\index{font>MLModern}                                      &  .23  \\
-%            Noto Serif\index{font>Noto Serif}                                  &  .22  \\
-%            \acronym{PT} Serif\index{font>PT Serif=\acronym{PT} Serif}         &  .2  \\
-%            Roboto Slab\index{font>Roboto Slab}                                &  .2  \\
-%            Quattrocento\index{font>Quattrocento}                              &  .2  \\
-%            Source Serif Pro\index{font>Source Serif Pro}                      &  .18  \\
-%            Spectral\index{font>Spectral}                                      &  .18  \\
-%            \acronym{STIX}\index{font>STIX=\acronym{STIX}}                     &  .2  \\
-%            \TeX{} Gyre Pagella\index{font>TeX Gyre Pagella=\TeX{} Gyre Pagella}  &  .16  \\
-%            \acronym{TX} Fonts Serif\index{font>TX Fonts Serif=\acronym{TX} Fonts Serif}  &  .2  \\
-%            \acronym{URW} Antiqua\index{font>URW Antiqua=\acronym{URW} Antiqua}  &  .2  \\
-%            \acronym{URW} Nimbus Roman\index{font>URW Nimbus Roman=\acronym{URW} Nimbus Roman}  &  .2  \\
-%            Utopia\index{font>Utopia}                                          &  .2  \\
+%            Merriweather\index{font>typeface>Merriweather|userman}                              &  .14  \\
+%            \acronym{ML} Modern\index{font>typeface>ML Modern=\acronym{ML} Modern|userman}      &  .23  \\
+%            Noto Serif\index{font>typeface>Noto Serif|userman}                                  &  .22  \\
+%            \acronym{PT} Serif\index{font>typeface>PT Serif=\acronym{PT} Serif|userman}         &  .2  \\
+%            Roboto Slab\index{font>typeface>Roboto Slab|userman}                                &  .2  \\
+%            Quattrocento\index{font>typeface>Quattrocento|userman}                              &  .2  \\
+%            Source Serif Pro\index{font>typeface>Source Serif Pro|userman}                      &  .18  \\
+%            Spectral\index{font>typeface>Spectral|userman}                                      &  .18  \\
+%            \acronym{STIX}\index{font>typeface>STIX=\acronym{STIX}|userman}                     &  .2  \\
+%            \TeX{} Gyre Pagella\index{font>typeface>TeX Gyre Pagella=\TeX{} Gyre Pagella|userman}  &  .16  \\
+%            \acronym{TX} Fonts Serif\index{font>typeface>TX Fonts Serif=\acronym{TX} Fonts Serif|userman}  &  .2  \\
+%            \acronym{URW} Antiqua\index{font>typeface>URW Antiqua=\acronym{URW} Antiqua|userman}  &  .2  \\
+%            \acronym{URW} Nimbus Roman\index{font>typeface>URW Nimbus Roman=\acronym{URW} Nimbus Roman|userman}  &  .2  \\
+%            Utopia\index{font>typeface>Utopia|userman}                                          &  .2  \\
 %                                                                               &  \\
 %            \bottomrule
 %          \end{tabular}
@@ -1319,7 +1559,7 @@
 %  \DescribeMacro{\synthnegslant}
 %  Control the slant applied by
 %  \hyperref[syn:textsynthuprightitalic]{\cs{textsynthuprightitalic}}.  This value is
-%  non-positive.
+%  nonpositive.
 %
 %  \begin{synopsis}\label{syn:synthnegslant}
 %    \cs{synthnegslant}
@@ -1332,9 +1572,9 @@
 %  more flexible and powerful interface, see~\cref{sec:advanced-interface}.
 %
 %  \begin{note}
-%    The following restrictions and workarounds to get line-breaking and automatic hyphenation
-%    working again do \emph{not} apply to the
-%    \packagename{fontspec}\index{package>\packagename{fontspec}} back-end.
+%    The following restrictions and workarounds to get line-breaking and \TeX's automatic
+%    hyphenation working again do \emph{not} apply to the
+%    \packagename{fontspec}\index{package>fontspec=\packagename{fontspec}|userman} back-end.
 %  \end{note}
 %
 %  \noindent
@@ -1344,7 +1584,7 @@
 %  provisions to re-enable at least some breakability.
 %
 %  \begin{enumerate}
-%  \item Spaces introduce breakpoint,\index{breakpoint at space} e.\,g.
+%  \item Spaces introduce breakpoint,\index{breakpoint at space|userman} e.\,g.
 %    \begin{codeexample}
 %      \cs{textsynthslant}\{topological dual space\}
 %    \end{codeexample}
@@ -1352,8 +1592,8 @@
 %    second word (producing another horizontal box).  \TeX{} sees two (unbreakable) boxes and a
 %    discardable space when it comes to linebreaking.
 %
-%  \item Discretionary hyphens\index{discretionary hyphen} in the form of \singlequotes{\cs{-}}
-%    get propagated.  So, we could improve on our above example by saying
+%  \item Discretionary hyphens\index{discretionary hyphen|userman} in the form of
+%    \singlequotes{\cs{-}} get propagated.  So, we could improve on our above example by saying
 %    \begin{codeexample}
 %      \cs{textsynthslant}\{topo\cs{-}log\cs{-}i\cs{-}cal dual space\}
 %    \end{codeexample}
@@ -1374,7 +1614,7 @@
 %
 %  In horizontal mode switch to an upright shape, slant \meta{text} with the slant value stored
 %  in \hyperref[syn:synthslant]{\cs{synthslant}} and apply \doublequotes{slant
-%  correction}\index{slant>correction} --~the equivalent of italics correction~-- at the
+%  correction}\index{slant>correction|userman} --~the equivalent of italics correction~-- at the
 %  right-hand side of~\meta{text}.
 %
 %  In math mode just slant \meta{text} with the slant value stored in
@@ -1391,7 +1631,7 @@
 %
 %    \noindent
 %    where we show the font modification in conjunction with the
-%    \packagename{babel}~macro\index{package>\packagename{babel}}
+%    \packagename{babel}~macro\index{package>babel=\packagename{babel}|userman}
 %    \cs{foreignlanguage}~\cite{package:babel}.~\visualpar
 %
 %    In math-mode you cannot have enough fonts, symbols, and most of the gizmos over there!  I
@@ -1485,7 +1725,7 @@
 %  \end{synopsis}
 %
 %  Switch to an upright font shape and --~if
-%  package~\packagename{microtype}~\cite{package:microtype}\index{package>\packagename{microtype}}
+%  package~\packagename{microtype}~\cite{package:microtype}\index{package>microtype=\packagename{microtype}|userman}
 %  has been loaded~-- enter the Microtype-context defined by
 %  macro~\hyperref[syn:slantcontext]{\cs{slantcontext}}.  At the end add some slant correction,
 %  which is the equivalent of italics correction.
@@ -1511,7 +1751,7 @@
 %  Microtype-context defined by macro~\hyperref[syn:negslantcontext]{\cs{negslantcontext}}.
 %
 %  \DescribeMacro{\slantcontext}
-%  Microtype context used when typesetting slanted text.
+%  Name of the \packagename{microtype} context used when typesetting slanted text.
 %
 %  \begin{synopsis}\label{syn:slantcontext}
 %    \cs{slantcontext}
@@ -1530,7 +1770,7 @@
 %  \end{note}
 %
 %  \DescribeMacro{\negslantcontext}
-%  Microtype context used when typesetting un-slanted text.
+%  Name of the \packagename{microtype} context used when typesetting backward slanted text.
 %
 %  \begin{synopsis}\label{syn:negslantcontext}
 %    \cs{negslantcontext}
@@ -1667,13 +1907,13 @@
 %  and --~after recompiling with the appropriate \LaTeX-engine~-- used to examine the details of
 %  the slant operations.
 %
-%  Page~2, Sec.~3.1, \singlequotes{Copy}, shows wild mixes of different font shapes, native al
-%  well as synthesized ones.  Here, the slanted glyphs as well as the upright italics should
-%  blend well with the native italics/obliques and the normal font, respectively.
+%  Page~2, Sec.~3.1, \singlequotes{Copy}, shows wild mixes of different font shapes, native and
+%  synthesized ones.  Here, the slanted glyphs as well as the upright italics should blend well
+%  with the native italics/obliques and with the normal font, respectively.
 %
-%  Page~3, Sec.~3.2 and following sub-sections, examines the coupling of
-%  \packagename{synthslant} with the \TeX-system and some of its extensions.  If a slant engine
-%  malfunctions, it will become evident on this page.
+%  Page~3, Sec.~3.2 and following sub-sections, examine the coupling of \packagename{synthslant}
+%  with the \TeX-system and some of its extensions.  If a slant engine malfunctions, it will
+%  become evident on this page.
 %
 %
 %  \clearpage
@@ -1687,7 +1927,7 @@
 %    \packagename{Syntslant}~manipulations may not survive
 %    (pre-)\discretionary{}{}{}processing by \MP.
 %
-%  \item[\packagename{l3draw} engine.]\index{package>\packagename{l3draw}}\mbox{}
+%  \item[\packagename{l3draw} engine.]\index{package>l3draw=\packagename{l3draw}|userman}\mbox{}
 %    \begin{itemize}
 %    \item Depending of the shear direction the \packagename{l3draw} engine may generate some
 %      extra positive or negative space at the ends of the text.
@@ -1697,10 +1937,10 @@
 %    \item Markedly slower than the \acronym{PDF}-implementation!
 %    \end{itemize}
 %
-%  \item[\pstrickslogo{} engine.]\index{package>\packagename{pstricks}}
+%  \item[\pstrickslogo{} engine.]\index{package>pstricks=\packagename{pstricks}|userman}
 %    The \pstrickslogo{} engine produces some extra space at the ends of the text.
 %
-%  \item[\tikzlogo{} engine.]\index{package>\packagename{tikz}}
+%  \item[\tikzlogo{} engine.]\index{package>tikz=\packagename{tikz}|userman}
 %    The \tikzlogo{} engine produces some extra space at the ends of the text.
 %  \end{description}
 %
@@ -1753,7 +1993,7 @@
 %
 %  I want to elaborate the example given in \cref{sec:usage-ideas},
 %  \cref{it:correct-italics-angle} and generate less-angled italics for
-%  Libre~Caslon.\index{font>Libre Caslon} Here is a suitable map line taken from
+%  Libre~Caslon.\index{font>typeface>Libre Caslon|userman} Here is a suitable map line taken from
 %  \filesystem{pdftex.map} on my system:
 %
 %  \begin{multilinecodeexample}
@@ -1824,7 +2064,8 @@
 %  \end{example}
 %
 %
-%  \subsection{Combining \LaTeX{} and \command{dvipdfmx}}\label{sec:alternative-latex}
+%  \subsection{Combining \LaTeX{} and
+%              \texorpdfstring{\command{dvipdfmx}}{dvipdfmx}}\label{sec:alternative-latex}
 %
 %  The alternative when using \LaTeX{} is similar the one elaborated in the previous section.
 %  The font mapline gets modified by \cs{special} primitive
@@ -1872,14 +2113,20 @@
 %
 %  \MaybeStop{
 %    \clearpage
-%    \phantomsection
-%    \resetfancyhead
-%    \addcontentsline{toc}{section}{Change History}
-%    \PrintChanges
+%    \begingroup
+%      \setcounter{GlossaryColumns}{1}
+%      \phantomsection
+%      \label{sec:changes}
+%      \resetfancyhead
+%      \addtocontents{toc}{\bigskip}
+%      \addcontentsline{toc}{section}{\numberline{}Change History}
+%      \PrintChanges
+%    \endgroup
 %
 %    \clearpage
 %    \phantomsection
-%    \addcontentsline{toc}{section}{References}
+%    \addtocontents{toc}{\medskip}
+%    \addcontentsline{toc}{section}{\numberline{}References}
 %    \begin{RaggedRight}
 %      \begin{thebibliography}{88}
 %      \bibitem{package:relsize}
@@ -1986,20 +2233,31 @@
 %
 %
 %    \clearpage
-%    \begin{RaggedRight}
+%    \begingroup
 %      \setcounter{IndexColumns}{2}
 %      \setlength{\columnsep}{30pt}
+%      \phantomsection
 %      \label{sec:index}
-%      \phantomsection
-%      \addcontentsline{toc}{section}{Index}
+%      \addtocontents{toc}{\medskip}
+%      \addcontentsline{toc}{section}{\numberline{}Index}
+%      \raggedcolumns
+%      \def\codeidx##1{\linenumberdecoration\textbf{##1}}
+%      \def\main##1{\linenumberdecoration\underbar{\textbf{##1}}}
+%      \def\usage##1{\textit{\textbf{##1}}}
 %      \PrintIndex
-%    \end{RaggedRight}
+%      \label{secend:index}
+%    \endgroup
 %  }
 %
 %
 %  \clearpage
+%  \toccontinuesonnextpage
 %  \section{Package Code}\label{sec:package-code}
-%  \addtocontents{toc}{\begingroup\small}
+%  \addtocontents{toc}{\protect\begin{list}{}{\leftmargin=\subsectiontocindent\parsep=0pt}}
+%  \addtocontents{toc}{\protect\item}
+%  \addtocontents{toc}{\RaggedRight}
+%  \addtocontents{toc}{\small}
+%  \addtocontents{toc}{\tocsquashedsubsections}
 %  \addtocontents{toc}{\protect\begin{multicols}{2}}
 %  \addtocontents{toc}{\protect\raggedcolumns}
 %
@@ -2008,12 +2266,15 @@
 %  and explain its implementation details.
 %
 %
+%  \changes{v0.1a}{2024-6-2}{Add missing dependency on \packagename{etoolbox}.
+%                            Fix suggested by \code{mbertucci47}.}
 %    \begin{macrocode}
 %<*package>
 \NeedsTeXFormat{LaTeX2e}[2005/12/01]
 \ProvidesPackage{synthslant}
-                [2024/05/07  v0.1  Synthetically Slant glyphs]
+                [2024/07/08  v0.1a  Synthetically Slant glyphs]
 
+\RequirePackage{etoolbox}
 \RequirePackage{iftex}
 \RequirePackage{xkeyval}
 
@@ -2094,12 +2355,16 @@
 %    \begin{macrocode}
 \ExplSyntaxOn
 \fp_compare:nNnTF {\synthslant} < {.0}
-  {\PackageError{synthslant}{\string\synthslant\space <\space 0}
-                {Pass\space a\space value\space that\space is\space non-negative.}}
+  {\PackageError{synthslant}
+                {\string\synthslant\space <\space 0}
+                {Pass\space a\space value\space that\space
+                 is\space nonnegative.}}
   {}
 \fp_compare:nNnTF {\synthnegslant} > {.0}
-  {\PackageError{synthslant}{\string\synthnegslant\space >\space 0}
-                {Pass\space a\space value\space that\space is\space non-positive.}}
+  {\PackageError{synthslant}
+                {\string\synthnegslant\space >\space 0}
+                {Pass\space a\space value\space that\space
+                 is\space nonpositive.}}
   {}
 \ExplSyntaxOff
 
@@ -2176,7 +2441,7 @@
 %  \end{macro}
 %
 %
-%  \subsubsection{\acronym{PDF} Slant Engine}
+%  \subsubsection{\texorpdfstring{\acronym{PDF}}{PDF} Slant Engine}
 %
 %  The \acronym{PDF}-engine works well and it is the best tested alternative.
 %
@@ -2251,13 +2516,15 @@
 %    \begin{macrocode}
       \fp_compare:nNnTF {#1} >= {.0}
         {
-          \box_set_wd:Nn \l_tmpa_box {\l_tmpa_dim - #1\l_tmpb_dim}
+          \box_set_wd:Nn \l_tmpa_box
+              {\l_tmpa_dim - #1\l_tmpb_dim}
         }
         {
           \draw_suspend_begin:
             \kern#1\l_tmpb_dim
           \draw_suspend_end:
-          \box_set_wd:Nn \l_tmpa_box {\l_tmpa_dim + #1\l_tmpb_dim}
+          \box_set_wd:Nn \l_tmpa_box
+              {\l_tmpa_dim + #1\l_tmpb_dim}
         }
 %    \end{macrocode}
 %
@@ -2348,7 +2615,8 @@
 %    \begin{macrocode}
   \newcommand*{\synthslantbox at fontspect@shear at box}[2]{
     \begingroup
-    \expandafter\fontspec[FakeSlant = #1]{\l_fontspec_family_tl}
+    \expandafter
+    \fontspec[FakeSlant=#1]{\l_fontspec_family_tl}
     #2
     \endgroup
   }
@@ -2473,8 +2741,12 @@
 %    \begin{macrocode}
 \ifnum\synthslant at engine=4% fontspec
   \newrobustcmd*{\synthslantbox}[2]{%
-    \edef\synthslant at slant@value{#1}% definition for compatibility of both branches
-    \synthslantbox at fontspect@shear at box{\synthslant at slant@value}{#2}%
+%    \end{macrocode}
+%    The following (expanding) definition is only here for the compatibility of both branches.
+%    \begin{macrocode}
+    \edef\synthslant at slant@value{#1}
+    \synthslantbox at fontspect@shear at box{\synthslant at slant@value}
+                                      {#2}%
   }
 %    \end{macrocode}
 %
@@ -2530,7 +2802,8 @@
 \NewDocumentEnvironment{slantenvironment}{}
   {\upshape
    \ifcsdef{microtypecontext}
-           {\expandafter\microtypecontext\expandafter{\slantcontext}}
+           {\expandafter\microtypecontext
+            \expandafter{\slantcontext}}
            {}}
   {\ifcsdef{endmicrotypecontext}
            {\endmicrotypecontext}
@@ -2557,8 +2830,8 @@
 %  \end{macro}
 %
 %  \begin{macro}{\synthslantbox at right@negslant at correction}
-%    We could play the same trick here as in \cs{synthslantbox at right@slant at correction} and use
-%    \cs{synthnegslant} instead of \cs{synthslant}.  But my experiments show no need for a
+%    We could play the same trick here as in \cs{synthslantbox@\-right@\-slant@\-correction} and
+%    use \cs{synthnegslant} instead of \cs{synthslant}.  But my experiments show no need for a
 %    correction.  Anyhow, this macro may be convenient to override someday.
 %
 %    \begin{macrocode}
@@ -2588,7 +2861,8 @@
 \NewDocumentEnvironment{negslantenvironment}{}
   {\itshape
    \ifcsdef{microtypecontext}
-           {\expandafter\microtypecontext\expandafter{\negslantcontext}}
+           {\expandafter\microtypecontext
+            \expandafter{\negslantcontext}}
            {}}
   {\ifcsdef{endmicrotypecontext}
            {\endmicrotypecontext}
@@ -2622,7 +2896,7 @@
 %
 %
 %  \addtocontents{toc}{\protect\end{multicols}}
-%  \addtocontents{toc}{\endgroup}
+%  \addtocontents{toc}{\protect\end{list}}
 %
 %
 %  \Finale
@@ -4889,7 +5163,7 @@
 \setlength{\headheight}{0pt}
 \setlength{\headsep}{0pt}
 
-\setlength{\overfullrule}{3pt}
+\setlength{\overfullrule}{0pt}
 
 
 \pagestyle{plain}
@@ -5254,6 +5528,20 @@
 %
 %
 %
+%  \iffalse
+%<*minimal-test>
+\documentclass{minimal}
+
+\usepackage{synthslant}
+
+\begin{document}
+\textsynthslant{abc}
+\end{document}
+%</minimal-test>
+%  \fi
+%
+%
+%
 \endinput
 %
 %

Modified: trunk/Master/texmf-dist/source/latex/synthslant/synthslant.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/synthslant/synthslant.ins	2024-07-09 20:04:54 UTC (rev 71754)
+++ trunk/Master/texmf-dist/source/latex/synthslant/synthslant.ins	2024-07-09 20:05:08 UTC (rev 71755)
@@ -1,11 +1,11 @@
 %%  Copyright (C) 2024 by Ch. L. Spiel
 %%
 %%  This work may be distributed and/or modified under the conditions
-%%  of the LaTeX Project Public License, either version 1.3 of this
+%%  of the LaTeX Project Public License, either version 1.3c of this
 %%  license or (at your option) any later version.  The latest version
 %%  of this license is in
-%%      http://www.latex-project.org/lppl.txt
-%%  and version 1.3 or later is part of all distributions of LaTeX
+%%      https://www.latex-project.org/lppl.txt
+%%  and version 1.3c or later is part of all distributions of LaTeX
 %%  version 2003/12/01 or later.
 
 
@@ -23,11 +23,11 @@
 Copyright (C) 2024 by Ch. L. Spiel
 
 This work may be distributed and/or modified under the conditions
-of the LaTeX Project Public License, either version 1.3 of this
+of the LaTeX Project Public License, either version 1.3c of this
 license or (at your option) any later version.  The latest version
 of this license is in
-    http://www.latex-project.org/lppl.txt
-and version 1.3 or later is part of all distributions of LaTeX
+    https://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
 version 2003/12/01 or later.
 
 This work has the LPPL maintenance status `maintained'.
@@ -46,14 +46,17 @@
 
 \generate{\file{synthslant.sty}{\from{\source}{package}}
           \file{synthslant-gauge.tex}{\from{\source}{gauge}}
-          \file{synthslant.ist}{\from{\source}{index-style}}}
+          \file{synthslant-minimal-test.tex}{\from{\source}{minimal-test}}}
 
 
 \nopostamble
-\generate{\file{title.mp}{\from{\source}{title}}}
-\generate{\file{shear-transform.mp}{\from{\source}{shear-transform}}}
+\generate{\file{shear-transform.mp}{\from{\source}{shear-transform}}
+          \file{synthslant.gst}{\from{\source}{changes-style}}
+          \file{synthslant.ist}{\from{\source}{index-style}}
+          \file{title.mp}{\from{\source}{title}}}
 
 
+
 \nopreamble
 \generate{\file{compare-with-the-gimp.png.base64}{\from{\source}{compare-with-the-gimp}}}
 

Modified: trunk/Master/texmf-dist/tex/latex/synthslant/synthslant.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/synthslant/synthslant.sty	2024-07-09 20:04:54 UTC (rev 71754)
+++ trunk/Master/texmf-dist/tex/latex/synthslant/synthslant.sty	2024-07-09 20:05:08 UTC (rev 71755)
@@ -11,11 +11,11 @@
 %% Copyright (C) 2024 by Ch. L. Spiel
 %% 
 %% This work may be distributed and/or modified under the conditions
-%% of the LaTeX Project Public License, either version 1.3 of this
+%% of the LaTeX Project Public License, either version 1.3c of this
 %% license or (at your option) any later version.  The latest version
 %% of this license is in
-%%     http://www.latex-project.org/lppl.txt
-%% and version 1.3 or later is part of all distributions of LaTeX
+%%     https://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
 %% version 2003/12/01 or later.
 %% 
 %% This work has the LPPL maintenance status `maintained'.
@@ -29,8 +29,9 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[2005/12/01]
 \ProvidesPackage{synthslant}
-                [2024/05/07  v0.1  Synthetically Slant glyphs]
+                [2024/07/08  v0.1a  Synthetically Slant glyphs]
 
+\RequirePackage{etoolbox}
 \RequirePackage{iftex}
 \RequirePackage{xkeyval}
 
@@ -60,12 +61,16 @@
 
 \ExplSyntaxOn
 \fp_compare:nNnTF {\synthslant} < {.0}
-  {\PackageError{synthslant}{\string\synthslant\space <\space 0}
-                {Pass\space a\space value\space that\space is\space non-negative.}}
+  {\PackageError{synthslant}
+                {\string\synthslant\space <\space 0}
+                {Pass\space a\space value\space that\space
+                 is\space nonnegative.}}
   {}
 \fp_compare:nNnTF {\synthnegslant} > {.0}
-  {\PackageError{synthslant}{\string\synthnegslant\space >\space 0}
-                {Pass\space a\space value\space that\space is\space non-positive.}}
+  {\PackageError{synthslant}
+                {\string\synthnegslant\space >\space 0}
+                {Pass\space a\space value\space that\space
+                 is\space nonpositive.}}
   {}
 \ExplSyntaxOff
 
@@ -136,13 +141,15 @@
       \box_set_dp:Nn \l_tmpa_box {\z@}
       \fp_compare:nNnTF {#1} >= {.0}
         {
-          \box_set_wd:Nn \l_tmpa_box {\l_tmpa_dim - #1\l_tmpb_dim}
+          \box_set_wd:Nn \l_tmpa_box
+              {\l_tmpa_dim - #1\l_tmpb_dim}
         }
         {
           \draw_suspend_begin:
             \kern#1\l_tmpb_dim
           \draw_suspend_end:
-          \box_set_wd:Nn \l_tmpa_box {\l_tmpa_dim + #1\l_tmpb_dim}
+          \box_set_wd:Nn \l_tmpa_box
+              {\l_tmpa_dim + #1\l_tmpb_dim}
         }
       \draw_box_use:N \l_tmpa_box
     \draw_end:
@@ -181,7 +188,8 @@
   \ExplSyntaxOn
   \newcommand*{\synthslantbox at fontspect@shear at box}[2]{
     \begingroup
-    \expandafter\fontspec[FakeSlant = #1]{\l_fontspec_family_tl}
+    \expandafter
+    \fontspec[FakeSlant=#1]{\l_fontspec_family_tl}
     #2
     \endgroup
   }
@@ -242,8 +250,9 @@
 
 \ifnum\synthslant at engine=4% fontspec
   \newrobustcmd*{\synthslantbox}[2]{%
-    \edef\synthslant at slant@value{#1}% definition for compatibility of both branches
-    \synthslantbox at fontspect@shear at box{\synthslant at slant@value}{#2}%
+    \edef\synthslant at slant@value{#1}
+    \synthslantbox at fontspect@shear at box{\synthslant at slant@value}
+                                      {#2}%
   }
 \else
   \newrobustcmd*{\synthslantbox}[2]{%
@@ -262,7 +271,8 @@
 \NewDocumentEnvironment{slantenvironment}{}
   {\upshape
    \ifcsdef{microtypecontext}
-           {\expandafter\microtypecontext\expandafter{\slantcontext}}
+           {\expandafter\microtypecontext
+            \expandafter{\slantcontext}}
            {}}
   {\ifcsdef{endmicrotypecontext}
            {\endmicrotypecontext}
@@ -285,7 +295,8 @@
 \NewDocumentEnvironment{negslantenvironment}{}
   {\itshape
    \ifcsdef{microtypecontext}
-           {\expandafter\microtypecontext\expandafter{\negslantcontext}}
+           {\expandafter\microtypecontext
+            \expandafter{\negslantcontext}}
            {}}
   {\ifcsdef{endmicrotypecontext}
            {\endmicrotypecontext}



More information about the tex-live-commits mailing list.