107 lines
3.6 KiB
Markdown
107 lines
3.6 KiB
Markdown
# MPI Bilingual Typst Template — Design Decisions
|
||
|
||
## Location
|
||
|
||
- Repo / project root: `~/documents/mpi/`
|
||
- Template directory (contains `lib/`): `~/documents/mpi/translate-files/`
|
||
- Template: `translate-files/lib/mpi-bilingual-template.typ`
|
||
- Example usage: `translate-files/从物品整理到心灵整理/mindful-organizing.typ`
|
||
|
||
## Goal
|
||
|
||
A single reusable Typst template for bilingual Chinese-English 静心学堂丛书
|
||
publications. Host `.typ` files should contain almost no setup code — only an
|
||
`#import`, a `#show: mpi-bilingual.with(...)` call, and the article content.
|
||
|
||
## Font choice
|
||
|
||
- **Chinese:** Noto Serif CJK SC (Google Fonts)
|
||
- **English:** Noto Serif (Google Fonts), used as a freely available substitute
|
||
for Times New Roman.
|
||
|
||
## Page and paragraph formatting
|
||
|
||
| Setting | Value | Rationale |
|
||
|---|---|---|
|
||
| Paper | A4 | Standard publication size |
|
||
| Margins | 2.5 cm all around | Matches existing documents |
|
||
| Body size | 10.5 pt | 五号 per the formatting guide |
|
||
| Line spacing (`leading`) | 1.5 em | 1.5× line height per the guide |
|
||
| Paragraph spacing | 1.5 em | Equivalent to one blank line between paragraphs |
|
||
| Alignment | justified | Matches the existing `mindful-organizing.typ` look |
|
||
| First-line indent | 2 em | Keeps bilingual paragraphs visually distinct |
|
||
| Heading numbering | none | Headings are written verbatim in the host file |
|
||
| Heading spacing | `above: 2em`, `below: 1.2em` | Clear section breaks without page breaks |
|
||
| Footnotes | 8 pt, left aligned | Per the formatting guide |
|
||
|
||
## Title page
|
||
|
||
Titles and subtitles are passed as free Typst content (`title-cn`, `title-en`,
|
||
`subtitle-cn`, `subtitle-en`).
|
||
|
||
The gap between title and subtitle uses `linebreak()` inside a single paragraph
|
||
so the spacing follows the `line-height: 1.5` rhythm instead of an arbitrary
|
||
`v()` length. A larger `v(1.5em)` separates the Chinese block from the English
|
||
block.
|
||
|
||
## Table of contents
|
||
|
||
The TOC shows only English headings with dotted leaders and page numbers.
|
||
Chinese headings are displayed as compact section headers above their English
|
||
counterparts. This mirrors the behavior of the old `helpers.typ` but lives in
|
||
the template.
|
||
|
||
## Host file contract
|
||
|
||
A host file should look like this and nothing else:
|
||
|
||
```typst
|
||
#import "../lib/mpi-bilingual-template.typ": mpi-bilingual
|
||
|
||
#show: mpi-bilingual.with(
|
||
title-cn: [中文标题],
|
||
title-en: [English Title],
|
||
subtitle-cn: [——副标题],
|
||
subtitle-en: [—Subtitle],
|
||
)
|
||
|
||
= 一、章节标题
|
||
= I. Chapter Title
|
||
|
||
中文段落……
|
||
|
||
English paragraph …
|
||
```
|
||
|
||
Compile with the helper script:
|
||
|
||
```bash
|
||
~/documents/mpi/toolkit/scripts/compile-typst.fish ./从物品整理到心灵整理/mindful-organizing.typ [output.pdf]
|
||
```
|
||
|
||
Or manually from the template directory (`~/documents/mpi/translate-files/`):
|
||
|
||
```bash
|
||
cd ~/documents/mpi/translate-files
|
||
typst compile --root . ./从物品整理到心灵整理/mindful-organizing.typ
|
||
```
|
||
|
||
The `--root .` is required because the import `../lib/...` would otherwise
|
||
escape Typst's sandbox.
|
||
|
||
## What is intentionally not in the template
|
||
|
||
- No inline helpers like `#speaker` or `#quote-cn` in host files. The template
|
||
sets global formatting only. Dialogue speakers can be marked with `**Name:**`
|
||
when truly needed.
|
||
- No automatic blue styling for scripture quotes, because reliably detecting
|
||
quoted classics in plain text requires explicit markup.
|
||
- No per-chapter footnote numbering; Typst's default continuous numbering is
|
||
used.
|
||
|
||
## References
|
||
|
||
- `references/静心学堂丛书英文统一格式-20260211.pdf` — MPI formatting guide
|
||
- `translate-files/从物品整理到心灵整理/mindful-organizing.typ` — example host
|
||
file and current reference implementation
|