@tonguetoquill/collection 0.2.3 → 0.2.5-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -201
- package/README.md +39 -39
- package/index.d.ts +2 -2
- package/index.js +8 -8
- package/package.json +41 -41
- package/quills/af4141/0.1.0/Quill.yaml +88 -88
- package/quills/af4141/0.1.0/design/TASK.md +19 -19
- package/quills/af4141/0.1.0/example.md +35 -35
- package/quills/af4141/0.1.0/packages/typst-af4141/FIELDS.json +3169 -3169
- package/quills/af4141/0.1.0/packages/typst-af4141/form.typ +538 -538
- package/quills/af4141/0.1.0/packages/typst-af4141/lib.typ +227 -227
- package/quills/af4141/0.1.0/packages/typst-af4141/typst.toml +7 -7
- package/quills/af4141/0.1.0/plate.typ +48 -48
- package/quills/classic_resume/0.1.0/Quill.yaml +118 -118
- package/quills/classic_resume/0.1.0/example.md +232 -232
- package/quills/classic_resume/0.1.0/packages/ttq-classic-resume/LICENSE +21 -21
- package/quills/classic_resume/0.1.0/packages/ttq-classic-resume/README.md +38 -38
- package/quills/classic_resume/0.1.0/packages/ttq-classic-resume/src/components.typ +184 -184
- package/quills/classic_resume/0.1.0/packages/ttq-classic-resume/src/layout.typ +42 -42
- package/quills/classic_resume/0.1.0/packages/ttq-classic-resume/src/lib.typ +5 -5
- package/quills/classic_resume/0.1.0/packages/ttq-classic-resume/typst.toml +26 -26
- package/quills/classic_resume/0.1.0/plate.typ +44 -44
- package/quills/cmu_letter/0.1.0/.quillignore +30 -30
- package/quills/cmu_letter/0.1.0/Quill.yaml +64 -64
- package/quills/cmu_letter/0.1.0/assets/cmu-wordmark.svg +174 -174
- package/quills/cmu_letter/0.1.0/example.md +30 -30
- package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/LICENSE +21 -21
- package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/fonts/README.txt +100 -100
- package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/src/backmatter.typ +13 -13
- package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/src/config.typ +39 -39
- package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/src/frontmatter.typ +72 -72
- package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/src/lib.typ +47 -47
- package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/src/mainmatter.typ +42 -42
- package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/src/primitives.typ +70 -70
- package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/src/utils.typ +85 -85
- package/quills/cmu_letter/0.1.0/packages/tonguetoquill-cmu-letter/typst.toml +17 -17
- package/quills/cmu_letter/0.1.0/plate.typ +19 -19
- package/quills/daf4392/0.1.0/Quill.yaml +110 -0
- package/quills/daf4392/0.1.0/assets/arimo-v35-latin-700.ttf +0 -0
- package/quills/daf4392/0.1.0/assets/arimo-v35-latin-700italic.ttf +0 -0
- package/quills/daf4392/0.1.0/assets/arimo-v35-latin-italic.ttf +0 -0
- package/quills/daf4392/0.1.0/assets/arimo-v35-latin-regular.ttf +0 -0
- package/quills/daf4392/0.1.0/assets/page1.png +0 -0
- package/quills/daf4392/0.1.0/example.md +33 -0
- package/quills/daf4392/0.1.0/packages/daf4392page2_pkg/FIELDS.json +9 -0
- package/quills/daf4392/0.1.0/packages/daf4392page2_pkg/form.typ +14 -0
- package/quills/daf4392/0.1.0/packages/daf4392page2_pkg/lib.typ +227 -0
- package/quills/daf4392/0.1.0/packages/daf4392page2_pkg/out/debug.typ +4 -0
- package/quills/daf4392/0.1.0/packages/daf4392page2_pkg/out/example.typ +4 -0
- package/quills/daf4392/0.1.0/packages/daf4392page2_pkg/page1.png +0 -0
- package/quills/daf4392/0.1.0/packages/daf4392page2_pkg/typst.toml +7 -0
- package/quills/daf4392/0.1.0/plate.typ +60 -0
- package/quills/taro/0.1.0/Quill.yaml +29 -29
- package/quills/taro/0.1.0/example.md +26 -26
- package/quills/taro/0.1.0/plate.typ +31 -31
- package/quills/usaf_memo/0.1.0/.quillignore +30 -30
- package/quills/usaf_memo/0.1.0/Quill.yaml +209 -209
- package/quills/usaf_memo/0.1.0/example.md +54 -54
- package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/LICENSE +21 -21
- package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/fonts/Cinzel/LICENSE +93 -93
- package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/fonts/CopperplateCC/LICENSE.md +79 -79
- package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/fonts/NimbusRomanNo9L/GNU General Public License.txt +339 -339
- package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/src/backmatter.typ +28 -28
- package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/src/body.typ +332 -332
- package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/src/config.typ +63 -63
- package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/src/frontmatter.typ +114 -114
- package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/src/indorsement.typ +118 -118
- package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/src/lib.typ +55 -55
- package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/src/mainmatter.typ +32 -32
- package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/src/primitives.typ +272 -272
- package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/src/utils.typ +377 -377
- package/quills/usaf_memo/0.1.0/packages/tonguetoquill-usaf-memo/typst.toml +16 -16
- package/quills/usaf_memo/0.1.0/plate.typ +74 -74
- package/quills/usaf_memo/0.2.0/.quillignore +30 -30
- package/quills/usaf_memo/0.2.0/Quill.yaml +219 -219
- package/quills/usaf_memo/0.2.0/example.md +55 -55
- package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/.gitignore +6 -6
- package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/LICENSE +21 -21
- package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/fonts/Cinzel/LICENSE +93 -93
- package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/fonts/CopperplateCC/LICENSE.md +79 -79
- package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/fonts/NimbusRomanNo9L/GNU General Public License.txt +339 -339
- package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/backmatter.typ +28 -28
- package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/body.typ +333 -333
- package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/config.typ +64 -64
- package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/frontmatter.typ +114 -114
- package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/indorsement.typ +118 -118
- package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/lib.typ +55 -55
- package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/mainmatter.typ +32 -32
- package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/primitives.typ +293 -293
- package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/src/utils.typ +374 -374
- package/quills/usaf_memo/0.2.0/packages/tonguetoquill-usaf-memo/typst.toml +27 -27
- package/quills/usaf_memo/0.2.0/plate.typ +75 -75
- package/templates/af4141.md +88 -88
- package/templates/cmu_letter_template.md +37 -37
- package/templates/daf4392.md +33 -0
- package/templates/loc.md +78 -78
- package/templates/pass_request.md +43 -43
- package/templates/rebuttal.md +55 -55
- package/templates/taro.md +26 -26
- package/templates/templates.json +55 -49
- package/templates/usaf_template.md +23 -23
- package/templates/ussf_template.md +29 -29
|
@@ -1,100 +1,100 @@
|
|
|
1
|
-
Open Sans Variable Font
|
|
2
|
-
=======================
|
|
3
|
-
|
|
4
|
-
This download contains Open Sans as both variable fonts and static fonts.
|
|
5
|
-
|
|
6
|
-
Open Sans is a variable font with these axes:
|
|
7
|
-
wdth
|
|
8
|
-
wght
|
|
9
|
-
|
|
10
|
-
This means all the styles are contained in these files:
|
|
11
|
-
OpenSans-VariableFont_wdth,wght.ttf
|
|
12
|
-
OpenSans-Italic-VariableFont_wdth,wght.ttf
|
|
13
|
-
|
|
14
|
-
If your app fully supports variable fonts, you can now pick intermediate styles
|
|
15
|
-
that aren’t available as static fonts. Not all apps support variable fonts, and
|
|
16
|
-
in those cases you can use the static font files for Open Sans:
|
|
17
|
-
static/OpenSans_Condensed-Light.ttf
|
|
18
|
-
static/OpenSans_Condensed-Regular.ttf
|
|
19
|
-
static/OpenSans_Condensed-Medium.ttf
|
|
20
|
-
static/OpenSans_Condensed-SemiBold.ttf
|
|
21
|
-
static/OpenSans_Condensed-Bold.ttf
|
|
22
|
-
static/OpenSans_Condensed-ExtraBold.ttf
|
|
23
|
-
static/OpenSans_SemiCondensed-Light.ttf
|
|
24
|
-
static/OpenSans_SemiCondensed-Regular.ttf
|
|
25
|
-
static/OpenSans_SemiCondensed-Medium.ttf
|
|
26
|
-
static/OpenSans_SemiCondensed-SemiBold.ttf
|
|
27
|
-
static/OpenSans_SemiCondensed-Bold.ttf
|
|
28
|
-
static/OpenSans_SemiCondensed-ExtraBold.ttf
|
|
29
|
-
static/OpenSans-Light.ttf
|
|
30
|
-
static/OpenSans-Regular.ttf
|
|
31
|
-
static/OpenSans-Medium.ttf
|
|
32
|
-
static/OpenSans-SemiBold.ttf
|
|
33
|
-
static/OpenSans-Bold.ttf
|
|
34
|
-
static/OpenSans-ExtraBold.ttf
|
|
35
|
-
static/OpenSans_Condensed-LightItalic.ttf
|
|
36
|
-
static/OpenSans_Condensed-Italic.ttf
|
|
37
|
-
static/OpenSans_Condensed-MediumItalic.ttf
|
|
38
|
-
static/OpenSans_Condensed-SemiBoldItalic.ttf
|
|
39
|
-
static/OpenSans_Condensed-BoldItalic.ttf
|
|
40
|
-
static/OpenSans_Condensed-ExtraBoldItalic.ttf
|
|
41
|
-
static/OpenSans_SemiCondensed-LightItalic.ttf
|
|
42
|
-
static/OpenSans_SemiCondensed-Italic.ttf
|
|
43
|
-
static/OpenSans_SemiCondensed-MediumItalic.ttf
|
|
44
|
-
static/OpenSans_SemiCondensed-SemiBoldItalic.ttf
|
|
45
|
-
static/OpenSans_SemiCondensed-BoldItalic.ttf
|
|
46
|
-
static/OpenSans_SemiCondensed-ExtraBoldItalic.ttf
|
|
47
|
-
static/OpenSans-LightItalic.ttf
|
|
48
|
-
static/OpenSans-Italic.ttf
|
|
49
|
-
static/OpenSans-MediumItalic.ttf
|
|
50
|
-
static/OpenSans-SemiBoldItalic.ttf
|
|
51
|
-
static/OpenSans-BoldItalic.ttf
|
|
52
|
-
static/OpenSans-ExtraBoldItalic.ttf
|
|
53
|
-
|
|
54
|
-
Get started
|
|
55
|
-
-----------
|
|
56
|
-
|
|
57
|
-
1. Install the font files you want to use
|
|
58
|
-
|
|
59
|
-
2. Use your app's font picker to view the font family and all the
|
|
60
|
-
available styles
|
|
61
|
-
|
|
62
|
-
Learn more about variable fonts
|
|
63
|
-
-------------------------------
|
|
64
|
-
|
|
65
|
-
https://developers.google.com/web/fundamentals/design-and-ux/typography/variable-fonts
|
|
66
|
-
https://variablefonts.typenetwork.com
|
|
67
|
-
https://medium.com/variable-fonts
|
|
68
|
-
|
|
69
|
-
In desktop apps
|
|
70
|
-
|
|
71
|
-
https://theblog.adobe.com/can-variable-fonts-illustrator-cc
|
|
72
|
-
https://helpx.adobe.com/nz/photoshop/using/fonts.html#variable_fonts
|
|
73
|
-
|
|
74
|
-
Online
|
|
75
|
-
|
|
76
|
-
https://developers.google.com/fonts/docs/getting_started
|
|
77
|
-
https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide
|
|
78
|
-
https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/variable-fonts
|
|
79
|
-
|
|
80
|
-
Installing fonts
|
|
81
|
-
|
|
82
|
-
MacOS: https://support.apple.com/en-us/HT201749
|
|
83
|
-
Linux: https://www.google.com/search?q=how+to+install+a+font+on+gnu%2Blinux
|
|
84
|
-
Windows: https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows
|
|
85
|
-
|
|
86
|
-
Android Apps
|
|
87
|
-
|
|
88
|
-
https://developers.google.com/fonts/docs/android
|
|
89
|
-
https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts
|
|
90
|
-
|
|
91
|
-
License
|
|
92
|
-
-------
|
|
93
|
-
Please read the full license text (OFL.txt) to understand the permissions,
|
|
94
|
-
restrictions and requirements for usage, redistribution, and modification.
|
|
95
|
-
|
|
96
|
-
You can use them in your products & projects – print or digital,
|
|
97
|
-
commercial or otherwise.
|
|
98
|
-
|
|
99
|
-
This isn't legal advice, please consider consulting a lawyer and see the full
|
|
100
|
-
license for all details.
|
|
1
|
+
Open Sans Variable Font
|
|
2
|
+
=======================
|
|
3
|
+
|
|
4
|
+
This download contains Open Sans as both variable fonts and static fonts.
|
|
5
|
+
|
|
6
|
+
Open Sans is a variable font with these axes:
|
|
7
|
+
wdth
|
|
8
|
+
wght
|
|
9
|
+
|
|
10
|
+
This means all the styles are contained in these files:
|
|
11
|
+
OpenSans-VariableFont_wdth,wght.ttf
|
|
12
|
+
OpenSans-Italic-VariableFont_wdth,wght.ttf
|
|
13
|
+
|
|
14
|
+
If your app fully supports variable fonts, you can now pick intermediate styles
|
|
15
|
+
that aren’t available as static fonts. Not all apps support variable fonts, and
|
|
16
|
+
in those cases you can use the static font files for Open Sans:
|
|
17
|
+
static/OpenSans_Condensed-Light.ttf
|
|
18
|
+
static/OpenSans_Condensed-Regular.ttf
|
|
19
|
+
static/OpenSans_Condensed-Medium.ttf
|
|
20
|
+
static/OpenSans_Condensed-SemiBold.ttf
|
|
21
|
+
static/OpenSans_Condensed-Bold.ttf
|
|
22
|
+
static/OpenSans_Condensed-ExtraBold.ttf
|
|
23
|
+
static/OpenSans_SemiCondensed-Light.ttf
|
|
24
|
+
static/OpenSans_SemiCondensed-Regular.ttf
|
|
25
|
+
static/OpenSans_SemiCondensed-Medium.ttf
|
|
26
|
+
static/OpenSans_SemiCondensed-SemiBold.ttf
|
|
27
|
+
static/OpenSans_SemiCondensed-Bold.ttf
|
|
28
|
+
static/OpenSans_SemiCondensed-ExtraBold.ttf
|
|
29
|
+
static/OpenSans-Light.ttf
|
|
30
|
+
static/OpenSans-Regular.ttf
|
|
31
|
+
static/OpenSans-Medium.ttf
|
|
32
|
+
static/OpenSans-SemiBold.ttf
|
|
33
|
+
static/OpenSans-Bold.ttf
|
|
34
|
+
static/OpenSans-ExtraBold.ttf
|
|
35
|
+
static/OpenSans_Condensed-LightItalic.ttf
|
|
36
|
+
static/OpenSans_Condensed-Italic.ttf
|
|
37
|
+
static/OpenSans_Condensed-MediumItalic.ttf
|
|
38
|
+
static/OpenSans_Condensed-SemiBoldItalic.ttf
|
|
39
|
+
static/OpenSans_Condensed-BoldItalic.ttf
|
|
40
|
+
static/OpenSans_Condensed-ExtraBoldItalic.ttf
|
|
41
|
+
static/OpenSans_SemiCondensed-LightItalic.ttf
|
|
42
|
+
static/OpenSans_SemiCondensed-Italic.ttf
|
|
43
|
+
static/OpenSans_SemiCondensed-MediumItalic.ttf
|
|
44
|
+
static/OpenSans_SemiCondensed-SemiBoldItalic.ttf
|
|
45
|
+
static/OpenSans_SemiCondensed-BoldItalic.ttf
|
|
46
|
+
static/OpenSans_SemiCondensed-ExtraBoldItalic.ttf
|
|
47
|
+
static/OpenSans-LightItalic.ttf
|
|
48
|
+
static/OpenSans-Italic.ttf
|
|
49
|
+
static/OpenSans-MediumItalic.ttf
|
|
50
|
+
static/OpenSans-SemiBoldItalic.ttf
|
|
51
|
+
static/OpenSans-BoldItalic.ttf
|
|
52
|
+
static/OpenSans-ExtraBoldItalic.ttf
|
|
53
|
+
|
|
54
|
+
Get started
|
|
55
|
+
-----------
|
|
56
|
+
|
|
57
|
+
1. Install the font files you want to use
|
|
58
|
+
|
|
59
|
+
2. Use your app's font picker to view the font family and all the
|
|
60
|
+
available styles
|
|
61
|
+
|
|
62
|
+
Learn more about variable fonts
|
|
63
|
+
-------------------------------
|
|
64
|
+
|
|
65
|
+
https://developers.google.com/web/fundamentals/design-and-ux/typography/variable-fonts
|
|
66
|
+
https://variablefonts.typenetwork.com
|
|
67
|
+
https://medium.com/variable-fonts
|
|
68
|
+
|
|
69
|
+
In desktop apps
|
|
70
|
+
|
|
71
|
+
https://theblog.adobe.com/can-variable-fonts-illustrator-cc
|
|
72
|
+
https://helpx.adobe.com/nz/photoshop/using/fonts.html#variable_fonts
|
|
73
|
+
|
|
74
|
+
Online
|
|
75
|
+
|
|
76
|
+
https://developers.google.com/fonts/docs/getting_started
|
|
77
|
+
https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide
|
|
78
|
+
https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/variable-fonts
|
|
79
|
+
|
|
80
|
+
Installing fonts
|
|
81
|
+
|
|
82
|
+
MacOS: https://support.apple.com/en-us/HT201749
|
|
83
|
+
Linux: https://www.google.com/search?q=how+to+install+a+font+on+gnu%2Blinux
|
|
84
|
+
Windows: https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows
|
|
85
|
+
|
|
86
|
+
Android Apps
|
|
87
|
+
|
|
88
|
+
https://developers.google.com/fonts/docs/android
|
|
89
|
+
https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts
|
|
90
|
+
|
|
91
|
+
License
|
|
92
|
+
-------
|
|
93
|
+
Please read the full license text (OFL.txt) to understand the permissions,
|
|
94
|
+
restrictions and requirements for usage, redistribution, and modification.
|
|
95
|
+
|
|
96
|
+
You can use them in your products & projects – print or digital,
|
|
97
|
+
commercial or otherwise.
|
|
98
|
+
|
|
99
|
+
This isn't legal advice, please consider consulting a lawyer and see the full
|
|
100
|
+
license for all details.
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
// backmatter.typ: Backmatter rendering for CMU letter closing
|
|
2
|
-
//
|
|
3
|
-
// This module implements the closing section of a CMU letter per guidelines:
|
|
4
|
-
// - Signature block styling
|
|
5
|
-
|
|
6
|
-
#import "config.typ": *
|
|
7
|
-
#import "utils.typ": *
|
|
8
|
-
|
|
9
|
-
#let backmatter(
|
|
10
|
-
signature_block: none) = {
|
|
11
|
-
blank-lines(4)
|
|
12
|
-
block(spacing: .7em,breakable: false, ensure-string(signature_block))
|
|
13
|
-
}
|
|
1
|
+
// backmatter.typ: Backmatter rendering for CMU letter closing
|
|
2
|
+
//
|
|
3
|
+
// This module implements the closing section of a CMU letter per guidelines:
|
|
4
|
+
// - Signature block styling
|
|
5
|
+
|
|
6
|
+
#import "config.typ": *
|
|
7
|
+
#import "utils.typ": *
|
|
8
|
+
|
|
9
|
+
#let backmatter(
|
|
10
|
+
signature_block: none) = {
|
|
11
|
+
blank-lines(4)
|
|
12
|
+
block(spacing: .7em,breakable: false, ensure-string(signature_block))
|
|
13
|
+
}
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
// config.typ: Configuration constants and defaults for CMU letterhead template
|
|
2
|
-
//
|
|
3
|
-
// This module defines core configuration values that implement Carnegie Mellon
|
|
4
|
-
// University letterhead standards as specified in the official guidelines.
|
|
5
|
-
|
|
6
|
-
// =============================================================================
|
|
7
|
-
// COLOR PALETTE
|
|
8
|
-
// =============================================================================
|
|
9
|
-
// CMU Brand Colors per guidelines section 3.3
|
|
10
|
-
|
|
11
|
-
#let CMU_RED = rgb("#C41230") // Carnegie Red - restricted to wordmark/logo
|
|
12
|
-
#let CMU_DARK_GREY = rgb("#333333") // Dark Grey - for body text option
|
|
13
|
-
#let CMU_IRON_GRAY = rgb("#6D6E71") // Iron Gray - for secondary text
|
|
14
|
-
#let CMU_BLACK = rgb("#000000") // Black - standard for body correspondence
|
|
15
|
-
|
|
16
|
-
// =============================================================================
|
|
17
|
-
// TYPOGRAPHY DEFAULTS
|
|
18
|
-
// =============================================================================
|
|
19
|
-
// Guidelines section 3.1: Primary typeface is Open Sans
|
|
20
|
-
// Serif fonts are strictly prohibited.
|
|
21
|
-
|
|
22
|
-
#let DEFAULT_BODY_FONTS = ("Open Sans")
|
|
23
|
-
#let DEFAULT_SERIF_FONTS = () // Serif fonts prohibited
|
|
24
|
-
|
|
25
|
-
// Font sizes per guidelines: 10pt or 11pt for body text
|
|
26
|
-
#let DEFAULT_FONT_SIZE = 11pt
|
|
27
|
-
|
|
28
|
-
// =============================================================================
|
|
29
|
-
// PAGE GEOMETRY
|
|
30
|
-
// =============================================================================
|
|
31
|
-
// Guidelines section 2.1: Canvas Specifications
|
|
32
|
-
// - Paper Size: US Letter
|
|
33
|
-
// - Margins: 1.0 inch on all sides
|
|
34
|
-
|
|
35
|
-
#let MARGINS = (
|
|
36
|
-
left: 1in,
|
|
37
|
-
right: 1in,
|
|
38
|
-
top: 0.75in,
|
|
39
|
-
bottom: 0.751in,
|
|
1
|
+
// config.typ: Configuration constants and defaults for CMU letterhead template
|
|
2
|
+
//
|
|
3
|
+
// This module defines core configuration values that implement Carnegie Mellon
|
|
4
|
+
// University letterhead standards as specified in the official guidelines.
|
|
5
|
+
|
|
6
|
+
// =============================================================================
|
|
7
|
+
// COLOR PALETTE
|
|
8
|
+
// =============================================================================
|
|
9
|
+
// CMU Brand Colors per guidelines section 3.3
|
|
10
|
+
|
|
11
|
+
#let CMU_RED = rgb("#C41230") // Carnegie Red - restricted to wordmark/logo
|
|
12
|
+
#let CMU_DARK_GREY = rgb("#333333") // Dark Grey - for body text option
|
|
13
|
+
#let CMU_IRON_GRAY = rgb("#6D6E71") // Iron Gray - for secondary text
|
|
14
|
+
#let CMU_BLACK = rgb("#000000") // Black - standard for body correspondence
|
|
15
|
+
|
|
16
|
+
// =============================================================================
|
|
17
|
+
// TYPOGRAPHY DEFAULTS
|
|
18
|
+
// =============================================================================
|
|
19
|
+
// Guidelines section 3.1: Primary typeface is Open Sans
|
|
20
|
+
// Serif fonts are strictly prohibited.
|
|
21
|
+
|
|
22
|
+
#let DEFAULT_BODY_FONTS = ("Open Sans")
|
|
23
|
+
#let DEFAULT_SERIF_FONTS = () // Serif fonts prohibited
|
|
24
|
+
|
|
25
|
+
// Font sizes per guidelines: 10pt or 11pt for body text
|
|
26
|
+
#let DEFAULT_FONT_SIZE = 11pt
|
|
27
|
+
|
|
28
|
+
// =============================================================================
|
|
29
|
+
// PAGE GEOMETRY
|
|
30
|
+
// =============================================================================
|
|
31
|
+
// Guidelines section 2.1: Canvas Specifications
|
|
32
|
+
// - Paper Size: US Letter
|
|
33
|
+
// - Margins: 1.0 inch on all sides
|
|
34
|
+
|
|
35
|
+
#let MARGINS = (
|
|
36
|
+
left: 1in,
|
|
37
|
+
right: 1in,
|
|
38
|
+
top: 0.75in,
|
|
39
|
+
bottom: 0.751in,
|
|
40
40
|
)
|
|
@@ -1,72 +1,72 @@
|
|
|
1
|
-
// frontmatter.typ: Frontmatter show rule for CMU letterhead
|
|
2
|
-
//
|
|
3
|
-
// This module implements the frontmatter (heading section) of a CMU letter
|
|
4
|
-
// per the official letterhead guidelines. It handles:
|
|
5
|
-
// - Page setup with proper margins
|
|
6
|
-
// - Header rendering (logo, department, address, URL)
|
|
7
|
-
// - Date, recipient, and salutation placement
|
|
8
|
-
|
|
9
|
-
#import "config.typ": *
|
|
10
|
-
#import "primitives.typ": *
|
|
11
|
-
#import "utils.typ": *
|
|
12
|
-
|
|
13
|
-
#let frontmatter(
|
|
14
|
-
// Header content
|
|
15
|
-
wordmark: none,
|
|
16
|
-
department: none,
|
|
17
|
-
address: none,
|
|
18
|
-
url: none,
|
|
19
|
-
|
|
20
|
-
// Letter metadata
|
|
21
|
-
date: none,
|
|
22
|
-
recipient: none,
|
|
23
|
-
|
|
24
|
-
// Typography options
|
|
25
|
-
body_font: DEFAULT_BODY_FONTS,
|
|
26
|
-
font_size: DEFAULT_FONT_SIZE,
|
|
27
|
-
|
|
28
|
-
it
|
|
29
|
-
) = {
|
|
30
|
-
let actual_date = if date == none { datetime.today() } else { date }
|
|
31
|
-
|
|
32
|
-
set page(
|
|
33
|
-
paper: "us-letter",
|
|
34
|
-
// Standard 1" margins for vertical flow layout
|
|
35
|
-
margin: MARGINS,
|
|
36
|
-
)
|
|
37
|
-
|
|
38
|
-
set text(
|
|
39
|
-
font: DEFAULT_BODY_FONTS,
|
|
40
|
-
size: font_size,
|
|
41
|
-
)
|
|
42
|
-
|
|
43
|
-
set par(
|
|
44
|
-
spacing: .7em,
|
|
45
|
-
justify: false
|
|
46
|
-
)
|
|
47
|
-
|
|
48
|
-
// Render the header (in normal document flow)
|
|
49
|
-
render-header(
|
|
50
|
-
wordmark,
|
|
51
|
-
department: department,
|
|
52
|
-
address: address,
|
|
53
|
-
url: url,
|
|
54
|
-
)
|
|
55
|
-
|
|
56
|
-
blank-lines(3)
|
|
57
|
-
|
|
58
|
-
// Date and recipient in same paragraph to avoid extra spacing
|
|
59
|
-
[#display-date(actual_date)
|
|
60
|
-
#linebreak()
|
|
61
|
-
#ensure-string(recipient)
|
|
62
|
-
]
|
|
63
|
-
|
|
64
|
-
// Store metadata for downstream sections
|
|
65
|
-
metadata((
|
|
66
|
-
date: actual_date,
|
|
67
|
-
body_font: body_font,
|
|
68
|
-
font_size: font_size,
|
|
69
|
-
))
|
|
70
|
-
|
|
71
|
-
it
|
|
72
|
-
}
|
|
1
|
+
// frontmatter.typ: Frontmatter show rule for CMU letterhead
|
|
2
|
+
//
|
|
3
|
+
// This module implements the frontmatter (heading section) of a CMU letter
|
|
4
|
+
// per the official letterhead guidelines. It handles:
|
|
5
|
+
// - Page setup with proper margins
|
|
6
|
+
// - Header rendering (logo, department, address, URL)
|
|
7
|
+
// - Date, recipient, and salutation placement
|
|
8
|
+
|
|
9
|
+
#import "config.typ": *
|
|
10
|
+
#import "primitives.typ": *
|
|
11
|
+
#import "utils.typ": *
|
|
12
|
+
|
|
13
|
+
#let frontmatter(
|
|
14
|
+
// Header content
|
|
15
|
+
wordmark: none,
|
|
16
|
+
department: none,
|
|
17
|
+
address: none,
|
|
18
|
+
url: none,
|
|
19
|
+
|
|
20
|
+
// Letter metadata
|
|
21
|
+
date: none,
|
|
22
|
+
recipient: none,
|
|
23
|
+
|
|
24
|
+
// Typography options
|
|
25
|
+
body_font: DEFAULT_BODY_FONTS,
|
|
26
|
+
font_size: DEFAULT_FONT_SIZE,
|
|
27
|
+
|
|
28
|
+
it
|
|
29
|
+
) = {
|
|
30
|
+
let actual_date = if date == none { datetime.today() } else { date }
|
|
31
|
+
|
|
32
|
+
set page(
|
|
33
|
+
paper: "us-letter",
|
|
34
|
+
// Standard 1" margins for vertical flow layout
|
|
35
|
+
margin: MARGINS,
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
set text(
|
|
39
|
+
font: DEFAULT_BODY_FONTS,
|
|
40
|
+
size: font_size,
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
set par(
|
|
44
|
+
spacing: .7em,
|
|
45
|
+
justify: false
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
// Render the header (in normal document flow)
|
|
49
|
+
render-header(
|
|
50
|
+
wordmark,
|
|
51
|
+
department: department,
|
|
52
|
+
address: address,
|
|
53
|
+
url: url,
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
blank-lines(3)
|
|
57
|
+
|
|
58
|
+
// Date and recipient in same paragraph to avoid extra spacing
|
|
59
|
+
[#display-date(actual_date)
|
|
60
|
+
#linebreak()
|
|
61
|
+
#ensure-string(recipient)
|
|
62
|
+
]
|
|
63
|
+
|
|
64
|
+
// Store metadata for downstream sections
|
|
65
|
+
metadata((
|
|
66
|
+
date: actual_date,
|
|
67
|
+
body_font: body_font,
|
|
68
|
+
font_size: font_size,
|
|
69
|
+
))
|
|
70
|
+
|
|
71
|
+
it
|
|
72
|
+
}
|
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
// lib.typ: Public API for CMU letterhead template
|
|
2
|
-
//
|
|
3
|
-
// This module provides a composable API for creating Carnegie Mellon University
|
|
4
|
-
// letters that comply with the official letterhead standards.
|
|
5
|
-
//
|
|
6
|
-
// CMU Letterhead Guidelines specify:
|
|
7
|
-
// - "Lefthead" layout with 2.25" left margin for branding column
|
|
8
|
-
// - Open Sans font at 10-11pt for body text
|
|
9
|
-
// - Block style paragraphs with no indentation
|
|
10
|
-
// - Flush left / ragged right alignment
|
|
11
|
-
// - Carnegie Red (#C41230) restricted to wordmark only
|
|
12
|
-
// - Iron Gray (#6D6E71) for secondary text
|
|
13
|
-
//
|
|
14
|
-
// Key features:
|
|
15
|
-
// - Composable show rules for frontmatter and mainmatter
|
|
16
|
-
// - Function-based backmatter for closing section
|
|
17
|
-
// - CMU-compliant "Lefthead" layout with branding column
|
|
18
|
-
// - Proper typography and spacing throughout
|
|
19
|
-
//
|
|
20
|
-
// Basic usage:
|
|
21
|
-
//
|
|
22
|
-
// #import "@preview/tonguetoquill-cmu-letter:0.1.0": frontmatter, mainmatter, backmatter
|
|
23
|
-
//
|
|
24
|
-
// #show: frontmatter.with(
|
|
25
|
-
// wordmark: image("assets/cmu-wordmark.svg"),
|
|
26
|
-
// department: "School of Computer Science",
|
|
27
|
-
// address: ("5000 Forbes Avenue", "Pittsburgh, PA 15213"),
|
|
28
|
-
// url: "cs.cmu.edu",
|
|
29
|
-
// date: datetime.today(),
|
|
30
|
-
// recipient: ("Dr. Jane Smith", "Department of Engineering", "University of Example", "123 Main Street", "City, ST 12345"),
|
|
31
|
-
// )
|
|
32
|
-
//
|
|
33
|
-
// #show: mainmatter
|
|
34
|
-
//
|
|
35
|
-
// Dear Dr. Smith,
|
|
36
|
-
//
|
|
37
|
-
// Your letter body content here.
|
|
38
|
-
//
|
|
39
|
-
// #backmatter(
|
|
40
|
-
// closing: "Sincerely,",
|
|
41
|
-
// sender_name: "John Doe",
|
|
42
|
-
// sender_title: "Associate Professor",
|
|
43
|
-
// )
|
|
44
|
-
|
|
45
|
-
#import "frontmatter.typ": frontmatter
|
|
46
|
-
#import "mainmatter.typ": mainmatter
|
|
47
|
-
#import "backmatter.typ": backmatter
|
|
1
|
+
// lib.typ: Public API for CMU letterhead template
|
|
2
|
+
//
|
|
3
|
+
// This module provides a composable API for creating Carnegie Mellon University
|
|
4
|
+
// letters that comply with the official letterhead standards.
|
|
5
|
+
//
|
|
6
|
+
// CMU Letterhead Guidelines specify:
|
|
7
|
+
// - "Lefthead" layout with 2.25" left margin for branding column
|
|
8
|
+
// - Open Sans font at 10-11pt for body text
|
|
9
|
+
// - Block style paragraphs with no indentation
|
|
10
|
+
// - Flush left / ragged right alignment
|
|
11
|
+
// - Carnegie Red (#C41230) restricted to wordmark only
|
|
12
|
+
// - Iron Gray (#6D6E71) for secondary text
|
|
13
|
+
//
|
|
14
|
+
// Key features:
|
|
15
|
+
// - Composable show rules for frontmatter and mainmatter
|
|
16
|
+
// - Function-based backmatter for closing section
|
|
17
|
+
// - CMU-compliant "Lefthead" layout with branding column
|
|
18
|
+
// - Proper typography and spacing throughout
|
|
19
|
+
//
|
|
20
|
+
// Basic usage:
|
|
21
|
+
//
|
|
22
|
+
// #import "@preview/tonguetoquill-cmu-letter:0.1.0": frontmatter, mainmatter, backmatter
|
|
23
|
+
//
|
|
24
|
+
// #show: frontmatter.with(
|
|
25
|
+
// wordmark: image("assets/cmu-wordmark.svg"),
|
|
26
|
+
// department: "School of Computer Science",
|
|
27
|
+
// address: ("5000 Forbes Avenue", "Pittsburgh, PA 15213"),
|
|
28
|
+
// url: "cs.cmu.edu",
|
|
29
|
+
// date: datetime.today(),
|
|
30
|
+
// recipient: ("Dr. Jane Smith", "Department of Engineering", "University of Example", "123 Main Street", "City, ST 12345"),
|
|
31
|
+
// )
|
|
32
|
+
//
|
|
33
|
+
// #show: mainmatter
|
|
34
|
+
//
|
|
35
|
+
// Dear Dr. Smith,
|
|
36
|
+
//
|
|
37
|
+
// Your letter body content here.
|
|
38
|
+
//
|
|
39
|
+
// #backmatter(
|
|
40
|
+
// closing: "Sincerely,",
|
|
41
|
+
// sender_name: "John Doe",
|
|
42
|
+
// sender_title: "Associate Professor",
|
|
43
|
+
// )
|
|
44
|
+
|
|
45
|
+
#import "frontmatter.typ": frontmatter
|
|
46
|
+
#import "mainmatter.typ": mainmatter
|
|
47
|
+
#import "backmatter.typ": backmatter
|
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
// mainmatter.typ: Mainmatter show rule for CMU letter body
|
|
2
|
-
//
|
|
3
|
-
// This module implements the body text section of a CMU letter per guidelines:
|
|
4
|
-
// - Block style paragraphs (no indentation)
|
|
5
|
-
// - Single line spacing (1.0 to 1.15)
|
|
6
|
-
// - Default paragraph spacing
|
|
7
|
-
// - Flush left / ragged right alignment
|
|
8
|
-
|
|
9
|
-
#import "config.typ": *
|
|
10
|
-
#import "utils.typ": *
|
|
11
|
-
|
|
12
|
-
/// Mainmatter show rule for CMU letter body content.
|
|
13
|
-
///
|
|
14
|
-
/// Guidelines section 3.1:
|
|
15
|
-
/// - Format: Block Style
|
|
16
|
-
/// - Indentation: None
|
|
17
|
-
/// - Spacing: Single line spacing (1.0 to 1.15)
|
|
18
|
-
/// - Separation: Default paragraph spacing
|
|
19
|
-
///
|
|
20
|
-
/// - content (content): The body content to render
|
|
21
|
-
/// -> content
|
|
22
|
-
#let mainmatter(it) = {
|
|
23
|
-
blank-lines(3)
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
// Set list styling with bigger bullet aligned to the left
|
|
27
|
-
set list(
|
|
28
|
-
indent: 0em,
|
|
29
|
-
body-indent: 1em,
|
|
30
|
-
marker: text(size: 1.2em)[•]
|
|
31
|
-
)
|
|
32
|
-
set enum(indent: 0em, body-indent: 1em)
|
|
33
|
-
|
|
34
|
-
block()[
|
|
35
|
-
#set par(
|
|
36
|
-
first-line-indent: 0pt,
|
|
37
|
-
justify: false,
|
|
38
|
-
spacing: 2em
|
|
39
|
-
)
|
|
40
|
-
#it
|
|
41
|
-
]
|
|
42
|
-
}
|
|
1
|
+
// mainmatter.typ: Mainmatter show rule for CMU letter body
|
|
2
|
+
//
|
|
3
|
+
// This module implements the body text section of a CMU letter per guidelines:
|
|
4
|
+
// - Block style paragraphs (no indentation)
|
|
5
|
+
// - Single line spacing (1.0 to 1.15)
|
|
6
|
+
// - Default paragraph spacing
|
|
7
|
+
// - Flush left / ragged right alignment
|
|
8
|
+
|
|
9
|
+
#import "config.typ": *
|
|
10
|
+
#import "utils.typ": *
|
|
11
|
+
|
|
12
|
+
/// Mainmatter show rule for CMU letter body content.
|
|
13
|
+
///
|
|
14
|
+
/// Guidelines section 3.1:
|
|
15
|
+
/// - Format: Block Style
|
|
16
|
+
/// - Indentation: None
|
|
17
|
+
/// - Spacing: Single line spacing (1.0 to 1.15)
|
|
18
|
+
/// - Separation: Default paragraph spacing
|
|
19
|
+
///
|
|
20
|
+
/// - content (content): The body content to render
|
|
21
|
+
/// -> content
|
|
22
|
+
#let mainmatter(it) = {
|
|
23
|
+
blank-lines(3)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
// Set list styling with bigger bullet aligned to the left
|
|
27
|
+
set list(
|
|
28
|
+
indent: 0em,
|
|
29
|
+
body-indent: 1em,
|
|
30
|
+
marker: text(size: 1.2em)[•]
|
|
31
|
+
)
|
|
32
|
+
set enum(indent: 0em, body-indent: 1em)
|
|
33
|
+
|
|
34
|
+
block()[
|
|
35
|
+
#set par(
|
|
36
|
+
first-line-indent: 0pt,
|
|
37
|
+
justify: false,
|
|
38
|
+
spacing: 2em
|
|
39
|
+
)
|
|
40
|
+
#it
|
|
41
|
+
]
|
|
42
|
+
}
|