texlive[71834] Master/texmf-dist: fancyhdr (18jul24)

commits+karl at tug.org commits+karl at tug.org
Thu Jul 18 22:35:50 CEST 2024


Revision: 71834
          https://tug.org/svn/texlive?view=revision&revision=71834
Author:   karl
Date:     2024-07-18 22:35:50 +0200 (Thu, 18 Jul 2024)
Log Message:
-----------
fancyhdr (18jul24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/fancyhdr/README
    trunk/Master/texmf-dist/doc/latex/fancyhdr/fancyhdr.pdf
    trunk/Master/texmf-dist/source/latex/fancyhdr/fancyhdr.dtx
    trunk/Master/texmf-dist/tex/latex/fancyhdr/extramarks.sty
    trunk/Master/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty

Modified: trunk/Master/texmf-dist/doc/latex/fancyhdr/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/fancyhdr/README	2024-07-18 20:34:33 UTC (rev 71833)
+++ trunk/Master/texmf-dist/doc/latex/fancyhdr/README	2024-07-18 20:35:50 UTC (rev 71834)
@@ -27,7 +27,7 @@
 boxedminipage.sty (CTAN:/macros/latex/contrib/boxedminipage) and
 refcount.sty (CTAN:/macros/latex/contrib/oberdiek/) installed.
 
-This is version 4.2 of fancyhdr.sty and extramarks.sty. They are
+This is version 4.3 of fancyhdr.sty and extramarks.sty. They are
 described in the third edition of The LaTeX Companion.
 Extramarks.sty has not been changed, except for the version and
 copyright information.

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

Modified: trunk/Master/texmf-dist/source/latex/fancyhdr/fancyhdr.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fancyhdr/fancyhdr.dtx	2024-07-18 20:34:33 UTC (rev 71833)
+++ trunk/Master/texmf-dist/source/latex/fancyhdr/fancyhdr.dtx	2024-07-18 20:35:50 UTC (rev 71834)
@@ -26,7 +26,7 @@
 %<fancyhdr>\ProvidesPackage{fancyhdr}%
 %<fancyheadings>\ProvidesPackage{fancyheadings}
 %<extramarks>\ProvidesPackage{extramarks}
-%<fancyhdr|extramarks>           [2024/04/23 v4.2
+%<fancyhdr|extramarks>           [2024/07/18 v4.3
 %<fancyhdr>                  Extensive control of page headers and footers]%
 %<fancyheadings>           [2022/11/09 v4.1
 %<fancyheadings>                  Legacy package to call fancyhdr]
@@ -59,8 +59,6 @@
 \def\pAmS{{\the\textfont2
         A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}}
 \def\amslatex/{\ams/-\latex/}
-\newcommand{\PSNFSS}{{\sf
-    PSNFSS}}
 \newcommand{\bs}{\symbol{'134}}
 \newcommand{\env}[1]{\texttt{#1}}
 \newcommand{\Package}[1]{\textsf{#1}}
@@ -206,7 +204,7 @@
 % \DoNotIndex{\#,\$,\%,\&,\@,\\,\{,\},\^,\_,\~,\ }
 % \DoNotIndex{\@ne}
 % \DoNotIndex{\advance,\begingroup,\catcode,\closein}
-% \DoNotIndex{\closeout,\day,\def,\edef,\else,\empty,\endgroup}
+% \DoNotIndex{\closeout,\day,\def,\edef,\else,\empty,\@empty,\endgroup}
 %
 % \title{The \Package{fancyhdr} and \Package{extramarks}
 % packages\\{\normalsize version \fileversion.}}
@@ -228,7 +226,7 @@
 %
 %   This documentation describes version 4.0 or later of the
 % \Package{fancyhdr} and \Package{extramarks} packages. The user
-% documentation is valid for the versions 3.8 or later of the
+% documentation is valid for the versions 4.0 or later of the
 % \Package{fancyhdr} package (except for the changes mentioned in
 % section~\ref{sec:version-4}), and version 2.1 or later of the
 % \Package{extramarks} package.
@@ -253,11 +251,11 @@
 %
 % Part IV contains the annotated implementation.
 %
-% This document describes version 4 of \Package{fancyhdr}. This version
-% is also described in the forthcoming edition 3 of \textit{The \latex/ Companion},
-% whereas the previous editions describe version 3 of \Package{fancyhdr}.
-% There are some significant differences between these versions. These
-% are summarized in section~\ref{sec:version-4} on page~\pageref{sec:version-4}.
+% This document describes version 4 of \Package{fancyhdr}, which is described in
+% the \emph{The \LaTeX{} Companion, Third Edition}.
+% The differences between this version and previous versions
+% are summarized in section~\ref{sec:version-4} on
+% page~\pageref{sec:version-4}.
 % Throughout this documentation it is mentioned when a specific feature
 % is only available in version 4, or when there are differences between
 % version 3 and 4.
@@ -304,16 +302,14 @@
 % \OPTindex{twoside}
 % \OPTindex{headings}
 % \OPTindex{myheadings}
-% \DescribeMacro{\fancyhead}
-% \DescribeMacro{\fancyfoot}
-% \DescribeMacro{\fancyhf}
-% \begin{verbatim}
-% \fancyhead[places]{field}
-% \fancyfoot[places]{field}
-% \fancyhf[places]{field}
-% \end{verbatim}
-% Here \texttt{places} is a comma-separated list of places where
-% \texttt{field} will be placed. There are 12 places defined: Left,
+%
+% \begin{flushleft}
+%   \DescribeMacro{\fancyhead}\cmd{\fancyhead}\oarg{places}\marg{field} \\
+%   \DescribeMacro{\fancyfoot}\cmd{\fancyfoot}\oarg{places}\marg{field} \\
+%   \DescribeMacro{\fancyhf}\cmd{\fancyhf}\oarg{places}\marg{field}
+% \end{flushleft}
+% Here \meta{places} is a comma-separated list of places where
+% \meta{field} will be placed. There are 12 places defined: Left,
 % Center and Right Headers and Footers, and both can be on Even or Odd
 % pages. Each place therefore has 3 coordinates which are the inital
 % letters of the above description: (1) \texttt{E} or \texttt{O}, (2) \texttt{L}, \texttt{C} or
@@ -321,14 +317,12 @@
 % letters, like \texttt{EOH}. A missing coordinate means: all
 % possibilities, except for \cs{fancyhead} where \texttt{H} is implied
 % and \cs{fancyfoot} where \texttt{F} is implied.
-% \DescribeMacro{\fancyheadoffset}
-% \DescribeMacro{\fancyfootoffset}
-% \DescribeMacro{\fancyhfoffset}
-% \begin{verbatim}
-% \fancyheadoffset[places]{field}
-% \fancyfootoffset[places]{field}
-% \fancyhfoffset[places]{field}
-% \end{verbatim}
+%
+% \begin{flushleft}
+%   \DescribeMacro{\fancyheadoffset}\cmd{\fancyheadoffset}\oarg{places}\marg{length} \\
+%   \DescribeMacro{\fancyfootoffset}\cmd{\fancyfootoffset}\oarg{places}\marg{length} \\
+%   \DescribeMacro{\fancyhfoffset}\cmd{\fancyhfoffset}\oarg{places}\marg{length}
+% \end{flushleft}
 % These define offsets to let the headers stick into the margin (or to
 % the inside if negative). Places cannot contain the \texttt{C}
 % specifier. See section~\ref{sec:book-examples} for more details.
@@ -340,7 +334,6 @@
 % \DescribeMacro{\headrule}
 % \DescribeMacro{\footrule}
 % \DescribeMacro{\headwidth}
-%
 % \cs{headrulewidth} and \cs{footrulewidth} are macros to define the
 % thickness of a line under the header and above the footer.
 % \cs{headruleskip} and \cs{footruleskip} are macros that define the
@@ -353,7 +346,6 @@
 % \DescribeMacro{\fancyheadinit}
 % \DescribeMacro{\fancyfootinit}
 % \DescribeMacro{\fancyhfinit}
-%
 % \cs{fancyheadinit} and \cs{fancyfootinit} can be used to define
 % initialisation code for the header and footer, respectively, and
 % \cs{fancyhfinit} defines both of these. These commands are only
@@ -367,7 +359,6 @@
 % \DescribeMacro{\ifbotfloat}
 % \DescribeMacro{\iffloatpage}
 % \DescribeMacro{\iffootnote}
-%
 % The macros \cs{iftopfloat}, \cs{ifbotfloat}, \cs{iffloatpage} and
 % \cs{iffootnote} are used to detect if there is a float on the top or
 % the bottom of the page, or the page is a float page, or if there is
@@ -375,10 +366,10 @@
 % different headers and/or footers if these conditions are met. See
 % section~\ref{sec:float} for more details.
 %
-% \begin{quote}
-% \DescribeMacro{\fancypagestyle}
-% \verb|\fancypagestyle|\marg{style-name}\oarg{base-style}\marg{definitions}
-% \end{quote}
+% \begin{flushleft}
+%   \DescribeMacro{\fancypagestyle}
+%   \cmd{\fancypagestyle}\marg{style-name}\oarg{base-style}\marg{definitions}
+% \end{flushleft}
 % This command lets you (re)define page styles for use in special
 % situations. See section~\ref{sec:fancypagestyle} for more details.
 %
@@ -393,13 +384,6 @@
 % \DescribeMacro{\lastrightmark}
 % \DescribeMacro{\firstrightmark}
 % \DescribeMacro{\lastleftmark}
-% \begin{verbatim}
-% \firstleftmark
-% \lastrightmark
-% \firstrightmark
-% \lastleftmark
-% \end{verbatim}
-%
 % Standard \latex/ has two marks: a left and a right one. The standard
 % command \cs{leftmark} gives you the last left mark on a page, and
 % \cs{rightmark} gives you the first right one. These macros give you
@@ -486,7 +470,7 @@
 %
 % The page headers and footers in \LaTeX{} are defined by the
 % \cs{pagestyle} and \cs{pagenumbering} commands. \cs{pagestyle}
-% defines the general contents of the headers and footers (e.g. where the
+% defines the general contents of the headers and footers (e.g.\ where the
 % page number will be printed), while
 % \cs{pagenumbering} defines the format of the page number.
 % \LaTeX{} has four standard page styles:
@@ -527,7 +511,7 @@
 %
 % These are not user commands, but rather ``variables'' that are used by
 % \latex/'s output routine.
-% As the command names contain the character '\texttt{@}', they should
+% As the command names contain the character `\texttt{@}', they should
 % be defined in a package file, or otherwise be sandwiched between the commands
 % \cs{makeatletter} and \cs{makeatother}.
 %
@@ -605,6 +589,12 @@
 % We define each of the six ``fields'' and the two decorative lines
 % separately.
 %
+% \begin{fblock}
+%   \textbf{NOTE:} In \Package{fancyhdr} version 4.3 and later, paragraph
+% hooks will not work inside \Package{fancyhdr} headers and footers to
+% avoid unwanted interactions with the main text.
+% \end{fblock}
+%
 % \section{A simple example}
 % \label{sec:simple}
 %
@@ -784,7 +774,7 @@
 % for which pages and/or parts of the header/footer they apply. The first
 % \cs{fancyhead} command above omits this parameter, and thus applies to all
 % header fields. In general this is only useful to get rid of the defaults or
-% a previous definition, as is done here. Similar the \cs{fancyfoot} command
+% a previous definition, as is done here. Similarly the \cs{fancyfoot} command
 % without square brackets clears all footer fields. In this particular
 % example it could be omitted as all footer fields have a value specified.
 % The selectors that can be used
@@ -846,7 +836,7 @@
 % \cs{ps at plain} command, but \Package{fancyhdr} gives you an easier way
 % with the \cs{fancypagestyle} command. This command can be used to
 % redefine existing page styles (like \texttt{plain}) or to define new ones,
-% e.g. if part of your document needs a different page style. This command
+% e.g.\ if part of your document needs a different page style. This command
 % has two mandatory parameters: the first one is the name of the page style to be defined, the
 % second consists of commands that change the headers and/or footers, i.e.,
 % \verb|\fancyhead| etc. Also allowed are changes to \cs{headrulewidth} and
@@ -1105,8 +1095,8 @@
 % section and subsection information (section only for one-sided
 % printing).  \latex/ uses a marker mechanism to remember the chapter and
 % section (section and subsection) information for a page; this is
-% discussed in detail in \textit{The \latex/ Companion}, Section 4.3.1, or
-% \textit{The \latex/ Companion, Second Edition}, Section 4.3.4.
+% discussed in detail in \emph{The \LaTeX{} Companion, Third Edition},
+% section 5.3.4 (Part I).
 %
 % There are two ways you can use and change the higher- and lower-level
 % sectioning information available to you.  The macros:
@@ -1263,7 +1253,7 @@
 %
 % As an example let's take a page layout where the leftmarks are generated by
 % the sections and the rightmarks by the subsections (as is default in the
-% \texttt{article} class). Take a page with some short sections, e.g.
+% \texttt{article} class). Take a page with some short sections, e.g.,
 %
 % \begin{samepage}
 % \noindent Section 1.\\
@@ -1294,7 +1284,7 @@
 % \end{verbatim}
 %
 % Another problem with the marks in the standard \latex/ classes is that the
-% higher level sectioning commands (e.g. \cs{chapter}) call
+% higher level sectioning commands (e.g.\ \cs{chapter}) call
 % \cs{markboth} with an empty right argument. This means that on the first
 % page of a chapter (or a section in article style) the \cs{rightmark}
 % will be empty. The underlying problem is that the \tex/ machinery has
@@ -1310,7 +1300,7 @@
 % \cs{chapter} etc.\ commands do \emph{not} call the mark commands. So if
 % you want your preface to set the header info but not be numbered nor be put in
 % the table of contents, you must issue the \cs{markboth} command
-% yourself, e.g.
+% yourself, e.g.,
 %
 % \begin{verbatim}
 % \chapter*{Preface}
@@ -1378,7 +1368,8 @@
 % \footnote{If you use \texttt{11pt} or \texttt{12pt} you will probably also
 %   have to do this, because \LaTeX's defaults are quite small}. See the
 % warning below.
-% See also Section 4.1 of the \latex/ \emph{Companion} for detail.
+% See also section 5.1 and 5.2 of the \LaTeX{} \emph{Companion, Third Edition}, (Part I)
+% for detail.
 %
 % For instance, the following code will place  the section title and the
 % subsection title of an article in two lines in the upper right hand
@@ -1626,7 +1617,7 @@
 % in the neighborhood of your header/footer definitions, unless you
 % already use such an \texttt{\ldots offset} command, of course.
 % \vspace{\baselineskip}
-% 
+%
 % For the second example, we take the \amslatex/ book\footnote{George Gratzer,
 % \textit{Math into LaTeX, An Introduction to \LaTeX{} and \amslatex/}, Birkhauser, Boston.}.
 %
@@ -1661,18 +1652,19 @@
 % \renewcommand{\footrulewidth}{0pt}
 % \end{verbatim}
 %
-% The font used in the headers is 9 pt bold Helvetica.  The \PSNFSS\ system
-% by Sebastian Rahtz uses the short (Karl Berry) name \verb|phv| for
-% Helvetica, so this font is selected with the commands:
+% The font used in the headers is 9 pt bold Helvetica.  The \textsf{PSNFSS} system
+% (originally by the late Sebastian Rahtz) uses the short (Karl Berry) name \texttt{phv} for
+% Helvetica. The more modern \LaTeX{} solution is to use the \TeX{} Gyre font
+% Heros, which uses the short name \texttt{qhv} so this font is selected with the commands^^A
+% \footnote{See \emph{The \LaTeX{} Companion, Third Edition}, Part I, section
+% 9.5.2, and Part II, section 10.8.16.}:
 % \begin{verbatim}
-% \fontfamily{phv}\fontseries{b}\fontsize{9}{11}\selectfont
+% \fontfamily{qhv}\fontseries{b}\fontsize{9}{11}\selectfont
 % \end{verbatim}
-% (See Sections 7.6.1 and 11.9.1 of the \latex/ \emph{Companion} or
-% Sections 7.6 and 7.9.1 of \emph{The \latex/ Companion, Second Edition}.)
 % Let us define a shorthand for this:
 % \begin{verbatim}
 % \newcommand{\helv}{%
-%    \fontfamily{phv}\fontseries{b}\fontsize{9}{11}\selectfont}
+%    \fontfamily{qhv}\fontseries{b}\fontsize{9}{11}\selectfont}
 % \end{verbatim}
 %
 % Now we are ready for the page layout:
@@ -1688,7 +1680,7 @@
 % \renewcommand{\headrulewidth}{0.5pt}
 % \renewcommand{\footrulewidth}{0pt}
 % \newcommand{\helv}{%
-%    \fontfamily{phv}\fontseries{b}\fontsize{9}{11}\selectfont}
+%    \fontfamily{qhv}\fontseries{b}\fontsize{9}{11}\selectfont}
 % \fancyhf{}
 % \fancyhead[LE,RO]{\helv \thepage}
 % \fancyhead[LO]{\helv \rightmark}
@@ -1719,6 +1711,21 @@
 % \renewcommand{\headrulewidth}{\iffloatpage{0pt}{0.4pt}}
 % \end{verbatim}
 %
+% \textbf{NOTE:} There is also a package \TTindex{floatpag}%
+% \Package{floatpag}\footnote{\url{https://www.ctan.org/pkg/floatpag}} by Vytas
+% Statulevičius and Sigitas Tolušis that has a command
+% \cs{floatpagestyle}\marg{pagestyle}, that applies \meta{pagestyle} to
+% all float pages, where \meta{pagestyle} can be defined with
+% \cs{fancypagestyle} (or by any other means).
+%
+% \textbf{NOTE:} There is also a package \TTindex{floatpag}%
+% \Package{floatpag}\footnote{\url{https://www.ctan.org/pkg/floatpag}} by Vytas
+% Statulevičius and Sigitas Tolušis that has a command
+% \cs{floatpagestyle}\marg{pagestyle}, that applies \meta{pagestyle} to
+% all float pages, where \meta{pagestyle} can be defined with
+% \cs{fancypagestyle} (or by any other means). In some cases this might
+% be simpler than putting \cs{iffloatpage} in various headers or footers.
+%
 % Sometimes you may want to change the layout also for pages that contain a
 % float on the top of the page, a float on the bottom of the page or a footnote on the bottom of the page.
 %
@@ -1848,6 +1855,7 @@
 % \CmdIndex{pagenumbering}
 %
 % \begin{verbatim}
+% \clearpage
 % \pagenumbering[\thesection]{bychapter}
 % \end{verbatim}
 %
@@ -1854,6 +1862,9 @@
 % What the package also does is reset the page number to 1 at the beginning
 % of each chapter.
 %
+% In general it is advisable to give a \cs{clearpage} or
+% \cs{cleardoublepage} before changing the page numbering.
+%
 % In the frontmatter of your document (for example the Table of
 % Contents) there will be no chapter numbers. Therefore a simple page
 % number will be used there. This may be confusing, so you might prefer to use roman pagenumbers
@@ -2601,7 +2612,7 @@
 % \end{enumerate}
 %
 % In the first two cases you must first check if you have given the correct
-% ``placement'' parameter to you float, e.g. \Cmd{begin\{figure\}[htp]}
+% ``placement'' parameter to you float, e.g.\ \Cmd{begin\{figure\}[htp]}
 % specifies that your figure may be placed either: Here (i.e., in the text
 % position where the command is given), on the Top of a page (which may be
 % the page where you put the command), or on a separate Page of floats. You
@@ -2660,7 +2671,7 @@
 % than 50\% of the page height it will have to wait until some more floats
 % are given before a float page can be filled to satisfy the
 % \cs{floatpagefraction} parameter. If you have this kind of behaviour you
-% can easily adapt the parameters, e.g. with:
+% can easily adapt the parameters, e.g.\ with:
 % \begin{verbatim}
 % \renewcommand{\textfraction}{0.05}
 % \renewcommand{\topfraction}{0.95}
@@ -2673,7 +2684,7 @@
 %
 % You can force \latex/ to ignore most of the parameters for one specific float
 % occurrence by
-% including an exclamation mark (!) in the placement parameters, e.g.
+% including an exclamation mark (!) in the placement parameters, e.g.,
 % \begin{verbatim}
 % \begin{figure}[!htb]
 % \end{verbatim}
@@ -2811,7 +2822,7 @@
 % normal text rather than a \cs{caption}, so that it will not be entered in
 % the list of figures. It may also be desirable to issue a \cs{clearpage}
 % first, just like we did for the \texttt{longtable}, and to encapsulate this
-% in the \cs{afterpage} command. E.g.
+% in the \cs{afterpage} command. E.g.,
 % \begin{verbatim}
 % \afterpage{\clearpage\input{myfigure}}
 % \end{verbatim}
@@ -2832,7 +2843,7 @@
 %
 % You have to make sure that the last part is big enough, otherwise \LaTeX{}
 % could decide to postpone it until it has collected some more floats. This
-% can be done either by making the figure big enough (e.g. by adding some
+% can be done either by making the figure big enough (e.g.\ by adding some
 % \cs{vspace}), or by tweaking the \cs{floatpagefraction}
 % \CmdIndex{floatpagefraction} parameter.
 %
@@ -3054,9 +3065,20 @@
 %         \cs{input} in headers/footers when \texttt{verbatim} is active.
 %         (Issue \# 8 \url{https://github.com/pietvo/fancyhdr/issues/8}.)
 %   \end{itemize}
+% \item Version 4.3, July 17, 2024
+%   \begin{itemize}
+%   \item Changed \cs{f at nch@everypar}. If the LaTeX kernel has
+% \texttt{expl3}, use \cs{tex\_everypar:D}, and reset \cs{par},
+% \cs{@@par} and \cs{endgraf} to their original \TeX{} definitions, so that
+% no paragraph hooks will intrude in \Package{fancyhdr} code\footnote
+% {See \url{https://tex.stackexchange.com/q/691262/113546}}.
+% Therefore paragraph hooks will not work inside \Package{fancyhdr} headers and
+% footers to avoid unwanted interactions with the main text.
+%   \end{itemize}
 % \end{itemize}
 %
 %
+%
 % \StopEventually{%
 % \PrintChanges
 % \PrintIndex}
@@ -3648,26 +3670,8 @@
 \ProcessOptions*
 %    \end{macrocode}
 %
-% \begin{macro}{\f at nch@errmsg}
-%   This macro generates an error message.
-% \changes{fancyhdr v3.10}{2019/01/25}{Use \cs{f at nch@ifundefined} instead of \cs{ifx}.}
-% \changes{fancyhdr v3.10}{2019/01/25}{Use \cs{newcommand} instead of \cs{def}.}
-%    \begin{macrocode}
-\newcommand\f at nch@errmsg[1]{%
-  \f at nch@ifundefined{PackageError}{\errmessage{#1}}{\PackageError{fancyhdr}{#1}{}}}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\f at nch@warning}
-% This macro generates a warning.
-% \changes{fancyhdr v3.10}{2019/01/25}{Use \cs{f at nch@ifundefined} instead of \cs{ifx}.}
-% \changes{fancyhdr v3.10}{2019/01/25}{Use \cs{newcommand} instead of \cs{def}.}
-%    \begin{macrocode}
-\newcommand\f at nch@warning[1]{%
-  \f at nch@ifundefined{PackageWarning}{\errmessage{#1}}{\PackageWarning{fancyhdr}{#1}{}}}
-%    \end{macrocode}
-% \end{macro}
-%
+% \changes{fancyhdr v4.3}{2024/05/08}{Removed \cs{f at nch@errmsg} and
+% \cs{f at nch@warning} and used \cs{PackageError} and \cs{PackageWarning} directly.}
 % \begin{macro}{\f at nch@forc}
 %   Usage: \cs{f at nch@forc} \cs{var} \texttt{\{charstring\}\{body\}}.\\
 %   Execute the body for each character in \texttt{charstring} bound
@@ -3766,7 +3770,7 @@
   \if at twoside\else
     \iff at nch@twoside\else
       \if\f at nch@@eo e%
-        \f at nch@warning {\string#1's `E' option without twoside option is useless.\MessageBreak
+        \PackageWarning{fancyhdr} {\string#1's `E' option without twoside option is useless.\MessageBreak
           Please consider using the `twoside' option}%
   \fi\fi\fi
 }
@@ -3791,8 +3795,8 @@
   \f at nch@forc\tmpf at ra{#3}%
   {\expandafter\f at nch@ifin\tmpf at ra{eolcrhf,EOLCRHF}%
     {}{\edef\temp at c{\temp at c\tmpf at ra}}}%
-  \ifx\@empty\temp at c\else \f at nch@errmsg{Illegal char `\temp at c' in
-    \string#1 argument: [#3]}%
+  \ifx\@empty\temp at c\else \PackageError{fancyhdr}{Illegal char `\temp at c' in
+    \string#1 argument: [#3]}{}%
   \fi \f at nch@for\temp at c{#3}%
   {\f at nch@default\f at nch@@eo{eo}\temp at c
     \f at nch@fancyhf at Echeck{#1}%
@@ -3827,8 +3831,8 @@
   \f at nch@forc\tmpf at ra{#3}%
   {\expandafter\f at nch@ifin\tmpf at ra{eolrhf,EOLRHF}%
     {}{\edef\temp at c{\temp at c\tmpf at ra}}}%
-  \ifx\@empty\temp at c\else \f at nch@errmsg{Illegal char `\temp at c' in
-    \string#1 argument: [#3]}%
+  \ifx\@empty\temp at c\else \PackageError{fancyhdr}{Illegal char `\temp at c' in
+    \string#1 argument: [#3]}{}%
   \fi \f at nch@for\temp at c{#3}%
   {\f at nch@default\f at nch@@eo{eo}\temp at c
     \f at nch@fancyhf at Echeck{#1}%
@@ -4000,6 +4004,10 @@
 % \begin{macro}{\f at nch@raggedright}
 % \begin{macro}{\f at nch@centering}
 % \begin{macro}{\f at nch@everypar}
+% \changes{fancyhdr v4.3}{2024/07/17}{Changed \cs{f at nch@everypar}. If the
+% LaTeX kernel has  expl3, use \cs{tex\_everypar:D}, and reset \cs{par},
+% \cs{@@par} and \cs{endgraf} to their original \TeX{} definitions, so that
+% no paragraph hooks will intrude in \Package{fancyhdr} code.}
 % Save the standard definitions of \cs{raggedleft}, \cs{raggedright},
 % \cs{centering} and \cs{everypar} so that we can reset them when we are
 % typesetting the headers and footers. Some packages change these to
@@ -4008,7 +4016,22 @@
 \let\f at nch@raggedleft\raggedleft
 \let\f at nch@raggedright\raggedright
 \let\f at nch@centering\centering
-\let\f at nch@everypar\everypar
+\ifdefined\ExplSyntaxOn
+  \ExplSyntaxOn
+  \let\f at nch@everypar\tex_everypar:D
+  \newcommand\f at nch@resetpar{%
+    \f at nch@everypar{}%
+    \cs_set_eq:NN \par     \tex_par:D
+    \cs_set_eq:NN \@@par   \tex_par:D
+    \cs_set_eq:NN \endgraf \tex_par:D
+  }
+  \ExplSyntaxOff
+\else
+  \let\f at nch@everypar\everypar
+  \newcommand\f at nch@resetpar{%
+    \f at nch@everypar{}%
+  }
+\fi
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
@@ -4044,8 +4067,10 @@
 %   \changes{fancyhdr v4.2}{2024/04/19}{Reset catcodes to their default
 %   values in order to facilitate \cs{input} in headers/footers when \texttt{verbatim}
 %   is active. (Issue \# 8 \url{https://github.com/pietvo/fancyhdr/issues/8}.)}
+%   \changes{fancyhdr v4.3}{2024/05/08}{Remove pre-NFSS stuff}
+%   \changes{fancyhdr v4.3}{2024/07/17}{Replace \cs{f at nch@everypar} by \cs{f at nch@resetpar}.}
 %    \begin{macrocode}
-\def\f at nch@reset{\f at nch@everypar{}\restorecr\endlinechar=13
+\def\f at nch@reset{\f at nch@resetpar\restorecr\endlinechar=13
   \catcode`\\=0\catcode`\{=1\catcode`\}=2\catcode`\$=3\catcode`\&=4
   \catcode`\#=6\catcode`\^=7\catcode`\_=8\catcode`\ =10\catcode`\@=11
   \catcode`\:=11\catcode`\~=13\catcode`\%=14
@@ -4061,10 +4086,8 @@
       \expandafter\def\csname MakeUppercase\space\space\space\endcsname
                                                    [####1]####2{####2}%
       ##1}}%
-  \f at nch@ifundefined{@newbaseline} % NFSS not present; 2.09 or 2e
-  {\f at nch@ifundefined{@normalsize} {\normalsize} % for ucthesis.cls
-   {\@normalsize}}%
-  {\@newbaseline}% NFSS (2.09) present
+  \f at nch@ifundefined{@normalsize} {\normalsize} % for ucthesis.cls
+   {\@normalsize}%
   }
 %    \end{macrocode}
 % \end{macro}
@@ -4213,7 +4236,7 @@
 %    \begin{macrocode}
     \iff at nch@check
       \dimen0=#1\advance\dimen0-\ht0
-      \f at nch@warning{%
+      \PackageWarning{fancyhdr}{%
         \string#1 is too small (\the#1): \MessageBreak
         Make it at least \the\ht0, for example:\MessageBreak
         \string\setlength{\string#1}{\the\ht0}%
@@ -4309,7 +4332,7 @@
 %   \cs{color} command. The \cs{ignorespaces} skips initial spaces in
 %   the parameter, as is usual in a \cs{parbox}, for backwards compatibility.}
 % We put the \cs{footrule} in a \cs{vbox} to accommodate for flexible
-% footrules (e.g. using \cs{hrulefill}), so that the \cs{headwidth} will
+% footrules (e.g.\ using \cs{hrulefill}), so that the \cs{headwidth} will
 % be used as the line width. But to preserve the vertical spacing we
 % then \cs{unvbox} this box.
 %
@@ -4348,7 +4371,7 @@
 % \end{macro}
 %
 % \begin{macro}{\@chapapp}
-% Define \cs{@chapapp} for classes that don't have it, e.g. amsbook
+% Define \cs{@chapapp} for classes that don't have it, e.g.\ amsbook
 %    \begin{macrocode}
 \f at nch@ifundefined{@chapapp}{\let\@chapapp\chaptername}{}%
 %    \end{macrocode}
@@ -4660,9 +4683,10 @@
 % \begin{macro}{\iffootnote}
 % These can be used in a header/footer field to make them conditional on
 % the presence of floats and/or footnotes.
+% \changes{fancyhdr v4.3}{2024/05/08}{Replace \cs{empty} with \cs{@empty}}
 %    \begin{macrocode}
-\newcommand\iftopfloat[2]{\ifx\topfloat\empty #2\else #1\fi}%
-\newcommand\ifbotfloat[2]{\ifx\botfloat\empty #2\else #1\fi}%
+\newcommand\iftopfloat[2]{\ifx\topfloat\@empty #2\else #1\fi}%
+\newcommand\ifbotfloat[2]{\ifx\botfloat\@empty #2\else #1\fi}%
 \newcommand\iffloatpage[2]{\if at fcolmade #1\else #2\fi}%
 \newcommand\iffootnote[2]{\iff at nch@footnote #1\else #2\fi}%
 %    \end{macrocode}
@@ -4688,10 +4712,10 @@
 %    \begin{macrocode}
 \long\def\f at nch@pagestyle#1[#2]#3{%
   \f at nch@ifundefined{ps@#2}{%
-    \f at nch@errmsg{\string\fancypagestyle: Unknown base page style `#2'}%
+    \PackageError{fancyhdr}{\string\fancypagestyle: Unknown base page style `#2'}{}%
   }{%
     \f at nch@ifundefined{f at nch@ps@#2-is-fancyhdr}{%
-      \f at nch@errmsg{\string\fancypagestyle: Base page style `#2' is not fancyhdr-based}%
+      \PackageError{fancyhdr}{\string\fancypagestyle: Base page style `#2' is not fancyhdr-based}{}%
     }%
     {%
       \@namedef{ps@#1}{\let\f at nch@gbl\relax\@nameuse{ps@#2}#3\relax}%

Modified: trunk/Master/texmf-dist/tex/latex/fancyhdr/extramarks.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/fancyhdr/extramarks.sty	2024-07-18 20:34:33 UTC (rev 71833)
+++ trunk/Master/texmf-dist/tex/latex/fancyhdr/extramarks.sty	2024-07-18 20:35:50 UTC (rev 71834)
@@ -21,7 +21,7 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesPackage{extramarks}
-           [2024/04/23 v4.2
+           [2024/07/18 v4.3
                   Extra marks for LaTeX]
 % Copyright (C) 1994-2024 by Pieter van Oostrum <pieter at vanoostrum.org>
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Modified: trunk/Master/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty	2024-07-18 20:34:33 UTC (rev 71833)
+++ trunk/Master/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty	2024-07-18 20:35:50 UTC (rev 71834)
@@ -21,7 +21,7 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesPackage{fancyhdr}%
-           [2024/04/23 v4.2
+           [2024/07/18 v4.3
                   Extensive control of page headers and footers]%
 % Copyright (C) 1994-2024 by Pieter van Oostrum <pieter at vanoostrum.org>
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -129,10 +129,6 @@
   }%
 }
 \ProcessOptions*
-\newcommand\f at nch@errmsg[1]{%
-  \f at nch@ifundefined{PackageError}{\errmessage{#1}}{\PackageError{fancyhdr}{#1}{}}}
-\newcommand\f at nch@warning[1]{%
-  \f at nch@ifundefined{PackageWarning}{\errmessage{#1}}{\PackageWarning{fancyhdr}{#1}{}}}
 \newcommand{\f at nch@forc}[3]{\expandafter\f at nchf@rc\expandafter#1\expandafter{#2}{#3}}
 \newcommand{\f at nchf@rc}[3]{\def\temp at ty{#2}\ifx\@empty\temp at ty\else
                                     \f at nch@rc#1#2\f at nch@rc{#3}\fi}
@@ -157,7 +153,7 @@
   \if at twoside\else
     \iff at nch@twoside\else
       \if\f at nch@@eo e%
-        \f at nch@warning {\string#1's `E' option without twoside option is useless.\MessageBreak
+        \PackageWarning{fancyhdr} {\string#1's `E' option without twoside option is useless.\MessageBreak
           Please consider using the `twoside' option}%
   \fi\fi\fi
 }
@@ -166,8 +162,8 @@
   \f at nch@forc\tmpf at ra{#3}%
   {\expandafter\f at nch@ifin\tmpf at ra{eolcrhf,EOLCRHF}%
     {}{\edef\temp at c{\temp at c\tmpf at ra}}}%
-  \ifx\@empty\temp at c\else \f at nch@errmsg{Illegal char `\temp at c' in
-    \string#1 argument: [#3]}%
+  \ifx\@empty\temp at c\else \PackageError{fancyhdr}{Illegal char `\temp at c' in
+    \string#1 argument: [#3]}{}%
   \fi \f at nch@for\temp at c{#3}%
   {\f at nch@default\f at nch@@eo{eo}\temp at c
     \f at nch@fancyhf at Echeck{#1}%
@@ -183,8 +179,8 @@
   \f at nch@forc\tmpf at ra{#3}%
   {\expandafter\f at nch@ifin\tmpf at ra{eolrhf,EOLRHF}%
     {}{\edef\temp at c{\temp at c\tmpf at ra}}}%
-  \ifx\@empty\temp at c\else \f at nch@errmsg{Illegal char `\temp at c' in
-    \string#1 argument: [#3]}%
+  \ifx\@empty\temp at c\else \PackageError{fancyhdr}{Illegal char `\temp at c' in
+    \string#1 argument: [#3]}{}%
   \fi \f at nch@for\temp at c{#3}%
   {\f at nch@default\f at nch@@eo{eo}\temp at c
     \f at nch@fancyhf at Echeck{#1}%
@@ -231,9 +227,24 @@
 \let\f at nch@raggedleft\raggedleft
 \let\f at nch@raggedright\raggedright
 \let\f at nch@centering\centering
-\let\f at nch@everypar\everypar
+\ifdefined\ExplSyntaxOn
+  \ExplSyntaxOn
+  \let\f at nch@everypar\tex_everypar:D
+  \newcommand\f at nch@resetpar{%
+    \f at nch@everypar{}%
+    \cs_set_eq:NN \par     \tex_par:D
+    \cs_set_eq:NN \@@par   \tex_par:D
+    \cs_set_eq:NN \endgraf \tex_par:D
+  }
+  \ExplSyntaxOff
+\else
+  \let\f at nch@everypar\everypar
+  \newcommand\f at nch@resetpar{%
+    \f at nch@everypar{}%
+  }
+\fi
 \newcommand\f at nch@noUppercase[2][]{#2}
-\def\f at nch@reset{\f at nch@everypar{}\restorecr\endlinechar=13
+\def\f at nch@reset{\f at nch@resetpar\restorecr\endlinechar=13
   \catcode`\\=0\catcode`\{=1\catcode`\}=2\catcode`\$=3\catcode`\&=4
   \catcode`\#=6\catcode`\^=7\catcode`\_=8\catcode`\ =10\catcode`\@=11
   \catcode`\:=11\catcode`\~=13\catcode`\%=14
@@ -249,10 +260,8 @@
       \expandafter\def\csname MakeUppercase\space\space\space\endcsname
                                                    [####1]####2{####2}%
       ##1}}%
-  \f at nch@ifundefined{@newbaseline} % NFSS not present; 2.09 or 2e
-  {\f at nch@ifundefined{@normalsize} {\normalsize} % for ucthesis.cls
-   {\@normalsize}}%
-  {\@newbaseline}% NFSS (2.09) present
+  \f at nch@ifundefined{@normalsize} {\normalsize} % for ucthesis.cls
+   {\@normalsize}%
   }
 \newcommand*{\fancycenter}[1][1em]{%
   \@ifnextchar[{\f at nch@center{#1}}{\f at nch@center{#1}[3]}%
@@ -302,7 +311,7 @@
   \ifdim\ht0>#1\relax
     \iff at nch@check
       \dimen0=#1\advance\dimen0-\ht0
-      \f at nch@warning{%
+      \PackageWarning{fancyhdr}{%
         \string#1 is too small (\the#1): \MessageBreak
         Make it at least \the\ht0, for example:\MessageBreak
         \string\setlength{\string#1}{\the\ht0}%
@@ -476,8 +485,8 @@
   \def\@makecol{\ifvoid\footins\f at nch@footnotefalse\else\f at nch@footnotetrue\fi
     \let\topfloat\@toplist\let\botfloat\@botlist\latex at makecol}%
 }
-\newcommand\iftopfloat[2]{\ifx\topfloat\empty #2\else #1\fi}%
-\newcommand\ifbotfloat[2]{\ifx\botfloat\empty #2\else #1\fi}%
+\newcommand\iftopfloat[2]{\ifx\topfloat\@empty #2\else #1\fi}%
+\newcommand\ifbotfloat[2]{\ifx\botfloat\@empty #2\else #1\fi}%
 \newcommand\iffloatpage[2]{\if at fcolmade #1\else #2\fi}%
 \newcommand\iffootnote[2]{\iff at nch@footnote #1\else #2\fi}%
 \newcommand{\fancypagestyle}[1]{%
@@ -485,10 +494,10 @@
 }
 \long\def\f at nch@pagestyle#1[#2]#3{%
   \f at nch@ifundefined{ps@#2}{%
-    \f at nch@errmsg{\string\fancypagestyle: Unknown base page style `#2'}%
+    \PackageError{fancyhdr}{\string\fancypagestyle: Unknown base page style `#2'}{}%
   }{%
     \f at nch@ifundefined{f at nch@ps@#2-is-fancyhdr}{%
-      \f at nch@errmsg{\string\fancypagestyle: Base page style `#2' is not fancyhdr-based}%
+      \PackageError{fancyhdr}{\string\fancypagestyle: Base page style `#2' is not fancyhdr-based}{}%
     }%
     {%
       \@namedef{ps@#1}{\let\f at nch@gbl\relax\@nameuse{ps@#2}#3\relax}%



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