Skip to content

Commit 52e4045

Browse files
committed
update core template and introduce TCG Ipsum
1 parent af7983a commit 52e4045

File tree

3 files changed

+162
-94
lines changed

3 files changed

+162
-94
lines changed

template/tcg.png

12 KB
Loading

template/tcgcore.typ

Lines changed: 89 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
pre = "Start of " + pre
1313
}
1414

15+
v(2pt)
1516
box(
1617
strong(pre) + v(-2pt) + content + if post != none { v(-2pt) + strong(post) },
1718
width: 100%,
@@ -25,32 +26,36 @@
2526

2627
#let conf(
2728
title: none,
28-
authors: (),
29-
abstract: [],
29+
subtitle: none,
30+
doctype: none,
31+
status: none,
32+
version: none,
33+
date: none,
34+
year: none,
3035
doc,
31-
) = {
36+
) = context {
3237
//
3338
// Font settings
3439
//
3540
// Normal text
3641
set text(
3742
font: "Manuale",
38-
size: 9pt,
43+
size: 10pt,
3944
)
4045
// Math
4146
show math.equation: set text(
42-
font: "Inter",
43-
size: 9pt,
47+
font: "Fira Math",
48+
size: 10pt,
4449
)
4550
// Code
4651
show raw: set text(
4752
font: "Fira Code",
48-
size: 9pt,
53+
size: 10pt,
4954
)
5055
// Headings
5156
set heading(numbering: "1.1")
5257
show heading: it => block()[
53-
#let size = 16pt - it.depth * 2pt
58+
#let size = 20pt - it.level * 3pt
5459
#if size < 10pt { size = 10pt }
5560
#set align(center)
5661
#set text(
@@ -82,123 +87,113 @@
8287

8388
show figure.where(kind: image): set figure.caption(position: bottom)
8489

85-
set align(center)
86-
text(17pt, title)
87-
88-
let count = authors.len()
89-
let ncols = calc.min(count, 3)
90-
grid(
91-
columns: (1fr,) * ncols,
92-
row-gutter: 24pt,
93-
..authors.map(author => [
94-
#author.name \
95-
#author.affiliation \
96-
#link("mailto:" + author.email)
97-
]),
98-
)
90+
//
91+
// Title page
92+
//
93+
set page(paper: "us-letter", margin: 1in)
94+
set align(left + top)
9995

100-
par(justify: false)[
101-
*Abstract* \
102-
#abstract
103-
]
96+
image("tcg.png", width: 30%)
10497

105-
set align(left)
98+
set align(left + bottom)
10699

107-
pagebreak()
100+
text(48pt, title, font: "Inter", weight: "extrabold")
101+
v(-30pt)
108102

109-
heading("Disclaimers, Notices, and License Terms", level: 1)
103+
if (subtitle != none) {
104+
text(32pt, subtitle, font: "Inter", weight: "medium")
105+
v(-20pt)
106+
}
110107

111-
heading("Copyright Licenses", level: 2)
108+
line(length: 100%, stroke: 2pt)
109+
v(-20pt)
112110

113-
[
114-
Trusted Computing Group (TCG) grants to the user of the source code in this
115-
specification (the \"Source Code\") a worldwide, irrevocable, nonexclusive,
116-
royalty free, copyright license to reproduce, create derivative works,
117-
distribute, display and perform the Source Code and derivative works
118-
thereof, and to grant others the rights granted herein.
119-
120-
The TCG grants to the user of the other parts of the specification (other
121-
than the Source Code) the rights to reproduce, distribute, display, and
122-
perform the specification solely for the purpose of developing products
123-
based on such documents.
124-
]
111+
text(32pt, doctype, font: "Inter", weight: "light")
112+
v(-16pt)
125113

126-
heading("Source Code Distribution Conditions", level: 2)
114+
text(24pt, status, font: "Inter", weight: "extralight")
115+
v(-12pt)
127116

128-
[
129-
Redistributions of Source Code must retain the above copyright licenses,
130-
this list of conditions and the following disclaimers.
117+
line(length: 100%, stroke: 2pt)
131118

132-
Redistributions in binary form must reproduce the above copyright licenses,
133-
this list of conditions and the following disclaimers in the documentation
134-
and/or other materials provided with the distribution.
135-
]
119+
v(-2pt)
120+
text(20pt, version, font: "Inter", weight: "light")
121+
v(-6pt)
122+
text(16pt, date, font: "Inter", weight: "light")
123+
v(-4pt)
124+
text(12pt, "Contact: " + link("mailto:[email protected]"), font: "Inter", weight: "extralight")
136125

137-
heading("Disclaimers", level: 2)
126+
//
127+
// Front matter
128+
//
129+
let foot = (
130+
line(length: 100%, stroke: 0.5pt)
131+
+ grid(
132+
align: (left, center, right),
133+
columns: (1in, 5.5in, 1in),
134+
rows: 0.5in,
135+
sym.copyright + " " + year + " TCG",
136+
title + if subtitle != none { " " + subtitle },
137+
context counter(page).display(
138+
"1",
139+
both: false,
140+
),
141+
)
142+
)
143+
set text(font: "Inter", weight: "light")
144+
set page(
145+
paper: "us-letter",
146+
margin: (bottom: 1in, rest: 0.5in),
147+
footer: foot,
148+
)
138149

139-
[
140-
THE COPYRIGHT LICENSES SET FORTH ABOVE DO NOT REPRESENT ANY FORM OF LICENSE
141-
OR WAIVER, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, WITH RESPECT TO
142-
PATENT RIGHTS HELD BY TCG MEMBERS (OR OTHER THIRD PARTIES) THAT MAY BE
143-
NECESSARY TO IMPLEMENT THIS SPECIFICATION OR OTHERWISE. Contact TCG
144-
Administration #link("mailto:[email protected]") for information on
145-
specification licensing rights available through TCG membership agreements.
146-
147-
THIS SPECIFICATION IS PROVIDED “AS IS” WITH NO EXPRESS OR IMPLIED WARRANTIES
148-
WHATSOEVER, INCLUDING ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A
149-
PARTICULAR PURPOSE, ACCURACY, COMPLETENESS, OR NONINFRINGEMENT OF
150-
INTELLECTUAL PROPERTY RIGHTS, OR ANY WARRANTY OTHERWISE ARISING OUT OF ANY
151-
PROPOSAL, SPECIFICATION OR SAMPLE.
152-
153-
Without limitation, TCG and its members and licensors disclaim all
154-
liability, including liability for infringement of any proprietary rights,
155-
relating to use of information in this specification and to the
156-
implementation of this specification, and TCG disclaims all liability for
157-
cost of procurement of substitute goods or services, lost profits, loss of
158-
use, loss of data or any incidental, consequential, direct, indirect, or
159-
special damages, whether under contract, tort, warranty or otherwise,
160-
arising in any way out of use or reliance upon this specification or any
161-
information herein.
162-
163-
Any marks and brands contained herein are the property of their respective
164-
owners.
165-
]
150+
set align(left + top)
151+
152+
set text(font: "Manuale", size: 10pt)
166153

167154
pagebreak()
168155

156+
heading("Disclaimers, Notices, and License Terms", level: 1, numbering: none, outlined: false)
169157

170-
heading("Document Style", level: 1)
158+
[
159+
THIS SPECIFICATION IS PROVIDED “AS IS” WITH NO WARRANTIES WHATSOEVER, INCLUDING ANY WARRANTY OF MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR ANY PARTICULAR PURPOSE, OR ANY WARRANTY OTHERWISE ARISING OUT OF ANY PROPOSAL, SPECIFICATION OR SAMPLE.
171160

172-
heading("Key Words", level: 2)
161+
Without limitation, TCG disclaims all liability, including liability for infringement of any proprietary rights, relating to use of information in this specification and to the implementation of this specification, and TCG disclaims all liability for cost of procurement of substitute goods or services, lost profits, loss of use, loss of data or any incidental, consequential, direct, indirect, or special damages, whether under contract, tort, warranty or otherwise, arising in any way out of use or reliance upon this specification or any information herein.
173162

174-
[
175-
The key words "MUST," "MUST NOT," "REQUIRED," "SHALL," "SHALL NOT," "SHOULD,"
176-
"SHOULD NOT," "RECOMMENDED," "MAY," and "OPTIONAL" in this document's normative
177-
statements are to be interpreted as described in
178-
[RFC 2119: Key words for use in RFCs to Indicate Requirement Levels](https://www.ietf.org/rfc/rfc2119.txt).
163+
This document is copyrighted by Trusted Computing Group (TCG), and no license, express or implied, is granted herein other than as follows: You may not copy or reproduce the document or distribute it to others without written permission from TCG, except that you may freely do so for the purposes of (a) examining or implementing TCG specifications or (b) developing, testing, or promoting information technology standards and best practices, so long as you distribute the document with these disclaimers, notices, and license terms.
164+
Contact the Trusted Computing Group at www.trustedcomputinggroup.org for information on specification licensing through membership agreements.
165+
Any marks and brands contained herein are the property of their respective owners.
179166
]
180167

181-
heading("Statement Type", level: 2)
168+
heading("Statement Types", level: 1, numbering: none, outlined: false)
182169

183170
[
184171
Please note an important distinction between different sections of text
185172
throughout this document. There are two distinctive kinds of text: *informative
186-
comments* and *normative statements*. Because most of the text in this
187-
specification will be of the kind *normative statements*, the authors have
188-
informally defined it as the default and, as such, have specifically called out
189-
text of the kind *informative comment*. They have done this by flagging the
190-
beginning and end of each informative comment and highlighting its text in gray.
191-
This means that unless text is specifically marked as of the kind *informative
192-
comment*, it can be considered a *normative statement*.
173+
comments* and *normative statements*.
174+
175+
Whether a statement is normative or informative is typically
176+
clear from context. In cases where the context does not
177+
provide sufficient clarity, the following rules apply:
178+
179+
1. A statement with a capitalized RFC key word ("MUST," "MUST NOT," "REQUIRED," "SHALL," "SHALL NOT," "SHOULD,"
180+
"SHOULD NOT," "RECOMMENDED," "MAY," and "OPTIONAL") as in RFC 8174 is always normative.
181+
182+
2. Text that is delimited by horizontal rules and labeled as an informative statement, note, example, etc. is always informative.
193183
]
194184

195185
informative(
186+
kind: "Example",
196187
[Reach out to #link("mailto:[email protected]") with any questions about this document.
197188
],
198-
kind: "Example",
199189
)
200190

201191
pagebreak()
202192

193+
outline()
194+
outline(title: "Figures", target: figure.where(kind: image))
195+
outline(title: "Tables", target: figure.where(kind: table))
196+
pagebreak()
197+
203198
doc
204199
}

template/tcgipsum.typ

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
#import "tcgcore.typ": *
2+
#show: conf.with(
3+
title: "TCG Ipsum Specification",
4+
subtitle: "Part 1: Consectetur",
5+
doctype: "Specification",
6+
status: "Published",
7+
version: "Version 184",
8+
date: "June 6, 2025",
9+
year: "2025",
10+
)
11+
12+
= Introduction
13+
Critical dolor sit amet systems have an occasional need to verify the consecteturs. One typical technique for this is called consectetur attestation. This document provides definitions and requirements for consectetur attestation in the PC Client and Datacenter environments.
14+
15+
= Scope
16+
17+
== In Scope
18+
19+
Consecteturs that form part of a computer network or enterprise environment.
20+
21+
== Out of Scope
22+
23+
Air-gapped consecteturs, non-consectutor amets.
24+
25+
== Trusted Computing Group
26+
27+
Trusted Computing Group (TCG)'s logo is depicted in the below figure:
28+
29+
#figure(
30+
image("tcg.png", width: 35%),
31+
caption: [
32+
The TCG Logo
33+
],
34+
)
35+
36+
=== Lorem Ipsum Workgroup
37+
38+
The Lorem Ipsum workgroup defines the consectutor and other ipsum attestation scenarios at their bimonthly tea parties.
39+
40+
#informative(
41+
kind: "Note",
42+
[
43+
By "bimonthly" we mean that the workgroup meets every other month.
44+
],
45+
)
46+
47+
= A Lot of Text
48+
49+
Lorem ipsum dolor sit amet, consectetur attesting elit, sed do eiusmod tamper evident ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud encryption ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate hash esse cillum dolore eu fugiat nulla pariatur. Excepteur sint verified boot cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id PCR laborum.
50+
51+
When providing evidence about a consectutor, the Attesting Environment SHALL furnish the dolor.
52+
53+
#table(
54+
columns: (0.5fr, 0.5fr),
55+
inset: 10pt,
56+
align: horizon,
57+
table.header(
58+
[*Lorem*],
59+
[*Ipsum*],
60+
),
61+
62+
[ Dolor ], [ Sit Amet ],
63+
[ PCR ], [ 17 ],
64+
)
65+
66+
== Math
67+
68+
#set text(
69+
font: "Fira Math",
70+
size: 10pt,
71+
)
72+
73+
$ sum_(k=1)^n k = (n(n+1)) / 2 $

0 commit comments

Comments
 (0)