aboutsummaryrefslogtreecommitdiffstats
path: root/doc/user/str_theo
blob: da61e1175879d26ebf65bd5dc394255bbde512f4 (plain) (blame)
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
106
107
108
@Section
   @Title { Theorems, lemmas, corollaries, definitions, propositions,
examples, and claims }
   @RunningTitle { Theorems, lemmas, etc. }
   @Tag { theorems }
@Begin
@PP
theorem. @Index @Code "@Theorem"
A theorem is created like this:
@ID @OneRow @Code @Verbatim {
@LD @Theorem
    @Title { Fermat's Last Theorem }
{
@M { a sup n + b sup n != c sup n } for all positive integers @M { a },
@M { b }, @M { c } and @M { n } when @M { n > 2 }.
@LP
@Proof I have a proof of this theorem, but the margin
is too small to contain it. @EndProof
}
}
where we have used the @Code "@LD" `left display' symbol from
Section {@NumberOf displays} to get a left-justified display,
and the @Code "@M" symbol from Chapter {@NumberOf mathematics}
for the equations.  The result is
@ID @Theorem
    @Title { Fermat's Last Theorem }
{
@M { a sup n + b sup n != c sup n } for all positive integers @M { a },
@M { b }, @M { c } and @M { n } when @M { n > 2 }.
@LP
@Proof I have a proof of this theorem, but the margin
is too small to contain it. @EndProof
}
The @Code "@Theorem" symbol produces an object with no adjacent
vertical space, hence it needs to be used in conjuction with
display or paragraph symbols.  The theorem is numbered automatically,
with the title and number inserted at the start of the first
paragraph.  @Code "@Title" may be omitted.
@PP
@Code "@Proof" produces @Proof @Null
proof. @Index @Code "@Proof"
with the appropriate following space, and @Code "@EndProof" produces
endproof. @Index @Code "@EndProof"
a box at the end of the line.  They may be used anywhere, not
just within theorems.
@FootNote { Occasionally @Code "@EndProof" does not
appear as far to the right as it should.  This problem can be fixed by using
{@Code "@LD @HExpand @Theorem"}, which instructs Lout to make sure
that as much horizontal space as possible is allocated to the theorem. }
@PP
There are seven symbols that produce independently numbered sequences
in this way.  They are {@Code "@Theorem"}, {@Code "@Definition"},
definition. @Index @Code "@Definition"
claim. @Index @Code "@Claim"
proposition. @Index @Code "@Proposition"
lemma. @Index @Code "@Lemma"
corollary. @Index @Code "@Corollary"
example. @Index @Code "@Example"
{@Code "@Claim"}, {@Code "@Proposition"}, {@Code "@Lemma"},
{@Code "@Corollary"}, and {@Code "@Example"}.
@PP
The setup file contains options which determine whether the theorem
numbers include a chapter number ({@Code "@ChapterNumInTheorems"}),
or a section number ({@Code "@SectionNumInTheorems"}), and so on.  A
section number automatically includes a chapter number, etc.  There
are also options to change the word printed.  For example, if you
need a sequence of conjectures, change the @Code "@ClaimWord" setup
file option to
@ID @Code "@ClaimWord { Conjecture }"
and use the @Code "@Claim" symbol for your conjectures.  You can even put
@ID @Code {
"import @DocumentSetup"
"macro @Conjecture { @Claim }"
}
into your @Code mydefs file (Section {@NumberOf definitions}) if you wish,
so that you can write @Code "@Conjecture" in your documents instead of
{@Code "@Claim"}.
@PP
The setup file also contains two options which control the format of
the theorem (claims and so on have corresponding options).  Here they
are with their default values:
@ID @Code {
"@TheoremTitleFormat { (title) }"
"@TheoremFormat { { @B { word @NumSep number title: } &2s } @Insert body }"
}
@Code "@TheoremTitleFormat" is used only when the theorem has a
{@Code "@Title"}.  It determines how the title is formatted:  the
@Code title symbol within it stands for the @Code "@Title" option.
The default value shown places parentheses around the title.
@Code "@TheoremFormat" determines the format of the entire theorem.
Within it, @Code word stands for the value of {@Code "@TheoremWord"};
@Code "number" is the number of the theorem; @Code "title" is the title
of the theorem after formatting by {@Code "@TheoremFormat"} (if there
is a title; otherwise @Code title is {@Code "@Null"}, which prints as
nothing and even deletes preceding space as required); and
@Code body is the body of the theorem.  The default value prints the
word, number and title with a colon in bold, and inserts them and two
spaces into the first paragraph of the body.  Another good value is
@ID @Code { "@TheoremFormat { @B { word @NumSep number title } @LP body }" }
which places the header in bold on a line by itself, separated from the
body by a paragraph break.  For @Code "@NumSep" see page {@PageOf numsep}.
@PP
Owing to problems behind the scenes, the @Code "@Theorem" symbol and its
companions have a potential efficiency problem:  although all numbers are
finalized on the second run, it takes Lout time proportional to the square
of the highest theorem number to do this.  So large numbers of theorems
numbered together might be slow.
@End @Section