aboutsummaryrefslogtreecommitdiffstats
path: root/doc/user/cpp_chan
blob: bee049354d543fcd0add401cea4c83b02f405e3d (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
@Section
   @Title { Changing the appearance of all programs simultaneously }
   @Tag { cpsetup }
@Begin
@PP
We have just seen that the {@Code "@CP"}, {@Code "@Eiffel"} etc. symbols
have many options for changing the appearance of the program text.  However,
most people would not want to have a different style for every program text
in their document; they want to define the style once at the start, and have
all their program texts come out in that style without laboriously setting
options on every symbol.  You do this by copying the setup file and
changing it.
@PP
For general information about how to make your own setup file, consult
Section {@NumberOf setup}.  The options that determine the default
values are in the @Code "@Use" clause which occupies most of the setup
file.  Here is the @Code "@Use" clause from {@Code cprint}:
cprint. @Index @Code "@CPSetup"
@ID @Code @Tbl
   mv { 0.5vx }
   aformat { @Cell A | @Cell B | @Cell C }
   bformat { @Cell { "    #" A } | @Cell { "{" B } | @Cell "}" }
{
@Rowa A { "@Use {  @CPSetup" }
@Rowb A { "pipe" } B {          }
@Rowb A { "style" } B { fixed         }

@Rowa 
@Rowb A { "fixedfont" }			B { Courier  }
@Rowb A { "fixedstrings" }		B { Base  }
@Rowb A { "fixedidentifiers" }		B { Base  }
@Rowb A { "fixedcomments" }		B { Base  }
@Rowb A { "fixedkeywords" }		B { Base  }
@Rowb A { "fixednumbers" }		B { Base  }
@Rowb A { "fixedoperators" }		B { Base  }
@Rowb A { "fixedsize" }			B { -1.0p         }
@Rowb A { "fixedline" }			B { 1.0vx         }
@Rowb A { "fixedtabin" }		B { 8		  }
@Rowb A { "fixedtabout" }		B { 8s		  }

@Rowa 
@Rowb A { "varyingfont" }		B {               }
@Rowb A { "varyingstrings" }		B { Slope         }
@Rowb A { "varyingidentifiers" }	B { Slope         }
@Rowb A { "varyingcomments" }		B { Base          }
@Rowb A { "varyingkeywords" }		B { Bold          }
@Rowb A { "varyingnumbers" }		B { Base          }
@Rowb A { "varyingoperators" }		B { Base          }
@Rowb A { "varyingsize" }		B { 1.0f          }
@Rowb A { "varyingline" }		B { 1.0vx         }
@Rowb A { "varyingtabin" }		B { 8		  }
@Rowb A { "varyingtabout" }		B { 3f		  }

@Rowa 
@Rowb A { "symbolfont" }		B {               }
@Rowb A { "symbolstrings" }		B { Slope         }
@Rowb A { "symbolidentifiers" }		B { Slope         }
@Rowb A { "symbolcomments" }		B { Base          }
@Rowb A { "symbolkeywords" }		B { Bold          }
@Rowb A { "symbolnumbers" }		B { Base          }
@Rowb A { "symboloperators" }		B { Base          }
@Rowb A { "symbolsize" }		B { 1.0f          }
@Rowb A { "symbolline" }		B { 1.0vx         }
@Rowb A { "symboltabin" }		B { 8		  }
@Rowb A { "symboltabout" }		B { 3f		  }

@Rowa A { "}" }
}
This shows the default font families, font faces, font sizes, line
spacings, and tab settings in force for the three styles, and also that
the default style is {@Code "fixed"}.  Notice that the font family name
for @Code "fixed" style is {@Code "Courier"}, but for the other styles is
empty.  This causes the @Code "fixed" style to always switch to Courier,
and the other styles to use the same font family as in the surrounding
document.  The @Code pipe option will be explained in Section {@NumberOf pipes}.
@PP
To change a default value, delete the preceding @Code "#" and change the
part between braces.  For example, suppose you are happy with @Code "fixed"
except that you want bold keywords.  Then one line needs to be changed, to
@ID @Code "fixedkeywords { Bold }"
Or suppose you like @Code "varying" as it stands, but would like it to be
the default style rather than {@Code "fixed"}.  Again, only one line needs
to be changed, to {@Code "style { varying }"}.
@PP
The setup files for the other languages are identical to this one, except
that the symbol after @Code "@Use" is different, and some of the
default values may be different.  Changing an option affects only the
language of that setup file; if you have multiple languages you can
have multiple setup files and change their options quite independently
of each other.
@End @Section