Skip to content

Latest commit

 

History

History
33 lines (28 loc) · 2.42 KB

README.md

File metadata and controls

33 lines (28 loc) · 2.42 KB

Ok here is how the structure works:

main.ptx includes each of the chapter files ch-NAME.ptx, and each of the chapter files includes each of the section files sec-NAME.ptx.

The section files do a bunch of component= versioning. There are four components:

  • "web": things that should only apply in the online version, not in either pdf
  • "not-web": things that should only apply in pdf
  • "workbook": things that should only appear in the workbook
  • "not-workbook": things that should appear in both the fullprint and the online version

Here is how those components are used:

  • two versions of the <title> tag generate either the plain title (not-workbook) or the title decorated with "- Practice exercises" (workbook)
  • the text of the section is enclosed in an <introduction component="not-workbook">
  • each of the "Do you know..." lists is in a separate document as an <ol> element
  • a <conclusion component="workbook"> loads the "Do you know..." list in after the exercises in the workbook version
  • a <conclusion component="not-workbook"> loads the "Do you know..." list in before the exercises in other versions
  • The file NotSure.ptx prints some "not-sure" instructions in not-workbook formats and the "Don't forget!" alert in the workbook version
  • WYD.ptx is a <conclusion component="workbook"> that is loaded between the exercises and the "Do you know ..." list

Some other important versioning happens in the exercise files ex-NAME.ptx:

  • ex-intro.ptx is an <introduction> element that doesn't display in the workbook
  • exercises 1-4 are not componented, so they appear in all builds
  • if exercises 1-4 include xrefs to exercises 5-? in other sections, those "story also appears in" sentences are versioned in <em component="..."> tags
    • I reference the containing section rather than the exercise directly in the workbook component tag
  • exercises 5-8 are written in <exercise component="not-workbook">

Custom xsl in the xsl folder is very important to how this book works. In the latex versions:

  • Most importantly, it makes <exercises> respect <page> and @workspace in the workbook version
  • it contains some header customization
  • it contains some customization of the enumerate labels and makes nested enumerates with empty introductions behave similarly to vanilla latex
  • it makes sections start with a pagebreak
  • it kills some extra periods generated in titles
  • it formats <aside> to appear as margin notes