texlive[61866] Master/texmf-dist: fnpct (3feb22)
commits+karl at tug.org
commits+karl at tug.org
Thu Feb 3 22:46:26 CET 2022
Revision: 61866
http://tug.org/svn/texlive?view=revision&revision=61866
Author: karl
Date: 2022-02-03 22:46:25 +0100 (Thu, 03 Feb 2022)
Log Message:
-----------
fnpct (3feb22)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/fnpct/README
trunk/Master/texmf-dist/doc/latex/fnpct/fnpct-manual.cls
trunk/Master/texmf-dist/doc/latex/fnpct/fnpct-manual.pdf
trunk/Master/texmf-dist/doc/latex/fnpct/fnpct-manual.tex
trunk/Master/texmf-dist/tex/latex/fnpct/fnpct.sty
Modified: trunk/Master/texmf-dist/doc/latex/fnpct/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/fnpct/README 2022-02-03 21:46:12 UTC (rev 61865)
+++ trunk/Master/texmf-dist/doc/latex/fnpct/README 2022-02-03 21:46:25 UTC (rev 61866)
@@ -1,5 +1,5 @@
--------------------------------------------------------------------------
-the FNPCT package v1.0b 2022/01/29
+the FNPCT package v1.1 2022/02/03
footnotes' interaction with punctuation
Modified: trunk/Master/texmf-dist/doc/latex/fnpct/fnpct-manual.cls
===================================================================
--- trunk/Master/texmf-dist/doc/latex/fnpct/fnpct-manual.cls 2022-02-03 21:46:12 UTC (rev 61865)
+++ trunk/Master/texmf-dist/doc/latex/fnpct/fnpct-manual.cls 2022-02-03 21:46:25 UTC (rev 61866)
@@ -23,7 +23,7 @@
% The Current Maintainer of this work is Clemens Niederberger.
% --------------------------------------------------------------------------
\RequirePackage[multiple]{fnpct}
-\ProvidesClass{fnpct-manual}[2021/01/17]
+\ProvidesClass{fnpct-manual}[2022/02/03]
\LoadClass[load-preamble,add-index]{cnltx-doc}
\RequirePackage{imakeidx}
@@ -327,5 +327,8 @@
\fnpct at add@version{2019-10-05}{0.5}
\fnpct at add@version{2020-01-12}{0.5a}
\fnpct at add@version{2021-01-21}{1.0}
+\fnpct at add@version{2022-01-04}{1.0a}
+\fnpct at add@version{2022-01-29}{1.0b}
+\fnpct at add@version{2022-02-03}{1.1}
\endinput
Modified: trunk/Master/texmf-dist/doc/latex/fnpct/fnpct-manual.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/fnpct/fnpct-manual.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/fnpct/fnpct-manual.tex 2022-02-03 21:46:12 UTC (rev 61865)
+++ trunk/Master/texmf-dist/doc/latex/fnpct/fnpct-manual.tex 2022-02-03 21:46:25 UTC (rev 61866)
@@ -105,7 +105,8 @@
behavior and the amount of kerning can be set for each punctuation mark
individually. This behavior can also be turned off.
-\subsection{Basics}
+\subsection{New Behavior of \cs*{footnote}}
+\subsubsection{Interaction With Punctuation}
The \fnpct\ package basically does two things to footnotes:
\begin{itemize}
\item if footnote marks are followed by a comma or a full stop\footnote{More
@@ -163,6 +164,20 @@
\caption{The effect of \fnpct.}\label{fig:effects}
\end{figure}
+\subsubsection{Space Before Footnotes}\label{sec:space-before}
+\fnpct\sinceversion{1.1} tries to help you in one more way: it removes a
+possible space before a footnote command:
+
+\begin{example}
+ The three little pigs built their houses out of straw \footnote{not to be
+ confused with hay}, sticks \footnote{or lumber according to some sources}
+ and bricks \footnote{probably fired clay bricks}.
+\end{example}
+
+For this behavior it uses \pkg{biblatex}'s (or \pkg{csquotes}') command
+\cs{unspace} if available. Otherwise it defines the command for itself. This
+behavior can be turned off by an option.
+
\subsection{Temporarily disable (or enable) switching -- new syntax of the
\cs*{footnote} command}
One maybe want to put some footnote marks \emph{before} the punctuation and
@@ -209,6 +224,9 @@
Switches of \fnpct's mechanism.
\keybool{reverse}\Default{false}
This option reverses the behavior of starred and un-starred footnotes.
+ \keybool{unspace}\Default{true}
+ \sinceversion{1.1}This option turns the behavior described in
+ section~\ref{sec:space-before} off or on.
\keybool{ranges}\Default{false}
Activates ranges for multiple footnotes. This is not compatible with
\pkg{hyperref} and does not work for the marks of some packages.
@@ -356,6 +374,14 @@
confused with hay}, sticks\footnote{or lumber according to some sources}
and bricks\multfootnote{probably fired clay bricks;or something else}.
\end{example}
+\begin{options}
+ \keyval{mult-variant-prefix}{letters}\Default{mult}
+ \sinceversion{1.1}Determines how the variant commands created by the
+ \option{multiple} option are named. Choosing
+ \keyis{mult-variant-prefix}{m} would create \cs*{mfootnote} etc.\@ instead
+ of \cs{multfootnote}.
+\end{options}
+
This command splits its content at every occurrence of \code{;} and creates a
footnote for each. This delimiter can be changed:
\begin{options}
@@ -591,6 +617,7 @@
\IfNoValueTF{#2}
{#NOTE*{#4}}
{\IfNoValueTF{#3}{#NOTE*[#2]{#4}}{#NOTE*[#2][#3]{#4}}}%
+ }%
}
\end{sourcecode}
Testing showed no problems whatsoever but \fnpct\ does not adapt the command
Modified: trunk/Master/texmf-dist/tex/latex/fnpct/fnpct.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/fnpct/fnpct.sty 2022-02-03 21:46:12 UTC (rev 61865)
+++ trunk/Master/texmf-dist/tex/latex/fnpct/fnpct.sty 2022-02-03 21:46:25 UTC (rev 61866)
@@ -27,10 +27,10 @@
\DeclareHookRule {begindocument} {fnpct} {after} {hyperref}
-\tl_const:Nn \c_fnpct_date_tl {2022/01/29}
+\tl_const:Nn \c_fnpct_date_tl {2022/02/03}
\tl_const:Nn \c_fnpct_version_major_number_tl {1}
-\tl_const:Nn \c_fnpct_version_minor_number_tl {0}
-\tl_const:Nn \c_fnpct_version_subrelease_tl {b}
+\tl_const:Nn \c_fnpct_version_minor_number_tl {1}
+\tl_const:Nn \c_fnpct_version_subrelease_tl {}
\tl_const:Nx \c_fnpct_version_number_tl
{
\c_fnpct_version_major_number_tl .
@@ -85,6 +85,7 @@
\bool_new:N \g__fnpct_multiple_bool
\bool_new:N \g__fnpct_text_bool
\bool_new:N \l__fnpct_debug_bool
+\bool_new:N \l__fnpct_unspace_bool
\tl_new:N \l_fnpct_action_tl
\tl_new:N \l_fnpct_last_action_tl
@@ -93,7 +94,7 @@
\tl_new:N \l__fnpct_range_tl
\tl_new:N \l__fnpct_separate_tl
\tl_new:N \l__fnpct_multiple_footnotes_delimiter_tl
-\tl_set:Nn \l__fnpct_multiple_footnotes_delimiter_tl {;}
+\tl_new:N \l__fnpct_mult_variant_prefix_tl
\tl_new:N \g__fnpct_this_note_tl
\prop_new:N \l__fnpct_trailing_tokens_prop
@@ -123,11 +124,12 @@
You~ need~ to~ use~ \token_to_str:N \usepackage [#1] {fnpct} .
}
-\msg_new:nnn {fnpct} {unknown-option}
+\msg_new:nnn {fnpct} {unknown-load-time-option}
{
Unknown~ option~ `#1'! \\
I~ don't~ know~ the~ option~ `#1'.~ Please~ make~ sure~ there~ is~ no~
- typo.~ Check~ the~ manual~ for~ help.
+ typo.~ Check~ the~ manual~ for~ help.~ Did~ you~ mean~ to~ use~ it~ in~
+ \token_to_str:N \setfnpct ?
}
\msg_new:nnn {fnpct} {dont-mess-around}
@@ -198,7 +200,7 @@
\cs_new_protected:Npn \__fnpct_loadtime_warning:n #1
{ \msg_warning:nnV {fnpct} {#1} \l_keys_key_str }
-\keys_define:nn {fnpct/package}
+\keys_define:nn {fnpct/load-time}
{
multiple .bool_gset:N = \g__fnpct_multiple_bool ,
multiple .initial:n = false ,
@@ -213,12 +215,12 @@
dont-mess-around .default:n = true ,
dont-mess-around .initial:n = false ,
unknown .code:n =
- \__fnpct_loadtime_warning:n {unknown-option}
+ \__fnpct_loadtime_warning:n {unknown-load-time-option}
}
-\ProcessKeysPackageOptions {fnpct/package}
+\ProcessKeysPackageOptions {fnpct/load-time}
-\keys_define:nn {fnpct/package}
+\keys_define:nn {fnpct/load-time}
{
multiple .code:n = \__fnpct_loadtime_error:n {load-time-option} ,
debug .code:n = \__fnpct_loadtime_error:n {load-time-option} ,
@@ -277,7 +279,7 @@
\cs_generate_variant:Nn \fnpct_skip_nobreak:N {c}
% --------------------------------------------------------------------------
-% checking for trailing tokens - reuse an idea from acro
+% checking for trailing tokens - reuse an idea from `acro'
% #1: name
\cs_new_protected:Npn \fnpct_new_class:n #1
{
@@ -294,7 +296,7 @@
% #1: name
% #2: code
-\cs_new_protected:Npn \fnpct_do_action:nnw #1#2 \fnpct_end:
+\cs_new_protected:Npn \__fnpct_do_action:nnw #1#2 \fnpct_end:
{
\prop_if_in:NnTF \g__fnpct_actions_prop {#1}
{ \fnpct_end: \prop_item:Nn \g__fnpct_actions_prop {#1} }
@@ -301,7 +303,7 @@
{ \fnpct_end: \use:n }
{#2}
}
-\cs_generate_variant:Nn \fnpct_do_action:nnw {V}
+\cs_generate_variant:Nn \__fnpct_do_action:nnw {V}
% #1: name
% #2: class
@@ -678,9 +680,37 @@
\cs_new_protected:Npn \__fnpct_execute: {}
+\hook_gput_code:nnn {begindocument} {fnpct}
+ {
+ \bool_lazy_or:nnTF
+ { \fnpct_if_package_loaded_p:n {biblatex} }
+ { \fnpct_if_package_loaded_p:n {csquotes} }
+ {
+ \cs_new_protected:Npn \fnpct_unspace:
+ { \bool_if:NT \l__fnpct_unspace_bool { \unspace } }
+ }
+ {
+ \cs_new_protected:Npn \fnpct_unspace:
+ {
+ \bool_if:NT \l__fnpct_unspace_bool
+ {
+ \mode_if_horizontal:T
+ {
+ \dim_compare:nNnTF \lastskip > {0pt}
+ { \unskip \fnpct_unspace: }
+ {
+ \int_compare:nNnT \lastpenalty > {0pt}
+ { \unpenalty \fnpct_unspace: }
+ }
+ }
+ }
+ }
+ }
+ }
+
% #1: boolean
\cs_new_protected:Npn \fnpct_begin:
- { \__fnpct_check_after_end:w }
+ { \fnpct_unspace: \__fnpct_check_after_end:w }
% #1: code
\cs_new_protected:Npn \__fnpct_check_after_end:w #1 \fnpct_end:
@@ -692,7 +722,7 @@
\prop_get:NVN \l__fnpct_trailing_actions_prop
\l_fnpct_trailing_token_tl
\l_fnpct_action_tl
- \fnpct_do_action:Vnw \l_fnpct_action_tl {#1}
+ \__fnpct_do_action:Vnw \l_fnpct_action_tl {#1}
}
{
% no trailing punctuation
@@ -716,8 +746,7 @@
{
\bool_if:NF \l__fnpct_dont_mess_around_bool
{
- \fnpct_if_switched:F
- { \fnpct_add_punctuation_space:n {after} }
+ \fnpct_if_switched:F { \fnpct_add_punctuation_space:n {after} }
\bool_if:NF \l_fnpct_trailing_action_bool
{ % no punctiation following
\bool_if:NF \l__fnpct_end_collection_bool
@@ -758,7 +787,6 @@
% #1: command
% #2: argument spec
% #3: code where #NOTE refers to the original note
-
\cs_new_protected:Npn \fnpct_adapt_note:Nnn #1#2#3
{
\fnpct_if_adapted:NF #1
@@ -804,7 +832,7 @@
{
\bool_if:NTF \l__fnpct_reverse_bool
{ \bool_if:nF }
- { \bool_if:NT }
+ { \bool_if:nT }
{#1} { \bool_set_true:N \l__fnpct_switched_bool }
}
@@ -834,22 +862,17 @@
\NewDocumentCommand \AdaptNote {mmom}
{
\fnpct_adapt_note:Nnn #1 {#2} {#4}
- \IfNoValueF {#3}
- { \fnpct_set_counter_name:Nn #1 {#3} }
+ \IfNoValueF {#3} { \fnpct_set_counter_name:Nn #1 {#3} }
}
\NewDocumentCommand \AdaptNoteName {mmom}
{
\fnpct_adapt_note:cnn {#1} {#2} {#4}
- \IfNoValueF {#3}
- { \fnpct_set_counter_name:cn {#1} {#3} }
+ \IfNoValueF {#3} { \fnpct_set_counter_name:cn {#1} {#3} }
}
\NewDocumentCommand \AdaptText {mmm}
- {
- \fnpct_adapt_note:Nnn #1 {#2}
- { \fnpct_text: #3 }
- }
+ { \fnpct_adapt_note:Nnn #1 {#2} { \fnpct_text: #3 } }
\NewDocumentCommand \innernote {+m}
{ \msg_warning:nn {fnpct} {command-removed} \use:n {#1} }
@@ -890,17 +913,20 @@
keep-ranges .initial:n = false ,
dont-mess-around .bool_set:N = \l__fnpct_dont_mess_around_bool ,
dont-mess-around .initial:n = false ,
- mult-fn-delim .code:n =
- \tl_set:Nn \l__fnpct_multiple_footnotes_delimiter_tl {#1} ,
- separation-symbol .code:n =
- \renewcommand* \multfootsep {#1} ,
- range-symbol .code:n =
- \renewcommand* \multfootrange {#1} ,
+ unspace .bool_set:N = \l__fnpct_unspace_bool ,
+ unspace .initial:n = true ,
+ mult-fn-delim .tl_set:N = \l__fnpct_multiple_footnotes_delimiter_tl ,
+ mult-fn-delim .initial:n = {;} ,
+ mult-variant-prefix .tl_set:N = \l__fnpct_mult_variant_prefix_tl ,
+ mult-variant-prefix .initial:n = mult ,
+ separation-symbol .code:n = \renewcommand* \multfootsep {#1} ,
+ range-symbol .code:n = \renewcommand* \multfootrange {#1} ,
print-separation .tl_set:N = \l__fnpct_separate_tl ,
print-separation .initial:n = \textsuperscript { \multfootsep } ,
print-range .tl_set:N = \l__fnpct_range_tl ,
print-range .initial:n = \textsuperscript { \multfootrange } ,
reverse .bool_set:N = \l__fnpct_reverse_bool ,
+ punct-after .code:n = \fnpct_deprecate_option:n {reverse} ,
after-punct-space .code:n =
\fnpct_foreach_action:nn {punctuation}
{ \keys_set:nn {fnpct} { after-##1-space = #1 } } ,
@@ -946,7 +972,7 @@
\cs_new_protected:Npn \fnpct_create_mult_variant:N #1
{
\exp_args:Nc \NewDocumentCommand
- { mult \__fnpct_remove_backslash:N #1 }
+ { \l__fnpct_mult_variant_prefix_tl \__fnpct_remove_backslash:N #1 }
{ sm }
{
\seq_set_split:NVn \l__fnpct_tmpa_seq
@@ -1056,6 +1082,7 @@
{ \bool_set_true:N \l__fnpct_makepagenote_bool }
}
+% `sepfootnotes' package:
\fnpct_special_treatment:nn {sepfootnotes}
{
\cs_new_eq:NN \fnpct_sepfootnote_new:n \sep at new
@@ -1123,7 +1150,7 @@
{ \IfNoValueTF {#1} {#NOTE} {#NOTE[#1]} }
\fnpct_if_multiple:T { \MultVariant \sidenote }
}
- % sidenotes:
+ %% sidenotes:
\fnpct_treatment:nn {sidenotes}
{
% `sidenotes' implements its \sidenote in terms of the user
@@ -1131,6 +1158,7 @@
% difficult if not impossible to adapt its commands
\msg_warning:nnn {fnpct} {cannot-adapt} {sidenotes}
}
+ %% tufte-latex:
\bool_lazy_or:nnT
{ \fnpct_if_class_loaded_p:n {tufte-handout} }
{ \fnpct_if_class_loaded_p:n {tufte-book} }
@@ -1302,6 +1330,7 @@
}
}
}
+
\file_input_stop:
% --------------------------------------------------------------------------
@@ -1396,3 +1425,7 @@
future versions, depending on user feedback)
2022/01/04 v1.0a - correct file hooks
2022/01/29 v1.0b - remove erroneously inserted horizontal skip
+2022/02/03 v1.1 - add \fnpct_unspace: (similar/equal to biblatex's \unspace),
+ see https://tex.stackexchange.com/questions/467561/
+ - new option `mult-variant-prefix'
+ - new option `unspace'
More information about the tex-live-commits
mailing list.