summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/notes2bib
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-09-30 21:52:12 +0000
committerKarl Berry <karl@freefriends.org>2019-09-30 21:52:12 +0000
commitea9225ae59ad8eedf594cd44fcb2e37414995215 (patch)
tree0c83e5ec7f91330f292cad6c58974b5c4ee0d89f /Master/texmf-dist/tex/latex/notes2bib
parentb81bbb35425ebc14d513de5201d784aba52c80f1 (diff)
notes2bib (30sep19)
git-svn-id: svn://tug.org/texlive/trunk@52231 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/notes2bib')
-rw-r--r--Master/texmf-dist/tex/latex/notes2bib/notes2bib.sty930
1 files changed, 473 insertions, 457 deletions
diff --git a/Master/texmf-dist/tex/latex/notes2bib/notes2bib.sty b/Master/texmf-dist/tex/latex/notes2bib/notes2bib.sty
index ddad30ecf0b..1a24c814f9c 100644
--- a/Master/texmf-dist/tex/latex/notes2bib/notes2bib.sty
+++ b/Master/texmf-dist/tex/latex/notes2bib/notes2bib.sty
@@ -14,22 +14,22 @@
%% ---------------------------------------------------------------
%%
\RequirePackage{xparse}
-\ProvidesExplPackage
- {notes2bib} {2013/07/11} {2.0k}
+ %\section{Introduction}
+\ProvidesExplPackage {notes2bib} {2019-09-28} {2.0m}
{Integrating notes into the bibliography}
\RequirePackage{l3keys2e}
-\tl_new:N \c__notestobib_file_message_tl
-\tl_set:Nn \c__notestobib_file_message_tl {
- \iow_char:N \% ~
- This~is~an~auxiliary~file~used~by~the~'notes2bib'~package.
- \iow_newline:
- \iow_char:N \% ~
- This~file~may~safely~be~deleted.
- \iow_newline:
- \iow_char:N \% ~
- It~will~be~recreated~as~required.
- \iow_newline:
-}
+\tl_const:Nn \c__notestobib_file_message_tl
+ {
+ \iow_char:N \% ~
+ This~is~an~auxiliary~file~used~by~the~'notes2bib'~package.
+ \iow_newline:
+ \iow_char:N \% ~
+ This~file~may~safely~be~deleted.
+ \iow_newline:
+ \iow_char:N \% ~
+ It~will~be~recreated~as~required.
+ \iow_newline:
+ }
\clist_new:N \g__notestobib_after_clist
\clist_new:N \g__notestobib_before_clist
\clist_new:N \g__notestobib_all_after_clist
@@ -43,476 +43,492 @@
\tl_new:N \g__notestobib_notes_tl
\tl_new:N \l__notestobib_sortkey_field_tl
\int_new:N \g__notestobib_total_notes_int
-\cs_new_nopar:Npn \__notestobib_cite:w { }
-\keys_define:nn { notes2bib } {
- cite-function .code:n =
- { \AtBeginDocument { \cs_set_eq:NN \__notestobib_cite:w #1 } } ,
- file-name .tl_gset_x:N = \g__notestobib_filename_tl ,
- convert-endnotes .choice: ,
- convert-endnotes
- / false .code:n =
- { \AtBeginDocument { \__notestobib_from_bibnote:n { endnote } } } ,
- convert-endnotes
- / true .code:n =
- { \AtBeginDocument { \__notestobib_to_bibnote:n { endnote } } } ,
- convert-footnotes .choice: ,
- convert-footnotes
- / false .code:n =
- { \AtBeginDocument { \__notestobib_from_bibnote:n { footnote } } } ,
- convert-footnotes
- / true .code:n =
- { \AtBeginDocument { \__notestobib_to_bibnote:n { footnote } } } ,
- keyword-entry .tl_set:N = \l__notestobib_keyword_tl ,
- note-field .tl_set:N = \l__notestobib_note_field_tl ,
- note-name .tl_set:N = \l__notestobib_note_name_tl ,
- placement .choice: ,
- placement
- / after .code:n =
- {
- \cs_set_eq:NN \__notestobib_mark_note:n \__notestobib_mark_note_after:n
- \tl_set_eq:NN \l__notestobib_presort_tl \l__notestobib_presort_after_tl
- \tl_set_eq:NN \l__notestobib_sortkey_tl \l__notestobib_sortkey_after_tl
- },
- placement
- / before .code:n =
- {
- \cs_set_eq:NN \__notestobib_mark_note:n \__notestobib_mark_note_before:n
- \tl_set_eq:NN \l__notestobib_presort_tl \l__notestobib_presort_before_tl
- \tl_set_eq:NN \l__notestobib_sortkey_tl \l__notestobib_sortkey_before_tl
- },
- placement
- / mixed .code:n =
- {
- \cs_set_eq:NN \__notestobib_mark_note:n \__notestobib_mark_note_mixed:n
- \tl_set_eq:NN \l__notestobib_presort_tl \l__notestobib_presort_mixed_tl
- \tl_set_eq:NN \l__notestobib_sortkey_tl \l__notestobib_sortkey_mixed_tl
- },
- presort-after .tl_set:N = \l__notestobib_presort_after_tl ,
- presort-before .tl_set:N = \l__notestobib_presort_before_tl ,
- presort-mixed .tl_set:N = \l__notestobib_presort_mixed_tl ,
- record-type .tl_set:N = \l__notestobib_record_type_tl ,
- refsection-name .tl_set:N = \l__notestobib_refsection_name_tl ,
- refsection-separator .tl_set:N = \l__notestobib_refsection_sep_tl ,
- sort-key-after .tl_set:N = \l__notestobib_sortkey_before_tl ,
- sort-key-before .tl_set:N = \l__notestobib_sortkey_after_tl ,
- sort-key-mixed .tl_set:N = \l__notestobib_sortkey_mixed_tl ,
- use-sort-key .bool_set:N = \l__notestobib_write_sortkey_bool ,
-}
-\keys_set:nn { notes2bib } {
- cite-function = \cite ,
- file-name = notes2bib-\jobname ,
- keyword-entry = note ,
- note-field = note ,
- note-name = Note ,
- presort-after = mn ,
- presort-before = ml ,
- presort-mixed = mm ,
- record-type = misc ,
- refsection-name = Refsection ,
- refsection-separator = - ,
- sort-key-after = zzz ,
- sort-key-before = aaa ,
- use-sort-key = true
-}
-\AtBeginDocument {
- \@ifpackageloaded { biblatex }
- {
- \@ifpackagelater { biblatex } { 2011/01/08 }
- {
- \keys_set:nn { notes2bib }
- { record-type = bibnote }
- \DeclareBibliographyDriver { bibnote }
- {
- \usebibmacro { begentry }
- \printfield { note }
- \setunit { \bibpagerefpunct }
- \newblock
- \usebibmacro { pageref }
- \usebibmacro { finentry }
- }
- }
- { }
- }
- { }
- \keys_define:nn { notes2bib }
- {
- cite-function .code:n =
- { \cs_set_eq:NN \__notestobib_cite:w #1 } ,
- file-name .code:n =
- { \msg_info:nnn { notes2bib } { preamble-only } { file-name } },
- convert-endnotes / false .code:n =
- { \__notestobib_from_bibnote:n { endnote } } ,
- convert-endnotes / true .code:n =
- { \__notestobib_to_bibnote:n { endnote } } ,
- convert-footnotes / false .code:n =
- { \__notestobib_from_bibnote:n { footnote } } ,
- convert-footnotes / true .code:n =
- { \__notestobib_to_bibnote:n { footnote } } ,
- }
-}
+\cs_new:Npn \__notestobib_cite:w { }
+\keys_define:nn { notes2bib }
+ {
+ cite-function .code:n =
+ { \AtBeginDocument { \cs_set_eq:NN \__notestobib_cite:w #1 } } ,
+ file-name .tl_gset_x:N = \g__notestobib_filename_tl ,
+ convert-endnotes .choice: ,
+ convert-endnotes
+ / false .code:n =
+ { \AtBeginDocument { \__notestobib_from_bibnote:n { endnote } } } ,
+ convert-endnotes
+ / true .code:n =
+ { \AtBeginDocument { \__notestobib_to_bibnote:n { endnote } } } ,
+ convert-footnotes .choice: ,
+ convert-footnotes
+ / false .code:n =
+ { \AtBeginDocument { \__notestobib_from_bibnote:n { footnote } } } ,
+ convert-footnotes
+ / true .code:n =
+ { \AtBeginDocument { \__notestobib_to_bibnote:n { footnote } } } ,
+ keyword-entry .tl_set:N = \l__notestobib_keyword_tl ,
+ note-field .tl_set:N = \l__notestobib_note_field_tl ,
+ note-name .tl_set:N = \l__notestobib_note_name_tl ,
+ placement .choice: ,
+ placement
+ / after .code:n =
+ {
+ \cs_set_eq:NN \__notestobib_mark_note:n \__notestobib_mark_note_after:n
+ \tl_set_eq:NN \l__notestobib_presort_tl \l__notestobib_presort_after_tl
+ \tl_set_eq:NN \l__notestobib_sortkey_tl \l__notestobib_sortkey_after_tl
+ },
+ placement
+ / before .code:n =
+ {
+ \cs_set_eq:NN \__notestobib_mark_note:n \__notestobib_mark_note_before:n
+ \tl_set_eq:NN \l__notestobib_presort_tl \l__notestobib_presort_before_tl
+ \tl_set_eq:NN \l__notestobib_sortkey_tl \l__notestobib_sortkey_before_tl
+ },
+ placement
+ / mixed .code:n =
+ {
+ \cs_set_eq:NN \__notestobib_mark_note:n \__notestobib_mark_note_mixed:n
+ \tl_set_eq:NN \l__notestobib_presort_tl \l__notestobib_presort_mixed_tl
+ \tl_set_eq:NN \l__notestobib_sortkey_tl \l__notestobib_sortkey_mixed_tl
+ },
+ presort-after .tl_set:N = \l__notestobib_presort_after_tl ,
+ presort-before .tl_set:N = \l__notestobib_presort_before_tl ,
+ presort-mixed .tl_set:N = \l__notestobib_presort_mixed_tl ,
+ record-type .tl_set:N = \l__notestobib_record_type_tl ,
+ refsection-name .tl_set:N = \l__notestobib_refsection_name_tl ,
+ refsection-separator .tl_set:N = \l__notestobib_refsection_sep_tl ,
+ sort-key-after .tl_set:N = \l__notestobib_sortkey_before_tl ,
+ sort-key-before .tl_set:N = \l__notestobib_sortkey_after_tl ,
+ sort-key-mixed .tl_set:N = \l__notestobib_sortkey_mixed_tl ,
+ use-sort-key .bool_set:N = \l__notestobib_write_sortkey_bool
+ }
+\keys_set:nn { notes2bib }
+ {
+ cite-function = \cite ,
+ file-name = notes2bib-\jobname ,
+ keyword-entry = note ,
+ note-field = note ,
+ note-name = Note ,
+ presort-after = mn ,
+ presort-before = ml ,
+ presort-mixed = mm ,
+ record-type = misc ,
+ refsection-name = Refsection ,
+ refsection-separator = - ,
+ sort-key-after = zzz ,
+ sort-key-before = aaa ,
+ use-sort-key = true
+}
+\AtBeginDocument
+ {
+ \@ifpackageloaded { biblatex }
+ {
+ \@ifpackagelater { biblatex } { 2011/01/08 }
+ {
+ \keys_set:nn { notes2bib } { record-type = bibnote }
+ \DeclareBibliographyDriver { bibnote }
+ {
+ \usebibmacro { begentry }
+ \printfield { note }
+ \setunit { \bibpagerefpunct }
+ \newblock
+ \usebibmacro { pageref }
+ \usebibmacro { finentry }
+ }
+ }
+ { }
+ }
+ { }
+ \keys_define:nn { notes2bib }
+ {
+ cite-function .code:n =
+ { \cs_set_eq:NN \__notestobib_cite:w #1 } ,
+ file-name .code:n =
+ { \msg_info:nnn { notes2bib } { preamble-only } { file-name } } ,
+ convert-endnotes / false .code:n =
+ { \__notestobib_from_bibnote:n { endnote } } ,
+ convert-endnotes / true .code:n =
+ { \__notestobib_to_bibnote:n { endnote } } ,
+ convert-footnotes / false .code:n =
+ { \__notestobib_from_bibnote:n { footnote } } ,
+ convert-footnotes / true .code:n =
+ { \__notestobib_to_bibnote:n { footnote } }
+ }
+ }
\msg_new:nnn { notes2bib } { preamble-only }
{ The~option~'#1'~can~only~be~used~in~the~preamble. }
-\cs_new_nopar:Npn \__notestobib_insert_refsection: { }
-\AtBeginDocument {
- \@ifpackageloaded { biblatex }
- {
- \cs_set_nopar:Npn \__notestobib_insert_refsection:
- {
- \int_compare:nNnT { \value { refsection } } > { 0 }
- {
- \tl_use:N \l__notestobib_refsection_name_tl
- \arabic { refsection }
- \tl_use:N \l__notestobib_refsection_sep_tl
+\cs_new:Npn \__notestobib_insert_refsection: { }
+\AtBeginDocument
+ {
+ \@ifpackageloaded { biblatex }
+ {
+ \cs_set:Npn \__notestobib_insert_refsection:
+ {
+ \int_compare:nNnT { \value { refsection } } > { 0 }
+ {
+ \tl_use:N \l__notestobib_refsection_name_tl
+ \arabic { refsection }
+ \tl_use:N \l__notestobib_refsection_sep_tl
}
- }
- }
- { }
-}
-\keys_define:nn { notes2bib } {
- cite .code:n =
- {
- \use:x
- { \keys_set:nn { notes2bib } { cite-function = \exp_not:c {#1} } }
- } ,
- debug .code:n = { } ,
- endnotes .meta:n = { convert-footnotes = #1 } ,
- etex .code:n = { } ,
- field .meta:n = { note-field = #1 } ,
- footnotes .meta:n = { convert-footnotes = #1 } ,
- head .meta:n = { placement = before } ,
- keyhead .meta:n = { sort-key-before = #1 } ,
- keytail .meta:n = { sort-key-after = #1 } ,
- keynone .meta:n = { sort-key-mixed = #1 } ,
- keyword .meta:n = { keyword-entry = #1 } ,
- log .meta:n = { } ,
- name .meta:n = { note-name = #1 } ,
- prefix .meta:n = { file-name = #1 \jobname } ,
- presorthead .meta:n = { presort-before = #1 } ,
- presorttail .meta:n = { presort-after = #1 } ,
- presortnone .meta:n = { presort-mixed = #1 } ,
- record .meta:n = { record-type = #1 } ,
- sort .choice: ,
- sort / head .meta:n = { placement = before } ,
- sort / none .meta:n = { placement = after } ,
- sort / tail .meta:n = { placement = mixed } ,
- tail .meta:n = { placement = after } ,
- writekey .meta:n = { use-sort-key = #1 }
-}
-\cs_new_nopar:Npn \__notestobib_note_name: {
- \__notestobib_insert_refsection:
- \tl_use:N \l__notestobib_note_name_tl
- \int_compare:nNnT \g__notestobib_previous_notes_int > \c_nine
- { \int_compare:nNnT \g__notestobib_note_int < \c_ten { 0 } }
- \int_to_arabic:n { \g__notestobib_note_int }
-}
-\cs_new_nopar:Npn \__notestobib_filesw: { }
-\cs_new:Npn \__notestobib_mark_note:n #1 { }
+ }
+ }
+ { }
+ }
+\keys_define:nn { notes2bib }
+ {
+ cite .code:n =
+ {
+ \use:x
+ { \keys_set:nn { notes2bib } { cite-function = \exp_not:c {#1} } }
+ } ,
+ debug .code:n = { } ,
+ endnotes .meta:n = { convert-footnotes = #1 } ,
+ etex .code:n = { } ,
+ field .meta:n = { note-field = #1 } ,
+ footnotes .meta:n = { convert-footnotes = #1 } ,
+ head .meta:n = { placement = before } ,
+ keyhead .meta:n = { sort-key-before = #1 } ,
+ keytail .meta:n = { sort-key-after = #1 } ,
+ keynone .meta:n = { sort-key-mixed = #1 } ,
+ keyword .meta:n = { keyword-entry = #1 } ,
+ log .meta:n = { } ,
+ name .meta:n = { note-name = #1 } ,
+ prefix .meta:n = { file-name = #1 \jobname } ,
+ presorthead .meta:n = { presort-before = #1 } ,
+ presorttail .meta:n = { presort-after = #1 } ,
+ presortnone .meta:n = { presort-mixed = #1 } ,
+ record .meta:n = { record-type = #1 } ,
+ sort .choice: ,
+ sort / head .meta:n = { placement = before } ,
+ sort / none .meta:n = { placement = after } ,
+ sort / tail .meta:n = { placement = mixed } ,
+ tail .meta:n = { placement = after } ,
+ writekey .meta:n = { use-sort-key = #1 }
+ }
+\cs_new:Npn \__notestobib_note_name:
+ {
+ \__notestobib_insert_refsection:
+ \tl_use:N \l__notestobib_note_name_tl
+ \int_compare:nNnT \g__notestobib_previous_notes_int > 9
+ { \int_compare:nNnT \g__notestobib_note_int < { 10 } { 0 } }
+ \int_to_arabic:n { \g__notestobib_note_int }
+ }
+\cs_new_eq:NN \__notestobib_filesw: \tex_iftrue:D
+\cs_new_protected:Npn \__notestobib_mark_note:n #1 { }
\cs_generate_variant:Nn \__notestobib_mark_note:n { x }
-\cs_new_protected:Npn \__notestobib_mark_note_after:n #1 {
- \int_gincr:N \g__notestobib_total_notes_int
- \clist_gput_right:Nx \g__notestobib_after_clist {#1}
- \__notestobib_mark_note_after_aux:n {#1}
-}
-\cs_new:Npn \__notestobib_mark_note_after_aux:n #1 { }
-\cs_new_protected:Npn \__notestobib_mark_note_before:n #1 {
- \int_gincr:N \g__notestobib_total_notes_int
- \clist_gput_right:Nx \g__notestobib_before_clist {#1}
- \__notestobib_cite:w {#1}
-}
-\cs_new_protected:Npn \__notestobib_mark_note_mixed:n #1 {
- \int_gincr:N \g__notestobib_total_notes_int
- \__notestobib_cite:w {#1}
-}
-\cs_new:Npn \__notestobib_write_field:nn #1#2 {
- \c_space_tl \c_space_tl #1 \c_space_tl = \c_space_tl {#2} ,
- \iow_newline:
-}
+\cs_new_protected:Npn \__notestobib_mark_note_after:n #1
+ {
+ \int_gincr:N \g__notestobib_total_notes_int
+ \clist_gput_right:Nx \g__notestobib_after_clist {#1}
+ \__notestobib_mark_note_after_aux:n {#1}
+ }
+\cs_new_protected:Npn \__notestobib_mark_note_after_aux:n #1 { }
+\cs_new_protected:Npn \__notestobib_mark_note_before:n #1
+ {
+ \int_gincr:N \g__notestobib_total_notes_int
+ \clist_gput_right:Nx \g__notestobib_before_clist {#1}
+ \__notestobib_cite:w {#1}
+ }
+\cs_new_protected:Npn \__notestobib_mark_note_mixed:n #1
+ {
+ \int_gincr:N \g__notestobib_total_notes_int
+ \__notestobib_cite:w {#1}
+ }
+\cs_new:Npn \__notestobib_write_field:nn #1#2
+ {
+ \c_space_tl \c_space_tl #1 \c_space_tl = \c_space_tl {#2} ,
+ \iow_newline:
+ }
\cs_generate_variant:Nn \__notestobib_write_field:nn { V }
-\cs_new_protected_nopar:Npn \__notestobib_write_note:nn {
- \if@filesw
- \exp_after:wN \__notestobib_write_note_aux:nn
- \else:
- \exp_after:wN \use_none:nn
- \fi:
-}
-\cs_new_protected:Npn \__notestobib_write_note_aux:nn #1#2 {
- \tl_gput_right:Nx \g__notestobib_notes_tl
- {
- @ \l__notestobib_record_type_tl
- {
- #1 , \iow_newline:
- \__notestobib_write_field:Vn \l__notestobib_note_field_tl { \exp_not:n {#2} }
- \bool_if:NT \l__notestobib_write_sortkey_bool
- {
- \__notestobib_write_field:Vn \l__notestobib_sortkey_field_tl
- { \l__notestobib_sortkey_tl #1 }
- }
- \__notestobib_write_field:nn { keywords } { \l__notestobib_keyword_tl }
- \__notestobib_write_field:nn { presort } { \l__notestobib_presort_tl }
- }
- \iow_newline:
- \iow_newline:
- }
-}
-\cs_generate_variant:Nn \__notestobib_write_note:nn { x }
-\cs_new_protected_nopar:Npn \__notestobib_record_notes: {
- \if@filesw
- \exp_after:wN \__notestobib_flush_notes_aux:
- \fi
-}
-\cs_new_protected_nopar:Npn \__notestobib_flush_notes_aux: {
- \clist_if_empty:NF \g__notestobib_before_clist
- {
- \iow_now:Nx \@auxout
- { \NotesBeforeCitations { \exp_not:V \g__notestobib_before_clist } }
- \clist_gput_right:NV \g__notestobib_all_before_clist \g__notestobib_before_clist
- \clist_gclear:N \g__notestobib_before_clist
- }
- \clist_if_empty:NF \g__notestobib_after_clist
- {
- \iow_now:Nx \@auxout
- { \NotesAfterCitations { \exp_not:V \g__notestobib_after_clist } }
- \exp_args:NV \nocite \g__notestobib_after_clist
- \clist_gput_right:NV \g__notestobib_all_after_clist \g__notestobib_after_clist
- \clist_gclear:N \g__notestobib_after_clist
- }
-}
-\cs_new_protected_nopar:Npn \__notestobib_to_bibnote:n #1 {
- \cs_set_eq:cN {#1} \bibnote
- \cs_set_eq:cN { #1 mark } \bibnotemark
- \cs_set_eq:cN { #1 text } \bibnotetext
-}
-\cs_new_protected_nopar:Npn \__notestobib_from_bibnote:n #1 {
- \cs_set_eq:cc {#1} { __notestobib_ #1 :w }
- \cs_set_eq:cc { #1 mark } { __notestobib_ #1 mark:w }
- \cs_set_eq:cc { #1 text } { __notestobib_ #1 text:w }
-}
-\AtBeginDocument {
- \cs_set_eq:NN \__notestobib_endnote:w \endnote
- \cs_set_eq:NN \__notestobib_endnotemark:w \endnotemark
- \cs_set_eq:NN \__notestobib_endnotetext:w \endnotetext
- \cs_set_eq:NN \__notestobib_footnote:w \footnote
- \cs_set_eq:NN \__notestobib_footnotemark:w \footnotemark
- \cs_set_eq:NN \__notestobib_footnotetext:w \footnotetext
-}
-\AtBeginDocument {
- \@ifpackageloaded { biblatex }
- {
- \cs_new_protected_nopar:Npn \__notestobib_print_notes:
- {
- \cs_set_nopar:Npx \__notestobib_create_print_notes:
- {
- \printbibliography
- [ keyword = \exp_not:V \l__notestobib_keyword_tl ]
- }
- \__notestobib_create_print_notes:
- }
- }
- {
- \cs_new_protected_nopar:Npn \__notestobib_print_notes:
- { \exp_args:NV \__notestobib_bibliography:n \g__notestobib_filename_tl }
- }
-}
-\cs_new_nopar:Npn \__notestobib_create_print_notes: { }
-\cs_new_nopar:Npn \__notestobib_attach_bibliography: {
- \@ifpackageloaded { biblatex }
- {
- \@ifpackagelater { biblatex } { 2011/01/08 }
- {
- \@ifpackagelater { biblatex } { 2011/02/12 }
- {
+\cs_new_protected:Npn \notestobib_write_note:nn
+ {
+ \if@filesw
+ \exp_after:wN \__notestobib_write_note:nn
+ \else:
+ \exp_after:wN \use_none:nn
+ \fi:
+ }
+\cs_generate_variant:Nn \notestobib_write_note:nn { x }
+\cs_new_protected:Npn \__notestobib_write_note:nn #1#2
+ {
+ \tl_gput_right:Nx \g__notestobib_notes_tl
+ {
+ @ \l__notestobib_record_type_tl
+ {
+ #1 , \iow_newline:
+ \__notestobib_write_field:Vn \l__notestobib_note_field_tl { \exp_not:n {#2} }
+ \bool_if:NT \l__notestobib_write_sortkey_bool
+ {
+ \__notestobib_write_field:Vn \l__notestobib_sortkey_field_tl
+ { \l__notestobib_sortkey_tl #1 }
+ }
+ \__notestobib_write_field:nn { keywords } { \l__notestobib_keyword_tl }
+ \__notestobib_write_field:nn { presort } { \l__notestobib_presort_tl }
+ }
+ \iow_newline:
+ \iow_newline:
+ }
+ }
- \exp_args:No \addglobalbib
- { \g__notestobib_filename_tl .bib }
- }
- { \exp_args:NNV \bibliography * \g__notestobib_filename_tl }
- }
- { \exp_args:NV \bibliography \g__notestobib_filename_tl }
- }
- {
- \cs_new_eq:NN \__notestobib_bibliography:n \bibliography
- \RenewDocumentCommand \bibliography { m }
- {
- \int_compare:nNnTF \g__notestobib_total_notes_int = \c_zero
- { \__notestobib_bibliography:n {##1} }
- {
- \cs_set_nopar:Npx \__notestobib_attach_bibliography:
- {
- \exp_not:N \__notestobib_bibliography:n
- {
- \exp_not:n {##1} , \exp_not:V \g__notestobib_filename_tl
- }
- }
- \__notestobib_attach_bibliography:
- }
- }
- }
-}
+\cs_new_protected:Npn \__notestobib_record_notes:
+ {
+ \if@filesw
+ \exp_after:wN \__notestobib_flush_notes_aux:
+ \fi
+ }
+\cs_new_protected:Npn \__notestobib_flush_notes_aux:
+ {
+ \clist_if_empty:NF \g__notestobib_before_clist
+ {
+ \iow_now:Nx \@auxout
+ { \NotesBeforeCitations { \exp_not:V \g__notestobib_before_clist } }
+ \clist_gput_right:NV \g__notestobib_all_before_clist \g__notestobib_before_clist
+ \clist_gclear:N \g__notestobib_before_clist
+ }
+ \clist_if_empty:NF \g__notestobib_after_clist
+ {
+ \iow_now:Nx \@auxout
+ { \NotesAfterCitations { \exp_not:V \g__notestobib_after_clist } }
+ \exp_args:NV \nocite \g__notestobib_after_clist
+ \clist_gput_right:NV \g__notestobib_all_after_clist \g__notestobib_after_clist
+ \clist_gclear:N \g__notestobib_after_clist
+ }
+ }
+\cs_new_protected:Npn \__notestobib_to_bibnote:n #1
+ {
+ \cs_set_eq:cN {#1} \bibnote
+ \cs_set_eq:cN { #1 mark } \bibnotemark
+ \cs_set_eq:cN { #1 text } \bibnotetext
+ }
+\cs_new_protected:Npn \__notestobib_from_bibnote:n #1
+ {
+ \cs_set_eq:cc {#1} { __notestobib_ #1 :w }
+ \cs_set_eq:cc { #1 mark } { __notestobib_ #1 mark:w }
+ \cs_set_eq:cc { #1 text } { __notestobib_ #1 text:w }
+ }
+\AtBeginDocument
+ {
+ \cs_new_eq:NN \__notestobib_endnote:w \endnote
+ \cs_new_eq:NN \__notestobib_endnotemark:w \endnotemark
+ \cs_new_eq:NN \__notestobib_endnotetext:w \endnotetext
+ \cs_new_eq:NN \__notestobib_footnote:w \footnote
+ \cs_new_eq:NN \__notestobib_footnotemark:w \footnotemark
+ \cs_new_eq:NN \__notestobib_footnotetext:w \footnotetext
+ }
+\AtBeginDocument
+ {
+ \@ifpackageloaded { biblatex }
+ {
+ \cs_new_protected:Npn \__notestobib_print_notes:
+ {
+ \cs_set:Npx \__notestobib_create_print_notes:
+ {
+ \printbibliography
+ [ keyword = \exp_not:V \l__notestobib_keyword_tl ]
+ }
+ \__notestobib_create_print_notes:
+ }
+ }
+ {
+ \cs_new_protected:Npn \__notestobib_print_notes:
+ { \exp_args:NV \__notestobib_bibliography:n \g__notestobib_filename_tl }
+ }
+ }
+\cs_new_protected:Npn \__notestobib_create_print_notes: { }
+\cs_new_protected:Npn \__notestobib_attach_bibliography:
+ {
+ \@ifpackageloaded { biblatex }
+ {
+ \@ifpackagelater { biblatex } { 2011/01/08 }
+ {
+ \@ifpackagelater { biblatex } { 2011/02/12 }
+ { \exp_args:No \addglobalbib { \g__notestobib_filename_tl .bib } }
+ { \exp_args:NNV \bibliography * \g__notestobib_filename_tl }
+ }
+ { \exp_args:NV \bibliography \g__notestobib_filename_tl }
+ }
+ {
+ \cs_new_eq:NN \__notestobib_bibliography:n \bibliography
+ \RenewDocumentCommand \bibliography { m }
+ {
+ \int_compare:nNnTF \g__notestobib_total_notes_int = 0
+ { \__notestobib_bibliography:n {##1} }
+ {
+ \cs_set:Npx \__notestobib_attach_bibliography:
+ {
+ \exp_not:N \__notestobib_bibliography:n
+ { \exp_not:n {##1} , \exp_not:V \g__notestobib_filename_tl }
+ }
+ \__notestobib_attach_bibliography:
+ }
+ }
+ }
+ }
\@ifpackageloaded { biblatex }
{
\@ifpackagelater { biblatex } { 2011/01/08 }
{
\@ifpackagelater { biblatex } { 2011/02/12 }
- {
-
- \exp_args:No \addglobalbib
- { \g__notestobib_filename_tl .bib }
- }
+ { \exp_args:No \addglobalbib { \g__notestobib_filename_tl .bib } }
{ \exp_args:NNV \bibliography * \g__notestobib_filename_tl }
}
{ \exp_args:NV \bibliography \g__notestobib_filename_tl }
}
{ \AtBeginDocument { \__notestobib_attach_bibliography: } }
-\AtBeginDocument {
- \@ifpackageloaded { biblatex }
- { \tl_set:Nn \l__notestobib_sortkey_field_tl { sortkey } }
- { \tl_set:Nn \l__notestobib_sortkey_field_tl { key } }
-}
-\AtBeginDocument {
- \@ifpackageloaded { biblatex }
- {
- \cs_set:Npn \__notestobib_mark_note_after_aux:n #1
- {
- \AtNextCite { \@fileswfalse }
- \__notestobib_cite:w {#1}
- }
- }
- {
- \cs_set:Npn \__notestobib_mark_note_after_aux:n #1
- {
- \cs_set_eq:NN \__notestobib_filesw: \if@filesw
- \@fileswfalse
- \__notestobib_cite:w {#1}
- \cs_set_eq:NN \if@filesw \__notestobib_filesw:
- }
- }
-}
-\AtBeginDocument {
- \@ifpackageloaded { cite }
- {
- \cs_set:Npn \__notestobib_mark_note_after_aux:n #1
- {
- \cs_set_eq:NN \__notestobib_filesw: \if@filesw
- \@fileswfalse
- \cs_set_nopar:Npn \__notestobib_aux_hook:
- {
- \cs_set_eq:NN \if@filesw \__notestobib_filesw:
- \cs_set_nopar:Npn \__notestobib_aux_hook: { }
- }
- \__notestobib_cite:w {#1}
- }
- \cs_new_nopar:Npn \__notestobib_aux_hook: { }
- \tl_gput_right:Nn \g__notestobib_document_hook_tl
- {
- \cs_if_exist:NF \@restore@auxhandle
- { \tl_new:N \@restore@auxhandle }
- \tl_put_right:Nn \@restore@auxhandle { \__notestobib_aux_hook: }
- }
- }
- { }
-}
-\NewDocumentCommand \bibnote { o +m } {
- \IfNoValueTF {#1}
- {
- \int_gincr:N \g__notestobib_note_int
- \__notestobib_bibnote:xn { \__notestobib_note_name: } {#2}
- }
- { \__notestobib_bibnote:xn { \__notestobib_insert_refsection: #1 } {#2} }
-}
-\cs_new_protected:Npn \__notestobib_bibnote:nn #1#2 {
- \__notestobib_write_note:nn {#1} {#2}
- \__notestobib_mark_note:n {#1}
-}
+\AtBeginDocument
+ {
+ \@ifpackageloaded { biblatex }
+ { \tl_set:Nn \l__notestobib_sortkey_field_tl { sortkey } }
+ { \tl_set:Nn \l__notestobib_sortkey_field_tl { key } }
+ }
+\AtBeginDocument
+ {
+ \@ifpackageloaded { biblatex }
+ {
+ \cs_set_protected:Npn \__notestobib_mark_note_after_aux:n #1
+ {
+ \AtNextCite { \@fileswfalse }
+ \__notestobib_cite:w {#1}
+ }
+ }
+ {
+ \cs_set_protected:Npn \__notestobib_mark_note_after_aux:n #1
+ {
+ \cs_set_eq:NN \__notestobib_filesw: \if@filesw
+ \@fileswfalse
+ \__notestobib_cite:w {#1}
+ \cs_set_eq:NN \if@filesw \__notestobib_filesw:
+ }
+ }
+ }
+\AtBeginDocument
+ {
+ \@ifpackageloaded { cite }
+ {
+ \cs_set_protected:Npn \__notestobib_mark_note_after_aux:n #1
+ {
+ \cs_set_eq:NN \__notestobib_filesw: \if@filesw
+ \@fileswfalse
+ \cs_set:Npn \__notestobib_aux_hook:
+ {
+ \cs_set_eq:NN \if@filesw \__notestobib_filesw:
+ \cs_set:Npn \__notestobib_aux_hook: { }
+ }
+ \__notestobib_cite:w {#1}
+ }
+ \cs_new:Npn \__notestobib_aux_hook: { }
+ \tl_gput_right:Nn \g__notestobib_document_hook_tl
+ {
+ \cs_if_exist:NF \@restore@auxhandle
+ { \tl_new:N \@restore@auxhandle }
+ \tl_put_right:Nn \@restore@auxhandle { \__notestobib_aux_hook: }
+ }
+ }
+ { }
+ }
+\NewDocumentCommand \bibnote { o +m }
+ {
+ \IfNoValueTF {#1}
+ {
+ \int_gincr:N \g__notestobib_note_int
+ \__notestobib_bibnote:xn { \__notestobib_note_name: } {#2}
+ }
+ { \__notestobib_bibnote:xn { \__notestobib_insert_refsection: #1 } {#2} }
+ }
+\cs_new_protected:Npn \__notestobib_bibnote:nn #1#2
+ {
+ \notestobib_write_note:nn {#1} {#2}
+ \__notestobib_mark_note:n {#1}
+ }
\cs_generate_variant:Nn \__notestobib_bibnote:nn { x }
-\NewDocumentCommand \bibnotemark { o } {
- \IfNoValueTF {#1}
- {
- \int_gincr:N \g__notestobib_note_int
- \__notestobib_mark_note:x { \__notestobib_note_name: }
- }
- { \__notestobib_mark_note:x { \__notestobib_insert_refsection: #1 } }
-}
-\NewDocumentCommand \bibnotetext { o +m } {
- \IfNoValueTF {#1}
- { \__notestobib_write_note:xn { \__notestobib_note_name: } {#2} }
- { \__notestobib_write_note:xn { \__notestobib_insert_refsection: #1 } {#2} }
-}
-\NewDocumentCommand \recordnotes { } {
- \__notestobib_record_notes:
-}
-\NewDocumentCommand \bibnotesetup { m } {
- \keys_set:nn { notes2bib } {#1}
-}
-\NewDocumentCommand \printbibnotes { } {
- \__notestobib_print_notes:
-}
-\NewDocumentCommand \citenote { m } {
- \__notestobib_mark_note:n {#1}
-}
+\NewDocumentCommand \bibnotemark { o }
+ {
+ \IfNoValueTF {#1}
+ {
+ \int_gincr:N \g__notestobib_note_int
+ \__notestobib_mark_note:x { \__notestobib_note_name: }
+ }
+ { \__notestobib_mark_note:x { \__notestobib_insert_refsection: #1 } }
+ }
+\NewDocumentCommand \bibnotetext { o +m }
+ {
+ \IfNoValueTF {#1}
+ { \notestobib_write_note:xn { \__notestobib_note_name: } {#2} }
+ { \notestobib_write_note:xn { \__notestobib_insert_refsection: #1 } {#2} }
+ }
+\NewDocumentCommand \recordnotes { }
+ { \__notestobib_record_notes: }
+\NewDocumentCommand \bibnotesetup { m }
+ { \keys_set:nn { notes2bib } {#1} }
+\NewDocumentCommand \printbibnotes { }
+ { \__notestobib_print_notes: }
+\NewDocumentCommand \citenote { m }
+ { \__notestobib_mark_note:n {#1} }
\cs_new_eq:NN \flushnotestack \recordnotes
\cs_new_eq:NN \niibsetup \bibnotesetup
-\cs_new_protected_nopar:Npn \NotesAfterCitations #1 {
- \clist_gput_right:Nn \g__notestobib_previous_after_clist {#1}
-}
-\cs_new_protected_nopar:Npn \NotesBeforeCitations #1 {
- \clist_gput_right:Nn \g__notestobib_previous_after_clist {#1}
- \tl_gput_right:Nn \g__notestobib_document_hook_tl { \nocite {#1} }
-}
-\cs_new_protected_nopar:Npn \TotalNotes #1 {
- \int_gset:Nn \g__notestobib_previous_notes_int {#1}
-}
+\cs_new_protected:Npn \NotesAfterCitations #1
+ { \clist_gput_right:Nn \g__notestobib_previous_after_clist {#1} }
+\cs_new_protected:Npn \NotesBeforeCitations #1
+ {
+ \clist_gput_right:Nn \g__notestobib_previous_after_clist {#1}
+ \tl_gput_right:Nn \g__notestobib_document_hook_tl { \nocite {#1} }
+ }
+\cs_new_protected:Npn \TotalNotes #1
+ { \int_gset:Nn \g__notestobib_previous_notes_int {#1} }
\tl_gput_right:Nn \document { \g__notestobib_document_hook_tl }
\tl_new:N \g__notestobib_document_hook_tl
\AtEndDocument { \__notestobib_record_notes: }
-\AtEndDocument {
- \tl_if_eq:NNTF \g__notestobib_all_before_clist \g__notestobib_previous_before_clist
- {
- \tl_if_eq:NNF \g__notestobib_all_after_clist \g__notestobib_previous_after_clist
- { \msg_info:nn { notes2bib } { rerun } }
- }
- { \msg_info:nn { notes2bib } { rerun } }
-}
-\msg_new:nnn { notes2bib } { rerun } {
- To~get~notes~in~the~correct~order,~please~run: \\%
- \c_space_tl 1)~LaTeX \\
- \c_space_tl 2)~BibTeX \\
- \c_space_tl 3)~LaTeX
-}
-\AtEndDocument {
- \if@filesw
- \exp_after:wN \__notestobib_write_note_file:
- \fi:
-}
-\cs_new_protected_nopar:Npn \__notestobib_write_note_file: {
- \tl_if_empty:NF \g__notestobib_notes_tl {
- \iow_open:Nn \g__notestobib_file_iow { \g__notestobib_filename_tl .bib }
- \iow_now:Nx \g__notestobib_file_iow { \c__notestobib_file_message_tl }
- \iow_now:Nx \g__notestobib_file_iow
- { \exp_not:V \g__notestobib_notes_tl }
- \iow_close:N \g__notestobib_file_iow
+\AtEndDocument
+ {
+ \tl_if_eq:NNTF \g__notestobib_all_before_clist \g__notestobib_previous_before_clist
+ {
+ \tl_if_eq:NNF \g__notestobib_all_after_clist \g__notestobib_previous_after_clist
+ { \msg_info:nn { notes2bib } { rerun } }
+ }
+ { \msg_info:nn { notes2bib } { rerun } }
+ }
+\msg_new:nnn { notes2bib } { rerun }
+ {
+ To~get~notes~in~the~correct~order,~please~run: \\%
+ \c_space_tl 1)~LaTeX \\
+ \c_space_tl 2)~BibTeX \\
+ \c_space_tl 3)~LaTeX
+ }
+\AtEndDocument
+ {
+ \if@filesw
+ \exp_after:wN \__notestobib_write_note_file:
+ \fi:
+ }
+\cs_new_protected:Npn \__notestobib_write_note_file:
+ {
+ \tl_if_empty:NF \g__notestobib_notes_tl
+ {
+ \iow_open:Nn \g__notestobib_file_iow { \g__notestobib_filename_tl .bib }
+ \iow_now:Nx \g__notestobib_file_iow { \c__notestobib_file_message_tl }
+ \iow_now:Nx \g__notestobib_file_iow { \exp_not:V \g__notestobib_notes_tl }
+ \iow_close:N \g__notestobib_file_iow
+ }
}
-}
\iow_new:N \g__notestobib_file_iow
-\AtEndDocument {
- \int_compare:nNnT \g__notestobib_note_int > \c_zero
- {
- \iow_now:Nx \@auxout
- { \TotalNotes { \int_to_arabic:n { \g__notestobib_note_int } } }
- }
-}
-\cs_set:Npn \thanks #1 {
- \__notestobib_footnotemark:w
- \protected@xdef \@thanks
- {
- \@thanks
- \protect \__notestobib_footnotetext:w [ \the \c@footnote ] {#1}
- }
-}
+\AtEndDocument
+ {
+ \int_compare:nNnT \g__notestobib_note_int > 0
+ {
+ \iow_now:Nx \@auxout
+ { \TotalNotes { \int_to_arabic:n { \g__notestobib_note_int } } }
+ }
+ }
+\cs_set:Npn \thanks #1
+ {
+ \__notestobib_footnotemark:w
+ \protected@xdef \@thanks
+ {
+ \@thanks
+ \protect \__notestobib_footnotetext:w [ \the \c@footnote ] {#1}
+ }
+ }
\keys_set:nn { notes2bib } { placement = mixed }
\ProcessKeysOptions { notes2bib }
%%
-%% Copyright (C) 2007-2011,2013 by
-%% Copyright (C) 2007-2013 by
+%% Copyright (C) 2007-2013,2016,2019 by
%% Joseph Wright <joseph.wright@morningstar2.co.uk>
%%
%% It may be distributed and/or modified under the conditions of