bookvvmrus.bbx 26 KB

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