summaryrefslogtreecommitdiff
path: root/macros/generic/musixtex/doc/musixdoc/layout.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/generic/musixtex/doc/musixdoc/layout.tex')
-rw-r--r--macros/generic/musixtex/doc/musixdoc/layout.tex185
1 files changed, 185 insertions, 0 deletions
diff --git a/macros/generic/musixtex/doc/musixdoc/layout.tex b/macros/generic/musixtex/doc/musixdoc/layout.tex
new file mode 100644
index 0000000000..a22a88255c
--- /dev/null
+++ b/macros/generic/musixtex/doc/musixdoc/layout.tex
@@ -0,0 +1,185 @@
+\chapter{Managing the Layout of your Score}
+\section{Line and page breaking}\label{linebreak}
+If every bar ends with \verb|\bar| and no other line- or page-breaking commands
+are used, then the external program \verb|musixflx| will decide where to insert
+line and page breaks. Line breaks will only come at bar lines. The total
+number of lines will depend on the initial value of \verb|\elemskip|, which by
+default is \verb|6pt| in \verb|\normalmusicsize|.
+
+You can force a line or page break by replacing \keyindex{bar} with
+\keyindex{alaligne} or \keyindex{alapage} respectively. On the other hand,
+to forbid line-breaking at a particular bar, replace \verb|\bar|
+with \keyindex{xbar}. To force a line or page break where there is
+no bar line, use \keyindex{zalaligne} or \keyindex{zalapage}. To mark any
+mid-bar location as an optional line-breaking point, use \keyindex{zbar};
+to force the mid-bar bar line to the end of a system, use \keyindex{zzbar}.
+
+The heavy final double bar of a piece is one of the consequences of
+\keyindex{Endpiece} or \keyindex{Stoppiece}. If you just want to terminate
+the text with a simple bar, say \keyindex{stoppiece} or \keyindex{endpiece}.
+To terminate it with no bar line at all, code \keyindex{zstoppiece}.
+If you want to suppress right-justification of the last line of a score,
+use \keyindex{raggedstoppiece}; the bar line can be suppressed by
+using \keyindex{zendpiece} (or \keyindex{setemptybar}).
+
+Once you have stopped the score by any of these means, you may want to restart
+it, and there are several ways to do so. If you don't need to change the key
+signature, meter, or clef,
+you can use \keyindex{contpiece} for no indentation, or \keyindex{Contpiece}
+to indent by \keyindex{parindent}. If you do want to change some score
+attribute that takes up space, for example
+with \keyindex{generalsignature} after \verb|\stoppiece|, then to restart you
+must use \keyindex{startpiece}. However, if you don't want \verb|\barno| reset
+to 1, you must save its new starting value to \verb|\startbarno|. You may also
+wish to modify instrument names or \verb|\parindent| before restarting.
+
+Recall that thin-thin or thin-thick double bars or blank bar lines can be
+inserted without stopping by using the commands described in Section~\ref{doublebars}.
+Those commands can also be used before \verb|\stoppiece|,
+\verb|\alaligne|, or \verb|\alapage|
+
+\section{Page layout}
+Blank space above and below each staff is controlled by the dimension
+registers \keyindex{stafftopmarg} and \keyindex{staffbotmarg}. For more
+info see Chapter~\ref{LayoutParameters}.
+
+The macro \keyindex{raggedbottom} will remove all vertical glue and
+compact everything toward the top of page.
+In contrast, the macro \keyindex{normalbottom} will restore default
+behavior, in which vertical space between the systems is distributed
+so that the first staff
+on the page is all the way at the top and the last staff all the way at
+the bottom.
+The macro \keyindex{musicparskip} will allow the existing space between
+systems to increase by up to \verb|5\Interligne|.
+
+The following values of page-layout parameters will allow as much material
+as possible
+on a page, provided the printer supports these dimensions which
+imply approximately half-inch margins:
+
+\begin{center}
+\begin{tabular}{|l|l|}\hline
+\multicolumn{1}{|c|}{A$4$}&\multicolumn{1}{|c|}{letter}\\\hline
+\verb+\hsize=190mm+&\verb+\hsize=7.5in+\\\hline
+\verb+\vsize=270mm+&\verb+\vsize=10in+\\\hline
+\end{tabular}
+\end{center}
+\zkeyindex{parindent}\zkeyindex{hoffset}\zkeyindex{voffset}
+\zkeyindex{hsize}\zkeyindex{vsize}
+You may have to be more conservative if you have headlines or footlines
+or want
+even/odd-page asymmetry, such as with the \keyindex{rectoverso}
+command in \verb|musixsty.tex| (Section~\ref{musixsty}).
+If a score is going to be ``published'' at a public repository (such as
+\mbox{\textsc{imslp}}), you may want to allow for \emph{either}
+A$4$ \emph{or} letter paper, for example by setting the \verb|\hsize| to~190~mm
+and the \verb|\vsize| to~10~in.
+
+To generate a score in ``landscape''\index{landscape mode} mode, adjust the
+text-size parameters above accordingly (e.g., \verb+\hsize=10in+ and \verb+\vsize=7.5in+)
+and add a suitable \verb\papersize\ ``special'' to the \TeX\ output, as in
+\verb+\special{papersize=11in,8.5in}+.
+
+
+For \emph{any} values of
+\verb|\hsize| and \verb|\vsize|,
+material will normally be centered on the page by using
+command sequences such as the following, which simply split the difference between the page size and the text size,
+and then subtract one inch because of \TeX\ conventions:
+\begin{enumerate}
+\item[For A$4$ paper, portrait mode (210~mm $\times$ 297~mm):]\quad\\[-2ex]
+\begin{verbatim}
+\hoffset=210mm\advance\hoffset-\hsize\divide\hoffset2
+\advance\hoffset-1.0in
+\voffset=297mm\advance\voffset-\vsize\divide\voffset2
+\advance\voffset-1.0in
+\end{verbatim}
+\item[For letter-size paper, portrait mode (8.5~in $\times$ 11~in):] \quad\\[-2ex]
+\begin{verbatim}
+\hoffset=8.5in\advance\hoffset-\hsize\divide\hoffset2
+\advance\hoffset-1.0in
+\voffset=11in\advance\voffset-\vsize\divide\voffset2
+\advance\voffset-1.0in
+\end{verbatim}
+\end{enumerate}
+
+To determine the maximal dimensions that \emph{your} printer is capable of,
+process the standard file \verb|testpage.tex| with \LaTeX\ and
+print the result. The ``rulers'' on four sides will indicate
+how much of the one-inch ``margin'' material outside the frame can actually be printed.
+Your \verb|\hsize| and \verb|\vsize| parameters can be increased, or, if necessary, decreased
+accordingly. If your score is going to be printed by a publisher or a colleague, you can send
+\verb|testpage.pdf| to them to determine what margins are necessary for their
+printer.
+
+However, if the margins on the \verb|testpage| output are \emph{not}
+symmetric,
+the printer is mis-aligned.
+If this can't be corrected, the margin offsets will
+have to be adjusted. Ideally, this should be done in the \TeX\ configuration
+so all \TeX\ output will be corrected, but offsets can be adjusted
+for just \verb|musixtex| output using
+\verb|\advance\hoffset ...| and/or
+\verb|\advance\voffset ...|
+after the ``normal'' settings given above.
+
+
+
+
+\section{Page numbering, headers and footers}\index{page
+number}\index{footnote}
+
+There are no special page numbering facilities in \musixtex; you must rely on
+macros from plain \TeX. There is a count register in \TeX\ called
+\verb|\pageno|. It is always initialized to $1$ and incremented by one
+at every page break. By saying \keyindex{pageno}\verb|=|$n$, it can be reset to any
+value at any time, and will continue to be incremented from the new value.
+
+By default, \TeX\ will place a page number on
+every page, centered at the bottom. Unfortunately, this is not the preferred
+location according to any standard practice. To suppress this default
+behavior, say \keyindex{nopagenumbers}.
+
+One way to initiate page numbering in a more acceptable location is to take
+advantage of the facts that (a) \TeX\ prints the contents of the control sequences
+\keyindex{headline} and \keyindex{footline} at the top and bottom
+respectively of every page, and (b) the value of \verb|\pageno| can be printed by
+saying \keyindex{folio}. Therefore, for example, the following sequence of
+commands, issued anywhere before the end of the first page, will cause page
+numbers and any desired text to be printed at the top of every page,
+alternating between placement of the number at the left and right margins, and
+alternating between the two different text strings (the capitalized text in
+the example):
+
+\begin{quote}\begin{verbatim}
+\nopagenumbers
+\headline={\ifodd\pageno\rightheadline\else\leftheadline\fi}%
+\def\rightheadline{\tenrm\hfil RIGHT RUNNING HEAD\hfil\folio}%
+\def\leftheadline{\tenrm\folio\hfil LEFT RUNNING HEAD\hfil}%
+\voffset=2\baselineskip
+\end{verbatim}\end{quote}
+
+\section{Controlling the total number of systems and pages}\index{page/line layout}
+
+Once all the notes are entered into a \musixtex\ score, it would be convenient
+if there were a simple sequence of commands to
+cause a specified number of systems to be uniformly distributed over a
+specified number of pages. Unfortunately that's not directly
+possible\footnote{It \textit{is} possible in \textbf{PMX}.}.
+Rather, some trial and error will usually be required to achieve the desired final
+layout. To this end, some combination of the following strategies may be used:
+
+ \begin{enumerate}\setlength{\itemsep}{0ex}
+ \item Assign a value to the count register \keyindex{linegoal} representing
+the total number of systems. The count register \keyindex{mulooseness} must be $0$ if using
+\verb|\linegoal|.
+ \item Explicitly force line and page breaking as desired, using
+the macros \verb|\alaligne|, \verb|\alapage|, \verb|\zalaligne|
+or \verb|\zalapage|.
+ \item Adjust both \keyindex{mulooseness} and the initial value of
+\keyindex{elemskip}: increasing \verb|\mulooseness| from its default of 0 will
+increase the total number of systems, while changing the initial value of
+\verb|\elemskip| (use \verb|\showthe\elemskip| to find its default value) may change the
+total number of systems accordingly.
+ \end{enumerate}