ACM-Reference-Format.bbx 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820
  1. \ProvidesFile{ACM-Reference-Format.bbx}[2017-09-27 v0.1 biblatex bibliography style]
  2. % Inherit a default style
  3. \RequireBibliographyStyle{trad-plain}
  4. %%% Localisation strings for ACM
  5. \DefineBibliographyStrings{american}{%
  6. mathesis = {Master's thesis},
  7. phdthesis = {Ph\adddot{}D\adddotspace Dissertation},
  8. editor = {(Ed\adddot)},
  9. editors = {(Eds\adddot)},
  10. edition = {ed\adddot},
  11. }
  12. %%% Formatting for fields
  13. %\DeclareFieldFormat
  14. % [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
  15. % {title}{#1}
  16. \DeclareFieldFormat{pages}{#1}
  17. \DeclareFieldFormat{numpages}{#1 pages}
  18. \DeclareFieldFormat{number}{#1}
  19. \DeclareFieldFormat{articleno}{Article #1}
  20. \DeclareFieldFormat{key}{#1}
  21. \DeclareFieldFormat{urldate}{Retrieved\space{}#1\space{}from}
  22. \DeclareFieldAlias{lastaccessed}{urldate}
  23. \DeclareFieldFormat{url}{\url{#1}}
  24. \DeclareFieldFormat{edition}{%
  25. \printtext[parens]{\ifinteger{#1}
  26. {\mkbibordedition{#1}~\bibstring{edition}}
  27. {#1\isdot~\bibstring{edition}}}}
  28. % Handle urls field containing 'and' separated list of URLs
  29. % https://github.com/plk/biblatex/issues/229
  30. \DeclareListFormat{urls}{%
  31. \url{#1}%
  32. \ifthenelse{\value{listcount}<\value{liststop}}
  33. {\addcomma\space}
  34. {}}
  35. \renewbibmacro*{url}{\iffieldundef{url}{\printlist{urls}}{\printfield{url}}}
  36. %%% Bibmacro definitions
  37. \renewbibmacro*{translator+others}{%
  38. \ifboolexpr{
  39. test \ifusetranslator
  40. and
  41. not test {\ifnameundef{translator}}
  42. }
  43. {\printnames{translator}%
  44. \setunit{\addcomma\space}%
  45. \usebibmacro{translator+othersstrg}%
  46. \clearname{translator}}
  47. {\printfield{key}}}
  48. \newbibmacro*{year}{%
  49. \iffieldundef{year}%
  50. {\printtext{[n.\ d.]}}%
  51. {\printfield{year}}%
  52. }
  53. \renewbibmacro*{date}{\printtext[parens]{\printdate}}
  54. \renewbibmacro*{url+urldate}{\iffieldundef{urlyear}
  55. {}
  56. {\usebibmacro{urldate}%
  57. \setunit*{\addspace}}%
  58. \usebibmacro{url}%
  59. }
  60. \renewbibmacro*{journal+issuetitle}{%
  61. \usebibmacro{journal}%
  62. \setunit*{\addcomma\space}%
  63. \iffieldundef{series}
  64. {}
  65. {\newunit%
  66. \printfield{series}%
  67. \setunit{\addspace}}%
  68. \usebibmacro{volume+number+date+pages+eid}%
  69. \newcommaunit%
  70. % \setunit{\addspace}%
  71. \usebibmacro{issue-issue}%
  72. \setunit*{\addcolon\space}%
  73. \usebibmacro{issue}%
  74. \newunit}
  75. \newbibmacro*{volume+number+date+pages+eid}{%
  76. \printfield{volume}%
  77. \setunit*{\addcomma\space}%
  78. \printfield{number}%
  79. \setunit*{\addcomma\space}%
  80. \printfield{articleno}
  81. \setunit{\addcomma\space}
  82. \usebibmacro{date-ifmonth}
  83. \setunit{\addcomma\space}%
  84. \iffieldundef{pages}%
  85. {\printfield{numpages}}%
  86. {\printfield{pages}}%
  87. \newcommaunit%
  88. \printfield{eid}}%
  89. \renewbibmacro*{chapter+pages}{%
  90. \printfield{chapter}%
  91. \setunit{\bibpagespunct}%
  92. \iffieldundef{pages}%
  93. {\printfield{numpages}}%
  94. {\printfield{pages}}%
  95. \newunit}
  96. \renewbibmacro*{editor+others}{%
  97. \ifboolexpr{
  98. test \ifuseeditor
  99. and
  100. not test {\ifnameundef{editor}}
  101. }
  102. {\printnames{editor}%
  103. \setunit{\addcomma\space}%
  104. \usebibmacro{editor+othersstrg}%
  105. \clearname{editor}}
  106. {\iflistundef{organization}{}{\printlist{organization}}}}
  107. \newbibmacro*{issue-issue}{%
  108. \iffieldundef{issue}%
  109. {}%
  110. {\printfield{issue}%
  111. \setunit*{\addcomma\space}%
  112. \usebibmacro{date-ifmonth}%
  113. }%
  114. \newunit}
  115. \newbibmacro*{maintitle+booktitle+series+number}{%
  116. \iffieldundef{maintitle}
  117. {}
  118. {\usebibmacro{maintitle}%
  119. \newunit\newblock
  120. \iffieldundef{volume}
  121. {}
  122. {\printfield{volume}%
  123. \printfield{part}%
  124. \setunit{\addcolon\space}}}%
  125. \usebibmacro{booktitle}%
  126. \setunit*{\addspace}
  127. \printfield[parens]{series}%
  128. \setunit*{\addspace}%
  129. \printfield{number}%
  130. \setunit*{\addcomma\space}%
  131. \printfield{articleno}
  132. \newunit
  133. }
  134. \renewbibmacro*{booktitle}{%
  135. \ifboolexpr{
  136. test {\iffieldundef{booktitle}}
  137. and
  138. test {\iffieldundef{booksubtitle}}
  139. }
  140. {}
  141. {\printtext[booktitle]{%
  142. \printfield[titlecase]{booktitle}%
  143. \iffieldundef{booksubtitle}{}{
  144. \setunit{\subtitlepunct}%
  145. \printfield[titlecase]{booksubtitle}}%
  146. }%
  147. }%
  148. \printfield{booktitleaddon}}
  149. \renewbibmacro*{volume+number+eid}{%
  150. \printfield{volume}%
  151. \setunit*{\addcomma\space}%
  152. \printfield{number}%
  153. \setunit*{\addcomma\space}%
  154. \printfield{articleno}
  155. \setunit{\addcomma\space}%
  156. \printfield{eid}}
  157. \renewbibmacro*{publisher+location+date}{%
  158. \printlist{publisher}%
  159. \setunit*{\addcomma\space}%
  160. \printlist{location}%
  161. \setunit*{\addcomma\space}%
  162. \usebibmacro{date-ifmonth}%
  163. \newunit}
  164. \newbibmacro{date-ifmonth}{%
  165. \iffieldundef{month}{}{%
  166. \usebibmacro{date}
  167. }%
  168. }
  169. \renewbibmacro*{institution+location+date}{%
  170. \printlist{school}%
  171. \setunit*{\addcomma\space}%
  172. \printlist{institution}%
  173. \setunit*{\addcomma\space}%
  174. \printlist{location}%
  175. \setunit*{\addcomma\space}%
  176. \usebibmacro{date-ifmonth}%
  177. \newunit}
  178. \renewbibmacro*{periodical}{%
  179. \iffieldundef{title}
  180. {}
  181. {\printtext[title]{%
  182. \printfield[titlecase]{title}%
  183. \setunit{\subtitlepunct}%
  184. \printfield[titlecase]{subtitle}}}%
  185. \newunit%
  186. \usebibmacro{journal}}
  187. \renewbibmacro*{issue+date}{%
  188. \iffieldundef{issue}
  189. {\usebibmacro{date}}
  190. {\printfield{issue}%
  191. \setunit*{\addspace}%
  192. \usebibmacro{date}}%
  193. \newunit}
  194. \renewbibmacro*{title+issuetitle}{%
  195. \usebibmacro{periodical}%
  196. \setunit*{\addspace}%
  197. \iffieldundef{series}
  198. {}
  199. {\newunit
  200. \printfield{series}%
  201. \setunit{\addspace}}%
  202. \printfield{volume}%
  203. \setunit*{\addcomma\space}%
  204. \printfield{number}%
  205. \setunit*{\addcomma\space}%
  206. \printfield{articleno}
  207. \setunit{\addcomma\space}%
  208. \printfield{eid}%
  209. \setunit{\addspace}%
  210. \usebibmacro{issue+date}%
  211. \setunit{\addcolon\space}%
  212. \usebibmacro{issue}%
  213. \newunit}
  214. %%% Definitions for drivers (alphabetical)
  215. \DeclareBibliographyDriver{article}{%
  216. \usebibmacro{bibindex}%
  217. \usebibmacro{begentry}%
  218. \usebibmacro{author/translator+others}%
  219. \setunit{\labelnamepunct}\newblock%
  220. \usebibmacro{year}%
  221. \newunit%
  222. \usebibmacro{title}%
  223. \newunit%
  224. \printlist{language}%
  225. \newunit\newblock%
  226. \usebibmacro{byauthor}%
  227. \newunit\newblock%
  228. \usebibmacro{bytranslator+others}%
  229. \newunit\newblock%
  230. \printfield{version}%
  231. \newunit\newblock%
  232. \usebibmacro{journal+issuetitle}%
  233. \newunit%
  234. \usebibmacro{byeditor+others}%
  235. \newunit%
  236. \printfield{note}%
  237. \newunit\newblock%
  238. \iftoggle{bbx:isbn}
  239. {\printfield{issn}}
  240. {}%
  241. \newunit\newblock%
  242. \usebibmacro{doi+eprint+url}%
  243. \newunit\newblock%
  244. \usebibmacro{addendum+pubstate}%
  245. \setunit{\bibpagerefpunct}\newblock
  246. \usebibmacro{pageref}%
  247. \newunit\newblock%
  248. \usebibmacro{related}%
  249. \usebibmacro{finentry}}
  250. \DeclareBibliographyDriver{book}{%
  251. \usebibmacro{bibindex}%
  252. \usebibmacro{begentry}%
  253. \usebibmacro{author/editor+others/translator+others}%
  254. \setunit{\labelnamepunct}\newblock
  255. \usebibmacro{year}%
  256. \newunit%
  257. \usebibmacro{maintitle+title}%
  258. \newunit%
  259. \printlist{language}%
  260. \newunit\newblock
  261. \usebibmacro{byauthor}%
  262. \newunit\newblock
  263. \usebibmacro{byeditor+others}%
  264. \newunit\newblock
  265. \printfield{edition}%
  266. \newunit
  267. \usebibmacro{series+number}%
  268. \iffieldundef{maintitle}
  269. {\printfield{volume}%
  270. \printfield{part}}
  271. {}%
  272. \newunit
  273. \newunit\newblock
  274. \printfield{volumes}%
  275. \newunit\newblock
  276. \printfield{note}%
  277. \newunit\newblock
  278. \usebibmacro{publisher+location+date}%
  279. \newunit\newblock
  280. \usebibmacro{chapter+pages}%
  281. \newunit
  282. \printfield{pagetotal}%
  283. \newunit\newblock
  284. \iftoggle{bbx:isbn}
  285. {\printfield{isbn}}
  286. {}%
  287. \newunit\newblock
  288. \usebibmacro{doi+eprint+url}%
  289. \newunit\newblock
  290. \usebibmacro{addendum+pubstate}%
  291. \setunit{\bibpagerefpunct}\newblock
  292. \usebibmacro{pageref}%
  293. \newunit\newblock
  294. \iftoggle{bbx:related}
  295. {\usebibmacro{related:init}%
  296. \usebibmacro{related}}
  297. {}%
  298. \usebibmacro{finentry}}
  299. \DeclareBibliographyDriver{inbook}{%
  300. \usebibmacro{bibindex}%
  301. \usebibmacro{begentry}%
  302. \iffieldundef{author}%
  303. {\usebibmacro{byeditor+others}}%
  304. {\usebibmacro{author/translator+others}}%
  305. \setunit{\labelnamepunct}\newblock
  306. \usebibmacro{year}
  307. \newunit\newblock
  308. \usebibmacro{title}%
  309. \newunit
  310. \printlist{language}%
  311. \newunit\newblock
  312. \usebibmacro{byauthor}%
  313. \newunit\newblock
  314. % \usebibmacro{in:}%
  315. \usebibmacro{bybookauthor}%
  316. \newunit\newblock
  317. \usebibmacro{maintitle+booktitle}%
  318. \newunit\newblock
  319. \iffieldundef{author}{}%if undef then we already printed editor
  320. {\usebibmacro{byeditor+others}}%
  321. \newunit\newblock
  322. \printfield{edition}%
  323. \newunit
  324. \iffieldundef{maintitle}
  325. {\printfield{volume}%
  326. \printfield{part}}
  327. {}%
  328. \newunit
  329. \printfield{volumes}%
  330. \newunit\newblock
  331. \usebibmacro{series+number}%
  332. \newunit\newblock
  333. \printfield{note}%
  334. \newunit\newblock
  335. \usebibmacro{publisher+location+date}%
  336. \newunit\newblock
  337. \usebibmacro{chapter+pages}%
  338. \newunit\newblock
  339. \iftoggle{bbx:isbn}
  340. {\printfield{isbn}}
  341. {}%
  342. \newunit\newblock
  343. \usebibmacro{doi+eprint+url}%
  344. \newunit\newblock
  345. \usebibmacro{addendum+pubstate}%
  346. \setunit{\bibpagerefpunct}\newblock
  347. \usebibmacro{pageref}%
  348. \newunit\newblock
  349. \iftoggle{bbx:related}
  350. {\usebibmacro{related:init}%
  351. \usebibmacro{related}}
  352. {}%
  353. \usebibmacro{finentry}}
  354. \DeclareBibliographyDriver{incollection}{%
  355. \usebibmacro{bibindex}%
  356. \usebibmacro{begentry}%
  357. \usebibmacro{author/translator+others}%
  358. \setunit{\labelnamepunct}\newblock
  359. \usebibmacro{year}
  360. \newunit\newblock
  361. \usebibmacro{title}%
  362. \newunit
  363. \printlist{language}%
  364. \newunit\newblock
  365. \usebibmacro{byauthor}%
  366. \newunit\newblock
  367. \usebibmacro{in:}%
  368. \usebibmacro{maintitle+booktitle}%
  369. \newunit\newblock
  370. \usebibmacro{series+number}%
  371. \newunit\newblock
  372. \printfield{edition}%
  373. \newunit
  374. \iffieldundef{maintitle}
  375. {\printfield{volume}%
  376. \printfield{part}}
  377. {}%
  378. \newunit
  379. \printfield{volumes}%
  380. \newunit\newblock
  381. \usebibmacro{byeditor+others}%
  382. \newunit\newblock
  383. \printfield{note}%
  384. \newunit\newblock
  385. \usebibmacro{publisher+location+date}%
  386. \newunit\newblock
  387. \usebibmacro{chapter+pages}%
  388. \newunit\newblock
  389. \iftoggle{bbx:isbn}
  390. {\printfield{isbn}}
  391. {}%
  392. \newunit\newblock
  393. \usebibmacro{doi+eprint+url}%
  394. \newunit\newblock
  395. \usebibmacro{addendum+pubstate}%
  396. \setunit{\bibpagerefpunct}\newblock
  397. \usebibmacro{pageref}%
  398. \newunit\newblock
  399. \iftoggle{bbx:related}
  400. {\usebibmacro{related:init}%
  401. \usebibmacro{related}}
  402. {}%
  403. \usebibmacro{finentry}}
  404. \DeclareBibliographyDriver{inproceedings}{%
  405. \usebibmacro{bibindex}%
  406. \usebibmacro{begentry}%
  407. \usebibmacro{author/translator+others}%
  408. \setunit{\labelnamepunct}\newblock
  409. \usebibmacro{year}
  410. \newunit\newblock
  411. \usebibmacro{title}%
  412. \newunit
  413. \printlist{language}%
  414. \newunit\newblock
  415. \usebibmacro{byauthor}%
  416. \newunit\newblock
  417. \usebibmacro{in:}%
  418. \usebibmacro{maintitle+booktitle+series+number}%
  419. \newunit\newblock
  420. \usebibmacro{event+venue+date}%
  421. \newunit\newblock
  422. \usebibmacro{byeditor+others}%
  423. \newunit\newblock
  424. \iffieldundef{maintitle}
  425. {\printfield{volume}%
  426. \printfield{part}}
  427. {}%
  428. \newunit
  429. \printfield{volumes}%
  430. \newunit\newblock
  431. \printfield{note}%
  432. \newunit\newblock
  433. \printlist{organization}%
  434. \newunit
  435. \usebibmacro{publisher+location+date}%
  436. \newunit\newblock
  437. \usebibmacro{chapter+pages}%
  438. \newunit\newblock
  439. \iftoggle{bbx:isbn}
  440. {\printfield{isbn}}
  441. {}%
  442. \newunit\newblock
  443. \usebibmacro{doi+eprint+url}%
  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{manual}{%
  455. \usebibmacro{bibindex}%
  456. \usebibmacro{begentry}%
  457. \usebibmacro{author/editor+others}%
  458. \setunit{\labelnamepunct}\newblock
  459. \usebibmacro{year}
  460. \newunit\newblock
  461. \usebibmacro{title}%
  462. \newunit
  463. \printlist{language}%
  464. \newunit\newblock
  465. \usebibmacro{byauthor}%
  466. \newunit\newblock
  467. \usebibmacro{byeditor}%
  468. \newunit\newblock
  469. \printfield{edition}%
  470. \newunit\newblock
  471. \usebibmacro{series+number}%
  472. \newunit\newblock
  473. \printfield{type}%
  474. \newunit
  475. \printfield{version}%
  476. \newunit
  477. \printfield{note}%
  478. \newunit\newblock
  479. \printlist{organization}%
  480. \newunit
  481. \usebibmacro{publisher+location+date}%
  482. \newunit\newblock
  483. \usebibmacro{chapter+pages}%
  484. \newunit
  485. \printfield{pagetotal}%
  486. \newunit\newblock
  487. \iftoggle{bbx:isbn}
  488. {\printfield{isbn}}
  489. {}%
  490. \newunit\newblock
  491. \usebibmacro{doi+eprint+url}%
  492. \newunit\newblock
  493. \usebibmacro{addendum+pubstate}%
  494. \setunit{\bibpagerefpunct}\newblock
  495. \usebibmacro{pageref}%
  496. \newunit\newblock
  497. \iftoggle{bbx:related}
  498. {\usebibmacro{related:init}%
  499. \usebibmacro{related}}
  500. {}%
  501. \usebibmacro{finentry}}
  502. \DeclareBibliographyDriver{misc}{%
  503. \usebibmacro{bibindex}%
  504. \usebibmacro{begentry}%
  505. \usebibmacro{author/editor+others/translator+others}%
  506. \setunit{\labelnamepunct}\newblock
  507. \usebibmacro{year}
  508. \newunit\newblock
  509. \usebibmacro{title}%
  510. \newunit
  511. \printlist{language}%
  512. \newunit\newblock
  513. \usebibmacro{byauthor}%
  514. \newunit\newblock
  515. \usebibmacro{byeditor+others}%
  516. \newunit\newblock
  517. \printfield{howpublished}%
  518. \newunit\newblock
  519. \printfield{type}%
  520. \newunit
  521. \printfield{version}%
  522. \newunit
  523. \printfield{note}%
  524. \newunit\newblock
  525. \usebibmacro{organization+location+date}%
  526. \newunit\newblock
  527. \usebibmacro{doi+eprint+url}%
  528. \newunit\newblock
  529. \usebibmacro{addendum+pubstate}%
  530. \setunit{\bibpagerefpunct}\newblock
  531. \usebibmacro{pageref}%
  532. \newunit\newblock
  533. \iftoggle{bbx:related}
  534. {\usebibmacro{related:init}%
  535. \usebibmacro{related}}
  536. {}%
  537. \usebibmacro{finentry}}
  538. \DeclareBibliographyDriver{online}{%
  539. \usebibmacro{bibindex}%
  540. \usebibmacro{begentry}%
  541. \usebibmacro{author/editor+others/translator+others}%
  542. \setunit{\labelnamepunct}\newblock
  543. \usebibmacro{year}%
  544. \setunit{\labelnamepunct}\newblock
  545. \usebibmacro{title}%
  546. \newunit
  547. \printlist{language}%
  548. \newunit\newblock
  549. \usebibmacro{byauthor}%
  550. \newunit\newblock
  551. \usebibmacro{byeditor+others}%
  552. \newunit\newblock
  553. \printfield{version}%
  554. \newunit
  555. \printfield{note}%
  556. \newunit\newblock
  557. \printlist{organization}%
  558. \newunit\newblock
  559. \usebibmacro{date-ifmonth}%
  560. \newunit\newblock
  561. \iftoggle{bbx:eprint}
  562. {\usebibmacro{eprint}}
  563. {}%
  564. \newunit\newblock
  565. \usebibmacro{url+urldate}%
  566. \newunit\newblock
  567. \usebibmacro{addendum+pubstate}%
  568. \setunit{\bibpagerefpunct}\newblock
  569. \usebibmacro{pageref}%
  570. \newunit\newblock
  571. \iftoggle{bbx:related}
  572. {\usebibmacro{related:init}%
  573. \usebibmacro{related}}
  574. {}%
  575. \usebibmacro{finentry}}
  576. \DeclareFieldFormat[patent]{number}{Patent No.~#1}
  577. \DeclareBibliographyDriver{patent}{%
  578. \usebibmacro{bibindex}%
  579. \usebibmacro{begentry}%
  580. \usebibmacro{author}%
  581. \setunit{\labelnamepunct}\newblock
  582. \usebibmacro{year}%
  583. \newunit
  584. \usebibmacro{title}%
  585. \newunit
  586. \printlist{language}%
  587. \newunit\newblock
  588. \usebibmacro{byauthor}%
  589. \newunit\newblock
  590. \usebibmacro{date}%
  591. \newunit\newblock
  592. \printfield{type}%
  593. \setunit*{\addspace}%
  594. \printfield{number}%
  595. \iflistundef{location}
  596. {}
  597. {\setunit*{\addspace}%
  598. \printtext[parens]{%
  599. \printlist[][-\value{listtotal}]{location}}}%
  600. \newunit\newblock
  601. \usebibmacro{byholder}%
  602. \newunit\newblock
  603. \printfield{note}%
  604. \newunit\newblock
  605. \usebibmacro{doi+eprint+url}%
  606. \newunit\newblock
  607. \usebibmacro{addendum+pubstate}%
  608. \setunit{\bibpagerefpunct}\newblock
  609. \usebibmacro{pageref}%
  610. \newunit\newblock
  611. \iftoggle{bbx:related}
  612. {\usebibmacro{related:init}%
  613. \usebibmacro{related}}
  614. {}%
  615. \usebibmacro{finentry}}
  616. \DeclareBibliographyDriver{periodical}{%
  617. \usebibmacro{bibindex}%
  618. \usebibmacro{begentry}%
  619. \usebibmacro{editor}%
  620. \setunit{\labelnamepunct}\newblock
  621. \usebibmacro{year}
  622. \newunit
  623. \usebibmacro{title+issuetitle}%
  624. \newunit
  625. \printlist{language}%
  626. \newunit\newblock
  627. \usebibmacro{byeditor}%
  628. \newunit\newblock
  629. \printfield{note}%
  630. \newunit\newblock
  631. \iftoggle{bbx:isbn}
  632. {\printfield{issn}}
  633. {}%
  634. \newunit\newblock
  635. \usebibmacro{doi+eprint+url}%
  636. \newunit\newblock
  637. \usebibmacro{addendum+pubstate}%
  638. \setunit{\bibpagerefpunct}\newblock
  639. \usebibmacro{pageref}%
  640. \newunit\newblock
  641. \iftoggle{bbx:related}
  642. {\usebibmacro{related:init}%
  643. \usebibmacro{related}}
  644. {}%
  645. \usebibmacro{finentry}}
  646. \DeclareBibliographyDriver{report}{%
  647. \usebibmacro{bibindex}%
  648. \usebibmacro{begentry}%
  649. \usebibmacro{author}%
  650. \setunit{\labelnamepunct}\newblock
  651. \usebibmacro{year}
  652. \newunit
  653. \usebibmacro{title}%
  654. \newunit
  655. \printlist{language}%
  656. \newunit\newblock
  657. \usebibmacro{byauthor}%
  658. \newunit\newblock
  659. \printfield{type}%
  660. \setunit*{\addspace}%
  661. \printfield{number}%
  662. \newunit\newblock
  663. \printfield{version}%
  664. \newunit
  665. \printfield{note}%
  666. \newunit\newblock
  667. \usebibmacro{institution+location+date}%
  668. \newunit\newblock
  669. \usebibmacro{chapter+pages}%
  670. \newunit
  671. \printfield{pagetotal}%
  672. \newunit\newblock
  673. \iftoggle{bbx:isbn}
  674. {\printfield{isrn}}
  675. {}%
  676. \newunit\newblock
  677. \usebibmacro{doi+eprint+url}%
  678. \newunit\newblock
  679. \usebibmacro{addendum+pubstate}%
  680. \setunit{\bibpagerefpunct}\newblock
  681. \usebibmacro{pageref}%
  682. \newunit\newblock
  683. \iftoggle{bbx:related}
  684. {\usebibmacro{related:init}%
  685. \usebibmacro{related}}
  686. {}%
  687. \usebibmacro{finentry}}
  688. \DeclareBibliographyDriver{thesis}{%
  689. \usebibmacro{bibindex}%
  690. \usebibmacro{begentry}%
  691. \usebibmacro{author}%
  692. \setunit{\labelnamepunct}\newblock
  693. \usebibmacro{year}
  694. \newunit
  695. \usebibmacro{title}%
  696. \newunit
  697. \printlist{language}%
  698. \newunit\newblock
  699. \usebibmacro{byauthor}%
  700. \newunit\newblock
  701. \printfield{type}%
  702. \newunit
  703. \usebibmacro{institution+location+date}%
  704. \newunit\newblock
  705. \usebibmacro{chapter+pages}%
  706. \newunit
  707. \printfield{pagetotal}%
  708. \newunit\newblock
  709. \iftoggle{bbx:isbn}
  710. {\printfield{isbn}}
  711. {}%
  712. \newunit\newblock
  713. \usebibmacro{doi+eprint+url}%
  714. \newunit\newblock
  715. \usebibmacro{addendum+pubstate}%
  716. \setunit{\bibpagerefpunct}\newblock
  717. \usebibmacro{pageref}%
  718. \newunit\newblock
  719. \printfield{note}%
  720. \newunit\newblock
  721. \iftoggle{bbx:related}
  722. {\usebibmacro{related:init}%
  723. \usebibmacro{related}}
  724. {}%
  725. \usebibmacro{finentry}}