\chapter{Skipping Spaces and Shifting Symbols}\label{spacing} We've already mentioned that when coding a sequence of notes inside a particular pair \verb|\notes...\en|, the command \keyindex{sk} can be used to skip horizontally by one \keyindex{noteskip}. This would be used for example to align the third note in one staff with the second note in another. Skipping in this manner is logically equivalent to inserting blank space; as such, the space must be recorded by \musixtex. This command and the others discussed here will do just that, so that \verb|musixflx| can properly account for the added space. To skip by one \verb|noteskip| while in a collective coding sequence, you may simply insert an asterisk (``\verb|*|''\index{*}). This would have the same effect as stopping the sequence, entering {\Bslash sk}, then restarting. For example, \begin{music} \setstaffs12 \startextract \Notes\hu{e*f*g}|\qu{gghhii}\en \zendextract \end{music} \noindent was coded as \verb|\Notes\hu{e*f*g}|{\tt |}\verb|\qu{gghhii}\en| To skip forward by one half of a \verb|\noteskip|, use \keyindex{hsk}. To insert spacing of approximately one note head width, you can use \keyindex{qsk}, or for two-thirds, half or one-quarter of that, \keyindex{tqsk}, \keyindex{hqsk} or \keyindex{qqsk}, respectively. To skip backward by one \verb|\noteskip|, use \keyindex{bsk}. More generally, to skip an arbitrary distance, use \keyindex{off}\verb|{|$D$\verb|}| where $D$ is any \itxem{scalable dimension}, e.g.,~\verb|\noteskip| or \verb|\elemskip|. Indeed, if you look in the \musixtex\ source, you will see that \verb|\off| is the basic control sequence used to define all the other skip commands. The foregoing commands only work \ital{inside} a \verb|\notes...\en| group. A different set of commands must be used to insert space \ital{outside} such a group. \keyindex{nspace} produces an additional spacing of half a note head width; \keyindex{qspace}, one note head width. These are ``hard'' spacings. To insert an arbitrary amount of hard space outside a \verb|\notes...\en| group, use \keyindex{hardspace}\verb|{|$d$\verb|}| where $d$ is any fixed dimension\label{hardspace}. The foregoing three commands are the only space-generating commands that insert hard space; all the others insert scalable spacing: \keyindex{elemskip}, \keyindex{beforeruleskip}, \keyindex{afterruleskip}, \keyindex{noteskip} and their multiples. Finally, to insert scalable spacing outside a \verb|\notes...\en| group, use \keyindex{addspace}\verb|{|$D$\verb|}|. The argument may be negative, in which case the normal spacing will be reduced. For example, after \keyindex{changecontext}, many users prefer to reduce the space with a command like \verb|addspace{-|\keyindex{afterruleskip}\verb|}|. There is yet another set of commands for simply shifting a note, symbol, or sequence inside \verb|\notes...\en| without adding or subtracting any space. To shift by one note head width, you may write \keyindex{roff}\verb|{|\ital{any macro}\verb|}| or \keyindex{loff}\verb|{|\dots\verb|}| for a right or left shift respectively. To shift by half of a note head width, use \keyindex{hroff}\verb|{|\dots\verb|}| or \keyindex{hloff}\verb|{|\dots\verb|}|. For example, to get %\check \begin{music}\nostartrule \startextract \Notes\roff{\zwh g}\qu g\qu h\qu i\en \zendextract \end{music} \noindent you would code: %\check \begin{quote}\begin{verbatim} \Notes\roff{\zwh g}\qu g\qu h\qu i\en \end{verbatim}\end{quote} \noindent To shift notes or symbols by an arbitrary amount, use \keyindex{roffset}\verb|{|$N$\verb|}{|\dots\verb|}| or \keyindex{loffset}\verb|{|$N$\verb|}{|\dots\verb|}|, where $N$ is the distance to be shifted in note head widths. For example \begin{music}\nostartrule \startextract \Notes\roffset{1.5}{\zwh g}\qu g\qu h\qu i\en \zendextract \end{music} \noindent was coded as \begin{quote}\begin{verbatim} \Notes\roffset{1.5}{\zwh g}\qu g\qu h\qu i\en \end{verbatim}\end{quote} An important feature of these shift commands is that the offset, whether implicit or explicit, is \ital{not} added to the total spacing amount, but any spacing due to the included commands is.