1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
###############################################################################
# #
# Lout @ToySetup package (Jeff Kingston, July 1993, updated October 1994) #
# #
# In response to a user request I have put together this tiny package for #
# people to play with who want to start learning how to do page layout and #
# galleys with Lout. It produces a very simple sequence of pages. To #
# invoke the package, run "lout myfile > op" where myfile looks like this: #
# #
# @SysInclude { ts } #
# @Use { @ToySetup } #
# @Document #
# // #
# @Text { #
# Any text you like here, using @I, @B, @Heading, @PP, @LP, @DP, #
# @LeftDisplay, @IndentedDisplay, and @CenteredDisplay just as in #
# DocumentSetup. #
# } #
# #
###############################################################################
@SysInclude { fontdefs }
@SysInclude { langdefs }
export @I @B @Heading @PP @LP @DP @NP
@LeftDisplay @IndentedDisplay @CenteredDisplay
@Text @Document
def @ToySetup
named @PageWidth { 21.0c }
named @PageHeight { 29.7c }
@Begin
###########################################################################
# #
# Font changes, headings, and paragraphs. #
# #
###########################################################################
def @I right x { Slope @Font x }
def @B right x { Bold @Font x }
def @Heading right x { ragged @Break @B x }
macro @PP { //1.3vx 1.0f @Wide &0i }
macro @LP { //1.3vx }
macro @DP { //0.5v }
macro @NP { //1.1b }
###########################################################################
# #
# Displays. #
# #
###########################################################################
def @DispPlace { @Galley }
def @Disp into { @DispPlace&&preceding }
right x
{
@OneRow x
}
macro @LeftDisplay { @DP | @DispPlace | @DP // @Disp }
macro @IndentedDisplay { @DP |2f @DispPlace | @DP // @Disp }
macro @CenteredDisplay { @DP |0.5rt @DispPlace | @DP // @Disp }
###########################################################################
# #
# Page layout. #
# #
###########################################################################
def @TextPlace { @Galley }
def @Text force into { @TextPlace&&preceding }
right x
{
x
}
def @Page right x
{
@PageWidth @Wide @PageHeight @High
{ Times Base 12p } @Font
{ adjust nohyphen 14px } @Break
English @Language { 0 0 0 } @SetColour
{ //1i ||1i
@HExpand @VExpand x
||1i //1i
}
}
def @PageList right num
{
@Page { |0.5rt - num - //0.4i @TextPlace }
//
@PageList @Next num
}
def @Document { @PageList 1 }
@End @ToySetup
|