diff --git a/packages/bibtex/bibliography.lua b/packages/bibtex/bibliography.lua index 06f3b8d62..bead6b029 100644 --- a/packages/bibtex/bibliography.lua +++ b/packages/bibtex/bibliography.lua @@ -21,6 +21,10 @@ end local function split(str, pat, find) --- return list of substrings separated by pat find = find or string.find -- could be find_outside_braces + -- @Omikhelia: I added this check here to avoid breaking on error, + -- but probably in could have been done earlier... + if not str then return {} end + local len = string.len(str) local t = { } local insert = table.insert @@ -285,9 +289,9 @@ Bibliography = { if not item then return Bibliography.Errors.UNKNOWN_REFERENCE end - item.type = (item.type:gsub("^%l", string.upper)) + item.type = item.type:gsub("^%l", string.upper) if not style[item.type] then - return Bibliography.Errors.UNKNOWN_TYPE + return Bibliography.Errors.UNKNOWN_TYPE, item.type end local t = Bibliography.buildEnv(cite, item.attributes, style) @@ -299,7 +303,10 @@ Bibliography = { local t = pl.tablex.copy(getfenv and getfenv(1) or _ENV) t.cite = cite t.item = item - for k,v in pairs(item) do t[k:lower()] = v end + for k,v in pairs(item) do + if k:lower() == "type" then k = "bibtype" end -- HACK: don't override the type() function + t[k:lower()] = v + end return pl.tablex.update(t, style) end, @@ -319,11 +326,12 @@ Bibliography = { Errors = { UNKNOWN_REFERENCE = 1, + UNKNOWN_TYPE = 2, }, Style = { andAuthors = function(item) - local authors = namesplit(item.Author) + local authors = namesplit(item.author) if #authors == 1 then return parse_name(authors[1]).ll else @@ -337,9 +345,9 @@ Bibliography = { andSurnames = function (max) return function(item) - local authors = namesplit(item.Author) + local authors = namesplit(item.author) if #authors > max then - return parse_name(authors[1]).ll .. SILE.fluent:get_message("bibliography-et-al") + return parse_name(authors[1]).ll .. " "..SILE.fluent:get_message("bibliography-et-al") else for i = 1,#authors do authors[i] = parse_name(authors[i]).ll end return Bibliography.Style.commafy(authors) @@ -347,13 +355,19 @@ Bibliography = { end end, + pageRange = function(item) + if item.pages then + return item.pages:gsub("%-%-", "–") + end + end, + transEditor = function(item) local r = {} - if item.Editor then - r[#r+1] = SILE.fluent:get_message("bibliography-edited-by")({ name = item.Editor }) + if item.editor then + r[#r+1] = SILE.fluent:get_message("bibliography-edited-by")({ name = item.editor }) end - if item.Translator then - r[#r+1] = SILE.fluent:get_message("bibliography-translated-by")({ name = item.Translator }) + if item.translator then + r[#r+1] = SILE.fluent:get_message("bibliography-translated-by")({ name = item.translator }) end if #r then return table.concat(r, ", ") end return nil diff --git a/packages/bibtex/init.lua b/packages/bibtex/init.lua index f24952b42..df5f0e89c 100644 --- a/packages/bibtex/init.lua +++ b/packages/bibtex/init.lua @@ -13,16 +13,21 @@ local bibtexparser = epnf.define(function (_ENV) local _ = WS^0 local sep = lpeg.S(",;") * _ local myID = C(identifier + lpeg.P(1)) / function (t) return t end + local myTag = C(identifier + lpeg.P(1)) / function (t) return t:lower() end local value = balanced + doubleq + myID - local pair = lpeg.Cg(myID * _ * "=" * _ * C(value)) * _ * sep^-1 / function (...) local t= {...}; return t[1], t[#t] end + local pair = lpeg.Cg(myTag * _ * "=" * _ * C(value)) * _ * sep^-1 / function (...) local t= {...}; return t[1], t[#t] end local list = lpeg.Cf(lpeg.Ct("") * pair^0, rawset) + local commentKey = lpeg.Cmt(R("az", "AZ")^1, function(_, _, a) + return a:lower() == "comment" + end) START "document" - document = (V"entry" + V"comment")^1 * (-1 + E("Unexpected character at end of input")) + document = (V"comment" + V"entry")^1 -- order important: @comment must have precedence over @other + * (-1 + E("Unexpected character at end of input")) comment = WS + ( V"blockcomment" + (P("%") * (1-lpeg.S("\r\n"))^0 * lpeg.S("\r\n")) /function () return "" end) -- Don't bother telling me about comments - blockcomment = P("@comment")+ balanced/function () return "" end -- Don't bother telling me about comments - entry = Ct( P("@") * Cg(myID, "type") * _ * P("{") * _ * Cg(myID, "label") * _ * sep * list * P("}") * _ ) + blockcomment = (P("@") * commentKey) + balanced/function () return "" end -- Don't bother telling me about comments + entry = Ct( P("@") * Cg(myTag, "type") * _ * P("{") * _ * Cg(myID, "label") * _ * sep * list * P("}") * _ ) end) -- luacheck: pop @@ -76,7 +81,7 @@ local function registerCommands (_) local bibstyle = require("packages.bibtex.styles." .. style) local cite = Bibliography.produceCitation(options, SILE.scratch.bibtex.bib, bibstyle) if cite == Bibliography.Errors.UNKNOWN_REFERENCE then - SU.warn("Unknown reference in citation "..options) + SU.warn("Unknown reference in citation "..options.key) return end SILE.doTexlike(cite) @@ -86,9 +91,13 @@ local function registerCommands (_) if not options.key then options.key = content[1] end local style = SILE.settings:get("bibtex.style") local bibstyle = require("packages.bibtex.styles." .. style) - local cite = Bibliography.produceReference(options, SILE.scratch.bibtex.bib, bibstyle) + local cite, err = Bibliography.produceReference(options, SILE.scratch.bibtex.bib, bibstyle) if cite == Bibliography.Errors.UNKNOWN_REFERENCE then - SU.warn("Unknown reference in citation "..options) + SU.warn("Unknown reference in citation "..options.key) + return + end + if cite == Bibliography.Errors.UNKNOWN_TYPE then + SU.warn("Unknown type @"..err.." in citation for reference "..options.key) return end SILE.doTexlike(cite) diff --git a/packages/bibtex/styles/chicago.lua b/packages/bibtex/styles/chicago.lua index 53d78ea9a..58edcf3de 100644 --- a/packages/bibtex/styles/chicago.lua +++ b/packages/bibtex/styles/chicago.lua @@ -1,18 +1,77 @@ local Bibliography = require("packages.bibtex.bibliography") -return pl.tablex.merge(Bibliography.Style, { +local ChicagoStyles = pl.tablex.merge(Bibliography.Style, { CitationStyle = Bibliography.CitationStyles.AuthorYear, -- luacheck: push ignore + Article = function(_ENV) + -- Chicago Citation Style 17th Edition + -- https://guides.rdpolytech.ca/chicago/citation/article + -- General format = Author Surname, First Name. "Article Title." + -- Journal Title Volume, no. Issue (Year): Page range of article. + -- DOI OR URL of journal article web page OR Name of database. + -- Magazine = Author Surname, First Name. "Article Title." Magazine Title, Month Day, Year. URL. + -- Newspaper = Author Surname, First Name. "Article Title." Newspaper Title, Month Day, Year. + -- So we try to match the closest format. + if number or volume then + -- General format + return andAuthors, ". ", quotes(title, "."), " ", italic(journal), + optional(" ", volume), optional(" no. ", number), optional(" ", parens(optional(month, " "), year)), + optional(": ", pageRange), ".", + optional(" ", doi, "."), optional(" ", url, ".") + end + -- Magazine or newspaper format + return andAuthors, ". ", quotes(title, "."), " ", italic(journal), + optional(", ", month), optional(", ", year ), + optional(": ", pageRange), ".", + optional(" ", doi, "."), optional(" ", url, ".") + end, + Book = function(_ENV) - return andAuthors, " ", year, ". ", italic(title), ". ", + -- Chicago Citation Style 17th Edition + -- https://guides.rdpolytech.ca/chicago/citation/book + -- Simple: Author Surname, First Name or Initial. Book Title: Subtitle. Place of Publication: Publisher, Year. + -- With chapter: Author Surname, First Name or Initial. "Chapter Title in Quotation Marks." In Book Title: Subtitle, + -- edited by Editor First Name Surname, page range of chapter. Place of Publication: Publisher, Year. + -- Dictionary etc.: Author Surname, First Name. "Title of Entry." In Title of Reference Book, + -- edited by Editor First Name Surname. Publisher, Year. URL. + -- Likewise, we try to match the colsets format... + local pub = publisher or institution or organization or howpublished + if booktitle then + return optional(andAuthors, ", "), quotes(title, "."), " ", + optional("In ", italic(booktitle), ". "), + optional(transEditor, ". "), + optional(address, ": "), optional(pub, year and ", " or ". "), optional(year, ". "), + optional(number, ". "), optional(doi, ". "), optional(url, ".") + end + return optional(andAuthors, ", "), italic(title), ". ", optional(transEditor, ". "), - address, ": ", publisher, "." + optional(address, ": "), optional(pub, year and ", " or ". "), optional(year, ". "), + optional(number, ". "), optional(doi, ". "), optional(url, ". ") end, - Article = function(_ENV) - return andAuthors, ". ", year, ". ", quotes(title, "."), " ", italic(journal), " ", - parens(volume), number, optional(":", pages) - end + Thesis = function(_ENV) + local pub = publisher or institution or organization or howpublished or school + return optional(andSurnames(3), ", "), quotes(title, "."), " ", + optional(transEditor, ". "), + optional(bibtype, ". "), -- "type" from BibTeX entry + optional(address, ": "), optional(pub, ", "), optional(year, ".") + end, -- luacheck: pop }, true) + +return pl.tablex.merge(ChicagoStyles, { + -- Add fallback mappings for usual BibTeX keys not defined above. + Booklet = ChicagoStyles.Book, + Conference = ChicagoStyles.Book, + Inbook = ChicagoStyles.Book, + Incollection = ChicagoStyles.Book, + Inproceedings = ChicagoStyles.Book, + Manual = ChicagoStyles.Book, + Misc = ChicagoStyles.Book, -- NOTE: So we assume at least a title... + Proceedings = ChicagoStyles.Book, + Techreport = ChicagoStyles.Book, + Phdthesis = ChicagoStyles.Thesis, + Mastersthesis = ChicagoStyles.Thesis, + Unpublished = ChicagoStyles.Book, +}, true) diff --git a/tests/biblio-tests.bib b/tests/biblio-tests.bib new file mode 100644 index 000000000..170916399 --- /dev/null +++ b/tests/biblio-tests.bib @@ -0,0 +1,341 @@ +% -- article +% +% An article from a journal or magazine. +% Required fields: author, title, journal, year. +% Optional fields: volume, number, pages, month, note. + +@article{MinimalArticle, + author = "Doe, John", + title = "My Awesome Article", + journal = "The Journal of Typography", + year = 2022, +} + +% With month remove, as a check for the chigago style +@article{FullArticle, + author = "Doe, John", + title = "My Complete Article", + journal = "The Journal of Typography", + year = 2022, + volume = "50", + number = "7", + pages = "243--248", + x-removed-month = aug, + node = "Illustrated" +} + +% For chicago style... +@article{NewspaperArticle, + author = "Doe, John", + title = "My Awesome Article", + journal = "The Journal of Typography", + month = aug, + year = 2022, + url = "https://technobabblers.com/2020/123" +} + +% -- book +% +% A book with an explicit publisher. +% Required fields: author or editor, title, publisher, year. +% Optional fields: volume or number, series, address, edition, month, note. + +@book{MinimalBook1, + author = "Doe, John and Smith, Jane", + title = "A Minimal Book Entry", + publisher = "SILE organization", + year = 2020, +} + +@book{MinimalBook2, + editor = "Doe, John and Smith, Jane", + title = "Another Minimal Book Entry", + publisher = "SILE organization", + address = "London", + year = 2022, +} + +@book{FullBook, + author = "Doe, John and Smith, Jane", + title = "A Complete Book", + publisher = "SILE organization", + address = "London", + year = 2022, + volume = 10, + series = "The Collected Templates", + address = "London", + edition = "Second", + month = may, + note = "illustrated", +} + +% -- booklet +% +% A work that is printed and bound, but without a named publisher or sponsoring institution. +% Required field: title. +% Optional fields: author, howpublished, address, month, year, note. + +@booklet{MinimalBooklet, + title = "A Minimal Booklet", +} + +@booklet{FullBooklet, + title = "A Full Booklet", + author = "Doe, John and Smith, Jane", + howpublished = "Private communication", + address = "London", + month = jul, + year = 2022, + note = "Accessed: 2022" +} + +% -- conference +% +% = Same as "inproceedings" + +@conference{FullConference, + author = "Jungle, George", + title = "Back to the Trees", + booktitle = "Proceedings of the 6th Forest Symposium", + year = 2010, + editor = "Mac, Donald", + volume = "XIX", + number = "3/4", + series = "The Ultimate Series", + pages = "207--216", + organization = "Ministry of Forestry", + address = "London", + publisher = "SILE orgnization", + month = apr, + note = "Incl. 5 figures", +} + +% -- inbook +% +% A part of a book, which may be a chapter (or section or whatever) and/or a range of pages. +% Required fields: author or editor, title, chapter and/or pages, publisher, year. +% Optional fields: volume or number, series, type, address, edition, month, note. + +@inbook{MinimalInBook, + author = "Doe, John and Smith, Jane", + title = "The Inbookers", + chapter = 16, + pages = "187--221", + publisher = "SILE organization", + year = 2020, +} + +@inbook{FullInBook, + editor = "Doe, John and Smith, Jane", + title = "The New Inbookers", + chapter = 16, + pages = "187--221", + publisher = "SILE organization", + year = 2020, + volume = "XX", + number = "3", + type = "Collected essays", + address = "London", + edition = "Fourth", + month = apr, + note = "Revised edition" +} + +% -- incollection +% +% A part of a book having its own title. +% Required fields: author, title, booktitle, publisher, year. +% Optional fields: editor, volume or number, series, type, chapter, pages, address, edition, month, note. + +@incollection{MinimalInCollection, + author = "Doe, John and Smith, Jane", + title = "Our In-Collection Contribution", + booktitle = "The Book of Everyting", + publisher = "Springer", + year = 2022, +} + +@incollection{FullInCollection, + author = "Doe, John and Smith, Jane", + title = "Our In-Collection Contribution", + booktitle = "The Book of Everyting", + publisher = "Springer", + year = 2022, + publisher = "SILE organization", + editor = "Wills, Donald", + volume = 10, + type = "Guide", + chapter = 12, + pages = "200--221", + address = "Leipzig", + edition = "Third", + month = may, + note = "revised and augmented" +} + +% -- inproceedings +% +% An article in a conference proceedings. +% Required fields: author, title, booktitle, year. +% Optional fields: editor, volume or number, series, pages, address, month, organization, publisher, note. + +@inproceedings{FullInProceedings, + author = "Jungle, George", + title = "Deep in the Forest", + booktitle = "Proceedings of the 6th Forest Symposium", + year = 2010, + editor = "Mac, Donald", + volume = "XIX", + number = "3/4", + series = "The Ultimate Series", + pages = "207--216", + organization = "Ministry of Forestry", + address = "London", + publisher = "SILE orgnization", + month = apr, + note = "Incl. 5 figures", +} + +% -- manual +% +% Technical documentation. +% Required field: title. +% Optional fields: author, organization, address, edition, month, year, note. + +@manual{MinimalManual, + title = "A Minimal Reference Manual", +} + +@manual{FullManual, + title = "The Full Reference Manual", + author = "Doe, John", + organization = "SILE organization", + address = "London", + edition = "First", + month = apr, + year = 2018, + note = "unabridged" +} + +% -- mastersthesis +% +% A Master’s thesis. +% Required fields: author, title, school, year. +% Optional fields: type, address, month, note. + +@mastersthesis{MinimalMastersThesis, + author = "Smith, Jane", + title = "Asymptotic limits in open-source typography software", + school = "Institute of Technobabble", + year = 2006, +} + +@mastersthesis{FullMastersThesis, + author = "Smith, Jane", + title = "Asymptotic limits in open-source typography software", + school = "Institute of Technobabble", + year = 2006, + type = "Research note", + address = "Lille", + month = sep, + note = "University archives" +} + +% -- misc +% +% Use this type when nothing else fits... +% Required fields: none. WE WILL ASSUME AT LEAST A TITLE! +% Optional fields: author, title, howpublished, month, year, note. + +@misc{FullMisc, + author = "Wilbur, Norbert", + title = "Miscellaneous Things", + howpublished = "https://technobabblers.com/2020/234", + month = aug, + year = 2020, + note = "Last accessed: 2020-05-06" +} + +% -- phdthesis +% +% A PhD thesis +% Required fields: author, title, school, year. +% Optional fields: type, address, month, note. +% = So basically the same fields as mastersthesis + +@phdthesis{FullPhdThesis, + author = "Smith, Jane and Doe, John and Wilbur, Norbert and Mac, Donald", + title = "Non-linear derivations in open-source typography software", + school = "Institute of Technobabble", + year = 2016, + type = "PhD thesis", + address = "Louvain", + month = sep, + note = "University archives" +} + +% -- proceedings +% +% The proceedings of a conference. +% Required fields: title, year. +% Optional fields: editor, volume or number, series, address, month, organization, publisher, note. + +@proceedings{FullProceedings, + editor = "Smith, Jane", + title = "Proceedings of the 17th International Conference on Computation and Natural Computation, Fontainebleau, France", + series = "Lecture Notes in Computer Science", + volume = "10867", + publisher = "Springer", + address = "Cham, Switzerland", + year = 2018 +} + +% -- techreport +% +% A report published by a school or other institution, usually numbered within a series. +% Required fields: author, title, institution, year. +% Optional fields: type, number, address, month, note. + +@techreport{FullTechReport, + author = "Smith, Jane", + title = "Report on advances in Typography", + institution = "The Corporation of Technobabblers", + year = 2022, + type = "Annual report", + number = "TEC/AR/2022-001", + address = "Luxembourg", + month = sep, + note = "Technical note" +} + +% -- unpublished +% +% A document having an author and title, but not formally published. +% Required fields: author, title, note. +% Optional fields: month, year + +@unpublished{MinimalUnpublished, + author = "Doe, John", + title = "A Few Hitherto Unpublished Studies", + note = "in preparation", +} + +@unpublished{FullUnpublished, + author = "Doe, John", + title = "The Complete Unpublished Theories", + note = "Draft. Accessed: 2022", + month = feb, + year = 2023, +} + +@comment{jabref-meta: databaseType:bibtex;} + +% -- comment +% +% Should not be parsed +% For test: same "MinimalArticle' key as above, to check this is not used! +@comment{MinimalArticle, + Author = {Doe, John}, + Title = {I SHALL NOT BE VISIBLE}, + Year = {2022}, +} diff --git a/tests/bibtex.expected b/tests/bibtex.expected new file mode 100644 index 000000000..c06403cdb --- /dev/null +++ b/tests/bibtex.expected @@ -0,0 +1,1136 @@ +Set paper size 297.6377985 419.5275636 +Begin page +Mx 14.8819 +My 28.5447 +Set font Gentium Plus;10;400;;normal;;LTR +T 39 82 72 w=15.5762 (Doe) +Mx 30.4581 +T 17 w=2.2900 (.) +Mx 35.3931 +T 180 w=4.3604 (“) +Mx 39.7534 +T 48 92 w=12.9932 (My) +Mx 55.3915 +T 36 90 72 86 82 80 72 w=39.1748 (Awesome) +Mx 97.2113 +T 36 85 87 76 70 79 72 w=27.7637 (Article) +Mx 124.9749 +T 17 w=2.2900 (.) +Mx 127.2650 +T 181 w=4.3604 (”) +Mx 134.2703 +Set font Gentium Plus;10;400;Italic;normal;;LTR +T 55 75 72 w=14.0820 (The) +Mx 150.7568 +T 45 82 88 85 81 68 79 w=27.3730 (Journal) +Mx 180.5344 +T 82 73 w=6.9482 (of) +Mx 189.8871 +T 55 92 83 82 74 85 68 83 75 92 w=45.3369 (Typography) +Mx 235.2240 +Set font Gentium Plus;10;400;;normal;;LTR +T 15 w=2.2900 (,) +Mx 240.1590 +T 21 19 21 21 w=18.7695 (2022) +Mx 258.9285 +T 17 w=2.2900 (.) +Mx 14.8819 +My 44.5447 +T 39 82 72 w=15.5762 (Doe) +Mx 30.4581 +T 17 w=2.2900 (.) +Mx 36.7034 +T 180 w=4.3604 (“) +Mx 41.0638 +T 48 92 w=12.9932 (My) +Mx 58.0123 +T 38 82 80 83 79 72 87 72 w=39.1113 (Complete) +Mx 101.0789 +T 36 85 87 76 70 79 72 w=27.7637 (Article) +Mx 128.8426 +T 17 w=2.2900 (.) +Mx 131.1327 +T 181 w=4.3604 (”) +Mx 139.4483 +Set font Gentium Plus;10;400;Italic;normal;;LTR +T 55 75 72 w=14.0820 (The) +Mx 157.1261 +T 45 82 88 85 81 68 79 w=27.3730 (Journal) +Mx 188.0949 +T 82 73 w=6.9482 (of) +Mx 198.6389 +T 55 92 83 82 74 85 68 83 75 92 w=45.3369 (Typography) +Mx 247.9312 +Set font Gentium Plus;10;400;;normal;;LTR +T 24 19 w=9.3848 (50) +Mx 261.2713 +T 81 82 w=10.5469 (no) +Mx 271.8182 +T 17 w=2.2900 (.) +Mx 278.0635 +T 26 w=4.6924 (7) +Mx 14.8819 +My 56.5447 +T 11 w=3.1689 (() +Mx 18.0508 +T 21 19 21 21 w=18.7695 (2022) +Mx 36.8204 +T 12 w=3.1689 ()) +Mx 39.9893 +T 29 w=2.2900 (:) +Mx 44.9442 +T 21 23 22 w=14.0771 (243) +Mx 59.0214 +T 178 w=4.6924 (–) +Mx 63.7138 +T 21 23 27 w=14.0771 (248) +Mx 77.7909 +T 17 w=2.2900 (.) +Mx 14.8819 +My 72.5447 +T 39 82 72 w=15.5762 (Doe) +Mx 30.4581 +T 17 w=2.2900 (.) +Mx 35.6035 +T 180 w=4.3604 (“) +Mx 39.9639 +T 48 92 w=12.9932 (My) +Mx 55.8124 +T 36 90 72 86 82 80 72 w=39.1748 (Awesome) +Mx 97.8426 +T 36 85 87 76 70 79 72 w=27.7637 (Article) +Mx 125.6063 +T 17 w=2.2900 (.) +Mx 127.8964 +T 181 w=4.3604 (”) +Mx 135.1121 +Set font Gentium Plus;10;400;Italic;normal;;LTR +T 55 75 72 w=14.0820 (The) +Mx 151.7900 +T 45 82 88 85 81 68 79 w=27.3730 (Journal) +Mx 181.7588 +T 82 73 w=6.9482 (of) +Mx 191.3029 +T 55 92 83 82 74 85 68 83 75 92 w=45.3369 (Typography) +Mx 236.6398 +Set font Gentium Plus;10;400;;normal;;LTR +T 15 w=2.2900 (,) +Mx 241.7853 +T 68 88 74 w=14.7656 (aug) +Mx 256.5509 +T 15 w=2.2900 (,) +Mx 261.6963 +T 21 19 21 21 w=18.7695 (2022) +Mx 280.4659 +T 17 w=2.2900 (.) +Mx 14.8819 +My 84.5447 +T 75 87 87 83 86 w=21.5625 (https) +Mx 36.4444 +T 29 w=2.2900 (:) +Mx 38.7344 +T 18 w=4.6924 (/) +Mx 43.4268 +T 18 w=4.6924 (/) +Mx 48.1192 +T 87 72 70 75 81 82 69 68 69 69 79 72 85 86 17 70 82 80 w=83.1934 (technobabblers.com) +Mx 131.3126 +T 18 w=4.6924 (/) +Mx 136.0049 +T 21 19 21 19 w=18.7695 (2020) +Mx 154.7745 +T 18 w=4.6924 (/) +Mx 159.4669 +T 20 21 22 w=14.0771 (123) +Mx 173.5440 +T 17 w=2.2900 (.) +Mx 14.8819 +My 100.5447 +T 39 82 72 w=15.5762 (Doe) +Mx 30.4581 +T 15 w=2.2900 (,) +Mx 35.0106 +T 45 w=3.0518 (J) +Mx 38.0624 +T 17 w=2.2900 (.) +Mx 42.6149 +T 68 81 71 w=15.3076 (and) +Mx 60.1850 +T 54 80 76 87 75 w=24.4629 (Smith) +Mx 84.6479 +T 15 w=2.2900 (,) +Mx 89.2005 +T 45 w=3.0518 (J) +Mx 92.2522 +T 17 w=2.2900 (.) +Mx 94.5423 +T 15 w=2.2900 (,) +Mx 99.0948 +Set font Gentium Plus;10;400;Italic;normal;;LTR +T 36 w=5.6006 (A) +Mx 106.7522 +T 48 76 81 76 80 68 79 w=31.3037 (Minimal) +Mx 140.1127 +T 37 82 82 78 w=17.7783 (Book) +Mx 159.9479 +T 40 81 87 85 92 w=20.7031 (Entry) +Mx 180.6510 +Set font Gentium Plus;10;400;;normal;;LTR +T 17 w=2.2900 (.) +Mx 185.2036 +T 54 44 47 40 w=17.4609 (SILE) +Mx 204.9270 +T 82 85 74 68 81 76 93 68 87 76 82 81 w=52.2168 (organization) +Mx 257.1438 +T 15 w=2.2900 (,) +Mx 261.6963 +T 21 19 21 19 w=18.7695 (2020) +Mx 280.4659 +T 17 w=2.2900 (.) +Mx 14.8819 +My 116.5447 +Set font Gentium Plus;10;400;Italic;normal;;LTR +T 36 81 82 87 75 72 85 w=30.2539 (Another) +Mx 47.9667 +T 48 76 81 76 80 68 79 w=31.3037 (Minimal) +Mx 82.1014 +T 37 82 82 78 w=17.7783 (Book) +Mx 102.7106 +T 40 81 87 85 92 w=20.7031 (Entry) +Mx 123.4138 +Set font Gentium Plus;10;400;;normal;;LTR +T 17 w=2.2900 (.) +Mx 128.8178 +T 40 71 76 87 72 71 w=26.1328 (Edited) +Mx 158.0647 +T 69 92 w=10.0098 (by) +Mx 171.1885 +T 39 82 72 w=15.5762 (Doe) +Mx 186.7646 +T 15 w=2.2900 (,) +Mx 192.1687 +T 45 82 75 81 w=19.1162 (John) +Mx 214.3989 +T 68 81 71 w=15.3076 (and) +Mx 232.8206 +T 54 80 76 87 75 w=24.4629 (Smith) +Mx 257.2835 +T 15 w=2.2900 (,) +Mx 262.6875 +T 45 68 81 72 w=17.7783 (Jane) +Mx 280.4659 +T 17 w=2.2900 (.) +Mx 14.8819 +My 128.5447 +T 47 82 81 71 82 81 w=31.0547 (London) +Mx 45.9366 +T 29 w=2.2900 (:) +Mx 50.8839 +T 54 44 47 40 w=17.4609 (SILE) +Mx 71.0021 +T 82 85 74 68 81 76 93 68 87 76 82 81 w=52.2168 (organization) +Mx 123.2189 +T 15 w=2.2900 (,) +Mx 128.1662 +T 21 19 21 21 w=18.7695 (2022) +Mx 146.9358 +T 17 w=2.2900 (.) +Mx 14.8819 +My 144.5447 +T 39 82 72 w=15.5762 (Doe) +Mx 30.4581 +T 15 w=2.2900 (,) +Mx 35.7741 +T 45 w=3.0518 (J) +Mx 38.8259 +T 17 w=2.2900 (.) +Mx 44.1419 +T 68 81 71 w=15.3076 (and) +Mx 62.4756 +T 54 80 76 87 75 w=24.4629 (Smith) +Mx 86.9384 +T 15 w=2.2900 (,) +Mx 92.2545 +T 45 w=3.0518 (J) +Mx 95.3063 +T 17 w=2.2900 (.) +Mx 97.5963 +T 15 w=2.2900 (,) +Mx 102.9124 +Set font Gentium Plus;10;400;Italic;normal;;LTR +T 36 w=5.6006 (A) +Mx 111.2639 +T 38 82 80 83 79 72 87 72 w=34.2822 (Complete) +Mx 148.2970 +T 37 82 82 78 w=17.7783 (Book) +Mx 166.0753 +Set font Gentium Plus;10;400;;normal;;LTR +T 17 w=2.2900 (.) +Mx 171.3914 +T 47 82 81 71 82 81 w=31.0547 (London) +Mx 202.4461 +T 29 w=2.2900 (:) +Mx 207.7621 +T 54 44 47 40 w=17.4609 (SILE) +Mx 228.2491 +T 82 85 74 68 81 76 93 68 87 76 82 81 w=52.2168 (organization) +Mx 280.4659 +T 15 w=2.2900 (,) +Mx 14.8819 +My 156.5447 +T 21 19 21 21 w=18.7695 (2022) +Mx 33.6514 +T 17 w=2.2900 (.) +Mx 14.8819 +My 172.5447 +Set font Gentium Plus;10;400;Italic;normal;;LTR +T 36 w=5.6006 (A) +Mx 22.9045 +T 48 76 81 76 80 68 79 w=31.3037 (Minimal) +Mx 56.6303 +T 37 82 82 78 79 72 87 w=27.1289 (Booklet) +Mx 83.7592 +Set font Gentium Plus;10;400;;normal;;LTR +T 17 w=2.2900 (.) +Mx 14.8819 +My 188.5447 +T 39 82 72 w=15.5762 (Doe) +Mx 30.4581 +T 15 w=2.2900 (,) +Mx 35.9840 +T 45 w=3.0518 (J) +Mx 39.0357 +T 17 w=2.2900 (.) +Mx 44.5617 +T 68 81 71 w=15.3076 (and) +Mx 63.1052 +T 54 80 76 87 75 w=24.4629 (Smith) +Mx 87.5681 +T 15 w=2.2900 (,) +Mx 93.0940 +T 45 w=3.0518 (J) +Mx 96.1457 +T 17 w=2.2900 (.) +Mx 98.4358 +T 15 w=2.2900 (,) +Mx 103.9617 +Set font Gentium Plus;10;400;Italic;normal;;LTR +T 36 w=5.6006 (A) +Mx 112.5040 +T 41 88 79 79 w=14.0381 (Full) +Mx 129.4838 +T 37 82 82 78 79 72 87 w=27.1289 (Booklet) +Mx 156.6127 +Set font Gentium Plus;10;400;;normal;;LTR +T 17 w=2.2900 (.) +Mx 162.1386 +T 47 82 81 71 82 81 w=31.0547 (London) +Mx 193.1933 +T 29 w=2.2900 (:) +Mx 198.7192 +T 51 85 76 89 68 87 72 w=29.4824 (Private) +Mx 231.4375 +T 70 82 80 w=17.4316 (com) +Mx 248.8692 +T 80 88 w=13.3301 (mu) +Mx 262.1993 +T 81 76 w=8.2275 (ni) +Mx 270.4268 +T 70 68 w=8.9600 (ca) +Mx 279.3868 +T 16 w=3.3691 (-) +Mx 14.8819 +My 200.5447 +T 87 76 82 81 w=16.6992 (tion) +Mx 31.5811 +T 15 w=2.2900 (,) +Mx 36.5385 +T 21 19 21 21 w=18.7695 (2022) +Mx 55.3080 +T 17 w=2.2900 (.) +Mx 14.8819 +My 216.5447 +T 39 82 72 w=15.5762 (Doe) +Mx 30.4581 +T 15 w=2.2900 (,) +Mx 35.3935 +T 45 w=3.0518 (J) +Mx 38.4453 +T 17 w=2.2900 (.) +Mx 43.3807 +T 68 81 71 w=15.3076 (and) +Mx 61.3338 +T 54 80 76 87 75 w=24.4629 (Smith) +Mx 85.7967 +T 15 w=2.2900 (,) +Mx 90.7321 +T 45 w=3.0518 (J) +Mx 93.7839 +T 17 w=2.2900 (.) +Mx 96.0739 +T 15 w=2.2900 (,) +Mx 101.0094 +Set font Gentium Plus;10;400;Italic;normal;;LTR +T 55 75 72 w=14.0820 (The) +Mx 117.4963 +T 44 81 69 82 82 78 72 85 86 w=36.1865 (Inbookers) +Mx 153.6829 +Set font Gentium Plus;10;400;;normal;;LTR +T 17 w=2.2900 (.) +Mx 158.6183 +T 54 44 47 40 w=17.4609 (SILE) +Mx 178.7247 +T 82 85 74 68 81 76 93 68 87 76 82 81 w=52.2168 (organization) +Mx 230.9415 +T 15 w=2.2900 (,) +Mx 235.8769 +T 21 19 21 19 w=18.7695 (2020) +Mx 254.6465 +T 17 w=2.2900 (.) +Mx 14.8819 +My 232.5447 +Set font Gentium Plus;10;400;Italic;normal;;LTR +T 55 75 72 w=14.0820 (The) +Mx 31.7822 +T 49 72 90 w=16.2793 (New) +Mx 50.8798 +T 44 81 69 82 82 78 72 85 86 w=36.1865 (Inbookers) +Mx 87.0663 +Set font Gentium Plus;10;400;;normal;;LTR +T 17 w=2.2900 (.) +Mx 92.4565 +T 40 71 76 87 72 71 w=26.1328 (Edited) +Mx 121.6894 +T 69 92 w=10.0098 (by) +Mx 134.7993 +T 39 82 72 w=15.5762 (Doe) +Mx 150.3754 +T 15 w=2.2900 (,) +Mx 155.7656 +T 45 82 75 81 w=19.1162 (John) +Mx 177.9819 +T 68 81 71 w=15.3076 (and) +Mx 196.3897 +T 54 80 76 87 75 w=24.4629 (Smith) +Mx 220.8526 +T 15 w=2.2900 (,) +Mx 226.2427 +T 45 68 81 72 w=17.7783 (Jane) +Mx 244.0210 +T 17 w=2.2900 (.) +Mx 249.4112 +T 47 82 81 71 82 81 w=31.0547 (London) +Mx 280.4659 +T 29 w=2.2900 (:) +Mx 14.8819 +My 244.5447 +T 54 44 47 40 w=17.4609 (SILE) +Mx 35.0030 +T 82 85 74 68 81 76 93 68 87 76 82 81 w=52.2168 (organization) +Mx 87.2198 +T 15 w=2.2900 (,) +Mx 92.1700 +T 21 19 21 19 w=18.7695 (2020) +Mx 110.9396 +T 17 w=2.2900 (.) +Mx 115.8898 +T 22 w=4.6924 (3) +Mx 120.5822 +T 17 w=2.2900 (.) +Mx 14.8819 +My 260.5447 +T 39 82 72 w=15.5762 (Doe) +Mx 30.4581 +T 15 w=2.2900 (,) +Mx 34.9570 +T 45 w=3.0518 (J) +Mx 38.0087 +T 17 w=2.2900 (.) +Mx 42.5076 +T 68 81 71 w=15.3076 (and) +Mx 60.0241 +T 54 80 76 87 75 w=24.4629 (Smith) +Mx 84.4870 +T 15 w=2.2900 (,) +Mx 88.9858 +T 45 w=3.0518 (J) +Mx 92.0376 +T 17 w=2.2900 (.) +Mx 94.3276 +T 15 w=2.2900 (,) +Mx 98.8265 +T 180 w=4.3604 (“) +Mx 103.1869 +T 50 88 85 w=15.2588 (Our) +Mx 120.6545 +T 44 81 w=8.4961 (In) +Mx 129.1506 +T 16 w=3.3691 (-) +Mx 132.5198 +T 38 82 79 79 72 70 87 76 82 81 w=41.4990 (Collection) +Mx 176.2276 +T 38 82 81 87 85 76 69 88 87 76 82 81 w=53.0957 (Contribution) +Mx 229.3233 +T 17 w=2.2900 (.) +Mx 231.6134 +T 181 w=4.3604 (”) +Mx 238.1826 +T 44 81 w=8.4961 (In) +Mx 248.8875 +Set font Gentium Plus;10;400;Italic;normal;;LTR +T 55 75 72 w=14.0820 (The) +Mx 264.9776 +T 37 82 82 78 w=17.7783 (Book) +Mx 14.8819 +My 272.5447 +T 82 73 w=6.9482 (of) +Mx 24.2481 +T 40 89 72 85 92 87 76 81 74 w=36.0010 (Everyting) +Mx 60.2491 +Set font Gentium Plus;10;400;;normal;;LTR +T 17 w=2.2900 (.) +Mx 65.1988 +T 54 83 85 76 81 74 72 85 w=35.7031 (Springer) +Mx 100.9020 +T 15 w=2.2900 (,) +Mx 105.8517 +T 21 19 21 21 w=18.7695 (2022) +Mx 124.6213 +T 17 w=2.2900 (.) +Mx 14.8819 +My 288.5447 +T 39 82 72 w=15.5762 (Doe) +Mx 30.4581 +T 15 w=2.2900 (,) +Mx 34.9570 +T 45 w=3.0518 (J) +Mx 38.0087 +T 17 w=2.2900 (.) +Mx 42.5076 +T 68 81 71 w=15.3076 (and) +Mx 60.0241 +T 54 80 76 87 75 w=24.4629 (Smith) +Mx 84.4870 +T 15 w=2.2900 (,) +Mx 88.9858 +T 45 w=3.0518 (J) +Mx 92.0376 +T 17 w=2.2900 (.) +Mx 94.3276 +T 15 w=2.2900 (,) +Mx 98.8265 +T 180 w=4.3604 (“) +Mx 103.1869 +T 50 88 85 w=15.2588 (Our) +Mx 120.6545 +T 44 81 w=8.4961 (In) +Mx 129.1506 +T 16 w=3.3691 (-) +Mx 132.5198 +T 38 82 79 79 72 70 87 76 82 81 w=41.4990 (Collection) +Mx 176.2276 +T 38 82 81 87 85 76 69 88 87 76 82 81 w=53.0957 (Contribution) +Mx 229.3233 +T 17 w=2.2900 (.) +Mx 231.6134 +T 181 w=4.3604 (”) +Mx 238.1826 +T 44 81 w=8.4961 (In) +Mx 248.8875 +Set font Gentium Plus;10;400;Italic;normal;;LTR +T 55 75 72 w=14.0820 (The) +Mx 264.9776 +T 37 82 82 78 w=17.7783 (Book) +Mx 14.8819 +My 300.5447 +T 82 73 w=6.9482 (of) +Mx 25.1598 +T 40 89 72 85 92 87 76 81 74 w=36.0010 (Everyting) +Mx 61.1607 +Set font Gentium Plus;10;400;;normal;;LTR +T 17 w=2.2900 (.) +Mx 67.1134 +T 40 71 76 87 72 71 w=26.1328 (Edited) +Mx 96.9088 +T 69 92 w=10.0098 (by) +Mx 110.5811 +T 58 76 79 79 86 w=20.4932 (Wills) +Mx 131.0743 +T 15 w=2.2900 (,) +Mx 137.0269 +T 39 82 81 68 79 71 w=28.9746 (Donald) +Mx 166.0015 +T 17 w=2.2900 (.) +Mx 171.9542 +T 47 72 76 83 93 76 74 w=29.2188 (Leipzig) +Mx 201.1729 +T 29 w=2.2900 (:) +Mx 207.1255 +T 54 44 47 40 w=17.4609 (SILE) +Mx 228.2491 +T 82 85 74 68 81 76 93 68 87 76 82 81 w=52.2168 (organization) +Mx 280.4659 +T 15 w=2.2900 (,) +Mx 14.8819 +My 312.5447 +T 21 19 21 21 w=18.7695 (2022) +Mx 33.6514 +T 17 w=2.2900 (.) +Mx 14.8819 +My 328.5447 +T 45 88 81 74 79 72 w=26.0742 (Jungle) +Mx 40.9561 +T 15 w=2.2900 (,) +Mx 45.7176 +T 180 w=4.3604 (“) +Mx 50.0779 +T 39 72 72 83 w=20.4639 (Deep) +Mx 73.0133 +T 76 81 w=8.2275 (in) +Mx 83.7122 +T 87 75 72 w=13.5791 (the) +Mx 99.7628 +T 41 82 85 72 86 87 w=25.6934 (Forest) +Mx 125.4561 +T 17 w=2.2900 (.) +Mx 127.7462 +T 181 w=4.3604 (”) +Mx 134.5780 +T 44 81 w=8.4961 (In) +Mx 145.5455 +Set font Gentium Plus;10;400;Italic;normal;;LTR +T 51 85 82 70 72 72 71 76 81 74 86 w=44.2773 (Proceedings) +Mx 192.0696 +T 82 73 w=6.9482 (of) +Mx 201.2646 +T 87 75 72 w=11.9434 (the) +Mx 215.4548 +T 25 87 75 w=12.0313 (6th) +Mx 229.7328 +T 41 82 85 72 86 87 w=22.5928 (Forest) +Mx 254.5723 +T 54 92 80 w=16.1230 (Sym) +Mx 270.6954 +T 83 82 w=8.9307 (po) +Mx 279.6260 +T 16 w=3.1299 (-) +Mx 14.8819 +My 340.5447 +T 86 76 88 80 w=18.1348 (sium) +Mx 33.0167 +Set font Gentium Plus;10;400;;normal;;LTR +T 17 w=2.2900 (.) +Mx 37.8157 +T 40 71 76 87 72 71 w=26.1328 (Edited) +Mx 66.4575 +T 69 92 w=10.0098 (by) +Mx 78.9763 +T 48 68 70 w=17.0215 (Mac) +Mx 95.9978 +T 15 w=2.2900 (,) +Mx 100.7968 +T 39 82 81 68 79 71 w=28.9746 (Donald) +Mx 129.7714 +T 17 w=2.2900 (.) +Mx 134.5705 +T 47 82 81 71 82 81 w=31.0547 (London) +Mx 165.6252 +T 29 w=2.2900 (:) +Mx 170.4242 +T 54 44 47 40 w=17.4609 (SILE) +Mx 190.3941 +T 82 85 74 81 76 93 68 87 76 82 81 w=47.6270 (orgnization) +Mx 238.0211 +T 15 w=2.2900 (,) +Mx 242.8201 +T 21 19 20 19 w=18.7695 (2010) +Mx 261.5897 +T 17 w=2.2900 (.) +Mx 266.3887 +T 22 w=4.6924 (3) +Mx 271.0811 +T 18 w=4.6924 (/) +Mx 275.7735 +T 23 w=4.6924 (4) +Mx 280.4659 +T 17 w=2.2900 (.) +Mx 14.8819 +My 356.5447 +T 45 88 81 74 79 72 w=26.0742 (Jungle) +Mx 40.9561 +T 15 w=2.2900 (,) +Mx 46.0977 +T 180 w=4.3604 (“) +Mx 50.4581 +T 37 68 70 78 w=19.3359 (Back) +Mx 72.6456 +T 87 82 w=8.4717 (to) +Mx 83.9689 +T 87 75 72 w=13.5791 (the) +Mx 100.3996 +T 55 85 72 72 86 w=22.5684 (Trees) +Mx 122.9679 +T 17 w=2.2900 (.) +Mx 125.2580 +T 181 w=4.3604 (”) +Mx 132.4699 +T 44 81 w=8.4961 (In) +Mx 143.8176 +Set font Gentium Plus;10;400;Italic;normal;;LTR +T 51 85 82 70 72 72 71 76 81 74 86 w=44.2773 (Proceedings) +Mx 190.6873 +T 82 73 w=6.9482 (of) +Mx 200.2279 +T 87 75 72 w=11.9434 (the) +Mx 214.7636 +T 25 87 75 w=12.0313 (6th) +Mx 229.3872 +T 41 82 85 72 86 87 w=22.5928 (Forest) +Mx 254.5723 +T 54 92 80 w=16.1230 (Sym) +Mx 270.6954 +T 83 82 w=8.9307 (po) +Mx 279.6260 +T 16 w=3.1299 (-) +Mx 14.8819 +My 368.5447 +T 86 76 88 80 w=18.1348 (sium) +Mx 33.0167 +Set font Gentium Plus;10;400;;normal;;LTR +T 17 w=2.2900 (.) +Mx 37.8157 +T 40 71 76 87 72 71 w=26.1328 (Edited) +Mx 66.4575 +T 69 92 w=10.0098 (by) +Mx 78.9763 +T 48 68 70 w=17.0215 (Mac) +Mx 95.9978 +T 15 w=2.2900 (,) +Mx 100.7968 +T 39 82 81 68 79 71 w=28.9746 (Donald) +Mx 129.7714 +T 17 w=2.2900 (.) +Mx 134.5705 +T 47 82 81 71 82 81 w=31.0547 (London) +Mx 165.6252 +T 29 w=2.2900 (:) +Mx 170.4242 +T 54 44 47 40 w=17.4609 (SILE) +Mx 190.3941 +T 82 85 74 81 76 93 68 87 76 82 81 w=47.6270 (orgnization) +Mx 238.0211 +T 15 w=2.2900 (,) +Mx 242.8201 +T 21 19 20 19 w=18.7695 (2010) +Mx 261.5897 +T 17 w=2.2900 (.) +Mx 266.3887 +T 22 w=4.6924 (3) +Mx 271.0811 +T 18 w=4.6924 (/) +Mx 275.7735 +T 23 w=4.6924 (4) +Mx 280.4659 +T 17 w=2.2900 (.) +New page +Mx 14.8819 +My 28.3983 +Set font Gentium Plus;10;400;Italic;normal;;LTR +T 51 85 82 70 72 72 71 76 81 74 86 w=44.2773 (Proceedings) +Mx 62.5184 +T 82 73 w=6.9482 (of) +Mx 72.8257 +T 87 75 72 w=11.9434 (the) +Mx 88.1282 +T 20 26 87 75 w=16.0498 (17th) +Mx 107.5372 +T 44 81 87 72 85 81 68 87 76 82 81 68 79 w=49.2773 (International) +Mx 160.1736 +T 38 82 81 73 72 85 72 81 70 72 w=40.9131 (Conference) +Mx 204.4459 +T 82 81 w=9.1602 (on) +Mx 216.9651 +T 38 82 80 83 88 87 68 87 76 82 81 w=48.2568 (Computation) +Mx 268.5811 +T 68 81 71 w=14.1748 (and) +Mx 14.8819 +My 40.3983 +T 49 68 87 88 85 68 79 w=29.0137 (Natural) +Mx 47.0487 +T 38 82 80 83 88 87 68 87 76 82 81 w=48.2568 (Computation) +Mx 95.3055 +T 15 w=2.0020 (,) +Mx 100.4606 +T 41 82 81 87 68 76 81 72 69 79 72 68 88 w=52.8564 (Fontainebleau) +Mx 153.3170 +T 15 w=2.0020 (,) +Mx 158.4721 +T 41 85 68 81 70 72 w=25.1563 (France) +Mx 183.6283 +Set font Gentium Plus;10;400;;normal;;LTR +T 17 w=2.2900 (.) +Mx 189.3868 +T 40 71 76 87 72 71 w=26.1328 (Edited) +Mx 218.9880 +T 69 92 w=10.0098 (by) +Mx 232.4662 +T 54 80 76 87 75 w=24.4629 (Smith) +Mx 256.9291 +T 15 w=2.2900 (,) +Mx 262.6875 +T 45 68 81 72 w=17.7783 (Jane) +Mx 280.4659 +T 17 w=2.2900 (.) +Mx 14.8819 +My 52.3983 +T 38 75 68 80 w=23.5010 (Cham) +Mx 38.3829 +T 15 w=2.2900 (,) +Mx 43.3291 +T 54 90 76 87 93 72 85 79 68 81 71 w=48.8135 (Switzerland) +Mx 92.1426 +T 29 w=2.2900 (:) +Mx 97.0889 +T 54 83 85 76 81 74 72 85 w=35.7031 (Springer) +Mx 132.7920 +T 15 w=2.2900 (,) +Mx 137.7383 +T 21 19 20 27 w=18.7695 (2018) +Mx 156.5078 +T 17 w=2.2900 (.) +Mx 14.8819 +My 68.3983 +T 39 82 72 w=15.5762 (Doe) +Mx 30.4581 +T 15 w=2.2900 (,) +Mx 35.3916 +Set font Gentium Plus;10;400;Italic;normal;;LTR +T 55 75 72 w=14.0820 (The) +Mx 51.8767 +T 41 88 79 79 w=14.0381 (Full) +Mx 68.3180 +T 53 72 73 72 85 72 81 70 72 w=36.0840 (Reference) +Mx 106.8051 +T 48 68 81 88 68 79 w=28.6621 (Manual) +Mx 135.4672 +Set font Gentium Plus;10;400;;normal;;LTR +T 17 w=2.2900 (.) +Mx 140.4007 +T 47 82 81 71 82 81 w=31.0547 (London) +Mx 171.4554 +T 29 w=2.2900 (:) +Mx 176.3889 +T 54 44 47 40 w=17.4609 (SILE) +Mx 196.4933 +T 82 85 74 68 81 76 93 68 87 76 82 81 w=52.2168 (organization) +Mx 248.7101 +T 15 w=2.2900 (,) +Mx 253.6436 +T 21 19 20 27 w=18.7695 (2018) +Mx 272.4132 +T 17 w=2.2900 (.) +Mx 14.8819 +My 84.3983 +Set font Gentium Plus;10;400;Italic;normal;;LTR +T 36 w=5.6006 (A) +Mx 22.9005 +T 48 76 81 76 80 68 79 w=31.3037 (Minimal) +Mx 56.6222 +T 53 72 73 72 85 72 81 70 72 w=36.0840 (Reference) +Mx 95.1243 +T 48 68 81 88 68 79 w=28.6621 (Manual) +Mx 123.7864 +Set font Gentium Plus;10;400;;normal;;LTR +T 17 w=2.2900 (.) +Mx 14.8819 +My 100.3983 +T 54 80 76 87 75 w=24.4629 (Smith) +Mx 39.3448 +T 15 w=2.2900 (,) +Mx 44.4389 +T 180 w=4.3604 (“) +Mx 48.7992 +T 36 86 92 80 83 87 82 87 76 70 w=47.0703 (Asymptotic) +Mx 98.6736 +T 79 76 80 76 87 86 w=23.4668 (limits) +Mx 124.9444 +T 76 81 w=8.2275 (in) +Mx 135.9760 +T 82 83 72 81 w=20.4639 (open) +Mx 156.4398 +T 16 w=3.3691 (-) +Mx 159.8090 +T 86 82 88 85 70 72 w=27.1387 (source) +Mx 189.7517 +T 87 92 83 82 74 85 68 83 75 92 w=47.8760 (typography) +Mx 240.4317 +T 86 82 73 87 90 68 85 72 w=35.6738 (software) +Mx 276.1055 +T 17 w=2.2900 (.) +Mx 278.3956 +T 181 w=4.3604 (”) +Mx 14.8819 +My 112.3983 +T 53 72 86 72 68 85 70 75 w=37.1484 (Research) +Mx 54.6784 +T 81 82 87 72 w=18.6084 (note) +Mx 73.2868 +T 17 w=2.2900 (.) +Mx 78.2248 +T 47 76 79 79 72 w=17.5098 (Lille) +Mx 95.7346 +T 29 w=2.2900 (:) +Mx 100.6727 +T 44 81 86 87 76 87 88 87 72 w=35.3125 (Institute) +Mx 138.6332 +T 82 73 w=8.1396 (of) +Mx 149.4209 +T 55 72 70 75 81 82 69 68 69 69 79 72 w=57.7148 (Technobabble) +Mx 207.1358 +T 15 w=2.2900 (,) +Mx 212.0739 +T 21 19 19 25 w=18.7695 (2006) +Mx 230.8434 +T 17 w=2.2900 (.) +Mx 14.8819 +My 128.3983 +T 54 80 76 87 75 w=24.4629 (Smith) +Mx 39.3448 +T 15 w=2.2900 (,) +Mx 44.4389 +T 180 w=4.3604 (“) +Mx 48.7992 +T 36 86 92 80 83 87 82 87 76 70 w=47.0703 (Asymptotic) +Mx 98.6736 +T 79 76 80 76 87 86 w=23.4668 (limits) +Mx 124.9444 +T 76 81 w=8.2275 (in) +Mx 135.9760 +T 82 83 72 81 w=20.4639 (open) +Mx 156.4398 +T 16 w=3.3691 (-) +Mx 159.8090 +T 86 82 88 85 70 72 w=27.1387 (source) +Mx 189.7517 +T 87 92 83 82 74 85 68 83 75 92 w=47.8760 (typography) +Mx 240.4317 +T 86 82 73 87 90 68 85 72 w=35.6738 (software) +Mx 276.1055 +T 17 w=2.2900 (.) +Mx 278.3956 +T 181 w=4.3604 (”) +Mx 14.8819 +My 140.3983 +T 44 81 86 87 76 87 88 87 72 w=35.3125 (Institute) +Mx 52.8519 +T 82 73 w=8.1396 (of) +Mx 63.6490 +T 55 72 70 75 81 82 69 68 69 69 79 72 w=57.7148 (Technobabble) +Mx 121.3639 +T 15 w=2.2900 (,) +Mx 126.3114 +T 21 19 19 25 w=18.7695 (2006) +Mx 145.0809 +T 17 w=2.2900 (.) +Mx 14.8819 +My 156.3983 +T 54 80 76 87 75 w=24.4629 (Smith) +Mx 42.3377 +T 72 87 w=8.0615 (et) +Mx 53.3921 +T 68 79 w=7.2998 (al) +Mx 60.6919 +T 17 w=2.2900 (.) +Mx 62.9819 +T 15 w=2.2900 (,) +Mx 68.2648 +T 180 w=4.3604 (“) +Mx 72.6252 +T 49 82 81 w=17.0361 (Non) +Mx 89.6613 +T 16 w=3.3691 (-) +Mx 93.0305 +T 79 76 81 72 68 85 w=24.1064 (linear) +Mx 120.1298 +T 71 72 85 76 89 68 87 76 82 81 86 w=46.5723 (derivations) +Mx 169.6949 +T 76 81 w=8.2275 (in) +Mx 180.9154 +T 82 83 72 81 w=20.4639 (open) +Mx 201.3792 +T 16 w=3.3691 (-) +Mx 204.7484 +T 86 82 88 85 70 72 w=27.1387 (source) +Mx 234.8799 +T 87 92 83 82 74 85 68 83 75 92 w=47.8760 (typography) +Mx 14.8819 +My 168.3983 +T 86 82 73 87 90 68 85 72 w=35.6738 (software) +Mx 50.5557 +T 17 w=2.2900 (.) +Mx 52.8458 +T 181 w=4.3604 (”) +Mx 59.8492 +T 51 75 39 w=16.6748 (PhD) +Mx 79.1670 +T 87 75 72 86 76 86 w=24.0137 (thesis) +Mx 103.1807 +T 17 w=2.2900 (.) +Mx 108.1138 +T 47 82 88 89 68 76 81 w=32.8369 (Louvain) +Mx 140.9507 +T 29 w=2.2900 (:) +Mx 145.8838 +T 44 81 86 87 76 87 88 87 72 w=35.3125 (Institute) +Mx 183.8394 +T 82 73 w=8.1396 (of) +Mx 194.6221 +T 55 72 70 75 81 82 69 68 69 69 79 72 w=57.7148 (Technobabble) +Mx 252.3370 +T 15 w=2.2900 (,) +Mx 257.2701 +T 21 19 20 25 w=18.7695 (2016) +Mx 276.0396 +T 17 w=2.2900 (.) +Mx 14.8819 +My 184.3983 +T 54 80 76 87 75 w=24.4629 (Smith) +Mx 39.3448 +T 15 w=2.2900 (,) +Mx 44.2287 +Set font Gentium Plus;10;400;Italic;normal;;LTR +T 53 72 83 82 85 87 w=24.7412 (Report) +Mx 71.3279 +T 82 81 w=9.1602 (on) +Mx 82.8461 +T 68 71 89 68 81 70 72 86 w=34.4189 (advances) +Mx 119.6231 +T 76 81 w=7.4023 (in) +Mx 129.3835 +T 55 92 83 82 74 85 68 83 75 92 w=45.3369 (Typography) +Mx 174.7204 +Set font Gentium Plus;10;400;;normal;;LTR +T 17 w=2.2900 (.) +Mx 179.6043 +T 47 88 91 72 80 69 82 88 85 74 w=51.9824 (Luxembourg) +Mx 231.5868 +T 29 w=2.2900 (:) +Mx 236.4706 +T 55 75 72 w=15.6445 (The) +Mx 254.7090 +T 38 82 85 w=14.3506 (Cor) +Mx 269.0596 +T 83 82 w=10.3271 (po) +Mx 279.3868 +T 16 w=3.3691 (-) +Mx 14.8819 +My 196.3983 +T 85 68 w=8.5498 (ra) +Mx 23.4317 +T 87 76 82 81 w=16.6992 (tion) +Mx 42.7801 +T 82 73 w=8.1396 (of) +Mx 53.5689 +T 55 72 70 75 81 82 69 68 69 69 79 72 85 86 w=65.5371 (Technobabblers) +Mx 119.1060 +T 15 w=2.2900 (,) +Mx 124.0452 +T 21 19 21 21 w=18.7695 (2022) +Mx 142.8147 +T 17 w=2.2900 (.) +Mx 147.7539 +T 55 40 38 w=15.8301 (TEC) +Mx 163.5840 +T 18 w=4.6924 (/) +Mx 168.2764 +T 36 53 w=11.5625 (AR) +Mx 179.8389 +T 18 w=4.6924 (/) +Mx 184.5312 +T 21 19 21 21 w=18.7695 (2022) +Mx 203.3008 +T 16 w=3.3691 (-) +Mx 206.6699 +T 19 19 20 w=14.0771 (001) +Mx 220.7471 +T 17 w=2.2900 (.) +Mx 14.8819 +My 212.3983 +T 58 76 79 69 88 85 w=28.2568 (Wilbur) +Mx 43.1387 +T 15 w=2.2900 (,) +Mx 47.3373 +Set font Gentium Plus;10;400;Italic;normal;;LTR +T 48 76 86 70 72 79 79 68 81 72 82 88 86 w=51.8750 (Miscellaneous) +Mx 100.9473 +T 55 75 76 81 74 86 w=25.4736 (Things) +Mx 126.4210 +Set font Gentium Plus;10;400;;normal;;LTR +T 17 w=2.2900 (.) +Mx 130.6195 +T 75 87 87 83 86 w=21.5625 (https) +Mx 152.1820 +T 29 w=2.2900 (:) +Mx 154.4721 +T 18 w=4.6924 (/) +Mx 159.1644 +T 18 w=4.6924 (/) +Mx 163.8568 +T 87 72 70 75 81 82 69 68 69 69 79 72 85 86 17 70 82 80 w=83.1934 (technobabblers.com) +Mx 247.0502 +T 18 w=4.6924 (/) +Mx 251.7426 +T 21 19 21 19 w=18.7695 (2020) +Mx 270.5121 +T 18 w=4.6924 (/) +Mx 275.2045 +T 21 22 23 w=14.0771 (234) +Mx 289.2816 +T 15 w=2.2900 (,) +Mx 14.8819 +My 224.3983 +T 21 19 21 19 w=18.7695 (2020) +Mx 33.6514 +T 17 w=2.2900 (.) +Mx 14.8819 +My 240.3983 +T 39 82 72 w=15.5762 (Doe) +Mx 30.4581 +T 15 w=2.2900 (,) +Mx 35.4028 +Set font Gentium Plus;10;400;Italic;normal;;LTR +T 36 w=5.6006 (A) +Mx 43.4167 +T 41 72 90 w=14.5801 (Few) +Mx 60.4101 +T 43 76 87 75 72 85 87 82 w=31.2744 (Hitherto) +Mx 94.0978 +T 56 81 83 88 69 79 76 86 75 72 71 w=47.1875 (Unpublished) +Mx 143.6986 +T 54 87 88 71 76 72 86 w=27.0459 (Studies) +Mx 170.7445 +Set font Gentium Plus;10;400;;normal;;LTR +T 17 w=2.2900 (.) +Mx 14.8819 +My 256.3983 +T 39 82 72 w=15.5762 (Doe) +Mx 30.4581 +T 15 w=2.2900 (,) +Mx 35.4002 +Set font Gentium Plus;10;400;Italic;normal;;LTR +T 55 75 72 w=14.0820 (The) +Mx 51.8933 +T 38 82 80 83 79 72 87 72 w=34.2822 (Complete) +Mx 88.5866 +T 56 81 83 88 69 79 76 86 75 72 71 w=47.1875 (Unpublished) +Mx 138.1851 +T 55 75 72 82 85 76 72 86 w=31.7139 (Theories) +Mx 169.8990 +Set font Gentium Plus;10;400;;normal;;LTR +T 17 w=2.2900 (.) +Mx 174.8412 +T 21 19 21 22 w=18.7695 (2023) +Mx 193.6107 +T 17 w=2.2900 (.) +End page +Finish diff --git a/tests/bibtex.sil b/tests/bibtex.sil new file mode 100644 index 000000000..5913bfab8 --- /dev/null +++ b/tests/bibtex.sil @@ -0,0 +1,58 @@ +\begin[papersize=a6]{document} +\neverindent +\nofolios +\script[src=packages/bibtex] +\language[main=en] +\set[parameter=document.parskip, value=4pt] + +\loadbibliography[file=biblio-tests.bib] + +\reference{MinimalArticle} + +\reference{FullArticle} + +\reference{NewspaperArticle} + +\reference{MinimalBook1} + +\reference{MinimalBook2} + +\reference{FullBook} + +\reference{MinimalBooklet} + +\reference{FullBooklet} + +\reference{MinimalInBook} + +\reference{FullInBook} + +\reference{MinimalInCollection} + +\reference{FullInCollection} + +\reference{FullInProceedings} + +\reference{FullConference} + +\reference{FullProceedings} + +\reference{FullManual} + +\reference{MinimalManual} + +\reference{FullMastersThesis} + +\reference{MinimalMastersThesis} + +\reference{FullPhdThesis} + +\reference{FullTechReport} + +\reference{FullMisc} + +\reference{MinimalUnpublished} + +\reference{FullUnpublished} + +\end{document}