% Cedar.Style % last written by Paxton, August 7, 1982 12:58 pm BeginStyle (BasicPrint) AttachStyle % General declarations (bp) "big point" {72.0 .div in} StyleRule (BasicSize) % normal type font size 10 bp .def (BasicIncrement) % normal type font size change 2 bp .def (ExtraLead) % normal between-lines leading 2 bp .def (CodeIndent) % normal amount to indent nested code nodes 15 bp .def (FontFamily) "main font" { "TimesRoman" family } StyleRule (BodyFontFamily) "screen font" { "Tioga" family } ScreenRule (BodyFontFamily) "print font" { "TimesRoman" family } PrintRule (AlternateFontFamily) "other font" { "Helvetica" family } StyleRule (DoubleIncrement) % double type font size change BasicIncrement BasicIncrement .add .def (DoubleSize) % twice basic font size BasicSize BasicSize .add .def (LargeSize) % large font size BasicSize BasicIncrement .add .def (XLSize) % large font size BasicSize DoubleIncrement .add .def (BasicLeading) % normal type leading BasicSize ExtraLead .add .def (LooseLeading) % normal type leading BasicLeading ExtraLead .add .def (MoreLead) % double inter-paragraph spacing ExtraLead 3 .mul .def (BreakSize) % normal inter-paragraph spacing BasicLeading MoreLead .add .def (BreakPlus) % extra inter-paragraph spacing BreakSize ExtraLead .add .def (DoubleBreak) % twice inter-paragraph spacing BreakSize MoreLead .add .def (TripleBreak) % triple inter-paragraph spacing DoubleBreak MoreLead .add .def (QuadBreak) % quadruple inter-paragraph spacing TripleBreak MoreLead .add .def (Nest) "display nesting level" { BasicSize bigger leftIndent } ScreenRule (Nest) "display nesting level" { } PrintRule % Looks (look.a) "annotation font" { +bold face BasicSize size FontFamily} StyleRule (look.b) "bold font" { +bold face} StyleRule (look.c) "Cedar comments" { +italic face} StyleRule (look.d) "down for subscript -- not yet implemented on screen" { BasicIncrement .neg vShift BasicIncrement smaller size} StyleRule (look.e) "emphasis" { +italic face} StyleRule (look.f) "fixed-pitch font" { "Gacha" family} StyleRule (look.g) "Greek" { "Hippo" family} StyleRule (look.i) "italic" { +italic face} StyleRule (look.k) "Cedar keywords" { BasicIncrement smaller size FontFamily} StyleRule (look.l) "larger font" { BasicIncrement bigger size} StyleRule (look.m) "Math font" { "Math" family} StyleRule (look.n) "Cedar procedure names" { +bold face} StyleRule (look.o) "other font" { AlternateFontFamily} StyleRule (look.p) "plain font -- override node format" { BasicSize size FontFamily} StyleRule (look.r) "regular face -- override node format" { regular face} StyleRule (look.s) "smaller font" { BasicIncrement smaller size} StyleRule (look.t) "Tioga font" { 10 bp size "Tioga" family} StyleRule (look.u) "up, for superscript -- not yet implemented on screen" { DoubleIncrement vShift BasicIncrement smaller size} StyleRule (look.x) "extra large" { DoubleIncrement bigger size} StyleRule (look.z) "z -- arbitrary for underlined -- not yet implemented" { +italic face } StyleRule % Formats (standard) "shared by various formats" { isComment {italic face}{regular face} .ifelse .cvx .exec caps+lowercase alphabets BasicSize size BasicLeading leading BasicLeading MoreLead 0 topLeadingGlue BasicLeading MoreLead 0 bottomLeadingGlue 20 pageBreakAfterFirstLinePenalty 20 pageBreakBeforeLastLinePenalty 0 pageBreakPenalty flushLeft lineFormatting 0 em firstIndent 0 em restIndent the size MoreLead .add topIndent 15 sp tabStops } StyleRule (docStandard) "shared by various text formats" { standard FontFamily Nest } StyleRule (default) "almost the same as code" { code 6 pt restIndent the size 1 .add topIndent 4 sp tabStops } StyleRule (code) "for ordinary Cedar program statements" { standard "Tioga" family 10 bp size nestingLevel 1 .eq .not {CodeIndent bigger leftIndent} .cvx .if CodeIndent 3 .mul restIndent } StyleRule (unit) "for procedure and other major program nodes" { code BreakSize MoreLead 0 topLeadingGlue } StyleRule (body) "for ordinary paragraphs" { docStandard regular face BreakSize MoreLead 0 topLeadingGlue 10 pageBreakPenalty justified lineFormatting } StyleRule (center) "for centered paragraphs" { body centered line.formatting } StyleRule (continuation) "for continuation of broken paragraph" { docStandard regular face 20 pageBreakPenalty justified lineFormatting } StyleRule (display) "displayed equations, etc. embedded in text" { body BreakSize MoreLead 0 bottomLeadingGlue DoubleSize bigger leftIndent } StyleRule (example) "default type for examples embedded in text" { code DoubleSize bigger leftIndent } StyleRule (contents) "for section headings in tables of contents at any level" { head nestingLevel 1 .eq .not {DoubleSize bigger leftIndent} .cvx .if BreakSize leading DoubleBreak BasicSize MoreLead topLeadingGlue BreakSize BasicSize MoreLead bottomLeadingGlue } StyleRule (head) "for section headings at any level" { nestingLevel 3 .gt {head5} % do head5 if nestingLevel is greater than 3 {{ head1 head2 head3 head4 } nestingLevel .aget .cvx .exec} .ifelse .cvx .exec } StyleRule (head1) "for top-level section headings" { standard FontFamily bold face XLSize size TripleBreak leading QuadBreak BasicSize MoreLead topLeadingGlue TripleBreak BasicSize MoreLead bottomLeadingGlue 100 pageBreakAfterLastLinePenalty } StyleRule (head2) "for sub-section headings" { docStandard bold face LargeSize size DoubleBreak leading TripleBreak BasicSize MoreLead topLeadingGlue DoubleBreak BasicSize MoreLead bottomLeadingGlue 75 pageBreakAfterLastLinePenalty } StyleRule (head3) "for sub-sub-section headings" { docStandard bold face BreakPlus leading DoubleBreak BasicSize MoreLead topLeadingGlue BreakPlus BasicSize MoreLead bottomLeadingGlue 50 pageBreakAfterLastLinePenalty } StyleRule (head4) "for sub-sub-sub-section headings" { docStandard italic face BreakSize leading BreakPlus BasicSize MoreLead topLeadingGlue BreakSize BasicSize MoreLead bottomLeadingGlue 25 pageBreakAfterLastLinePenalty } StyleRule (head5) "for sub-sub-sub-sub-section headings (run-in)" { body BreakPlus BasicSize MoreLead topLeadingGlue } StyleRule (indent) "for indented paragraphs" { body DoubleSize bigger leftIndent } StyleRule (item) "for definitions, etc." { indent BasicSize 3 .mul restIndent LooseLeading ExtraLead 0 topLeadingGlue } StyleRule (lead1) "more lead, to space out or provide for larger type, superscripts, . . ." { body BreakSize ExtraLead .add MoreLead 0 topLeadingGlue ExtraLead bigger leading } StyleRule (lead2) "even more lead, . . ." { body BreakSize ExtraLead 2 .mul .add MoreLead 0 topLeadingGlue ExtraLead 2 .mul bigger leading } StyleRule (lead3) "still more lead, . . ." { body BreakSize ExtraLead 3 .mul .add MoreLead 0 topLeadingGlue ExtraLead 3 .mul bigger leading } StyleRule (logo) "for Xerox logo" { "Logo" family 24 pt size 24 bp topIndent -0.75 in leftIndent 48 20 5 topLeadingGlue 60 20 5 bottomLeadingGlue 75 pageBreakAfterLastLinePenalty } PrintRule (logo) "Xerox logo: screen" { "Logo" family 24 pt size 36 bp topIndent 48 pt topLeading 60 pt bottomLeading } ScreenRule (memoHead) "for the To, From, Subject nodes at front of memos" { standard regular face BodyFontFamily 0 firstIndent 2 em restIndent LooseLeading 2 .mul topLeading 16 pt topIndent LooseLeading bottomLeading 20 sp tabStops } StyleRule (note) "for fine points" { quote BasicIncrement smaller size BasicIncrement smaller topLeading BasicIncrement smaller leading } StyleRule (pageBreak) "to force a new page" { standard 0 pt 1 fil 0 pt topLeadingGlue 1 fil 0 pt 0 pt bottomLeadingGlue } PrintRule (pageBreak) "to force a new page" { standard } ScreenRule (quote) "for quotations and other displays" { body DoubleSize bigger leftIndent } StyleRule (reference) "an item in a reference list" { body DoubleSize restIndent LooseLeading ExtraLead 0 topLeadingGlue } StyleRule (root) "default type for root nodes" { docStandard 24 pt topIndent 24 pt topLeading 0 leftIndent 10 pt rightIndent } StyleRule (table) "sets TABs for kludge tables" { body 15 pageBreakPenalty 40 sp tabStops } StyleRule (table1) "for more columns" { table 30 sp tabStops } StyleRule (table2) "for more columns" { table 25 sp tabStops } StyleRule (table3) "for more columns" { table 20 sp tabStops } StyleRule (title) "for title nodes" { head DoubleIncrement bigger size QuadBreak leading QuadBreak DoubleBreak .add BasicSize MoreLead topLeadingGlue QuadBreak BasicSize MoreLead bottomLeadingGlue 200 pageBreakAfterLastLinePenalty 0 firstIndent 0 restIndent centered lineFormatting } StyleRule (subtitle) "for subtitle nodes" { title BasicIncrement smaller size } StyleRule EndStyle