Commit | Line | Data |
---|---|---|
69695f33 MW |
1 | <HTML> |
2 | <HEAD><TITLE> | |
3 | Mup header and footers | |
4 | </TITLE></HEAD> | |
5 | <BODY> | |
6 | <P> | |
7 | <A HREF="newscore.html"><-- previous page</A> | |
8 | ||
9 | <A HREF="index.html">Table of Contents</A> <A HREF="macros.html">next page --></A> | |
10 | </P> | |
11 | ||
12 | <H2> | |
13 | Headers and footers | |
14 | </H2> | |
15 | <P> | |
16 | Mup provides ways to put headers and footers on pages of output. | |
17 | Often you may want a certain kind of header and footer on the first | |
18 | page, but a different kind on any subsequent pages, so Mup makes it | |
19 | easy to do that. Mup also offers two different "layers" of headers and | |
20 | footers. These layers may be particularly useful if you have a single Mup | |
21 | file that contains multiple songs, or multiple movements of a song. | |
22 | In that case, there may be certain things that you want printed in | |
23 | headers and footers throughout, | |
24 | like the current page number and the name of the entire collection, | |
25 | but other things that you want to have change with each new song or | |
26 | movement. | |
27 | </P> | |
28 | <P> | |
29 | The "outer" layer is specified by four contexts: header, footer, header2, | |
30 | and footer2. The "inner" layer is specified by four contexts: | |
31 | top, bottom, top2, and bottom2. | |
32 | All of these contexts are optional. | |
33 | The outer contexts can only be specified once per file. | |
34 | The inner contexts can be specified more than once per file, and | |
35 | each time a set of them occurs, a new page is started. | |
36 | On output pages, all of these contexts are placed horizontally | |
37 | between the left and right margins, and vertically the | |
38 | elements appear in the following order: | |
39 | (topmargin) | |
40 | header | |
41 | top | |
42 | (one or more scores of music or blocks of text) | |
43 | bottom | |
44 | footer | |
45 | (bottommargin) | |
46 | </P> | |
47 | <P> | |
48 | Which version is used--the one with or without the "2" suffix--depends | |
49 | on which page is being printed. The items in header and footer | |
50 | appear on only the very first page, | |
51 | while those in header2 and footer2 appear on all subsequent pages. | |
52 | Somewhat similarly, the items in top and bottom will appear on the page | |
53 | that is started when they are encountered in the input, | |
54 | while top2 and bottom2 will then be used on all subsequent pages. | |
55 | However, you can specify a new top and/or bottom later, | |
56 | that will then to used for one page, and you can specify | |
57 | a new top2 and/or bottom2 later which will replace the previous top2/bottom2. | |
58 | Note, however, that if you change top2 but not top, | |
59 | that new top2 is used immediately on the new page, | |
60 | whereas if you change both, the new top applies | |
61 | to the immediately following new page, | |
62 | and the new top2 isn't used until the following page. Subsequent pages | |
63 | will use top2 in either case. | |
64 | </P> | |
65 | <P> | |
66 | Some examples may help. | |
67 | First a simple case: suppose you have a single song, and you'd like a title | |
68 | at the top of the first page. This is straightforward: | |
69 | <BR><PRE> | |
70 | top | |
71 | title "Here is the Title" | |
72 | </PRE><BR> | |
73 | For this simple example, it would work just as well to use "header" instead | |
74 | of "top," so you can use either one, although top is slightly more flexible. | |
75 | Later we'll see some examples where you might use both header and top in | |
76 | the same file, for different kinds of titles. | |
77 | </P> | |
78 | <P> | |
79 | Now suppose you'd like to make the title bigger and bolder, and would like | |
80 | to add a subtitle and composer information, as well as add a copyright | |
81 | notice to the bottom of the page. | |
82 | <BR><PRE> | |
83 | top | |
84 | title bold (18) "Here is the Title" | |
85 | title ital (14) "Here is a subtitle" | |
86 | title "Lyrics: Ann Author" "Composer: Me" | |
87 | bottom | |
88 | title "\(copyright) Copyright 2003 by Ann Author and Me" | |
89 | </PRE><BR> | |
90 | Again, in this simple example, | |
91 | you could use "header" and "footer" rather than "top" and "bottom." | |
92 | </P> | |
93 | <P> | |
94 | Now suppose the song is long enough to take several pages, | |
95 | and you would like to repeat the title along with the page number on | |
96 | all pages after the first. To accomplish this, you could add: | |
97 | <BR><PRE> | |
98 | top2 | |
99 | title "Here is the Title - \%" | |
100 | </PRE><BR> | |
101 | The \% is a special marker that will get replaced on each page | |
102 | with the current page number. While it can be used in any text string, | |
103 | it is probably only likely to be useful in these header and footer kinds | |
104 | of contexts. | |
105 | <A NAME="pagenum">Another special marker</A> | |
106 | is \#, which will be replaced by the page number of the final page. | |
107 | This could be useful for doing something like "page \% of \#." | |
108 | </P> | |
109 | <P> | |
110 | As a variation, perhaps you'd prefer the information at the bottom of | |
111 | the page. | |
112 | <BR><PRE> | |
113 | bottom2 | |
114 | title "This is the title" "Page \%" | |
115 | </PRE><BR> | |
116 | In this variation, two separate text strings are specified, | |
117 | so the first string will be left justified and the second will be | |
118 | right justified. | |
119 | </P> | |
120 | <P> | |
121 | Note that if you give a top2 or bottom2, | |
122 | but it turns out there aren't any additional pages, | |
123 | they would never actually get used. | |
124 | But it wouldn't hurt to have set them. | |
125 | </P> | |
126 | <P> | |
127 | Now let's consider a more complicated example, using both outer and inner | |
128 | contexts. Suppose you are publishing a book of songs, | |
129 | entitled "My Favorite Songs," and you want to put that title at the top | |
130 | of every page throughout the book, and you want a page number at the bottom | |
131 | of each page except the first. | |
132 | You could get that much using: | |
133 | <BR><PRE> | |
134 | header | |
135 | title "My Favorite Songs" | |
136 | header2 | |
137 | title "My Favorite Songs" | |
138 | footer2 | |
139 | title "\%" | |
140 | </PRE><BR> | |
141 | But suppose that in addition, you want each song to have its title on its | |
142 | first page in big print, and on subsequent pages in regular size print. | |
143 | To get this, at the beginning of each song, you could use top and top2: | |
144 | <BR><PRE> | |
145 | top | |
146 | title (18) "This is the Song Title" | |
147 | top2 | |
148 | title "This is the Song Title" | |
149 | </PRE><BR> | |
150 | </P> | |
151 | <P> | |
152 | A composition with multiple movements can be handled similarly, | |
153 | by giving header, footer, header2, and footer2 (or any subset thereof) | |
154 | for the composition as a whole, | |
155 | and then giving new top, bottom, top2, and bottom2 definition (or any subset) | |
156 | at the beginning of each new movement. | |
157 | </P> | |
158 | <P> | |
159 | These contexts are conceptually in a separate coordinate space, | |
160 | which will be overlaid on each page coordinate space. | |
161 | When in these contexts, | |
162 | <A HREF="tags.html#wintag">the _win special tag</A> | |
163 | applies to | |
164 | the header or footer window rather than the space between the header and | |
165 | footer as it does in the music context. | |
166 | </P> | |
167 | <P> | |
168 | Since headers or footers will expand as necessary, the | |
169 | <A HREF="tags.html#wintag">value of _win.s and _win.y</A> | |
170 | may be changed by any of the statements in the context. At any given | |
171 | time, they refer to the boundaries as defined by what has been printed | |
172 | so far. Thus, if the first line of a header contains an 18 point title, | |
173 | after that, _win.s would be 18 points below _win.n. | |
174 | It the header then contained a 12 point title, after that it | |
175 | would be 31 points below _win.n (12 points for the title string, plus 1 point | |
176 | of padding that is added between lines printed). | |
177 | </P> | |
178 | <P> | |
179 | In addition to the "title" commands used in the examples above, | |
180 | you can also use | |
181 | <A HREF="prnttext.html">the "print," "left," "right," or "center" commands.</A> | |
182 | In most | |
183 | cases you will want to use "nl" for the <I>location</I> on those commands | |
184 | to place things. If you don't specify a <I>location</I> for the first of these | |
185 | commands in a header or footer, Mup will start at the left margin, just far | |
186 | enough down from the top to accommodate the text string to be printed. | |
187 | These contexts can also contain settings of the | |
188 | <A HREF="param.html#font">font,</A> | |
189 | <A HREF="param.html#fontfam">fontfamily,</A> | |
190 | and | |
191 | <A HREF="param.html#size">size</A> | |
192 | parameters. | |
193 | These parameter values will be used until the end of the context or until | |
194 | set again to some other value. | |
195 | </P> | |
196 | <HR><P> | |
197 | <A HREF="newscore.html"><-- previous page</A> <A HREF="index.html">Table of Contents</A> <A HREF="macros.html">next page --></A> | |
198 | </P> | |
199 | </BODY></HTML> |