% Donahue.Style
% last written by McGregor, October 22, 1982 3:07 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
) "
a
nnotation font" {
+bold face BasicSize size FontFamily} StyleRule
(look.
b
) "
b
old font" {
+bold face} StyleRule
(look.
c
) "Cedar
c
omments" {
+italic face} StyleRule
(look.
d
) "
d
own for subscript" {
BasicIncrement .neg vShift
BasicIncrement smaller size} StyleRule
(look
.e
) "
e
mphasis" {
+italic face} StyleRule
(look
.f
) "
f
ixed-pitch font" {
"Gacha" family} StyleRule
(look.
g
) "
G
reek" {
"Hippo" family} StyleRule
(look.
i
) "
i
talic" {
+italic face} StyleRule
(look.
k
) "Cedar
k
eywords" {
BasicIncrement smaller size
FontFamily} StyleRule
(look
.l
) "
l
arger font" {
BasicIncrement bigger size} StyleRule
(look.
m
) "
M
ath font" {
"Math" family} StyleRule
(look.
n
) "Cedar procedure
n
ames" {
+bold face} StyleRule
(look.
o
) "
o
ther font" {
AlternateFontFamily} StyleRule
(look
.p
) "
p
lain font -- override node format" {
BasicSize size FontFamily} StyleRule
(look
.r
) "
r
egular face -- override node format" {
regular face} StyleRule
(look
.s
) "
s
maller font" {
BasicIncrement smaller size} StyleRule
(look
.t
) "
T
ioga font" {
10 bp size "Tioga" family} StyleRule
(look
.u
) "
u
p, for superscript" {
DoubleIncrement vShift
BasicIncrement smaller size} StyleRule
(look
.x
) "e
x
tra large" {
DoubleIncrement bigger size} StyleRule
(look.
y
) "y -- arbitrary for
strikeout
" {
all strikeout } StyleRule
(look.
z
) "z -- arbitrary for
underlined
" {
all underlining } 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
(
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
(
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
(
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
72 20 5 bottomLeadingGlue
75 pageBreakAfterLastLinePenalty
} PrintRule
(
logo
) "Xerox logo: screen" {
"Logo" family
24 pt size
36 bp topIndent
48 pt topLeading
72 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
(
table0
) "for more columns" {
table
35 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
(
author
) "for author nodes" {
default
BasicSize size
QuadBreak BasicSize MoreLead top.leading.glue
QuadBreak BasicSize MoreLead bottom.leading.glue
200 page.break.after.last.line.penalty
0 first.indent
0 rest.indent
centered line.formatting
} StyleRule
EndStyle