From 628910e2e81005ce2f46f905e4e6f7bbd1a1a54d Mon Sep 17 00:00:00 2001 From: "C. Naaktgeboren" Date: Sun, 8 Dec 2024 17:39:24 -0300 Subject: [PATCH 1/5] lyceum:0.1.0 --- packages/preview/lyceum/0.1.0/LICENSE | 21 + packages/preview/lyceum/0.1.0/README.md | 83 +++ packages/preview/lyceum/0.1.0/lib.typ | 612 ++++++++++++++++++ .../preview/lyceum/0.1.0/meta-parsing.typ | 465 +++++++++++++ .../preview/lyceum/0.1.0/stencil/Makefile | 8 + .../preview/lyceum/0.1.0/stencil/main.typ | 136 ++++ packages/preview/lyceum/0.1.0/thumbnail.png | Bin 0 -> 105597 bytes packages/preview/lyceum/0.1.0/typst.toml | 16 + 8 files changed, 1341 insertions(+) create mode 100644 packages/preview/lyceum/0.1.0/LICENSE create mode 100644 packages/preview/lyceum/0.1.0/README.md create mode 100644 packages/preview/lyceum/0.1.0/lib.typ create mode 100644 packages/preview/lyceum/0.1.0/meta-parsing.typ create mode 100644 packages/preview/lyceum/0.1.0/stencil/Makefile create mode 100644 packages/preview/lyceum/0.1.0/stencil/main.typ create mode 100644 packages/preview/lyceum/0.1.0/thumbnail.png create mode 100644 packages/preview/lyceum/0.1.0/typst.toml diff --git a/packages/preview/lyceum/0.1.0/LICENSE b/packages/preview/lyceum/0.1.0/LICENSE new file mode 100644 index 000000000..39c783d6e --- /dev/null +++ b/packages/preview/lyceum/0.1.0/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 C. Naaktgeboren + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/preview/lyceum/0.1.0/README.md b/packages/preview/lyceum/0.1.0/README.md new file mode 100644 index 000000000..963c18018 --- /dev/null +++ b/packages/preview/lyceum/0.1.0/README.md @@ -0,0 +1,83 @@ +# lyceum.typ: academic book template in typst + +`lyceum:0.1.0` is a `Typst` template for a simple, single-volume academic book. + +The template offers the following named functions to be used as `show` rules in the user +documents: `FRONT-MATTER`, `BODY-MATTER`, `APPENDIX`, and `BACK-MATTER`. + +After more than 400 commits, several strategies were implemented in order to cause Typst to properly +format the various book sections (of `FRONT` and `BODY` matters, as well as the `APPENDIX`, and +the `BACK-MATTER`), with little success, and the currently released format is the one deemed as +the _least-worse_ one of them. + +The way Typst was though and implemented caused many strategies to fail, including (here, the +list is likely to be non-exhaustive): + +- *Template functions* to define how things should be typeset: this goes against the Typst way + of doing templating, and it fails because Typst code placed inside a function _cannot_ alter + the caller's environment; +- *Writing metadata to the document* so that itens can dynamically (through `#context + query(...)`) determine how things should be typeset. Headings were able to work just fine + according to this strattegy, however, variable page numbering schemes failed to work, since on + `#set page(...)`, the `numbering` field must be a _hard string literal_ -- not a variable that + resolves to a string, as the documentation suggests, but a constant, hard, string literal. + What could be an elegant approach, at the end of the day, was hindered; +- OK, let's do the officially supported template *function to use in the user's show rule*! + Which was found (to the extent of my research and documentation digging) to be utterly unable + to produce custom formats for different document sections, which causes me to wonder why + article templates are plentiful in Typst Universe, but book templates are scarce. +- Finally, it dawned on me to have *multiple show rules* in the user document, each one using a + different template function, i.e., the `FRONT-MATTER(...)`, `BODY-MATTER(...)`, + `APPENDIX(...)`, and `BACK-MATTER(...)` ones. A quick test on a _standalone document_ (with no + template) showed that the approach works like a charm, in having section-specific formattings + being correctly applied, and settings correctly propagating to the `#outline`, etc... + _however_, when the strattegy is implemented in a template form, some changes take a while to + be effective, even though, their corresponding settings commands are issued at the right place + in the document. I've spent some rounds trying to make it work, but I ran in situations in + which by fixing one issue, another previously inexistent just appeared. After several rounds + of fixing, locally releasing, and testing, the configuration deemed as having the least amount + of bugs is being released, as this `0.1.0`. + + +## Name + +`lyceum` designates "a place where educational talks were given to the public", according to +[the Cambridge Dictionary](https://dictionary.cambridge.org/dictionary/english/lyceum). Thus, +being a non-specific place (or instrument) for educational contents exchange, it seemed fitting +for a non-canonical name for a typst `@preview` academic book package name, since academic books +are primarily meant for educational content exchange. + + +## Prominent Features + +### Metadata Handling + +In `lyceum`, book metadata was inspired by the +[Hyagriva](https://typst.app/docs/tutorial/writing-in-typst/#bibliography) bibliography manager. +Book metadata, such as title, author(s), publisher, keywords, date, and etc..., must be fed to +the first user's `#show` rule function, `FRONT-MATTER(...)`, which processes it and saves it to +the document with `#metadata`. + +Beyond that, metadata processing done by `lyceum` includes the automatic generation of the +book's _own_ Hayagriva entry. This functionality works in two ways, i.e., (i) the book's own +Haygriva bibliography entry can be either typeset and included in the very document, or (ii) an +`yml` file type can be conveniently generated using the `make` utility, as in `make main.yml` if +the book is written on the `main.typ` file. The template stencil implements these two ways of +obtaining the book's bibliography entry. + + +## Citing + +This package can be cited with the following bibliography database entry: + +```yml +lyceum-template: + type: Web + author: "Naaktgeboren, C." + title: "Lyceum: Academic Book Template in Typst" + url: https://github.com/cnaak/lyceum.typ + version: 0.1.0 + date: 2024-10 +``` + + diff --git a/packages/preview/lyceum/0.1.0/lib.typ b/packages/preview/lyceum/0.1.0/lib.typ new file mode 100644 index 000000000..048d8b092 --- /dev/null +++ b/packages/preview/lyceum/0.1.0/lib.typ @@ -0,0 +1,612 @@ +#import "meta-parsing.typ": meta-parse + +// Auxiliary FMT function +#let FMT(w, size: 12pt) = { + if type(w) == type("") { + if w == "top-gap" { return 7.5 * size } // Shared by all level-1 headings + else if w == "sq-side" { return 5.0 * size } // Shaded square within the top-gap + else if w == "it-hght" { return 6.5 * size } // Room for level-1 heading bodies + else if w == "it-size" { return 2.0 * size } // Level-1 heading text size + else if w == "sn-size" { return 3.5 * size } // Square-bound number text-size + else if w == "sq-shad" { return rgb("#00000070") } // Shaded square shade color + else if w == "sq-text" { return rgb("#000000A0") } // Shaded text color + } + return none +} + +//--------------------------------------------------------------------------------------------// +// Fundamental, Front-Matter show rule // +//--------------------------------------------------------------------------------------------// + +#let FRONT-MATTER( + // Document metadata + title: ( + title: "Default Lyceum Title", + subtitle: "A Default Exposition", + sep: " \u{2014} ", + short: "Default", + ), + authors: ( + ( + preffix: "Dr.", + given-name: "Lyceum", + name: "Default", + suffix: "Jr.", + email: "default@organized.org", + affiliation: "Organized Organization", + location: "Foo City, Bar Country", + ), + ), + editors: ( + ( + preffix: "Dr.", + given-name: "Erudit", + name: "Wise", + suffix: "FRS", + ), + ), + publisher: "Default Lyceum Publisher", + location: "Default City, Lyceum Country", + affiliated: ( + illustrator: ( + "Alfreda D. Ballew", + "Jim M. McKinnis", + ), + organizer: "Nicholas D. Gladstone", + ), + keywords: ("lyceum", "default"), + date: auto, + // Document general format + page-size: (width: 155mm, height: 230mm), + page-margin: (inside: 30mm, rest: 25mm), + page-binding: left, + page-fill: color.hsl(45deg, 15%, 85%), // ivory + text-font: ("EB Garamond", "Linux Libertine"), + text-size: 12pt, + lang-name: "en", + par-indent: 12mm, + front-matter-material +) = { + // Parse metadata information + let (META, AUTHORS) = meta-parse(( + title: title, + authors: authors, + editors: editors, + publisher: publisher, + location: location, + affiliated: affiliated, + keywords: keywords, + date: date, + lang: lang-name, + )) + + // Sets up document metadata + set document( + title: [#META.title.value], + author: AUTHORS.join(" and "), + keywords: META.keywords, + ) + + // Page parameters controlled by input arguments + set page( + width: page-size.width, + height: page-size.height, + flipped: false, + margin: page-margin, + binding: page-binding, + columns: 1, + fill: page-fill, + numbering: "i", + footer: context { + let cur-pag-num = counter(page).at(here()).first() + let ALIGN = if calc.even(cur-pag-num) { left } else { right } + set align(ALIGN) + [#counter(page).display("i")] + }, + header: [], + ) + + // Paragraph settings + set par( + leading: 0.65em, + justify: true, + linebreaks: "optimized", + first-line-indent: par-indent, + hanging-indent: 0pt, + ) + + // Text parameters controlled by input arguments + set text( + font: text-font, + fallback: true, + weight: "regular", + size: text-size, + lang: lang-name, + ) + + // Heading numbering and outlining controls + set heading( + numbering: none, + outlined: true, + ) + + // Main headings in FRONT-MATTER + show heading.where(level: 1): it => { + counter(figure.where(kind: image)).update(0) + counter(figure.where(kind: table)).update(0) + counter(math.equation).update(0) + // Layout + pagebreak(weak: true, to: "odd") + v(FMT("top-gap", size: text-size)) + block( + width: 100%, + height: FMT("it-hght", size: text-size), + align( + center + top, + text( + font: ("EB Garamond", "Linux Libertine"), + size: FMT("it-size", size: text-size), + weight: "extrabold", + )[#it.body] + ) + ) + } + + // Math equation numbering and layout settings + set math.equation( + block: true, + numbering: "(1.1)", + number-align: right, + ) + + // Metadata writings + [#metadata(META)] + + // Writes the root metadata into the document + [#metadata(AUTHORS)] + + // Writes the self-bib-entry + [#metadata(META.self-bib-entry.join("\n"))] + + // Title page + page( + header: [], + footer: [], + )[ + #let PARS = (auth-chunk-size: 2, ) + // Book Title on Title Page + // #v(1fr) + #if META.title.title.len() > 0 { + if META.title.subtitle.len() > 0 { + block(width: 100%,)[ + #align(center, text(size: (8/3) * text-size)[*#META.title.title* \ ]) + #align(center, text(size: (6/3) * text-size)[*#META.title.subtitle*]) + ] + } else { + block(width: 100%,)[ + #align(center, text(size: (8/3) * text-size)[*#META.title.title*]) + ] + } + } else { + block(width: 100%,)[ + #align(center, text(size: (8/3) * text-size)[*#META.title.value*]) + ] + } + #v(4fr) + // First Author on Title Page + #block(width: 100%,)[ + #let CHU = range(META.authors.len()).chunks(PARS.auth-chunk-size) + #for the-CHU in CHU { + grid( + columns: (1fr,) * the-CHU.len(), + gutter: 1em, + ..the-CHU.map( + auth-indx => [ + #align(center)[ + #set text(size: (4/3) * text-size) + *#META.authors.at(auth-indx).name,* + *#META.authors.at(auth-indx).given-name* \ + #set text(size: (3/3) * text-size) + #META.authors.at(auth-indx).affiliation \ + #set text(size: (5/6) * text-size) + #raw(META.authors.at(auth-indx).email) \ + #META.authors.at(auth-indx).location + ] + ] + ) + ) + if the-CHU.last() < CHU.flatten().last() [ + #v((4/3) * text-size) + ] + } + ] + #v(4fr) + // Publisher block + #block(width: 100%,)[ + #set text(size: text-size) + #META.publisher, \ + #META.location + ] + #v(1fr) + // Date block + #block(width: 100%,)[ + #set text(size: text-size) + #align(center)[#META.date.display()] + ] + ] + + // Front-matter material + front-matter-material +} + + +//--------------------------------------------------------------------------------------------// +// Body-Matter show rule // +//--------------------------------------------------------------------------------------------// + +#let BODY-MATTER( + text-size, + lang-chapter, + ship-part-page: true, + body-matter-material +) = { + // New Page + pagebreak(to: "odd", weak: false) + + // Counter reset + counter(heading).update(0) + counter(page).update(1) + + // Page settings adjustments + set page( + numbering: "1", + footer: context { + let cur-pag-num = counter(page).at(here()).first() + let ALIGN = if calc.even(cur-pag-num) { left } else { right } + set align(ALIGN) + [#counter(page).display("1")] + }, + header: [], + /* + header: context { + let META = query().first().value + let AUTH = query().first().value.join(" and ") + let cur-pag-num = counter(page).at(here()).first() + let l1-headings = query(heading.where(level: 1)) + if l1-headings.any(it => it.location().page() == cur-pag-num) { + [(level-1 heading detected)] + } else { + if calc.even(cur-pag-num) { + set align(left) + [#smallcaps(META.title.value)] + } else { + set align(left) + [#smallcaps(AUTH)] + } + } + }, + */ + ) + + // Paragraph settings + // --- Unnecesssary --- + + // Text parameters controlled by input arguments + // --- Unnecesssary --- + + // Main Body Page + if ship-part-page { + pagebreak(weak: true, to: "odd") + page( + header: [], + footer: [], + )[ + #v(1fr) + #block( + width: 100%, + align( + center, + text(size: (8/3) * 1em)[ + *Main Part* + ] + ) + ) + #v(1fr) + ] + } + + // Heading numbering and outlining controls + set heading( + numbering: "1.1.1.", + outlined: true, + ) + + // Main headings in BODY-MATTER + show heading.where(level: 1): it => { + counter(figure.where(kind: image)).update(0) + counter(figure.where(kind: table)).update(0) + counter(math.equation).update(0) + // Layout + pagebreak(weak: true, to: "odd") + place( // Shaded square + top + right, + box( + width: FMT("sq-side", size: text-size), + height: FMT("sq-side", size: text-size), + fill: FMT("sq-shad", size: text-size), radius: 4pt, inset: 0pt, + align( + center + horizon, + text( + font: ("Alegreya", "Linux Libertine"), + size: FMT("sn-size", size: text-size), + weight: "extrabold", + fill: FMT("sq-text", size: text-size) + )[#counter(heading).display("1")] + ) + ) + ) + place( // Rotated "Chapter" + top + right, + dx: -1.275 * FMT("sq-side", size: text-size), + rotate( + -90deg, + origin: top + right, + box( + width: FMT("sq-side", size: text-size), + align( + center + horizon, + text( + font: ("EB Garamond", "Linux Libertine"), + size: 0.275 * FMT("sn-size", size: text-size), + weight: "bold", + fill: FMT("sq-text", size: text-size) + )[#lang-chapter] + ) + ) + ) + ) + v(FMT("top-gap", size: text-size)) + block( // Chapter title + width: 100%, + height: FMT("it-hght", size: text-size), + align( + center + top, + text( + font: ("EB Garamond", "Linux Libertine"), + size: FMT("it-size", size: text-size), + weight: "extrabold", + )[#it.body] + ) + ) + } + + // Book body material + body-matter-material +} + + +//--------------------------------------------------------------------------------------------// +// Optional, Appendix show rule // +//--------------------------------------------------------------------------------------------// + +#let APPENDIX( + text-size, + lang-appendix, + ship-part-page: true, + appendix-material +) = { + // New Page + pagebreak(to: "odd", weak: false) + + // Counter reset + counter(heading).update(0) + + // Appendix Page + if ship-part-page { + pagebreak(weak: true, to: "odd") + page( + header: [], + footer: [], + )[ + #v(1fr) + #block( + width: 100%, + align( + center, + text(size: (8/3) * 1em)[ + *#lang-appendix* + ] + ) + ) + #v(1fr) + ] + } + + // Page settings adjustments + set page( + numbering: "1", + footer: context { + let cur-pag-num = counter(page).at(here()).first() + let ALIGN = if calc.even(cur-pag-num) { left } else { right } + set align(ALIGN) + [#counter(page).display("1")] + }, + header: [], + /* + header: context { + let META = query().first().value + let AUTH = query().first().value.join(" and ") + let cur-pag-num = counter(page).at(here()).first() + let l1-headings = query(heading.where(level: 1)) + if l1-headings.any(it => it.location().page() == cur-pag-num) { + [(level-1 heading detected)] + } else { + if calc.even(cur-pag-num) { + set align(left) + [#smallcaps(META.title.value)] + } else { + set align(left) + [#smallcaps(AUTH)] + } + } + }, + */ + ) + + // Paragraph settings + // --- Unnecesssary --- + + // Text parameters controlled by input arguments + // --- Unnecesssary --- + + // Heading numbering and outlining controls + set heading( + numbering: "A.1.1.", + outlined: true, + ) + + // Main headings in APPENDIX + show heading.where(level: 1): it => context { + counter(figure.where(kind: image)).update(0) + counter(figure.where(kind: table)).update(0) + counter(math.equation).update(0) + // Layout + pagebreak(weak: true, to: "odd") + place( // Shaded square + top + right, + box( + width: FMT("sq-side", size: text-size), + height: FMT("sq-side", size: text-size), + fill: FMT("sq-shad", size: text-size), radius: 4pt, inset: 0pt, + align( + center + horizon, + text( + font: ("Alegreya", "Linux Libertine"), + size: FMT("sn-size", size: text-size), + weight: "extrabold", + fill: FMT("sq-text", size: text-size) + )[#counter(heading).display("A")] + ) + ) + ) + place( // Rotated "Appendix" + top + right, + dx: -1.275 * FMT("sq-side", size: text-size), + rotate( + -90deg, + origin: top + right, + box( + width: FMT("sq-side", size: text-size), + align( + center + horizon, + text( + font: ("EB Garamond", "Linux Libertine"), + size: 0.275 * FMT("sn-size", size: text-size), + weight: "bold", + fill: FMT("sq-text", size: text-size) + )[#lang-appendix] + ) + ) + ) + ) + v(FMT("top-gap", size: text-size)) + block( // Appendix title + width: 100%, + height: FMT("it-hght", size: text-size), + align( + center + top, + text( + font: ("EB Garamond", "Linux Libertine"), + size: FMT("it-size", size: text-size), + weight: "extrabold", + )[#it.body] + ) + ) + } + + // Appendix material + appendix-material +} + + +//--------------------------------------------------------------------------------------------// +// Optional, Back-matter show rule // +//--------------------------------------------------------------------------------------------// + +#let BACK-MATTER( + text-size, + ship-part-page: true, + back-matter-material +) = { + // Page settings adjustments + set page( + numbering: "1", + footer: context { + let cur-pag-num = counter(page).at(here()).first() + let ALIGN = if calc.even(cur-pag-num) { left } else { right } + set align(ALIGN) + [#counter(page).display("1")] + }, + header: [], + ) + + // Paragraph settings + // --- Unnecesssary --- + + // Text parameters controlled by input arguments + // --- Unnecesssary --- + + // Back Part Page + if ship-part-page { + pagebreak(weak: true, to: "odd") + page( + header: [], + footer: [], + )[ + #v(1fr) + #block( + width: 100%, + align( + center, + text(size: (8/3) * 1em)[ + *Back Part* + ] + ) + ) + #v(1fr) + ] + } + + // Heading numbering and outlining controls + set heading( + numbering: none, + outlined: true, + ) + + // Main headings in BACK-MATTER + show heading.where(level: 1): it => { + counter(figure.where(kind: image)).update(0) + counter(figure.where(kind: table)).update(0) + counter(math.equation).update(0) + // Layout + pagebreak(weak: true, to: "odd") + v(FMT("top-gap", size: text-size)) + block( + width: 100%, + height: FMT("it-hght", size: text-size), + align( + center + top, + text( + font: ("EB Garamond", "Linux Libertine"), + size: FMT("it-size", size: text-size), + weight: "extrabold", + )[#it.body] + ) + ) + } + + // back-matter material + back-matter-material +} + + diff --git a/packages/preview/lyceum/0.1.0/meta-parsing.typ b/packages/preview/lyceum/0.1.0/meta-parsing.typ new file mode 100644 index 000000000..f711123fb --- /dev/null +++ b/packages/preview/lyceum/0.1.0/meta-parsing.typ @@ -0,0 +1,465 @@ +//============================================================================================// +// meta-parsing.typ // +//============================================================================================// + + +#let meta-parse(meta) = { + + //--------------------------------------------------------------------------------// + // Auxiliary Constants // + //--------------------------------------------------------------------------------// + + let bkROLES = ( // hayagriva documented roles found suitable for book production + "translator", "afterword", "foreword", "introduction", "annotator", "commentator", + "founder", "collaborator", "organizer", "director", "illustrator", + ) + + //--------------------------------------------------------------------------------// + // Auxiliary Functions // + //--------------------------------------------------------------------------------// + + let dict-from(item, keys: ("value", "short"), missing: "") = { + // Initializations + let RET = (:) + for key in keys { + RET.insert(key, missing) + } + // Empty tests + if true in ( + type(item) == type(none), + item == "", + item == (), + item == (:), + ) { + return RET + } + // String processing + if type(item) == type("") { + RET.at(keys.at(0)) = item + } + // Array processing: flatten -> string -> join + if type(item) == array { + item = item.flatten() + for ii in range(item.len()) { + item.at(ii) = str(item.at(ii)) + } + RET.at(keys.at(0)) = item.join(" ") + } + // Dictionary processing: get fields + if type(item) == dictionary { + for key in keys { + if key in item { + RET.at(key) = item.at(key) + } + } + } + return RET + } + + let array-from(item, missing: "") = { + // Initializations + let RET = () + // Empty tests + if true in ( + type(item) == type(none), + item == "", + item == (), + ) { + return (missing, ) + } + // String processing + if type(item) == type("") { + RET.push(item) + } + // Array processing: flatten -> string + if type(item) == array { + item = item.flatten() + for ii in item { + RET.push(str(ii)) + } + } + return RET + } + + let initials-of(first-names) = { + let ret = () + let M = first-names.matches(regex("\b[-\w]")) + for m in M { ret.push(m.text) } + return ret.join("") + } + + let name-splitting(full-name) = { + let RET = (unprocessed: full-name) + if full-name.contains(",") { + // Possibly "Name, Some Author" + let name-split = full-name.split(",") + let last-name = name-split.at(0).replace(regex("\s"), "") + let first-names = name-split.at(1).trim(regex("\s"), repeat: true) + RET.insert("name", last-name) + RET.insert("given-name", first-names) + RET.insert("short", last-name + initials-of(first-names)) + return RET + } + if full-name.contains(regex("\s")) { + // Possibly "Some Author Name" + let name-split = full-name.split(regex("\s")) + let last-name = name-split.pop() + let first-names = name-split.join(" ") + RET.insert("name", last-name) + RET.insert("given-name", first-names) + RET.insert("short", last-name + initials-of(first-names)) + return RET + } + if full-name.contains(regex("\p{Uppercase}")) { + // Possibly "SomethingLikeThis" + let name-split = full-name.split(regex("\p{Uppercase}")) + let last-name = name-split.pop() + let first-names = name-split.join(" ") + RET.insert("name", last-name) + RET.insert("given-name", first-names) + RET.insert("short", last-name + initials-of(first-names)) + return RET + } + // "somethingelse" + return RET + } + + //--------------------------------------------------------------------------------// + // Main Code // + //--------------------------------------------------------------------------------// + + // META initialization + let META = (:) + + // META.title + if type(meta.title) == dictionary { + META.title = dict-from( + meta.title, keys: ( + "value", + "title", + "subtitle", + "sep", + "short", + ) + ) + // value processing + if META.title.value.len() == 0 { + if META.title.title.len() > 0 { + if META.title.subtitle.len() > 0 { + if META.title.sep.len() > 0 { + META.title.value = (META.title.title, META.title.subtitle).join(META.title.sep) + } else { + META.title.sep = " " + META.title.value = (META.title.title, META.title.subtitle).join(META.title.sep) + } + } else { + META.title.value = META.title.title + } + } + } + // short processing + if META.title.short.len() == 0 { + if META.title.subtitle.len() > 0 { + META.title.short = META.title.title + } else { + let title-words = META.title.title.split(" ") + if title-words.len() > 1 { + META.title.short = title-words.slice(0, count: 2).join(" ") + } else { + META.title.short = META.title.title + } + } + } + } else if type(meta.title) == type("") { + META.title = dict-from( + meta.title, keys: ( + "value", + "title", + "subtitle", + "sep", + "short", + ) + ) + // title processing + if META.title.title.len() == 0 { + META.title.title = META.title.value + } + // short processing + if META.title.short.len() == 0 { + let title-words = META.title.title.split(" ") + if title-words.len() > 1 { + META.title.short = title-words.slice(0, count: 2).join(" ") + } else { + META.title.short = META.title.title + } + } + } + + // META.authors - Pass 1 + META.authors = () + if "authors" in meta { + if type(meta.authors) == array { + for an-author in meta.authors { + META.authors.push( + dict-from( + if type(an-author) == type("") { + name-splitting(an-author) + } else { + an-author + }, keys: ( + "name", + "given-name", + "preffix", + "suffix", + "short", + "email", + "affiliation", + "location", + ) + ) + ) + } + } else { + META.authors.push( + dict-from( + if type(meta.authors) == type("") { + name-splitting(meta.authors) + } else { + meta.authors + }, keys: ( + "name", + "given-name", + "preffix", + "suffix", + "short", + "email", + "affiliation", + "location", + ) + ) + ) + } + } else { + META.authors = ( + dict-from( + none, + keys: ( + "name", + "given-name", + "preffix", + "suffix", + "short", + "email", + "affiliation", + "location", + ) + ), + ) + } + + // META.authors - Pass 2 + for i in range(META.authors.len()) { + if META.authors.at(i).short == "" { + META.authors.at(i).short = META.authors.at(i).name + META.authors.at(i).short += initials-of(META.authors.at(i).given-name) + } + } + + // META.editors - Pass 1 + META.editors = () + if "editors" in meta { + if type(meta.editors) == array { + for an-editor in meta.editors { + META.editors.push( + dict-from( + if type(an-editor) == type("") { + name-splitting(an-editor) + } else { + an-editor + }, keys: ( + "name", + "given-name", + "preffix", + "suffix", + "short", + ) + ) + ) + } + } else { + META.editors.push( + dict-from( + if type(meta.editors) == type("") { + name-splitting(meta.editors) + } else { + meta.editors + }, keys: ( + "name", + "given-name", + "preffix", + "suffix", + "short", + ) + ) + ) + } + } else { + META.editors = ( + dict-from( + none, + keys: ( + "name", + "given-name", + "preffix", + "suffix", + "short", + ) + ), + ) + } + + // META.editors - Pass 2 + for i in range(META.editors.len()) { + if META.editors.at(i).short == "" { + META.editors.at(i).short = META.editors.at(i).name + META.editors.at(i).short += initials-of(META.editors.at(i).given-name) + } + } + + // META.publisher + META.publisher = "" + if "publisher" in meta { + if type(meta.publisher) == type("") { + META.publisher = meta.publisher + } + } + + // META.location + META.location = "" + if "location" in meta { + if type(meta.location) == type("") { + META.location = meta.location + } + } + + // META.affiliated + META.affiliated = (:) + if "affiliated" in meta { + if type(meta.affiliated) == dictionary { + for the-role in bkROLES { // Loops over allowed roles + if the-role in meta.affiliated { + META.affiliated.insert(the-role, ()) + let ppl = meta.affiliated.at(the-role) + if type(ppl) == array { + for a-person in ppl { + META.affiliated.at(the-role).push( + name-splitting(a-person) + ) + } + } else if type(ppl) == type("") { + META.affiliated.at(the-role).push( + name-splitting(ppl) + ) + } + } + } + } + } + + // META.keywords + if "keywords" in meta { + META.keywords = array-from(meta.keywords, missing: "") + } else { + META.keywords = ("", ) + } + + // META.date + if "date" in meta { + if meta.date == auto { + META.date = datetime.today() + } + if type(meta.date) == type(datetime.today()) { + META.date = meta.date + } else if meta.date == none { + META.date = datetime(year: 1900, month: 01, day: 01) + } + } else { + META.date = datetime(year: 1900, month: 01, day: 01) + } + + // META.lang + let default-lang = "en" // Defaults to "en" + if "lang" in meta { + if meta.lang in (auto, none, "") { + META.lang = default-lang + } else { + META.lang = meta.lang + } + } else { + META.lang = default-lang + } + + // AUTHORS - A convenient compilation from META.authors + let AUTHORS = () + for AUTH in META.authors { + AUTHORS.push(AUTH.short) + } + + // META.bibkey + META.bibkey = if AUTHORS.len() == 1 { + str(META.date.year()) + "-" + AUTHORS.at(0) + } else if AUTHORS.len() >= 2 { + str(META.date.year()) + "-" + (AUTHORS.first(), AUTHORS.last()).join("+") + } + if META.title.short.len() > 0 { + META.bibkey += "-" + META.title.short.split(" ").join("") + } else { + META.bibkey += "-" + initials-of(META.title.value) + } + META.bibkey += "~" + META.lang + + + // META.self-bib-entry + META.self-bib-entry = ( + META.bibkey + ":", + " title:", + " value: " + META.title.value, + " short: " + META.title.short, + " author:", + ) + for A in META.authors { + META.self-bib-entry.push(" - name: " + A.name) + if A.given-name.len() > 0 { META.self-bib-entry.push(" given-name: " + A.given-name) } + if A.preffix.len() > 0 { META.self-bib-entry.push(" preffix: " + A.preffix) } + if A.suffix.len() > 0 { META.self-bib-entry.push(" suffix: " + A.suffix) } + } + if "editors" in META and META.editors.len() > 0 { + META.self-bib-entry.push(" editor:") + for E in META.editors { + META.self-bib-entry.push(" - name: " + E.name) + if E.given-name.len() > 0 { META.self-bib-entry.push(" given-name: " + E.given-name) } + if E.preffix.len() > 0 { META.self-bib-entry.push(" preffix: " + E.preffix) } + if E.suffix.len() > 0 { META.self-bib-entry.push(" suffix: " + E.suffix) } + } + } + META.self-bib-entry.push(" publisher: " + META.publisher) + META.self-bib-entry.push(" location: " + META.location) + if "affiliated" in META and META.affiliated.len() > 0 { + META.self-bib-entry.push(" affiliated:") + for (R, A) in META.affiliated { + META.self-bib-entry.push(" - role: " + R) + META.self-bib-entry.push(" names:") + for E in A { + META.self-bib-entry.push(" - name: " + E.name) + META.self-bib-entry.push(" given-name: " + E.given-name) + } + } + } + META.self-bib-entry.push(" date: " + META.date.display()) + META.self-bib-entry.push(" language: " + META.lang) + + // Return values + return (META, AUTHORS) +} + + diff --git a/packages/preview/lyceum/0.1.0/stencil/Makefile b/packages/preview/lyceum/0.1.0/stencil/Makefile new file mode 100644 index 000000000..dde35dcad --- /dev/null +++ b/packages/preview/lyceum/0.1.0/stencil/Makefile @@ -0,0 +1,8 @@ +%.py: %.typ + echo '#!/usr/bin/env python' > $@ + typst query $< "" | sed '1s/^/D = /g' >> $@ + echo 'print(D[0]["value"])' >> $@ + +%.yml: %.py + python $< > $@ + diff --git a/packages/preview/lyceum/0.1.0/stencil/main.typ b/packages/preview/lyceum/0.1.0/stencil/main.typ new file mode 100644 index 000000000..d2085120d --- /dev/null +++ b/packages/preview/lyceum/0.1.0/stencil/main.typ @@ -0,0 +1,136 @@ +// #import "@preview/lyceum:0.1.0": FRONT-MATTER +#import "@local/lyceum:0.1.0": FRONT-MATTER, BODY-MATTER, APPENDIX, BACK-MATTER + +#let TEXT-SIZE = 11pt + +//----------------------------------------------------------------------------// +// FRONT-MATTER // +//----------------------------------------------------------------------------// + +#show: FRONT-MATTER.with( + // Document metadata + title: ( + title: "Igneous Rocks", + subtitle: "The Hard Science", + sep: " - " + ), + authors: ( + ( + given-name: "Evelyn D.", + name: "Crump", + affiliation: "Rocks Hard Research Group", + email: "crumped@rockshard.org.far", + location: "Rich Mines, Faraway Country", + ), ( + preffix: "Sir.", + given-name: "Effie J.", + name: "Hitchcock", + suffix: "Jr.", + affiliation: "Hard University", + email: "hitchcockej@hard.edu.far", + location: "Rockbridge, Faraway Country", + ), + ), + editors: ("Cenhelm, Erwin", ), + publisher: "Lyceum Publisher", + location: "Lyceum City, Faraway Country", + affiliated: ( + illustrator: ("Revaz Sopheap", ), + organizer: "Darko Sergej", + ), + keywords: ("igneous", "rocks", "geology", ), + date: datetime(year: 2024, month: 9, day: 13), // auto => datetime.today() + // Document general format + page-size: (width: 155mm, height: 230mm), + page-margin: (inside: 30mm, rest: 25mm), + page-binding: left, + page-fill: color.hsl(45deg, 15%, 85%), // ivory + text-font: ("EB Garamond", "Linux Libertine"), + text-size: TEXT-SIZE, + lang-name: "en", +) + +// The lyceum auto-generates the title page + += Preface + +Here goes the book preface. #lorem(50) + +// Show rule for the outline +#show outline.entry.where( + level: 1 +): it => { + v(12pt, weak: true) + strong(it) +} + + += Contents + +#outline( + title: none, + target: heading.where(level: 1), + indent: auto, +) + + +//----------------------------------------------------------------------------// +// BODY-MATTER // +//----------------------------------------------------------------------------// + +#show: BODY-MATTER.with(TEXT-SIZE, "Chapter", ship-part-page: false) + += Introduction + +#lorem(520) + +$ e = m c^2 $ + +== Sub-Section + +#lorem(530) + +== Sub-Section + +#lorem(530) + += Methodology + +#lorem(750) + +== Sub-Section + +#lorem(730) + + +//----------------------------------------------------------------------------// +// APPENDIX // +//----------------------------------------------------------------------------// + +#show: APPENDIX.with(TEXT-SIZE, "Appendix", ship-part-page: true) + += Tables of Properties + +#lorem(50) + + +//----------------------------------------------------------------------------// +// BACK-MATTER // +//----------------------------------------------------------------------------// + +#show: BACK-MATTER.with(TEXT-SIZE, ship-part-page: false) + += Citing This Book + +The following is the _auto-generated_, self bibliography database entry for the *`hayagriva`* +manager: + +#block(width: 100%)[ + #let self-bib = context query().first().value + #set par(leading: 0.5em) + #text(font: "Inconsolata", size: 9pt, weight: "bold")[ + #self-bib + ] +] + + diff --git a/packages/preview/lyceum/0.1.0/thumbnail.png b/packages/preview/lyceum/0.1.0/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..99677f5013cdbe344645208264189a22fd8848d9 GIT binary patch literal 105597 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 z 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

