_preamble_bbl.tex 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. % biblatex-dw:
  2. % \usepackage[style=footnote-dw, xref=true, loccittracker, opcittracker,
  3. % autopunct=false, ibidemfont=italic, idemfont=italic,
  4. % citeauthorname=firstfull, idembibformat=dash, nopublisher=false,
  5. % annotation=true, pageref=true, journalnumber=date,
  6. % acronyms=true]{biblatex}
  7. % \renewcommand{\mkbibacro}[1]{%
  8. % \textls[55]{\scalefont{0.95}#1}\isdot}
  9. % \renewcommand{\labelnamepunct}{\addperiod\space}
  10. % \DeclareLanguageMapping{french}{french-dw}
  11. % \DeclareFieldFormat[book]{title}{\mkbibemph{#1}}
  12. % \DeclareFieldFormat[book]{citetitle}{\mkbibemph{#1}}
  13. % \DeclareFieldFormat[article]{title}{\mkbibquote{#1}}
  14. % \DeclareFieldFormat[article]{citetitle}{\mkbibquote{#1}}
  15. % \DeclareFieldFormat[inreference]{citetitle}{\mkbibquote{#1}}
  16. % \DeclareFieldFormat{journaltitle}{\mkbibemph{#1}}
  17. % \DeclareFieldFormat{citejournaltitle}{\mkbibemph{#1}}
  18. \usepackage[style=ext-verbose-inote]{biblatex}
  19. % \DefineBibliographyExtras{french}{%
  20. % \renewcommand{\mkbibnamefamily}[1]{#1}%
  21. % }
  22. \addbibresource{../bibliography.bib}
  23. % Automatically cite authors in full at first, then only by last
  24. % name. See https://tex.stackexchange.com/a/314708
  25. \makeatletter
  26. \newrobustcmd*{\cbx@nametracker@global}[1]{%
  27. \xifinlistcs{#1}{cbx@bseen@names@\the\c@refsection}
  28. {}
  29. {\listcsxadd{cbx@bseen@names@\the\c@refsection}{#1}}}
  30. \newrobustcmd*{\cbx@nametracker@context}[1]{%
  31. \iftoggle{blx@footnote}
  32. {\xifinlistcs{#1}{cbx@fseen@names@\the\c@refsection}
  33. {}
  34. {\listcsxadd{cbx@fseen@names@\the\c@refsection}{#1}}}
  35. {\xifinlistcs{#1}{cbx@bseen@names@\the\c@refsection}
  36. {}
  37. {\listcsxadd{cbx@bseen@names@\the\c@refsection}{#1}}}}
  38. \newrobustcmd*{\cbx@ifnameseen@global}[1]{%
  39. \xifinlistcs{#1}{cbx@bseen@names@\the\c@refsection}}
  40. \newrobustcmd*{\cbx@ifnameseen@context}[1]{%
  41. \iftoggle{blx@footnote}%
  42. {\xifinlistcs{#1}{cbx@fseen@names@\the\c@refsection}}%
  43. {\xifinlistcs{#1}{cbx@bseen@names@\the\c@refsection}}}
  44. \DeclareBibliographyOption[string]{nametracker}[true]{%
  45. \ifcsdef{blx@opt@nametracker@#1}
  46. {\csuse{blx@opt@nametracker@#1}}
  47. {\blx@err@invopt{nametracker=#1}{}}}
  48. \def\blx@opt@nametracker@global{%
  49. \let\cbx@ifnameseen\cbx@ifnameseen@global
  50. \let\cbx@nametracker\cbx@nametracker@global}
  51. \let\blx@opt@nametracker@true\blx@opt@nametracker@global
  52. \def\blx@opt@nametracker@false{%
  53. \protected\long\def\cbx@ifnameseen##1##2##3{##3}%
  54. \let\cbx@nametracker\relax}
  55. \def\blx@opt@nametracker@context{%
  56. \let\cbx@ifnameseen\cbx@ifnameseen@context
  57. \let\cbx@nametracker\cbx@nametracker@context}
  58. \appto\blx@secinit{%
  59. \ifcsundef{cbx@bseen@names@\the\c@refsection}
  60. {\global\cslet{cbx@bseen@names@\the\c@refsection}\@empty}
  61. {}%
  62. \ifcsundef{cbx@fseen@names@\the\c@refsection}
  63. {\global\cslet{cbx@fseen@names@\the\c@refsection}\@empty}
  64. {}}
  65. \InitializeCitationStyle{%
  66. \global\cslet{cbx@bseen@names@\the\c@refsection}\@empty
  67. \global\cslet{cbx@fseen@names@\the\c@refsection}\@empty}
  68. \ExecuteBibliographyOptions{nametracker=context}
  69. \DeclareNameFormat{labelname}{%
  70. \cbx@ifnameseen{\thefield{hash}}
  71. {\ifcase\value{uniquename}%
  72. \usebibmacro{name:family}
  73. {\namepartfamily}
  74. {\namepartgiven}
  75. {\namepartprefix}
  76. {\namepartsuffix}%
  77. \or
  78. \ifuseprefix
  79. {\usebibmacro{name:given-family}
  80. {\namepartfamily}
  81. {\namepartgiveni}
  82. {\namepartprefix}
  83. {\namepartsuffixi}}
  84. {\usebibmacro{name:given-family}
  85. {\namepartfamily}
  86. {\namepartgiveni}
  87. {\namepartprefixi}
  88. {\namepartsuffixi}}%
  89. \or
  90. \usebibmacro{name:given-family}
  91. {\namepartfamily}
  92. {\namepartgiven}
  93. {\namepartprefix}
  94. {\namepartsuffix}%
  95. \fi}
  96. {\usebibmacro{name:given-family}
  97. {\namepartfamily}
  98. {\namepartgiven}
  99. {\namepartprefix}
  100. {\namepartsuffix}%
  101. \cbx@nametracker{\thefield{hash}}}
  102. \usebibmacro{name:andothers}}
  103. \makeatother