diff --git a/packages/preview/charged-ieee/0.1.4/LICENSE b/packages/preview/charged-ieee/0.1.4/LICENSE new file mode 100644 index 0000000000..fc06cc4fe4 --- /dev/null +++ b/packages/preview/charged-ieee/0.1.4/LICENSE @@ -0,0 +1,14 @@ +MIT No Attribution + +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. + +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/charged-ieee/0.1.4/README.md b/packages/preview/charged-ieee/0.1.4/README.md new file mode 100644 index 0000000000..eee984bf3a --- /dev/null +++ b/packages/preview/charged-ieee/0.1.4/README.md @@ -0,0 +1,73 @@ +# charged-ieee +This is a Typst template for a two-column paper from the proceedings of the +Institute of Electrical and Electronics Engineers. The paper is tightly spaced, +fits a lot of content and comes preconfigured for numeric citations from +BibLaTeX or Hayagriva files. + +## Usage +You can use this template in the Typst web app by clicking "Start from template" +on the dashboard and searching for `charged-ieee`. + +Alternatively, you can use the CLI to kick this project off using the command +``` +typst init @preview/charged-ieee +``` + +Typst will create a new directory with all the files needed to get you started. + +## Configuration +This template exports the `ieee` function with the following named arguments: + +- `title`: The paper's title as content. +- `authors`: An array of author dictionaries. Each of the author dictionaries + must have a `name` key and can have the keys `department`, `organization`, + `location`, and `email`. All keys accept content. +- `abstract`: The content of a brief summary of the paper or `none`. Appears at + the top of the first column in boldface. +- `index-terms`: Array of index terms to display after the abstract. Shall be + `content`. +- `paper-size`: Defaults to `us-letter`. Specify a [paper size + string](https://typst.app/docs/reference/layout/page/#parameters-paper) to + change the page format. +- `bibliography`: The result of a call to the `bibliography` function or `none`. + Specifying this will configure numeric, IEEE-style citations. +- `figure-supplement`: How figures are referred to from within the text. Use + `"Figure"` instead of `"Fig."` for computer-related publications. + +The function also accepts a single, positional argument for the body of the +paper. + +The template will initialize your package with a sample call to the `ieee` +function in a show rule. If you want to change an existing project to use this +template, you can add a show rule like this at the top of your file: + +```typ +#import "@preview/charged-ieee:0.1.4": ieee + +#show: ieee.with( + title: [A typesetting system to untangle the scientific writing process], + abstract: [ + The process of scientific writing is often tangled up with the intricacies of typesetting, leading to frustration and wasted time for researchers. In this paper, we introduce Typst, a new typesetting system designed specifically for scientific writing. Typst untangles the typesetting process, allowing researchers to compose papers faster. In a series of experiments we demonstrate that Typst offers several advantages, including faster document creation, simplified syntax, and increased ease-of-use. + ], + authors: ( + ( + name: "Martin Haug", + department: [Co-Founder], + organization: [Typst GmbH], + location: [Berlin, Germany], + email: "haug@typst.app" + ), + ( + name: "Laurenz Mädje", + department: [Co-Founder], + organization: [Typst GmbH], + location: [Berlin, Germany], + email: "maedje@typst.app" + ), + ), + index-terms: ("Scientific writing", "Typesetting", "Document creation", "Syntax"), + bibliography: bibliography("refs.bib"), +) + +// Your content goes below. +``` diff --git a/packages/preview/charged-ieee/0.1.4/lib.typ b/packages/preview/charged-ieee/0.1.4/lib.typ new file mode 100644 index 0000000000..efc64a8e18 --- /dev/null +++ b/packages/preview/charged-ieee/0.1.4/lib.typ @@ -0,0 +1,241 @@ +// This function gets your whole document as its `body` and formats +// it as an article in the style of the IEEE. +#let ieee( + // The paper's title. + title: [Paper Title], + + // An array of authors. For each author you can specify a name, + // department, organization, location, and email. Everything but + // but the name is optional. + authors: (), + + // The paper's abstract. Can be omitted if you don't have one. + abstract: none, + + // A list of index terms to display after the abstract. + index-terms: (), + + // The article's paper size. Also affects the margins. + paper-size: "us-letter", + + // The result of a call to the `bibliography` function or `none`. + bibliography: none, + + // How figures are referred to from within the text. + // Use "Figure" instead of "Fig." for computer-related publications. + figure-supplement: [Fig.], + + // The paper's content. + body +) = { + // Set document metadata. + set document(title: title, author: authors.map(author => author.name)) + + // Set the body font. + // As of 2024-08, the IEEE LaTeX template uses wider interword spacing + // - See e.g. the definition \def\@IEEEinterspaceratioM{0.35} in IEEEtran.cls + set text(font: "TeX Gyre Termes", size: 10pt, spacing: .35em) + + // Enums numbering + set enum(numbering: "1)a)i)") + + // Tables & figures + show figure: set block(spacing: 15.5pt) + show figure: set place(clearance: 15.5pt) + show figure.where(kind: table): set figure.caption(position: top, separator: [\ ]) + show figure.where(kind: table): set text(size: 8pt) + show figure.where(kind: table): set figure(numbering: "I") + show figure.where(kind: image): set figure(supplement: figure-supplement, numbering: "1") + show figure.caption: set text(size: 8pt) + show figure.caption: set align(start) + show figure.caption.where(kind: table): set align(center) + + // Adapt supplement in caption independently from supplement used for + // references. + set figure.caption(separator: [. ]) + show figure: fig => { + let prefix = ( + if fig.kind == table [TABLE] + else if fig.kind == image [Fig.] + else [#fig.supplement] + ) + let numbers = numbering(fig.numbering, ..fig.counter.at(fig.location())) + // Wrap figure captions in block to prevent the creation of paragraphs. In + // particular, this means `par.first-line-indent` does not apply. + // See https://github.com/typst/templates/pull/73#discussion_r2112947947. + show figure.caption: it => block[#prefix~#numbers#it.separator#it.body] + show figure.caption.where(kind: table): smallcaps + fig + } + + // Code blocks + show raw: set text( + font: "TeX Gyre Cursor", + ligatures: false, + size: 1em / 0.8, + spacing: 100%, + ) + + // Configure the page and multi-column properties. + set columns(gutter: 12pt) + set page( + columns: 2, + paper: paper-size, + // The margins depend on the paper size. + margin: if paper-size == "a4" { + (x: 41.5pt, top: 80.51pt, bottom: 89.51pt) + } else { + ( + x: (50pt / 216mm) * 100%, + top: (55pt / 279mm) * 100%, + bottom: (64pt / 279mm) * 100%, + ) + } + ) + + // Configure equation numbering and spacing. + set math.equation(numbering: "(1)") + show math.equation: set block(spacing: 0.65em) + + // Configure appearance of equation references + show ref: it => { + if it.element != none and it.element.func() == math.equation { + // Override equation references. + link(it.element.location(), numbering( + it.element.numbering, + ..counter(math.equation).at(it.element.location()) + )) + } else { + // Other references as usual. + it + } + } + + // Configure lists. + set enum(indent: 10pt, body-indent: 9pt) + set list(indent: 10pt, body-indent: 9pt) + + // Configure headings. + set heading(numbering: "I.A.a)") + show heading: it => { + // Find out the final number of the heading counter. + let levels = counter(heading).get() + let deepest = if levels != () { + levels.last() + } else { + 1 + } + + set text(10pt, weight: 400) + if it.level == 1 { + // First-level headings are centered smallcaps. + // We don't want to number the acknowledgment section. + let is-ack = it.body in ([Acknowledgment], [Acknowledgement], [Acknowledgments], [Acknowledgements]) + set align(center) + set text(if is-ack { 10pt } else { 11pt }) + show: block.with(above: 15pt, below: 13.75pt, sticky: true) + show: smallcaps + if it.numbering != none and not is-ack { + numbering("I.", deepest) + h(7pt, weak: true) + } + it.body + } else if it.level == 2 { + // Second-level headings are run-ins. + set text(style: "italic") + show: block.with(spacing: 10pt, sticky: true) + if it.numbering != none { + numbering("A.", deepest) + h(7pt, weak: true) + } + it.body + } else [ + // Third level headings are run-ins too, but different. + #if it.level == 3 { + numbering("a)", deepest) + [ ] + } + _#(it.body):_ + ] + } + + // Style bibliography. + show std.bibliography: set text(8pt) + show std.bibliography: set block(spacing: 0.5em) + set std.bibliography(title: text(10pt)[References], style: "ieee") + + // Display the paper's title and authors at the top of the page, + // spanning all columns (hence floating at the scope of the + // columns' parent, which is the page). + place( + top, + float: true, + scope: "parent", + clearance: 30pt, + { + { + set align(center) + set par(leading: 0.5em) + set text(size: 24pt) + block(below: 8.35mm, title) + } + + // Display the authors list. + set par(leading: 0.6em) + for i in range(calc.ceil(authors.len() / 3)) { + let end = calc.min((i + 1) * 3, authors.len()) + let is-last = authors.len() == end + let slice = authors.slice(i * 3, end) + grid( + columns: slice.len() * (1fr,), + gutter: 12pt, + ..slice.map(author => align(center, { + text(size: 11pt, author.name) + if "department" in author [ + \ #emph(author.department) + ] + if "organization" in author [ + \ #emph(author.organization) + ] + if "location" in author [ + \ #author.location + ] + if "email" in author { + if type(author.email) == str [ + \ #link("mailto:" + author.email) + ] else [ + \ #author.email + ] + } + })) + ) + + if not is-last { + v(16pt, weak: true) + } + } + } + ) + + set par(justify: true, first-line-indent: (amount: 1em, all: true), spacing: 0.5em, leading: 0.5em) + + // Display abstract and index terms. + if abstract != none { + set par(spacing: 0.45em, leading: 0.45em) + set text(9pt, weight: 700, spacing: 150%) + + [_Abstract_---#h(weak: true, 0pt)#abstract] + + if index-terms != () { + parbreak() + [_Index Terms_---#h(weak: true, 0pt)#index-terms.join[, ]] + } + v(2pt) + } + + // Display the paper's contents. + body + + // Display bibliography. + bibliography +} diff --git a/packages/preview/charged-ieee/0.1.4/template/main.typ b/packages/preview/charged-ieee/0.1.4/template/main.typ new file mode 100644 index 0000000000..f5465833ad --- /dev/null +++ b/packages/preview/charged-ieee/0.1.4/template/main.typ @@ -0,0 +1,87 @@ +#import "@preview/charged-ieee:0.1.4": ieee + +#show: ieee.with( + title: [A Typesetting System to Untangle the Scientific Writing Process], + abstract: [ + The process of scientific writing is often tangled up with the intricacies of typesetting, leading to frustration and wasted time for researchers. In this paper, we introduce Typst, a new typesetting system designed specifically for scientific writing. Typst untangles the typesetting process, allowing researchers to compose papers faster. In a series of experiments we demonstrate that Typst offers several advantages, including faster document creation, simplified syntax, and increased ease-of-use. + ], + authors: ( + ( + name: "Martin Haug", + department: [Co-Founder], + organization: [Typst GmbH], + location: [Berlin, Germany], + email: "haug@typst.app" + ), + ( + name: "Laurenz Mädje", + department: [Co-Founder], + organization: [Typst GmbH], + location: [Berlin, Germany], + email: "maedje@typst.app" + ), + ), + index-terms: ("Scientific writing", "Typesetting", "Document creation", "Syntax"), + bibliography: bibliography("refs.bib"), + figure-supplement: [Fig.], +) + += Introduction +Scientific writing is a crucial part of the research process, allowing researchers to share their findings with the wider scientific community. However, the process of typesetting scientific documents can often be a frustrating and time-consuming affair, particularly when using outdated tools such as LaTeX. Despite being over 30 years old, it remains a popular choice for scientific writing due to its power and flexibility. However, it also comes with a steep learning curve, complex syntax, and long compile times, leading to frustration and despair for many researchers @netwok2020 @netwok2022. + +== Paper overview +In this paper we introduce Typst, a new typesetting system designed to streamline the scientific writing process and provide researchers with a fast, efficient, and easy-to-use alternative to existing systems. Our goal is to shake up the status quo and offer researchers a better way to approach scientific writing. + +By leveraging advanced algorithms and a user-friendly interface, Typst offers several advantages over existing typesetting systems, including faster document creation, simplified syntax, and increased ease-of-use. + +To demonstrate the potential of Typst, we conducted a series of experiments comparing it to other popular typesetting systems, including LaTeX. Our findings suggest that Typst offers several benefits for scientific writing, particularly for novice users who may struggle with the complexities of LaTeX. Additionally, we demonstrate that Typst offers advanced features for experienced users, allowing for greater customization and flexibility in document creation. + +Overall, we believe that Typst represents a significant step forward in the field of scientific writing and typesetting, providing researchers with a valuable tool to streamline their workflow and focus on what really matters: their research. In the following sections, we will introduce Typst in more detail and provide evidence for its superiority over other typesetting systems in a variety of scenarios. + += Methods +#lorem(45) + +$ a + b = gamma $ + +#lorem(80) + +#figure( + placement: none, + circle(radius: 15pt), + caption: [A circle representing the Sun.] +) + +In @fig:sun you can see a common representation of the Sun, which is a star that is located at the center of the solar system. + +#lorem(120) + +#figure( + caption: [The Planets of the Solar System and Their Average Distance from the Sun], + placement: top, + table( + // Table styling is not mandated by the IEEE. Feel free to adjust these + // settings and potentially move them into a set rule. + columns: (6em, auto), + align: (left, right), + inset: (x: 8pt, y: 4pt), + stroke: (x, y) => if y <= 1 { (top: 0.5pt) }, + fill: (x, y) => if y > 0 and calc.rem(y, 2) == 0 { rgb("#efefef") }, + + table.header[Planet][Distance (million km)], + [Mercury], [57.9], + [Venus], [108.2], + [Earth], [149.6], + [Mars], [227.9], + [Jupiter], [778.6], + [Saturn], [1,433.5], + [Uranus], [2,872.5], + [Neptune], [4,495.1], + ) +) + +In @tab:planets, you see the planets of the solar system and their average distance from the Sun. +The distances were calculated with @eq:gamma that we presented in @sec:methods. + +#lorem(240) + +#lorem(240) diff --git a/packages/preview/charged-ieee/0.1.4/template/refs.bib b/packages/preview/charged-ieee/0.1.4/template/refs.bib new file mode 100644 index 0000000000..c862e98720 --- /dev/null +++ b/packages/preview/charged-ieee/0.1.4/template/refs.bib @@ -0,0 +1,19 @@ +@article{netwok2020, + title={At-scale impact of the {Net Wok}: A culinarically holistic investigation of distributed dumplings}, + author={Astley, Rick and Morris, Linda}, + journal={Armenian Journal of Proceedings}, + volume={61}, + pages={192--219}, + year=2020, + publisher={Automatic Publishing Inc.} +} + +@article{netwok2022, + title={{Net Wok}++: Taking distributed dumplings to the cloud}, + author={Morris, Linda and Astley, Rick}, + journal={Armenian Journal of Proceedings}, + volume={65}, + pages={101--118}, + year=2022, + publisher={Automatic Publishing Inc.} +} diff --git a/packages/preview/charged-ieee/0.1.4/thumbnail.png b/packages/preview/charged-ieee/0.1.4/thumbnail.png new file mode 100644 index 0000000000..afb3f92b41 Binary files /dev/null and b/packages/preview/charged-ieee/0.1.4/thumbnail.png differ diff --git a/packages/preview/charged-ieee/0.1.4/typst.toml b/packages/preview/charged-ieee/0.1.4/typst.toml new file mode 100644 index 0000000000..316aca0bed --- /dev/null +++ b/packages/preview/charged-ieee/0.1.4/typst.toml @@ -0,0 +1,17 @@ +[package] +name = "charged-ieee" +version = "0.1.4" +compiler = "0.12.0" +entrypoint = "lib.typ" +repository = "https://github.com/typst/templates" +authors = ["Typst GmbH "] +license = "MIT-0" +description = "An IEEE-style paper template to publish at conferences and journals for Electrical Engineering, Computer Science, and Computer Engineering" +keywords = ["Institute of Electrical and Electronics Engineers", "IEEE", "Electrical Engineering", "Computer Science", "Computer Engineering", "Software"] +categories = ["paper"] +disciplines = ["computer-science", "engineering"] + +[template] +path = "template" +entrypoint = "main.typ" +thumbnail = "thumbnail.png" diff --git a/packages/preview/wonderous-book/0.1.2/LICENSE b/packages/preview/wonderous-book/0.1.2/LICENSE new file mode 100644 index 0000000000..fc06cc4fe4 --- /dev/null +++ b/packages/preview/wonderous-book/0.1.2/LICENSE @@ -0,0 +1,14 @@ +MIT No Attribution + +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. + +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/wonderous-book/0.1.2/README.md b/packages/preview/wonderous-book/0.1.2/README.md new file mode 100644 index 0000000000..da82c507f3 --- /dev/null +++ b/packages/preview/wonderous-book/0.1.2/README.md @@ -0,0 +1,56 @@ +# wonderous-book +A book template for fiction. The template contains a title page, a table of contents, and a chapter template. + +Dynamic running headers contain the title of the chapter and the book. + +## Usage +You can use this template in the Typst web app by clicking "Start from template" +on the dashboard and searching for `wonderous-book`. + +Alternatively, you can use the CLI to kick this project off using the command +``` +typst init @preview/wonderous-book +``` + +Typst will create a new directory with all the files needed to get you started. + +## Configuration +This template exports the `book` function with the following named arguments: + +- `title`: The book's title as content. +- `author`: Content or an array of content to specify the author. +- `paper-size`: Defaults to `iso-b5`. Specify a [paper size + string](https://typst.app/docs/reference/layout/page/#parameters-paper) to + change the page format. +- `dedication`: Who or what this book is dedicated to as content or `none`. Will + appear on its own page. +- `publishing-info`: Details for the front matter of this book as content or + `none`. + +The function also accepts a single, positional argument for the body of the +book. + +The template will initialize your package with a sample call to the `book` +function in a show rule. If you, however, want to change an existing project to +use this template, you can add a show rule like this at the top of your file: + +```typ +#import "@preview/wonderous-book:0.1.2": book + +#show: book.with( + title: [Liam's Playlist], + author: "Janet Doe", + dedication: [for Rachel], + publishing-info: [ + UK Publishing, Inc. \ + 6 Abbey Road \ + Vaughnham, 1PX 8A3 + + #link("https://example.co.uk/") + + 971-1-XXXXXX-XX-X + ], +) + +// Your content goes below. +``` diff --git a/packages/preview/wonderous-book/0.1.2/lib.typ b/packages/preview/wonderous-book/0.1.2/lib.typ new file mode 100644 index 0000000000..89122d2d0c --- /dev/null +++ b/packages/preview/wonderous-book/0.1.2/lib.typ @@ -0,0 +1,141 @@ +// This function gets your whole document as its `body` and formats +// it as a simple fiction book. +#let book( + // The book's title. + title: [Book title], + + // The book's author. + author: "Author", + + // The paper size to use. + paper-size: "iso-b5", + + // A dedication to display on the third page. + dedication: none, + + // Details about the book's publisher that are + // display on the second page. + publishing-info: none, + + // The book's content. + body, +) = { + // Creates a pagebreak to the given parity where empty pages + // can be detected via `is-page-empty`. + let detectable-pagebreak(to: "odd") = { + [#metadata(none) ] + pagebreak(to: to) + [#metadata(none) ] + } + + // Workaround for https://github.com/typst/typst/issues/2722 + let is-page-empty() = { + let page-num = here().page() + query() + .zip(query()) + .any(((start, end)) => { + (start.location().page() < page-num + and page-num < end.location().page()) + }) + } + + // Set the document's metadata. + set document(title: title, author: author) + + // Set the body font. TeX Gyre Pagella is a free alternative + // to Palatino. + set text(font: "TeX Gyre Pagella") + + // Configure the page properties. + set page( + paper: paper-size, + margin: (bottom: 1.75cm, top: 2.25cm), + ) + + // The first page. + page(align(center + horizon)[ + #text(2em)[*#title*] + #v(2em, weak: true) + #text(1.6em, author) + ]) + + // Display publisher info at the bottom of the second page. + if publishing-info != none { + align(center + bottom, text(0.8em, publishing-info)) + } + + pagebreak() + + // Display the dedication at the top of the third page. + if dedication != none { + v(15%) + align(center, strong(dedication)) + } + + // Books like their empty pages. + pagebreak(to: "odd") + + // Configure paragraph properties. + set par(spacing: 0.78em, leading: 0.78em, first-line-indent: 12pt, justify: true) + + // Start with a chapter outline. + outline(title: [Chapters]) + pagebreak(to: "odd", weak: true) + + // Configure page properties. + set page( + // The header always contains the book title on odd pages and + // the author on even pages, unless + // - we are on an empty page + // - we are on a page that starts a chapter + header: context { + // Is this an empty page inserted to keep page parity? + if is-page-empty() { + return + } + + // Are we on a page that starts a chapter? + let i = here().page() + if query(heading).any(it => it.location().page() == i) { + return + } + + // Find the heading of the section we are currently in. + let before = query(selector(heading).before(here())) + if before != () { + set text(0.95em) + let header = smallcaps(before.last().body) + let title = smallcaps(title) + let author = text(style: "italic", author) + grid( + columns: (1fr, 10fr, 1fr), + align: (left, center, right), + if calc.even(i) [#i], + // Swap `author` and `title` around, or possibly with `heading` + // to change what is displayed on each side. + if calc.even(i) { author } else { title }, + if calc.odd(i) [#i], + ) + } + }, + ) + + // Configure chapter headings. + show heading.where(level: 1): it => { + // Always start on odd pages. + detectable-pagebreak(to: "odd") + + // Create the heading numbering. + let number = if it.numbering != none { + counter(heading).display(it.numbering) + h(7pt, weak: true) + } + + v(5%) + text(2em, weight: 700, block([#number #it.body])) + v(1.25em) + } + show heading: set text(11pt, weight: 400) + + body +} diff --git a/packages/preview/wonderous-book/0.1.2/template/main.typ b/packages/preview/wonderous-book/0.1.2/template/main.typ new file mode 100644 index 0000000000..89ad19869d --- /dev/null +++ b/packages/preview/wonderous-book/0.1.2/template/main.typ @@ -0,0 +1,33 @@ +#import "@preview/wonderous-book:0.1.2": book + +#show: book.with( + title: [Liam's Playlist], + author: "Janet Doe", + dedication: [for Rachel], + publishing-info: [ + UK Publishing, Inc. \ + 6 Abbey Road \ + Vaughnham, 1PX 8A3 + + #link("https://example.co.uk/") + + 971-1-XXXXXX-XX-X + ], +) + += Mondays +Liam hated Mondays. He hated waking up to the sound of his dad's old car sputtering to life outside his window. He hated the smell of burnt toast and instant coffee that filled the kitchen. He hated the sight of his mum's tired face as she handed him his lunch bag and kissed him goodbye. He hated the feel of his worn-out uniform and backpack as he walked to the bus stop. He hated the noise of the other kids on the bus, talking about their weekend plans and their latest crushes. He hated the fact that he had nothing to say to them, nothing to share, nothing to look forward to. + +He got off the bus at his school and made his way to his locker, avoiding eye contact with anyone who might notice him or worse, pick on him. He was used to being invisible, being ignored, being alone. He didn't have any friends at school, or anywhere else for that matter. He didn't have any hobbies or interests that made him stand out or fit in. He didn't have any dreams or goals that gave him hope or motivation. He just had his routine: wake up, go to school, come home, do homework, watch TV, go to bed. Repeat. + +He opened his locker and took out his books for his first class: English literature. He liked reading books sometimes, but he didn't like analyzing them or writing essays about them. He didn't see the point of studying something that had no relevance to his life or future. What did Shakespeare or Dickens have to do with him? What did he care about metaphors or themes or symbols? He just wanted to escape into a different world for a while, not dissect it. + +He closed his locker and headed to class. As he walked down the hall, he saw her: Alice Walker. She was new at school this year and she was beautiful. She had long blonde hair that cascaded over her shoulders like a waterfall. She had bright blue eyes that sparkled like diamonds in the sunlight. She had a perfect smile that lit up her face like a star in the night sky. + +But he knew it was impossible. She was out of his league. She was from another world. He sighed and continued walking towards English literature. He hated Mondays. + += Music +#lorem(1500) + += Magic +#lorem(600) diff --git a/packages/preview/wonderous-book/0.1.2/thumbnail.png b/packages/preview/wonderous-book/0.1.2/thumbnail.png new file mode 100644 index 0000000000..39f3919822 Binary files /dev/null and b/packages/preview/wonderous-book/0.1.2/thumbnail.png differ diff --git a/packages/preview/wonderous-book/0.1.2/typst.toml b/packages/preview/wonderous-book/0.1.2/typst.toml new file mode 100644 index 0000000000..6ab66e3cc6 --- /dev/null +++ b/packages/preview/wonderous-book/0.1.2/typst.toml @@ -0,0 +1,16 @@ +[package] +name = "wonderous-book" +version = "0.1.2" +compiler = "0.12.0" +entrypoint = "lib.typ" +repository = "https://github.com/typst/templates" +authors = ["Typst GmbH "] +license = "MIT-0" +description = "A fiction book template with running headers and serif typography" +keywords = ["book", "fiction", "running header", "novel"] +categories = ["book"] + +[template] +path = "template" +entrypoint = "main.typ" +thumbnail = "thumbnail.png"