2;E*coc7;8OXyh2 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 literal 0 HcmV?d00001 diff --git a/packages/preview/lyceum/0.1.0/typst.toml b/packages/preview/lyceum/0.1.0/typst.toml new file mode 100644 index 000000000..ac074d81c --- /dev/null +++ b/packages/preview/lyceum/0.1.0/typst.toml @@ -0,0 +1,16 @@ +[package] +name = "lyceum" +version = "0.1.0" +entrypoint = "lib.typ" +authors = ["Naaktgeboren, C.", ] +license = "MIT" +description = "Academic book template in Typst" +keywords = ["academic", "book", "academia", "textbook", "research"] +categories = ["layout", "scripting", "book"] +disciplines = [] +compiler = "0.11.1" + +[template] +path = "stencil" +entrypoint = "main.typ" +thumbnail = "thumbnail.png" From 277a36ee118bb3a3943d532b376375bb4afda8bf Mon Sep 17 00:00:00 2001 From: "C. Naaktgeboren" Date: Sun, 8 Dec 2024 18:23:52 -0300 Subject: [PATCH 2/5] Fixed the error raised by the pull-request testing suite --- packages/preview/lyceum/0.1.0/stencil/main.typ | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/preview/lyceum/0.1.0/stencil/main.typ b/packages/preview/lyceum/0.1.0/stencil/main.typ index d2085120d..a79e8e5c1 100644 --- a/packages/preview/lyceum/0.1.0/stencil/main.typ +++ b/packages/preview/lyceum/0.1.0/stencil/main.typ @@ -1,5 +1,5 @@ // #import "@preview/lyceum:0.1.0": FRONT-MATTER -#import "@local/lyceum:0.1.0": FRONT-MATTER, BODY-MATTER, APPENDIX, BACK-MATTER +#import "@preview/lyceum:0.1.0": FRONT-MATTER, BODY-MATTER, APPENDIX, BACK-MATTER #let TEXT-SIZE = 11pt From 86696ba4c125597f3c010c1082a60a707e90d29d Mon Sep 17 00:00:00 2001 From: "C. Naaktgeboren" Date: Sun, 8 Dec 2024 18:31:48 -0300 Subject: [PATCH 3/5] Fixed the font warnings raised by the pull-request testing suite --- packages/preview/lyceum/0.1.0/lib.typ | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/preview/lyceum/0.1.0/lib.typ b/packages/preview/lyceum/0.1.0/lib.typ index 048d8b092..b04696fdc 100644 --- a/packages/preview/lyceum/0.1.0/lib.typ +++ b/packages/preview/lyceum/0.1.0/lib.typ @@ -61,7 +61,7 @@ page-margin: (inside: 30mm, rest: 25mm), page-binding: left, page-fill: color.hsl(45deg, 15%, 85%), // ivory - text-font: ("EB Garamond", "Linux Libertine"), + text-font: ("EB Garamond", "Linux Libertine", "Libertinus Serif"), text-size: 12pt, lang-name: "en", par-indent: 12mm, @@ -144,7 +144,7 @@ align( center + top, text( - font: ("EB Garamond", "Linux Libertine"), + font: ("EB Garamond", "Linux Libertine", "Libertinus Serif"), size: FMT("it-size", size: text-size), weight: "extrabold", )[#it.body] @@ -337,7 +337,7 @@ align( center + horizon, text( - font: ("Alegreya", "Linux Libertine"), + font: ("Alegreya", "Linux Libertine", "Libertinus Serif"), size: FMT("sn-size", size: text-size), weight: "extrabold", fill: FMT("sq-text", size: text-size) @@ -356,7 +356,7 @@ align( center + horizon, text( - font: ("EB Garamond", "Linux Libertine"), + font: ("EB Garamond", "Linux Libertine", "Libertinus Serif"), size: 0.275 * FMT("sn-size", size: text-size), weight: "bold", fill: FMT("sq-text", size: text-size) @@ -372,7 +372,7 @@ align( center + top, text( - font: ("EB Garamond", "Linux Libertine"), + font: ("EB Garamond", "Linux Libertine", "Libertinus Serif"), size: FMT("it-size", size: text-size), weight: "extrabold", )[#it.body] @@ -481,7 +481,7 @@ align( center + horizon, text( - font: ("Alegreya", "Linux Libertine"), + font: ("Alegreya", "Linux Libertine", "Libertinus Serif"), size: FMT("sn-size", size: text-size), weight: "extrabold", fill: FMT("sq-text", size: text-size) @@ -500,7 +500,7 @@ align( center + horizon, text( - font: ("EB Garamond", "Linux Libertine"), + font: ("EB Garamond", "Linux Libertine", "Libertinus Serif"), size: 0.275 * FMT("sn-size", size: text-size), weight: "bold", fill: FMT("sq-text", size: text-size) @@ -516,7 +516,7 @@ align( center + top, text( - font: ("EB Garamond", "Linux Libertine"), + font: ("EB Garamond", "Linux Libertine", "Libertinus Serif"), size: FMT("it-size", size: text-size), weight: "extrabold", )[#it.body] @@ -597,7 +597,7 @@ align( center + top, text( - font: ("EB Garamond", "Linux Libertine"), + font: ("EB Garamond", "Linux Libertine", "Libertinus Serif"), size: FMT("it-size", size: text-size), weight: "extrabold", )[#it.body] From 0b681d69acf0a6bd6651a13ca5175192022425c5 Mon Sep 17 00:00:00 2001 From: "C. Naaktgeboren" Date: Wed, 11 Dec 2024 01:16:24 -0300 Subject: [PATCH 4/5] Fixed the font issue on stencil/main.typ. lyceum:0.1.0 --- packages/preview/lyceum/0.1.0/stencil/main.typ | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/preview/lyceum/0.1.0/stencil/main.typ b/packages/preview/lyceum/0.1.0/stencil/main.typ index a79e8e5c1..20b53e52d 100644 --- a/packages/preview/lyceum/0.1.0/stencil/main.typ +++ b/packages/preview/lyceum/0.1.0/stencil/main.typ @@ -45,7 +45,7 @@ page-margin: (inside: 30mm, rest: 25mm), page-binding: left, page-fill: color.hsl(45deg, 15%, 85%), // ivory - text-font: ("EB Garamond", "Linux Libertine"), + text-font: ("EB Garamond", "Libertinus Serif", "Linux Libertine"), text-size: TEXT-SIZE, lang-name: "en", ) From 7164e0fd721e15a26ea3a61c7a58e92794180e59 Mon Sep 17 00:00:00 2001 From: "C. Naaktgeboren" Date: Wed, 11 Dec 2024 01:20:01 -0300 Subject: [PATCH 5/5] No more Linux Libertine font on all sources. lyceum:0.1.0 --- packages/preview/lyceum/0.1.0/lib.typ | 18 +++++++++--------- packages/preview/lyceum/0.1.0/stencil/main.typ | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/preview/lyceum/0.1.0/lib.typ b/packages/preview/lyceum/0.1.0/lib.typ index b04696fdc..9b64b5e71 100644 --- a/packages/preview/lyceum/0.1.0/lib.typ +++ b/packages/preview/lyceum/0.1.0/lib.typ @@ -61,7 +61,7 @@ page-margin: (inside: 30mm, rest: 25mm), page-binding: left, page-fill: color.hsl(45deg, 15%, 85%), // ivory - text-font: ("EB Garamond", "Linux Libertine", "Libertinus Serif"), + text-font: ("EB Garamond", "Libertinus Serif"), text-size: 12pt, lang-name: "en", par-indent: 12mm, @@ -144,7 +144,7 @@ align( center + top, text( - font: ("EB Garamond", "Linux Libertine", "Libertinus Serif"), + font: ("EB Garamond", "Libertinus Serif"), size: FMT("it-size", size: text-size), weight: "extrabold", )[#it.body] @@ -337,7 +337,7 @@ align( center + horizon, text( - font: ("Alegreya", "Linux Libertine", "Libertinus Serif"), + font: ("Alegreya", "Libertinus Serif"), size: FMT("sn-size", size: text-size), weight: "extrabold", fill: FMT("sq-text", size: text-size) @@ -356,7 +356,7 @@ align( center + horizon, text( - font: ("EB Garamond", "Linux Libertine", "Libertinus Serif"), + font: ("EB Garamond", "Libertinus Serif"), size: 0.275 * FMT("sn-size", size: text-size), weight: "bold", fill: FMT("sq-text", size: text-size) @@ -372,7 +372,7 @@ align( center + top, text( - font: ("EB Garamond", "Linux Libertine", "Libertinus Serif"), + font: ("EB Garamond", "Libertinus Serif"), size: FMT("it-size", size: text-size), weight: "extrabold", )[#it.body] @@ -481,7 +481,7 @@ align( center + horizon, text( - font: ("Alegreya", "Linux Libertine", "Libertinus Serif"), + font: ("Alegreya", "Libertinus Serif"), size: FMT("sn-size", size: text-size), weight: "extrabold", fill: FMT("sq-text", size: text-size) @@ -500,7 +500,7 @@ align( center + horizon, text( - font: ("EB Garamond", "Linux Libertine", "Libertinus Serif"), + font: ("EB Garamond", "Libertinus Serif"), size: 0.275 * FMT("sn-size", size: text-size), weight: "bold", fill: FMT("sq-text", size: text-size) @@ -516,7 +516,7 @@ align( center + top, text( - font: ("EB Garamond", "Linux Libertine", "Libertinus Serif"), + font: ("EB Garamond", "Libertinus Serif"), size: FMT("it-size", size: text-size), weight: "extrabold", )[#it.body] @@ -597,7 +597,7 @@ align( center + top, text( - font: ("EB Garamond", "Linux Libertine", "Libertinus Serif"), + font: ("EB Garamond", "Libertinus Serif"), size: FMT("it-size", size: text-size), weight: "extrabold", )[#it.body] diff --git a/packages/preview/lyceum/0.1.0/stencil/main.typ b/packages/preview/lyceum/0.1.0/stencil/main.typ index 20b53e52d..a52eaa43c 100644 --- a/packages/preview/lyceum/0.1.0/stencil/main.typ +++ b/packages/preview/lyceum/0.1.0/stencil/main.typ @@ -45,7 +45,7 @@ page-margin: (inside: 30mm, rest: 25mm), page-binding: left, page-fill: color.hsl(45deg, 15%, 85%), // ivory - text-font: ("EB Garamond", "Libertinus Serif", "Linux Libertine"), + text-font: ("EB Garamond", "Libertinus Serif"), text-size: TEXT-SIZE, lang-name: "en", )