summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-04-28 03:00:59 +0000
committerNorbert Preining <norbert@preining.info>2024-04-28 03:00:59 +0000
commit6ed42a56797a9b75307dcebfd82f2d69767e1b97 (patch)
treea3a53cbc357c9bd13040bede870d9b1801293eb4 /macros
parent71f3eefe319b1194e0470ee83dd8723b3288f8d4 (diff)
CTAN sync 202404280300HEADmaster
Diffstat (limited to 'macros')
-rw-r--r--macros/latex/contrib/babel-contrib/welsh/README.md (renamed from macros/latex/contrib/babel-contrib/welsh/README)13
-rw-r--r--macros/latex/contrib/babel-contrib/welsh/welsh.dtx12
-rw-r--r--macros/latex/contrib/babel-contrib/welsh/welsh.pdfbin111128 -> 119975 bytes
-rw-r--r--macros/latex/contrib/lastpage/README6
-rw-r--r--macros/latex/contrib/lastpage/lastpage-example.pdfbin130736 -> 130201 bytes
-rw-r--r--macros/latex/contrib/lastpage/lastpage.dtx320
-rw-r--r--macros/latex/contrib/lastpage/lastpage.pdfbin448061 -> 440278 bytes
-rw-r--r--macros/luatex/latex/novel/README.md9
-rw-r--r--macros/luatex/latex/novel/doc/novel-documentation.html5
-rw-r--r--macros/luatex/latex/novel/doc/novel.pdf186
-rw-r--r--macros/luatex/latex/novel/doc/novel.tex17
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-CGATSTR001.clo2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-CalculateLayout.sty2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-ChapterScene.sty2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-DropCap.sty2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-FOGRA39.clo2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-FileData.sty2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-Fonts.sty2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-Footnotes.sty2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-HeadFootStyles.sty2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-Images.sty2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-JC200103.clo2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-LayoutSettings.sty2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-PostLayout.sty2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-Sandbox.sty2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-TextMacros.sty2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-microtype.cfg2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-pdfx.sty2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel-xmppacket.sty2
-rw-r--r--macros/luatex/latex/novel/lualatex/novel.cls4
-rw-r--r--macros/unicodetex/latex/fontspec/CHANGES.md23
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-code-api.dtx223
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-code-closing.dtx8
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-code-enc.dtx8
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-code-feat-aat.dtx8
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-code-feat-opentype.dtx91
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-code-fontload.dtx8
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-code-graphite.dtx8
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-code-interfaces.dtx8
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-code-internal.dtx76
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-code-keyval.dtx22
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-code-lang.dtx8
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-code-load.dtx8
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-code-math.dtx8
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-code-msg.dtx31
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-code-opening.dtx16
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-code-opentype.dtx10
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-code-scripts.dtx9
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-code-user.dtx9
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-code-vars.dtx8
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-code-xfss.dtx56
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-code.ltx8
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-code.pdfbin672898 -> 707166 bytes
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-doc-api.tex30
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-doc-enc.tex8
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-doc-featset.tex50
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-doc-fontsel.tex55
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-doc-intro.tex23
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-doc-luatex.tex8
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-doc-opentype.tex112
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-doc-style.sty8
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-doc-xetex.tex16
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-example.tex2
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec-lua.dtx8
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec.dtx16
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec.ins10
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec.ltx8
-rw-r--r--macros/unicodetex/latex/fontspec/fontspec.pdfbin578717 -> 496846 bytes
68 files changed, 859 insertions, 757 deletions
diff --git a/macros/latex/contrib/babel-contrib/welsh/README b/macros/latex/contrib/babel-contrib/welsh/README.md
index 65ac842dc9..4f975962cb 100644
--- a/macros/latex/contrib/babel-contrib/welsh/README
+++ b/macros/latex/contrib/babel-contrib/welsh/README.md
@@ -1,12 +1,13 @@
-Welsh 1.1a
+## Welsh 1.1b
------------
This is the babel style for Welsh.
-Changes 1.1
------------
+## Changes 1.1b
+
+* Removed extra space in \ccname in TU strings.
+
+## Changes 1.1a
+
* Date fixed
* UTF-8 encoded strings for XeTeX and LuaTeX
-
-----------
-2015-09-03 \ No newline at end of file
diff --git a/macros/latex/contrib/babel-contrib/welsh/welsh.dtx b/macros/latex/contrib/babel-contrib/welsh/welsh.dtx
index d39ced6622..9e59856b2b 100644
--- a/macros/latex/contrib/babel-contrib/welsh/welsh.dtx
+++ b/macros/latex/contrib/babel-contrib/welsh/welsh.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright 1989-2015 Johannes L. Braams, Javier Bezos and any
+% Copyright 1989-2024 Johannes L. Braams, Javier Bezos and any
% individual authors listed elsewhere in this file. All rights
% reserved.
%
@@ -38,16 +38,13 @@
%<code>\ProvidesLanguage{welsh}
%\fi
%\ProvidesFile{welsh.dtx}
- [2015/09/03 v1.1a Welsh support from the babel system]
+ [2024/04/27 v1.1b Welsh support from the babel system]
%\iffalse
%% File `welsh.dtx'
%% Babel package for LaTeX version 2e
-%% Copyright (C) 1989 -- 2015
+%% Copyright (C) 1989 -- 2024
%% by Johannes Braams, TeXniek
% by Javier Bezos
-%
-% This file is part of the babel system, it provides the source
-% code for the Welsh language definition file.
%<*filedriver>
\documentclass{ltxdoc}
\newcommand*{\TeXhax}{\TeX hax}
@@ -126,11 +123,12 @@
% of \cs{today}}
% \changes{welsh-1.1a}{2015/09/03}{Strings are defined in the 3.9 way.
% Also Unicode strings}
+% \changes{welsh-1.1b}{2024/04/27}{Remove extra space in \cs{ccname}}
% \begin{macrocode}
\StartBabelCommands*{welsh}{captions}
[unicode, charset=utf8, fontenc=EU1 EU2]
\SetString{\enclname}{amgaeëdig}
- \SetString{\ccname}{copï au}
+ \SetString{\ccname}{copïau}
% \end{macrocode}
%
% And now, the generic branch, using the LICR and assuming T1.
diff --git a/macros/latex/contrib/babel-contrib/welsh/welsh.pdf b/macros/latex/contrib/babel-contrib/welsh/welsh.pdf
index fcac31cc60..6c8a9fc97c 100644
--- a/macros/latex/contrib/babel-contrib/welsh/welsh.pdf
+++ b/macros/latex/contrib/babel-contrib/welsh/welsh.pdf
Binary files differ
diff --git a/macros/latex/contrib/lastpage/README b/macros/latex/contrib/lastpage/README
index 50b80f6b3a..4545b13a60 100644
--- a/macros/latex/contrib/lastpage/README
+++ b/macros/latex/contrib/lastpage/README
@@ -1,4 +1,4 @@
-README for lastpage package, 2023-10-14, v2.0e
+README for lastpage package, 2024-04-27, v2.1a
TABLE OF CONTENTS
@@ -50,7 +50,7 @@ the manual (lastpage.pdf), the example (lastpage-example.tex),
the compiled example (lastpage-example.pdf),
driver (lastpage.drv), lastpage.dtx,
installation file (lastpage.ins),
-the style files (lastpage.sty, lastpage209.sty, lastpage23.sty,
+the style files (lastpage.sty, lastpage209.sty, lastpage2e.sty,
lastpageclassic.sty, lastpagemodern.sty),
and this README, already sorted in a TDS tree:
https://mirror.ctan.org/install/macros/latex/contrib/lastpage.tds.zip
@@ -83,7 +83,7 @@ b) Generate the package and driver files:
c) Install the files "*.sty" in your TDS tree:
cp lastpage.sty TDS:tex/latex/lastpage/
cp lastpage209.sty TDS:tex/latex/lastpage/
- cp lastpage23.sty TDS:tex/latex/lastpage/
+ cp lastpage2e.sty TDS:tex/latex/lastpage/
cp lastpageclassic.sty TDS:tex/latex/lastpage/
cp lastpagemodern.sty TDS:tex/latex/lastpage/
Replace "TDS:" by the prefix of your TDS tree
diff --git a/macros/latex/contrib/lastpage/lastpage-example.pdf b/macros/latex/contrib/lastpage/lastpage-example.pdf
index 1062a3273e..6d1c748525 100644
--- a/macros/latex/contrib/lastpage/lastpage-example.pdf
+++ b/macros/latex/contrib/lastpage/lastpage-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/lastpage/lastpage.dtx b/macros/latex/contrib/lastpage/lastpage.dtx
index ed088fea50..104d6b8418 100644
--- a/macros/latex/contrib/lastpage/lastpage.dtx
+++ b/macros/latex/contrib/lastpage/lastpage.dtx
@@ -1,19 +1,18 @@
% \iffalse meta-comment
%
% File: lastpage.dtx
-% Version: 2023-10-14 v2.0e
+% Version: 2024-04-27 v2.1a
% Info: Refers to last page's name
%
-% Copyright © 2010 - 2023 by
+% Copyright © 2010 - 2024 by
% H.-Martin Münch <Martin dot Muench at Uni-Bonn dot de>
% Portions of code copyrighted by other people as marked.
%
% This package was invented by Jeffrey P. Goldberg.
% I thought that a replacement was needed and therefore created the pageslts package,
-% https://ctan.org/pkg/pageslts
-% . Nevertheless, for compatibility with existing documents/packages as well as for
-% the low amount of resources needed by the lastpage package (no new counter!),
-% I updated this package.
+% https://ctan.org/pkg/pageslts. Nevertheless, for compatibility with existing
+% documents/packages as well as for the low amount of resources needed by the
+% lastpage package (no new counter!), I updated this package.
% Thanks go to Jeffrey P. Goldberg for allowing me to do this.
%
% While this package allows for things like "Page \thepage{} of \pageref{LastPage}"
@@ -66,7 +65,7 @@
\input docstrip.tex
\Msg{**********************************************************************}
\Msg{* Installation *}
-\Msg{* Package: lastpage 2023-10-14 v2.0e Refers to last page's name (HMM)*}
+\Msg{* Package: lastpage 2024-04-27 v2.1a Refers to last page's name (HMM)*}
\Msg{**********************************************************************}
\keepsilent
@@ -78,10 +77,10 @@
This is a generated file.
Project: lastpage
-Version: 2023-10-14 v2.0e
+Version: 2024-04-27 v2.1a
Info: Refers to last page's name
-Copyright (C) 2010 - 2023 by
+Copyright (C) 2010 - 2024 by
H.-Martin Muench <Martin dot Muench at Uni-Bonn dot de>
Portions of code copyrighted by other people as marked.
@@ -184,9 +183,9 @@ In memoriam
%
% \begin{macrocode}
%<*driver>
-\NeedsTeXFormat{LaTeX2e}[2022-11-01]
+\NeedsTeXFormat{LaTeX2e}[2023-11-01]
\ProvidesFile{lastpage.drv}%
- [2023-10-14 v2.0e Refers to last page's name (HMM)]
+ [2024-04-27 v2.1a Refers to last page's name (HMM)]
\documentclass{ltxdoc}[2023/03/28]% v2.1j Standard LaTeX documentation class
\usepackage{holtxdoc}[2019/12/09]% v0.30 Private additional ltxdoc support (HO)
\hypersetup{%
@@ -251,7 +250,7 @@ In memoriam
% \DoNotIndex{\today,\upshape,\url,\usepackage,\value,\verb,\wd,\write}
%
% \title{The \xpackage{lastpage} package}
-% \date{2023-10-14 v2.0e}
+% \date{2024-04-27 v2.1a}
% \author{H.-Martin Münch\\\xemail{Martin.Muench at Uni-Bonn.de}\\
% invented by Jeffrey P. Goldberg\\\xemail{jeffrey+news at goldmark.org}}
%
@@ -370,7 +369,7 @@ In memoriam
% \section{Some \textsc{Warnings}\label{sec:warn}}
% \subsection{\texttt{\textbackslash AtEndDocument}\label{ssec:aed}}
% \indent {\bfseries |\AtEndDocument| is not used by the \pkg{lastpagemodern.sty}
-% version of the lastpage package, requiring \LaTeX -format 2022-11-01
+% version of the lastpage package, requiring \LaTeX -format 2023-06-01
% or newer. Instead |\AddToHook{enddocument/afterlastpage}| is used
% and the problem does not arise.}
% \bigskip
@@ -413,7 +412,7 @@ In memoriam
% \subsection{Interaction with ancient versions of the \xpackage{endfloat} package\label{sec:endfloat}}
%
% \indent {\bfseries |\AtEndDocument| is not used by the \pkg{lastpagemodern.sty}
-% version of the lastpage package, requiring \LaTeX -format 2022-11-01
+% version of the lastpage package, requiring \LaTeX -format 2023-06-01
% or newer. Instead |\AddToHook{enddocument/afterlastpage}| is used
% and the problem does not arise.}
%
@@ -552,22 +551,13 @@ In memoriam
% (with appropriate options) can do this.
%
% \subsection{Other packages manipulating \texttt{\textbackslash lastpage@putlabel}}
-% The \xpackage{hyperref} package redefined the |\lastpage@putlabel| command,
-% and the \xpackage{revtex4} class still redefines the |\lastpage@putlabel| command,
-% and the \xpackage{hyperref} package redefined the |\lastpage@putlabel| command,
-% if the \xpackage{revtex4} class was used, and the \xpackage{pageslts} package
+% The \xpackage{revtex4} class redefines the |\lastpage@putlabel| command
+% (with outdated two arguments), and the \xpackage{pageslts} package
% \textquotedblleft kills\textquotedblright{} the |\lastpage@putlabel| command,
% because that package uses more advanced labels.\newline
-% In my humble opinion it would be preferably if one package (the original one,
-% i.\,e. \xpackage{lastpage}) would do the job right, all others packages would
-% check for the version of that package, and if an old version is found,
-% an error (or at least a warning) message about the use of an outdated
-% package is given, and \textit{then} as
-% \textquotedblleft last aid\textquotedblright{} the command of the outdated
-% package is redefined.\newline
-% Therefore here none of the definitions or commands of the other packages
-% is altered, but |\lastpage@putlabel| was replaced by |\lastpage@putl@bel|.
-% Because |\lastpage@putlabel| is no longer called, now there should not be any
+% None of the definitions or commands of the other packages are altered,
+% but |\lastpage@putlabel| was replaced by |\lastpage@putl@bel|.
+% Because \linebreak |\lastpage@putlabel| is no longer called, now there should not be any
% double definitions of the \texttt{lastpage} label.
% \newpage
%
@@ -740,9 +730,9 @@ In memoriam
\message{^^JLaTeX Info: Executing hook `enddocument/afterlastpage'.}}%
}{\AtEndDocument{\message{^^JLaTeX Info: Executing hook `AtEndDocument'.}}%
}
-\usepackage[draft]{showkeys}[2023/05/11]% v3.19 Show cite and label keys (DPC, MH)
+\usepackage[draft]{showkeys}[2023/07/08]% v3.19 Show cite and label keys (DPC, MH)
%% Use final instead of draft to hide the keys. %%
-\usepackage[pdfpagelabels=true,hyperindex=false]{hyperref}[2023-07-08]% v7.01b
+\usepackage[pdfpagelabels=true,hyperindex=false]{hyperref}[2024-01-20]% v7.01h
%% Hypertext links for LaTeX
\hypersetup{extension=pdf,%
plainpages=false,%
@@ -756,7 +746,7 @@ In memoriam
pdfpagelayout=SinglePage%
}
\@ifpackageloaded{hyperref}{}{\usepackage{url}[2013/09/16]}% v3.4
-\usepackage{lastpage}[2023-10-14]% v2.0e
+\usepackage{lastpage}[2024/04/27]% v2.1a
\renewcommand{\@evenfoot}{%
\normalsize\slshape \today\hfil \upshape %
page \thepage{} of \pageref{LastPage}}
@@ -768,7 +758,7 @@ In memoriam
\section*{Example for lastpage}
\markboth{Example for lastpage}{Example for lastpage}
This example demonstrates the use of package\newline
-\textsf{lastpage}, v2.0e as of 2023-10-14 (HMM; JPG).\newline
+\textsf{lastpage}, v2.1a as of 2024-04-27 (HMM; JPG).\newline
The package takes no options.\newline
For more details please see the documentation!\newline
@@ -793,7 +783,7 @@ trademark owner. There is no intention of infringement; the
usage is to the benefit of the trademark owner.\newline
\textbf{Tip}: Use \textit{logical page numbers}
-for the display of the pdf (in Adobe Acrobat Reader 2023.006.20320:
+for the display of the pdf (in Adobe Acrobat Reader 2024.002.20687:
Edit $>$ Preferences $>$ Page Display $>$
Page Content and Information: Use logical page numbers)!\newline
@@ -866,7 +856,7 @@ Last page's name (LastPage): \pageref{LastPage}
With modern \LaTeX{} it is possible to say:
\begin{quote}
\begin{verbatim}
-\NeedsTeXFormat{LaTeX2e}[2023-06-01]
+\NeedsTeXFormat{LaTeX2e}[2023-11-01]
\documentclass{article}
\pagenumbering{fnsymbol}
\begin{document}
@@ -904,7 +894,7 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \DescribeMacro{lastpage.sty}
% We first need to determine whether we are on \TeX~2.09 or \LaTeX2e.\newline
% (That line, which is too long for the documentation, reads:\newline
-% |\def\loadlastpage{\ProvidesPackage{lastpage}[2023/10/14 v2.0e lastpage:|\linebreak
+% |\def\loadlastpage{\ProvidesPackage{lastpage}[2024/04/27 v2.1a lastpage:|\linebreak
% | 2.09 or 2e? (HMM)]\relax\RequirePackage{lastpage2e}}|.)
%
% \begin{macrocode}
@@ -912,7 +902,7 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
%% Part of the "lastpage" package
%% loads either lastpage2.09.sty for TeX 2.09 or lastpage2e.sty for LaTeX 2e
%% with code from https://groups.google.com/g/comp.text.tex/c/-Qmhj1ZI4xM
-\def\loadlastpage{\ProvidesPackage{lastpage}[2023/10/14 v2.0e lastpage: 2.09 or 2e? (HMM)]\relax\RequirePackage{lastpage2e}}
+\def\loadlastpage{\ProvidesPackage{lastpage}[2024/04/27 v2.1a lastpage: 2.09 or 2e? (HMM)]\relax\RequirePackage{lastpage2e}}
\begingroup \expandafter \ifx \csname documentclass\endcsname\relax
\endgroup \expandafter \input{lastpage209.sty}
\else \endgroup \expandafter \loadlastpage
@@ -952,9 +942,9 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
%<*lastpage2e>
%% Part of the "lastpage" package
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesPackage{lastpage2e}[2023/10/14 v2.0e %
+\ProvidesPackage{lastpage2e}[2024/04/27 v2.1a %
Decide which 2e lastpage version to use (HMM)]
-\@ifl@t@r\fmtversion{2022/11/01}{\RequirePackage{lastpagemodern}}{%
+\@ifl@t@r\fmtversion{2023/06/01}{\RequirePackage{lastpagemodern}}{%
\RequirePackage{lastpageclassic}}
\message{^^J}
%</lastpage2e>
@@ -967,7 +957,7 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
%<*lastpageclassic>
%% Part of the "lastpage" package
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesPackage{lastpageclassic}[2023/10/14 v2.0e %
+\ProvidesPackage{lastpageclassic}[2024/04/27 v2.1a %
Refers to last page's name (HMM; JPG)]
%% allows for things like "Page \thepage{} of \pageref{LastPage}"
%% to get "Page 7 of 9"
@@ -1384,8 +1374,8 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \begin{macrocode}
%<*lastpagemodern>
%% Part of the "lastpage" package
-\NeedsTeXFormat{LaTeX2e}[2022-11-01]
-\ProvidesPackage{lastpagemodern}[2023-10-14 v2.0e %
+\NeedsTeXFormat{LaTeX2e}[2023-06-01]
+\ProvidesPackage{lastpagemodern}[2024-04-27 v2.1a %
Refers to last page's name (HMM; JPG)]
%% allows for things like "Page \thepage{} of \pageref{LastPage}"
%% to get "Page 7 of 9" or "Page VII of IX";
@@ -1413,58 +1403,33 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \end{macrocode}
%
-% People use the label |LastPage| for calculations, for example with
-% \begin{quote}
-%\begin{verbatim}
-%\getrefbykeydefault{LastPage}{page}{0}
-%\end{verbatim}
-% \end{quote}
-% and with
-% \begin{quote}
-%\begin{verbatim}
-%\getpagerefnumber{LastPage}
-%\end{verbatim}
-% \end{quote}
-% (using the \pkg{refcount} package). On the one hand, direct calculations do not work,
-% if the page \textquotedblleft number\textquotedblright{} is not
-% a plain arabic number (1, 2, 3,\ldots) but |alph| (a, b, c,\ldots), |Alph| (A, B, C,\ldots),
-% |roman| (i, ii, iii, iv,\ldots), |Roman| (I, II, III, IV,\ldots),
-% |fnsymbol| (foot note symbols: \textasteriskcentered{} (asterisk), \textdagger{} (dagger),
-% \textdaggerdbl{} (double dagger), \textsection{} (section symbol),\ldots) or some other fancy name.
-% On the other hand, if the page number \emph{is} a plain arabic number,
-% calculations do work, if that plain number can be extracted from the label.
-% To handle non-numeric page \textquotedblleft number\textquotedblright{} as well as providing
-% extractable numeric page numbers, we need to determine (later), whether a page number is numeric or not:
-%
-% \begin{macro}{\lastpage@gobbleminus}
+% \begin{macro}{\lastpage@IfNumericTF}
+% |\lastpage@IfNumericTF| was needed to determine whether a page number was numeric or not.
+% Although it is no longer used, I am reluctant to remove it because it may have been used
+% in other places in documents.
+%
% \begin{macrocode}
\newcommand\lastpage@gobbleminus[1]{\ifx-#1\else#1\fi}
-%% from https://texfaq.org/FAQ-isitanum
-
% \end{macrocode}
-% \end{macro}
+% which is from \url{https://texfaq.org/FAQ-isitanum},
% \begin{macrocode}
\newcounter{lastpagecount}
-
% \end{macrocode}
-% \begin{macro}{\lastpage@IfNumericTF}
+% and similar to \url{https://tex.stackexchange.com/a/12811/17119}
% \begin{macrocode}
\newcommand{\lastpage@IfNumericTF}[3]{%
-%% similar to https://tex.stackexchange.com/a/17119
\sbox\z@{\c@lastpagecount=0\lastpage@gobbleminus{#1}\relax}%
\ifdim\wd0>\z@\relax#3% is not numeric
\else#2% is numeric
-\fi%
-}
+\fi}
% \end{macrocode}
% \end{macro}
%
% \DescribeMacro{\AddToHook\{begindocument/end\}}
% \indent |\lastpage@putlabel|, used by older versions of this package,
-% is redefined e.\,g. by \xpackage{revtex}, \xpackage{frenchle},
-% \xpackage{PPRcorners}, and old versions of \xpackage{hyperref}.
-% While now |\lastpage@putl@bel| is used instead, \xpackage{revtex}
+% is/was redefined by other packages.
+% While now |\lastpage@putl@bel| is used instead, other packages
% could also define a label \texttt{LastPage},
% which then would be multiply defined. (Which is no big issue,
% if it is associated with the same page.) Therefore we define
@@ -1483,8 +1448,8 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% (thanks to Ulrike Fischer for the report).
%
% \begin{macrocode}
-%% From https://tex.stackexchange.com/a/542425 with thanks to
-%% Prof. Enrico Gregorio
+%% from https://tex.stackexchange.com/a/12811/542425
+%% with thanks to Prof. Enrico Gregorio
\long\def\protected@iwrite#1#2#3{%
\begingroup%
#2%
@@ -1498,42 +1463,15 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \end{macrocode}
% \end{macro}
%
-% We need two macros for writing numeric and non-numeric page
-% \textquotedblleft numbers\textquotedblright{} into the \xfile{aux} file:
-%
-% \begin{macro}{\lastpage@numeric}
+% \begin{macro}{\lastpage@rmpage}
+% Just once we need |\@currentHpage| without the \mbox{\textquotedblleft |page.|\textquotedblright :}
% \begin{macrocode}
-\newcommand{\lastpage@numeric}{\protected@iwrite\@auxout{}{%
- \string\newlabel{LastPage}{%
- {\@currentlabel}%
- {\thepage}%
- {\@currentlabelname}%
- {\IfPackageLoadedTF{hyperref}{\ifHy@pageanchor page.\Hy@temp\fi%
- }{\@currentHref}}%
- {\@kernel@reserved@label@data}}}%
- }
+%% similar to https://tex.stackexchange.com/a/12811/6865
+\def\lastpage@rmpage#1{\expandafter\lastpage@currentH#1\relax}
+\def\lastpage@currentH#1.#2\relax{#2}
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\lastpage@nonnumeric}
-% \begin{macrocode}
-\newcommand{\lastpage@nonnumeric}{\protected@iwrite\@auxout{}{%
- \string\newlabel{LastPage}{%
- {\@currentlabel}%
- {\IfPackageLoadedTF{hyperref}{\string\begingroup%
- \string\pdfstringdefDisableCommands{\string\let%
- \string\TextOrMath\string\@firstoftwo}\thepage%
- \string\endgroup%
- }{\thepage}}%
- {\@currentlabelname}%
- {\IfPackageLoadedTF{hyperref}{\ifHy@pageanchor page.\Hy@temp\fi%
- }{\@currentHref}}%
- {\@kernel@reserved@label@data}}}%
- }
-
-% \end{macrocode}
-% \end{macro}
-%
% \begin{macro}{\lastpage@putl@bel}
% \indent This command does the writing of the label.
% If the \xpackage{pageslts} package is used, this \xpackage{lastpage} package
@@ -1544,22 +1482,28 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
\newcommand{\lastpage@putl@bel}{%
\IfPackageLoadedTF{pageslts}{\relax}{%
% \end{macrocode}
-%
-% \noindent Otherwise the label is set:\newpage
-%
+% \noindent Otherwise the label is set:
% \noindent If the \xpackage{hyperref} package is used, but page-anchors are disabled,
% the hyperlinking will not work. (The warning will also be shown, when only
% |\pageref*{LastPage}| is used (or neither one), but without messing with |\pageref|
% we cannot detect this.)
%
% \begin{macrocode}
- \IfPackageLoadedTF{hyperref}{\ifHy@pageanchor\else%
- \PackageWarningNoLine{lastpage}{%
- The \string\pageref{LastPage} link does not work\MessageBreak%
- using hyperref with disabled option `pageanchor'.\MessageBreak%
- Better enable `pageanchor' or use\MessageBreak%
- \string\pageref*{LastPage} (not generating a link)%
- }\fi}{}%
+ \IfPackageLoadedTF{hyperref}{%
+ \IfPackageAtLeastTF{hyperref}{2023-11-07}{\relax}{%
+ \PackageError{lastpage}{hyperref package version too old}{%
+ required version: 2023-11-07 or newer, found version:\MessageBreak%
+ \csname ver@hyperref.sty\endcsname\MessageBreak%
+ Update hyperref or use lastpageclassic.sty instead of\MessageBreak%
+ lastpagemodern.sty!}}%
+ \ifHy@pageanchor\else%
+ \PackageWarningNoLine{lastpage}{%
+ The \string\pageref{LastPage} link does not work\MessageBreak%
+ using hyperref with disabled option `pageanchor'.\MessageBreak%
+ Better enable `pageanchor' or use\MessageBreak%
+ \string\pageref*{LastPage} (not generating a link)}%
+ \fi%
+ }{}%
\begingroup%
% \end{macrocode}
%
@@ -1577,65 +1521,25 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% may be no more invocations of the output routines.
% To force the write out, we need to do an |\immediate| protected write
% into the \xfile{aux} file.
-%
-% \begin{macrocode}
- \IfPackageLoadedTF{hyperref}{%
- % with code from \Hy@EveryPageAnchor of the hyperref package,
- % 2023-07-08 v7.01b
- \ifHy@pageanchor%
- \ifHy@hypertexnames%
- \ifHy@plainpages%
- \def\Hy@temp{\the\c@page}%
- \def\Hy@TempPageAnchor{\hyper@@anchor{page.\the\c@page}}%
- \Hy@PageAnchorSlidesPlain%
- \else%
- % No \begingroup, because we are in a group anyway.
- \let\@number\@firstofone%
- \Hy@unicodefalse%
- \Hy@PageAnchorSlide%
- \pdfstringdef\@the@H@page{\thepage}%
- % No \endgroup, because we are in a group anyway.
- \EdefUnescapeString\@the@H@page{\@the@H@page}%
- \def\Hy@TempPageAnchor{\hyper@@anchor{page.\@the@H@page}}%
- \def\Hy@temp{\@the@H@page}%
- \fi%
- \else%
- % NOT! \Hy@GlobalStepCount\Hy@pagecounter
- \def\Hy@TempPageAnchor{\hyper@@anchor{page.\the\Hy@pagecounter}}%
- \def\Hy@temp{\the\Hy@pagecounter}%
- \fi%
- \fi%
- }{}%
- \IfFormatAtLeastTF{2023/06/01}{%
-% \end{macrocode}
-%
-% \noindent The |\label| command has been extended, see \LaTeX{} News Issue~37,
-% June~2023 (\LaTeX{} release 2023-06-01),
-% \url{https://www.latex-project.org/news/latex2e-news/ltnews37.pdf}.
-%
-% Here we need to distinguish between numeric page numbers, which shall be extractable,
-% and non-numeric ones, which need some protection:
% \begin{macrocode}
- \lastpage@IfNumericTF{\thepage}{\lastpage@numeric}{\lastpage@nonnumeric}%
- }{\IfPackageLoadedTF{hyperref}{\protected@iwrite\@auxout{}{%
- \string\newlabel{LastPage}{{}{\thepage}{}{%
- \ifHy@pageanchor page.\Hy@temp\fi}{}}}%
- }{\IfPackageLoadedTF{nameref}{\protected@iwrite\@auxout{}{%
- \string\newlabel{LastPage}{{}{\thepage}{}{}{}}}%
- }{\protected@iwrite\@auxout{}{\string\newlabel{LastPage}{%
- {}{\thepage}}}%
- }%
- }%
- }%
+ \protected@iwrite\@auxout{}{\string\newlabel{LastPage}{%
+ {\@currentlabel}{\thepage}{\@currentlabelname}%
+ {\IfPackageLoadedTF{hyperref}{\ifHy@pageanchor\@currentHpage\fi%
+ }{\@currentHref}}%
+ {\@kernel@reserved@label@data}}%
+ }%
% \end{macrocode}
-%
+% \pagebreak
% \noindent We also save the values, so that we can later (next rerun) check,
% whether they have been saved in the \xfile{aux} file.
%
% \begin{macrocode}
- \protected@iwrite\@auxout{}{\string\gdef\string\lastpage@lastpage{\thepage}}%
- \gdef\lastpage@Hy{\IfPackageLoadedTF{hyperref}{\ifHy@pageanchor\Hy@temp\fi}{}}%
- \protected@iwrite\@auxout{}{\string\gdef\string\lastpage@lastpageHy{\lastpage@Hy}}%
+ \protected@iwrite\@auxout{}{%
+ \string\gdef\string\lastpage@lastpage{\thepage}}%
+ \gdef\lastpage@Hy{\IfPackageLoadedTF{hyperref}{%
+ \ifHy@pageanchor\lastpage@rmpage{\@currentHpage}\fi}{}}%
+ \protected@iwrite\@auxout{}{%
+ \string\gdef\string\lastpage@lastpageHy{\lastpage@Hy}}%
% \end{macrocode}
%
% \noindent After the write-out we restore the page number again,
@@ -1691,7 +1595,6 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \end{macrocode}
% \end{macro}
-% \newpage
%
% \begin{macro}{\lastpage@fileswtestHy}
% \indent \hspace*{2em}When the \xpackage{hyperref} package has been loaded,
@@ -1702,7 +1605,7 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \begin{macrocode}
\newcommand{\lastpage@fileswtestHy}{%
\ifHy@pageanchor%
- \lastpage@fileswtest{\Hy@temp}{\lastpage@lastpageHy}%
+ \lastpage@fileswtest{\@currentHpage}{\@the@H@page}%
\else%
\lastpage@fileswtest{\empty}{\lastpage@lastpageHy}%
\fi%
@@ -1789,7 +1692,7 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \begin{description}
% \item[-] \TeX, \url{https://www.CTAN.org}
%
-% \item[-] package \xpackage{lastpage}, 2023-10-14, v2.0e,
+% \item[-] package \xpackage{lastpage}, 2024-04-27, v2.1a,
% \url{https://ctan.org/pkg/lastpage}
% \end{description}
%
@@ -1799,10 +1702,10 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \begin{description}
% \item[-] \TeX-format \LaTeX{}, v2.09
%
-% \item[-] package \xpackage{lastpage209}, 2023-10-14, v2.0e,
+% \item[-] package \xpackage{lastpage209}, 2024-04-27, v2.1a,
% \url{https://ctan.org/pkg/lastpage}
% \end{description}
-% and does not work with \xpackage{hyperref}, which needs \LaTeX2e{}.
+% and does not work with \xpackage{hyperref}, which needs \LaTeX2e{}.\smallskip
%
% \DescribeMacro{lastpage2e.sty}
% The |lastpage2e.sty| for \LaTeXe{} (i.\,e. each document using
@@ -1811,7 +1714,7 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \item[-] \TeX-format \LaTeXe{} 1994/12/01 or newer,
% \url{https://www.CTAN.org}
%
-% \item[-] package \xpackage{lastpage}, 2023-10-14, v2.0e,
+% \item[-] package \xpackage{lastpage}, 2024-04-27, v2.1a,
% \url{https://ctan.org/pkg/lastpage}
% \end{description}
%
@@ -1819,39 +1722,42 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% The |lastpageclassic.sty| for \LaTeXe{} (i.\,e. each document using
% the \xpackage{lastpageclassic} package) requires:
% \begin{description}
-% \item[-] \TeX-format \LaTeXe{} between 1994/12/01 and 2022/11/01,\newline
+% \item[-] \TeX-format \LaTeXe{} between 1994/12/01 and 2023-05-31,\newline
% \url{https://www.CTAN.org}
%
-% \item[-] package \xpackage{lastpage}, 2023-10-14, v2.0e,
+% \item[-] package \xpackage{lastpage}, 2024-04-27, v2.1a,
% \url{https://ctan.org/pkg/lastpage}
% \end{description}
% and can use
% \begin{description}
% \item[-] package \xpackage{hyperref}, 2023-07-08, v7.01b,
-% \url{https://ctan.org/pkg/hyperref}
+% \url{https://ctan.org/pkg/hyperref}\newline
+% (probably also some older and newer versions)
% \end{description}
%
% \DescribeMacro{lastpagemodern.sty}
% The |lastpagemodern.sty| for \LaTeXe{} (i.\,e. each document using
% the \xpackage{lastpagemodern} package) requires:
% \begin{description}
-% \item[-] \TeX-format \LaTeXe{} 2022-11-01, better yet 2023-06-01 or newer,\newline
+% \item[-] \TeX-format \LaTeXe{} 2023-06-01 or newer,\newline
% \url{https://www.CTAN.org}
%
-% \item[-] package \xpackage{lastpage}, 2023-10-14, v2.0e,
+% \item[-] package \xpackage{lastpage}, 2024-04-27, v2.1a,
% \url{https://ctan.org/pkg/lastpage}
% \end{description}
% and can use
% \begin{description}
-% \item[-] package \xpackage{hyperref}, 2023-07-08, v7.01b,
+% \item[-] package \xpackage{hyperref}, 2023-11-07 and newer
+% (tested with: 2024-01-20, v7.01h),
% \url{https://ctan.org/pkg/hyperref}
% \end{description}
+% \pagebreak
%
% \DescribeMacro{lastpage-example.tex}
% The |lastpage-example.tex| requires the same file as all
% documents using the \xpackage{lastpage} package, i.\,e.
% \begin{description}
-% \item[-] package \xpackage{lastpage}, 2023-10-14, v2.0e,
+% \item[-] package \xpackage{lastpage}, 2024-04-27, v2.1a,
% \url{https://ctan.org/pkg/lastpage}\newline
% (Well, it is the example file for this package, and because you are reading the
% documentation for the \xpackage{lastpage} package, it can be assumed that you already
@@ -1862,10 +1768,10 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \item[-] class \xpackage{article}, 2023-05-17, v1.4n, from \xpackage{classes}:
% \url{https://ctan.org/pkg/classes}
%
-% \item[-] package \xpackage{showkeys}, 2023-05-11, v3.19,
+% \item[-] package \xpackage{showkeys}, 2023-07-08, v3.19,
% \url{https://ctan.org/pkg/showkeys}
%
-% \item[-] package \xpackage{hyperref}, 2023-07-08, v7.01b,
+% \item[-] package \xpackage{hyperref}, 2024-01-20, v7.01h,
% \url{https://ctan.org/pkg/hyperref}
% \end{description}
%
@@ -1886,7 +1792,7 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \xpackage{fancyheadings}), but because they were mentioned, also they are listed
% here:
% \begin{description}
-% \item[-] package \xpackage{fancyhdr}, 2022-11-09, v4.1,
+% \item[-] package \xpackage{fancyhdr}, 2024/04/23, v4.2,
% \url{https://ctan.org/pkg/fancyhdr}
%
% \item[-] package \xpackage{nccfancyhdr}, 2004/12/07, v1.1,
@@ -1929,7 +1835,7 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \item[-] package \xpackage{zref}, 2023-09-14, v2.35,
% \url{https://ctan.org/pkg/zref}
%
-% \item[-] class \xpackage{memoir}, 2023-08-21, v3.8.1,
+% \item[-] class \xpackage{memoir}, 2024-01-26, v3.8.2,
% \url{https://ctan.org/pkg/memoir}.
% \end{description}
%
@@ -1971,13 +1877,13 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \end{description}
% which additionally contains\\
% \begin{tabular}{ll}
-% lastpage.ins & The installation file.\\
-% lastpage.drv & The driver to generate the documentation.\\
-% lastpage.sty & The \xext{sty}le file.\\
-% lastpage209.sty & The \xext{sty}le file for \LaTeX2.09{} \textbf{only}.\\
-% lastpage2e.sty & The \xext{sty}le file to determine which 2e-style to use.\\
-% lastpageclassic.sty & The \xext{sty}le file for older \LaTeX-formats.\\
-% lastpagemodern.sty & The \xext{sty}le file for the recent \LaTeX-format.\\
+% lastpage.ins & The \texttt{ins}tallation file.\\
+% lastpage.drv & The \mbox{\texttt{dr}i\texttt{v}er} to generate the documentation.\\
+% lastpage.sty & The \texttt{sty}le file.\\
+% lastpage209.sty & The \texttt{sty}le file for \LaTeX2.09{} \textbf{only}.\\
+% lastpage2e.sty & The \texttt{sty}le file to determine which 2e-style to use.\\
+% lastpageclassic.sty & The \texttt{sty}le file for older \LaTeX-formats.\\
+% lastpagemodern.sty & The \texttt{sty}le file for the recent \LaTeX-format.\\
% lastpage-example.tex & The example file.%
% \end{tabular}
%
@@ -2131,12 +2037,10 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% inventing the \xpackage{lastpage} package as well as for allowing me
% to update it. Further I would like to thank \textsc{Heiko Oberdiek}
% for providing a~lot~(!) of useful packages (from which I also learned everything
-% I know about creating a file in \xfile{dtx} format, OK, say it: copying),
-% and the \Newsgroup{comp.text.tex} and \Newsgroup{de.comp.text.tex}
-% newsgroups for their help in all things \TeX{}. Thanks for bug reports
-% to \textsc{Ulrike Fischer} (twice), \textsc{Sebastian Bank}, \textsc{James Hedges},
-% \textsc{Mikhail Titov}, \textsc{Micha\l{} Herman}, \textsc{Matteo Gamboz}, and
-% \textsc{James Small}.
+% I know about creating a file in \xfile{dtx} format, OK, say it: copying).
+% Thanks for bug reports go to \textsc{Ulrike Fischer} (twice),
+% \textsc{Sebastian Bank}, \textsc{James Hedges}, \textsc{Mikhail Titov},
+% \textsc{Micha\l{} Herman}, \textsc{Matteo Gamboz}, and \textsc{James Small}.
% Thanks to \textsc{Sven Siegmund} for pointing out a necessary further
% explanation in the documentation.
%
@@ -2315,7 +2219,8 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \item Replaced |\immediate\write| by a form of (pseudo-code!) |\immediate\protected@write|.
% (Thanks to \textsc{Ulrike Fischer} for the error report and solution!)
% \item Update of the |\lastpage@putl@bel| code to \pkg{hyperref} 2023-07-08, v7.01b,
-% which now allows fnsymbol as page numbering scheme.
+% which now allows fnsymbol as page numbering scheme (while links to, for example,
+% a page named $\|$ still do not work).
% \end{Version}
% \begin{Version}{2023-10-06 v2.0d}
% \item For plain arabic page numbers only, \pkg{lastpage} again writes the page number
@@ -2325,6 +2230,13 @@ To see the content of the \texttt{enddocument/afterlastpage}-hook
% \begin{Version}{2023-10-14 v2.0e}
% \item Replaced a |\PackageError| by |\PackageWarningNoLine| as suggested by \textsc{Ulrike Fischer}.
% \end{Version}
+% \begin{Version}{2024-04-27 v2.1a}
+% \item Utilizes the new |\@currentHpage| provided by the \LaTeX -kernel.
+% \item The issue with |\thepage| (former |\lastpage@nonnumeric| command) has has been fixed
+% at 2023-11-07, \url{https://github.com/latex3/hyperref/issues/303}.
+% \item |\lastpage@IfNumericTF| is no longer needed, but has not been removed
+% so as not to break older documents that use it in a different context.
+% \end{Version}
% \end{History}
% \bigskip
%
diff --git a/macros/latex/contrib/lastpage/lastpage.pdf b/macros/latex/contrib/lastpage/lastpage.pdf
index bd129a18b2..02cb1362b7 100644
--- a/macros/latex/contrib/lastpage/lastpage.pdf
+++ b/macros/latex/contrib/lastpage/lastpage.pdf
Binary files differ
diff --git a/macros/luatex/latex/novel/README.md b/macros/luatex/latex/novel/README.md
index a95f9d4034..5b9e8de4ac 100644
--- a/macros/luatex/latex/novel/README.md
+++ b/macros/luatex/latex/novel/README.md
@@ -6,9 +6,7 @@ Special attention to the needs of print-on-demand.
Author: Robert Allgeyer. (Aptos, California, USA).
-Project Page: https://github.com/rallg/novel
-
-Contact: Username `rallg` at GitHub or tex.stackexchange.com.
+Contact: Username `rallg` at tex.stackexchange.com.
Licenses: Fonts are licensed Open Font License 1.1.
TeX code is licensed Latex Project Public License 1.3c, with some code snippets
@@ -17,6 +15,5 @@ attributed under terms of Creative Commons CC-BY-SA 4.0.
Additional Information: Due to changes in print technology over the years,
much of `novel` code is now unnecessary. Also, it offers many rarely-used
features that bloat the code and its documentation.
-If you have not already used `novel`, the simpler `novelette` document class
-might be better for your purpose. Expected 2024.
-
+So although the package continues to work as of TeXlive 2024,
+it is no longer maintained.
diff --git a/macros/luatex/latex/novel/doc/novel-documentation.html b/macros/luatex/latex/novel/doc/novel-documentation.html
index 080086130a..c4bd3ae36e 100644
--- a/macros/luatex/latex/novel/doc/novel-documentation.html
+++ b/macros/luatex/latex/novel/doc/novel-documentation.html
@@ -497,9 +497,6 @@ p.overhang {margin-left:32px; text-indent:-16px;}
<p class="item">ALERT: If you have been using this document class prior to version 1.80 (February 2023),
see <a href="#hZ">Appendix Z</a>.</p>
-<p class="item">ALERT: New user? Little knowledge of LaTeX? Try the simpler "novelette" document class.
-Expected in early 2024.</p>
-
<!-- ********************************************************************** -->
<div id="page01" class="page">
@@ -3137,7 +3134,7 @@ Some text {\baskf\addfontfeature{Numbers=Monospaced} hello 123} is here.
<h4>Important Changes</h4>
<div class="d3">
-<p>Version 2.1 (2024) Added choice babel/polyglossia. Revised uuid.</p>
+<p>Version 2.1-2.2 (2024) Added choice babel/polyglossia. Revised uuid.</p>
<p>Version 1.86 (2024) docs edited.</p>
<p>Version 1.84 (2023) docs edited. Probably final update.</p>
<p>Version 1.83 (2023) corrected minor typo. Will not affect most users.</p>
diff --git a/macros/luatex/latex/novel/doc/novel.pdf b/macros/luatex/latex/novel/doc/novel.pdf
index 181ab08a5c..2711d7c979 100644
--- a/macros/luatex/latex/novel/doc/novel.pdf
+++ b/macros/luatex/latex/novel/doc/novel.pdf
@@ -8,10 +8,10 @@ stream
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
xmlns:xmp="http://ns.adobe.com/xap/1.0/">
- <xmp:ModifyDate>2024-02-16T20:46:42-08:00</xmp:ModifyDate>
- <xmp:CreateDate>2024-02-16T20:46:42-08:00</xmp:CreateDate>
+ <xmp:ModifyDate>2024-04-24T08:06:30-07:00</xmp:ModifyDate>
+ <xmp:CreateDate>2024-04-24T08:06:30-07:00</xmp:CreateDate>
<xmp:CreatorTool>LuaLaTeX with novel and microtype</xmp:CreatorTool>
- <xmp:MetadataDate>2024-02-16T20:46:42-08:00</xmp:MetadataDate>
+ <xmp:MetadataDate>2024-04-24T08:06:30-07:00</xmp:MetadataDate>
</rdf:Description>
<rdf:Description rdf:about=""
xmlns:dc="http://purl.org/dc/elements/1.1/">
@@ -25,7 +25,7 @@ stream
<rdf:Description rdf:about=""
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/">
<xmpMM:DocumentID>uuid:8be8dbc2-8185-4bd3-89d9-3e8e2e6caf20</xmpMM:DocumentID>
- <xmpMM:InstanceID>uuid:07b883d2-6d54-4e3f-8435-88147e89e625</xmpMM:InstanceID>
+ <xmpMM:InstanceID>uuid:5f196fe3-7211-4761-88a4-cead141a24ad</xmpMM:InstanceID>
<xmpMM:RenditionClass>default</xmpMM:RenditionClass>
<xmpMM:VersionID>1</xmpMM:VersionID>
</rdf:Description>
@@ -49,7 +49,7 @@ stream
endstream
endobj
7 0 obj
-<< /Length 8460 >>
+<< /Length 7036 >>
stream
0 g 0 G
0 g 0 G
@@ -71,45 +71,33 @@ BT
/F95 11.3574 Tf
0.992 0 0 1 88.261 401.818 Tm [<00350049004A0054>-252<00450050>-7<00440056004E0046004F0055>-253<0044004D004200540054>-253<005800420054>-252<0939005300540055>-253<00510053004A0057004200550046004D005A>-253<005600540046>-7<0045>-252<004A004F>-253<09CA09C809C909CC000F>-338<003500490046004F000D>]TJ
1.02 0 0 1 54 387.024 Tm [<004A004F>-280<09CA09C809C909D0000D>-289<004A0055>-280<005800420054>-281<004A004E00510053>8<0050>7<0057>8<0046>-7<0045000D>-289<00450050>-7<00440056004E0046004F00550046>-7<0045000D>-289<0042004F0045>-280<0053>7<0046004D0046004200540046>-6<0045000F>-432<002A0055>-281<004900420054>-280<0043>-10<0046>-7<0046004F>]TJ
-1.02 0 0 1 54 372.229 Tm [<004E0042004A004F00550042004A004F0046>-7<0045>-315<005500490053>7<0050005600480049>-314<0035>62<00460039004D004A0057>8<0046>-315<09CA09C809CA09CB000F>-538<002A0055>-315<004A0054>-315<0046>6<00590051>-6<0046>-7<004400550046>-7<0045>-316<00550050>-315<0058>7<00500053004C>-315<004A004F>-315<005500490046>]TJ
-1 0 0 1 54 357.435 Tm [<00470056005500560053>8<0046>10<000D>-250<004300560055>-250<004A0054>-250<004F0050>-250<004D0050004F004800460053>-250<004E0042004A004F00550042004A004F0046>-7<0045>-250<0043005A>-250<004A00550054>-250<00500053004A0048004A004F0042004D>-250<00440053>8<00460042005500500053>59<000F>]TJ
+1.003 0 0 1 54 372.229 Tm [<004E0042004A004F00550042004A004F0046>-7<0045>-248<005500490053>7<0050005600480049>-247<0035>63<00460039004D004A0057>8<0046>-248<09CA09C809CA09CB000F>-332<002A0055>-248<00440050004F0055004A004F005600460054>-249<00550050>-248<0058>7<00500053004C>-247<004A004F>-249<0035>63<00460039004D004A0057>8<0046>]TJ
+1 0 0 1 54 357.435 Tm [<09CA09C809CA09CC000D>-250<004300560055>-250<004A0054>-250<004F0050>-250<004D0050004F004800460053>-250<004E0042004A004F00550042004A004F0046>-7<0045>-250<0043005A>-250<004A00550054>-250<00500053004A0048004A004F0042004D>-250<00440053>8<00460042005500500053>59<000F>]TJ
0.98 0 0 1 71.036 342.64 Tm [<002400490042004F004800460054>-226<004A004F>-226<00510053004A004F0055000E0050004F000E00450046004E0042004F0045>-227<00550046>-7<00440049004F0050004D00500048005A>-227<004900420057>8<0046>-226<004E004200450046>-226<004E0042004F005A>-227<00510042005300550054>]TJ
0.98 0 0 1 54 327.845 Tm [<00500047>-254<00550049004A0054>-255<00440050>-7<00450046>-254<004A00530053>7<0046004D0046>7<00570042004F0055000F>-339<0035004900460053>8<0046>-254<00420053>7<0046>-253<0042004D00540050>-255<0042>-254<00470046>6<0058>-254<00440050004E004E0042004F00450054>-254<0055004900420055>-255<0053>8<0046>-7<00520056004A0053>8<0046>]TJ
1.02 0 0 1 54 313.051 Tm [<00480053004200510049004A0044>-288<004500460054004A0048004F>-288<0046>6<00590051>-6<00460053004A0046004F00440046>-289<004700500053>-288<00510053>7<00500051>-6<00460053>-289<00560054004200480046>9<000F>-456<0022004F0045>-288<0042>-289<00470046>6<0058>-287<0054004600550055004A004F00480054000D>]TJ
1 0 0 1 53.58 298.256 Tm [<00580049004A00440049>-250<0054004900500056004D0045>-250<0043>-10<0046>-250<0054004A004E0051004D0046>-250<0042004F0045>-250<005000430057004A005000560054000D>-250<00420053>8<0046>-250<00440050004E0051004D0046>7<0059>-250<0042004F0045>-250<00420053>8<00440042004F0046>10<000F>]TJ
-1.02 0 0 1 71.036 283.462 Tm [<002A0047>]TJ
+0.98 0 0 1 71.036 283.462 Tm [<002A0047>]TJ
/F98 11.3574 Tf
-1.02 0 0 1 81.23 283.462 Tm [<004F0050>7<0057>8<0046004D>]TJ
+0.98 0 0 1 80.294 283.462 Tm [<004F0050>7<0057>8<0046004D>]TJ
/F95 11.3574 Tf
-1.02 0 0 1 109.331 283.462 Tm [<0058>8<00500053004C0054>-273<004700500053>-273<005A>8<00500056000D>-279<00480050>-7<0050>-7<0045000F>-411<002300560055>-273<004A0047>-273<005A>7<00500056>-272<00420053>7<0046>-272<0054004A004E0051004D005A>-273<00580053004A0055004A004F0048>-273<0042>]TJ
-1.02 0 0 1 54 268.667 Tm [<093900440055004A0050004F>-283<004F0050>6<0057>8<0046004D000D>-293<004F005000550049004A004F0048>-284<00470042004F0044005A>58<000D>-292<005500490046004F>-284<00540046>-7<0046>-284<004A0047>-284<00240035>48<0022002F>-282<0042004F0045>-284<0035>62<00460039004D004A0057>8<0046>-283<004900420057>7<0046>]TJ
-1.02 0 0 1 54 253.873 Tm [<0042>-273<005100420044004C004200480046>-274<004F0042004E0046>-7<0045>]TJ
-/F98 11.3574 Tf
-1.02 0 0 1 139.105 253.873 Tm [<004F0050>7<0057>7<0046004D0046005500550046>]TJ
-/F95 11.3574 Tf
-1.02 0 0 1 179.711 253.873 Tm [<000F>-411<0022>11<0054>-273<00500047>-273<004D004200550046>-274<002B0042004F005600420053>-15<005A>-273<09CA09C809CA09CC000D>-281<005500490046>-273<005100420044004C004200480046>]TJ
-1.02 0 0 1 54 239.078 Tm [<004A0054>-264<004A004F>-265<0043>-10<004600550042>-265<0055004600540055>-265<0009004F00500055>-265<0053>7<0046004D0046004200540046>-6<0045>-265<005A>7<00460055000A000F>-385<002A0047>-265<005500490046>-265<005100420044004C004200480046>-264<0046>6<0059004A005400550054>-264<0042004F0045>-265<00440042004F>-265<0043>-10<0046>]TJ
-1 0 0 1 54 224.284 Tm [<004A004F005400550042004D004D0046>-7<0045000D>-250<005500490046004F>-250<005A>8<00500056>-250<0054004900500056004D0045>-250<00510053>8<0046004700460053>]TJ
-/F98 11.3574 Tf
-1 0 0 1 207.45 224.284 Tm [<004F0050>7<0057>8<0046004D0046005500550046>]TJ
-/F95 11.3574 Tf
-1 0 0 1 247.258 224.284 Tm [<000F>]TJ
+0.98 0 0 1 106.778 283.462 Tm [<0058>8<00500053004C0054>-224<004700500053>-225<005A>8<00500056000D>-230<00480050>-7<0050>-8<0045000F>-330<002300560055>-224<004A0047>-225<004F00500055000D>-231<004F0050>-225<004400490042004F004800460054>-225<00420053>8<0046>-224<0051004D0042004F004F0046>-7<0045000F>]TJ
/F97 11.3574 Tf
-1 0 0 1 54 194.695 Tm [<00250046005400440053004A00510055004A0050004F001B>]TJ
+1 0 0 1 54 253.873 Tm [<00250046005400440053004A00510055004A0050004F001B>]TJ
/F95 11.3574 Tf
-1.02 0 0 1 121.178 194.695 Tm [<003500490046>]TJ
+1.02 0 0 1 121.178 253.873 Tm [<003500490046>]TJ
/F98 11.3574 Tf
-1.02 0 0 1 142.58 194.695 Tm [<004F0050>7<0057>8<0046004D>]TJ
+1.02 0 0 1 142.58 253.873 Tm [<004F0050>7<0057>8<0046004D>]TJ
/F95 11.3574 Tf
-1.02 0 0 1 170.594 194.695 Tm [<00450050>-7<00440056004E0046004F0055>-265<0044004D004200540054>-266<004A0054>-265<004700500053>-265<00580053004A0055004600530054>-266<00500047>-265<00500053004A0048004A004F0042004D>]TJ
-0.98 0 0 1 54 179.9 Tm [<093900440055004A0050004F000D>-244<00550050>-242<0043>-10<0046>-242<00510053004A004F00550046>-7<0045>-242<00550050>-242<005100420051>-7<00460053>61<000D>-244<0058004A00550049>-242<0042005500550046004F0055004A0050004F>-241<00550050>-242<005500490046>-242<0053>7<0046>-6<00520056004A0053>8<0046004E0046004F00550054>-241<00500047>]TJ
-0.995 0 0 1 54 165.106 Tm [<005500490046>-249<00510053004A004F0055000E0050004F000E00450046004E0042004F0045>-250<004E00420053004C00460055000F>-335<002F0050004F000E00440050004D00500053>-250<004A004F005500460053004A005000530054>-249<0042004F0045>-250<00440050004D00500053>-250<00440050>6<0057>8<004600530054>]TJ
-1.02 0 0 1 54 150.311 Tm [<00420053>8<0046>-294<0054005600510051>-7<0050005300550046>-7<0045000F>-474<002A004E0042004800460054>-295<00420053>8<0046>-294<0054005600510051>-7<0050005300550046>-7<0045000D>-307<004300560055>-294<0050004F004D005A>-294<00420054>-294<005500490046>6<005A>-294<004E004A004800490055>-294<0043>-10<0046>]TJ
-1 0 0 1 54 135.517 Tm [<005600540046>-7<0045>-250<004A004F>-250<093900440055004A0050004F000D>-250<004F00500055>-250<0051004A0044005500560053>8<0046>-250<0043>-10<0050>-7<0050004C0054000F>]TJ
-0.98 0 0 1 71.036 120.722 Tm [<002A0047>-226<005A>8<005000560053>-226<0058>8<00500053004C>-226<004A0054>-226<0042004F>-226<0026000E0043>-10<0050>-8<0050004C000D>-232<00500053>-226<0056005400460054>-226<004A004F005500460053004A00500053>-226<00440050004D00500053>-226<00500055004900460053>-227<005500490042004F>-226<004800530042005A>61<000D>]TJ
-1 0 0 1 54 105.928 Tm [<00500053>-250<004A0054>-250<00420044004200450046004E004A0044000D>-250<005500490046004F>-250<00550049004A0054>-250<00450050>-7<00440056004E0046004F0055>-250<0044004D004200540054>-250<004A0054>-250<004F00500055>-250<004700500053>-250<005A>8<00500056000F>]TJ
-1 0 0 1 71.036 91.133 Tm [<002300560055>-250<004A0047>-250<005A>7<00500056>-250<00420053>8<0046>-250<00580053004A0055004A004F0048>-250<0042>-251<0045004600550046>-7<00440055004A0057>7<0046>-249<004F0050>6<0057>8<0046004D000D>-249<00500053>-251<00540044004A0046004F00440046>-250<093900440055004A0050004F000D>-251<00500053>-250<0042>]TJ
-1 0 0 1 54 76.339 Tm [<00440050004D004D0046>-7<00440055004A0050004F>-250<00500047>-250<00540049005000530055>-250<0054005500500053004A00460054000D>-250<005500490046004F>-250<005A>8<00500056>-250<00420053>8<0046>-250<004A004F>-250<005500490046>-250<0053004A004800490055>-250<0051004D004200440046>10<000F>]TJ
+1.02 0 0 1 170.594 253.873 Tm [<00450050>-7<00440056004E0046004F0055>-265<0044004D004200540054>-266<004A0054>-265<004700500053>-265<00580053004A0055004600530054>-266<00500047>-265<00500053004A0048004A004F0042004D>]TJ
+0.98 0 0 1 54 239.078 Tm [<093900440055004A0050004F000D>-244<00550050>-242<0043>-10<0046>-242<00510053004A004F00550046>-7<0045>-242<00550050>-242<005100420051>-7<00460053>61<000D>-244<0058004A00550049>-242<0042005500550046004F0055004A0050004F>-241<00550050>-242<005500490046>-242<0053>7<0046>-6<00520056004A0053>8<0046004E0046004F00550054>-241<00500047>]TJ
+0.995 0 0 1 54 224.284 Tm [<005500490046>-249<00510053004A004F0055000E0050004F000E00450046004E0042004F0045>-250<004E00420053004C00460055000F>-335<002F0050004F000E00440050004D00500053>-250<004A004F005500460053004A005000530054>-249<0042004F0045>-250<00440050004D00500053>-250<00440050>6<0057>8<004600530054>]TJ
+1.02 0 0 1 54 209.489 Tm [<00420053>8<0046>-294<0054005600510051>-7<0050005300550046>-7<0045000F>-474<002A004E0042004800460054>-295<00420053>8<0046>-294<0054005600510051>-7<0050005300550046>-7<0045000D>-307<004300560055>-294<0050004F004D005A>-294<00420054>-294<005500490046>6<005A>-294<004E004A004800490055>-294<0043>-10<0046>]TJ
+1 0 0 1 54 194.695 Tm [<005600540046>-7<0045>-250<004A004F>-250<093900440055004A0050004F000D>-250<004F00500055>-250<0051004A0044005500560053>8<0046>-250<0043>-10<0050>-7<0050004C0054000F>]TJ
+0.98 0 0 1 71.036 179.9 Tm [<002A0047>-226<005A>8<005000560053>-226<0058>8<00500053004C>-226<004A0054>-226<0042004F>-226<0026000E0043>-10<0050>-8<0050004C000D>-232<00500053>-226<0056005400460054>-226<004A004F005500460053004A00500053>-226<00440050004D00500053>-226<00500055004900460053>-227<005500490042004F>-226<004800530042005A>61<000D>]TJ
+1 0 0 1 54 165.106 Tm [<00500053>-250<004A0054>-250<00420044004200450046004E004A0044000D>-250<005500490046004F>-250<00550049004A0054>-250<00450050>-7<00440056004E0046004F0055>-250<0044004D004200540054>-250<004A0054>-250<004F00500055>-250<004700500053>-250<005A>8<00500056000F>]TJ
+1 0 0 1 71.036 150.311 Tm [<002300560055>-250<004A0047>-250<005A>7<00500056>-250<00420053>8<0046>-250<00580053004A0055004A004F0048>-250<0042>-251<0045004600550046>-7<00440055004A0057>7<0046>-249<004F0050>6<0057>8<0046004D000D>-249<00500053>-251<00540044004A0046004F00440046>-250<093900440055004A0050004F000D>-251<00500053>-250<0042>]TJ
+1 0 0 1 54 135.517 Tm [<00440050004D004D0046>-7<00440055004A0050004F>-250<00500047>-250<00540049005000530055>-250<0054005500500053004A00460054000D>-250<005500490046004F>-250<005A>8<00500056>-250<00420053>8<0046>-250<004A004F>-250<005500490046>-250<0053004A004800490055>-250<0051004D004200440046>10<000F>]TJ
0 g 0 G
0 g 0 G
ET
@@ -134,33 +122,33 @@ endobj
<< /pgfprgb [/Pattern /DeviceRGB] >>
endobj
12 0 obj
-[ 70 [ 401 ] 77 [ 266 ] 79 [ 518 447 ] 85 [ 307 ] 87 [ 472 ] ]
+[ 70 [ 401 ] 77 [ 266 ] 79 [ 518 447 ] 87 [ 472 ] ]
endobj
14 0 obj
<< /Length 11 >>
stream
-
+
endstream
endobj
15 0 obj
-<< /Subtype /CIDFontType0C /Length 1211 >>
+<< /Subtype /CIDFontType0C /Length 1087 >>
stream
-
-y;<1 ޓ&{orfmc5fS`ocyen`dv$pNAVxNklxgʹɭW]y{(kg^f2v݋wI)Ci}}fjQPVhЍz__wȧ~dnz~stv{_f=eX~zg\}
+
+y;<1 ޓ&{orfmc5fS`ocyen`2v݋wI)Ci}}fjQPVhЍz__wȧ~dnz~stv{_f=eX~zg\}

endstream
endobj
13 0 obj
-<< /Type /FontDescriptor /FontName /MYLNXL+LibertinusSerif-Italic /Flags 4 /FontBBox [ -1325 -312 1389 928 ] /Ascent 894 /CapHeight 647 /Descent -246 /ItalicAngle -12 /StemV 73 /XHeight 429 /FontFile3 15 0 R /CIDSet 14 0 R >>
+<< /Type /FontDescriptor /FontName /DNHLYF+LibertinusSerif-Italic /Flags 4 /FontBBox [ -1325 -312 1389 928 ] /Ascent 894 /CapHeight 647 /Descent -246 /ItalicAngle -12 /StemV 73 /XHeight 429 /FontFile3 15 0 R /CIDSet 14 0 R >>
endobj
16 0 obj
-<< /Length 787 >>
+<< /Length 773 >>
stream
%!PS-Adobe-3.0 Resource-CMap
%%DocumentNeededResources: ProcSet (CIDInit)
%%IncludeResource: ProcSet (CIDInit)
-%%BeginResource: CMap (TeX-MYLNXL-LibertinusSerif-Italic-0)
-%%Title: (TeX-MYLNXL-LibertinusSerif-Italic-0 TeX MYLNXL-LibertinusSerif-Italic 0)
+%%BeginResource: CMap (TeX-DNHLYF-LibertinusSerif-Italic-0)
+%%Title: (TeX-DNHLYF-LibertinusSerif-Italic-0 TeX DNHLYF-LibertinusSerif-Italic 0)
%%Version: 1.000
%%EndComments
/CIDInit /ProcSet findresource begin
@@ -168,22 +156,21 @@ stream
begincmap
/CIDSystemInfo
<< /Registry (TeX)
-/Ordering (MYLNXL-LibertinusSerif-Italic)
+/Ordering (DNHLYF-LibertinusSerif-Italic)
/Supplement 0
>> def
-/CMapName /TeX-Identity-MYLNXL-LibertinusSerif-Italic def
+/CMapName /TeX-Identity-DNHLYF-LibertinusSerif-Italic def
/CMapType 2 def
1 begincodespacerange
<0000> <FFFF>
endcodespacerange
0 beginbfrange
endbfrange
-6 beginbfchar
+5 beginbfchar
<0046> <0065>
<004D> <006C>
<004F> <006E>
<0050> <006F>
-<0055> <0074>
<0057> <0076>
endbfchar
endcmap
@@ -196,10 +183,10 @@ end
endstream
endobj
10 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /MYLNXL+LibertinusSerif-Italic /DescendantFonts [ 17 0 R ] /ToUnicode 16 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /DNHLYF+LibertinusSerif-Italic /DescendantFonts [ 17 0 R ] /ToUnicode 16 0 R >>
endobj
17 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /MYLNXL+LibertinusSerif-Italic /FontDescriptor 13 0 R /W 12 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /DNHLYF+LibertinusSerif-Italic /FontDescriptor 13 0 R /W 12 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
18 0 obj
[ 27 [ 256 ] 32 [ 430 ] 37 [ 734 ] 47 [ 740 ] 56 [ 1028 ] 66 [ 506 ] 68 [ 456 561 489 ] 73 [ 619 322 ] 78 [ 905 616 551 581 ] 83 [ 428 427 358 598 ] 88 [ 777 ] ]
@@ -288,43 +275,43 @@ endobj
<< /Type /Font /Subtype /CIDFontType0 /BaseFont /TBQIGK+LibertinusSerif-Bold /FontDescriptor 19 0 R /W 18 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
24 0 obj
-[ 9 [ 298 298 ] 13 [ 220 338 220 323 ] 34 [ 695 588 646 701 557 485 ] 41 [ 730 297 322 ] 45 [ 528 839 699 702 ] 51 [ 587 ] 53 [ 597 661 652 ] 57 [ 660 ] 66 [ 457 493 428 506 447 310 500 538 271 ] 76 [ 512 264 790 542 504 519 503 372 390 316 531 497 747 490 515 ] 2361 [ 560 ] 2504 [ 465 465 465 465 465 ] 2512 [ 465 ] ]
+[ 9 [ 298 298 ] 13 [ 220 338 220 323 ] 34 [ 695 588 646 701 557 485 ] 41 [ 730 297 ] 45 [ 528 839 699 702 ] 51 [ 587 ] 53 [ 597 661 652 ] 57 [ 660 ] 66 [ 457 493 428 506 447 310 500 538 271 ] 76 [ 512 264 790 542 504 519 503 372 390 316 531 497 747 490 515 ] 2361 [ 560 ] 2504 [ 465 465 465 465 465 ] 2512 [ 465 ] ]
endobj
26 0 obj
<< /Length 315 >>
stream
-
+
endstream
endobj
27 0 obj
-<< /Subtype /CIDFontType0C /Length 8475 >>
+<< /Subtype /CIDFontType0C /Length 8374 >>
stream
-
-
-f
- 4 @/*y^:i GOOU$N>>>>z>\>`#^{dHj 
+
+
+
+ 1  GW^$s3s|(wv$)nU$N>>>>z>\>`#^{dHj 
 %.;NGw?{dHe 
-kg ;Nxluvoltvg]W~ǖŻqclsso~tyĶnssnnssn{wbU!f w)/%g=ie[vŒ $dizb|p~wqMm_v $e\
+kg ;Nxluvoltvg]W~ǖŻqclsso~tyĶnssnnssn{wbU!f w)/%g=ie[vŒ $dizb|p~wqMm_v $e\
1M+:Jv $Gm9ϏhKa%vЇ@Mc0OrRv $I%cUu%vv)xx|nGvhq52zEv $EzuM|䜑ђb\sv]_ $vxф0(I.c#GV.VY#>ġ^G5"TfvwlQ=ߞ|tB\a^rqfzg[ML\agnh\\vш8%8zEv $Ezu
Do*[yӲw˕ֺq>Јi<5>
e^W[۟eN8z;v $;z۬@ޚ؎\Zddbd $vLj8`daFxۜǒebtvZ] $vք:|=[bmZv:TՆpvU2%4+tǑϒc^gghj $v†zFY{cʒmhtt^b $v۬** ED7+-fEʮmfttac $vsjC8nÎffcdjm $vP"_(Zi]k^v $_xMDcSv $aza*bK5lplz~n'"=B98URsz5v+sFVG9qѮM~vqitoYu՞Nv^wi;L̏sr@}c{<|dy}x 314`ezollȽA*]5,lvw"_i`u`BN ƓhhpR+(!2"2ݽ[^wpshkȒKY̏r@}c{<bjI_uec``qPA1
wXmrixȒKTԋ||kgi $vIUx}kfe{rmYJԋ||kgi $vJTFHRv./i "vX:X{d{CUyjhjjmm $v{X|͞Ðwsqjir $vUv..%i
_"mhgepq $vW}}ћwummam $vևn}h7dr5oxmcmrjm $vn^{EE~j~;bxK 96)Ң:+4@Jtp_mmmq $vzb@7
-2%jj8pEv $Ez[ǎZ{a7yW2Ĥb&,NXWzoVQxp
+2%jj8pEv $Ez[ǎZ{a7yW2Ĥb&,NXWzoVQxp
ڒ 
endstream
endobj
25 0 obj
-<< /Type /FontDescriptor /FontName /DOXZRQ+LibertinusSerif-Regular /Flags 4 /FontBBox [ -1325 -256 1269 928 ] /Ascent 894 /CapHeight 647 /Descent -246 /ItalicAngle 0 /StemV 73 /XHeight 429 /FontFile3 27 0 R /CIDSet 26 0 R >>
+<< /Type /FontDescriptor /FontName /IZYYKF+LibertinusSerif-Regular /Flags 4 /FontBBox [ -1325 -256 1269 928 ] /Ascent 894 /CapHeight 647 /Descent -246 /ItalicAngle 0 /StemV 73 /XHeight 429 /FontFile3 27 0 R /CIDSet 26 0 R >>
endobj
28 0 obj
-<< /Length 1483 >>
+<< /Length 1469 >>
stream
%!PS-Adobe-3.0 Resource-CMap
%%DocumentNeededResources: ProcSet (CIDInit)
%%IncludeResource: ProcSet (CIDInit)
-%%BeginResource: CMap (TeX-DOXZRQ-LibertinusSerif-Regular-0)
-%%Title: (TeX-DOXZRQ-LibertinusSerif-Regular-0 TeX DOXZRQ-LibertinusSerif-Regular 0)
+%%BeginResource: CMap (TeX-IZYYKF-LibertinusSerif-Regular-0)
+%%Title: (TeX-IZYYKF-LibertinusSerif-Regular-0 TeX IZYYKF-LibertinusSerif-Regular 0)
%%Version: 1.000
%%EndComments
/CIDInit /ProcSet findresource begin
@@ -332,17 +319,17 @@ stream
begincmap
/CIDSystemInfo
<< /Registry (TeX)
-/Ordering (DOXZRQ-LibertinusSerif-Regular)
+/Ordering (IZYYKF-LibertinusSerif-Regular)
/Supplement 0
>> def
-/CMapName /TeX-Identity-DOXZRQ-LibertinusSerif-Regular def
+/CMapName /TeX-Identity-IZYYKF-LibertinusSerif-Regular def
/CMapType 2 def
1 begincodespacerange
<0000> <FFFF>
endcodespacerange
0 beginbfrange
endbfrange
-55 beginbfchar
+54 beginbfchar
<0009> <0028>
<000A> <0029>
<000D> <002C>
@@ -357,7 +344,6 @@ endbfrange
<0027> <0046>
<0029> <0048>
<002A> <0049>
-<002B> <004A>
<002D> <004C>
<002E> <004D>
<002F> <004E>
@@ -409,10 +395,10 @@ end
endstream
endobj
8 0 obj
-<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /DOXZRQ+LibertinusSerif-Regular /DescendantFonts [ 29 0 R ] /ToUnicode 28 0 R >>
+<< /Type /Font /Subtype /Type0 /Encoding /Identity-H /BaseFont /IZYYKF+LibertinusSerif-Regular /DescendantFonts [ 29 0 R ] /ToUnicode 28 0 R >>
endobj
29 0 obj
-<< /Type /Font /Subtype /CIDFontType0 /BaseFont /DOXZRQ+LibertinusSerif-Regular /FontDescriptor 25 0 R /W 24 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
+<< /Type /Font /Subtype /CIDFontType0 /BaseFont /IZYYKF+LibertinusSerif-Regular /FontDescriptor 25 0 R /W 24 0 R /CIDSystemInfo << /Registry (Adobe) /Ordering (Identity) /Supplement 0 >> >>
endobj
11 0 obj
<< /Type /Pages /Count 1 /Kids [ 6 0 R ] >>
@@ -421,44 +407,44 @@ endobj
<< /Type /Catalog /Pages 11 0 R /Metadata 4 0 R/OutputIntents [ <</Type/OutputIntent/S/GTS_PDFX/OutputCondition (SWOP (Publication) printing in USA (Printing process definition: ANSI CGATS.6).)/OutputConditionIdentifier (CGATS TR 001)/Info (U.S. Web Coated (SWOP) v2)/RegistryName (http://www.color.org)>> ] >>
endobj
31 0 obj
-<< /Title(Novel\040Document\040Class)/Creator(LuaLaTeX\040with\040novel\040and\040microtype)/CreationDate(D:20240216204642-08'00')/ModDate(D:20240216204642-08'00')/Producer(LuaLaTeX\040with\040novel-pdfx\040and\040hyperref)/Trapped/False/GTS_PDFXVersion(PDF/X-1a:2001)/GTS_PDFXConformance(PDF/X-1a:2001) >>
+<< /Title(Novel\040Document\040Class)/Creator(LuaLaTeX\040with\040novel\040and\040microtype)/CreationDate(D:20240424080630-07'00')/ModDate(D:20240424080630-07'00')/Producer(LuaLaTeX\040with\040novel-pdfx\040and\040hyperref)/Trapped/False/GTS_PDFXVersion(PDF/X-1a:2001)/GTS_PDFXConformance(PDF/X-1a:2001) >>
endobj
xref
0 32
0000000000 65535 f
-0000011466 00000 n
-0000011486 00000 n
-0000011506 00000 n
+0000010042 00000 n
+0000010062 00000 n
+0000010082 00000 n
0000000020 00000 n
-0000011323 00000 n
-0000011171 00000 n
+0000009899 00000 n
+0000009747 00000 n
0000002652 00000 n
-0000030850 00000 n
-0000019437 00000 n
-0000014093 00000 n
-0000031215 00000 n
-0000011559 00000 n
-0000013004 00000 n
-0000011638 00000 n
-0000011709 00000 n
-0000013246 00000 n
-0000014252 00000 n
-0000014457 00000 n
-0000018164 00000 n
-0000014635 00000 n
-0000014707 00000 n
-0000018403 00000 n
-0000019593 00000 n
-0000019796 00000 n
-0000029066 00000 n
-0000020132 00000 n
-0000020507 00000 n
-0000029307 00000 n
-0000031009 00000 n
-0000031276 00000 n
-0000031603 00000 n
+0000029158 00000 n
+0000017864 00000 n
+0000012520 00000 n
+0000029523 00000 n
+0000010135 00000 n
+0000011445 00000 n
+0000010203 00000 n
+0000010274 00000 n
+0000011687 00000 n
+0000012679 00000 n
+0000012884 00000 n
+0000016591 00000 n
+0000013062 00000 n
+0000013134 00000 n
+0000016830 00000 n
+0000018020 00000 n
+0000018223 00000 n
+0000027388 00000 n
+0000018555 00000 n
+0000018930 00000 n
+0000027629 00000 n
+0000029317 00000 n
+0000029584 00000 n
+0000029911 00000 n
trailer
-<< /Size 32 /Root 30 0 R /Info 31 0 R /ID [ <D7D34C8ADBD93CEEFC0DDE591F50331E> <D7D34C8ADBD93CEEFC0DDE591F50331E> ] >>
+<< /Size 32 /Root 30 0 R /Info 31 0 R /ID [ <2F7884877695F88C545E752E31EFC599> <2F7884877695F88C545E752E31EFC599> ] >>
startxref
-31927
+30235
%%EOF
diff --git a/macros/luatex/latex/novel/doc/novel.tex b/macros/luatex/latex/novel/doc/novel.tex
index 91f2ffb290..151750189d 100644
--- a/macros/luatex/latex/novel/doc/novel.tex
+++ b/macros/luatex/latex/novel/doc/novel.tex
@@ -12,7 +12,7 @@
% novel.pdf (if present) have read/write permissions for any user.
% Otherwise, compile may fail at the point where files are written.
-\documentclass{novel} % v. 2.1.
+\documentclass{novel} % v. 2.2.
% Almost all settings are defaults.
\SetHeadFootStyle{3}
\SetTitle{Novel Document Class} % only footer, with page number
@@ -36,17 +36,13 @@
\textbf{News:} This document class was first privately used in 2014.
Then, in 2018, it was improved, documented, and released. It has been
-maintained through TeXlive 2023. It is expected to work in the future, but is
+maintained through TeXlive 2023. It continues to work in TeXlive 2024, but is
no longer maintained by its original creator.\par
Changes in print-on-demand technology have made many parts of this code
irrelevant. There are also a few commands that require graphic design
experience for proper usage. And a few settings, which should be simple and
obvious, are complex and arcane.\par
-If \emph{novel} works for you, good. But if you are simply writing a fiction
-novel, nothing fancy, then see if CTAN and TeXlive have a package named
-\emph{novelette}. As of late January 2024, the package is in beta test
-(not released yet). If the package exists and can be installed, then you
-should prefer \emph{novelette}.
+If \emph{novel} works for you, good. But if not, no changes are planned.
\scenebreak
@@ -64,10 +60,3 @@ of short stories, then you are in the right place.
\makeatletter\nocle@rtoendtrue\makeatother % For developer only.
\end{document}
-
-
-
-
-
-
-
diff --git a/macros/luatex/latex/novel/lualatex/novel-CGATSTR001.clo b/macros/luatex/latex/novel/lualatex/novel-CGATSTR001.clo
index 35ed97ea57..491ee94736 100644
--- a/macros/luatex/latex/novel/lualatex/novel-CGATSTR001.clo
+++ b/macros/luatex/latex/novel/lualatex/novel-CGATSTR001.clo
@@ -2,7 +2,7 @@
%% The values of the arguments are public industry standards.
%%
\ProvidesFile{novel-CGATSTR001.clo}%
-[2024/02/17 any version. (novel Output Intent CGATS TR 001)]
+[2024/04/26 any version. (novel Output Intent CGATS TR 001)]
%%
% Typically used in the USA.
diff --git a/macros/luatex/latex/novel/lualatex/novel-CalculateLayout.sty b/macros/luatex/latex/novel/lualatex/novel-CalculateLayout.sty
index c99872fbb3..08ac89499a 100644
--- a/macros/luatex/latex/novel/lualatex/novel-CalculateLayout.sty
+++ b/macros/luatex/latex/novel/lualatex/novel-CalculateLayout.sty
@@ -6,7 +6,7 @@
%% License URL: https://www.latex-project.org/lppl/lppl-1-3c/
%%
\ProvidesFile{novel-CalculateLayout.sty}%
-[2024/02/17 v2.1 LaTeX file (layout calculations)]
+[2024/04/26 v2.2 LaTeX file (layout calculations)]
%%
%%
diff --git a/macros/luatex/latex/novel/lualatex/novel-ChapterScene.sty b/macros/luatex/latex/novel/lualatex/novel-ChapterScene.sty
index df53dfc96e..a3d50ad32b 100644
--- a/macros/luatex/latex/novel/lualatex/novel-ChapterScene.sty
+++ b/macros/luatex/latex/novel/lualatex/novel-ChapterScene.sty
@@ -6,7 +6,7 @@
%% License URL: https://www.latex-project.org/lppl/lppl-1-3c/
%%
\ProvidesFile{novel-ChapterScene.sty}%
-[2024/02/17 v2.1 LaTeX file (chapter and scene macros)]
+[2024/04/26 v2.2 LaTeX file (chapter and scene macros)]
%%
diff --git a/macros/luatex/latex/novel/lualatex/novel-DropCap.sty b/macros/luatex/latex/novel/lualatex/novel-DropCap.sty
index 6e2359b465..1c7f9063e7 100644
--- a/macros/luatex/latex/novel/lualatex/novel-DropCap.sty
+++ b/macros/luatex/latex/novel/lualatex/novel-DropCap.sty
@@ -9,7 +9,7 @@
%% License URL: https://www.latex-project.org/lppl/lppl-1-3c/
%%
\ProvidesFile{novel-DropCap.sty}%
-[2024/02/17 v2.1 (Drop Caps)]
+[2024/04/26 v2.2 (Drop Caps)]
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%
%
diff --git a/macros/luatex/latex/novel/lualatex/novel-FOGRA39.clo b/macros/luatex/latex/novel/lualatex/novel-FOGRA39.clo
index c2cd2c3314..506093f1d7 100644
--- a/macros/luatex/latex/novel/lualatex/novel-FOGRA39.clo
+++ b/macros/luatex/latex/novel/lualatex/novel-FOGRA39.clo
@@ -1,7 +1,7 @@
%% This is file `novel-FOGRA39.clo', part of `novel' document class.
%% The values of the arguments are public industry standards.
\ProvidesFile{novel-FOGRA39.clo}%
-[2024/02/17 any version. (novel Output Intent FOGRA39)]
+[2024/04/26 any version. (novel Output Intent FOGRA39)]
%%
diff --git a/macros/luatex/latex/novel/lualatex/novel-FileData.sty b/macros/luatex/latex/novel/lualatex/novel-FileData.sty
index 54d4c3a7f9..d712bde320 100644
--- a/macros/luatex/latex/novel/lualatex/novel-FileData.sty
+++ b/macros/luatex/latex/novel/lualatex/novel-FileData.sty
@@ -6,7 +6,7 @@
%% License URL: https://www.latex-project.org/lppl/lppl-1-3c/
%%
\ProvidesFile{novel-FileData.sty}%
-[2024/02/17 v2.1 LaTeX file (File Data settings)]
+[2024/04/26 v2.2 LaTeX file (File Data settings)]
%%
diff --git a/macros/luatex/latex/novel/lualatex/novel-Fonts.sty b/macros/luatex/latex/novel/lualatex/novel-Fonts.sty
index b5b27b3aac..4edb37a488 100644
--- a/macros/luatex/latex/novel/lualatex/novel-Fonts.sty
+++ b/macros/luatex/latex/novel/lualatex/novel-Fonts.sty
@@ -6,7 +6,7 @@
%% License URL: https://www.latex-project.org/lppl/lppl-1-3c/
%%
\ProvidesFile{novel-Fonts.sty}%
-[2024/02/17 v2.1 LaTeX file (font settings and defaults)]
+[2024/04/26 v2.2 LaTeX file (font settings and defaults)]
%%
diff --git a/macros/luatex/latex/novel/lualatex/novel-Footnotes.sty b/macros/luatex/latex/novel/lualatex/novel-Footnotes.sty
index abfa3a4042..f196165b96 100644
--- a/macros/luatex/latex/novel/lualatex/novel-Footnotes.sty
+++ b/macros/luatex/latex/novel/lualatex/novel-Footnotes.sty
@@ -7,7 +7,7 @@
%% License URL: https://www.latex-project.org/lppl/lppl-1-3c/
%%
\ProvidesFile{novel-Footnotes.sty}%
-[2024/02/17 v2.1 LaTeX file (commands for footnotes and endnotes)]
+[2024/04/26 v2.2 LaTeX file (commands for footnotes and endnotes)]
%%
diff --git a/macros/luatex/latex/novel/lualatex/novel-HeadFootStyles.sty b/macros/luatex/latex/novel/lualatex/novel-HeadFootStyles.sty
index 5b0f063d8f..91bc1eea14 100644
--- a/macros/luatex/latex/novel/lualatex/novel-HeadFootStyles.sty
+++ b/macros/luatex/latex/novel/lualatex/novel-HeadFootStyles.sty
@@ -6,7 +6,7 @@
%% License URL: https://www.latex-project.org/lppl/lppl-1-3c/
%%
\ProvidesFile{novel-HeadFootStyles.sty}%
-[2024/02/17 v2.1 LaTeX file (header and footer layouts and styles)]
+[2024/04/26 v2.2 LaTeX file (header and footer layouts and styles)]
%%
diff --git a/macros/luatex/latex/novel/lualatex/novel-Images.sty b/macros/luatex/latex/novel/lualatex/novel-Images.sty
index ab891595f2..054044ce1a 100644
--- a/macros/luatex/latex/novel/lualatex/novel-Images.sty
+++ b/macros/luatex/latex/novel/lualatex/novel-Images.sty
@@ -6,7 +6,7 @@
%% License URL: https://www.latex-project.org/lppl/lppl-1-3c/
%%
\ProvidesFile{novel-Images.sty}%
-[2024/02/17 v2.1 LaTeX file (image placement)]
+[2024/04/26 v2.2 LaTeX file (image placement)]
%%
diff --git a/macros/luatex/latex/novel/lualatex/novel-JC200103.clo b/macros/luatex/latex/novel/lualatex/novel-JC200103.clo
index 06ba7d98de..51ae5c7f81 100644
--- a/macros/luatex/latex/novel/lualatex/novel-JC200103.clo
+++ b/macros/luatex/latex/novel/lualatex/novel-JC200103.clo
@@ -2,7 +2,7 @@
%% The values of the arguments are public industry standards.
%%
\ProvidesFile{novel-JC200103.clo}%
-[2024/02/17 any version. (novel Output Intent JC200103)]
+[2024/04/26 any version. (novel Output Intent JC200103)]
%%
diff --git a/macros/luatex/latex/novel/lualatex/novel-LayoutSettings.sty b/macros/luatex/latex/novel/lualatex/novel-LayoutSettings.sty
index 7dba9a0dd1..83344f295b 100644
--- a/macros/luatex/latex/novel/lualatex/novel-LayoutSettings.sty
+++ b/macros/luatex/latex/novel/lualatex/novel-LayoutSettings.sty
@@ -6,7 +6,7 @@
%% License URL: https://www.latex-project.org/lppl/lppl-1-3c/
%%
\ProvidesFile{novel-LayoutSettings.sty}%
-[2024/02/17 v2.1 LaTeX file (layout settings)]
+[2024/04/26 v2.2 LaTeX file (layout settings)]
%%
diff --git a/macros/luatex/latex/novel/lualatex/novel-PostLayout.sty b/macros/luatex/latex/novel/lualatex/novel-PostLayout.sty
index 68b269535e..ac78914ce9 100644
--- a/macros/luatex/latex/novel/lualatex/novel-PostLayout.sty
+++ b/macros/luatex/latex/novel/lualatex/novel-PostLayout.sty
@@ -6,7 +6,7 @@
%% License URL: https://www.latex-project.org/lppl/lppl-1-3c/
%%
\ProvidesFile{novel-PostLayout.sty}%
-[2024/02/17 v2.1 LaTeX file (post-layout modifications)]
+[2024/04/26 v2.2 LaTeX file (post-layout modifications)]
%%
%%
diff --git a/macros/luatex/latex/novel/lualatex/novel-Sandbox.sty b/macros/luatex/latex/novel/lualatex/novel-Sandbox.sty
index 2045a31ab5..88789e40f2 100644
--- a/macros/luatex/latex/novel/lualatex/novel-Sandbox.sty
+++ b/macros/luatex/latex/novel/lualatex/novel-Sandbox.sty
@@ -11,7 +11,7 @@
%% License URL: https://www.latex-project.org/lppl/lppl-1-3c/
%%
\ProvidesFile{novel-Sandbox.sty}%
-[2024/02/17 v2.1 LaTeX file (used only with sandbox class option)]
+[2024/04/26 v2.2 LaTeX file (used only with sandbox class option)]
%%
%%
diff --git a/macros/luatex/latex/novel/lualatex/novel-TextMacros.sty b/macros/luatex/latex/novel/lualatex/novel-TextMacros.sty
index b30e2e814b..692e321c52 100644
--- a/macros/luatex/latex/novel/lualatex/novel-TextMacros.sty
+++ b/macros/luatex/latex/novel/lualatex/novel-TextMacros.sty
@@ -6,7 +6,7 @@
%% License URL: https://www.latex-project.org/lppl/lppl-1-3c/
%%
\ProvidesFile{novel-TextMacros.sty}%
-[2024/02/17 v2.1 LaTeX file (text macros usable within document body)]
+[2024/04/26 v2.2 LaTeX file (text macros usable within document body)]
%%
diff --git a/macros/luatex/latex/novel/lualatex/novel-microtype.cfg b/macros/luatex/latex/novel/lualatex/novel-microtype.cfg
index 2cbac7bf30..c57dffb146 100644
--- a/macros/luatex/latex/novel/lualatex/novel-microtype.cfg
+++ b/macros/luatex/latex/novel/lualatex/novel-microtype.cfg
@@ -10,7 +10,7 @@
%% ------------------------------------------------------------------------
%%
\ProvidesFile{novel-microtype.cfg}%
-[2024/02/17 any version. (default microtype configuration for novel class)]
+[2024/04/26 any version. (default microtype configuration for novel class)]
%%% ---------------------------------------------------------------------------
%%% FONT SETS
diff --git a/macros/luatex/latex/novel/lualatex/novel-pdfx.sty b/macros/luatex/latex/novel/lualatex/novel-pdfx.sty
index 5edcb5d212..d646b85670 100644
--- a/macros/luatex/latex/novel/lualatex/novel-pdfx.sty
+++ b/macros/luatex/latex/novel/lualatex/novel-pdfx.sty
@@ -16,7 +16,7 @@
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{novel-pdfx.sty}%
-[2024/02/17 v2.1 LaTeX file (PDF/X support for novel class)]
+[2024/04/26 v2.2 LaTeX file (PDF/X support for novel class)]
% This package supports, and is part of, class `novel'.
% No support for anything but LuaLaTeX.
diff --git a/macros/luatex/latex/novel/lualatex/novel-xmppacket.sty b/macros/luatex/latex/novel/lualatex/novel-xmppacket.sty
index 5326f25249..131ec73e1c 100644
--- a/macros/luatex/latex/novel/lualatex/novel-xmppacket.sty
+++ b/macros/luatex/latex/novel/lualatex/novel-xmppacket.sty
@@ -14,7 +14,7 @@
%% ----------------------------------------------------------------------------
%%
\ProvidesFile{novel-xmppacket.sty}%
-[2024/02/17 any version. (novel XMP packet template)]
+[2024/04/26 any version. (novel XMP packet template)]
%%
diff --git a/macros/luatex/latex/novel/lualatex/novel.cls b/macros/luatex/latex/novel/lualatex/novel.cls
index 51ba0094c6..91f0207579 100644
--- a/macros/luatex/latex/novel/lualatex/novel.cls
+++ b/macros/luatex/latex/novel/lualatex/novel.cls
@@ -7,8 +7,8 @@
%% License URL: https://www.latex-project.org/lppl/lppl-1-3c/
%%
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-% Actually needs LuaLaTeX, at least version 0.95 from TeXLive 2016.
-\ProvidesClass{novel}[2024/02/17 v2.1 LaTeX document class]
+% Actually needs LuaLaTeX, at least version 1.x.
+\ProvidesClass{novel}[2024/04/26 v2.2 LaTeX document class]
%%
%% During the years since `novel' was introduced, there have been
diff --git a/macros/unicodetex/latex/fontspec/CHANGES.md b/macros/unicodetex/latex/fontspec/CHANGES.md
index dd938d5d51..c5f5f6e684 100644
--- a/macros/unicodetex/latex/fontspec/CHANGES.md
+++ b/macros/unicodetex/latex/fontspec/CHANGES.md
@@ -1,6 +1,29 @@
Change history
==============
+## v2.9b (2024/04/27)
+
+ * Add new `Letters=Uppercase` (LuaLaTeX only) as an interface to `luaotfload`
+ feature which automatically performs case-changing at the font level
+ (i.e., not using macros to process the text tokens). (#461)
+ * Fix long-standing bug when loading fonts which only have extensions specified internally to the font
+ shape (#504). E.g.:
+
+ \setmainfont{pagella}[ UprightFont = texgyrepagella-regular.otf ]
+
+ * If a font is loaded with a specific script (e.g. `Script=CJK`) and it is not
+ available within the font, `fontspec` previously would fall back on a default script.
+ This is now changed to always pass through the requested script so the renderer can
+ make use of that information regardless of whether the font itself supports the script.
+ (#507)
+ * Remove LuaTeX code that resets various `hypenchar` settings seemingly erroneously. (#344)
+ * Rework documentation to remove reference to local and non-free fonts. This allows
+ compilation via Github Actions, which will aid streamlining/automating releases in the future. (#157, #465)
+ * Adjust approach to removing spaces from font names internally. This may have unintended
+ consequences, please write if so. (#484)
+ * Work around clash if a class defines an option of (say) `math=foo`, where `fontspec`
+ is expecting `math=true`. Now, the global option will be ignored. (#501)
+
## v2.9a (2024/02/13)
diff --git a/macros/unicodetex/latex/fontspec/fontspec-code-api.dtx b/macros/unicodetex/latex/fontspec/fontspec-code-api.dtx
index e8a8878e66..be63bcc056 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-code-api.dtx
+++ b/macros/unicodetex/latex/fontspec/fontspec-code-api.dtx
@@ -1,14 +1,12 @@
-%%^^A%% fontspec-code-api.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-api.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
-% \section{Programmer's interface}
-%
% \iffalse
% \begin{macrocode}
%<*fontspec>
% \end{macrocode}
% \fi
%
-%
+% \section{Programmer's interface}
%
% These functions are not used directly by fontspec when defining fonts;
% they are designed to be used by other packages who wish to do font-related
@@ -23,8 +21,143 @@
% currently selected as a fontspec font. (I.e., via \verb|\fontspec| or
% from a \verb|\newfontfamily| macro or from \verb|\setmainfont| and so on.)
%
-% \begin{macro}{\fontspec_if_fontspec_font:TF}
-% Test whether the currently selected font has been loaded by fontspec.
+% \section{Overview}
+%
+% \subsection{Commands}
+%
+% \begin{function}{\fontspec_gset_family:Nnn,\fontspec_set_family:Nnn}
+% \begin{syntax}
+% \verb|\fontspec_set_family:Nnn| \meta{family} \Arg{features} \Arg{font name}
+% \end{syntax}
+% Defines a new NFSS font family from given \meta{features} and \meta{font},
+% and stores the name in the token list variable \meta{family}.
+% See the standard \pkg{fontspec} user commands for applications of this
+% function.
+% \end{function}
+%
+% \begin{function}{\fontspec_gset_fontface:NNnn,\fontspec_set_fontface:NNnn}
+% \begin{syntax}
+% \verb|\fontspec_set_fontface:NNnn| \meta{face} \meta{family} \Arg{features} \Arg{font name}
+% \end{syntax}
+% As for |\fontspec_set_family:Nnn| but with a single font face only.
+% (E.g., no bold, italic shapes, etc.)
+% The control sequence \meta{face} is a primitive \TeX\ font command.
+% \end{function}
+%
+% \subsection{Conditionals}
+%
+% \begin{function}[TF]{\fontspec_font_if_exist:n}
+% \begin{syntax}
+% \verb|\fontspec_font_if_exist:nTF| \Arg{font name} Arg{true code} \Arg{false code}
+% \end{syntax}
+% Does this font exist? The font name can refer to the `logical' name or to a filename with known font extension.
+% \end{function}
+%
+% \begin{function}[TF]{\fontspec_if_fontspec_font:}
+% \begin{syntax}
+% \verb|\fontspec_if_fontspec_font:TF| \Arg{true code} \Arg{false code}
+% \end{syntax}
+% \end{function}
+%
+% \begin{function}[TF]{\fontspec_if_aat_feature:nn}
+% \begin{syntax}
+% \verb|\fontspec_if_aat_feature:nnTF| \Arg{true code} \Arg{false code}
+% \end{syntax}
+% \end{function}
+%
+% \begin{function}[TF]{\fontspec_if_opentype:}
+% \begin{syntax}
+% \verb|\fontspec_if_opentype:TF| \Arg{true code} \Arg{false code}
+% \end{syntax}
+% \end{function}
+%
+% \begin{function}[TF]{\fontspec_if_feature:n}
+% \begin{syntax}
+% \verb|\fontspec_if_feature:nTF| \Arg{feat tag} \Arg{true code} \Arg{false code}
+% \end{syntax}
+% Check if the raw OpenType \meta{feature tag} is available in the current font with
+% script and language settings as set up when the font was loaded.
+% \end{function}
+%
+% \begin{function}[TF]{\fontspec_if_feature:nnn}
+% \begin{syntax}
+% \verb|\fontspec_if_feature:nnnTF| \Arg{script tag} \Arg{lang tag} \Arg{feat tag} \Arg{true code} \Arg{false code}\\
+% |\fontspec_if_feature:nTF {latn} {ROM} {pnum} {True} {False}|
+% \end{syntax}
+% Test whether the currently selected font with raw OpenType \meta{script tag} and
+% raw OpenType \meta{language tag} contains the raw OpenType \meta{feature tag}.
+% Returns false if the font is not loaded by fontspec or is not an OpenType
+% font.
+% \end{function}
+%
+% \begin{function}[TF]{\fontspec_if_script:n}
+% \begin{syntax}
+% \verb|\fontspec_if_script:nTF| \Arg{script tag} \Arg{true code} \Arg{false code}\\
+% |\fontspec_if_script:nTF {latn} {True} {False}|
+% \end{syntax}
+% Test whether the currently selected font contains the raw OpenType
+% \meta{script tag}.
+%
+% Returns false if the font is not loaded by fontspec or is not an OpenType
+% font.
+% \end{function}
+%
+% \begin{function}[TF]{\fontspec_if_language:n}
+% \begin{syntax}
+% \verb|\fontspec_if_language:nTF| \Arg{lang tag} \Arg{true code} \Arg{false code}\\
+% |\fontspec_if_language:nTF {ROM} {True} {False}|
+% \end{syntax}
+% Check if the raw OpenType \meta{language tag} is available in the current font with
+% script settings as set up when the font was loaded.
+% \end{function}
+%
+% \begin{function}[TF]{\fontspec_if_language:nn}
+% \begin{syntax}
+% \verb|\fontspec_if_language:nnTF| \Arg{script tag} \Arg{lang tag} \Arg{true code} \Arg{false code}\\
+% |\fontspec_if_language:nnTF {cyrl} {SRB} {True} {False}|
+% \end{syntax}
+% Test whether the currently selected font contains the raw OpenType \meta{language
+% tag} in \meta{script tag}.
+%
+% Returns false if the font is not loaded by fontspec or is not an OpenType font.
+% \end{function}
+%
+% \begin{function}[TF]{\fontspec_if_current_script:n}
+% Test whether the currently loaded font has been loaded with the specified raw
+% OpenType \meta{script tag}.
+% \begin{syntax}
+% \verb|\fontspec_if_current_script:nTF| \Arg{script tag} \Arg{true code} \Arg{false code}
+% \end{syntax}
+% \end{function}
+%
+% \begin{function}[TF]{\fontspec_if_current_language:n}
+% Test whether the currently loaded font has been loaded with the specified raw
+% OpenType \meta{language tag}.
+% \begin{syntax}
+% \verb|\fontspec_if_current_language:nTF| \Arg{lang tag} \Arg{true code} \Arg{false code}
+% \end{syntax}
+% \end{function}
+%
+% \begin{function}[TF]{\fontspec_if_current_feature:n}
+% \begin{syntax}
+% \verb|\fontspec_if_current_feature:nTF| \Arg{feat tag} \Arg{true code} \Arg{false code}
+% \end{syntax}
+% Test whether the currently loaded font is using the specified raw
+% OpenType \meta{feature tag}.
+% \end{function}
+%
+% \begin{function}[TF]{\fontspec_if_small_caps:}
+% Test whether the current font has small caps available.
+% \begin{syntax}
+% \verb|\fontspec_if_small_caps:TF| \Arg{true code} \Arg{false code}
+% \end{syntax}
+% \end{function}
+%
+%
+%
+% \section{Implementation}
+%
+% \begin{macro}[TF]{\fontspec_if_fontspec_font:}
% \begin{macrocode}
\prg_new_conditional:Nnn \fontspec_if_fontspec_font: {TF,T,F}
{
@@ -34,7 +167,7 @@
% \end{macro}
%
%
-% \begin{macro}{\fontspec_if_aat_feature:nnTF}
+% \begin{macro}[TF]{\fontspec_if_aat_feature:nn}
% Conditional to test if the currently selected font contains the \AAT\
% feature (|#1|,|#2|).
% \begin{macrocode}
@@ -60,7 +193,7 @@
% \end{macro}
%
%
-% \begin{macro}{\fontspec_if_opentype:TF}
+% \begin{macro}[TF]{\fontspec_if_opentype:}
% Test whether the currently selected font is an OpenType font.
% Always true for LuaTeX fonts.
% \begin{macrocode}
@@ -78,7 +211,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\fontspec_if_feature:nTF}
+% \begin{macro}[TF]{\fontspec_if_feature:n}
% Test whether the currently selected font contains the raw OpenType
% feature |#1|. E.g.: |\fontspec_if_feature:nTF {pnum} {True} {False}|
% Returns false if the font is not loaded by fontspec or is not an OpenType
@@ -113,12 +246,10 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\fontspec_if_feature:nnnTF}
-% Test whether the currently selected font with raw OpenType script tag |#1| and
-% raw OpenType language tag |#2| contains the raw OpenType feature tag |#3|.
-% E.g.:\\ | \fontspec_if_feature:nTF {latn} {ROM} {pnum} {True} {False}|
-% Returns false if the font is not loaded by fontspec or is not an OpenType
-% font.
+% \begin{macro}[TF]{\fontspec_if_feature:nnn}
+% \darg{script tag}
+% \darg{language tag}
+% \darg{feature tag}
% \begin{macrocode}
\prg_new_conditional:Nnn \fontspec_if_feature:nnn {TF,T,F}
{
@@ -136,11 +267,8 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\fontspec_if_script:nTF}
-% Test whether the currently selected font contains the raw OpenType
-% script |#1|. E.g.: |\fontspec_if_script:nTF {latn} {True} {False}|
-% Returns false if the font is not loaded by fontspec or is not an OpenType
-% font.
+% \begin{macro}[TF]{\fontspec_if_script:n}
+% \darg{script tag}
% \begin{macrocode}
\prg_new_conditional:Nnn \fontspec_if_script:n {TF,T,F}
{
@@ -158,11 +286,8 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\fontspec_if_language:nTF}
-% Test whether the currently selected font contains the raw OpenType language
-% tag |#1|. E.g.: |\fontspec_if_language:nTF {ROM} {True} {False}|.
-% Returns false if the font is not loaded by fontspec or is not an OpenType
-% font.
+% \begin{macro}[TF]{\fontspec_if_language:n}
+% \darg{lang tag}
% \begin{macrocode}
\prg_new_conditional:Nnn \fontspec_if_language:n {TF,T,F}
{
@@ -184,11 +309,9 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\fontspec_if_language:nnTF}
-% Test whether the currently selected font contains the raw OpenType language
-% tag |#2| in script |#1|. E.g.: |\fontspec_if_language:nnTF {cyrl} {SRB} {True} {False}|.
-% Returns false if the font is not loaded by fontspec or is not an OpenType
-% font.
+% \begin{macro}[TF]{\fontspec_if_language:nn}
+% \darg{script tag}
+% \darg{lang tag}
% \begin{macrocode}
\prg_new_conditional:Nnn \fontspec_if_language:nn {TF,T,F}
{
@@ -207,9 +330,8 @@
% \end{macro}
%
%
-% \begin{macro}{\fontspec_if_current_script:nTF}
-% Test whether the currently loaded font is using the specified raw
-% OpenType script tag |#1|.
+% \begin{macro}[TF]{\fontspec_if_current_script:n}
+% \darg{script tag}
% \begin{macrocode}
\prg_new_conditional:Nnn \fontspec_if_current_script:n {TF,T,F}
{
@@ -229,9 +351,8 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\fontspec_if_current_language:nTF}
-% Test whether the currently loaded font is using the specified raw
-% OpenType language tag |#1|.
+% \begin{macro}[TF]{\fontspec_if_current_language:n}
+% \darg{lang tag}
% \begin{macrocode}
\prg_new_conditional:Nnn \fontspec_if_current_language:n {TF,T,F}
{
@@ -252,22 +373,15 @@
% \end{macro}
%
%
-% \begin{macro}{\fontspec_set_family:Nnn}
+% \begin{macro}{\fontspec_gset_family:Nnn,\fontspec_set_family:Nnn}
% \darg{family}
% \darg{fontspec features}
-% \darg{font name}
-% Defines a new font family from given \meta{features} and \meta{font},
-% and stores the name in the variable \meta{family}.
-% See the standard \pkg{fontspec} user commands for applications of this
-% function.
-%
-% We want to store the actual name of the font family within the \meta{family}
-% variable because the actual \LaTeX\ family name is automatically generated
-% by fontspec and it's easier to keep it that way.
+% \darg{font}
% \begin{macrocode}
\cs_new:Nn \@@_tl_new_if_free:N { \tl_if_exist:NF #1 { \tl_new:N #1 } }
\cs_new:Nn \@@_set_family:NnnN
{
+%<debug>\typeout{::::::~fontspec_set_family:Nnn}
\tl_set:Nn \l_@@_fontface_cs_tl {\l_fontspec_font} % reset
\tl_set:Nn \l_@@_family_label_tl {#1}
\@@_select_font_family:nn {#2} {#3}
@@ -285,7 +399,7 @@
% \end{macro}
%
%
-% \begin{macro}{\fontspec_set_fontface:NNnn}
+% \begin{macro}{\fontspec_gset_fontface:NNnn,\fontspec_set_fontface:NNnn}
% TODO: the round-about approach of using \cs{fontname}
% means that settings such as fontdimens will be lost.
% (Discovered in unicode-math.) Investigate!
@@ -307,7 +421,7 @@
%
%
%
-% \begin{macro}{\fontspec_font_if_exist:n}
+% \begin{macro}[TF]{\fontspec_font_if_exist:n}
% \begin{macrocode}
\prg_new_conditional:Nnn \fontspec_font_if_exist:n {TF,T,F}
{
@@ -325,9 +439,8 @@
% \end{macrocode}
% \end{macro}
-% \begin{macro}{\fontspec_if_current_feature:nTF}
-% Test whether the currently loaded font is using the specified raw
-% OpenType feature tag |#1|.
+% \begin{macro}[TF]{\fontspec_if_current_feature:n}
+% \darg{feat tag}
% \begin{macrocode}
\prg_new_conditional:Nnn \fontspec_if_current_feature:n {TF,T,F}
{
@@ -340,7 +453,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\fontspec_if_small_caps:TF}
+% \begin{macro}[TF]{\fontspec_if_small_caps:}
% \begin{macrocode}
\prg_new_conditional:Nnn \fontspec_if_small_caps: {TF,T,F}
{
@@ -376,10 +489,10 @@
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-code-closing.dtx b/macros/unicodetex/latex/fontspec/fontspec-code-closing.dtx
index 91b5ebb7ee..e03d8a6ff6 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-code-closing.dtx
+++ b/macros/unicodetex/latex/fontspec/fontspec-code-closing.dtx
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-code-closing.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-closing.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
%
% \section{Closing code}
%
@@ -30,10 +30,10 @@
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-code-enc.dtx b/macros/unicodetex/latex/fontspec/fontspec-code-enc.dtx
index 17434643e0..02df7a7f09 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-code-enc.dtx
+++ b/macros/unicodetex/latex/fontspec/fontspec-code-enc.dtx
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-code-enc.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-enc.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
% \section{Extended font encodings}
%
@@ -144,10 +144,10 @@
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-code-feat-aat.dtx b/macros/unicodetex/latex/fontspec/fontspec-code-feat-aat.dtx
index fdffc058e5..b7fd11cc69 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-code-feat-aat.dtx
+++ b/macros/unicodetex/latex/fontspec/fontspec-code-feat-aat.dtx
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-code-feat-aat.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-feat-aat.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
% \section{AAT feature definitions}
%
@@ -229,10 +229,10 @@
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-code-feat-opentype.dtx b/macros/unicodetex/latex/fontspec/fontspec-code-feat-opentype.dtx
index c48e40deb0..4ffc5cda4f 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-code-feat-opentype.dtx
+++ b/macros/unicodetex/latex/fontspec/fontspec-code-feat-opentype.dtx
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-code-feat-opentype.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-feat-opentype.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
% \section{OpenType feature definitions}
%
@@ -56,13 +56,26 @@
\@@_define_opentype_feature_group:n {Letters}
\@@_define_opentype_feature:nnnnn {Letters} {ResetAll} {} {}
{
- +case,+smcp,+pcap,+c2sc,+c2pc,+unic,+rand,
- -case,-smcp,-pcap,-c2sc,-c2pc,-unic,-rand
+%<LU> +lower,-lower,+upper,-upper,+case,+cpsp,
+ +smcp,+pcap,+c2sc,+c2pc,+unic,+rand,
+ -smcp,-pcap,-c2sc,-c2pc,-unic,-rand
}
% \end{macrocode}
%
% \begin{macrocode}
-\@@_define_opentype_onoffreset:nnnnn {Letters} {Uppercase} {case} {case} {}
+%<*LU>
+\keys_define:nn {fontspec-opentype}
+ {
+ Letters / Uppercase .code:n = {
+ \@@_make_OT_feature:nnn {} {+upper} {+lower}
+ \@@_make_OT_feature:nnn {} {+case} {}
+ \@@_make_OT_feature:nnn {} {+cpsp} {}
+ },
+ }
+\@@_define_opentype_feature:nnnnn {Letters} {UppercaseOff} {} {-upper} {+case,+cpsp}
+\@@_define_opentype_feature:nnnnn {Letters} {UppercaseReset} {} {} {+upper,-upper}
+\@@_define_opentype_onoffreset:nnnnn {Letters} {Lowercase} {} {lower} {+upper,+case,+cpsp}
+%</LU>
\@@_define_opentype_onoffreset:nnnnn {Letters} {SmallCaps} {smcp} {smcp} {+pcap,+unic}
\@@_define_opentype_onoffreset:nnnnn {Letters} {PetiteCaps} {pcap} {pcap} {+smcp,+unic}
\@@_define_opentype_onoffreset:nnnnn {Letters} {UppercaseSmallCaps} {c2sc} {c2sc} {+c2pc,+unic}
@@ -457,30 +470,57 @@
\clist_map_break:
}
}
-
+% \end{macrocode}
+% If not found give a warning but load it anyway:
+% \begin{macrocode}
\bool_if:NF \l_@@_scriptlang_exist_bool
{
%<debug>\typeout{Script~not~found!}
- \bool_if:nF { \str_if_eq_p:ee {#1} {CustomDefault} }
- {
- \tl_clear:N \l_@@_script_name_tl
- \@@_warning:nxx {no-script} {\l_fontspec_fontname_tl} {#1}
- }
-
- \bool_if:nF
+ \@@_warning:nxx {no-script} {\l_fontspec_fontname_tl} {#1}
+ \clist_set:Nn \l_tmpa_clist {#2}
+ \clist_get:NN \l_tmpa_clist \l_@@_script_tl
+ \exp_args:Noo \@@_check_script:NnF \l_@@_fontface_cs_tl \l_@@_script_tl
{
- \str_if_eq_p:ee {#1} {Default} ||
- \str_if_eq_p:ee {#1} {Latin} ||
- \str_if_eq_p:ee {#1} {CustomDefault}
+ \tl_set:Nn \l_@@_script_name_tl {#1}
+ \int_set:Nn \l_@@_script_int {\l_@@_strnum_int}
+ \tl_gset:Nx \g_@@_single_feat_tl { script=\l_@@_script_tl }
}
+ }
+ }
+ }
+ }
+\cs_new:Nn \fontspec_default_script:nn
+ {
+ \keys_define:nn {fontspec-opentype} { Script / #1 .code:n =
+ {
+%<debug>\typeout{Trying~[Script=#1:#2]}
+ \bool_set_false:N \l_@@_scriptlang_exist_bool
+ \clist_map_inline:nn {#2}
+ {
+ \exp_args:No \@@_check_script:NnT \l_@@_fontface_cs_tl {####1}
{
- \keys_set:nn {fontspec-opentype} { Script = CustomDefault }
+%<debug>\typeout{Script~tag~found:~####1}
+ \tl_set:Nn \l_@@_script_name_tl {#1}
+ \tl_set:Nn \l_@@_script_tl {####1}
+ \int_set:Nn \l_@@_script_int {\l_@@_strnum_int}
+ \bool_set_true:N \l_@@_scriptlang_exist_bool
+ \tl_gset:Nx \g_@@_single_feat_tl { script=####1 }
+ \clist_map_break:
}
}
+ \bool_if:NF \l_@@_scriptlang_exist_bool
+ {
+%<debug>\typeout{Script~not~found!}
+ \tl_clear:N \l_@@_script_name_tl
+ }
}
}
}
% \end{macrocode}
+% When script is not explicitly requested, use this list:
+% \begin{macrocode}
+\fontspec_default_script:nn {CustomDefault} {latn,DFLT}
+% \end{macrocode}
%
%
% \subsection{Language}
@@ -507,10 +547,21 @@
\clist_map_break:
}
}
+% \end{macrocode}
+% If not found give a warning but load it anyway:
+% \begin{macrocode}
\bool_if:NF \l_@@_scriptlang_exist_bool
{
+%<debug>\typeout{Lang~not~found!}
\@@_warning:nx {language-not-exist} {#1}
- \keys_set:nn {fontspec-opentype} { Language = Default }
+ \clist_set:Nn \l_tmpa_clist {#2}
+ \clist_get:NN \l_tmpa_clist \l_@@_lang_tl
+ \exp_args:Noo \@@_check_script:NnF \l_@@_fontface_cs_tl \l_@@_script_tl
+ {
+ \tl_set:Nn \l_@@_script_name_tl {#1}
+ \int_set:Nn \l_@@_language_int {\l_@@_strnum_int}
+ \tl_gset:Nx \g_@@_single_feat_tl { language=####1 }
+ }
}
}
}
@@ -569,10 +620,10 @@
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-code-fontload.dtx b/macros/unicodetex/latex/fontspec/fontspec-code-fontload.dtx
index 12dc8472df..4b365150a2 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-code-fontload.dtx
+++ b/macros/unicodetex/latex/fontspec/fontspec-code-fontload.dtx
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-code-fontload.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-fontload.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
% \section{expl3 interface for primitive font loading}
%
@@ -122,10 +122,10 @@
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-code-graphite.dtx b/macros/unicodetex/latex/fontspec/fontspec-code-graphite.dtx
index f794f469e1..1aed91f4bb 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-code-graphite.dtx
+++ b/macros/unicodetex/latex/fontspec/fontspec-code-graphite.dtx
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-code-graphite.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-graphite.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
% \section{Graphite/AAT code}
%
@@ -114,10 +114,10 @@
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-code-interfaces.dtx b/macros/unicodetex/latex/fontspec/fontspec-code-interfaces.dtx
index 09c855905d..ef521b63fc 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-code-interfaces.dtx
+++ b/macros/unicodetex/latex/fontspec/fontspec-code-interfaces.dtx
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-code-interfaces.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-interfaces.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
% \section{User commands}\label{sec:codeuser}
%
@@ -282,10 +282,10 @@
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-code-internal.dtx b/macros/unicodetex/latex/fontspec/fontspec-code-internal.dtx
index b45a7d3c6c..49f019c656 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-code-internal.dtx
+++ b/macros/unicodetex/latex/fontspec/fontspec-code-internal.dtx
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-code-internal.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-internal.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
% \section{Internals}
%
@@ -41,6 +41,10 @@
\@@_sanitise_fontname:Nn \l_@@_fontname_up_tl {#2}
\@@_sanitise_fontname:Nn \l_@@_basename_tl {#2}
+%<debug>\typeout{^^J::::::::::::::: l_fontspec_fontname_tl~ =~ \l_fontspec_fontname_tl }
+%<debug>\typeout{::::::::::::::: _fontname_up_tl~ =~ \l_@@_fontname_up_tl }
+%<debug>\typeout{::::::::::::::: l_@@_extension_tl~ =~ \l_@@_extension_tl }
+
\@@_if_detect_external:nT {#2}
{ \keys_set:nn {fontspec-preparse-external} {Path} }
@@ -55,6 +59,11 @@
%<debug>\typeout{fontid: \l_@@_fontid_tl}
\@@_preparse_features:
+
+%<debug>\typeout{^^J::::::::::::::: l_fontspec_fontname_tl~ =~ \l_fontspec_fontname_tl }
+%<debug>\typeout{::::::::::::::: _fontname_up_tl~ =~ \l_@@_fontname_up_tl }
+%<debug>\typeout{::::::::::::::: l_@@_extension_tl~ =~ \l_@@_extension_tl }
+
\@@_load_font:
\@@_set_scriptlang:
\@@_get_features:n {}
@@ -84,19 +93,23 @@
%
% \begin{macro}{\@@_sanitise_fontname:Nn}
% Assigns font name |#2| to token list variable |#1| and strips extension(s) from it in the case of an external font.
-% We strip spaces for luatex for consistency with luaotfload, although I'm not sure this is necessary any more.
-% At one stage this also lowercased the name, but this step has been removed unless someone can remind me why it was necessary.
% \begin{macrocode}
\cs_new:Nn \@@_sanitise_fontname:Nn
{
\tl_set:Nx #1 {#2}
-%<LU> \tl_remove_all:Nn #1 {~}
+ \tl_trim_spaces:N #1
+ \@@_process_ext:N #1
+ }
+
+\cs_new:Nn \@@_process_ext:N
+ {
\clist_map_inline:Nn \l_@@_extensions_clist
{
\tl_if_in:NnT #1 {##1}
{
\tl_remove_once:Nn #1 {##1}
\tl_set:Nn \l_@@_extension_tl {##1}
+ \@@_font_is_file:
\clist_map_break:
}
}
@@ -141,7 +154,9 @@
% \begin{macro}{\@@_load_external_fontoptions:N}
% Load a possible \texttt{.fontspec} font configuration file.
% This file could set font-specific options for the font about to be loaded.
-% The parameter should be a tokenlist containing a sanitised fontname.
+% The parameter should be a token list containing a sanitised fontname.
+% In the past this used a space-stripped version of the name, so we check for the file
+% both with and without spaces to load it.
% \begin{macrocode}
\cs_new:Nn \@@_load_external_fontoptions:N
{
@@ -152,8 +167,15 @@
\tl_remove_all:Nn \l_@@_ext_filename_tl {~}
\prop_if_in:NVF \g_@@_fontopts_prop #1
{
- \exp_args:No \file_if_exist:nT { \l_@@_ext_filename_tl }
- { \file_input:n { \l_@@_ext_filename_tl } }
+ \exp_args:No \file_if_exist:nTF { \l_@@_ext_filename_tl }
+ {
+ \file_input:n { \l_@@_ext_filename_tl }
+ }
+ {
+ \tl_remove_all:Nn \l_@@_ext_filename_tl {~}
+ \exp_args:No \file_if_exist:nT { \l_@@_ext_filename_tl }
+ { \file_input:n { \l_@@_ext_filename_tl } }
+ }
}
}
}
@@ -282,7 +304,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\@@_font_is_file:,\@@_font_is_name:,\@@_font_is_kpse:}
+% \begin{macro}{\@@_font_is_file:,\@@_font_is_name:}
% The \cs{@@_fontname_wrap:n} command takes the font name and either passes it through unchanged or wraps it in the syntax for loading a font `by filename'.
% For Lua\TeX\ there are two kinds kinds of filename based loading supported: Regular filename lookups which include system fonts and lookups restricted to kpse.
% \begin{macrocode}
@@ -296,18 +318,16 @@
% \begin{macrocode}
\cs_new:Nn \@@_font_is_file:
{
- \cs_set:Npn \@@_fontname_wrap:n ##1 { [ \l_@@_font_path_tl ##1 ] }
- }
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*LU>
-\cs_new:Nn \@@_font_is_kpse:
- {
- \cs_set:Npn \@@_fontname_wrap:n ##1 { kpse: ##1 }
+%<debug> \typeout{:: _font_is_file:}
+ \bool_set_true:N \l_@@_external_bool
+ \bool_lazy_and:nnTF { \l_@@_external_kpse_bool } { \tl_if_empty_p:N \l_@@_font_path_tl }
+ {
+ \cs_set:Npn \@@_fontname_wrap:n ##1 { kpse: ##1 }
+ }
+ {
+ \cs_set:Npn \@@_fontname_wrap:n ##1 { [ \l_@@_font_path_tl ##1 ] }
+ }
}
-%</LU>
-%<XE>\cs_new_eq:NN \@@_font_is_kpse: \@@_font_is_file:
% \end{macrocode}
% \end{macro}
%
@@ -353,17 +373,17 @@
\bool_if:NTF \l_@@_ot_bool
{
%<debug> \typeout{::: Setting~ keys~ for~ OpenType~ font~ features:~"\l_@@_keys_leftover_clist"}
- \keys_set:nV {fontspec-opentype} \l_@@_keys_leftover_clist
+ \keys_set_known:nV {fontspec-opentype} \l_@@_keys_leftover_clist
}
{
%<debug> \typeout{::: Setting~ keys~ for~ AAT/Graphite~ font~ features:~"\l_@@_keys_leftover_clist"}
\bool_if:nT { \l_@@_atsui_bool || \l_@@_graphite_bool }
- { \keys_set:nV {fontspec-aat} \l_@@_keys_leftover_clist }
+ { \keys_set_known:nV {fontspec-aat} \l_@@_keys_leftover_clist }
}
%</XE>
%<*LU>
%<debug> \typeout{::: Setting~ keys~ for~ OpenType~ font~ features:~"\l_@@_keys_leftover_clist"}
- \keys_set:nV {fontspec-opentype} \l_@@_keys_leftover_clist
+ \keys_set_known:nV {fontspec-opentype} \l_@@_keys_leftover_clist
%</LU>
\tl_if_empty:NF \l_@@_mapping_tl
@@ -538,7 +558,7 @@
{
\tl_set:Nx #1 {#2}
\tl_replace_all:Nnx #1 {*} {\l_@@_basename_tl}
-%<LU> \tl_remove_all:Nn #1 {~}
+ \@@_process_ext:N #1
}
% \end{macrocode}
% \end{macro}
@@ -1113,10 +1133,6 @@
\tl_gset_eq:NN \g_@@_nfss_enc_tl \g_fontspec_encoding_tl
%<*LU>
\tl_set:Nn \l_@@_mode_tl {node}
- \int_set:Nn \prehyphenchar { `\- } % fixme
- \int_zero:N \posthyphenchar % fixme
- \int_zero:N \preexhyphenchar % fixme
- \int_zero:N \postexhyphenchar % fixme
%</LU>
}
% \end{macrocode}
@@ -1249,10 +1265,10 @@
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-code-keyval.dtx b/macros/unicodetex/latex/fontspec/fontspec-code-keyval.dtx
index 57ff738183..c077a1bc1f 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-code-keyval.dtx
+++ b/macros/unicodetex/latex/fontspec/fontspec-code-keyval.dtx
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-code-keyval.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-keyval.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
% \section{Font loading (\pkg{keyval}) definitions}
%
@@ -61,15 +61,8 @@
{
\bool_set_true:N \l_@@_nobf_bool
\bool_set_true:N \l_@@_noit_bool
- \bool_set_true:N \l_@@_external_bool
\tl_set:Nn \l_@@_font_path_tl {#1}
- \bool_lazy_and:nnTF { \l_@@_external_kpse_bool } { \tl_if_empty_p:N \l_@@_font_path_tl }
- {
- \@@_font_is_kpse:
- }
- {
- \@@_font_is_file:
- }
+ \@@_font_is_file:
%<*XE>
\keys_set:nn {fontspec-renderer} {Renderer=OpenType}
%</XE>
@@ -103,10 +96,7 @@
\@@_keys_define_code:nnn {fontspec-preparse-external} {KpseOnly}
{
\bool_set_true:N \l_@@_external_kpse_bool
- \bool_if:NT \l_@@_external_bool
- {
- \@@_font_is_kpse:
- }
+ \bool_if:NT \l_@@_external_bool \@@_font_is_file:
}
\@@_keys_define_code:nnn {fontspec} {KpseOnly} {}
% \end{macrocode}
@@ -1015,10 +1005,10 @@
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-code-lang.dtx b/macros/unicodetex/latex/fontspec/fontspec-code-lang.dtx
index 1e52fc9d26..fa65a034f8 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-code-lang.dtx
+++ b/macros/unicodetex/latex/fontspec/fontspec-code-lang.dtx
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-code-lang.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-lang.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
% \section{Font language definitions}
%
@@ -405,10 +405,10 @@
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-code-load.dtx b/macros/unicodetex/latex/fontspec/fontspec-code-load.dtx
index db7f370031..3cd40e4f71 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-code-load.dtx
+++ b/macros/unicodetex/latex/fontspec/fontspec-code-load.dtx
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-code-load.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-load.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
%
% \section{The \texttt{fontspec.sty} loading file}
%
@@ -58,10 +58,10 @@
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-code-math.dtx b/macros/unicodetex/latex/fontspec/fontspec-code-math.dtx
index 01d99c8641..7adc65d92f 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-code-math.dtx
+++ b/macros/unicodetex/latex/fontspec/fontspec-code-math.dtx
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-code-math.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-math.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
%
% \section{Selecting maths fonts}
% Here, the fonts used in math mode are redefined to correspond to the
@@ -246,10 +246,10 @@
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-code-msg.dtx b/macros/unicodetex/latex/fontspec/fontspec-code-msg.dtx
index 1785437fa0..16b328fad3 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-code-msg.dtx
+++ b/macros/unicodetex/latex/fontspec/fontspec-code-msg.dtx
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-code-msg.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-msg.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
%
% \section{Error/warning/info messages}
%
@@ -13,7 +13,7 @@
\cs_new:Npn \@@_error:n { \msg_error:nn {fontspec} }
\cs_new:Npn \@@_error:nn { \msg_error:nnn {fontspec} }
\cs_new:Npn \@@_error:nx { \msg_error:nnx {fontspec} }
-\cs_new:Npn \@@_error:nxx { \msg_error:nnxx {fontspec} }
+\cs_new:Npn \@@_error:nxx { \msg_error:nnxx {fontspec} }
\cs_new:Npn \@@_warning:n { \msg_warning:nn {fontspec} }
\cs_new:Npn \@@_warning:nx { \msg_warning:nnx {fontspec} }
\cs_new:Npn \@@_warning:nxx { \msg_warning:nnxx {fontspec} }
@@ -28,9 +28,9 @@
\cs_generate_variant:Nn \msg_new:nnn {nnx}
\cs_generate_variant:Nn \msg_new:nnnn {nnxx}
\cs_new:Nn \@@_msg_new:nn
- { \msg_new:nnx {fontspec} {#1} { \tl_trim_spaces:n {#2} } }
+ { \msg_new:nnx {fontspec} {#1} { ^^J \tl_trim_spaces:n {#2} } }
\cs_new:Nn \@@_msg_new:nnn
- { \msg_new:nnxx {fontspec} {#1} { \tl_trim_spaces:n {#2} } { \tl_trim_spaces:n {#3} } }
+ { \msg_new:nnxx {fontspec} {#1} { ^^J \tl_trim_spaces:n {#2} } { \tl_trim_spaces:n {#3} } }
\char_set_catcode_space:n {32}
% \end{macrocode}
%
@@ -49,7 +49,10 @@
}
\@@_msg_new:nnn {font-not-found}
{
- The font "#1" cannot be found.
+ The font "#1" cannot be found; this may be but usually is not
+ a fontspec bug. Either there is a typo in the font name/file,
+ the font is not installed (correctly), or there is a bug
+ in the underlying font loading engine (XeTeX/luaotfload).
}
{
A font might not be found for many reasons.\\
@@ -163,9 +166,11 @@
}
\@@_msg_new:nn {language-not-exist}
{
- Language '#1' not available
- for font '\l_fontspec_fontname_tl'
+ Language '#1' not explicitly supported
+ within font '\l_fontspec_fontname_tl'
with script '\l_@@_script_name_tl'.
+ Check the typeset output, and if it is okay then ignore this warning.
+ Otherwise a different font should be chosen.
}
\@@_msg_new:nn {only-xetex-feature}
{
@@ -203,7 +208,7 @@
The~"#1"~package~option~is~obsolete.~TU~is~the~default~encoding.
}
%</options>
-%<*fontspec>
+%<*fontspec>
\@@_msg_new:nn {font-index-needs-ttc}
{
The "FontIndex" feature is only supported by TTC (TrueType Collection) fonts.\\
@@ -240,7 +245,9 @@
}
\@@_msg_new:nn {no-script}
{
- Font "#1" does not contain requested Script "#2".
+ Script '#2' not explicitly supported within font '#1'.
+ Check the typeset output, and if it is okay then ignore this warning.
+ Otherwise a different font should be chosen.
}
\@@_msg_new:nn {opa-twice}
{
@@ -278,10 +285,10 @@
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-code-opening.dtx b/macros/unicodetex/latex/fontspec/fontspec-code-opening.dtx
index 103fe2addf..3da1f25d7a 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-code-opening.dtx
+++ b/macros/unicodetex/latex/fontspec/fontspec-code-opening.dtx
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-code-opening.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-opening.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
%
% \section{Opening code}
%
@@ -19,6 +19,7 @@
% \begin{macrocode}
,math .bool_gset:N = \g_@@_math_bool
,math .usage:n = preamble
+ ,math / unknown .code:n = { } % \msg_warning:nnn {fontspec} {math-opt-unknown} {#1}
,no-math .bool_gset_inverse:N = \g_@@_math_bool
,no-math .usage:n = preamble
,config .bool_gset:N = \g_@@_cfg_bool
@@ -45,7 +46,12 @@
\msg_redirect_module:nnn { fontspec } { warning } { warning }
\msg_redirect_module:nnn { fontspec } { info } { info }
}
- }
+ }
+\msg_new:nnn {fontspec} {math-opt-unknown}
+ {
+ The~ global~ option~ 'math=#1'~ is~ not~ recognised.~ It~ will~ be~ ignored.
+ }
+
% \end{macrocode}
%
% \begin{macrocode}
@@ -188,10 +194,10 @@
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-code-opentype.dtx b/macros/unicodetex/latex/fontspec/fontspec-code-opentype.dtx
index 1ea0a4eccf..5a38be87ff 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-code-opentype.dtx
+++ b/macros/unicodetex/latex/fontspec/fontspec-code-opentype.dtx
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-code-opentype.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-opentype.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
% \section{OpenType definitions code}
%
@@ -159,7 +159,7 @@
% font. \cmd\l_@@_script_int\ is used to store
% the number corresponding to the script tag string.
% \begin{macrocode}
-\prg_new_conditional:Nnn \@@_check_script:Nn {TF,T}
+\prg_new_conditional:Nnn \@@_check_script:Nn {TF,T,F}
{
%<debug>\typeout{:: _check_script:Nn~#1~/~#2}
\bool_if:NTF \l_@@_never_check_bool
@@ -480,10 +480,10 @@
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-code-scripts.dtx b/macros/unicodetex/latex/fontspec/fontspec-code-scripts.dtx
index d56a066e7e..1850f25759 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-code-scripts.dtx
+++ b/macros/unicodetex/latex/fontspec/fontspec-code-scripts.dtx
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-code-scripts.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-scripts.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
% \section{Font script definitions}
%
@@ -40,7 +40,6 @@
\newfontscript{Cypro-Minoan}{cpmn}
\newfontscript{Cyrillic}{cyrl}
\newfontscript{Default}{DFLT}
-\newfontscript{CustomDefault}{latn,DFLT}
\newfontscript{Deseret}{dsrt}
\newfontscript{Devanagari}{dev2,deva}
\newfontscript{Dives~Akuru}{diak}
@@ -195,10 +194,10 @@
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-code-user.dtx b/macros/unicodetex/latex/fontspec/fontspec-code-user.dtx
index d28eda0c2f..6be00dc140 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-code-user.dtx
+++ b/macros/unicodetex/latex/fontspec/fontspec-code-user.dtx
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-code-user.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-user.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
% \section{User command internals}
% \label{sec:codeinternal}
@@ -64,6 +64,7 @@
% \begin{macrocode}
\cs_new:Nn \@@_main_setmainfont:nn
{
+%<debug>\typeout{::~_main_setmainfont:nn}
\ifdefined\DeclareFontSeriesDefault
\DeclareFontSeriesDefault[rm]{bf}{\bfdefault}
\fi
@@ -538,10 +539,10 @@
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-code-vars.dtx b/macros/unicodetex/latex/fontspec/fontspec-code-vars.dtx
index bb6d3b4eee..c2be0378c5 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-code-vars.dtx
+++ b/macros/unicodetex/latex/fontspec/fontspec-code-vars.dtx
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-code-vars.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-vars.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
%
% \section{Declaration of variables}
%
@@ -334,10 +334,10 @@
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-code-xfss.dtx b/macros/unicodetex/latex/fontspec/fontspec-code-xfss.dtx
index bac0e57d94..d58424a165 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-code-xfss.dtx
+++ b/macros/unicodetex/latex/fontspec/fontspec-code-xfss.dtx
@@ -1,6 +1,33 @@
-%%^^A%% fontspec-code-xfss.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code-xfss.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
-% \section{Changes to the NFSS}
+% \section{Changes/additions to the NFSS}
+%
+% \begin{function}{\strong, \strongenv}
+% \begin{syntax}
+% "\strong" \marg{text}
+% "\begin{strongenv}" \meta{text} "\end{strongenv}"
+% \end{syntax}
+% Typesets text in the `strong' font. NFSS series equivalent to \cs{emph}. Can be nested.
+% \end{function}
+%
+% \begin{function}{\strongfontdeclare}
+% \begin{syntax}
+% "\strongfontdeclare" \marg{comma-separated font switch declarations}
+% \end{syntax}
+% Define the behaviour of nested \cs{strong} commands.
+% \end{function}
+%
+% \begin{function}{\strongreset}
+% \begin{syntax}
+% "\renewcommand \strongreset" \marg{font switch declarations}
+% \end{syntax}
+% Define the behaviour when a \cs{strong} command is nested deeper than the definitions provided by \cs{strongfontdeclare}.
+% By default this is \meta{empty} --- i.e., bold on top of bold remains bold.
+% In certain circumstances it may be appropriate to reset to a default state.
+% \end{function}
+%
+%
+% \section{Implementation}
%
% \begin{macrocode}
%<*fontspec>
@@ -111,18 +138,21 @@
% \end{macro}
%
% \begin{macro}{\strong}
-% \begin{macro}{\strongreset}
% \begin{macrocode}
\DeclareTextFontCommand{\strong}{\strongenv}
-\cs_set:Npn \strongreset {}
% \end{macrocode}
% \end{macro}
+%
+% \begin{macro}{\strongreset}
+% \begin{macrocode}
+\cs_set:Npn \strongreset {}
+% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\reset@font}
+% \begin{macro}[int]{\reset@font}
% Ensure nesting resets when necessary:
% \begin{macrocode}
-\cs_set:Npn \reset@font
+\cs_set_protected:Npn \reset@font
{
\normalfont
\int_zero:N \l_@@_strong_int
@@ -130,14 +160,10 @@
% \end{macrocode}
% \end{macro}
%
-% Programmer's interface for setting nesting levels:
-% \begin{macrocode}
-\cs_new:Nn \fontspec_set_strong_level:n { \int_set:Nn \l_@@_strong_int {#1} }
-% \end{macrocode}
+% \subsection{Defaults}
%
-% Defaults:
% \begin{macrocode}
-\strongfontdeclare{ \bfseries }
+\strongfontdeclare{\bfseries}
% \end{macrocode}
%
% \begin{macrocode}
@@ -149,10 +175,10 @@
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-code.ltx b/macros/unicodetex/latex/fontspec/fontspec-code.ltx
index 1ec8fe6cd7..64d963af8e 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-code.ltx
+++ b/macros/unicodetex/latex/fontspec/fontspec-code.ltx
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-code.ltx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-code.ltx -- part of FONTSPEC <latex3.github.io/fontspec>
\ifdefined \XeTeXOTcountscripts \else \makeatletter
\@latex@error{^^J*** The fontspec documentation can only be typeset with `xelatex` ***\@gobble}\@ehc
@@ -28,10 +28,10 @@
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-code.pdf b/macros/unicodetex/latex/fontspec/fontspec-code.pdf
index c11119f627..464fc94ebe 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-code.pdf
+++ b/macros/unicodetex/latex/fontspec/fontspec-code.pdf
Binary files differ
diff --git a/macros/unicodetex/latex/fontspec/fontspec-doc-api.tex b/macros/unicodetex/latex/fontspec/fontspec-doc-api.tex
index bdcb1935b3..5f3ff21d54 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-doc-api.tex
+++ b/macros/unicodetex/latex/fontspec/fontspec-doc-api.tex
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-doc-api.tex -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-doc-api.tex -- part of FONTSPEC <latex3.github.io/fontspec>
\documentclass[a4paper]{l3doc}
\usepackage{fontspec-doc-style}
@@ -22,13 +22,11 @@ know.
New \AAT\ features may be created with this command:\par
{\centering\cmd\newAATfeature\marg{feature}\marg{option}\marg{feature code}\marg{selector code}\par}\noindent
Use the \XeTeX\ file \path{AAT-info.tex} to obtain the code numbers.
-See \exref{newAATfeat}.
-
-\begin{Xexample}{newAATfeat}{Assigning new \AAT\ features.}
+\begin{Verbatim}
\newAATfeature{Alternate}{HoeflerSwash}{17}{1}
\fontspec{Hoefler Text Italic}[Alternate=HoeflerSwash]
This is XeTeX by Jonathan Kew.
-\end{Xexample}
+\end{Verbatim}
\DescribeMacro{\newopentypefeature}
@@ -38,7 +36,7 @@ The synonym \cs{newICUfeature} is deprecated.
Here's what it would look like in practise:
\begin{Verbatim}
-\newopentypefeature{Style}{NoLocalForms}{-locl}
+ \newopentypefeature{Style}{NoLocalForms}{-locl}
\end{Verbatim}
\DescribeMacro{\newfontfeature}
@@ -132,9 +130,13 @@ it may be aliased to another with the
such as shown in \exref{alias}.
\begin{Xexample}{alias}{Renaming font features.}
- \aliasfontfeature{ItalicFeatures}{IF}
- \fontspec{Hoefler Text}[IF = {Alternate=1}]
- Roman Letters \itshape And Swash
+ \aliasfontfeature{ItalicFont}{IF}
+ \aliasfontfeature{ItalicFeatures}{IFF}
+ \setmainfont{ EBGaramond-Regular.otf }[
+ IF = EBGaramond-Italic.otf ,
+ IFF = {Style=Swash} ,
+ ]
+ Roman Letters \itshape And Swash
\end{Xexample}
Spaces in feature (and option names, see below) \emph{are} allowed. (You may have
@@ -180,8 +182,8 @@ implemented. But you get the idea.
\DescribeMacro{\l_fontspec_font}
In some cases, it is useful to know what the \LaTeX\ font family
of a specific \pkg{fontspec} font is. After a \cmd\fontspec-like
-command, this is stored inside the \cmd\l_fontspec_family_tl\ macro.
-Otherwise, \LaTeX's own \cmd\f@family\ macro can be useful here,
+command, this is stored inside the \cmd{\l_fontspec_family_tl}\ macro.
+Otherwise, \LaTeX's own \cmd{\f@family} macro can be useful here,
too.
The raw \TeX\ font that is defined from the `base' font in the family is stored in \cmd{\l_fontspec_font}.
@@ -337,10 +339,10 @@ OpenType language tag |#1|.
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-doc-enc.tex b/macros/unicodetex/latex/fontspec/fontspec-doc-enc.tex
index 60da8dbb3a..76cf35fb83 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-doc-enc.tex
+++ b/macros/unicodetex/latex/fontspec/fontspec-doc-enc.tex
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-doc-enc.tex -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-doc-enc.tex -- part of FONTSPEC <latex3.github.io/fontspec>
\documentclass[a4paper]{l3doc}
\usepackage{fontspec-doc-style}
@@ -202,10 +202,10 @@ the process of defining Unicode font range encodings:
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-doc-featset.tex b/macros/unicodetex/latex/fontspec/fontspec-doc-featset.tex
index b95931c52e..076a3c3140 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-doc-featset.tex
+++ b/macros/unicodetex/latex/fontspec/fontspec-doc-featset.tex
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-doc-featset.tex -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-doc-featset.tex -- part of FONTSPEC <latex3.github.io/fontspec>
\documentclass[a4paper]{l3doc}
\usepackage{fontspec-doc-style}
@@ -100,8 +100,8 @@ tabular material to use monospaced numbers, as shown in \exref{aff}.
If you attempt to \emph{change} an already-selected feature, \pkg{fontspec} will try to de-activate any features that clash with the new ones.
\Eg, the following two invocations are mutually exclusive:
\begin{Verbatim}
-\addfontfeature{Numbers=OldStyle}...
-\addfontfeature{Numbers=Lining}...
+\addfontfeatures{Numbers=OldStyle}...
+\addfontfeatures{Numbers=Lining}...
123
\end{Verbatim}
Since |Numbers=Lining| comes last, it takes precedence and deactivates the call |Numbers=OldStyle|.
@@ -109,7 +109,7 @@ Since |Numbers=Lining| comes last, it takes precedence and deactivates the call
If you wish to apply the change to only one of the fonts of a family (say, italics only)
you can write
\begin{Verbatim}
-\addfontfeature{ItalicFeatures={Numbers=Lowercase}}
+\addfontfeatures{ItalicFeatures={Numbers=Lowercase}}
\end{Verbatim}
@@ -157,8 +157,8 @@ features requested.
}
It is entirely possible that separate fonts in a family will require
-separate options; \eg, Hoefler Text Italic contains various swash
-feature options that are completely unavailable in the upright shapes.
+separate options; \eg, certain italic fonts contains various swash
+feature options that are usually unavailable in the upright (`roman') shapes.
The font features defined at the top level of the optional \cmd\fontspec\
argument are applied to \emph{all} shapes of the family.
@@ -240,7 +240,7 @@ Support for TrueType Collections has only been tested in \XeTeX, but should also
\null\quad... \\
\char`\}}
-The \feat{SizeFeature} feature is a little more complicated
+The \feat{SizeFeatures} feature is a little more complicated
than the previous features discussed. It allows different fonts
and different font features to be selected for a given font
family as the point size varies.
@@ -347,9 +347,9 @@ of writing the colours in hexadecimal.
\begin{Verbatim}
\usepackage{xcolor}
...
- \fontspec[Color=red]{Verdana} ...
+ \fontspec[Color=red]{Montserrat-Medium.otf} ...
\definecolor{Foo}{rgb}{0.3,0.4,0.5}
- \fontspec[Color=Foo]{Verdana} ...
+ \fontspec[Color=Foo]{Montserrat-Medium.otf} ...
\end{Verbatim}
You may also use named colours defined with the color commands of the L3
@@ -359,20 +359,20 @@ programming layer:
\color_set:nnn{Foo}{rgb}{0.3,0.4,0.5}
\ExplSyntaxOff
...
- \fontspec[Color=Foo]{Verdana} ...
+ \fontspec[Color=Foo]{Montserrat-Medium.otf} ...
\end{Verbatim}
-Color expressions (\verb+red!50!blue+) are not supported. The \pkg{color}
+Color expressions (like \verb+red!50!blue+) are not supported. The \pkg{color}
package is \emph{not} supported neither.
The code will at first test for color names of the L3 layer, then for xcolor
-names and at last try to use the argument as a hexadecimal value.
+names, and at last try to use the argument as a hexadecimal value.
You may specify the transparency with a named colour using the \feat{Opacity}
-feature which takes an decimal from zero to one corresponding to transparent
+feature, which takes an decimal from zero to one corresponding to transparent
to opaque respectively:
\begin{Verbatim}
- \fontspec[Color=red,Opacity=0.7]{Verdana} ...
+ \fontspec[Color=red,Opacity=0.7]{Montserrat-Medium.otf} ...
\end{Verbatim}
It is still possible to specify a colour in six-char hexadecimal form
while defining opacity in this way, if you like.
@@ -613,14 +613,14 @@ of font size. For example, something like:
In rare situations users may want to mechanically distort the shapes of the glyphs in the current font such as shown in \exref{fake}. Please don't overuse these features; they are \emph{not} a good alternative to having the real shapes.
\begin{Xexample}{fake}{Articifial font transformations.}
- \fontspec{Quattrocento-Regular.otf} \emph{ABCxyz} \quad
- \fontspec{Quattrocento-Regular.otf}[FakeSlant=0.2] ABCxyz
+ \fontspec{Quattrocento-Regular.ttf} \emph{ABCxyz} \quad
+ \fontspec{Quattrocento-Regular.ttf}[FakeSlant=0.2] ABCxyz
- \fontspec{Quattrocento-Regular.otf} ABCxyz \quad
- \fontspec{Quattrocento-Regular.otf}[FakeStretch=1.2] ABCxyz
+ \fontspec{Quattrocento-Regular.ttf} ABCxyz \quad
+ \fontspec{Quattrocento-Regular.ttf}[FakeStretch=1.2] ABCxyz
- \fontspec{Quattrocento-Regular.otf} \textbf{ABCxyz} \quad
- \fontspec{Quattrocento-Regular.otf}[FakeBold=1.5] ABCxyz
+ \fontspec{Quattrocento-Regular.ttf} \textbf{ABCxyz} \quad
+ \fontspec{Quattrocento-Regular.ttf}[FakeBold=1.5] ABCxyz
\end{Xexample}
If values are omitted, their defaults are as shown above.
@@ -644,10 +644,10 @@ shown in \exref{tracking}.
The letter spacing parameter is a normalised additive factor (not a scaling factor); it is defined as a percentage of the font size. That is, for a 10\,pt font, a letter spacing parameter of `|1.0|' will add 0.1\,pt between each letter.
\begin{Xexample}{tracking}{The \feat{LetterSpace} feature.}
- \fontspec{Didot}
+ \setmainfont{Ysabeau-Light.otf}
\addfontfeature{LetterSpace=0.0}
USE TRACKING FOR DISPLAY CAPS TEXT \\
- \addfontfeature{LetterSpace=2.0}
+ \addfontfeature{LetterSpace=3.0}
USE TRACKING FOR DISPLAY CAPS TEXT
\end{Xexample}
@@ -743,10 +743,10 @@ To select such an instance, the \feat{Instance} feature can be used:
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-doc-fontsel.tex b/macros/unicodetex/latex/fontspec/fontspec-doc-fontsel.tex
index aecd47e176..2f9e37d907 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-doc-fontsel.tex
+++ b/macros/unicodetex/latex/fontspec/fontspec-doc-fontsel.tex
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-doc-fontsel.tex -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-doc-fontsel.tex -- part of FONTSPEC <latex3.github.io/fontspec>
\documentclass[a4paper]{l3doc}
\usepackage{fontspec-doc-style}
@@ -129,7 +129,7 @@ wish to have them all installed in your system's font directories.
In this case, it is more convenient to load them from a different location on your disk.
This technique is also necessary in \XeTeX\ when loading OpenType fonts that are present within your \TeX\ distribution, such as \path{/usr/local/texlive/2013/texmf-dist/fonts/opentype/public}.
Fonts in such locations are visible to \XeTeX\ but cannot be loaded by font name, only file name; \LuaTeX\ does not have this restriction.
-(If you for some reason want to restrict the fonts to the ones provided by your \TeX\ distribution even though you are using \LuaTeX\ you can use the \texttt{KpseOnly} option)
+(If you for some reason want to restrict the fonts to the ones provided by your \TeX\ distribution even though you are using \LuaTeX\ you can use the \DescribeOption{KpseOnly}\texttt{KpseOnly} option)
When selecting fonts by file name, any font that can be found in the default
search paths may be used directly (including in the current directory)
@@ -231,7 +231,7 @@ To continue the example above, here we colour the different faces:
\defaultfontfeatures[CharisSILR]{Color=blue}
\defaultfontfeatures[CharisSILB]{Color=red}
\end{Verbatim}
-Such configuration lines could be stored either inline inside \texttt{My Charis.fontspec}
+Such configuration lines could be stored either inline inside \texttt{MyCharis.fontspec}
or within their own \texttt{.fontspec} files; in this way, \pkg{fontspec} is designed to
handle `nested' configuration options.
@@ -336,14 +336,13 @@ A legacy \TeX\ font. {\unicodefont A unicode font.}
Sometimes only a specific font face is desired, without accompanying italic or bold variants
being automatically selected.
-This is common when selecting a fancy italic font, say, that has swash features unavailable
-in the upright forms. \cmd\newfontface\ is used for this purpose, shown
-in \exref{nfface}, which is repeated in \vref{sec:contextuals}.
+This is common when selecting a font for a very particular context within the document.
+For instance, say that a particular swash font is desired that isn't part of the document
+font setup. \cmd\newfontface\ could be used for this purpose, shown in \exref{nfface}.
\begin{Xexample}{nfface}{Defining a single font face.}
- \newfontface\fancy{Hoefler Text Italic}%
- [Contextuals={WordInitial,WordFinal}]
- \fancy where is all the vegemite
+ \newfontface\qedfont{EBGaramond-Regular.otf}[Style=Swash]
+ \qedfont QED
% \emph, \textbf, etc., all don't work
\end{Xexample}
@@ -366,21 +365,21 @@ in \exref{nfface}, which is repeated in \vref{sec:contextuals}.
The automatic bold, italic, and bold italic font selections will not be
adequate for the needs of every font: while some fonts mayn't even
have bold or italic shapes, in which case a skilled (or lucky)
-designer may be able to chose well-matching accompanying shapes from
+designer may be able to choose well-matching accompanying shapes from
a different font altogether, others can have a range of bold and
-italic fonts to chose among. The \feat{BoldFont} and
+italic fonts to choose among. The \feat{BoldFont} and
\feat{ItalicFont} features are provided for these situations. If only
one of these is used, the bold italic font is requested as the
default from the \emph{new} font. See \exref{bff}.
-\begin{Xexample}{bff}{Explicit selection of the bold font.}
- \fontspec{Helvetica Neue UltraLight}%
- [BoldFont={Helvetica Neue}]
- Helvetica Neue UltraLight \\
- {\itshape Helvetica Neue UltraLight Italic} \\
- {\bfseries Helvetica Neue } \\
- {\bfseries\itshape Helvetica Neue Italic} \\
-\end{Xexample}
+\begin{Lexample}{bff}{Explicit selection of the bold font.}
+ \setmainfont{Ysabeau-Hairline.otf}%
+ [BoldFont={Ysabeau-Thin.otf}]
+ Hairline \\
+ {\itshape Hairline Italic} \\
+ {\bfseries Thin } \\
+ {\bfseries\itshape Thin Italic} \\
+\end{Lexample}
If a bold italic shape is not defined, or you want to specify
\emph{both} custom bold and italic shapes, the \feat{BoldItalicFont}
@@ -429,7 +428,7 @@ Without these, however, the \LaTeX\ font switches for slanted (\cs{textsl}, \cs{
Swash font shapes in a family is supported by \LaTeX's commands \cs{textsw} and \cs{swshape}. These commands assume that swash shapes are in a sense `parallel' to italic shapes --- for instance, writing both \cs{swshape} and \cs{itshape} would not result in an italic swash shape (you would get whichever was declared last).
The \pkg{fontspec} package adopts this approach, while recognising that OpenType fonts in theory could have any crazy combination of shapes such as `italic swash small caps'.
-Attempting to support arbitrarily complex situations makes setup (and the code) more difficult with let's say infrequent benefit --- \pkg{fontspec}'s alternate feature selection mechanisms (such as verb|\addfontfeature{Style=Swash}|) can be used in such situations.
+Attempting to support arbitrarily complex situations makes setup (and the code) more difficult with let's say infrequent benefit --- \pkg{fontspec}'s alternate feature selection mechanisms (such as |\addfontfeature{Style=Swash}|) can be used in such situations.
Therefore, setup is quite simple:
\begin{Verbatim}
@@ -512,14 +511,14 @@ Conversely, a font face defined in terms of a non-standard font shape will not.
There are some standards for choosing shape and series codes; the \LaTeXe\ font selection guide\footnote{\texttt{texdoc fntguide}} has a comprehensive listing.
-The \feat{FontFace} command also interacts properly with the \feat{SizeFeatures} command as follows: (nonsense set of font selection choices)
+The \feat{FontFace} command also interacts properly with the \feat{SizeFeatures} command as follows:
\begin{Verbatim}
FontFace = {c}{n}{
- Font = Times ,
+ Font = lmsans10-oblique.otf ,
SizeFeatures = {
- { Size = -10 , Font = Georgia } ,
- { Size = 10-15} , % default "Font = Times"
- { Size = 15- , Font = Cochin } ,
+ { Size = -10 , Font = lmsans8-oblique.otf } ,
+ { Size = 10-15 } ,
+ { Size = 15- , Font = lmsans17-oblique.otf } ,
},
},
\end{Verbatim}
@@ -640,10 +639,10 @@ if it were a `naked' control sequence; \eg, `|M. \fontspec{...} N|' and
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-doc-intro.tex b/macros/unicodetex/latex/fontspec/fontspec-doc-intro.tex
index 07345d19d7..850b00b3e2 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-doc-intro.tex
+++ b/macros/unicodetex/latex/fontspec/fontspec-doc-intro.tex
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-doc-intro.tex -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-doc-intro.tex -- part of FONTSPEC <latex3.github.io/fontspec>
\documentclass[a4paper]{l3doc}
\usepackage{fontspec-doc-style}
@@ -77,7 +77,10 @@ For basic use, no package options are required:
Package options will be introduced below; some preliminary details are discussed first.
Package options are setup with the in-built \LaTeX{} keyval options handler. This means
that the package can be loaded more than once with different options without triggering
-an option clash error. The \texttt{config} and \texttt{no-config} option must be used in
+an option clash error.
+\DescribeOption{config}
+\DescribeOption{no-config}
+The \texttt{config} and \texttt{no-config} option must be used in
the first loading and are ignored later.
\subsection{Font encodings}
@@ -86,6 +89,8 @@ The package switches the \textsc{nfss} font encoding to \texttt{TU}.
\texttt{TU} is a new Unicode font encoding, intended for both \XeTeX\ and \LuaTeX\ engines, and automatically contains support for symbols covered by \LaTeX's traditional \texttt{T1} and \texttt{TS1} font encodings (for example, |\%|, |\textbullet|, |\"u|, and so on).
Some additional features are provided by \pkg{fontspec} to customise some encoding details; see Part~\vref{part:enc} for further details.
+\DescribeOption{euenc}
+\DescribeOption{tuenc}
Pre-2017 behaviour is now obsolete. The \texttt{euenc} and \texttt{tuenc} package options are
ignored. Package authors and users who have referred explicitly to the encoding names \texttt{EU1} or \texttt{EU2} should update their code or documents.
(See internal variable names described in \vref{sec:api} for how to do this properly.)
@@ -95,7 +100,7 @@ ignored. Package authors and users who have referred explicitly to the encoding
By default, \pkg{fontspec} adjusts \LaTeX's default maths setup in order to maintain the correct Computer Modern symbols when the roman font changes.
However, it will attempt to avoid doing this if another maths font package is loaded (such as \pkg{mathpazo} or the \pkg{unicode-math} package).
-If you find that \pkg{fontspec} is incorrectly changing the maths font when it shouldn't be, apply the |no-math| package option to manually suppress its behaviour here.
+If you find that \pkg{fontspec} is incorrectly changing the maths font when it shouldn't be, apply the \DescribeOption{no-math} |no-math| package option to manually suppress its behaviour here.
\subsection{Configuration}
@@ -110,6 +115,7 @@ A |fontspec.cfg| file is distributed with \pkg{fontspec} with a small number of
To customise \pkg{fontspec} to your liking, use the standard |.cfg| file as a starting point or write your own from scratch, then either place it in the same folder as the main document for isolated cases, or in a location
that \XeTeX\ or \LuaTeX\ searches by default; \eg\ in Mac\TeX: \path{~/Library/texmf/tex/latex/}.
+\DescribeOption{no-config}
The package option |no-config| will suppress the loading of the |fontspec.cfg| file under all circumstances. Both options must be used the first time \pkg{fontspec} is loaded and are ignored in later calls.
@@ -117,13 +123,14 @@ The package option |no-config| will suppress the loading of the |fontspec.cfg| f
\label{sec:quiet-warnings}
This package can give some warnings that can be harmless if you know what
-you're doing. Use the |quiet| package option to write these warnings to the
+you're doing. Use the \DescribeOption{quiet} |quiet| package option to write these warnings to the
transcript (\texttt{.log}) file instead.
+\DescribeOption{silent}
Use the |silent| package option to completely suppress these warnings if you
don't even want the |.log| file cluttered up.
-Both options can also be used with \cs{Setkeys} in the document. Use the |verbose| option to get activate the warnings again.
+Both options can also be used with \cs{Setkeys} in the document. Use the \DescribeOption{verbose} |verbose| option to get activate the warnings again.
\section{Interaction with \LaTeXe\ and other packages}
@@ -184,10 +191,10 @@ An example for setting up a font family for use with \cs{strong} is discussed in
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-doc-luatex.tex b/macros/unicodetex/latex/fontspec/fontspec-doc-luatex.tex
index b08a89230e..314515a1f4 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-doc-luatex.tex
+++ b/macros/unicodetex/latex/fontspec/fontspec-doc-luatex.tex
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-doc-luatex.tex -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-doc-luatex.tex -- part of FONTSPEC <latex3.github.io/fontspec>
\documentclass[a4paper]{l3doc}
\usepackage{fontspec-doc-style}
@@ -79,10 +79,10 @@ Please refer to the \LuaTeX/\pkg{luaotfload} documentation for more details.
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-doc-opentype.tex b/macros/unicodetex/latex/fontspec/fontspec-doc-opentype.tex
index 10bc9f0284..03deac27cb 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-doc-opentype.tex
+++ b/macros/unicodetex/latex/fontspec/fontspec-doc-opentype.tex
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-doc-opentype.tex -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-doc-opentype.tex -- part of FONTSPEC <latex3.github.io/fontspec>
\documentclass[a4paper]{l3doc}
@@ -213,7 +213,6 @@ Thanks to \name{Jonathan Kew}, \name{Yves Codet} and
\begin{Xexample}[firstline=14,lastline=23]{script-lang}{An example of various Scripts and Languages.}
\def\testfeature#1#2{%^^A
\fontspec{\examplefont}#2 & \fontspec[#1]{\examplefont}#2\\[1ex]}
-\def \examplefont{CODE2000.TTF}
\def \arabictext{العربي}
\def \devanagaritext{हिन्दी}
\def \bengalitext{লেখ}
@@ -224,6 +223,7 @@ Thanks to \name{Jonathan Kew}, \name{Yves Codet} and
\def \hebrewtext{רִדְתָּֽהּ}
\def \vietnamesetext{cấp số mỗi}
\begin{tabular}{r@{\quad}l}
+ \gdef\examplefont{CODE2000.TTF}
\testfeature{Script=Arabic}{\arabictext}
\testfeature{Script=Devanagari}{\devanagaritext}
\testfeature{Script=Bengali}{\bengalitext}
@@ -985,8 +985,8 @@ Coverage will vary by font; see \exref{ot-frac}.
Some (Asian fonts predominantly) also provide for the \opt{Alternate} option.
\begin{Lexample}{ot-frac}{The \feat{Fractions} feature.}
-\setsansfont{Lato}[Fractions=On]
-\setmonofont{IBM Plex Mono}[Fractions=On]
+\setsansfont{IBMPlexSans-Regular.otf}[Fractions=On]
+\setmonofont{IBMPlexMono-Regular.otf}[Fractions=On]
\sffamily 1/2 47/11 1/1000 \par
\ttfamily 1/2 47/11
@@ -1036,6 +1036,15 @@ will look. OpenType fonts may contain the following options:
\opt{SmallCaps}, \opt{PetiteCaps},
\opt{UppercaseSmallCaps}, \opt{UppercasePetiteCaps}, and
\opt{Unicase}.
+Additionally \opt{Uppercase} and \opt{Lowercase} are supported for all fonts
+in \LuaTeX.
+In contrast to earlier version, the \opt{Uppercase} and \opt{Lowercase} options
+turn the text into uppercase or lowercase and do not require the text to already
+have the right casing. The old behavior of \opt{Uppercase} is available with
+\verb|Style=Uppercase|. When the \opt{Uppercase} option is selected,
+\verb|Style=Uppercase| and \verb|Kerning=Uppercase| are automatically applied if
+supported by the font.
+
\begin{features}{Letters}
\otf*{SmallCaps}{smcp}
@@ -1043,6 +1052,8 @@ will look. OpenType fonts may contain the following options:
\otf*{UppercaseSmallCaps}{c2sc}
\otf*{UppercasePetiteCaps}{c2pc}
\otf*{Unicase}{unic}
+\otf*{Uppercase}{}
+\otf*{Lowercase}{}
\cmidrule{2-4}
\otf{ResetAll}{}
\end{features}
@@ -1058,9 +1069,11 @@ This difference is shown in \exref{caps}.
`Unicase' is a weird hybrid of upper and lower case letters.
\begin{Lexample}{caps}{Small caps from lowercase or uppercase letters.}
- \fontspec{texgyreadventor-regular.otf}[Letters=SmallCaps]
+ \fontspec{Coelac.otf}[Letters=SmallCaps]
+ THIS SENTENCE no verb \\
+ \fontspec{Coelac.otf}[Letters=UppercaseSmallCaps]
THIS SENTENCE no verb \\
- \fontspec{texgyreadventor-regular.otf}[Letters=UppercaseSmallCaps]
+ \fontspec{Coelac.otf}[Letters=PetiteCaps]
THIS SENTENCE no verb
\end{Lexample}
@@ -1196,7 +1209,7 @@ particular substitutions are organised with which feature largely up to the font
\begin{Xexample}[firstline=2]{style-alt}{Example of the \opt{Alternate} option of the \feat{Style} feature.}
\Large
- \fontspec{Quattrocento-Regular.otf}
+ \fontspec{Quattrocento-Regular.ttf}
M Q W \\
\addfontfeature{Style=Alternate}
M Q W
@@ -1208,7 +1221,7 @@ in \exref{style-uppercase}; note the raised position of the hyphen
to better match the surrounding letters.
It will (probably) not actually map letters to uppercase.
\note{If you want automatic uppercase letters, look to \LaTeX's
- \cmd\MakeUppercase\ command.}
+ \cmd\MakeUppercase\ command or, when using \LuaTeX, to the \feat{Letters} feature.}
This option used to be selected under the \feat{Letters} feature, but moved here
as it generally does not actually affect the letters themselves.
The \feat{Kerning} feature also contains an \opt{Uppercase} option,
@@ -1224,29 +1237,15 @@ which adds a small amount of spacing in between letters (see \vref{sec:kerning})
In other features, larger breadths of changes can be seen, covering
the style of an entire alphabet.
-See \exref{style-itrub}; here, the \opt{Italic} option affects the Latin text
-and the \opt{Ruby} option the Japanese.
-
-\begin{Xexample}[firstline=2]{style-itrub}{Example of the \opt{Italic} and \opt{Ruby} options of the \feat{Style} feature.}
+For instance, in some Japanese fonts features such as |Style=Italic| or |Style=Ruby|
+respectively change the style of all Latin characters to italic or all Hiragana characters to a darker optical shape:
+\begin{Verbatim}[firstline=2]
\Large \def\kana{ようこそ ワカヨタレソ}
\fontspec{Hiragino Mincho Pro}
Latin \kana \\
\addfontfeature{Style={Italic, Ruby}}
Latin \kana
-\end{Xexample}
-
-Note the difference here between the default and the horizontal style kana
-in \exref{style-hvkana}: the horizontal style is slightly wider.
-
-\begin{Xexample}[firstline=2]{style-hvkana}{Example of the \opt{HorizontalKana} and \opt{VerticalKana} options of the \feat{Style} feature.}
- \Large \def\kana{ようこそ ワカヨタレソ}
- \fontspec{Hiragino Mincho Pro}
- \kana \\
- {\addfontfeature{Style=HorizontalKana}
- \kana } \\
- {\addfontfeature{Style=VerticalKana}
- \kana }
-\end{Xexample}
+\end{Verbatim}
\subsubsection{Stylistic Set variations --- \texttt{ssNN}}
@@ -1340,16 +1339,15 @@ and Japanese typesetting.
Some fonts are equipped with an extensive range of
numbers and numerals in different forms. These are accessed with the
-\feat{Annotation} feature (OpenType feature |nalt|), selected numerically as shown in
-\exref{ot-annot}. Note that the indexing starts from zero.
-
-\begin{Xexample}{ot-annot}{Annotation forms for OpenType fonts.}
+\feat{Annotation} feature (OpenType feature |nalt|), selected numerically.
+Note that the indexing starts from zero.
+\begin{Verbatim}
\fontspec{Hiragino Maru Gothic Pro}
1 2 3 4 5 6 7 8 9
\def\x#1{\\{\addfontfeature{Annotation=#1}
1 2 3 4 5 6 7 8 9 }}
\x0\x1\x2\x3\x4\x5\x6\x7\x7\x8\x9
-\end{Xexample}
+\end{Verbatim}
\subsubsection{Character width}\label{sec:CharacterWidth}
@@ -1378,34 +1376,20 @@ latter case, there are also half-width forms for squeezing more kana
glyphs (which are less complex than the kanji they are amongst) into
a given block of space. The same features are given to roman letters
in Japanese fonts, for typesetting foreign words in the same style
-as the surrounding text.
+as the surrounding text. Example omitted until I find an open source
+font which supports these features.
+%\begin{Verbatim}
+% \def\texta{ようこそ}\def\textb{ワカヨタレソ}
+% \def\test{\makebox[2cm][l]{\texta}%
+% \makebox[2.5cm][l]{\textb}%
+% \makebox[2.5cm][l]{abcdef}}
+% \fontspec{Hiragino Mincho Pro}
+% {\addfontfeature{CharacterWidth=Proportional}\test}\\
+% {\addfontfeature{CharacterWidth=Full}\test}\\
+% {\addfontfeature{CharacterWidth=Half}\test}
+%\end{Verbatim}
-\begin{Xexample}[firstline=2]{charwdprop}{Proportional or fixed width forms.}
- \def\texta{ようこそ}\def\textb{ワカヨタレソ}
- \def\test{\makebox[2cm][l]{\texta}%
- \makebox[2.5cm][l]{\textb}%
- \makebox[2.5cm][l]{abcdef}}
- \fontspec{Hiragino Mincho Pro}
- {\addfontfeature{CharacterWidth=Proportional}\test}\\
- {\addfontfeature{CharacterWidth=Full}\test}\\
- {\addfontfeature{CharacterWidth=Half}\test}
-\end{Xexample}
-The same situation occurs with numbers, which are provided in
-increasingly illegible compressed forms seen in \exref{charwd}.
-
-\begin{Xexample}[firstline=2]{charwd}{Numbers can be compressed significantly.}
- \centering
- \fontspec[Renderer=AAT]{Hiragino Mincho Pro}
- {\addfontfeature{CharacterWidth=Full}
- ---12321---}\\
- {\addfontfeature{CharacterWidth=Half}
- ---1234554321---}\\
- {\addfontfeature{CharacterWidth=Third}
- ---123456787654321---}\\
- {\addfontfeature{CharacterWidth=Quarter}
- ---12345678900987654321---}
-\end{Xexample}
\subsubsection{CJK shape}
@@ -1429,14 +1413,12 @@ fonts support the following \feat{CJKShape} options:
\opt{JIS1990}, and \opt{Expert}. OpenType also supports the \opt{NLC} option.
\begin{Xexample}[firstline=2]{ot-cjk-shape}{Different standards for CJK ideograph presentation.}
- \LARGE\def\text{ 唖噛躯 妍并訝}
- \fontspec{Hiragino Mincho Pro}
+ \LARGE\def\text{\noindent 唖噛躯 妍并訝}
+ \fontspec{NotoSansJP-Regular.ttf}
{\addfontfeature{CJKShape=Traditional}
\text } \\
{\addfontfeature{CJKShape=NLC}
- \text } \\
- {\addfontfeature{CJKShape=Expert}
- \text }
+ \text }
\end{Xexample}
@@ -1465,10 +1447,10 @@ however; please get in touch if there are improvements that could be made.
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-doc-style.sty b/macros/unicodetex/latex/fontspec/fontspec-doc-style.sty
index 751e7a150d..5bf5877bb7 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-doc-style.sty
+++ b/macros/unicodetex/latex/fontspec/fontspec-doc-style.sty
@@ -5,8 +5,10 @@
\input{fontspec.dtx}
\ExplSyntaxOff
-\usepackage{fontspec,booktabs,caption,xcolor,flafter,fancyvrb,hologo,graphicx,
- url,varioref,varwidth,microtype,tocloft,framed,xparse,docmute}
+\usepackage{fontspec,booktabs,caption,
+xcolor,flafter,fancyvrb,hologo,
+graphicx,url,varioref,varwidth,
+microtype,framed,tocloft,xparse,docmute}
\let\FancyVerbSpace\verbvisiblespace
@@ -32,7 +34,7 @@
\newcommand\XeLaTeX{\hologo{XeLaTeX}}
\newcommand\LuaLaTeX{\hologo{LuaLaTeX}}
-% ToC formatting:
+% tocloft formatting:
\setlength\cftsubsecnumwidth{1.4\cftsubsecnumwidth}
%\def\@cfttocstart{\small\begin{multicols}{2}}
%\def\@cfttocfinish{\end{multicols}}
diff --git a/macros/unicodetex/latex/fontspec/fontspec-doc-xetex.tex b/macros/unicodetex/latex/fontspec/fontspec-doc-xetex.tex
index 0033156971..6940f0c32b 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-doc-xetex.tex
+++ b/macros/unicodetex/latex/fontspec/fontspec-doc-xetex.tex
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-doc-xetex.tex -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-doc-xetex.tex -- part of FONTSPEC <latex3.github.io/fontspec>
\documentclass[a4paper]{l3doc}
\usepackage{fontspec-doc-style}
@@ -61,17 +61,15 @@ select the \opt{OpenType} renderer.}
\subsection{Vertical typesetting}
\XeTeX\ provides for vertical typesetting simply with the ability to rotate
-the individual glyphs as a font is used for typesetting, as shown in
-\exref{vert}.
-
-\begin{Xexample}[firstline=2]{vert}{Vertical typesetting.}
+the individual glyphs as a font is used for typesetting:
+\begin{Verbatim}
\def\verttext{共産主義者は}
\fontspec{Hiragino Mincho Pro}
\verttext
\fontspec{Hiragino Mincho Pro}[Renderer=AAT,Vertical=RotatedGlyphs]
\rotatebox{-90}{\verttext}% requires the graphicx package
-\end{Xexample}
+\end{Verbatim}
No actual provision is made for typesetting top-to-bottom
languages; for an example of how to do this, see the vertical Chinese
@@ -259,10 +257,10 @@ options: \opt{Off},
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec-example.tex b/macros/unicodetex/latex/fontspec/fontspec-example.tex
index bf2831b134..2da077d1d9 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-example.tex
+++ b/macros/unicodetex/latex/fontspec/fontspec-example.tex
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-example.tex -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-example.tex -- part of FONTSPEC <latex3.github.io/fontspec>
\documentclass{article}
diff --git a/macros/unicodetex/latex/fontspec/fontspec-lua.dtx b/macros/unicodetex/latex/fontspec/fontspec-lua.dtx
index 09e123a053..a49ea3fd4f 100644
--- a/macros/unicodetex/latex/fontspec/fontspec-lua.dtx
+++ b/macros/unicodetex/latex/fontspec/fontspec-lua.dtx
@@ -1,4 +1,4 @@
-%%^^A%% fontspec-lua.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec-lua.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
%
% \section{Lua module}
%
@@ -87,10 +87,10 @@ end
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec.dtx b/macros/unicodetex/latex/fontspec/fontspec.dtx
index f73bb4edcb..f6a4a73d93 100644
--- a/macros/unicodetex/latex/fontspec/fontspec.dtx
+++ b/macros/unicodetex/latex/fontspec/fontspec.dtx
@@ -1,4 +1,4 @@
-%%^^A%% fontspec.dtx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec.dtx -- part of FONTSPEC <latex3.github.io/fontspec>
%%^^A%% Metadata for the package, including files and versioning
% \section{Package declaration}
@@ -53,7 +53,7 @@
\textsc{Will Robertson}\\
With contributions by Khaled Hosny,\\
Philipp Gesang, Joseph Wright, and others.\\
- \url{http://wspr.io/fontspec/}
+ \url{http://latex3.github.io/fontspec/}
}
%</dtx>
% \end{macrocode}
@@ -70,7 +70,7 @@
\ProvidesExplFile{fontspec.dtx}
%</dtx>
%<*fontspec>
- {2024/02/13}{2.9a}{Font selection for XeLaTeX and LuaLaTeX}
+ {2024/04/27}{2.9b}{Font selection for XeLaTeX and LuaLaTeX}
%</fontspec>
% \end{macrocode}
%
@@ -89,8 +89,8 @@
%<lua>local fontspec = fontspec
%<lua>fontspec.module = {
%<lua> name = "fontspec",
-%<lua> version = "2.9a",
-%<lua> date = "2024/02/13",
+%<lua> version = "2.9b",
+%<lua> date = "2024/04/27",
%<lua> description = "Font selection for XeLaTeX and LuaLaTeX",
%<lua> author = "Khaled Hosny, Philipp Gesang, Will Robertson",
%<lua> copyright = "Khaled Hosny, Philipp Gesang, Will Robertson",
@@ -102,10 +102,10 @@
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec.ins b/macros/unicodetex/latex/fontspec/fontspec.ins
index 00b43f9ee2..4793ff3d00 100644
--- a/macros/unicodetex/latex/fontspec/fontspec.ins
+++ b/macros/unicodetex/latex/fontspec/fontspec.ins
@@ -1,4 +1,4 @@
-%%^^A%% fontspec.ins -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec.ins -- part of FONTSPEC <latex3.github.io/fontspec>
\input fontspec.dtx\relax
\input l3docstrip.tex\relax
@@ -8,7 +8,7 @@
\let\MetaPrefix\relax
\preamble
------------------------------------------------
-The FONTSPEC package <wspr.io/fontspec>
+The FONTSPEC package <latex3.github.io/fontspec>
------------------------------------------------
Copyright 2004-2017 Will Robertson, LPPL "maintainer"
Copyright 2009-2013 Khaled Hosny
@@ -49,10 +49,10 @@ the conditions of the LaTeX Project Public License, version 1.3c or higher
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec.ltx b/macros/unicodetex/latex/fontspec/fontspec.ltx
index d6d2a2d642..edb6786c92 100644
--- a/macros/unicodetex/latex/fontspec/fontspec.ltx
+++ b/macros/unicodetex/latex/fontspec/fontspec.ltx
@@ -1,4 +1,4 @@
-%%^^A%% fontspec.ltx -- part of FONTSPEC <wspr.io/fontspec>
+%%^^A%% fontspec.ltx -- part of FONTSPEC <latex3.github.io/fontspec>
\ifdefined \XeTeXOTcountscripts \else \makeatletter
\@latex@error{^^J*** The fontspec documentation can only be typeset with `xelatex` ***\@gobble}\@ehc
@@ -26,10 +26,10 @@
% /©
% ------------------------------------------------
-% The FONTSPEC package <wspr.io/fontspec>
+% The FONTSPEC package <latex3.github.io/fontspec>
% ------------------------------------------------
-% Copyright 2022-2023 The LaTeX project
-% Copyright 2004-2022 Will Robertson, LPPL "maintainer"
+% Copyright 2022-2024 The LaTeX project, LPPL "maintainer"
+% Copyright 2004-2022 Will Robertson
% Copyright 2009-2015 Khaled Hosny
% Copyright 2013 Philipp Gesang
% Copyright 2013-2016 Joseph Wright
diff --git a/macros/unicodetex/latex/fontspec/fontspec.pdf b/macros/unicodetex/latex/fontspec/fontspec.pdf
index 6fb58328d1..70a93b184b 100644
--- a/macros/unicodetex/latex/fontspec/fontspec.pdf
+++ b/macros/unicodetex/latex/fontspec/fontspec.pdf
Binary files differ