bookvvmrus.cbx 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. \ProvidesFile{bookvvmrus.cbx}
  2. [\abx@cbxid]
  3. \ExecuteBibliographyOptions{labeldateparts,uniquename,uniquelist,autocite=inline}
  4. %%=================================================
  5. \renewcommand*{\multicitedelim}{\addcomma\space}
  6. %%=================================================
  7. \renewcommand*{\iffinalcitedelim}{\iflastcitekey}
  8. \newbool{cbx:parens}
  9. \newbibmacro*{cite}{%
  10. \iffieldundef{shorthand}
  11. {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
  12. {\usebibmacro{cite:label}%
  13. \setunit{\printdelim{nonameyeardelim}}}
  14. %{\printnames{labelname}%
  15. {\printnames{labelyear}%
  16. \setunit{\printdelim{nameyeardelim}}}%
  17. \usebibmacro{cite:labelyear+extrayear}}
  18. {\usebibmacro{cite:shorthand}}}
  19. \newbibmacro*{citeyear}{%
  20. \iffieldundef{shorthand}
  21. {\iffieldundef{labelyear}
  22. {\usebibmacro{cite:label}}
  23. {\usebibmacro{cite:labelyear+extrayear}}}
  24. {\usebibmacro{cite:shorthand}}}
  25. \newbibmacro*{textcite}{%
  26. \ifnameundef{labelname}
  27. {\iffieldundef{shorthand}
  28. {\usebibmacro{cite:label}%
  29. \setunit{%
  30. \global\booltrue{cbx:parens}%
  31. \printdelim{nonameyeardelim}\bibopenparen}%
  32. \ifnumequal{\value{citecount}}{1}
  33. {\usebibmacro{prenote}}
  34. {}%
  35. \usebibmacro{cite:labelyear+extrayear}}
  36. {\usebibmacro{cite:shorthand}}}
  37. {\printnames{labelname}%
  38. \setunit{%
  39. \global\booltrue{cbx:parens}%
  40. \printdelim{nameyeardelim}\bibopenparen}%
  41. \ifnumequal{\value{citecount}}{1}
  42. {\usebibmacro{prenote}}
  43. {}%
  44. \usebibmacro{citeyear}}}
  45. \newbibmacro*{cite:shorthand}{%
  46. \printtext[bibhyperref]{\printfield{shorthand}}}
  47. \newbibmacro*{cite:label}{%
  48. \iffieldundef{label}
  49. {\printtext[bibhyperref]{\printfield[citetitle]{labeltitle}}}
  50. {\printtext[bibhyperref]{\printfield{label}}}}
  51. % Inside \printtext, argumentless macros also need '%' afterwards
  52. % otherwise the newlines are spaces
  53. \newbibmacro*{cite:labelyear+extrayear}{%
  54. \iffieldundef{labelyear}
  55. {}
  56. {\printtext[bibhyperref]{%
  57. \ifdefstring\blx@dateformat@labeldate{edtf}
  58. {}
  59. {\datecircaprint}%
  60. \dateeraprintpre{labelyear}%
  61. \printfield{labelyear}%
  62. \printfield{extrayear}%
  63. \dateuncertainprint%
  64. \iffieldsequal{labeldateera}{labelenddateera}{}
  65. {\dateeraprint{labelyear}}%
  66. \ifdefstring\blx@dateformat@labeldate{edtf}
  67. {\datecircaprintedtf}
  68. {}%
  69. \iffieldundef{labelendyear}
  70. {}
  71. {\iffieldsequal{labelyear}{labelendyear}{}
  72. {\ifdefstring\blx@dateformat@labeldate{edtf}
  73. {\slash}% strict EDTF
  74. {\bibdaterangesep
  75. \enddatecircaprint}%
  76. \dateeraprintpre{labelendyear}%
  77. \printfield{labelendyear}%
  78. \enddateuncertainprint
  79. \ifdefstring\blx@dateformat@labeldate{edtf}
  80. {\enddatecircaprintedtf}
  81. {}%
  82. \dateeraprint{labelendyear}}}}}}
  83. \newbibmacro*{textcite:postnote}{%
  84. \iffieldundef{postnote}
  85. {\ifbool{cbx:parens}
  86. {\bibcloseparen}
  87. {}}
  88. {\ifbool{cbx:parens}
  89. {\setunit{\postnotedelim}}
  90. {\setunit{\extpostnotedelim\bibopenparen}}%
  91. \printfield{postnote}\bibcloseparen}}
  92. \DeclareCiteCommand{\cite}
  93. {\lbrack\usebibmacro{prenote}}%
  94. {\usebibmacro{citeindex}%
  95. \usebibmacro{cite}}
  96. {\multicitedelim}
  97. {\usebibmacro{postnote}\rbrack}
  98. \DeclareCiteCommand*{\cite}
  99. {\usebibmacro{prenote}}%
  100. {\usebibmacro{citeindex}%
  101. \usebibmacro{citeyear}}
  102. {\multicitedelim}
  103. {\usebibmacro{postnote}}
  104. \DeclareCiteCommand{\parencite}[\mkbibparens]
  105. {\usebibmacro{prenote}}%
  106. {\usebibmacro{citeindex}%
  107. \usebibmacro{cite}}
  108. {\multicitedelim}
  109. {\usebibmacro{postnote}}
  110. \DeclareCiteCommand*{\parencite}[\mkbibparens]
  111. {\usebibmacro{prenote}}
  112. {\usebibmacro{citeindex}%
  113. \usebibmacro{citeyear}}
  114. {\multicitedelim}
  115. {\usebibmacro{postnote}}
  116. \DeclareCiteCommand{\footcite}[\mkbibfootnote]
  117. {\usebibmacro{prenote}}
  118. {\usebibmacro{citeindex}%
  119. \usebibmacro{cite}}
  120. {\multicitedelim}
  121. {\usebibmacro{postnote}}
  122. \DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
  123. {\usebibmacro{prenote}}
  124. {\usebibmacro{citeindex}%
  125. \usebibmacro{cite}}
  126. {\multicitedelim}
  127. {\usebibmacro{postnote}}
  128. \DeclareCiteCommand{\smartcite}[\iffootnote\mkbibparens\mkbibfootnote]
  129. {\usebibmacro{prenote}}
  130. {\usebibmacro{citeindex}%
  131. \usebibmacro{cite}}
  132. {\multicitedelim}
  133. {\usebibmacro{postnote}}
  134. \DeclareCiteCommand{\textcite}
  135. {\boolfalse{cbx:parens}}
  136. {\usebibmacro{citeindex}%
  137. \iffirstcitekey
  138. {\setcounter{textcitetotal}{1}}
  139. {\stepcounter{textcitetotal}%
  140. \textcitedelim}%
  141. \usebibmacro{textcite}}
  142. {\ifbool{cbx:parens}
  143. {\bibcloseparen\global\boolfalse{cbx:parens}}
  144. {}}
  145. {\usebibmacro{textcite:postnote}}
  146. \DeclareMultiCiteCommand{\textcites}{\textcite}{}
  147. %%==============================================================================
  148. \DeclareLabeldate{%
  149. \field{pubstate}
  150. \field{date}
  151. \field{year}
  152. \field{eventdate}
  153. \field{origdate}
  154. \field{urldate}
  155. \literal{nodate}
  156. }
  157. %%==============================================================================
  158. \endinput