HTWAH draft
Some checks failed
CI / Check typos (push) Successful in 8s
CI / Check links (push) Failing after 11s
CI / Clippy (push) Successful in 1m4s
CI / Build and test (push) Successful in 1m6s
CI / Build container (push) Successful in 45s
CI / Deploy on waypoint (push) Successful in 49s
Some checks failed
CI / Check typos (push) Successful in 8s
CI / Check links (push) Failing after 11s
CI / Clippy (push) Successful in 1m4s
CI / Build and test (push) Successful in 1m6s
CI / Build container (push) Successful in 45s
CI / Deploy on waypoint (push) Successful in 49s
This commit is contained in:
BIN
crates/service/service-webpage/assets/htwah/definitions.pdf
Normal file
BIN
crates/service/service-webpage/assets/htwah/definitions.pdf
Normal file
Binary file not shown.
BIN
crates/service/service-webpage/assets/htwah/numbering.pdf
Normal file
BIN
crates/service/service-webpage/assets/htwah/numbering.pdf
Normal file
Binary file not shown.
BIN
crates/service/service-webpage/assets/htwah/sols-a.pdf
Normal file
BIN
crates/service/service-webpage/assets/htwah/sols-a.pdf
Normal file
Binary file not shown.
BIN
crates/service/service-webpage/assets/htwah/sols-b.pdf
Normal file
BIN
crates/service/service-webpage/assets/htwah/sols-b.pdf
Normal file
Binary file not shown.
BIN
crates/service/service-webpage/assets/htwah/spacing-a.pdf
Normal file
BIN
crates/service/service-webpage/assets/htwah/spacing-a.pdf
Normal file
Binary file not shown.
BIN
crates/service/service-webpage/assets/htwah/spacing-b.pdf
Normal file
BIN
crates/service/service-webpage/assets/htwah/spacing-b.pdf
Normal file
Binary file not shown.
@@ -1,23 +1,21 @@
|
|||||||
+++
|
+++
|
||||||
title = "HtWaH: Typesetting"
|
title = "HtWaH: Typesetting"
|
||||||
template = "page.html"
|
author = "Mark"
|
||||||
|
|
||||||
[extra]
|
# TODO: many slugs, htwah/typesetting
|
||||||
show_title = false
|
slug = "handouts"
|
||||||
back_links = [
|
|
||||||
{target = "/htwah", text = "htwah"}
|
|
||||||
]
|
|
||||||
+++
|
+++
|
||||||
|
|
||||||
## Table of Contents
|
## Table of Contents
|
||||||
|
|
||||||
This page is part of my [how to write a handout](/htwah) series.
|
This page is part of my [how to write a handout](/htwah) series.
|
||||||
|
|
||||||
- [Part 1: Typesetting](.) {{ color(c="green", t="**<-- you are here**") }}
|
- [Part 1: Typesetting](.) **{{color(--green, "<-- you are here")}}**
|
||||||
- Part 2: Notation
|
- Part 2: Notation
|
||||||
- Part 3: Designing lessons
|
- Part 3: Designing lessons
|
||||||
- Part 4: Designing puzzles
|
- Part 4: Designing puzzles
|
||||||
- Part 5: Leading a class
|
- Part 5: Leading a class
|
||||||
|
- Part 6: Resources
|
||||||
|
|
||||||
<hr style="margin-top: 5rem; margin-bottom: 5rem"/>
|
<hr style="margin-top: 5rem; margin-bottom: 5rem"/>
|
||||||
|
|
||||||
@@ -34,7 +32,7 @@ Lessons presented on a screen do not take advantage of this; lessons presented o
|
|||||||
|
|
||||||
Double-sided handouts break this spacial intuition. The act of turning a page upside-down severs its connection to physical space. Do not entangle your students in the pages of a double-sided worksheet---print only on one side.
|
Double-sided handouts break this spacial intuition. The act of turning a page upside-down severs its connection to physical space. Do not entangle your students in the pages of a double-sided worksheet---print only on one side.
|
||||||
|
|
||||||
{{color(c="grey", t="This is not true of books, which are presented in a fundamentally different way.")}}
|
{{color(--grey, "This is not true of books, which are presented in a fundamentally different way.")}}
|
||||||
|
|
||||||
Double-sided handouts also clutter the page with the opposite side's nodes. Even when using a pencil, work on the front of a page makes its way to the back.
|
Double-sided handouts also clutter the page with the opposite side's nodes. Even when using a pencil, work on the front of a page makes its way to the back.
|
||||||
|
|
||||||
@@ -62,26 +60,29 @@ If you force your students to cram their work into the margin,
|
|||||||
their understanding will have a similar quality. \
|
their understanding will have a similar quality. \
|
||||||
Give them space to work and space to think.
|
Give them space to work and space to think.
|
||||||
|
|
||||||
{{color(c="grey", t="This rule only applies to handouts. Lecture notes and textbooks do not need to worry about this, since students should work through them on a separate sheet of paper.")}}
|
{{color(--grey, "This rule only applies to handouts. Lecture notes and textbooks do not need to worry about this, since students should work through them on a separate sheet of paper")}}
|
||||||
|
|
||||||
Every problem should be followed by a `\vfill`. \
|
Every problem should be followed by a `\vfill`. \
|
||||||
There are exceptions, but they are rare.
|
There are exceptions, but they are rare.
|
||||||
|
|
||||||
If your handouts include solutions
|
If your handouts include solutions
|
||||||
{{color(c="grey", t="(they should),")}}
|
{{color(--grey, "(they should)")}}
|
||||||
observe the following rule: each problem's typeset
|
observe the following rule: each problem's typeset
|
||||||
solution should fit in the empty space after the problem.
|
solution should fit in the empty space after the problem.
|
||||||
This isn't perfectly accurate estimate of space
|
This isn't perfectly accurate estimate of space
|
||||||
(your students will likely need more), but it is a very good minimum.
|
(your students will likely need more), but it is a very good minimum.
|
||||||
|
|
||||||
{{color(c="grey", t="If your students will be drawing pictures, make each gap twice as bit as it needs to be.")}}
|
{{color(--grey, "If your students will be drawing pictures, make each gap twice as bit as it needs to be.")}}
|
||||||
|
|
||||||
In a handout that is typeset well, the layout of each page should not
|
In a handout that is typeset well, the layout of each page should not
|
||||||
change when solutions are shown. This helps you give students enough
|
change when solutions are shown. This helps you give students enough
|
||||||
room to solve each problem, and keeps page numbers consistent between
|
room to solve each problem, and keeps page numbers consistent between
|
||||||
instructors' and students' handouts:
|
instructors' and students' handouts:
|
||||||
|
|
||||||
{{ twopdf(left="/htwah/sols-a.pdf", right="/htwah/sols-b.pdf") }}
|
<div style="display: flex; flex-direction: row; gap: 1rem; height: 50rem">
|
||||||
|
<embed type="application/pdf" src="/assets/htwah/sols-a.pdf" width="100%" height="100%" />
|
||||||
|
<embed type="application/pdf" src="/assets/htwah/sols-b.pdf" width="100%" height="100%" />
|
||||||
|
</div>
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
@@ -93,7 +94,7 @@ A page should _never_ break between the first mention of a concept and the probl
|
|||||||
|
|
||||||
New sections should _always_ start on a new page.
|
New sections should _always_ start on a new page.
|
||||||
|
|
||||||
{{color(c="grey", t="Unlike the previous comments on spacing, the above rules apply to all formats. Whether you are writing a textbook, a handout, or lecture notes, do not allow your page breaks to break as student's train of thought.")}}
|
{{color(--grey, "Unlike the previous comments on spacing, the above rules apply to all formats. Whether you are writing a textbook, a handout, or lecture notes, do not allow your page breaks to break as student's train of thought.")}}
|
||||||
|
|
||||||
These rules are easy to follow if you leave space for work: \
|
These rules are easy to follow if you leave space for work: \
|
||||||
Place your `\pagebreak`s well and let `\vfill` handle the rest.
|
Place your `\pagebreak`s well and let `\vfill` handle the rest.
|
||||||
@@ -111,11 +112,14 @@ clear that these are the definitions we will be using in the future.
|
|||||||
It is also a good idea to mark the first use of a term. \
|
It is also a good idea to mark the first use of a term. \
|
||||||
In the example below, this is done with italicized text.
|
In the example below, this is done with italicized text.
|
||||||
|
|
||||||
{{ onepdf(src="/htwah/definitions.pdf") }}
|
|
||||||
|
<div style="display: flex; flex-direction: row; gap: 1rem; height: 50rem">
|
||||||
|
<embed type="application/pdf" src="/assets/htwah/definitions.pdf" width="100%" height="100%" />
|
||||||
|
</div>
|
||||||
|
|
||||||
Of course, not all texts need such aggressive grouping. I tend to avoid clear "boxing" in [my lessons](/handouts), opting for subtle grouping by whitespace instead. This is a matter of taste.
|
Of course, not all texts need such aggressive grouping. I tend to avoid clear "boxing" in [my lessons](/handouts), opting for subtle grouping by whitespace instead. This is a matter of taste.
|
||||||
|
|
||||||
{{color(c="grey", t="Regardless of implementation, visual boundaries should match conceptual boundaries. It should be easy to see where each logical element ends.")}}
|
{{color(grey, "Regardless of implementation, visual boundaries should match conceptual boundaries. It should be easy to see where each logical element ends.")}}
|
||||||
|
|
||||||
Finally, remember that too much separation is just as distracting as too little.
|
Finally, remember that too much separation is just as distracting as too little.
|
||||||
Balance is key.
|
Balance is key.
|
||||||
@@ -125,7 +129,11 @@ Balance is key.
|
|||||||
Different elements should be far apart, and related elements should be close together[^4]. This rule is often violated by equations and diagrams.
|
Different elements should be far apart, and related elements should be close together[^4]. This rule is often violated by equations and diagrams.
|
||||||
Consider the two pages below:
|
Consider the two pages below:
|
||||||
|
|
||||||
{{ twopdf(left="/htwah/spacing-a.pdf", right="/htwah/spacing-b.pdf") }}
|
<div style="display: flex; flex-direction: row; gap: 1rem; height: 50rem">
|
||||||
|
<embed type="application/pdf" src="/assets/htwah/spacing-a.pdf" width="100%" height="100%" />
|
||||||
|
<embed type="application/pdf" src="/assets/htwah/spacing-b.pdf" width="100%" height="100%" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
The circuit diagram on the left is clearly a part of the setup at the top of the page. It is not connected to Problem 14.
|
The circuit diagram on the left is clearly a part of the setup at the top of the page. It is not connected to Problem 14.
|
||||||
|
|
||||||
@@ -151,7 +159,7 @@ Numbering should be simple: use a single counter that is set to 1 on the first p
|
|||||||
|
|
||||||
Different numbering systems (`i, ii, iii...` for a preface; `A31, A32, A33...` for appendices) have little value and only make navigation more difficult.
|
Different numbering systems (`i, ii, iii...` for a preface; `A31, A32, A33...` for appendices) have little value and only make navigation more difficult.
|
||||||
|
|
||||||
{{color(c="grey", t="Roman numbering of frontmatter in large textbooks is acceptable, but anything more complicated is unnecessary.")}}
|
{{color(--grey, "Roman numbering of frontmatter in large textbooks is acceptable, but anything more complicated is unnecessary")}}
|
||||||
|
|
||||||
### Versions
|
### Versions
|
||||||
|
|
||||||
@@ -159,11 +167,11 @@ The document itself should also be numbered. In most cases, a `\today` on the fr
|
|||||||
|
|
||||||
This helps synchronize the handout you _think_ the class has with the handout that the class _really_ has.
|
This helps synchronize the handout you _think_ the class has with the handout that the class _really_ has.
|
||||||
|
|
||||||
Future instructors {{color(c="grey", t="(and future you)")}} will be thankful.
|
Future instructors {{color(--grey, "(and future you")}} will be thankful.
|
||||||
|
|
||||||
### Items
|
### Items
|
||||||
|
|
||||||
Propositions, definitions, and examples should all be numbered with the same counter. Problems should also use this counter, unless they are only listed at the end of each section {{color(c="grey", t="(as they often are in textbooks).")}}
|
Propositions, definitions, and examples should all be numbered with the same counter. Problems should also use this counter, unless they are only listed at the end of each section {{color(--grey, "(as they often are in textbooks).")}}
|
||||||
|
|
||||||
Do not use different counters for different objects. Theorem 1 should not follow Definition 2. This is the default behavior of LaTeX, and it is a serious mistake.
|
Do not use different counters for different objects. Theorem 1 should not follow Definition 2. This is the default behavior of LaTeX, and it is a serious mistake.
|
||||||
|
|
||||||
@@ -175,7 +183,9 @@ With a single counter, this is not an issue. Readers are aware of their absolute
|
|||||||
|
|
||||||
[Open Logic](https://openlogicproject.org/) again provides an example of quality typesetting. Notice how the numbering of Propositions, Definitions, and Examples on the page below is consecutive:
|
[Open Logic](https://openlogicproject.org/) again provides an example of quality typesetting. Notice how the numbering of Propositions, Definitions, and Examples on the page below is consecutive:
|
||||||
|
|
||||||
{{ onepdf(src="/htwah/numbering.pdf") }}
|
<div style="display: flex; flex-direction: row; gap: 1rem; height: 50rem">
|
||||||
|
<embed type="application/pdf" src="/assets/htwah/numbering.pdf" width="100%" height="100%" />
|
||||||
|
</div>
|
||||||
|
|
||||||
In long textbooks, prefixing numbers with the chapter index (e.g, the `2` in `2.32` above) is wise. In any other case, a single counter should be enough.
|
In long textbooks, prefixing numbers with the chapter index (e.g, the `2` in `2.32` above) is wise. In any other case, a single counter should be enough.
|
||||||
|
|
||||||
@@ -197,7 +207,12 @@ who made it, when, and why.
|
|||||||
|
|
||||||
If you're writing a document that is available in multiple variants (for example, a handout with solutions or an exam with multiple versions), the variant should be easily visible in the title. Note the box under the title in the handout on the left.
|
If you're writing a document that is available in multiple variants (for example, a handout with solutions or an exam with multiple versions), the variant should be easily visible in the title. Note the box under the title in the handout on the left.
|
||||||
|
|
||||||
{{ twopdf(left="/htwah/sols-a.pdf", right="/htwah/sols-b.pdf") }}
|
|
||||||
|
<div style="display: flex; flex-direction: row; gap: 1rem; height: 50rem">
|
||||||
|
<embed type="application/pdf" src="/assets/htwah/sols-a.pdf" width="100%" height="100%" />
|
||||||
|
<embed type="application/pdf" src="/assets/htwah/sols-b.pdf" width="100%" height="100%" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
This lets us detect errors quickly: we only need to look at the first page of a lesson to know if we printed the wrong variant, handed the students solutions, or graded an exam using the wrong answer key.
|
This lets us detect errors quickly: we only need to look at the first page of a lesson to know if we printed the wrong variant, handed the students solutions, or graded an exam using the wrong answer key.
|
||||||
|
|
||||||
@@ -26,3 +26,10 @@ pub fn betalupi() -> Page {
|
|||||||
Some(Image_Icon::URL.to_owned()),
|
Some(Image_Icon::URL.to_owned()),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn htwah_typesetting() -> Page {
|
||||||
|
page_from_markdown(
|
||||||
|
include_str!("htwah-typesetting.md"),
|
||||||
|
Some(Image_Icon::URL.to_owned()),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ use assetserver::Asset;
|
|||||||
use axum::http::header;
|
use axum::http::header;
|
||||||
use macro_assets::assets;
|
use macro_assets::assets;
|
||||||
use macro_sass::sass;
|
use macro_sass::sass;
|
||||||
|
use toolbox::mime::MimeType;
|
||||||
|
|
||||||
assets! {
|
assets! {
|
||||||
prefix: "/assets"
|
prefix: "/assets"
|
||||||
@@ -150,4 +151,56 @@ assets! {
|
|||||||
(header::CONTENT_TYPE, "application/font-ttf")
|
(header::CONTENT_TYPE, "application/font-ttf")
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// MARK: htwah
|
||||||
|
//
|
||||||
|
|
||||||
|
Htwah_Definitions {
|
||||||
|
source: include_bytes!("../../assets/htwah/definitions.pdf"),
|
||||||
|
target: "/htwah/definitions.pdf",
|
||||||
|
headers: [
|
||||||
|
(header::CONTENT_TYPE, MimeType::Pdf.to_string())
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
Htwah_Numbering {
|
||||||
|
source: include_bytes!("../../assets/htwah/numbering.pdf"),
|
||||||
|
target: "/htwah/numbering.pdf",
|
||||||
|
headers: [
|
||||||
|
(header::CONTENT_TYPE, MimeType::Pdf.to_string())
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
Htwah_SolsA {
|
||||||
|
source: include_bytes!("../../assets/htwah/sols-a.pdf"),
|
||||||
|
target: "/htwah/sols-a.pdf",
|
||||||
|
headers: [
|
||||||
|
(header::CONTENT_TYPE, MimeType::Pdf.to_string())
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
Htwah_SolsB {
|
||||||
|
source: include_bytes!("../../assets/htwah/sols-b.pdf"),
|
||||||
|
target: "/htwah/sols-b.pdf",
|
||||||
|
headers: [
|
||||||
|
(header::CONTENT_TYPE, MimeType::Pdf.to_string())
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
Htwah_SpacingA {
|
||||||
|
source: include_bytes!("../../assets/htwah/spacing-a.pdf"),
|
||||||
|
target: "/htwah/spacing-a.pdf",
|
||||||
|
headers: [
|
||||||
|
(header::CONTENT_TYPE, MimeType::Pdf.to_string())
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
Htwah_SpacingB {
|
||||||
|
source: include_bytes!("../../assets/htwah/spacing-b.pdf"),
|
||||||
|
target: "/htwah/spacing-b.pdf",
|
||||||
|
headers: [
|
||||||
|
(header::CONTENT_TYPE, MimeType::Pdf.to_string())
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,7 +25,8 @@ fn build_server() -> Arc<PageServer> {
|
|||||||
.add_page("/", pages::index())
|
.add_page("/", pages::index())
|
||||||
.add_page("/links", pages::links())
|
.add_page("/links", pages::links())
|
||||||
.add_page("/whats-a-betalupi", pages::betalupi())
|
.add_page("/whats-a-betalupi", pages::betalupi())
|
||||||
.add_page("/handouts", pages::handouts());
|
.add_page("/handouts", pages::handouts())
|
||||||
|
.add_page("/htwah", pages::htwah_typesetting());
|
||||||
server
|
server
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user