diff options
author | Norbert Preining <norbert@preining.info> | 2024-10-22 03:03:17 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2024-10-22 03:03:17 +0000 |
commit | d6169d188e2d3ddbc7b7fdffd27357ec012c1a38 (patch) | |
tree | de0be43751f866a5a0b44f271ed356421b27014c /macros/latex/contrib | |
parent | 6c36a80687be9b4a10263a5f07169443f525a406 (diff) |
CTAN sync 202410220303
Diffstat (limited to 'macros/latex/contrib')
22 files changed, 697 insertions, 347 deletions
diff --git a/macros/latex/contrib/fontscale/CHANGELOG.md b/macros/latex/contrib/fontscale/CHANGELOG.md index 9afc31c431..98a1d81be1 100644 --- a/macros/latex/contrib/fontscale/CHANGELOG.md +++ b/macros/latex/contrib/fontscale/CHANGELOG.md @@ -7,6 +7,12 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to ## [Unreleased] +## [v3.0.1] - 2024-10-20 + +### Changed +- Improved the error message when the font size is not a positive length. +- Documentation improvements. + ## [v3.0.0] - 2024-10-05 ### Added diff --git a/macros/latex/contrib/fontscale/beery.cls b/macros/latex/contrib/fontscale/beery.cls index 22cb7c3b45..7ba1baf129 100644 --- a/macros/latex/contrib/fontscale/beery.cls +++ b/macros/latex/contrib/fontscale/beery.cls @@ -4,7 +4,7 @@ \NeedsTeXFormat{LaTeX2e}[2023-11-01] \ProvidesExplClass {beery} - {2024-10-05} + {2024-10-20} {} {} diff --git a/macros/latex/contrib/fontscale/fontscale-table-classic.tex b/macros/latex/contrib/fontscale/fontscale-table-classic.tex index a82469c3d6..e087ba0e20 100644 --- a/macros/latex/contrib/fontscale/fontscale-table-classic.tex +++ b/macros/latex/contrib/fontscale/fontscale-table-classic.tex @@ -1,4 +1,4 @@ -\ProvidesFile{fontscale-table-classic.tex}[2024-10-05] +\ProvidesFile{fontscale-table-classic.tex}[2024-10-20] \begin{table} \centering diff --git a/macros/latex/contrib/fontscale/fontscale-table-font-steps.tex b/macros/latex/contrib/fontscale/fontscale-table-font-steps.tex index d7cc9a0263..687736625e 100644 --- a/macros/latex/contrib/fontscale/fontscale-table-font-steps.tex +++ b/macros/latex/contrib/fontscale/fontscale-table-font-steps.tex @@ -1,4 +1,4 @@ -\ProvidesFile{fontscale-table-font-steps.tex}[2024-10-05] +\ProvidesFile{fontscale-table-font-steps.tex}[2024-10-20] \begin{table} \centering diff --git a/macros/latex/contrib/fontscale/fontscale-table-musical.tex b/macros/latex/contrib/fontscale/fontscale-table-musical.tex index 4a1a7d75d4..9944e9fd7a 100644 --- a/macros/latex/contrib/fontscale/fontscale-table-musical.tex +++ b/macros/latex/contrib/fontscale/fontscale-table-musical.tex @@ -1,4 +1,4 @@ -\ProvidesFile{fontscale-table-musical.tex}[2024-10-05] +\ProvidesFile{fontscale-table-musical.tex}[2024-10-20] \begin{table} \centering diff --git a/macros/latex/contrib/fontscale/fontscale.pdf b/macros/latex/contrib/fontscale/fontscale.pdf Binary files differindex 346ce21c5c..30f6c7f9f4 100644 --- a/macros/latex/contrib/fontscale/fontscale.pdf +++ b/macros/latex/contrib/fontscale/fontscale.pdf diff --git a/macros/latex/contrib/fontscale/fontscale.sty b/macros/latex/contrib/fontscale/fontscale.sty index 9f0fa3bca7..276d1b6caa 100644 --- a/macros/latex/contrib/fontscale/fontscale.sty +++ b/macros/latex/contrib/fontscale/fontscale.sty @@ -8,8 +8,8 @@ \NeedsTeXFormat{LaTeX2e}[2023-11-01] \ProvidesExplPackage {fontscale} - {2024-10-05} - {3.0.0} + {2024-10-20} + {3.0.1} {A flexible interface for setting font sizes} % l3kernel version 2023-10-10 added many 'e'-variants. @@ -186,9 +186,9 @@ } { \__fontscale_hook_selectfont_auxii: } } -% For speed, \f@size is used here instead of \l_fontscale_size_dim. The case -% where the base font size of the musical typographic scale equals the font -% size of \normalsize is optimized further. +% For speed, \__fontscale_hook_selectfont_auxii: uses \f@size instead of +% \l_fontscale_size_dim. The case where the base font size of the musical +% typographic scale equals the font size of \normalsize is optimized further. \cs_new_protected:Npn \__fontscale_hook_selectfont_auxii: { \fp_set:Nn \l_fontscale_scale_fp @@ -342,8 +342,8 @@ \msg_new:nnn { fontscale } { font-sizes-out-of-order } { The~ font~ sizes~ are~ not~ in~ the~ correct~ order~ \msg_line_context:. \\ - The~ lengths~ of~ the~ font~ sizes~ - should~ be~ ordered~ from~ \iow_char:N \\tiny~ to~ \iow_char:N \\Huge. + The~ lengths~ of~ the~ font~ sizes~ should~ be~ ordered~ from~ + \iow_char:N \\tiny~ to~ \iow_char:N \\Huge. } \msg_new:nnn { fontscale } { math-mode-warning } @@ -351,7 +351,10 @@ \msg_new:nnn { fontscale } { math-mode-error } { '#1'~ cannot~ be~ used~ in~ math~ mode~ \msg_line_context:. } \msg_new:nnn { fontscale } { font-size-out-of-bounds } - { The~ font~ size~ '#1'~ must~ be~ a~ positive~ length~ \msg_line_context:. } + { + Invalid~ font~ size~ '#1'~ \msg_line_context:. \\ + The~ font~ size~ must~ be~ a~ positive~ length. + } \msg_new:nnn { fontscale } { font-step-out-of-bounds } { Invalid~ font~ step~ '#1'~ \msg_line_context:. \\ @@ -659,7 +662,8 @@ \prg_break: } } -% Sets the font size and font baselineskip of \normalsize. +% Sets the font size and font baselineskip of \normalsize. Its font size must +% be set before doing any processing involving the font scale. \cs_new_protected:Npn \__fontscale_keys_process_normalsize: { \quark_if_no_value:NTF \l__fontscale_normalsize_size_tl @@ -895,8 +899,8 @@ % DOCUMENT COMMANDS % Defines the standard LaTeX font size commands from \tiny to \Huge and -% initializes to \normalsize. The corresponding internal functions are not used -% elsewhere in the code for compatibility with hooks such as +% initializes to \normalsize. Their internal functions are not used elsewhere +% in the code for compatibility with hooks such as % \AddToHook{cmd/<font size command>/after}{<code>}. \DeclareDocumentCommand \tiny { } { diff --git a/macros/latex/contrib/fontscale/fontscale.tex b/macros/latex/contrib/fontscale/fontscale.tex index a0f24ac157..3c755467cf 100644 --- a/macros/latex/contrib/fontscale/fontscale.tex +++ b/macros/latex/contrib/fontscale/fontscale.tex @@ -14,7 +14,7 @@ A flexible interface for setting font sizes Oliver Beery -Version 3.0.0\quad{}5 October 2024 +Version 3.0.1\quad{}20 October 2024 \section{Introduction} @@ -36,7 +36,7 @@ Version 3.0.0\quad{}5 October 2024 \item Provides additional font size commands, including setting the font size by setting the font step or font scale and setting the font size relative to the current font size using more powerful tools than the \pkg{scalefnt} and \pkg{relsize} packages (\S\ref{subsec:fontsize}). \item - For \LaTeX3 programmers, this package defines public \pkg{expl3} variables that store the font step, font scale, font size, and font baselineskip of each font size command from \cs{tiny} to \cs{Huge} and the current font step, font scale, font size, and font baselineskip (\S\ref{sec:programming}). + For \LaTeX3 programmers, this package defines public \pkg{expl3} variables that store the font step, font scale, font size, and font baselineskip of each font size command from \cs{tiny} to \cs{Huge} and the current font step, font scale, font size, and font baselineskip (\S\ref{subsec:publicvariables}). \end{itemize} \subsection{Loading the package} @@ -63,7 +63,7 @@ When loaded, this package uses \cs{normalsize} after defining and initializing t Many \LaTeX{} document classes have a font size option (e.g.\ \Key{10pt}, \Key{11pt}, \Key{12pt}) which not only changes the set of document font sizes, but also modifies additional settings such as the page layout and vertical spacing which were specifically designed to work with those font sizes. For this reason, you may want to set the document class font size option close to the font size of \cs{normalsize} set by this package. -\listheading{Internally, this package defines each font size command from \cs{tiny} to \cs{Huge} using the low\-/level font commands \cs{fontsize} and \cs{selectfont}\---they have no additional functionality beyond that of \cs{fontsize} and \cs{selectfont}, except that they:} +\listheading{This package defines each font size command from \cs{tiny} to \cs{Huge} using the low\-/level font commands \cs{fontsize} and \cs{selectfont}\---they have no additional functionality beyond that of \cs{fontsize} and \cs{selectfont}, except that they:} \begin{itemize} \item Set the kernel command \cs{@currsize} equal to the font size command. @@ -103,7 +103,13 @@ This section documents the keys provided by the \pkg{fontscale} package. This package has no package options. Set the package keys using \cs{fontscalesetup}\marg{key\-/value list} (\S\ref{subsec:fontscalesetup}). -\subsection{The typographic scale} +\subsection + {% + The key + \texorpdfstring + {\texttt{typographic-scale}} + {typographic-scale}% + } \label{subsec:typographicscale} The font sizes of the font size commands from \cs{tiny} to \cs{Huge} are initially set by the key \Key{typographic-scale}. @@ -172,7 +178,13 @@ Table~\ref{table:musical} displays the font size of each font size command when \input{./fontscale-table-musical.tex} -\subsection{The baselineskip-size-ratio} +\subsection + {% + The key + \texorpdfstring + {\texttt{baselineskip-size-ratio}} + {baselineskip-size-ratio}% + } \label{subsec:baselineskipsizeratio} The font baselineskips of the font size commands from \cs{tiny} to \cs{Huge} are initially set by the key \Key{baselineskip-size-ratio}. @@ -238,12 +250,13 @@ This section documents the commands provided by the \pkg{fontscale} package. Sets and processes the \pkg{fontscale} package keys (\S\ref{sec:keys}) in \meta{key\-/value list} and then uses \cs{normalsize}. Adding the optional star first resets all the \pkg{fontscale} package keys to their initial values. +The order of the keys in \meta{key\-/value list} does not affect how the keys are processed (unless a key is set more than once). Can be used mid\-/document. The effect is local to the current group. Does nothing, except issue a warning, if used in math mode. \cs{fontscalesetup} should typically be used only once in the preamble or omitted if the user is satisfied with the initial font sizes and font baselineskips. -\subsection{Expandable commands} +\subsection{Expandable font size parameters} \label{subsec:expandable} \cs{CurrentFontStep} @@ -256,6 +269,7 @@ Does nothing, except issue a warning, if used in math mode. This package provides expandable commands that expand to the current font step, font scale, font size, or font baselineskip. They can be used for printing or within calculations. +These commands do not rely on the current definition of the kernel commands \cs{f@size} and \cs{f@baselineskip}; instead, they rely on public \pkg{expl3} variables that are set in the \texttt{selectfont} hook (\S\ref{subsec:publicvariables}). For clarity, \cs{CurrentFontStep} will be explained in detail. If the current font size equals the font size of any font size command from \cs{tiny} to \cs{Huge}, then \cs{CurrentFontStep} expands to the font step of that font size command (Table~\ref{table:fontsteps}). @@ -378,16 +392,13 @@ This section documents the \pkg{expl3} programming support provided by the \pkg{ \cs{text_purify:n} will correctly remove the formatting commands defined by this package, including the commands documented in \S\ref{subsec:fontscalesetup}, \S\ref{subsec:fontsize}, and \S\ref{subsec:setfontbaselineskip}. -\subsection{Public functions and variables} -\label{subsec:publicexpl3} +\subsection{Public functions} +\label{subsec:publicfunctions} This package does not define any public \pkg{expl3} functions. -This package defines public \pkg{expl3} variables that store the font step, font scale, font size, and font baselineskip of each font size command from \cs{tiny} to \cs{Huge}. -These variables, excluding the constants, are set by \cs{fontscalesetup}. -They should never be modified directly. - -Each takes the form: +\subsection{Public variables} +\label{subsec:publicvariables} \verb|\c_fontscale_|\meta{font size command}\verb|_step_fp| \nopagebreak\newline @@ -397,12 +408,11 @@ Each takes the form: \nopagebreak\newline \verb|\l_fontscale_|\meta{font size command}\verb|_baselineskip_skip| +Stores the font step, font scale, font size, and font baselineskip of each font size command from \cs{tiny} to \cs{Huge}. Exception: \cs{l_fontscale_normalsize_scale_fp} is not defined. The font scale of \cs{normalsize} is stored in \cs{c_fontscale_normalsize_scale_fp}. - -This package also defines public \pkg{expl3} variables that store the current font step, font scale, font size, and font baselineskip. -These variables are set in the \texttt{selectfont} hook. +These variables, excluding the constants, are set by \cs{fontscalesetup}. They should never be modified directly. \cs{l_fontscale_step_fp} @@ -413,7 +423,10 @@ They should never be modified directly. \nopagebreak\newline \cs{l_fontscale_baselineskip_skip} +Stores the current font step, font scale, font size, and font baselineskip. \cs{l_fontscale_step_fp} equals \texttt{nan} (not a number) if the current font step is undefined (as explained for \cs{CurrentFontStep} in \S\ref{subsec:expandable}). +These variables are set in the \texttt{selectfont} hook. +They should never be modified directly. \end{document}
\ No newline at end of file diff --git a/macros/latex/contrib/keytheorems/CHANGELOG.md b/macros/latex/contrib/keytheorems/CHANGELOG.md index 5852ed8c35..de5d3ac354 100644 --- a/macros/latex/contrib/keytheorems/CHANGELOG.md +++ b/macros/latex/contrib/keytheorems/CHANGELOG.md @@ -1,11 +1,15 @@ # Changelog for keytheorems package +## [v0.1.8] +- add support for tagged PDF ([\#4](https://github.com/mbertucci47/keytheorems/issues/4)) +- add tagged example file tagged-keytheorems-amsthmtest.tex + ## [v0.1.7] - add support for aomart class - add support for Michael Sharpe's font packages that change plain style ## [v0.1.6] -- add `\renewkeytheorem`, `\providekeytheorem`, and `\declarekeytheorem` +- add `\renewkeytheorem`, `\providekeytheorem`, and `\declarekeytheorem` ([\#5](https://github.com/mbertucci47/keytheorems/issues/5)) - tcolorbox theorems no longer error with beamer - add support for beamer action spec @@ -40,7 +44,8 @@ ## 0.1.0 - 2024-09-04 - First release -[unreleased]: https://github.com/mbertucci47/keytheorems/compare/v0.1.6...develop +[v0.1.8]: https://github.com/mbertucci47/keytheorems/compare/v0.1.7...v0.1.8 +[v0.1.7]: https://github.com/mbertucci47/keytheorems/compare/v0.1.6...v0.1.7 [v0.1.6]: https://github.com/mbertucci47/keytheorems/compare/v0.1.5...v0.1.6 [v0.1.5]: https://github.com/mbertucci47/keytheorems/compare/v0.1.4...v0.1.5 [v0.1.4]: https://github.com/mbertucci47/keytheorems/compare/v0.1.3...v0.1.4 diff --git a/macros/latex/contrib/keytheorems/README.md b/macros/latex/contrib/keytheorems/README.md index 086ead096b..a28247e596 100644 --- a/macros/latex/contrib/keytheorems/README.md +++ b/macros/latex/contrib/keytheorems/README.md @@ -618,7 +618,7 @@ bla ``` ### new theorem styles do not preserve "plain" keys -With keytheorems, this is handled only for the AMS classes and acmart. +With keytheorems, this is handled only for the AMS classes, acmart, aomart, and jlreq. ```tex \documentclass{amsbook} \usepackage{thmtools} diff --git a/macros/latex/contrib/keytheorems/doc/keytheorems-doc.pdf b/macros/latex/contrib/keytheorems/doc/keytheorems-doc.pdf Binary files differindex 630c52493f..59baedc317 100644 --- a/macros/latex/contrib/keytheorems/doc/keytheorems-doc.pdf +++ b/macros/latex/contrib/keytheorems/doc/keytheorems-doc.pdf diff --git a/macros/latex/contrib/keytheorems/doc/keytheorems-doc.tex b/macros/latex/contrib/keytheorems/doc/keytheorems-doc.tex index 466338a75e..2af490c35e 100644 --- a/macros/latex/contrib/keytheorems/doc/keytheorems-doc.tex +++ b/macros/latex/contrib/keytheorems/doc/keytheorems-doc.tex @@ -1065,7 +1065,7 @@ You \emph{must} use these commands rather than the aforementioned because the |. \begin{docCommand}{addtotheoremhook} {\oarg{env name}\marg{hook name}\marg{code}} -\meta{hook name} can be \hook{prehead}, \hook{posthead}, \hook{prefoot}, \hook{postfoot}, or \hook{restated}. +The \meta{hook name} can be \hook{prehead}, \hook{posthead}, \hook{prefoot}, \hook{postfoot}, or \hook{restated}. If no \meta{env name} is given, the \meta{code} is added to the ``generic'' hook, i.e. applied to all theorems. As in \pkg{thmtools}, the order of hooks is as follows: @@ -1096,11 +1096,12 @@ As in \pkg{thmtools}, the order of hooks is as follows: \tcbox{generic\\ \hook{postfoot}} \tcbox{\meta{env name}\\ \hook{postfoot}} \end{center} -The \hook{restated} hook is applied at the start of theorems retrieved with the command \cs{getkeytheorem}, before the \hook{prehead} hook. +The \hook{restated} hook is applied at the start of theorems retrieved with the command \cs{getkeytheorem}, after the \hook{prehead} hook. This can be useful for disabling commands such as \cs{footnote} in the restated theorems, e.g. \begin{dispListing} \addtotheoremhook{restated}{\renewcommand\footnote[2][]{}} \end{dispListing} + By default, \pkg{keytheorems} disables the \cs{label} and \cs{RecordProperties} commands in restated theorems. In \pkg{thmtools}, the \hook{prefoot} and \hook{postfoot} hooks always prepend code, i.e. the code @@ -1143,20 +1144,43 @@ User feedback is necessary to make this code fully compatible. Please report iss \subsection{Support for other classes} \label{class-support} -As mentioned in \autoref{thmstyles}, the initial style key values set by \pkg{keytheorems} are adjusted for the AMS classes \cls{amsart}, \cls{amsbook}, and \cls{amsproc}, as well as the \cls{amsart}-based \cls{acmart} and \cls{aomart}. You can find the exact changed values in the support files \texttt{keythms-\meta{class}-support.tex}. +As mentioned in \autoref{thmstyles}, the initial style key values set by \pkg{keytheorems} are adjusted for the AMS classes \cls{amsart}, \cls{amsbook}, and \cls{amsproc}, the \cls{amsart}-based \cls{acmart} and \cls{aomart}, and \cls{jlreq}. You can find the exact changed values in the support files \texttt{keythms-\meta{class}-support.tex}. These class support files also contain code to adapt to class' formatting of lists-of as mentioned in \autoref{listingthms}; changes are made for the AMS classes, \cls{memoir}, \cls{IEEEtran}, and \cls{jlreq}. \subsection{Support for font packages} Some font packages, all by Michael Sharpe, offer a |theoremfont| option that redefines the |plain| style body font to have italic text with upright figures, punctuation, and delimiters. \pkg{keytheorems} detects this option and sets its initial style values accordingly. The supported packages are \pkg{baskervillef}, \pkg{cochineal}, \pkg{libertinust1math}, \pkg{newpxtext}, \pkg{newtxtext}, \pkg{scholax}, and \pkg{XCharter}. - + +\subsection{Support for tagged PDF} + +The \LaTeX{} team has been working hard to support the creation of tagged PDFs (see \url{https://latex3.github.io/tagging-project/}). +The current |dev| formats make \pkg{amsthm} compatible with the kernel tagging code. +Most of \pkg{keytheorems} is supported too, and anything that doesn't work should be reported. +The only things explicitly not supported are the \refKey{tcolorbox} and \refKey{tcolorbox-no-titlebar} keys. + +To produce a tagged PDF, add \cs{DocumentMetadata} in the first line of your document (additional instructions are found on the Tagging Project \href{https://latex3.github.io/tagging-project/documentation/prototype-usage-instructions.html}{website}). +An example invocation might look like + +\begin{dispListing} +\DocumentMetadata + { + lang=en-US, + pdfversion=2.0, + pdfstandard=ua-2, + testphase={phase-III,math,table,title,firstaid} + } +\end{dispListing} + +At a minimum, the |testphase| modules |phase-III| and |firstaid| are required. +The GitHub tests folder contains an example of a tagged PDF using \pkg{keytheorems}: \href{https://github.com/mbertucci47/keytheorems/blob/main/tests/tagged-keytheorems-amsthmtest.tex}{\texttt{tagged-keytheorems-amsthmtest.tex}}. + \subsection{Public coding interfaces} \begin{itemize} \item |\l_keythms_thmuse_envname_tl| - Inside theorem environments, as well as in all of the theorem hooks, you have access to the theorem's environment and counter name in this token list variable. + Inside theorem environments and in all theorem hooks, you have access to the theorem's environment and counter name in this token list variable. \end{itemize} \section{Further examples} diff --git a/macros/latex/contrib/keytheorems/tex/class-support/keythms-beamer-support.tex b/macros/latex/contrib/keytheorems/tex/class-support/keythms-beamer-support.tex index 7e68b4306f..7500327148 100644 --- a/macros/latex/contrib/keytheorems/tex/class-support/keythms-beamer-support.tex +++ b/macros/latex/contrib/keytheorems/tex/class-support/keythms-beamer-support.tex @@ -4,7 +4,17 @@ \ProvidesExplFile{keythms-beamer-support}{\@keythms@date}{\@keythms@version} {keytheorems~support~for~the~beamer~class} -% do nothing if noamsthm loaded +% disable \listofkeytheorems, add warning +\msg_new:nnn { keytheorems } { beamer-listof } + { + \protect\listofkeytheorems\space not~supported~with~beamer + } +\RenewDocumentCommand \listofkeytheorems { o } + { + \msg_warning:nn { keytheorems } { beamer-listof } + } + +% besides above, do nothing if noamsthm loaded \IfClassLoadedWithOptionsT{ beamer }{ noamsthm }{ \file_input_stop: } \keys_define:nn { keytheorems/thmstyle } @@ -68,7 +78,6 @@ \DeclareEnvironmentCopy { keythms_orig_#1 } { #1 } \DeclareDocumentEnvironment { keythms_beamer_grab_#1 } { m m m +b } { % ##1 = keys, ##2 = note, ##3 = action spec, ##4 = theorem body - \__keythms_thm_prehead_code:n { #1 } \tl_if_empty:nTF { ##3 } { \begin{keythms_orig_#1}[{##2}] } { \begin{keythms_orig_#1}[{##2}]<##3> } @@ -96,7 +105,7 @@ { c__keythms_storeatbegin_ \l__keythms_thmuse_storereversed_tl _restatecounters_tl } { \bool_set_true:N \l__keythms_thmuse_restating_bool - \exp_args:NNe \prop_set_from_keyval:Nn \l__keythms_restate_counters_prop + \prop_set_from_keyval:Ne \l__keythms_restate_counters_prop { \tl_use:c { c__keythms_storeatbegin_ \l__keythms_thmuse_storereversed_tl _restatecounters_tl } } \prop_map_inline:Nn \l__keythms_restate_counters_prop { @@ -124,12 +133,11 @@ } } { - \msg_warning:nne { keytheorems } { store-reversed-not-got } - { \l__keythms_thmuse_storereversed_tl } + \msg_warning:nnV { keytheorems } { store-reversed-not-got } + \l__keythms_thmuse_storereversed_tl } \hook_use:n { keytheorems/#1/restated } \hook_use:n { keytheorems/allthms/restated } - \__keythms_thm_prehead_code:n { #1 } \tl_if_empty:nTF { ##3 } { \begin{keythms_orig_#1}[{##2}] } { \begin{keythms_orig_#1}[{##2}]<##3> } @@ -160,17 +168,15 @@ { % \bool_gset_true:N \g__keythms_listof_writefile_bool % disable writing to file \cs_set_eq:NN \__keythms_beamer_withhooks_begin:nnnn \__keythms_beamer_grab_begin:nnnn - \cs_set_eq:NN \__keythms_beamer_withhooks_begin:nnVn \__keythms_beamer_grab_begin:nnVn \cs_set_eq:NN \__keythms_beamer_withhooks_end:n \__keythms_beamer_grab_end:n } \tl_if_empty:NF \l__keythms_thmuse_storereversed_tl { % \bool_gset_true:N \g__keythms_listof_writefile_bool % disable writing to file \cs_set_eq:NN \__keythms_beamer_withhooks_begin:nnnn \__keythms_beamer_grabreversed_begin:nnnn - \cs_set_eq:NN \__keythms_beamer_withhooks_begin:nnVn \__keythms_beamer_grabreversed_begin:nnVn \cs_set_eq:NN \__keythms_beamer_withhooks_end:n \__keythms_beamer_grabreversed_end:n } - \__keythms_thm_prehead_continues_code:n { #1 } + \__keythms_thm_prehead_code:n { #1 } \tl_if_empty:nTF { ##3 } { % if ##3 empty, just pass ##1 and withhooks_begin will check if empty \__keythms_beamer_withhooks_begin:nnVn { #1 } { ##2 } @@ -231,7 +237,6 @@ \cs_new_protected:Npn \__keythms_beamer_withhooks_begin:nnnn #1#2#3#4 { % #1 = theorem name, #2 = keys, #3 = note, #4 = action spec - \__keythms_thm_prehead_code:n { #1 } \tl_if_empty:nTF { #4 } { \begin{keythms_orig_#1}[{#3}] } { \begin{keythms_orig_#1}[{#3}]<#4> } @@ -261,14 +266,36 @@ \cs_set_eq:NN \__keythms_thm_addcontentsdata:nnnn \use_none:nnnn \cs_set_eq:NN \__keythms_thm_addstoredreverseddata:nnn \use_none:nnn -% disable \listofkeytheorems, add warning -\msg_new:nnn { keytheorems } { beamer-listof } +\cs_new_protected:Npn \__keythms_beamer_reversedauxdata:nnnn #1#2#3#4 { - \protect\listofkeytheorems\space not~supported~with~beamer + \iow_shipout:Ne \@auxout + { + \KeyThmsBeamerReversedData { \l__keythms_thmuse_storereversed_tl } + { \@currentlabel } + { #2 } + } } -\RenewDocumentCommand \listofkeytheorems { o } +\cs_new_protected:Npn \KeyThmsBeamerReversedData #1#2#3 { - \msg_warning:nn { keytheorems } { beamer-listof } + \tl_if_exist:cF { c__keythms_storeatbegin_#1_label_tl } + { + \tl_const:cn { c__keythms_storeatbegin_#1_label_tl } { #2 } + } + \tl_if_exist:cF { c__keythms_storeatbegin_#1_restatecounters_tl } + { + \tl_const:cn { c__keythms_storeatbegin_#1_restatecounters_tl } { #3 } + } + \bool_if_exist:cF { g__keythms_restate_#1_called_bool } + { \bool_new:c { g__keythms_restate_#1_called_bool } } + } +\cs_new_eq:NN \__keythms_ORIGgetthmreversed_theorem:nnn + \__keythms_getthmreversed_theorem:nnn +\cs_set_protected:Npn \__keythms_getthmreversed_theorem:nnn #1#2#3 + { + \group_begin: + \cs_set_eq:NN \__keythms_thm_addcontentsdata:nnnn \__keythms_beamer_reversedauxdata:nnnn + \__keythms_ORIGgetthmreversed_theorem:nnn { #1 } { #2 } { #3 } + \group_end: } % restatable and restatable* environments need redefinition @@ -291,6 +318,15 @@ } \RenewDocumentEnvironment { restatable* } { O{} m m } { + \cs_set_protected:Npn \__keythms_thm_tempstorerestatedatareversed:nnn ##1##2##3 + { + \tl_gset:Ne \g__keythms_thmuse_temprestatedatareversed_tl % needs to be global to get out of env + { + { ##1 } + { store*=\l__keythms_thmuse_storereversed_tl,\exp_not:n { ##2 } } + { \exp_not:n { ##3 } } + } + } % set store* outside [] so keyless note is recognized \keys_set:nn { keytheorems/thmuse } { store*=#3 } \begin{#2}[#1] diff --git a/macros/latex/contrib/keytheorems/tex/keytheorems.sty b/macros/latex/contrib/keytheorems/tex/keytheorems.sty index f1e33f14d9..e1483782d9 100644 --- a/macros/latex/contrib/keytheorems/tex/keytheorems.sty +++ b/macros/latex/contrib/keytheorems/tex/keytheorems.sty @@ -2,8 +2,8 @@ % Please report all issues and feature requests at https://github.com/mbertucci47/keytheorems % This work is licensed under the LPPL version 1.3c or later: https://www.latex-project.org/lppl.txt \NeedsTeXFormat{LaTeX2e}[2023-06-01] -\def\@keythms@date{2024-10-10} -\def\@keythms@version{0.1.7} +\def\@keythms@date{2024-10-21} +\def\@keythms@version{0.1.8} \ProvidesExplPackage{keytheorems}{\@keythms@date}{\@keythms@version} {l3keys interface to amsthm} @@ -125,6 +125,7 @@ %%% Declare Variables %%% %%%%%%%%%%%%%%%%%%%%%%%%% +\iow_new:N \g__keythms_tmpa_iow \tl_new:N \l__keythms_tmpa_tl \bool_new:N \g__keythms_listof_writefile_bool @@ -138,7 +139,6 @@ \bool_new:N \l__keythms_thmuse_restating_bool \clist_new:N \g__keythms_restatecounters_clist \clist_new:N \l__keythms_thmstyle_savedkeys_clist -\iow_new:N \g__keythms_listof_stream \prop_new:N \g__keythms_thmnames_prop \prop_new:N \g__keythms_thmstyle_defaultkeys_prop \prop_new:N \g__keythms_thmuse_othercounters_prop @@ -168,6 +168,8 @@ \cs_generate_variant:Nn \hook_gput_code:nnn { nnv } \cs_generate_variant:Nn \keys_precompile:nnN { nv, nVc, nnc, ne } +\cs_generate_variant:Nn \prop_set_from_keyval:Nn { Ne } +\prg_generate_conditional_variant:Nnn \tl_if_novalue:n { o } { T, F, TF } %%%%%%%%%%%%%% %%% Styles %%% @@ -209,12 +211,24 @@ headstyle / margin .code:n = { \cs_set:Nn \keythms_thmstyle_headcmd:nnn - { \makebox[0pt][r]{\thmnumber{ ##2 ~ }}\NAME\NOTE } + { + \makebox[0pt][r]{ + \keythms_thmstyle_thmnumber:n { + \group_begin: \exp_not:V \l__keythms_thmstyle_numberfont_tl + ##2 ~ \group_end: } + } + \NAME\NOTE + } }, headstyle / swapnumber .code:n = { \cs_set:Nn \keythms_thmstyle_headcmd:nnn - { \thmnumber{ ##2 ~ }\NAME\NOTE } + { + \keythms_thmstyle_thmnumber:n { + \group_begin: \exp_not:V \l__keythms_thmstyle_numberfont_tl + ##2 ~ \group_end: } + \NAME\NOTE + } }, headstyle / unknown .cs_set:Np = \keythms_thmstyle_headcmd:nnn #1#2#3, inherit-style .choice:, @@ -245,7 +259,7 @@ preheadhook .code:n = \keythms_thmstyle_savethmkey_reqval:n { #1 }, qed .code:n = { % qed needs special treatment to distinguish qed from qed={} - \exp_args:No \tl_if_novalue:nTF { #1 } + \tl_if_novalue:oTF { #1 } { \clist_put_right:No \l__keythms_thmstyle_savedkeys_clist { \l_keys_key_str } @@ -376,17 +390,17 @@ \l__keythms_thmstyle_postheadspace_tl { \text_expand:n { \keythms_thmstyle_headcmd:nnn{##1}{##2}{##3} } } % Define inherit-style key - \tl_if_exist:cF { l__keythms_thmstyle_ #1 _metakeys_tl } - { \tl_new:c { l__keythms_thmstyle_ #1 _metakeys_tl } } + \tl_if_exist:cF { l__keythms_thmstyle_#1_metakeys_tl } + { \tl_new:c { l__keythms_thmstyle_#1_metakeys_tl } } \keys_precompile:nnc { keytheorems/thmstyle } { #2 } % use precompile instead of meta key - { l__keythms_thmstyle_ #1 _metakeys_tl } % because that's sensitive to hashes + { l__keythms_thmstyle_#1_metakeys_tl } % because that's sensitive to hashes \keys_define:nn { keytheorems/thmstyle } % and we want to allow both # and ## - { inherit-style / #1 .code:n = \tl_use:c { l__keythms_thmstyle_ #1 _metakeys_tl } } - \tl_if_exist:cF { l__keythms_thmstyle_ #1 _savedthmkeys_tl } - { \tl_new:c { l__keythms_thmstyle_ #1 _savedthmkeys_tl } } + { inherit-style / #1 .code:n = \tl_use:c { l__keythms_thmstyle_#1_metakeys_tl } } + \tl_if_exist:cF { l__keythms_thmstyle_#1_savedthmkeys_tl } + { \tl_new:c { l__keythms_thmstyle_#1_savedthmkeys_tl } } \keys_precompile:nVc { keytheorems/thm } \l__keythms_thmstyle_savedkeys_clist - { l__keythms_thmstyle_ #1 _savedthmkeys_tl } + { l__keythms_thmstyle_#1_savedthmkeys_tl } \cs_undefine:N \NAME % undefine to prevent conflicts \cs_undefine:N \NUMBER \cs_undefine:N \NOTE @@ -764,12 +778,12 @@ { % #1 = name, #2 = symbol \tl_gput_right:cn { g__keythms_thm_postheadfromkeys_#1_tl } { - \exp_args:No \tl_if_novalue:nF { #2 } { \protected@edef\qedsymbol{#2} } + \tl_if_novalue:oF { #2 } { \protected@edef\qedsymbol{#2} } \pushQED{\qed} } \tl_gput_left:cn { g__keythms_thm_prefootfromkeys_#1_tl } { - \exp_args:No \tl_if_novalue:nF { #2 } { \protected@edef\qedsymbol{#2} } + \tl_if_novalue:oF { #2 } { \protected@edef\qedsymbol{#2} } \popQED } } @@ -942,7 +956,6 @@ \DeclareEnvironmentCopy { keythms_orig_#1 } { #1 } \DeclareDocumentEnvironment { keythms_grab_#1 } { m m +b } { % ##1 = keys, ##2 = note, ##3 = theorem body - \__keythms_thm_prehead_code:n { #1 } \begin{keythms_orig_#1}[{##2}] \clist_map_inline:Nn \g__keythms_restatecounters_clist { @@ -968,7 +981,7 @@ { c__keythms_storeatbegin_ \l__keythms_thmuse_storereversed_tl _restatecounters_tl } { \bool_set_true:N \l__keythms_thmuse_restating_bool - \exp_args:NNe \prop_set_from_keyval:Nn \l__keythms_restate_counters_prop + \prop_set_from_keyval:Ne \l__keythms_restate_counters_prop { \tl_use:c { c__keythms_storeatbegin_ \l__keythms_thmuse_storereversed_tl _restatecounters_tl } } \prop_map_inline:Nn \l__keythms_restate_counters_prop { @@ -996,12 +1009,11 @@ } } { - \msg_warning:nne { keytheorems } { store-reversed-not-got } - { \l__keythms_thmuse_storereversed_tl } + \msg_warning:nnV { keytheorems } { store-reversed-not-got } + \l__keythms_thmuse_storereversed_tl } \hook_use:n { keytheorems/#1/restated } \hook_use:n { keytheorems/allthms/restated } - \__keythms_thm_prehead_code:n { #1 } \begin{keythms_orig_#1}[{##2}] \__keythms_thm_posthead_code:n { #1 } % below needs to come after posthead so that correct \@currentHref @@ -1030,17 +1042,15 @@ { \bool_gset_true:N \g__keythms_listof_writefile_bool \cs_set_eq:NN \__keythms_withhooks_begin:nnn \__keythms_grab_begin:nnn - \cs_set_eq:NN \__keythms_withhooks_begin:nnV \__keythms_grab_begin:nnV \cs_set_eq:NN \__keythms_withhooks_end:n \__keythms_grab_end:n } \tl_if_empty:NF \l__keythms_thmuse_storereversed_tl { \bool_gset_true:N \g__keythms_listof_writefile_bool \cs_set_eq:NN \__keythms_withhooks_begin:nnn \__keythms_grabreversed_begin:nnn - \cs_set_eq:NN \__keythms_withhooks_begin:nnV \__keythms_grabreversed_begin:nnV \cs_set_eq:NN \__keythms_withhooks_end:n \__keythms_grabreversed_end:n } - \__keythms_thm_prehead_continues_code:n { #1 } + \__keythms_thm_prehead_code:n { #1 } \__keythms_withhooks_begin:nnV { #1 } { ##1 } \l__keythms_thmuse_note_tl } { @@ -1092,9 +1102,9 @@ } \cs_new:Npn \__keythms_use_iii_v_braced:nnnnn #1#2#3#4#5 { {#3}{#5} } +% withhooks_begin does not include prehead hook because we want to be able to access note \cs_new_protected:Npn \__keythms_withhooks_begin:nnn #1#2#3 { % #1 = theorem name, #2 = keys, #3 = note - \__keythms_thm_prehead_code:n { #1 } \begin{keythms_orig_#1}[{#3}] \__keythms_thm_posthead_code:n { #1 } \__keythms_thm_addcontentsdata:nnnn { #1 } { } { #2 } { } @@ -1127,14 +1137,9 @@ \cs_generate_variant:Nn \__keythms_orig_begin:nn { nV } \cs_new_protected:Npn \__keythms_orig_end:n #1 { \end{keythms_orig_#1} } -\cs_new_protected:Npn \__keythms_thm_prehead_code:n #1 - { % #1 = theorem name - \hook_use:n { keytheorems/#1/prehead } - \hook_use:n { keytheorems/allthms/prehead } - } -%% this below has to be separate from prehead_code above since we need to add +%% this below has to be separate from withhooks_begin above since we need to add %% continues-code to note before retrieving it in \__keythms_withhooks_begin:nnV -\cs_new_protected:Npn \__keythms_thm_prehead_continues_code:n #1 +\cs_new_protected:Npn \__keythms_thm_prehead_code:n #1 { % #1 = theorem name \tl_if_empty:NF \l__keythms_thmuse_contlabel_tl { @@ -1150,6 +1155,8 @@ \cs_set_eq:cN { theH #1 } \theHkeythms_continues_dummyctr %\cs_set_eq:NN \setuniqmark \use_none:n % not the right fix } + \hook_use:n { keytheorems/#1/prehead } + \hook_use:n { keytheorems/allthms/prehead } } \cs_new_protected:Npn \__keythms_thm_posthead_code:n #1 { % #1 = theorem name @@ -1307,13 +1314,13 @@ \cs_set_protected:Npn \KeyThmsSavedTheoremReversed #1#2#3#4 { \bool_new:c { g__keythms_restate_#1_called_bool } - \cs_gset:cpn { __keythms_getthm_ #1 _theorem } + \cs_gset:cpn { __keythms_getthm_#1_theorem } { \__keythms_getthmreversed_theorem:nnn { #2 } { #3 } { #4 } } \hook_gput_code:nnn { begindocument/end } { . } { - \cs_if_exist:cF { __keythms_getthm_ #1 _body } + \cs_if_exist:cF { __keythms_getthm_#1_body } { - \cs_new_protected:cpn { __keythms_getthm_ #1 _body } + \cs_new_protected:cpn { __keythms_getthm_#1_body } { \textbf{??} \msg_warning:nnn { keytheorems } { restate-body-never-got } { #1 } @@ -1373,10 +1380,9 @@ \tl_set:Nn \l_keythms_thmuse_envname_tl { #1 } \keys_set:nn { keytheorems/thmuse } { #4 } \keys_set:no { keytheorems/thmuse } { \l__keythms_thmuse_restatekeys_clist } + \__keythms_thm_prehead_code:n { #1 } \hook_use:n { keytheorems/#1/restated } \hook_use:n { keytheorems/allthms/restated } - \__keythms_thm_prehead_continues_code:n { #1 } - \__keythms_thm_prehead_code:n { #1 } \__keythms_orig_begin:nV { #1 } \l__keythms_thmuse_note_tl \__keythms_thm_posthead_code:n { #1 } #5 @@ -1407,7 +1413,7 @@ { \use:c { the ##1 } . \theHkeythms_restate_dummyctr } } \refstepcounter{keythms_restate_dummyctr} - \hook_use:n { keytheorems/#1/restated } + % \hook_use:n { keytheorems/#1/restated } % FIX! \hook_use:n { keytheorems/allthms/restated } #2 \prop_map_inline:Nn \l__keythms_restate_counters_prop @@ -1425,7 +1431,6 @@ \tl_set:Nn \l_keythms_thmuse_envname_tl { #1 } \keys_set:nn { keytheorems/thmuse } { #2 } \keys_set:no { keytheorems/thmuse } { \l__keythms_thmuse_restatekeys_clist } - \__keythms_thm_prehead_continues_code:n { #1 } \__keythms_thm_prehead_code:n { #1 } \__keythms_orig_begin:nV { #1 } \l__keythms_thmuse_note_tl \clist_map_inline:Nn \g__keythms_restatecounters_clist @@ -1780,6 +1785,9 @@ { #4 }{ #3 } } +\NewDocumentCommand \__keythms_listof_pagerefnolink:w { s m } + { \getpagerefnumber{#2} } % tagging does not like links within link + % NOTE: We still need to do this setup for [print-body] so that onlynamed works \cs_new_protected:Npn \__keythms_listof_listcmd_setup:nn #1#2 { % #1 = keys, #2 = list command @@ -1803,6 +1811,7 @@ { \__keythms_thmuse_continues:V \l__keythms_listofheading_contlabel_tl } + \cs_set_eq:NN \pageref \__keythms_listof_pagerefnolink:w % always no link #2 } } @@ -1862,8 +1871,8 @@ { % if .thlist file left over from previous run but not needed, clear it \file_if_exist:nT { \c_sys_jobname_str.thlist } { - \iow_open:Nn \g_tmpa_iow { \c_sys_jobname_str.thlist } - \iow_close:N \g_tmpa_iow + \iow_open:Nn \g__keythms_tmpa_iow { \c_sys_jobname_str.thlist } + \iow_close:N \g__keythms_tmpa_iow } } } @@ -2056,6 +2065,15 @@ { \exp_not:n { ####3 } } } } + } % and this because otherwise adds an extra run; not needed for unstarred + \cs_set_protected:Npn \__keythms_thm_tempstorerestatedatareversed:nnn ####1####2####3 + { + \tl_gset:Ne \g__keythms_thmuse_temprestatedatareversed_tl % needs to be global to get out of env + { + { ####1 } + { store*=\l__keythms_thmuse_storereversed_tl,\exp_not:n { ####2 } } + { \exp_not:n { ####3 } } + } } % set store* outside [] so keyless note is recognized \keys_set:nn { keytheorems/thmuse } { store*=##3 } @@ -2387,7 +2405,6 @@ \cs_new_protected:Npn \__keythms_storeall_code: { \cs_set_eq:NN \__keythms_withhooks_begin:nnn \__keythms_grab_begin:nnn - \cs_set_eq:NN \__keythms_withhooks_begin:nnV \__keythms_grab_begin:nnV \cs_set_eq:NN \__keythms_withhooks_end:n \__keythms_grab_end:n } @@ -2519,4 +2536,43 @@ } \__keythms_support_fontpkg:nn { scholax } { bodyfont = \thfamily } +%%%%%%%%%%%%%%%%%%%%%%% +%%% Tagging Support %%% +%%%%%%%%%%%%%%%%%%%%%%% + +\IfDocumentMetadataTF + { + \tag_if_active:T + { + \msg_new:nnn { keytheorems } { tcolorbox-tagging } + { + The~key~'tcolorbox'~does~not~currently~work~with~ + tagging.~Ignoring~this~key. + } + \keys_define:nn { keytheorems/thm } + { + tcolorbox .code:n = + \msg_warning:nn { keytheorems } { tcolorbox-tagging }, + } + \keys_define:nn { keytheorems/listof } + { + print-body .code:n = + { + \cs_set_protected:Nn \keythms_listof_listcmd:nnnnnnn + { + \tl_if_empty:nF { ##7 } + { + \__keythms_getthm_theorem:nnnnn + {##1}{##2}{##5}{##6}{##7} + } + } + % with tagging, make \@starttoc same as input + \cs_set_protected:Npn \@starttoc ##1 + { \makeatletter \@input { \jobname.##1 } } + }, + } + } + } + { } + \file_input_stop:
\ No newline at end of file diff --git a/macros/latex/contrib/llncs/README.md b/macros/latex/contrib/llncs/README.md index 6725e4cb19..23f2d39967 100644 --- a/macros/latex/contrib/llncs/README.md +++ b/macros/latex/contrib/llncs/README.md @@ -1,6 +1,6 @@ # llncs -_2024/01/29 v2.24_ +_2024/10/21 v2.25_ Copyright (c) 1996-2024 Springer diff --git a/macros/latex/contrib/llncs/history.txt b/macros/latex/contrib/llncs/history.txt index c58f6f446b..b7d0f90d46 100644 --- a/macros/latex/contrib/llncs/history.txt +++ b/macros/latex/contrib/llncs/history.txt @@ -2,6 +2,8 @@ Version history for the LLNCS LaTeX2e class date filename version action/reason/acknowledgements ---------------------------------------------------------------------------- +21.10.24 llncs.cls 2.25 more bugfixes for the babel language switches + 29.01.24 llncs.cls 2.24 bugfixes for options envcountsame and envcountsect 02.11.23 llncs.cls 2.23 \ackname changed from "Acknowledgements" (BE) to diff --git a/macros/latex/contrib/llncs/llncs.cls b/macros/latex/contrib/llncs/llncs.cls index ea17bb35f5..e2e2225282 100644 --- a/macros/latex/contrib/llncs/llncs.cls +++ b/macros/latex/contrib/llncs/llncs.cls @@ -1,4 +1,4 @@ -% LLNCS DOCUMENT CLASS -- version 2.24 (29-Jan-2024) +% LLNCS DOCUMENT CLASS -- version 2.25 (21-Oct-2024) % Springer Verlag LaTeX2e support for Lecture Notes in Computer Science % %% @@ -19,7 +19,7 @@ %% Right brace \} Tilde \~} %% \NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesClass{llncs}[2024/01/29 v2.24 +\ProvidesClass{llncs}[2024/10/21 v2.25 ^^J LaTeX document class for Lecture Notes in Computer Science] % Options \let\if@envcntreset\iffalse @@ -77,123 +77,123 @@ \fi} % \def\switcht@albion{% -\def\abstractname{Abstract.} -\def\ackname{Acknowledgments.} -\def\andname{and} -\def\lastandname{\unskip, and} -\def\appendixname{Appendix} -\def\chaptername{Chapter} -\def\claimname{Claim} -\def\conjecturename{Conjecture} -\def\contentsname{Table of Contents} -\def\corollaryname{Corollary} -\def\definitionname{Definition} -\def\discintname{Disclosure of Interests.} -\def\examplename{Example} -\def\exercisename{Exercise} -\def\figurename{Fig.} -\def\keywordname{{\bf Keywords:}} -\def\indexname{Index} -\def\lemmaname{Lemma} -\def\contriblistname{List of Contributors} -\def\listfigurename{List of Figures} -\def\listtablename{List of Tables} -\def\mailname{{\it Correspondence to\/}:} -\def\noteaddname{Note added in proof} -\def\notename{Note} -\def\partname{Part} -\def\problemname{Problem} -\def\proofname{Proof} -\def\propertyname{Property} -\def\propositionname{Proposition} -\def\questionname{Question} -\def\remarkname{Remark} -\def\seename{see} -\def\solutionname{Solution} -\def\subclassname{{\it Subject Classifications\/}:} -\def\tablename{Table} -\def\theoremname{Theorem}} +\def\abstractname{Abstract.}% +\def\ackname{Acknowledgments.}% +\def\andname{and}% +\def\lastandname{\unskip, and}% +\def\appendixname{Appendix}% +\def\chaptername{Chapter}% +\def\claimname{Claim}% +\def\conjecturename{Conjecture}% +\def\contentsname{Table of Contents}% +\def\corollaryname{Corollary}% +\def\definitionname{Definition}% +\def\discintname{Disclosure of Interests.}% +\def\examplename{Example}% +\def\exercisename{Exercise}% +\def\figurename{Fig.}% +\def\keywordname{{\bf Keywords:}}% +\def\indexname{Index}% +\def\lemmaname{Lemma}% +\def\contriblistname{List of Contributors}% +\def\listfigurename{List of Figures}% +\def\listtablename{List of Tables}% +\def\mailname{{\it Correspondence to\/}:}% +\def\noteaddname{Note added in proof}% +\def\notename{Note}% +\def\partname{Part}% +\def\problemname{Problem}% +\def\proofname{Proof}% +\def\propertyname{Property}% +\def\propositionname{Proposition}% +\def\questionname{Question}% +\def\remarkname{Remark}% +\def\seename{see}% +\def\solutionname{Solution}% +\def\subclassname{{\it Subject Classifications\/}:}% +\def\tablename{Table}% +\def\theoremname{Theorem}}% \switcht@albion % Names of theorem like environments are already defined % but must be translated if another language is chosen % % French section \def\switcht@francais{%\typeout{On parle francais.}% - \def\abstractname{R\'esum\'e.}% - \def\ackname{Remerciements.}% - \def\andname{et}% - \def\lastandname{ et}% - \def\appendixname{Appendice}% - \def\chaptername{Chapitre}% - \def\claimname{Pr\'etention}% - \def\conjecturename{Hypoth\`ese}% - \def\contentsname{Table des mati\`eres}% - \def\corollaryname{Corollaire}% - \def\definitionname{D\'efinition}% - \def\discintname{Mention des Int\'{e}r\^{e}ts.} - \def\examplename{Exemple}% - \def\exercisename{Exercice}% - \def\figurename{Fig.}% - \def\keywordname{{\bf Mots-cl\'e:}}% - \def\indexname{Index}% - \def\lemmaname{Lemme}% - \def\contriblistname{Liste des contributeurs}% - \def\listfigurename{Liste des figures}% - \def\listtablename{Liste des tables}% - \def\mailname{{\it Correspondence to\/}:}% - \def\noteaddname{Note ajout\'ee \`a l'\'epreuve}% - \def\notename{Remarque}% - \def\partname{Partie}% - \def\problemname{Probl\`eme}% - \def\proofname{Preuve}% - \def\propertyname{Caract\'eristique}% +\def\abstractname{R\'esum\'e.}% +\def\ackname{Remerciements.}% +\def\andname{et}% +\def\lastandname{ et}% +\def\appendixname{Appendice}% +\def\chaptername{Chapitre}% +\def\claimname{Pr\'etention}% +\def\conjecturename{Hypoth\`ese}% +\def\contentsname{Table des mati\`eres}% +\def\corollaryname{Corollaire}% +\def\definitionname{D\'efinition}% +\def\discintname{Mention des Int\'{e}r\^{e}ts.}% +\def\examplename{Exemple}% +\def\exercisename{Exercice}% +\def\figurename{Fig.}% +\def\keywordname{{\bf Mots-cl\'e:}}% +\def\indexname{Index}% +\def\lemmaname{Lemme}% +\def\contriblistname{Liste des contributeurs}% +\def\listfigurename{Liste des figures}% +\def\listtablename{Liste des tables}% +\def\mailname{{\it Correspondence to\/}:}% +\def\noteaddname{Note ajout\'ee \`a l'\'epreuve}% +\def\notename{Remarque}% +\def\partname{Partie}% +\def\problemname{Probl\`eme}% +\def\proofname{Preuve}% +\def\propertyname{Caract\'eristique}% %\def\propositionname{Proposition}% - \def\questionname{Question}% - \def\remarkname{Remarque}% - \def\seename{voir}% - \def\solutionname{Solution}% - \def\subclassname{{\it Subject Classifications\/}:}% - \def\tablename{Tableau}% - \def\theoremname{Th\'eor\`eme}% +\def\questionname{Question}% +\def\remarkname{Remarque}% +\def\seename{voir}% +\def\solutionname{Solution}% +\def\subclassname{{\it Subject Classifications\/}:}% +\def\tablename{Tableau}% +\def\theoremname{Th\'eor\`eme}% } % % German section \def\switcht@deutsch{%\typeout{Man spricht deutsch.}% - \def\abstractname{Zusammenfassung.}% - \def\ackname{Danksagung.}% - \def\andname{und}% - \def\lastandname{ und}% - \def\appendixname{Anhang}% - \def\chaptername{Kapitel}% - \def\claimname{Behauptung}% - \def\conjecturename{Hypothese}% - \def\contentsname{Inhaltsverzeichnis}% - \def\corollaryname{Korollar}% +\def\abstractname{Zusammenfassung.}% +\def\ackname{Danksagung.}% +\def\andname{und}% +\def\lastandname{ und}% +\def\appendixname{Anhang}% +\def\chaptername{Kapitel}% +\def\claimname{Behauptung}% +\def\conjecturename{Hypothese}% +\def\contentsname{Inhaltsverzeichnis}% +\def\corollaryname{Korollar}% %\def\definitionname{Definition}% - \def\discintname{Offenlegung von Interessen.} - \def\examplename{Beispiel}% - \def\exercisename{\"Ubung}% - \def\figurename{Abb.}% - \def\keywordname{{\bf Schl\"usselw\"orter:}}% - \def\indexname{Index}% +\def\discintname{Offenlegung von Interessen.}% +\def\examplename{Beispiel}% +\def\exercisename{\"Ubung}% +\def\figurename{Abb.}% +\def\keywordname{{\bf Schl\"usselw\"orter:}}% +\def\indexname{Index}% %\def\lemmaname{Lemma}% - \def\contriblistname{Mitarbeiter}% - \def\listfigurename{Abbildungsverzeichnis}% - \def\listtablename{Tabellenverzeichnis}% - \def\mailname{{\it Correspondence to\/}:}% - \def\noteaddname{Nachtrag}% - \def\notename{Anmerkung}% - \def\partname{Teil}% +\def\contriblistname{Mitarbeiter}% +\def\listfigurename{Abbildungsverzeichnis}% +\def\listtablename{Tabellenverzeichnis}% +\def\mailname{{\it Correspondence to\/}:}% +\def\noteaddname{Nachtrag}% +\def\notename{Anmerkung}% +\def\partname{Teil}% %\def\problemname{Problem}% - \def\proofname{Beweis}% - \def\propertyname{Eigenschaft}% +\def\proofname{Beweis}% +\def\propertyname{Eigenschaft}% %\def\propositionname{Proposition}% - \def\questionname{Frage}% - \def\remarkname{Anmerkung}% - \def\seename{siehe}% - \def\solutionname{L\"osung}% - \def\subclassname{{\it Subject Classifications\/}:}% - \def\tablename{Tabelle}% +\def\questionname{Frage}% +\def\remarkname{Anmerkung}% +\def\seename{siehe}% +\def\solutionname{L\"osung}% +\def\subclassname{{\it Subject Classifications\/}:}% +\def\tablename{Tabelle}% %\def\theoremname{Theorem}% } diff --git a/macros/latex/contrib/llncs/llncsdoc.pdf b/macros/latex/contrib/llncs/llncsdoc.pdf Binary files differindex 58f260083a..964621fd36 100644 --- a/macros/latex/contrib/llncs/llncsdoc.pdf +++ b/macros/latex/contrib/llncs/llncsdoc.pdf diff --git a/macros/latex/contrib/llncs/llncsdoc.tex b/macros/latex/contrib/llncs/llncsdoc.tex index 0c3784e74c..6d47a307d5 100644 --- a/macros/latex/contrib/llncs/llncsdoc.tex +++ b/macros/latex/contrib/llncs/llncsdoc.tex @@ -1,6 +1,6 @@ % This is LLNCSDOC.TEX the documentation file of % the LaTeX2e class from Springer-Verlag -% for Lecture Notes in Computer Science, version 2.24 +% for Lecture Notes in Computer Science, version 2.25 \documentclass{llncs} \usepackage{llncsdoc} \usepackage{graphicx} @@ -13,7 +13,7 @@ \title{Instructions for Using Springer's \texttt{llncs} Class for Computer Science Proceedings Papers} % -\subtitle{\texttt{llncs}, Version 2.24, Jan 29, 2024} +\subtitle{\texttt{llncs}, Version 2.25, Oct 21, 2024} % \author{} \institute{} diff --git a/macros/latex/contrib/mathastext/README.md b/macros/latex/contrib/mathastext/README.md index f2c55cf149..aaa7a0d758 100644 --- a/macros/latex/contrib/mathastext/README.md +++ b/macros/latex/contrib/mathastext/README.md @@ -14,7 +14,7 @@ The Author of this Work is Jean-Francois Burnol (`jfbu at free dot fr`) Copyright (C) 2011-2019, 2022-2024 Jean-Francois Burnol - Source: mathastext.dtx 1.4b 2024/07/27 + Source: mathastext.dtx 1.4c 2024/10/21 DESCRIPTION @@ -82,6 +82,33 @@ Main options: `italic`, `frenchmath`, `subdued`, `LGRgreek`. RECENT CHANGES ============== +1.4c \[2024/10/21\] +---- + +* Fix a regression at `1.4`: under `XeLaTeX`: loading `mathastext` + caused an error if `unicode-math` and its `\setmathfont` had been + used prior ("Extended mathchar used as mathchar" in relation to the + minus sign character). Thanks to Michael Roland for report. + + Keep in mind though that the documentation (see 1.4.15 Unicode engines) has + always said that the package "is expected to be most definitely + incompatible with unicode-math". + +* Fix another regression at `1.4`, related to the same code and also avoided + with `everymath` option, but showing with + all engines. It caused `\MTnonlettersdonotobeymathxx`, if used, to reset + the minus sign to its status as prior to the loading of `mathastext`, + whereas it should have used the (by default) mathversion dependent one + (which defaults to the en-dash in the font encoding as stored by `mathastext` in + the extended math version). + +* `\Relbar` and `\relbar` redeclarations (needed as they are used by `LaTeX` + for arrows, and the equal and minus signs if picked from the text font may not + work well in-there) are now done via `\DeclareRobustCommand` also with + package `amsmath` to match the current behavior of the latter. Note though + that they will use the equal and minus signs as in place at package loading + time, the documentation does say that `mathastext` should be loaded last. + 1.4b \[2024/07/27\] ---- @@ -153,8 +180,8 @@ RECENT CHANGES tex.sx `user691586` for report. This is currently the sole remaining usage of `\everymath/\everydisplay`. -* Bugfix: an optional feature related to `\{` and `\}` was broken since an - upstream LaTeX change at its 2020-02-02 release. +* Bugfix: `\MTexplicitbracesobeymathxx` (which is related to `\{` and `\}`) + was without effect since an upstream LaTeX change at its 2020-02-02 release. * With option symbolmisc, those math symbol macros formerly defined via `\DeclareRobustCommand` are now declared via `\protected\def`. @@ -174,54 +201,3 @@ RECENT CHANGES extent improved. But there may be some occasions where obsolete statements will be found having the legacy `\everymath/\everydisplay` situation as background. -1.3zb \[2023/12/29\] ------ - -* Update to the `frenchmath*` option to maintain compatibility - with the [frenchmath](https://ctan.org/pkg/frenchmath) - package whose release 2.7 (2023/12/23) has replaced - the ncccomma package by the decimalcomma package. - -* The `frenchmath+` option holds the former meaning of `frenchmath*`. - -* Option `decimalcomma` to load the eponymous package by Antoine - Missier. This is tacitly done by `frenchmath*`. - -* No more messages sent to the console output during loading, - only info messages going into the log, and using (more or less) - the official LaTeX interface: after close to 13 years of development - of this package it was perhaps finally the time to do it. - -* Documentation improvements. Close to 13 years after the - birth of the package, and as it nowadays rarely wakes up from - dormancy, this was almost last chance to try to improve a few - things. - -1.3za \[2023/12/20\] ------ - -* Under `LGRgreek` and `LGRgreeks` options, new math alphabets - `\mathgreekupbold` and `\mathgreekitbold`. - -* New options `LGRgreek+` and `LGRgreeks+`. - - Thanks to Holger Gerhardt for feature request and code ideas. - Please find and read the relevant documentation in the PDF. - -* The meaning of `defaultalphabets` and related individual - options such as `defaultbf` has been modified (reverted to pre - `1.15f` release): even under these options, the package always - creates `\mathnormalbold`, `\Mathnormal`, `\Mathrm`, `\Mathbf` - etc..., commands. This may break documents which used these - options in order to reserve these command names. This was done - with some hesitancy, but for the sake of internal logical - coherence. - -* Fix an obscure bug with no real consequences regarding - interaction of `subdued` with `LGRgreek` and `\MTgreekfont`. - See the `LGRgreek` documentation in the complete list of - options for details. - -* Fix long-standing hyperlink problems in the documentation: - blue color words should now all be functioning hyperlinks. - diff --git a/macros/latex/contrib/mathastext/mathastext.dtx b/macros/latex/contrib/mathastext/mathastext.dtx index 7857f9b70a..468d8868c3 100644 --- a/macros/latex/contrib/mathastext/mathastext.dtx +++ b/macros/latex/contrib/mathastext/mathastext.dtx @@ -2,8 +2,8 @@ % N.B.: this dtx file does NOT use \DocInput, it only uses docstrip. % The LaTeX source of the documentation is NOT prefixed with %'s. %<*dtx> -\def\dtxtimestamp {Time-stamp: <26-07-2024 at 11:21:35 CEST>} -\def\docdate{2024/07/27} +\def\dtxtimestamp {Time-stamp: <21-10-2024 at 14:03:00 CEST>} +\def\docdate{2024/10/21} % To extract run etex on this file, then to build documentation run % latexmk on mathastext.tex then dvipdfmx on the dvi. % For more information see http://jf.burnol.free.fr/v13/INSTALL.txt @@ -11,8 +11,8 @@ % due to usage of § (<A7>) as an active character. %</dtx> %<*drv> -\def\MSTpkgdate {2024/07/27} -\def\MSTpkgversion {1.4b} +\def\MSTpkgdate {2024/10/21} +\def\MSTpkgversion {1.4c} %</drv> %<*dtx> \iffalse % meta-comment @@ -34,7 +34,7 @@ The Author of this Work is Jean-Francois Burnol (`jfbu at free dot fr`) Copyright (C) 2011-2019, 2022-2024 Jean-Francois Burnol - Source: mathastext.dtx 1.4b 2024/07/27 + Source: mathastext.dtx 1.4c 2024/10/21 %</readme> %<*dtx> @@ -44,7 +44,7 @@ Copyright (C) 2011-2019, 2022-2024 Jean-Francois Burnol %%---------------------------------------------------------------- %% Package: mathastext %% Info: Use the text font in math mode (JFB) -%% Version: 1.4b 2024/07/27 +%% Version: 1.4c 2024/10/21 %% License: LPPL 1.3c (http://www.latex-project.org/lppl/lppl-1-3c.txt) %% Copyright (C) 2011-2019, 2022-2024 Jean-Francois Burnol %% <jfbu at free dot fr> @@ -193,6 +193,33 @@ MATHASTEXT CHANGE LOG %</changelog> %<*readme|changelog> +1.4c \[2024/10/21\] +---- + +* Fix a regression at `1.4`: under `XeLaTeX`: loading `mathastext` + caused an error if `unicode-math` and its `\setmathfont` had been + used prior ("Extended mathchar used as mathchar" in relation to the + minus sign character). Thanks to Michael Roland for report. + + Keep in mind though that the documentation (see 1.4.15 Unicode engines) has + always said that the package "is expected to be most definitely + incompatible with unicode-math". + +* Fix another regression at `1.4`, related to the same code and also avoided + with `everymath` option, but showing with + all engines. It caused `\MTnonlettersdonotobeymathxx`, if used, to reset + the minus sign to its status as prior to the loading of `mathastext`, + whereas it should have used the (by default) mathversion dependent one + (which defaults to the en-dash in the font encoding as stored by `mathastext` in + the extended math version). + +* `\Relbar` and `\relbar` redeclarations (needed as they are used by `LaTeX` + for arrows, and the equal and minus signs if picked from the text font may not + work well in-there) are now done via `\DeclareRobustCommand` also with + package `amsmath` to match the current behavior of the latter. Note though + that they will use the equal and minus signs as in place at package loading + time, the documentation does say that `mathastext` should be loaded last. + 1.4b \[2024/07/27\] ---- @@ -264,8 +291,8 @@ MATHASTEXT CHANGE LOG tex.sx `user691586` for report. This is currently the sole remaining usage of `\everymath/\everydisplay`. -* Bugfix: an optional feature related to `\{` and `\}` was broken since an - upstream LaTeX change at its 2020-02-02 release. +* Bugfix: `\MTexplicitbracesobeymathxx` (which is related to `\{` and `\}`) + was without effect since an upstream LaTeX change at its 2020-02-02 release. * With option symbolmisc, those math symbol macros formerly defined via `\DeclareRobustCommand` are now declared via `\protected\def`. @@ -285,6 +312,8 @@ MATHASTEXT CHANGE LOG extent improved. But there may be some occasions where obsolete statements will be found having the legacy `\everymath/\everydisplay` situation as background. +%</readme|changelog> +%<*changelog> 1.3zb \[2023/12/29\] ----- @@ -336,8 +365,6 @@ MATHASTEXT CHANGE LOG * Fix long-standing hyperlink problems in the documentation: blue color words should now all be functioning hyperlinks. -%</readme|changelog> -%<*changelog> 1.3z \[2023/09/01\] ---- @@ -1423,7 +1450,7 @@ pdfpagemode=UseOutlines,% {\normalfont\LARGE The \mst package}\\ \textsc{\small Jean-François Burnol}\par \footnotesize \ttfamily \frenchspacing - jfbu (at) free (dot) fr\par + \fbox{contact: jfbu (at) free (dot) fr}\par \let\thefootnote\empty Package version: \MSTpkgversion\ (\MSTpkgdate)% \footnote{Documentation generated from the @@ -4267,7 +4294,7 @@ option). \mstcmd{MTlettershape}\marg{sh}.% % \footnote{These commands exist also with - long names: \csb{Mathastextencoding}, + long names: \cs{Mathastextencoding}, etc\dots{} The same applies to the other commands mentioned in this section.} % @@ -4789,7 +4816,7 @@ configuration, not for the legacy one as re-enacted by §everymath§. (even in the preamble). At \mstrelease{1.4}\RLNote{changed:}{\mstrelease{1.4}} \mst checks at - |\begin{document}| (or each time §\MTaciveasterisk§ is made use of) if + |\begin{document}| (or each time §\MTactiveasterisk§ is made use of) if * is a Babel shorthand (which I far as I know is the case of no language) or is already mathematically active. In the latter case the * is not modified in math mode; and it is not modified either if @@ -4988,10 +5015,22 @@ configuration, not for the legacy one as re-enacted by §everymath§. it will have to be coded |$a^{!}$|. Hence, by default, the package does §\MTnonlettersdonotobeymathxx§. -\item \mstcmd{MTexplicitbracesobeymathxx}: extends an earlier §\MTnonlettersobeymathxx§ - to also treat \verb|\{| and \verb|\}|. But then |\left\{|, |\right\}| must - be coded |\left\lbrace|, |\right\rbrace| rather. There is also - \mstcmd{MTexplicitbracesdonotobeymathxx}. +\item \mstcmd{MTexplicitbracesobeymathxx}: does §\MTnonlettersobeymathxx§ and + extends it to also apply to \verb|\{| and \verb|\}|. Note that then |\left\{|, + |\right\}| must be coded |\left\lbrace|, |\right\rbrace| rather. There is + also \mstcmd{MTexplicitbracesdonotobeymathxx}. + + {\footnotesize + If under the §everymath§ option, it is needed to issue explicitly + §\MTnonlettersobeymathxx§ in addition to §\MTexplicitbracesobeymathxx§. + + Whether or not with §everymath§, if the command is issued while in + §subdued§ normal or bold, it has no effect immediately, but if switching + later to a non-§subdued§ math version via §\MTversion§, a + §\MTnonlettersobeymathxx§ issued then will automatically apply also to + \verb|\{| and \verb|\}|. + \par + } \item \RightNote{\mstrelease{1.3j}}\mstcmd{MTeverymathdefault}: this hook is executed by \csb{MTversion}\marg{version\_name} (but if under option |subdued| @@ -5789,7 +5828,7 @@ Numerous examples will be found there:\\ % \begin{macrocode} \NeedsTeXFormat{LaTeX2e}[2020/02/02] \ProvidesPackage {mathastext} - [2024/07/27 v1.4b Use the text font in math mode (JFB)] + [2024/10/21 v1.4c Use the text font in math mode (JFB)] % \end{macrocode} % \mstrelease{1.3zb} avoids writing \mst info messages also to console output, only log file. % Make prefix occupy 20 not 25 characters for alignment with \texttt{LaTeX Font Info}, @@ -5846,33 +5885,32 @@ Numerous examples will be found there:\\ \newif\ifmst@XeOrLua \ifmst@LuaTeX\mst@XeOrLuatrue\fi \ifmst@XeTeX \mst@XeOrLuatrue\fi +% \begin{macrocode} % \end{macrocode} % \mstrelease{1.4}. I only checked this is correct with TL2024. % The macro will be used with |#1| a catcode 11 or 12 token or a one character % control sequence such as |\#|. +% +% \mstrelease{1.4c} add some definitions to avoid separate branches for +% non-Unicode vs Unicode. % \begin{macrocode} \ifmst@XeTeX - \def\mst@OnlyIfNotMathActive#1{% - \ifnum\mst@Umathcodenum`#1="1FFFFF - \expandafter\@gobble - \else\expandafter\@firstofone - \fi - } -\else\ifmst@LuaTeX - \def\mst@OnlyIfNotMathActive#1{% - \ifnum\mst@Umathcodenum`#1="1000000 - \expandafter\@gobble - \else\expandafter\@firstofone - \fi - } + \def\mst@activemathcodenum@space{"1FFFFF }% + \let\mst@mathcodenum\mst@Umathcodenum \else - \def\mst@OnlyIfNotMathActive#1{% - \ifnum\mathcode`#1="8000 - \expandafter\@gobble - \else\expandafter\@firstofone - \fi - } +\ifmst@LuaTeX + \def\mst@activemathcodenum@space{"1000000 }% + \let\mst@mathcodenum\mst@Umathcodenum +\else + \def\mst@activemathcodenum@space{"8000 }% + \let\mst@mathcodenum\mathcode \fi\fi +\def\mst@OnlyIfNotMathActive#1{% + \ifnum\mst@mathcodenum`#1=\mst@activemathcodenum@space + \expandafter\@gobble + \else\expandafter\@firstofone + \fi +} % \end{macrocode} % \mstrelease{1.2}: all inner macros of \mst now starts with |\mst@| for a cleaner % name-space. @@ -6349,8 +6387,10 @@ defaultbf,defaultit,defaultsf,defaulttt}} }% % \end{macrocode} % The ``undo'' is needed at \mstrelease{1.4} (but not if |everymath|). +% The \mstrelease{1.4c} uses with Unicode \cs{Umathcodenum} in +% \cs{mst@mathdeactivate} and not \cs{mathcode} hence no |"8000| here. % \begin{macrocode} -\def\mst@undo@mathactivateprime{\mst@mathdeactivate#1{"8000}}% +\def\mst@undo@mathactivateprime{\mst@mathdeactivate#1{\mst@activemathcodenum@space}}% }\expandafter\mst@tmp\string' \def\mst@active@math@prime{\sp\bgroup\mskip\mst@prime@muskip\prim@s} \ifmst@everymath @@ -6470,7 +6510,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} \let\mst@savedresetMathstrut@\resetMathstrut@ % \end{macrocode} % The |\ifx\mst@the\the| is true iff \cs{MTnonlettersobeymathxx} was used in preamble -% (last compared to \cs{MTnonlettersdonotobeymathxx}). +% (and after possibly some \cs{MTnonlettersdonotobeymathxx}). % Setting \cs{mst@the} to \cs{@gobble} here wiil cause \cs{MTnonlettersobeymathxx} % to indeed modify \cs{resetMathstrut@} (and it resets \cs{mst@the} to \cs{the} for % its behavior in \cs{everymath}). @@ -6794,7 +6834,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} % here using an \cs{ifmmode}. And we store the original meaning of the % active variant of the token to reset it when ``undoing''. % -% Careful not to do it twice in a row... (but this means \cs{mst@deactivate} +% Careful not to do it twice in a row... (but this means \cs{mst@mathdeactivate} % might not revert to a user custom redefinition done in-between but to a % prior one; although if the character is made active the second % \cs{mst@mathactivate} would not have been done). @@ -6836,11 +6876,19 @@ defaultbf,defaultit,defaultsf,defaulttt}} % The \cs{mst@mathdeactivate} is active (sic) only in the non |everymath| % situation. It will restore a previously existing active meaning if it has % been changed. +% +% The \mstrelease{1.4c} uses \cs{Umathcodenum} here with Unicode engines (the +% actual conditions why this became necessary were related to the minus +% character which however does not use \cs{mst@mathdeactivate} anyway at time +% of finishing the \mstrelease{1.4c} updates). The \cs{string} thing with +% \texttt{-} is due to some old paranoia for which I see no underlying reason +% (why on earth would \texttt{-} be catcode active here?), but maintaining it. +% For |#1=-| the |#2| is empty and unused. % \begin{macrocode} \ifmst@everymath \else \def\mst@mathdeactivate#1#2{% - \mathcode`#1=#2\relax + \if#1\string-\else\mst@mathcodenum`#1=#2\relax\fi \@ifundefined{active@char#1} {\@ifundefined{mst@prioractivemeaning@#1} {}% @@ -6927,10 +6975,21 @@ defaultbf,defaultit,defaultsf,defaulttt}} % \end{macrocode} % We need to automatize some safeguards related to \cs{mst@do@activecase} when % deactivating. +% +% \mstrelease{1.4c} fixes two problems of \mstrelease{1.4} code. First a bug +% due to \XeLaTeX\ diverging implementation of \cs{mathcode} compared to +% \LuaLaTeX (or rather vice versa), second the fact that the mathcode here is +% the one at package loading time, which for most non-letter characters was +% fine because it had been set by \mst, but for the minus character it was too +% early. +% +% The generic \cs{mst@addtodo@nonletters} can not be used with \texttt{-}, +% some specific code is used, see \cs{mst@nonsubduedminus}. % \begin{macrocode} - \def\mst@addtodo@nonletters#1#2#3{\mst@do@nonletters\expandafter + \def\mst@addtodo@nonletters#1#2#3{% + \mst@do@nonletters\expandafter {\the\mst@do@nonletters\mst@mathactivate#1#2#3}% - \edef\mst@tmp{\noexpand\mst@mathdeactivate#1{\the\mathcode`#1}}% + \edef\mst@tmp{\noexpand\mst@mathdeactivate#1{\the\mst@mathcodenum`#1}}% \mst@undo@nonletters\expandafter\expandafter\expandafter {\expandafter\mst@tmp\the\mst@undo@nonletters}% }% @@ -7004,6 +7063,19 @@ defaultbf,defaultit,defaultsf,defaulttt}} \let\mst@the\the }% }% +% \end{macrocode} +% The next one gets executed (even if not used by user) via +% \cs{MTeverymathoff}, which itself is done automatically at begin document if +% in \texttt{subdued} mode. The mechanism of \texttt{subdued} mode is to +% reassign the \texttt{mtoperatorfont} and \texttt{mtletterfont} to the fonts +% used by default in the normal math version. The reassignment of mathcodes +% is needed in case a priori \cs{MTnonlettersobeymathxx} made some characters math +% active. Normally the slots as defined by \mst match default slots. The +% case of minus character is special as it by default with legacy \TeX\ fonts +% and encodings will try to be the EN DASH, whose slot depends on the +% encoding. The used mathcode's for the minus sign are thus stored by \mst, +% but under the shape of \cs{(U)mathchar} control sequences. +% \begin{macrocode} \renewcommand*\MTnonlettersdonotobeymathxx{% \the\mst@undo@nonletters \ifx\mst@the\@gobble @@ -7154,7 +7226,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} % \item seems I simply don't understand what the amsmath code does with % \cs{std@minus}. It is used in \cs{relbar} and it escapes me why % \cs{newmcodes@} would ever want to redefine it, and more importantly why -% on earth it tests the mathcode of |-| for that ? yes, \cs{std@minus} is +% on earth it tests the mathcode of |-| for that? yes, \cs{std@minus} is % defined (at begin document) using the mathcode of |-|, but what's the % connexion to \cs{newmcodes@} ?? Any way \mst defines \cs{relbar} with % \cs{mst@minus@sign}. Thus I just drop this conditional. @@ -8349,7 +8421,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} % \begin{macrocode} \AtBeginDocument{% \let\mst@orig@abd@ast\ast - \edef\MTnormalasterisk{\noexpand\mst@mathdeactivate*{\the\mathcode`\*}% + \edef\MTnormalasterisk{\noexpand\mst@mathdeactivate*{\the\mst@mathcodenum`\*}% \let\noexpand\ast\noexpand\mst@orig@abd@ast}% \def\MTactiveasterisk{\def\ast{\mst@ast}% \mst@mathactivate*{}\mst@ast @@ -8585,12 +8657,23 @@ defaultbf,defaultit,defaultsf,defaulttt}} % \mstrelease{1.3v} |2019/09/19|: \LaTeX{} of |2019-10-01| defines \cs{leftarrowfill} % and \cs{rightarrowfill} as robust macros, so we do the same. % -% I need to put amsmath under surveillance to check if it decides to +% I need to put \ctanpkg{amsmath} under surveillance to check if it decides to % robustify \cs{relbar} at some point, now that the \LaTeX\ team has % taken over maintenance. % % |2019/09/16| Use \cs{protected} for \cs{right\textbar{}leftarrowfill} in the non % \cs{DeclareRobustCommand} branch? +% +% \mstrelease{1.4c} |2024/10/20|: I didn't actually put +% \ctanpkg{amsmath} under surveillance because I had other things to do with +% my life. But it appears indeed that \cs{relbar} (and \cs{Relbar}) are now +% robust also if \ctanpkg{amsmath} is loaded, so I follow suit here. +% +% MEMO: the minus character used in \cs{relbar} has its mathcode from the +% \mst loading time. This is not the same as the minus in subdued mode +% which fetches its mathcode only at begin document. But anyhow the \mst +% documentation insists the package should be loaded last among packages +% modifying math mode rendering. % \begin{macrocode} \ifmst@nominus \else @@ -8605,7 +8688,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} \mathchardef\mst@minus@sign=\mathcode`\-\relax \fi \@ifpackageloaded{amsmath} - {\def\relbar{\mathrel{\mathpalette\mathsm@sh\mst@minus@sign}}} + {\DeclareRobustCommand\relbar{\mathrel{\mathpalette\mathsm@sh\mst@minus@sign}}} {\DeclareRobustCommand\relbar{\mathrel{\smash\mst@minus@sign}}} \DeclareRobustCommand\rightarrowfill{$\m@th\mathord{\relbar}\mkern-7mu% \cleaders\hbox{$\mkern-2mu\relbar\mkern-2mu$}\hfill @@ -8648,11 +8731,11 @@ defaultbf,defaultit,defaultsf,defaulttt}} % change. This means also that |\MTversion| and not |\mathversion| % must be used for good functioning. % -% \mstrelease{1.3u} improves the handling of the minus sign by letting it be compatible -% with math versions (and not only with the with subdued mechanism but all -% math versions) having varying font encodings, even possibly classic 8bit -% font encoding mixed with TU encoding for Unicode engines. For this it is -% needed to work around a feature of XeTeX/LuaLaTeX, here is original comment: +% \mstrelease{1.3u} improves the handling of the minus sign by letting it be +% compatible with math versions (and not only follow the subdued mechanism) +% having varying font encodings, even possibly classic 8bit font encoding +% mixed with TU encoding for Unicode engines. For this it is needed to work +% around a feature (read: bug) of \XeTeX/\LuaLaTeX, here is original comment: % % \begin{quotation} % afaict it is @@ -8661,9 +8744,34 @@ defaultbf,defaultit,defaultsf,defaulttt}} % This is counter-intuitive and breaks expectations. % \end{quotation} % -% But the \mstrelease{1.3u} mechanism with \cs{mst@UmathchardefWorkAround@i} introduced a -% bug which showed under option |noendash| (hence also |symboldelimiters|) with -% Unicode engines. Fixed at \mstrelease{1.3w}. +% A \mstrelease{1.3u} mechanism used a \cs{mst@UmathchardefWorkAround@i} (a +% bug which showed under option |noendash|, hence also |symboldelimiters|, with +% Unicode engines was fixed at \mstrelease{1.3w}). Unfortunately at +% \mstrelease{1.4c} we still have to use it because a core deficiency with +% math primitives in \XeTeX/\LuaTeX\ is still there (breakage of natural +% expectations based on \TeX\ original syntax paradigm; search for +% words such as "painful" in the text next or prior to this location). +% The macro was renamed \cs{mst@ParseUmathchardef}. +% +% The next macros are used by \cs{Mathastext} and \cs{MTDeclareVersion} to +% define \cs{mathchar} or \cs{Umathchar} control sequences which are named +% \cs{mst@minus@mv}\meta{mathversion} and +% \cs{mst@varfam@minus@mv}\meta{mathversion} which are math version dependent. +% The \cs{mst@minus} was added to complement \cs{mst@varfam@minus} at +% \mstrelease{1.4c}. +% +% As far as the author can tell now (at \mstrelease{1.4c}) this naming scheme +% is due to the need to recover the \cs{textendash} or \cs{textemdash} slots +% in the math version dependent text font (``legacy \TeX'', i.e. non Unicode) +% encoding, and each math version can have its own font encoding. +% +% Sadly, due to blatant deficiencies of the Unicode engines math primitives, +% it is only via a detour that we can fetch the extended math code defined by a +% \cs{Umathchardef} and we have to know it was not via a \cs{mathchardef}. +% Real pain. +% +% The \cs{mst@subduedminus} is defined only at begin document and fetches +% there what will be the subdued mathcode of \texttt{-}. % \begin{macrocode} \let\mst@subduedminus\empty \let\mst@nonsubduedminus\empty @@ -8695,35 +8803,96 @@ defaultbf,defaultit,defaultsf,defaulttt}} \DeclareMathSymbol{#1}{\mathbin}{\mst@font@tbu}{"2D}% \DeclareMathSymbol{#2}{\mathalpha}{\mst@font@tbu}{"2D}% }% -\def\mst@varfam@minus{\@nameuse{mst@varfam@minus@mv\math@version}}% +\def\mst@varfam@minus{\csname mst@varfam@minus@mv\math@version\endcsname}% +\def\mst@minus{\csname mst@minus@mv\math@version\endcsname}% +% \end{macrocode} +% \mstrelease{1.4c} fixes a \mstrelease{1.4} bug: +% \cs{MTnonlettersdonotobeymathxx} (i.e.\@ not with \texttt{everymath} option) +% restored the minus to have the mathcode in place at package loading time, +% which was wrong. +% +% The correct mathcode, which is possibly math version dependent, is stored in +% some \cs{mathchar} or \cs{Umathchar} and can be set via +% \cs{mst@nonsubduedminus} execution. We can not use +% \cs{mst@addtodo@nonletters} with \texttt{-} here (except under +% \texttt{everymath}). We need special coding to use \cs{mst@nonsubduedminus} +% or \cs{mst@subduedminus}. +% +% It is very painful troubles with \XeTeX/\LuaTeX\ once we have a +% \cs{Umathchardef} to re-assign its extended mathcode to a character token; +% we can't have syntax common with non-Unicode engine or cases where the +% control sequence was actually defined via \cs{mathchardef}. Hence there are +% some unnatural complications. What a pain. +% \begin{macrocode} \ifmst@nominus\else - \expandafter\mst@addtodo@nonletters\string-\mathbin\mst@varfam@minus + \ifmst@everymath + \expandafter\mst@addtodo@nonletters\string-\mathbin\mst@varfam@minus + \else +% \end{macrocode} +% I have absolutely no idea why I was paranoid about \texttt{-} catcode (as for +% other characters) but I feel even at \mstrelease{1.4c} I have to maintain +% the tradition. +% \begin{macrocode} + \def\mst@tmp#1{% + \mst@do@nonletters\expandafter{\the\mst@do@nonletters + \mst@mathactivate#1\mathbin\mst@varfam@minus}% +% \end{macrocode} +% At \mstrelease{1.4c}, \cs{mst@mathdeactivate} adds a check to whether +% its first argument is \texttt{-} and then does not do itself the +% mathcode things (which are the matter of +% either \cs{mst@nonsubduedminus} or \cs{mst@subduedminus}) but only +% the other stuffs relative to restoration of a previous meaning for +% the catcode active character. +% \begin{macrocode} + \mst@undo@nonletters\expandafter{\the\mst@undo@nonletters + \mst@mathdeactivate#1{}% + \mst@nonmathactiveminus}% + }\expandafter\mst@tmp\string-% +% \end{macrocode} +% We have to go through these things because \cs{MTnonlettersdonotobeymathxx} +% which executes \cs{mst@undo@nonletters} is done via \cs{MTeverymathoff} +% which is part of the handling of \texttt{subdued} normal and bold math. +% \begin{macrocode} + \def\mst@nonmathactiveminus{% + \ifmst@subdued + \ifx\math@version\mst@normalversionname\mst@subduedminus\else + \ifx\math@version\mst@boldversionname \mst@subduedminus\else + \mst@nonsubduedminus\fi\fi + \else + \mst@nonsubduedminus + \fi}% + \fi +% \end{macrocode} +% I have no time to test extensively but it seems in 2024 that we still have +% this blatant deficiency of \LuaTeX/\XeTeX\ with regards to +% \cs{Umathchardef}: we can't use \cs{Umathcode} or \cs{Umathcodenum} with +% them. This is obviously a strong disappointment upon which I lamented +% already here in 2019 and much earlier certainly as it has plagued my life +% eversince I added support for Unicode engines to \mst. +% +% ATTENTION: Defining \cs{mst@tmp@enc} is mandatory for +% \cs{mst@OneifUniEnc} to work correctly... +% +% If neither \texttt{endash} nor \texttt{emdash} is true we will have +% to redefine this macro next. +% \begin{macrocode} \def\mst@nonsubduedminus{% \edef\mst@tmp@enc{\csname mst@encoding@\math@version\endcsname}% \if1\mst@OneifUniEnc \mst@Umathcode`\-=\expandafter - \mst@UmathchardefWorkAround@i + \mst@ParseUmathchardef \csname mst@minus@mv\math@version\endcsname \relax \else - \mathcode`\-=\@nameuse{mst@minus@mv\math@version}% + \mathcode`\-=\mst@minus \fi - }% -% \end{macrocode} -% The above works only if the \cs{mst@minus@mv<name>} was really -% defined via \cs{Umathchardef}. If it was defined via \cs{DeclareMathSymbol} -% then it is a \cs{mathchar}, not a \cs{Umathchar}. At least currently (2019). -% So we need to correct the definition of \cs{mst@nonsubduedminus}. -% \begin{macrocode} + }% + \def\mst@ParseUmathchardef{\expandafter\mst@ParseUmathchardef@i\meaning}% + \def\mst@ParseUmathchardef@i#1"{"}% \ifmst@endash\else\ifmst@emdash\else - \def\mst@nonsubduedminus{% - \mathcode`\-=\@nameuse{mst@minus@mv\math@version}% - }% + \def\mst@nonsubduedminus{\mathcode`\-=\mst@minus}% \fi\fi \fi -\def\mst@UmathchardefWorkAround@i - {\expandafter\mst@UmathchardefWorkAround@ii\meaning}% -\def\mst@UmathchardefWorkAround@ii#1"{"}% % \end{macrocode} % \end{macro}\end{macro}\end{macro} % \begin{macro}{\mst@hbar@mvnormal} @@ -8775,6 +8944,10 @@ defaultbf,defaultit,defaultsf,defaulttt}} \fi \def\mst@mathrlap{\mathpalette\mst@mathrlapinternal} \def\mst@mathrlapinternal#1#2{\rlap{$\mathsurround=0pt#1{#2}$}} +% \end{macrocode} +% ATTENTION! The definition of \cs{mst@tmp@enc} is mandatory for +% \cs{mst@OneifUniEnc} to work correctly... +% \begin{macrocode} \def\mst@dothe@hbarstuff#1#2#3{% \edef\mst@tmp@enc{#3}% \if1\mst@OneifUniEnc @@ -8807,9 +8980,15 @@ defaultbf,defaultit,defaultsf,defaulttt}} \else \mathchardef\mst@equal@sign=\mathcode`\=\relax \fi -\@ifpackageloaded{amsmath} -{\def\Relbar{\mathrel\mst@equal@sign}} -{\DeclareRobustCommand\Relbar{\mathrel{\mst@equal@sign}}} +% \end{macrocode} +% \mstrelease{1.4c} makes \cs{Relbar} robust also with \ctanpkg{amsmath} (the original +% wasn't robust in the past). We can now use same definition whether or not +% \ctanpkg{amsmath} is loaded. +% +% MEMO: the character ``equal'' used in \cs{Relbar} has its mathcode frozen at +% \mst loading time. +% \begin{macrocode} +\DeclareRobustCommand\Relbar{\mathrel\mst@equal@sign} \DeclareMathSymbol{=}{\mathrel}{\mst@font@tbu}{"3D} \DeclareMathSymbol{\mst@varfam@equal}{\mathalpha}{\mst@font@tbu}{"3D} % \end{macrocode} @@ -9062,7 +9241,23 @@ defaultbf,defaultit,defaultsf,defaulttt}} \newcommand*{\MTexplicitbracesobeymathxx}{\let\mst@dobraces\@firstofone} \newcommand*{\MTexplicitbracesdonotobeymathxx}{\let\mst@dobraces\@gobble} % \end{macrocode} -% Extras for \mstrelease{1.4} are needed: +% Extras for \mstrelease{1.4} are needed. +% +% MEMO: The coding for \cs{MTexplicitbracesobeymathxx} in this non +% \texttt{everymath} (default) branch is lazy, as it causes execution +% of full \cs{MTnonlettersobeymathxx}, but it logically maintains the +% pre-\mstrelease{1.4} situation, which activates the braces only +% as part of the global \cs{mst@do@nonletters}. Advantage also is +% that in \texttt{subdued} it is a no-op because \cs{MTnonlettersobeymathxx} +% is. But, if issued while in the \texttt{subdued} normal math version, if +% after switching to another math version user employs +% \cs{MTnonlettersobeymathxx}, then the effect of +% \cs{MTexplicitbracesobeymathxx} will be seen. This is the same behavior +% as under \texttt{everymath} option. +% +% But contrarily to \texttt{everymath} situation, in a non-\texttt{subdued} +% math version, it is not needed to explicitly use \cs{MTnonlettersobeymathxx} +% prior to \cs{MTexplicitbracesobeymathxx}, the latter implies the former. % \begin{macrocode} \ifmst@everymath \else @@ -10729,7 +10924,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} % but there is a \cs{MTeverymathoff} done next in the \emph{normal} and % \emph{bold} version. It does \cs{MTicinmath} and \cs{MTmathactivedigits} % which however are no-ops (only partly for the former, and for the latter -% always anyhow if no option |activedigits|) in subdude mode. +% always anyhow if no option |activedigits|) in subdued mode. % \begin{macrocode} \MTmathoperatorsobeymathxx \MTeverymathdefault @@ -10771,11 +10966,17 @@ defaultbf,defaultit,defaultsf,defaulttt}} % % \mstrelease{1.3u} extends this further to allow per-math-version meanings % for them. +% +% \mstrelease{1.4c} removes usage here of \cs{mst@subduedminus} (which anyhow is empty +% under \texttt{everymath}) because \cs{MTeverymathoff} does +% \cs{MTnonlettersdonotobeymathxx} which executes the \cs{mst@undo@nonletters} +% \cs{toks} hence ends up executing \cs{mst@subduedminus}. On second thoughts +% not so sure good idea to have removed it because documentation mentions +% \cs{MTeverymathoff} and sadly suggests redefining it for some effects. % \begin{macrocode} \mst@subduedhbar \mst@subduedinodot \mst@subduedmathaccents - \mst@subduedminus \else \ifx\math@version\mst@boldversionname \mst@restorealphabets @@ -10788,7 +10989,6 @@ defaultbf,defaultit,defaultsf,defaulttt}} \mst@subduedhbar \mst@subduedinodot \mst@subduedmathaccents - \mst@subduedminus \else \mst@setalphabets % \end{macrocode} @@ -11126,7 +11326,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} \mst@infoline{Other characters (digits, ...) and \string\log-like names will be}% \mst@infoline{typeset with the \mst@shape@normal\space shape.}% \fi - \fi + \fi % not subdued \ifmst@nohbar\else \mst@infoline{\string\hbar}% \mst@dothe@hbarstuff @@ -11143,7 +11343,30 @@ defaultbf,defaultit,defaultsf,defaulttt}} \mst@dothe@mathaccentsstuff{normal}\mst@encoding@normal \fi \ifmst@nominus\else - \mst@infoline{minus as endash}% + \ifmst@subdued + \mst@infoline{minus is kept as is in subdued normal and bold math versions}% + \else + \mst@infoline{minus either as endash, Unicode minus, emdash or hyphen}% +% \end{macrocode} +% If \texttt{subdued} the \cs{mst@minus@mvnormal} etc... as defined via the +% \cs{mst@dothe@endashstuff} et al.\@ would never end up being used in their +% respective \emph{normal} and \emph{bold} versions, because the actual +% mathcode assignment to \texttt{-} will proceed via \cs{mst@subduedminus} +% which simply uses the mathcode in place at |\begin{document}|. And +% \cs{MTnonlettersobeymathxx} is a no-op in \texttt{subdued} math versions. +% And (at \mstrelease{1.4c}) \cs{MTnonlettersdonotobeymathxx} (which is +% executed via \cs{MTeverymathoff}) will do (via \cs{mst@undo@nonletters}) +% \cs{mst@subduedminus} in these math versions (see \cs{mst@nonmathactiveminus}). +% +% With \texttt{everymath} option the mathcode assignment is done similarly on +% entering the math version (either \cs{mst@subduedminus} or +% \cs{mst@nonsubduedminus}) or when using mathematically active character via +% \cs{mst@the}\cs{mst@do@nonletters} done at \cs{everymath}. And \cs{mst@the} +% is set to \cs{@gobble} in subdued math versions. +% +% So at \mstrelease{1.4c} the execution of this code was made conditional on +% not being in \texttt{subdued} mode. +% \begin{macrocode} \ifmst@endash \mst@dothe@endashstuff\mst@minus@mvnormal\mst@varfam@minus@mvnormal \mst@encoding@normal @@ -11161,7 +11384,8 @@ defaultbf,defaultit,defaultsf,defaulttt}} \let\mst@varfam@minus@mvbold\mst@varfam@minus@mvnormal \fi \fi - \fi + \fi % not subdued + \fi % not nominus % \end{macrocode} % \mstrelease{1.3zb} moves this info line last and also explicitly mentions |italic| or % |frenchmath| (here and at some other locations above). @@ -11311,7 +11535,8 @@ defaultbf,defaultit,defaultsf,defaulttt}} % \end{macro} % \let\temp~ % \def~{\rlap} -% \begin{macro}{Things to do last ~{``at begin document''}} +% \begin{macro}{Things to do last} +% \begin{macro}{``at begin document''} % \let~\temp % % \mstrelease{1.4} has a significant change here that mathematical @@ -11373,13 +11598,16 @@ defaultbf,defaultit,defaultsf,defaulttt}} \expandafter\let\csname mst@original@\@tempa\space\expandafter\endcsname \csname \@tempa\space\endcsname }% - \ifmst@XeOrLua - \edef\mst@subduedminus - {\mst@Umathcodenum`\noexpand\-=\the\mst@Umathcodenum`\-\relax}% - \else - \edef\mst@subduedminus{\mathcode`\noexpand\-=\the\mathcode`\-\relax}% - \fi +% \end{macrocode} +% \mstrelease{1.4c} has \cs{mst@mathcodenum} which is either alias of +% \cs{Umathcodenum} or of \cs{mathcode}. +% \begin{macrocode} + \edef\mst@subduedminus{\mst@mathcodenum`\noexpand\-=\the\mst@mathcodenum`\-\relax}% \ifmst@subdued +% \end{macrocode} +% This \cs{MTeverymathoff} does \cs{MTnonlettersdonotobeymathxx}, which has +% been already set to its final definition. +% \begin{macrocode} \MTeverymathoff \MTresetnewmcodes \MTnoicinmath @@ -11399,7 +11627,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} % As we are now in \cs{AtBeginDocument} we try to be careful not to overwrite % \cs{MTicinmath}, \cs{MTnoicinmath}, \cs{MTicalsoinmathxx}, ... if issued by % the user in the preamble, though. And we do not execute -% \cs{MTmathactiveletters}, it is issued by the package at loading time in +% \cs{MTmathactiveletters}, it is issued by \mst at loading time in % order to allow user to cancel it if desired from inside the preamble. % \begin{macrocode} \ifx\mst@itcorr\@undefined @@ -11419,7 +11647,7 @@ defaultbf,defaultit,defaultsf,defaulttt}} }% \AtEndOfPackage{\AtBeginDocument{\ifmst@subdued\else\mst@nonsubduedmathaccents\fi}}% % \end{macrocode} -% \end{macro} +% \end{macro}\end{macro} % \begin{macro}{subdued} % \mstrelease{1.15}: The subdued code was initiated in May 2011. I returned to % |mathastext| on Sep 24, 2012, and decided to complete what I had started diff --git a/macros/latex/contrib/mathastext/mathastext.pdf b/macros/latex/contrib/mathastext/mathastext.pdf Binary files differindex 635b6149fb..32ba2f3951 100644 --- a/macros/latex/contrib/mathastext/mathastext.pdf +++ b/macros/latex/contrib/mathastext/mathastext.pdf |