Skip to content

update core template and introduce TCG Ipsum #260

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 6, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added template/tcg.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
183 changes: 89 additions & 94 deletions template/tcgcore.typ
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
pre = "Start of " + pre
}

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

#let conf(
title: none,
authors: (),
abstract: [],
subtitle: none,
doctype: none,
status: none,
version: none,
date: none,
year: none,
doc,
) = {
) = context {
//
// Font settings
//
// Normal text
set text(
font: "Manuale",
size: 9pt,
size: 10pt,
)
// Math
show math.equation: set text(
font: "Inter",
size: 9pt,
font: "Fira Math",
size: 10pt,
)
// Code
show raw: set text(
font: "Fira Code",
size: 9pt,
size: 10pt,
)
// Headings
set heading(numbering: "1.1")
show heading: it => block()[
#let size = 16pt - it.depth * 2pt
#let size = 20pt - it.level * 3pt
#if size < 10pt { size = 10pt }
#set align(center)
#set text(
Expand Down Expand Up @@ -82,123 +87,113 @@

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

set align(center)
text(17pt, title)

let count = authors.len()
let ncols = calc.min(count, 3)
grid(
columns: (1fr,) * ncols,
row-gutter: 24pt,
..authors.map(author => [
#author.name \
#author.affiliation \
#link("mailto:" + author.email)
]),
)
//
// Title page
//
set page(paper: "us-letter", margin: 1in)
set align(left + top)

par(justify: false)[
*Abstract* \
#abstract
]
image("tcg.png", width: 30%)

set align(left)
set align(left + bottom)

pagebreak()
text(48pt, title, font: "Inter", weight: "extrabold")
v(-30pt)

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

heading("Copyright Licenses", level: 2)
line(length: 100%, stroke: 2pt)
v(-20pt)

[
Trusted Computing Group (TCG) grants to the user of the source code in this
specification (the \"Source Code\") a worldwide, irrevocable, nonexclusive,
royalty free, copyright license to reproduce, create derivative works,
distribute, display and perform the Source Code and derivative works
thereof, and to grant others the rights granted herein.

The TCG grants to the user of the other parts of the specification (other
than the Source Code) the rights to reproduce, distribute, display, and
perform the specification solely for the purpose of developing products
based on such documents.
]
text(32pt, doctype, font: "Inter", weight: "light")
v(-16pt)

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

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

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

heading("Disclaimers", level: 2)
//
// Front matter
//
let foot = (
line(length: 100%, stroke: 0.5pt)
+ grid(
align: (left, center, right),
columns: (1in, 5.5in, 1in),
rows: 0.5in,
sym.copyright + " " + year + " TCG",
title + if subtitle != none { " " + subtitle },
context counter(page).display(
"1",
both: false,
),
)
)
set text(font: "Inter", weight: "light")
set page(
paper: "us-letter",
margin: (bottom: 1in, rest: 0.5in),
footer: foot,
)

[
THE COPYRIGHT LICENSES SET FORTH ABOVE DO NOT REPRESENT ANY FORM OF LICENSE
OR WAIVER, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, WITH RESPECT TO
PATENT RIGHTS HELD BY TCG MEMBERS (OR OTHER THIRD PARTIES) THAT MAY BE
NECESSARY TO IMPLEMENT THIS SPECIFICATION OR OTHERWISE. Contact TCG
Administration #link("mailto:[email protected]") for information on
specification licensing rights available through TCG membership agreements.

THIS SPECIFICATION IS PROVIDED “AS IS” WITH NO EXPRESS OR IMPLIED WARRANTIES
WHATSOEVER, INCLUDING ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A
PARTICULAR PURPOSE, ACCURACY, COMPLETENESS, OR NONINFRINGEMENT OF
INTELLECTUAL PROPERTY RIGHTS, OR ANY WARRANTY OTHERWISE ARISING OUT OF ANY
PROPOSAL, SPECIFICATION OR SAMPLE.

Without limitation, TCG and its members and licensors disclaim 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.

Any marks and brands contained herein are the property of their respective
owners.
]
set align(left + top)

set text(font: "Manuale", size: 10pt)

pagebreak()

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

heading("Document Style", level: 1)
[
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.

heading("Key Words", level: 2)
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.

[
The key words "MUST," "MUST NOT," "REQUIRED," "SHALL," "SHALL NOT," "SHOULD,"
"SHOULD NOT," "RECOMMENDED," "MAY," and "OPTIONAL" in this document's normative
statements are to be interpreted as described in
[RFC 2119: Key words for use in RFCs to Indicate Requirement Levels](https://www.ietf.org/rfc/rfc2119.txt).
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.
Contact the Trusted Computing Group at www.trustedcomputinggroup.org for information on specification licensing through membership agreements.
Any marks and brands contained herein are the property of their respective owners.
]

heading("Statement Type", level: 2)
heading("Statement Types", level: 1, numbering: none, outlined: false)

[
Please note an important distinction between different sections of text
throughout this document. There are two distinctive kinds of text: *informative
comments* and *normative statements*. Because most of the text in this
specification will be of the kind *normative statements*, the authors have
informally defined it as the default and, as such, have specifically called out
text of the kind *informative comment*. They have done this by flagging the
beginning and end of each informative comment and highlighting its text in gray.
This means that unless text is specifically marked as of the kind *informative
comment*, it can be considered a *normative statement*.
comments* and *normative statements*.

Whether a statement is normative or informative is typically
clear from context. In cases where the context does not
provide sufficient clarity, the following rules apply:

1. A statement with a capitalized RFC key word ("MUST," "MUST NOT," "REQUIRED," "SHALL," "SHALL NOT," "SHOULD,"
"SHOULD NOT," "RECOMMENDED," "MAY," and "OPTIONAL") as in RFC 8174 is always normative.

2. Text that is delimited by horizontal rules and labeled as an informative statement, note, example, etc. is always informative.
]

informative(
kind: "Example",
[Reach out to #link("mailto:[email protected]") with any questions about this document.
],
kind: "Example",
)

pagebreak()

outline()
outline(title: "Figures", target: figure.where(kind: image))
outline(title: "Tables", target: figure.where(kind: table))
pagebreak()

doc
}
73 changes: 73 additions & 0 deletions template/tcgipsum.typ
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
#import "tcgcore.typ": *
#show: conf.with(
title: "TCG Ipsum Specification",
subtitle: "Part 1: Consectetur",
doctype: "Specification",
status: "Published",
version: "Version 184",
date: "June 6, 2025",
year: "2025",
)

= Introduction
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.

= Scope

== In Scope

Consecteturs that form part of a computer network or enterprise environment.

== Out of Scope

Air-gapped consecteturs, non-consectutor amets.

== Trusted Computing Group

Trusted Computing Group (TCG)'s logo is depicted in the below figure:

#figure(
image("tcg.png", width: 35%),
caption: [
The TCG Logo
],
)

=== Lorem Ipsum Workgroup

The Lorem Ipsum workgroup defines the consectutor and other ipsum attestation scenarios at their bimonthly tea parties.

#informative(
kind: "Note",
[
By "bimonthly" we mean that the workgroup meets every other month.
],
)

= A Lot of Text

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.

When providing evidence about a consectutor, the Attesting Environment SHALL furnish the dolor.

#table(
columns: (0.5fr, 0.5fr),
inset: 10pt,
align: horizon,
table.header(
[*Lorem*],
[*Ipsum*],
),

[ Dolor ], [ Sit Amet ],
[ PCR ], [ 17 ],
)

== Math

#set text(
font: "Fira Math",
size: 10pt,
)

$ sum_(k=1)^n k = (n(n+1)) / 2 $