@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