bookvvmrus.bbx 26 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042
  1. \ProvidesFile{bookvvmrus.bbx}
  2. [\abx@bbxid]
  3. \newtoggle{bbx:isbn}
  4. \newtoggle{bbx:url}
  5. \newtoggle{bbx:doi}
  6. \newtoggle{bbx:eprint}
  7. \newtoggle{bbx:related}
  8. \DeclareBibliographyOption[boolean]{isbn}[true]{%
  9. \settoggle{bbx:isbn}{#1}}
  10. \DeclareBibliographyOption[boolean]{url}[true]{%
  11. \settoggle{bbx:url}{#1}}
  12. \DeclareBibliographyOption[boolean]{doi}[true]{%
  13. \settoggle{bbx:doi}{#1}}
  14. \DeclareBibliographyOption[boolean]{eprint}[true]{%
  15. \settoggle{bbx:eprint}{#1}}
  16. \DeclareBibliographyOption[boolean]{related}[true]{%
  17. \settoggle{bbx:related}{#1}}
  18. \ExecuteBibliographyOptions{isbn,url,doi,eprint,related}
  19. \newbibmacro*{begentry}{}
  20. \newbibmacro*{finentry}{\finentry}
  21. \DeclareBibliographyDriver{article}{%
  22. \usebibmacro{bibindex}%
  23. \usebibmacro{begentry}%
  24. \usebibmacro{author}\\*%
  25. \printfield{labelyear}%
  26. \ifkeyword{addedByTranslator}{\textdegree}{}.\space%
  27. \setunit{\printdelim{nametitledelim}}\newblock
  28. \usebibmacro{title}%
  29. \newunit
  30. \printlist{language}%
  31. \newunit\newblock
  32. \usebibmacro{byauthor}%
  33. \newunit\newblock
  34. \usebibmacro{bytranslator+others}%
  35. \newunit\newblock
  36. \printfield{version}%
  37. \newunit\newblock
  38. \usebibmacro{journal+issuetitle}%
  39. \newunit
  40. \usebibmacro{byeditor+others}%
  41. \newunit
  42. \usebibmacro{note+pages}%
  43. \newunit\newblock
  44. \iftoggle{bbx:isbn}
  45. {\printfield{issn}}
  46. {}%
  47. \newunit\newblock
  48. \usebibmacro{doi+eprint+url}%
  49. \newunit\newblock
  50. \usebibmacro{addendum}%
  51. \setunit{\bibpagerefpunct}\newblock
  52. \usebibmacro{pageref}%
  53. \newunit\newblock
  54. \iftoggle{bbx:related}
  55. {\usebibmacro{related:init}%
  56. \usebibmacro{related}}
  57. {}%
  58. \usebibmacro{finentry}}
  59. \DeclareBibliographyDriver{book}{%
  60. \usebibmacro{bibindex}%
  61. \usebibmacro{begentry}%
  62. \usebibmacro{author}\\%
  63. \printfield{labelyear}%
  64. \ifkeyword{addedByTranslator}{\textdegree}{}.\space%
  65. \setunit{}\newblock
  66. \usebibmacro{maintitle+title}%
  67. \newunit
  68. \printlist{language}%
  69. \newunit\newblock
  70. \usebibmacro{byauthor}%
  71. \newunit\newblock
  72. \usebibmacro{byeditor+others}%
  73. \newunit\newblock
  74. \printfield{edition}%
  75. \newunit
  76. \iffieldundef{maintitle}
  77. {\printfield{volume}%
  78. \printfield{part}}
  79. {}%
  80. \newunit
  81. \printfield{volumes}%
  82. \newunit\newblock
  83. \usebibmacro{series+number}%
  84. \newunit\newblock
  85. \printfield{note}%
  86. \newunit\newblock
  87. \usebibmacro{publisher+location+date}%
  88. \newunit\newblock
  89. \usebibmacro{chapter+pages}%
  90. \newunit
  91. \printfield{pagetotal}%
  92. \newunit\newblock
  93. \iftoggle{bbx:isbn}
  94. {\printfield{isbn}}
  95. {}%
  96. \newunit\newblock
  97. \usebibmacro{doi+eprint+url}%
  98. \newunit\newblock
  99. \usebibmacro{addendum}%
  100. \setunit{\bibpagerefpunct}\newblock
  101. \usebibmacro{pageref}%
  102. \newunit\newblock
  103. \iftoggle{bbx:related}
  104. {\usebibmacro{related:init}%
  105. \usebibmacro{related}}
  106. {}%
  107. \usebibmacro{finentry}}
  108. \DeclareBibliographyDriver{booklet}{%
  109. \usebibmacro{bibindex}%
  110. \usebibmacro{begentry}%
  111. \usebibmacro{author/editor+others/translator+others}%
  112. \setunit{\printdelim{nametitledelim}}\newblock
  113. \usebibmacro{title}%
  114. \newunit
  115. \printlist{language}%
  116. \newunit\newblock
  117. \usebibmacro{byauthor}%
  118. \newunit\newblock
  119. \usebibmacro{byeditor+others}%
  120. \newunit\newblock
  121. \printfield{howpublished}%
  122. \newunit\newblock
  123. \printfield{type}%
  124. \newunit\newblock
  125. \printfield{note}%
  126. \newunit\newblock
  127. \usebibmacro{location+date}%
  128. \newunit\newblock
  129. \usebibmacro{chapter+pages}%
  130. \newunit
  131. \printfield{pagetotal}%
  132. \newunit\newblock
  133. \usebibmacro{doi+eprint+url}%
  134. \newunit\newblock
  135. \usebibmacro{addendum+pubstate}%
  136. \setunit{\bibpagerefpunct}\newblock
  137. \usebibmacro{pageref}%
  138. \newunit\newblock
  139. \iftoggle{bbx:related}
  140. {\usebibmacro{related:init}%
  141. \usebibmacro{related}}
  142. {}%
  143. \usebibmacro{finentry}}
  144. \DeclareBibliographyDriver{collection}{%
  145. \usebibmacro{bibindex}%
  146. \usebibmacro{begentry}%
  147. \usebibmacro{editor+others}%
  148. \setunit{\printdelim{nametitledelim}}\newblock
  149. \usebibmacro{maintitle+title}%
  150. \newunit
  151. \printlist{language}%
  152. \newunit\newblock
  153. \usebibmacro{byeditor+others}%
  154. \newunit\newblock
  155. \printfield{edition}%
  156. \newunit
  157. \iffieldundef{maintitle}
  158. {\printfield{volume}%
  159. \printfield{part}}
  160. {}%
  161. \newunit
  162. \printfield{volumes}%
  163. \newunit\newblock
  164. \usebibmacro{series+number}%
  165. \newunit\newblock
  166. \printfield{note}%
  167. \newunit\newblock
  168. \usebibmacro{publisher+location+date}%
  169. \newunit\newblock
  170. \usebibmacro{chapter+pages}%
  171. \newunit
  172. \printfield{pagetotal}%
  173. \newunit\newblock
  174. \iftoggle{bbx:isbn}
  175. {\printfield{isbn}}
  176. {}%
  177. \newunit\newblock
  178. \usebibmacro{doi+eprint+url}%
  179. \newunit\newblock
  180. \usebibmacro{addendum+pubstate}%
  181. \setunit{\bibpagerefpunct}\newblock
  182. \usebibmacro{pageref}%
  183. \newunit\newblock
  184. \iftoggle{bbx:related}
  185. {\usebibmacro{related:init}%
  186. \usebibmacro{related}}
  187. {}%
  188. \usebibmacro{finentry}}
  189. \DeclareBibliographyDriver{inbook}{%
  190. \usebibmacro{bibindex}%
  191. \usebibmacro{begentry}%
  192. \usebibmacro{author/translator+others}%
  193. \setunit{\printdelim{nametitledelim}}\newblock
  194. \usebibmacro{title}%
  195. \newunit
  196. \printlist{language}%
  197. \newunit\newblock
  198. \usebibmacro{byauthor}%
  199. \newunit\newblock
  200. \usebibmacro{in:}%
  201. \usebibmacro{bybookauthor}%
  202. \newunit\newblock
  203. \usebibmacro{maintitle+booktitle}%
  204. \newunit\newblock
  205. \usebibmacro{byeditor+others}%
  206. \newunit\newblock
  207. \printfield{edition}%
  208. \newunit
  209. \iffieldundef{maintitle}
  210. {\printfield{volume}%
  211. \printfield{part}}
  212. {}%
  213. \newunit
  214. \printfield{volumes}%
  215. \newunit\newblock
  216. \usebibmacro{series+number}%
  217. \newunit\newblock
  218. \printfield{note}%
  219. \newunit\newblock
  220. \usebibmacro{publisher+location+date}%
  221. \newunit\newblock
  222. \usebibmacro{chapter+pages}%
  223. \newunit\newblock
  224. \iftoggle{bbx:isbn}
  225. {\printfield{isbn}}
  226. {}%
  227. \newunit\newblock
  228. \usebibmacro{doi+eprint+url}%
  229. \newunit\newblock
  230. \usebibmacro{addendum+pubstate}%
  231. \setunit{\bibpagerefpunct}\newblock
  232. \usebibmacro{pageref}%
  233. \newunit\newblock
  234. \iftoggle{bbx:related}
  235. {\usebibmacro{related:init}%
  236. \usebibmacro{related}}
  237. {}%
  238. \usebibmacro{finentry}}
  239. \DeclareBibliographyDriver{incollection}{%
  240. \usebibmacro{bibindex}%
  241. \usebibmacro{begentry}%
  242. \usebibmacro{author/translator+others}%
  243. \setunit{\printdelim{nametitledelim}}\newblock
  244. \usebibmacro{title}%
  245. \newunit
  246. \printlist{language}%
  247. \newunit\newblock
  248. \usebibmacro{byauthor}%
  249. \newunit\newblock
  250. \usebibmacro{in:}%
  251. \usebibmacro{maintitle+booktitle}%
  252. \newunit\newblock
  253. \usebibmacro{byeditor+others}%
  254. \newunit\newblock
  255. \printfield{edition}%
  256. \newunit
  257. \iffieldundef{maintitle}
  258. {\printfield{volume}%
  259. \printfield{part}}
  260. {}%
  261. \newunit
  262. \printfield{volumes}%
  263. \newunit\newblock
  264. \usebibmacro{series+number}%
  265. \newunit\newblock
  266. \printfield{note}%
  267. \newunit\newblock
  268. \usebibmacro{publisher+location+date}%
  269. \newunit\newblock
  270. \usebibmacro{chapter+pages}%
  271. \newunit\newblock
  272. \iftoggle{bbx:isbn}
  273. {\printfield{isbn}}
  274. {}%
  275. \newunit\newblock
  276. \usebibmacro{doi+eprint+url}%
  277. \newunit\newblock
  278. \usebibmacro{addendum+pubstate}%
  279. \setunit{\bibpagerefpunct}\newblock
  280. \usebibmacro{pageref}%
  281. \newunit\newblock
  282. \iftoggle{bbx:related}
  283. {\usebibmacro{related:init}%
  284. \usebibmacro{related}}
  285. {}%
  286. \usebibmacro{finentry}}
  287. \DeclareBibliographyDriver{inproceedings}{%
  288. \usebibmacro{bibindex}%
  289. \usebibmacro{begentry}%
  290. \usebibmacro{author/translator+others}%
  291. \setunit{\printdelim{nametitledelim}}\newblock
  292. \usebibmacro{title}%
  293. \newunit
  294. \printlist{language}%
  295. \newunit\newblock
  296. \usebibmacro{byauthor}%
  297. \newunit\newblock
  298. \usebibmacro{in:}%
  299. \usebibmacro{maintitle+booktitle}%
  300. \newunit\newblock
  301. \usebibmacro{event+venue+date}%
  302. \newunit\newblock
  303. \usebibmacro{byeditor+others}%
  304. \newunit\newblock
  305. \iffieldundef{maintitle}
  306. {\printfield{volume}%
  307. \printfield{part}}
  308. {}%
  309. \newunit
  310. \printfield{volumes}%
  311. \newunit\newblock
  312. \usebibmacro{series+number}%
  313. \newunit\newblock
  314. \printfield{note}%
  315. \newunit\newblock
  316. \printlist{organization}%
  317. \newunit
  318. \usebibmacro{publisher+location+date}%
  319. \newunit\newblock
  320. \usebibmacro{chapter+pages}%
  321. \newunit\newblock
  322. \iftoggle{bbx:isbn}
  323. {\printfield{isbn}}
  324. {}%
  325. \newunit\newblock
  326. \usebibmacro{doi+eprint+url}%
  327. \newunit\newblock
  328. \usebibmacro{addendum+pubstate}%
  329. \setunit{\bibpagerefpunct}\newblock
  330. \usebibmacro{pageref}%
  331. \newunit\newblock
  332. \iftoggle{bbx:related}
  333. {\usebibmacro{related:init}%
  334. \usebibmacro{related}}
  335. {}%
  336. \usebibmacro{finentry}}
  337. \DeclareBibliographyDriver{manual}{%
  338. \usebibmacro{bibindex}%
  339. \usebibmacro{begentry}%
  340. \usebibmacro{author/editor}%
  341. \setunit{\printdelim{nametitledelim}}\newblock
  342. \usebibmacro{title}%
  343. \newunit
  344. \printlist{language}%
  345. \newunit\newblock
  346. \usebibmacro{byauthor}%
  347. \newunit\newblock
  348. \usebibmacro{byeditor}%
  349. \newunit\newblock
  350. \printfield{edition}%
  351. \newunit\newblock
  352. \usebibmacro{series+number}%
  353. \newunit\newblock
  354. \printfield{type}%
  355. \newunit
  356. \printfield{version}%
  357. \newunit
  358. \printfield{note}%
  359. \newunit\newblock
  360. \printlist{organization}%
  361. \newunit
  362. \usebibmacro{publisher+location+date}%
  363. \newunit\newblock
  364. \usebibmacro{chapter+pages}%
  365. \newunit
  366. \printfield{pagetotal}%
  367. \newunit\newblock
  368. \iftoggle{bbx:isbn}
  369. {\printfield{isbn}}
  370. {}%
  371. \newunit\newblock
  372. \usebibmacro{doi+eprint+url}%
  373. \newunit\newblock
  374. \usebibmacro{addendum+pubstate}%
  375. \setunit{\bibpagerefpunct}\newblock
  376. \usebibmacro{pageref}%
  377. \newunit\newblock
  378. \iftoggle{bbx:related}
  379. {\usebibmacro{related:init}%
  380. \usebibmacro{related}}
  381. {}%
  382. \usebibmacro{finentry}}
  383. \DeclareBibliographyDriver{misc}{%
  384. \usebibmacro{bibindex}%
  385. \usebibmacro{begentry}%
  386. \usebibmacro{author/editor+others/translator+others}%
  387. \setunit{\printdelim{nametitledelim}}\newblock
  388. \usebibmacro{title}%
  389. \newunit
  390. \printlist{language}%
  391. \newunit\newblock
  392. \usebibmacro{byauthor}%
  393. \newunit\newblock
  394. \usebibmacro{byeditor+others}%
  395. \newunit\newblock
  396. \printfield{howpublished}%
  397. \newunit\newblock
  398. \printfield{type}%
  399. \newunit
  400. \printfield{version}%
  401. \newunit
  402. \printfield{note}%
  403. \newunit\newblock
  404. \usebibmacro{organization+location+date}%
  405. \newunit\newblock
  406. \usebibmacro{doi+eprint+url}%
  407. \newunit\newblock
  408. \usebibmacro{addendum+pubstate}%
  409. \setunit{\bibpagerefpunct}\newblock
  410. \usebibmacro{pageref}%
  411. \newunit\newblock
  412. \iftoggle{bbx:related}
  413. {\usebibmacro{related:init}%
  414. \usebibmacro{related}}
  415. {}%
  416. \usebibmacro{finentry}}
  417. \DeclareBibliographyDriver{online}{%
  418. \usebibmacro{bibindex}%
  419. \usebibmacro{begentry}%
  420. \usebibmacro{author/editor+others/translator+others}%
  421. \setunit{\printdelim{nametitledelim}}\newblock
  422. \usebibmacro{title}%
  423. \newunit
  424. \printlist{language}%
  425. \newunit\newblock
  426. \usebibmacro{byauthor}%
  427. \newunit\newblock
  428. \usebibmacro{byeditor+others}%
  429. \newunit\newblock
  430. \printfield{version}%
  431. \newunit
  432. \printfield{note}%
  433. \newunit\newblock
  434. \printlist{organization}%
  435. \newunit\newblock
  436. \usebibmacro{date}%
  437. \newunit\newblock
  438. \iftoggle{bbx:eprint}
  439. {\usebibmacro{eprint}}
  440. {}%
  441. \newunit\newblock
  442. \usebibmacro{url+urldate}%
  443. \newunit\newblock
  444. \usebibmacro{addendum+pubstate}%
  445. \setunit{\bibpagerefpunct}\newblock
  446. \usebibmacro{pageref}%
  447. \newunit\newblock
  448. \iftoggle{bbx:related}
  449. {\usebibmacro{related:init}%
  450. \usebibmacro{related}}
  451. {}%
  452. \usebibmacro{finentry}}
  453. \DeclareBibliographyDriver{patent}{%
  454. \usebibmacro{bibindex}%
  455. \usebibmacro{begentry}%
  456. \usebibmacro{author}%
  457. \setunit{\printdelim{nametitledelim}}\newblock
  458. \usebibmacro{title}%
  459. \newunit
  460. \printlist{language}%
  461. \newunit\newblock
  462. \usebibmacro{byauthor}%
  463. \newunit\newblock
  464. \printfield{type}%
  465. \setunit*{\addspace}%
  466. \printfield{number}%
  467. \iflistundef{location}
  468. {}
  469. {\setunit*{\addspace}%
  470. \printtext[parens]{%
  471. \printlist[][-\value{listtotal}]{location}}}%
  472. \newunit\newblock
  473. \usebibmacro{byholder}%
  474. \newunit\newblock
  475. \printfield{note}%
  476. \newunit\newblock
  477. \usebibmacro{date}%
  478. \newunit\newblock
  479. \usebibmacro{doi+eprint+url}%
  480. \newunit\newblock
  481. \usebibmacro{addendum+pubstate}%
  482. \setunit{\bibpagerefpunct}\newblock
  483. \usebibmacro{pageref}%
  484. \newunit\newblock
  485. \iftoggle{bbx:related}
  486. {\usebibmacro{related:init}%
  487. \usebibmacro{related}}
  488. {}%
  489. \usebibmacro{finentry}}
  490. \DeclareBibliographyDriver{periodical}{%
  491. \usebibmacro{bibindex}%
  492. \usebibmacro{begentry}%
  493. \usebibmacro{editor}%
  494. \setunit{\printdelim{nametitledelim}}\newblock
  495. \usebibmacro{title+issuetitle}%
  496. \newunit
  497. \printlist{language}%
  498. \newunit\newblock
  499. \usebibmacro{byeditor}%
  500. \newunit\newblock
  501. \printfield{note}%
  502. \newunit\newblock
  503. \iftoggle{bbx:isbn}
  504. {\printfield{issn}}
  505. {}%
  506. \newunit\newblock
  507. \usebibmacro{doi+eprint+url}%
  508. \newunit\newblock
  509. \usebibmacro{addendum+pubstate}%
  510. \setunit{\bibpagerefpunct}\newblock
  511. \usebibmacro{pageref}%
  512. \newunit\newblock
  513. \iftoggle{bbx:related}
  514. {\usebibmacro{related:init}%
  515. \usebibmacro{related}}
  516. {}%
  517. \usebibmacro{finentry}}
  518. \DeclareBibliographyDriver{proceedings}{%
  519. \usebibmacro{bibindex}%
  520. \usebibmacro{begentry}%
  521. \usebibmacro{editor+others}%
  522. \setunit{\printdelim{nametitledelim}}\newblock
  523. \usebibmacro{maintitle+title}%
  524. \newunit
  525. \printlist{language}%
  526. \newunit\newblock
  527. \usebibmacro{event+venue+date}%
  528. \newunit\newblock
  529. \usebibmacro{byeditor+others}%
  530. \newunit\newblock
  531. \iffieldundef{maintitle}
  532. {\printfield{volume}%
  533. \printfield{part}}
  534. {}%
  535. \newunit
  536. \printfield{volumes}%
  537. \newunit\newblock
  538. \usebibmacro{series+number}%
  539. \newunit\newblock
  540. \printfield{note}%
  541. \newunit\newblock
  542. \printlist{organization}%
  543. \newunit
  544. \usebibmacro{publisher+location+date}%
  545. \newunit\newblock
  546. \usebibmacro{chapter+pages}%
  547. \newunit
  548. \printfield{pagetotal}%
  549. \newunit\newblock
  550. \iftoggle{bbx:isbn}
  551. {\printfield{isbn}}
  552. {}%
  553. \newunit\newblock
  554. \usebibmacro{doi+eprint+url}%
  555. \newunit\newblock
  556. \usebibmacro{addendum+pubstate}%
  557. \setunit{\bibpagerefpunct}\newblock
  558. \usebibmacro{pageref}%
  559. \newunit\newblock
  560. \iftoggle{bbx:related}
  561. {\usebibmacro{related:init}%
  562. \usebibmacro{related}}
  563. {}%
  564. \usebibmacro{finentry}}
  565. \DeclareBibliographyDriver{report}{%
  566. \usebibmacro{bibindex}%
  567. \usebibmacro{begentry}%
  568. \usebibmacro{author}%
  569. \setunit{\printdelim{nametitledelim}}\newblock
  570. \usebibmacro{title}%
  571. \newunit
  572. \printlist{language}%
  573. \newunit\newblock
  574. \usebibmacro{byauthor}%
  575. \newunit\newblock
  576. \printfield{type}%
  577. \setunit*{\addspace}%
  578. \printfield{number}%
  579. \newunit\newblock
  580. \printfield{version}%
  581. \newunit
  582. \printfield{note}%
  583. \newunit\newblock
  584. \usebibmacro{institution+location+date}%
  585. \newunit\newblock
  586. \usebibmacro{chapter+pages}%
  587. \newunit
  588. \printfield{pagetotal}%
  589. \newunit\newblock
  590. \iftoggle{bbx:isbn}
  591. {\printfield{isrn}}
  592. {}%
  593. \newunit\newblock
  594. \usebibmacro{doi+eprint+url}%
  595. \newunit\newblock
  596. \usebibmacro{addendum+pubstate}%
  597. \setunit{\bibpagerefpunct}\newblock
  598. \usebibmacro{pageref}%
  599. \newunit\newblock
  600. \iftoggle{bbx:related}
  601. {\usebibmacro{related:init}%
  602. \usebibmacro{related}}
  603. {}%
  604. \usebibmacro{finentry}}
  605. \DeclareBibliographyDriver{thesis}{%
  606. \usebibmacro{bibindex}%
  607. \usebibmacro{begentry}%
  608. \usebibmacro{author}%
  609. \setunit{\printdelim{nametitledelim}}\newblock
  610. \usebibmacro{title}%
  611. \newunit
  612. \printlist{language}%
  613. \newunit\newblock
  614. \usebibmacro{byauthor}%
  615. \newunit\newblock
  616. \printfield{note}%
  617. \newunit\newblock
  618. \printfield{type}%
  619. \newunit
  620. \usebibmacro{institution+location+date}%
  621. \newunit\newblock
  622. \usebibmacro{chapter+pages}%
  623. \newunit
  624. \printfield{pagetotal}%
  625. \newunit\newblock
  626. \iftoggle{bbx:isbn}
  627. {\printfield{isbn}}
  628. {}%
  629. \newunit\newblock
  630. \usebibmacro{doi+eprint+url}%
  631. \newunit\newblock
  632. \usebibmacro{addendum+pubstate}%
  633. \setunit{\bibpagerefpunct}\newblock
  634. \usebibmacro{pageref}%
  635. \newunit\newblock
  636. \iftoggle{bbx:related}
  637. {\usebibmacro{related:init}%
  638. \usebibmacro{related}}
  639. {}%
  640. \usebibmacro{finentry}}
  641. \DeclareBibliographyDriver{unpublished}{%
  642. \usebibmacro{bibindex}%
  643. \usebibmacro{begentry}%
  644. \usebibmacro{author}%
  645. \setunit{\printdelim{nametitledelim}}\newblock
  646. \usebibmacro{title}%
  647. \newunit
  648. \printlist{language}%
  649. \newunit\newblock
  650. \usebibmacro{byauthor}%
  651. \newunit\newblock
  652. \printfield{howpublished}%
  653. \newunit\newblock
  654. \printfield{note}%
  655. \newunit\newblock
  656. \usebibmacro{location+date}%
  657. \newunit\newblock
  658. \iftoggle{bbx:url}
  659. {\usebibmacro{url+urldate}}
  660. {}%
  661. \newunit\newblock
  662. \usebibmacro{addendum+pubstate}%
  663. \setunit{\bibpagerefpunct}\newblock
  664. \usebibmacro{pageref}%
  665. \newunit\newblock
  666. \iftoggle{bbx:related}
  667. {\usebibmacro{related:init}%
  668. \usebibmacro{related}}
  669. {}%
  670. \usebibmacro{finentry}}
  671. \DeclareBibliographyDriver{shorthand}{%
  672. \usedriver
  673. {\DeclareNameAlias{sortname}{default}}
  674. {\thefield{entrytype}}%
  675. \finentry}
  676. \DeclareBibliographyDriver{set}{%
  677. \entryset{}{}%
  678. \newunit\newblock
  679. \usebibmacro{setpageref}%
  680. \finentry}
  681. \DeclareBibliographyAlias{mvbook}{book}
  682. \DeclareBibliographyAlias{bookinbook}{inbook}
  683. \DeclareBibliographyAlias{suppbook}{inbook}
  684. \DeclareBibliographyAlias{mvcollection}{collection}
  685. \DeclareBibliographyAlias{suppcollection}{incollection}
  686. \DeclareBibliographyAlias{mvproceedings}{proceedings}
  687. \DeclareBibliographyAlias{reference}{collection}
  688. \DeclareBibliographyAlias{mvreference}{reference}
  689. \DeclareBibliographyAlias{inreference}{incollection}
  690. \DeclareBibliographyAlias{suppperiodical}{article}
  691. \DeclareBibliographyAlias{review}{article}
  692. \DeclareBibliographyAlias{*}{misc}
  693. \newbibmacro*{maintitle+title}{%
  694. \iffieldsequal{maintitle}{title}
  695. {\clearfield{maintitle}%
  696. \clearfield{mainsubtitle}%
  697. \clearfield{maintitleaddon}}
  698. {\iffieldundef{maintitle}
  699. {}
  700. {\usebibmacro{maintitle}%
  701. \newunit\newblock
  702. \iffieldundef{volume}
  703. {}
  704. {\printfield{volume}%
  705. \printfield{part}%
  706. \setunit{\addcolon\space}}}}%
  707. \usebibmacro{title}%
  708. \newunit}
  709. \newbibmacro*{maintitle+booktitle}{%
  710. \iffieldundef{maintitle}
  711. {}
  712. {\usebibmacro{maintitle}%
  713. \newunit\newblock
  714. \iffieldundef{volume}
  715. {}
  716. {\printfield{volume}%
  717. \printfield{part}%
  718. \setunit{\addcolon\space}}}%
  719. \usebibmacro{booktitle}%
  720. \newunit}
  721. \newbibmacro*{journal+issuetitle}{%
  722. \usebibmacro{journal}%
  723. \setunit*{\addspace}%
  724. \iffieldundef{series}
  725. {}
  726. {\newunit
  727. \printfield{series}%
  728. \setunit{\addspace}}%
  729. \usebibmacro{volume+number+eid}%
  730. %\setunit{\addspace}%
  731. %\usebibmacro{issue+date}%
  732. %\setunit{\addcolon\space}%
  733. \setunit{\addcomma\space}%
  734. \usebibmacro{issue}%
  735. \newunit}
  736. \newbibmacro*{volume+number+eid}{%
  737. \printfield{volume}%
  738. \setunit*{\adddot}%
  739. \printfield{number}%
  740. \setunit{\addcomma\space}%
  741. \printfield{eid}}
  742. \newbibmacro*{title+issuetitle}{%
  743. \usebibmacro{periodical}%
  744. \setunit*{\addspace}%
  745. \iffieldundef{series}
  746. {}
  747. {\newunit
  748. \printfield{series}%
  749. \setunit{\addspace}}%
  750. \printfield{volume}%
  751. \setunit*{\adddot}%
  752. \printfield{number}%
  753. \setunit{\addcomma\space}%
  754. \printfield{eid}%
  755. \setunit{\addspace}%
  756. \usebibmacro{issue+date}%
  757. \setunit{\addcolon\space}%
  758. \usebibmacro{issue}%
  759. \newunit}
  760. \newbibmacro*{issue+date}{%
  761. \printtext[parens]{%
  762. \iffieldundef{issue}
  763. {\usebibmacro{date}}
  764. {\printfield{issue}%
  765. \setunit*{\addspace}%
  766. \usebibmacro{date}}}%
  767. \newunit}
  768. \newbibmacro*{event+venue+date}{%
  769. \printfield{eventtitle}%
  770. \newunit
  771. \printfield{eventtitleaddon}%
  772. \ifboolexpr{
  773. test {\iffieldundef{venue}}
  774. and
  775. test {\iffieldundef{eventyear}}
  776. }
  777. {}
  778. {\setunit*{\addspace}%
  779. \printtext[parens]{%
  780. \printfield{venue}%
  781. \setunit*{\addcomma\space}%
  782. \printeventdate}}%
  783. \newunit}
  784. \newbibmacro*{series+number}{%
  785. \printfield{series}%
  786. \setunit*{\addspace}%
  787. \printfield{number}%
  788. \newunit}
  789. \newbibmacro*{publisher+location+date}{%
  790. \printlist{location}%
  791. \iflistundef{publisher}
  792. {\setunit*{\addcomma\space}}
  793. {\setunit*{\addcolon\space}}%
  794. \printlist{publisher}%
  795. \setunit*{\addcomma\space}%
  796. \usebibmacro{date}%
  797. \newunit}
  798. \newbibmacro*{institution+location+date}{%
  799. \printlist{location}%
  800. \iflistundef{institution}
  801. {\setunit*{\addcomma\space}}
  802. {\setunit*{\addcolon\space}}%
  803. \printlist{institution}%
  804. \setunit*{\addcomma\space}%
  805. \usebibmacro{date}%
  806. \newunit}
  807. \newbibmacro*{organization+location+date}{%
  808. \printlist{location}%
  809. \iflistundef{organization}
  810. {\setunit*{\addcomma\space}}
  811. {\setunit*{\addcolon\space}}%
  812. \printlist{organization}%
  813. \setunit*{\addcomma\space}%
  814. \usebibmacro{date}%
  815. \newunit}
  816. \newbibmacro*{location+date}{%
  817. \printlist{location}%
  818. \setunit*{\addcomma\space}%
  819. \usebibmacro{date}%
  820. \newunit}
  821. \newbibmacro*{chapter+pages}{%
  822. \printfield{chapter}%
  823. \setunit{\bibpagespunct}%
  824. \printfield{pages}%
  825. \newunit}
  826. \newbibmacro*{note+pages}{%
  827. \printfield{note}%
  828. \setunit{\bibpagespunct}%
  829. \printfield{pages}%
  830. \newunit}
  831. \newbibmacro*{doi+eprint+url}{%
  832. \iftoggle{bbx:doi}
  833. {\printfield{doi}}
  834. {}%
  835. \newunit\newblock
  836. \iftoggle{bbx:eprint}
  837. {\usebibmacro{eprint}}
  838. {}%
  839. \newunit\newblock
  840. \iftoggle{bbx:url}
  841. {\usebibmacro{url+urldate}}
  842. {}}
  843. \newbibmacro*{addendum+pubstate}{%
  844. \printfield{addendum}%
  845. \newunit\newblock
  846. \printfield{pubstate}}
  847. \newcounter{bbx:relatedcount}
  848. \newcounter{bbx:relatedtotal}
  849. \newbibmacro*{related:init}{%
  850. \csundef{bbx:relatedloop}}
  851. \newbibmacro*{begrelated}{}
  852. \newbibmacro*{endrelated}{}
  853. \newbibmacro*{begrelatedloop}{}
  854. \newbibmacro*{endrelatedloop}{}
  855. \def\ifrelatedloop{%
  856. \ifboolexpr{ test {\xifinlistcs{\strfield{entrykey}}{bbx:relatedloop}}
  857. or test {\xifinlistcs{\strfield{clonesourcekey}}{bbx:relatedloop}} }}
  858. \newbibmacro*{related}{%
  859. \ifboolexpr{ test {\iffieldundef{related}} or test {\ifrelatedloop} }
  860. {}
  861. {\usebibmacro{begrelated}%
  862. \def\bbx@tempa{}%
  863. \setcounter{bbx:relatedtotal}{0}%
  864. \def\do##1{%
  865. \entrydata{##1}{%
  866. \ifrelatedloop
  867. {}
  868. {\stepcounter{bbx:relatedtotal}%
  869. \gappto{\bbx@tempa}{##1,}}}}%
  870. \docsvfield{related}%
  871. \restorefield{related}{\bbx@tempa}%
  872. \ifnumgreater{\value{bbx:relatedtotal}}{0}
  873. {\listcsxadd{bbx:relatedloop}{\strfield{entrykey}}%
  874. \iffieldundef{clonesourcekey}
  875. {}
  876. {\listcsxadd{bbx:relatedloop}{\strfield{clonesourcekey}}}%
  877. \setcounter{bbx:relatedcount}{0}%
  878. \def\do{%
  879. \stepcounter{bbx:relatedcount}%
  880. \ifnumgreater{\value{bbx:relatedcount}}{1}
  881. {\ifcsundef{relateddelim\strfield{relatedtype}}
  882. {\printtext{\relateddelim}}
  883. {\printtext{\csuse{relateddelim\strfield{relatedtype}}}}}
  884. {}}%
  885. \ifbibmacroundef{related:\strfield{relatedtype}}
  886. {\appto{\do}{\usebibmacro{related:default}}}
  887. {\appto{\do}{\usebibmacro*{related:\strfield{relatedtype}}}}%
  888. \iffieldformatundef{related:\strfield{relatedtype}}
  889. {\def\bbx@tempa{related}}
  890. {\def\bbx@tempa{related:\strfield{relatedtype}}}%
  891. \iffieldformatundef{relatedstring:\strfield{relatedtype}}
  892. {\def\bbx@tempb{relatedstring:default}}
  893. {\def\bbx@tempb{relatedstring:\strfield{relatedtype}}}%
  894. \printtext[\bbx@tempa]{%
  895. \usebibmacro{begrelatedloop}%
  896. \iffieldundef{relatedstring}
  897. {\ifboolexpr{
  898. test {\ifnumgreater{\value{bbx:relatedtotal}}{1}}
  899. and
  900. test {\ifbibxstring{\thefield{relatedtype}s}}
  901. }
  902. {\printtext[\bbx@tempb]{%
  903. \bibstring[\mkrelatedstring]{\thefield{relatedtype}s}}}
  904. {\iffieldbibstring{relatedtype}
  905. {\printtext[\bbx@tempb]{%
  906. \bibstring[\mkrelatedstring]{\thefield{relatedtype}}}}
  907. {}}}
  908. {\iffieldbibstring{relatedstring}
  909. {\printtext[\bbx@tempb]{%
  910. \bibstring[\mkrelatedstring]{\thefield{relatedstring}}}}
  911. {\printfield[\bbx@tempb]{relatedstring}}}%
  912. \docsvfield{related}%
  913. \usebibmacro{endrelatedloop}}}%
  914. {}%
  915. \usebibmacro{endrelated}}}
  916. %%==============================================================================
  917. \DeclareSortingScheme{vvm}{
  918. \sort{
  919. \field{presort}
  920. }
  921. \sort[final]{
  922. \field{sortkey}
  923. }
  924. \sort{
  925. \field{sortname}
  926. \field{author}
  927. \field{editor}
  928. \field{translator}
  929. \field{sorttitle}
  930. \field{title}
  931. }
  932. \sort{
  933. \field{sortyear}
  934. \field{year}
  935. }
  936. \sort{
  937. \field{sorttitle}
  938. \field{title}
  939. }
  940. \sort{
  941. \field{volume}
  942. \literal{0}
  943. }
  944. }
  945. \renewcommand*{\revsdnamepunct}{\hspace*{.25em}}
  946. \renewcommand*{\newunitpunct}{\addcomma\space}
  947. \DeclareNameAlias{default}{family-given}
  948. \DeclareFieldFormat{booktitle}{#1}
  949. \DeclareFieldFormat{title}{#1}
  950. \DeclareFieldFormat{journaltitle}{#1}
  951. \renewbibmacro*{publisher+location+date}{%
  952. \printlist{location}%
  953. \iflistundef{publisher}
  954. {\setunit*{\space}}
  955. {\setunit*{\space(}}%
  956. \printlist{publisher}%
  957. \iflistundef{publisher}
  958. {\setunit*{}}
  959. {\iflistundef{location}{}{)}\space}%
  960. \printfield{year}%
  961. \newunit%
  962. }
  963. \newbibmacro*{addendum}{%
  964. \printfield{addendum}%
  965. \newunit\newblock}
  966. \renewbibmacro*{author}{%
  967. \ifboolexpr{
  968. test \ifuseauthor and not test {\ifnameundef{author}}
  969. }
  970. {%
  971. {\sparseFnt
  972. \printnames{author}\space\printfield{nameaddon}%
  973. \iffieldundef{authortype}
  974. {}
  975. {\setunit{\addcomma\space}%
  976. \usebibmacro{authorstrg}}%
  977. }
  978. }
  979. {}%
  980. }
  981. \renewbibmacro*{title}{%
  982. \ifboolexpr{
  983. test {\iffieldundef{title}} and test {\iffieldundef{subtitle}}
  984. }
  985. {}
  986. { \printfield[titlecase]{title}%
  987. \setunit{\subtitlepunct}%
  988. \printfield[titlecase]{subtitle}%}%
  989. \newunit}%
  990. \printfield{titleaddon}}
  991. %%==============================================================================
  992. \endinput