From 95f3bfea27839033e3d7abd3fba2bba4dad16181 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 23 Dec 2013 23:29:19 +0000 Subject: fnpct (23dec13) git-svn-id: svn://tug.org/texlive/trunk@32474 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/fnpct/README | 4 +- Master/texmf-dist/doc/latex/fnpct/fnpct_en.pdf | Bin 590357 -> 590092 bytes Master/texmf-dist/doc/latex/fnpct/fnpct_en.tex | 22 ++-- Master/texmf-dist/tex/latex/fnpct/fnpct.sty | 156 +++++++++---------------- 4 files changed, 72 insertions(+), 110 deletions(-) (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/latex/fnpct/README b/Master/texmf-dist/doc/latex/fnpct/README index 3f8eb4c9f43..16d0aa601dc 100644 --- a/Master/texmf-dist/doc/latex/fnpct/README +++ b/Master/texmf-dist/doc/latex/fnpct/README @@ -1,9 +1,9 @@ -------------------------------------------------------------------------- -the FNPCT package v0.4 +the FNPCT package v0.4a footnote kerning -2013/12/22 +2013/12/23 -------------------------------------------------------------------------- Clemens Niederberger Web: https://bitbucket.org/cgnieder/fnpct/ diff --git a/Master/texmf-dist/doc/latex/fnpct/fnpct_en.pdf b/Master/texmf-dist/doc/latex/fnpct/fnpct_en.pdf index 9f9153837d6..9080ad5246a 100644 Binary files a/Master/texmf-dist/doc/latex/fnpct/fnpct_en.pdf and b/Master/texmf-dist/doc/latex/fnpct/fnpct_en.pdf differ diff --git a/Master/texmf-dist/doc/latex/fnpct/fnpct_en.tex b/Master/texmf-dist/doc/latex/fnpct/fnpct_en.tex index 2a403f925e5..938659e278c 100644 --- a/Master/texmf-dist/doc/latex/fnpct/fnpct_en.tex +++ b/Master/texmf-dist/doc/latex/fnpct/fnpct_en.tex @@ -2,7 +2,6 @@ % arara: biber % arara: pdflatex % arara: pdflatex -% !arara: remove: { items: [ aux ] } % -------------------------------------------------------------------------- % the FNPCT package % @@ -193,12 +192,17 @@ the full stop and the comma are moved a bit back. \begin{figure}[ht] \centering \begin{tabular}{>{\setfnpct{dont-mess-around}}ll} - without \fnpct & - with \fnpct \\ - \strut\quad text.\footnotemark[1] & - \strut\quad text\footnotemark[1]. \\ - \strut\quad text\footnotemark[1]. & - \setfnpct{punct-after}\strut\quad text\footnotemark[1]. + \toprule + without \fnpct & + with \fnpct \\ + \midrule + \strut\quad text.\footnotemark[1] & + \strut\quad text\footnotemark[1]. \\ + \strut\quad text\footnotemark[1]. & + \setfnpct{punct-after}\strut\quad text\footnotemark[1]. \\ + \strut\quad text\footnotemark[1] & + \strut\quad text\footnotemark[1] \\ + \bottomrule \end{tabular} \caption{The effect of \fnpct.} \end{figure} @@ -328,7 +332,7 @@ kerning. \keyval{mult-fn-sep}{separator}\Default{,} Sets the separator between multiple footnote marks. % - \keybool{normal-marks}\Default{false} + \keybool{normal-marks}\Default{false}\label{opt:normal-marks} Sets the footnote marks in the foot not as superscripts but as normal font. If you're not using a \KOMAScript\ class this option will load the package \pkg{scrextend}. See section~\ref{sec:normal} for more @@ -599,7 +603,7 @@ See figure~\ref{fig:nested:c} for the output of the following code: \end{example} \section{Normal notes}\label{sec:normal} -The package option \option{normal-marks} (see p.\,\pageref{key:normal-marks}) +The package option \option{normal-marks} (see p.\,\pageref{opt:normal-marks}) changes the layout of the footnote marks in the foot by using \KOMAScript's \cs{deffootnote} command: \begin{commands} diff --git a/Master/texmf-dist/tex/latex/fnpct/fnpct.sty b/Master/texmf-dist/tex/latex/fnpct/fnpct.sty index 28e775bec85..60f6c18fb33 100644 --- a/Master/texmf-dist/tex/latex/fnpct/fnpct.sty +++ b/Master/texmf-dist/tex/latex/fnpct/fnpct.sty @@ -31,8 +31,8 @@ \RequirePackage { xparse , l3keys2e , scrlfile } \ProvidesExplPackage {fnpct} - {2013/12/22} - {0.4} + {2013/12/23} + {0.4a} {footnote kerning} % -------------------------------------------------------------------------- @@ -138,7 +138,7 @@ % #3: dimension \cs_new_protected:Npn \fnpct_set_punctuation_dim:nnn #1#2#3 { - \prop_put:cnx { l_fnpct_punctuation_marks_#1_prop } + \prop_put:cnx { l__fnpct_punctuation_marks_#1_prop } { #2 } { \dim_eval:n { #3 } } } @@ -376,18 +376,8 @@ } % this is where the magic happens: -% #1: original command -% #2: optional argument of original command -% #3: second optional argument of original command -% #4: mandatory argument of original command -% #5: boolean flag for starred version -\cs_new_protected:Npn \fnpct_handle_note:Nnnnn #1#2#3#4#5 +\cs_new_protected:Npn \fnpct_handle_punctuation:n #1 { - % if a punctuation mark follows remove it, insert dot, skip back - % and then insert footnote - \fnpct_no_break: - \bool_if:NF \l__fnpct_dont_mess_around_bool - { \IfBooleanT { #5 } { \bool_set_true:N \l__fnpct_reverse_switch_bool } } \fnpct_check_punctuation:TF { % this is need as some commands like biblatex's \autocite may in turn @@ -398,12 +388,13 @@ % B: after=1 && reverse=1 % after=0 && reverse=0 \fnpct_punct_if_after:TF - { \fnpct_no_break: \skip_horizontal:N \l__fnpct_before_footnote_dim } { - \tl_use:N \l__fnpct_current_punct_mark_tl \fnpct_no_break: - \prop_get:NVNT - \l__fnpct_punctuation_marks_after_prop + \skip_horizontal:N \l__fnpct_before_footnote_dim + } + { + \tl_use:N \l__fnpct_current_punct_mark_tl + \prop_get:NVNT \l__fnpct_punctuation_marks_after_prop \l__fnpct_current_punct_mark_tl \l__fnpct_tmpa_tl { @@ -411,22 +402,24 @@ \skip_horizontal:N \l__fnpct_tmpa_dim \fnpct_no_break: \skip_horizontal:N \c_zero_skip + \fnpct_no_break: } } - \fnpct_write_note:Nnnn #1 { #2 } { #3 } { #4 } - \fnpct_write_inner:N #1 + #1 + \bool_gset_false:N \g__fnpct_after_punctuation_bool \fnpct_punct_if_after:T { \fnpct_no_break: - \prop_get:NVNT - \l__fnpct_punctuation_marks_before_prop + \prop_get:NVNT \l__fnpct_punctuation_marks_before_prop \l__fnpct_current_punct_mark_tl \l__fnpct_tmpa_tl { \dim_set:Nn \l__fnpct_tmpa_dim { \l__fnpct_tmpa_tl } \skip_horizontal:N \l__fnpct_tmpa_dim + \fnpct_no_break: + \skip_horizontal:N \c_zero_skip + \fnpct_no_break: } - \fnpct_no_break: \tl_use:N \l__fnpct_current_punct_mark_tl } \bool_set_false:N \l__fnpct_reverse_switch_bool @@ -440,14 +433,11 @@ \bool_set_true:N \l__fnpct_multiple_footnotes_bool % else insert space and then note \fnpct_no_break: - \bool_if:NTF \g__fnpct_after_punctuation_bool - { \bool_gset_false:N \g__fnpct_after_punctuation_bool } + \bool_if:NF \g__fnpct_after_punctuation_bool { \skip_horizontal:N \l__fnpct_before_footnote_dim } - \fnpct_write_note:Nnnn #1 { #2 } { #3 } { #4 } - \fnpct_write_inner:N #1 + #1 \fnpct_no_break: \textsuperscript { \l__fnpct_multiple_footnote_separator_tl } - % \bool_set_false:N \l__fnpct_reverse_switch_bool } { % else insert space and then note @@ -455,14 +445,35 @@ { \bool_set_false:N \l__fnpct_multiple_footnotes_bool } { \fnpct_no_break: - \bool_if:NTF \g__fnpct_after_punctuation_bool - { \bool_gset_false:N \g__fnpct_after_punctuation_bool } + \bool_if:NF \g__fnpct_after_punctuation_bool { \skip_horizontal:N \l__fnpct_before_footnote_dim } } - \fnpct_write_note:Nnnn #1 { #2 } { #3 } { #4 } - \fnpct_write_inner:N #1 + #1 \bool_set_false:N \l__fnpct_reverse_switch_bool } + \bool_gset_false:N \g__fnpct_after_punctuation_bool + } + } + + +% #1: original command +% #2: optional argument of original command +% #3: second optional argument of original command +% #4: mandatory argument of original command +% #5: boolean flag for starred version +\cs_new_protected:Npn \fnpct_handle_note:Nnnnn #1#2#3#4#5 + { + % if a punctuation mark follows remove it, insert dot, skip back + % and then insert footnote + \bool_if:NF \l__fnpct_dont_mess_around_bool + { + \IfBooleanT { #5 } + { \bool_set_true:N \l__fnpct_reverse_switch_bool } + } + \fnpct_handle_punctuation:n + { + \fnpct_write_note:Nnnn #1 { #2 } { #3 } { #4 } + \fnpct_write_inner:N #1 } } \cs_generate_variant:Nn \fnpct_handle_note:Nnnnn { cnnnn } @@ -478,83 +489,29 @@ \cs_new_protected:Npn \fnpct_mult_note:Nnn #1#2#3 { \bool_if:NF \l__fnpct_dont_mess_around_bool - { \IfBooleanT { #2 } { \bool_set_true:N \l__fnpct_reverse_switch_bool } } + { + \IfBooleanT { #2 } + { \bool_set_true:N \l__fnpct_reverse_switch_bool } + } % split input: \seq_set_split:NVn \l__fnpct_multiple_footnotes_seq \l__fnpct_multiple_footnotes_delimiter_tl { #3 } - \fnpct_no_break: - % look for punctuation mark and do magic: - \fnpct_check_punctuation:TF - { - \bool_gset_true:N \g__fnpct_after_punctuation_bool - \fnpct_punct_if_after:TF - { \fnpct_no_break: \skip_horizontal:N \l__fnpct_before_footnote_dim } - { - \tl_use:N \l__fnpct_current_punct_mark_tl - \fnpct_no_break: - \prop_get:NVNT \l__fnpct_punctuation_marks_after_prop - \l__fnpct_current_punct_mark_tl - \l__fnpct_tmpa_tl - { - \dim_set:Nn \l__fnpct_tmpa_dim { \l__fnpct_tmpa_tl } - \skip_horizontal:N \l__fnpct_tmpa_dim - \fnpct_no_break: - \skip_horizontal:N \c_zero_skip - } - } - \fnpct_write_notes:N #1 - \fnpct_punct_if_after:T - { - \prop_get:NVNT \l__fnpct_punctuation_marks_before_prop - \l__fnpct_current_punct_mark_tl - \l__fnpct_tmpa_tl - { - \dim_set:Nn \l__fnpct_tmpa_dim { \l__fnpct_tmpa_tl } - \skip_horizontal:N \l__fnpct_tmpa_dim - } - \fnpct_no_break: - \tl_use:N \l__fnpct_current_punct_mark_tl - } - \bool_set_false:N \l__fnpct_reverse_switch_bool - } - { - % else insert space and notes: - \fnpct_check_multiple:TF - { - \bool_set_true:N \l__fnpct_multiple_footnotes_bool - \fnpct_no_break: - \bool_if:NTF \g__fnpct_after_punctuation_bool - { \bool_gset_false:N \g__fnpct_after_punctuation_bool } - { \skip_horizontal:N \l__fnpct_before_footnote_dim } - \fnpct_write_notes:N #1 - \bool_set_false:N \l__fnpct_reverse_switch_bool - \textsuperscript { \l__fnpct_multiple_footnote_separator_tl } - } - { - \bool_if:NTF \l__fnpct_multiple_footnotes_bool - { \bool_set_false:N \l__fnpct_multiple_footnotes_bool } - { - \fnpct_no_break: - \bool_if:NTF \g__fnpct_after_punctuation_bool - { \bool_gset_false:N \g__fnpct_after_punctuation_bool } - { \skip_horizontal:N \l__fnpct_before_footnote_dim } - } - \fnpct_write_notes:N #1 - \bool_set_false:N \l__fnpct_reverse_switch_bool - } - } + \fnpct_handle_punctuation:n + { \fnpct_write_notes:NN #1 \l__fnpct_multiple_footnotes_seq } + } \cs_generate_variant:Nn \fnpct_mult_note:Nnn { cnn } \int_new:N \l__fnpct_multiple_notes_int % #1: original note command -\cs_new_protected:Npn \fnpct_write_notes:N #1 +% #2: sequence variable holding the note arguments +\cs_new_protected:Npn \fnpct_write_notes:NN #1#2 { \int_zero:N \l__fnpct_multiple_notes_int - \seq_map_inline:Nn \l__fnpct_multiple_footnotes_seq + \seq_map_inline:Nn #2 { - \fnpct_read_note_with_option:w ##1 \q_stop { #1 } + \__fnpct_read_note_with_option:w ##1 \q_stop { #1 } \int_incr:N \l__fnpct_multiple_notes_int } } @@ -567,7 +524,7 @@ % #4: mandatory argument to original note command % #5: original note command \bool_new:N \g__fnpct_only_text_bool -\NewDocumentCommand \fnpct_read_note_with_option:w { soo+u{\q_stop}m } +\NewDocumentCommand \__fnpct_read_note_with_option:w { soo+u{\q_stop}m } { \bool_if:nT { @@ -1128,8 +1085,8 @@ 2013/04/07 v0.2k - bug fix: suppress possible break point between footnote mark and punctuation mark if `punct-after=true' has been set - - new: \AdaptNoteNoOpt, \AdaptNoteNoOptNoMult 2013/04/16 v0.3 - adapt \footref if it exists + - new: \AdaptNoteNoOpt, \AdaptNoteNoOptNoMult 2013/06/14 v0.3a - various internal commands needed to be defined protected 2013/12/22 v0.4 - when biblatex's \autocite is adapted a fix was needed: @@ -1138,6 +1095,7 @@ - adapt to French language settings - clearer distinction between internal commands and document commands +2013/12/23 v0.4a - fix bug introcuded in v0.4 due to a typo % -------------------------------------------------------------------------- % NOTES: -- cgit v1.2.3