From 0b8aa6847efe1990051a5b80e5d95d662b6a7eb6 Mon Sep 17 00:00:00 2001 From: Chris Fenner Date: Tue, 27 May 2025 10:36:26 -0700 Subject: [PATCH 1/2] introduce basic Typst template for TCG --- build.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/build.sh b/build.sh index fa5c5b2..6cf3a94 100755 --- a/build.sh +++ b/build.sh @@ -19,6 +19,7 @@ PDF_ENGINE=xelatex CROSSREF_TYPE="iso" DO_AUTO_BACKMATTER="yes" TEMPLATE_PDF="tcg.tex" +TEMPLATE_TYPST="tcg.typ" TEMPLATE_HTML="" HTML_STYLESHEET_ARGS="" CSL="" @@ -163,7 +164,10 @@ while true; do shift 2 ;; --template) + # TODO: If simultaneous LaTeX and Typst-based PDF generation is required, + # then we need separate --template_latex and --template_typst flags. TEMPLATE_PDF="${2}" + TEMPLATE_TYPST="${2}" shift 2 ;; --template_html) @@ -842,6 +846,7 @@ do_typst() { local cmd=(pandoc --standalone --highlight-style=${SYNTAX_HIGHLIGHT_STYLE} + --template=${TEMPLATE_TYPST} --lua-filter=convert-diagrams.lua --lua-filter=convert-images.lua --lua-filter=parse-html.lua From 94a3888774a88f6e810a26b28dc232f577712f8b Mon Sep 17 00:00:00 2001 From: Chris Fenner Date: Tue, 27 May 2025 10:37:08 -0700 Subject: [PATCH 2/2] actually commit the template --- template/tcg.typ | 132 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 template/tcg.typ diff --git a/template/tcg.typ b/template/tcg.typ new file mode 100644 index 0000000..cf5287d --- /dev/null +++ b/template/tcg.typ @@ -0,0 +1,132 @@ +// +// TCG Template for Typst +// Initial version generated by Pandoc v3.6.4 using: +// pandoc -D typst +// + +#let horizontalrule = line(start: (25%,0%), end: (75%,0%)) + +#show terms: it => { + it.children + .map(child => [ + #strong[#child.term] + #block(inset: (left: 1.5em, top: -0.4em))[#child.description] + ]) + .join() +} + +#set table( + inset: 6pt, + stroke: 1pt +) + +#show figure.where( + kind: table +): set figure.caption(position: $if(table-caption-position)$$table-caption-position$$else$top$endif$) + +#show figure.where( + kind: image +): set figure.caption(position: $if(figure-caption-position)$$figure-caption-position$$else$bottom$endif$) + +$if(template)$ +#import "$template$": conf +$else$ +$template.typst()$ +$endif$ + +$if(smart)$ +$else$ +#set smartquote(enabled: false) + +$endif$ +$for(header-includes)$ +$header-includes$ + +$endfor$ +#show: doc => conf( +$if(title)$ + title: [$title$], +$endif$ +$if(subtitle)$ + subtitle: [$subtitle$], +$endif$ +$if(author)$ + authors: ( +$for(author)$ +$if(author.name)$ + ( name: [$author.name$], + affiliation: [$author.affiliation$], + email: [$author.email$] ), +$else$ + ( name: [$author$], + affiliation: "", + email: "" ), +$endif$ +$endfor$ + ), +$endif$ +$if(keywords)$ + keywords: ($for(keywords)$$keyword$$sep$,$endfor$), +$endif$ +$if(date)$ + date: [$date$], +$endif$ +$if(lang)$ + lang: "$lang$", +$endif$ +$if(region)$ + region: "$region$", +$endif$ +$if(abstract)$ + abstract: [$abstract$], +$endif$ +$if(margin)$ + margin: ($for(margin/pairs)$$margin.key$: $margin.value$,$endfor$), +$endif$ +$if(papersize)$ + paper: "$papersize$", +$endif$ +$if(mainfont)$ + font: ("$mainfont$",), +$endif$ +$if(fontsize)$ + fontsize: $fontsize$, +$endif$ +$if(section-numbering)$ + sectionnumbering: "$section-numbering$", +$endif$ + pagenumbering: $if(page-numbering)$"$page-numbering$"$else$none$endif$, + cols: $if(columns)$$columns$$else$1$endif$, + doc, +) + +$for(include-before)$ +$include-before$ + +$endfor$ +$if(toc)$ +#outline( + title: auto, + depth: $toc-depth$ +); +$endif$ + +$body$ + +$if(citations)$ +$if(csl)$ + +#set bibliography(style: "$csl$") +$elseif(bibliographystyle)$ + +#set bibliography(style: "$bibliographystyle$") +$endif$ +$if(bibliography)$ + +#bibliography($for(bibliography)$"$bibliography$"$sep$,$endfor$) +$endif$ +$endif$ +$for(include-after)$ + +$include-after$ +$endfor$