bookvvmrus.cbx 5.5 KB

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