summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-05-03 22:18:25 +0000
committerKarl Berry <karl@freefriends.org>2016-05-03 22:18:25 +0000
commitc6bfcca248f6a0ceacc867b2e70068e760a40d86 (patch)
tree381e83c0c202d556281da2f9fb9a7a1eeca41f50
parent229d2a84824108e60025d12c971370b90ee01578 (diff)
gregoriotex (3may16)
git-svn-id: svn://tug.org/texlive/trunk@40872 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/luatex/gregoriotex/Appendix_Font_Tables.tex84
-rw-r--r--Master/texmf-dist/doc/luatex/gregoriotex/Command_Index_User.tex735
-rw-r--r--Master/texmf-dist/doc/luatex/gregoriotex/Command_Index_gregorio.tex846
-rw-r--r--Master/texmf-dist/doc/luatex/gregoriotex/Command_Index_internal.tex901
-rw-r--r--Master/texmf-dist/doc/luatex/gregoriotex/Gabc.tex152
-rw-r--r--Master/texmf-dist/doc/luatex/gregoriotex/GregorioNabcRef-4_1_1.pdfbin282194 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/luatex/gregoriotex/GregorioNabcRef-4_2_0-beta1.pdfbin0 -> 280390 bytes
-rw-r--r--Master/texmf-dist/doc/luatex/gregoriotex/GregorioNabcRef.tex183
-rw-r--r--Master/texmf-dist/doc/luatex/gregoriotex/GregorioRef-4_1_1.pdfbin669415 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/luatex/gregoriotex/GregorioRef-4_2_0-beta1.pdfbin0 -> 712227 bytes
-rw-r--r--Master/texmf-dist/doc/luatex/gregoriotex/GregorioRef.lua112
-rw-r--r--Master/texmf-dist/doc/luatex/gregoriotex/GregorioRef.tex199
-rw-r--r--Master/texmf-dist/fonts/source/gregoriotex/granapadano-base.sfd (renamed from Master/texmf-dist/fonts/source/gregoriotex/parmesan-base.sfd)589
-rw-r--r--Master/texmf-dist/fonts/source/gregoriotex/greciliae-base.sfd648
-rw-r--r--Master/texmf-dist/fonts/source/gregoriotex/gregorio-base.sfd581
-rw-r--r--Master/texmf-dist/fonts/source/gregoriotex/squarize.py687
-rw-r--r--Master/texmf-dist/fonts/truetype/public/gregoriotex/granapadano-op.ttf (renamed from Master/texmf-dist/fonts/truetype/public/gregoriotex/parmesan-op.ttf)bin1143876 -> 1190560 bytes
-rw-r--r--Master/texmf-dist/fonts/truetype/public/gregoriotex/granapadano.ttf (renamed from Master/texmf-dist/fonts/truetype/public/gregoriotex/parmesan.ttf)bin1154784 -> 1201976 bytes
-rw-r--r--Master/texmf-dist/fonts/truetype/public/gregoriotex/greciliae-op.ttfbin1007212 -> 1047512 bytes
-rw-r--r--Master/texmf-dist/fonts/truetype/public/gregoriotex/greciliae.ttfbin976536 -> 1015316 bytes
-rw-r--r--Master/texmf-dist/fonts/truetype/public/gregoriotex/greextra.ttfbin24748 -> 24748 bytes
-rw-r--r--Master/texmf-dist/fonts/truetype/public/gregoriotex/gregall.ttfbin140100 -> 140096 bytes
-rw-r--r--Master/texmf-dist/fonts/truetype/public/gregoriotex/gregorio-op.ttfbin1024560 -> 1071964 bytes
-rw-r--r--Master/texmf-dist/fonts/truetype/public/gregoriotex/gregorio.ttfbin1011712 -> 1058480 bytes
-rw-r--r--Master/texmf-dist/fonts/truetype/public/gregoriotex/gresgmodern.ttfbin184744 -> 184740 bytes
-rw-r--r--Master/texmf-dist/tex/lualatex/gregoriotex/gregoriosyms.sty68
-rw-r--r--Master/texmf-dist/tex/lualatex/gregoriotex/gregoriotex.sty137
-rw-r--r--Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-chars.tex214
-rw-r--r--Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-main.tex2468
-rw-r--r--Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-nabc.lua2
-rw-r--r--Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-nabc.tex44
-rw-r--r--Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-signs.lua18
-rw-r--r--Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-signs.tex3204
-rw-r--r--Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-spaces.tex2714
-rw-r--r--Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-syllable.tex1931
-rw-r--r--Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-symbols.lua2
-rw-r--r--Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-symbols.tex123
-rw-r--r--Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex.lua336
-rw-r--r--Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex.tex190
-rw-r--r--Master/texmf-dist/tex/luatex/gregoriotex/gsp-default.tex58
40 files changed, 9138 insertions, 8088 deletions
diff --git a/Master/texmf-dist/doc/luatex/gregoriotex/Appendix_Font_Tables.tex b/Master/texmf-dist/doc/luatex/gregoriotex/Appendix_Font_Tables.tex
index 110fbfa6cf6..78705d2bf61 100644
--- a/Master/texmf-dist/doc/luatex/gregoriotex/Appendix_Font_Tables.tex
+++ b/Master/texmf-dist/doc/luatex/gregoriotex/Appendix_Font_Tables.tex
@@ -7,7 +7,7 @@
\subsection{Score Font Glyphs}
The following table lists all of the score glyphs available in the greciliae,
-gregorio, and parmesan fonts, and any variant glyphs contained within. If a
+gregorio, and granapadano fonts, and any variant glyphs contained within. If a
variant glyph is unavailable in a given font, it will be listed as
{\itshape\small N/A} under the appropriate column. Some of the glyphs listed
are representative of sets of glyphs differentiated by the ambitus of the
@@ -20,46 +20,46 @@ horizontal episema (activated using {\ttfamily\char`_} in gabc) are excluded fro
this table.
\newcommand\ScoreFontTable[1]{%
- \begin{longtable}{llccccccc}
- \caption{Score Glyphs}\\
- &&&&&\multicolumn{4}{c}{\bfseries Variants}\\
- \hhline{>{\arrayrulecolor{lightgray}}----->{\arrayrulecolor{black}}----}
- {\bfseries Glyph Name}&%
- {\scriptsize\bfseries Sample gabc}&%
- {\scriptsize\bfseries greciliae}&%
- {\scriptsize\bfseries gregorio}&%
- {\scriptsize\bfseries parmesan}&%
- {\scriptsize\bfseries Name}&%
- {\scriptsize\bfseries greciliae}&%
- {\scriptsize\bfseries gregorio}&%
- {\scriptsize\bfseries parmesan}\\
- \hline
- \endfirsthead
- &&&&&\multicolumn{4}{c}{\bfseries Variants}\\
- \hhline{>{\arrayrulecolor{lightgray}}----->{\arrayrulecolor{black}}----}
- {\bfseries Glyph Name}&%
- {\scriptsize\bfseries Sample gabc}&%
- {\scriptsize\bfseries greciliae}&%
- {\scriptsize\bfseries gregorio}&%
- {\scriptsize\bfseries parmesan}&%
- {\scriptsize\bfseries Name}&%
- {\scriptsize\bfseries greciliae}&%
- {\scriptsize\bfseries gregorio}&%
- {\scriptsize\bfseries parmesan}\\
- \hline
- \endhead
- \directlua{GregorioRef.emit_score_glyphs(#1)}
- \end{longtable}
+ \begin{longtable}{llccccccc}
+ \caption{Score Glyphs}\\
+ &&&&&\multicolumn{4}{c}{\bfseries Variants}\\
+ \hhline{>{\arrayrulecolor{lightgray}}----->{\arrayrulecolor{black}}----}
+ {\bfseries Glyph Name}&%
+ {\scriptsize\bfseries Sample gabc}&%
+ {\scriptsize\bfseries greciliae}&%
+ {\scriptsize\bfseries gregorio}&%
+ {\scriptsize\bfseries granapadano}&%
+ {\scriptsize\bfseries Name}&%
+ {\scriptsize\bfseries greciliae}&%
+ {\scriptsize\bfseries gregorio}&%
+ {\scriptsize\bfseries granapadano}\\
+ \hline
+ \endfirsthead
+ &&&&&\multicolumn{4}{c}{\bfseries Variants}\\
+ \hhline{>{\arrayrulecolor{lightgray}}----->{\arrayrulecolor{black}}----}
+ {\bfseries Glyph Name}&%
+ {\scriptsize\bfseries Sample gabc}&%
+ {\scriptsize\bfseries greciliae}&%
+ {\scriptsize\bfseries gregorio}&%
+ {\scriptsize\bfseries granapadano}&%
+ {\scriptsize\bfseries Name}&%
+ {\scriptsize\bfseries greciliae}&%
+ {\scriptsize\bfseries gregorio}&%
+ {\scriptsize\bfseries granapadano}\\
+ \hline
+ \endhead
+ \directlua{GregorioRef.emit_score_glyphs(#1)}
+ \end{longtable}
}%
-\ScoreFontTable{'greciliae','gregorio','parmesan'}
+\ScoreFontTable{'greciliae','gregorio','granapadano'}
\subsection{Dominican Score Font Glyphs}
The following table lists all of the score glyphs available in the Dominican
-versions of the greciliae, gregorio, and parmesan fonts in the same vein as
+versions of the greciliae, gregorio, and granapadano fonts in the same vein as
the prior table.
-\ScoreFontTable{'greciliaeOp','gregorioOp','parmesanOp'}
+\ScoreFontTable{'greciliaeOp','gregorioOp','granapadanoOp'}
\subsection{Extra Glyphs}\label{subsec:greextra}
@@ -69,14 +69,14 @@ used in the verses or in the \TeX{} document, and miscellaneous glyphs like
decorative lines for more specialized use.
\begin{longtable}{lc|lc}
- \caption{Extra Glyphs}\\
- {\bfseries Glyph Name}&{\bfseries Glyph}&{\bfseries Glyph Name}&{\bfseries Glyph}\\
- \hline
- \endfirsthead
- {\bfseries Glyph Name}&{\bfseries Glyph}&{\bfseries Glyph Name}&{\bfseries Glyph}\\
- \hline
- \endhead
- \directlua{GregorioRef.emit_extra_glyphs('greextra')}
+ \caption{Extra Glyphs}\\
+ {\bfseries Glyph Name}&{\bfseries Glyph}&{\bfseries Glyph Name}&{\bfseries Glyph}\\
+ \hline
+ \endfirsthead
+ {\bfseries Glyph Name}&{\bfseries Glyph}&{\bfseries Glyph Name}&{\bfseries Glyph}\\
+ \hline
+ \endhead
+ \directlua{GregorioRef.emit_extra_glyphs('greextra')}
\end{longtable}
\end{landscape}
diff --git a/Master/texmf-dist/doc/luatex/gregoriotex/Command_Index_User.tex b/Master/texmf-dist/doc/luatex/gregoriotex/Command_Index_User.tex
index 4c7380a69c2..ae1dbd80222 100644
--- a/Master/texmf-dist/doc/luatex/gregoriotex/Command_Index_User.tex
+++ b/Master/texmf-dist/doc/luatex/gregoriotex/Command_Index_User.tex
@@ -18,21 +18,21 @@ The optional arguments are:
\bigskip\rowcolors{1}{lightgray}{lightgray}
\begin{tabular}{lp{10cm plus .5cm}}
- Argument & Description \\
- \hline
- \texttt{debug} & Debug messages will be printed to the output log. Can also be specified as \verb:debug={<types>}:, in which case only messages of the types listed will be printed to the output log.\\
- \hline
- \texttt{nevercompile} & Default. The classic behavior of Gregorio\TeX. The user is %
- responsible for compiling gabc scores into gtex files.\\
- \texttt{autocompile} & Gregorio\TeX\ will automatically compile gtex files from gabc %
- files when necessary. If the gabc has been modified, or the %
- gtex has an outdated version, or the gtex file does not exist, %
- THEN Gregorio\TeX\ will compile a new gtex file.\\
- \texttt{forcecompile} & Gregorio\TeX\ will compile all scores from their gabc files.\\
- \hline
- \texttt{allowdeprecated=false} & Force all deprecated commands to raise a package error %
- rather than a warning. This allows the user to ensure that their file is %
- compliant with the current version of Gregorio\TeX.\\
+ Argument & Description \\
+ \hline
+ \texttt{debug} & Debug messages will be printed to the output log. Can also be specified as \verb:debug={<types>}:, in which case only messages of the types listed will be printed to the output log.\\
+ \hline
+ \texttt{nevercompile} & Default. The classic behavior of Gregorio\TeX. The user is %
+ responsible for compiling gabc scores into gtex files.\\
+ \texttt{autocompile} & Gregorio\TeX\ will automatically compile gtex files from gabc %
+ files when necessary. If the gabc has been modified, or the %
+ gtex has an outdated version, or the gtex file does not exist, %
+ THEN Gregorio\TeX\ will compile a new gtex file.\\
+ \texttt{forcecompile} & Gregorio\TeX\ will compile all scores from their gabc files.\\
+ \hline
+ \texttt{allowdeprecated=false} & Force all deprecated commands to raise a package error %
+ rather than a warning. This allows the user to ensure that their file is %
+ compliant with the current version of Gregorio\TeX.\\
\end{tabular}\bigskip
\textbf{Note:} \verb=nevercompile=, \verb=autocompile=, and
@@ -73,27 +73,27 @@ Once you've included the package in your document (as explained above) the follo
Macro for including scores. Works on both gabc and tex files.
\begin{argtable}
- \#1 & \texttt{n} & Optional. \#2 will be included as is. \\
- & \texttt{a} & Optional. Gregorio\TeX\ will automatically compile gabc files if necessary.\\
- & \texttt{f} & Optional. Forces Gregorio\TeX\ to compile the gabc file.\\
- \#2 & string & Relative or absolute path to the score.\\
+ \#1 & \texttt{n} & Optional. \#2 will be included as is. \\
+ & \texttt{a} & Optional. Gregorio\TeX\ will automatically compile gabc files if necessary.\\
+ & \texttt{f} & Optional. Forces Gregorio\TeX\ to compile the gabc file.\\
+ \#2 & string & Relative or absolute path to the score.\\
\end{argtable}
Example:\par\medskip
\begin{latexcode}
- \gregorioscore[n]{TecumPrincipium.gtex}
- \gregorioscore{Chant/VirgoVirginum.gabc}
- \gregorioscore{/home/user/chant/AdTeLevavi}
- \gregorioscore[a]{AveMaria}
-
- %The following lines include the same score:
- \gregorioscore{Christus}
- \gregorioscore{Christus.gtex}
- \gregorioscore{./Christus}
- \gregorioscore{./Christus.gabc}
-
- %With the optional arg [f], #2 must be a file usable by \TeX.
- \gregorioscore[f]{TecumPrincipium.gabc} % Wrong
+ \gregorioscore[n]{TecumPrincipium.gtex}
+ \gregorioscore{Chant/VirgoVirginum.gabc}
+ \gregorioscore{/home/user/chant/AdTeLevavi}
+ \gregorioscore[a]{AveMaria}
+
+ %The following lines include the same score:
+ \gregorioscore{Christus}
+ \gregorioscore{Christus.gtex}
+ \gregorioscore{./Christus}
+ \gregorioscore{./Christus.gabc}
+
+ %With the optional arg [f], #2 must be a file usable by \TeX.
+ \gregorioscore[f]{TecumPrincipium.gabc} % Wrong
\end{latexcode}
\textbf{Important:} For the sake of clarity it is recommended that the
@@ -114,7 +114,7 @@ compiled are:
\begin{itemize}
\item If a gtex file does not exist.
\item If the modification time of the gabc file is newer than its
- corresponding gtex file.
+ corresponding gtex file.
\item If the version of the gtex file is outdated.
\end{itemize}
@@ -131,32 +131,32 @@ A macro to change the behavior of the way Gregorio\TeX\ includes scores. This i
\begin{argtable}
- \#1 & \texttt{force} & all later calls of \verb=\gregorioscore= will compile the gabc
+ \#1 & \texttt{force} & all later calls of \verb=\gregorioscore= will compile the gabc
file into a gtex file.\\
- & \texttt{auto} & all later calls of \verb=\gregorioscore= will use Gregorio\TeX's
+ & \texttt{auto} & all later calls of \verb=\gregorioscore= will use Gregorio\TeX's
automatic compilation of gabc files.\\
- & \texttt{never} & all later calls of \verb=\gregorioscore= will include the score
+ & \texttt{never} & all later calls of \verb=\gregorioscore= will include the score
without doing anything else.
\end{argtable}
\medskip This macro can be combined in the same document with different arguments to
switch between different behaviors: \par\medskip
\begin{latexcode}
- \usepackage{gregoriotex} % [nevercompile] is the default.
- ----
- \gregorioscore{TecumPrincipium} % gabc never compiled.
- \gregorioscore[f]{TecumPrincipium} % gabc always compiled.
- \gregorioscore[a]{TecumPrincipium} % gabc auto compiled.
-
- \gresetcompilegabc{auto}
- \gregorioscore{TecumPrincipium} % gabc auto compiled.
- \gregorioscore[n]{TecumPrincipium} % gabc never compiled.
- \gregorioscore[f]{TecumPrincipium} % gabc always compiled.
-
- \gresetcompilegabc{force}
- \gregorioscore{TecumPrincipium} % gabc always compiled.
- \gregorioscore[n]{TecumPrincipium} % gabc never compiled.
- \gregorioscore[a]{TecumPrincipium} % gabc auto compiled.
+ \usepackage{gregoriotex} % [nevercompile] is the default.
+ ----
+ \gregorioscore{TecumPrincipium} % gabc never compiled.
+ \gregorioscore[f]{TecumPrincipium} % gabc always compiled.
+ \gregorioscore[a]{TecumPrincipium} % gabc auto compiled.
+
+ \gresetcompilegabc{auto}
+ \gregorioscore{TecumPrincipium} % gabc auto compiled.
+ \gregorioscore[n]{TecumPrincipium} % gabc never compiled.
+ \gregorioscore[f]{TecumPrincipium} % gabc always compiled.
+
+ \gresetcompilegabc{force}
+ \gregorioscore{TecumPrincipium} % gabc always compiled.
+ \gregorioscore[n]{TecumPrincipium} % gabc never compiled.
+ \gregorioscore[a]{TecumPrincipium} % gabc auto compiled.
\end{latexcode}
\macroname{\textbackslash gabcsnippet}{\{\#1\}}{gregoriotex-main.tex}
@@ -164,12 +164,12 @@ Converts the gabc notation specified in \texttt{\#1} to Gregorio\TeX\ and
includes it directly in the document.
\begin{argtable}
- \#1 & string & The gabc to insert into the document.\\
+ \#1 & string & The gabc to insert into the document.\\
\end{argtable}
\medskip For example:\par\medskip
\begin{latexcode}
- \gabcsnippet{(c3) Al(eg~)le(gv.fhg)lu(efe___)ia(e.) (::)}
+ \gabcsnippet{(c3) Al(eg~)le(gv.fhg)lu(efe___)ia(e.) (::)}
\end{latexcode}
@@ -199,8 +199,8 @@ disabled by default.
Macro to enable or disable the point-and-click feature.
\begin{argtable}
- \#1 & \texttt{on} & Enable point-and-click link generation.\\
- & \texttt{off} & Disable point-and-click link generation (default).
+ \#1 & \texttt{on} & Enable point-and-click link generation.\\
+ & \texttt{off} & Disable point-and-click link generation (default).
\end{argtable}
This feature may be switched on and off as desired between scores.
@@ -213,14 +213,14 @@ While the default size for Gregorio scores is designed to approximate that found
Macro to adjust the size of the staff.
\begin{argtable}
- \#1 & integer & The size of the staff lines. Default value is 17. Higher numbers yield larger staves.
+ \#1 & integer & The size of the staff lines. Default value is 17. Higher numbers yield larger staves.
\end{argtable}
\macroname{\textbackslash grechangestafflinethickness}{\{\#1\}}{gregoriotex-spaces.tex}
Macro to adjust the thickness of the staff lines.
\begin{argtable}
- \#1 & integer & The thickness of the staff lines. The default value is same as staff size.
+ \#1 & integer & The thickness of the staff lines. The default value is same as staff size.
\end{argtable}
@@ -231,54 +231,56 @@ In addition to providing control over the overall size of your scores, Gregorio\
Macro to create one of Gregorio\TeX’s distances. Used to initialize distances in a space configuration file. For an example of such a file, please see \textit{gsp-default.tex}, which contains the default spacing configuration for Gregorio\TeX.
\begin{argtable}
- \#1 & string & The name of the distance to be changed. See \nameref{distances} below.\\
- \#2 & string & The distance in string format. \textbf{Note:} You cannot use a length register for this argument. You \emph{must} use a string because of the way that Gregorio\TeX\ handles spaces.\\
- \#3 & \texttt{fixed} & Distance will not scale when staff size is changed.\\
- & \texttt{scalable} & Distance will scale when staff size is changed.
+ \#1 & string & The name of the distance to be changed. See \nameref{distances} below.\\
+ \#2 & string & The distance in string format. \textbf{Note:} You cannot use a length register for this argument. You \emph{must} use a string because of the way that Gregorio\TeX\ handles spaces.\\
+ \#3 & \texttt{fixed} & Distance will not scale when staff size is changed.\\
+ & \texttt{scalable} & Distance will scale when staff size is changed.\\
+ & \texttt{inherited} & Distance will inherit its value from another distance. When this argument is used, then \#2 should be the name of another Gregorio\TeX\ distance.
\end{argtable}
\macroname{\textbackslash grechangedim}{\{\#1\}\{\#2\}\{\#3\}}{gregoriotex-spaces.tex}
Macro to change one of Gregorio\TeX’s distances. This function will check to make sure the distance you are trying to change exists first.
\begin{argtable}
- \#1 & string & The name of the distance to be changed. See \nameref{distances} below.\\
- \#2 & string & The distance in string format. \textbf{Note:} You cannot use a length register for this argument. You \emph{must} use a string because of the way that Gregorio\TeX\ handles spaces.\\
- \#3 & \texttt{fixed} & Distance will not scale when staff size is changed.\\
- & \texttt{scalable} & Distance will scale when staff size is changed.
+ \#1 & string & The name of the distance to be changed. See \nameref{distances} below.\\
+ \#2 & string & The distance in string format. \textbf{Note:} You cannot use a length register for this argument. You \emph{must} use a string because of the way that Gregorio\TeX\ handles spaces.\\
+ \#3 & \texttt{fixed} & Distance will not scale when staff size is changed.\\
+ & \texttt{scalable} & Distance will scale when staff size is changed.\\
+ & \texttt{inherited} & Distance will inherit its value from another distance. When this argument is used, then \#2 should be the name of another Gregorio\TeX\ distance.
\end{argtable}
\macroname{\textbackslash grescaledim}{\{\#1\}\{\#2\}}{gregoriotex-spaces.tex}
Macro to turn on or off scaling with the staff size for a particular distance.
\begin{argtable}
- \#1 & string & The name of the distance for which scaling is to changed. See \nameref{distances} below.\\
- \#2 & \texttt{yes}/\texttt{true}/\texttt{on}/\texttt{scalable} & Choose just one of the given keywords. Scale the distance when changing the size of the staff.\\
- & string not in list above & Do not scale the distance when changing the size of the staff.
+ \#1 & string & The name of the distance for which scaling is to changed. See \nameref{distances} below.\\
+ \#2 & \texttt{yes}/\texttt{true}/\texttt{on}/\texttt{scalable} & Choose just one of the given keywords. Scale the distance when changing the size of the staff.\\
+ & string not in list above & Do not scale the distance when changing the size of the staff.
\end{argtable}
\textbf{Nota bene:} This macro also can be used to change whether or not the staff line thickness scales with the staff size by specifying \texttt{stafflinefactor} for the first argument.
\macroname{\textbackslash grechangecount}{\{\#1\}\{\#2\}}{gregoriotex-spaces.tex}
-Macro to change one of Gregorio\TeX’s counts (numeric values).
+Macro to change one of Gregorio\TeX’s counts or penalities (numeric values).
\begin{argtable}
- \#1 & string & The name of the count to be changed. See \nameref{counts} below.\\
- \#2 & integer & The new value.\\
+ \#1 & string & The name of the count to be changed. See \nameref{counts} and \nameref{penalties} below.\\
+ \#2 & integer & The new value.\\
\end{argtable}
\macroname{\textbackslash greloadspaceconf}{\{\#1\}}{gregoriotex-spaces.tex}
Macro to load a space configuration file. Space configuration file names have the format \verb=gsp-identifier.tex= and must be in the same directory as your project or in your texmf directory.
\begin{argtable}
- \#1 & string & The identifier of the space configuration file.
+ \#1 & string & The identifier of the space configuration file.
\end{argtable}
Example:\par\medskip
\begin{latexcode}
- % loads gsp-default.tex, the default configuration file
- \greloadspaceconf{default}
- % loads a custom configuration called gsp-myspaces.tex
- \greloadspaceconf{myspaces}
+ % loads gsp-default.tex, the default configuration file
+ \greloadspaceconf{default}
+ % loads a custom configuration called gsp-myspaces.tex
+ \greloadspaceconf{myspaces}
\end{latexcode}
\macroname{\textbackslash greconffactor}{}{gsp-default.tex}
@@ -289,9 +291,9 @@ Macro to configure line height expansion behavior when notes appear
above or below the staff lines.
\begin{argtable}
- \#1 & \texttt{variable} & Expand lines within a score independently
- of each other \\
- & \texttt{uniform} & Expand all lines within a score uniformly
+ \#1 & \texttt{variable} & Expand lines within a score independently
+ of each other \\
+ & \texttt{uniform} & Expand all lines within a score uniformly
\end{argtable}
By default, Gregorio\TeX{} uses \texttt{variable} line expansion. This
@@ -311,14 +313,14 @@ necessary.
\begin{small}
\begin{framed}
- \textit{For experts only:}\bigskip
-
- It is possible to suppress the line height computation and just use
- whatever has been computed from the previous run. If you are sure
- that the score line heights haven't changed from the previous run,
- define the \verb=\greskipheightcomputation= control sequence before
- including the Gregorio\TeX{} package. This will save a little bit
- of time per run.
+ \textit{For experts only:}\bigskip
+
+ It is possible to suppress the line height computation and just use
+ whatever has been computed from the previous run. If you are sure
+ that the score line heights haven't changed from the previous run,
+ define the \verb=\greskipheightcomputation= control sequence before
+ including the Gregorio\TeX{} package. This will save a little bit
+ of time per run.
\end{framed}
\end{small}
@@ -329,10 +331,10 @@ horizontal episema that surround a line on which a ledger line may appear
when the ledger line \textit{does not} appear.
\begin{argtable}
- \#1 & \texttt{enable} & Ledger line heuristics will be used in placing
- the horizontal episema \\
- & \texttt{disable} & Ledger line heuristics will not be used in
- placing the horizontal episema \\
+ \#1 & \texttt{enable} & Ledger line heuristics will be used in placing
+ the horizontal episema \\
+ & \texttt{disable} & Ledger line heuristics will not be used in
+ placing the horizontal episema \\
\end{argtable}
Because of the complexity of computing distances exactly, the heuristic may
@@ -352,36 +354,36 @@ system should act as if the ledger line exists (\texttt{1}) or not
Macro for changing the color of the staff lines. The two most common colors you're going to want to use are \texttt{gregoriocolor} (see \nameref{colors}) and \texttt{black} (the default).
\begin{argtable}
- \#1 & color name & The color of the staff lines
+ \#1 & color name & The color of the staff lines
\end{argtable}
\macroname{\textbackslash gresetlines}{\{\#1\}}{gregoriotex-main.tex}
Macro for setting whether the staff lines should be rendered or not.
\begin{argtable}
- \#1 & \texttt{visible} & The staff lines should be printed (default)\\
- & \texttt{invisible} & The staff lines should not be printed
+ \#1 & \texttt{visible} & The staff lines should be printed (default)\\
+ & \texttt{invisible} & The staff lines should not be printed
\end{argtable}
\macroname{\textbackslash gresetlinesbehindpunctumcavum}{\{\#1\}}{gregoriotex-signs.tex}
Macro for setting whether the staff lines behind a punctum cavum should be shown or not.
\begin{argtable}
- \#1 & \texttt{visible} & The staff lines behind a punctum cavum should be printed (Plain \TeX\ default)\\
- & \texttt{invisible} & The staff lines behind a punctum cavum should not be printed (\LaTeX\ default)
+ \#1 & \texttt{visible} & The staff lines behind a punctum cavum should be printed (Plain \TeX\ default)\\
+ & \texttt{invisible} & The staff lines behind a punctum cavum should not be printed (\LaTeX\ default)
\end{argtable}
\macroname{\textbackslash gresetlinesbehindalteration}{\{\#1\}}{gregoriotex-signs.tex}
Macro for setting whether the staff lines behind an alternation (\ie, an accidental) should be shown or not.
\begin{argtable}
- \#1 & \texttt{visible} & The staff lines behind an alteration should be printed (Plain \TeX\ default)\\
- & \texttt{invisible} & The staff lines behind an alteration should not be printed (\LaTeX\ default)
+ \#1 & \texttt{visible} & The staff lines behind an alteration should be printed (Plain \TeX\ default)\\
+ & \texttt{invisible} & The staff lines behind an alteration should not be printed (\LaTeX\ default)
\end{argtable}
\subsubsection{Score Font}
-Gregorio\TeX\ currently supports 3 different fonts for the glyphs in a score (neumes, clefs, alterations, \etc): Greciliae (a customized version of Caeciliae by Fr.\ Matthew Spencer, OSJ), Gregorio, and Parmesan (developed for Lilypond by Juergen Reuter).
+Gregorio\TeX\ currently supports 3 different fonts for the glyphs in a score (neumes, clefs, alterations, \etc): Greciliae (a customized version of Caeciliae by Fr.\ Matthew Spencer, OSJ), Gregorio, and Grana Padano (née Parmesan, developed for Lilypond by Juergen Reuter).
\macroname{\textbackslash gresetgregoriofont}{[\optional{\#1}]\{\#2\}}{gregoriotex-main.tex}
Set the font used for the neumes. The optional argument \texttt{[\#1]}
@@ -391,11 +393,11 @@ available alternate font/rule set is \texttt{op} for Dominican neumes.
Note that the font will be looked up by name through luaotfload, see the documentation of luaotfload for what it implies.
\begin{argtable}
- \#1 & \textit{(omitted)} & Use the normal font and rule set (default).\\
- & \texttt{op} & Use the alternate Dominican font/rule set.\\
- \#2 & \texttt{greciliae} & Use the Greciliae font (default).\\
- & \texttt{gregorio} & Use the Gregorio font.\\
- & \texttt{parmesan} & Use the Parmesan font.\\
+ \#1 & \textit{(omitted)} & Use the normal font and rule set (default).\\
+ & \texttt{op} & Use the alternate Dominican font/rule set.\\
+ \#2 & \texttt{greciliae} & Use the Greciliae font (default).\\
+ & \texttt{gregorio} & Use the Gregorio font.\\
+ & \texttt{granapadano} & Use the Grana Padano font.\\
\end{argtable}
\macroname{\textbackslash gresetgregoriofontscaled}{[\optional{\#1}]\{\#2\}\{\#3\}}{gregoriotex-main.tex}
@@ -412,11 +414,11 @@ Substitutes the given Gregorio\TeX\ score glyph with the specified glyph
from the specified font.
\begin{argtable}
- \#1 & string & The name of the Gregorio\TeX\ glyph to replace.\\
- \#2 & string & The name of the font to use.\\
- \#3 & number & The code point of the glyph to use.\\
- & \texttt{.}string & The name of the variant (appended to \#1) to use.\\
- & string & (any other string) The name of the glyph to use.
+ \#1 & string & The name of the Gregorio\TeX\ glyph to replace.\\
+ \#2 & string & The name of the font to use.\\
+ \#3 & number & The code point of the glyph to use.\\
+ & \texttt{.}string & The name of the variant (appended to \#1) to use.\\
+ & string & (any other string) The name of the glyph to use.
\end{argtable}
\medskip If \texttt{\#1} has a wildcard (a \texttt{*}) in it, then
@@ -430,14 +432,14 @@ to be available in all score fonts.
\medskip For example, to use the old glyphs (from Caeciliae) for the
strophicus, use the following:\par\medskip
\begin{latexcode}
- \grechangeglyph{Stropha}{greciliae}{.caeciliae}
- \grechangeglyph{StrophaAucta}{greciliae}{.caeciliae}
+ \grechangeglyph{Stropha}{greciliae}{.caeciliae}
+ \grechangeglyph{StrophaAucta}{greciliae}{.caeciliae}
\end{latexcode}
\medskip To replace all torculus resupinus glyphs with their alternate
versions, use the following:\par\medskip
\begin{latexcode}
- \grechangeglyph{TorculusResupinus*}{*}{.alt}
+ \grechangeglyph{TorculusResupinus*}{*}{.alt}
\end{latexcode}
\macroname{\textbackslash greresetglyph}{\{\#1\}}{gregoriotex-main.tex}
@@ -445,7 +447,7 @@ Removes a Gregorio\TeX\ score glyph substitution, restoring it back to
its original form.
\begin{argtable}
- \#1 & string & The name of the Gregorio\TeX\ glyph to restore.\\
+ \#1 & string & The name of the Gregorio\TeX\ glyph to restore.\\
\end{argtable}
\medskip If \texttt{\#1} has a wildcard (a \texttt{*}) in it, then
@@ -454,14 +456,14 @@ all glyphs matching \texttt{\#1} will be restored.
\medskip For example, to restore the strophicus back to the new glyphs,
use the following:\par\medskip
\begin{latexcode}
- \greresetglyph{Stropha}
- \greresetglyph{StrophaAucta}
+ \greresetglyph{Stropha}
+ \greresetglyph{StrophaAucta}
\end{latexcode}
\medskip To restore all torculus resupinus glyphs to their original
form, use the following:\par\medskip
\begin{latexcode}
- \greresetglyph{TorculusResupinus*}
+ \greresetglyph{TorculusResupinus*}
\end{latexcode}
\macroname{\textbackslash gredefsymbol}{\{\#1\}\{\#2\}\{\#3\}}{gregoriotex-symbols.tex}
@@ -469,10 +471,10 @@ Defines (or redefines) a \TeX\ control sequence to be a non-score symbol.
If defined this way, the symbol will scale with the text font.
\begin{argtable}
- \#1 & string & The name of the \TeX\ control sequence (without leading backslash).\\
- \#2 & string & The name of the font to use.\\
- \#3 & number & The code point of the glyph to use.\\
- & string & The name of the glyph to use.
+ \#1 & string & The name of the \TeX\ control sequence (without leading backslash).\\
+ \#2 & string & The name of the font to use.\\
+ \#3 & number & The code point of the glyph to use.\\
+ & string & The name of the glyph to use.
\end{argtable}
\macroname{\textbackslash gredefsizedsymbol}{\{\#1\}\{\#2\}\{\#3\}}{gregoriotex-symbols.tex}
@@ -481,45 +483,45 @@ which requires a single numeric argument (in points) to which the symbol
will be scaled.
\begin{argtable}
- \#1 & string & The name of the \TeX\ control sequence (without leading backslash).\\
- \#2 & string & The name of the font to use.\\
- \#3 & number & The code point of the glyph to use.\\
- & string & The name of the glyph to use.
+ \#1 & string & The name of the \TeX\ control sequence (without leading backslash).\\
+ \#2 & string & The name of the font to use.\\
+ \#3 & number & The code point of the glyph to use.\\
+ & string & The name of the glyph to use.
\end{argtable}
\macroname{\textbackslash gresethepisema}{\{\#1\}}{gregoriotex-signs.tex}
Determines whether Gregorio\TeX\ should join (bridge) horizontal episemata on adjacent notes.
\begin{argtable}
- \#1 & \texttt{bridge} & Adjacent horizontal episemata are joined together (default).\\
- & \texttt{break} & Adjacent horizontal episemata are not joined.
+ \#1 & \texttt{bridge} & Adjacent horizontal episemata are joined together (default).\\
+ & \texttt{break} & Adjacent horizontal episemata are not joined.
\end{argtable}
\macroname{\textbackslash gresetpunctumcavum}{\{\#1\}}{gregoriotex-signs.tex}
A shortcut for switching to the alternative punctum cavum and back.
\begin{argtable}
- \#1 & \texttt{alternate} & use the alternate punctum cavum\\
- & \texttt{normal} & use the normal punctum cavum
+ \#1 & \texttt{alternate} & use the alternate punctum cavum\\
+ & \texttt{normal} & use the normal punctum cavum
\end{argtable}
Using the alternate punctum cavum is the equivalent of issuing the following commands:
\begin{latexcode}
- \grechangeglyph{PunctumCavum}{greciliae}{.caeciliae}%
- \grechangeglyph{LineaPunctumCavum}{greciliae}{.caeciliae}%
- \grechangeglyph{PunctumCavumHole}{greciliae}{.caeciliae}%
- \grechangeglyph{LineaPunctumCavumHole}{greciliae}{.caeciliae}%
+ \grechangeglyph{PunctumCavum}{greciliae}{.caeciliae}%
+ \grechangeglyph{LineaPunctumCavum}{greciliae}{.caeciliae}%
+ \grechangeglyph{PunctumCavumHole}{greciliae}{.caeciliae}%
+ \grechangeglyph{LineaPunctumCavumHole}{greciliae}{.caeciliae}%
\end{latexcode}
\macroname{\textbackslash gresetglyphstyle}{\{\#1\}}{gregoriotex-chars.tex}
Gregorio\TeX\ supports several glyph styles which can be changed with this macro. These style replace some non-note glyphs with alternatives.
\begin{argtable}
- \#1 & \texttt{default} & Use the default style\\
- & \texttt{medicaea} & Use a Medicaea style\\
- & \texttt{hufnagel} & Use the hufnagel style\\
- & \texttt{mensural} & Use the mensural style
+ \#1 & \texttt{default} & Use the default style\\
+ & \texttt{medicaea} & Use a Medicaea style\\
+ & \texttt{hufnagel} & Use the hufnagel style\\
+ & \texttt{mensural} & Use the mensural style
\end{argtable}
%%% Should there be a table here or in the appendix which shows the affected glyphs in each of the styles?
@@ -531,8 +533,8 @@ Gregorio\TeX\ supports several glyph styles which can be changed with this macro
Redefines a \TeX\ control sequence to be a a barred symbol.
\begin{argtable}
- \#1 & character & must be \texttt{A}, \texttt{R}, or \texttt{V}.\\
- \#2 & dimension & how much the bar will be shifted left.\\
+ \#1 & character & must be \texttt{A}, \texttt{R}, or \texttt{V}.\\
+ \#2 & dimension & how much the bar will be shifted left.\\
\end{argtable}
Gregorio\TeX\ does not have precomposed barred letters, instead, it has bars that you
@@ -542,7 +544,7 @@ simple version.
For example:
\medskip \begin{latexcode}
- \gresimpledefbarredsymbol{A}{0.3em}
+ \gresimpledefbarredsymbol{A}{0.3em}
\end{latexcode}
Will define \texttt{\textbackslash Abar} to be a A with a bar shifted right
@@ -554,12 +556,12 @@ certainly have to change this value by calling the \texttt{\textbackslash gresim
Redefines a \TeX\ control sequence to be a barred symbol.
\begin{argtable}
- \#1 & string & the name of the command you want to define.\\
- \#2 & string & command to typeset the text.\\
- \#3 & string & symbol of the bar (must be defined through \texttt{gredefsizedsymbol}).\\
- \#4 & number & the size of greextra to use (in pt).\\
- \#5 & dimension & horizontal right shift of the bar.\\
- \#6 & dimension & vertical shift of the bar glyph.\\
+ \#1 & string & the name of the command you want to define.\\
+ \#2 & string & command to typeset the text.\\
+ \#3 & string & symbol of the bar (must be defined through \texttt{gredefsizedsymbol}).\\
+ \#4 & number & the size of greextra to use (in pt).\\
+ \#5 & dimension & horizontal right shift of the bar.\\
+ \#6 & dimension & vertical shift of the bar glyph.\\
\end{argtable}
This is a more complete version of the previous command, it allows you to define
@@ -570,7 +572,7 @@ For example:
\begin{footnotesize}
\begin{latexcode}
- \gredefbarredsymbol{RBarBold}{\textbf{R}}{greRBarSmall}{13}{1.7mm}{0.1mm}
+ \gredefbarredsymbol{RBarBold}{\textbf{R}}{greRBarSmall}{13}{1.7mm}{0.1mm}
\end{latexcode}
\end{footnotesize}
@@ -589,11 +591,11 @@ Redefines a \TeX\ control sequence to be a barred symbol.
\bigskip\textbf{Only available in \LaTeX.}
\begin{argtable}
- \#1 & character & must be \texttt{A}, \texttt{R}, or \texttt{V}.\\
- \#2 & dimension & how much the bar will be shifted left when upright and medium weight.\\
- \#3 & dimension & how much the bar will be shifted left when italic/slanted and medium weight.\\
- \#4 & dimension & how much the bar will be shifted left when upright and bold.\\
- \#5 & dimension & how much the bar will be shifted left when italic/slanted and bold.\\
+ \#1 & character & must be \texttt{A}, \texttt{R}, or \texttt{V}.\\
+ \#2 & dimension & how much the bar will be shifted left when upright and medium weight.\\
+ \#3 & dimension & how much the bar will be shifted left when italic/slanted and medium weight.\\
+ \#4 & dimension & how much the bar will be shifted left when upright and bold.\\
+ \#5 & dimension & how much the bar will be shifted left when italic/slanted and bold.\\
\end{argtable}
This is like \verb=\gresimpledefbarglyph=, but allows setting different shifts
@@ -607,11 +609,11 @@ definitions. Instead, it actually generates the code that would show the
barred symbol.
\begin{argtable}
- \#1 & string & command to typeset the text.\\
- \#2 & string & symbol of the bar (must be defined through \texttt{gredefsizedsymbol}).\\
- \#3 & number & the size of greextra to use (in pt).\\
- \#4 & dimension & horizontal right shift of the bar.\\
- \#5 & dimension & vertical shift of the bar glyph.\\
+ \#1 & string & command to typeset the text.\\
+ \#2 & string & symbol of the bar (must be defined through \texttt{gredefsizedsymbol}).\\
+ \#3 & number & the size of greextra to use (in pt).\\
+ \#4 & dimension & horizontal right shift of the bar.\\
+ \#5 & dimension & vertical shift of the bar glyph.\\
\end{argtable}
\macroname{\textbackslash gothRbar}{}{gregoriotex-symbols.tex}
@@ -636,16 +638,16 @@ Prints \gresixstar. Defined with \verb=\gredefsymbol=.
A macro for invoking one of the five separators (fancy lines) which are contained in the greextra font.
\begin{argtable}
- \#1 & \texttt{1}--\texttt{5} & Choose the number of the line desired\\
- \#2 & integer & the point size at which to print the line\\
+ \#1 & \texttt{1}--\texttt{5} & Choose the number of the line desired\\
+ \#2 & integer & the point size at which to print the line\\
\end{argtable}
\macroname{\textbackslash greornamentation}{\{\#1\}\{\#2\}}{gregoriotex-symbols.tex}
A macro for invoking one of the ornamentation elements which are contained in the greextra font.
\begin{argtable}
- \#1 & \texttt{1}--\texttt{2} & Choose the number of the ornamentation desired\\
- \#2 & integer & the point size at which to print the line\\
+ \#1 & \texttt{1}--\texttt{2} & Choose the number of the ornamentation desired\\
+ \#2 & integer & the point size at which to print the line\\
\end{argtable}
@@ -658,9 +660,9 @@ Sets a special character. Special characters are used from gabc within
\texttt{<sp>} and \texttt{</sp>}.
\begin{argtable}
- \#1 & string & The text between \texttt{<sp>} and \texttt{</sp>}.\\
- \#2 & \TeX\ code & The \TeX\ code to substitute when \texttt{<sp>\#1</sp>}
- is used in gabc.\\
+ \#1 & string & The text between \texttt{<sp>} and \texttt{</sp>}.\\
+ \#2 & \TeX\ code & The \TeX\ code to substitute when \texttt{<sp>\#1</sp>}
+ is used in gabc.\\
\end{argtable}
\textbf{Nota Bene:} If you need to use a character in \#1 that is made special
@@ -674,13 +676,13 @@ Un-sets a special character. Using an unset special character will use its
text directly.
\begin{argtable}
- \#1 & string & The text between \texttt{<sp>} and \texttt{</sp>}.\\
+ \#1 & string & The text between \texttt{<sp>} and \texttt{</sp>}.\\
\end{argtable}
\textbf{Nota Bene:} The same rules apply for \#1 as in \verb=\gresetspecial=.
\macroname{\textbackslash gretilde}{}{gregoriotex-main.tex}
-Macro to print $\sim$. This macro is set using the above for \texttt{<sp>~</sp>}.
+Macro to print $\sim$. This macro is set using the above for \texttt{<sp>$\sim$</sp>}.
@@ -692,55 +694,54 @@ Different elements of an include score have different styles applied. These ele
\renewcommand{\thefootnote}{\fnsymbol{footnote}}
\bigskip\rowcolors{1}{lightgray}{lightgray}
\begin{tabular}{lp{7cm plus .5cm}r}
- Element Name & Description & Default\\
- \hline
- \stylename{abovelinestext} & above line text (\texttt{<alt></alt>} in gabc, appears above the staff) & normal\\
- \stylename{additionalstafflines} & short lines behind notes above or below the staff & special\footnotemark[1]\\
- \stylename{annotation} & the annotation & none\\
- \stylename{commentary} & the commentary & {\footnotesize\it footnote-size italics}\\
- \stylename{elision} & elisions (\texttt{<e></e>} in gabc) & {\textit{\small small-size italics}} (\LaTeX)\\
- && {\textit{italics}} (Plain \TeX)\\
- \stylename{firstsyllable} & the first syllable of the score excluding the score initial & none\\
- \stylename{firstsyllableinitial} & the first letter of the first syllable of a score which is not the score initial & none\\
- \stylename{firstword} & the first word of the first score excluding the score initial & none\\
- \stylename{highchoralsign} & high choral signs & none\\
- \stylename{initial} & Score initial (the first letter of the score, when offset from the rest of the text) & 40 pt font\\
- \stylename{lowchoralsign} & low choral signs & none\\
- \stylename{modedifferentia} & the rendered annotation from the \texttt{mode-differentia: ;} header in the gabc file & \parbox[t]{2.2cm}{\raggedleft\textbf{bold}}\\
- \stylename{modeline} & the rendered annotation from the \texttt{mode: ;} header in the gabc file & \parbox[t]{2.2cm}{\raggedleft\textsc{\textbf{bold small capitals}}}\\
- \stylename{modemodifier} & the rendered annotation from the \texttt{mode-modifier: ;} header in the gabc file & \parbox[t]{2.2cm}{\raggedleft\textit{\textbf{bold italics}}}\\
- \stylename{nabc} & ancient notation & {\color{gregoriocolor}gregoriocolor} (\LaTeX)\\
- && none (Plain \TeX)\\
- \stylename{normalstafflines} & Full length staff lines & none\\
- \stylename{translation} & Translation text (appears below lyrics) & {\it italics}\\
+ Element Name & Description & Default\\
+ \hline
+ \stylename{abovelinestext} & above line text (\texttt{<alt></alt>} in gabc, appears above the staff) & normal\\
+ \stylename{additionalstafflines} & short lines behind notes above or below the staff & special\footnotemark[1]\\
+ \stylename{annotation} & the annotation & none\\
+ \stylename{commentary} & the commentary & {\footnotesize\it footnote-size italics}\\
+ \stylename{elision} & elisions (\texttt{<e></e>} in gabc) & {\textit{\small small-size italics}} (\LaTeX)\\
+ && {\textit{italics}} (Plain \TeX)\\
+ \stylename{firstsyllable} & the first syllable of the score excluding the score initial & none\\
+ \stylename{firstsyllableinitial} & the first letter of the first syllable of a score which is not the score initial & none\\
+ \stylename{firstword} & the first word of the first score excluding the score initial & none\\
+ \stylename{highchoralsign} & high choral signs & none\\
+ \stylename{initial} & Score initial (the first letter of the score, when offset from the rest of the text) & 40 pt font\\
+ \stylename{lowchoralsign} & low choral signs & none\\
+ \stylename{modedifferentia} & the rendered annotation from the \texttt{mode-differentia: ;} header in the gabc file & \parbox[t]{2.2cm}{\raggedleft\textbf{bold}}\\
+ \stylename{modeline} & the rendered annotation from the \texttt{mode: ;} header in the gabc file & \parbox[t]{2.2cm}{\raggedleft\textsc{\textbf{bold small capitals}}}\\
+ \stylename{modemodifier} & the rendered annotation from the \texttt{mode-modifier: ;} header in the gabc file & \parbox[t]{2.2cm}{\raggedleft\textit{\textbf{bold italics}}}\\
+ \stylename{nabc} & ancient notation & {\color{gregoriocolor}gregoriocolor}\\
+ \stylename{normalstafflines} & Full length staff lines & none\\
+ \stylename{translation} & Translation text (appears below lyrics) & {\it italics}\\
\end{tabular}
\end{adjustbox}
\footnotemark[1]\textit{Special:} By default, \texttt{additionalstafflines} inherits its properties from \texttt{normalstafflines}. To decouple these environments, you must manually change \texttt{additionalstafflines} using \texttt{\textbackslash grechangestyle}.
\renewcommand{\thefootnote}{\arabic{footnote}}\breakabletrue
-\macroname{\textbackslash grechangestyle}{\{\#1\}\{\#2\}[\#3]}{gregoriotex.sty \textup{and} gregoriotex.tex}
+\macroname{\textbackslash grechangestyle}{\{\#1\}\{\#2\}[\optional{\#3}]}{gregoriotex.sty \textup{and} gregoriotex.tex}
Command to change styling of a score element.
\begin{argtable}
- \#1 & string & element whose styling is to be changed (see list above for options)\\
- \#2 & \TeX\ code & the code necessary to turn on the styling\\
- \#3 & \TeX\ code & Optional. The code necessary to turn off the styling (\eg, if the code to turn on the styling contains a \verb=\begin{environment}= then the code to turn it off must have the matching \verb=\end{environment}=.
+ \#1 & string & element whose styling is to be changed (see list above for options)\\
+ \#2 & \TeX\ code & the code necessary to turn on the styling\\
+ \#3 & \TeX\ code & Optional. The code necessary to turn off the styling (\eg, if the code to turn on the styling contains a \verb=\begin{environment}= then the code to turn it off must have the matching \verb=\end{environment}=.
\end{argtable}
Examples:\par\medskip
\begin{latexcode}
- % This one works for both PlainTeX and LaTeX this would make
- % the translations bold and italic
- \grechangestyle{translation}{\it\bf}
+ % This one works for both PlainTeX and LaTeX this would make
+ % the translations bold and italic
+ \grechangestyle{translation}{\it\bf}
- % This one is LaTeX only, and would make the above lines
- % text small and italic
- \grechangestyle{abovelinestext}{\begin{small}\begin{itshape}}%
- [\end{itshape}\end{small}]
+ % This one is LaTeX only, and would make the above lines
+ % text small and italic
+ \grechangestyle{abovelinestext}{\begin{small}\begin{itshape}}%
+ [\end{itshape}\end{small}]
- % This would make the initial print in 36pt font.
- \grechangestyle{initial}{\fontsize{36}{36}\selectfont}
+ % This would make the initial print in 36pt font.
+ \grechangestyle{initial}{\fontsize{36}{36}\selectfont}
\end{latexcode}
\bigskip
@@ -749,24 +750,24 @@ Each element will be typeset within an isolated group to prevent styling command
\subsubsection{Text Elements}
While the gabc headers provide support for some of the text elements commonly found on chant scores, Gregorio\TeX\ provides the following functions to allow you to enter and control those elements with a greater degree of precision than the gabc headers.
-\macroname{\textbackslash greannotation}{[\#1]\{\#2\}}{gregoriotex-main.tex}
+\macroname{\textbackslash greannotation}{[\optional{\#1}]\{\#2\}}{gregoriotex-main.tex}
Macro to add annotations (the text which appears above the initial) to a score. While a single call of the function does not support multiple lines, successive calls to the function will be added to the annotation as a new line below what is already there.
\begin{argtable}
- \#1 & \texttt{c} & When adding a new line, align the center of the new line with the center of the existing lines\\
- & \texttt{l} & When adding a new line, align the left side of the new line with the left side of the existing lines\\
- & \texttt{r} & When adding a new line, align the right side of the new line with the right side of the existing lines\\
- \#2 & string & the text of the annotation
+ \#1 & \texttt{c} & When adding a new line, align the center of the new line with the center of the existing lines\\
+ & \texttt{l} & When adding a new line, align the left side of the new line with the left side of the existing lines\\
+ & \texttt{r} & When adding a new line, align the right side of the new line with the right side of the existing lines\\
+ \#2 & string & the text of the annotation
\end{argtable}
\textbf{Nota Bene:} The first argument does not affect the alignment of lines already in the annotation, only the way the new line aligns with the existing lines as a whole.
-\macroname{\textbackslash grecommentary}{[\optional{\#2}]\{\#1\}}{gregoriotex-main.tex}
+\macroname{\textbackslash grecommentary}{[\optional{\#1}]\{\#2\}}{gregoriotex-main.tex}
Macro to add commentary (the text flush right at the top, usually a scripture reference) to a score. While a single call of this function does not support multiple lines, successive calls to the function will add a new line to the commentary directly below the previous.
\begin{argtable}
- \#1 & distance & Optional. Additional distance to be placed between the commentary and the top staff line for the next score only.\\
- \#2 & string & The text of the commentary.\\
+ \#1 & distance & Optional. Additional distance to be placed between the commentary and the top staff line for the next score only.\\
+ \#2 & string & The text of the commentary.\\
\end{argtable}
\textbf{Nota Bene:} If your commentary is multi-lined, then the optional argument of the last line, and only the last line, will be taken into account. Further, pay attention to the fact that the optional argument is \emph{additional} distance, \ie, it will be added to \texttt{commentaryraise} to determine the distance from the baseline of the commentary to the top line of the staff.
@@ -775,29 +776,38 @@ Macro to add commentary (the text flush right at the top, usually a scripture re
Macro to add an illuminated initial.
\begin{argtable}
- \#1 & \TeX\ code & the code necessary to make the illuminated initial appear\\
+ \#1 & \TeX\ code & the code necessary to make the illuminated initial appear\\
\end{argtable}
\textbf{Nota Bene:} Usually the argument of this command should be an \verb=\includegraphics= command, but you may use what ever you want as the illuminated initial.
-\macroname{\textbackslash gresetinitiallines}{\#1}{gregoriotex-syllable.tex}
+\macroname{\textbackslash gresetinitiallines}{\{\#1\}}{gregoriotex-syllable.tex}
Sets the number of lines the score initial requires.
\begin{argtable}
- \#1 & number & The number of lines required by the initial. If \texttt{0}, the score will have no separated initial.\\
+ \#1 & number & The number of lines required by the initial. If \texttt{0}, the score will have no separated initial.\\
\end{argtable}
\textbf{Nota Bene:} As currently implemented, you cannot set an initial which is larger than 2 lines and in order to do so you must set manual line breaks in the gabc for the first two lines.
-\macroname{\textbackslash gresetmodenumbersystem}{\#1}{gregoriotex-main.tex}
+\macroname{\textbackslash gresetmodenumbersystem}{\{\#1\}}{gregoriotex-main.tex}
Sets the number system used for the mode number.
\begin{argtable}
- \#1 & \texttt{roman-minuscule} & Use lower-case Roman numerals (the default, good for small capitals).\\
- & \texttt{roman-majuscule} & Use upper-case Roman numerals.\\
- & \texttt{arabic} & Use Arabic numerals.\\
+ \#1 & \texttt{roman-minuscule} & Use lower-case Roman numerals (the default, good for small capitals).\\
+ & \texttt{roman-majuscule} & Use upper-case Roman numerals.\\
+ & \texttt{arabic} & Use Arabic numerals.\\
\end{argtable}
+\macroname{\textbackslash gresetlyrics}{\{\#1\}}{gregoriotex-syllable.tex}
+Sets the visibility of the lyrics.
+
+\begin{argtable}
+ \#1 & \texttt{visible} & Lyrics are visible (default).\\
+ & \texttt{invisible} & Lyrics are not visible.\\
+\end{argtable}
+
+
\subsubsection{Text Alignment}
Gregorio\TeX\ allows you to manipulate the global alignment behavior of some text elements using the following commands.
@@ -811,9 +821,9 @@ Macro to set how the text of the lyrics aligns with the alignment point of its r
\end{itemize}
\begin{argtable}
- \#1 & \texttt{vowel} & The center of the vowel in the syllable will align with the alignment point of the neumes\\
- & \texttt{syllable} & The center of the syllable will align with the alignment point of the neumes\\
- & \texttt{firstletter} & The center of the first letter/character of the syllable will align with the alignment point of the neumes\\
+ \#1 & \texttt{vowel} & The center of the vowel in the syllable will align with the alignment point of the neumes\\
+ & \texttt{syllable} & The center of the syllable will align with the alignment point of the neumes\\
+ & \texttt{firstletter} & The center of the first letter/character of the syllable will align with the alignment point of the neumes\\
\end{argtable}
\textbf{Nota Bene:} What constitutes the ``vowel'' of the syllable is determined by the language the lyric text is written in, as specified by the use of the \texttt{language} header in the gabc file. Out of the box, Gregorio\TeX\ explicitly supports only Latin and English, but the rules for Latin have a high degree of overlap with many Romance languages, allowing them to fall back on the Latin rules with acceptable results.
@@ -826,33 +836,33 @@ Finally, in cases where you want some sort of exceptional alignment, you can for
Macro to determine whether a forced center (\ie, one specified by curly braces (``\{'' and ``\}'') in your gabc file) should influence the alignment of that syllable when \texttt{syllable} and \texttt{firstletter} alignments are in effect.
\begin{argtable}
- \#1 & \texttt{allow} & Forced centers in gabc are allowed to influence the syllable alignment (default).\\
- & \texttt{prohibit} & Forced centers in gabc do not influence the syllable alignment.\\
+ \#1 & \texttt{allow} & Forced centers in gabc are allowed to influence the syllable alignment (default).\\
+ & \texttt{prohibit} & Forced centers in gabc do not influence the syllable alignment.\\
\end{argtable}
\macroname{\textbackslash gresettranslationcentering}{\{\#1\}}{gregoriotex-main.tex}
Macro to specify how the translation text should be aligned with it respective syllable text.
\begin{argtable}
- \#1 & \texttt{left} & The translation text is left aligned with its respective syllable text.\\
- & \texttt{center} & The translation text is centered under its respective syllable.
+ \#1 & \texttt{left} & The translation text is left aligned with its respective syllable text.\\
+ & \texttt{center} & The translation text is centered under its respective syllable.
\end{argtable}
\macroname{\textbackslash gresetannotationby}{\{\#1\}}{gregoriotex-main.tex}
Macro to specify which line of the annotation should be used to determine its starting placement (i.e. before \texttt{annotationraise} is applied).
\begin{argtable}
- \#1 & \texttt{firstline} & Annotation placement is determined by the first line (default)\\
- & \texttt{lastline} & annotation placement is determined by the last line\\
+ \#1 & \texttt{firstline} & Annotation placement is determined by the first line (default)\\
+ & \texttt{lastline} & annotation placement is determined by the last line\\
\end{argtable}
\macroname{\textbackslash gresetannotationvalign}{\{\#1\}}{gregoriotex-main.tex}
Macro to specify which part of the control line in the annotation should be aligned with the top line of the staff before \texttt{annotationraise} is applied.
\begin{argtable}
- \#1 & \texttt{top} & The top of the annotation control line will align with the top line of the staff\\
- & \texttt{baseline} & The baseline of the control line is used (default)\\
- & \texttt{bottom} & The bottom of the control line is used\\
+ \#1 & \texttt{top} & The top of the annotation control line will align with the top line of the staff\\
+ & \texttt{baseline} & The baseline of the control line is used (default)\\
+ & \texttt{bottom} & The bottom of the control line is used\\
\end{argtable}
\textbf{Nota Bene:} These variable refer to the actual contents of the line and not to the ``hypothetical'' limits for the font. As a result if the top of an annotation containing only short letters will be different from one which contains tall ones even if both use the same font. Likewise, if the annotation contains no descenders, then baseline and bottom will be the same. If this is a problem, then the use of struts within the annotation can be used to control the line height (distance from baseline to top) and depth (distance from baseline to bottom).
@@ -864,8 +874,8 @@ While Gregorio\TeX\ will automatically wrap scores to fit your page, there are s
Macro to determine whether an automatic linebreak before a EUOUAE area is justified or not.
\begin{argtable}
- \#1 & \texttt{justified} & Automatic line breaks before EUOUAE areas should be justified (default)\\
- & \texttt{ragged} & Automatic line breaks before EUOUAE areas should be ragged\\
+ \#1 & \texttt{justified} & Automatic line breaks before EUOUAE areas should be justified (default)\\
+ & \texttt{ragged} & Automatic line breaks before EUOUAE areas should be ragged\\
\end{argtable}
\textbf{Important:} When set to \texttt{ragged}, Gregorio\TeX{} will require a
@@ -883,24 +893,33 @@ Module gregoriotex warning: Line heights or variable brace lengths may have chan
Macro to determine whether line breaks are allowed inside a EUOUAE area (delimited by \texttt{<eu></eu>} tags in gabc).
\begin{argtable}
- \#1 & \texttt{allow} & Line breaks are allowed\\
- & \texttt{prohibit} & Line breaks are prohibited, the entire EUOUAE area should appear on one line
+ \#1 & \texttt{allow} & Line breaks are allowed\\
+ & \texttt{prohibit} & Line breaks are prohibited, the entire EUOUAE area should appear on one line
\end{argtable}
\macroname{\textbackslash gresetbreakintranslation}{\{\#1\}}{gregoriotex-main.tex}
Macro to determine whether line breaks are allowed inside a translation.
\begin{argtable}
- \#1 & \texttt{allow} & Line breaks are allowed\\
- & \texttt{prohibit} & Line breaks are prohibited, the entire translation should appear on one line
+ \#1 & \texttt{allow} & Line breaks are allowed\\
+ & \texttt{prohibit} & Line breaks are prohibited, the entire translation should appear on one line
+\end{argtable}
+
+\macroname{\textbackslash gresetcustosalteration}{\{\#1\}}{gregoriotex-signs.tex}
+Macro for setting whether an alteration (flat, sharp, or natural) should be
+rendered before a custos or not.
+
+\begin{argtable}
+ \#1 & \texttt{visible} & The custos alteration should be printed (default)\\
+ & \texttt{invisible} & The custos alteration should not be printed
\end{argtable}
\macroname{\textbackslash greseteolcustos}{\{\#1\}}{gregoriotex-main.tex}
Macro to determine whether Gregorio\TeX\ should automatically place the custos at a line break.
\begin{argtable}
- \#1 & \texttt{auto} & Custos will be automatically placed at each line break\\
- & \texttt{manual} & Custos will only be placed at line breaks if they are specified in the gabc (\eg \texttt{(g+z)})
+ \#1 & \texttt{auto} & Custos will be automatically placed at each line break\\
+ & \texttt{manual} & Custos will only be placed at line breaks if they are specified in the gabc (\eg \texttt{(g+z)})
\end{argtable}
\textbf{Nota Bene:} This command only effects the custos that appears at the end of a line. Custos which are placed at a key change are unaffected. Further, if custos are specified in the gabc file manually and Gregorio\TeX\ is set to place custos automatically, you will get two custos at the line breaks.
@@ -909,8 +928,8 @@ Macro to determine whether Gregorio\TeX\ should automatically place the custos a
Macro to determine whether Gregorio\TeX\ should automatically place the custos at a line break before a EUOUAE. Since the EUOUAE block is typically not a continuation of the melody but rather a reminder of the end of the tone that follows, this is set to \texttt{suppressed} (no custos) by default.
\begin{argtable}
- \#1 & \texttt{suppressed} & Custos will not automatically be placed at a line break before a EUOUAE block (the default)\\
- & \texttt{auto} & Custos will behave according to \verb=greseteolcustos= at a line break before a EUOUAE block\\
+ \#1 & \texttt{suppressed} & Custos will not automatically be placed at a line break before a EUOUAE block (the default)\\
+ & \texttt{auto} & Custos will behave according to \verb=greseteolcustos= at a line break before a EUOUAE block\\
\end{argtable}
\textbf{Nota Bene:} If \verb=\greseteolcustos= is set to \texttt{manual}, this setting is effectively ignored.
@@ -919,24 +938,39 @@ Macro to determine whether Gregorio\TeX\ should automatically place the custos a
Macro to determine whether Gregorio\TeX\ should apply a small shift at the end of each line which allows lyrics to stretch under the final custos.
\begin{argtable}
- \#1 & \texttt{enable} & The shifts are applied (default)\\
- & \texttt{disable} & The shifts are not applied.
+ \#1 & \texttt{enable} & The shifts are applied (default)\\
+ & \texttt{disable} & The shifts are not applied.
\end{argtable}
\macroname{\textbackslash gresetbolshifts}{\{\#1\}}{gregoriotex-main.tex}
Macro to determine whether Gregorio\TeX\ should apply a small shift at the beginning of each line so that lines are aligned on the notes rather than the syllable text.
\begin{argtable}
- \#1 & \texttt{enable} & The shifts are applied (default)\\
- & \texttt{disable} & The shifts are not applied.
+ \#1 & \texttt{enable} & The shifts are applied (default)\\
+ & \texttt{disable} & The shifts are not applied.
\end{argtable}
\macroname{\textbackslash gresetlastline}{\{\#1\}}{gregoriotex-main.tex}
Macro to determine whether the last line of the score should be justified or not.
\begin{argtable}
- \#1 & \texttt{justified} & Set the last line justified with the rest of the score\\
- & \texttt{ragged} & Set the last line ragged (default)
+ \#1 & \texttt{justified} & Set the last line justified with the rest of the score\\
+ & \texttt{ragged} & Set the last line ragged (default)
+\end{argtable}
+
+\macroname{\textbackslash gresetunbreakablesyllablenote}{\{\#1\}\{\#2\}\{\#3\}}{gregoriotex-syllable.tex}
+Configures how notes should be kept together on line breaks.
+
+\begin{argtable}
+ \#1 & integer & The minimum number of notes in the syllable before the
+ syllable may be broken across lines. Defaults to
+ \getgrecount{unbreakabletotalnotes}.\\
+ \#2 & integer & The minimum number of notes at the start of a syllable that
+ must be kept together when the syllable is broken across
+ lines. Defaults to \getgrecount{unbreakableinitialnotes}.\\
+ \#3 & integer & The minimum number of notes at the end of a syllable that
+ must be kept together when the syllable is broken across
+ lines. Defaults to \getgrecount{unbreakablefinalnotes}.\\
\end{argtable}
@@ -946,12 +980,12 @@ Macro to determine whether the last line of the score should be justified or not
Macro to change the behaviour for separation between notes of two syllables when the first ends with a punctum mora. The argument changes the cases in which punctum mora are ignored in space computation:
\begin{argtable}
- \#1 & \texttt{always} & punctum mora are always ignored (default)\\
- & \texttt{notesonly} & punctum mora are ignored before notes, not bars\\
- & \texttt{barsonly} & punctum mora are ignored before bars, not notes\\
- & \texttt{notextonly} & punctum mora are ignored only before bars inside syllables, or bars having their own syllable without text\\
- & \texttt{insideonly} & punctum mora are ignored only before bars inside syllables\\
- & \texttt{never} & punctum mora are never ignored\\
+ \#1 & \texttt{always} & punctum mora are always ignored (default)\\
+ & \texttt{notesonly} & punctum mora are ignored before notes, not bars\\
+ & \texttt{barsonly} & punctum mora are ignored before bars, not notes\\
+ & \texttt{notextonly} & punctum mora are ignored only before bars inside syllables, or bars having their own syllable without text\\
+ & \texttt{insideonly} & punctum mora are ignored only before bars inside syllables\\
+ & \texttt{never} & punctum mora are never ignored\\
\end{argtable}
When a punctum mora is ignored, the bar will also be shifted by \texttt{moraadjustmentbar} (zero by default), see its description in the \nameref{distances} section.
@@ -960,22 +994,32 @@ When a punctum mora is ignored, the bar will also be shifted by \texttt{moraadju
Macro to activate the new bar spacing algorithm. The new algorithm attempts to place the bar line exactly midway between its surrounding notes. Any text associated with the bar is placed midway between its surrounding text. Since this might result in the bar line and the text being widely separated, there are also a limits to the distance between their respective centers: \texttt{maxbaroffsettextleft} and \texttt{maxbaroffsettextright} (when text center is respectively on the left or on the right of bar center).
\begin{argtable}
- \#1 & \texttt{new} & Activates the new spacing algorithm\\
- & \texttt{old} & Activates the old behavior (Default)\\
+ \#1 & \texttt{new} & Activates the new spacing algorithm\\
+ & \texttt{old} & Activates the old behavior (Default)\\
\end{argtable}
\subsubsection{Sign printing}
+\macroname{\textbackslash gresetnotes}{\{\#1\}}{gregoriotex-syllable.tex}
+Sets the visibility of the notes.
+
+\begin{argtable}
+ \#1 & \texttt{visible} & Notes are visible (default).\\
+ & \texttt{invisible} & Notes are not visible.\\
+\end{argtable}
+
+\textbf{Nota Bene:} If the notes are set to be invisible, then bar lines, rythmic signs, and the like will also be invisible. However, the staff lines and clefs will still show up (since their visibility is controlled by other settings).
+
\macroname{\textbackslash greprintsigns}{\{\#1\}\{\#2\}}{gregoriotex-signs.tex}
Macro to prevent rythmic signs from printing (all signs are printed by default):
\begin{argtable}
- \#1 & \texttt{vepisema} & sets the printing of vertical episema\\
- & \texttt{hepisema} & sets the printing of horizontal episema\\
- & \texttt{mora} & sets the printing of punctum mora and auctum duplex\\
- & \texttt{all} & set the printing of all of these\\
- \#2 & \texttt{enable} & enable the printing\\
- & \texttt{disable} & disable the priting\\
+ \#1 & \texttt{vepisema} & sets the printing of vertical episema\\
+ & \texttt{hepisema} & sets the printing of horizontal episema\\
+ & \texttt{mora} & sets the printing of punctum mora and auctum duplex\\
+ & \texttt{all} & set the printing of all of these\\
+ \#2 & \texttt{enable} & enable the printing\\
+ & \texttt{disable} & disable the printing\\
\end{argtable}
Note that punctum mora and auctum duplex have an influence on spacings, so removing them will have an impact on that matter.
@@ -986,31 +1030,31 @@ Note that punctum mora and auctum duplex have an influence on spacings, so remov
Tells Gregorio\TeX\ how to place a hyphen between syllables in polysyllabic words in a score.
\begin{argtable}
- \#1 & \texttt{force} & Hyphens will appear between all syllables in polysyllabic words.\\
- & \texttt{auto} & Hyphens will appear based on the setting of \texttt{maximumspacewithoutdash} (default)
+ \#1 & \texttt{force} & Hyphens will appear between all syllables in polysyllabic words.\\
+ & \texttt{auto} & Hyphens will appear based on the setting of \texttt{maximumspacewithoutdash} (default)
\end{argtable}
\macroname{\textbackslash gresetemptyfirstsyllablehyphen}{\{\#1\}}{gregoriotex-syllable.tex}
Tells Gregorio\TeX\ how to place a hyphen after an empty first syllable (\ie, when the first syllable consists only of the big initial).
\begin{argtable}
- \#1 & \texttt{force} & A hyphen will appear after an empty first syllable. (default)\\
- & \texttt{auto} & A hyphen will appear after an empty first syllable based on the setting of \texttt{maximumspacewithoutdash}
+ \#1 & \texttt{force} & A hyphen will appear after an empty first syllable. (default)\\
+ & \texttt{auto} & A hyphen will appear after an empty first syllable based on the setting of \texttt{maximumspacewithoutdash}
\end{argtable}
\macroname{\textbackslash greseteolhyphen}{\{\#1\}}{gregoriotex-main.tex}
Marco to determine how much space the hyphen at the end of a line occupies for the purposes of spacing calculations (the visible appearance of the hyphen is unchanged).
\begin{argtable}
- \#1 & \texttt{normal} & The hyphen occupies its normal space\\
- & \texttt{zero} & The hyphen is considered to take up no space
+ \#1 & \texttt{normal} & The hyphen occupies its normal space\\
+ & \texttt{zero} & The hyphen is considered to take up no space
\end{argtable}
\macroname{\textbackslash gresethyphenprotrusion}{\{\#1\}}{gregoriotex-spaces.tex}
Sets the protrusion factor of hyphens at end of lines. The default value is 50, a good compromise in the tested scores.
\begin{argtable}
- \#1 & \texttt{number} & The protrusion factor, percent
+ \#1 & \texttt{number} & The protrusion factor, percent
\end{argtable}
Note that a proper interface for setting protrusion factor of punctuation signs might appear in the next version, deprecating this one. Also, this protrusion factor does not apply to all hyphens (only those inserted by the Lua pass), so use it with caution.
@@ -1021,8 +1065,8 @@ Note that a proper interface for setting protrusion factor of punctuation signs
Macro to tell Gregorio\TeX\ whether the clefs should be printed or not.
\begin{argtable}
- \#1 & \texttt{visible} & Clefs will be printed (default)\\
- & \texttt{invisible} & Clefs will not be printed
+ \#1 & \texttt{visible} & Clefs will be printed (default)\\
+ & \texttt{invisible} & Clefs will not be printed
\end{argtable}
@@ -1033,9 +1077,9 @@ Since the center of the clivis is different from most neumes, Gregorio\TeX\ supp
Macro to determine the method used for aligning the clivis with its lyrics.
\begin{argtable}
- \#1 & \texttt{always} & Align on the real center of the clivis\\
- & \texttt{never} & align on the center of the first punctum in the clivis\\
- & \texttt{special} & align on the real center of the clivis except when (1) notes would go left of text or (2) consonants after vowels are larger than \verb=\gre@dimen@clivisalignmentmin= (default)
+ \#1 & \texttt{always} & Align on the real center of the clivis\\
+ & \texttt{never} & align on the center of the first punctum in the clivis\\
+ & \texttt{special} & align on the real center of the clivis except when (1) notes would go left of text or (2) consonants after vowels are larger than \verb=\gre@dimen@clivisalignmentmin= (default)
\end{argtable}
@@ -1050,13 +1094,13 @@ harmonize (and thus match best) with greciliae, but they still look good
with the other score fonts.
\begin{argtable}
- \#1 & \textit{(omitted)} & change all braces\\
- & \texttt{brace} & change round braces that appear over the staff\\
- & \texttt{underbrace} & change round braces that appear under the staff\\
- & \texttt{curlybrace} & change curly braces\\
- & \texttt{barbrace} & change round braces that appear over divisio bars\\
- \#2 & \texttt{metapost} & \MP{} will be used to render braces\\
- & \texttt{font} & The score font will be used to render braces\\
+ \#1 & \textit{(omitted)} & change all braces\\
+ & \texttt{brace} & change round braces that appear over the staff\\
+ & \texttt{underbrace} & change round braces that appear under the staff\\
+ & \texttt{curlybrace} & change curly braces\\
+ & \texttt{barbrace} & change round braces that appear over divisio bars\\
+ \#2 & \texttt{metapost} & \MP{} will be used to render braces\\
+ & \texttt{font} & The score font will be used to render braces\\
\end{argtable}
\macroname{\textbackslash grebarbracewidth}{}{gregoriotex-signs.tex}
@@ -1077,17 +1121,17 @@ Macro to tell Gregorio\TeX{} to capture a given header of the gabc file, passing
specified \TeX{} macro. Passing an empty \#2 will cancel capture of the given header.
\begin{argtable}
- \#1 & string & The name of the gabc header\\
- \#2 & string & The name of the macro to use (without the leading backslash)
- or empty to stop capturing the given header\\
- \#3 & string & a comma-separated list of options\\
+ \#1 & string & The name of the gabc header\\
+ \#2 & string & The name of the macro to use (without the leading backslash)
+ or empty to stop capturing the given header\\
+ \#3 & string & a comma-separated list of options\\
\end{argtable}
The options are:
\begin{tabular}{ll}
- \texttt{name} & The header name should also be passed to the macro\\
- \texttt{string} & The header value should be passed to the macro as a string\\
+ \texttt{name} & The header name should also be passed to the macro\\
+ \texttt{string} & The header value should be passed to the macro as a string\\
\end{tabular}
If the \texttt{name} option is not supplied, the macro is called with one
@@ -1121,7 +1165,7 @@ Defaults to nothing. If this is called multiple times, the most recent call
will define the behavior at the next set of headers.
\begin{argtable}
- \#1 & \TeX\ code & The code to process before a set of headers.\\
+ \#1 & \TeX\ code & The code to process before a set of headers.\\
\end{argtable}
\macroname{\textbackslash greafterheaders}{\{\#1\}}{gregoriotex-main.tex}
@@ -1130,7 +1174,7 @@ Defaults to nothing. If this is called multiple times, the most recent call
will define the behavior at the next set of headers.
\begin{argtable}
- \#1 & \TeX\ code & The code to process after a set of headers.\\
+ \#1 & \TeX\ code & The code to process after a set of headers.\\
\end{argtable}
@@ -1141,30 +1185,26 @@ For a full description of how to make use of the ancient notation capabilities o
Macro to set the font to be used for the ancient notation.
\begin{argtable}
- \#1 & string & the name of the font\\
- \#2 & integer & point size at which the font should be loaded\\
+ \#1 & string & the name of the font\\
+ \#2 & integer & point size at which the font should be loaded\\
\end{argtable}
\subsection{Counts}\label{counts}
Each of the following counts controls some aspect of the configuration of the Gregorio\TeX\ score. They are changed using \verb=\grechangecount=, documented above.
-\macroname{additionaltopspacethreshold}{}{gsp-default.tex}
-
+\begin{gcount}{additionaltopspacethreshold}
The threshold above which we start accounting notes above lines for additional
vertical space. For instance with a threshold of \texttt{2}, notes with a pitch
of \texttt{k} and \texttt{l} will not interfere with the space above lines.
Set it to a high value if you don't want high notes to interfere with space
above lines.
+\end{gcount}
-Default: \texttt{2}
-
-\macroname{additionaltopspacealtthreshold}{}{gsp-default.tex}
-
+\begin{gcount}{additionaltopspacealtthreshold}
Same as \texttt{additionaltopspacethreshold} but setting the threshold for
notes taken into account with above lines text vertical placement.
-
-Default: \texttt{0}
+\end{gcount}
\subsection{Distances}\label{distances}
@@ -1290,7 +1330,11 @@ Space between notes of a bistropha or tristrophae.
\end{gdimension}
\begin{gdimension}{punctuminclinatumshift}
-Space between two punctum inclinatum.
+Space between two descending puncta inclinata.
+\end{gdimension}
+
+\begin{gdimension}{punctuminclinatumunisonshift}
+Space between two unison puncta inclinata.
\end{gdimension}
\begin{gdimension}{beforepunctainclinatashift}
@@ -1298,7 +1342,8 @@ Space before puncta inclinata.
\end{gdimension}
\begin{gdimension}{punctuminclinatumanddebilisshift}
-Space between a punctum inclinatum and a punctum inclinatum deminutus.
+Space between a punctum inclinatum and a punctum inclinatum deminutus,
+descending.
\end{gdimension}
\begin{gdimension}{punctuminclinatumdebilisshift}
@@ -1306,11 +1351,11 @@ Space between two punctum inclinatum deminutus.
\end{gdimension}
\begin{gdimension}{punctuminclinatumbigshift}
-Space between puncta inclinata, larger ambitus (range=3rd).
+Space between descending puncta inclinata, larger ambitus (range=3rd).
\end{gdimension}
\begin{gdimension}{punctuminclinatummaxshift}
-Space between puncta inclinata, larger ambitus (range=4th or 5th).
+Space between descending puncta inclinata, larger ambitus (range=4th or 5th).
\end{gdimension}
\begin{gdimension}{ascendingpunctuminclinatumshift}
@@ -1421,9 +1466,9 @@ Space at the beginning of the lines if there is no clef.
The distance to shift choral signs down. The following choral signs are shifted down:
\begin{itemize}
- \item Low choral signs that are not lower than the note
- \item High choral signs which are in a space
- \item Low choral signs that are lower than the note which are in a space
+ \item Low choral signs that are not lower than the note
+ \item High choral signs which are in a space
+ \item Low choral signs that are lower than the note which are in a space
\end{itemize}
\end{gdimension}
@@ -1431,8 +1476,8 @@ The distance to shift choral signs down. The following choral signs are shifted
The distance to shift choral signs up. The following choral signs are shifted up:
\begin{itemize}
- \item High choral signs which are on a line
- \item Low choral signs that are lower than the note which are on a line
+ \item High choral signs which are on a line
+ \item Low choral signs that are lower than the note which are on a line
\end{itemize}
\end{gdimension}
@@ -1552,7 +1597,7 @@ Vertical distance to place a punctum mora for the second note in a porrectus (or
Distance to place a ``rare'' sign above the top space in a score.
\end{gdimension}
-\subsubsection*{Bar distances}
+\subsubsection{Bar distances}
\begin{gdimension}{bar@finalfinalis}
This space is added before the final divisio final of a score (old bar spacing algorithm only).
@@ -1684,87 +1729,74 @@ Same as \texttt{maxbaroffsettextleft@eol} but when the center of the text goes r
\subsection{Penalties}\label{penalties}
-Penalties are used by \TeX\ to determine where line and page breaks should occur. Gregorio\TeX\ modifies or defines a few of its own to help with that process in scores.
+Penalties are used by \TeX\ to determine where line and page breaks should occur. Gregorio\TeX\ modifies or defines a few of its own to help with that process in scores. With the exception of \texttt{emergencystretch} (which should be changed using \verb=\grechangedim=) these should be changed using \verb=\grechangecount=, described above.
-\macroname{\textbackslash grebrokenpenalty}{}{gsp-default.tex}
+\begin{gcount}{brokenpenalty}
The vertical penalty inserted after a break on a clef change.
+\end{gcount}
-Default: 0
-
-\macroname{\textbackslash greclubpenalty}{}{gsp-default.tex}
+\begin{gcount}{clubpenalty}
The club penalty (determines how important it is to prevent orphans from occurring).
+\end{gcount}
-Default: 0
-
-\macroname{\textbackslash grewidowpenalty}{}{gsp-default.tex}
+\begin{gcount}{widowpenalty}
The widow penalty (determines how important it is to prevent widows from occurring).
+\end{gcount}
-Default: 0
-
-\macroname{\textbackslash greemergencystretch}{}{gsp-default.tex}
-The value of the last ditch stretch for overfull boxes.
+\macroname{emergencystretch}{}{gsp-default.tex}
+The value of the last ditch stretch for overfull boxes. This should be set using \verb=\grechangedim=.
Default: \verb=\emergencystretch=
-\macroname{\textbackslash greendafterbarpenalty}{}{gsp-default.tex}
+\begin{gcount}{endafterbarpenalty}
The end after bar penalty.
+\end{gcount}
-Default: $-200$
-
-\macroname{\textbackslash greendafterbaraltpenalty}{}{gsp-default.tex}
+\begin{gcount}{endafterbaraltpenalty}{}{gsp-default.tex}
The alternate end after bar penalty (used when there is no text under the bar).
+\end{gcount}
-Default: $-200$
-
-\macroname{\textbackslash greendofelementpenalty}{}{gsp-default.tex}
+\begin{gcount}{endofelementpenalty}{}{gsp-default.tex}
The end of element penalty.
+\end{gcount}
-Default: $-50$
-
-\macroname{\textbackslash greendofsyllablepenalty}{}{gsp-default.tex}
+\begin{gcount}{endofsyllablepenalty}{}{gsp-default.tex}
The end of element penalty.
+\end{gcount}
-Default: $-50$
-
-\macroname{\textbackslash greendofwordpenalty}{}{gsp-default.tex}
+\begin{gcount}{endofwordpenalty}{}{gsp-default.tex}
The end of element penalty.
+\end{gcount}
-Default: $-100$
-
-\macroname{\textbackslash grehyphenpenalty}{}{gsp-default.tex}
+\begin{gcount}{hyphenpenalty}{}{gsp-default.tex}
The hyphen penalty.
+\end{gcount}
-Default: $-200$
-
-\macroname{\textbackslash grenobreakpenalty}{}{gsp-default.tex}
+\begin{gcount}{nobreakpenalty}{}{gsp-default.tex}
Penalty to prevent a line break.
+\end{gcount}
-Default: 10001
-
-\macroname{\textbackslash grenewlinepenalty}{}{gsp-default.tex}
+\begin{gcount}{newlinepenalty}
Penalty to force a line break.
+\end{gcount}
-Default: $-10001$
-
-\macroname{\textbackslash grefinalpenalty}{}{gsp-default.tex}
+\begin{gcount}{finalpenalty}
The penalty applied after the final element of a score.
+\end{gcount}
-Default: $0$
-
-\macroname{\textbackslash grelooseness}{}{gsp-default.tex}
+\macroname{looseness}{}{gsp-default.tex}
The \TeX\ looseness within a score.
Default: \verb=\looseness=
-\macroname{\textbackslash gretolerance}{}{gsp-default.tex}
+\begin{gcount}{tolerance}
The \TeX\ tolerance within a score. See \url{https://en.wikibooks.org/wiki/TeX/tolerance} for an explanation of what tolerance is.
+\end{gcount}
-Default: 9000
-
-\macroname{\textbackslash grepretolerance}{}{gsp-default.tex}
+\macroname{pretolerance}{}{gsp-default.tex}
The \TeX\ pretolerance within a score. See \url{https://en.wikibooks.org/wiki/TeX/pretolerance} for an explanation of what pretolerance is.
-Default: $-1$ (Lua\TeX\ versions prior to 0.80) or \verb=\pretolerance= (versions after, and including, 0.80)
+Default: $-1$ (Lua\TeX\ versions prior to 0.80) or \verb=\pretolerance= (versions after, and including, 0.80)]
\textit{Nota bene:} For more details on why this is necessary see the comments in gsp-default.tex.
@@ -1773,15 +1805,12 @@ Default: $-1$ (Lua\TeX\ versions prior to 0.80) or \verb=\pretolerance= (version
\subsection{Colors}\label{colors}
-Colors are strictly a \LaTeX\ phenomena as currently implemented. All
-commands which change a color will raise a warning in Plain \TeX, but will not alter the document.
-
All colors can be redefined using \verb=\definecolor=. See the
-\verb=xcolor= package for documentation.
+\verb=xcolor= (\LaTeX) or \verb=color= (Plain\TeX) package for documentation.
Example:\par\medskip
\begin{latexcode}
- \definecolor{gregoriocolor}{RGB}{229,53,44}
+ \definecolor{gregoriocolor}{RGB}{229,53,44}
\end{latexcode}
\macroname{grebackgroundcolor}{}{gregoriotex.sty}
diff --git a/Master/texmf-dist/doc/luatex/gregoriotex/Command_Index_gregorio.tex b/Master/texmf-dist/doc/luatex/gregoriotex/Command_Index_gregorio.tex
index 9319935f362..2ffa06181cb 100644
--- a/Master/texmf-dist/doc/luatex/gregoriotex/Command_Index_gregorio.tex
+++ b/Master/texmf-dist/doc/luatex/gregoriotex/Command_Index_gregorio.tex
@@ -16,23 +16,23 @@ defined in the \texttt{main.tex} file. If so, this macro does nothing,
respecting the annotation value in the \texttt{main.tex} file.
\begin{argtable}
- \#1 & string & First line text to place above the initial.\\
- \#2 & string & Second line text to place above the initial.\\
+ \#1 & string & First line text to place above the initial.\\
+ \#2 & string & Second line text to place above the initial.\\
\end{argtable}
\macroname{\textbackslash GreBeginScore}{\#1\#2\#3\#4\#5\#6\#7}{gregoriotex-main.tex}
Macro to start a score.
\begin{argtable}
- \#1 & string & a unique identifier for the score (currently an SHA-1-based digest of the gabc file)\\
- \#2 & integer & the height number of the top pitch of the entire score, including signs\\
- \#3 & integer & the height number of the bottom pitch of the entire score, including signs\\
- \#4 & 0 & there is no translation line in the score\\
- & 1 & there is a translation line somewhere in the score\\
- \#5 & 0 & there is no above lines text in the score\\
- & 1 & there is above lines text somewhere in the score\\
- \#6 & string & the absolute filename of the gabc file if point-and-click is enabled\\
- \#7 & integer & the number of staff lines\\
+ \#1 & string & a unique identifier for the score (currently an SHA-1-based digest of the gabc file)\\
+ \#2 & integer & the height number of the top pitch of the entire score, including signs\\
+ \#3 & integer & the height number of the bottom pitch of the entire score, including signs\\
+ \#4 & 0 & there is no translation line in the score\\
+ & 1 & there is a translation line somewhere in the score\\
+ \#5 & 0 & there is no above lines text in the score\\
+ & 1 & there is above lines text somewhere in the score\\
+ \#6 & string & the absolute filename of the gabc file if point-and-click is enabled\\
+ \#7 & integer & the number of staff lines\\
\end{argtable}
\macroname{\textbackslash GreEndScore}{}{gregoriotex-main.tex}
@@ -48,111 +48,112 @@ Macro called at the end of a set of gabc headers.
Macro for typesetting an accentus.
\begin{argtable}
- \#1 & integer & height number of episema\\
- \#2 & string & Type of glyph the episema is attached to. See \nameref{EpisemaSpecial} argument for description of options.\\
+ \#1 & integer & height number of episema\\
+ \#2 & string & Type of glyph the episema is attached to. See \nameref{EpisemaSpecial} argument for description of options.\\
\end{argtable}
\macroname{\textbackslash GreAdditionalLine}{\#1\#2\#3}{gregoriotex-signs.tex}
Macro to typeset the additional line above or below the staff.
\begin{argtable}
- \#1 & string & See \nameref{EpisemaSpecial}.\\
- \#2 & integer & The ambitus of the porrectus or porrectus flexus if the first references these glyph types; ignored otherwise.\\
- \#3 & integer & Set horizontal episema (0), horizontal episema under a note (1), line at top of staff (2), line at bottom of staff (3), choral sign (4).\\
+ \#1 & string & See \nameref{EpisemaSpecial}.\\
+ \#2 & integer & The ambitus of the porrectus or porrectus flexus if the first references these glyph types; ignored otherwise.\\
+ \#3 & integer & Set horizontal episema (0), horizontal episema under a note (1), line at top of staff (2), line at bottom of staff (3), choral sign (4).\\
\end{argtable}
-\macroname{\textbackslash GreAdHocSpaceEndOfElement}{\#1\#2}{gregoriotex-main.tex}
+\macroname{\textbackslash GreAdHocSpaceEndOfElement}{\#1\#2\#3}{gregoriotex-main.tex}
Macro to end an element with an ad-hoc space.
\begin{argtable}
- \#1 & float & The factor to scale the default space for use as an ad-hoc space.\\
- \#2 & \texttt{0} & Space is breakable.\\
- & \texttt{1} & Space is unbreakable.\\
+ \#1 & float & The factor to scale the default space for use as an ad-hoc space.\\
+ \#2 & \texttt{0} & Space is breakable.\\
+ & \texttt{1} & Space is unbreakable.\\
+ \#3 & integer & The number of notes in the syllable prior to this macro.\\
\end{argtable}
\macroname{\textbackslash GreAugmentumDuplex}{\#1\#2\#3}{gregoriotex-signs.tex}
Macro for typesetting an augmentum duplex (a pair of punctum mora)
\begin{argtable}
- \#1 & integer & Height number for first punctum mora.\\
- \#2 & integer & Height number for second punctum mora.\\
- \#3 & integer & First punctum mora occurs before last note of a podatus, prorectus, or toculus resupinus (1), or not (0).\\
+ \#1 & integer & Height number for first punctum mora.\\
+ \#2 & integer & Height number for second punctum mora.\\
+ \#3 & integer & First punctum mora occurs before last note of a podatus, prorectus, or toculus resupinus (1), or not (0).\\
\end{argtable}
\macroname{\textbackslash GreBarBrace}{\#1}{gregoriotex-signs.tex}
Macro for typesetting a bar brace.
\begin{argtable}
- \#1 & string & Type of glyph the episema is attached to. See \nameref{EpisemaSpecial} argument for description of options.\\
+ \#1 & string & Type of glyph the episema is attached to. See \nameref{EpisemaSpecial} argument for description of options.\\
\end{argtable}
\macroname{\textbackslash GreBarSyllable}{\#1\#2\#3\#4\#5\#6\#7\#8\#9}{gregoriotex-syllable.tex}
Macro for typesetting a bar syllable.
\begin{argtable}
- \#1 & \TeX\ code & macro setting syllable letters for the current syllable\\
- \#2 & empty & reserved for future use\\
- \#3 & \TeX\ control sequence & the control sequence to use for styling the hyphen\\
- \#4 & \texttt{0} & this syllable is not the end of a word\\
- & \texttt{1} & this syllable is the end of a word\\
- \#5 & \TeX\ code & macros setting syllable letters for the next syllable\\
- \#6 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled\\
- \#7 & & alignment type of the first next glyph\\
- \#8 &\TeX\ code & other macros (translation, double text, etc.) that don't fit in the limitation of the number of arguments\\
- \#9 & \TeX\ code & The bar line (usually a \textit{writebar} call).
+ \#1 & \TeX\ code & macro setting syllable letters for the current syllable\\
+ \#2 & empty & reserved for future use\\
+ \#3 & \TeX\ control sequence & the control sequence to use for styling the hyphen\\
+ \#4 & \texttt{0} & this syllable is not the end of a word\\
+ & \texttt{1} & this syllable is the end of a word\\
+ \#5 & \TeX\ code & macros setting syllable letters for the next syllable\\
+ \#6 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled\\
+ \#7 & & alignment type of the first next glyph\\
+ \#8 &\TeX\ code & other macros (translation, double text, etc.) that don't fit in the limitation of the number of arguments\\
+ \#9 & \TeX\ code & The bar line (usually a \textit{writebar} call).
\end{argtable}
\macroname{\textbackslash GreBarVEpisema}{\#1}{gregoriotex-signs.tex}
Macro to typeset a vertical episema on a bar.
\begin{argtable}
- \#1 & string & Type of glyph the episema is attached to. See \nameref{EpisemaSpecial} argument for description of options.\\
+ \#1 & string & Type of glyph the episema is attached to. See \nameref{EpisemaSpecial} argument for description of options.\\
\end{argtable}
\macroname{\textbackslash GreBeginEUOUAE}{\#1}{gregoriotex-main.tex}
Macro to mark the beginning of a EUOUAE block. Alters spacings and prohibits a line break until the end of the block.
\begin{argtable}
- \#1 & integer & The identifier of the EUOUAE block.\\
+ \#1 & integer & The identifier of the EUOUAE block.\\
\end{argtable}
\macroname{\textbackslash GreBeginNLBArea}{\#1\#2}{gregoriotex-main.tex}
Macro called at beginning of a no line break area.
\begin{argtable}
- \#1 & \texttt{0} & Not in the neumes.\\
- & \texttt{1} & In the neumes.\\
- \#2 & \texttt{0} & Call didn't come from translation centering.\\
- & \texttt{1} & Call came from translation centering.
+ \#1 & \texttt{0} & Not in the neumes.\\
+ & \texttt{1} & In the neumes.\\
+ \#2 & \texttt{0} & Call didn't come from translation centering.\\
+ & \texttt{1} & Call came from translation centering.
\end{argtable}
\macroname{\textbackslash GreBold}{\#1}{gregoriotex.sty and gregoriotex.tex}
Makes argument bold. Accesses \LaTeX\ \verb=\textbf= (\textit{gregoriotex.sty}) or Plain \TeX\ \verb=\bf= (\textit{gregoriotex.tex}) as appropriate. Corresponds to ``<b></b>'' tags in gabc.
\begin{argtable}
- \#1 & string & Text to be typeset in bold.\\
+ \#1 & string & Text to be typeset in bold.\\
\end{argtable}
\macroname{\textbackslash GreChangeClef}{\#1\#2\#3\#4\#5\#6\#7}{gregoriotex-signs.tex}
Macro called when key changes
\begin{argtable}
- \#1 & character & Type of new clef (c or f).\\
- \#2 & \texttt{1}--\texttt{5} & Line of new clef.\\
- \#3 & \texttt{0} & Print space before clef.\\
- & \texttt{1} & Do not print space before clef.\\
- \#4 & integer & Height number of flat in clef (\texttt{3} for no flat).\\
- \#5 & \texttt{c} or \texttt{f} & Type of secondary clef.\\
- \#6 & \texttt{0}--\texttt{5} & Line of secondary clef (\texttt{0} for no secondary clef).\\
- \#7 & integer & Height of flat in secondary clef (\texttt{3} for no flat).\\
+ \#1 & character & Type of new clef (c or f).\\
+ \#2 & \texttt{1}--\texttt{5} & Line of new clef.\\
+ \#3 & \texttt{0} & Print space before clef.\\
+ & \texttt{1} & Do not print space before clef.\\
+ \#4 & integer & Height number of flat in clef (\texttt{3} for no flat).\\
+ \#5 & \texttt{c} or \texttt{f} & Type of secondary clef.\\
+ \#6 & \texttt{0}--\texttt{5} & Line of secondary clef (\texttt{0} for no secondary clef).\\
+ \#7 & integer & Height of flat in secondary clef (\texttt{3} for no flat).\\
\end{argtable}
\macroname{\textbackslash GreCirculus}{\#1\#2}{gregoriotex-signs.tex}
Macro for typesetting a circulus.
\begin{argtable}
- \#1 & integer & Height number of circulus.\\
- \#2 & string & Type of glyph the circulus is attached to. See \nameref{EpisemaSpecial} argument for description of options.\\
+ \#1 & integer & Height number of circulus.\\
+ \#2 & string & Type of glyph the circulus is attached to. See \nameref{EpisemaSpecial} argument for description of options.\\
\end{argtable}
\macroname{\textbackslash GreColored}{\#1}{gregoriotex.sty \textup{and} gregoriotex.tex}
@@ -164,7 +165,7 @@ reversa ascendens neumes on the ``d'' (lowest) line. This macro is
defined and re-defined by the \verb=\gresetgregoriofont= macro.
\begin{argtable}
- \#1 & \TeX{} code & The \TeX{} code to use when long stems are not forced.\\
+ \#1 & \TeX{} code & The \TeX{} code to use when long stems are not forced.\\
\end{argtable}
\macroname{\textbackslash GreCP...}{}{gregoriotex-main.tex}
@@ -174,8 +175,11 @@ A class of macros which point to the individual characters in a Gregoiro\TeX\ co
Typesets a custos.
\begin{argtable}
- \#1 & integer & Height number of custos.\\
- \#2 & integer & Indicate if the custo is the last of the score.\\
+ \#1 & integer & Height number of custos.\\
+ \#2 & \texttt{Flat} & The custos should have a flat.\\
+ & \texttt{Natural} & The custos should have a natural.\\
+ & \texttt{Sharp} & The custos should have a sharp.\\
+ & \textit{empty} & The custos should not have an alteration.\\
\end{argtable}
\macroname{\textbackslash GreDagger}{}{gregoriotex-symbols.tex}
@@ -185,79 +189,79 @@ Macro to typeset a dagger (\GreDagger).
A Gregorio\TeX-specific discretionary. Currently only used to avoid clef change at beginning or end of line, or even with more complex data (z0::c3 for instance). We require a special function because in the normal discretionary function you cannot use \verb=\hskip= (but you can use \verb=\kern=) and you cannot use \verb=\penalty= (which is useless indeed). This macro corrects for these two limitations. The first argument allows to select the penalty assigned to the discretionary by recent version of Lua\TeX.
\begin{argtable}
- \#1 & integer & Type of discretionary (for penalty assignment). Currently possible value is 0 for clef change discretionaries.\\
- \#2 & \TeX\ code & First argument of resulting \verb=\discretionary=.\\
- \#3 & \TeX\ code & Third argument of resulting \verb=\discretionary=.\\
+ \#1 & integer & Type of discretionary (for penalty assignment). Currently possible value is 0 for clef change discretionaries.\\
+ \#2 & \TeX\ code & First argument of resulting \verb=\discretionary=.\\
+ \#3 & \TeX\ code & Third argument of resulting \verb=\discretionary=.\\
\end{argtable}
\macroname{\textbackslash GreDivisioFinalis}{\#1\#2}{gregoriotex-signs.tex}
Macro to typeset a divisio finalis.
\begin{argtable}
- \#1 & \texttt{0} & There is no text under the bar.\\
- & \texttt{1} & There is text under the bar.\\
- \#2 & \TeX\ code & Macros which may happen before the skip but after the divisio finalis (typically \verb=\grevepisema=).\\
+ \#1 & \texttt{0} & There is no text under the bar.\\
+ & \texttt{1} & There is text under the bar.\\
+ \#2 & \TeX\ code & Macros which may happen before the skip but after the divisio finalis (typically \verb=\grevepisema=).\\
\end{argtable}
\macroname{\textbackslash GreDivisioMaior}{\#1\#2}{gregoriotex-signs.tex}
Macro to typeset a divisio maior.
\begin{argtable}
- \#1 & \texttt{0} & There is no text under the bar.\\
- & \texttt{1} & There is text under the bar.\\
- \#2 & \TeX\ code & Macros which may happen before the skip but after the divisio maior (typically \verb=\grevepisema=).\\
+ \#1 & \texttt{0} & There is no text under the bar.\\
+ & \texttt{1} & There is text under the bar.\\
+ \#2 & \TeX\ code & Macros which may happen before the skip but after the divisio maior (typically \verb=\grevepisema=).\\
\end{argtable}
\macroname{\textbackslash GreDivisioMinima}{\#1\#2}{gregoriotex-signs.tex}
Macro to typeset a divisio minima.
\begin{argtable}
- \#1 & \texttt{0} & There is no text under the bar.\\
- & \texttt{1} & There is text under the bar.\\
- \#2 & \TeX\ code & Macros which may happen before the skip but after the divisio minima (typically \verb=\grevepisema=).\\
+ \#1 & \texttt{0} & There is no text under the bar.\\
+ & \texttt{1} & There is text under the bar.\\
+ \#2 & \TeX\ code & Macros which may happen before the skip but after the divisio minima (typically \verb=\grevepisema=).\\
\end{argtable}
\macroname{\textbackslash GreDivisioMinor}{\#1\#2}{gregoriotex-signs.tex}
Macro to typeset a divisio minor.
\begin{argtable}
- \#1 & \texttt{0} & There is no text under the bar.\\
- & \texttt{1} & There is text under the bar.\\
- \#2 & \TeX\ code & Macros which may happen before the skip but after the divisio minor (typically \verb=\grevepisema=).\\
+ \#1 & \texttt{0} & There is no text under the bar.\\
+ & \texttt{1} & There is text under the bar.\\
+ \#2 & \TeX\ code & Macros which may happen before the skip but after the divisio minor (typically \verb=\grevepisema=).\\
\end{argtable}
\macroname{\textbackslash GreDominica}{\#1\#2\#3}{gregoriotex-signs.tex}
Macro to typeset a dominican bar.
\begin{argtable}
- \#1 & \texttt{1}--\texttt{6} & Type of dominican bar. Corresponds to bar types 6--13 in \verb=\grewritebar=.\\
- \#2 & \texttt{0} & There is no text under the bar.\\
- & \texttt{1} & There is text under the bar.\\
- \#3 & \TeX\ code & Macros which may happen before the skip but after the divisio dominica (typically \verb=\grevepisema=).\\
+ \#1 & \texttt{1}--\texttt{6} & Type of dominican bar. Corresponds to bar types 6--13 in \verb=\grewritebar=.\\
+ \#2 & \texttt{0} & There is no text under the bar.\\
+ & \texttt{1} & There is text under the bar.\\
+ \#3 & \TeX\ code & Macros which may happen before the skip but after the divisio dominica (typically \verb=\grevepisema=).\\
\end{argtable}
\macroname{\textbackslash GreDrawAdditionalLine}{\#1\#2\#3\#4\#5\#6}{gregoriotex-signs.tex}
Macro to draw ledger lines.
\begin{argtable}
- \#1 & \texttt{0} & Draw an over-the-staff ledger line. \\
- & \texttt{1} & Draw an under-the-staff ledger line. \\
- \#2 & distance & The length of the line, with TeX units, excluding any left or right distances coming from the rest of the arguments. \\
- \#3 & \texttt{0} & Start the line at this point. \\
- & \texttt{1} & Start the line to the left of this point by \verb=gre@dimen@additionallineswidth=. \\
- & \texttt{2} & Start the line to the left of this point by \#4. \\
- \#4 & distance & The distance to move left before starting the line if \#3 is \texttt{2}. \\
- \#5 & \texttt{0} & End the line exactly \#2 to the right of this point. \\
- & \texttt{1} & End the line \verb=gre@dimen@additionallineswidth= to the right of \#2 from this point. \\
- & \texttt{2} & End the line \#6 to the right of \#2 from this point. \\
- \#6 & distance & The distance to end the line after \#2 from this point if \#3 is \texttt{2}. \\
+ \#1 & \texttt{0} & Draw an over-the-staff ledger line. \\
+ & \texttt{1} & Draw an under-the-staff ledger line. \\
+ \#2 & distance & The length of the line, with TeX units, excluding any left or right distances coming from the rest of the arguments. \\
+ \#3 & \texttt{0} & Start the line at this point. \\
+ & \texttt{1} & Start the line to the left of this point by \verb=gre@dimen@additionallineswidth=. \\
+ & \texttt{2} & Start the line to the left of this point by \#4. \\
+ \#4 & distance & The distance to move left before starting the line if \#3 is \texttt{2}. \\
+ \#5 & \texttt{0} & End the line exactly \#2 to the right of this point. \\
+ & \texttt{1} & End the line \verb=gre@dimen@additionallineswidth= to the right of \#2 from this point. \\
+ & \texttt{2} & End the line \#6 to the right of \#2 from this point. \\
+ \#6 & distance & The distance to end the line after \#2 from this point if \#3 is \texttt{2}. \\
\end{argtable}
\macroname{\textbackslash GreElision}{\#1}{gregoriotex-syllable.tex}
Typesets \#1 using the \texttt{elision} style.
\begin{argtable}
- \#1 & string & Text to be typeset in the \texttt{elision} style.\\
+ \#1 & string & Text to be typeset in the \texttt{elision} style.\\
\end{argtable}
\macroname{\textbackslash GreEmptyFirstSyllableHyphen}{}{gregoriotex-syllable.tex}
@@ -267,87 +271,92 @@ Macro that indicates the position of an empty-first-syllable hyphen, should one
Macro to mark the end of a EUOUAE block.
\begin{argtable}
- \#1 & \texttt{0} & ending element\\
- & \texttt{1} & ending syllable\\
- & \texttt{2} & ending score\\
- & \texttt{3} & before bar
+ \#1 & \texttt{0} & ending element\\
+ & \texttt{1} & ending syllable\\
+ & \texttt{2} & ending score\\
+ & \texttt{3} & before bar
\end{argtable}
-\macroname{\textbackslash GreEndOfElement}{\#1\#2}{gregoriotex-main.tex}
+\macroname{\textbackslash GreEndOfElement}{\#1\#2\#3}{gregoriotex-main.tex}
Macro to end elements.
\begin{argtable}
- \#1 & \texttt{0} & Default space.\\
- & \texttt{1} & Larger space.\\
- & \texttt{2} & Glyph space.\\
- & \texttt{3} & Zero-width space.\\
- & \texttt{4} & Ad-hoc space.\\
- \#2 & \texttt{0} & Space is breakable.\\
- & \texttt{1} & Space is unbreakable.\\
+ \#1 & \texttt{0} & Default space.\\
+ & \texttt{1} & Larger space.\\
+ & \texttt{2} & Glyph space.\\
+ & \texttt{3} & Zero-width space.\\
+ & \texttt{4} & Ad-hoc space.\\
+ \#2 & \texttt{0} & Space is breakable.\\
+ & \texttt{1} & Space is unbreakable.\\
+ \#3 & integer & The number of notes in the syllable prior to this macro.\\
\end{argtable}
\macroname{\textbackslash GreEndNLBArea}{\#1\#2}{gregoriotex-main.tex}
Macro to end a no line break area.
\begin{argtable}
- \#1 & 0 & ending element\\
- & \texttt{1} & ending syllable\\
- & \texttt{2} & ending score\\
- & \texttt{3} & before bar\\
- \#2 & \texttt{0} & ??\\ %I can’t tell what this flag is for
- & else & ??
+ \#1 & 0 & ending element\\
+ & \texttt{1} & ending syllable\\
+ & \texttt{2} & ending score\\
+ & \texttt{3} & before bar\\
+ \#2 & \texttt{0} & ??\\ %I can’t tell what this flag is for
+ & else & ??
\end{argtable}
\macroname{\textbackslash GreEndOfGlyph}{\#1}{gregoriotex-main.tex}
Macro to end a glyph without ending the element.
\begin{argtable}
- \#1 & \texttt{0} & Default space.\\
- & \texttt{1} & Zero-width space.\\
- & \texttt{2} & Space between flat or natural and a note.\\
- & \texttt{3} & Space between two puncta inclinata, descending.\\
- & \texttt{4} & Space between bivirga or trivirga.\\
- & \texttt{5} & space between bistropha or tristropha.\\
- & \texttt{6} & Space after a punctum mora XXX: not used yet, not so sure it is a good idea\ldots\\
- & \texttt{7} & Space between a punctum inclinatum and a punctum inclinatum debilis, descending.\\
- & \texttt{8} & Space between two puncta inclinata debilis.\\
- & \texttt{9} & Space before a punctum (or something else) and a punctum inclinatum.\\
- & \texttt{10} & Space between puncta inclinata (also debilis for now), larger ambitus (range=3rd), descending.\\
- & \texttt{11} & Space between puncta inclinata (also debilis for now), larger ambitus (range=4th or 5th), descending.\\
- & \texttt{12} & Space between two puncta inclinata, ascending. \\
- & \texttt{13} & Space between a punctum inclinatum and a punctum inclinatum debilis, ascending. \\
- & \texttt{14} & Space between puncta inclinata (also debilis for now), larger ambitus (range=3rd), ascending. \\
- & \texttt{15} & Space between puncta inclinata (also debilis for now), larger ambitus (range=4th or 5th), ascending. \\
- & \texttt{16} & Space between a punctum inclinatum and a ``no-bar'' glyph one pitch below. \\
- & \texttt{17} & Space between a punctum inclinatum and a ``no-bar'' glyph two pitches below. \\
- & \texttt{18} & Space between a punctum inclinatum and a ``no-bar'' glyph three or four pitches below \\
- & \texttt{19} & Space between a punctum inclinatum and a ``no-bar'' glyph one pitch above. \\
- & \texttt{20} & Space between a punctum inclinatum and a ``no-bar'' glyph two pitches above. \\
- & \texttt{21} & Space between a punctum inclinatum and a ``no-bar'' glyph three or four pitches above \\
- & \texttt{22} & Half-space. \\
-\end{argtable}
-
-\macroname{\textbackslash GreFinalCustos}{\#1}{gregoriotex-signs.tex}
+ \#1 & \texttt{0} & Default space.\\
+ & \texttt{1} & Zero-width space.\\
+ & \texttt{2} & Space between flat or natural and a note.\\
+ & \texttt{3} & Space between two puncta inclinata, descending.\\
+ & \texttt{4} & Space between bivirga or trivirga.\\
+ & \texttt{5} & space between bistropha or tristropha.\\
+ & \texttt{6} & Space after a punctum mora XXX: not used yet, not so sure it is a good idea\ldots\\
+ & \texttt{7} & Space between a punctum inclinatum and a punctum inclinatum debilis, descending.\\
+ & \texttt{8} & Space between two puncta inclinata debilis.\\
+ & \texttt{9} & Space before a punctum (or something else) and a punctum inclinatum.\\
+ & \texttt{10} & Space between puncta inclinata (also debilis for now), larger ambitus (range=3rd), descending.\\
+ & \texttt{11} & Space between puncta inclinata (also debilis for now), larger ambitus (range=4th or 5th), descending.\\
+ & \texttt{12} & Space between two puncta inclinata, ascending. \\
+ & \texttt{13} & Space between a punctum inclinatum and a punctum inclinatum debilis, ascending. \\
+ & \texttt{14} & Space between puncta inclinata (also debilis for now), larger ambitus (range=3rd), ascending. \\
+ & \texttt{15} & Space between puncta inclinata (also debilis for now), larger ambitus (range=4th or 5th), ascending. \\
+ & \texttt{16} & Space between a punctum inclinatum and a ``no-bar'' glyph one pitch below. \\
+ & \texttt{17} & Space between a punctum inclinatum and a ``no-bar'' glyph two pitches below. \\
+ & \texttt{18} & Space between a punctum inclinatum and a ``no-bar'' glyph three or four pitches below \\
+ & \texttt{19} & Space between a punctum inclinatum and a ``no-bar'' glyph one pitch above. \\
+ & \texttt{20} & Space between a punctum inclinatum and a ``no-bar'' glyph two pitches above. \\
+ & \texttt{21} & Space between a punctum inclinatum and a ``no-bar'' glyph three or four pitches above \\
+ & \texttt{22} & Half-space. \\
+\end{argtable}
+
+\macroname{\textbackslash GreFinalCustos}{\#1\#2}{gregoriotex-signs.tex}
Typesets a custos after the final bar in a score.
\begin{argtable}
- \#1 & integer & Height number of custos.\\
+ \#1 & integer & Height number of custos.\\
+ \#2 & \texttt{Flat} & The custos should have a flat.\\
+ & \texttt{Natural} & The custos should have a natural.\\
+ & \texttt{Sharp} & The custos should have a sharp.\\
+ & \textit{empty} & The custos should not have an alteration.\\
\end{argtable}
\macroname{\textbackslash GreFinalDivisioFinalis}{\#1}{gregoriotex-signs.tex}
Macro to end a score with a divisio finalis.
\begin{argtable}
- \#1 & \texttt{0} & Something does not need to be placed after the divisio finalis.\\
- & \texttt{1} & Something needs to be placed after the divisio finalis.\\
+ \#1 & \texttt{0} & Something does not need to be placed after the divisio finalis.\\
+ & \texttt{1} & Something needs to be placed after the divisio finalis.\\
\end{argtable}
\macroname{\textbackslash GreFinalDivisioMaior}{\#1}{gregoriotex-signs.tex}
Macro to end a score with a divisio maior.
\begin{argtable}
- \#1 & \texttt{0} & Something does not need to be placed after the divisio maior.\\
- & \texttt{1} & Something needs to be placed after the divisio maior.\\
+ \#1 & \texttt{0} & Something does not need to be placed after the divisio maior.\\
+ & \texttt{1} & Something needs to be placed after the divisio maior.\\
\end{argtable}
\macroname{\textbackslash GreFirstSyllable}{\#1}{gregoriotex-syllable.tex}
@@ -358,7 +367,7 @@ before the centered letters, for the centered letters, and for the letters
after the centered letters.
\begin{argtable}
- \#1 & string & Text from the first syllable.
+ \#1 & string & Text from the first syllable.
\end{argtable}
\macroname{\textbackslash GreFirstSyllableInitial}{\#1}{gregoriotex-syllable.tex}
@@ -369,8 +378,8 @@ first letter of the syllable will be passed. If the \texttt{initial-style} is
may be redefined to style the first letter appropriately.
\begin{argtable}
- \#1 & string & The first letter of the first syllable which is not the
- initial of the score.
+ \#1 & string & The first letter of the first syllable which is not the
+ initial of the score.
\end{argtable}
\macroname{\textbackslash GreFirstWord}{\#1}{gregoriotex-syllable.tex}
@@ -380,19 +389,19 @@ appropriately. This macro may be called multiple times, depending on how
many syllables are in the word.
\begin{argtable}
- \#1 & string & Text from the first word.
+ \#1 & string & Text from the first word.
\end{argtable}
\macroname{\textbackslash GreFlat}{\#1\#2\#3\#4\#5}{gregoriotex-signs.tex}
Macro to typeset a flat.
\begin{argtable}
- \#1 & integer & Height number of the flat.\\
- \#2 & \texttt{0} & The flat is not part of the clef.\\
- & \texttt{1} & The flat is part of the clef.\\
- \#3 & \TeX\ code & signs to typeset before the glyph (typically additional bars, as they must be "behind" the glyph)\\
- \#4 & \TeX\ code & signs to typeset after the glyph (almost all signs)\\
- \#5 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled\\
+ \#1 & integer & Height number of the flat.\\
+ \#2 & \texttt{0} & The flat is not part of the clef.\\
+ & \texttt{1} & The flat is part of the clef.\\
+ \#3 & \TeX\ code & signs to typeset before the glyph (typically additional bars, as they must be "behind" the glyph)\\
+ \#4 & \TeX\ code & signs to typeset after the glyph (almost all signs)\\
+ \#5 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled\\
\end{argtable}
\macroname{\textbackslash GreForceHyphen}{}{gregoriotex-syllable.tex}
@@ -405,38 +414,38 @@ Macro used between two fused glyphs.
Macro for fusing two glyphs to create a larger neume.
\begin{argtable}
- \#1 & Gregorio\TeX\ glyph & The first glyph in the sequence.\\
- \#2 & Gregorio\TeX\ glyph & The second.
+ \#1 & Gregorio\TeX\ glyph & The first glyph in the sequence.\\
+ \#2 & Gregorio\TeX\ glyph & The second.
\end{argtable}
\macroname{\textbackslash GreGlyph}{\#1\#2\#3\#4\#5\#6\#7}{gregoriotex-syllable.tex}
Macro to typeset a glyph.
\begin{argtable}
- \#1 & character & the character that it must call\\
- \#2 & integer & The number for where the glyph is located. \texttt{a} in gabc is 1, \texttt{b} is 2, \etc\\
- \#3 & integer & height number of the next note\\
- \#4 & \texttt{0} & One-note glyph or more than two notes glyph except porrectus: \ie, we must put the aligncenter in the middle of the first note\\
- & \texttt{1} & Two notes glyph (podatus is considered as a one-note glyph): \ie, we put the aligncenter in the middle of the glyph\\
- & \texttt{2} & Porrectus: has a special align center.\\
- & \texttt{3} & initio-debilis : same as 1 but the first note is much smaller\\
- & \texttt{4} & case of a glyph starting with a quilisma\\
- & \texttt{5} & case of a glyph starting with an oriscus\\
- & \texttt{6} & case of a punctum inclinatum\\
- & \texttt{7} & case of a stropha\\
- & \texttt{8} & flexus with an ambitus of one\\
- & \texttt{9} & flexus deminutus\\
- \#5 & \TeX\ code & signs to typeset before the glyph (typically additional bars, as they must be "behind" the glyph)\\
- \#6 & \TeX\ code & signs to typeset after the glyph (almost all signs)\\
- \#7 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled
+ \#1 & character & the character that it must call\\
+ \#2 & integer & The number for where the glyph is located. \texttt{a} in gabc is 1, \texttt{b} is 2, \etc\\
+ \#3 & \TeX\ code & code to set the next custos (using \verb=\GreNextCustos=)\\
+ \#4 & \texttt{0} & One-note glyph or more than two notes glyph except porrectus: \ie, we must put the aligncenter in the middle of the first note\\
+ & \texttt{1} & Two notes glyph (podatus is considered as a one-note glyph): \ie, we put the aligncenter in the middle of the glyph\\
+ & \texttt{2} & Porrectus: has a special align center.\\
+ & \texttt{3} & initio-debilis : same as 1 but the first note is much smaller\\
+ & \texttt{4} & case of a glyph starting with a quilisma\\
+ & \texttt{5} & case of a glyph starting with an oriscus\\
+ & \texttt{6} & case of a punctum inclinatum\\
+ & \texttt{7} & case of a stropha\\
+ & \texttt{8} & flexus with an ambitus of one\\
+ & \texttt{9} & flexus deminutus\\
+ \#5 & \TeX\ code & signs to typeset before the glyph (typically additional bars, as they must be "behind" the glyph)\\
+ \#6 & \TeX\ code & signs to typeset after the glyph (almost all signs)\\
+ \#7 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled
\end{argtable}
\macroname{\textbackslash GreGlyphHeights}{\#1\#2}{gregoriotex-syllable.tex}
Passes the glyph height limits.
\begin{argtable}
- \#1 & integer & the high height\\
- \#2 & integer & the low height
+ \#1 & integer & the high height\\
+ \#2 & integer & the low height
\end{argtable}
\macroname{\textbackslash GregorioTeXAPIVersion}{\#1}{gregoriotex-main.tex}
@@ -444,43 +453,43 @@ Checks to see if Gregorio\TeX\ API is version specified by argument (and
therefore compatible with the score.
\begin{argtable}
- \#1 & string & Version number for Gregorio\TeX.\\
+ \#1 & string & Version number for Gregorio\TeX.\\
\end{argtable}
\macroname{\textbackslash GreHeader}{\#1\#2}{gregoriotex-main.tex}
Macro used to pass headers to TeX.
\begin{argtable}
- \#1 & string & The header name.\\
- \#2 & string & The header value.\\
+ \#1 & string & The header name.\\
+ \#2 & string & The header value.\\
\end{argtable}
\macroname{\textbackslash GreHEpisema}{\#1\#2\#3\#4\#5\#6\#7\#8\#9}{gregoriotex-signs.tex}
Macro to typeset an horizontal episema.
\begin{argtable}
- \#1 & integer & Height number of the episema.\\
- \#2 & string & See \nameref{EpisemaSpecial}.\\
- \#3 & integer & The ambitus for a two note episema at the diagonal stroke of a
- porrectus, porrectus flexus, orculus resupinus, or torculus resupinus
- flexus.\\
- \#4 & \texttt{0} & an horizontal episema\\
- & \texttt{1} & an horizontal episema under a note\\
- & \texttt{2} & a line at the top\\
- & \texttt{3} & a line at the bottom\\
- \#5 & \texttt{f} & a normal episema\\
- & \texttt{l} & a small episema aligned left\\
- & \texttt{c} & a small episema aligned center\\
- & \texttt{r} & a small episema aligned right\\
- \#6 & integer & Replacement for \#1 if a bridge causes a height substitution.\\
- \#7 & \TeX\ code & code that sets heuristics\\
- \#8 & string & a positive or negative "nudge" (dimension) for the vertical position of the horizontal episema\\
- \#9 & \texttt{0} & for horizontal episema cases, use automatic positioning within the space\\
- & \texttt{1} & for horizontal episema cases, position in the middle of the space\\
- & \texttt{2} & for horizontal episema cases, position low within the space as if the episema is over the note\\
- & \texttt{3} & for horizontal episema cases, position high within the space as if the episema is under the note\\
- & \texttt{4} & for horizontal episema cases, position low within the space as if the episema is over the note\\
- & \texttt{5} & for horizontal episema cases, position high within the space as if the episema is under the note\\
+ \#1 & integer & Height number of the episema.\\
+ \#2 & string & See \nameref{EpisemaSpecial}.\\
+ \#3 & integer & The ambitus for a two note episema at the diagonal stroke of a
+ porrectus, porrectus flexus, orculus resupinus, or torculus resupinus
+ flexus.\\
+ \#4 & \texttt{0} & an horizontal episema\\
+ & \texttt{1} & an horizontal episema under a note\\
+ & \texttt{2} & a line at the top\\
+ & \texttt{3} & a line at the bottom\\
+ \#5 & \texttt{f} & a normal episema\\
+ & \texttt{l} & a small episema aligned left\\
+ & \texttt{c} & a small episema aligned center\\
+ & \texttt{r} & a small episema aligned right\\
+ \#6 & integer & Replacement for \#1 if a bridge causes a height substitution.\\
+ \#7 & \TeX\ code & code that sets heuristics\\
+ \#8 & string & a positive or negative "nudge" (dimension) for the vertical position of the horizontal episema\\
+ \#9 & \texttt{0} & for horizontal episema cases, use automatic positioning within the space\\
+ & \texttt{1} & for horizontal episema cases, position in the middle of the space\\
+ & \texttt{2} & for horizontal episema cases, position low within the space as if the episema is over the note\\
+ & \texttt{3} & for horizontal episema cases, position high within the space as if the episema is under the note\\
+ & \texttt{4} & for horizontal episema cases, position low within the space as if the episema is over the note\\
+ & \texttt{5} & for horizontal episema cases, position high within the space as if the episema is under the note\\
\end{argtable}
\macroname{\textbackslash GreHEpisemaBridge}{\#1\#2\#3\#4\#5\#6}{gregoriotex-signs.tex}
@@ -488,39 +497,39 @@ Macro to typeset a bridge episema for the last note of a glyph
(element, syllable) if the next episema is at the same height.
\begin{argtable}
- \#1 & integer & Height number of the episema.\\
- \#2 & \texttt{0} & Episema above the note.\\
- & \texttt{1} & Episema below the note.\\
- \#3 & \texttt{0} & Default space.\\
- & \texttt{1} & Zero-width space.\\
- & \texttt{2} & Space between flat or natural and a note.\\
- & \texttt{3} & Space between two puncta inclinata.\\
- & \texttt{4} & Space between bivirga or trivirga.\\
- & \texttt{5} & space between bistropha or tristropha.\\
- & \texttt{6} & Space after a punctum mora XXX: not used yet, not so sure it is a good idea\ldots\\
- & \texttt{7} & Space between a punctum inclinatum and a punctum inclinatum debilis.\\
- & \texttt{8} & Space between two puncta inclinata debilis.\\
- & \texttt{9} & Space before a punctum (or something else) and a punctum inclinatum.\\
- & \texttt{10} & Space between puncta inclinata (also debilis for now), larger ambitus (range=3rd).\\
- & \texttt{11} & Space between puncta inclinata (also debilis for now), larger ambitus (range=4th or more).\\
- \#4 & \TeX\ code & code that sets heuristics\\
- \#5 & string & a positive or negative "nudge" (dimension) for the vertical position of the horizontal episema\\
- \#6 & \texttt{0} & for horizontal episema cases, use automatic positioning within the space\\
- & \texttt{1} & for horizontal episema cases, position in the middle of the space\\
- & \texttt{2} & for horizontal episema cases, position low within the space as if the episema is over the note\\
- & \texttt{3} & for horizontal episema cases, position high within the space as if the episema is under the note\\
- & \texttt{4} & for horizontal episema cases, position low within the space as if the episema is over the note\\
- & \texttt{5} & for horizontal episema cases, position high within the space as if the episema is under the note\\
+ \#1 & integer & Height number of the episema.\\
+ \#2 & \texttt{0} & Episema above the note.\\
+ & \texttt{1} & Episema below the note.\\
+ \#3 & \texttt{0} & Default space.\\
+ & \texttt{1} & Zero-width space.\\
+ & \texttt{2} & Space between flat or natural and a note.\\
+ & \texttt{3} & Space between two puncta inclinata.\\
+ & \texttt{4} & Space between bivirga or trivirga.\\
+ & \texttt{5} & space between bistropha or tristropha.\\
+ & \texttt{6} & Space after a punctum mora XXX: not used yet, not so sure it is a good idea\ldots\\
+ & \texttt{7} & Space between a punctum inclinatum and a punctum inclinatum debilis.\\
+ & \texttt{8} & Space between two puncta inclinata debilis.\\
+ & \texttt{9} & Space before a punctum (or something else) and a punctum inclinatum.\\
+ & \texttt{10} & Space between puncta inclinata (also debilis for now), larger ambitus (range=3rd).\\
+ & \texttt{11} & Space between puncta inclinata (also debilis for now), larger ambitus (range=4th or more).\\
+ \#4 & \TeX\ code & code that sets heuristics\\
+ \#5 & string & a positive or negative "nudge" (dimension) for the vertical position of the horizontal episema\\
+ \#6 & \texttt{0} & for horizontal episema cases, use automatic positioning within the space\\
+ & \texttt{1} & for horizontal episema cases, position in the middle of the space\\
+ & \texttt{2} & for horizontal episema cases, position low within the space as if the episema is over the note\\
+ & \texttt{3} & for horizontal episema cases, position high within the space as if the episema is under the note\\
+ & \texttt{4} & for horizontal episema cases, position low within the space as if the episema is over the note\\
+ & \texttt{5} & for horizontal episema cases, position high within the space as if the episema is under the note\\
\end{argtable}
\macroname{\textbackslash GreHighChoralSign}{\#1\#2\#3}{gregoriotex-signs.tex}
Macro for typesetting high choral signs.
\begin{argtable}
- \#1 & integer & Height number of the sign.\\
- \#2 & string & The choral sign.\\
- \#3 & \texttt{0} & Choral sign does not occur before last note of podatus, porrectus, or torculus resupinus.\\
- & \texttt{1} & Choral sign occurs before last note of podatus, porrectus, or torculus resupinus.\\
+ \#1 & integer & Height number of the sign.\\
+ \#2 & string & The choral sign.\\
+ \#3 & \texttt{0} & Choral sign does not occur before last note of podatus, porrectus, or torculus resupinus.\\
+ & \texttt{1} & Choral sign occurs before last note of podatus, porrectus, or torculus resupinus.\\
\end{argtable}
\macroname{\textbackslash GreHyph}{}{gregoriotex-main.tex}
@@ -550,7 +559,7 @@ Plain \TeX\ \verb=\it= as appropriate. Corresponds to ``<i></i>'' tags
in gabc.
\begin{argtable}
- \#1 & string & Text to be typeset in italic font.\\
+ \#1 & string & Text to be typeset in italic font.\\
\end{argtable}
\macroname{\textbackslash GreLastOfLine}{}{gregoriotex-main.tex}
@@ -563,40 +572,40 @@ Macro to mark the syllable as the last of the score.
Indicates that this syllable is the last syllable before a EUOUAE block.
\begin{argtable}
- \#1 & integer & The identifier of the EUOUAE block.\\
- \#2 & \texttt{0} & There is no line break between this syllable and the EUOUAE block.\\
- & \texttt{1} & There is a line break between this syllable and the beginning of the EUOUAE block.\\
+ \#1 & integer & The identifier of the EUOUAE block.\\
+ \#2 & \texttt{0} & There is no line break between this syllable and the EUOUAE block.\\
+ & \texttt{1} & There is a line break between this syllable and the beginning of the EUOUAE block.\\
\end{argtable}
\macroname{\textbackslash GreLinea}{\#1\#2\#3}{gregoriotex-signs.tex}
Macro for typesetting a linea.
\begin{argtable}
- \#1 & length & Argument \#2 from \verb=\GreGlyph=. Height to raise the glyph.\\
- \#2 & length & Argument \#3 from \verb=\GreGlyph=. Height of the next note.\\
- \#3 & integer & Argument \#4 from \verb=\GreGlyph=. The type of glyph.\\
+ \#1 & length & Argument \#2 from \verb=\GreGlyph=. Height to raise the glyph.\\
+ \#2 & length & Argument \#3 from \verb=\GreGlyph=. Height of the next note.\\
+ \#3 & integer & Argument \#4 from \verb=\GreGlyph=. The type of glyph.\\
\end{argtable}
\macroname{\textbackslash GreLineaPunctumCavum}{\#1\#2\#3\#4\#5\#6}{gregoriotex-signs.tex}
Macro to typeset a linea punctum cavum.
\begin{argtable}
- \#1 & length & Argument \#2 from \verb=\GreGlyph=. Height to raise the glyph.\\
- \#2 & length & Argument \#3 from \verb=\GreGlyph=. Height of the next note.\\
- \#3 & integer & Argument \#4 from \verb=\GreGlyph=. The type of glyph.\\
- \#4 & \TeX\ code & Macros executed before the punctum cavum is written.\\
- \#5 & character & Argument \#5 from \verb=\GreGlyph=. The signs to typeset before the glyph.\\
- \#6 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled.
+ \#1 & length & Argument \#2 from \verb=\GreGlyph=. Height to raise the glyph.\\
+ \#2 & length & Argument \#3 from \verb=\GreGlyph=. Height of the next note.\\
+ \#3 & integer & Argument \#4 from \verb=\GreGlyph=. The type of glyph.\\
+ \#4 & \TeX\ code & Macros executed before the punctum cavum is written.\\
+ \#5 & character & Argument \#5 from \verb=\GreGlyph=. The signs to typeset before the glyph.\\
+ \#6 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled.
\end{argtable}
\macroname{\textbackslash GreLowChoralSign}{\#1\#2\#3}{gregoriotex-signs.tex}
Macro for typesetting low choral signs.
\begin{argtable}
- \#1 & integer & Height number of the sign.\\
- \#2 & string & The choral sign.\\
- \#3 & \texttt{0} & Choral sign does not occur before last note of podatus, porrectus, or torculus resupinus.\\
- & \texttt{1} & Choral sign occurs before last note of podatus, porrectus, or torculus resupinus.\\
+ \#1 & integer & Height number of the sign.\\
+ \#2 & string & The choral sign.\\
+ \#3 & \texttt{0} & Choral sign does not occur before last note of podatus, porrectus, or torculus resupinus.\\
+ & \texttt{1} & Choral sign occurs before last note of podatus, porrectus, or torculus resupinus.\\
\end{argtable}
\macroname{\textbackslash GreMode}{\#1\#2\#3}{gregoriotex-main.tex}
@@ -607,21 +616,21 @@ function does nothing. Also, if the \texttt{annotation} header field
is used, then this function does nothing.
\begin{argtable}
- \#1 & \TeX\ code & Mode text to place above the initial of a score in the \texttt{modeline} style.\\
- \#2 & \TeX\ code & Arbitrary code to typeset, in the \texttt{modemodifier} style, after the mode text.\\
- \#3 & \TeX\ code & Arbitrary code to typeset, in the \texttt{modedifferentia} style, after \#2.\\
+ \#1 & \TeX\ code & Mode text to place above the initial of a score in the \texttt{modeline} style.\\
+ \#2 & \TeX\ code & Arbitrary code to typeset, in the \texttt{modemodifier} style, after the mode text.\\
+ \#3 & \TeX\ code & Arbitrary code to typeset, in the \texttt{modedifferentia} style, after \#2.\\
\end{argtable}
\macroname{\textbackslash GreNatural}{\#1\#2\#3\#4\#5}{gregoriotex-signs.tex}
Macro to typeset a natural.
\begin{argtable}
- \#1 & integer & Height number of the natural.\\
- \#2 & \texttt{0} & The natural is not part of the clef.\\
- & \texttt{1} & The natural is part of the clef (doesn't happen).\\
- \#3 & \TeX\ code & signs to typeset before the glyph (typically additional bars, as they must be "behind" the glyph)\\
- \#4 & \TeX\ code & signs to typeset after the glyph (almost all signs)\\
- \#5 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled\\
+ \#1 & integer & Height number of the natural.\\
+ \#2 & \texttt{0} & The natural is not part of the clef.\\
+ & \texttt{1} & The natural is part of the clef (doesn't happen).\\
+ \#3 & \TeX\ code & signs to typeset before the glyph (typically additional bars, as they must be "behind" the glyph)\\
+ \#4 & \TeX\ code & signs to typeset after the glyph (almost all signs)\\
+ \#5 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled\\
\end{argtable}
\macroname{\textbackslash GreNewLine}{}{gregoriotex-main.tex}
@@ -630,179 +639,183 @@ Macro to call if you want to go to the next line.
\macroname{\textbackslash GreNewParLine}{}{gregoriotex-main.tex}
Same as \verb=\GreNewLine= except line is not justified.
-\macroname{\textbackslash GreNextCustos}{\#1}{gregoriotex-signs.tex}
+\macroname{\textbackslash GreNextCustos}{\#1\#2}{gregoriotex-signs.tex}
Sets the pitch to use for the next custos if it were to happen at the point
where this macro is called.
\begin{argtable}
- \#1 & integer & Height number of the custos.\\
+ \#1 & integer & Height number of the custos.\\
+ \#2 & \texttt{Flat} & The custos should have a flat.\\
+ & \texttt{Natural} & The custos should have a natural.\\
+ & \texttt{Sharp} & The custos should have a sharp.\\
+ & \textit{empty} & The custos should not have an alteration.\\
\end{argtable}
\macroname{\textbackslash GreNextSyllableBeginsEUOUAE}{\#1\#2}{gregoriotex-syllable.tex}
Indicates that the syllable which follows begins a EUOUAE block.
\begin{argtable}
- \#1 & integer & The identifier of the EUOUAE block.\\
- \#2 & \texttt{0} & There is no line break between this syllable and the EUOUAE block.\\
- & \texttt{1} & There is a line break between this syllable and the beginning of the EUOUAE block.\\
+ \#1 & integer & The identifier of the EUOUAE block.\\
+ \#2 & \texttt{0} & There is no line break between this syllable and the EUOUAE block.\\
+ & \texttt{1} & There is a line break between this syllable and the beginning of the EUOUAE block.\\
\end{argtable}
-\macroname{\textbackslash GreOriscusCavum}{\#1\#2\#3\#4\#5\#6}{gregoriotex-signs.tex}
-Macro to typeset an oriscus cavum (the oriscus points at a higher note).
+\macroname{\textbackslash GreAscendensOriscus}{\#1\#2\#3\#4\#5\#6}{gregoriotex-signs.tex}
+Macro to typeset an ascending oriscus cavum (the oriscus points at a higher note).
\begin{argtable}
- \#1 & length & Argument \#2 from \verb=\GreGlyph=. Height to raise the glyph.\\
- \#2 & length & Argument \#3 from \verb=\GreGlyph=. Height of the next note.\\
- \#3 & integer & Argument \#4 from \verb=\GreGlyph=. The type of glyph.\\
- \#4 & \TeX\ code & Macros executed before the oriscus cavum is written.\\
- \#5 & character & Argument \#5 from \verb=\GreGlyph=. The signs to typeset before the glyph.\\
- \#6 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled.
+ \#1 & length & Argument \#2 from \verb=\GreGlyph=. Height to raise the glyph.\\
+ \#2 & length & Argument \#3 from \verb=\GreGlyph=. Height of the next note.\\
+ \#3 & integer & Argument \#4 from \verb=\GreGlyph=. The type of glyph.\\
+ \#4 & \TeX\ code & Macros executed before the oriscus cavum is written.\\
+ \#5 & character & Argument \#5 from \verb=\GreGlyph=. The signs to typeset before the glyph.\\
+ \#6 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled.
\end{argtable}
-\macroname{\textbackslash GreOriscusCavumAuctus}{\#1\#2\#3\#4\#5\#6}{gregoriotex-signs.tex}
-Macro to typeset a reverse oriscus cavum (the oriscus points at a lower note).
+\macroname{\textbackslash GreDescendensOriscusCavum}{\#1\#2\#3\#4\#5\#6}{gregoriotex-signs.tex}
+Macro to typeset a descending oriscus cavum (the oriscus points at a lower note).
\begin{argtable}
- \#1 & length & Argument \#2 from \verb=\GreGlyph=. Height to raise the glyph.\\
- \#2 & length & Argument \#3 from \verb=\GreGlyph=. Height of the next note.\\
- \#3 & integer & Argument \#4 from \verb=\GreGlyph=. The type of glyph.\\
- \#4 & \TeX\ code & Macros executed before the oriscus cavum is written.\\
- \#5 & character & Argument \#5 from \verb=\GreGlyph=. The signs to typeset before the glyph.\\
- \#6 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled.
+ \#1 & length & Argument \#2 from \verb=\GreGlyph=. Height to raise the glyph.\\
+ \#2 & length & Argument \#3 from \verb=\GreGlyph=. Height of the next note.\\
+ \#3 & integer & Argument \#4 from \verb=\GreGlyph=. The type of glyph.\\
+ \#4 & \TeX\ code & Macros executed before the oriscus cavum is written.\\
+ \#5 & character & Argument \#5 from \verb=\GreGlyph=. The signs to typeset before the glyph.\\
+ \#6 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled.
\end{argtable}
\macroname{\textbackslash GreOriscusCavumDeminutus}{\#1\#2\#3\#4\#5\#6}{gregoriotex-signs.tex}
Macro to typeset a reverse oriscus cavum with a deminutus tail.
\begin{argtable}
- \#1 & length & Argument \#2 from \verb=\GreGlyph=. Height to raise the glyph.\\
- \#2 & length & Argument \#3 from \verb=\GreGlyph=. Height of the next note.\\
- \#3 & integer & Argument \#4 from \verb=\GreGlyph=. The type of glyph.\\
- \#4 & \TeX\ code & Macros executed before the oriscus cavum is written.\\
- \#5 & character & Argument \#5 from \verb=\GreGlyph=. The signs to typeset before the glyph.\\
- \#6 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled.
+ \#1 & length & Argument \#2 from \verb=\GreGlyph=. Height to raise the glyph.\\
+ \#2 & length & Argument \#3 from \verb=\GreGlyph=. Height of the next note.\\
+ \#3 & integer & Argument \#4 from \verb=\GreGlyph=. The type of glyph.\\
+ \#4 & \TeX\ code & Macros executed before the oriscus cavum is written.\\
+ \#5 & character & Argument \#5 from \verb=\GreGlyph=. The signs to typeset before the glyph.\\
+ \#6 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled.
\end{argtable}
\macroname{\textbackslash GreOverBrace}{\#1\#2\#3\#4}{gregoriotex-signs.tex}
Macro to typeset a round brace above the lines.
\begin{argtable}
- \#1 & length & The width of the brace.\\
- \#2 & length & A vertical shift.\\
- \#3 & length & A horizontal shift.\\
- \#4 & \texttt{0} & Don't shift before starting the brace.\\
- & \texttt{1} & Shift back a punctum's width before starting the brace.
+ \#1 & length & The width of the brace.\\
+ \#2 & length & A vertical shift.\\
+ \#3 & length & A horizontal shift.\\
+ \#4 & \texttt{0} & Don't shift before starting the brace.\\
+ & \texttt{1} & Shift back a punctum's width before starting the brace.
\end{argtable}
\macroname{\textbackslash GreOverCurlyBrace}{\#1\#2\#3\#4\#5}{gregoriotex-signs.tex}
Macro to typeset a curly brace above the lines.
\begin{argtable}
- \#1 & length & The width of the brace.\\
- \#2 & length & A vertical shift.\\
- \#3 & length & A horizontal shift.\\
- \#4 & \texttt{0} & Don't shift before starting the brace.\\
- & \texttt{1} & Shift back a punctum's width before starting the brace.\\
- \#5 & \texttt{0} & No accentus above the brace.\\
- & \texttt{1} & Typeset an accentus above the brace.
+ \#1 & length & The width of the brace.\\
+ \#2 & length & A vertical shift.\\
+ \#3 & length & A horizontal shift.\\
+ \#4 & \texttt{0} & Don't shift before starting the brace.\\
+ & \texttt{1} & Shift back a punctum's width before starting the brace.\\
+ \#5 & \texttt{0} & No accentus above the brace.\\
+ & \texttt{1} & Typeset an accentus above the brace.
\end{argtable}
\macroname{\textbackslash GrePunctumCavum}{\#1\#2\#3\#4\#5\#6}{gregoriotex-signs.tex}
Macro to typeset a punctum cavum.
\begin{argtable}
- \#1 & length & Argument \#2 from \verb=\GreGlyph=. Height to raise the glyph.\\
- \#2 & length & Argument \#3 from \verb=\GreGlyph=. Height of the next note.\\
- \#3 & integer & Argument \#4 from \verb=\GreGlyph=. The type of glyph.\\
- \#4 & \TeX\ code & Macros executed before the punctum cavum is written.\\
- \#5 & character & Argument \#5 from \verb=\GreGlyph=. The signs to typeset before the glyph.\\
- \#6 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled.
+ \#1 & length & Argument \#2 from \verb=\GreGlyph=. Height to raise the glyph.\\
+ \#2 & length & Argument \#3 from \verb=\GreGlyph=. Height of the next note.\\
+ \#3 & integer & Argument \#4 from \verb=\GreGlyph=. The type of glyph.\\
+ \#4 & \TeX\ code & Macros executed before the punctum cavum is written.\\
+ \#5 & character & Argument \#5 from \verb=\GreGlyph=. The signs to typeset before the glyph.\\
+ \#6 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled.
\end{argtable}
\macroname{\textbackslash GrePunctumCavumInclinatum}{\#1\#2\#3\#4\#5\#6}{gregoriotex-signs.tex}
Macro to typeset a punctum cavum inclinatus.
\begin{argtable}
- \#1 & length & Argument \#2 from \verb=\GreGlyph=. Height to raise the glyph.\\
- \#2 & length & Argument \#3 from \verb=\GreGlyph=. Height of the next note.\\
- \#3 & integer & Argument \#4 from \verb=\GreGlyph=. The type of glyph.\\
- \#4 & \TeX\ code & Macros executed before the punctum cavum is written.\\
- \#5 & character & Argument \#5 from \verb=\GreGlyph=. The signs to typeset before the glyph.\\
- \#6 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled.
+ \#1 & length & Argument \#2 from \verb=\GreGlyph=. Height to raise the glyph.\\
+ \#2 & length & Argument \#3 from \verb=\GreGlyph=. Height of the next note.\\
+ \#3 & integer & Argument \#4 from \verb=\GreGlyph=. The type of glyph.\\
+ \#4 & \TeX\ code & Macros executed before the punctum cavum is written.\\
+ \#5 & character & Argument \#5 from \verb=\GreGlyph=. The signs to typeset before the glyph.\\
+ \#6 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled.
\end{argtable}
\macroname{\textbackslash GrePunctumCavumInclinatumAuctus}{\#1\#2\#3\#4\#5\#6}{gregoriotex-signs.tex}
Macro to typeset a punctum cavum inclinatus auctus.
\begin{argtable}
- \#1 & length & Argument \#2 from \verb=\GreGlyph=. Height to raise the glyph.\\
- \#2 & length & Argument \#3 from \verb=\GreGlyph=. Height of the next note.\\
- \#3 & integer & Argument \#4 from \verb=\GreGlyph=. The type of glyph.\\
- \#4 & \TeX\ code & Macros executed before the punctum cavum is written.\\
- \#5 & character & Argument \#5 from \verb=\GreGlyph=. The signs to typeset before the glyph.\\
- \#6 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled.
+ \#1 & length & Argument \#2 from \verb=\GreGlyph=. Height to raise the glyph.\\
+ \#2 & length & Argument \#3 from \verb=\GreGlyph=. Height of the next note.\\
+ \#3 & integer & Argument \#4 from \verb=\GreGlyph=. The type of glyph.\\
+ \#4 & \TeX\ code & Macros executed before the punctum cavum is written.\\
+ \#5 & character & Argument \#5 from \verb=\GreGlyph=. The signs to typeset before the glyph.\\
+ \#6 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled.
\end{argtable}
\macroname{\textbackslash GrePunctumMora}{\#1\#2\#3\#4}{gregoriotex-signs.tex}
Macro for typesetting punctum mora.
\begin{argtable}
- \#1 & integer & Height number of punctum mora.\\
- \#2 & \texttt{0} & General case.\\
- & \texttt{1} & Make the punctum mora zero width.\\
- & \texttt{2} & Shift left width of 1 punctum.\\
- & \texttt{3} & Shift left width of 1 punctum if last ambitus is 1.\\
- \#3 & \texttt{0} & Punctum mora does not occur before last note of podatus, porrectus, or torculus resupinus.\\
- & \texttt{1} & Punctum mora occurs before last note of podatus, porrectus, or torculus resupinus.\\
- \#4 & \texttt{0} & No punctum inclinatum.\\
- & \texttt{1} & Punctum inclinatum.\\
+ \#1 & integer & Height number of punctum mora.\\
+ \#2 & \texttt{0} & General case.\\
+ & \texttt{1} & Make the punctum mora zero width.\\
+ & \texttt{2} & Shift left width of 1 punctum.\\
+ & \texttt{3} & Shift left width of 1 punctum if last ambitus is 1.\\
+ \#3 & \texttt{0} & Punctum mora does not occur before last note of podatus, porrectus, or torculus resupinus.\\
+ & \texttt{1} & Punctum mora occurs before last note of podatus, porrectus, or torculus resupinus.\\
+ \#4 & \texttt{0} & No punctum inclinatum.\\
+ & \texttt{1} & Punctum inclinatum.\\
\end{argtable}
\macroname{\textbackslash GreReversedAccentus}{\#1\#2}{gregoriotex-signs.tex}
Macro for typesetting a reversed accentus.
\begin{argtable}
- \#1 & integer & Height number of accentus.\\
- \#2 & string & Type of glyph the accentus is attached to. See \nameref{EpisemaSpecial} argument for description of options.\\
+ \#1 & integer & Height number of accentus.\\
+ \#2 & string & Type of glyph the accentus is attached to. See \nameref{EpisemaSpecial} argument for description of options.\\
\end{argtable}
\macroname{\textbackslash GreReversedSemicirculus}{\#1\#2}{gregoriotex-signs.tex}
Macro for typesetting a reversed semicirculus.
\begin{argtable}
- \#1 & integer & Height number of semicirculus.\\
- \#2 & string & Type of glyph the semicirculus is attached to. See \nameref{EpisemaSpecial} argument for description of options.\\
+ \#1 & integer & Height number of semicirculus.\\
+ \#2 & string & Type of glyph the semicirculus is attached to. See \nameref{EpisemaSpecial} argument for description of options.\\
\end{argtable}
\macroname{\textbackslash GreScoreOpening}{\#1\#2\#3\#4\#5}{gregoriotex-syllable.tex}
Opens the score.
\begin{argtable}
- \#1 & \TeX\ code & Macros rendering the things after the initial but before the notes.\\
- \#2 & \TeX\ code & Macros rendering the things after starting notes but before the syllable.\\
- \#3 & \TeX\ code & Macros rendering the things before the initial.\\
- \#4 & \TeX\ control sequence & Control sequence for the syllable.\\
- \#5 & \TeX\ code & Macros rendering the first syllable; should emit the initial and populate \verb=\gre@opening@syllabletext=.\\
+ \#1 & \TeX\ code & Macros rendering the things after the initial but before the notes.\\
+ \#2 & \TeX\ code & Macros rendering the things after starting notes but before the syllable.\\
+ \#3 & \TeX\ code & Macros rendering the things before the initial.\\
+ \#4 & \TeX\ control sequence & Control sequence for the syllable.\\
+ \#5 & \TeX\ code & Macros rendering the first syllable; should emit the initial and populate \verb=\gre@opening@syllabletext=.\\
\end{argtable}
\macroname{\textbackslash GreSemicirculus}{\#1\#2}{gregoriotex-signs.tex}
Macro for typesetting a semicirculus.
\begin{argtable}
- \#1 & integer & Height number of semicirculus.\\
- \#2 & string & Type of glyph the semicirculus is attached to. See \nameref{EpisemaSpecial} argument for description of options.\\
+ \#1 & integer & Height number of semicirculus.\\
+ \#2 & string & Type of glyph the semicirculus is attached to. See \nameref{EpisemaSpecial} argument for description of options.\\
\end{argtable}
\macroname{\textbackslash GreSetFirstSyllableText}{\#1\#2\#3\#4\#5\#6}{gregoriotex-syllable.tex}
Sets the first syllable text.
\begin{argtable}
- \#1 & \TeX\ code & Initial.\\
- \#2 & \TeX\ code & First letter after the initial.\\
- \#3 & \TeX\ code & Everything else in the syllable.\\
- \#4 & \TeX\ code & Three syllable parts when there is a separated initial.\\
- \#5 & \TeX\ code & Three syllable parts where there is no separated initial.\\
- \#6 & \TeX\ code & Extra macros to run if there is an initial.\\
+ \#1 & \TeX\ code & Initial.\\
+ \#2 & \TeX\ code & First letter after the initial.\\
+ \#3 & \TeX\ code & Everything else in the syllable.\\
+ \#4 & \TeX\ code & Three syllable parts when there is a separated initial.\\
+ \#5 & \TeX\ code & Three syllable parts where there is no separated initial.\\
+ \#6 & \TeX\ code & Extra macros to run if there is an initial.\\
\end{argtable}
\macroname{\textbackslash GreSetFixedNextTextFormat}{\#1}{gregoriotex-syllable.tex}
@@ -812,66 +825,66 @@ Same as \verb=\GreSetFixedTextFormat= except for next syllable.
Macro to specify a text which is different from \verb=#1#2#3= (of \verb=\GreSyllable=). It is useful for styles, for instance with:
\par\medskip
\begin{gabccode}
- <i>ffj</i>(gh)
+ <i>ffj</i>(gh)
\end{gabccode}
we will have
\begin{latexcode}
- #1 = \textit{f}
- #2 = \textit{f}
- #3 = \textit{j}
+ #1 = \textit{f}
+ #2 = \textit{f}
+ #3 = \textit{j}
\end{latexcode}
and thus \verb=#1#2#3= will be \verb=\textit{f}\textit{f}\textit{j}=, which won't typeset
ligatures. In this example we should call \verb=\grefixedtext{\textit{ffj}}=.
\begin{argtable}
- \#1 & \texttt{0} & nothing (normal text)\\
- & \texttt{1}& italic\\
- & \texttt{2} & bold\\
- & \texttt{3} & small caps\\
- & \texttt{4} & typewriter\\
- & \texttt{5} & underline
+ \#1 & \texttt{0} & nothing (normal text)\\
+ & \texttt{1}& italic\\
+ & \texttt{2} & bold\\
+ & \texttt{3} & small caps\\
+ & \texttt{4} & typewriter\\
+ & \texttt{5} & underline
\end{argtable}
\begin{argtable}
- \#1 & character & The initial letter of the score.\\
+ \#1 & character & The initial letter of the score.\\
\end{argtable}
\macroname{\textbackslash GreSetInitialClef}{\#1\#2\#3\#4\#5\#6}{gregoriotex-signs.tex}
Macro for writing initial clef.
\begin{argtable}
- \#1 & \texttt{c} or \texttt{f} & Type of clef.\\
- \#2 & \texttt{1}--\texttt{5} & Line of clef.\\
- \#3 & integer & Height number of flat in clef (\texttt{3} for no flat).\\
- \#4 & \texttt{c} or \texttt{f} & Type of secondary clef.\\
- \#5 & \texttt{0}--\texttt{5} & Line of secondary clef (\texttt{0} for no secondary clef).\\
- \#6 & integer & Height of flat in secondary clef (\texttt{3} for no flat).\\
+ \#1 & \texttt{c} or \texttt{f} & Type of clef.\\
+ \#2 & \texttt{1}--\texttt{5} & Line of clef.\\
+ \#3 & integer & Height number of flat in clef (\texttt{3} for no flat).\\
+ \#4 & \texttt{c} or \texttt{f} & Type of secondary clef.\\
+ \#5 & \texttt{0}--\texttt{5} & Line of secondary clef (\texttt{0} for no secondary clef).\\
+ \#6 & integer & Height of flat in secondary clef (\texttt{3} for no flat).\\
\end{argtable}
\macroname{\textbackslash GreSetLinesClef}{\#1\#2\#3\#4\#5\#6\#7}{gregoriotex-main.tex}
Macro to define the clef that will appear at the beginning of the lines.
\begin{argtable}
- \#1 & \texttt{c} or \texttt{f} & Type of clef.\\
- \#2 & \texttt{1}--\texttt{5} & Line of clef.\\
- \#3 & \texttt{0} & No space after clef.\\
- & \texttt{1} & Space after clef.\\
- \#4 & integer & Height of flat in clef (\texttt{3} for no flat).\\
- \#5 & \texttt{c} or \texttt{f} & Type of secondary clef.\\
- \#6 & \texttt{0}--\texttt{5} & Line of secondary clef (\texttt{0} for no secondary clef).\\
- \#7 & integer & Height of flat in secondary clef (\texttt{3} for no flat).\\
+ \#1 & \texttt{c} or \texttt{f} & Type of clef.\\
+ \#2 & \texttt{1}--\texttt{5} & Line of clef.\\
+ \#3 & \texttt{0} & No space after clef.\\
+ & \texttt{1} & Space after clef.\\
+ \#4 & integer & Height of flat in clef (\texttt{3} for no flat).\\
+ \#5 & \texttt{c} or \texttt{f} & Type of secondary clef.\\
+ \#6 & \texttt{0}--\texttt{5} & Line of secondary clef (\texttt{0} for no secondary clef).\\
+ \#7 & integer & Height of flat in secondary clef (\texttt{3} for no flat).\\
\end{argtable}
\macroname{\textbackslash GreSetNextSyllable}{\#1\#2\#3}{gregoriotex-syllable.tex}
Macro to set the text of the next syllable for spacing purposes.
\begin{argtable}
- \#1 & string & the first letters of the syllable, that don't count for the alignment\\
- \#2 & string & the middle letters of the syllable, we must align in the middle of them\\
- \#3 & string & the end letters, they don't count for alignment\\
+ \#1 & string & the first letters of the syllable, that don't count for the alignment\\
+ \#2 & string & the middle letters of the syllable, we must align in the middle of them\\
+ \#3 & string & the end letters, they don't count for alignment\\
\end{argtable}
\macroname{\textbackslash GreSetNoFirstSyllableText}{}{gregoriotex-syllable.tex}
@@ -882,28 +895,28 @@ Macro to place argument above the lines and empty
\verb=\gre@currenttextabovelines= when done.
\begin{argtable}
- \#1 & string & Text to be placed above the lines.\\
+ \#1 & string & Text to be placed above the lines.\\
\end{argtable}
\macroname{\textbackslash GreSetThisSyllable}{\#1\#2\#3}{gregoriotex-syllable.tex}
Macro to set the text of the current syllable.
\begin{argtable}
- \#1 & string & the first letters of the syllable, that don't count for the alignment\\
- \#2 & string & the middle letters of the syllable, we must align in the middle of them\\
- \#3 & string & the end letters, they don't count for alignment\\
+ \#1 & string & the first letters of the syllable, that don't count for the alignment\\
+ \#2 & string & the middle letters of the syllable, we must align in the middle of them\\
+ \#3 & string & the end letters, they don't count for alignment\\
\end{argtable}
\macroname{\textbackslash GreSharp}{\#1\#2\#3\#4\#5}{gregoriotex-signs.tex}
Macro to typeset a sharp.
\begin{argtable}
- \#1 & integer & Height number of the sharp.\\
- \#2 & \texttt{0} & The sharp is not part of the clef.\\
- & \texttt{1} & The sharp is part of the clef (doesn't happen).\\
- \#3 & \TeX\ code & signs to typeset before the glyph (typically additional bars, as they must be "behind" the glyph)\\
- \#4 & \TeX\ code & signs to typeset after the glyph (almost all signs)\\
- \#5 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled\\
+ \#1 & integer & Height number of the sharp.\\
+ \#2 & \texttt{0} & The sharp is not part of the clef.\\
+ & \texttt{1} & The sharp is part of the clef (doesn't happen).\\
+ \#3 & \TeX\ code & signs to typeset before the glyph (typically additional bars, as they must be "behind" the glyph)\\
+ \#4 & \TeX\ code & signs to typeset after the glyph (almost all signs)\\
+ \#5 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled\\
\end{argtable}
\macroname{\textbackslash GreSmallCaps}{\#1}{gregoriotex.sty and gregoriotex.tex}
@@ -912,22 +925,22 @@ Plain \TeX\ \verb=\sc= as appropriate Corresponds to ``<sc></sc>'' tags
in gabc.
\begin{argtable}
- \#1 & string & Text to be typeset in small caps font.\\
+ \#1 & string & Text to be typeset in small caps font.\\
\end{argtable}
\macroname{\textbackslash GreSlur}{\#1\#2\#3\#4\#5\#6}{gregoriotex-signs.tex}
Typesets a slur.
\begin{argtable}
- \#1 & integer & Height number of the pitch.\\
- \#2 & \texttt{-1} & The slur should appear under the note.\\
- & \texttt{1} & The slur should appear over the note.\\
- \#3 & \texttt{0} & The slur should start at the right end of the note.\\
- & \texttt{1} & The slur should start at one punctum's width to the left of the right end of the note.\\
- & \texttt{2} & The slur should start at one-half punctum's width to the left of the right end of the note.\\
- \#4 & string & The horizontal dimension of the slur.\\
- \#5 & string & The vertical dimension of the slur.\\
- \#6 & integer & Height number of the pitch.\\
+ \#1 & integer & Height number of the pitch.\\
+ \#2 & \texttt{-1} & The slur should appear under the note.\\
+ & \texttt{1} & The slur should appear over the note.\\
+ \#3 & \texttt{0} & The slur should start at the right end of the note.\\
+ & \texttt{1} & The slur should start at one punctum's width to the left of the right end of the note.\\
+ & \texttt{2} & The slur should start at one-half punctum's width to the left of the right end of the note.\\
+ \#4 & string & The horizontal dimension of the slur.\\
+ \#5 & string & The vertical dimension of the slur.\\
+ \#6 & integer & Height number of the pitch.\\
\end{argtable}
\macroname{\textbackslash GreSpecial}{\#1}{gregoriotex-symbols.tex}
@@ -935,7 +948,7 @@ Typesets a special character. If the \#1 special character wasn't defined by
\verb=\gresetspecial=, the text of \#1 will be output directly.
\begin{argtable}
- \#1 & string & The text between \texttt{<sp>} and \texttt{</sp>}.\\
+ \#1 & string & The text between \texttt{<sp>} and \texttt{</sp>}.\\
\end{argtable}
\macroname{\textbackslash GreStar}{}{gregoriotex-symbol.tex}
@@ -951,16 +964,23 @@ Indicates that the system should act as if a ledger line exists below the staff.
Macro to typeset the syllable.
\begin{argtable}
- \#1 & \TeX\ code & macro setting syllable letters for the current syllable\\
- \#2 & empty & reserved for future use\\
- \#3 & \TeX\ control sequence & the control sequence to use for styling the hyphen\\
- \#4 & \texttt{0} & this syllable is not the end of a word\\
- & \texttt{1} & this syllable is the end of a word\\
- \#5 & \TeX\ code & macros setting syllable letters for the next syllable\\
- \#6 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled\\
- \#7 & & alignment type of the first next glyph\\
- \#8 &\TeX\ code & other macros (translation, double text, etc.) that don't fit in the limitation of the number of arguments\\
- \#9 & Gregorio\TeX\ glyphs & all the notes
+ \#1 & \TeX\ code & macro setting syllable letters for the current syllable\\
+ \#2 & empty & reserved for future use\\
+ \#3 & \TeX\ control sequence & the control sequence to use for styling the hyphen\\
+ \#4 & \texttt{0} & this syllable is not the end of a word\\
+ & \texttt{1} & this syllable is the end of a word\\
+ \#5 & \TeX\ code & macros setting syllable letters for the next syllable\\
+ \#6 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled\\
+ \#7 & & alignment type of the first next glyph\\
+ \#8 &\TeX\ code & other macros (translation, double text, etc.) that don't fit in the limitation of the number of arguments\\
+ \#9 & Gregorio\TeX\ glyphs & all the notes
+\end{argtable}
+
+\macroname{\textbackslash GreSyllableNoteCount}{\#1}{gregoriotex-syllable.tex}
+Indicates the number of notes in the current syllable.
+
+\begin{argtable}
+ \#1 & integer & The number of notes in the current syllable.\\
\end{argtable}
\macroname{\textbackslash GreTranslationCenterEnd}{}{gregoriotex-main.tex}
@@ -971,18 +991,18 @@ Makes argument typewriter font. Accesses \LaTeX\ \verb=\texttt= or
Plain \TeX\ \verb=\tt= as appropriate.
\begin{argtable}
- \#1 & string & Text to typeset in typewriter font.\\
+ \#1 & string & Text to typeset in typewriter font.\\
\end{argtable}
\macroname{\textbackslash GreUnderBrace}{\#1\#2\#3\#4}{gregoriotex-signs.tex}
Macro to typeset a round brace below the lines.
\begin{argtable}
- \#1 & length & The width of the brace.\\
- \#2 & length & A vertical shift.\\
- \#3 & length & A horizontal shift.\\
- \#4 & \texttt{0} & Don't shift before starting the brace.\\
- & \texttt{1} & Shift back a punctum's width before starting the brace.
+ \#1 & length & The width of the brace.\\
+ \#2 & length & A vertical shift.\\
+ \#3 & length & A horizontal shift.\\
+ \#4 & \texttt{0} & Don't shift before starting the brace.\\
+ & \texttt{1} & Shift back a punctum's width before starting the brace.
\end{argtable}
\macroname{\textbackslash GreUnderline}{\#1}{gregoriotex.sty and gregoriotex.tex}
@@ -990,65 +1010,65 @@ Makes argument underlined under \LaTeX\ using \verb=\underline=. Does
nothing in Plain \TeX.
\begin{argtable}
- \#1 & string & Text to typeset underlined.\\
+ \#1 & string & Text to typeset underlined.\\
\end{argtable}
\macroname{\textbackslash GreUnstyled}{\#1}{gregoriotex-syllable.tex}
Returns its argument as-is.
\begin{argtable}
- \#1 & string & Text to typeset without any extra styling.\\
+ \#1 & string & Text to typeset without any extra styling.\\
\end{argtable}
\macroname{\textbackslash GreUpcomingNewLineForcesCustos}{\#1}{gregoriotex-syllable.tex}
Indicates that the new line in the next syllable forces a custos.
\begin{argtable}
- \#1 & \texttt{0} & The custos is forced off.\\
- & \texttt{1} & The custos is forced on.\\
+ \#1 & \texttt{0} & The custos is forced off.\\
+ & \texttt{1} & The custos is forced on.\\
\end{argtable}
\macroname{\textbackslash GreVarBraceLength}{\#1}{gregoriotex-signs.tex}
Returns the computed length of the given brace or ledger line.
\begin{argtable}
- \#1 & string & unique identifier for the brace within the score.
+ \#1 & string & unique identifier for the brace within the score.
\end{argtable}
\macroname{\textbackslash GreVarBraceSavePos}{\#1\#2\#3}{gregoriotex-signs.tex}
Records positions to compute the lengths of variable-sized braces and ledger lines.
\begin{argtable}
- \#1 & string & unique identifier for the brace within the score.\\
- \#2 & \texttt{0} & Don't shift before recording the position.\\
- & \texttt{1} & Shift back a punctum's width before recording the position.\\
- & \texttt{2} & Shift back one-half a punctum's width before recording the position.\\
- \#3 & \texttt{1} & Position to save is the start of brace.\\
- & \texttt{2} & Position to save is the end of brace.
+ \#1 & string & unique identifier for the brace within the score.\\
+ \#2 & \texttt{0} & Don't shift before recording the position.\\
+ & \texttt{1} & Shift back a punctum's width before recording the position.\\
+ & \texttt{2} & Shift back one-half a punctum's width before recording the position.\\
+ \#3 & \texttt{1} & Position to save is the start of brace.\\
+ & \texttt{2} & Position to save is the end of brace.
\end{argtable}
\macroname{\textbackslash GreVEpisema}{\#1\#2}{gregoriotex-signs.tex}
Macro for typesetting the vertical episema.
\begin{argtable}
- \#1 & integer & Height number of episema.\\
- \#2 & string & Type of glyph the episema is attached to. See \nameref{EpisemaSpecial} argument for description of options.\\
+ \#1 & integer & Height number of episema.\\
+ \#2 & string & Type of glyph the episema is attached to. See \nameref{EpisemaSpecial} argument for description of options.\\
\end{argtable}
\macroname{\textbackslash GreVirgula}{\#1\#2}{gregoriotex-signs.tex}
Macro to typeset a virgula.
\begin{argtable}
- \#1 & \texttt{0} & There is no text under the bar.\\
- & \texttt{1} & There is text under the bar.\\
- \#2 & code & Macros which may happen before the skip but after the virgula (typically \verb=\grevepisema=).\\
+ \#1 & \texttt{0} & There is no text under the bar.\\
+ & \texttt{1} & There is text under the bar.\\
+ \#2 & code & Macros which may happen before the skip but after the virgula (typically \verb=\grevepisema=).\\
\end{argtable}
\macroname{\textbackslash GreWriteTranslation}{\#1}{gregoriotex-main.tex}
Macro to typeset argument in the translation position.
\begin{argtable}
- \#1 & string & Text to typeset in the translation.\\
+ \#1 & string & Text to typeset in the translation.\\
\end{argtable}
\macroname{\textbackslash GreWriteTranslationWithCenterBeginning}{\#1}{gregoriotex-main.tex}
@@ -1056,7 +1076,7 @@ Macro to typeset argument (a string) in the translation position (at
the beginning of a line?).
\begin{argtable}
- \#1 & string & Text to typeset in the translation (at the beginning of a line).\\
+ \#1 & string & Text to typeset in the translation (at the beginning of a line).\\
\end{argtable}
\macroname{\textbackslash GreForceBreak}{}{gregoriotex-spaces.tex}
@@ -1072,22 +1092,22 @@ A Lua\TeX\ attribute which designates a unique identifier for each score.
Macro to print a nabc character above the lines.
\begin{argtable}
- \#1 & integer & the line on which the character should appear (currently unused)\\
- \#2 & string & The \texttt{nabc} syntax which indicates what neumes are to be printed\\
+ \#1 & integer & the line on which the character should appear (currently unused)\\
+ \#2 & string & The \texttt{nabc} syntax which indicates what neumes are to be printed\\
\end{argtable}
\macroname{\textbackslash GreNABCChar}{\#1}{gregoriotex-nabc.tex}
Macro to print a nabc character.
\begin{argtable}
- \#1 & string & The \texttt{nabc} syntax which indicates what neumes are to be printed\\
+ \#1 & string & The \texttt{nabc} syntax which indicates what neumes are to be printed\\
\end{argtable}
\macroname{\textbackslash GreScoreNABCLines}{\#1}{gregoriotex-nabc.tex}
Macro which sets the number of \texttt{nabc} lines in the score.
\begin{argtable}
- \#1 & integer & the number of \texttt{nabc} lines (currently only 1 is supported)\\
+ \#1 & integer & the number of \texttt{nabc} lines (currently only 1 is supported)\\
\end{argtable}
@@ -1095,7 +1115,7 @@ Macro which sets the number of \texttt{nabc} lines in the score.
Macro which formats the mode in roman or arabic numerals according to the appropriate setting.
\begin{argtable}
- \#1 & \texttt{1}--\texttt{8} & The mode to be formated\\
+ \#1 & \texttt{1}--\texttt{8} & The mode to be formated\\
\end{argtable}
\macroname{\textbackslash GreNoNoteSyllable}{}{gregoriotex-syllable.tex}
diff --git a/Master/texmf-dist/doc/luatex/gregoriotex/Command_Index_internal.tex b/Master/texmf-dist/doc/luatex/gregoriotex/Command_Index_internal.tex
index 6aa2afc5901..17798653673 100644
--- a/Master/texmf-dist/doc/luatex/gregoriotex/Command_Index_internal.tex
+++ b/Master/texmf-dist/doc/luatex/gregoriotex/Command_Index_internal.tex
@@ -11,7 +11,7 @@ only.
Prints an error to the \TeX\ output log.
\begin{argtable}
- \#1 & string & error message\\
+ \#1 & string & error message\\
\end{argtable}
@@ -19,14 +19,14 @@ Prints an error to the \TeX\ output log.
Prints a warning to the \TeX\ output log.
\begin{argtable}
- \#1 & string & warning message\\
+ \#1 & string & warning message\\
\end{argtable}
\macroname{\textbackslash gre@metapost}{\#1}{gregoriotex.sty \textup{and} gregoriotex.tex}
Executes \MP{} commands using luamplib.
\begin{argtable}
- \#1 & \MP{} commands & The \MP{} commands to execute.
+ \#1 & \MP{} commands & The \MP{} commands to execute.
\end{argtable}
\macroname{\textbackslash gre@deprecated}{\#1\#2}{gregoriotex-main.tex}
@@ -36,18 +36,23 @@ are allowed and a warning is printed. If the package option
package error, halting \TeX.
\begin{argtable}
- \#1 & string & name of the deprecated macro\\
- \#2 & string & name of the correct macro to use\\
+ \#1 & string & name of the deprecated macro\\
+ \#2 & string & name of the correct macro to use\\
\end{argtable}
\macroname{\textbackslash gre@obsolete}{\#1\#2}{gregoriotex-main.tex}
Macro that handles obsolescence errors.
\begin{argtable}
- \#1 & string & name of the obsolete macro\\
- \#2 & string & name of the correct macro to use\\
+ \#1 & string & name of the obsolete macro\\
+ \#2 & string & name of the correct macro to use\\
\end{argtable}
+\macroname{\textbackslash gre@allowdeprecated@asboolean}{}{gregoriotex-main.tex}
+Macro that evaluates \texttt{true} or \texttt{false} depending on whether
+deprecated usage is allowed. This is used to pass the value of
+\verb=\ifgre@allowdeprecated= to Lua.
+
\macroname{\textbackslash gre@loadgregoriofont}{}{gregoriotex-main.tex}
Loads the chosen font for the neumes at the correct size.
@@ -65,22 +70,22 @@ Macro which calculates \verb=\gre@additionalbottomspace= and\\
\verb=\gre@additionaltopspace=
\begin{argtable}
- \#1 & integer & the height number of the top pitch, including signs\\
- \#2 & integer & the height number of the bottom pitch, including signs\\
- \#3 & \texttt{0} & there is no translation line\\
- & \texttt{1} & there is a translation line\\
- \#4 & \texttt{0} & there is no above lines text\\
- & \texttt{1} & there is above lines text
+ \#1 & integer & the height number of the top pitch, including signs\\
+ \#2 & integer & the height number of the bottom pitch, including signs\\
+ \#3 & \texttt{0} & there is no translation line\\
+ & \texttt{1} & there is a translation line\\
+ \#4 & \texttt{0} & there is no above lines text\\
+ & \texttt{1} & there is above lines text
\end{argtable}
\macroname{\textbackslash gre@calculate@textaligncenter}{\#1\#2\#3}{gregoriotex-spaces.tex}
Macro for calculating \verb=\gre@textaligncenter=.
\begin{argtable}
- \#1 & string & The first part of the syllable (any preceding consonants in Latin).\\
- \#2 & string & The middle part of the syllable (the vowel in Latin, the whole syllable in English).\\
- \#3 & \texttt{0} & Calculation is being performed for the current syllable.\\
- & \texttt{1} & Calculation is being performed for the next syllable.\\
+ \#1 & string & The first part of the syllable (any preceding consonants in Latin).\\
+ \#2 & string & The middle part of the syllable (the vowel in Latin, the whole syllable in English).\\
+ \#3 & \texttt{0} & Calculation is being performed for the current syllable.\\
+ & \texttt{1} & Calculation is being performed for the next syllable.\\
\end{argtable}
\macroname{\textbackslash gre@calculate@annotationtrueraise}{}{gregoriotex-spaces.tex}
@@ -120,29 +125,29 @@ Aggregates all of the global distance calculations and calls them in the order n
Calculates the raise value for a glyph (glyphraisevalue) based on where it is to be placed and what kind of a glyph it is. This is a time of use calculation.
\begin{argtable}
- \#1 & integer & The number for where the glyph is located. \texttt{a} in gabc is \texttt{1}, \texttt{b} is \texttt{2}, \etc\\
- \#2 & \texttt{0} & no modification\\
- & \texttt{1} & puts the value on the interline just above if it is on a line\\
- & \texttt{2} & puts the value on the interline just beneath if it is on a line\\
- & \texttt{3} & case of the vertical episema, which is not placed at the same place if the corresponding note is on a line or not\\
- & \texttt{4} & case of the punctum mora, for the same reason\\
- & \texttt{5} & case of the horizontal episema under a note, that must be placed a bit lower if the note is on a line\\
- & \texttt{6} & case of the signs above (accentus, \etc)\\
- & \texttt{8} & case of the punctum mora of the first note of a podatus or the 2nd note of a porrectus, \etc\\
- & \texttt{9} & case of the horizontal episema, that must be placed a bit lower if the note is on a line\\
- & \texttt{10} & case of the low choral sign\\
- & \texttt{11} & case of the high choral sign\\
- & \texttt{12} & case of the low choral sign which is lower than the note\\
- & \texttt{13} & case of the brace above the bars\\
- & \texttt{14} & case of the punctum mora in a space with a note on the line below it\\
- & \texttt{15} & case of the over-the-notes slur\\
- & \texttt{16} & case of the under-the-notes slur\\
- \#3 & \texttt{0} & for horizontal episema cases, use automatic positioning within the space\\
- & \texttt{1} & for horizontal episema cases, position in the middle of the space\\
- & \texttt{2} & for horizontal episema cases, position low within the space as if the episema is over the note\\
- & \texttt{3} & for horizontal episema cases, position high within the space as if the episema is under the note\\
- & \texttt{4} & for horizontal episema cases, position low within the space as if the episema is over the note\\
- & \texttt{5} & for horizontal episema cases, position high within the space as if the episema is under the note\\
+ \#1 & integer & The number for where the glyph is located. \texttt{a} in gabc is \texttt{1}, \texttt{b} is \texttt{2}, \etc\\
+ \#2 & \texttt{0} & no modification\\
+ & \texttt{1} & puts the value on the interline just above if it is on a line\\
+ & \texttt{2} & puts the value on the interline just beneath if it is on a line\\
+ & \texttt{3} & case of the vertical episema, which is not placed at the same place if the corresponding note is on a line or not\\
+ & \texttt{4} & case of the punctum mora, for the same reason\\
+ & \texttt{5} & case of the horizontal episema under a note, that must be placed a bit lower if the note is on a line\\
+ & \texttt{6} & case of the signs above (accentus, \etc)\\
+ & \texttt{8} & case of the punctum mora of the first note of a podatus or the 2nd note of a porrectus, \etc\\
+ & \texttt{9} & case of the horizontal episema, that must be placed a bit lower if the note is on a line\\
+ & \texttt{10} & case of the low choral sign\\
+ & \texttt{11} & case of the high choral sign\\
+ & \texttt{12} & case of the low choral sign which is lower than the note\\
+ & \texttt{13} & case of the brace above the bars\\
+ & \texttt{14} & case of the punctum mora in a space with a note on the line below it\\
+ & \texttt{15} & case of the over-the-notes slur\\
+ & \texttt{16} & case of the under-the-notes slur\\
+ \#3 & \texttt{0} & for horizontal episema cases, use automatic positioning within the space\\
+ & \texttt{1} & for horizontal episema cases, position in the middle of the space\\
+ & \texttt{2} & for horizontal episema cases, position low within the space as if the episema is over the note\\
+ & \texttt{3} & for horizontal episema cases, position high within the space as if the episema is under the note\\
+ & \texttt{4} & for horizontal episema cases, position low within the space as if the episema is over the note\\
+ & \texttt{5} & for horizontal episema cases, position high within the space as if the episema is under the note\\
\end{argtable}
\macroname{\textbackslash gre@stafflinefactor}{}{gregoriotex-spaces.tex}
@@ -152,22 +157,22 @@ A number indicating the thickness of the staff lines.
Macro to calculate the distance from the beginning of the text of a syllable to its alignment point (the center of the vowel for Latin centering, the center of the syllable for English centering). This is a time of use calculation.
\begin{argtable}
- \#1 & string & the first part of the syllable\\
- \#2 & string & the middle part of the syllable\\
- \#3 & \texttt{0} & perform this calculation for the current syllable\\
- & \texttt{1} & perform this calculation for the next syllable
+ \#1 & string & the first part of the syllable\\
+ \#2 & string & the middle part of the syllable\\
+ \#3 & \texttt{0} & perform this calculation for the current syllable\\
+ & \texttt{1} & perform this calculation for the next syllable
\end{argtable}
\macroname{\textbackslash gre@calculate@enddifference}{\#1\#2\#3\#4\#5}{gregoriotex-spaces.tex}
Calculates the difference between the end of the notes and the end of the syllable text. Also stores the value for the previous syllable if needed. This is a time of use calculation.
\begin{argtable}
- \#1 & length & the total width of the notes\\
- \#2 & length & the total width of the syllable text\\
- \#3 & length & the alignment distance for the text (\texttt{textaligncenter})\\
- \#4 & length & the alignment distance for the notes (\texttt{notesaligncenter})\\
- \#5 & \texttt{0} & do not save the value for the previous syllable before calculating the new value\\
- & \texttt{1} & save the value for the previous syllable before calculating the new value
+ \#1 & length & the total width of the notes\\
+ \#2 & length & the total width of the syllable text\\
+ \#3 & length & the alignment distance for the text (\texttt{textaligncenter})\\
+ \#4 & length & the alignment distance for the notes (\texttt{notesaligncenter})\\
+ \#5 & \texttt{0} & do not save the value for the previous syllable before calculating the new value\\
+ & \texttt{1} & save the value for the previous syllable before calculating the new value
\end{argtable}
The formula used is \verb=#1 - #2 + #3 - #4= or (more sensibly) \verb=(#1 - #4) - (#2 - #3)=. This is also equivalent to \verb=-#4 - \gre@dimen@begindifference + #3=, a fact we take advantage of when calculating the end difference for a bar syllable under the new bar spacing algorithm.
@@ -176,43 +181,43 @@ The formula used is \verb=#1 - #2 + #3 - #4= or (more sensibly) \verb=(#1 - #4)
Change the scale of a single distance from one factor to another.
\begin{argtable}
- \#1 & string & name of the distance to be scaled. See \nameref{distances}.\\
- \#2 & integer & the factor the distance is currently in\\
- \#3 & integer & the factor the distance is to be put into\\
+ \#1 & string & name of the distance to be scaled. See \nameref{distances}.\\
+ \#2 & integer & the factor the distance is currently in\\
+ \#3 & integer & the factor the distance is to be put into\\
\end{argtable}
\macroname{\textbackslash gre@changedimenfactor}{\#1\#2}{gregoriotex-spaces.tex}
Rescales all the distances (and \texttt{stafflinefactor}) which are supposed to scale with a change in staff size.
\begin{argtable}
- \#1 & integer & the factor the distances are currently in\\
- \#2 & integer & the factor the distances are to be put into\\
+ \#1 & integer & the factor the distances are currently in\\
+ \#2 & integer & the factor the distances are to be put into\\
\end{argtable}
\macroname{\textbackslash gre@calculate@nextbegindifference}{\#1\#2\#3\#4}{gregoriotex-spaces.tex}
Macro to calculate \texttt{nextbegindifference}.
\begin{argtable}
- \#1 & string & the first letters of the next syllable\\
- \#2 & string & the middle letters of the next syllable (the vowel in Latin, the whole syllable in English)\\
- \#3 & string & the end letters of the next syllable\\
- \#4 & $0 \le$ integer $\le 19$ & the type of notes alignment. See \nameref{notesalign}.\\
- & $20 \le$ integer $\le 39$ & Same as below 20 except there is a flat before the notes. Subtract 20 to get the type of notes alignment.\\
- & $40 \le$ integer $\le 59$ & Same as below 20 except there is a natural before the notes. Subtract 40 to get the type of notes alignment.
+ \#1 & string & the first letters of the next syllable\\
+ \#2 & string & the middle letters of the next syllable (the vowel in Latin, the whole syllable in English)\\
+ \#3 & string & the end letters of the next syllable\\
+ \#4 & $0 \le$ integer $\le 19$ & the type of notes alignment. See \nameref{notesalign}.\\
+ & $20 \le$ integer $\le 39$ & Same as below 20 except there is a flat before the notes. Subtract 20 to get the type of notes alignment.\\
+ & $40 \le$ integer $\le 59$ & Same as below 20 except there is a natural before the notes. Subtract 40 to get the type of notes alignment.
\end{argtable}
\macroname{\textbackslash gre@strip@pt}{\#1}{gregoriotex.sty \textup{and} gregoriotex.tex}
Strips the units from a distance. Under \LaTeX{}, this is an alias to \verb=\strip@pt=.
\begin{argtable}
- \#1 & control sequence & should be the control sequence for the the distance register (including the leading backslash)\\
+ \#1 & control sequence & should be the control sequence for the the distance register (including the leading backslash)\\
\end{argtable}
\macroname{\textbackslash gre@rem@pt}{\#1}{gregoriotex.tex}
Strips the units from a distance. Used internally by \verb=\gre@strip@pt=. Under \LaTeX{}, this is not defined.
\begin{argtable}
- \#1 & distance & should be in the form ``[0-9]+.[0-9]+pt’’. (\ie the result of applying \verb=\the= to a distance register)\\
+ \#1 & distance & should be in the form ``[0-9]+.[0-9]+pt’’. (\ie the result of applying \verb=\the= to a distance register)\\
\end{argtable}
\macroname{\textbackslash gre@count@temp@...}{}{gregoriotex-spaces.tex}
@@ -222,8 +227,8 @@ Temporary count used in calculations. There are currently three of these.
Macro which converts a distance into a particular set of units. Result is placed in \verb=\gre@converted= as a string.
\begin{argtable}
- \#1 & string & two letter abbreviation for the units. Should recognize all legal \TeX\ units.\\
- \#2 & distance & Distance to be converted.
+ \#1 & string & two letter abbreviation for the units. Should recognize all legal \TeX\ units.\\
+ \#2 & distance & Distance to be converted.
\end{argtable}
\macroname{\textbackslash gre@converted}{}{gregoriotex-spaces.tex}
@@ -233,8 +238,8 @@ Macro holding result of last call to \verb=\gre@convertto=.
This function takes a distance and formats it as a string so that its units conform to the pattern set by a string representation of a distance. Result is placed in \verb=\gre@stringdist=.
\begin{argtable}
- \#1 & string & the standard whose format is to be matched.\\
- \#2 & distance & the distance to be adjusted.
+ \#1 & string & the standard whose format is to be matched.\\
+ \#2 & distance & the distance to be adjusted.
\end{argtable}
\macroname{\textbackslash gre@stringdist}{}{gregoriotex-spaces.tex}
@@ -245,7 +250,7 @@ Macro that handles \verb=\gregorioscore= calls when they do not have an
optional argument.
\begin{argtable}
- \#1 & string & Relative or absolute path to the score.\\
+ \#1 & string & Relative or absolute path to the score.\\
\end{argtable}
\macroname{\textbackslash gre@gregorioscore@option}{[\#1]\#2}{gregoriotex-main.tex}
@@ -253,10 +258,10 @@ Macro that handles \verb=\gregorioscore= calls when they have an optional
argument.
\begin{argtable}
- \#1 & \texttt{n} & \#2 will be included as is. \\
- & \texttt{a} & Gregorio\TeX\ will automatically compile gabc files if necessary.\\
- & \texttt{f} & Forces Gregorio\TeX\ to compile the gabc file.\\
- \#2 & string & Relative or absolute path to the score.\\
+ \#1 & \texttt{n} & \#2 will be included as is. \\
+ & \texttt{a} & Gregorio\TeX\ will automatically compile gabc files if necessary.\\
+ & \texttt{f} & Forces Gregorio\TeX\ to compile the gabc file.\\
+ \#2 & string & Relative or absolute path to the score.\\
\end{argtable}
\macroname{\textbackslash gre@gabcsnippet}{\#1}{gregoriotex-main.tex}
@@ -264,7 +269,7 @@ Macro that handles \verb=\gabcsnippet= calls when they do not have an
optional argument.
\begin{argtable}
- \#1 & string & Snippet of gabc code.\\
+ \#1 & string & Snippet of gabc code.\\
\end{argtable}
\macroname{\textbackslash gre@writemode}{\#1\#2\#3}{gregoriotex-main.tex}
@@ -272,29 +277,29 @@ Macro that writes its arguments with \verb=\greannotation=. This
macro is typically called by \verb=\GreMode= in the gtex file.
\begin{argtable}
- \#1 & \TeX\ code & Mode text to place above the initial of a score in the \texttt{modeline} style.\\
- \#2 & \TeX\ code & Arbitrary code to typeset, in the \texttt{modemodifier} style, after the mode text.\\
- \#3 & \TeX\ code & Arbitrary code to typeset, in the \texttt{modedifferentia} style, after \#2.\\
+ \#1 & \TeX\ code & Mode text to place above the initial of a score in the \texttt{modeline} style.\\
+ \#2 & \TeX\ code & Arbitrary code to typeset, in the \texttt{modemodifier} style, after the mode text.\\
+ \#3 & \TeX\ code & Arbitrary code to typeset, in the \texttt{modedifferentia} style, after \#2.\\
\end{argtable}
\macroname{\textbackslash gre@setallbracerendering}{\#1}{gregoriotex-signs.tex}
Macro used by \verb=\gresetbracerendering= to change all braces.
\begin{argtable}
- \#1 & \texttt{metapost} & \MP{} will be used to render braces\\
- & \texttt{font} & The score font will be used to render braces\\
+ \#1 & \texttt{metapost} & \MP{} will be used to render braces\\
+ & \texttt{font} & The score font will be used to render braces\\
\end{argtable}
\macroname{\textbackslash gre@setbracerendering}{[\#1]\#2}{gregoriotex-signs.tex}
Macro used by \verb=\gresetbracerendering= to change a single type of brace.
\begin{argtable}
- \#1 & \texttt{brace} & change round braces that appear over the staff\\
- & \texttt{underbrace} & change round braces that appear under the staff\\
- & \texttt{curlybrace} & change curly braces\\
- & \texttt{barbrace} & change round braces that appear over divisio bars\\
- \#2 & \texttt{metapost} & \MP{} will be used to render braces\\
- & \texttt{font} & The score font will be used to render braces\\
+ \#1 & \texttt{brace} & change round braces that appear over the staff\\
+ & \texttt{underbrace} & change round braces that appear under the staff\\
+ & \texttt{curlybrace} & change curly braces\\
+ & \texttt{barbrace} & change round braces that appear over divisio bars\\
+ \#2 & \texttt{metapost} & \MP{} will be used to render braces\\
+ & \texttt{font} & The score font will be used to render braces\\
\end{argtable}
\macroname{\textbackslash gre@@setbracerendering}{\#1\#2}{gregoriotex-signs.tex}
@@ -303,27 +308,27 @@ Secondary macro used by \verb=\gre@setallbracerendering= and
secondary macro, it doesn't check its first argument.
\begin{argtable}
- \#1 & \texttt{brace} & change round braces that appear over the staff\\
- & \texttt{underbrace} & change round braces that appear under the staff\\
- & \texttt{curlybrace} & change curly braces\\
- & \texttt{barbrace} & change round braces that appear over divisio bars\\
- \#2 & \texttt{metapost} & \MP{} will be used to render braces\\
- & \texttt{font} & The score font will be used to render braces\\
+ \#1 & \texttt{brace} & change round braces that appear over the staff\\
+ & \texttt{underbrace} & change round braces that appear under the staff\\
+ & \texttt{curlybrace} & change curly braces\\
+ & \texttt{barbrace} & change round braces that appear over divisio bars\\
+ \#2 & \texttt{metapost} & \MP{} will be used to render braces\\
+ & \texttt{font} & The score font will be used to render braces\\
\end{argtable}
\macroname{\textbackslash gre@brace@common}{\#1\#2\#3\#4\#5\#6\#7}{gregoriotex-signs.tex}
Common macro used internally to render braces.
\begin{argtable}
- \#1 & length & The width of the brace.\\
- \#2 & length & A vertical shift.\\
- \#3 & length & A horizontal shift.\\
- \#4 & \texttt{0} & Don’t shift before starting the brace.\\
- & \texttt{1} & Shift back a punctum’s width before starting the brace.\\
- \#5 & \texttt{0} & No accentus above the brace.\\
- & \texttt{1} & Typeset an accentus above the brace.\\
- \#6 & integer & The height number for the brace.\\
- \#7 & csname & The control sequence name representing the brace.
+ \#1 & length & The width of the brace.\\
+ \#2 & length & A vertical shift.\\
+ \#3 & length & A horizontal shift.\\
+ \#4 & \texttt{0} & Don’t shift before starting the brace.\\
+ & \texttt{1} & Shift back a punctum’s width before starting the brace.\\
+ \#5 & \texttt{0} & No accentus above the brace.\\
+ & \texttt{1} & Typeset an accentus above the brace.\\
+ \#6 & integer & The height number for the brace.\\
+ \#7 & csname & The control sequence name representing the brace.
\end{argtable}
\macroname{\textbackslash gre@render@barbrace}{}{gregoriotex-signs.tex}
@@ -334,55 +339,55 @@ Returns the \MP{} preamble for braces. The control sequence name does
not have the \texttt{@} symbol because this macro is used within \MP{}.
\begin{argtable}
- \#1 & string & the width of the brace; if \texttt{*}, use the bar brace width.
+ \#1 & string & the width of the brace; if \texttt{*}, use the bar brace width.
\end{argtable}
\macroname{\textbackslash gre@draw@curlybrace}{\#1}{gregoriotex-signs.tex}
Draws a curly over-brace using \MP{}.
\begin{argtable}
- \#1 & length & the width of the brace.
+ \#1 & length & the width of the brace.
\end{argtable}
\macroname{\textbackslash gre@draw@brace}{\#1}{gregoriotex-signs.tex}
Draws a round over-brace using \MP{}.
\begin{argtable}
- \#1 & string & the width of the brace; if \texttt{*}, use the bar brace width.
+ \#1 & string & the width of the brace; if \texttt{*}, use the bar brace width.
\end{argtable}
\macroname{\textbackslash gre@draw@fontbrace}{\#1\#2}{gregoriotex-signs.tex}
Draws a brace using the score font.
\begin{argtable}
- \#1 & string & the width of the brace.\\
- \#2 & \TeX\ code & \TeX\ code that renders the brace using the score font.\\
+ \#1 & string & the width of the brace.\\
+ \#2 & \TeX\ code & \TeX\ code that renders the brace using the score font.\\
\end{argtable}
\macroname{\textbackslash gre@draw@underbrace}{\#1}{gregoriotex-signs.tex}
Draws a round under-brace using \MP{}.
\begin{argtable}
- \#1 & length & the width of the brace.
+ \#1 & length & the width of the brace.
\end{argtable}
\macroname{\textbackslash gre@draw@roundbrace}{\#1\#2\#3}{gregoriotex-signs.tex}
Draws a round over- or under-brace using \MP{}.
\begin{argtable}
- \#1 & length & the width of the brace.\\
- \#2 & number & the height of the bounding box in em-relative units.\\
- \#3 & \MP{} commands & \MP{} commands to draw the brace outline.
+ \#1 & length & the width of the brace.\\
+ \#2 & number & the height of the bounding box in em-relative units.\\
+ \#3 & \MP{} commands & \MP{} commands to draw the brace outline.
\end{argtable}
\macroname{\textbackslash gre@draw@slur}{\#1\#2\#3}{gregoriotex-signs.tex}
Draws a slur using \MP{}.
\begin{argtable}
- \#1 & length & the x-dimension of the slur.\\
- \#2 & length & the y-dimension of the slur.\\
- \#3 & \texttt{-1} & draw an under-the-notes slur.\\
- & \texttt{1} & draw an over-the-notes slur.\\
+ \#1 & length & the x-dimension of the slur.\\
+ \#2 & length & the y-dimension of the slur.\\
+ \#3 & \texttt{-1} & draw an under-the-notes slur.\\
+ & \texttt{1} & draw an over-the-notes slur.\\
\end{argtable}
@@ -390,7 +395,7 @@ Draws a slur using \MP{}.
Evaluates to \verb=#1= if running under \LaTeX{}.
\begin{argtable}
- \#1 & \TeX{} code & the \TeX{} code to use if running under \LaTeX{}.
+ \#1 & \TeX{} code & the \TeX{} code to use if running under \LaTeX{}.
\end{argtable}
\macroname{\textbackslash gre@latex@barredsymbol}{\#1\#2\#3\#4}{gregoriotex-signs.tex}
@@ -400,10 +405,10 @@ the cascading of conditionals used to implement that macro.
\bigskip\textbf{Only available in \LaTeX.}
\begin{argtable}
- \#1 & string & the value of \verb=\f@series/\f@shape= to match.\\
- \#2 & \TeX{} code & the \TeX{} for the base symbol (\ie, \texttt{A}, \texttt{R}, or \texttt{V}).\\
- \#3 & string & the control sequence name created by \verb=\gredefsizedsymbol= to use for the bar.\\
- \#4 & dimension & the amount to shift the bar to the left from the end of the base symbol.
+ \#1 & string & the value of \verb=\f@series/\f@shape= to match.\\
+ \#2 & \TeX{} code & the \TeX{} for the base symbol (\ie, \texttt{A}, \texttt{R}, or \texttt{V}).\\
+ \#3 & string & the control sequence name created by \verb=\gredefsizedsymbol= to use for the bar.\\
+ \#4 & dimension & the amount to shift the bar to the left from the end of the base symbol.
\end{argtable}
\macroname{\textbackslash gre@additionalbottomcustoslineend}{}{gregoriotex-signs.tex}
@@ -422,11 +427,25 @@ Macro to place a top custos with an additional line (positions \texttt{l} and \t
Macro to pick the appropriate custos character.
\begin{argtable}
- \#1 & integer & height of the custos character to be placed\\
+ \#1 & integer & height of the custos character to be placed\\
\end{argtable}
-\macroname{\textbackslash gre@nextcustos}{}{gregoriotex-signs.tex}
-Macro that saves the next custos height.
+\macroname{\textbackslash gre@nextcustospitch}{}{gregoriotex-signs.tex}
+Macro that saves the next custos pitch (height).
+
+\macroname{\textbackslash gre@nextcustosalteration}{}{gregoriotex-signs.tex}
+Macro that saves the next custos alteration.
+
+\macroname{\textbackslash gre@custosalteration}{\#1\#2}{gregoriotex-signs.tex}
+Typesets the alteration for a custos, if enabled.
+
+\begin{argtable}
+ \#1 & integer & The pitch (height number) of the custos.\\
+ \#2 & \texttt{Flat} & The custos should have a flat.\\
+ & \texttt{Natural} & The custos should have a natural.\\
+ & \texttt{Sharp} & The custos should have a sharp.\\
+ & \textit{empty} & The custos should not have an alteration.\\
+\end{argtable}
\macroname{\textbackslash gre@beginnotes}{}{gregoriotex-main.tex}
Macro to draw the staff lines. Comes after the initial but before the clef.
@@ -459,14 +478,14 @@ Macro to decrease the space above the lines as there is no longer any above line
Macro to typeset an alteration.
\begin{argtable}
- \#1 & integer & height of the alteration\\
- \#2 & character alias & the alteration\\
- \#3 & character alias & the hole of the alteration\\
- \#4 & \texttt{1} & the alteration is part of the clef\\
- & \texttt{0} & the alteration is not part of the clef\\
- \#5 & \TeX\ code & signs to typeset before the glyph (typically additional bars, as they must be "behind" the glyph)\\
- \#6 & \TeX\ code & signs to typeset after the glyph (almost all signs)\\
- \#7 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled\\
+ \#1 & integer & height of the alteration\\
+ \#2 & character alias & the alteration\\
+ \#3 & character alias & the hole of the alteration\\
+ \#4 & \texttt{1} & the alteration is part of the clef\\
+ & \texttt{0} & the alteration is not part of the clef\\
+ \#5 & \TeX\ code & signs to typeset before the glyph (typically additional bars, as they must be "behind" the glyph)\\
+ \#6 & \TeX\ code & signs to typeset after the glyph (almost all signs)\\
+ \#7 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled\\
\end{argtable}
\macroname{\textbackslash gre@clef}{}{gregoriotex-signs.tex}
@@ -521,42 +540,42 @@ A spot to save the \verb=\gre@lastoflinecount= so we can change it temporarily a
The macro which needs to be called each time a new lines is started.
\begin{argtable}
- \#1 & \texttt{0} & Justifying the line being ended\\
- & \texttt{1} & Do not justify the line being ended\\
- \#2 & \texttt{0} & Take care of eolshift\\
- & \texttt{1} & Do not adjust end of line (when already done by the new spacing algorithm)\\
+ \#1 & \texttt{0} & Justifying the line being ended\\
+ & \texttt{1} & Do not justify the line being ended\\
+ \#2 & \texttt{0} & Take care of eolshift\\
+ & \texttt{1} & Do not adjust end of line (when already done by the new spacing algorithm)\\
\end{argtable}
\macroname{\textbackslash gre@endafterbar}{\#1}{gregoriotex-main.tex}
Macro to call after ending a bar.
\begin{argtable}
- \#1 & \texttt{0} & We are at the end of a line\\
- & \texttt{1} & We not at the end of a line\\
+ \#1 & \texttt{0} & We are at the end of a line\\
+ & \texttt{1} & We not at the end of a line\\
\end{argtable}
\macroname{\textbackslash gre@endofsyllable}{\#1\#2\#3}{gregoriotex-syllable.tex}
Macro called at end of a syllable, adds a penalty and a space.
\begin{argtable}
- \#1 & \texttt{0} & to only add the penalty\\
- & \texttt{1} & adds both penalty and space\\
- \#2 & \texttt{0} & if end of syllable\\
- & \texttt{1} & if end of word\\
- \#3 & \texttt{1} & if next syllable is a bar\\
- & \texttt{0} & otherwise\\
+ \#1 & \texttt{0} & to only add the penalty\\
+ & \texttt{1} & adds both penalty and space\\
+ \#2 & \texttt{0} & if end of syllable\\
+ & \texttt{1} & if end of word\\
+ \#3 & \texttt{1} & if next syllable is a bar\\
+ & \texttt{0} & otherwise\\
\end{argtable}
\macroname{\textbackslash gre@setfirstsyllabletext}{\#1\#2\#3\#4\#5\#6}{gregoriotex-syllable.tex}
Internal macro to set the first syllable text after all parts are known.
\begin{argtable}
- \#1 & \TeX\ code & First part of the syllable (before the vowel)\\
- \#2 & \TeX\ code & Middle part of the syllable (the vowel)\\
- \#3 & \TeX\ code & Last part of the syllable (after the vowel)\\
- \#4 & \TeX\ code & First letter of the syllable\\
- \#5 & \TeX\ code & Everything after the first letter of the syllable\\
- \#6 & \TeX\ code & Macros to run after the text is emitted\\
+ \#1 & \TeX\ code & First part of the syllable (before the vowel)\\
+ \#2 & \TeX\ code & Middle part of the syllable (the vowel)\\
+ \#3 & \TeX\ code & Last part of the syllable (after the vowel)\\
+ \#4 & \TeX\ code & First letter of the syllable\\
+ \#5 & \TeX\ code & Everything after the first letter of the syllable\\
+ \#6 & \TeX\ code & Macros to run after the text is emitted\\
\end{argtable}
\macroname{\textbackslash gre@opening@syllabletext}{}{gregoriotex-syllable.tex}
@@ -574,30 +593,30 @@ Default: 17 (approximately the size found in graduals)
Macro to fill the hole in a glyph so that staff lines do not show through a hole in it.
\begin{argtable}
- \#1 & Gregorio\TeX\ char & character to use to fill the hole\\
+ \#1 & Gregorio\TeX\ char & character to use to fill the hole\\
\end{argtable}
\macroname{\textbackslash gre@calculate@notesaligncenter}{\#1}{gregoriotex-syllable.tex}
Macro to find the alignment center for a group of notes. The value is the distance from the left edge of the group to the alignment point and is stored in \verb=\gre@dimen@notesaligncenter=.
\begin{argtable}
- \#1 & Note alignment type & See \ref{notesalign}\\
+ \#1 & Note alignment type & See \ref{notesalign}\\
\end{argtable}
\macroname{\textbackslash gre@calculate@nextnotesaligncenter}{\#1}{gregoriotex-syllable.tex}
Same as previous, but for the next syllable.
\begin{argtable}
- \#1 & Note alignment type & See \ref{notesalign}\\
+ \#1 & Note alignment type & See \ref{notesalign}\\
\end{argtable}
\macroname{\textbackslash gre@calculate@simplenotesaligncenter}{\#1\#2}{gregoriotex-syllable.tex}
Workhorse function behind \verb=\gre@calculate@notesaligncenter= and\\ \verb=\gre@calculate@nextnotesaligncenter=.
\begin{argtable}
- \#1 & Note alignment type & See \ref{notesalign}\\
- \#2 & \texttt{0} & this is for the current syllable\\
- & \texttt{1} & this is for the next syllable\\
+ \#1 & Note alignment type & See \ref{notesalign}\\
+ \#2 & \texttt{0} & this is for the current syllable\\
+ & \texttt{1} & this is for the next syllable\\
\end{argtable}
\macroname{\textbackslash gre@gregoriofontname}{}{gregoriotex-main.tex}
@@ -607,87 +626,87 @@ Macro which stores the name of the currently selected font for the neumes.
Macro for aligning clivis syllables according to the flag \verb=\gre@clivisalignment=.
\begin{argtable}
- \#1 & Gregorio\TeX\ glyph & Glyph to use when aligning clivis on its center\\
- \#2 & Gregorio\TeX\ glyph & Glyph to use when aligning clivis on the center of the first punctum\\
- \#3 & \texttt{0} & this is for the current syllable\\
- & \texttt{1} & this is for the next syllable\\
+ \#1 & Gregorio\TeX\ glyph & Glyph to use when aligning clivis on its center\\
+ \#2 & Gregorio\TeX\ glyph & Glyph to use when aligning clivis on the center of the first punctum\\
+ \#3 & \texttt{0} & this is for the current syllable\\
+ & \texttt{1} & this is for the next syllable\\
\end{argtable}
\macroname{\textbackslash gre@hepisorline}{\#1\#2\#3\#4\#5\#6\#7}{gregoriotex-signs.tex}
Macro to typeset a horizontal line (either an additional staff line or an episema).
\begin{argtable}
- \#1 & character & The letter of the height of the episema (not the height of the note it corresponds to).\\
- \#2 & \texttt{0} & go back to the beginning of the previous glyph; this starts the episema at the beginning of the previous glyph\\
- & \texttt{1} & stay at the end of the glyph; doesn’t make much sense to use this\\
- & \texttt{2} & go back the width of \#1; this starts the episema at the glyph from the end that starts at \#1’s width from the end\\
- & \texttt{3} & go back to the beginning of the previous glyph and then forward the width of \#1; this starts the episema at the glyph from the start that starts just after \#1’s width from the start\\
- & \texttt{4} & go back to the beginning of the previous glyph and then forward the width of \#1, then back the width of \#2; this ends the episema at the end of \#1\\
- \#3 & integer &the ambitus for a two note episema at the diagonal stroke of a porrectus, porrectus flexus, orculus resupinus, or torculus resupinus flexus\\
- \#4 & \texttt{0} & an horizontal episema\\
- & \texttt{1} & an horizontal episema under a note\\
- & \texttt{2} & a line at the top\\
- & \texttt{3} & a line at the bottom\\
- \#5 & \texttt{f} & a normal episema\\
- & \texttt{l} & a small episema aligned left\\
- & \texttt{c} & a small episema aligned center\\
- & \texttt{r} & for a small episema aligned right\\
- \#6 & string & a positive or negative "nudge" (dimension) for the vertical position of the horizontal episema\\
- \#7 & \texttt{0} & for horizontal episema cases, use automatic positioning within the space\\
- & \texttt{1} & for horizontal episema cases, position in the middle of the space\\
- & \texttt{2} & for horizontal episema cases, position low within the space as if the episema is over the note\\
- & \texttt{3} & for horizontal episema cases, position high within the space as if the episema is under the note\\
- & \texttt{4} & for horizontal episema cases, position low within the space as if the episema is over the note\\
- & \texttt{5} & for horizontal episema cases, position high within the space as if the episema is under the note\\
+ \#1 & character & The letter of the height of the episema (not the height of the note it corresponds to).\\
+ \#2 & \texttt{0} & go back to the beginning of the previous glyph; this starts the episema at the beginning of the previous glyph\\
+ & \texttt{1} & stay at the end of the glyph; doesn’t make much sense to use this\\
+ & \texttt{2} & go back the width of \#1; this starts the episema at the glyph from the end that starts at \#1’s width from the end\\
+ & \texttt{3} & go back to the beginning of the previous glyph and then forward the width of \#1; this starts the episema at the glyph from the start that starts just after \#1’s width from the start\\
+ & \texttt{4} & go back to the beginning of the previous glyph and then forward the width of \#1, then back the width of \#2; this ends the episema at the end of \#1\\
+ \#3 & integer &the ambitus for a two note episema at the diagonal stroke of a porrectus, porrectus flexus, orculus resupinus, or torculus resupinus flexus\\
+ \#4 & \texttt{0} & an horizontal episema\\
+ & \texttt{1} & an horizontal episema under a note\\
+ & \texttt{2} & a line at the top\\
+ & \texttt{3} & a line at the bottom\\
+ \#5 & \texttt{f} & a normal episema\\
+ & \texttt{l} & a small episema aligned left\\
+ & \texttt{c} & a small episema aligned center\\
+ & \texttt{r} & for a small episema aligned right\\
+ \#6 & string & a positive or negative "nudge" (dimension) for the vertical position of the horizontal episema\\
+ \#7 & \texttt{0} & for horizontal episema cases, use automatic positioning within the space\\
+ & \texttt{1} & for horizontal episema cases, position in the middle of the space\\
+ & \texttt{2} & for horizontal episema cases, position low within the space as if the episema is over the note\\
+ & \texttt{3} & for horizontal episema cases, position high within the space as if the episema is under the note\\
+ & \texttt{4} & for horizontal episema cases, position low within the space as if the episema is over the note\\
+ & \texttt{5} & for horizontal episema cases, position high within the space as if the episema is under the note\\
\end{argtable}
\macroname{\textbackslash gre@hepisorlineaux}{\#1\#2\#3\#4}{gregoriotex-signs.tex}
Macro that will help in the typesetting of a horizontal episema and additional lines.
\begin{argtable}
- \#1 & Gregorio\TeX\ glyph & an offset glyph (see \#3, below)\\
- \#2 & Gregorio\TeX\ glyph & the episema glyph\\
- \#3 & \texttt{0} & go back to the beginning of the previous glyph; this starts the episema at the beginning of the previous glyph\\
- & \texttt{1} & stay at the end of the glyph; doesn’t make much sense to use this\\
- & \texttt{2} & go back the width of \#1; this starts the episema at the glyph from the end that starts at \#1’s width from the end\\
- & \texttt{3} & go back to the beginning of the previous glyph and then forward the width of \#1; this starts the episema at the glyph from the start that starts just after \#1’s width from the start\\
- \#4 & \texttt{0} & an horizontal episema\\
- & \texttt{1} & an horizontal episema under a note\\
- & \texttt{2} & a line at the top\\
- & \texttt{3} & a line at the bottom\\
+ \#1 & Gregorio\TeX\ glyph & an offset glyph (see \#3, below)\\
+ \#2 & Gregorio\TeX\ glyph & the episema glyph\\
+ \#3 & \texttt{0} & go back to the beginning of the previous glyph; this starts the episema at the beginning of the previous glyph\\
+ & \texttt{1} & stay at the end of the glyph; doesn’t make much sense to use this\\
+ & \texttt{2} & go back the width of \#1; this starts the episema at the glyph from the end that starts at \#1’s width from the end\\
+ & \texttt{3} & go back to the beginning of the previous glyph and then forward the width of \#1; this starts the episema at the glyph from the start that starts just after \#1’s width from the start\\
+ \#4 & \texttt{0} & an horizontal episema\\
+ & \texttt{1} & an horizontal episema under a note\\
+ & \texttt{2} & a line at the top\\
+ & \texttt{3} & a line at the bottom\\
\end{argtable}
\macroname{\textbackslash gre@vepisemaorrare}{\#1\#2\#3\#4\#5}{gregoriotex-signs.tex}
Macro to typeset a vertical episema or a rare accent (like accentus, circulus, etc.). This function must be called after a call to \verb=\GreGlyph=.
\begin{argtable}
- \#1 & character & the letter of the height of the episema (not the height of the note it corresponds to.\\
- \#2 & integer & See \nameref{EpisemaSpecial}\\
- \#3 & Gregorio\TeX\ glyph & the sign glyph\\
- \#4 & \texttt{1} & vertical episema\\
- & \texttt{2} & rare sign\\
- & \texttt{3} & choral sign\\
- & \texttt{4} & brace above the bar\\
- \#5 & string & the choral sign, if relevant\\
+ \#1 & character & the letter of the height of the episema (not the height of the note it corresponds to.\\
+ \#2 & integer & See \nameref{EpisemaSpecial}\\
+ \#3 & Gregorio\TeX\ glyph & the sign glyph\\
+ \#4 & \texttt{1} & vertical episema\\
+ & \texttt{2} & rare sign\\
+ & \texttt{3} & choral sign\\
+ & \texttt{4} & brace above the bar\\
+ \#5 & string & the choral sign, if relevant\\
\end{argtable}
\macroname{\textbackslash gre@vepisemaorrareaux}{\#1\#2\#3\#4\#5\#6\#7}{gregoriotex-signs.tex}
Macro to help typesetting vertical episema.
\begin{argtable}
- \#1 & Gregorio\TeX\ glyph & is an offset glyph (see \#3 below)\\
- \#2 & Gregorio\TeX glyph & the glyph upon which the sign is to be centered\\
- \#3 & \texttt{0} & go back to the beginning of the previous glyph and then forward half the width of \#2; this puts the sign at the beginning of the previous glyph, whose first note is the size of \#2\\
- & \texttt{1} & go back half the width of \#2; this puts the sign at the end of the previous glyph, whose last note is the size of \#2\\
- & \texttt{2} & go back the width of \#1 and then forward half the width of \#2; this puts the sign at the glyph from the end that starts at \#1’s width from the end\\
- & \texttt{3} & go back to the beginning of the previous glyph and then forward the width of \#1 and then back half the width of \#2; this puts the sign at the glyph from the start that ends at \#1’s width from the start\\
- \#4 & dimension & a shift that we want to get applied, useful for punctum inclinatum for example\\
- \#5 & integer & is the glyph number\\
- \#6 & \texttt{1} & vertical episema\\
- & \texttt{2} & rare sign\\
- & \texttt{3} & choral sign\\
- & \texttt{4} & brace above the bar\\
- \#7 & string & the choral sign if relevant\\
+ \#1 & Gregorio\TeX\ glyph & is an offset glyph (see \#3 below)\\
+ \#2 & Gregorio\TeX glyph & the glyph upon which the sign is to be centered\\
+ \#3 & \texttt{0} & go back to the beginning of the previous glyph and then forward half the width of \#2; this puts the sign at the beginning of the previous glyph, whose first note is the size of \#2\\
+ & \texttt{1} & go back half the width of \#2; this puts the sign at the end of the previous glyph, whose last note is the size of \#2\\
+ & \texttt{2} & go back the width of \#1 and then forward half the width of \#2; this puts the sign at the glyph from the end that starts at \#1’s width from the end\\
+ & \texttt{3} & go back to the beginning of the previous glyph and then forward the width of \#1 and then back half the width of \#2; this puts the sign at the glyph from the start that ends at \#1’s width from the start\\
+ \#4 & dimension & a shift that we want to get applied, useful for punctum inclinatum for example\\
+ \#5 & integer & is the glyph number\\
+ \#6 & \texttt{1} & vertical episema\\
+ & \texttt{2} & rare sign\\
+ & \texttt{3} & choral sign\\
+ & \texttt{4} & brace above the bar\\
+ \#7 & string & the choral sign if relevant\\
\end{argtable}
\macroname{\textbackslash gre@newglyphcommon}{}{gregoriotex-syllable.tex}
@@ -715,7 +734,7 @@ Macro for opening up greextra font.
Macro for populating \verb=\gre@box@syllablenotes=.
\begin{argtable}
- \#1 & string & The contents to be placed in the box\\
+ \#1 & string & The contents to be placed in the box\\
\end{argtable}
\macroname{\textbackslash gre@symbolfontsize}{}{gregoriotex-symbols.tex}
@@ -728,39 +747,39 @@ Macro which applies the default text format.
Saves clef information for use in \verb=gre@updatelinesclef=.
\begin{argtable}
- \#1 & character & the type of the clef: c or f\\
- \#2 & integer & the line of the clef (1 is the lowest)\\
- \#3 & integer & if \texttt{3}, it means that we must not put a flat after the clef, otherwise it’s the height of the flat\\
- \#4 & character & the type of the secondary clef: c or f\\
- \#5 & integer & the line of the secondary clef (1 is the lowest, 0 for no secondary clef)\\
- \#6 & integer & if \texttt{3}, it means that we must not put a flat after the secondary clef, otherwise it’s the height of the flat\\
+ \#1 & character & the type of the clef: c or f\\
+ \#2 & integer & the line of the clef (1 is the lowest)\\
+ \#3 & integer & if \texttt{3}, it means that we must not put a flat after the clef, otherwise it’s the height of the flat\\
+ \#4 & character & the type of the secondary clef: c or f\\
+ \#5 & integer & the line of the secondary clef (1 is the lowest, 0 for no secondary clef)\\
+ \#6 & integer & if \texttt{3}, it means that we must not put a flat after the secondary clef, otherwise it’s the height of the flat\\
\end{argtable}
\macroname{\textbackslash gre@typeclef}{\#1\#2\#3\#4\#5\#6\#7\#8}{gregoriotex-signs.tex}
Macro which typesets the clef.
\begin{argtable}
- \#1 & character & the type of the clef: c or f\\
- \#2 & integer & the line of the clef (1 is the lowest)\\
- \#3 & \texttt{0} & no need to use small clef characters (inside a line)\\
- & \texttt{1} & we must use small clef characters (inside a line)\\
- \#4 & \texttt{0} & no extra space is needed after the clef\\
- & \texttt{}1 & we must type a space after the clef\\
- \#5 & integer & if \texttt{3}, it means that we must not put a flat after the clef, otherwise it’s the height of the flat\\
- \#6 & character & the type of the secondary clef: c or f\\
- \#7 & integer & the line of the secondary clef (1 is the lowest, 0 for no secondary clef)\\
- \#8 & integer & if \texttt{3}, it means that we must not put a flat after the secondary clef, otherwise it’s the height of the flat\\
+ \#1 & character & the type of the clef: c or f\\
+ \#2 & integer & the line of the clef (1 is the lowest)\\
+ \#3 & \texttt{0} & no need to use small clef characters (inside a line)\\
+ & \texttt{1} & we must use small clef characters (inside a line)\\
+ \#4 & \texttt{0} & no extra space is needed after the clef\\
+ & \texttt{}1 & we must type a space after the clef\\
+ \#5 & integer & if \texttt{3}, it means that we must not put a flat after the clef, otherwise it’s the height of the flat\\
+ \#6 & character & the type of the secondary clef: c or f\\
+ \#7 & integer & the line of the secondary clef (1 is the lowest, 0 for no secondary clef)\\
+ \#8 & integer & if \texttt{3}, it means that we must not put a flat after the secondary clef, otherwise it’s the height of the flat\\
\end{argtable}
\macroname{\textbackslash gre@typesingleclef}{\#1\#2\#3\#4}{gregoriotex-signs.tex}
Macro which typesets a single clef.
\begin{argtable}
- \#1 & character & the type of the clef: c or f\\
- \#2 & integer & the line of the clef (1 is the lowest)\\
- \#3 & \texttt{0} & no need to use small clef characters (inside a line)\\
- & \texttt{1} & we must use small clef characters (inside a line)\\
- \#4 & integer & if \texttt{3}, it means that we must not put a flat after the clef, otherwise it’s the height of the flat\\
+ \#1 & character & the type of the clef: c or f\\
+ \#2 & integer & the line of the clef (1 is the lowest)\\
+ \#3 & \texttt{0} & no need to use small clef characters (inside a line)\\
+ & \texttt{1} & we must use small clef characters (inside a line)\\
+ \#4 & integer & if \texttt{3}, it means that we must not put a flat after the clef, otherwise it’s the height of the flat\\
\end{argtable}
\macroname{\textbackslash gre@updateleftbox}{}{gregoriotex-main.tex}
@@ -782,17 +801,17 @@ Macro for calculating the width of its argument and storing it in \verb=\gre@dim
Macro to write a bar.
\begin{argtable}
- \#1 & \texttt{0} & virgula\\
- & \texttt{1} & minima\\
- & \texttt{2} & minor\\
- & \texttt{3} & major\\
- & \texttt{4} & finalis\\
- & \texttt{5} & the last finalis\\
- \#2 & \texttt{0} & in a syllable containing only this bar\\
- & \texttt{1} & in a syllable containing other notes\\
- \#3 & \texttt{0} & if there is no text underneath the bar\\
- & \texttt{1} & if there is text underneath the bar\\
- \#4 & \TeX\ code & macros that may happen before the skip after the bar (typically GreVEpisema)\\
+ \#1 & \texttt{0} & virgula\\
+ & \texttt{1} & minima\\
+ & \texttt{2} & minor\\
+ & \texttt{3} & major\\
+ & \texttt{4} & finalis\\
+ & \texttt{5} & the last finalis\\
+ \#2 & \texttt{0} & in a syllable containing only this bar\\
+ & \texttt{1} & in a syllable containing other notes\\
+ \#3 & \texttt{0} & if there is no text underneath the bar\\
+ & \texttt{1} & if there is text underneath the bar\\
+ \#4 & \TeX\ code & macros that may happen before the skip after the bar (typically GreVEpisema)\\
\end{argtable}
\macroname{\textbackslash gre@@arg}{}{gregoriotex-syllable.tex}
@@ -805,18 +824,18 @@ A dummy macro which has not contents. Used for \verb=\ifx= comparisons.
Workhorse function behind \verb=\greannotation=.
\begin{argtable}
- \#1 & \texttt{c} & center align the new line with the existing annotation content\\
- & \texttt{l} & left align the new line with the existing annotation content\\
- & \texttt{r} & right align the new line with the existing annotation content\\
- \#2 & string & the new annotation content\\
+ \#1 & \texttt{c} & center align the new line with the existing annotation content\\
+ & \texttt{l} & left align the new line with the existing annotation content\\
+ & \texttt{r} & right align the new line with the existing annotation content\\
+ \#2 & string & the new annotation content\\
\end{argtable}
\macroname{\textbackslash gre@commentary}{[\#1]\#2}{gregoriotex-main.tex}
Workhorse function behind \verb=\grecommentary=.
\begin{argtable}
- \#1 & distance & Additional distance to be placed between the commentary and the top staff line for the next score only.\\
- \#2 & string & the new commentary content\\
+ \#1 & distance & Additional distance to be placed between the commentary and the top staff line for the next score only.\\
+ \#2 & string & the new commentary content\\
\end{argtable}
\macroname{\textbackslash gre@atletter}{}{gregoriotex-main.tex}
@@ -841,7 +860,7 @@ Workhorse function behind \verb=\grechangestyle=. Necessary because the interna
Macro used in \verb=\GreSyllable=. Sets \verb=\gre@skip@bolshift= to the left kern that should appear at the beginning of a line in case of a forced linebreak. The goal of this left kern is to have all lines aligned on notes. This shift is applied to the right before every syllable and then to the left after placing an empty box. At the beginning of the line the shift to the right is ignored by \TeX\ as leading white space, but the shift left is not because of the presence of the “character” of the empty box.
\begin{argtable}
- \#1 & dimension & \verb=begindifference= of the syllable\\
+ \#1 & dimension & \verb=begindifference= of the syllable\\
\end{argtable}
\macroname{\textbackslash gre@calculate@eolshift}{\#1}{gregoriotex-spaces.tex}
@@ -851,17 +870,17 @@ text go further than notes in the last syllable of a line, the idea
is to allow text to go a bit further right, under the custos. This shift is applied to the left after every syllable and then to the right after setting the line break penalty. If the line break occurs after this syllable, it will occur between the two shifts, pushing the shift right to the beginning of the next line where \TeX\ will ignore it as leading white space.
\begin{argtable}
- \#1 & dimension & The \verb=enddifference= of the corresponding syllable\\
+ \#1 & dimension & The \verb=enddifference= of the corresponding syllable\\
\end{argtable}
\macroname{\textbackslash gre@calculate@syllablefinalskip}{\#1\#2}{gregoriotex-spaces.tex}
Macro computing the skip at the end of the syllable.
\begin{argtable}
- \#1 & \texttt{0} & if end of syllable\\
- & \texttt{1} & if end of word\\
- \#2 & \texttt{0} & if next syllable is normal\\
- & \texttt{1} & if it’s a bar\\
+ \#1 & \texttt{0} & if end of syllable\\
+ & \texttt{1} & if end of word\\
+ \#2 & \texttt{0} & if next syllable is normal\\
+ & \texttt{1} & if it’s a bar\\
\end{argtable}
\macroname{\textbackslash gre@convert}{}{gregoriotex-spaces.tex}
@@ -874,46 +893,46 @@ Macro to hold the list of debug messages which should be designated as printing.
Macro to print debugging messages.
\begin{argtable}
- \#1 & string & The category of the message (used in conjunction with \verb=\gre@debug= to determine whether to print the message or not\\
- \#2 & string & The debug message\\
+ \#1 & string & The category of the message (used in conjunction with \verb=\gre@debug= to determine whether to print the message or not\\
+ \#2 & string & The debug message\\
\end{argtable}
\macroname{\textbackslash gre@declarefileversion}{\#1\#2}{gregoriotex-main.tex}
Macro which checks for version consistency between Gregorio\TeX\ files.
\begin{argtable}
- \#1 & string & name of the current file\\
- \#2 & string & version of the current file\\
+ \#1 & string & name of the current file\\
+ \#2 & string & version of the current file\\
\end{argtable}
\macroname{\textbackslash gre@def@char@he}{\#1\#2}{gregoriotex-chars.tex}
Macro for defining the various types of horizontal episema.
\begin{argtable}
- \#1 & string & name of the horizontal episema to be defined\\
- \#2 & string & Camel case name of horizontal episema to be defined\\
+ \#1 & string & name of the horizontal episema to be defined\\
+ \#2 & string & Camel case name of horizontal episema to be defined\\
\end{argtable}
\macroname{\textbackslash gre@def@char@he@porr}{\#1\#2}{gregoriotex-chars.tex}
Macro for defining the various types of horizontal episema porrectus.
\begin{argtable}
- \#1 & string & name of the horizontal episema porrectus to be defined\\
- \#2 & string & Camel case name of horizontal episema porrectus to be defined\\
+ \#1 & string & name of the horizontal episema porrectus to be defined\\
+ \#2 & string & Camel case name of horizontal episema porrectus to be defined\\
\end{argtable}
\macroname{\textbackslash gre@char@cavum}{\#1\#2\#3\#4\#5\#6\#7\#8}{gregoriotex-signs.tex}
Macro to typeset a “cavum” character.
\begin{argtable}
- \#1 & length & Argument \#2 from \verb=\GreGlyph=. Height to raise the glyph.\\
- \#2 & length & Argument \#3 from \verb=\GreGlyph=. Height of the next note.\\
- \#3 & integer & Argument \#4 from \verb=\GreGlyph=. The type of glyph.\\
- \#4 & \TeX\ code & Macros executed before the punctum cavum is written.\\
- \#5 & character & Argument \#5 from \verb=\GreGlyph=. The signs to typeset before the glyph.\\
- \#6 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled.\\
- \#7 & control sequence & The control sequence for the glyph.\\
- \#8 & control sequence & The control sequence for the hole glyph.
+ \#1 & length & Argument \#2 from \verb=\GreGlyph=. Height to raise the glyph.\\
+ \#2 & length & Argument \#3 from \verb=\GreGlyph=. Height of the next note.\\
+ \#3 & integer & Argument \#4 from \verb=\GreGlyph=. The type of glyph.\\
+ \#4 & \TeX\ code & Macros executed before the punctum cavum is written.\\
+ \#5 & character & Argument \#5 from \verb=\GreGlyph=. The signs to typeset before the glyph.\\
+ \#6 & string & the line, byte offset, and column address for textedit links when point-and-click is enabled.\\
+ \#7 & control sequence & The control sequence for the glyph.\\
+ \#8 & control sequence & The control sequence for the hole glyph.
\end{argtable}
\macroname{\textbackslash gre@get@spaceskip}{\#1}{gregoriotex-signs.tex}
@@ -921,29 +940,29 @@ Loads \verb=\gre@skip@temp@four= with the appropriate rubber length given the
desired case.
\begin{argtable}
- \#1 & \texttt{0} & Default space.\\
- & \texttt{1} & Zero-width space.\\
- & \texttt{2} & Space between flat or natural and a note.\\
- & \texttt{3} & Space between two puncta inclinata, descending.\\
- & \texttt{4} & Space between bivirga or trivirga.\\
- & \texttt{5} & space between bistropha or tristropha.\\
- & \texttt{6} & Space after a punctum mora XXX: not used yet, not so sure it is a good idea\ldots\\
- & \texttt{7} & Space between a punctum inclinatum and a punctum inclinatum debilis, descending.\\
- & \texttt{8} & Space between two puncta inclinata debilis.\\
- & \texttt{9} & Space before a punctum (or something else) and a punctum inclinatum.\\
- & \texttt{10} & Space between puncta inclinata (also debilis for now), larger ambitus (range=3rd), descending.\\
- & \texttt{11} & Space between puncta inclinata (also debilis for now), larger ambitus (range=4th or 5th), descending.\\
- & \texttt{12} & Space between two puncta inclinata, ascending. \\
- & \texttt{13} & Space between a punctum inclinatum and a punctum inclinatum debilis, ascending. \\
- & \texttt{14} & Space between puncta inclinata (also debilis for now), larger ambitus (range=3rd), ascending. \\
- & \texttt{15} & Space between puncta inclinata (also debilis for now), larger ambitus (range=4th or 5th), ascending. \\
- & \texttt{16} & Space between a punctum inclinatum and a ``no-bar'' glyph one pitch below. \\
- & \texttt{17} & Space between a punctum inclinatum and a ``no-bar'' glyph two pitches below. \\
- & \texttt{18} & Space between a punctum inclinatum and a ``no-bar'' glyph three or four pitches below \\
- & \texttt{19} & Space between a punctum inclinatum and a ``no-bar'' glyph one pitch above. \\
- & \texttt{20} & Space between a punctum inclinatum and a ``no-bar'' glyph two pitches above. \\
- & \texttt{21} & Space between a punctum inclinatum and a ``no-bar'' glyph three or four pitches above \\
- & \texttt{22} & Half-space. \\
+ \#1 & \texttt{0} & Default space.\\
+ & \texttt{1} & Zero-width space.\\
+ & \texttt{2} & Space between flat or natural and a note.\\
+ & \texttt{3} & Space between two puncta inclinata, descending.\\
+ & \texttt{4} & Space between bivirga or trivirga.\\
+ & \texttt{5} & space between bistropha or tristropha.\\
+ & \texttt{6} & Space after a punctum mora XXX: not used yet, not so sure it is a good idea\ldots\\
+ & \texttt{7} & Space between a punctum inclinatum and a punctum inclinatum debilis, descending.\\
+ & \texttt{8} & Space between two puncta inclinata debilis.\\
+ & \texttt{9} & Space before a punctum (or something else) and a punctum inclinatum.\\
+ & \texttt{10} & Space between puncta inclinata (also debilis for now), larger ambitus (range=3rd), descending.\\
+ & \texttt{11} & Space between puncta inclinata (also debilis for now), larger ambitus (range=4th or 5th), descending.\\
+ & \texttt{12} & Space between two puncta inclinata, ascending. \\
+ & \texttt{13} & Space between a punctum inclinatum and a punctum inclinatum debilis, ascending. \\
+ & \texttt{14} & Space between puncta inclinata (also debilis for now), larger ambitus (range=3rd), ascending. \\
+ & \texttt{15} & Space between puncta inclinata (also debilis for now), larger ambitus (range=4th or 5th), ascending. \\
+ & \texttt{16} & Space between a punctum inclinatum and a ``no-bar'' glyph one pitch below. \\
+ & \texttt{17} & Space between a punctum inclinatum and a ``no-bar'' glyph two pitches below. \\
+ & \texttt{18} & Space between a punctum inclinatum and a ``no-bar'' glyph three or four pitches below \\
+ & \texttt{19} & Space between a punctum inclinatum and a ``no-bar'' glyph one pitch above. \\
+ & \texttt{20} & Space between a punctum inclinatum and a ``no-bar'' glyph two pitches above. \\
+ & \texttt{21} & Space between a punctum inclinatum and a ``no-bar'' glyph three or four pitches above \\
+ & \texttt{22} & Half-space. \\
\end{argtable}
\macroname{\textbackslash gre@nabcfontname}{}{gregoriotex-main.tex}
@@ -974,14 +993,14 @@ Macro which stores the middle part of the next syllable (the part which aligns w
A macro which applies formatting that needs to apply to the whole syllable (rather than the parts individually) for the current syllable. Necessary to preserve ligatures across parts within a syllable.
\begin{argtable}
- \#1 & string & The syllable (usually built as \verb=\gre@firstsyllablepart\gre@middlesyllablepart\gre@endsyllablepart=\\
+ \#1 & string & The syllable (usually built as \verb=\gre@firstsyllablepart\gre@middlesyllablepart\gre@endsyllablepart=\\
\end{argtable}
\macroname{\textbackslash gre@fixednexttextformat}{\#1}{gregoriotex-syllable.tex}
A macro which applies formatting that needs to apply to the whole syllable (rather than the parts individually) for the next syllable. Necessary to preserve ligatures across parts within a syllable.
\begin{argtable}
- \#1 & string & The syllable (usually built as \verb=\gre@nextfirstsyllablepart\gre@nextmiddlesyllablepart\gre@nextendsyllablepart=\\
+ \#1 & string & The syllable (usually built as \verb=\gre@nextfirstsyllablepart\gre@nextmiddlesyllablepart\gre@nextendsyllablepart=\\
\end{argtable}
\macroname{\textbackslash gre@gabcname}{}{gregoriotex-main.tex}
@@ -1050,43 +1069,49 @@ The pitch of a rare sign (semicirculus, \etc).
\macroname{\textbackslash gre@pitch@dummy}{}{gregoriotex-main.tex}
A meaningless (don't-care) pitch.
+\macroname{\textbackslash gre@pitch@nominal}{}{gregoriotex-main.tex}
+A pitch guaranteed to be in the staff.
+
\macroname{\textbackslash gre@pointandclick}{\#1\#2}{gregoriotex-main.tex}
Macro to generate the point-and-click links.
\begin{argtable}
- \#1 & \TeX\ code & the entity which is to contain the link\\
- \#2 & link target & line:char:column for the link\\
+ \#1 & \TeX\ code & the entity which is to contain the link\\
+ \#2 & link target & line:char:column for the link\\
\end{argtable}
\macroname{\textbackslash gre@prefix}{}{gregoriotex-spaces.tex}
-Either ``skip’’ or ``dimen’’ according to the distance being set or changed at the given moment.
+Either \texttt{skip} or \texttt{dimen} according to the distance being set or changed at the given moment.
+
+\macroname{\textbackslash gre@prefixII}{}{gregoriotex-spaces.tex}
+Same as \verb=\gre@prefix=. Used when we were dealing with two distances simultaneously.
\macroname{\textbackslash gre@rubberpermit}{\#1}{gregoriotex-spaces.tex}
Determines whether the given distance is allowed to take a rubber length.
\begin{argtable}
- \#1 & string & the name of the distance to check\\
+ \#1 & string & the name of the distance to check\\
\end{argtable}
\macroname{\textbackslash gre@setgregoriofont}{[\#1]\#2}{gregoriotex-main.tex}
Workhorse function behind \verb=\gresetgregoriofont=.
\begin{argtable}
- \#1 & \textit{(omitted)} & Use the normal font and rule set (default).\\
- & \texttt{op} & Use the alternate Dominican font/rule set.\\
- \#2 & \texttt{greciliae} & Use the Greciliae font (default).\\
- & \texttt{gregorio} & Use the Gregorio font.\\
- & \texttt{parmesan} & Use the Parmesan font.\\
+ \#1 & \textit{(omitted)} & Use the normal font and rule set (default).\\
+ & \texttt{op} & Use the alternate Dominican font/rule set.\\
+ \#2 & \texttt{greciliae} & Use the Greciliae font (default).\\
+ & \texttt{gregorio} & Use the Gregorio font.\\
+ & \texttt{granapadano} & Use the Grana Padano font.\\
\end{argtable}
\macroname{\textbackslash gre@syllable@end}{\#1\#2\#3}{gregoriotex-syllable.tex}
Macro to make a few checks and call the right macros between \verb=\endbeforebar, \endofword, \endofsyllable=.
\begin{argtable}
- \#1 & & next syllable type (\#7 of \verb=\GreSyllable=)\\
- \#2 & string & next syllable text\\
- \#3 & \texttt{0} & this syllable is not the end of a word\\
- & \texttt{1} & this syllable is the end of a word\\
+ \#1 & & next syllable type (\#7 of \verb=\GreSyllable=)\\
+ \#2 & string & next syllable text\\
+ \#3 & \texttt{0} & this syllable is not the end of a word\\
+ & \texttt{1} & this syllable is the end of a word\\
\end{argtable}
\macroname{\textbackslash gre@typeout}{\#1}{gregoriotex.sty \textup{and} gregoriotex.tex}
@@ -1114,13 +1139,13 @@ Alias for \verb=\luatexlocalrightbox= or \verb=\localrightbox=, depending on \La
Alias for \verb=\resizebox=.
\macroname{\textbackslash gre@dimension}{}{gregoriotex-spaces.tex}
-Workhorse function behind \verb=\grecreatedim= and \verb=\grechangedim=.
+Workhorse function for setting distances in \verb=\grecreatedim= and \verb=\grechangedim=.
\macroname{\textbackslash gre@setstafflines}{\#1}{gregoriotex-main.tex}
Sets the number of staff lines.
\begin{argtable}
- \#1 & integer & The number of staff lines\\
+ \#1 & integer & The number of staff lines\\
\end{argtable}
\macroname{\textbackslash gre@stafflines}{}{gregoriotex-main.tex}
@@ -1130,39 +1155,39 @@ Contains the number of staff lines.
Typesets its numeric argument as an upper-case Roman numeral.
\begin{argtable}
- \#1 & integer & The number to typeset\\
+ \#1 & integer & The number to typeset\\
\end{argtable}
\macroname{\textbackslash gre@romannumeral@minuscule}{\#1}{gregoriotex-main.tex}
Typesets its numeric argument as a lower-case Roman numeral.
\begin{argtable}
- \#1 & integer & The number to typeset\\
+ \#1 & integer & The number to typeset\\
\end{argtable}
\macroname{\textbackslash gre@bar@space@suffix}{\#1\#2}{gregoriotex-symbols.tex}
Macro used to select the corresct suffix of the \verb=bar@x= spaces.
\begin{argtable}
- \#1 & \texttt{0} & emits nothing\\
- & \texttt{1} emits \texttt{text}\\
+ \#1 & \texttt{0} & emits nothing\\
+ & \texttt{1} emits \texttt{text}\\
\end{argtable}
\macroname{\textbackslash gre@drawadditionalline}{\#1\#2\#3\#4\#5\#6}{gregoriotex-signs.tex}
Workhorse function behind \verb=\GreDrawAdditionalLine=.
\begin{argtable}
- \#1 & \texttt{0} & Draw an over-the-staff ledger line. \\
- & \texttt{1} & Draw an under-the-staff ledger line. \\
- \#2 & distance & The length of the line, with TeX units, excluding any left or right distances coming from the rest of the arguments. \\
- \#3 & \texttt{0} & Start the line at this point. \\
- & \texttt{1} & Start the line to the left of this point by \verb=gre@dimen@additionallineswidth=. \\
- & \texttt{2} & Start the line to the left of this point by \#4. \\
- \#4 & distance & The distance to move left before starting the line if \#3 is \texttt{2}. \\
- \#5 & \texttt{0} & End the line exactly \#2 to the right of this point. \\
- & \texttt{1} & End the line \verb=gre@dimen@additionallineswidth= to the right of \#2 from this point. \\
- & \texttt{2} & End the line \#6 to the right of \#2 from this point. \\
- \#6 & distance & The distance to end the line after \#2 from this point if \#3 is \texttt{2}. \\
+ \#1 & \texttt{0} & Draw an over-the-staff ledger line. \\
+ & \texttt{1} & Draw an under-the-staff ledger line. \\
+ \#2 & distance & The length of the line, with TeX units, excluding any left or right distances coming from the rest of the arguments. \\
+ \#3 & \texttt{0} & Start the line at this point. \\
+ & \texttt{1} & Start the line to the left of this point by \verb=gre@dimen@additionallineswidth=. \\
+ & \texttt{2} & Start the line to the left of this point by \#4. \\
+ \#4 & distance & The distance to move left before starting the line if \#3 is \texttt{2}. \\
+ \#5 & \texttt{0} & End the line exactly \#2 to the right of this point. \\
+ & \texttt{1} & End the line \verb=gre@dimen@additionallineswidth= to the right of \#2 from this point. \\
+ & \texttt{2} & End the line \#6 to the right of \#2 from this point. \\
+ \#6 & distance & The distance to end the line after \#2 from this point if \#3 is \texttt{2}. \\
\end{argtable}
\macroname{\textbackslash gre@get@unkern@aftermora}{}{gregoriotex-signs.tex}
@@ -1175,21 +1200,21 @@ Macro which kerns between a punctum mora and a bar according to the setting in \
Workhorse behind \verb=\gresetgregoriofontscaled=.
\begin{argtable}
- \#1 & \textit{(omitted)} & Use the normal font and rule set.\\
- & \texttt{op} & Use the alternate Dominican font/rule set.\\
- \#2 & \texttt{greciliae} & Use the Greciliae font (default).\\
- & \texttt{gregorio} & Use the Gregorio font.\\
- & \texttt{parmesan} & Use the Parmesan font.\\
- \#3 & integer & the scaling factor\\
+ \#1 & \textit{(omitted)} & Use the normal font and rule set.\\
+ & \texttt{op} & Use the alternate Dominican font/rule set.\\
+ \#2 & \texttt{greciliae} & Use the Greciliae font (default).\\
+ & \texttt{gregorio} & Use the Gregorio font.\\
+ & \texttt{granapadano} & Use the Grana Padano font.\\
+ \#3 & integer & the scaling factor\\
\end{argtable}
\macroname{\textbackslash gre@calculate@barposition}{\#1\#2}{gregoriotex-spaces.tex}
Macro for calculating the position of the elements of a bar syllable using the new bar positioning algorithm.
\begin{argtable}
- \#1 & 0 & bar is not the end of a word\\
- & 1 & bar is the end of a word\\
- \#2 & integer & alignment type of the first glyph in the next syllable. See \nameref{notesalign}\\
+ \#1 & 0 & bar is not the end of a word\\
+ & 1 & bar is the end of a word\\
+ \#2 & integer & alignment type of the first glyph in the next syllable. See \nameref{notesalign}\\
\end{argtable}
\macroname{\textbackslash gre@newlinearg}{}{gregoriotex-syllable.tex}
@@ -1205,15 +1230,15 @@ Macro for storing original behavior of \verb=\gre@newlinecommon= so that it can
Macro to typeset a punctum mora.
\begin{argtable}
- \#1 & pitch & height of the punctum mora (one of the \verb=\gre@pitch@...= macros.\\
- \#2 & 0 & general case\\
- & 1 & make the punctum mora zero-width\\
- & 2 & shift the width of one punctum to the left\\
- & 3 & same as 2 but with ambitus of one\\
- \#3 & 1 & punctum mora in the note before the last note of a podatus, porrectus, or torculus resupinus\\
- & 0 & other cases\\
- \#4 & 1 & punctum inclinatum\\
- & 0 & other cases\\
+ \#1 & pitch & height of the punctum mora (one of the \verb=\gre@pitch@...= macros.\\
+ \#2 & 0 & general case\\
+ & 1 & make the punctum mora zero-width\\
+ & 2 & shift the width of one punctum to the left\\
+ & 3 & same as 2 but with ambitus of one\\
+ \#3 & 1 & punctum mora in the note before the last note of a podatus, porrectus, or torculus resupinus\\
+ & 0 & other cases\\
+ \#4 & 1 & punctum inclinatum\\
+ & 0 & other cases\\
\end{argtable}
@@ -1233,7 +1258,7 @@ Macro for closing the auxiliary file.
Macro for writing the auxiliary file.
\begin{argtable}
- \#1 & string & contents to be written to the auxiliary file\\
+ \#1 & string & contents to be written to the auxiliary file\\
\end{argtable}
@@ -1253,7 +1278,7 @@ The font for ancient notation.
The font for the default initial format in Plain \TeX.
\macroname{\textbackslash gre@fontfactor@...}{}{gregoriotex-main.tex}
-Macro holding the factor at which the font is loaded. There is one of these macros for each chant font which has been loaded with the ending of the macro name being the name of the chant font (gregorio, parmesan, \etc).
+Macro holding the factor at which the font is loaded. There is one of these macros for each chant font which has been loaded with the ending of the macro name being the name of the chant font (gregorio, granapadano, \etc).
\subsection{Character Reference Aliases}
@@ -1521,11 +1546,17 @@ Count which indicates whether the point-and-click functionality should be implem
\macroname{\textbackslash gre@variableheightexpansion}{}{gregoriotex-main.tex}
Count to indicated if the spacing between lines should be variable (\texttt{1}) or fixed (\texttt{0}). Not a boolean because it needs to be readable by Lua.
+\macroname{\textbackslash ifgre@usecustosalteration}{}{gregoriotex-signs.tex}
+Boolean which indicates whether alterations should be printed for custodes.
+
\macroname{\textbackslash ifgre@blockeolcustos}{}{gregoriotex-main.tex}
Boolean which indicates whether the custos at the end of the line should be blocked.
\macroname{\textbackslash ifgre@blockeolcustosbeforeeuouae}{}{gregoriotex-main.tex}
Boolean which indicates whether the custos at the end of the line should be blocked if a EUOUAE block immediately follows.
+\macroname{\textbackslash ifgre@blockeolcustos}{}{gregoriotex-main.tex}
+Boolean which indicates whether the custos at the end of the line should be blocked.
+
\macroname{\textbackslash ifgre@raggedbreakbeforeeuouae}{}{gregoriotex-main.tex}
Boolean which indicates whether an automatic line break immediately before a EUOUAE block should be ragged.
@@ -1619,6 +1650,30 @@ Boolean indicating that the current syllable had a forced center in the gabc whi
\macroname{\textbackslash ifgre@nextforcedcentering}{}{gregoriotex-syllable.tex}
Boolean indicating that the next syllable had a forced center in the gabc which is to be respected.
+\macroname{\textbackslash ifgre@unbreakableendofelement}{}{gregoriotex-main.tex}
+Boolean used by \verb=\GreEndOfElement= to store whether the line may be broken at that point.
+
+\macroname{\textbackslash gre@count@syllablenotes}{}{gregoriotex-syllable.tex}
+Count containing the number of notes in the syllable.
+
+\macroname{\textbackslash gre@count@unbreakabletotalnotes}{}{gregoriotex-syllable.tex}
+Count containing the minimum number of notes in the syllable before the syllable
+may be broken across lines.
+
+\macroname{\textbackslash gre@count@unbreakableinitialnotes}{}{gregoriotex-syllable.tex}
+Count containing the minimum number of notes at the start of a syllable that
+must be kept together when the syllable is broken across lines.
+
+\macroname{\textbackslash gre@count@unbreakablefinalnotes}{}{gregoriotex-syllable.tex}
+Count containing the minimum number of notes at the end of a syllable that must
+be kept together when the syllable is broken across lines.
+
+\macroname{\textbackslash ifgre@shownotes}{}{gregoriotex-syllable.tex}
+Boolean indicating whether the notes should be shown.
+
+\macroname{\textbackslash ifgre@showlyrics}{}{gregoriotex-syllable.tex}
+Boolean indicating whether the lyrics should be shown.
+
\subsection{Boxes}
@@ -1858,21 +1913,21 @@ These are the macros that Gregorio\TeX\ uses to manipulate the penalties in orde
Top level function that aliases \verb=\gre@truepenalty= or \verb=\gre@falsepenalty= according to whether penalties should be in play or not.
\begin{argtable}
- \#1 & integer & The penalty to be applied or gobbled\\
+ \#1 & integer & The penalty to be applied or gobbled\\
\end{argtable}
\macroname{\textbackslash gre@truepenalty}{\#1}{gregoriotex-signs.tex}
Alias for \verb=\penalty=.
\begin{argtable}
- \#1 & integer & The penalty to be applied\\
+ \#1 & integer & The penalty to be applied\\
\end{argtable}
\macroname{\textbackslash gre@falsepenalty}{\#1}{gregoriotex-signs.tex}
Macro to gobble (suppress) its argument.
\begin{argtable}
- \#1 & integer & The penalty to be gobbled\\
+ \#1 & integer & The penalty to be gobbled\\
\end{argtable}
\macroname{\textbackslash gre@cancelpenalties}{}{gregoriotex-spaces.tex}
@@ -1956,25 +2011,25 @@ rather than have multiple definitions.
\subsection{Note Alignment Type}\label{notesalign}
\rowcolors{1}{lightgray}{lightgray}
\begin{tabulary}{\textwidth}{cL}
- \multicolumn{2}{c}{Integer with the following possibilities:} \\
- \hline
- \texttt{0} & one-note glyph or more than two notes glyph except porrectus : here we must put the aligncenter in the middle of the first note\\
- \texttt{1} & two notes glyph (podatus is considered as a one-note glyph) : here we put the aligncenter in the middle of the glyph\\
- \texttt{2} & porrectus : has a special align center\\
- \texttt{3} & initio-debilis : same as 1 but the first note is much smaller\\
- \texttt{4} & case of a glyph starting with a quilisma\\
- \texttt{5} & case of a glyph starting with an oriscus\\
- \texttt{6} & case of a punctum inclinatum\\
- \texttt{7} & case of a stropha\\
- \texttt{8} & flexus with an ambitus of one\\
- \texttt{9} & flexus deminutus\\
- \texttt{10} & virgula\\
- \texttt{11} & divisio minima\\
- \texttt{12} & divisio minor\\
- \texttt{13} & divisio maior\\
- \texttt{14} & dominican bar\\
- \texttt{15} & divisio finalis\\
- \texttt{16} & no note
+ \multicolumn{2}{c}{Integer with the following possibilities:} \\
+ \hline
+ \texttt{0} & one-note glyph or more than two notes glyph except porrectus : here we must put the aligncenter in the middle of the first note\\
+ \texttt{1} & two notes glyph (podatus is considered as a one-note glyph) : here we put the aligncenter in the middle of the glyph\\
+ \texttt{2} & porrectus : has a special align center\\
+ \texttt{3} & initio-debilis : same as 1 but the first note is much smaller\\
+ \texttt{4} & case of a glyph starting with a quilisma\\
+ \texttt{5} & case of a glyph starting with an oriscus\\
+ \texttt{6} & case of a punctum inclinatum\\
+ \texttt{7} & case of a stropha\\
+ \texttt{8} & flexus with an ambitus of one\\
+ \texttt{9} & flexus deminutus\\
+ \texttt{10} & virgula\\
+ \texttt{11} & divisio minima\\
+ \texttt{12} & divisio minor\\
+ \texttt{13} & divisio maior\\
+ \texttt{14} & dominican bar\\
+ \texttt{15} & divisio finalis\\
+ \texttt{16} & no note
\end{tabulary}
\subsection{Episema Special}\label{EpisemaSpecial}
@@ -1986,62 +2041,62 @@ rather than have multiple definitions.
\hrule
\vspace{-0.8\baselineskip}
\begin{description}
- \item[FinalPunctum] Last note, which is a standard punctum (works with pes).
- \item[FinalDeminutus] Same, but the last note is a deminutus.
- \item[PenultBeforePunctumWide] The note before the last note, which is a standard punctum.
- \item[PenultBeforeDeminutus] Idem, but the note is the note preceding a deminutus.
- \item[AntepenultBeforePunctum] The note before the note before the last note (for porrectus flexus).
- \item[AntepenultBeforeDeminutus] Idem, but when the two last notes are a deminutus.
- \item[InitialPunctum] The first note, if it is a standard punctum.
- \item[InitioDebilis] The first note, if it is an initio debilis.
- \item[PorrNonAuctusInitialWide] first note of a non-auctus porrectus with a second ambitus of at least two.
- \item[PorrNonAuctusInitialOne] first note of a non-auctus porrectus with a second ambitus of one
- \item[PorrAuctusInitialAny] first note of an auctus porrectus, regardless of second ambitus
- \item[FinalInclinatum] punctum inclinatum as last note
- \item[FinalInclinatumDeminutus] punctum inclinatum deminutus as last note
- \item[FinalStropha] stropha as last note
- \item[FinalQuilisma] quilisma as last note
- \item[FinalOriscus] oriscus as last note
- \item[PenultBeforePunctumOne] second-to-last note, with a second ambitus of one, when last note is a standard punctum (like the second note of ghg)
- \item[FinalUpperPunctum] “upper smaller punctum” as last note (concerning simple podatus, podatus, and torculus resupinus)
- \item[InitialOriscus] oriscus as first note, disconnected from next note
- \item[InitialQuilisma] quilisma as first note, disconnected from next note
- \item[TorcResNonAuctusSecondWideWide] second note of a non-auctus torculus resupinus starting with a punctum, with a first and second ambitus of at least two
- \item[TorcResNonAuctusSecondOneWide] second note of a non-auctus torculus resupinus starting with a punctum, with a first ambitus of one and a second ambitus of at least two
- \item[TorcResDebilisNonAuctusSecondAnyWide] second note of a non-auctus torculus resupinus initio debilis with any first ambitus and a second ambitus of at least two
- \item[FinalLineaPunctum] linea punctum (cavum) as last note
- \item[BarStandard] standard bar
- \item[BarVirgula] virgula
- \item[BarDivisioFinalis] divisio finalis
- \item[TorcResQuilismaNonAuctusSecondWideWide] second note of a non-auctus torculus resupinus starting with a quilisma, with a first and second ambitus of at least two
- \item[TorcResOriscusNonAuctusSecondWideWide] second note of a non-auctus torculus resupinus starting with an oriscus, with a first and second ambitus of at least two
- \item[TorcResQuilismaNonAuctusSecondOneWide] second note of a non-auctus torculus resupinus starting with a quilisma, with a first ambitus of one and and second ambitus of at least two
- \item[TorcResOriscusNonAuctusSecondOneWide] second note of a non-auctus torculus resupinus starting with an oriscus, with a first ambitus of one and and second ambitus of at least two
- \item[TorcResNonAuctusSecondWideOne] second note of a non-auctus torculus resupinus starting with a punctum, with a first ambitus of at least two and a second ambitus of one
- \item[TorcResDebilisNonAuctusSecondAnyOne] second note of a non-auctus torculus resupinus initio debilis with any first ambitus and a second ambitus of one
- \item[TorcResQuilismaNonAuctusSecondWideOne] second note of a non-auctus torculus resupinus starting with a quilisma, with a first ambitus of at least two and a second ambitus of one
- \item[TorcResOriscusNonAuctusSecondWideOne] second note of a non-auctus torculus resupinus starting with an oriscus, with a first ambitus of at least two and a second ambitus of one
- \item[TorcResNonAuctusSecondOneOne] second note of a non-auctus torculus resupinus starting with a punctum, with a first and second ambitus of one
- \item[TorcResQuilismaNonAuctusSecondOneOne] second note of a non-auctus torculus resupinus starting with a quilisma, with a first and second ambitus of one
- \item[TorcResOriscusNonAuctusSecondOneOne] second note of a non-auctus torculus resupinus starting with an oriscus, with a first and second ambitus of one
- \item[TorcResAuctusSecondWideAny] second note of an auctus torculus resupinus starting with a punctum, with a first ambitus of at least two and any second ambitus
- \item[TorcResDebilisAuctusSecondAnyAny] second note of an auctus torculus resupinus initio debilis with any first and second ambitus
- \item[TorcResQuilismaAuctusSecondWideAny] second note of an auctus torculus resupinus starting with a quilisma, with a first ambitus of at least two and any second ambitus
- \item[TorcResOriscusAuctusSecondWideAny] second note of an auctus torculus resupinus starting with an oriscus, with a first ambitus of at least two and any second ambitus
- \item[TorcResAuctusSecondOneAny] second note of an auctus torculus resupinus starting with a punctum, with a first ambitus of one and any second ambitus
- \item[TorcResQuilismaAuctusSecondOneAny] second note of an auctus torculus resupinus starting with a quilisma, with a first ambitus of one and any second ambitus
- \item[TorcResOriscusAuctusSecondOneAny] second note of an auctus torculus resupinus starting with an oriscus, with a first ambitus of one and any second ambitus
- \item[ConnectedPenultBeforePunctumWide] second-to-last note connected to prior note, with a second ambitus of at least two, when last note is a standard punctum (like the second note of \textit{gig})
- \item[ConnectedPenultBeforePunctumOne] second-to-last note connected to prior note, with a second ambitus of one, when last note is a standard punctum (like the second note of \textit{gih})
- \item[InitialConnectedPunctum] standard punctum as first note, connected to next higher note
- \item[InitialConnectedVirga] “virga” as first note, connected to next lower note
- \item[InitialConnectedQuilisma] quilisma as first note, connected to next higher note
- \item[InitialConnectedOriscus] oriscus as first note, connected to next higher note
- \item[FinalConnectedPunctum] punctum as last note, connected to prior higher note
- \item[FinalConnectedAuctus] auctus as last note, connected to prior lower note
- \item[FinalVirgaAuctus] virga aucta as last note
- \item[FinalConnectedVirga] “virga” as last note, connected to prior lower note
- \item[InitialVirga] “virga” as first note, disconnected from next note
+ \item[FinalPunctum] Last note, which is a standard punctum (works with pes).
+ \item[FinalDeminutus] Same, but the last note is a deminutus.
+ \item[PenultBeforePunctumWide] The note before the last note, which is a standard punctum.
+ \item[PenultBeforeDeminutus] Idem, but the note is the note preceding a deminutus.
+ \item[AntepenultBeforePunctum] The note before the note before the last note (for porrectus flexus).
+ \item[AntepenultBeforeDeminutus] Idem, but when the two last notes are a deminutus.
+ \item[InitialPunctum] The first note, if it is a standard punctum.
+ \item[InitioDebilis] The first note, if it is an initio debilis.
+ \item[PorrNonAuctusInitialWide] first note of a non-auctus porrectus with a second ambitus of at least two.
+ \item[PorrNonAuctusInitialOne] first note of a non-auctus porrectus with a second ambitus of one
+ \item[PorrAuctusInitialAny] first note of an auctus porrectus, regardless of second ambitus
+ \item[FinalInclinatum] punctum inclinatum as last note
+ \item[FinalInclinatumDeminutus] punctum inclinatum deminutus as last note
+ \item[FinalStropha] stropha as last note
+ \item[FinalQuilisma] quilisma as last note
+ \item[FinalOriscus] oriscus as last note
+ \item[PenultBeforePunctumOne] second-to-last note, with a second ambitus of one, when last note is a standard punctum (like the second note of ghg)
+ \item[FinalUpperPunctum] “upper smaller punctum” as last note (concerning simple podatus, podatus, and torculus resupinus)
+ \item[InitialOriscus] oriscus as first note, disconnected from next note
+ \item[InitialQuilisma] quilisma as first note, disconnected from next note
+ \item[TorcResNonAuctusSecondWideWide] second note of a non-auctus torculus resupinus starting with a punctum, with a first and second ambitus of at least two
+ \item[TorcResNonAuctusSecondOneWide] second note of a non-auctus torculus resupinus starting with a punctum, with a first ambitus of one and a second ambitus of at least two
+ \item[TorcResDebilisNonAuctusSecondAnyWide] second note of a non-auctus torculus resupinus initio debilis with any first ambitus and a second ambitus of at least two
+ \item[FinalLineaPunctum] linea punctum (cavum) as last note
+ \item[BarStandard] standard bar
+ \item[BarVirgula] virgula
+ \item[BarDivisioFinalis] divisio finalis
+ \item[TorcResQuilismaNonAuctusSecondWideWide] second note of a non-auctus torculus resupinus starting with a quilisma, with a first and second ambitus of at least two
+ \item[TorcResOriscusNonAuctusSecondWideWide] second note of a non-auctus torculus resupinus starting with an oriscus, with a first and second ambitus of at least two
+ \item[TorcResQuilismaNonAuctusSecondOneWide] second note of a non-auctus torculus resupinus starting with a quilisma, with a first ambitus of one and and second ambitus of at least two
+ \item[TorcResOriscusNonAuctusSecondOneWide] second note of a non-auctus torculus resupinus starting with an oriscus, with a first ambitus of one and and second ambitus of at least two
+ \item[TorcResNonAuctusSecondWideOne] second note of a non-auctus torculus resupinus starting with a punctum, with a first ambitus of at least two and a second ambitus of one
+ \item[TorcResDebilisNonAuctusSecondAnyOne] second note of a non-auctus torculus resupinus initio debilis with any first ambitus and a second ambitus of one
+ \item[TorcResQuilismaNonAuctusSecondWideOne] second note of a non-auctus torculus resupinus starting with a quilisma, with a first ambitus of at least two and a second ambitus of one
+ \item[TorcResOriscusNonAuctusSecondWideOne] second note of a non-auctus torculus resupinus starting with an oriscus, with a first ambitus of at least two and a second ambitus of one
+ \item[TorcResNonAuctusSecondOneOne] second note of a non-auctus torculus resupinus starting with a punctum, with a first and second ambitus of one
+ \item[TorcResQuilismaNonAuctusSecondOneOne] second note of a non-auctus torculus resupinus starting with a quilisma, with a first and second ambitus of one
+ \item[TorcResOriscusNonAuctusSecondOneOne] second note of a non-auctus torculus resupinus starting with an oriscus, with a first and second ambitus of one
+ \item[TorcResAuctusSecondWideAny] second note of an auctus torculus resupinus starting with a punctum, with a first ambitus of at least two and any second ambitus
+ \item[TorcResDebilisAuctusSecondAnyAny] second note of an auctus torculus resupinus initio debilis with any first and second ambitus
+ \item[TorcResQuilismaAuctusSecondWideAny] second note of an auctus torculus resupinus starting with a quilisma, with a first ambitus of at least two and any second ambitus
+ \item[TorcResOriscusAuctusSecondWideAny] second note of an auctus torculus resupinus starting with an oriscus, with a first ambitus of at least two and any second ambitus
+ \item[TorcResAuctusSecondOneAny] second note of an auctus torculus resupinus starting with a punctum, with a first ambitus of one and any second ambitus
+ \item[TorcResQuilismaAuctusSecondOneAny] second note of an auctus torculus resupinus starting with a quilisma, with a first ambitus of one and any second ambitus
+ \item[TorcResOriscusAuctusSecondOneAny] second note of an auctus torculus resupinus starting with an oriscus, with a first ambitus of one and any second ambitus
+ \item[ConnectedPenultBeforePunctumWide] second-to-last note connected to prior note, with a second ambitus of at least two, when last note is a standard punctum (like the second note of \textit{gig})
+ \item[ConnectedPenultBeforePunctumOne] second-to-last note connected to prior note, with a second ambitus of one, when last note is a standard punctum (like the second note of \textit{gih})
+ \item[InitialConnectedPunctum] standard punctum as first note, connected to next higher note
+ \item[InitialConnectedVirga] “virga” as first note, connected to next lower note
+ \item[InitialConnectedQuilisma] quilisma as first note, connected to next higher note
+ \item[InitialConnectedOriscus] oriscus as first note, connected to next higher note
+ \item[FinalConnectedPunctum] punctum as last note, connected to prior higher note
+ \item[FinalConnectedAuctus] auctus as last note, connected to prior lower note
+ \item[FinalVirgaAuctus] virga aucta as last note
+ \item[FinalConnectedVirga] “virga” as last note, connected to prior lower note
+ \item[InitialVirga] “virga” as first note, disconnected from next note
\end{description}
\end{shaded*}
diff --git a/Master/texmf-dist/doc/luatex/gregoriotex/Gabc.tex b/Master/texmf-dist/doc/luatex/gregoriotex/Gabc.tex
index 2afcf872343..27ef298188b 100644
--- a/Master/texmf-dist/doc/luatex/gregoriotex/Gabc.tex
+++ b/Master/texmf-dist/doc/luatex/gregoriotex/Gabc.tex
@@ -46,54 +46,54 @@ Some headers have special meaning to Gregorio:
\begin{description}
\item[name] This is the name of the piece, in almost all cases the
- incipit, the first few words. In the case of the mass ordinary, the
- form as \texttt{Kyrie X Alme Pater} or \texttt{Sanctus XI} is
- recommended where appropriate. \textbf{This field is required.}
+ incipit, the first few words. In the case of the mass ordinary, the
+ form as \texttt{Kyrie X Alme Pater} or \texttt{Sanctus XI} is
+ recommended where appropriate. \textbf{This field is required.}
\item[gabc-copyright] This license is the copyright notice (in English) of the gabc file, as chosen by the person named in the transcriber field. As well as the notice itself, it may include a brief description of the license, such as public domain, CC-by-sa; for a list of commonly found open source licenses and exceptions, please see \url{https://spdx.org/licenses/}. A separate text file will be necessary for the complete legal license. For the legal issues about Gregorian chant scores, please see \url{http://gregorio-project.github.io/legalissues}. An example of this field would be:
- \begin{lstlisting}[autogobble]
- gabc-copyright: CC0-1.0 by Elie Roux, 2009 <http://creativecommons.org/publicdomain/zero/1.0/>;
- \end{lstlisting}
+ \begin{lstlisting}[autogobble]
+ gabc-copyright: CC0-1.0 by Elie Roux, 2009 <http://creativecommons.org/publicdomain/zero/1.0/>;
+ \end{lstlisting}
\item[score-copyright] This license is the copyright notice (in English) of the score itself from which the gabc was transcribed. Like the \texttt{gabc-copyright}, there may be a brief description of the license too. In unclear or complex cases it may be omitted; it is most suitable for use when the transcriber is the copyright holder and licensor of the score as well. One again, reading the page on legal issues (linked above) is recommended. An example of this field would be:
- \begin{lstlisting}[autogobble]
- score-copyright: (C) Abbaye de Solesmes, 1934;
- \end{lstlisting}
+ \begin{lstlisting}[autogobble]
+ score-copyright: (C) Abbaye de Solesmes, 1934;
+ \end{lstlisting}
\item[author] The author of the piece, if known; of course, the author of most traditional chant is not known.
\item[language] The language of the lyrics.
\item[oriscus-orientation] If \texttt{legacy}, the orientation of an unconnected oriscus must be set manually.
\item[mode] The mode of the piece. This should normally be an arabic
- number between 1 and 8, but may be any text required for unusual
- cases. The mode number will be converted to roman numerals and
- placed above the initial unless one of the following conditions are
- met:
- \begin{itemize}
- \item There is a \verb=\greannotation= defined immediatly prior to \verb=\gregorioscore=.
- \item The \texttt{annotation} header field is defined.
- \end{itemize}
+ number between 1 and 8, but may be any text required for unusual
+ cases. The mode number will be converted to roman numerals and
+ placed above the initial unless one of the following conditions are
+ met:
+ \begin{itemize}
+ \item There is a \verb=\greannotation= defined immediatly prior to \verb=\gregorioscore=.
+ \item The \texttt{annotation} header field is defined.
+ \end{itemize}
\item[mode-modifier] The mode ``modifier'' of the piece. This may be any
- \TeX\ code to typeset after the mode, if the mode is typeset. If the mode
- is not typeset, the mode-modifier will also not be typeset.
+ \TeX\ code to typeset after the mode, if the mode is typeset. If the mode
+ is not typeset, the mode-modifier will also not be typeset.
\item[mode-differentia] The mode or tone differentia of the piece. Typically,
- this expresses the variant of the psalm tone to use for the piece. This may
- be any \TeX\ code to typeset after the mode-modifier, if the mode is typeset.
- If the mode is not typeset, the mode-differentia will also not be typeset.
+ this expresses the variant of the psalm tone to use for the piece. This may
+ be any \TeX\ code to typeset after the mode-modifier, if the mode is typeset.
+ If the mode is not typeset, the mode-differentia will also not be typeset.
\item[annotation] The annotation is the text to appear above the
- initial letter. Usually this is an abbreviation of the office-part
- in the upper line, and an indication of the mode (and differentia
- for antiphons) in the lower. Either one or two annotation fields may
- be used; if two are used, the first is the upper line, the second
- the lower. Example:
- \begin{lstlisting}[autogobble]
- annotation:Ad Magnif.;
- annotation:VIII G;
- \end{lstlisting}
- Full \TeX\ markup is accepted:
- \begin{lstlisting}[autogobble]
- annotation:{\color{red}Ad Magnif.};
- annotation:{\color{red}VIII G};
- \end{lstlisting}
- If the user already defined annotation(s) in the main \TeX\ file via
- \verb=\greannotation= then the \texttt{annotation} header field will not
- overwrite that definition.
+ initial letter. Usually this is an abbreviation of the office-part
+ in the upper line, and an indication of the mode (and differentia
+ for antiphons) in the lower. Either one or two annotation fields may
+ be used; if two are used, the first is the upper line, the second
+ the lower. Example:
+ \begin{lstlisting}[autogobble]
+ annotation:Ad Magnif.;
+ annotation:VIII G;
+ \end{lstlisting}
+ Full \TeX\ markup is accepted:
+ \begin{lstlisting}[autogobble]
+ annotation:{\color{red}Ad Magnif.};
+ annotation:{\color{red}VIII G};
+ \end{lstlisting}
+ If the user already defined annotation(s) in the main \TeX\ file via
+ \verb=\greannotation= then the \texttt{annotation} header field will not
+ overwrite that definition.
\end{description}
Although gregorio ascribes no special meaning to them, other suggested headers are:
@@ -151,16 +151,16 @@ before it.
Some examples:
\begin{tabularx}{\textwidth}{l|l|l|X}
- \texttt{mode} & \texttt{mode-modifier} & \texttt{mode-differentia} & Result \\
- \hline
- \verb=6= & & & \writemode{\romannumeral 6}{}{} \\
- \verb=4A= & & & \writemode{\romannumeral 4\relax A}{}{} \\
- \verb=4a= & & & \writemode{\romannumeral 4\relax a}{}{} \\
- \verb=2*= & \verb=t.= & & \writemode{\romannumeral 2*}{\thinspace t.}{} \\
- \verb=5= & \verb=,\thinspace t.= & & \writemode{\romannumeral 5}{,\thinspace t.}{} \\
- \verb=7= & & {\scriptsize\verb=c\raise0.5ex\hbox{\small2}=} & \writemode{\romannumeral 7}{}{\thinspace c\raise0.5ex\hbox{\small2}} \\
- \verb=8= & \verb=-t.= & \verb=G*= & \writemode{\romannumeral 8}{-t.}{\thinspace G*} \\
- {\scriptsize\verb=t. irregularis=} & & & \writemode{t. irregularis}{}{} \\
+ \texttt{mode} & \texttt{mode-modifier} & \texttt{mode-differentia} & Result \\
+ \hline
+ \verb=6= & & & \writemode{\romannumeral 6}{}{} \\
+ \verb=4A= & & & \writemode{\romannumeral 4\relax A}{}{} \\
+ \verb=4a= & & & \writemode{\romannumeral 4\relax a}{}{} \\
+ \verb=2*= & \verb=t.= & & \writemode{\romannumeral 2*}{\thinspace t.}{} \\
+ \verb=5= & \verb=,\thinspace t.= & & \writemode{\romannumeral 5}{,\thinspace t.}{} \\
+ \verb=7= & & {\scriptsize\verb=c\raise0.5ex\hbox{\small2}=} & \writemode{\romannumeral 7}{}{\thinspace c\raise0.5ex\hbox{\small2}} \\
+ \verb=8= & \verb=-t.= & \verb=G*= & \writemode{\romannumeral 8}{-t.}{\thinspace G*} \\
+ {\scriptsize\verb=t. irregularis=} & & & \writemode{t. irregularis}{}{} \\
\end{tabularx}
\subsection{Neume Fusion}
@@ -169,16 +169,16 @@ Neume fusion allows for the composition of new shapes based on a set of
primitive neumes. These primitives are:
\begin{tabularx}{\textwidth}{l|l|X}
- Gabc & Description & Rules \\
- \hline
- \texttt{g} & punctum & fuses from higher or lower notes, and can fuse to higher or lower notes \\
- \texttt{go} & oriscus & may only fuse in the direction it was fused from \\
- \texttt{gO} & oriscus scapus & at the start only, next note must be higher to fuse \\
- \texttt{gw} & quilisma & does not fuse from anything, and only fuses to a higher note \\
- \texttt{gV} & virga reversa & at the start only, next note must be lower to fuse \\
- \texttt{gf} & flexus & if not at the end, must be followed by a higher note to fuse \\
- \texttt{gh} & pes & at the end only; in non-liquescent form, the previous note must be lower to fuse \\
- \texttt{gfg} & porrectus & at the end only, previous note must be lower to fuse \\
+ Gabc & Description & Rules \\
+ \hline
+ \texttt{g} & punctum & fuses from higher or lower notes, and can fuse to higher or lower notes \\
+ \texttt{go} & oriscus & may only fuse in the direction it was fused from \\
+ \texttt{gO} & oriscus scapus & at the start only, next note must be higher to fuse \\
+ \texttt{gw} & quilisma & does not fuse from anything, and only fuses to a higher note \\
+ \texttt{gV} & virga reversa & at the start only, next note must be lower to fuse \\
+ \texttt{gf} & flexus & if not at the end, must be followed by a higher note to fuse \\
+ \texttt{gh} & pes & at the end only; in non-liquescent form, the previous note must be lower to fuse \\
+ \texttt{gfg} & porrectus & at the end only, previous note must be lower to fuse \\
\end{tabularx}
Placing the \texttt{@} character between two notes will attempt to use the above
@@ -300,13 +300,13 @@ defaults not be satisfactory.
There are five tunable dimensions:
\begin{tabularx}{\textwidth}{l|X}
- Dimension & Description \\
- \hline
- \texttt{overhepisemalowshift} & The shift for positioning a horizontal episema that is over a note in a low position in the space\\
- \texttt{overhepisemahighhift} & The shift for positioning a horizontal episema that is over a note in a high position in the space\\
- \texttt{underhepisemalowshift} & The shift for positioning a horizontal episema that is under a note in a low position in the space\\
- \texttt{underhepisemahighhift} & The shift for positioning a horizontal episema that is under a note in a high position in the space\\
- \texttt{hepisemamiddleshift} & The shift for centering the horizontal episema in the middle of a space\\
+ Dimension & Description \\
+ \hline
+ \texttt{overhepisemalowshift} & The shift for positioning a horizontal episema that is over a note in a low position in the space\\
+ \texttt{overhepisemahighhift} & The shift for positioning a horizontal episema that is over a note in a high position in the space\\
+ \texttt{underhepisemalowshift} & The shift for positioning a horizontal episema that is under a note in a low position in the space\\
+ \texttt{underhepisemahighhift} & The shift for positioning a horizontal episema that is under a note in a high position in the space\\
+ \texttt{hepisemamiddleshift} & The shift for centering the horizontal episema in the middle of a space\\
\end{tabularx}
In addition, gabc allows you to adjust the positioning of a given episema by
@@ -319,16 +319,16 @@ The position specifier allows you to select which of the five tunable
dimensions will be used for the base position:
\begin{tabularx}{\textwidth}{l|X}
- Specifier & Base shift \\
- \hline
- \textit{omitted} & Use the default shift based on the position of the episema relative to the note\\
- \texttt{m} & Use \texttt{hepisemamiddleshift}.\\
- \texttt{l} & Use \texttt{overhepisemalowshift} or \texttt{underhepisemalowshift} depending on whether the episema is over or under the note.\\
- \texttt{h} & Use \texttt{overhepisemahighshift} or \texttt{underhepisemahighshift} depending on whether the episema is over or under the note.\\
- \texttt{ol} & Use \texttt{overhepisemalowshift}.\\
- \texttt{oh} & Use \texttt{overhepisemahighshift}.\\
- \texttt{ul} & Use \texttt{underhepisemalowshift}.\\
- \texttt{uh} & Use \texttt{underhepisemahighshift}.\\
+ Specifier & Base shift \\
+ \hline
+ \textit{omitted} & Use the default shift based on the position of the episema relative to the note\\
+ \texttt{m} & Use \texttt{hepisemamiddleshift}.\\
+ \texttt{l} & Use \texttt{overhepisemalowshift} or \texttt{underhepisemalowshift} depending on whether the episema is over or under the note.\\
+ \texttt{h} & Use \texttt{overhepisemahighshift} or \texttt{underhepisemahighshift} depending on whether the episema is over or under the note.\\
+ \texttt{ol} & Use \texttt{overhepisemalowshift}.\\
+ \texttt{oh} & Use \texttt{overhepisemahighshift}.\\
+ \texttt{ul} & Use \texttt{underhepisemalowshift}.\\
+ \texttt{uh} & Use \texttt{underhepisemahighshift}.\\
\end{tabularx}
The nudge is a \TeX{} dimension specification (number and units) that starts
diff --git a/Master/texmf-dist/doc/luatex/gregoriotex/GregorioNabcRef-4_1_1.pdf b/Master/texmf-dist/doc/luatex/gregoriotex/GregorioNabcRef-4_1_1.pdf
deleted file mode 100644
index c5e48fec2aa..00000000000
--- a/Master/texmf-dist/doc/luatex/gregoriotex/GregorioNabcRef-4_1_1.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/luatex/gregoriotex/GregorioNabcRef-4_2_0-beta1.pdf b/Master/texmf-dist/doc/luatex/gregoriotex/GregorioNabcRef-4_2_0-beta1.pdf
new file mode 100644
index 00000000000..a23fc2db5a1
--- /dev/null
+++ b/Master/texmf-dist/doc/luatex/gregoriotex/GregorioNabcRef-4_2_0-beta1.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/luatex/gregoriotex/GregorioNabcRef.tex b/Master/texmf-dist/doc/luatex/gregoriotex/GregorioNabcRef.tex
index 744e0fbd08a..3e648537460 100644
--- a/Master/texmf-dist/doc/luatex/gregoriotex/GregorioNabcRef.tex
+++ b/Master/texmf-dist/doc/luatex/gregoriotex/GregorioNabcRef.tex
@@ -6,7 +6,6 @@
\usepackage{fontspec}
\usepackage{luacode}
\usepackage{multicol}
-\usepackage{fixltx2e}
\usepackage{hyperref}
\usepackage{color}
\usepackage[allowdeprecated=false]{gregoriotex}
@@ -22,25 +21,25 @@
\huge{nabc language for gregorio}
\end{center}
- \vspace{1.5cm}
- \begingroup%
- \gredefbarredsymbol{Vbar}{V}{greVBar}{9.5}{0.05em}{0pt}%
- \greannotation{\scriptsize{AL}}
- \greannotation{\scriptsize{II}}
- \color{black!60}
- \setmainfont[SmallCapsFont=AlegreyaSC]{Alegreya}%
- \addtolength{\hsize}{-4cm}%
- \setlength{\fboxsep}{5mm}%
- \begin{list}{}{%
- \setlength{\topsep}{0pt}%
- \setlength{\leftmargin}{1.5cm}%
- \setlength{\rightmargin}{1.5cm}%
- \setlength{\listparindent}{0pt}%
- \setlength{\itemindent}{0pt}%
- \setlength{\parsep}{0pt}%
- }\item[]{\fbox{\parbox{\hsize}{\gregorioscore[f]{veni}}}}%
- \end{list}%
- \endgroup%
+ \vspace{1.5cm}
+ \begingroup%
+ \gredefbarredsymbol{Vbar}{V}{greVBar}{9.5}{0.05em}{0pt}%
+ \greannotation{\scriptsize{AL}}
+ \greannotation{\scriptsize{II}}
+ \color{black!60}
+ \setmainfont[SmallCapsFont=AlegreyaSC]{Alegreya}%
+ \addtolength{\hsize}{-4cm}%
+ \setlength{\fboxsep}{5mm}%
+ \begin{list}{}{%
+ \setlength{\topsep}{0pt}%
+ \setlength{\leftmargin}{1.5cm}%
+ \setlength{\rightmargin}{1.5cm}%
+ \setlength{\listparindent}{0pt}%
+ \setlength{\itemindent}{0pt}%
+ \setlength{\parsep}{0pt}%
+ }\item[]{\fbox{\parbox{\hsize}{\gregorioscore[f]{veni}}}}%
+ \end{list}%
+ \endgroup%
\vfill
\pagebreak
@@ -49,43 +48,43 @@
\gresetnabcfont{gregall}{8}
\def\neume{%
- \begingroup %
- \catcode`\~=12{}%
- \catcode`\@=11{}%
- \neumebody%
+ \begingroup %
+ \catcode`\~=12{}%
+ \catcode`\@=11{}%
+ \neumebody%
}
\def\neumebody#1{%
- \vbox{\hbox{\vspace{1mm}}\hbox{\noindent\GreNABCChar{#1}\hspace{1mm}}%
- \hbox{\vspace{1mm}}\hbox{\noindent{\fontsize{6}{6}\texttt{#1}\hspace{1mm}}}}%
- \endgroup %
+ \vbox{\hbox{\vspace{1mm}}\hbox{\noindent\GreNABCChar{#1}\hspace{1mm}}%
+ \hbox{\vspace{1mm}}\hbox{\noindent{\fontsize{6}{6}\texttt{#1}\hspace{1mm}}}}%
+ \endgroup %
}
\def\neumer{%
- \begingroup %
- \catcode`\~=12{}%
- \catcode`\@=11{}%
- \neumerbody%
+ \begingroup %
+ \catcode`\~=12{}%
+ \catcode`\@=11{}%
+ \neumerbody%
}
\def\neumerbody#1{%
- \vbox{\hbox{\vspace{1mm}}\hbox{\noindent\hspace{8mm}\GreNABCChar{#1}\hspace{1mm}}%
- \hbox{\vspace{1mm}}\hbox{\noindent{\fontsize{6}{6}\texttt{#1}\hspace{1mm}}}}%
- \endgroup %
+ \vbox{\hbox{\vspace{1mm}}\hbox{\noindent\hspace{8mm}\GreNABCChar{#1}\hspace{1mm}}%
+ \hbox{\vspace{1mm}}\hbox{\noindent{\fontsize{6}{6}\texttt{#1}\hspace{1mm}}}}%
+ \endgroup %
}
\def\sneume{%
- \begingroup %
- \catcode`\~=12{}%
- \catcode`\@=11{}%
- \sneumebody%
+ \begingroup %
+ \catcode`\~=12{}%
+ \catcode`\@=11{}%
+ \sneumebody%
}
\def\sneumebody#1{%
- \font\grefontnabc={name:gregall} at 6pt\grefontnabc\begin{gre@style@nabc}%
- \directlua{tex.sprint(gregoriotex.nabc_font_tables["gregall"]["\luatexluaescapestring{#1}"] or "")}%
- \end{gre@style@nabc}%
- \endgroup %
+ \font\grefontnabc={name:gregall} at 6pt\grefontnabc\begin{gre@style@nabc}%
+ \directlua{tex.sprint(gregoriotex.nabc_font_tables["gregall"]["\luatexluaescapestring{#1}"] or "")}%
+ \end{gre@style@nabc}%
+ \endgroup %
}
{
@@ -132,10 +131,10 @@ The \textit{horizontal spacing adjustment descriptor}
consists of a sequence of horizontal spacing adjustment characters
\texttt{/} and \texttt{`}.
\begin{itemize}
- \item \texttt{//} move by \texttt{nabclargerspace} skip to the right
- \item \texttt{/} move by \texttt{nabcinterelementspace} skip to the right
- \item \texttt{``} move by \texttt{nabclargerspace} skip to the left
- \item \texttt{`} move by \texttt{nabcinterelementspace} skip to the left
+ \item \texttt{//} move by \texttt{nabclargerspace} skip to the right
+ \item \texttt{/} move by \texttt{nabcinterelementspace} skip to the right
+ \item \texttt{``} move by \texttt{nabclargerspace} skip to the left
+ \item \texttt{`} move by \texttt{nabcinterelementspace} skip to the left
\end{itemize}
The \textit{complex glyph descriptor} consists of a \textit{glyph descriptor},
@@ -183,12 +182,12 @@ following table:
The \texttt{glyph modifiers} is a possibly empty sequence of following
characters optionally followed by a number:
\begin{itemize}
- \item \texttt{S} modification of the mark
- \item \texttt{G} modification of the grouping (neumatic break)
- \item \texttt{M} melodic modification
- \item \texttt{-} addition of episema
- \item \texttt{>} augmentive liquescence
- \item ~~\texttt{\~} diminutive liquescence
+ \item \texttt{S} modification of the mark
+ \item \texttt{G} modification of the grouping (neumatic break)
+ \item \texttt{M} melodic modification
+ \item \texttt{-} addition of episema
+ \item \texttt{>} augmentive liquescence
+ \item ~~\texttt{\~} diminutive liquescence
\end{itemize}
If Dom Cardine's table contains multiple glyphs with the same modifiers,
a positive number is added afterwards. E.g.\ for augmentive liquescent
@@ -215,12 +214,12 @@ optionally by a modifier letter from the following table and finally a mandatory
positive number of repetitions. If the modifier letter is missing, it is a
punctum.
\begin{itemize}
- \item \texttt{t} \sneume{ta} tractulus
- \item \texttt{u} \sneume{ta-} tractulus with episema
- \item \texttt{v} \sneume{suv1} tractulus with double episema
- \item \texttt{w} \sneume{gr} gravis
- \item \texttt{x} \sneume{st>} liquescens stropha
- \item \texttt{y} \sneume{gr-} gravis with episema
+ \item \texttt{t} \sneume{ta} tractulus
+ \item \texttt{u} \sneume{ta-} tractulus with episema
+ \item \texttt{v} \sneume{suv1} tractulus with double episema
+ \item \texttt{w} \sneume{gr} gravis
+ \item \texttt{x} \sneume{st>} liquescens stropha
+ \item \texttt{y} \sneume{gr-} gravis with episema
\end{itemize}
Only subpunctis are normally used in neume classification, the prepunctis is
a \texttt{nabc} concept to describe the rising sequence of punctis, tractulis
@@ -390,40 +389,40 @@ Table with nabc strings and corresponding gregall and gresgmodern glyphs:
\end{center}
\begin{luacode*}
- local i
- local last
- local key
- local str
- local keym
- local arr = {}
- for key in pairs(gregoriotex.nabc_font_tables['gregall']) do
- table.insert(arr, key)
- end
- for key in pairs(gregoriotex.nabc_font_tables['gresgmodern']) do
- table.insert(arr, key)
- end
- table.sort(arr)
- tex.sprint("\\begin{multicols}{3}\\noindent");
- for i, key in ipairs(arr) do
- if last ~= key then
- last = key
- keym = key:gsub("~","\\~{}")
- str = keym .. "\\hfill"
- if gregoriotex.nabc_font_tables['gregall'][key] then
- str = str .. "{\\font\\grefontnabc={name:gregall} at 8pt\\grefontnabc\\begin{gre@style@nabc}" .. gregoriotex.nabc_font_tables['gregall'][key] .. "\\end{gre@style@nabc}}"
- else
- str = str .. "{\\color{blue}missing}"
- end
- str = str .. "\\hfill"
- if gregoriotex.nabc_font_tables['gresgmodern'][key] then
- str = str .. "{\\font\\grefontnabc={name:gresgmodern} at 8pt\\grefontnabc\\begin{gre@style@nabc}" .. gregoriotex.nabc_font_tables['gresgmodern'][key] .. "\\end{gre@style@nabc}}"
- else
- str = str .. "{\\color{blue}missing}"
- end
- tex.sprint(str .. "\\\\")
- end
- end
- tex.sprint("\\end{multicols}")
+ local i
+ local last
+ local key
+ local str
+ local keym
+ local arr = {}
+ for key in pairs(gregoriotex.nabc_font_tables['gregall']) do
+ table.insert(arr, key)
+ end
+ for key in pairs(gregoriotex.nabc_font_tables['gresgmodern']) do
+ table.insert(arr, key)
+ end
+ table.sort(arr)
+ tex.sprint("\\begin{multicols}{3}\\noindent");
+ for i, key in ipairs(arr) do
+ if last ~= key then
+ last = key
+ keym = key:gsub("~","\\~{}")
+ str = keym .. "\\hfill"
+ if gregoriotex.nabc_font_tables['gregall'][key] then
+ str = str .. "{\\font\\grefontnabc={name:gregall} at 8pt\\grefontnabc\\begin{gre@style@nabc}" .. gregoriotex.nabc_font_tables['gregall'][key] .. "\\end{gre@style@nabc}}"
+ else
+ str = str .. "{\\color{blue}missing}"
+ end
+ str = str .. "\\hfill"
+ if gregoriotex.nabc_font_tables['gresgmodern'][key] then
+ str = str .. "{\\font\\grefontnabc={name:gresgmodern} at 8pt\\grefontnabc\\begin{gre@style@nabc}" .. gregoriotex.nabc_font_tables['gresgmodern'][key] .. "\\end{gre@style@nabc}}"
+ else
+ str = str .. "{\\color{blue}missing}"
+ end
+ tex.sprint(str .. "\\\\")
+ end
+ end
+ tex.sprint("\\end{multicols}")
\end{luacode*}
\vfill
diff --git a/Master/texmf-dist/doc/luatex/gregoriotex/GregorioRef-4_1_1.pdf b/Master/texmf-dist/doc/luatex/gregoriotex/GregorioRef-4_1_1.pdf
deleted file mode 100644
index 87cf517e6c6..00000000000
--- a/Master/texmf-dist/doc/luatex/gregoriotex/GregorioRef-4_1_1.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/luatex/gregoriotex/GregorioRef-4_2_0-beta1.pdf b/Master/texmf-dist/doc/luatex/gregoriotex/GregorioRef-4_2_0-beta1.pdf
new file mode 100644
index 00000000000..90cf661bbcd
--- /dev/null
+++ b/Master/texmf-dist/doc/luatex/gregoriotex/GregorioRef-4_2_0-beta1.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/luatex/gregoriotex/GregorioRef.lua b/Master/texmf-dist/doc/luatex/gregoriotex/GregorioRef.lua
index a846f99a79d..3f6e7e88099 100644
--- a/Master/texmf-dist/doc/luatex/gregoriotex/GregorioRef.lua
+++ b/Master/texmf-dist/doc/luatex/gregoriotex/GregorioRef.lua
@@ -27,6 +27,8 @@ local EXCLUDE = {
['.notdef'] = true,
['.null'] = true,
nonmarkingreturn = true,
+ AscendensOriscusLineBLTR = true,
+ AscendensOriscusLineTR = true,
PunctumAuctusLineBL = true,
PunctumLineBLBR = true,
PunctumLineBR = true,
@@ -34,7 +36,8 @@ local EXCLUDE = {
PunctumSmall = true,
FlexusLineBL = true,
FlexusAmOneLineBL = true,
- OriscusLineTR = true,
+ DescendensOriscusLineTR = true,
+ DescendensOriscusLineBLTR = true,
QuilismaLineTR = true,
VirgaLineBR = true,
SalicusOriscus = true,
@@ -58,6 +61,14 @@ local GABC = {
AccentusReversus = [[\excluded{g}r2]],
Ancus = [[gec]],
AncusLongqueue = [[hfd]],
+ AscendensOriscusCavum = [[go1r]],
+ AscendensOriscusCavumHole = [[\excluded{gor}]],
+ AscendensOriscus = [[go1]],
+ AscendensOriscusLineBL = [[\excluded{e}@go1]],
+ AscendensOriscusLineTL = [[\excluded{i}@go1]],
+ AscendensOriscusScapus = [[gO1]],
+ AscendensOriscusScapusLongqueue = [[hO1]],
+ AscendensOriscusScapusOpenqueue = [[aO1]],
AuctumMora = [[\excluded{g}.]],
BarBrace = [[\excluded{,}\_]],
CClef = [[c3]],
@@ -70,84 +81,84 @@ local GABC = {
CustosUpLong = [[f+]],
CustosUpMedium = [[a+]],
CustosUpShort = [[g+]],
+ DescendensOriscusCavum = [[go0r]],
+ DescendensOriscusCavumHole = [[\excluded{go0r}]],
+ DescendensOriscus = [[go0]],
+ DescendensOriscusLineBL = [[\excluded{e}@go0]],
+ DescendensOriscusLineTL = [[\excluded{i}@go0]],
+ DescendensOriscusScapus = [[gO0]],
+ DescendensOriscusScapusLongqueue = [[hO0]],
+ DescendensOriscusScapusOpenqueue = [[aO0]],
DivisioDominican = [[,3]],
DivisioDominicanAlt = [[,4]],
DivisioMaior = [[:]],
DivisioMinima = [[,]],
DivisioMinor = [[;]],
- FClef = [[f3]],
FClefChange = [[f3]],
+ FClef = [[f3]],
Flat = [[gx]],
FlatHole = [[\excluded{gx}]],
Flexus = [[ge]],
FlexusLongqueue = [[hf]],
FlexusNobar = [[@hf]],
FlexusOriscus = [[goe]],
+ FlexusOriscusInusitatus = [[go1e]],
FlexusOriscusScapus = [[gOe]],
+ FlexusOriscusScapusInusitatus = [[gO1e]],
+ FlexusOriscusScapusInusitatusLongqueue = [[hO1f]],
FlexusOriscusScapusLongqueue = [[hOf]],
LeadingOriscus = [[go\excluded{igig}]],
LeadingPunctum = [[g\excluded{igig}]],
LeadingQuilisma = [[gw\excluded{igig}]],
Linea = [[g=]],
- LineaPunctum = [[gR]],
LineaPunctumCavum = [[gr0]],
LineaPunctumCavumHole = [[\excluded{gr0}]],
+ LineaPunctum = [[gR]],
Natural = [[gy]],
NaturalHole = [[\excluded{gy}]],
- Oriscus = [[go1]],
- OriscusCavum = [[go1r]],
- OriscusCavumDeminutus = [[gor\~{}]],
+ Oriscus = [[go]], -- for Deminutus
+ OriscusCavum = [[gor]], -- for Deminutus
OriscusCavumDeminutusHole = [[\excluded{gor\~{}}]],
- OriscusCavumHole = [[\excluded{gor}]],
- OriscusCavumReversus = [[go0r]],
- OriscusCavumReversusHole = [[\excluded{go0r}]],
- OriscusLineBL = [[\excluded{e}@go]],
- OriscusReversus = [[go0]],
- OriscusReversusLineTL = [[\excluded{i}@go]],
- OriscusScapus = [[gO1]],
- OriscusScapusLongqueue = [[hO1]],
- OriscusScapusOpenqueue = [[aO1]],
- OriscusScapusReversus = [[gO0]],
- OriscusScapusReversusLongqueue = [[hO0]],
- OriscusScapusReversusOpenqueue = [[aO0]],
Pes = [[gi]],
PesQuadratum = [[gqi]],
PesQuadratumLongqueue = [[hqj]],
PesQuassus = [[goi]],
+ PesQuassusInusitatus = [[go0i]],
+ PesQuassusInusitatusLongqueue = [[ho0j]],
PesQuassusLongqueue = [[hoj]],
PesQuilisma = [[gwi]],
PesQuilismaQuadratum = [[gWi]],
PesQuilismaQuadratumLongqueue = [[hWj]],
- Porrectus = [[geg]],
PorrectusFlexus = [[gege]],
PorrectusFlexusNobar = [[\excluded{e}gege]],
+ Porrectus = [[geg]],
PorrectusLongqueue = [[hfh]],
PorrectusNobar = [[@geg]],
- Punctum = [[g]],
PunctumCavum = [[gr]],
PunctumCavumHole = [[\excluded{gr}]],
- PunctumCavumInclinatum = [[Gr]],
PunctumCavumInclinatumAuctus = [[Gr>]],
PunctumCavumInclinatumAuctusHole = [[\excluded{Gr>}]],
+ PunctumCavumInclinatum = [[Gr]],
PunctumCavumInclinatumHole = [[\excluded{Gr}]],
- PunctumInclinatum = [[G]],
+ Punctum = [[g]],
PunctumInclinatumAuctus = [[G>]],
+ PunctumInclinatum = [[G]],
PunctumLineBL = [[\excluded{e}@g]],
PunctumLineTL = [[\excluded{i}@g]],
Quilisma = [[gw]],
- RoundBrace = '[ob:1;6mm]',
RoundBraceDown = '[ub:1;6mm]',
- Salicus = [[giOk]],
+ RoundBrace = '[ob:1;6mm]',
SalicusFlexus = [[giOki]],
+ Salicus = [[giOk]],
SalicusLongqueue = [[hjOl]],
Scandicus = [[gik]],
Semicirculus = [[\excluded{g}r4]],
SemicirculusReversus = [[\excluded{g}r5]],
Sharp = [[g\#{}]],
SharpHole = [[\excluded{g\#{}}]],
- Stropha = [[gs]],
StrophaAucta = [[gs>]],
StrophaAuctaLongtail = [[hs>]],
+ Stropha = [[gs]],
Torculus = [[gig]],
TorculusLiquescens = [[gige]],
TorculusLiquescensQuilisma = [[gwige]],
@@ -179,41 +190,60 @@ local GABC_AMBITUS_ONE = {
local GABC_FUSE = {
Upper = {
Punctum = [[\excluded{e}@]],
- Oriscus = [[\excluded{e}@]],
+ AscendensOriscus = [[\excluded{e}@]],
+ DescendensOriscus = [[\excluded{e}@]],
Pes = [[\excluded{e}@]],
PesQuadratum = [[\excluded{e}@]],
PesQuadratumLongqueue = [[\excluded{f}@]],
PesQuadratumOpenqueue = { [[\excluded{a}@]], [[bq[ll:0]c]] },
PesQuassus = [[\excluded{e}@]],
+ PesQuassusInusitatus = [[\excluded{e}@]],
+ PesQuassusInusitatusLongqueue = [[\excluded{f}@]],
+ PesQuassusInusitatusOpenqueue = { [[\excluded{a}@]], [[bo0[ll:0]c]] },
PesQuassusLongqueue = [[\excluded{f}@]],
PesQuassusOpenqueue = { [[\excluded{a}@]], [[bo[ll:0]c]] },
Flexus = [[\excluded{e}@]],
+ FlexusOriscus = [[\excluded{e}@]],
+ FlexusOriscusInusitatus = [[\excluded{e}@]],
},
Lower = {
Punctum = [[\excluded{i}@]],
- Oriscus = [[\excluded{i}@]],
+ AscendensOriscus = [[\excluded{i}@]],
+ DescendensOriscus = [[\excluded{i}@]],
Pes = [[\excluded{i}@]],
PesQuadratum = [[\excluded{i}@]],
PesQuadratumLongqueue = [[\excluded{j}@]],
PesQuadratumOpenqueue = [[\excluded{b}@]],
PesQuassus = [[\excluded{i}@]],
+ PesQuassusInusitatus = [[\excluded{i}@]],
+ PesQuassusInusitatusLongqueue = [[\excluded{j}@]],
+ PesQuassusInusitatusOpenqueue = [[\excluded{b}@]],
+ PesQuassusLongqueue = [[\excluded{j}@]],
+ PesQuassusOpenqueue = [[\excluded{b}@]],
Flexus = [[\excluded{i}@]],
FlexusOriscus = [[\excluded{i}@]],
+ FlexusOriscusInusitatus = [[\excluded{i}@]],
},
Up = {
Punctum = [[\excluded{@ij}]],
- Oriscus = [[\excluded{@ij}]],
- OriscusScapus = [[\excluded{@ij}]],
- OriscusScapusLongqueue = [[\excluded{@jk}]],
+ AscendensOriscus = [[\excluded{@ij}]],
+ AscendensOriscusScapus = [[\excluded{@ij}]],
+ AscendensOriscusScapusLongqueue = [[\excluded{@jk}]],
+ DescendensOriscus = [[\excluded{@ij}]],
+ DescendensOriscusScapus = [[\excluded{@ij}]],
+ DescendensOriscusScapusLongqueue = [[\excluded{@jk}]],
Quilisma = [[\excluded{@ij}]],
Flexus = [[\excluded{@gi}]],
FlexusNobar = [[\excluded{@hj}]],
},
Down = {
Punctum = [[\excluded{@eg}]],
- Oriscus = [[\excluded{@eg}]],
- OriscusScapus = [[\excluded{@eg}]],
- OriscusScapusLongqueue = [[\excluded{@eg}]],
+ AscendensOriscus = [[\excluded{@eg}]],
+ AscendensOriscusScapus = [[\excluded{@eg}]],
+ AscendensOriscusScapusLongqueue = [[\excluded{@eg}]],
+ DescendensOriscus = [[\excluded{@eg}]],
+ DescendensOriscusScapus = [[\excluded{@eg}]],
+ DescendensOriscusScapusLongqueue = [[\excluded{@eg}]],
VirgaReversa = [[\excluded{@eg}]],
VirgaReversaLongqueue = [[\excluded{@fg}]],
},
@@ -234,11 +264,11 @@ local LIQUESCENCE = {
GregorioRef = {}
-function GregorioRef.emit_score_glyphs(cs_greciliae, cs_gregorio, cs_parmesan)
+function GregorioRef.emit_score_glyphs(cs_greciliae, cs_gregorio, cs_granapadano)
local common_glyphs = {}
local greciliae = {}
local gregorio = {}
- local parmesan = {}
+ local granapadano = {}
local function index_font(csname, variants, common)
local glyphs = font.fonts[font.id(csname)].resources.unicodes
@@ -264,7 +294,7 @@ function GregorioRef.emit_score_glyphs(cs_greciliae, cs_gregorio, cs_parmesan)
index_font(cs_greciliae, greciliae, common_glyphs)
index_font(cs_gregorio, gregorio)
- index_font(cs_parmesan, parmesan)
+ index_font(cs_granapadano, granapadano)
local function maybe_emit_glyph(csname, variants, name, variant)
local cp = variants[name]
@@ -307,10 +337,10 @@ function GregorioRef.emit_score_glyphs(cs_greciliae, cs_gregorio, cs_parmesan)
end
tex.sprint(string.format(
[[{\scriptsize %s{\bfseries %s}{\itshape %s}%s%s}&{\ttfamily\small %s}&{\%s\char%d}&{\%s\char%d}&{\%s\char%d}&]],
- fusion, shape, ambitus, debilis, liquescence, gabc or '', cs_greciliae, char, cs_gregorio, char, cs_parmesan, char
+ fusion, shape, ambitus, debilis, liquescence, gabc or '', cs_greciliae, char, cs_gregorio, char, cs_granapadano, char
))
local emitted = false, i, variant
- for i, variant in ipairs(sort_unique_keys{greciliae[name], gregorio[name], parmesan[name]}) do
+ for i, variant in ipairs(sort_unique_keys{greciliae[name], gregorio[name], granapadano[name]}) do
if emitted then
tex.sprint([[\nopagebreak&&&&&]])
else
@@ -319,7 +349,7 @@ function GregorioRef.emit_score_glyphs(cs_greciliae, cs_gregorio, cs_parmesan)
tex.sprint(string.format([[{\scriptsize %s}]], variant))
maybe_emit_glyph('greciliae', greciliae, name, variant)
maybe_emit_glyph('gregorio', gregorio, name, variant)
- maybe_emit_glyph('parmesan', parmesan, name, variant)
+ maybe_emit_glyph('granapadano', granapadano, name, variant)
tex.print([[\\]])
end
if not emitted then
@@ -336,8 +366,8 @@ function GregorioRef.emit_score_glyphs(cs_greciliae, cs_gregorio, cs_parmesan)
local post_word_liquescentia = P'Nothing' + P'Deminutus' + P'Ascendens' +
P'Descendens'
local liquescentia = post_word_liquescentia + P'Up' + P'Down'
- local word = (majuscule * minuscule^0) - fusion - ambitus - debilis -
- post_word_liquescentia
+ local word = ((majuscule * minuscule^0) - fusion - ambitus - debilis -
+ post_word_liquescentia) + ((P'Ascendens' + P'Descendens') * P'Oriscus')
local liquescence = debilis^-1 * liquescentia^-1
local pattern = C(fusion^-1) * C(word^1) * C(ambitus^0) * C(debilis^-1) *
C(liquescentia^-1) * -1
diff --git a/Master/texmf-dist/doc/luatex/gregoriotex/GregorioRef.tex b/Master/texmf-dist/doc/luatex/gregoriotex/GregorioRef.tex
index 5253fd8c896..406769c2064 100644
--- a/Master/texmf-dist/doc/luatex/gregoriotex/GregorioRef.tex
+++ b/Master/texmf-dist/doc/luatex/gregoriotex/GregorioRef.tex
@@ -4,26 +4,26 @@
\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX}
\setmainfont[
- BoldFont=LinLibertineOZ,
- BoldItalicFont=LinLibertineOZI,
- SmallCapsFont=LinLibertineO,
- SmallCapsFeatures={Letters=SmallCaps},
+ BoldFont=LinLibertineOZ,
+ BoldItalicFont=LinLibertineOZI,
+ SmallCapsFont=LinLibertineO,
+ SmallCapsFeatures={Letters=SmallCaps},
]{LinuxLibertineO}
\setsansfont[Extension=.otf,
- BoldFont=LinBiolinum_RB,
- ItalicFont=LinBiolinum_RI,
- BoldItalicFont=LinBiolinum_RB,% fake
- SmallCapsFont=LinBiolinum_R,
- SmallCapsFeatures={Letters=SmallCaps},
- ]{LinBiolinum_R}
+ BoldFont=LinBiolinum_RB,
+ ItalicFont=LinBiolinum_RI,
+ BoldItalicFont=LinBiolinum_RB,% fake
+ SmallCapsFont=LinBiolinum_R,
+ SmallCapsFeatures={Letters=SmallCaps},
+ ]{LinBiolinum_R}
\setmonofont[Extension=.otf,
- ItalicFont=Inconsolatazi4-Regular,
- BoldFont=Inconsolatazi4-Bold,
- BoldItalicFont=Inconsolatazi4-Bold,
- AutoFakeSlant,
- ItalicFeatures={FakeSlant},
- BoldItalicFeatures={FakeSlant}
- ]{Inconsolatazi4-Regular}
+ ItalicFont=Inconsolatazi4-Regular,
+ BoldFont=Inconsolatazi4-Bold,
+ BoldItalicFont=Inconsolatazi4-Bold,
+ AutoFakeSlant,
+ ItalicFeatures={FakeSlant},
+ BoldItalicFeatures={FakeSlant}
+ ]{Inconsolatazi4-Regular}
\usepackage{enumitem}
\usepackage{xspace}
\usepackage{multicol}
@@ -46,9 +46,9 @@
\usepackage{minted} % must be after xcolor
\makeatletter
\@ifpackagelater{minted}{2013/12/21}{%
- \newminted{latex}{autogobble,bgcolor=lightgray}%
+ \newminted{latex}{autogobble,bgcolor=lightgray}%
}{%
- \newminted{latex}{gobble=2,bgcolor=lightgray}%
+ \newminted{latex}{gobble=2,bgcolor=lightgray}%
}%
\makeatother
%\newminted{gabc}{bgcolor=lightgray} % can this be done?
@@ -83,59 +83,68 @@
\def\subsubsection{\filbreak\breakablefalse\oldsubsubsection}
\newcommand{\macroname}[3]{%
- \vspace{3.25ex plus 1ex minus .2ex}%
- \ifbreakable%
- \filbreak%
- \else%
- \breakabletrue%
- \fi%
- \makebox[\linewidth]{\ttfamily\bfseries #1#2%
- \hspace{\fill}\normalfont\itshape #3}%
- \vspace{1.5ex plus .2ex}%
- \index{#1}}
- %\addcontentsline{toc}{subsubsection}{#1}}
+ \vspace{3.25ex plus 1ex minus .2ex}%
+ \ifbreakable%
+ \filbreak%
+ \else%
+ \global\breakabletrue%
+ \fi%
+ \makebox[\linewidth]{\ttfamily\bfseries #1#2%
+ \hspace{\fill}\normalfont\itshape #3}%
+ \vspace{1.5ex plus .2ex}%
+ \index{#1}}
+ %\addcontentsline{toc}{subsubsection}{#1}}
\newcommand{\optional}[1]{{\itshape #1}}
\lstset{backgroundcolor=\color{lightgray},
- basicstyle=\small\ttfamily,
- numbers=left,
- numberstyle=\footnotesize,
- stepnumber=1,
- numbersep=5pt}
+ basicstyle=\small\ttfamily,
+ numbers=left,
+ numberstyle=\footnotesize,
+ stepnumber=1,
+ numbersep=5pt}
% for the character tables
\font\greciliae = {name:greciliae} at 1000000 sp\relax
\font\gregorio = {name:gregorio} at 1000000 sp\relax
-\font\parmesan = {name:parmesan} at 1000000 sp\relax
+\font\granapadano = {name:granapadano} at 1000000 sp\relax
\font\greciliaeOp = {name:greciliae-op} at 1000000 sp\relax
\font\gregorioOp = {name:gregorio-op} at 1000000 sp\relax
-\font\parmesanOp = {name:parmesan-op} at 1000000 sp\relax
+\font\granapadanoOp = {name:granapadano-op} at 1000000 sp\relax
\font\greextra = {name:greextra} at 12 pt\relax
\newcommand{\excluded}[1]{{\tiny\itshape #1}}
\newenvironment{argtable}{%
- \bigskip\rowcolors{1}{lightgray}{lightgray}
- \tabularx{\textwidth}{clX}
- Arg & Value & Description \\
- \hline}%
- {\endtabularx\bigskip}
+ \bigskip\rowcolors{1}{lightgray}{lightgray}
+ \tabularx{\textwidth}{clX}
+ Arg & Value & Description \\
+ \hline}%
+ {\endtabularx\bigskip}
\makeatletter%
\NewDocumentEnvironment{gdimension}{m}{\macroname{#1}{}{gsp-default.tex}}{%
- \gre@rubberpermit{#1}%
- \ifgre@rubber%
- Default: \directlua{GregorioRef.emit_dimension("\luaescapestring{\csname gre@space@skip@#1\endcsname}")}
- \else%
- Default: \directlua{GregorioRef.emit_dimension("\luaescapestring{\csname gre@space@dimen@#1\endcsname}")}
- \fi%
+ \gre@rubberpermit{#1}%
+ \ifgre@rubber%
+ Default: \directlua{GregorioRef.emit_dimension("\luaescapestring{\csname gre@space@skip@#1\endcsname}")}
+ \else%
+ Default: \directlua{GregorioRef.emit_dimension("\luaescapestring{\csname gre@space@dimen@#1\endcsname}")}
+ \fi%
+}
+
+\NewDocumentEnvironment{gcount}{m}{\macroname{#1}{}{gsp-default.tex}}{%
+
+ Default: \expandafter$\expandafter\the\csname gre@space@count@#1\endcsname$
}
\newcommand{\writemode}[3]{%
- \gre@style@modeline #1\endgre@style@modeline %
- \gre@style@modemodifier #2\endgre@style@modemodifier %
- \gre@style@modedifferentia #3\endgre@style@modedifferentia %
+ \gre@style@modeline #1\endgre@style@modeline %
+ \gre@style@modemodifier #2\endgre@style@modemodifier %
+ \gre@style@modedifferentia #3\endgre@style@modedifferentia %
+}
+
+\newcommand{\getgrecount}[1]{%
+ \the\csname gre@count@#1\endcsname%
}
\makeatother
@@ -144,42 +153,42 @@
\begin{document}
\begin{titlepage}
- \begin{center}
- \Huge
- \textcolor{myred}{Gregorio} and \textcolor{myred}{Gregorio\TeX}:
-
- Tools for gregorian score engraving.
-
- \vspace{1cm}
-
- \large Version \textbf{4.1.1}, 10 March 2016 %% PARSE_VERSION_DATE
-
- \vspace{1.5cm}
- \end{center}
- \gresetlinecolor{gregoriocolor}
- \grechangestyle{lowchoralsign}{\cminfamily\small}%
- \grechangestyle{highchoralsign}{\cminfamily\small}%
- \def\GreStar{\greheightstar}%
- \greannotation{\scriptsize Comm.}%
- \greannotation{\scriptsize VII}%
- \begingroup%
- \color{black!60}%
- \setmainfont[SmallCapsFont=AlegreyaSC]{Alegreya}%
- \newlength{\mini}%
- \setlength{\mini}{\hsize}%
- \addtolength{\mini}{-4cm}%
- \setlength{\fboxsep}{5mm}%
- \hfill\fbox{\parbox{\mini}{\gregorioscore[f]{factus}}}\hfill%
- \endgroup
- \begin{center}
- \vspace{1.5cm}%
- \href{http://gregorio-project.github.io/}{Homepage}
-
- Source code available on
- \href{http://github.com/gregorio-project/gregorio}{GitHub}.
- \end{center}
-
- \vspace{2cm}
+ \begin{center}
+ \Huge
+ \textcolor{myred}{Gregorio} and \textcolor{myred}{Gregorio\TeX}:
+
+ Tools for gregorian score engraving.
+
+ \vspace{1cm}
+
+ \large Version \textbf{4.2.0-beta1}, 27 April 2016 %% PARSE_VERSION_DATE
+
+ \vspace{1.5cm}
+ \end{center}
+ \gresetlinecolor{gregoriocolor}
+ \grechangestyle{lowchoralsign}{\cminfamily\small}%
+ \grechangestyle{highchoralsign}{\cminfamily\small}%
+ \def\GreStar{\greheightstar}%
+ \greannotation{\scriptsize Comm.}%
+ \greannotation{\scriptsize VII}%
+ \begingroup%
+ \color{black!60}%
+ \setmainfont[SmallCapsFont=AlegreyaSC]{Alegreya}%
+ \newlength{\mini}%
+ \setlength{\mini}{\hsize}%
+ \addtolength{\mini}{-4cm}%
+ \setlength{\fboxsep}{5mm}%
+ \hfill\fbox{\parbox{\mini}{\gregorioscore[f]{factus}}}\hfill%
+ \endgroup
+ \begin{center}
+ \vspace{1.5cm}%
+ \href{http://gregorio-project.github.io/}{Homepage}
+
+ Source code available on
+ \href{http://github.com/gregorio-project/gregorio}{GitHub}.
+ \end{center}
+
+ \vspace{2cm}
\end{titlepage}
\cleardoublepage
@@ -196,8 +205,8 @@ The following sections document the macros available in the Gregorio\TeX{} packa
Description of macro.
\begin{argtable}
- Arg \# & Data type & Description of argument\\
- Arg \# & \texttt{keyword} & Description of the setting the keyword corresponds to
+ Arg \# & Data type & Description of argument\\
+ Arg \# & \texttt{keyword} & Description of the setting the keyword corresponds to
\end{argtable}
The source file where the macro is defined is included for developers
@@ -220,12 +229,12 @@ Macros are divided into three groups:
\include{Gabc}
\begin{appendices}
- %Turn off the \filbreak stuff to prevent it from messing up the long tables in the appendicies
- \let\subsection\oldsubsection
- \let\subsubsection\oldsubsubsection
- \renewcommand\thetable{\thesection\arabic{table}}
- \renewcommand\thefigure{\thesection\arabic{figure}}
- \include{Appendix_Font_Tables}
+ %Turn off the \filbreak stuff to prevent it from messing up the long tables in the appendicies
+ \let\subsection\oldsubsection
+ \let\subsubsection\oldsubsubsection
+ \renewcommand\thetable{\thesection\arabic{table}}
+ \renewcommand\thefigure{\thesection\arabic{figure}}
+ \include{Appendix_Font_Tables}
\end{appendices}
\addcontentsline{toc}{section}{Index}
diff --git a/Master/texmf-dist/fonts/source/gregoriotex/parmesan-base.sfd b/Master/texmf-dist/fonts/source/gregoriotex/granapadano-base.sfd
index 0e8ec0f6162..0b45b903602 100644
--- a/Master/texmf-dist/fonts/source/gregoriotex/parmesan-base.sfd
+++ b/Master/texmf-dist/fonts/source/gregoriotex/granapadano-base.sfd
@@ -1,7 +1,7 @@
SplineFontDB: 3.0
-FontName: parmesan
-FullName: parmesan
-FamilyName: parmesan
+FontName: granapadano
+FullName: granapadano
+FamilyName: granapadano
Weight: Medium
Copyright: LilyPond's pretty-but-neat music font, adapted to the Gregorio Project.\nCopyright (C) 2002-2006 Juergen Reuter <reuter@ipd.uka.de>\nCopyright (C) 2007-2015 The Gregorio Project (see CONTRIBUTORS.md)\nThis file is part of Gregorio.\n\n<<GPLV3>>
UComments: "2007-4-12: Created."
@@ -19,7 +19,7 @@ OS2Version: 0
OS2_WeightWidthSlopeOnly: 0
OS2_UseTypoMetrics: 1
CreationTime: 1176402534
-ModificationTime: 1455123162
+ModificationTime: 1457825253
OS2TypoAscent: 0
OS2TypoAOffset: 1
OS2TypoDescent: 0
@@ -37,13 +37,12 @@ OS2Vendor: 'PfEd'
MarkAttachClasses: 1
DEI: 91125
Encoding: Custom
-Compacted: 1
UnicodeInterp: none
NameList: Adobe Glyph List
DisplaySize: -96
AntiAlias: 1
FitToEm: 1
-WinInfo: 0 19 8
+WinInfo: 0 17 16
BeginPrivate: 0
EndPrivate
Grid
@@ -59,7 +58,7 @@ Grid
22 -700 l 0
EndSplineSet
TeXData: 1 0 0 346030 173015 115343 0 1048576 115343 783286 444596 497025 792723 393216 433062 380633 303038 157286 324010 404750 52429 2506097 1059062 262144
-BeginChars: 375 152
+BeginChars: 160 160
StartChar: Punctum
Encoding: 0 -1 0
@@ -174,7 +173,7 @@ EndSplineSet
Validated: 1
EndChar
-StartChar: OriscusReversus
+StartChar: DescendensOriscus
Encoding: 4 -1 4
Width: 192
Flags: HW
@@ -197,7 +196,7 @@ EndSplineSet
Validated: 1
EndChar
-StartChar: Oriscus
+StartChar: AscendensOriscus
Encoding: 5 -1 5
Width: 192
Flags: HW
@@ -360,7 +359,7 @@ Validated: 33
EndChar
StartChar: DivisioMinima
-Encoding: 14 -1 12
+Encoding: 12 -1 12
AltUni2: 000050.ffffffff.0
Width: 19
VWidth: 2048
@@ -379,7 +378,7 @@ Validated: 1
EndChar
StartChar: DivisioMinor
-Encoding: 15 -1 13
+Encoding: 13 -1 13
Width: 19
VWidth: 2048
Flags: HW
@@ -397,7 +396,7 @@ Validated: 1
EndChar
StartChar: pesdeminutus
-Encoding: 17 -1 14
+Encoding: 14 -1 14
Width: 161
Flags: HW
HStem: 536.228 15 221.228 15 -93.7716 15 -408.772 15
@@ -418,7 +417,7 @@ Validated: 1
EndChar
StartChar: auctusd1
-Encoding: 18 -1 15
+Encoding: 15 -1 15
Width: 161
Flags: HW
HStem: -474.265 17.1 -115.165 17.1 243.935 17.1 603.035 17.1
@@ -441,7 +440,7 @@ Validated: 1
EndChar
StartChar: auctusa1
-Encoding: 19 -1 16
+Encoding: 16 -1 16
Width: 161
Flags: HW
HStem: -473.75 17.1 -114.65 17.1 244.45 17.1 603.55 17.1
@@ -465,7 +464,7 @@ Validated: 1
EndChar
StartChar: mdeminutus
-Encoding: 20 -1 17
+Encoding: 17 -1 17
Width: 161
Flags: HW
HStem: -476.55 17.1 -117.45 17.1 241.65 17.1 600.75 17.1
@@ -486,7 +485,7 @@ Validated: 1
EndChar
StartChar: Natural
-Encoding: 21 -1 18
+Encoding: 18 -1 18
Width: 141
VWidth: 1129
Flags: HW
@@ -519,7 +518,7 @@ Validated: 1
EndChar
StartChar: FClef
-Encoding: 22 -1 19
+Encoding: 19 -1 19
Width: 299
VWidth: 1119
Flags: HW
@@ -560,7 +559,7 @@ Validated: 33
EndChar
StartChar: CustosDownLong
-Encoding: 23 -1 20
+Encoding: 20 -1 20
Width: 76
VWidth: 1160
Flags: HW
@@ -583,7 +582,7 @@ Validated: 1
EndChar
StartChar: CustosDownShort
-Encoding: 24 -1 21
+Encoding: 21 -1 21
Width: 76
VWidth: 1151
Flags: HW
@@ -606,7 +605,7 @@ Validated: 1
EndChar
StartChar: CustosUpLong
-Encoding: 25 -1 22
+Encoding: 22 -1 22
Width: 76
VWidth: 1119
Flags: HW
@@ -629,7 +628,7 @@ Validated: 1
EndChar
StartChar: CustosUpShort
-Encoding: 26 -1 23
+Encoding: 23 -1 23
Width: 76
VWidth: 1128
Flags: HW
@@ -652,7 +651,7 @@ Validated: 1
EndChar
StartChar: PunctumLineBR
-Encoding: 27 -1 24
+Encoding: 24 -1 24
Width: 161
Flags: HW
HStem: -476.55 17.1 -117.45 17.1 241.65 17.1 600.75 17.1
@@ -673,7 +672,7 @@ Validated: 1
EndChar
StartChar: PunctumLineBL
-Encoding: 28 -1 25
+Encoding: 25 -1 25
Width: 161
Flags: HW
HStem: -476.55 17.1 -117.45 17.1 241.65 17.1 600.75 17.1
@@ -694,7 +693,7 @@ Validated: 1
EndChar
StartChar: PunctumLineTL
-Encoding: 29 -1 26
+Encoding: 26 -1 26
Width: 161
Flags: HW
HStem: -476.55 17.1 -117.45 17.1 241.65 17.1 600.75 17.1
@@ -716,7 +715,7 @@ Validated: 1
EndChar
StartChar: PunctumLineTR
-Encoding: 30 -1 27
+Encoding: 27 -1 27
Width: 161
Flags: HW
HStem: -476.55 17.1 -117.45 17.1 241.65 17.1 600.75 17.1
@@ -738,7 +737,7 @@ Validated: 1
EndChar
StartChar: PunctumLineBLBR
-Encoding: 31 -1 28
+Encoding: 28 -1 28
Width: 161
Flags: HW
HStem: -476.55 17.1 -117.45 17.1 241.65 17.1 600.75 17.1
@@ -759,7 +758,7 @@ Validated: 1
EndChar
StartChar: base6
-Encoding: 32 -1 29
+Encoding: 29 -1 29
Width: 161
Flags: HW
HStem: -476.55 17.1 -117.45 17.1 241.65 17.1 600.75 17.1
@@ -782,7 +781,7 @@ Validated: 1
EndChar
StartChar: line2
-Encoding: 33 -1 30
+Encoding: 30 -1 30
Width: 22
VWidth: 2048
Flags: HW
@@ -800,7 +799,7 @@ Validated: 1
EndChar
StartChar: line3
-Encoding: 34 -1 31
+Encoding: 31 -1 31
Width: 22
VWidth: 2048
Flags: HW
@@ -818,7 +817,7 @@ Validated: 1
EndChar
StartChar: line4
-Encoding: 35 -1 32
+Encoding: 32 -1 32
Width: 22
VWidth: 2048
Flags: HW
@@ -836,7 +835,7 @@ Validated: 1
EndChar
StartChar: line5
-Encoding: 36 -1 33
+Encoding: 33 -1 33
Width: 22
VWidth: 2048
Flags: HW
@@ -854,7 +853,7 @@ Validated: 1
EndChar
StartChar: QuilismaLineTR
-Encoding: 40 -1 34
+Encoding: 34 -1 34
Width: 161
Flags: HW
HStem: -477.6 17.1 -118.5 17.1 240.6 17.1 599.7 17.1
@@ -889,8 +888,8 @@ EndSplineSet
Validated: 33
EndChar
-StartChar: OriscusLineTR
-Encoding: 41 -1 35
+StartChar: AscendensOriscusLineTR
+Encoding: 35 -1 35
Width: 192
Flags: HW
HStem: -473.822 17.1 -114.722 17.1 244.378 17.1 603.478 17.1
@@ -901,7 +900,7 @@ SplineSet
3.43359 -42.0859 0.0136719 19.4736 0.0136719 37.7139 c 0
0.0136719 55.9541 1.15332 83.3135 5.71387 100.414 c 0
12.5537 127.774 33.0732 148.294 59.293 148.294 c 0
- 90.0732 148.294 109.455 114.854 140.233 115.234 c 4
+ 90.0732 148.294 109.455 114.854 140.233 115.234 c 0
167.571 115.571 167.143 145.714 169.991 151.141 c 1
182.571 150.857 179.714 151.143 192 151.148 c 1
194.839 132.545 192 79.4765 192 69.625 c 0
@@ -914,7 +913,7 @@ Validated: 33
EndChar
StartChar: pbase
-Encoding: 42 -1 36
+Encoding: 36 -1 36
Width: 161
Flags: HW
HStem: 536.228 15 221.228 15 -93.7716 15 -408.772 15
@@ -935,7 +934,7 @@ Validated: 1
EndChar
StartChar: idebilis
-Encoding: 43 -1 37
+Encoding: 37 -1 37
Width: 97
VWidth: 2048
Flags: HW
@@ -959,7 +958,7 @@ Validated: 1
EndChar
StartChar: deminutus
-Encoding: 44 -1 38
+Encoding: 38 -1 38
Width: 97
VWidth: 2048
Flags: HW
@@ -982,7 +981,7 @@ Validated: 1
EndChar
StartChar: rdeminutus
-Encoding: 45 -1 39
+Encoding: 39 -1 39
Width: 97
VWidth: 2048
Flags: HW
@@ -1005,7 +1004,7 @@ Validated: 1
EndChar
StartChar: PunctumAuctusLineBL
-Encoding: 46 -1 40
+Encoding: 40 -1 40
Width: 141
Flags: HW
HStem: -409 15 -94 15 221 15 536 15
@@ -1029,7 +1028,7 @@ Validated: 33
EndChar
StartChar: auctusa2
-Encoding: 47 -1 41
+Encoding: 41 -1 41
Width: 161
Flags: HW
HStem: -473.75 17.1 -114.65 17.1 244.45 17.1 603.55 17.1
@@ -1053,7 +1052,7 @@ Validated: 1
EndChar
StartChar: porrectus1
-Encoding: 48 -1 42
+Encoding: 42 -1 42
Width: 490
VWidth: 2048
Flags: HW
@@ -1075,7 +1074,7 @@ Validated: 1
EndChar
StartChar: porrectus2
-Encoding: 49 -1 43
+Encoding: 43 -1 43
Width: 575
VWidth: 2048
Flags: HW
@@ -1097,7 +1096,7 @@ Validated: 1
EndChar
StartChar: porrectus3
-Encoding: 50 -1 44
+Encoding: 44 -1 44
Width: 650
VWidth: 2048
Flags: HW
@@ -1119,7 +1118,7 @@ Validated: 1
EndChar
StartChar: porrectus4
-Encoding: 51 -1 45
+Encoding: 45 -1 45
Width: 740
VWidth: 2048
Flags: HW
@@ -1141,7 +1140,7 @@ Validated: 1
EndChar
StartChar: porrectus5
-Encoding: 52 -1 46
+Encoding: 46 -1 46
Width: 931
VWidth: 2048
Flags: HW
@@ -1163,7 +1162,7 @@ Validated: 1
EndChar
StartChar: porrectusflexus1
-Encoding: 53 -1 47
+Encoding: 47 -1 47
Width: 340
VWidth: 2048
Flags: HW
@@ -1185,7 +1184,7 @@ Validated: 1
EndChar
StartChar: porrectusflexus2
-Encoding: 54 -1 48
+Encoding: 48 -1 48
Width: 428
VWidth: 2048
Flags: HW
@@ -1207,7 +1206,7 @@ Validated: 1
EndChar
StartChar: porrectusflexus3
-Encoding: 55 -1 49
+Encoding: 49 -1 49
Width: 586
VWidth: 2048
Flags: HW
@@ -1229,7 +1228,7 @@ Validated: 1
EndChar
StartChar: porrectusflexus4
-Encoding: 56 -1 50
+Encoding: 50 -1 50
Width: 670
VWidth: 2048
Flags: HW
@@ -1251,7 +1250,7 @@ Validated: 1
EndChar
StartChar: porrectusflexus5
-Encoding: 57 -1 51
+Encoding: 51 -1 51
Width: 931
VWidth: 2048
Flags: HW
@@ -1273,7 +1272,7 @@ Validated: 1
EndChar
StartChar: PesQuilismaOneNothing
-Encoding: 58 -1 52
+Encoding: 52 -1 52
Width: 161
Flags: HW
HStem: -409 15 -94 15 221 15 536 15
@@ -1315,7 +1314,7 @@ Validated: 1
EndChar
StartChar: StrophaAucta
-Encoding: 59 -1 53
+Encoding: 53 -1 53
Width: 168
Flags: HW
HStem: -472.609 17.1 -113.509 17.1 245.591 17.1 604.691 17.1
@@ -1340,7 +1339,7 @@ Validated: 33
EndChar
StartChar: PunctumInclinatumAuctus
-Encoding: 60 -1 54
+Encoding: 54 -1 54
Width: 178
Flags: HW
HStem: -472.63 17.1 -113.53 17.1 245.57 17.1 604.67 17.1
@@ -1367,7 +1366,7 @@ Validated: 33
EndChar
StartChar: AuctumMora
-Encoding: 62 -1 55
+Encoding: 55 -1 55
Width: 71
VWidth: 2679
Flags: HW
@@ -1385,7 +1384,7 @@ Validated: 1
EndChar
StartChar: VEpisema
-Encoding: 64 -1 56
+Encoding: 57 -1 56
Width: 36
VWidth: 1384
Flags: HW
@@ -1405,7 +1404,7 @@ Validated: 1
EndChar
StartChar: PunctumDeminutus
-Encoding: 65 -1 57
+Encoding: 58 -1 57
Width: 97
VWidth: 2048
Flags: HW
@@ -1427,7 +1426,7 @@ Validated: 1
EndChar
StartChar: hepisema_base
-Encoding: 66 -1 58
+Encoding: 59 -1 58
Width: 1
VWidth: 1972
Flags: HW
@@ -1444,7 +1443,7 @@ EndSplineSet
EndChar
StartChar: PesOneNothing
-Encoding: 67 -1 59
+Encoding: 60 -1 59
Width: 161
Flags: HW
HStem: -409 15 -94 15 221 15 536 15
@@ -1472,7 +1471,7 @@ Validated: 1
EndChar
StartChar: CustosUpMedium
-Encoding: 68 -1 60
+Encoding: 61 -1 60
Width: 76
VWidth: 1124
Flags: HW
@@ -1495,7 +1494,7 @@ Validated: 1
EndChar
StartChar: CustosDownMedium
-Encoding: 69 -1 61
+Encoding: 62 -1 61
Width: 76
VWidth: 1155
Flags: HW
@@ -1518,7 +1517,7 @@ Validated: 1
EndChar
StartChar: Accentus
-Encoding: 70 -1 62
+Encoding: 63 -1 62
Width: 99
VWidth: 1594
Flags: HW
@@ -1540,7 +1539,7 @@ Validated: 1
EndChar
StartChar: AccentusReversus
-Encoding: 71 -1 63
+Encoding: 64 -1 63
Width: 99
VWidth: 1594
Flags: HW
@@ -1562,7 +1561,7 @@ Validated: 1
EndChar
StartChar: SemicirculusReversus
-Encoding: 72 -1 64
+Encoding: 65 -1 64
Width: 125
VWidth: 1583
Flags: HW
@@ -1582,7 +1581,7 @@ Validated: 1
EndChar
StartChar: Semicirculus
-Encoding: 73 -1 65
+Encoding: 66 -1 65
Width: 124
VWidth: 1606
Flags: HW
@@ -1602,7 +1601,7 @@ Validated: 1
EndChar
StartChar: Circulus
-Encoding: 74 -1 66
+Encoding: 67 -1 66
Width: 124
VWidth: 1594
Flags: HW
@@ -1625,7 +1624,7 @@ Validated: 1
EndChar
StartChar: CClefChange
-Encoding: 75 -1 67
+Encoding: 68 -1 67
Width: 143
VWidth: 1107
Flags: W
@@ -1654,7 +1653,7 @@ Validated: 33
EndChar
StartChar: FClefChange
-Encoding: 76 -1 68
+Encoding: 69 -1 68
Width: 299
VWidth: 1119
Flags: W
@@ -1695,7 +1694,7 @@ Validated: 33
EndChar
StartChar: VEpisema.circumflexus
-Encoding: 77 -1 69
+Encoding: 70 -1 69
Width: 108
VWidth: 2048
Flags: HW
@@ -1719,7 +1718,7 @@ Validated: 1
EndChar
StartChar: PunctumCavum
-Encoding: 78 -1 70
+Encoding: 71 -1 70
Width: 161
VWidth: 1139
Flags: HW
@@ -1749,7 +1748,7 @@ Validated: 1
EndChar
StartChar: LineaPunctum
-Encoding: 79 -1 71
+Encoding: 72 -1 71
Width: 258
VWidth: 1139
Flags: HW
@@ -1785,7 +1784,7 @@ Validated: 1
EndChar
StartChar: LineaPunctumCavum
-Encoding: 80 -1 72
+Encoding: 73 -1 72
Width: 258
VWidth: 1139
Flags: HW
@@ -1829,7 +1828,7 @@ Validated: 1
EndChar
StartChar: PunctumSmall
-Encoding: 81 -1 73
+Encoding: 74 -1 73
Width: 151
Flags: HW
HStem: -409 15 -94 15 221 15 536 15
@@ -1850,7 +1849,7 @@ Validated: 1
EndChar
StartChar: hepisemaright
-Encoding: 83 -1 74
+Encoding: 76 -1 74
Width: 2
VWidth: 1968
Flags: HW
@@ -1867,7 +1866,7 @@ EndSplineSet
EndChar
StartChar: mpdeminutus
-Encoding: 84 -1 75
+Encoding: 77 -1 75
Width: 161
Flags: HW
HStem: 536.497 15 221.497 15 -93.503 15 -408.503 15
@@ -1888,7 +1887,7 @@ Validated: 1
EndChar
StartChar: PunctumDescendens
-Encoding: 85 -1 76
+Encoding: 78 -1 76
Width: 161
Flags: HW
HStem: -409 15 -94 15 221 15 536 15
@@ -1911,7 +1910,7 @@ Validated: 1
EndChar
StartChar: PunctumAscendens
-Encoding: 86 -1 77
+Encoding: 79 -1 77
Width: 161
Flags: HW
HStem: -409 15 -94 15 221 15 536 15
@@ -1934,7 +1933,7 @@ Validated: 1
EndChar
StartChar: mnbdeminutus
-Encoding: 87 -1 78
+Encoding: 80 -1 78
Width: 161
Flags: HW
HStem: -409 15 -94 15 221 15 536 15
@@ -1955,7 +1954,7 @@ Validated: 1
EndChar
StartChar: mnbpdeminutus
-Encoding: 88 -1 79
+Encoding: 81 -1 79
Width: 161
Flags: HW
HStem: 536.058 15 221.058 15 -93.9416 15 -408.942 15
@@ -1976,7 +1975,7 @@ Validated: 1
EndChar
StartChar: porrectusflexusnb1
-Encoding: 89 -1 80
+Encoding: 82 -1 80
Width: 340
VWidth: 2048
Flags: HW
@@ -1997,7 +1996,7 @@ Validated: 1
EndChar
StartChar: porrectusflexusnb2
-Encoding: 90 -1 81
+Encoding: 83 -1 81
Width: 428
VWidth: 2048
Flags: HW
@@ -2018,7 +2017,7 @@ Validated: 1
EndChar
StartChar: porrectusflexusnb3
-Encoding: 91 -1 82
+Encoding: 84 -1 82
Width: 586
VWidth: 2048
Flags: HW
@@ -2039,7 +2038,7 @@ Validated: 1
EndChar
StartChar: porrectusflexusnb4
-Encoding: 92 -1 83
+Encoding: 85 -1 83
Width: 670
VWidth: 2048
Flags: HW
@@ -2060,7 +2059,7 @@ Validated: 1
EndChar
StartChar: porrectusflexusnb5
-Encoding: 93 -1 84
+Encoding: 86 -1 84
Width: 931
VWidth: 2048
Flags: HW
@@ -2081,7 +2080,7 @@ Validated: 1
EndChar
StartChar: p2base
-Encoding: 95 -1 85
+Encoding: 88 -1 85
Width: 161
Flags: W
HStem: 536.228 15 221.228 15 -93.7716 15 -408.772 15
@@ -2102,7 +2101,7 @@ Validated: 1
EndChar
StartChar: msdeminutus
-Encoding: 97 -1 86
+Encoding: 89 -1 86
Width: 161
Flags: HW
HStem: 536.058 15 221.058 15 -93.9416 15 -408.942 15
@@ -2125,7 +2124,7 @@ Validated: 1
EndChar
StartChar: mademinutus
-Encoding: 98 -1 87
+Encoding: 90 -1 87
Width: 161
Flags: HW
HStem: -409 15 -94 15 221 15 536 15
@@ -2148,7 +2147,7 @@ Validated: 1
EndChar
StartChar: PunctumCavumHole
-Encoding: 99 -1 88
+Encoding: 91 -1 88
Width: 161
VWidth: 1139
Flags: HW
@@ -2168,7 +2167,7 @@ Validated: 1
EndChar
StartChar: LineaPunctumCavumHole
-Encoding: 100 -1 89
+Encoding: 92 -1 89
Width: 258
VWidth: 1139
Flags: HW
@@ -2188,7 +2187,7 @@ Validated: 1
EndChar
StartChar: NaturalHole
-Encoding: 101 -1 90
+Encoding: 93 -1 90
Width: 141
VWidth: 1129
Flags: HW
@@ -2206,7 +2205,7 @@ Validated: 1
EndChar
StartChar: FlatHole
-Encoding: 102 -1 91
+Encoding: 94 -1 91
Width: 159
VWidth: 1120
Flags: HW
@@ -2225,8 +2224,8 @@ EndSplineSet
Validated: 1
EndChar
-StartChar: odbase
-Encoding: 103 -1 92
+StartChar: DescendensOriscusLineBR
+Encoding: 95 -1 92
Width: 192
Flags: HW
HStem: -473.822 17.1 -114.722 17.1 244.378 17.1 603.478 17.1
@@ -2245,13 +2244,12 @@ SplineSet
158.94 148.294 179.46 127.774 186.3 100.414 c 0
190.86 83.3135 192 55.9541 192 37.7139 c 0
192 24.5596 192 -21.5 192 -42 c 5
- 182.5 -42 179 -42 170 -42 c 5
+ 170 -42 l 5
EndSplineSet
-Validated: 1
EndChar
StartChar: DivisioDominican
-Encoding: 104 -1 93
+Encoding: 96 -1 93
Width: 22
VWidth: 2048
Flags: W
@@ -2269,7 +2267,7 @@ Validated: 1
EndChar
StartChar: DivisioDominicanAlt
-Encoding: 105 -1 94
+Encoding: 97 -1 94
Width: 22
VWidth: 2048
Flags: W
@@ -2287,7 +2285,7 @@ Validated: 1
EndChar
StartChar: Sharp
-Encoding: 106 -1 95
+Encoding: 98 -1 95
Width: 258
VWidth: 2048
Flags: W
@@ -2350,7 +2348,7 @@ Validated: 1
EndChar
StartChar: SharpHole
-Encoding: 107 -1 96
+Encoding: 99 -1 96
Width: 258
VWidth: 2048
Flags: W
@@ -2368,7 +2366,7 @@ Validated: 1
EndChar
StartChar: Linea
-Encoding: 108 -1 97
+Encoding: 100 -1 97
Width: 431
VWidth: 2612
Flags: W
@@ -2396,7 +2394,7 @@ Validated: 1
EndChar
StartChar: RoundBrace
-Encoding: 109 -1 98
+Encoding: 101 -1 98
Width: 937
VWidth: 2048
Flags: W
@@ -2422,7 +2420,7 @@ Validated: 1
EndChar
StartChar: CurlyBrace
-Encoding: 110 -1 99
+Encoding: 102 -1 99
Width: 1006
VWidth: 2048
Flags: W
@@ -2450,7 +2448,7 @@ Validated: 1
EndChar
StartChar: BarBrace
-Encoding: 111 -1 100
+Encoding: 103 -1 100
Width: 591
VWidth: 2048
Flags: W
@@ -2476,7 +2474,7 @@ Validated: 1
EndChar
StartChar: OriscusDeminutus
-Encoding: 112 -1 101
+Encoding: 104 -1 101
Width: 192
Flags: HW
HStem: -473.822 17.1 -114.722 17.1 244.378 17.1 603.478 17.1
@@ -2500,32 +2498,31 @@ EndSplineSet
Validated: 33
EndChar
-StartChar: OriscusLineBL
-Encoding: 113 -1 102
+StartChar: AscendensOriscusLineBL
+Encoding: 105 -1 102
Width: 192
Flags: HW
HStem: -473.822 17.1 -114.722 17.1 244.378 17.1 603.478 17.1
LayerCount: 2
Fore
SplineSet
-177.181 151.148 m 4
- 188.58 151.148 192 89.5889 192 71.3486 c 4
- 192 53.1084 190.86 25.749 186.3 8.64844 c 4
- 179.46 -18.7119 158.94 -39.2314 132.721 -39.2314 c 4
- 101.94 -39.2314 82.5586 -5.79199 51.7803 -6.17188 c 4
+177.181 151.148 m 0
+ 188.58 151.148 192 89.5889 192 71.3486 c 0
+ 192 53.1084 190.86 25.749 186.3 8.64844 c 0
+ 179.46 -18.7119 158.94 -39.2314 132.721 -39.2314 c 0
+ 101.94 -39.2314 82.5586 -5.79199 51.7803 -6.17188 c 0
24.4424 -6.50879 24.8711 -36.6523 22.0225 -42.0791 c 5
- 9.44238 -41.7949 12.2998 -42.0811 0.0136719 -42.0859 c 5
- -2.8252 -23.4824 0.0136719 29.5859 0.0136719 39.4375 c 4
- 0.0136719 57.6777 2.75977 85.0283 6.18066 102.129 c 4
- 13.0205 129.488 34.6807 150.009 59.7598 150.009 c 4
- 91.6807 150.009 109.92 116.948 140.7 116.948 c 4
- 174.9 116.948 168.061 151.148 177.181 151.148 c 4
+ 0.0136719 -42.0859 l 5
+ -2.8252 -23.4824 0.0136719 29.5859 0.0136719 39.4375 c 0
+ 0.0136719 57.6777 2.75977 85.0283 6.18066 102.129 c 0
+ 13.0205 129.488 34.6807 150.009 59.7598 150.009 c 0
+ 91.6807 150.009 109.92 116.948 140.7 116.948 c 0
+ 174.9 116.948 168.061 151.148 177.181 151.148 c 0
EndSplineSet
-Validated: 33
EndChar
-StartChar: SalicusOriscus
-Encoding: 114 -1 103
+StartChar: AscendensOriscusLineBLTR
+Encoding: 106 -1 103
Width: 192
Flags: HW
HStem: -473.822 17.1 -114.722 17.1 244.378 17.1 603.478 17.1
@@ -2554,7 +2551,7 @@ Validated: 33
EndChar
StartChar: hepisemaleft
-Encoding: 82 -1 104
+Encoding: 75 -1 104
Width: 1
VWidth: 1968
Flags: HW
@@ -2571,7 +2568,7 @@ EndSplineSet
EndChar
StartChar: RoundBraceDown
-Encoding: 130 -1 105
+Encoding: 107 -1 105
Width: 937
Flags: HW
LayerCount: 2
@@ -2595,7 +2592,7 @@ Validated: 1
EndChar
StartChar: VirgaReversaDescendens_op
-Encoding: 131 -1 106
+Encoding: 108 -1 106
Width: 161
Flags: HW
HStem: -409 15 -94 15 221 15 536 15
@@ -2618,7 +2615,7 @@ Validated: 1
EndChar
StartChar: VirgaReversaLongqueueDescendens_op
-Encoding: 132 -1 107
+Encoding: 109 -1 107
Width: 161
Flags: HW
HStem: -409 15 -94 15 221 15 536 15
@@ -2641,7 +2638,7 @@ Validated: 1
EndChar
StartChar: VirgaReversaAscendens_op
-Encoding: 133 -1 108
+Encoding: 110 -1 108
Width: 161
Flags: HW
HStem: -409 15 -94 15 221 15 536 15
@@ -2664,7 +2661,7 @@ Validated: 1
EndChar
StartChar: VirgaReversaLongqueueAscendens_op
-Encoding: 134 -1 109
+Encoding: 111 -1 109
Width: 161
Flags: HW
HStem: -409 15 -94 15 221 15 536 15
@@ -2687,7 +2684,7 @@ Validated: 1
EndChar
StartChar: PunctumDescendens_op
-Encoding: 137 -1 110
+Encoding: 112 -1 110
Width: 161
Flags: HW
HStem: -409 15 -94 15 221 15 536 15
@@ -2711,7 +2708,7 @@ Validated: 1
EndChar
StartChar: PunctumAscendens_op
-Encoding: 138 -1 111
+Encoding: 113 -1 111
Width: 161
Flags: HW
HStem: -409 15 -94 15 221 15 536 15
@@ -2734,7 +2731,7 @@ Validated: 1
EndChar
StartChar: auctusd1_op
-Encoding: 139 -1 112
+Encoding: 114 -1 112
Width: 161
Flags: HW
HStem: -409 15 -94 15 221 15 536 15
@@ -2758,7 +2755,7 @@ Validated: 1
EndChar
StartChar: auctusa1_op
-Encoding: 140 -1 113
+Encoding: 115 -1 113
Width: 161
Flags: HW
HStem: -409 15 -94 15 221 15 536 15
@@ -2782,7 +2779,7 @@ Validated: 1
EndChar
StartChar: auctusa2_op
-Encoding: 141 -1 114
+Encoding: 116 -1 114
Width: 161
Flags: HW
HStem: -409 15 -94 15 221 15 536 15
@@ -2806,7 +2803,7 @@ Validated: 1
EndChar
StartChar: PunctumAuctusLineBL_op
-Encoding: 142 -1 115
+Encoding: 117 -1 115
Width: 141
Flags: HW
HStem: -409 15 -94 15 221 15 536 15
@@ -2830,7 +2827,7 @@ Validated: 33
EndChar
StartChar: pesdeminutus_op
-Encoding: 143 -1 116
+Encoding: 118 -1 116
Width: 161
Flags: HW
HStem: 536.228 15 221.228 15 -93.7716 15 -408.772 15
@@ -2853,7 +2850,7 @@ Validated: 1
EndChar
StartChar: PunctumCavumInclinatum
-Encoding: 144 -1 117
+Encoding: 119 -1 117
Width: 178
Flags: HW
HStem: -476.247 17.1 -117.147 17.1 241.953 17.1 601.053 17.1
@@ -2891,7 +2888,7 @@ Validated: 1
EndChar
StartChar: PunctumCavumInclinatumHole
-Encoding: 145 -1 118
+Encoding: 120 -1 118
Width: 178
Flags: HW
HStem: -476.247 17.1 -117.147 17.1 241.953 17.1 601.053 17.1
@@ -2916,7 +2913,7 @@ Validated: 1
EndChar
StartChar: PunctumCavumInclinatumAuctus
-Encoding: 146 -1 119
+Encoding: 121 -1 119
Width: 178
Flags: HW
HStem: -476.247 17.1 -117.147 17.1 241.953 17.1 601.053 17.1
@@ -2956,7 +2953,7 @@ Validated: 33
EndChar
StartChar: PunctumCavumInclinatumAuctusHole
-Encoding: 147 -1 120
+Encoding: 122 -1 120
Width: 178
Flags: HW
HStem: -476.247 17.1 -117.147 17.1 241.953 17.1 601.053 17.1
@@ -2980,8 +2977,8 @@ EndSplineSet
Validated: 1
EndChar
-StartChar: OriscusReversusLineTLBR
-Encoding: 148 -1 121
+StartChar: DescendensOriscusLineTLBR
+Encoding: 123 -1 121
Width: 192
Flags: HW
HStem: -473.822 17.1 -114.722 17.1 244.378 17.1 603.478 17.1
@@ -2994,7 +2991,7 @@ SplineSet
192 37.6699 192 37.625 192 37.5801 c 0
192 37.5322 192 37.4854 192 37.4375 c 0
192 27.5859 194.839 -25.4824 192 -44.0859 c 1
- 179.714 -44.0859 182.571 -43.8018 169.991 -44.0859 c 1
+ 169.991 -44.0859 l 1
167.143 -38.6592 167.571 -8.50879 140.233 -8.17188 c 0
106.215 -7.75195 94.0938 -41.2314 59.293 -41.2314 c 0
33.0732 -41.2314 12.5537 -20.7119 5.71387 6.64844 c 0
@@ -3002,14 +2999,14 @@ SplineSet
0.0136719 69.4824 l 1
0.0136719 69.625 l 2
0.0136719 79.4766 -2.8252 132.538 0.0136719 151.141 c 1
- 12.2998 151.141 9.44238 150.857 22.0225 151.141 c 1
+ 22.0225 151.141 0.0136719 151.141 22.0225 151.141 c 1
24.8711 145.714 24.4424 115.571 51.7803 115.234 c 0
85.7969 114.814 97.9199 148.294 132.721 148.294 c 0
EndSplineSet
EndChar
-StartChar: OriscusReversusLineTL
-Encoding: 149 -1 122
+StartChar: DescendensOriscusLineTL
+Encoding: 124 -1 122
Width: 192
Flags: HW
HStem: -473.822 17.1 -114.722 17.1 244.378 17.1 603.478 17.1
@@ -3022,7 +3019,7 @@ SplineSet
34.6807 -40.9463 13.0205 -20.4258 6.18066 6.93359 c 0
2.75977 24.0342 0.0136719 51.3848 0.0136719 69.625 c 0
0.0136719 79.4766 -2.8252 132.545 0.0136719 151.148 c 1
- 12.2998 151.143 9.44238 150.857 22.0225 151.141 c 1
+ 22.0225 151.141 0.0136719 151.148 22.0225 151.141 c 1
24.8711 145.714 24.4424 115.571 51.7803 115.234 c 0
82.5586 114.854 101.94 148.294 132.721 148.294 c 0
158.94 148.294 179.46 127.774 186.3 100.414 c 0
@@ -3032,7 +3029,7 @@ EndSplineSet
EndChar
StartChar: UpperPesOneNothing
-Encoding: 63 -1 123
+Encoding: 56 -1 123
Width: 161
Flags: HW
HStem: -409 15 -94 15 221 15 536 15
@@ -3060,8 +3057,8 @@ SplineSet
EndSplineSet
EndChar
-StartChar: OriscusCavum
-Encoding: 152 -1 124
+StartChar: AscendensOriscusCavum
+Encoding: 125 -1 124
Width: 192
Flags: HW
HStem: -305.023 11.628 -60.8351 11.628 183.353 11.628 427.541 11.628
@@ -3093,8 +3090,8 @@ SplineSet
EndSplineSet
EndChar
-StartChar: OriscusCavumHole
-Encoding: 153 -1 125
+StartChar: AscendensOriscusCavumHole
+Encoding: 126 -1 125
Width: 192
Flags: W
HStem: -305.023 11.628 -60.8351 11.628 183.353 11.628 427.541 11.628
@@ -3115,8 +3112,8 @@ SplineSet
EndSplineSet
EndChar
-StartChar: OriscusCavumReversus
-Encoding: 154 -1 126
+StartChar: DescendensOriscusCavum
+Encoding: 127 -1 126
Width: 192
Flags: HW
HStem: -305.023 11.628 -60.8351 11.628 183.353 11.628 427.541 11.628
@@ -3148,8 +3145,8 @@ SplineSet
EndSplineSet
EndChar
-StartChar: OriscusCavumReversusHole
-Encoding: 155 -1 127
+StartChar: DescendensOriscusCavumHole
+Encoding: 128 -1 127
Width: 192
Flags: HW
HStem: -305.023 11.628 -60.8351 11.628 183.353 11.628 427.541 11.628
@@ -3171,7 +3168,7 @@ EndSplineSet
EndChar
StartChar: OriscusCavumDeminutus
-Encoding: 156 -1 128
+Encoding: 129 -1 128
Width: 192
Flags: HW
HStem: -305.023 11.628 -60.8351 11.628 183.353 11.628 427.541 11.628
@@ -3206,7 +3203,7 @@ EndSplineSet
EndChar
StartChar: OriscusCavumDeminutusHole
-Encoding: 157 -1 129
+Encoding: 130 -1 129
Width: 192
Flags: HW
LayerCount: 2
@@ -3227,7 +3224,7 @@ EndSplineSet
EndChar
StartChar: Virgula.2
-Encoding: 158 -1 130
+Encoding: 131 -1 130
Width: 152
VWidth: 1418
Flags: HW
@@ -3245,7 +3242,7 @@ EndSplineSet
EndChar
StartChar: DivisioMinima.2
-Encoding: 159 -1 131
+Encoding: 132 -1 131
Width: 19
VWidth: 1418
Flags: HW
@@ -3262,7 +3259,7 @@ EndSplineSet
EndChar
StartChar: DivisioMinor.2
-Encoding: 160 -1 132
+Encoding: 133 -1 132
Width: 19
VWidth: 2048
Flags: HW
@@ -3279,7 +3276,7 @@ EndSplineSet
EndChar
StartChar: DivisioMaior.2
-Encoding: 161 -1 133
+Encoding: 134 -1 133
Width: 19
VWidth: 2048
Flags: HW
@@ -3296,7 +3293,7 @@ EndSplineSet
EndChar
StartChar: Virgula.3
-Encoding: 162 -1 134
+Encoding: 135 -1 134
Width: 152
VWidth: 1733
Flags: HW
@@ -3314,7 +3311,7 @@ EndSplineSet
EndChar
StartChar: DivisioMinima.3
-Encoding: 163 -1 135
+Encoding: 136 -1 135
Width: 19
VWidth: 1733
Flags: HW
@@ -3331,7 +3328,7 @@ EndSplineSet
EndChar
StartChar: DivisioMinor.3
-Encoding: 164 -1 136
+Encoding: 137 -1 136
Width: 19
VWidth: 2048
Flags: HW
@@ -3348,7 +3345,7 @@ EndSplineSet
EndChar
StartChar: DivisioMaior.3
-Encoding: 165 -1 137
+Encoding: 138 -1 137
Width: 19
VWidth: 2048
Flags: HW
@@ -3365,7 +3362,7 @@ EndSplineSet
EndChar
StartChar: Virgula.5
-Encoding: 166 -1 138
+Encoding: 139 -1 138
Width: 152
VWidth: 2363
Flags: HW
@@ -3383,7 +3380,7 @@ EndSplineSet
EndChar
StartChar: DivisioMinima.5
-Encoding: 167 -1 139
+Encoding: 140 -1 139
Width: 19
VWidth: 2363
Flags: HW
@@ -3400,7 +3397,7 @@ EndSplineSet
EndChar
StartChar: DivisioMinor.5
-Encoding: 168 -1 140
+Encoding: 141 -1 140
Width: 19
VWidth: 2048
Flags: HW
@@ -3417,7 +3414,7 @@ EndSplineSet
EndChar
StartChar: DivisioMaior.5
-Encoding: 169 -1 141
+Encoding: 142 -1 141
Width: 19
VWidth: 2048
Flags: HW
@@ -3434,7 +3431,7 @@ EndSplineSet
EndChar
StartChar: StrophaAuctaLongtail
-Encoding: 94 -1 142
+Encoding: 87 -1 142
Width: 168
Flags: W
HStem: -472.609 17.1 -113.509 17.1 245.591 17.1 604.691 17.1
@@ -3458,7 +3455,7 @@ EndSplineSet
EndChar
StartChar: rqueue
-Encoding: 170 -1 143
+Encoding: 143 -1 143
Width: 22
VWidth: 2048
Flags: HW
@@ -3466,16 +3463,16 @@ HStem: -409 15 -94 15 221 15 536 15
LayerCount: 2
Fore
SplineSet
-22 -14.5 m 13
- 22 3 l 25
+22 -14.5 m 21
+ 13.8428 -12.709 4.40723 -12.2783 0 -6.5 c 9
0 3 l 25
- 0 -6.5 l 17
- 4.40723 -12.2783 13.8428 -12.709 22 -14.5 c 13
+ 22 3 l 25
+ 22 -14.5 l 21
EndSplineSet
EndChar
StartChar: queuebase
-Encoding: 171 -1 144
+Encoding: 144 -1 144
Width: 22
VWidth: 2048
Flags: HW
@@ -3493,7 +3490,7 @@ EndSplineSet
EndChar
StartChar: virgabase
-Encoding: 172 -1 145
+Encoding: 145 -1 145
Width: 161
Flags: HW
HStem: -409 15 -94 15 221 15 536 15
@@ -3514,7 +3511,7 @@ EndSplineSet
EndChar
StartChar: rvbase
-Encoding: 173 -1 146
+Encoding: 146 -1 146
Width: 161
Flags: HW
HStem: -409 15 -94 15 221 15 536 15
@@ -3536,7 +3533,7 @@ EndSplineSet
EndChar
StartChar: rvirgabase
-Encoding: 174 -1 147
+Encoding: 147 -1 147
Width: 161
Flags: HW
HStem: -409 15 -94 15 221 15 536 15
@@ -3557,7 +3554,7 @@ EndSplineSet
EndChar
StartChar: VirgaBaseLineBL
-Encoding: 175 -1 148
+Encoding: 148 -1 148
Width: 161
Flags: W
HStem: -409 15 -94 15 221 15 536 15
@@ -3578,15 +3575,15 @@ SplineSet
EndSplineSet
EndChar
-StartChar: osbase
-Encoding: 176 -1 149
+StartChar: AscendensOriscusLineBLBR
+Encoding: 149 -1 149
Width: 192
Flags: HW
HStem: -473.822 17.1 -114.722 17.1 244.378 17.1 603.478 17.1
LayerCount: 2
Fore
SplineSet
-0.0101797 -58 m 5
+0.0101797 -58 m 1
0.0136719 37.7139 l 2
0.0146484 55.9541 1.15332 83.3135 5.71387 100.414 c 0
12.5537 127.774 33.0732 148.294 59.293 148.294 c 0
@@ -3594,48 +3591,248 @@ SplineSet
174.434 115.234 166.453 149.435 176.714 149.435 c 0
188.113 149.435 192 87.8652 192 69.625 c 0
192 -42 l 1
- 182.5 -42 179 -42 170 -42 c 1
+ 170 -42 l 1
170 -23.1459 l 1
160.003 -34.142 146.695 -40.9463 132.254 -40.9463 c 0
100.333 -40.9463 82.0938 -7.88574 51.3135 -7.88574 c 0
31.2755 -7.88574 25 -19 22 -29 c 1
22.0119 -58 l 1
- 0.0101797 -58 l 5
+ 0.0101797 -58 l 1
+EndSplineSet
+EndChar
+
+StartChar: DescendensOriscusLineBL
+Encoding: 150 -1 150
+Width: 192
+Flags: HW
+HStem: -473.822 17.1 -114.722 17.1 244.378 17.1 603.478 17.1
+LayerCount: 2
+Fore
+SplineSet
+0.0101797 -58 m 1
+ 0.0136719 69.625 l 0
+ 0.0136719 87.8652 3.90039 149.435 15.2998 149.435 c 0
+ 25.5605 149.435 17.5801 115.234 51.7803 115.234 c 0
+ 82.5605 115.234 101.94 148.294 132.721 148.294 c 0
+ 158.94 148.294 179.46 127.774 186.3 100.414 c 0
+ 190.86 83.3135 192 55.9541 192 37.7139 c 0
+ 192 19.4736 188.58 -42.0859 177.181 -42.0859 c 0
+ 168.061 -42.0859 174.9 -7.88574 140.7 -7.88574 c 0
+ 109.92 -7.88574 91.6807 -40.9463 59.7598 -40.9463 c 0
+ 45.3152 -40.9463 32.0047 -34.139 22.0068 -23.1387 c 1
+ 22.0119 -58 l 1
+ 0.0101797 -58 l 1
EndSplineSet
EndChar
-StartChar: OriscusReversusLineBL
-Encoding: 177 -1 150
+StartChar: tmpglyph
+Encoding: 151 -1 151
+Width: 22
+VWidth: 2048
+Flags: HW
+HStem: 64 32<0 1>
+VStem: 0 1<64 96>
+LayerCount: 2
+EndChar
+
+StartChar: AscendensOriscusLineBR
+Encoding: 152 -1 152
Width: 192
Flags: HW
HStem: -473.822 17.1 -114.722 17.1 244.378 17.1 603.478 17.1
LayerCount: 2
Fore
SplineSet
-22.0137 -42 m 5
- 13.0137 -42 9.51367 -42 0.0136719 -42 c 5
- 0.0136719 -21.5 0.0136719 24.5596 0.0136719 37.7139 c 0
+169.971 -23.1776 m 1
+ 159.977 -34.1551 146.681 -40.9463 132.254 -40.9463 c 0
+ 100.333 -40.9463 82.0938 -7.88574 51.3135 -7.88574 c 0
+ 17.1133 -7.88574 23.9531 -42.0859 14.833 -42.0859 c 0
+ 3.43359 -42.0859 0.0136719 19.4736 0.0136719 37.7139 c 0
0.0136719 55.9541 1.15332 83.3135 5.71387 100.414 c 0
12.5537 127.774 33.0732 148.294 59.293 148.294 c 0
90.0732 148.294 109.453 115.234 140.233 115.234 c 0
174.434 115.234 166.453 149.435 176.714 149.435 c 0
188.113 149.435 192 87.8652 192 69.625 c 0
+ 192 -42 l 1
+ 170 -42 l 1
+ 169.971 -23.1776 l 1
+EndSplineSet
+EndChar
+
+StartChar: AscendensOriscusLineTLBR
+Encoding: 153 -1 153
+Width: 192
+Flags: HW
+HStem: -473.822 17.1 -114.722 17.1 244.378 17.1 603.478 17.1
+LayerCount: 2
+Fore
+SplineSet
+0.0136719 151.141 m 5
+ 22.0225 151.141 0.0136719 151.141 22.0225 151.141 c 1
+ 22.0529 131.44 l 1
+ 31.7543 141.879 44.6326 148.294 59.293 148.294 c 0
+ 90.0732 148.294 109.453 115.234 140.233 115.234 c 0
+ 174.434 115.234 166.453 149.435 176.714 149.435 c 0
+ 188.113 149.435 192 87.8652 192 69.625 c 0
+ 192 -42 l 1
+ 170 -42 l 1
+ 169.971 -23.1776 l 1
+ 159.977 -34.1551 146.681 -40.9463 132.254 -40.9463 c 0
+ 100.333 -40.9463 82.0938 -7.88574 51.3135 -7.88574 c 0
+ 17.1133 -7.88574 23.9531 -42.0859 14.833 -42.0859 c 0
+ 3.43359 -42.0859 0.0136719 19.4736 0.0136719 37.7139 c 4
+ 0.0136719 151.141 l 5
+EndSplineSet
+EndChar
+
+StartChar: AscendensOriscusLineTLTR
+Encoding: 154 -1 154
+Width: 192
+Flags: HW
+HStem: -473.822 17.1 -114.722 17.1 244.378 17.1 603.478 17.1
+LayerCount: 2
+Fore
+SplineSet
+0.0136719 151.141 m 1
+ 22.0225 151.141 0.0136719 151.141 22.0225 151.141 c 1
+ 22.0468 131.433 l 1
+ 31.7489 141.876 44.6295 148.294 59.293 148.294 c 0
+ 90.0732 148.294 109.455 114.854 140.233 115.234 c 0
+ 167.571 115.571 167.143 145.714 169.991 151.141 c 5
+ 192 151.148 l 5
+ 194.839 132.545 192 79.4765 192 69.625 c 0
192 51.3848 189.254 24.0342 185.833 6.93359 c 0
178.993 -20.4258 157.333 -40.9463 132.254 -40.9463 c 0
100.333 -40.9463 82.0938 -7.88574 51.3135 -7.88574 c 0
- 31.3037 -7.88574 25.3428 -15.2842 22.0137 -25 c 1
- 22.0137 -35.5 22.0137 -31.5 22.0137 -42 c 5
+ 17.1133 -7.88574 23.9531 -42.0859 14.833 -42.0859 c 0
+ 3.43359 -42.0859 0.0136719 19.4736 0.0136719 37.7139 c 0
+ 0.0136719 151.141 l 1
EndSplineSet
EndChar
-StartChar: tmpglyph
-Encoding: 178 -1 151
-Width: 22
-VWidth: 2048
+StartChar: AscendensOriscusLineTL
+Encoding: 155 -1 155
+Width: 192
+Flags: W
+HStem: -473.822 17.1 -114.722 17.1 244.378 17.1 603.478 17.1
+LayerCount: 2
+Fore
+SplineSet
+0.0136719 151.141 m 5
+ 22.0225 151.141 0.0136719 151.141 22.0225 151.141 c 5
+ 21.9791 131.36 l 1
+ 31.6889 141.846 44.5954 148.294 59.293 148.294 c 0
+ 90.0732 148.294 109.453 115.234 140.233 115.234 c 0
+ 174.434 115.234 166.453 149.435 176.714 149.435 c 0
+ 188.113 149.435 192 87.8652 192 69.625 c 0
+ 192 51.3848 189.254 24.0342 185.833 6.93359 c 0
+ 178.993 -20.4258 157.333 -40.9463 132.254 -40.9463 c 0
+ 100.333 -40.9463 82.0938 -7.88574 51.3135 -7.88574 c 0
+ 17.1133 -7.88574 23.9531 -42.0859 14.833 -42.0859 c 0
+ 3.43359 -42.0859 0.0136719 19.4736 0.0136719 37.7139 c 0
+ 0.0136719 151.141 l 5
+EndSplineSet
+EndChar
+
+StartChar: DescendensOriscusLineBLBR
+Encoding: 156 -1 156
+Width: 192
Flags: HW
-HStem: 64 32<0 1>
-VStem: 0 1<64 96>
+HStem: -473.822 17.1 -114.722 17.1 244.378 17.1 603.478 17.1
+LayerCount: 2
+Fore
+SplineSet
+0.0136719 69.625 m 4
+ 0.0136719 87.8652 3.90039 149.435 15.2998 149.435 c 0
+ 25.5605 149.435 17.5801 115.234 51.7803 115.234 c 0
+ 82.5605 115.234 101.94 148.294 132.721 148.294 c 0
+ 158.94 148.294 179.46 127.774 186.3 100.414 c 0
+ 190.86 83.3135 192 55.9541 192 37.7139 c 0
+ 192 24.5596 192 -21.5 192 -42 c 1
+ 182.5 -42 179 -42 170 -42 c 1
+ 170 -31.5 170 -35.5 170 -25 c 1
+ 166.671 -15.2842 160.71 -7.88574 140.7 -7.88574 c 0
+ 109.92 -7.88574 91.6807 -40.9463 59.7598 -40.9463 c 0
+ 45.3285 -40.9463 32.0294 -34.1516 22.0346 -23.169 c 1
+ 22.0225 -42.0791 l 1
+ 0.0136719 -42.0859 l 5
+ 0.0136719 69.625 l 4
+EndSplineSet
+EndChar
+
+StartChar: DescendensOriscusLineBLTR
+Encoding: 157 -1 157
+Width: 192
+Flags: HW
+HStem: -473.822 17.1 -114.722 17.1 244.378 17.1 603.478 17.1
LayerCount: 2
+Fore
+SplineSet
+0.0136719 69.625 m 4
+ 0.0136719 87.8652 3.90039 149.435 15.2998 149.435 c 0
+ 25.5605 149.435 17.5801 115.234 51.7803 115.234 c 0
+ 82.5605 115.234 101.94 148.294 132.721 148.294 c 0
+ 147.398 148.294 160.29 141.864 169.995 131.403 c 1
+ 169.991 151.141 l 1
+ 192 151.148 l 1
+ 192 37.7139 l 0
+ 192 19.4736 188.58 -42.0859 177.181 -42.0859 c 0
+ 168.061 -42.0859 174.9 -7.88574 140.7 -7.88574 c 0
+ 109.92 -7.88574 91.6807 -40.9463 59.7598 -40.9463 c 0
+ 45.3253 -40.9463 32.0234 -34.1485 22.0279 -23.1616 c 1
+ 22.0225 -42.0791 l 1
+ 0.0136719 -42.0859 l 5
+ 0.0136719 69.625 l 4
+EndSplineSet
+EndChar
+
+StartChar: DescendensOriscusLineTLTR
+Encoding: 158 -1 158
+Width: 192
+Flags: HW
+HStem: -473.822 17.1 -114.722 17.1 244.378 17.1 603.478 17.1
+LayerCount: 2
+Fore
+SplineSet
+192 37.7139 m 4
+ 192 19.4736 188.58 -42.0859 177.181 -42.0859 c 0
+ 168.061 -42.0859 174.9 -7.88574 140.7 -7.88574 c 0
+ 109.92 -7.88574 91.6807 -40.9463 59.7598 -40.9463 c 0
+ 34.6807 -40.9463 13.0205 -20.4258 6.18066 6.93359 c 0
+ 2.75977 24.0342 0.0136719 51.3848 0.0136719 69.625 c 0
+ 0.0136719 79.4766 -2.8252 132.545 0.0136719 151.148 c 1
+ 12.2998 151.143 9.44238 150.857 22.0225 151.141 c 1
+ 24.8711 145.714 24.4424 115.571 51.7803 115.234 c 0
+ 82.5586 114.854 101.94 148.294 132.721 148.294 c 0
+ 147.411 148.294 160.312 141.852 170.02 131.375 c 1
+ 169.991 151.141 l 1
+ 192 151.148 l 5
+ 192 37.7139 l 4
+EndSplineSet
+EndChar
+
+StartChar: DescendensOriscusLineTR
+Encoding: 159 -1 159
+Width: 192
+Flags: HW
+HStem: -473.822 17.1 -114.722 17.1 244.378 17.1 603.478 17.1
+LayerCount: 2
+Fore
+SplineSet
+192 37.7139 m 0
+ 192 19.4736 188.58 -42.0859 177.181 -42.0859 c 0
+ 168.061 -42.0859 174.9 -7.88574 140.7 -7.88574 c 0
+ 109.92 -7.88574 91.6807 -40.9463 59.7598 -40.9463 c 0
+ 34.6807 -40.9463 13.0205 -20.4258 6.18066 6.93359 c 0
+ 2.75977 24.0342 0.0136719 51.3848 0.0136719 69.625 c 0
+ 0.0136719 87.8652 3.90039 149.435 15.2998 149.435 c 0
+ 25.5605 149.435 17.5801 115.234 51.7803 115.234 c 0
+ 82.5605 115.234 101.94 148.294 132.721 148.294 c 0
+ 147.428 148.294 160.341 141.838 170.053 131.34 c 1
+ 169.991 151.141 l 5
+ 192 151.148 l 5
+ 192 37.7139 l 0
+EndSplineSet
EndChar
EndChars
EndSplineFont
diff --git a/Master/texmf-dist/fonts/source/gregoriotex/greciliae-base.sfd b/Master/texmf-dist/fonts/source/gregoriotex/greciliae-base.sfd
index 121ce478174..6f169c8a17d 100644
--- a/Master/texmf-dist/fonts/source/gregoriotex/greciliae-base.sfd
+++ b/Master/texmf-dist/fonts/source/gregoriotex/greciliae-base.sfd
@@ -20,7 +20,7 @@ OS2Version: 0
OS2_WeightWidthSlopeOnly: 0
OS2_UseTypoMetrics: 1
CreationTime: 1176402534
-ModificationTime: 1455123204
+ModificationTime: 1457825186
OS2TypoAscent: 0
OS2TypoAOffset: 1
OS2TypoDescent: 0
@@ -38,16 +38,17 @@ OS2Vendor: 'PfEd'
MarkAttachClasses: 1
DEI: 91125
Encoding: Custom
-Compacted: 1
UnicodeInterp: none
NameList: Adobe Glyph List
DisplaySize: -96
AntiAlias: 1
FitToEm: 1
-WinInfo: 19 19 8
+WinInfo: 0 14 13
BeginPrivate: 0
EndPrivate
Grid
+-1000 159 m 0
+ 2000 159 l 0
-1000 194 m 0
2000 194 l 0
18 1300 m 0
@@ -72,7 +73,7 @@ Grid
17.75 -700 l 0
EndSplineSet
TeXData: 1 0 0 346030 173015 115343 0 1048576 115343 783286 444596 497025 792723 393216 433062 380633 303038 157286 324010 404750 52429 2506097 1059062 262144
-BeginChars: 379 164
+BeginChars: 172 172
StartChar: Punctum
Encoding: 0 -1 0
@@ -165,7 +166,7 @@ SplineSet
EndSplineSet
EndChar
-StartChar: OriscusReversus
+StartChar: DescendensOriscus
Encoding: 4 -1 4
Width: 166
VWidth: 2537
@@ -187,7 +188,7 @@ SplineSet
EndSplineSet
EndChar
-StartChar: Oriscus
+StartChar: AscendensOriscus
Encoding: 5 -1 5
Width: 166
VWidth: 2537
@@ -346,7 +347,7 @@ Validated: 33
EndChar
StartChar: DivisioMinima
-Encoding: 14 -1 12
+Encoding: 12 -1 12
AltUni2: 000050.ffffffff.0
Width: 19
VWidth: 2048
@@ -366,7 +367,7 @@ Validated: 1
EndChar
StartChar: DivisioMinor
-Encoding: 15 -1 13
+Encoding: 13 -1 13
Width: 19
VWidth: 2048
Flags: W
@@ -384,7 +385,7 @@ Validated: 1
EndChar
StartChar: pesdeminutus
-Encoding: 17 -1 14
+Encoding: 14 -1 14
Width: 166
VWidth: 2684
Flags: W
@@ -408,7 +409,7 @@ Validated: 1
EndChar
StartChar: auctusd1
-Encoding: 18 -1 15
+Encoding: 15 -1 15
Width: 166
VWidth: 2689
Flags: W
@@ -431,7 +432,7 @@ Validated: 1
EndChar
StartChar: auctusa1
-Encoding: 19 -1 16
+Encoding: 16 -1 16
Width: 166
VWidth: 2421
Flags: W
@@ -455,7 +456,7 @@ Validated: 1
EndChar
StartChar: mdeminutus
-Encoding: 20 -1 17
+Encoding: 17 -1 17
Width: 168
VWidth: 2048
Flags: W
@@ -481,7 +482,7 @@ Validated: 1
EndChar
StartChar: Natural
-Encoding: 21 -1 18
+Encoding: 18 -1 18
Width: 108
Flags: W
VStem: 0 25.2002<7.7002 121.4 173.3 323.299> 84 24<-184.013 -35.5 18.5 128.9>
@@ -517,7 +518,7 @@ Validated: 1
EndChar
StartChar: FClef
-Encoding: 22 -1 19
+Encoding: 19 -1 19
Width: 322
VWidth: 2503
Flags: W
@@ -555,7 +556,7 @@ Validated: 33
EndChar
StartChar: CustosDownLong
-Encoding: 23 -1 20
+Encoding: 20 -1 20
Width: 73
VWidth: 2463
Flags: W
@@ -576,7 +577,7 @@ Validated: 1
EndChar
StartChar: CustosDownShort
-Encoding: 24 -1 21
+Encoding: 21 -1 21
Width: 73
VWidth: 2412
Flags: W
@@ -598,7 +599,7 @@ Validated: 1
EndChar
StartChar: CustosUpLong
-Encoding: 25 -1 22
+Encoding: 22 -1 22
Width: 73
VWidth: 2609
Flags: W
@@ -621,7 +622,7 @@ Validated: 1
EndChar
StartChar: CustosUpShort
-Encoding: 26 -1 23
+Encoding: 23 -1 23
Width: 74
VWidth: 2660
Flags: W
@@ -643,7 +644,7 @@ Validated: 1
EndChar
StartChar: PunctumLineBR
-Encoding: 27 -1 24
+Encoding: 24 -1 24
Width: 166
VWidth: 2612
Flags: W
@@ -666,7 +667,7 @@ Validated: 1
EndChar
StartChar: PunctumLineBL
-Encoding: 28 -1 25
+Encoding: 25 -1 25
Width: 166
VWidth: 2612
Flags: W
@@ -689,7 +690,7 @@ Validated: 1
EndChar
StartChar: PunctumLineTL
-Encoding: 29 -1 26
+Encoding: 26 -1 26
Width: 166
VWidth: 2612
Flags: W
@@ -712,7 +713,7 @@ Validated: 1
EndChar
StartChar: PunctumLineTR
-Encoding: 30 -1 27
+Encoding: 27 -1 27
Width: 166
VWidth: 2612
Flags: W
@@ -735,7 +736,7 @@ Validated: 1
EndChar
StartChar: PunctumLineBLBR
-Encoding: 31 -1 28
+Encoding: 28 -1 28
Width: 166
VWidth: 2612
Flags: W
@@ -760,7 +761,7 @@ Validated: 1
EndChar
StartChar: base6
-Encoding: 32 -1 29
+Encoding: 29 -1 29
Width: 166
VWidth: 2612
Flags: W
@@ -785,7 +786,7 @@ Validated: 1
EndChar
StartChar: line2
-Encoding: 33 -1 30
+Encoding: 30 -1 30
Width: 18
VWidth: 2048
Flags: W
@@ -804,7 +805,7 @@ Validated: 1
EndChar
StartChar: line3
-Encoding: 34 -1 31
+Encoding: 31 -1 31
Width: 18
VWidth: 2048
Flags: W
@@ -823,7 +824,7 @@ Validated: 1
EndChar
StartChar: line4
-Encoding: 35 -1 32
+Encoding: 32 -1 32
Width: 18
VWidth: 2048
Flags: W
@@ -841,7 +842,7 @@ Validated: 1
EndChar
StartChar: line5
-Encoding: 36 -1 33
+Encoding: 33 -1 33
Width: 18
VWidth: 2048
Flags: W
@@ -859,7 +860,7 @@ Validated: 1
EndChar
StartChar: QuilismaLineTR
-Encoding: 40 -1 34
+Encoding: 34 -1 34
Width: 166
VWidth: 2496
Flags: W
@@ -888,32 +889,32 @@ EndSplineSet
Validated: 33
EndChar
-StartChar: OriscusLineTR
-Encoding: 41 -1 35
+StartChar: AscendensOriscusLineTR
+Encoding: 35 -1 35
Width: 166
VWidth: 2537
Flags: W
-HStem: -37.1504 176.8<74.1705 154.735>
-VStem: -0.200195 166.4<-3.28925 139.081> 148.027 17.9728<141.255 159>
+HStem: -37.1494 176.799<74.1345 154.636>
+VStem: -0.200195 166.201<-3.28828 139.081> 148.027 17.973<141.255 159>
LayerCount: 2
Fore
SplineSet
-148 159 m 5xa0
- 166 159 l 5xa0
- 166.2 13.5498 l 2
- 166.2 -12.9697 158.4 -37.1504 127.2 -37.1504 c 0
- 106.136 -37.1504 61.2451 -3.34961 38.7998 -3.34961 c 0
+148 159 m 1xa0
+ 166 159 l 1xa0
+ 166.001 13.5508 l 2
+ 166.001 -12.9688 158.201 -37.1494 127.001 -37.1494 c 0
+ 105.937 -37.1494 61.2451 -3.34961 38.7998 -3.34961 c 0
9.08496 -3.34961 -0.200195 -29.9844 -0.200195 -55.3496 c 1
- -0.200195 121.45 l 6xc0
- -0.200195 160.06 15.4004 172.15 38.7998 172.15 c 4
- 61.2793 172.15 106.118 139.65 127.2 139.65 c 4
- 135.712 139.65 142.575 141.764 148.027 145.398 c 5
- 148 159 l 5xa0
+ -0.200195 121.45 l 2xc0
+ -0.200195 160.06 15.4004 172.15 38.7998 172.15 c 0
+ 61.2793 172.15 106.118 139.65 127.2 139.65 c 0
+ 135.712 139.65 142.575 141.764 148.027 145.398 c 1
+ 148 159 l 1xa0
EndSplineSet
EndChar
StartChar: idebilis
-Encoding: 43 -1 36
+Encoding: 36 -1 36
Width: 83
VWidth: 2605
Flags: W
@@ -936,7 +937,7 @@ Validated: 33
EndChar
StartChar: deminutus
-Encoding: 44 -1 37
+Encoding: 37 -1 37
Width: 83
VWidth: 2605
Flags: W
@@ -959,7 +960,7 @@ Validated: 33
EndChar
StartChar: rdeminutus
-Encoding: 45 -1 38
+Encoding: 38 -1 38
Width: 83
VWidth: 2605
Flags: W
@@ -982,7 +983,7 @@ Validated: 33
EndChar
StartChar: PunctumAuctusLineBL
-Encoding: 46 -1 39
+Encoding: 39 -1 39
Width: 166
VWidth: 2689
Flags: W
@@ -1006,7 +1007,7 @@ Validated: 1
EndChar
StartChar: auctusa2
-Encoding: 47 -1 40
+Encoding: 40 -1 40
Width: 166
VWidth: 2421
Flags: W
@@ -1030,7 +1031,7 @@ Validated: 1
EndChar
StartChar: porrectus1
-Encoding: 48 -1 41
+Encoding: 41 -1 41
Width: 447
VWidth: 2553
Flags: HW
@@ -1052,7 +1053,7 @@ EndSplineSet
EndChar
StartChar: porrectus2
-Encoding: 49 -1 42
+Encoding: 42 -1 42
Width: 547
VWidth: 2575
Flags: HW
@@ -1076,7 +1077,7 @@ EndSplineSet
EndChar
StartChar: porrectus3
-Encoding: 50 -1 43
+Encoding: 43 -1 43
Width: 628
VWidth: 2556
Flags: HW
@@ -1101,7 +1102,7 @@ EndSplineSet
EndChar
StartChar: porrectus4
-Encoding: 51 -1 44
+Encoding: 44 -1 44
Width: 704
VWidth: 2500
Flags: HW
@@ -1125,7 +1126,7 @@ EndSplineSet
EndChar
StartChar: porrectus5
-Encoding: 52 -1 45
+Encoding: 45 -1 45
Width: 849
VWidth: 2048
Flags: HW
@@ -1149,7 +1150,7 @@ EndSplineSet
EndChar
StartChar: porrectusflexus1
-Encoding: 53 -1 46
+Encoding: 46 -1 46
Width: 503
VWidth: 2553
Flags: HW
@@ -1172,7 +1173,7 @@ EndSplineSet
EndChar
StartChar: porrectusflexus2
-Encoding: 54 -1 47
+Encoding: 47 -1 47
Width: 628
VWidth: 2575
Flags: HW
@@ -1194,7 +1195,7 @@ EndSplineSet
EndChar
StartChar: porrectusflexus3
-Encoding: 55 -1 48
+Encoding: 48 -1 48
Width: 628
VWidth: 2556
Flags: HW
@@ -1218,7 +1219,7 @@ EndSplineSet
EndChar
StartChar: porrectusflexus4
-Encoding: 56 -1 49
+Encoding: 49 -1 49
Width: 628
VWidth: 2500
Flags: HW
@@ -1241,7 +1242,7 @@ EndSplineSet
EndChar
StartChar: porrectusflexus5
-Encoding: 57 -1 50
+Encoding: 50 -1 50
Width: 931
VWidth: 2048
Flags: HW
@@ -1262,7 +1263,7 @@ EndSplineSet
EndChar
StartChar: PesQuilismaOneNothing
-Encoding: 58 -1 51
+Encoding: 51 -1 51
Width: 166
VWidth: 2496
Flags: HW
@@ -1295,7 +1296,7 @@ EndSplineSet
EndChar
StartChar: StrophaAucta.caeciliae
-Encoding: 59 -1 52
+Encoding: 52 -1 52
Width: 151
VWidth: 2686
Flags: W
@@ -1318,7 +1319,7 @@ Validated: 33
EndChar
StartChar: PunctumInclinatumAuctus.caeciliae
-Encoding: 60 -1 53
+Encoding: 53 -1 53
Width: 185
VWidth: 2048
Flags: W
@@ -1342,7 +1343,7 @@ Validated: 33
EndChar
StartChar: AuctumMora
-Encoding: 62 -1 54
+Encoding: 54 -1 54
Width: 71
VWidth: 2679
Flags: W
@@ -1361,7 +1362,7 @@ Validated: 1
EndChar
StartChar: VEpisema
-Encoding: 64 -1 55
+Encoding: 56 -1 55
Width: 34
VWidth: 2048
Flags: W
@@ -1382,7 +1383,7 @@ Validated: 1
EndChar
StartChar: PunctumDeminutus
-Encoding: 65 -1 56
+Encoding: 57 -1 56
Width: 83
VWidth: 2612
Flags: W
@@ -1403,7 +1404,7 @@ Validated: 1
EndChar
StartChar: hepisema_base
-Encoding: 66 -1 57
+Encoding: 58 -1 57
Width: 1
VWidth: 2044
Flags: HW
@@ -1421,7 +1422,7 @@ EndSplineSet
EndChar
StartChar: CustosUpMedium
-Encoding: 67 -1 58
+Encoding: 59 -1 58
Width: 74
VWidth: 2660
Flags: W
@@ -1443,7 +1444,7 @@ Validated: 1
EndChar
StartChar: CustosDownMedium
-Encoding: 68 -1 59
+Encoding: 60 -1 59
Width: 73
VWidth: 2412
Flags: W
@@ -1465,7 +1466,7 @@ Validated: 1
EndChar
StartChar: Accentus
-Encoding: 69 -1 60
+Encoding: 61 -1 60
Width: 6
Flags: W
HStem: -56.1992 151.199
@@ -1487,7 +1488,7 @@ Validated: 1
EndChar
StartChar: AccentusReversus
-Encoding: 70 -1 61
+Encoding: 62 -1 61
Width: 6
Flags: W
HStem: -56.1992 151.199
@@ -1509,7 +1510,7 @@ Validated: 1
EndChar
StartChar: SemicirculusReversus
-Encoding: 71 -1 62
+Encoding: 63 -1 62
Width: 125
VWidth: 1583
Flags: W
@@ -1529,7 +1530,7 @@ Validated: 1
EndChar
StartChar: Semicirculus
-Encoding: 72 -1 63
+Encoding: 64 -1 63
Width: 124
VWidth: 1606
Flags: W
@@ -1549,7 +1550,7 @@ Validated: 1
EndChar
StartChar: Circulus
-Encoding: 73 -1 64
+Encoding: 65 -1 64
Width: 124
VWidth: 1594
Flags: W
@@ -1572,7 +1573,7 @@ Validated: 1
EndChar
StartChar: CClefChange
-Encoding: 74 -1 65
+Encoding: 66 -1 65
Width: 166
VWidth: 2575
Flags: W
@@ -1600,7 +1601,7 @@ Validated: 33
EndChar
StartChar: FClefChange
-Encoding: 75 -1 66
+Encoding: 67 -1 66
Width: 322
VWidth: 2503
Flags: W
@@ -1638,7 +1639,7 @@ Validated: 33
EndChar
StartChar: VEpisema.circumflexus
-Encoding: 76 -1 67
+Encoding: 68 -1 67
Width: 108
VWidth: 2048
Flags: W
@@ -1662,7 +1663,7 @@ Validated: 33
EndChar
StartChar: PunctumCavum
-Encoding: 77 -1 68
+Encoding: 69 -1 68
Width: 166
VWidth: 2612
Flags: W
@@ -1690,7 +1691,7 @@ Validated: 33
EndChar
StartChar: LineaPunctum
-Encoding: 78 -1 69
+Encoding: 70 -1 69
Width: 266
VWidth: 2048
Flags: W
@@ -1725,7 +1726,7 @@ Validated: 1
EndChar
StartChar: LineaPunctumCavum
-Encoding: 79 -1 70
+Encoding: 71 -1 70
Width: 266
VWidth: 2048
Flags: W
@@ -1767,7 +1768,7 @@ Validated: 33
EndChar
StartChar: PunctumSmall
-Encoding: 80 -1 71
+Encoding: 72 -1 71
Width: 155
VWidth: 2537
Flags: HW
@@ -1789,7 +1790,7 @@ EndSplineSet
EndChar
StartChar: hepisemaright
-Encoding: 82 -1 72
+Encoding: 74 -1 72
Width: 2
VWidth: 2044
Flags: HW
@@ -1807,7 +1808,7 @@ EndSplineSet
EndChar
StartChar: mpdeminutus
-Encoding: 83 -1 73
+Encoding: 75 -1 73
Width: 168
VWidth: 2048
Flags: W
@@ -1833,7 +1834,7 @@ Validated: 1
EndChar
StartChar: PunctumAscendens
-Encoding: 84 -1 74
+Encoding: 76 -1 74
Width: 166
VWidth: 1149
Flags: W
@@ -1855,7 +1856,7 @@ Validated: 1
EndChar
StartChar: PunctumDescendens
-Encoding: 85 -1 75
+Encoding: 77 -1 75
Width: 166
VWidth: 1342
Flags: W
@@ -1876,7 +1877,7 @@ Validated: 33
EndChar
StartChar: mnbdeminutus
-Encoding: 86 -1 76
+Encoding: 78 -1 76
Width: 168
VWidth: 2048
Flags: W
@@ -1901,7 +1902,7 @@ Validated: 33
EndChar
StartChar: mnbpdeminutus
-Encoding: 87 -1 77
+Encoding: 79 -1 77
Width: 168
VWidth: 2048
Flags: W
@@ -1925,7 +1926,7 @@ Validated: 33
EndChar
StartChar: porrectusflexusnb1
-Encoding: 88 -1 78
+Encoding: 80 -1 78
Width: 503
VWidth: 2553
Flags: HW
@@ -1945,7 +1946,7 @@ EndSplineSet
EndChar
StartChar: porrectusflexusnb2
-Encoding: 89 -1 79
+Encoding: 81 -1 79
Width: 628
VWidth: 2575
Flags: HW
@@ -1965,7 +1966,7 @@ EndSplineSet
EndChar
StartChar: porrectusflexusnb3
-Encoding: 90 -1 80
+Encoding: 82 -1 80
Width: 628
VWidth: 2556
Flags: HW
@@ -1986,7 +1987,7 @@ EndSplineSet
EndChar
StartChar: porrectusflexusnb4
-Encoding: 91 -1 81
+Encoding: 83 -1 81
Width: 628
VWidth: 2500
Flags: HW
@@ -2006,7 +2007,7 @@ EndSplineSet
EndChar
StartChar: porrectusflexusnb5
-Encoding: 92 -1 82
+Encoding: 84 -1 82
Width: 931
VWidth: 2048
Flags: HW
@@ -2025,7 +2026,7 @@ EndSplineSet
EndChar
StartChar: p2base
-Encoding: 94 -1 83
+Encoding: 86 -1 83
Width: 166
VWidth: 2613
Flags: HW
@@ -2052,7 +2053,7 @@ EndSplineSet
EndChar
StartChar: PesOneNothing
-Encoding: 95 -1 84
+Encoding: 87 -1 84
Width: 166
VWidth: 2613
Flags: W
@@ -2083,7 +2084,7 @@ EndSplineSet
EndChar
StartChar: msdeminutus
-Encoding: 97 -1 85
+Encoding: 88 -1 85
Width: 168
VWidth: 2048
Flags: W
@@ -2109,7 +2110,7 @@ Validated: 1
EndChar
StartChar: mademinutus
-Encoding: 98 -1 86
+Encoding: 89 -1 86
Width: 168
VWidth: 2048
Flags: W
@@ -2136,7 +2137,7 @@ Validated: 33
EndChar
StartChar: PunctumCavum.caeciliae
-Encoding: 99 -1 87
+Encoding: 90 -1 87
Width: 166
VWidth: 2612
Flags: W
@@ -2162,7 +2163,7 @@ Validated: 1
EndChar
StartChar: LineaPunctumCavum.caeciliae
-Encoding: 100 -1 88
+Encoding: 91 -1 88
Width: 266
VWidth: 2048
Flags: W
@@ -2201,7 +2202,7 @@ Validated: 1
EndChar
StartChar: PunctumCavumHole.caeciliae
-Encoding: 101 -1 89
+Encoding: 92 -1 89
Width: 166
VWidth: 2612
Flags: W
@@ -2220,7 +2221,7 @@ Validated: 1
EndChar
StartChar: LineaPunctumCavumHole.caeciliae
-Encoding: 102 -1 90
+Encoding: 93 -1 90
Width: 266
VWidth: 2048
Flags: W
@@ -2238,7 +2239,7 @@ Validated: 1
EndChar
StartChar: PunctumCavumHole
-Encoding: 103 -1 91
+Encoding: 94 -1 91
Width: 166
VWidth: 2612
Flags: W
@@ -2259,7 +2260,7 @@ Validated: 33
EndChar
StartChar: LineaPunctumCavumHole
-Encoding: 104 -1 92
+Encoding: 95 -1 92
Width: 266
VWidth: 2048
Flags: W
@@ -2280,7 +2281,7 @@ Validated: 33
EndChar
StartChar: NaturalHole
-Encoding: 105 -1 93
+Encoding: 96 -1 93
Width: 108
Flags: W
HStem: 1.64062 133.319
@@ -2298,7 +2299,7 @@ Validated: 1
EndChar
StartChar: FlatHole
-Encoding: 106 -1 94
+Encoding: 97 -1 94
Width: 162
VWidth: 2587
Flags: W
@@ -2318,8 +2319,8 @@ EndSplineSet
Validated: 1
EndChar
-StartChar: odbase
-Encoding: 107 -1 95
+StartChar: DescendensOriscusLineBR
+Encoding: 98 -1 95
Width: 168
VWidth: 2612
Flags: W
@@ -2344,7 +2345,7 @@ Validated: 1
EndChar
StartChar: DivisioDominican
-Encoding: 108 -1 96
+Encoding: 99 -1 96
Width: 18
VWidth: 2048
Flags: W
@@ -2362,7 +2363,7 @@ Validated: 1
EndChar
StartChar: DivisioDominicanAlt
-Encoding: 109 -1 97
+Encoding: 100 -1 97
Width: 18
VWidth: 2048
Flags: W
@@ -2380,7 +2381,7 @@ Validated: 1
EndChar
StartChar: Sharp
-Encoding: 110 -1 98
+Encoding: 101 -1 98
Width: 258
VWidth: 2048
Flags: W
@@ -2444,7 +2445,7 @@ Validated: 1
EndChar
StartChar: SharpHole
-Encoding: 111 -1 99
+Encoding: 102 -1 99
Width: 258
VWidth: 2048
Flags: W
@@ -2463,7 +2464,7 @@ Validated: 1
EndChar
StartChar: Linea
-Encoding: 112 -1 100
+Encoding: 103 -1 100
Width: 431
VWidth: 2612
Flags: W
@@ -2492,7 +2493,7 @@ Validated: 1
EndChar
StartChar: RoundBrace
-Encoding: 113 -1 101
+Encoding: 104 -1 101
Width: 937
VWidth: 2048
Flags: W
@@ -2518,7 +2519,7 @@ Validated: 1
EndChar
StartChar: CurlyBrace
-Encoding: 114 -1 102
+Encoding: 105 -1 102
Width: 1006
VWidth: 2048
Flags: W
@@ -2546,7 +2547,7 @@ Validated: 1
EndChar
StartChar: BarBrace
-Encoding: 115 -1 103
+Encoding: 106 -1 103
Width: 591
VWidth: 2048
Flags: W
@@ -2573,7 +2574,7 @@ Validated: 1
EndChar
StartChar: OriscusDeminutus.caeciliae
-Encoding: 116 -1 104
+Encoding: 107 -1 104
Width: 168
VWidth: 2612
Flags: W
@@ -2596,59 +2597,58 @@ EndSplineSet
Validated: 33
EndChar
-StartChar: OriscusLineBL
-Encoding: 117 -1 105
+StartChar: AscendensOriscusLineBL
+Encoding: 108 -1 105
Width: 166
VWidth: 2537
Flags: W
-HStem: -37 177<74.049 160.524>
-VStem: 0 166<-1.90579 138.793> 0 18<-55 -4.875>
+HStem: -3.34961 175.5<18.4364 92.8347>
+VStem: 0 166.2<-3.28925 139.081> 0 18<-74 -5.00787>
LayerCount: 2
Fore
SplineSet
-127 140 m 0xc0
- 156 140 166 165 166 190 c 2
- 166 14 l 2xc0
- 166 -13 158 -37 127 -37 c 0
- 106 -37 61 -3 39 -3 c 0
- 30 -3 23 -6 18 -9 c 1
- 18 -55 l 1
- 0 -55 l 1xa0
- -0 4 0 63 0 121 c 0
- -0 160 15 172 39 172 c 0
- 61 172 106 140 127 140 c 0xc0
+18 -74 m 1xa0
+ 0 -74 l 1xa0
+ 0.000976562 121.45 l 2
+ 0.000976562 160.06 15.4004 172.15 38.7998 172.15 c 0
+ 61.2793 172.15 106.118 139.65 127.2 139.65 c 0
+ 156.411 139.65 166.2 164.545 166.2 190.35 c 1
+ 166.2 13.5498 l 2xc0
+ 166.2 -12.9697 158.4 -37.1504 127.2 -37.1504 c 0
+ 106.136 -37.1504 61.2451 -3.34961 38.7998 -3.34961 c 0
+ 30.2747 -3.34961 23.4312 -5.54191 18.0061 -9.26756 c 1
+ 18 -74 l 1xa0
EndSplineSet
-Validated: 1
EndChar
-StartChar: SalicusOriscus
-Encoding: 118 -1 106
+StartChar: AscendensOriscusLineBLTR
+Encoding: 109 -1 106
Width: 166
VWidth: 2537
-Flags: HW
-HStem: -37.1504 176.8<74.1705 154.735>
-VStem: -0.200195 166.4<-3.28925 139.081> 148.027 17.9728<141.255 159>
+Flags: W
+HStem: -3.34961 175.5<18.4397 92.8347>
+VStem: 0 18<-74 -5.00652> 148.027 17.973<141.255 159>
LayerCount: 2
Fore
SplineSet
--0.200195 121.45 m 2xc0
- -0.200195 160.06 15.4004 172.15 38.7998 172.15 c 0
+0 121.45 m 2
+ 0 160.06 15.4004 172.15 38.7998 172.15 c 0
61.2793 172.15 106.118 139.65 127.2 139.65 c 0
135.712 139.65 142.575 141.764 148.027 145.398 c 1
- 148 159 l 1xa0
- 166 159 l 1xa0
- 166.2 13.5498 l 2
- 166.2 -12.9697 158.4 -37.1504 127.2 -37.1504 c 0
+ 148 159 l 1
+ 166 159 l 1
+ 166 13.5498 l 6
+ 166 -12.9697 158.4 -37.1504 127.2 -37.1504 c 0
106.136 -37.1504 61.2451 -3.34961 38.7998 -3.34961 c 0
30.2783 -3.34961 23.4369 -5.54007 18.0129 -9.26288 c 1
18 -74 l 1
0 -74 l 1
- -0.200195 121.45 l 2xc0
+ 0 121.45 l 2
EndSplineSet
EndChar
StartChar: StrophaAucta
-Encoding: 134 -1 107
+Encoding: 110 -1 107
Width: 172
VWidth: 2048
Flags: HW
@@ -2670,7 +2670,7 @@ EndSplineSet
EndChar
StartChar: Stropha
-Encoding: 135 -1 108
+Encoding: 111 -1 108
Width: 172
VWidth: 2048
Flags: W
@@ -2695,7 +2695,7 @@ Validated: 33
EndChar
StartChar: hepisemaleft
-Encoding: 81 -1 109
+Encoding: 73 -1 109
Width: 1
VWidth: 2044
Flags: HW
@@ -2713,7 +2713,7 @@ EndSplineSet
EndChar
StartChar: porrectusam11
-Encoding: 136 -1 110
+Encoding: 112 -1 110
Width: 503
VWidth: 2553
Flags: HW
@@ -2735,7 +2735,7 @@ EndSplineSet
EndChar
StartChar: porrectusam12
-Encoding: 137 -1 111
+Encoding: 113 -1 111
Width: 628
VWidth: 2575
Flags: HW
@@ -2759,7 +2759,7 @@ EndSplineSet
EndChar
StartChar: porrectusam13
-Encoding: 138 -1 112
+Encoding: 114 -1 112
Width: 678
VWidth: 2556
Flags: HW
@@ -2783,7 +2783,7 @@ EndSplineSet
EndChar
StartChar: porrectusam14
-Encoding: 139 -1 113
+Encoding: 115 -1 113
Width: 721
VWidth: 2500
Flags: HW
@@ -2808,7 +2808,7 @@ EndSplineSet
EndChar
StartChar: porrectusam15
-Encoding: 140 -1 114
+Encoding: 116 -1 114
Width: 933
VWidth: 2048
Flags: HW
@@ -2833,7 +2833,7 @@ EndSplineSet
EndChar
StartChar: RoundBraceDown
-Encoding: 141 -1 115
+Encoding: 117 -1 115
Width: 937
VWidth: 2048
Flags: W
@@ -2859,7 +2859,7 @@ Validated: 1
EndChar
StartChar: OriscusDeminutus
-Encoding: 63 -1 116
+Encoding: 55 -1 116
Width: 168
VWidth: 0
Flags: W
@@ -2885,7 +2885,7 @@ Validated: 33
EndChar
StartChar: PunctumInclinatumAuctus
-Encoding: 93 -1 117
+Encoding: 85 -1 117
Width: 185
VWidth: 0
Flags: W
@@ -2908,7 +2908,7 @@ Validated: 33
EndChar
StartChar: VirgaReversaAscendens_op
-Encoding: 142 -1 118
+Encoding: 118 -1 118
Width: 166
VWidth: 2684
Flags: W
@@ -2936,7 +2936,7 @@ Validated: 1
EndChar
StartChar: VirgaReversaLongqueueAscendens_op
-Encoding: 143 -1 119
+Encoding: 119 -1 119
Width: 166
VWidth: 2684
Flags: W
@@ -2964,7 +2964,7 @@ Validated: 33
EndChar
StartChar: VirgaReversaLongqueueDescendens_op
-Encoding: 145 -1 120
+Encoding: 121 -1 120
Width: 168
VWidth: 2048
Flags: W
@@ -2994,7 +2994,7 @@ Validated: 1
EndChar
StartChar: VirgaReversaDescendens_op
-Encoding: 144 -1 121
+Encoding: 120 -1 121
Width: 168
VWidth: 2048
Flags: W
@@ -3023,7 +3023,7 @@ Validated: 1
EndChar
StartChar: PunctumAscendens_op
-Encoding: 148 -1 122
+Encoding: 122 -1 122
Width: 166
VWidth: 1149
Flags: W
@@ -3048,7 +3048,7 @@ Validated: 1
EndChar
StartChar: PunctumDescendens_op
-Encoding: 149 -1 123
+Encoding: 123 -1 123
Width: 166
VWidth: 1342
Flags: W
@@ -3072,7 +3072,7 @@ Validated: 33
EndChar
StartChar: auctusd1_op
-Encoding: 150 -1 124
+Encoding: 124 -1 124
Width: 166
VWidth: 2689
Flags: W
@@ -3098,7 +3098,7 @@ Validated: 1
EndChar
StartChar: auctusa1_op
-Encoding: 151 -1 125
+Encoding: 125 -1 125
Width: 166
VWidth: 2421
Flags: W
@@ -3125,7 +3125,7 @@ Validated: 1
EndChar
StartChar: auctusa2_op
-Encoding: 152 -1 126
+Encoding: 126 -1 126
Width: 166
VWidth: 2421
Flags: W
@@ -3152,7 +3152,7 @@ Validated: 1
EndChar
StartChar: PunctumAuctusLineBL_op
-Encoding: 153 -1 127
+Encoding: 127 -1 127
Width: 166
VWidth: 2689
Flags: W
@@ -3179,7 +3179,7 @@ Validated: 1
EndChar
StartChar: pesdeminutus_op
-Encoding: 154 -1 128
+Encoding: 128 -1 128
Width: 166
VWidth: 2684
Flags: W
@@ -3206,7 +3206,7 @@ Validated: 1
EndChar
StartChar: PunctumCavumInclinatum
-Encoding: 155 -1 129
+Encoding: 129 -1 129
Width: 185
VWidth: 2612
Flags: W
@@ -3229,7 +3229,7 @@ Validated: 1
EndChar
StartChar: PunctumCavumInclinatumAuctus
-Encoding: 157 -1 130
+Encoding: 131 -1 130
Width: 185
VWidth: 0
Flags: W
@@ -3257,7 +3257,7 @@ Validated: 33
EndChar
StartChar: PunctumCavumInclinatumAuctusHole
-Encoding: 158 -1 131
+Encoding: 132 -1 131
Width: 185
VWidth: 0
Flags: W
@@ -3277,7 +3277,7 @@ Validated: 1
EndChar
StartChar: PunctumCavumInclinatumHole
-Encoding: 156 -1 132
+Encoding: 130 -1 132
Width: 185
VWidth: 2612
Flags: W
@@ -3295,58 +3295,58 @@ EndSplineSet
Validated: 1
EndChar
-StartChar: OriscusReversusLineTLBR
-Encoding: 159 -1 133
+StartChar: DescendensOriscusLineTLBR
+Encoding: 133 -1 133
Width: 166
VWidth: 2537
-Flags: HW
-HStem: -37.1504 176.8<11.2647 91.8293>
-VStem: -0.200195 166.4<-3.28925 139.081> -0.000198364 17.9728<141.255 159>
+Flags: W
+HStem: -3.34961 175.5<73.1653 147.56>
+VStem: -0 17.9727<141.255 159> 148 18<-74 -5.00648>
LayerCount: 2
Fore
SplineSet
-166.2 121.45 m 2xc0
+165.999 121.45 m 2
166 -74 l 1
148 -74 l 1
147.987 -9.2627 l 1
142.562 -5.54004 135.722 -3.34961 127.2 -3.34961 c 0
104.755 -3.34961 59.8643 -37.1504 38.7998 -37.1504 c 0
- 7.59961 -37.1504 -0.200195 -12.9697 -0.200195 13.5498 c 2
- -0 159 l 1xa0
- 18 159 l 1xa0
+ 7.59961 -37.1504 0 -12.9697 0 13.5498 c 2
+ -0 159 l 1
+ 18 159 l 1
17.9727 145.398 l 1
23.4248 141.764 30.2881 139.65 38.7998 139.65 c 0
59.8818 139.65 104.721 172.15 127.2 172.15 c 0
- 150.6 172.15 166.2 160.06 166.2 121.45 c 2xc0
+ 150.6 172.15 165.999 160.061 165.999 121.45 c 2
EndSplineSet
EndChar
-StartChar: OriscusReversusLineTL
-Encoding: 160 -1 134
+StartChar: DescendensOriscusLineTL
+Encoding: 134 -1 134
Width: 166
VWidth: 2537
Flags: HW
-HStem: -37.1504 176.8<11.2647 91.8293>
-VStem: -0.200195 166.4<-3.28925 139.081> -0.000198364 17.9728<141.255 159>
+HStem: -37.1504 176.8<11.3309 91.8296>
+VStem: 0 166.2<-3.28925 139.081> 0 17.9727<141.255 159>
LayerCount: 2
Fore
SplineSet
18 159 m 1xa0
- 17.9727 145.398 l 1
- 23.4248 141.764 30.2881 139.65 38.7998 139.65 c 0
+ 18 145 l 1xa0
+ 23 141 30.2881 139.65 38.7998 139.65 c 0
59.8818 139.65 104.721 172.15 127.2 172.15 c 0
- 150.6 172.15 166.2 160.06 166.2 121.45 c 2xc0
+ 150.6 172.15 166.2 160.06 166.2 121.45 c 2
166.2 -55.3496 l 1
166.2 -29.9844 156.915 -3.34961 127.2 -3.34961 c 0
104.755 -3.34961 59.8643 -37.1504 38.7998 -37.1504 c 0
- 7.59961 -37.1504 -0.200195 -12.9697 -0.200195 13.5498 c 2
- -0 159 l 1xa0
+ 7.59961 -37.1504 0 -12.9697 0 13.5498 c 2xc0
+ -0 159 l 1
18 159 l 1xa0
EndSplineSet
EndChar
StartChar: UpperPesOneNothing
-Encoding: 161 -1 135
+Encoding: 135 -1 135
Width: 166
VWidth: 2613
Flags: W
@@ -3377,8 +3377,8 @@ SplineSet
EndSplineSet
EndChar
-StartChar: OriscusCavum
-Encoding: 164 -1 136
+StartChar: AscendensOriscusCavum
+Encoding: 136 -1 136
Width: 166
VWidth: 2537
Flags: W
@@ -3408,8 +3408,8 @@ SplineSet
EndSplineSet
EndChar
-StartChar: OriscusCavumHole
-Encoding: 165 -1 137
+StartChar: AscendensOriscusCavumHole
+Encoding: 137 -1 137
Width: 166
VWidth: 2537
Flags: W
@@ -3430,8 +3430,8 @@ SplineSet
EndSplineSet
EndChar
-StartChar: OriscusCavumReversus
-Encoding: 166 -1 138
+StartChar: DescendensOriscusCavum
+Encoding: 138 -1 138
Width: 166
VWidth: 2537
Flags: W
@@ -3461,8 +3461,8 @@ SplineSet
EndSplineSet
EndChar
-StartChar: OriscusCavumReversusHole
-Encoding: 167 -1 139
+StartChar: DescendensOriscusCavumHole
+Encoding: 139 -1 139
Width: 166
VWidth: 2537
Flags: W
@@ -3484,7 +3484,7 @@ EndSplineSet
EndChar
StartChar: OriscusCavumDeminutus
-Encoding: 168 -1 140
+Encoding: 140 -1 140
Width: 168
VWidth: 2612
Flags: W
@@ -3517,7 +3517,7 @@ EndSplineSet
EndChar
StartChar: OriscusCavumDeminutusHole
-Encoding: 169 -1 141
+Encoding: 141 -1 141
Width: 168
VWidth: 2612
Flags: W
@@ -3540,7 +3540,7 @@ EndSplineSet
EndChar
StartChar: Virgula.2
-Encoding: 170 -1 142
+Encoding: 142 -1 142
Width: 143
VWidth: 1788
Flags: HW
@@ -3562,7 +3562,7 @@ EndSplineSet
EndChar
StartChar: DivisioMinima.2
-Encoding: 171 -1 143
+Encoding: 143 -1 143
Width: 19
VWidth: 1418
Flags: HW
@@ -3580,7 +3580,7 @@ EndSplineSet
EndChar
StartChar: DivisioMinor.2
-Encoding: 172 -1 144
+Encoding: 144 -1 144
Width: 19
VWidth: 2048
Flags: W
@@ -3598,7 +3598,7 @@ EndSplineSet
EndChar
StartChar: DivisioMaior.2
-Encoding: 173 -1 145
+Encoding: 145 -1 145
Width: 19
VWidth: 2048
Flags: W
@@ -3616,7 +3616,7 @@ EndSplineSet
EndChar
StartChar: Virgula.3
-Encoding: 174 -1 146
+Encoding: 146 -1 146
Width: 143
VWidth: 2103
Flags: HW
@@ -3638,7 +3638,7 @@ EndSplineSet
EndChar
StartChar: DivisioMinima.3
-Encoding: 175 -1 147
+Encoding: 147 -1 147
Width: 19
VWidth: 1733
Flags: HW
@@ -3656,7 +3656,7 @@ EndSplineSet
EndChar
StartChar: DivisioMinor.3
-Encoding: 176 -1 148
+Encoding: 148 -1 148
Width: 19
VWidth: 2048
Flags: W
@@ -3674,7 +3674,7 @@ EndSplineSet
EndChar
StartChar: DivisioMaior.3
-Encoding: 177 -1 149
+Encoding: 149 -1 149
Width: 19
VWidth: 2048
Flags: W
@@ -3691,7 +3691,7 @@ EndSplineSet
EndChar
StartChar: Virgula.5
-Encoding: 178 -1 150
+Encoding: 150 -1 150
Width: 143
VWidth: 2733
Flags: HW
@@ -3713,7 +3713,7 @@ EndSplineSet
EndChar
StartChar: DivisioMinima.5
-Encoding: 179 -1 151
+Encoding: 151 -1 151
Width: 19
VWidth: 2363
Flags: HW
@@ -3731,7 +3731,7 @@ EndSplineSet
EndChar
StartChar: DivisioMinor.5
-Encoding: 180 -1 152
+Encoding: 152 -1 152
Width: 19
VWidth: 2048
Flags: W
@@ -3748,7 +3748,7 @@ EndSplineSet
EndChar
StartChar: DivisioMaior.5
-Encoding: 181 -1 153
+Encoding: 153 -1 153
Width: 19
VWidth: 2048
Flags: W
@@ -3765,7 +3765,7 @@ EndSplineSet
EndChar
StartChar: StrophaAuctaLongtail
-Encoding: 182 -1 154
+Encoding: 154 -1 154
Width: 172
VWidth: 2048
Flags: HW
@@ -3787,7 +3787,7 @@ EndSplineSet
EndChar
StartChar: rqueue
-Encoding: 183 -1 155
+Encoding: 155 -1 155
Width: 18
VWidth: 2048
Flags: HW
@@ -3806,7 +3806,7 @@ EndSplineSet
EndChar
StartChar: queuebase
-Encoding: 184 -1 156
+Encoding: 156 -1 156
Width: 18
VWidth: 2048
Flags: HW
@@ -3824,7 +3824,7 @@ EndSplineSet
EndChar
StartChar: virgabase
-Encoding: 185 -1 157
+Encoding: 157 -1 157
Width: 166
VWidth: 2637
Flags: HW
@@ -3844,7 +3844,7 @@ EndSplineSet
EndChar
StartChar: rvirgabase
-Encoding: 186 -1 158
+Encoding: 158 -1 158
Width: 166
VWidth: 2637
Flags: HW
@@ -3864,7 +3864,7 @@ EndSplineSet
EndChar
StartChar: VirgaBaseLineBL
-Encoding: 187 -1 159
+Encoding: 159 -1 159
Width: 166
VWidth: 2637
Flags: HW
@@ -3888,7 +3888,7 @@ EndSplineSet
EndChar
StartChar: rvbase
-Encoding: 188 -1 160
+Encoding: 160 -1 160
Width: 166
VWidth: 2637
Flags: HW
@@ -3912,7 +3912,7 @@ EndSplineSet
EndChar
StartChar: tmpglyph
-Encoding: 189 -1 161
+Encoding: 161 -1 161
Width: 18
VWidth: 2048
Flags: HW
@@ -3921,8 +3921,8 @@ VStem: 0 1<64 96>
LayerCount: 2
EndChar
-StartChar: OriscusReversusLineBL
-Encoding: 190 -1 162
+StartChar: DescendensOriscusLineBL
+Encoding: 162 -1 162
Width: 166
VWidth: 2537
Flags: HW
@@ -3945,8 +3945,8 @@ SplineSet
EndSplineSet
EndChar
-StartChar: osbase
-Encoding: 191 -1 163
+StartChar: AscendensOriscusLineBLBR
+Encoding: 163 -1 163
Width: 166
VWidth: 2537
Flags: HW
@@ -3955,19 +3955,215 @@ VStem: 0 18.2002<-377.849 -4.93091> 148 18<-53 -32.6729>
LayerCount: 2
Fore
SplineSet
-0 -62 m 5
+0 -62 m 1
0 121 l 2
0 159.61 15.4004 172.15 38.7998 172.15 c 0
61.2793 172.15 106.118 139.65 127.2 139.65 c 0
156.411 139.65 166 164.195 166 190 c 1
- 166 -53 l 1
- 150.333 -53 157.989 -53.0137 148 -53 c 1
- 147.989 -40.0137 148 -52.8076 148 -32.6729 c 1
+ 166 -53 l 5
+ 148 -53 l 5
+ 148 -53 148 -52.8076 148 -32.6729 c 1
142.692 -35.7363 135.586 -37.1504 127.2 -37.1504 c 0
106.136 -37.1504 61.2451 -3.34961 38.7998 -3.34961 c 0
30.2247 -3.34961 23.2744 -5.56738 17.834 -9.34668 c 1
17.8938 -62 l 1
- 0 -62 l 5
+ 0 -62 l 1
+EndSplineSet
+EndChar
+
+StartChar: AscendensOriscusLineBR
+Encoding: 164 -1 164
+Width: 166
+VWidth: 2537
+Flags: W
+HStem: -37.1504 176.8<74.1752 147.734>
+VStem: -0.200195 166.2<-3.34961 139.081> 148 18<-53 -32.1>
+LayerCount: 2
+Fore
+SplineSet
+147.987 -32.1 m 1xa0
+ 142.617 -35.3146 135.797 -37.1504 127.2 -37.1504 c 0
+ 106.136 -37.1504 61.2451 -3.34961 38.7998 -3.34961 c 0
+ 9.08496 -3.34961 -0.200195 -29.9844 -0.200195 -55.3496 c 1
+ -0.200195 121.45 l 2xc0
+ -0.200195 160.06 15.4004 172.15 38.7998 172.15 c 0
+ 61.2793 172.15 106.118 139.65 127.2 139.65 c 0
+ 156.411 139.65 166 164.545 166 190.35 c 1
+ 166 -53 l 1
+ 148 -53 l 1
+ 147.987 -32.1 l 1xa0
+EndSplineSet
+EndChar
+
+StartChar: AscendensOriscusLineTLBR
+Encoding: 165 -1 165
+Width: 166
+VWidth: 2537
+Flags: W
+HStem: -3.34961 175.5<7.39664 92.8347>
+VStem: 148 18<-53 -32.1>
+LayerCount: 2
+Fore
+SplineSet
+-0 159 m 5
+ 8.75293 159 l 1
+ 15.581 168.549 26.0288 172.15 38.7998 172.15 c 0
+ 61.2793 172.15 106.118 139.65 127.2 139.65 c 0
+ 156.411 139.65 166 164.545 166 190.35 c 1
+ 166 -53 l 1
+ 148 -53 l 1
+ 147.987 -32.1 l 1
+ 142.617 -35.3146 135.797 -37.1504 127.2 -37.1504 c 0
+ 106.136 -37.1504 61.2451 -3.34961 38.7998 -3.34961 c 0
+ 9.08496 -3.34961 -0 -29.9834 -0 -55.3486 c 1
+ -0 159 l 5
+EndSplineSet
+EndChar
+
+StartChar: AscendensOriscusLineTLTR
+Encoding: 166 -1 166
+Width: 166
+VWidth: 2537
+Flags: W
+HStem: -37.1504 176.8<74.1705 154.644>
+VStem: -0 166<-3.28925 139.65> 147.977 18.0231<141.245 159>
+LayerCount: 2
+Fore
+SplineSet
+166 13.5498 m 2xc0
+ 166 -12.9697 158.4 -37.1504 127.2 -37.1504 c 0
+ 106.136 -37.1504 61.2451 -3.34961 38.7998 -3.34961 c 0
+ 9.08496 -3.34961 -0 -29.9844 -0 -55.3496 c 1
+ -0 159 l 1xc0
+ 8.73101 159.009 l 1
+ 15.5875 168.551 26.0328 172.15 38.7998 172.15 c 0
+ 61.2793 172.15 106.118 139.65 127.2 139.65 c 0
+ 135.686 139.65 142.533 141.751 147.977 145.365 c 1
+ 148 159 l 1
+ 166 159 l 1xa0
+ 166 13.5498 l 2xc0
+EndSplineSet
+EndChar
+
+StartChar: AscendensOriscusLineTL
+Encoding: 167 -1 167
+Width: 166
+VWidth: 2537
+Flags: W
+HStem: -3.34961 175.5<7.38633 92.8347>
+VStem: -0 166.2<-3.28925 139.65>
+LayerCount: 2
+Fore
+SplineSet
+-0 159 m 1
+ 8.73101 159.009 l 1
+ 15.5875 168.551 26.0328 172.15 38.7998 172.15 c 0
+ 61.2793 172.15 106.118 139.65 127.2 139.65 c 0
+ 156.411 139.65 166.2 164.545 166.2 190.35 c 1
+ 166.2 13.5498 l 2
+ 166.2 -12.9697 158.4 -37.1504 127.2 -37.1504 c 0
+ 106.136 -37.1504 61.2451 -3.34961 38.7998 -3.34961 c 0
+ 9.08496 -3.34961 -0 -29.9844 -0 -55.3496 c 1
+ -0 159 l 1
+EndSplineSet
+EndChar
+
+StartChar: DescendensOriscusLineBLBR
+Encoding: 168 -1 168
+Width: 166
+VWidth: 2537
+Flags: W
+HStem: -3.34961 175.5<73.1653 147.574>
+VStem: 0 18<-74 -32.0938> 148 18<-53 -5.01182>
+LayerCount: 2
+Fore
+SplineSet
+166 -53 m 1
+ 148 -53 l 1
+ 148.014 -9.28125 l 1
+ 142.585 -5.54728 135.736 -3.34961 127.2 -3.34961 c 0
+ 104.755 -3.34961 59.8643 -37.1504 38.7998 -37.1504 c 0
+ 30.1975 -37.1504 23.3741 -35.3123 18.0025 -32.0938 c 1
+ 18 -74 l 5
+ 0 -74 l 5
+ -0 190.35 l 1
+ -0 164.545 9.58887 139.65 38.7998 139.65 c 0
+ 59.8818 139.65 104.721 172.15 127.2 172.15 c 0
+ 150.6 172.15 166 160.061 166 121.45 c 2
+ 166 -53 l 1
+EndSplineSet
+EndChar
+
+StartChar: DescendensOriscusLineBLTR
+Encoding: 169 -1 169
+Width: 166
+VWidth: 2537
+Flags: W
+HStem: -37.1504 176.8<18.5863 91.8248>
+VStem: 0 18<-74 -32.1039>
+LayerCount: 2
+Fore
+SplineSet
+0 190.35 m 1
+ 0 164.545 9.58887 139.65 38.7998 139.65 c 0
+ 59.8818 139.65 104.721 172.15 127.2 172.15 c 0
+ 139.982 172.15 150.436 168.543 157.292 158.977 c 1
+ 166 159 l 1
+ 166 -55.3506 l 1
+ 166 -29.9854 156.915 -3.34961 127.2 -3.34961 c 0
+ 104.755 -3.34961 59.8643 -37.1504 38.7998 -37.1504 c 0
+ 30.2066 -37.1504 23.3885 -35.3161 18.0195 -32.1039 c 1
+ 18 -74 l 1
+ 0 -74 l 1
+ 0 190.35 l 1
+EndSplineSet
+EndChar
+
+StartChar: DescendensOriscusLineTLTR
+Encoding: 170 -1 170
+Width: 166
+VWidth: 2537
+Flags: W
+HStem: -37.1504 176.8<11.3528 91.8296>
+VStem: -0.000976562 166.001<-3.28925 139.65> -0 18.0174<141.246 159>
+LayerCount: 2
+Fore
+SplineSet
+-0 159 m 1xa0
+ 18 159 l 1
+ 18.0174 145.369 l 1xa0
+ 23.4622 141.752 30.3109 139.65 38.7998 139.65 c 0
+ 59.8818 139.65 104.721 172.15 127.2 172.15 c 0
+ 139.982 172.15 150.436 168.543 157.292 158.977 c 1
+ 166 159 l 1
+ 166 -55.3506 l 1
+ 166 -29.9854 156.915 -3.34961 127.2 -3.34961 c 0
+ 104.755 -3.34961 59.8643 -37.1504 38.7998 -37.1504 c 0
+ 7.59961 -37.1504 -0.000976562 -12.9697 -0.000976562 13.5498 c 2xc0
+ -0 159 l 1xa0
+EndSplineSet
+EndChar
+
+StartChar: DescendensOriscusLineTR
+Encoding: 171 -1 171
+Width: 166
+VWidth: 2537
+Flags: HW
+HStem: -3.34961 175.5<73.1653 158.625>
+VStem: -0.200195 166.2<-3.28925 13.5498>
+LayerCount: 2
+Fore
+SplineSet
+166 159 m 1
+ 166 -55.3506 l 1
+ 166 -29.9854 156.915 -3.34961 127.2 -3.34961 c 0
+ 104.755 -3.34961 59.8643 -37.1504 38.7998 -37.1504 c 0
+ 7.59961 -37.1504 -0.200195 -12.9697 -0.200195 13.5498 c 2
+ -0.200195 190.35 l 1
+ -0.200195 164.545 9.58887 139.65 38.7998 139.65 c 0
+ 59.8818 139.65 104.721 172.15 127.2 172.15 c 0
+ 139.982 172.15 150.436 168.543 157.292 158.977 c 1
+ 166 159 l 1
EndSplineSet
EndChar
EndChars
diff --git a/Master/texmf-dist/fonts/source/gregoriotex/gregorio-base.sfd b/Master/texmf-dist/fonts/source/gregoriotex/gregorio-base.sfd
index 06a5570935c..2ed5eb3be19 100644
--- a/Master/texmf-dist/fonts/source/gregoriotex/gregorio-base.sfd
+++ b/Master/texmf-dist/fonts/source/gregoriotex/gregorio-base.sfd
@@ -19,7 +19,7 @@ OS2Version: 0
OS2_WeightWidthSlopeOnly: 0
OS2_UseTypoMetrics: 1
CreationTime: 1176402534
-ModificationTime: 1455123251
+ModificationTime: 1457829942
OS2TypoAscent: 0
OS2TypoAOffset: 1
OS2TypoDescent: 0
@@ -37,13 +37,12 @@ OS2Vendor: 'PfEd'
MarkAttachClasses: 1
DEI: 91125
Encoding: Custom
-Compacted: 1
UnicodeInterp: none
NameList: Adobe Glyph List
DisplaySize: -96
AntiAlias: 1
FitToEm: 1
-WinInfo: 0 19 8
+WinInfo: 144 8 2
BeginPrivate: 0
EndPrivate
Grid
@@ -57,7 +56,7 @@ Grid
22 -700 l 0
EndSplineSet
TeXData: 1 0 0 346030 173015 115343 0 1048576 115343 783286 444596 497025 792723 393216 433062 380633 303038 157286 324010 404750 52429 2506097 1059062 262144
-BeginChars: 375 152
+BeginChars: 160 160
StartChar: Punctum
Encoding: 0 -1 0
@@ -152,7 +151,7 @@ EndSplineSet
Validated: 1
EndChar
-StartChar: OriscusReversus
+StartChar: DescendensOriscus
Encoding: 4 -1 4
Width: 164
VWidth: 2048
@@ -179,7 +178,7 @@ EndSplineSet
Validated: 1
EndChar
-StartChar: Oriscus
+StartChar: AscendensOriscus
Encoding: 5 -1 5
Width: 164
VWidth: 2048
@@ -330,7 +329,7 @@ Validated: 33
EndChar
StartChar: DivisioMinima
-Encoding: 14 -1 12
+Encoding: 12 -1 12
AltUni2: 000050.ffffffff.0
Width: 19
VWidth: 2048
@@ -349,7 +348,7 @@ Validated: 1
EndChar
StartChar: DivisioMinor
-Encoding: 15 -1 13
+Encoding: 13 -1 13
Width: 19
VWidth: 2048
Flags: HW
@@ -367,7 +366,7 @@ Validated: 1
EndChar
StartChar: pesdeminutus
-Encoding: 17 -1 14
+Encoding: 14 -1 14
Width: 164
VWidth: 2048
Flags: HW
@@ -391,7 +390,7 @@ Validated: 33
EndChar
StartChar: auctusd1
-Encoding: 18 -1 15
+Encoding: 15 -1 15
Width: 164
VWidth: 2048
Flags: HW
@@ -415,7 +414,7 @@ Validated: 33
EndChar
StartChar: auctusa1
-Encoding: 19 -1 16
+Encoding: 16 -1 16
Width: 164
VWidth: 2048
Flags: W
@@ -439,7 +438,7 @@ Validated: 33
EndChar
StartChar: mdeminutus
-Encoding: 20 -1 17
+Encoding: 17 -1 17
Width: 186
VWidth: 2048
Flags: HW
@@ -461,7 +460,7 @@ Validated: 33
EndChar
StartChar: Natural
-Encoding: 21 -1 18
+Encoding: 18 -1 18
Width: 201
VWidth: 2048
Flags: HW
@@ -487,7 +486,7 @@ Validated: 1
EndChar
StartChar: FClef
-Encoding: 22 -1 19
+Encoding: 19 -1 19
Width: 321
VWidth: 2048
Flags: HW
@@ -523,7 +522,7 @@ Validated: 33
EndChar
StartChar: CustosDownLong
-Encoding: 23 -1 20
+Encoding: 20 -1 20
Width: 85
VWidth: 2048
Flags: HW
@@ -543,7 +542,7 @@ Validated: 33
EndChar
StartChar: CustosDownShort
-Encoding: 24 -1 21
+Encoding: 21 -1 21
Width: 85
VWidth: 2048
Flags: HW
@@ -563,7 +562,7 @@ Validated: 33
EndChar
StartChar: CustosUpLong
-Encoding: 25 -1 22
+Encoding: 22 -1 22
Width: 85
VWidth: 2048
Flags: HW
@@ -583,7 +582,7 @@ Validated: 33
EndChar
StartChar: CustosUpShort
-Encoding: 26 -1 23
+Encoding: 23 -1 23
Width: 85
VWidth: 2048
Flags: HW
@@ -603,7 +602,7 @@ Validated: 33
EndChar
StartChar: PunctumLineBR
-Encoding: 27 -1 24
+Encoding: 24 -1 24
Width: 164
VWidth: 2048
Flags: HW
@@ -624,7 +623,7 @@ Validated: 1
EndChar
StartChar: PunctumLineBL
-Encoding: 28 -1 25
+Encoding: 25 -1 25
Width: 164
VWidth: 2048
Flags: HW
@@ -645,7 +644,7 @@ Validated: 1
EndChar
StartChar: PunctumLineTL
-Encoding: 29 -1 26
+Encoding: 26 -1 26
Width: 164
VWidth: 2048
Flags: HW
@@ -666,7 +665,7 @@ Validated: 33
EndChar
StartChar: PunctumLineTR
-Encoding: 30 -1 27
+Encoding: 27 -1 27
Width: 164
VWidth: 2048
Flags: HW
@@ -687,7 +686,7 @@ Validated: 33
EndChar
StartChar: PunctumLineBLBR
-Encoding: 31 -1 28
+Encoding: 28 -1 28
Width: 164
VWidth: 2048
Flags: HW
@@ -709,7 +708,7 @@ Validated: 33
EndChar
StartChar: base6
-Encoding: 32 -1 29
+Encoding: 29 -1 29
Width: 164
VWidth: 2048
Flags: HW
@@ -731,7 +730,7 @@ Validated: 33
EndChar
StartChar: line2
-Encoding: 33 -1 30
+Encoding: 30 -1 30
Width: 22
VWidth: 2048
Flags: HW
@@ -749,7 +748,7 @@ Validated: 1
EndChar
StartChar: line3
-Encoding: 34 -1 31
+Encoding: 31 -1 31
Width: 22
VWidth: 2048
Flags: HW
@@ -767,7 +766,7 @@ Validated: 1
EndChar
StartChar: line4
-Encoding: 35 -1 32
+Encoding: 32 -1 32
Width: 22
VWidth: 2048
Flags: HW
@@ -785,7 +784,7 @@ Validated: 1
EndChar
StartChar: line5
-Encoding: 36 -1 33
+Encoding: 33 -1 33
Width: 22
VWidth: 2048
Flags: HW
@@ -803,7 +802,7 @@ Validated: 1
EndChar
StartChar: QuilismaLineTR
-Encoding: 40 -1 34
+Encoding: 34 -1 34
Width: 164
VWidth: 2048
Flags: HW
@@ -832,8 +831,8 @@ EndSplineSet
Validated: 33
EndChar
-StartChar: OriscusLineTR
-Encoding: 41 -1 35
+StartChar: AscendensOriscusLineTR
+Encoding: 35 -1 35
Width: 164
VWidth: 2048
Flags: HW
@@ -858,7 +857,7 @@ Validated: 33
EndChar
StartChar: pbase
-Encoding: 42 -1 36
+Encoding: 36 -1 36
Width: 164
VWidth: 2048
Flags: HW
@@ -879,7 +878,7 @@ Validated: 33
EndChar
StartChar: idebilis
-Encoding: 43 -1 37
+Encoding: 37 -1 37
Width: 110
VWidth: 2048
Flags: HW
@@ -901,7 +900,7 @@ Validated: 33
EndChar
StartChar: deminutus
-Encoding: 44 -1 38
+Encoding: 38 -1 38
Width: 110
VWidth: 2048
Flags: HW
@@ -923,7 +922,7 @@ Validated: 33
EndChar
StartChar: rdeminutus
-Encoding: 45 -1 39
+Encoding: 39 -1 39
Width: 110
VWidth: 2048
Flags: HW
@@ -945,7 +944,7 @@ Validated: 33
EndChar
StartChar: PunctumAuctusLineBL
-Encoding: 46 -1 40
+Encoding: 40 -1 40
Width: 164
VWidth: 2048
Flags: HW
@@ -969,7 +968,7 @@ Validated: 33
EndChar
StartChar: auctusa2
-Encoding: 47 -1 41
+Encoding: 41 -1 41
Width: 164
VWidth: 2048
Flags: HW
@@ -993,7 +992,7 @@ Validated: 33
EndChar
StartChar: porrectus1
-Encoding: 48 -1 42
+Encoding: 42 -1 42
Width: 490
VWidth: 2048
Flags: HW
@@ -1015,7 +1014,7 @@ Validated: 33
EndChar
StartChar: porrectus2
-Encoding: 49 -1 43
+Encoding: 43 -1 43
Width: 575
VWidth: 2048
Flags: HW
@@ -1037,7 +1036,7 @@ Validated: 33
EndChar
StartChar: porrectus3
-Encoding: 50 -1 44
+Encoding: 44 -1 44
Width: 650
VWidth: 2048
Flags: HW
@@ -1059,7 +1058,7 @@ Validated: 33
EndChar
StartChar: porrectus4
-Encoding: 51 -1 45
+Encoding: 45 -1 45
Width: 740
VWidth: 2048
Flags: HW
@@ -1081,7 +1080,7 @@ Validated: 33
EndChar
StartChar: porrectus5
-Encoding: 52 -1 46
+Encoding: 46 -1 46
Width: 931
VWidth: 2048
Flags: HW
@@ -1103,7 +1102,7 @@ Validated: 33
EndChar
StartChar: porrectusflexus1
-Encoding: 53 -1 47
+Encoding: 47 -1 47
Width: 340
VWidth: 2048
Flags: HW
@@ -1125,7 +1124,7 @@ Validated: 33
EndChar
StartChar: porrectusflexus2
-Encoding: 54 -1 48
+Encoding: 48 -1 48
Width: 428
VWidth: 2048
Flags: HW
@@ -1147,7 +1146,7 @@ Validated: 33
EndChar
StartChar: porrectusflexus3
-Encoding: 55 -1 49
+Encoding: 49 -1 49
Width: 586
VWidth: 2048
Flags: HW
@@ -1169,7 +1168,7 @@ Validated: 33
EndChar
StartChar: porrectusflexus4
-Encoding: 56 -1 50
+Encoding: 50 -1 50
Width: 670
VWidth: 2048
Flags: HW
@@ -1191,7 +1190,7 @@ Validated: 33
EndChar
StartChar: porrectusflexus5
-Encoding: 57 -1 51
+Encoding: 51 -1 51
Width: 931
VWidth: 2048
Flags: HW
@@ -1213,7 +1212,7 @@ Validated: 33
EndChar
StartChar: PesQuilismaOneNothing
-Encoding: 58 -1 52
+Encoding: 52 -1 52
Width: 164
VWidth: 2048
Flags: HW
@@ -1247,7 +1246,7 @@ Validated: 33
EndChar
StartChar: StrophaAucta
-Encoding: 59 -1 53
+Encoding: 53 -1 53
Width: 164
VWidth: 2048
Flags: HW
@@ -1268,7 +1267,7 @@ Validated: 33
EndChar
StartChar: PunctumInclinatumAuctus
-Encoding: 60 -1 54
+Encoding: 54 -1 54
Width: 164
VWidth: 2048
Flags: HW
@@ -1291,7 +1290,7 @@ Validated: 1
EndChar
StartChar: AuctumMora
-Encoding: 62 -1 55
+Encoding: 55 -1 55
Width: 71
VWidth: 2679
Flags: HW
@@ -1309,7 +1308,7 @@ Validated: 1
EndChar
StartChar: VEpisema
-Encoding: 64 -1 56
+Encoding: 57 -1 56
Width: 40
VWidth: 2048
Flags: HW
@@ -1329,7 +1328,7 @@ Validated: 1
EndChar
StartChar: PunctumDeminutus
-Encoding: 65 -1 57
+Encoding: 58 -1 57
Width: 110
VWidth: 2048
Flags: HW
@@ -1349,7 +1348,7 @@ Validated: 33
EndChar
StartChar: hepisema_base
-Encoding: 66 -1 58
+Encoding: 59 -1 58
Width: 1
VWidth: 1968
Flags: HW
@@ -1366,7 +1365,7 @@ EndSplineSet
EndChar
StartChar: PesOneNothing
-Encoding: 67 -1 59
+Encoding: 60 -1 59
Width: 164
VWidth: 2048
Flags: HW
@@ -1391,7 +1390,7 @@ Validated: 33
EndChar
StartChar: CustosUpMedium
-Encoding: 68 -1 60
+Encoding: 61 -1 60
Width: 85
VWidth: 2048
Flags: HW
@@ -1411,7 +1410,7 @@ Validated: 33
EndChar
StartChar: CustosDownMedium
-Encoding: 69 -1 61
+Encoding: 62 -1 61
Width: 85
VWidth: 2048
Flags: HW
@@ -1431,7 +1430,7 @@ Validated: 33
EndChar
StartChar: Accentus
-Encoding: 70 -1 62
+Encoding: 63 -1 62
Width: 99
VWidth: 1594
Flags: W
@@ -1453,7 +1452,7 @@ Validated: 1
EndChar
StartChar: AccentusReversus
-Encoding: 71 -1 63
+Encoding: 64 -1 63
Width: 99
VWidth: 1594
Flags: W
@@ -1475,7 +1474,7 @@ Validated: 1
EndChar
StartChar: SemicirculusReversus
-Encoding: 72 -1 64
+Encoding: 65 -1 64
Width: 125
VWidth: 1583
Flags: W
@@ -1495,7 +1494,7 @@ Validated: 1
EndChar
StartChar: Semicirculus
-Encoding: 73 -1 65
+Encoding: 66 -1 65
Width: 124
VWidth: 1606
Flags: W
@@ -1515,7 +1514,7 @@ Validated: 1
EndChar
StartChar: Circulus
-Encoding: 74 -1 66
+Encoding: 67 -1 66
Width: 124
VWidth: 1594
Flags: W
@@ -1538,7 +1537,7 @@ Validated: 1
EndChar
StartChar: CClefChange
-Encoding: 75 -1 67
+Encoding: 68 -1 67
Width: 140
VWidth: 2048
Flags: HW
@@ -1567,7 +1566,7 @@ Validated: 1
EndChar
StartChar: FClefChange
-Encoding: 76 -1 68
+Encoding: 69 -1 68
Width: 321
VWidth: 2048
Flags: HW
@@ -1603,7 +1602,7 @@ Validated: 33
EndChar
StartChar: VEpisema.circumflexus
-Encoding: 77 -1 69
+Encoding: 70 -1 69
Width: 108
VWidth: 2048
Flags: W
@@ -1627,7 +1626,7 @@ Validated: 33
EndChar
StartChar: PunctumCavum
-Encoding: 78 -1 70
+Encoding: 71 -1 70
Width: 164
VWidth: 2048
Flags: HW
@@ -1654,7 +1653,7 @@ Validated: 1
EndChar
StartChar: LineaPunctum
-Encoding: 79 -1 71
+Encoding: 72 -1 71
Width: 266
VWidth: 2048
Flags: HW
@@ -1688,7 +1687,7 @@ Validated: 1
EndChar
StartChar: LineaPunctumCavum
-Encoding: 80 -1 72
+Encoding: 73 -1 72
Width: 266
VWidth: 2048
Flags: HW
@@ -1729,7 +1728,7 @@ Validated: 1
EndChar
StartChar: PunctumSmall
-Encoding: 81 -1 73
+Encoding: 74 -1 73
Width: 154
VWidth: 2048
Flags: HW
@@ -1750,10 +1749,10 @@ Validated: 1
EndChar
StartChar: hepisemaright
-Encoding: 83 -1 74
+Encoding: 76 -1 74
Width: 2
VWidth: 1968
-Flags: HWO
+Flags: HW
HStem: -489 15 -174 15 141 15 456 15
LayerCount: 2
Fore
@@ -1767,7 +1766,7 @@ EndSplineSet
EndChar
StartChar: mpdeminutus
-Encoding: 84 -1 75
+Encoding: 77 -1 75
Width: 186
VWidth: 2048
Flags: HW
@@ -1791,7 +1790,7 @@ Validated: 33
EndChar
StartChar: PunctumDescendens
-Encoding: 85 -1 76
+Encoding: 78 -1 76
Width: 164
VWidth: 2048
Flags: HW
@@ -1814,7 +1813,7 @@ Validated: 33
EndChar
StartChar: PunctumAscendens
-Encoding: 86 -1 77
+Encoding: 79 -1 77
Width: 164
VWidth: 2048
Flags: HW
@@ -1837,7 +1836,7 @@ Validated: 33
EndChar
StartChar: mnbdeminutus
-Encoding: 87 -1 78
+Encoding: 80 -1 78
Width: 186
VWidth: 2048
Flags: HW
@@ -1859,7 +1858,7 @@ Validated: 33
EndChar
StartChar: mnbpdeminutus
-Encoding: 88 -1 79
+Encoding: 81 -1 79
Width: 186
VWidth: 2048
Flags: HW
@@ -1881,7 +1880,7 @@ Validated: 33
EndChar
StartChar: porrectusflexusnb1
-Encoding: 89 -1 80
+Encoding: 82 -1 80
Width: 340
VWidth: 2048
Flags: HW
@@ -1902,7 +1901,7 @@ Validated: 1
EndChar
StartChar: porrectusflexusnb2
-Encoding: 90 -1 81
+Encoding: 83 -1 81
Width: 428
VWidth: 2048
Flags: HW
@@ -1923,7 +1922,7 @@ Validated: 1
EndChar
StartChar: porrectusflexusnb3
-Encoding: 91 -1 82
+Encoding: 84 -1 82
Width: 586
VWidth: 2048
Flags: HW
@@ -1944,7 +1943,7 @@ Validated: 1
EndChar
StartChar: porrectusflexusnb4
-Encoding: 92 -1 83
+Encoding: 85 -1 83
Width: 670
VWidth: 2048
Flags: HW
@@ -1965,7 +1964,7 @@ Validated: 1
EndChar
StartChar: porrectusflexusnb5
-Encoding: 93 -1 84
+Encoding: 86 -1 84
Width: 931
VWidth: 2048
Flags: HW
@@ -1986,7 +1985,7 @@ Validated: 1
EndChar
StartChar: p2base
-Encoding: 95 -1 85
+Encoding: 88 -1 85
Width: 164
VWidth: 2048
Flags: W
@@ -2007,7 +2006,7 @@ Validated: 33
EndChar
StartChar: msdeminutus
-Encoding: 97 -1 86
+Encoding: 89 -1 86
Width: 186
VWidth: 2048
Flags: HW
@@ -2031,7 +2030,7 @@ Validated: 33
EndChar
StartChar: mademinutus
-Encoding: 98 -1 87
+Encoding: 90 -1 87
Width: 186
VWidth: 2048
Flags: HW
@@ -2055,7 +2054,7 @@ Validated: 33
EndChar
StartChar: PunctumCavumHole
-Encoding: 99 -1 88
+Encoding: 91 -1 88
Width: 164
VWidth: 2048
Flags: HW
@@ -2075,7 +2074,7 @@ Validated: 1
EndChar
StartChar: LineaPunctumCavumHole
-Encoding: 100 -1 89
+Encoding: 92 -1 89
Width: 266
VWidth: 2048
Flags: HW
@@ -2095,7 +2094,7 @@ Validated: 1
EndChar
StartChar: FlatHole
-Encoding: 101 -1 90
+Encoding: 93 -1 90
Width: 164
VWidth: 2048
Flags: HW
@@ -2113,7 +2112,7 @@ Validated: 1
EndChar
StartChar: NaturalHole
-Encoding: 102 -1 91
+Encoding: 94 -1 91
Width: 201
VWidth: 2048
Flags: HW
@@ -2130,8 +2129,8 @@ EndSplineSet
Validated: 33
EndChar
-StartChar: odbase
-Encoding: 103 -1 92
+StartChar: DescendensOriscusLineBR
+Encoding: 95 -1 92
Width: 164
VWidth: 2048
Flags: HW
@@ -2159,7 +2158,7 @@ Validated: 1
EndChar
StartChar: DivisioDominican
-Encoding: 104 -1 93
+Encoding: 96 -1 93
Width: 22
VWidth: 2048
Flags: HW
@@ -2177,7 +2176,7 @@ Validated: 1
EndChar
StartChar: DivisioDominicanAlt
-Encoding: 105 -1 94
+Encoding: 97 -1 94
Width: 22
VWidth: 2048
Flags: HW
@@ -2195,7 +2194,7 @@ Validated: 1
EndChar
StartChar: Sharp
-Encoding: 106 -1 95
+Encoding: 98 -1 95
Width: 258
VWidth: 2048
Flags: W
@@ -2258,7 +2257,7 @@ Validated: 1
EndChar
StartChar: SharpHole
-Encoding: 107 -1 96
+Encoding: 99 -1 96
Width: 258
VWidth: 2048
Flags: W
@@ -2276,7 +2275,7 @@ Validated: 1
EndChar
StartChar: Linea
-Encoding: 108 -1 97
+Encoding: 100 -1 97
Width: 431
VWidth: 2612
Flags: W
@@ -2304,7 +2303,7 @@ Validated: 1
EndChar
StartChar: RoundBrace
-Encoding: 109 -1 98
+Encoding: 101 -1 98
Width: 937
VWidth: 2048
Flags: W
@@ -2330,7 +2329,7 @@ Validated: 1
EndChar
StartChar: CurlyBrace
-Encoding: 110 -1 99
+Encoding: 102 -1 99
Width: 1006
VWidth: 2048
Flags: W
@@ -2358,7 +2357,7 @@ Validated: 1
EndChar
StartChar: BarBrace
-Encoding: 111 -1 100
+Encoding: 103 -1 100
Width: 591
VWidth: 2048
Flags: W
@@ -2384,7 +2383,7 @@ Validated: 1
EndChar
StartChar: OriscusDeminutus
-Encoding: 112 -1 101
+Encoding: 104 -1 101
Width: 187
VWidth: 2048
Flags: HW
@@ -2412,8 +2411,8 @@ EndSplineSet
Validated: 33
EndChar
-StartChar: OriscusLineBL
-Encoding: 113 -1 102
+StartChar: AscendensOriscusLineBL
+Encoding: 105 -1 102
Width: 164
VWidth: 2048
Flags: HW
@@ -2440,8 +2439,8 @@ EndSplineSet
Validated: 1
EndChar
-StartChar: SalicusOriscus
-Encoding: 114 -1 103
+StartChar: AscendensOriscusLineBLTR
+Encoding: 106 -1 103
Width: 164
VWidth: 2048
Flags: HW
@@ -2455,10 +2454,10 @@ SplineSet
41 26 30 21 22 16 c 1
22 -24 l 1
0 -24 l 1
- 0 130 l 5
- 12 144 31 160 52 160 c 4
- 83 160 99 133 118 129 c 4
- 135 126 139 135 142 142 c 5
+ 0 130 l 1
+ 12 144 31 160 52 160 c 0
+ 83 160 99 133 118 129 c 0
+ 135 126 139 135 142 142 c 1
142 157 l 5
164 157 l 5
164 22 l 2
@@ -2468,7 +2467,7 @@ Validated: 1
EndChar
StartChar: hepisemaleft
-Encoding: 82 -1 104
+Encoding: 75 -1 104
Width: 1
VWidth: 1968
Flags: HW
@@ -2485,7 +2484,7 @@ EndSplineSet
EndChar
StartChar: RoundBraceDown
-Encoding: 130 -1 105
+Encoding: 107 -1 105
Width: 937
VWidth: 2048
Flags: HW
@@ -2511,7 +2510,7 @@ Validated: 1
EndChar
StartChar: VirgaReversaAscendens_op
-Encoding: 131 -1 106
+Encoding: 108 -1 106
Width: 186
VWidth: 2048
Flags: HW
@@ -2535,7 +2534,7 @@ Validated: 33
EndChar
StartChar: VirgaReversaLongqueueAscendens_op
-Encoding: 132 -1 107
+Encoding: 109 -1 107
Width: 186
VWidth: 2048
Flags: HW
@@ -2559,7 +2558,7 @@ Validated: 33
EndChar
StartChar: VirgaReversaDescendens_op
-Encoding: 133 -1 108
+Encoding: 110 -1 108
Width: 186
VWidth: 2048
Flags: HW
@@ -2583,7 +2582,7 @@ Validated: 33
EndChar
StartChar: VirgaReversaLongqueueDescendens_op
-Encoding: 134 -1 109
+Encoding: 111 -1 109
Width: 186
VWidth: 2048
Flags: HW
@@ -2607,7 +2606,7 @@ Validated: 33
EndChar
StartChar: PunctumDescendens_op
-Encoding: 137 -1 110
+Encoding: 112 -1 110
Width: 164
VWidth: 2048
Flags: HW
@@ -2632,7 +2631,7 @@ Validated: 33
EndChar
StartChar: PunctumAscendens_op
-Encoding: 138 -1 111
+Encoding: 113 -1 111
Width: 164
VWidth: 2048
Flags: HW
@@ -2657,7 +2656,7 @@ Validated: 33
EndChar
StartChar: auctusd1_op
-Encoding: 139 -1 112
+Encoding: 114 -1 112
Width: 164
VWidth: 2048
Flags: HW
@@ -2683,7 +2682,7 @@ Validated: 33
EndChar
StartChar: auctusa1_op
-Encoding: 140 -1 113
+Encoding: 115 -1 113
Width: 164
VWidth: 2048
Flags: HW
@@ -2709,7 +2708,7 @@ Validated: 33
EndChar
StartChar: auctusa2_op
-Encoding: 141 -1 114
+Encoding: 116 -1 114
Width: 164
VWidth: 2048
Flags: HW
@@ -2735,7 +2734,7 @@ Validated: 33
EndChar
StartChar: PunctumAuctusLineBL_op
-Encoding: 142 -1 115
+Encoding: 117 -1 115
Width: 164
VWidth: 2048
Flags: HW
@@ -2761,7 +2760,7 @@ Validated: 33
EndChar
StartChar: pesdeminutus_op
-Encoding: 143 -1 116
+Encoding: 118 -1 116
Width: 164
VWidth: 2048
Flags: HW
@@ -2787,7 +2786,7 @@ Validated: 33
EndChar
StartChar: PunctumCavumInclinatum
-Encoding: 144 -1 117
+Encoding: 119 -1 117
Width: 164
VWidth: 2048
Flags: HW
@@ -2810,7 +2809,7 @@ Validated: 1
EndChar
StartChar: PunctumCavumInclinatumAuctus
-Encoding: 146 -1 118
+Encoding: 121 -1 118
Width: 164
VWidth: 2048
Flags: HW
@@ -2838,7 +2837,7 @@ Validated: 1
EndChar
StartChar: PunctumCavumInclinatumHole
-Encoding: 145 -1 119
+Encoding: 120 -1 119
Width: 164
VWidth: 2048
Flags: HW
@@ -2856,7 +2855,7 @@ Validated: 1
EndChar
StartChar: PunctumCavumInclinatumAuctusHole
-Encoding: 147 -1 120
+Encoding: 122 -1 120
Width: 164
VWidth: 2048
Flags: HW
@@ -2873,8 +2872,8 @@ EndSplineSet
Validated: 1
EndChar
-StartChar: OriscusReversusLineTLBR
-Encoding: 148 -1 121
+StartChar: DescendensOriscusLineTLBR
+Encoding: 123 -1 121
Width: 164
VWidth: 2048
Flags: HW
@@ -2883,24 +2882,24 @@ VStem: 142 22<-24 21.2824> 0 22<129.591 157>
LayerCount: 2
Fore
SplineSet
-38.2793 -6.6875 m 0
- 18.7393 -6.6875 0 6.09473 0 22 c 2
+38.2793 -6.6875 m 4
+ 18.7393 -6.6875 0 6.09473 0 22 c 6
0 157 l 1
22 157 l 1
22 142 l 1
25 135 29 126 46 129 c 0
65 133 81 160 112 160 c 0
133 160 152 144 164 130 c 1
- 164 -24 l 1
- 142 -24 l 1
- 142 16 l 1
- 134 21 123 26 112 26 c 0
- 76.2002 26 73.2949 -6.6875 38.2793 -6.6875 c 0
+ 164 -24 l 5
+ 142 -24 l 5
+ 142 16 l 5
+ 134 21 123 26 112 26 c 4
+ 76.2002 26 73.2949 -6.6875 38.2793 -6.6875 c 4
EndSplineSet
EndChar
-StartChar: OriscusReversusLineTL
-Encoding: 149 -1 122
+StartChar: DescendensOriscusLineTL
+Encoding: 124 -1 122
Width: 164
VWidth: 2048
Flags: HW
@@ -2924,7 +2923,7 @@ EndSplineSet
EndChar
StartChar: UpperPesOneNothing
-Encoding: 63 -1 123
+Encoding: 56 -1 123
Width: 186
VWidth: 2048
Flags: HW
@@ -2950,8 +2949,8 @@ SplineSet
EndSplineSet
EndChar
-StartChar: OriscusCavum
-Encoding: 152 -1 124
+StartChar: AscendensOriscusCavum
+Encoding: 125 -1 124
Width: 164
VWidth: 2048
Flags: HW
@@ -2985,8 +2984,8 @@ SplineSet
EndSplineSet
EndChar
-StartChar: OriscusCavumHole
-Encoding: 153 -1 125
+StartChar: AscendensOriscusCavumHole
+Encoding: 126 -1 125
Width: 164
VWidth: 2048
Flags: W
@@ -3006,8 +3005,8 @@ SplineSet
EndSplineSet
EndChar
-StartChar: OriscusCavumReversus
-Encoding: 154 -1 126
+StartChar: DescendensOriscusCavum
+Encoding: 127 -1 126
Width: 164
VWidth: 2048
Flags: HW
@@ -3041,8 +3040,8 @@ SplineSet
EndSplineSet
EndChar
-StartChar: OriscusCavumReversusHole
-Encoding: 155 -1 127
+StartChar: DescendensOriscusCavumHole
+Encoding: 128 -1 127
Width: 164
VWidth: 2048
Flags: HW
@@ -3063,7 +3062,7 @@ EndSplineSet
EndChar
StartChar: OriscusCavumDeminutus
-Encoding: 156 -1 128
+Encoding: 129 -1 128
Width: 187
VWidth: 2048
Flags: HW
@@ -3100,7 +3099,7 @@ EndSplineSet
EndChar
StartChar: OriscusCavumDeminutusHole
-Encoding: 157 -1 129
+Encoding: 130 -1 129
Width: 164
VWidth: 2048
Flags: W
@@ -3121,7 +3120,7 @@ EndSplineSet
EndChar
StartChar: Virgula.2
-Encoding: 158 -1 130
+Encoding: 131 -1 130
Width: 152
VWidth: 1418
Flags: HW
@@ -3139,7 +3138,7 @@ EndSplineSet
EndChar
StartChar: DivisioMinima.2
-Encoding: 159 -1 131
+Encoding: 132 -1 131
Width: 19
VWidth: 1418
Flags: HW
@@ -3156,7 +3155,7 @@ EndSplineSet
EndChar
StartChar: DivisioMinor.2
-Encoding: 160 -1 132
+Encoding: 133 -1 132
Width: 19
VWidth: 2048
Flags: HW
@@ -3173,7 +3172,7 @@ EndSplineSet
EndChar
StartChar: DivisioMaior.2
-Encoding: 161 -1 133
+Encoding: 134 -1 133
Width: 19
VWidth: 2048
Flags: HW
@@ -3190,7 +3189,7 @@ EndSplineSet
EndChar
StartChar: Virgula.3
-Encoding: 162 -1 134
+Encoding: 135 -1 134
Width: 152
VWidth: 1733
Flags: HW
@@ -3208,7 +3207,7 @@ EndSplineSet
EndChar
StartChar: DivisioMinima.3
-Encoding: 163 -1 135
+Encoding: 136 -1 135
Width: 19
VWidth: 1733
Flags: HW
@@ -3225,7 +3224,7 @@ EndSplineSet
EndChar
StartChar: DivisioMinor.3
-Encoding: 164 -1 136
+Encoding: 137 -1 136
Width: 19
VWidth: 2048
Flags: HW
@@ -3242,7 +3241,7 @@ EndSplineSet
EndChar
StartChar: DivisioMaior.3
-Encoding: 165 -1 137
+Encoding: 138 -1 137
Width: 19
VWidth: 2048
Flags: HW
@@ -3259,7 +3258,7 @@ EndSplineSet
EndChar
StartChar: Virgula.5
-Encoding: 166 -1 138
+Encoding: 139 -1 138
Width: 152
VWidth: 2363
Flags: HW
@@ -3277,7 +3276,7 @@ EndSplineSet
EndChar
StartChar: DivisioMinima.5
-Encoding: 167 -1 139
+Encoding: 140 -1 139
Width: 19
VWidth: 2363
Flags: HW
@@ -3294,7 +3293,7 @@ EndSplineSet
EndChar
StartChar: DivisioMinor.5
-Encoding: 168 -1 140
+Encoding: 141 -1 140
Width: 19
VWidth: 2048
Flags: HW
@@ -3311,7 +3310,7 @@ EndSplineSet
EndChar
StartChar: DivisioMaior.5
-Encoding: 169 -1 141
+Encoding: 142 -1 141
Width: 19
VWidth: 2048
Flags: HW
@@ -3328,7 +3327,7 @@ EndSplineSet
EndChar
StartChar: StrophaAuctaLongtail
-Encoding: 94 -1 142
+Encoding: 87 -1 142
Width: 164
VWidth: 2048
Flags: W
@@ -3348,7 +3347,7 @@ EndSplineSet
EndChar
StartChar: rqueue
-Encoding: 170 -1 143
+Encoding: 143 -1 143
Width: 22
VWidth: 2048
Flags: HW
@@ -3365,7 +3364,7 @@ EndSplineSet
EndChar
StartChar: queuebase
-Encoding: 171 -1 144
+Encoding: 144 -1 144
Width: 22
VWidth: 2048
Flags: HW
@@ -3383,7 +3382,7 @@ EndSplineSet
EndChar
StartChar: tmpglyph
-Encoding: 172 -1 145
+Encoding: 145 -1 145
Width: 22
VWidth: 2048
Flags: W
@@ -3400,7 +3399,7 @@ EndSplineSet
EndChar
StartChar: virgabase
-Encoding: 173 -1 146
+Encoding: 146 -1 146
Width: 164
VWidth: 2048
Flags: HW
@@ -3421,7 +3420,7 @@ EndSplineSet
EndChar
StartChar: VirgaBaseLineBL
-Encoding: 174 -1 147
+Encoding: 147 -1 147
Width: 164
VWidth: 2048
Flags: HW
@@ -3438,13 +3437,13 @@ SplineSet
0 150 l 1
20 161 49.417 166 82 166 c 24
114.583 166 144 158 164 150 c 1
- 164 -41 l 1
+ 164 -41 l 5
141.996 -41 l 5
EndSplineSet
EndChar
StartChar: rvbase
-Encoding: 175 -1 148
+Encoding: 148 -1 148
Width: 164
VWidth: 2048
Flags: HW
@@ -3452,22 +3451,22 @@ HStem: -409 15 -94 15 221 15 536 15
LayerCount: 2
Fore
SplineSet
-22.0039 -41 m 5
+22.0039 -41 m 1
0 -41 l 1
0 150 l 1
20 158 49.417 166 82 166 c 24
114.583 166 144 161 164 150 c 1
- 164 -20 l 1
- 153.375 -19.875 164 -20 142 -20 c 1
+ 164 -20 l 5
+ 153.375 -19.875 164 -20 142 -20 c 5
140.625 -12.125 132.583 -1.72852 127 0 c 1
114 8 103.562 9.49707 81.999 9.33301 c 0
51.333 8.66699 22 -4 22.0039 -26.668 c 2
- 22.0039 -41 l 5
+ 22.0039 -41 l 1
EndSplineSet
EndChar
StartChar: rvirgabase
-Encoding: 176 -1 149
+Encoding: 149 -1 149
Width: 164
VWidth: 2048
Flags: HW
@@ -3487,8 +3486,8 @@ SplineSet
EndSplineSet
EndChar
-StartChar: OriscusReversusLineBL
-Encoding: 177 -1 150
+StartChar: DescendensOriscusLineBL
+Encoding: 150 -1 150
Width: 164
VWidth: 2048
Flags: HW
@@ -3514,15 +3513,15 @@ SplineSet
EndSplineSet
EndChar
-StartChar: osbase
-Encoding: 178 -1 151
+StartChar: AscendensOriscusLineBLBR
+Encoding: 151 -1 151
Width: 164
VWidth: 2048
Flags: HW
LayerCount: 2
Fore
SplineSet
-0 -27 m 5
+0 -27 m 1
0 129.75 l 1
12 144 30.6465 159.548 51.75 160 c 1
83.25 159.75 98.9385 133.274 118.5 128.75 c 1
@@ -3530,14 +3529,236 @@ SplineSet
142.945 127.485 153.146 131.484 159.5 146.25 c 1
161.23 161.341 158.41 172.99 164 191 c 9
164 -20 l 1
- 153.375 -19.875 164 -20 142 -20 c 1
- 142 -3.91719 l 1
- 136.634 -5.82116 130.788 -6.90644 125.048 -6.90644 c 0
+ 164 -20 164 -20 142 -20 c 5
+ 142 -4 l 5
+ 137 -6 130.788 -6.90644 125.048 -6.90644 c 0
122.667 -6.90644 120.304 -6.71969 118.001 -6.32715 c 1
89.751 -0.827148 84.7041 24.1152 52.251 26.1729 c 1
40.6015 25.2549 22 17.4121 22 7.5 c 2
22.0004 -27 l 1
- 0 -27 l 5
+ 0 -27 l 1
+EndSplineSet
+EndChar
+
+StartChar: AscendensOriscusLineBR
+Encoding: 152 -1 152
+Width: 164
+VWidth: 2048
+Flags: HW
+HStem: -409 15 -94 15 221 15 536 15
+LayerCount: 2
+Fore
+SplineSet
+164 -24 m 1
+ 142 -24 l 1
+ 142 -4 l 1
+ 137 -6 130.797 -6.90644 125.048 -6.90644 c 0
+ 122.667 -6.90644 120.304 -6.71969 118.001 -6.32715 c 1
+ 89.751 -0.827148 84.7041 24.1152 52.251 26.1729 c 1
+ 29.3369 24.3672 11.251 9.92285 5.25098 -2.82715 c 1
+ 2.69727 -15.4941 4.32519 -28.9102 0 -41.5771 c 9
+ 0 129.75 l 17
+ 12 144 30.6465 159.548 51.75 160 c 1
+ 83.25 159.75 98.9385 133.274 118.5 128.75 c 1
+ 122.907 128.016 127.265 127.485 131.453 127.485 c 0
+ 142.945 127.485 153.146 131.484 159.5 146.25 c 1
+ 161.23 161.341 158.41 172.99 164 191 c 9
+ 164 -24 l 1
+EndSplineSet
+EndChar
+
+StartChar: AscendensOriscusLineTLBR
+Encoding: 153 -1 153
+Width: 164
+VWidth: 2048
+Flags: HW
+HStem: -409 15 -94 15 221 15 536 15
+LayerCount: 2
+Fore
+SplineSet
+0 157 m 1
+ 22 157 l 1
+ 22 150 l 1
+ 31 156 41.007 159.77 51.75 160 c 1
+ 83.25 159.75 98.9385 133.274 118.5 128.75 c 1
+ 122.907 128.016 127.265 127.485 131.453 127.485 c 0
+ 142.945 127.485 153.146 131.484 159.5 146.25 c 1
+ 161.23 161.341 158.41 172.99 164 191 c 9
+ 164 -24 l 1
+ 142 -24 l 1
+ 142 -4 l 1
+ 137 -6 130.797 -6.90644 125.048 -6.90644 c 0
+ 122.667 -6.90644 120.304 -6.71969 118.001 -6.32715 c 1
+ 89.751 -0.827148 84.7041 24.1152 52.251 26.1729 c 1
+ 29.3369 24.3672 11.251 9.92285 5.25098 -2.82715 c 1
+ 2.69727 -15.4941 4.32519 -28.9102 0 -41.5771 c 9
+ 0 157 l 1
+EndSplineSet
+EndChar
+
+StartChar: AscendensOriscusLineTLTR
+Encoding: 154 -1 154
+Width: 164
+VWidth: 2048
+Flags: HW
+HStem: -409 15 -94 15 221 15 536 15
+LayerCount: 2
+Fore
+SplineSet
+164 19.1963 m 4
+ 164 5.04004 144.092 -6.90644 125.048 -6.90644 c 0
+ 122.667 -6.90644 120.304 -6.71969 118.001 -6.32715 c 1
+ 89.751 -0.827148 84.7041 24.1152 52.251 26.1729 c 1
+ 29.3369 24.3672 11.251 9.92285 5.25098 -2.82715 c 1
+ 2.69727 -15.4941 4.32519 -28.9102 0 -41.5771 c 9
+ 0 157 l 1
+ 22 157 l 1
+ 22.0022 149.842 l 1
+ 31.031 155.81 41.2536 160 52 160 c 0
+ 83 160 99 133 118 129 c 0
+ 135 126 139 135 142 142 c 1
+ 142 157 l 1
+ 164 157 l 5
+ 164 19.1963 l 4
+EndSplineSet
+EndChar
+
+StartChar: AscendensOriscusLineTL
+Encoding: 155 -1 155
+Width: 164
+VWidth: 2048
+Flags: HW
+HStem: -409 15 -94 15 221 15 536 15
+LayerCount: 2
+Fore
+SplineSet
+0 157 m 5
+ 22 157 l 1
+ 21.998 149.746 l 1
+ 30.9114 155.632 41.0127 159.77 51.75 160 c 1
+ 83.25 159.75 98.9385 133.274 118.5 128.75 c 1
+ 122.907 128.016 127.265 127.485 131.453 127.485 c 0
+ 142.945 127.485 153.146 131.484 159.5 146.25 c 1
+ 161.23 161.341 158.41 172.99 164 191 c 9
+ 164 22.1729 l 17
+ 164.202 21.1722 164.299 20.1788 164.299 19.1961 c 0
+ 164.299 5.03959 144.092 -6.90644 125.048 -6.90644 c 0
+ 122.667 -6.90644 120.304 -6.71969 118.001 -6.32715 c 1
+ 89.751 -0.827148 84.7041 24.1152 52.251 26.1729 c 1
+ 29.3369 24.3672 11.251 9.92285 5.25098 -2.82715 c 1
+ 2.69727 -15.4941 4.32519 -28.9102 0 -41.5771 c 13
+ 0 157 l 5
+EndSplineSet
+EndChar
+
+StartChar: DescendensOriscusLineBLBR
+Encoding: 156 -1 156
+Width: 164
+VWidth: 2048
+Flags: HW
+HStem: -409 15 -94 15 221 15 536 15
+LayerCount: 2
+Fore
+SplineSet
+164 -24 m 5
+ 142 -24 l 1
+ 142 16 l 1
+ 134 21 123 26 112 26 c 0
+ 76.2002 26 73.2949 -6.6875 38.2793 -6.6875 c 0
+ 32.6358 -6.6875 27.0592 -5.62128 21.9815 -3.72154 c 1
+ 22.0004 -27 l 1
+ 0 -27 l 1
+ 0 191 l 17
+ 5.59004 172.99 2.76983 161.341 4.5 146.25 c 1
+ 10.8533 131.483 21.0542 127.484 32.546 127.484 c 0
+ 36.7338 127.484 41.0931 128.016 45.5 128.75 c 1
+ 65.0611 133.274 80.75 159.75 112.25 160 c 1
+ 133.353 159.548 152 144 164 129.75 c 13
+ 164 -24 l 5
+EndSplineSet
+EndChar
+
+StartChar: DescendensOriscusLineBLTR
+Encoding: 157 -1 157
+Width: 164
+VWidth: 2048
+Flags: HW
+HStem: -409 15 -94 15 221 15 536 15
+LayerCount: 2
+Fore
+SplineSet
+164 -44.4199 m 21
+ 159.675 -31.7529 161.219 -18.3369 158.665 -5.66992 c 1
+ 152.665 7.08008 134.579 21.5244 111.665 23.3301 c 1
+ 79.2109 21.2725 74.165 -3.66992 45.915 -9.16992 c 1
+ 43.6121 -9.56246 41.2501 -9.74922 38.8707 -9.74922 c 0
+ 33.1499 -9.74922 27.3282 -8.66969 21.9833 -6.77509 c 1
+ 22.0004 -27 l 1
+ 0 -27 l 1
+ 0 191 l 17
+ 5.59004 172.99 2.76983 161.341 4.5 146.25 c 1
+ 10.8533 131.483 21.0542 127.484 32.546 127.484 c 0
+ 36.7338 127.484 41.0931 128.016 45.5 128.75 c 1
+ 65.0611 133.274 80.75 159.75 112.25 160 c 1
+ 123.018 159.769 133.146 155.608 142.078 149.695 c 1
+ 142 157 l 1
+ 164 157 l 5
+ 164 -44.4199 l 21
+EndSplineSet
+EndChar
+
+StartChar: DescendensOriscusLineTLTR
+Encoding: 158 -1 158
+Width: 164
+VWidth: 2048
+Flags: HW
+HStem: -409 15 -94 15 221 15 536 15
+LayerCount: 2
+Fore
+SplineSet
+0 157 m 5
+ 22 157 l 1
+ 22 142 l 1
+ 25 135 29 126 46 129 c 0
+ 65 133 81 160 112 160 c 0
+ 122.741 160 132.958 155.815 141.983 149.852 c 1
+ 142 157 l 1
+ 164 157 l 1
+ 164 -44.4199 l 17
+ 159.675 -31.7529 161.219 -18.3369 158.665 -5.66992 c 1
+ 152.665 7.08008 134.579 21.5244 111.665 23.3301 c 1
+ 79.2109 21.2725 74.165 -3.66992 45.915 -9.16992 c 1
+ 43.6121 -9.56246 41.2501 -9.74922 38.8707 -9.74922 c 0
+ 19.8437 -9.74922 -0.000976562 2.19238 -0.000976562 16.3457 c 4
+ 0 157 l 5
+EndSplineSet
+EndChar
+
+StartChar: DescendensOriscusLineTR
+Encoding: 159 -1 159
+Width: 164
+VWidth: 2048
+Flags: HW
+HStem: -409 15 -94 15 221 15 536 15
+LayerCount: 2
+Fore
+SplineSet
+164 -44.4199 m 21
+ 159.675 -31.7529 161.219 -18.3369 158.665 -5.66992 c 1
+ 152.665 7.08008 134.579 21.5244 111.665 23.3301 c 1
+ 79.2109 21.2725 74.165 -3.66992 45.915 -9.16992 c 1
+ 43.6121 -9.56246 41.2501 -9.74922 38.8707 -9.74922 c 0
+ 19.8437 -9.74922 -0.300029 2.19241 -0.300029 16.3455 c 0
+ -0.300029 17.3307 -0.20241 18.3267 0 19.3301 c 9
+ 0 191 l 17
+ 5.59004 172.99 2.76983 161.341 4.5 146.25 c 1
+ 10.8533 131.483 21.0542 127.484 32.546 127.484 c 0
+ 36.7338 127.484 41.0931 128.016 45.5 128.75 c 1
+ 65.0611 133.274 80.75 159.75 112.25 160 c 1
+ 123.015 159.769 133.142 155.61 142.072 149.699 c 1
+ 142 157 l 1
+ 164 157 l 5
+ 164 -44.4199 l 21
EndSplineSet
EndChar
EndChars
diff --git a/Master/texmf-dist/fonts/source/gregoriotex/squarize.py b/Master/texmf-dist/fonts/source/gregoriotex/squarize.py
index 2f42bfca794..e504b874c1b 100644
--- a/Master/texmf-dist/fonts/source/gregoriotex/squarize.py
+++ b/Master/texmf-dist/fonts/source/gregoriotex/squarize.py
@@ -78,7 +78,7 @@ AMBITUS = {
5: 'Five',
}
-GREGORIO_VERSION = '4.1.1'
+GREGORIO_VERSION = '4.2.0-beta1'
# The unicode character at which we start our numbering:
# U+E000 is the start of the BMP Private Use Area
@@ -241,11 +241,13 @@ DIRECT_GLYPH_NAMES = [
'VirgaBaseLineBL',
'Quilisma',
'QuilismaLineTR',
- 'Oriscus',
- 'OriscusLineBL',
- 'OriscusLineTR',
- 'OriscusReversus',
- 'OriscusReversusLineTL',
+ 'AscendensOriscus',
+ 'AscendensOriscusLineBL',
+ 'AscendensOriscusLineTL',
+ 'AscendensOriscusLineTR',
+ 'DescendensOriscus',
+ 'DescendensOriscusLineBL',
+ 'DescendensOriscusLineTL',
'PunctumInclinatumAuctus',
'PunctumInclinatumDeminutus',
'VEpisema',
@@ -287,15 +289,15 @@ DIRECT_GLYPH_NAMES = [
'PunctumLineTR',
'PunctumLineBLBR',
'PunctumAuctusLineBL',
- 'SalicusOriscus',
+ 'AscendensOriscusLineBLTR',
'PunctumCavumInclinatum',
'PunctumCavumInclinatumHole',
'PunctumCavumInclinatumAuctus',
'PunctumCavumInclinatumAuctusHole',
- 'OriscusCavum',
- 'OriscusCavumHole',
- 'OriscusCavumReversus',
- 'OriscusCavumReversusHole',
+ 'AscendensOriscusCavum',
+ 'AscendensOriscusCavumHole',
+ 'DescendensOriscusCavum',
+ 'DescendensOriscusCavumHole',
'OriscusCavumDeminutus',
'OriscusCavumDeminutusHole',
]
@@ -383,87 +385,106 @@ def get_width(glyphName):
return WIDTHS[glyphName]
# Shapes
-S_PES = 'Pes'
-S_UPPER_PES = 'UpperPes'
-S_LOWER_PES = 'LowerPes'
-S_PES_QUADRATUM = 'PesQuadratum'
-S_UPPER_PES_QUADRATUM = 'UpperPesQuadratum'
-S_LOWER_PES_QUADRATUM = 'LowerPesQuadratum'
-S_PES_QUADRATUM_LONGQUEUE = 'PesQuadratumLongqueue'
-S_UPPER_PES_QUADRATUM_LONGQUEUE = 'UpperPesQuadratumLongqueue'
-S_LOWER_PES_QUADRATUM_LONGQUEUE = 'LowerPesQuadratumLongqueue'
-S_PES_QUADRATUM_OPENQUEUE = 'PesQuadratumOpenqueue'
-S_UPPER_PES_QUADRATUM_OPENQUEUE = 'UpperPesQuadratumOpenqueue'
-S_LOWER_PES_QUADRATUM_OPENQUEUE = 'LowerPesQuadratumOpenqueue'
-S_PES_QUILISMA = 'PesQuilisma'
-S_PES_QUASSUS = 'PesQuassus'
-S_UPPER_PES_QUASSUS = 'UpperPesQuassus'
-S_LOWER_PES_QUASSUS = 'LowerPesQuassus'
-S_PES_QUASSUS_LONGQUEUE = 'PesQuassusLongqueue'
-S_UPPER_PES_QUASSUS_LONGQUEUE = 'UpperPesQuassusLongqueue'
-S_LOWER_PES_QUASSUS_LONGQUEUE = 'LowerPesQuassusLongqueue'
-S_PES_QUASSUS_OPENQUEUE = 'PesQuassusOpenqueue'
-S_UPPER_PES_QUASSUS_OPENQUEUE = 'UpperPesQuassusOpenqueue'
-S_LOWER_PES_QUASSUS_OPENQUEUE = 'LowerPesQuassusOpenqueue'
-S_PES_QUILISMA_QUADRATUM = 'PesQuilismaQuadratum'
-S_PES_QUILISMA_QUADRATUM_LONGQUEUE = 'PesQuilismaQuadratumLongqueue'
-S_PES_QUILISMA_QUADRATUM_OPENQUEUE = 'PesQuilismaQuadratumOpenqueue'
-S_FLEXUS = 'Flexus'
-S_UPPER_FLEXUS = 'UpperFlexus'
-S_LOWER_FLEXUS = 'LowerFlexus'
-S_FLEXUS_NOBAR = 'FlexusNobar'
-S_FLEXUS_LONGQUEUE = 'FlexusLongqueue'
-S_FLEXUS_OPENQUEUE = 'FlexusOpenqueue'
-S_FLEXUS_ORISCUS = 'FlexusOriscus'
-S_LOWER_FLEXUS_ORISCUS = 'LowerFlexusOriscus'
-S_PORRECTUS_FLEXUS = 'PorrectusFlexus'
-S_PORRECTUS_FLEXUS_LONGQUEUE = 'PorrectusFlexusLongqueue'
-S_PORRECTUS_FLEXUS_NOBAR = 'PorrectusFlexusNobar'
-S_PORRECTUS = 'Porrectus'
-S_PORRECTUS_LONGQUEUE = 'PorrectusLongqueue'
-S_PORRECTUS_NOBAR = 'PorrectusNobar'
+S_PES = 'Pes'
+S_UPPER_PES = 'UpperPes'
+S_LOWER_PES = 'LowerPes'
+S_PES_QUADRATUM = 'PesQuadratum'
+S_UPPER_PES_QUADRATUM = 'UpperPesQuadratum'
+S_LOWER_PES_QUADRATUM = 'LowerPesQuadratum'
+S_PES_QUADRATUM_LONGQUEUE = 'PesQuadratumLongqueue'
+S_UPPER_PES_QUADRATUM_LONGQUEUE = 'UpperPesQuadratumLongqueue'
+S_LOWER_PES_QUADRATUM_LONGQUEUE = 'LowerPesQuadratumLongqueue'
+S_PES_QUADRATUM_OPENQUEUE = 'PesQuadratumOpenqueue'
+S_UPPER_PES_QUADRATUM_OPENQUEUE = 'UpperPesQuadratumOpenqueue'
+S_LOWER_PES_QUADRATUM_OPENQUEUE = 'LowerPesQuadratumOpenqueue'
+S_PES_QUILISMA = 'PesQuilisma'
+S_PES_QUASSUS = 'PesQuassus'
+S_UPPER_PES_QUASSUS = 'UpperPesQuassus'
+S_LOWER_PES_QUASSUS = 'LowerPesQuassus'
+S_PES_QUASSUS_LONGQUEUE = 'PesQuassusLongqueue'
+S_UPPER_PES_QUASSUS_LONGQUEUE = 'UpperPesQuassusLongqueue'
+S_LOWER_PES_QUASSUS_LONGQUEUE = 'LowerPesQuassusLongqueue'
+S_PES_QUASSUS_OPENQUEUE = 'PesQuassusOpenqueue'
+S_UPPER_PES_QUASSUS_OPENQUEUE = 'UpperPesQuassusOpenqueue'
+S_LOWER_PES_QUASSUS_OPENQUEUE = 'LowerPesQuassusOpenqueue'
+S_PES_QUASSUS_INUSITATUS = 'PesQuassusInusitatus'
+S_UPPER_PES_QUASSUS_INUSITATUS = 'UpperPesQuassusInusitatus'
+S_LOWER_PES_QUASSUS_INUSITATUS = 'LowerPesQuassusInusitatus'
+S_PES_QUASSUS_INUSITATUS_LONGQUEUE = 'PesQuassusInusitatusLongqueue'
+S_UPPER_PES_QUASSUS_INUSITATUS_LONGQUEUE = 'UpperPesQuassusInusitatusLongqueue'
+S_LOWER_PES_QUASSUS_INUSITATUS_LONGQUEUE = 'LowerPesQuassusInusitatusLongqueue'
+S_PES_QUASSUS_INUSITATUS_OPENQUEUE = 'PesQuassusInusitatusOpenqueue'
+S_UPPER_PES_QUASSUS_INUSITATUS_OPENQUEUE = 'UpperPesQuassusInusitatusOpenqueue'
+S_LOWER_PES_QUASSUS_INUSITATUS_OPENQUEUE = 'LowerPesQuassusInusitatusOpenqueue'
+S_PES_QUILISMA_QUADRATUM = 'PesQuilismaQuadratum'
+S_PES_QUILISMA_QUADRATUM_LONGQUEUE = 'PesQuilismaQuadratumLongqueue'
+S_PES_QUILISMA_QUADRATUM_OPENQUEUE = 'PesQuilismaQuadratumOpenqueue'
+S_FLEXUS = 'Flexus'
+S_UPPER_FLEXUS = 'UpperFlexus'
+S_LOWER_FLEXUS = 'LowerFlexus'
+S_FLEXUS_NOBAR = 'FlexusNobar'
+S_FLEXUS_LONGQUEUE = 'FlexusLongqueue'
+S_FLEXUS_OPENQUEUE = 'FlexusOpenqueue'
+S_FLEXUS_ORISCUS = 'FlexusOriscus'
+S_UPPER_FLEXUS_ORISCUS = 'UpperFlexusOriscus'
+S_LOWER_FLEXUS_ORISCUS = 'LowerFlexusOriscus'
+S_FLEXUS_ORISCUS_INUSITATUS = 'FlexusOriscusInusitatus'
+S_UPPER_FLEXUS_ORISCUS_INUSITATUS = 'UpperFlexusOriscusInusitatus'
+S_LOWER_FLEXUS_ORISCUS_INUSITATUS = 'LowerFlexusOriscusInusitatus'
+S_PORRECTUS_FLEXUS = 'PorrectusFlexus'
+S_PORRECTUS_FLEXUS_LONGQUEUE = 'PorrectusFlexusLongqueue'
+S_PORRECTUS_FLEXUS_NOBAR = 'PorrectusFlexusNobar'
+S_PORRECTUS = 'Porrectus'
+S_PORRECTUS_LONGQUEUE = 'PorrectusLongqueue'
+S_PORRECTUS_NOBAR = 'PorrectusNobar'
# for stem length determination only:
-S_PORRECTUS_DEMINUTUS_ALT = 'PorrectusDeminutus.alt'
-S_TORCULUS = 'Torculus'
-S_TORCULUS_RESUPINUS = 'TorculusResupinus'
-S_TORCULUS_QUILISMA = 'TorculusQuilisma'
-S_TORCULUS_RESUPINUS_QUILISMA = 'TorculusResupinusQuilisma'
-S_SCANDICUS = 'Scandicus'
-S_ANCUS = 'Ancus'
-S_ANCUS_LONGQUEUE = 'AncusLongqueue'
-S_ANCUS_OPENQUEUE = 'AncusOpenqueue'
-S_VIRGA_STRATA = 'VirgaStrata'
-S_SALICUS = 'Salicus'
-S_SALICUS_LONGQUEUE = 'SalicusLongqueue'
-S_SALICUS_OPENQUEUE = 'SalicusOpenqueue'
-S_SALICUS_FLEXUS = 'SalicusFlexus'
-S_TORCULUS_LIQUESCENS = 'TorculusLiquescens'
-S_TORCULUS_LIQUESCENS_QUILISMA = 'TorculusLiquescensQuilisma'
-S_FLEXUS_ORISCUS_SCAPUS = 'FlexusOriscusScapus'
-S_FLEXUS_ORISCUS_SCAPUS_LONGQUEUE = 'FlexusOriscusScapusLongqueue'
-S_FLEXUS_ORISCUS_SCAPUS_OPENQUEUE = 'FlexusOriscusScapusOpenqueue'
-S_LEADING_PUNCTUM = 'LeadingPunctum'
-S_LEADING_QUILISMA = 'LeadingQuilisma'
-S_LEADING_ORISCUS = 'LeadingOriscus'
-S_PUNCTUM = 'Punctum'
-S_UPPER_PUNCTUM = 'UpperPunctum'
-S_LOWER_PUNCTUM = 'LowerPunctum'
-S_QUILISMA = 'Quilisma'
-S_ORISCUS = 'Oriscus'
-S_ORISCUS_SCAPUS = 'OriscusScapus'
-S_ORISCUS_SCAPUS_LONGQUEUE = 'OriscusScapusLongqueue'
-S_ORISCUS_SCAPUS_OPENQUEUE = 'OriscusScapusOpenqueue'
-S_ORISCUS_REVERSUS_SCAPUS = 'OriscusScapusReversus'
-S_ORISCUS_REVERSUS_SCAPUS_LONGQUEUE= 'OriscusScapusReversusLongqueue'
-S_ORISCUS_REVERSUS_SCAPUS_OPENQUEUE= 'OriscusScapusReversusOpenqueue'
-S_UPPER_ORISCUS = 'UpperOriscus'
-S_LOWER_ORISCUS = 'LowerOriscus'
-S_VIRGA = 'Virga'
-S_VIRGA_LONGQUEUE = 'VirgaLongqueue'
-S_VIRGA_OPENQUEUE = 'VirgaOpenqueue'
-S_VIRGA_REVERSA = 'VirgaReversa'
-S_VIRGA_REVERSA_LONGQUEUE = 'VirgaReversaLongqueue'
-S_VIRGA_REVERSA_OPENQUEUE = 'VirgaReversaOpenqueue'
+S_PORRECTUS_DEMINUTUS_ALT = 'PorrectusDeminutus.alt'
+S_TORCULUS = 'Torculus'
+S_TORCULUS_RESUPINUS = 'TorculusResupinus'
+S_TORCULUS_QUILISMA = 'TorculusQuilisma'
+S_TORCULUS_RESUPINUS_QUILISMA = 'TorculusResupinusQuilisma'
+S_SCANDICUS = 'Scandicus'
+S_ANCUS = 'Ancus'
+S_ANCUS_LONGQUEUE = 'AncusLongqueue'
+S_ANCUS_OPENQUEUE = 'AncusOpenqueue'
+S_VIRGA_STRATA = 'VirgaStrata'
+S_SALICUS = 'Salicus'
+S_SALICUS_LONGQUEUE = 'SalicusLongqueue'
+S_SALICUS_OPENQUEUE = 'SalicusOpenqueue'
+S_SALICUS_FLEXUS = 'SalicusFlexus'
+S_TORCULUS_LIQUESCENS = 'TorculusLiquescens'
+S_TORCULUS_LIQUESCENS_QUILISMA = 'TorculusLiquescensQuilisma'
+S_FLEXUS_ORISCUS_SCAPUS = 'FlexusOriscusScapus'
+S_FLEXUS_ORISCUS_SCAPUS_LONGQUEUE = 'FlexusOriscusScapusLongqueue'
+S_FLEXUS_ORISCUS_SCAPUS_OPENQUEUE = 'FlexusOriscusScapusOpenqueue'
+S_FLEXUS_ORISCUS_SCAPUS_INUSITATUS = 'FlexusOriscusScapusInusitatus'
+S_FLEXUS_ORISCUS_SCAPUS_INUSITATUS_LONGQUEUE = 'FlexusOriscusScapusInusitatusLongqueue'
+S_FLEXUS_ORISCUS_SCAPUS_INUSITATUS_OPENQUEUE = 'FlexusOriscusScapusInusitatusOpenqueue'
+S_LEADING_PUNCTUM = 'LeadingPunctum'
+S_LEADING_QUILISMA = 'LeadingQuilisma'
+S_LEADING_ORISCUS = 'LeadingOriscus'
+S_PUNCTUM = 'Punctum'
+S_UPPER_PUNCTUM = 'UpperPunctum'
+S_LOWER_PUNCTUM = 'LowerPunctum'
+S_QUILISMA = 'Quilisma'
+S_ASCENDENS_ORISCUS = 'AscendensOriscus'
+S_DESCENDENS_ORISCUS = 'DescendensOriscus'
+S_ASCENDENS_ORISCUS_SCAPUS = 'AscendensOriscusScapus'
+S_ASCENDENS_ORISCUS_SCAPUS_LONGQUEUE = 'AscendensOriscusScapusLongqueue'
+S_ASCENDENS_ORISCUS_SCAPUS_OPENQUEUE = 'AscendensOriscusScapusOpenqueue'
+S_DESCENDENS_ORISCUS_SCAPUS = 'DescendensOriscusScapus'
+S_DESCENDENS_ORISCUS_SCAPUS_LONGQUEUE = 'DescendensOriscusScapusLongqueue'
+S_DESCENDENS_ORISCUS_SCAPUS_OPENQUEUE = 'DescendensOriscusScapusOpenqueue'
+S_UPPER_ASCENDENS_ORISCUS = 'UpperAscendensOriscus'
+S_UPPER_DESCENDENS_ORISCUS = 'UpperDescendensOriscus'
+S_LOWER_ASCENDENS_ORISCUS = 'LowerAscendensOriscus'
+S_LOWER_DESCENDENS_ORISCUS = 'LowerDescendensOriscus'
+S_VIRGA = 'Virga'
+S_VIRGA_LONGQUEUE = 'VirgaLongqueue'
+S_VIRGA_OPENQUEUE = 'VirgaOpenqueue'
+S_VIRGA_REVERSA = 'VirgaReversa'
+S_VIRGA_REVERSA_LONGQUEUE = 'VirgaReversaLongqueue'
+S_VIRGA_REVERSA_OPENQUEUE = 'VirgaReversaOpenqueue'
# Liquescentiae
L_NOTHING = 'Nothing'
@@ -593,8 +614,8 @@ STEM_LIQ_FALLBACKS = {
STEM_SHAPE_FALLBACKS = {
S_VIRGA_REVERSA : S_VIRGA,
- S_ORISCUS_SCAPUS : S_VIRGA,
- S_ORISCUS_REVERSUS_SCAPUS: S_VIRGA,
+ S_ASCENDENS_ORISCUS_SCAPUS : S_VIRGA,
+ S_DESCENDENS_ORISCUS_SCAPUS: S_VIRGA,
S_FLEXUS_ORISCUS_SCAPUS: S_FLEXUS,
S_PES_QUADRATUM: S_FLEXUS,
S_PES_QUASSUS: S_PES_QUADRATUM,
@@ -761,18 +782,18 @@ def virga():
'auctusa2', 'long', S_VIRGA)
write_virga(S_VIRGA_REVERSA_OPENQUEUE, L_ASCENDENS, False,
'auctusa2', 'open', S_VIRGA)
- write_virga(S_ORISCUS_SCAPUS, L_NOTHING, False,
- 'OriscusLineBL', 'short', S_ORISCUS_SCAPUS)
- write_virga(S_ORISCUS_SCAPUS_LONGQUEUE, L_NOTHING, False,
- 'OriscusLineBL', 'long', S_ORISCUS_SCAPUS)
- write_virga(S_ORISCUS_SCAPUS_OPENQUEUE, L_NOTHING, False,
- 'OriscusLineBL', 'open', S_ORISCUS_SCAPUS)
- write_virga(S_ORISCUS_REVERSUS_SCAPUS, L_NOTHING, False,
- 'OriscusReversusLineBL', 'short', S_ORISCUS_REVERSUS_SCAPUS)
- write_virga(S_ORISCUS_REVERSUS_SCAPUS_LONGQUEUE, L_NOTHING, False,
- 'OriscusReversusLineBL', 'long', S_ORISCUS_REVERSUS_SCAPUS)
- write_virga(S_ORISCUS_REVERSUS_SCAPUS_OPENQUEUE, L_NOTHING, False,
- 'OriscusReversusLineBL', 'open', S_ORISCUS_REVERSUS_SCAPUS)
+ write_virga(S_ASCENDENS_ORISCUS_SCAPUS, L_NOTHING, False,
+ 'AscendensOriscusLineBL', 'short', S_ASCENDENS_ORISCUS_SCAPUS)
+ write_virga(S_ASCENDENS_ORISCUS_SCAPUS_LONGQUEUE, L_NOTHING, False,
+ 'AscendensOriscusLineBL', 'long', S_ASCENDENS_ORISCUS_SCAPUS)
+ write_virga(S_ASCENDENS_ORISCUS_SCAPUS_OPENQUEUE, L_NOTHING, False,
+ 'AscendensOriscusLineBL', 'open', S_ASCENDENS_ORISCUS_SCAPUS)
+ write_virga(S_DESCENDENS_ORISCUS_SCAPUS, L_NOTHING, False,
+ 'DescendensOriscusLineBL', 'short', S_DESCENDENS_ORISCUS_SCAPUS)
+ write_virga(S_DESCENDENS_ORISCUS_SCAPUS_LONGQUEUE, L_NOTHING, False,
+ 'DescendensOriscusLineBL', 'long', S_DESCENDENS_ORISCUS_SCAPUS)
+ write_virga(S_DESCENDENS_ORISCUS_SCAPUS_OPENQUEUE, L_NOTHING, False,
+ 'DescendensOriscusLineBL', 'open', S_DESCENDENS_ORISCUS_SCAPUS)
def write_deminutus(i, j, length=0, tosimplify=0, firstbar=1):
"""As the glyph before a deminutus is not the same as a normal glyph,
@@ -834,17 +855,17 @@ HEPISEMA_GLYPHS = {
'HEpisemaQuilisma': 'Quilisma',
'HEpisemaQuilismaLineTR': 'QuilismaLineTR',
'HEpisemaHighPes': 'PunctumSmall',
- 'HEpisemaOriscus': 'Oriscus',
+ 'HEpisemaAscendensOriscus': 'AscendensOriscus',
'HEpisemaVirga': 'rvirgabase',
'HEpisemaVirgaBaseLineBL': 'VirgaBaseLineBL',
- 'HEpisemaOriscusLineTR': 'OriscusLineTR',
+ 'HEpisemaAscendensOriscusLineTR': 'AscendensOriscusLineTR',
'HEpisemaPunctumLineBR': 'PunctumLineBR',
'HEpisemaPunctumLineBL': 'PunctumLineBL',
'HEpisemaPunctumLineTL': 'PunctumLineTL',
'HEpisemaPunctumLineTR': 'PunctumLineTR',
'HEpisemaPunctumLineBLBR': 'PunctumLineBLBR',
'HEpisemaPunctumAuctusLineBL': 'PunctumAuctusLineBL',
- 'HEpisemaSalicusOriscus': 'SalicusOriscus',
+ 'HEpisemaAscendensOriscusLineBLTR': 'AscendensOriscusLineBLTR',
'HEpisemaFlat': 'Flat',
'HEpisemaSharp': 'Sharp',
'HEpisemaNatural': 'Natural',
@@ -903,19 +924,20 @@ def pes():
write_pes(i, "QuilismaLineTR", S_PES_QUILISMA)
precise_message("pes quilisma deminutus")
for i in range(1, MAX_INTERVAL+1):
- write_pes_deminutus(i, "QuilismaLineTR", S_PES_QUILISMA,
- L_DEMINUTUS)
+ write_pes_deminutus(i, "QuilismaLineTR", S_PES_QUILISMA, L_DEMINUTUS)
precise_message("pes quassus deminutus")
for i in range(1, MAX_INTERVAL+1):
- write_pes_deminutus(i, "OriscusLineTR", S_PES_QUASSUS,
+ write_pes_deminutus(i, "AscendensOriscusLineTR", S_PES_QUASSUS,
L_DEMINUTUS)
+ for i in range(1, MAX_INTERVAL+1):
+ write_pes_deminutus(i, "DescendensOriscusLineTR",
+ S_PES_QUASSUS_INUSITATUS, L_DEMINUTUS)
precise_message("pes initio debilis")
for i in range(1, MAX_INTERVAL+1):
write_pes_debilis(i, S_PES, L_INITIO_DEBILIS)
precise_message("pes initio debilis deminutus")
for i in range(1, MAX_INTERVAL+1):
- write_pes_debilis_deminutus(i, S_PES,
- L_INITIO_DEBILIS_DEMINUTUS)
+ write_pes_debilis_deminutus(i, S_PES, L_INITIO_DEBILIS_DEMINUTUS)
def fusion_pes():
"Creates the fusion pes."
@@ -930,8 +952,17 @@ def fusion_pes():
write_pes_deminutus(i, "mpdeminutus", S_LOWER_PES, L_DEMINUTUS)
precise_message("fusion pes quassus deminutus")
for i in range(1, MAX_INTERVAL+1):
- write_pes_deminutus(i, "SalicusOriscus", S_UPPER_PES_QUASSUS,
+ write_pes_deminutus(i, "AscendensOriscusLineBLTR", S_UPPER_PES_QUASSUS,
L_DEMINUTUS)
+ for i in range(1, MAX_INTERVAL+1):
+ write_pes_deminutus(i, "DescendensOriscusLineBLTR",
+ S_UPPER_PES_QUASSUS_INUSITATUS, L_DEMINUTUS)
+ for i in range(1, MAX_INTERVAL+1):
+ write_pes_deminutus(i, "AscendensOriscusLineTLTR", S_LOWER_PES_QUASSUS,
+ L_DEMINUTUS)
+ for i in range(1, MAX_INTERVAL+1):
+ write_pes_deminutus(i, "DescendensOriscusLineTLTR",
+ S_LOWER_PES_QUASSUS_INUSITATUS, L_DEMINUTUS)
def write_pes(i, first_glyph, shape, lique=L_NOTHING):
"Writes the pes glyphs."
@@ -1020,14 +1051,26 @@ def pes_quadratum():
stemshape=S_PES_QUADRATUM, qtype='open')
precise_message("pes quassus")
for i in range(1, MAX_INTERVAL+1):
- write_pes_quadratum(i, "OriscusLineTR", "VirgaBaseLineBL",
+ write_pes_quadratum(i, "AscendensOriscusLineTR", "VirgaBaseLineBL",
S_PES_QUASSUS,
stemshape=S_PES_QUASSUS, qtype='short')
for i in range(1, MAX_INTERVAL+1):
- write_pes_quadratum(i, "OriscusLineTR", "VirgaBaseLineBL",
+ write_pes_quadratum(i, "AscendensOriscusLineTR", "VirgaBaseLineBL",
S_PES_QUASSUS_LONGQUEUE,
stemshape=S_PES_QUASSUS, qtype='long')
- write_pes_quadratum(1, "OriscusLineTR", "VirgaBaseLineBL", S_PES_QUASSUS_OPENQUEUE,
+ write_pes_quadratum(1, "AscendensOriscusLineTR", "VirgaBaseLineBL",
+ S_PES_QUASSUS_OPENQUEUE, stemshape=S_PES_QUASSUS,
+ qtype='open')
+ for i in range(1, MAX_INTERVAL+1):
+ write_pes_quadratum(i, "DescendensOriscusLineTR", "VirgaBaseLineBL",
+ S_PES_QUASSUS_INUSITATUS, stemshape=S_PES_QUASSUS,
+ qtype='short')
+ for i in range(1, MAX_INTERVAL+1):
+ write_pes_quadratum(i, "DescendensOriscusLineTR", "VirgaBaseLineBL",
+ S_PES_QUASSUS_INUSITATUS_LONGQUEUE,
+ stemshape=S_PES_QUASSUS, qtype='long')
+ write_pes_quadratum(1, "DescendensOriscusLineTR", "VirgaBaseLineBL",
+ S_PES_QUASSUS_INUSITATUS_OPENQUEUE,
stemshape=S_PES_QUASSUS, qtype='open')
precise_message("pes quilisma quadratum")
for i in range(1, MAX_INTERVAL+1):
@@ -1035,43 +1078,46 @@ def pes_quadratum():
S_PES_QUILISMA_QUADRATUM,
stemshape=S_PES_QUILISMA_QUADRATUM, qtype='short')
for i in range(1, MAX_INTERVAL+1):
- write_pes_quadratum(i, "QuilismaLineTR",
- "VirgaBaseLineBL", S_PES_QUILISMA_QUADRATUM_LONGQUEUE,
+ write_pes_quadratum(i, "QuilismaLineTR", "VirgaBaseLineBL",
+ S_PES_QUILISMA_QUADRATUM_LONGQUEUE,
stemshape=S_PES_QUILISMA_QUADRATUM, qtype='long')
- write_pes_quadratum(1, "QuilismaLineTR",
- "VirgaBaseLineBL", S_PES_QUILISMA_QUADRATUM_OPENQUEUE,
+ write_pes_quadratum(1, "QuilismaLineTR", "VirgaBaseLineBL",
+ S_PES_QUILISMA_QUADRATUM_OPENQUEUE,
stemshape=S_PES_QUILISMA_QUADRATUM, qtype='open')
precise_message("pes auctus ascendens")
for i in range(1, MAX_INTERVAL+1):
- write_pes_quadratum(i, "PunctumLineTR",
- "auctusa2", S_PES_QUADRATUM, L_ASCENDENS)
+ write_pes_quadratum(i, "PunctumLineTR", "auctusa2", S_PES_QUADRATUM,
+ L_ASCENDENS)
precise_message("pes initio debilis auctus ascendens")
for i in range(1, MAX_INTERVAL+1):
- write_pes_quadratum(i, "idebilis",
- "auctusa2", S_PES_QUADRATUM,
+ write_pes_quadratum(i, "idebilis", "auctusa2", S_PES_QUADRATUM,
L_INITIO_DEBILIS_ASCENDENS)
precise_message("pes quassus auctus ascendens")
for i in range(1, MAX_INTERVAL+1):
- write_pes_quadratum(i, "OriscusLineTR",
+ write_pes_quadratum(i, "AscendensOriscusLineTR",
"auctusa2", S_PES_QUASSUS, L_ASCENDENS)
+ for i in range(1, MAX_INTERVAL+1):
+ write_pes_quadratum(i, "DescendensOriscusLineTR",
+ "auctusa2", S_PES_QUASSUS_INUSITATUS, L_ASCENDENS)
precise_message("pes quilisma auctus ascendens")
for i in range(1, MAX_INTERVAL+1):
- write_pes_quadratum(i, "QuilismaLineTR",
- "auctusa2", S_PES_QUILISMA_QUADRATUM,
- L_ASCENDENS)
+ write_pes_quadratum(i, "QuilismaLineTR", "auctusa2",
+ S_PES_QUILISMA_QUADRATUM, L_ASCENDENS)
precise_message("pes auctus descendens")
for i in range(1, MAX_INTERVAL+1):
- write_pes_quadratum(i, "PunctumLineTR",
- "PunctumAuctusLineBL", S_PES_QUADRATUM, L_DESCENDENS)
+ write_pes_quadratum(i, "PunctumLineTR", "PunctumAuctusLineBL",
+ S_PES_QUADRATUM, L_DESCENDENS)
precise_message("pes initio debilis auctus descendens")
for i in range(1, MAX_INTERVAL+1):
- write_pes_quadratum(i, "idebilis",
- "PunctumAuctusLineBL", S_PES_QUADRATUM,
- L_INITIO_DEBILIS_DESCENDENS)
+ write_pes_quadratum(i, "idebilis", "PunctumAuctusLineBL",
+ S_PES_QUADRATUM, L_INITIO_DEBILIS_DESCENDENS)
precise_message("pes quassus auctus descendens")
for i in range(1, MAX_INTERVAL+1):
- write_pes_quadratum(i, "OriscusLineTR",
- "PunctumAuctusLineBL", S_PES_QUASSUS, L_DESCENDENS)
+ write_pes_quadratum(i, "AscendensOriscusLineTR", "PunctumAuctusLineBL",
+ S_PES_QUASSUS, L_DESCENDENS)
+ for i in range(1, MAX_INTERVAL+1):
+ write_pes_quadratum(i, "DescendensOriscusLineTR", "PunctumAuctusLineBL",
+ S_PES_QUASSUS_INUSITATUS, L_DESCENDENS)
precise_message("pes quilisma auctus descendens")
for i in range(1, MAX_INTERVAL+1):
write_pes_quadratum(i, "QuilismaLineTR", "PunctumAuctusLineBL",
@@ -1105,16 +1151,49 @@ def fusion_pes_quadratum():
stemshape=S_LOWER_PES_QUADRATUM, qtype='open')
precise_message("fusion pes quassus")
for i in range(1, MAX_INTERVAL+1):
- write_pes_quadratum(i, "SalicusOriscus", "VirgaBaseLineBL",
+ write_pes_quadratum(i, "AscendensOriscusLineBLTR", "VirgaBaseLineBL",
S_UPPER_PES_QUASSUS,
stemshape=S_UPPER_PES_QUASSUS, qtype='short')
for i in range(1, MAX_INTERVAL+1):
- write_pes_quadratum(i, "SalicusOriscus", "VirgaBaseLineBL",
+ write_pes_quadratum(i, "AscendensOriscusLineBLTR", "VirgaBaseLineBL",
S_UPPER_PES_QUASSUS_LONGQUEUE,
stemshape=S_UPPER_PES_QUASSUS, qtype='long')
- write_pes_quadratum(1, "SalicusOriscus", "VirgaBaseLineBL",
+ write_pes_quadratum(1, "AscendensOriscusLineBLTR", "VirgaBaseLineBL",
S_UPPER_PES_QUASSUS_OPENQUEUE,
stemshape=S_UPPER_PES_QUASSUS, qtype='open')
+ for i in range(1, MAX_INTERVAL+1):
+ write_pes_quadratum(i, "DescendensOriscusLineBLTR", "VirgaBaseLineBL",
+ S_UPPER_PES_QUASSUS_INUSITATUS,
+ stemshape=S_UPPER_PES_QUASSUS, qtype='short')
+ for i in range(1, MAX_INTERVAL+1):
+ write_pes_quadratum(i, "DescendensOriscusLineBLTR", "VirgaBaseLineBL",
+ S_UPPER_PES_QUASSUS_INUSITATUS_LONGQUEUE,
+ stemshape=S_UPPER_PES_QUASSUS, qtype='long')
+ write_pes_quadratum(1, "DescendensOriscusLineBLTR", "VirgaBaseLineBL",
+ S_UPPER_PES_QUASSUS_INUSITATUS_OPENQUEUE,
+ stemshape=S_UPPER_PES_QUASSUS, qtype='open')
+ for i in range(1, MAX_INTERVAL+1):
+ write_pes_quadratum(i, "AscendensOriscusLineTLTR", "VirgaBaseLineBL",
+ S_LOWER_PES_QUASSUS,
+ stemshape=S_LOWER_PES_QUASSUS, qtype='short')
+ for i in range(1, MAX_INTERVAL+1):
+ write_pes_quadratum(i, "AscendensOriscusLineTLTR", "VirgaBaseLineBL",
+ S_LOWER_PES_QUASSUS_LONGQUEUE,
+ stemshape=S_LOWER_PES_QUASSUS, qtype='long')
+ write_pes_quadratum(1, "AscendensOriscusLineTLTR", "VirgaBaseLineBL",
+ S_LOWER_PES_QUASSUS_OPENQUEUE,
+ stemshape=S_LOWER_PES_QUASSUS, qtype='open')
+ for i in range(1, MAX_INTERVAL+1):
+ write_pes_quadratum(i, "DescendensOriscusLineTLTR", "VirgaBaseLineBL",
+ S_LOWER_PES_QUASSUS_INUSITATUS,
+ stemshape=S_LOWER_PES_QUASSUS, qtype='short')
+ for i in range(1, MAX_INTERVAL+1):
+ write_pes_quadratum(i, "DescendensOriscusLineTLTR", "VirgaBaseLineBL",
+ S_LOWER_PES_QUASSUS_INUSITATUS_LONGQUEUE,
+ stemshape=S_LOWER_PES_QUASSUS, qtype='long')
+ write_pes_quadratum(1, "DescendensOriscusLineTLTR", "VirgaBaseLineBL",
+ S_LOWER_PES_QUASSUS_INUSITATUS_OPENQUEUE,
+ stemshape=S_LOWER_PES_QUASSUS, qtype='open')
precise_message("fusion pes auctus ascendens")
for i in range(1, MAX_INTERVAL+1):
write_pes_quadratum(i, "msdeminutus", "auctusa2",
@@ -1124,8 +1203,17 @@ def fusion_pes_quadratum():
S_LOWER_PES_QUADRATUM, L_ASCENDENS)
precise_message("fusion pes quassus auctus ascendens")
for i in range(1, MAX_INTERVAL+1):
- write_pes_quadratum(i, "SalicusOriscus", "auctusa2",
+ write_pes_quadratum(i, "AscendensOriscusLineBLTR", "auctusa2",
S_UPPER_PES_QUASSUS, L_ASCENDENS)
+ for i in range(1, MAX_INTERVAL+1):
+ write_pes_quadratum(i, "DescendensOriscusLineBLTR", "auctusa2",
+ S_UPPER_PES_QUASSUS_INUSITATUS, L_ASCENDENS)
+ for i in range(1, MAX_INTERVAL+1):
+ write_pes_quadratum(i, "AscendensOriscusLineTLTR", "auctusa2",
+ S_LOWER_PES_QUASSUS, L_ASCENDENS)
+ for i in range(1, MAX_INTERVAL+1):
+ write_pes_quadratum(i, "DescendensOriscusLineTLTR", "auctusa2",
+ S_LOWER_PES_QUASSUS_INUSITATUS, L_ASCENDENS)
precise_message("fusion pes auctus descendens")
for i in range(1, MAX_INTERVAL+1):
write_pes_quadratum(i, "msdeminutus", "PunctumAuctusLineBL",
@@ -1135,8 +1223,17 @@ def fusion_pes_quadratum():
S_LOWER_PES_QUADRATUM, L_DESCENDENS)
precise_message("fusion pes quassus auctus descendens")
for i in range(1, MAX_INTERVAL+1):
- write_pes_quadratum(i, "SalicusOriscus", "PunctumAuctusLineBL",
+ write_pes_quadratum(i, "AscendensOriscusLineBLTR", "PunctumAuctusLineBL",
S_UPPER_PES_QUASSUS, L_DESCENDENS)
+ for i in range(1, MAX_INTERVAL+1):
+ write_pes_quadratum(i, "DescendensOriscusLineBLTR", "PunctumAuctusLineBL",
+ S_UPPER_PES_QUASSUS_INUSITATUS, L_DESCENDENS)
+ for i in range(1, MAX_INTERVAL+1):
+ write_pes_quadratum(i, "AscendensOriscusLineTLTR", "PunctumAuctusLineBL",
+ S_LOWER_PES_QUASSUS, L_DESCENDENS)
+ for i in range(1, MAX_INTERVAL+1):
+ write_pes_quadratum(i, "DescendensOriscusLineTLTR", "PunctumAuctusLineBL",
+ S_LOWER_PES_QUASSUS_INUSITATUS, L_DESCENDENS)
def write_pes_quadratum(i, first_glyph, last_glyph, shape, lique=L_NOTHING,
stemshape=None, qtype=None):
@@ -1145,33 +1242,29 @@ def write_pes_quadratum(i, first_glyph, last_glyph, shape, lique=L_NOTHING,
glyph_name = '%s%s%s' % (shape, AMBITUS[i], lique)
if copy_existing_glyph(glyph_name):
return
- if first_glyph == "idebilis":
- first_width = get_width('idebilis')-get_width('line2')
- elif first_glyph == "PunctumLineTR" or first_glyph == "OriscusLineTR":
- if i == 1:
- if first_glyph == 'PunctumLineTR':
- first_glyph = 'Punctum'
- if first_glyph == 'msdeminutus':
- first_glyph = 'PunctumLineBL'
- if first_glyph == 'base6':
- first_glyph = 'PunctumLineTL'
- elif first_glyph == 'OriscusLineTR':
- first_glyph = 'Oriscus'
- elif first_glyph == 'SalicusOriscus':
- first_glyph = 'OriscusLineBL'
+ if i == 1 and first_glyph != 'idebilis' and first_glyph != 'QuilismaLineTR':
+ if first_glyph == 'PunctumLineTR':
+ first_glyph = 'Punctum'
+ elif first_glyph == 'msdeminutus':
+ first_glyph = 'PunctumLineBL'
+ elif first_glyph == 'base6':
+ first_glyph = 'PunctumLineTL'
+ elif 'OriscusLine' in first_glyph:
+ if first_glyph.endswith('LineTR'):
+ first_glyph = first_glyph[:-6]
+ else:
+ first_glyph = first_glyph[:-2]
- if last_glyph == 'PunctumLineTL':
- last_glyph = 'Punctum'
- elif last_glyph == 'auctusa2':
- last_glyph = 'PunctumAscendens'
- elif last_glyph == 'PunctumAuctusLineBL':
- last_glyph = 'PunctumDescendens'
- elif last_glyph == 'VirgaBaseLineBL':
- last_glyph = 'virgabase'
+ if last_glyph == 'PunctumLineTL':
+ last_glyph = 'Punctum'
+ elif last_glyph == 'auctusa2':
+ last_glyph = 'PunctumAscendens'
+ elif last_glyph == 'PunctumAuctusLineBL':
+ last_glyph = 'PunctumDescendens'
+ elif last_glyph == 'VirgaBaseLineBL':
+ last_glyph = 'virgabase'
- first_width = get_width(first_glyph)
- else:
- first_width = get_width(first_glyph)-get_width('line2')
+ first_width = get_width(first_glyph)
else:
first_width = get_width(first_glyph)-get_width('line2')
simple_paste(first_glyph)
@@ -1190,7 +1283,7 @@ def virga_strata():
"Creates the virga strata."
precise_message("virga strata")
for i in range(1, MAX_INTERVAL+1):
- write_virga_strata(i, "PunctumLineTR", "OriscusLineBL",
+ write_virga_strata(i, "PunctumLineTR", "AscendensOriscusLineBL",
S_VIRGA_STRATA)
def write_virga_strata(i, first_glyph, last_glyph, shape, lique=L_NOTHING):
@@ -1202,7 +1295,7 @@ def write_virga_strata(i, first_glyph, last_glyph, shape, lique=L_NOTHING):
if i == 1:
first_glyph = 'Punctum'
first_width = get_width(first_glyph)
- last_glyph = 'Oriscus'
+ last_glyph = 'AscendensOriscus'
else:
first_width = get_width(first_glyph)-get_width('line2')
simple_paste(first_glyph)
@@ -1253,17 +1346,17 @@ def draw_salicus(i, j, last_glyph, lique=L_NOTHING, qtype=None):
if i == 1 and j == 1 and not deminutus:
first_glyph = 'Punctum'
first_width = get_width(first_glyph)
- middle_glyph = 'Oriscus'
+ middle_glyph = 'AscendensOriscus'
middle_width = get_width(middle_glyph)
elif i == 1 and (not deminutus or not glyph_exists('PesQuassusOneDeminutus')):
first_glyph = 'Punctum'
first_width = get_width(first_glyph)
- middle_glyph = 'OriscusLineTR'
+ middle_glyph = 'AscendensOriscusLineTR'
middle_width = get_width(middle_glyph)-get_width('line2')
elif j == 1 and not deminutus:
first_glyph = 'PunctumLineTR'
first_width = get_width(first_glyph)-get_width('line2')
- middle_glyph = 'OriscusLineBL'
+ middle_glyph = 'AscendensOriscusLineBL'
middle_width = get_width(middle_glyph)
elif (j == 1 and deminutus and glyph_exists('PesQuassusOneDeminutus') and
glyph_exists('UpperPesQuassusOneDeminutus')):
@@ -1281,7 +1374,7 @@ def draw_salicus(i, j, last_glyph, lique=L_NOTHING, qtype=None):
else:
first_glyph = 'PunctumLineTR'
first_width = get_width(first_glyph)-get_width('line2')
- middle_glyph = 'SalicusOriscus'
+ middle_glyph = 'AscendensOriscusLineBLTR'
middle_width = get_width(middle_glyph)-get_width('line2')
simple_paste(first_glyph)
if i != 1:
@@ -1382,29 +1475,50 @@ def flexus():
for i in range(1, MAX_INTERVAL+1):
write_flexus(i, "PunctumLineBR", 'PunctumLineTL', S_FLEXUS_NOBAR)
for i in range(1, MAX_INTERVAL+1):
- write_flexus(i, "odbase", 'PunctumLineTL', S_FLEXUS_ORISCUS)
+ write_flexus(i, "DescendensOriscusLineBR", 'PunctumLineTL',
+ S_FLEXUS_ORISCUS)
+ for i in range(1, MAX_INTERVAL+1):
+ write_flexus(i, "AscendensOriscusLineBR", 'PunctumLineTL',
+ S_FLEXUS_ORISCUS_INUSITATUS)
for i in range(1, MAX_INTERVAL+1):
write_flexus(i, "rvbase", 'PunctumLineTL', S_FLEXUS, qtype='short')
for i in range(1, MAX_INTERVAL+1):
write_flexus(i, "rvbase", 'PunctumLineTL', S_FLEXUS_LONGQUEUE, qtype='long')
write_flexus(1, "rvbase", 'PunctumLineTL', S_FLEXUS_OPENQUEUE, qtype='open')
for i in range(1, MAX_INTERVAL+1):
- write_flexus(i, "osbase", 'PunctumLineTL',
- S_FLEXUS_ORISCUS_SCAPUS, stemshape=S_FLEXUS_ORISCUS_SCAPUS, qtype='short')
+ write_flexus(i, "DescendensOriscusLineBLBR", 'PunctumLineTL',
+ S_FLEXUS_ORISCUS_SCAPUS, stemshape=S_FLEXUS_ORISCUS_SCAPUS,
+ qtype='short')
for i in range(1, MAX_INTERVAL+1):
- write_flexus(i, "osbase", 'PunctumLineTL',
+ write_flexus(i, "DescendensOriscusLineBLBR", 'PunctumLineTL',
S_FLEXUS_ORISCUS_SCAPUS_LONGQUEUE,
stemshape=S_FLEXUS_ORISCUS_SCAPUS, qtype='long')
- write_flexus(1, "osbase", 'PunctumLineTL', S_FLEXUS_ORISCUS_SCAPUS_OPENQUEUE,
+ write_flexus(1, "DescendensOriscusLineBLBR", 'PunctumLineTL',
+ S_FLEXUS_ORISCUS_SCAPUS_OPENQUEUE,
+ stemshape=S_FLEXUS_ORISCUS_SCAPUS, qtype='open')
+ for i in range(1, MAX_INTERVAL+1):
+ write_flexus(i, "AscendensOriscusLineBLBR", 'PunctumLineTL',
+ S_FLEXUS_ORISCUS_SCAPUS_INUSITATUS,
+ stemshape=S_FLEXUS_ORISCUS_SCAPUS,
+ qtype='short')
+ for i in range(1, MAX_INTERVAL+1):
+ write_flexus(i, "AscendensOriscusLineBLBR", 'PunctumLineTL',
+ S_FLEXUS_ORISCUS_SCAPUS_INUSITATUS_LONGQUEUE,
+ stemshape=S_FLEXUS_ORISCUS_SCAPUS, qtype='long')
+ write_flexus(1, "AscendensOriscusLineBLBR", 'PunctumLineTL',
+ S_FLEXUS_ORISCUS_SCAPUS_INUSITATUS_OPENQUEUE,
stemshape=S_FLEXUS_ORISCUS_SCAPUS, qtype='open')
precise_message("flexus deminutus")
for i in range(1, MAX_INTERVAL+1):
write_flexus(i, "mdeminutus", 'PunctumLineTL',
S_FLEXUS_NOBAR, L_DEMINUTUS)
for i in range(1, MAX_INTERVAL+1):
- write_flexus(i, "odbase", 'deminutus',
+ write_flexus(i, "DescendensOriscusLineBR", 'deminutus',
S_FLEXUS_ORISCUS, L_DEMINUTUS)
for i in range(1, MAX_INTERVAL+1):
+ write_flexus(i, "AscendensOriscusLineBR", 'deminutus',
+ S_FLEXUS_ORISCUS_INUSITATUS, L_DEMINUTUS)
+ for i in range(1, MAX_INTERVAL+1):
write_flexus(i, "mdeminutus", 'PunctumLineTL',
S_FLEXUS, L_DEMINUTUS, qtype='short')
for i in range(1, MAX_INTERVAL+1):
@@ -1417,9 +1531,12 @@ def flexus():
write_flexus(i, "PunctumLineBR", 'auctusa1',
S_FLEXUS_NOBAR, L_ASCENDENS)
for i in range(1, MAX_INTERVAL+1):
- write_flexus(i, "odbase", 'auctusa1',
+ write_flexus(i, "DescendensOriscusLineBR", 'auctusa1',
S_FLEXUS_ORISCUS, L_ASCENDENS)
for i in range(1, MAX_INTERVAL+1):
+ write_flexus(i, "AscendensOriscusLineBR", 'auctusa1',
+ S_FLEXUS_ORISCUS_INUSITATUS, L_ASCENDENS)
+ for i in range(1, MAX_INTERVAL+1):
write_flexus(i, "rvbase",
'auctusa1', S_FLEXUS, L_ASCENDENS, qtype='short')
for i in range(1, MAX_INTERVAL+1):
@@ -1428,24 +1545,40 @@ def flexus():
write_flexus(1, "rvbase",
'auctusa1', S_FLEXUS_OPENQUEUE, L_ASCENDENS, qtype='open')
for i in range(1, MAX_INTERVAL+1):
- write_flexus(i, "osbase",
+ write_flexus(i, "DescendensOriscusLineBLBR",
'auctusa1', S_FLEXUS_ORISCUS_SCAPUS,
L_ASCENDENS, stemshape = S_FLEXUS_ORISCUS_SCAPUS, qtype='short')
for i in range(1, MAX_INTERVAL+1):
- write_flexus(i, "osbase",
+ write_flexus(i, "DescendensOriscusLineBLBR",
'auctusa1', S_FLEXUS_ORISCUS_SCAPUS_LONGQUEUE,
L_ASCENDENS, stemshape = S_FLEXUS_ORISCUS_SCAPUS, qtype='long')
- write_flexus(1, "osbase",
+ write_flexus(1, "DescendensOriscusLineBLBR",
'auctusa1', S_FLEXUS_ORISCUS_SCAPUS_OPENQUEUE, L_ASCENDENS,
stemshape = S_FLEXUS_ORISCUS_SCAPUS, qtype='open')
+ for i in range(1, MAX_INTERVAL+1):
+ write_flexus(i, "AscendensOriscusLineBLBR",
+ 'auctusa1', S_FLEXUS_ORISCUS_SCAPUS_INUSITATUS,
+ L_ASCENDENS, stemshape = S_FLEXUS_ORISCUS_SCAPUS,
+ qtype='short')
+ for i in range(1, MAX_INTERVAL+1):
+ write_flexus(i, "AscendensOriscusLineBLBR",
+ 'auctusa1', S_FLEXUS_ORISCUS_SCAPUS_INUSITATUS_LONGQUEUE,
+ L_ASCENDENS, stemshape = S_FLEXUS_ORISCUS_SCAPUS,
+ qtype='long')
+ write_flexus(1, "AscendensOriscusLineBLBR",
+ 'auctusa1', S_FLEXUS_ORISCUS_SCAPUS_INUSITATUS_OPENQUEUE,
+ L_ASCENDENS, stemshape = S_FLEXUS_ORISCUS_SCAPUS, qtype='open')
precise_message("flexus auctus descendens")
for i in range(1, MAX_INTERVAL+1):
write_flexus(i, "PunctumLineBR", 'auctusd1', S_FLEXUS_NOBAR,
L_DESCENDENS)
for i in range(1, MAX_INTERVAL+1):
- write_flexus(i, "odbase", 'auctusd1', S_FLEXUS_ORISCUS,
+ write_flexus(i, "DescendensOriscusLineBR", 'auctusd1', S_FLEXUS_ORISCUS,
L_DESCENDENS)
for i in range(1, MAX_INTERVAL+1):
+ write_flexus(i, "AscendensOriscusLineBR", 'auctusd1',
+ S_FLEXUS_ORISCUS_INUSITATUS, L_DESCENDENS)
+ for i in range(1, MAX_INTERVAL+1):
write_flexus(i, "rvbase", 'auctusd1', S_FLEXUS,
L_DESCENDENS, qtype='short')
for i in range(1, MAX_INTERVAL+1):
@@ -1454,19 +1587,33 @@ def flexus():
write_flexus(1, "rvbase",
'auctusd1', S_FLEXUS_OPENQUEUE, L_DESCENDENS, qtype='open')
for i in range(1, MAX_INTERVAL+1):
- write_flexus(i, "osbase",
+ write_flexus(i, "DescendensOriscusLineBLBR",
'auctusd1', S_FLEXUS_ORISCUS_SCAPUS,
L_DESCENDENS, S_FLEXUS_ORISCUS_SCAPUS,
stemshape=S_FLEXUS_ORISCUS_SCAPUS, qtype='short')
for i in range(1, MAX_INTERVAL+1):
- write_flexus(i, "osbase",
+ write_flexus(i, "DescendensOriscusLineBLBR",
'auctusd1', S_FLEXUS_ORISCUS_SCAPUS_LONGQUEUE,
L_DESCENDENS, S_FLEXUS_ORISCUS_SCAPUS,
stemshape=S_FLEXUS_ORISCUS_SCAPUS, qtype='long')
- write_flexus(1, "osbase",
+ write_flexus(1, "DescendensOriscusLineBLBR",
'auctusd1', S_FLEXUS_ORISCUS_SCAPUS_OPENQUEUE, L_DESCENDENS,
- S_FLEXUS_ORISCUS_SCAPUS,
- stemshape=S_FLEXUS_ORISCUS_SCAPUS,qtype='open')
+ S_FLEXUS_ORISCUS_SCAPUS, stemshape=S_FLEXUS_ORISCUS_SCAPUS,
+ qtype='open')
+ for i in range(1, MAX_INTERVAL+1):
+ write_flexus(i, "AscendensOriscusLineBLBR",
+ 'auctusd1', S_FLEXUS_ORISCUS_SCAPUS_INUSITATUS,
+ L_DESCENDENS, S_FLEXUS_ORISCUS_SCAPUS,
+ stemshape=S_FLEXUS_ORISCUS_SCAPUS, qtype='short')
+ for i in range(1, MAX_INTERVAL+1):
+ write_flexus(i, "AscendensOriscusLineBLBR",
+ 'auctusd1', S_FLEXUS_ORISCUS_SCAPUS_INUSITATUS_LONGQUEUE,
+ L_DESCENDENS, S_FLEXUS_ORISCUS_SCAPUS,
+ stemshape=S_FLEXUS_ORISCUS_SCAPUS, qtype='long')
+ write_flexus(1, "AscendensOriscusLineBLBR",
+ 'auctusd1', S_FLEXUS_ORISCUS_SCAPUS_INUSITATUS_OPENQUEUE,
+ L_DESCENDENS, S_FLEXUS_ORISCUS_SCAPUS,
+ stemshape=S_FLEXUS_ORISCUS_SCAPUS, qtype='open')
def fusion_flexus():
"Creates the fusion flexus."
@@ -1475,11 +1622,19 @@ def fusion_flexus():
for i in range(1, MAX_INTERVAL+1):
write_flexus(i, "mademinutus", 'PunctumLineTL', S_LOWER_FLEXUS)
for i in range(1, MAX_INTERVAL+1):
- write_flexus(i, "rvbase", 'PunctumLineTL',
- S_UPPER_FLEXUS)
+ write_flexus(i, "rvbase", 'PunctumLineTL', S_UPPER_FLEXUS)
+ for i in range(1, MAX_INTERVAL+1):
+ write_flexus(i, "DescendensOriscusLineBLBR", 'PunctumLineTL',
+ S_UPPER_FLEXUS_ORISCUS)
for i in range(1, MAX_INTERVAL+1):
- write_flexus(i, "OriscusReversusLineTLBR", 'PunctumLineTL',
+ write_flexus(i, "DescendensOriscusLineTLBR", 'PunctumLineTL',
S_LOWER_FLEXUS_ORISCUS)
+ for i in range(1, MAX_INTERVAL+1):
+ write_flexus(i, "AscendensOriscusLineBLBR", 'PunctumLineTL',
+ S_UPPER_FLEXUS_ORISCUS_INUSITATUS)
+ for i in range(1, MAX_INTERVAL+1):
+ write_flexus(i, "AscendensOriscusLineTLBR", 'PunctumLineTL',
+ S_LOWER_FLEXUS_ORISCUS_INUSITATUS)
precise_message("fusion flexus deminutus")
for i in range(1, MAX_INTERVAL+1):
write_flexus(i, "mademinutus", 'deminutus', S_LOWER_FLEXUS,
@@ -1488,8 +1643,17 @@ def fusion_flexus():
write_flexus(i, "mdeminutus", 'deminutus', S_UPPER_FLEXUS,
L_DEMINUTUS)
for i in range(1, MAX_INTERVAL+1):
- write_flexus(i, "OriscusReversusLineTLBR", 'deminutus',
+ write_flexus(i, "DescendensOriscusLineBLBR", 'deminutus',
+ S_UPPER_FLEXUS_ORISCUS, L_DEMINUTUS)
+ for i in range(1, MAX_INTERVAL+1):
+ write_flexus(i, "DescendensOriscusLineTLBR", 'deminutus',
S_LOWER_FLEXUS_ORISCUS, L_DEMINUTUS)
+ for i in range(1, MAX_INTERVAL+1):
+ write_flexus(i, "AscendensOriscusLineBLBR", 'deminutus',
+ S_UPPER_FLEXUS_ORISCUS_INUSITATUS, L_DEMINUTUS)
+ for i in range(1, MAX_INTERVAL+1):
+ write_flexus(i, "AscendensOriscusLineTLBR", 'deminutus',
+ S_LOWER_FLEXUS_ORISCUS_INUSITATUS, L_DEMINUTUS)
precise_message("fusion flexus auctus ascendens")
for i in range(1, MAX_INTERVAL+1):
write_flexus(i, "mademinutus", 'auctusa1', S_LOWER_FLEXUS,
@@ -1498,8 +1662,17 @@ def fusion_flexus():
write_flexus(i, "rvbase", 'auctusa1', S_UPPER_FLEXUS,
L_ASCENDENS)
for i in range(1, MAX_INTERVAL+1):
- write_flexus(i, "OriscusReversusLineTLBR", 'auctusa1',
+ write_flexus(i, "DescendensOriscusLineBLBR", 'auctusa1',
+ S_UPPER_FLEXUS_ORISCUS, L_ASCENDENS)
+ for i in range(1, MAX_INTERVAL+1):
+ write_flexus(i, "DescendensOriscusLineTLBR", 'auctusa1',
S_LOWER_FLEXUS_ORISCUS, L_ASCENDENS)
+ for i in range(1, MAX_INTERVAL+1):
+ write_flexus(i, "AscendensOriscusLineBLBR", 'auctusa1',
+ S_UPPER_FLEXUS_ORISCUS_INUSITATUS, L_ASCENDENS)
+ for i in range(1, MAX_INTERVAL+1):
+ write_flexus(i, "AscendensOriscusLineTLBR", 'auctusa1',
+ S_LOWER_FLEXUS_ORISCUS_INUSITATUS, L_ASCENDENS)
precise_message("fusion flexus auctus descendens")
for i in range(1, MAX_INTERVAL+1):
write_flexus(i, "mademinutus", 'auctusd1', S_LOWER_FLEXUS,
@@ -1508,8 +1681,17 @@ def fusion_flexus():
write_flexus(i, "rvbase", 'auctusd1', S_UPPER_FLEXUS,
L_DESCENDENS)
for i in range(1, MAX_INTERVAL+1):
- write_flexus(i, "OriscusReversusLineTLBR", 'auctusd1',
+ write_flexus(i, "DescendensOriscusLineBLBR", 'auctusd1',
+ S_UPPER_FLEXUS_ORISCUS, L_DESCENDENS)
+ for i in range(1, MAX_INTERVAL+1):
+ write_flexus(i, "DescendensOriscusLineTLBR", 'auctusd1',
S_LOWER_FLEXUS_ORISCUS, L_DESCENDENS)
+ for i in range(1, MAX_INTERVAL+1):
+ write_flexus(i, "AscendensOriscusLineBLBR", 'auctusd1',
+ S_UPPER_FLEXUS_ORISCUS_INUSITATUS, L_DESCENDENS)
+ for i in range(1, MAX_INTERVAL+1):
+ write_flexus(i, "AscendensOriscusLineTLBR", 'auctusd1',
+ S_LOWER_FLEXUS_ORISCUS_INUSITATUS, L_DESCENDENS)
def write_flexus(i, first_glyph, last_glyph, shape, lique=L_NOTHING,
firstglyph_amone=None, lastglyph_amone=None, stemshape=S_FLEXUS, qtype=None):
@@ -1541,7 +1723,7 @@ def write_flexus(i, first_glyph, last_glyph, shape, lique=L_NOTHING,
else:
if qtype:
write_left_queue(i, qtype, stemshape, lique)
- if i == 1 and first_glyph != 'OriscusReversusLineTLBR':
+ if i == 1 and first_glyph != 'DescendensOriscusLineTLBR':
if last_glyph == 'PunctumLineTL':
last_glyph = 'Punctum'
elif last_glyph == 'auctusa1':
@@ -1551,10 +1733,11 @@ def write_flexus(i, first_glyph, last_glyph, shape, lique=L_NOTHING,
if first_glyph == 'PunctumLineBR':
first_glyph = 'Punctum'
- elif first_glyph == 'odbase':
- first_glyph = 'OriscusReversus'
- elif first_glyph == 'osbase':
- first_glyph = 'OriscusLineBL'
+ elif 'OriscusLine' in first_glyph:
+ if first_glyph.endswith('LineBR'):
+ first_glyph = first_glyph[:-6]
+ else:
+ first_glyph = first_glyph[:-2]
elif first_glyph == 'VirgaLineBR':
first_glyph = 'VirgaReversa'
elif first_glyph == 'rvbase':
@@ -2300,7 +2483,7 @@ def leading():
for i in range(1, MAX_INTERVAL+1):
write_leading(i, 'QuilismaLineTR', S_LEADING_QUILISMA)
for i in range(1, MAX_INTERVAL+1):
- write_leading(i, 'OriscusLineTR', S_LEADING_ORISCUS)
+ write_leading(i, 'AscendensOriscusLineTR', S_LEADING_ORISCUS)
# lique has a slightly different meaning here
def write_leading(i, first_glyph, glyph_type, lique=''):
@@ -2316,8 +2499,8 @@ def write_leading(i, first_glyph, glyph_type, lique=''):
first_glyph = 'Punctum'
elif first_glyph == 'QuilismaLineTR':
first_glyph = 'Quilisma'
- elif first_glyph == 'OriscusLineTR':
- first_glyph = 'Oriscus'
+ elif first_glyph == 'AscendensOriscusLineTR':
+ first_glyph = 'AscendensOriscus'
length = get_width(first_glyph) + length
paste_and_move(first_glyph, 0, -i * FONT_CONFIG['base height'])
if i != 1:
@@ -2341,35 +2524,86 @@ def fusion():
for i in range(1, MAX_INTERVAL+1):
write_fusion_leading(i, 'QuilismaLineTR', S_QUILISMA, L_UP)
for i in range(1, MAX_INTERVAL+1):
- write_fusion_leading(i, 'OriscusLineTR', S_ORISCUS, L_UP)
+ write_fusion_leading(i, 'AscendensOriscusLineTR', S_ASCENDENS_ORISCUS,
+ L_UP)
for i in range(1, MAX_INTERVAL+1):
- write_fusion_leading(i, 'SalicusOriscus', S_UPPER_ORISCUS,
+ write_fusion_leading(i, 'DescendensOriscusLineTR', S_DESCENDENS_ORISCUS,
L_UP)
for i in range(1, MAX_INTERVAL+1):
- write_fusion_leading(i, 'SalicusOriscus',
- S_ORISCUS_SCAPUS, L_UP, qtype='short',
- stemshape=S_FLEXUS_ORISCUS_SCAPUS)
+ write_fusion_leading(i, 'AscendensOriscusLineBLTR',
+ S_UPPER_ASCENDENS_ORISCUS, L_UP)
+ for i in range(1, MAX_INTERVAL+1):
+ write_fusion_leading(i, 'DescendensOriscusLineBLTR',
+ S_UPPER_DESCENDENS_ORISCUS, L_UP)
+ for i in range(1, MAX_INTERVAL+1):
+ write_fusion_leading(i, 'AscendensOriscusLineTLTR',
+ S_LOWER_ASCENDENS_ORISCUS, L_UP)
+ for i in range(1, MAX_INTERVAL+1):
+ write_fusion_leading(i, 'DescendensOriscusLineTLTR',
+ S_LOWER_DESCENDENS_ORISCUS, L_UP)
for i in range(1, MAX_INTERVAL+1):
- write_fusion_leading(i, 'SalicusOriscus',
- S_ORISCUS_SCAPUS_LONGQUEUE, L_UP, qtype='long',
+ write_fusion_leading(i, 'AscendensOriscusLineBLTR',
+ S_ASCENDENS_ORISCUS_SCAPUS, L_UP, qtype='short',
stemshape=S_FLEXUS_ORISCUS_SCAPUS)
- write_fusion_leading(1, 'SalicusOriscus',
- S_ORISCUS_SCAPUS_OPENQUEUE, L_UP, qtype='open',
- stemshape=S_FLEXUS_ORISCUS_SCAPUS)
for i in range(1, MAX_INTERVAL+1):
- write_fusion_leading(i, 'odbase', S_ORISCUS, L_DOWN)
+ write_fusion_leading(i, 'AscendensOriscusLineBLTR',
+ S_ASCENDENS_ORISCUS_SCAPUS_LONGQUEUE, L_UP,
+ qtype='long', stemshape=S_FLEXUS_ORISCUS_SCAPUS)
+ write_fusion_leading(1, 'AscendensOriscusLineBLTR',
+ S_ASCENDENS_ORISCUS_SCAPUS_OPENQUEUE, L_UP,
+ qtype='open', stemshape=S_FLEXUS_ORISCUS_SCAPUS)
for i in range(1, MAX_INTERVAL+1):
- write_fusion_leading(i, "osbase", S_ORISCUS_SCAPUS, L_DOWN,
- qtype='short', stemshape=S_FLEXUS_ORISCUS_SCAPUS)
+ write_fusion_leading(i, 'DescendensOriscusLineBLTR',
+ S_DESCENDENS_ORISCUS_SCAPUS, L_UP, qtype='short',
+ stemshape=S_FLEXUS_ORISCUS_SCAPUS)
for i in range(1, MAX_INTERVAL+1):
- write_fusion_leading(i, "osbase", S_ORISCUS_SCAPUS_LONGQUEUE, L_DOWN,
+ write_fusion_leading(i, 'DescendensOriscusLineBLTR',
+ S_DESCENDENS_ORISCUS_SCAPUS_LONGQUEUE, L_UP,
qtype='long', stemshape=S_FLEXUS_ORISCUS_SCAPUS)
- write_fusion_leading(1, "osbase", S_ORISCUS_SCAPUS_OPENQUEUE, L_DOWN,
+ write_fusion_leading(1, 'DescendensOriscusLineBLTR',
+ S_DESCENDENS_ORISCUS_SCAPUS_OPENQUEUE, L_UP,
qtype='open', stemshape=S_FLEXUS_ORISCUS_SCAPUS)
for i in range(1, MAX_INTERVAL+1):
- write_fusion_leading(i, 'OriscusReversusLineTLBR', S_LOWER_ORISCUS,
+ write_fusion_leading(i, 'AscendensOriscusLineBR', S_ASCENDENS_ORISCUS,
L_DOWN)
for i in range(1, MAX_INTERVAL+1):
+ write_fusion_leading(i, 'DescendensOriscusLineBR', S_DESCENDENS_ORISCUS,
+ L_DOWN)
+ for i in range(1, MAX_INTERVAL+1):
+ write_fusion_leading(i, 'AscendensOriscusLineBLBR',
+ S_UPPER_ASCENDENS_ORISCUS, L_DOWN)
+ for i in range(1, MAX_INTERVAL+1):
+ write_fusion_leading(i, 'DescendensOriscusLineBLBR',
+ S_UPPER_DESCENDENS_ORISCUS, L_DOWN)
+ for i in range(1, MAX_INTERVAL+1):
+ write_fusion_leading(i, 'AscendensOriscusLineTLBR',
+ S_LOWER_ASCENDENS_ORISCUS, L_DOWN)
+ for i in range(1, MAX_INTERVAL+1):
+ write_fusion_leading(i, 'DescendensOriscusLineTLBR',
+ S_LOWER_DESCENDENS_ORISCUS, L_DOWN)
+ for i in range(1, MAX_INTERVAL+1):
+ write_fusion_leading(i, "AscendensOriscusLineBLBR",
+ S_ASCENDENS_ORISCUS_SCAPUS, L_DOWN, qtype='short',
+ stemshape=S_FLEXUS_ORISCUS_SCAPUS)
+ for i in range(1, MAX_INTERVAL+1):
+ write_fusion_leading(i, "AscendensOriscusLineBLBR",
+ S_ASCENDENS_ORISCUS_SCAPUS_LONGQUEUE, L_DOWN,
+ qtype='long', stemshape=S_FLEXUS_ORISCUS_SCAPUS)
+ write_fusion_leading(1, "AscendensOriscusLineBLBR",
+ S_ASCENDENS_ORISCUS_SCAPUS_OPENQUEUE, L_DOWN,
+ qtype='open', stemshape=S_FLEXUS_ORISCUS_SCAPUS)
+ for i in range(1, MAX_INTERVAL+1):
+ write_fusion_leading(i, "DescendensOriscusLineBLBR",
+ S_DESCENDENS_ORISCUS_SCAPUS, L_DOWN, qtype='short',
+ stemshape=S_FLEXUS_ORISCUS_SCAPUS)
+ for i in range(1, MAX_INTERVAL+1):
+ write_fusion_leading(i, "DescendensOriscusLineBLBR",
+ S_DESCENDENS_ORISCUS_SCAPUS_LONGQUEUE, L_DOWN,
+ qtype='long', stemshape=S_FLEXUS_ORISCUS_SCAPUS)
+ write_fusion_leading(1, "DescendensOriscusLineBLBR",
+ S_DESCENDENS_ORISCUS_SCAPUS_OPENQUEUE, L_DOWN,
+ qtype='open', stemshape=S_FLEXUS_ORISCUS_SCAPUS)
+ for i in range(1, MAX_INTERVAL+1):
write_fusion_leading(i, 'PunctumLineBR', S_PUNCTUM, L_DOWN)
for i in range(1, MAX_INTERVAL+1):
write_fusion_leading(i, 'PunctumLineBLBR', S_UPPER_PUNCTUM,
@@ -2393,26 +2627,21 @@ def write_fusion_leading(i, first_glyph, glyph_type, lique, qtype = None, stemsh
if copy_existing_glyph(glyph_name):
return
length = -get_width('line2')
- if (i == 1 and first_glyph != 'idebilis' and first_glyph != 'odbase'
- and first_glyph != 'OriscusReversusLineTLBR'
- and first_glyph != 'osbase'):
+ if i == 1 and first_glyph != 'idebilis':
length = 0.1
if first_glyph == 'PunctumLineTR' or first_glyph == 'PunctumLineBR':
first_glyph = 'Punctum'
elif first_glyph == 'QuilismaLineTR':
first_glyph = 'Quilisma'
- elif first_glyph == 'OriscusLineTR':
- first_glyph = 'Oriscus'
- elif first_glyph == 'OriscusScapusLineTR':
- first_glyph = 'OriscusScapus'
- elif first_glyph == 'OriscusScapusLongqueueLineTR':
- first_glyph = 'OriscusScapusLongqueue'
+ elif 'Oriscus' in first_glyph and 'Line' in first_glyph:
+ if first_glyph.endswith('LineTR') or first_glyph.endswith('LineBR'):
+ first_glyph = first_glyph[:-6]
+ else:
+ first_glyph = first_glyph[:-2]
elif first_glyph == 'msdeminutus' or first_glyph == 'PunctumLineBLBR':
first_glyph = 'PunctumLineBL'
elif first_glyph == 'mademinutus' or first_glyph == 'base6':
first_glyph = 'PunctumLineTL'
- elif first_glyph == 'SalicusOriscus':
- first_glyph = 'OriscusLineBL'
elif first_glyph == 'VirgaBaseLineBL':
first_glyph = 'rvirgabase'
length = get_width(first_glyph) + length
diff --git a/Master/texmf-dist/fonts/truetype/public/gregoriotex/parmesan-op.ttf b/Master/texmf-dist/fonts/truetype/public/gregoriotex/granapadano-op.ttf
index fc92b8c7cb0..f8a234eedbb 100644
--- a/Master/texmf-dist/fonts/truetype/public/gregoriotex/parmesan-op.ttf
+++ b/Master/texmf-dist/fonts/truetype/public/gregoriotex/granapadano-op.ttf
Binary files differ
diff --git a/Master/texmf-dist/fonts/truetype/public/gregoriotex/parmesan.ttf b/Master/texmf-dist/fonts/truetype/public/gregoriotex/granapadano.ttf
index bc582647381..429502e861e 100644
--- a/Master/texmf-dist/fonts/truetype/public/gregoriotex/parmesan.ttf
+++ b/Master/texmf-dist/fonts/truetype/public/gregoriotex/granapadano.ttf
Binary files differ
diff --git a/Master/texmf-dist/fonts/truetype/public/gregoriotex/greciliae-op.ttf b/Master/texmf-dist/fonts/truetype/public/gregoriotex/greciliae-op.ttf
index 8ca355718ce..76336f44e4a 100644
--- a/Master/texmf-dist/fonts/truetype/public/gregoriotex/greciliae-op.ttf
+++ b/Master/texmf-dist/fonts/truetype/public/gregoriotex/greciliae-op.ttf
Binary files differ
diff --git a/Master/texmf-dist/fonts/truetype/public/gregoriotex/greciliae.ttf b/Master/texmf-dist/fonts/truetype/public/gregoriotex/greciliae.ttf
index a0394823d26..c494e2baee3 100644
--- a/Master/texmf-dist/fonts/truetype/public/gregoriotex/greciliae.ttf
+++ b/Master/texmf-dist/fonts/truetype/public/gregoriotex/greciliae.ttf
Binary files differ
diff --git a/Master/texmf-dist/fonts/truetype/public/gregoriotex/greextra.ttf b/Master/texmf-dist/fonts/truetype/public/gregoriotex/greextra.ttf
index 5d812dd3e20..7b44706a6c2 100644
--- a/Master/texmf-dist/fonts/truetype/public/gregoriotex/greextra.ttf
+++ b/Master/texmf-dist/fonts/truetype/public/gregoriotex/greextra.ttf
Binary files differ
diff --git a/Master/texmf-dist/fonts/truetype/public/gregoriotex/gregall.ttf b/Master/texmf-dist/fonts/truetype/public/gregoriotex/gregall.ttf
index 430235b3aa5..eadbd34e93b 100644
--- a/Master/texmf-dist/fonts/truetype/public/gregoriotex/gregall.ttf
+++ b/Master/texmf-dist/fonts/truetype/public/gregoriotex/gregall.ttf
Binary files differ
diff --git a/Master/texmf-dist/fonts/truetype/public/gregoriotex/gregorio-op.ttf b/Master/texmf-dist/fonts/truetype/public/gregoriotex/gregorio-op.ttf
index dbd3fda2f14..adf85281242 100644
--- a/Master/texmf-dist/fonts/truetype/public/gregoriotex/gregorio-op.ttf
+++ b/Master/texmf-dist/fonts/truetype/public/gregoriotex/gregorio-op.ttf
Binary files differ
diff --git a/Master/texmf-dist/fonts/truetype/public/gregoriotex/gregorio.ttf b/Master/texmf-dist/fonts/truetype/public/gregoriotex/gregorio.ttf
index d6c375523e1..b3b46d97b97 100644
--- a/Master/texmf-dist/fonts/truetype/public/gregoriotex/gregorio.ttf
+++ b/Master/texmf-dist/fonts/truetype/public/gregoriotex/gregorio.ttf
Binary files differ
diff --git a/Master/texmf-dist/fonts/truetype/public/gregoriotex/gresgmodern.ttf b/Master/texmf-dist/fonts/truetype/public/gregoriotex/gresgmodern.ttf
index 9343fbb593e..da277c6898d 100644
--- a/Master/texmf-dist/fonts/truetype/public/gregoriotex/gresgmodern.ttf
+++ b/Master/texmf-dist/fonts/truetype/public/gregoriotex/gresgmodern.ttf
Binary files differ
diff --git a/Master/texmf-dist/tex/lualatex/gregoriotex/gregoriosyms.sty b/Master/texmf-dist/tex/lualatex/gregoriotex/gregoriosyms.sty
index 622f3b1470f..dc8c20446e8 100644
--- a/Master/texmf-dist/tex/lualatex/gregoriotex/gregoriosyms.sty
+++ b/Master/texmf-dist/tex/lualatex/gregoriotex/gregoriosyms.sty
@@ -19,7 +19,7 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{gregoriosyms}
- [2016/03/10 v4.1.1 GregorioTeX symbols only.]% PARSE_VERSION_DATE_LTX
+ [2016/04/27 v4.2.0-beta1 GregorioTeX symbols only.]% PARSE_VERSION_DATE_LTX
% If gregoriotex has been loaded, then we need to abort the loading process of this package here in order to avoid some conflicts.
\ifcsname gregoriotex@symbols@loaded\endcsname\endinput\fi%
@@ -30,15 +30,16 @@
\RequirePackage{luaotfload}
\RequirePackage{luamplib}%
\RequirePackage{xstring}%
+\RequirePackage{xcolor}%
\newluatexcatcodetable\gre@atletter %
\setluatexcatcodetable\gre@atletter{%
- \catcode`\@=11 %
+ \catcode`\@=11 %
}%
% The version of gregorio. All gregoriotex*.tex files must have the same.
% All gtex files must also have the same version.
-\xdef\gre@gregorioversion{4.1.1}% GREGORIO_VERSION - VersionManager.py
+\xdef\gre@gregorioversion{4.2.0-beta1}% GREGORIO_VERSION - VersionManager.py
\providecommand{\gre@declarefileversion}[2]{\relax}
@@ -59,41 +60,41 @@
\ProcessKeyvalOptions*
\def\gre@debugmsg#1#2{%
- \IfStrEq{\gre@debug}{}{}%
- %false
- {\IfStrEq{#1}{all}%
- %true
- {\gre@error{Debug error: ‘all’ is not a permitted keyword}}%
- %false
- {\IfStrEq{\gre@debug}{all}%
- %true
- {\gre@typeout{GregorioTeX debug: (#1) #2}}%
- %false
- {\IfSubStr{\gre@debug}{#1}%
- %true
- {\gre@typeout{GregorioTeX debug: (#1) #2}}%
- %false
- {\relax}%
- }%
- }%
- }%
+ \IfStrEq{\gre@debug}{}{}%
+ %false
+ {\IfStrEq{#1}{all}%
+ %true
+ {\gre@error{Debug error: ‘all’ is not a permitted keyword}}%
+ %false
+ {\IfStrEq{\gre@debug}{all}%
+ %true
+ {\gre@typeout{GregorioTeX debug: (#1) #2}}%
+ %false
+ {\IfSubStr{\gre@debug}{#1}%
+ %true
+ {\gre@typeout{GregorioTeX debug: (#1) #2}}%
+ %false
+ {\relax}%
+ }%
+ }%
+ }%
}%
% Macro to handle deprecated macros.
% #1 - the deprecated macro
% #2 - the correct macro to use
\def\gre@deprecated#1#2{%
- \ifgre@allowdeprecated%
- \gre@warning{#1\space is deprecated.\MessageBreak Use #2\space instead}%
- \else%
- \gre@error{#1\space is deprecated.\MessageBreak Use #2\space instead}%
- \fi%
- \relax%
+ \ifgre@allowdeprecated%
+ \gre@warning{#1\space is deprecated.\MessageBreak Use #2\space instead}%
+ \else%
+ \gre@error{#1\space is deprecated.\MessageBreak Use #2\space instead}%
+ \fi%
+ \relax%
}%
\def\gre@obsolete#1#2{%
- \gre@error{#1\space is obsolete.\MessageBreak Use #2\space instead}%
- \relax%
+ \gre@error{#1\space is obsolete.\MessageBreak Use #2\space instead}%
+ \relax%
}%
\AtBeginDocument{\IfStrEq{\gre@debug}{}{}{\typeout{GregorioTeX is in debug mode}\typeout{\gre@debug\space messages will be printed to the log.}}}%
@@ -104,4 +105,11 @@
% Test to make sure that gregoriotex.lua is of the same version.
\IfStrEq*{\gre@gregoriotexluaversion}{\gre@gregorioversion}{}{%else
- \gre@error{uncoherent file versions: gregoriosyms.sty is in version \number\gre@gregorioversion \space\space while gregoriotex.lua is in version \gre@gregoriotexluaversion}}%
+ \gre@error{uncoherent file versions: gregoriosyms.sty is in version \number\gre@gregorioversion \space\space while gregoriotex.lua is in version \gre@gregoriotexluaversion}}%
+
+%%%%%%%%%
+%% Color definitions
+%%%%%%%%%
+
+\definecolor{grebackgroundcolor}{RGB}{255,255,255}%
+\definecolor{gregoriocolor}{RGB}{229,53,44}%
diff --git a/Master/texmf-dist/tex/lualatex/gregoriotex/gregoriotex.sty b/Master/texmf-dist/tex/lualatex/gregoriotex/gregoriotex.sty
index aadc23ec90e..7fcdd0187cb 100644
--- a/Master/texmf-dist/tex/lualatex/gregoriotex/gregoriotex.sty
+++ b/Master/texmf-dist/tex/lualatex/gregoriotex/gregoriotex.sty
@@ -19,7 +19,7 @@
\NeedsTeXFormat{LaTeX2e}%
\ProvidesPackage{gregoriotex}%
- [2016/03/10 v4.1.1 GregorioTeX system.]% PARSE_VERSION_DATE_LTX
+ [2016/04/27 v4.2.0-beta1 GregorioTeX system.]% PARSE_VERSION_DATE_LTX
% If gregoriosyms has been loaded then there are going to be some conflicts in the definitions made in that package and this one. In order to provide for a more informative error message, we check for that conflict right away
\ifcsname gregoriotex@symbols@loaded\endcsname\gre@error{Loading gregoriotex after\MessageBreak gregoriosyms is not supported. Please remove the\MessageBreak loading of gregoriosyms (its contents are loaded\MessageBreak by gregoriotex)}\fi%
@@ -38,11 +38,11 @@
\def\gre@bug#1{\PackageError{GregorioTeX}{#1 !! This is a bug in Gregorio. Please report it at https://github.com/gregorio-project/gregorio/issues}{}}%
\def\gre@typeout{\typeout}
\long\def\gre@metapost#1{{%
- \gre@localleftbox{}%
- \gre@localrightbox{}%
- \begin{mplibcode}
- #1
- \end{mplibcode}%
+ \gre@localleftbox{}%
+ \gre@localrightbox{}%
+ \begin{mplibcode}
+ #1
+ \end{mplibcode}%
}}%
\SetupKeyvalOptions{prefix=gre@}
@@ -74,145 +74,130 @@
\gresetlinesbehindalteration{invisible}
\gresetlinesbehindpunctumcavum{invisible}
-%% We now redefine some things in a more LaTeX friendly way.
+%%%%%%%%%
+%% Color definitions
+%%%%%%%%%
\definecolor{grebackgroundcolor}{RGB}{255,255,255}%
-\definecolor{gregoriocolor}{RGB}{229,53,44}
+\definecolor{gregoriocolor}{RGB}{229,53,44}%
%%%%%%%%%
%% LaTeX specific definitions for fonts
%%%%%%%%%
\def\GreItalic#1{%
- \textit{#1}%
- \relax %
+ \textit{#1}%
+ \relax %
}
\def\GreSmallCaps#1{%
- \textsc{#1}%
- \relax %
+ \textsc{#1}%
+ \relax %
}
\def\GreBold#1{%
- \textbf{#1}%
- \relax %
+ \textbf{#1}%
+ \relax %
}
\def\GreTypewriter#1{%
- \texttt{#1}%
- \relax %
+ \texttt{#1}%
+ \relax %
}
\def\GreUnderline#1{%
- \underline{#1}%
- \relax %
+ \underline{#1}%
+ \relax %
}
\def\GreColored#1{%
- {%
- \color{gregoriocolor}#1%
- }%
+ {%
+ \color{gregoriocolor}#1%
+ }%
}
\def\gresetlinecolor#1{%
- \gre@changestyle{normalstafflines}{\color[named]{#1}}[\relax]%
-}
-
-\def\grecoloredlines#1#2#3{%OBSOLETE
- \gre@obsolete{\protect\grecoloredlines}{\protect\gresetlinecolor}%
-}
-
-\def\greredlines{%OBSOLETE
- \gre@obsolete{\protect\greredlines}{\protect\gresetlinecolor{gregoriocolor}}%
- \relax %
-}
-
-\let\redlines\greredlines%OBSOLETE
-
-\def\grenormallines{%OBSOLETE
- \gre@obsolete{\protect\grenormallines}{\protect\gresetlinecolor{black}}%
- \relax %
+ \gre@changestyle{normalstafflines}{\color[named]{#1}}[\relax]%
}
-\let\normallines\grenormallines%OBSOLETE
%%%%%%%%%%%%%%%%%%%%
%% Formatting environments
%%%%%%%%%%%%%%%%%%%%
\newenvironment{gre@style@initial}%
- {\begingroup\fontsize{40}{40}\selectfont}%
- {\endgroup}%
+ {\begingroup\fontsize{40}{40}\selectfont}%
+ {\endgroup}%
\newenvironment{gre@style@biginitial}%%% DEPRECATED for removal in 5.0
- {\begingroup\fontsize{80}{80}\selectfont}%%% DEPRECATED for removal in 5.0
- {\endgroup}%%% DEPRECATED for removal in 5.0
+ {\begingroup\fontsize{80}{80}\selectfont}%%% DEPRECATED for removal in 5.0
+ {\endgroup}%%% DEPRECATED for removal in 5.0
\newenvironment{gre@style@translation}%
- {\begingroup\itshape}%
- {\endgroup}%
+ {\begingroup\itshape}%
+ {\endgroup}%
\newenvironment{gre@style@abovelinestext}%
- {\begingroup\small\itshape}%
- {\endgroup}%
+ {\begingroup\small\itshape}%
+ {\endgroup}%
\newenvironment{gre@style@normalstafflines}%
- {\begingroup}%
- {\endgroup}%
+ {\begingroup}%
+ {\endgroup}%
\newenvironment{gre@style@additionalstafflines}%
- {\begingroup\begin{gre@style@normalstafflines}}%
- {\end{gre@style@normalstafflines}\endgroup}%
+ {\begingroup\begin{gre@style@normalstafflines}}%
+ {\end{gre@style@normalstafflines}\endgroup}%
\newenvironment{gre@style@lowchoralsign}%
- {\begingroup}%
- {\endgroup}%
+ {\begingroup}%
+ {\endgroup}%
\newenvironment{gre@style@highchoralsign}%
- {\begingroup}%
- {\endgroup}%
+ {\begingroup}%
+ {\endgroup}%
\newenvironment{gre@style@firstsyllableinitial}%
- {\begingroup}%
- {\endgroup}%
+ {\begingroup}%
+ {\endgroup}%
\newenvironment{gre@style@firstsyllable}%
- {\begingroup}%
- {\endgroup}%
+ {\begingroup}%
+ {\endgroup}%
\newenvironment{gre@style@firstword}%
- {\begingroup}%
- {\endgroup}%
+ {\begingroup}%
+ {\endgroup}%
\newenvironment{gre@style@modeline}%
- {\begingroup\begin{scshape}\begin{bfseries}}%
- {\end{bfseries}\end{scshape}\endgroup}%
+ {\begingroup\begin{scshape}\begin{bfseries}}%
+ {\end{bfseries}\end{scshape}\endgroup}%
\newenvironment{gre@style@modemodifier}%
- {\begingroup\begin{bfseries}\itshape\@@italiccorr}%
- {\@@italiccorr\end{bfseries}\endgroup}%
+ {\begingroup\begin{bfseries}\itshape\@@italiccorr}%
+ {\@@italiccorr\end{bfseries}\endgroup}%
\newenvironment{gre@style@modedifferentia}%
- {\begingroup\begin{bfseries}}%
- {\end{bfseries}\endgroup}%
+ {\begingroup\begin{bfseries}}%
+ {\end{bfseries}\endgroup}%
\newenvironment{gre@style@annotation}%
- {\begingroup}%
- {\endgroup}%
+ {\begingroup}%
+ {\endgroup}%
\newenvironment{gre@style@commentary}%
- {\begingroup\footnotesize\itshape}%
- {\endgroup}%
+ {\begingroup\footnotesize\itshape}%
+ {\endgroup}%
\newenvironment{gre@style@elision}%
- {\begingroup\small\itshape\@@italiccorr}%
- {\@@italiccorr\endgroup}%
+ {\begingroup\small\itshape\@@italiccorr}%
+ {\@@italiccorr\endgroup}%
\newenvironment{gre@style@nabc}%
- {\begingroup\color{red}}%
- {\endgroup}%
+ {\begingroup\color{gregoriocolor}}%
+ {\endgroup}%
\def\gre@changestyle#1#2[#3]{%
- \renewenvironment{gre@style@#1}{\begingroup#2}{#3\endgroup}%
+ \renewenvironment{gre@style@#1}{\begingroup#2}{#3\endgroup}%
}%
diff --git a/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-chars.tex b/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-chars.tex
index 25bbe59a204..5303a304c01 100644
--- a/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-chars.tex
+++ b/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-chars.tex
@@ -18,7 +18,7 @@
% along with Gregorio. If not, see <http://www.gnu.org/licenses/>.
\gre@debugmsg{general}{Loading gregoriotex-chars.tex}%
-\gre@declarefileversion{gregoriotex-chars.tex}{4.1.1}% GREGORIO_VERSION
+\gre@declarefileversion{gregoriotex-chars.tex}{4.2.0-beta1}% GREGORIO_VERSION
\def\gre@char@fuse@punctum@one{\GreFuseTwo{\GreCPLeadingPunctumOne}{\GreCPPunctum}}%
\def\gre@char@fuse@quilisma@one{\GreFuseTwo{\GreCPLeadingQuilismaOne}{\GreCPPunctum}}%
@@ -31,28 +31,28 @@
% horizontal episema
\newbox\gre@box@hep%
\def\gre@def@char@he#1#2{%
- \expandafter\def\csname gre@char@he@#1\endcsname##1{%
- \ifx##1f\csname GreCPHEpisema#2\endcsname%
- \else%
- \setbox\gre@box@hep\hbox{\csname GreCPHEpisema#2\endcsname}%
- \hbox to \wd\gre@box@hep{%
- \ifx##1l\else\hfil\fi%
- \csname GreCPHEpisema#2Reduced\endcsname%
- \ifx##1r\else\hfil\fi%
- }%
- \fi%
- }%
+ \expandafter\def\csname gre@char@he@#1\endcsname##1{%
+ \ifx##1f\csname GreCPHEpisema#2\endcsname%
+ \else%
+ \setbox\gre@box@hep\hbox{\csname GreCPHEpisema#2\endcsname}%
+ \hbox to \wd\gre@box@hep{%
+ \ifx##1l\else\hfil\fi%
+ \csname GreCPHEpisema#2Reduced\endcsname%
+ \ifx##1r\else\hfil\fi%
+ }%
+ \fi%
+ }%
}%
\def\gre@def@char@he@porr#1#2{%
- \expandafter\def\csname gre@char@he@#1\endcsname##1##2{%
- \ifcase##1\gre@char@he@punctum{##2}%
- \or\csname GreCPHEpisema#2One\endcsname%
- \or\csname GreCPHEpisema#2Two\endcsname%
- \or\csname GreCPHEpisema#2Three\endcsname%
- \or\csname GreCPHEpisema#2Four\endcsname%
- \or\csname GreCPHEpisema#2Five\endcsname%
- \fi%
- }%
+ \expandafter\def\csname gre@char@he@#1\endcsname##1##2{%
+ \ifcase##1\gre@char@he@punctum{##2}%
+ \or\csname GreCPHEpisema#2One\endcsname%
+ \or\csname GreCPHEpisema#2Two\endcsname%
+ \or\csname GreCPHEpisema#2Three\endcsname%
+ \or\csname GreCPHEpisema#2Four\endcsname%
+ \or\csname GreCPHEpisema#2Five\endcsname%
+ \fi%
+ }%
}%
\gre@def@char@he{punctum}{Punctum}%
\gre@def@char@he{punctum@line@br}{PunctumLineBR}%
@@ -61,7 +61,7 @@
\gre@def@char@he{punctum@line@bl}{PunctumLineBL}%
\gre@def@char@he{punctum@line@blbr}{PunctumLineBLBR}%
\gre@def@char@he{punctumauctus@line@bl}{PunctumAuctusLineBL}%
-\gre@def@char@he{salicus@oriscus}{SalicusOriscus}%
+\gre@def@char@he{salicus@oriscus}{AscendensOriscusLineBLTR}%
\gre@def@char@he{flexus}{FlexusDeminutus}%
\gre@def@char@he{initio}{Debilis}%
\gre@def@char@he{virga}{Virga}%
@@ -74,8 +74,8 @@
\gre@def@char@he@porr{porrectusfl}{PorrectusFlexus}%
\gre@def@char@he{quilisma}{Quilisma}%
\gre@def@char@he{quilisma@line@tr}{QuilismaLineTR}%
-\gre@def@char@he{oriscus}{Oriscus}%
-\gre@def@char@he{oriscus@line@tr}{OriscusLineTR}%
+\gre@def@char@he{oriscus}{AscendensOriscus}%
+\gre@def@char@he{oriscus@line@tr}{AscendensOriscusLineTR}%
\gre@def@char@he{smallpunctum}{HighPes}% "smallpunctum" is the top punctum in a pes
\gre@def@char@he{flat}{Flat}%
\gre@def@char@he{sharp}{Sharp}%
@@ -107,95 +107,79 @@
%%%%%%%%%%%%%%%%%
\def\gresetglyphstyle#1{%
- \IfStrEqCase{#1}{%
- {default}%
- {%
- \greresetglyph{Flat}%
- \greresetglyph{FlatHole}%
- \greresetglyph{Natural}%
- \greresetglyph{NaturalHole}%
- \greresetglyph{Sharp}%
- \greresetglyph{SharpHole}%
- \greresetglyph{CClef}%
- \greresetglyph{FClef}%
- \greresetglyph{CClefChange}%
- \greresetglyph{FClefChange}%
- \greresetglyph{AuctumMora}%
- \greresetglyph{VEpisema}%
- \greresetglyph{CustosUpLong}%
- \greresetglyph{CustosUpShort}%
- \greresetglyph{CustosUpMedium}%
- \greresetglyph{CustosDownLong}%
- \greresetglyph{CustosDownShort}%
- \greresetglyph{CustosDownMedium}%
- \greresetglyph{BarBrace}%
- \greresetglyph{Punctum}%
- \relax %
- }%
- {medicaea}%
- {%
- \gresetglyphstyle{default}\gre@usestylecommon %
- \grechangeglyph{CustosUpLong}{greextra}{MedicaeaCustosUpLong}%
- \grechangeglyph{CustosUpShort}{greextra}{MedicaeaCustosUpShort}%
- \grechangeglyph{CustosUpMedium}{greextra}{MedicaeaCustosUpMedium}%
- \grechangeglyph{CustosDownLong}{greextra}{MedicaeaCustosDownLong}%
- \grechangeglyph{CustosDownShort}{greextra}{MedicaeaCustosDownShort}%
- \grechangeglyph{CustosDownMedium}{greextra}{MedicaeaCustosDownMedium}%
- \grechangeglyph{CClef}{greextra}{MedicaeaCClef}%
- \grechangeglyph{FClef}{greextra}{MedicaeaFClef}%
- \grechangeglyph{CClefChange}{greextra}{MedicaeaCClefChange}%
- \grechangeglyph{FClefChange}{greextra}{MedicaeaFClefChange}%
- \grechangeglyph{Flat}{greextra}{MedicaeaFlat}%
- \grechangeglyph{FlatHole}{greextra}{MedicaeaFlatHole}%
- \relax %
- }%
- {hufnagel}%
- {%
- \gresetglyphstyle{default}\gre@usestylecommon %
- \grechangeglyph{CustosUpLong}{greextra}{HufnagelCustosUpLong}%
- \grechangeglyph{CustosUpShort}{greextra}{HufnagelCustosUpShort}%
- \grechangeglyph{CustosUpMedium}{greextra}{HufnagelCustosUpMedium}%
- \grechangeglyph{CustosDownLong}{greextra}{HufnagelCustosDownLong}%
- \grechangeglyph{CustosDownShort}{greextra}{HufnagelCustosDownShort}%
- \grechangeglyph{CustosDownMedium}{greextra}{HufnagelCustosDownMedium}%
- \grechangeglyph{CClef}{greextra}{HufnagelCClef}%
- \grechangeglyph{FClef}{greextra}{HufnagelFClef}%
- \grechangeglyph{CClefChange}{greextra}{HufnagelCClefChange}%
- \grechangeglyph{FClefChange}{greextra}{HufnagelFClefChange}%
- \grechangeglyph{Flat}{greextra}{HufnagelFlat}%
- \grechangeglyph{FlatHole}{greextra}{HufnagelFlatHole}%
- \relax %
- }%
- {mensural}%
- {%
- \gresetglyphstyle{default}\gre@usestylecommon %
- \grechangeglyph{CustosUpLong}{greextra}{MensuralCustosUpLong}%
- \grechangeglyph{CustosUpShort}{greextra}{MensuralCustosUpShort}%
- \grechangeglyph{CustosUpMedium}{greextra}{MensuralCustosUpMedium}%
- \grechangeglyph{CustosDownLong}{greextra}{MensuralCustosDownLong}%
- \grechangeglyph{CustosDownShort}{greextra}{MensuralCustosDownShort}%
- \grechangeglyph{CustosDownMedium}{greextra}{MensuralCustosDownMedium}%
- \grechangeglyph{Flat}{greextra}{MensuralFlat}%
- \grechangeglyph{FlatHole}{greextra}{MensuralFlatHole}%
- \relax %
- }%
- }[% all other cases
- \gre@error{Unrecognized option "#1" for \protect\gresetglyphstyle\MessageBreak Possible options are: 'default', 'medicaea', 'hufnagel' and 'mensural'}%
- ]%
-}%
-
-\def\greusedefaultstyle{%OBSOLETE
- \gre@obsolete{\protect\greusedefaultstyle}{\protect\gresetglyphstyle{default}}%
-}%
-
-\def\greusemedicaeastyle{%OBSOLETE
- \gre@obsolete{\protect\greusemedicaeastyle}{\protect\gresetglyphstyle{medicaea}}%
-}%
-
-\def\greusehufnagelstyle{%OBSOLETE
- \gre@obsolete{\protect\greusehufnagelstyle}{\protect\gresetglyphstyle{hufnagel}}%
-}%
-
-\def\greusemensuralstyle{%OBSOLETE
- \gre@obsolete{\protect\greusemensuralstyle}{\protect\gresetglyphstyle{mensural}}%
+ \IfStrEqCase{#1}{%
+ {default}%
+ {%
+ \greresetglyph{Flat}%
+ \greresetglyph{FlatHole}%
+ \greresetglyph{Natural}%
+ \greresetglyph{NaturalHole}%
+ \greresetglyph{Sharp}%
+ \greresetglyph{SharpHole}%
+ \greresetglyph{CClef}%
+ \greresetglyph{FClef}%
+ \greresetglyph{CClefChange}%
+ \greresetglyph{FClefChange}%
+ \greresetglyph{AuctumMora}%
+ \greresetglyph{VEpisema}%
+ \greresetglyph{CustosUpLong}%
+ \greresetglyph{CustosUpShort}%
+ \greresetglyph{CustosUpMedium}%
+ \greresetglyph{CustosDownLong}%
+ \greresetglyph{CustosDownShort}%
+ \greresetglyph{CustosDownMedium}%
+ \greresetglyph{BarBrace}%
+ \greresetglyph{Punctum}%
+ \relax %
+ }%
+ {medicaea}%
+ {%
+ \gresetglyphstyle{default}\gre@usestylecommon %
+ \grechangeglyph{CustosUpLong}{greextra}{MedicaeaCustosUpLong}%
+ \grechangeglyph{CustosUpShort}{greextra}{MedicaeaCustosUpShort}%
+ \grechangeglyph{CustosUpMedium}{greextra}{MedicaeaCustosUpMedium}%
+ \grechangeglyph{CustosDownLong}{greextra}{MedicaeaCustosDownLong}%
+ \grechangeglyph{CustosDownShort}{greextra}{MedicaeaCustosDownShort}%
+ \grechangeglyph{CustosDownMedium}{greextra}{MedicaeaCustosDownMedium}%
+ \grechangeglyph{CClef}{greextra}{MedicaeaCClef}%
+ \grechangeglyph{FClef}{greextra}{MedicaeaFClef}%
+ \grechangeglyph{CClefChange}{greextra}{MedicaeaCClefChange}%
+ \grechangeglyph{FClefChange}{greextra}{MedicaeaFClefChange}%
+ \grechangeglyph{Flat}{greextra}{MedicaeaFlat}%
+ \grechangeglyph{FlatHole}{greextra}{MedicaeaFlatHole}%
+ \relax %
+ }%
+ {hufnagel}%
+ {%
+ \gresetglyphstyle{default}\gre@usestylecommon %
+ \grechangeglyph{CustosUpLong}{greextra}{HufnagelCustosUpLong}%
+ \grechangeglyph{CustosUpShort}{greextra}{HufnagelCustosUpShort}%
+ \grechangeglyph{CustosUpMedium}{greextra}{HufnagelCustosUpMedium}%
+ \grechangeglyph{CustosDownLong}{greextra}{HufnagelCustosDownLong}%
+ \grechangeglyph{CustosDownShort}{greextra}{HufnagelCustosDownShort}%
+ \grechangeglyph{CustosDownMedium}{greextra}{HufnagelCustosDownMedium}%
+ \grechangeglyph{CClef}{greextra}{HufnagelCClef}%
+ \grechangeglyph{FClef}{greextra}{HufnagelFClef}%
+ \grechangeglyph{CClefChange}{greextra}{HufnagelCClefChange}%
+ \grechangeglyph{FClefChange}{greextra}{HufnagelFClefChange}%
+ \grechangeglyph{Flat}{greextra}{HufnagelFlat}%
+ \grechangeglyph{FlatHole}{greextra}{HufnagelFlatHole}%
+ \relax %
+ }%
+ {mensural}%
+ {%
+ \gresetglyphstyle{default}\gre@usestylecommon %
+ \grechangeglyph{CustosUpLong}{greextra}{MensuralCustosUpLong}%
+ \grechangeglyph{CustosUpShort}{greextra}{MensuralCustosUpShort}%
+ \grechangeglyph{CustosUpMedium}{greextra}{MensuralCustosUpMedium}%
+ \grechangeglyph{CustosDownLong}{greextra}{MensuralCustosDownLong}%
+ \grechangeglyph{CustosDownShort}{greextra}{MensuralCustosDownShort}%
+ \grechangeglyph{CustosDownMedium}{greextra}{MensuralCustosDownMedium}%
+ \grechangeglyph{Flat}{greextra}{MensuralFlat}%
+ \grechangeglyph{FlatHole}{greextra}{MensuralFlatHole}%
+ \relax %
+ }%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" for \protect\gresetglyphstyle\MessageBreak Possible options are: 'default', 'medicaea', 'hufnagel' and 'mensural'}%
+ ]%
}%
diff --git a/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-main.tex b/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-main.tex
index 3344a56edcf..2655ae1da1a 100644
--- a/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-main.tex
+++ b/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-main.tex
@@ -20,32 +20,51 @@
% this file contains definitions for lines, initial, fonts, etc.
\ifluatex%
- \ifnum\luatexversion<76%
- \gre@error{Error: this document must be compiled with LuaTeX (lualatex) 0.76 or later}%
- \fi%
+ \ifnum\luatexversion<76%
+ \gre@error{Error: this document must be compiled with LuaTeX (lualatex) 0.76 or later}%
+ \fi%
\else%
- \gre@error{Error: this document must be compiled with LuaTeX (lualatex)}%
+ \gre@error{Error: this document must be compiled with LuaTeX (lualatex)}%
\fi%
+%%%%%%%%%
+%% Debugging
+%%%%%%%%%
+
\def\gre@debugmsg#1#2{%
- \IfStrEq{\gre@debug}{}{}%
- %false
- {\IfStrEq{#1}{all}%
- %true
- {\gre@error{Debug error: ‘all’ is not a permitted keyword}}%
- %false
- {\IfStrEq{\gre@debug}{all}%
- %true
- {\gre@typeout{GregorioTeX debug: (#1) #2}}%
- %false
- {\IfSubStr{\gre@debug}{#1}%
- %true
- {\gre@typeout{GregorioTeX debug: (#1) #2}}%
- %false
- {\relax}%
- }%
- }%
- }%
+ \IfStrEq{\gre@debug}{}{}%
+ %false
+ {\IfStrEq{#1}{all}%
+ %true
+ {\gre@error{Debug error: ‘all’ is not a permitted keyword}}%
+ %false
+ {\IfStrEq{\gre@debug}{,all,}%
+ %true
+ {\gre@typeout{GregorioTeX debug: (#1) #2}}%
+ %false
+ {\IfSubStr{\gre@debug}{,#1,}%
+ %true
+ {\gre@typeout{GregorioTeX debug: (#1) #2}}%
+ %false
+ {\relax}%
+ }%
+ }%
+ }%
+}%
+
+\AtBeginDocument{%
+ \IfStrEq{\gre@debug}{}%
+ {}%
+ {%
+ \directlua{gregoriotex.set_debug_string([[\gre@debug]])}%
+ \typeout{GregorioTeX is in debug mode}%
+ \typeout{\gre@debug\space messages will be printed to the log.}%
+ {% we're starting a group in order to localize \exploregroups
+ \exploregroups%
+ \StrRemoveBraces{\gre@debug}[\gre@debug]%
+ \xdef\gre@debug{,\gre@debug,}%
+ }%
+ }%
}%
\gre@debugmsg{general}{Loading gregoriotex-main.tex}%
@@ -54,37 +73,66 @@
% #1 - the deprecated macro
% #2 - the correct macro to use
\def\gre@deprecated#1#2{%
- \ifgre@allowdeprecated%
- \gre@warning{#1\space is deprecated.\MessageBreak Use #2\space instead}%
- \else%
- \gre@error{#1\space is deprecated.\MessageBreak Use #2\space instead}%
- \fi%
- \relax%
+ \ifgre@allowdeprecated%
+ \gre@warning{#1\space is deprecated.\MessageBreak Use #2\space instead}%
+ \else%
+ \gre@error{#1\space is deprecated.\MessageBreak Use #2\space instead}%
+ \fi%
+ \relax%
}%
\def\gre@obsolete#1#2{%
- \gre@error{#1\space is obsolete.\MessageBreak Use #2\space instead}%
- \relax%
+ \gre@error{#1\space is obsolete.\MessageBreak Use #2\space instead}%
+ \relax%
}%
-\def\gre@nothing{}
+\def\gre@nothing{}%
-\AtBeginDocument{\IfStrEq{\gre@debug}{}{}{\directlua{gregoriotex.set_debug_string([[\gre@debug]])}\typeout{GregorioTeX is in debug mode}\typeout{\gre@debug\space messages will be printed to the log.}}}%
-
-% Depending on version of TeX / LaTeX, some primitives may or may not have a
-% luatex prefix, so we need to check and handle either
+%%%%%%%%%%%%%%%
+%% Backwards Compatibility
+%%%%%%%%%%%%%%%
+% Depending on version of LuaTeX / LaTeX, some primitives have different names
+% We define local aliases for this eventuality, using \ifdefined to determine which
+% version of the primative is available. In all cases the 'true' branch should be the
+% more recent version.
\ifdefined\localleftbox%
- \let\gre@localleftbox\localleftbox%
+ \let\gre@localleftbox\localleftbox%
\else%
- \let\gre@localleftbox\luatexlocalleftbox%
+ \let\gre@localleftbox\luatexlocalleftbox%
\fi%
\ifdefined\localrightbox%
- \let\gre@localrightbox\localrightbox%
+ \let\gre@localrightbox\localrightbox%
+\else%
+ \let\gre@localrightbox\luatexlocalrightbox%
+\fi%
+\ifdefined\pdfextension%
+ \def\gre@startlink{\pdfextension startlink }%
+ \def\gre@endlink{\pdfextension endlink\relax}%
+\else%
+ \let\gre@startlink\pdfstartlink%
+ \let\gre@endlink\pdfendlink%
+\fi%
+\ifdefined\savepos%
+ \let\gre@savepos\savepos%
+\else%
+ \let\gre@savepos\pdfsavepos%
+\fi%
+\ifdefined\lastxpos%
+ \let\gre@lastxpos\lastxpos%
+\else%
+ \let\gre@lastxpos\pdflastxpos%
+\fi%
+\ifdefined\lastypos%
+ \let\gre@lastypos\lastypos%
\else%
- \let\gre@localrightbox\luatexlocalrightbox%
+ \let\gre@lastypos\pdflastypos%
\fi%
+
+%%%%%%%%%%%%%%%
+
+
% an attribute we put on the text nodes.
% if it is 1, it means that there may be a dash here if this syllable is at the end of a line
% if it is 2, it means that it's never useful to typeset a dash
@@ -103,12 +151,12 @@
\newluatexcatcodetable\gre@atletter %
\setluatexcatcodetable\gre@atletter{%
- \catcode`\@=11 %
+ \catcode`\@=11 %
}%
% The version of gregorio. All gregoriotex*.tex files must have the same.
% All gtex files must also have the same version.
-\xdef\gre@gregorioversion{4.1.1}% GREGORIO_VERSION - VersionManager.py
+\xdef\gre@gregorioversion{4.2.0-beta1}% GREGORIO_VERSION - VersionManager.py
% first some macros to allow checks for version:
% Tests that all gregoriotex files are of the same version.
@@ -116,8 +164,8 @@
% #2 is the version
\def\gre@declarefileversion#1#2{%
- \IfStrEq*{#2}{\gre@gregorioversion}{}{%else
- \gre@error{uncoherent file versions: gregoriotex-main.tex is in version \number\gre@gregorioversion \space\space while #1 is in version \number#2}}%
+ \IfStrEq*{#2}{\gre@gregorioversion}{}{%else
+ \gre@error{uncoherent file versions: gregoriotex-main.tex is in version \number\gre@gregorioversion \space\space while #1 is in version \number#2}}%
}%
% Macro called by scores.
@@ -126,23 +174,23 @@
% #1 is the version of GregorioTeX the score is made for.
\def\GregorioTeXAPIVersion#1{%
- \StrBefore{\gre@gregorioversion}{.}[\gre@gregoriomajorversion]%
- \IfBeginWith{#1}{\gre@gregoriomajorversion}{\relax}{%else
- \gre@error{GregorioTeX is in version \gre@gregorioversion \space\space while a score you included requires version #1. Please recompile your scores}}%
+ \StrBefore{\gre@gregorioversion}{.}[\gre@gregoriomajorversion]%
+ \IfBeginWith{#1}{\gre@gregoriomajorversion}{\relax}{%else
+ \gre@error{GregorioTeX is in version \gre@gregorioversion \space\space while a score you included requires version #1. Please recompile your scores}}%
}%
\RequireLuaModule{gregoriotex}%
\ifcsname greskipheightcomputation\endcsname %
- \directlua{gregoriotex.init(arg, false)}%
+ \directlua{gregoriotex.init(arg, false)}%
\else %
- \directlua{gregoriotex.init(arg, true)}%
+ \directlua{gregoriotex.init(arg, true)}%
\fi %
\xdef\gre@gregoriotexluaversion{\directlua{tex.write(gregoriotex.get_gregorioversion())}}%
% Test to make sure that gregoriotex.lua is of the same version.
\IfStrEq*{\gre@gregoriotexluaversion}{\gre@gregorioversion}{}{%else
- \gre@error{uncoherent file versions: gregoriotex-main.tex is in version \number\gre@gregorioversion \space\space while gregoriotex.lua is in version \gre@gregoriotexluaversion}}%
+ \gre@error{uncoherent file versions: gregoriotex-main.tex is in version \number\gre@gregorioversion \space\space while gregoriotex.lua is in version \gre@gregoriotexluaversion}}%
%%%%%%%%%%%%%%%%%%%%%%%%
@@ -152,20 +200,20 @@
% for now, we only use an aux file with LuaTeX
\ifluatex%
- \newwrite\gre@gaux%
+ \newwrite\gre@gaux%
\fi%
\def\gre@write@gaux#1{%
- \write\gre@gaux{#1}%
- \relax %
+ \write\gre@gaux{#1}%
+ \relax %
}%
\def\gre@open@gaux{%
- \openout\gre@gaux \jobname .gaux\relax%
+ \openout\gre@gaux \jobname .gaux\relax%
}%
\def\gre@close@gaux{%
- \closeout\gre@gaux %
+ \closeout\gre@gaux %
}%
@@ -197,6 +245,7 @@
\let\gre@pitch@overbraceglyph\gre@pitch@g %
\let\gre@pitch@bar\gre@pitch@g %
\let\gre@pitch@dummy\gre@pitch@g %
+\let\gre@pitch@nominal\gre@pitch@e %
% factor is the factor with which you open you font (the number after the at). It will decide almost everything (spaces, etc.), so it is particularly important.
% it is set to the default value : 17 (the value that makes it look like a standard graduale)
@@ -215,61 +264,61 @@
% macro called to go to the next line
\def\GreNewLine{%
- \gre@debugmsg{lineheight}{GreNewLine}%
- \gre@newlinecommon{0}{0}%
- \relax%
+ \gre@debugmsg{lineheight}{GreNewLine}%
+ \gre@newlinecommon{0}{0}%
+ \relax%
}%
% basically same as above, but this one does a \hfill, so the lines are not justified
\def\GreNewParLine{%
- \gre@debugmsg{lineheight}{GreNewParLine}%
- \gre@newlinecommon{1}{0}%
- \relax%
+ \gre@debugmsg{lineheight}{GreNewParLine}%
+ \gre@newlinecommon{1}{0}%
+ \relax%
}%
% the macro we call each time we force a changing of line, it automatically sets \gre@knownline, and adjusts left spaces
% #1 is 0 in case of gabc z, 1 for Z
% #2 is 0 in the normal case, 1 after a bar in the new spacing algorithm
\def\gre@newlinecommon#1#2{%
- \ifgre@blockeolcustos\ifnum\gre@insidediscretionary=0\relax %
- \gre@localrightbox{}%
- \fi\fi %
- \ifgre@boxing\else%
- \ifnum\gre@biginitial=1\relax %
- \ifcase\gre@knownline %
- % 0: should not happend...
- \or % 1
- \gre@adjustsecondline %
- \or %2
- \gre@adjustthirdline %
- \fi %
- \fi %
- \global\advance\gre@knownline by 1\relax %
- \global\gre@lastoflinecount=2\relax %
- \ifnum#2=0\relax %
- % we have to repeat the end of syllable shifts here because the manual line breaks will occur before we get to the regular shifting code in \GreSyllable
- \ifdim\gre@dimen@enddifference <0pt\relax%
- %% important, else we are not really at the end of the syllable
- \kern -\gre@dimen@enddifference\relax%
- \fi%
- \ifgre@eolshiftsenabled%
- \GreNoBreak% we want to make sure this shift doesn't get separated from the previous one if both occur
- \gre@calculate@eolshift{\gre@dimen@enddifference}%
- \gre@debugmsg{eolshift}{Manual end of line shift: \the\gre@dimen@eolshift}%
- \kern -\gre@dimen@eolshift\relax%
- \fi%
- \fi %
- \ifnum\gre@insidediscretionary=0\relax %
- \gre@updateleftbox %
- \fi %
- \ifnum#1=1\relax %
- \GreNoBreak %
- \hfill %
- \fi %
- \gre@penalty{-10001}%
- \fi %
- \gre@adjustlineifnecessary\relax %
- \gre@reseteolcustos\relax %
+ \ifgre@blockeolcustos\ifnum\gre@insidediscretionary=0\relax %
+ \gre@localrightbox{}%
+ \fi\fi %
+ \ifgre@boxing\else%
+ \ifnum\gre@biginitial=1\relax %
+ \ifcase\gre@knownline %
+ % 0: should not happend...
+ \or % 1
+ \gre@adjustsecondline %
+ \or %2
+ \gre@adjustthirdline %
+ \fi %
+ \fi %
+ \global\advance\gre@knownline by 1\relax %
+ \global\gre@lastoflinecount=2\relax %
+ \ifnum#2=0\relax %
+ % we have to repeat the end of syllable shifts here because the manual line breaks will occur before we get to the regular shifting code in \GreSyllable
+ \ifdim\gre@dimen@enddifference <0pt\relax%
+ %% important, else we are not really at the end of the syllable
+ \kern -\gre@dimen@enddifference\relax%
+ \fi%
+ \ifgre@eolshiftsenabled%
+ \GreNoBreak% we want to make sure this shift doesn't get separated from the previous one if both occur
+ \gre@calculate@eolshift{\gre@dimen@enddifference}%
+ \gre@debugmsg{eolshift}{Manual end of line shift: \the\gre@dimen@eolshift}%
+ \kern -\gre@dimen@eolshift\relax%
+ \fi%
+ \fi %
+ \ifnum\gre@insidediscretionary=0\relax %
+ \gre@updateleftbox %
+ \fi %
+ \ifnum#1=1\relax %
+ \GreNoBreak %
+ \hfill %
+ \fi %
+ \gre@penalty{-10001}%
+ \fi %
+ \gre@adjustlineifnecessary\relax %
+ \gre@reseteolcustos\relax %
}%
\def\gre@mark@translation{\directlua{gregoriotex.mark_translation()}}%
@@ -284,9 +333,9 @@
\newbox\gre@box@temp@width%
\def\gre@widthof#1{%
- \setbox\gre@box@temp@width=\hbox{#1}%
- \global\gre@dimen@temp@three=\wd\gre@box@temp@width%
- \relax%
+ \setbox\gre@box@temp@width=\hbox{#1}%
+ \global\gre@dimen@temp@three=\wd\gre@box@temp@width%
+ \relax%
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -305,224 +354,210 @@
% macro to call before the call of \initial
\def\gre@setbiginitial{%
- \gre@debugmsg{general}{setting BIG initial}%
- \global\gre@biginitial=1\relax %
- \relax %
+ \gre@debugmsg{general}{setting BIG initial}%
+ \global\gre@biginitial=1\relax %
+ \relax %
}%
% macro to cancel before the call of \initial
\def\gre@normalinitial{%
- \gre@debugmsg{general}{setting normal initial}%
- \global\gre@biginitial=0\relax %
- \relax %
+ \gre@debugmsg{general}{setting normal initial}%
+ \global\gre@biginitial=0\relax %
+ \relax %
}%
% macro to call before the first syllable, but after setinitialclef
\def\gre@adjustsecondline{%
- \gre@dimen@additionalleftspace=\gre@dimen@initialwidth\relax%
- \gre@updateleftbox %
- \relax %
+ \gre@dimen@additionalleftspace=\gre@dimen@initialwidth\relax%
+ \gre@updateleftbox %
+ \relax %
}%
% macro to call during the second line
\def\gre@adjustthirdline{%
- \gre@dimen@additionalleftspace= 0 pt\relax%
- \gre@updateleftbox %
- \relax %
+ \gre@dimen@additionalleftspace= 0 pt\relax%
+ \gre@updateleftbox %
+ \relax %
}%
\newif\ifgre@thirdlineadjustmentnecessary %
\def\gre@adjustlineifnecessary{%
- \ifgre@thirdlineadjustmentnecessary %
- \gre@adjustthirdline %
- \gre@thirdlineadjustmentnecessaryfalse %
- \fi %
+ \ifgre@thirdlineadjustmentnecessary %
+ \gre@adjustthirdline %
+ \gre@thirdlineadjustmentnecessaryfalse %
+ \fi %
}%
\def\gre@updateleftbox{%
- \gre@updatelinewidth %
- \gre@updatelinesclef %
+ \gre@updatelinewidth %
+ \gre@updatelinesclef %
}%
\def\gre@updatelinewidth{%
- \gre@debugmsg{ifdim}{ additionalleftspace = 0pt}%
- \ifdim\gre@dimen@additionalleftspace=0pt\relax%
- \else %
- \gre@dimen@temp@five=\gre@dimen@stafflinewidth\relax%
- \global\advance\gre@dimen@stafflinewidth by -\gre@dimen@additionalleftspace\relax%
- \gre@generatelines %
- \global\gre@dimen@stafflinewidth=\gre@dimen@temp@five %
- \fi %
+ \gre@debugmsg{ifdim}{ additionalleftspace = 0pt}%
+ \ifdim\gre@dimen@additionalleftspace=0pt\relax%
+ \else %
+ \gre@dimen@temp@five=\gre@dimen@stafflinewidth\relax%
+ \global\advance\gre@dimen@stafflinewidth by -\gre@dimen@additionalleftspace\relax%
+ \gre@generatelines %
+ \global\gre@dimen@stafflinewidth=\gre@dimen@temp@five %
+ \fi %
}%
\def\greillumination#1{%
- \setbox\gre@box@initial=\hbox{#1}%
+ \setbox\gre@box@initial=\hbox{#1}%
}%
\def\gre@setinitial#1{%
- % see comments on this function to see what it does
- \gre@debugmsg{commentary}{Time to calculate the true raise.}%
- \gre@calculate@commentarytrueraise%
- % we start by printing the commentary
- % when doing this we place it inside a box as which is linewidth wide with an \hfill before to get it to align to the right of the page
- % we then place that box inside one of 0 width so that our cursor doesn't move when we place the commentary
- \ifvoid\gre@box@commentary\else%
- \gre@debugmsg{commentary}{I am printing a commentary box}%
- \raise\gre@dimen@commentarytrueraise\hbox to 0pt{\hbox to \gre@dimen@linewidth{\hfill\box\gre@box@commentary}}%
- \fi%
- \gre@debugmsg{annotation}{Time to calculate the true raise.}%
- \gre@calculate@annotationtrueraise %
- % we print the initial always at the same place, and then we print the gre@box@annotation, centered
- % first we print the initial
- \gre@dimen@temp@five = \dimexpr(\gre@dimen@textlower+\gre@space@dimen@initialraise)\relax%
- % if it is a big initial we print it on the second line
- \ifnum\gre@biginitial=0\relax %
- \ifvoid\gre@box@initial%
- \gre@debugmsg{initial}{Fill initial box a}%
- \setbox\gre@box@initial=\hbox{\gre@style@initial\gre@fixedtextformat{#1}\endgre@style@initial}%
- \fi%
- \ifx\gre@empty@initialformat\greinitialformat% OBSOLETE
- \else% OBSOLETE
- \gre@obsolete{\protect\greinitialformat}{\protect\grechangestyle{initial}}% OBSOLETE
- \fi% OBSOLETE
- \gre@debugmsg{ifdim}{ manualinitialwidth = 0pt}%
- \ifdim\gre@space@dimen@manualinitialwidth=0 pt\relax%
- \global\gre@dimen@initialwidth=\wd\gre@box@initial %
- \else%
- \gre@style@initial%
- \global\gre@dimen@initialwidth=\gre@space@dimen@manualinitialwidth\relax%
- \endgre@style@initial%
- \ifx\gre@empty@initialformat\greinitialformat% OBSOLETE
- \else% OBSOLETE
- \gre@obsolete{\protect\greinitialformat}{\protect\grechangestyle{initial}}% OBSOLETE
- \fi% OBSOLETE
- \fi%
- \gre@debugmsg{ifdim}{ wd(gre@box@annotation) > initialwidth}%
- \ifdim\wd\gre@box@annotation>\gre@dimen@initialwidth\relax%
- \global\gre@dimen@initialwidth=\wd\gre@box@annotation%
- \fi%
- \gre@debugmsg{annotation}{Width check completed.}%
- \setbox\gre@box@initial=\hbox to \gre@dimen@initialwidth {\hss\raise \gre@dimen@temp@five\box\gre@box@initial\hss}%
- \gre@debugmsg{annotation}{Initial set.}%
- \gre@style@initial%
- \global\gre@dimen@temp@four = \gre@space@dimen@beforeinitialshift\relax%
- \endgre@style@initial%
- \ifx\gre@empty@initialformat\greinitialformat% OBSOLETE
- \else% OBSOLETE
- \gre@obsolete{\protect\greinitialformat}{\protect\grechangestyle{initial}}% OBSOLETE
- \fi% OBSOLETE
- \else %
- \ifgre@allowdeprecated%%% DEPRECATED for removal in 5.0
- \gre@warning{biginitial style is deprecated, but the old\MessageBreak behavior will be used since deprecated usage is\MessageBreak currently enabled. This behavior will disappear\MessageBreak in 5.0, so consider disabling deprecated usage\MessageBreak and switching to the initial style instead. (See\MessageBreak UPGRADE.md for more information)}%%% DEPRECATED for removal in 5.0
- \fi%%% DEPRECATED for removal in 5.0
- \advance\gre@dimen@temp@five by \dimexpr(-\gre@dimen@additionalbottomspace %
- - \gre@space@dimen@spacebeneathtext %
- - \gre@space@dimen@spacelinestext %
- - 4\gre@dimen@interstafflinespace %
- - 4\gre@dimen@stafflineheight %
- - \gre@dimen@currenttranslationheight %
- - \f@size pt %
- + \gre@space@dimen@initialraise)\relax%
- \ifvoid\gre@box@initial%
- \gre@debugmsg{initial}{fill big initial box}%
- \ifgre@allowdeprecated%%% DEPRECATED for removal in 5.0
- \setbox\gre@box@initial=\hbox{\gre@style@biginitial\gre@fixedtextformat{#1}\endgre@style@biginitial}% DEPRECATED for removal in 5.0
- \else%%% DEPRECATED for removal in 5.0
- \setbox\gre@box@initial=\hbox{\gre@style@initial\gre@fixedtextformat{#1}\endgre@style@initial}% keep this line
- \fi%%% DEPRECATED for removal in 5.0
- \fi%
- \ifx\gre@empty@biginitialformat\grebiginitialformat% OBSOLETE
- \else% OBSOLETE
- \gre@obsolete{\protect\grebiginitialformat}{\protect\grechangestyle{biginitial}}% OBSOLETE
- \fi% OBSOLETE
- \gre@debugmsg{ifdim}{ manualinitialwidth = 0pt}%
- \ifdim\gre@space@dimen@manualinitialwidth=0 pt\relax%
- \global\gre@dimen@initialwidth=\wd\gre@box@initial %
- \else%
- \ifgre@allowdeprecated%%% DEPRECATED for removal in 5.0
- \gre@style@biginitial%%% DEPRECATED for removal in 5.0
- \global\gre@dimen@initialwidth=\gre@space@dimen@manualinitialwidth\relax%%% DEPRECATED for removal in 5.0
- \endgre@style@biginitial%%% DEPRECATED for removal in 5.0
- \else%%% DEPRECATED for removal in 5.0
- \gre@style@initial% keep this line
- \global\gre@dimen@initialwidth=\gre@space@dimen@manualinitialwidth\relax% keep this line
- \endgre@style@initial% keep this line
- \fi%%% DEPRECATED for removal in 5.0
- \ifx\gre@empty@biginitialformat\grebiginitialformat% OBSOLETE
- \else% OBSOLETE
- \gre@obsolete{\protect\grebiginitialformat}{\protect\grechangestyle{biginitial}}% OBSOLETE
- \fi% OBSOLETE
- \fi%
- \gre@debugmsg{ifdim}{ wd(GreAboveinitialfirstbox) > initialwidth}%
- \ifdim\wd\gre@box@annotation>\gre@dimen@initialwidth\relax%
- \global\gre@dimen@initialwidth=\wd\gre@box@annotation%
- \fi%
- \setbox\gre@box@initial=\hbox{\vtop to 0pt{\hbox to \gre@dimen@initialwidth {\hss\raise \gre@dimen@temp@five\box\gre@box@initial\hss}\vss}}%
- \ifgre@allowdeprecated%%% DEPRECATED for removal in 5.0
- \gre@style@biginitial%%% DEPRECATED for removal in 5.0
- \global\gre@dimen@temp@four = \gre@space@dimen@beforeinitialshift\relax%%% DEPRECATED for removal in 5.0
- \endgre@style@biginitial%%% DEPRECATED for removal in 5.0
- \else%%% DEPRECATED for removal in 5.0
- \gre@style@initial% keep this line
- \global\gre@dimen@temp@four = \gre@space@dimen@beforeinitialshift\relax% keep this line
- \endgre@style@initial% keep this line
- \fi%%% DEPRECATED for removal in 5.0
- \ifx\gre@empty@biginitialformat\grebiginitialformat% OBSOLETE
- \else% OBSOLETE
- \gre@obsolete{\protect\grebiginitialformat}{\protect\grechangestyle{biginitial}}% OBSOLETE
- \fi% OBSOLETE
- \fi %
- \hskip\gre@dimen@temp@four %
- \global\advance\gre@dimen@initialwidth by \gre@dimen@temp@four %
- \gre@debugmsg{annotation}{Ready to place initial.}%
- \box\gre@box@initial%
- \ifnum\gre@biginitial=0\relax%
- \gre@style@initial%
- \global\gre@dimen@temp@four = \gre@space@dimen@afterinitialshift\relax%
- \endgre@style@initial%
- \ifx\gre@empty@initialformat\greinitialformat% OBSOLETE
- \else% OBSOLETE
- \gre@obsolete{\protect\greinitialformat}{\protect\grechangestyle{initial}}% OBSOLETE
- \fi% OBSOLETE
- \else%
- \ifgre@allowdeprecated%%% DEPRECATED for removal in 5.0
- \gre@style@biginitial%%% DEPRECATED for removal in 5.0
- \global\gre@dimen@temp@four = \gre@space@dimen@afterinitialshift\relax%%% DEPRECATED for removal in 5.0
- \endgre@style@biginitial%%% DEPRECATED for removal in 5.0
- \else%%% DEPRECATED for removal in 5.0
- \gre@style@initial% keep this line
- \global\gre@dimen@temp@four = \gre@space@dimen@afterinitialshift\relax% keep this line
- \endgre@style@initial% keep this line
- \fi%%% DEPRECATED for removal in 5.0
- \ifx\gre@empty@biginitialformat\grebiginitialformat% OBSOLETE
- \else% OBSOLETE
- \gre@obsolete{\protect\grebiginitialformat}{\protect\grechangestyle{biginitial}}% OBSOLETE
- \fi% OBSOLETE
- \fi%
- \hskip\gre@dimen@temp@four %
- \global\advance\gre@dimen@initialwidth by \gre@dimen@temp@four%
- % then we center the annotation box above the initial, if there is one
- \gre@debugmsg{annotation}{Time to set the annotation.}%
- \ifvoid\gre@box@annotation\relax%
- \gre@debugmsg{annotation}{There is no annotation.}%
- \else %
- \gre@debugmsg{annotation}{Calculate horizontal position.}%
- \gre@dimen@temp@five=\dimexpr((\gre@dimen@initialwidth - \wd\gre@box@annotation) / 2)\relax %
- \gre@skip@temp@four = -\gre@dimen@initialwidth\relax%
- \hskip\gre@skip@temp@four %
- \kern\gre@dimen@temp@five %
- \gre@debugmsg{annotation}{And place the annotation.}%
- \raise\gre@dimen@annotationtrueraise\box\gre@box@annotation%
- \gre@debugmsg{annotation}{Move to beginning of staff.}%
- \kern\gre@dimen@temp@five %
- \fi %
- \relax %
+ % see comments on this function to see what it does
+ \gre@debugmsg{commentary}{Time to calculate the true raise.}%
+ \gre@calculate@commentarytrueraise%
+ % we start by printing the commentary
+ % when doing this we place it inside a box as which is linewidth wide with an \hfill before to get it to align to the right of the page
+ % we then place that box inside one of 0 width so that our cursor doesn't move when we place the commentary
+ \ifvoid\gre@box@commentary\else%
+ \gre@debugmsg{commentary}{I am printing a commentary box}%
+ \raise\gre@dimen@commentarytrueraise\hbox to 0pt{\hbox to \gre@dimen@linewidth{\hfill\box\gre@box@commentary}}%
+ \fi%
+ \gre@debugmsg{annotation}{Time to calculate the true raise.}%
+ \gre@calculate@annotationtrueraise %
+ % we print the initial always at the same place, and then we print the gre@box@annotation, centered
+ % first we print the initial
+ \gre@dimen@temp@five = \dimexpr(\gre@dimen@textlower+\gre@space@dimen@initialraise)\relax%
+ % if it is a big initial we print it on the second line
+ \ifnum\gre@biginitial=0\relax %
+ \ifvoid\gre@box@initial%
+ \gre@debugmsg{initial}{Fill initial box a}%
+ \setbox\gre@box@initial=\hbox{\gre@style@initial\gre@fixedtextformat{#1}\endgre@style@initial}%
+ \fi%
+ \gre@debugmsg{ifdim}{ manualinitialwidth = 0pt}%
+ \ifdim\gre@space@dimen@manualinitialwidth=0 pt\relax%
+ \global\gre@dimen@initialwidth=\wd\gre@box@initial %
+ \else%
+ \gre@style@initial%
+ \global\gre@dimen@initialwidth=\gre@space@dimen@manualinitialwidth\relax%
+ \endgre@style@initial%
+ \fi%
+ \gre@debugmsg{ifdim}{ wd(gre@box@annotation) > initialwidth}%
+ \ifdim\wd\gre@box@annotation>\gre@dimen@initialwidth\relax%
+ \global\gre@dimen@initialwidth=\wd\gre@box@annotation%
+ \fi%
+ \gre@debugmsg{annotation}{Width check completed.}%
+ \setbox\gre@box@initial=\hbox to \gre@dimen@initialwidth {\hss\raise \gre@dimen@temp@five\box\gre@box@initial\hss}%
+ \gre@debugmsg{annotation}{Initial set.}%
+ \gre@style@initial%
+ \global\gre@dimen@temp@four = \gre@space@dimen@beforeinitialshift\relax%
+ \endgre@style@initial%
+ \else %
+ \ifgre@allowdeprecated%%% DEPRECATED for removal in 5.0
+ \gre@warning{%
+ biginitial style is deprecated, but since you are\MessageBreak %
+ allowing deprecated usage, Gregorio will continue\MessageBreak %
+ to use your biginitial style as it did before.\MessageBreak %
+ However, in upcoming version 5.0, Gregorio will\MessageBreak %
+ only support one initial style for both big and\MessageBreak %
+ small initials. Consider disabling deprecated\MessageBreak %
+ usage by passing the [allowdeprecated=false]\MessageBreak %
+ package option, which will then require you to\MessageBreak %
+ set the initial style before the appropriate\MessageBreak %
+ scores to style all initials: set the initial\MessageBreak %
+ style for a big initial before a score with a big\MessageBreak %
+ initial and back for a small initial afterwards.\MessageBreak %
+ (See UPGRADE.md for more information)\MessageBreak %
+ ...}%%% DEPRECATED for removal in 5.0
+ \fi%%% DEPRECATED for removal in 5.0
+ \advance\gre@dimen@temp@five by \dimexpr(-\gre@dimen@additionalbottomspace %
+ - \gre@space@dimen@spacebeneathtext %
+ - \gre@space@dimen@spacelinestext %
+ - 4\gre@dimen@interstafflinespace %
+ - 4\gre@dimen@stafflineheight %
+ - \gre@dimen@currenttranslationheight %
+ - \f@size pt %
+ + \gre@space@dimen@initialraise)\relax%
+ \ifvoid\gre@box@initial%
+ \gre@debugmsg{initial}{fill big initial box}%
+ \ifgre@allowdeprecated%%% DEPRECATED for removal in 5.0
+ \setbox\gre@box@initial=\hbox{\gre@style@biginitial\gre@fixedtextformat{#1}\endgre@style@biginitial}% DEPRECATED for removal in 5.0
+ \else%%% DEPRECATED for removal in 5.0
+ \setbox\gre@box@initial=\hbox{\gre@style@initial\gre@fixedtextformat{#1}\endgre@style@initial}% keep this line
+ \fi%%% DEPRECATED for removal in 5.0
+ \fi%
+ \gre@debugmsg{ifdim}{ manualinitialwidth = 0pt}%
+ \ifdim\gre@space@dimen@manualinitialwidth=0 pt\relax%
+ \global\gre@dimen@initialwidth=\wd\gre@box@initial %
+ \else%
+ \ifgre@allowdeprecated%%% DEPRECATED for removal in 5.0
+ \gre@style@biginitial%%% DEPRECATED for removal in 5.0
+ \global\gre@dimen@initialwidth=\gre@space@dimen@manualinitialwidth\relax%%% DEPRECATED for removal in 5.0
+ \endgre@style@biginitial%%% DEPRECATED for removal in 5.0
+ \else%%% DEPRECATED for removal in 5.0
+ \gre@style@initial% keep this line
+ \global\gre@dimen@initialwidth=\gre@space@dimen@manualinitialwidth\relax% keep this line
+ \endgre@style@initial% keep this line
+ \fi%%% DEPRECATED for removal in 5.0
+ \fi%
+ \gre@debugmsg{ifdim}{ wd(GreAboveinitialfirstbox) > initialwidth}%
+ \ifdim\wd\gre@box@annotation>\gre@dimen@initialwidth\relax%
+ \global\gre@dimen@initialwidth=\wd\gre@box@annotation%
+ \fi%
+ \setbox\gre@box@initial=\hbox{\vtop to 0pt{\hbox to \gre@dimen@initialwidth {\hss\raise \gre@dimen@temp@five\box\gre@box@initial\hss}\vss}}%
+ \ifgre@allowdeprecated%%% DEPRECATED for removal in 5.0
+ \gre@style@biginitial%%% DEPRECATED for removal in 5.0
+ \global\gre@dimen@temp@four = \gre@space@dimen@beforeinitialshift\relax%%% DEPRECATED for removal in 5.0
+ \endgre@style@biginitial%%% DEPRECATED for removal in 5.0
+ \else%%% DEPRECATED for removal in 5.0
+ \gre@style@initial% keep this line
+ \global\gre@dimen@temp@four = \gre@space@dimen@beforeinitialshift\relax% keep this line
+ \endgre@style@initial% keep this line
+ \fi%%% DEPRECATED for removal in 5.0
+ \fi %
+ \hskip\gre@dimen@temp@four %
+ \global\advance\gre@dimen@initialwidth by \gre@dimen@temp@four %
+ \gre@debugmsg{annotation}{Ready to place initial.}%
+ \ifgre@showlyrics%
+ \box\gre@box@initial%
+ \else%
+ \kern\wd\gre@box@initial%
+ \fi%
+ \ifnum\gre@biginitial=0\relax%
+ \gre@style@initial%
+ \global\gre@dimen@temp@four = \gre@space@dimen@afterinitialshift\relax%
+ \endgre@style@initial%
+ \else%
+ \ifgre@allowdeprecated%%% DEPRECATED for removal in 5.0
+ \gre@style@biginitial%%% DEPRECATED for removal in 5.0
+ \global\gre@dimen@temp@four = \gre@space@dimen@afterinitialshift\relax%%% DEPRECATED for removal in 5.0
+ \endgre@style@biginitial%%% DEPRECATED for removal in 5.0
+ \else%%% DEPRECATED for removal in 5.0
+ \gre@style@initial% keep this line
+ \global\gre@dimen@temp@four = \gre@space@dimen@afterinitialshift\relax% keep this line
+ \endgre@style@initial% keep this line
+ \fi%%% DEPRECATED for removal in 5.0
+ \fi%
+ \hskip\gre@dimen@temp@four %
+ \global\advance\gre@dimen@initialwidth by \gre@dimen@temp@four%
+ % then we center the annotation box above the initial, if there is one
+ \gre@debugmsg{annotation}{Time to set the annotation.}%
+ \ifvoid\gre@box@annotation\relax%
+ \gre@debugmsg{annotation}{There is no annotation.}%
+ \else %
+ \gre@debugmsg{annotation}{Calculate horizontal position.}%
+ \gre@dimen@temp@five=\dimexpr((\gre@dimen@initialwidth - \wd\gre@box@annotation) / 2)\relax %
+ \gre@skip@temp@four = -\gre@dimen@initialwidth\relax%
+ \hskip\gre@skip@temp@four %
+ \kern\gre@dimen@temp@five %
+ \gre@debugmsg{annotation}{And place the annotation.}%
+ \raise\gre@dimen@annotationtrueraise\box\gre@box@annotation%
+ \gre@debugmsg{annotation}{Move to beginning of staff.}%
+ \kern\gre@dimen@temp@five %
+ \fi %
+ \relax %
}%
\def\gre@noinitial{%
- \setbox\gre@box@initial=\box\voidb@x%
- \global\gre@dimen@initialwidth=0pt\relax%
- \relax %
+ \setbox\gre@box@initial=\box\voidb@x%
+ \global\gre@dimen@initialwidth=0pt\relax%
+ \relax %
}%
@@ -538,14 +573,14 @@
\gre@annotationbottomlinefalse%
\def\gresetannotationby#1{%
- \IfStrEqCase{#1}{%
- {topline}%
- {\gre@annotationbottomlinefalse}%
- {bottomline}%
- {\gre@annotationbottomlinetrue}%
- }[% all other cases
- \gre@error{Unrecognized option "#1" for \protect\gresetannotationby\MessageBreak Possible options are: 'topline' and 'bottomline'}%
- ]%
+ \IfStrEqCase{#1}{%
+ {topline}%
+ {\gre@annotationbottomlinefalse}%
+ {bottomline}%
+ {\gre@annotationbottomlinetrue}%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" for \protect\gresetannotationby\MessageBreak Possible options are: 'topline' and 'bottomline'}%
+ ]%
}%
% This flag controls whether the top (0), baseline (1), or bottom (2) of the control line is aligned with the top line of the staff before applying annotationraise.
@@ -553,117 +588,88 @@
\gre@count@annotationvalign=1%
\def\gresetannotationvalign#1{%
- \IfStrEqCase{#1}{%
- {top}%
- {\gre@count@annotationvalign=0}%
- {baseline}%
- {\gre@count@annotationvalign=1}%
- {bottom}%
- {\gre@count@annotationvalign=2}%
- }[% all other cases
- \gre@error{Unrecognized option "#1" for \protect\gresetannotationvalign\MessageBreak Possible options are: 'top', 'baseline' and 'bottom'}%
- ]%
+ \IfStrEqCase{#1}{%
+ {top}%
+ {\gre@count@annotationvalign=0}%
+ {baseline}%
+ {\gre@count@annotationvalign=1}%
+ {bottom}%
+ {\gre@count@annotationvalign=2}%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" for \protect\gresetannotationvalign\MessageBreak Possible options are: 'top', 'baseline' and 'bottom'}%
+ ]%
}%
\def\gre@annotation[#1]#2{%
- \ifx l#1\relax%
- \let\gre@rightfill\hfil%
- \let\gre@leftfill\relax%
- \else\ifx r#1\relax%
- \let\gre@rightfill\relax%
- \let\gre@leftfill\hfil%
- \else\ifx c#1\relax%
- \let\gre@rightfill\hfil%
- \let\gre@leftfill\hfil%
- \else%
- \gre@error{Unrecognzied alignment option for \protect\greannotation}%
- \fi\fi\fi%
- % first we determine the widest box
- \gre@widthof{\gre@style@annotation#2\endgre@style@annotation}%
- \ifdim\gre@dimen@temp@three < \wd\gre@box@annotation\relax%
- \gre@dimen@temp@three = \wd\gre@box@annotation\relax%
- \fi%
- \ifvoid\gre@box@annotation%
- \gre@debugmsg{annotation}{We're on the first line of the annotation.}%
- \setbox\gre@box@annotation = \hbox to \gre@dimen@temp@three{\gre@leftfill\gre@style@annotation#2\endgre@style@annotation\gre@rightfill}%
- % We set the initial value for annotationtrueraise based on the annotationvalign setting. We always do this because if there is only one line in the annotation, then the topline is the bottomline.
- \gre@debugmsg{annnotation}{Initial set point.}%
- \ifcase\gre@count@annotationvalign\relax%
- %case 0 = top of first line
- \global\gre@dimen@annotationtrueraise=-\ht\gre@box@annotation\relax%
- \gre@debugmsg{annotation}{Aligning to top of first line: \the\gre@dimen@annotationtrueraise}%
- \or %case 1 = baseline of first line
- \global\gre@dimen@annotationtrueraise= 0pt\relax%
- \gre@debugmsg{annotation}{Aligning to baseline of first line: \the\gre@dimen@annotationtrueraise}%
- \or %case 2 = bottom of first line
- \global\gre@dimen@annotationtrueraise=\dp\gre@box@annotation\relax%
- \gre@debugmsg{annotation}{Aligning to bottom of first line: \the\gre@dimen@annotationtrueraise}%
- \else% Bug
- \gre@bug{Invalid value for \protect\gre@count@annotationvalign}%
- \fi%
- \else%
- \gre@debugmsg{annotation}{We're not on the first line of the annotation.}%
- \setbox\gre@box@old = \hbox to \gre@dimen@temp@three{\gre@leftfill\box\gre@box@annotation\gre@rightfill}%
- \setbox\gre@box@add = \hbox to \gre@dimen@temp@three{\gre@leftfill\gre@style@annotation#2\endgre@style@annotation\gre@rightfill}%
- % if the user has asked for the bottom line to be the controlling line, then we need to change the value of the annotationtrueraise appropriately
- \gre@style@annotation% to make sure that an annotationseparation in font relative units translates correctly
- \ifgre@annotationbottomline%
- \ifcase\gre@count@annotationvalign\relax%
- %case 0 = top of first line
- \global\gre@dimen@annotationtrueraise=\dimexpr\ht\gre@box@old+\dp\gre@box@old+\gre@space@dimen@annotationseparation-\ht\gre@box@add\relax%
- \gre@debugmsg{annotation}{Aligning to top of last line: \the\gre@dimen@annotationtrueraise}%
- \or %case 1 = baseline of first line
- \global\gre@dimen@annotationtrueraise=\dimexpr\ht\gre@box@old+\dp\gre@box@old+\gre@space@dimen@annotationseparation\relax%
- \gre@debugmsg{annotation}{Aligning to baseline of last line: \the\gre@dimen@annotationtrueraise}%
- \or %case 2 = bottom of first line
- \global\gre@dimen@annotationtrueraise=\dimexpr\ht\gre@box@old+\dp\gre@box@old+\gre@space@dimen@annotationseparation+\dp\gre@box@add\relax%
- \gre@debugmsg{annotation}{Aligning to bottom of last line: \the\gre@dimen@annotationtrueraise}%
- \else% Bug
- \gre@bug{Invalid value for \protect\gre@count@annotationvalign}%
- \fi%
- \fi%
- \endgre@style@annotation%
- \setbox\gre@box@annotation = \vtop spread \gre@space@dimen@annotationseparation\relax {\offinterlineskip\box\gre@box@old\vss\box\gre@box@add}%
- \fi%
-}%
-
-
-\def\gresetfirstlineaboveinitial#1#2{%OBSOLETE
- \gre@obsolete{\protect\gresetfirstlineaboveinitial}{\protect\greannotation}%
-}%
-
-\def\gresetfirstannotation#1{%OBSOLETE
- \gre@obsolete{\protect\gresetfirstannotation}{\protect\greannotation}%
-}%
-
-\let\setfirstannotation\gresetfirstannotation%OBSOLETE
-
-\def\gresetsecondannotation#1{%OBSOLETE
- \gre@obsolete{\protect\gresetsecondannotation}{\protect\greannotation}%
-}%
-
-\let\setsecondannotation\gresetsecondannotation%OBSOLETE
+ \ifx l#1\relax%
+ \let\gre@rightfill\hfil%
+ \let\gre@leftfill\relax%
+ \else\ifx r#1\relax%
+ \let\gre@rightfill\relax%
+ \let\gre@leftfill\hfil%
+ \else\ifx c#1\relax%
+ \let\gre@rightfill\hfil%
+ \let\gre@leftfill\hfil%
+ \else%
+ \gre@error{Unrecognzied alignment option for \protect\greannotation}%
+ \fi\fi\fi%
+ % first we determine the widest box
+ \gre@widthof{\gre@style@annotation#2\endgre@style@annotation}%
+ \ifdim\gre@dimen@temp@three < \wd\gre@box@annotation\relax%
+ \gre@dimen@temp@three = \wd\gre@box@annotation\relax%
+ \fi%
+ \ifvoid\gre@box@annotation%
+ \gre@debugmsg{annotation}{We're on the first line of the annotation.}%
+ \setbox\gre@box@annotation = \hbox to \gre@dimen@temp@three{\gre@leftfill\gre@style@annotation#2\endgre@style@annotation\gre@rightfill}%
+ % We set the initial value for annotationtrueraise based on the annotationvalign setting. We always do this because if there is only one line in the annotation, then the topline is the bottomline.
+ \gre@debugmsg{annnotation}{Initial set point.}%
+ \ifcase\gre@count@annotationvalign\relax%
+ %case 0 = top of first line
+ \global\gre@dimen@annotationtrueraise=-\ht\gre@box@annotation\relax%
+ \gre@debugmsg{annotation}{Aligning to top of first line: \the\gre@dimen@annotationtrueraise}%
+ \or %case 1 = baseline of first line
+ \global\gre@dimen@annotationtrueraise= 0pt\relax%
+ \gre@debugmsg{annotation}{Aligning to baseline of first line: \the\gre@dimen@annotationtrueraise}%
+ \or %case 2 = bottom of first line
+ \global\gre@dimen@annotationtrueraise=\dp\gre@box@annotation\relax%
+ \gre@debugmsg{annotation}{Aligning to bottom of first line: \the\gre@dimen@annotationtrueraise}%
+ \else% Bug
+ \gre@bug{Invalid value for \protect\gre@count@annotationvalign}%
+ \fi%
+ \else%
+ \gre@debugmsg{annotation}{We're not on the first line of the annotation.}%
+ \setbox\gre@box@old = \hbox to \gre@dimen@temp@three{\gre@leftfill\box\gre@box@annotation\gre@rightfill}%
+ \setbox\gre@box@add = \hbox to \gre@dimen@temp@three{\gre@leftfill\gre@style@annotation#2\endgre@style@annotation\gre@rightfill}%
+ % if the user has asked for the bottom line to be the controlling line, then we need to change the value of the annotationtrueraise appropriately
+ \gre@style@annotation% to make sure that an annotationseparation in font relative units translates correctly
+ \ifgre@annotationbottomline%
+ \ifcase\gre@count@annotationvalign\relax%
+ %case 0 = top of first line
+ \global\gre@dimen@annotationtrueraise=\dimexpr\ht\gre@box@old+\dp\gre@box@old+\gre@space@dimen@annotationseparation-\ht\gre@box@add\relax%
+ \gre@debugmsg{annotation}{Aligning to top of last line: \the\gre@dimen@annotationtrueraise}%
+ \or %case 1 = baseline of first line
+ \global\gre@dimen@annotationtrueraise=\dimexpr\ht\gre@box@old+\dp\gre@box@old+\gre@space@dimen@annotationseparation\relax%
+ \gre@debugmsg{annotation}{Aligning to baseline of last line: \the\gre@dimen@annotationtrueraise}%
+ \or %case 2 = bottom of first line
+ \global\gre@dimen@annotationtrueraise=\dimexpr\ht\gre@box@old+\dp\gre@box@old+\gre@space@dimen@annotationseparation+\dp\gre@box@add\relax%
+ \gre@debugmsg{annotation}{Aligning to bottom of last line: \the\gre@dimen@annotationtrueraise}%
+ \else% Bug
+ \gre@bug{Invalid value for \protect\gre@count@annotationvalign}%
+ \fi%
+ \fi%
+ \endgre@style@annotation%
+ \setbox\gre@box@annotation = \vtop spread \gre@space@dimen@annotationseparation\relax {\offinterlineskip\box\gre@box@old\vss\box\gre@box@add}%
+ \fi%
+}%
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% macros for the score reference (unused)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\grescorereference#1{% DEPRECATED by 4.1
- \ifgre@allowdeprecated%
- \gre@warning{\protect\grescorereference\space is deprecated.\MessageBreak It does nothing; stop using it.}%
- \else%
- \gre@error{\protect\grescorereference\space is deprecated.\MessageBreak It does nothing; stop using it.}%
- \fi%
- \relax %
-}%
-
-\def\GreScoreReference#1{%OBSOLETE
- \gre@error{\protect\GreScoreReference\space is obsolete.\MessageBreak It does nothing; stop using it.}%
- \relax%
-}%
-
-\def\scorereference#1{%OBSOLETE
- \gre@error{\protect\scorereference\space is obsolete.\MessageBreak It does nothing; stop using it.}%
+\def\grescorereference#1{% OBSOLETE
+ \gre@error{\protect\grescorereference\space is obsolete.\MessageBreak It does nothing; stop using it.}%
+ \relax %
}%
@@ -672,111 +678,97 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\gre@writemode#1#2#3{%
- \greannotation{%
- \gre@style@modeline #1\endgre@style@modeline %
- \gre@style@modemodifier \directlua{gregoriotex.mode_part("\luatexluaescapestring{#2}")}\endgre@style@modemodifier %
- \gre@style@modedifferentia \directlua{gregoriotex.mode_part("\luatexluaescapestring{#3}")}\endgre@style@modedifferentia %
- \relax %
- }%
- \relax %
+ \greannotation{%
+ \gre@style@modeline #1\endgre@style@modeline %
+ \gre@style@modemodifier \directlua{gregoriotex.mode_part("\luatexluaescapestring{#2}")}\endgre@style@modemodifier %
+ \gre@style@modedifferentia \directlua{gregoriotex.mode_part("\luatexluaescapestring{#3}")}\endgre@style@modedifferentia %
+ \relax %
+ }%
+ \relax %
}%
\def\GreMode#1#2#3{%
- \ifvoid\gre@box@annotation%
- \gre@writemode{#1}{#2}{#3}%
- \fi%
- \relax%
+ \ifvoid\gre@box@annotation%
+ \gre@writemode{#1}{#2}{#3}%
+ \fi%
+ \relax%
}%
\def\gre@romannumeral@majuscule#1{\uppercase\expandafter{\romannumeral#1\relax}}%
\def\gre@romannumeral@minuscule#1{\romannumeral#1\relax}%
\def\gresetmodenumbersystem#1{%
- \IfStrEqCase{#1}{%
- {roman-majuscule}%
- {\let\GreModeNumber\gre@romannumeral@majuscule}%
- {roman-minuscule}%
- {\let\GreModeNumber\gre@romannumeral@minuscule}%
- {arabic}%
- {\let\GreModeNumber\relax}%
- }[% all other cases
- \gre@error{Unrecognized option "#1" in \protect\gresetmodenumbersystem\MessageBreak Possible options are: 'roman-majuscule', 'roman-minuscule', and 'arabic'}%
- ]%
+ \IfStrEqCase{#1}{%
+ {roman-majuscule}%
+ {\let\GreModeNumber\gre@romannumeral@majuscule}%
+ {roman-minuscule}%
+ {\let\GreModeNumber\gre@romannumeral@minuscule}%
+ {arabic}%
+ {\let\GreModeNumber\relax}%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" in \protect\gresetmodenumbersystem\MessageBreak Possible options are: 'roman-majuscule', 'roman-minuscule', and 'arabic'}%
+ ]%
}%
\gresetmodenumbersystem{roman-minuscule}%
\def\GreAnnotationLines#1#2{%
- \ifvoid\gre@box@annotation%
- \greannotation{#1}%
- \greannotation{#2}%
- \fi%
- \relax%
+ \ifvoid\gre@box@annotation%
+ \greannotation{#1}%
+ \greannotation{#2}%
+ \fi%
+ \relax%
}%
%% macro that draws the lines : starts by the first and then draws the lines of every line.
%% has to be called before drawing the key, after drawing the initial
\def\gre@beginnotes{%
- \gre@drawfirstlines %
- %%localeleftbox is a primitive of Omega, it draws the same box at the beginning of new lines (here after the first)
- \gre@localleftbox{%
- \copy\gre@box@lines %
- }%
- \relax %
+ \gre@drawfirstlines %
+ %%localeleftbox is a primitive of Omega, it draws the same box at the beginning of new lines (here after the first)
+ \gre@localleftbox{%
+ \copy\gre@box@lines %
+ }%
+ \relax %
}%
\newbox\gre@box@commentary
-\def\grecommentary{\@ifnextchar[{\gre@commentary}{\gre@commentary[0pt]}}
+\def\grecommentary{\@ifnextchar[{\gre@commentary}{\gre@commentary[0pt]}}%
\def\gre@commentary[#1]#2{%
- % we initialize commentarytrueraise here, but will only calculate it's final value just before placing the commentary so that we make sure we have the correct values for the distances which go into it
- \gre@style@commentary% to make sure font relative units on the argument translate correctly
- \global\gre@dimen@commentarytrueraise=#1\relax%
- \endgre@style@commentary%
- \ifvoid\gre@box@commentary%
- \setbox\gre@box@commentary = \hbox{\gre@style@commentary#2\endgre@style@commentary}%
- \else%
- \gre@widthof{\gre@style@commentary#2\endgre@style@commentary}%
- \ifdim\gre@dimen@temp@three < \wd\gre@box@commentary\relax%
- \gre@dimen@temp@three = \wd\gre@box@commentary%
- \fi%
- \setbox\gre@box@old = \hbox to \gre@dimen@temp@three{\hfill\box\gre@box@commentary}%
- \setbox\gre@box@add = \hbox to \gre@dimen@temp@three{\hfill\gre@style@commentary#2\endgre@style@commentary}%
- \setbox\gre@box@commentary = \vbox spread \gre@space@dimen@commentaryseparation{\offinterlineskip\box\gre@box@old\vss\box\gre@box@add}%
- \fi%
+ % we initialize commentarytrueraise here, but will only calculate it's final value just before placing the commentary so that we make sure we have the correct values for the distances which go into it
+ \gre@style@commentary% to make sure font relative units on the argument translate correctly
+ \global\gre@dimen@commentarytrueraise=#1\relax%
+ \endgre@style@commentary%
+ \ifvoid\gre@box@commentary%
+ \setbox\gre@box@commentary = \hbox{\gre@style@commentary#2\endgre@style@commentary}%
+ \else%
+ \gre@widthof{\gre@style@commentary#2\endgre@style@commentary}%
+ \ifdim\gre@dimen@temp@three < \wd\gre@box@commentary\relax%
+ \gre@dimen@temp@three = \wd\gre@box@commentary%
+ \fi%
+ \setbox\gre@box@old = \hbox to \gre@dimen@temp@three{\hfill\box\gre@box@commentary}%
+ \setbox\gre@box@add = \hbox to \gre@dimen@temp@three{\hfill\gre@style@commentary#2\endgre@style@commentary}%
+ \setbox\gre@box@commentary = \vbox spread \gre@space@dimen@commentaryseparation{\offinterlineskip\box\gre@box@old\vss\box\gre@box@add}%
+ \fi%
}
-\def\commentary#1{%OBSOLETE
- \gre@obsolete{\protect\commentary}{\protect\grecommentary}%
-}%
-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% macro for putting text above lines for annotations and the like
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% format for text above the lines
-\def\greabovelinestextstyle#1{% OBSOLETE
- \relax %
-}%
-\let\gre@empty@abovelinestextstyle\greabovelinestextstyle%
-
% set space above the text lines - almost the same as for the translation
\def\gre@addspaceabove{%
- \gre@style@abovelinestext%
- \global\gre@dimen@currentabovelinestextheight=\gre@space@dimen@abovelinestextheight\relax%
- \gre@generatelines %
- \endgre@style@abovelinestext%
- \ifx\gre@empty@abovelinestextstyle\greabovelinestextstyle% OBSOLETE
- \else% OBSOLETE
- \gre@obsolete{\protect\greabovelinestextstyle}{\protect\grechangestyle{abovelinestext}}% OBSOLETE
- \fi% OBSOLETE
- \relax %
+ \gre@style@abovelinestext%
+ \global\gre@dimen@currentabovelinestextheight=\gre@space@dimen@abovelinestextheight\relax%
+ \gre@generatelines %
+ \endgre@style@abovelinestext%
+ \relax %
}%
% we don't need space above any more
\def\gre@removespaceabove{%
- \global\gre@dimen@currentabovelinestextheight=0 sp%
- \gre@generatelines %
- \relax %
+ \global\gre@dimen@currentabovelinestextheight=0 sp%
+ \gre@generatelines %
+ \relax %
}%
% the code is a bit strange here: we always execute \gre@space@skip@spaceabovelines at the beginning of a glyph. This will:
@@ -786,38 +778,30 @@
\xdef\gre@currenttextabovelines{}%
\def\GreSetTextAboveLines#1{%
- \gdef\gre@currenttextabovelines{%
- \gre@typesettextabovelines{#1}%
- \gdef\gre@currenttextabovelines{}%
- \relax %
- }%
+ \gdef\gre@currenttextabovelines{%
+ \gre@typesettextabovelines{#1}%
+ \gdef\gre@currenttextabovelines{}%
+ \relax %
+ }%
}%
% typesets the text above the line
\def\gre@typesettextabovelines#1{%
- \gre@style@abovelinestext%
- \gre@debugmsg{spacing}{Raise alt text: \gre@space@dimen@abovelinestextraise}%
- \endgre@style@abovelinestext%
- \ifx\gre@empty@abovelinestextstyle\greabovelinestextstyle% OBSOLETE
- \else% OBSOLETE
- \gre@obsolete{\protect\greabovelinestextstyle}{\protect\grechangestyle{abovelinestext}}% OBSOLETE
- \fi% OBSOLETE
- \gre@dimen@temp@five=\dimexpr(4\gre@dimen@stafflineheight %
- + 4\gre@dimen@interstafflinespace %
- + \gre@space@dimen@spacebeneathtext %
- + \gre@dimen@currenttranslationheight %
- + \gre@space@dimen@spacelinestext %
- + \gre@dimen@additionalbottomspace %
- + \gre@dimen@additionaltopspacealt %
- + \gre@space@dimen@abovelinestextraise)\relax%
- \gre@mark@abovelinestext %
- \gre@debugmsg{spacing}{Raise alt text: \the\gre@dimen@temp@five}%
- \leavevmode\raise\gre@dimen@temp@five\hbox to 0pt{\gre@style@abovelinestext#1\endgre@style@abovelinestext\hss}%
- \ifx\gre@empty@abovelinestextstyle\greabovelinestextstyle% OBSOLETE
- \else% OBSOLETE
- \gre@obsolete{\protect\greabovelinestextstyle}{\protect\grechangestyle{abovelinestext}}% OBSOLETE
- \fi% OBSOLETE
- \relax %
+ \gre@style@abovelinestext%
+ \gre@debugmsg{spacing}{Raise alt text: \gre@space@dimen@abovelinestextraise}%
+ \endgre@style@abovelinestext%
+ \gre@dimen@temp@five=\dimexpr(4\gre@dimen@stafflineheight %
+ + 4\gre@dimen@interstafflinespace %
+ + \gre@space@dimen@spacebeneathtext %
+ + \gre@dimen@currenttranslationheight %
+ + \gre@space@dimen@spacelinestext %
+ + \gre@dimen@additionalbottomspace %
+ + \gre@dimen@additionaltopspacealt %
+ + \gre@space@dimen@abovelinestextraise)\relax%
+ \gre@mark@abovelinestext %
+ \gre@debugmsg{spacing}{Raise alt text: \the\gre@dimen@temp@five}%
+ \leavevmode\raise\gre@dimen@temp@five\hbox to 0pt{\gre@style@abovelinestext#1\endgre@style@abovelinestext\hss}%
+ \relax %
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -829,87 +813,75 @@
\gre@showlinestrue
\def\gresetlines#1{%
- \IfStrEqCase{#1}{%
- {visible}%
- {\gre@showlinestrue}%
- {invisible}%
- {\gre@showlinesfalse}%
- }[% all other cases
- \gre@error{Unrecognized option "#1" for \protect\gresetlines\MessageBreak Possible options are: 'visible' and 'invisible'}%
- ]%
+ \IfStrEqCase{#1}{%
+ {visible}%
+ {\gre@showlinestrue}%
+ {invisible}%
+ {\gre@showlinesfalse}%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" for \protect\gresetlines\MessageBreak Possible options are: 'visible' and 'invisible'}%
+ ]%
}
-\def\greremovelines{%OBSOLETE
- \gre@obsolete{\protect\greremovelines}{\protect\gresetlines{invisible}}%
-}%
-
-\def\gredonotremovelines{%OBSOLETE
- \gre@obsolete{\protect\gredonotremovelines}{\protect\gresetlines{visible}}%
-}%
-
%% macro that draws the stafflines on the first line, it is different from others due to the initial that can take some place, without lines
\def\gre@drawfirstlines{%
- \advance\gre@dimen@stafflinewidth by -\gre@dimen@initialwidth\relax%
- %\advance\gre@dimen@stafflinewidth by -\gre@space@dimen@minimalspaceatlinebeginning
- %\gre@dimen@initialwidth=0pt
- \hbox to 0pt{%
- \vbox{%
- \gre@style@normalstafflines%
- \ifx\gre@empty@normalstafflinesformat\grenormalstafflinesformat% OBSOLETE
- \else% OBSOLETE
- \gre@obsolete{\protect\grenormalstafflinesformat}{\protect\grechangestyle{normalstafflines}}% OBSOLETE
- \fi% OBSOLETE
- \vskip\gre@dimen@currentabovelinestextheight\relax%
- \vskip\gre@dimen@additionaltopspace\relax%
- \ifgre@showlines %
- \hrule height \gre@dimen@stafflineheight width \gre@dimen@stafflinewidth\relax%
- \else %
- \vskip\gre@dimen@stafflineheight\relax%
- \fi %
- \gre@skip@temp@four = \gre@dimen@interstafflinespace\relax%
- \kern\gre@skip@temp@four %
- \ifgre@showlines %
- \hrule height \gre@dimen@stafflineheight width \gre@dimen@stafflinewidth\relax%
- \else %
- \vskip\gre@dimen@stafflineheight\relax%
- \fi %
- \ifgre@haslinethree %
- \gre@skip@temp@four = \gre@dimen@interstafflinespace\relax%
- \kern\gre@skip@temp@four %
- \ifgre@showlines %
- \hrule height \gre@dimen@stafflineheight width \gre@dimen@stafflinewidth\relax%
- \else %
- \vskip\gre@dimen@stafflineheight\relax%
- \fi %
- \fi %
- \ifgre@haslinefour %
- \gre@skip@temp@four = \gre@dimen@interstafflinespace\relax%
- \kern\gre@skip@temp@four %
- \ifgre@showlines %
- \hrule height \gre@dimen@stafflineheight width \gre@dimen@stafflinewidth\relax%
- \else %
- \vskip\gre@dimen@stafflineheight\relax%
- \fi %
- \fi %
- \ifgre@haslinefive %
- \gre@skip@temp@four = \gre@dimen@interstafflinespace\relax%
- \kern\gre@skip@temp@four %
- \ifgre@showlines %
- \hrule height \gre@dimen@stafflineheight width \gre@dimen@stafflinewidth\relax%
- \else %
- \vskip\gre@dimen@stafflineheight\relax%
- \fi %
- \fi %
- \vskip\gre@space@dimen@spacelinestext\relax%
- \vskip\gre@space@dimen@spacebeneathtext\relax%
- \vskip\gre@dimen@currenttranslationheight\relax%
- \vskip\gre@dimen@additionalbottomspace\relax%
- \endgre@style@normalstafflines%
- }%
- \hss%
- }%
- \gre@dimen@stafflinewidth=\gre@dimen@linewidth\relax%
- \relax%
+ \advance\gre@dimen@stafflinewidth by -\gre@dimen@initialwidth\relax%
+ %\advance\gre@dimen@stafflinewidth by -\gre@space@dimen@minimalspaceatlinebeginning
+ %\gre@dimen@initialwidth=0pt
+ \hbox to 0pt{%
+ \vbox{%
+ \gre@style@normalstafflines%
+ \vskip\gre@dimen@currentabovelinestextheight\relax%
+ \vskip\gre@dimen@additionaltopspace\relax%
+ \ifgre@showlines %
+ \hrule height \gre@dimen@stafflineheight width \gre@dimen@stafflinewidth\relax%
+ \else %
+ \vskip\gre@dimen@stafflineheight\relax%
+ \fi %
+ \gre@skip@temp@four = \gre@dimen@interstafflinespace\relax%
+ \kern\gre@skip@temp@four %
+ \ifgre@showlines %
+ \hrule height \gre@dimen@stafflineheight width \gre@dimen@stafflinewidth\relax%
+ \else %
+ \vskip\gre@dimen@stafflineheight\relax%
+ \fi %
+ \ifgre@haslinethree %
+ \gre@skip@temp@four = \gre@dimen@interstafflinespace\relax%
+ \kern\gre@skip@temp@four %
+ \ifgre@showlines %
+ \hrule height \gre@dimen@stafflineheight width \gre@dimen@stafflinewidth\relax%
+ \else %
+ \vskip\gre@dimen@stafflineheight\relax%
+ \fi %
+ \fi %
+ \ifgre@haslinefour %
+ \gre@skip@temp@four = \gre@dimen@interstafflinespace\relax%
+ \kern\gre@skip@temp@four %
+ \ifgre@showlines %
+ \hrule height \gre@dimen@stafflineheight width \gre@dimen@stafflinewidth\relax%
+ \else %
+ \vskip\gre@dimen@stafflineheight\relax%
+ \fi %
+ \fi %
+ \ifgre@haslinefive %
+ \gre@skip@temp@four = \gre@dimen@interstafflinespace\relax%
+ \kern\gre@skip@temp@four %
+ \ifgre@showlines %
+ \hrule height \gre@dimen@stafflineheight width \gre@dimen@stafflinewidth\relax%
+ \else %
+ \vskip\gre@dimen@stafflineheight\relax%
+ \fi %
+ \fi %
+ \vskip\gre@space@dimen@spacelinestext\relax%
+ \vskip\gre@space@dimen@spacebeneathtext\relax%
+ \vskip\gre@dimen@currenttranslationheight\relax%
+ \vskip\gre@dimen@additionalbottomspace\relax%
+ \endgre@style@normalstafflines%
+ }%
+ \hss%
+ }%
+ \gre@dimen@stafflinewidth=\gre@dimen@linewidth\relax%
+ \relax%
}%
%% box containing the stafflines for other lines than the first
@@ -917,64 +889,60 @@
% macro that must be called at each change of linewidth and gre@factor
\def\gre@generatelines{%
- \setbox\gre@box@lines=\hbox to 0pt{%
- \vbox{%
- \gre@style@normalstafflines%
- \ifx\gre@empty@normalstafflinesformat\grenormalstafflinesformat% OBSOLETE
- \else% OBSOLETE
- \gre@obsolete{\protect\grenormalstafflinesformat}{\protect\grechangestyle{normalstafflines}}% OBSOLETE
- \fi% OBSOLETE
- \vskip\glueexpr(\gre@dimen@additionaltopspace+\gre@space@skip@spaceabovelines+\gre@dimen@currentabovelinestextheight)\relax%
- \ifgre@showlines %
- \hrule height \gre@dimen@stafflineheight width \gre@dimen@stafflinewidth\relax%
- \else %
- \vskip\gre@dimen@stafflineheight\relax%
- \fi %
- \gre@skip@temp@four = \gre@dimen@interstafflinespace\relax%
- \kern\gre@skip@temp@four %
- \ifgre@showlines %
- \hrule height \gre@dimen@stafflineheight width \gre@dimen@stafflinewidth\relax%
- \else %
- \vskip\gre@dimen@stafflineheight\relax%
- \fi %
- \ifgre@haslinethree %
- \gre@skip@temp@four = \gre@dimen@interstafflinespace\relax%
- \kern\gre@skip@temp@four %
- \ifgre@showlines %
- \hrule height \gre@dimen@stafflineheight width \gre@dimen@stafflinewidth\relax%
- \else %
- \vskip\gre@dimen@stafflineheight\relax%
- \fi %
- \fi %
- \ifgre@haslinefour %
- \gre@skip@temp@four = \gre@dimen@interstafflinespace\relax%
- \kern\gre@skip@temp@four %
- \ifgre@showlines %
- \hrule height \gre@dimen@stafflineheight width \gre@dimen@stafflinewidth\relax%
- \else %
- \vskip\gre@dimen@stafflineheight\relax%
- \fi %
- \fi %
- \ifgre@haslinefive %
- \gre@skip@temp@four = \gre@dimen@interstafflinespace\relax%
- \kern\gre@skip@temp@four %
- \ifgre@showlines %
- \hrule height \gre@dimen@stafflineheight width \gre@dimen@stafflinewidth\relax%
- \else %
- \vskip\gre@dimen@stafflineheight\relax%
- \fi %
- \fi %
- \kern\dimexpr(\gre@space@dimen@spacelinestext+\gre@dimen@additionalbottomspace+\gre@space@dimen@spacebeneathtext+\gre@dimen@currenttranslationheight)\relax%
- \endgre@style@normalstafflines %
- }%
- \hss%
- }%
- \relax %
+ \setbox\gre@box@lines=\hbox to 0pt{%
+ \vbox{%
+ \gre@style@normalstafflines%
+ \vskip\glueexpr(\gre@dimen@additionaltopspace+\gre@space@skip@spaceabovelines+\gre@dimen@currentabovelinestextheight)\relax%
+ \ifgre@showlines %
+ \hrule height \gre@dimen@stafflineheight width \gre@dimen@stafflinewidth\relax%
+ \else %
+ \vskip\gre@dimen@stafflineheight\relax%
+ \fi %
+ \gre@skip@temp@four = \gre@dimen@interstafflinespace\relax%
+ \kern\gre@skip@temp@four %
+ \ifgre@showlines %
+ \hrule height \gre@dimen@stafflineheight width \gre@dimen@stafflinewidth\relax%
+ \else %
+ \vskip\gre@dimen@stafflineheight\relax%
+ \fi %
+ \ifgre@haslinethree %
+ \gre@skip@temp@four = \gre@dimen@interstafflinespace\relax%
+ \kern\gre@skip@temp@four %
+ \ifgre@showlines %
+ \hrule height \gre@dimen@stafflineheight width \gre@dimen@stafflinewidth\relax%
+ \else %
+ \vskip\gre@dimen@stafflineheight\relax%
+ \fi %
+ \fi %
+ \ifgre@haslinefour %
+ \gre@skip@temp@four = \gre@dimen@interstafflinespace\relax%
+ \kern\gre@skip@temp@four %
+ \ifgre@showlines %
+ \hrule height \gre@dimen@stafflineheight width \gre@dimen@stafflinewidth\relax%
+ \else %
+ \vskip\gre@dimen@stafflineheight\relax%
+ \fi %
+ \fi %
+ \ifgre@haslinefive %
+ \gre@skip@temp@four = \gre@dimen@interstafflinespace\relax%
+ \kern\gre@skip@temp@four %
+ \ifgre@showlines %
+ \hrule height \gre@dimen@stafflineheight width \gre@dimen@stafflinewidth\relax%
+ \else %
+ \vskip\gre@dimen@stafflineheight\relax%
+ \fi %
+ \fi %
+ \kern\dimexpr(\gre@space@dimen@spacelinestext+\gre@dimen@additionalbottomspace+\gre@space@dimen@spacebeneathtext+\gre@dimen@currenttranslationheight)\relax%
+ \endgre@style@normalstafflines %
+ }%
+ \hss%
+ }%
+ \relax %
}%
% Macro for fusion of larger neumes
\def\GreFuseTwo#1#2{%
- #1\GreNoBreak #2\relax %
+ #1\GreNoBreak #2\relax %
}%
\def\GreFuse{\GreNoBreak}%
@@ -986,19 +954,19 @@
% #2 = font name
% #3 = glyph name, glyph variant name (preceded by .), or code point
\def\grechangeglyph#1#2#3{%
- \directlua{gregoriotex.init_variant_font([[#2]], true, [[\the\gre@factor]])}%
- \directlua{gregoriotex.change_score_glyph([[#1]],[[#2]],[[#3]])}%
+ \directlua{gregoriotex.init_variant_font([[#2]], true, [[\the\gre@factor]])}%
+ \directlua{gregoriotex.change_score_glyph([[#1]],[[#2]],[[#3]])}%
}%
% Resets a gregorio code point to its default setting
% #1 = the name of the gregorio code point
\def\greresetglyph#1{%
- \directlua{gregoriotex.reset_score_glyph([[#1]])}%
+ \directlua{gregoriotex.reset_score_glyph([[#1]])}%
}%
{%
- \directlua{gregoriotex.init_variant_font('greciliae', true, [[\the\gre@factor]])}%
- \directlua{gregoriotex.map_font('greciliae', 'CP')}%
+ \directlua{gregoriotex.init_variant_font('greciliae', true, [[\the\gre@factor]])}%
+ \directlua{gregoriotex.map_font('greciliae', 'CP')}%
}%
\input gregoriotex-chars.tex%
@@ -1015,18 +983,14 @@
\gre@translationcenteringfalse
\def\gresettranslationcentering#1{%
- \IfStrEqCase{#1}{%
- {left}%
- {\gre@translationcenteringfalse}%
- {center}%
- {\gre@translationcenteringtrue}%
- }[% all other cases
- \gre@error{Unrecognized option "#1" for \protect\gresettranslationcentering\MessageBreak Possible options are: 'left' and 'center'}%
- ]%
-}%
-
-\def\setgretranslationcenteringscheme#1{%OBSOLETE
- \gre@obsolete{\protect\setgretranslationcenteringscheme}{\protect\gresettranslationcentering}%
+ \IfStrEqCase{#1}{%
+ {left}%
+ {\gre@translationcenteringfalse}%
+ {center}%
+ {\gre@translationcenteringtrue}%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" for \protect\gresettranslationcentering\MessageBreak Possible options are: 'left' and 'center'}%
+ ]%
}%
@@ -1034,73 +998,57 @@
\gre@breakintranslationfalse%
\def\gresetbreakintranslation#1{%
- \IfStrEqCase{#1}{%
- {allow}%
- {\gre@breakintranslationtrue}%
- {prohibit}%
- {\gre@breakintranslationfalse}%
- }[% all other cases
- \gre@error{Unrecognized option "#1" in \protect\gresetbreakintranslation\MessageBreak Possible options are: 'allow' and 'prohibit'}%
- ]%
-}%
-
-\def\gresetnlbintranslation#1{%OBSOLETE
- \gre@obsolete{\protect\gresetnlbintranslation}{\protect\gresetbreakintranslation}%
+ \IfStrEqCase{#1}{%
+ {allow}%
+ {\gre@breakintranslationtrue}%
+ {prohibit}%
+ {\gre@breakintranslationfalse}%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" in \protect\gresetbreakintranslation\MessageBreak Possible options are: 'allow' and 'prohibit'}%
+ ]%
}%
\def\GreWriteTranslation#1{%
- \ifgre@translationcentering %
- \setbox\gre@box@temp@width=\hbox{#1}%
- \gre@dimen@temp@five=\dimexpr((\wd\gre@box@syllabletext - \wd\gre@box@temp@width) / 2)\relax%
- \gre@mark@translation %
- \kern\gre@dimen@temp@five %
- \raise\gre@space@dimen@spacebeneathtext\hbox to 0pt{\vbox to 0pt{\vss\hbox to 0pt{\gre@style@translation#1\endgre@style@translation\hss}}}%
- \ifx\gre@empty@translationformat\gretranslationformat% OBSOLETE
- \else% OBSOLETE
- \gre@obsolete{\protect\gretranslationformat}{\protect\grechangestyle{translation}}% OBSOLETE
- \fi% OBSOLETE
- \kern-\gre@dimen@temp@five %
- \else %
- \gre@mark@translation %
- \raise\gre@space@dimen@spacebeneathtext\hbox to 0pt{\vbox to 0pt{\vss\hbox to 0pt{\gre@style@translation#1\endgre@style@translation\hss}}}%
- \ifx\gre@empty@translationformat\gretranslationformat% OBSOLETE
- \else% OBSOLETE
- \gre@obsolete{\protect\gretranslationformat}{\protect\grechangestyle{translation}}% OBSOLETE
- \fi% OBSOLETE
- \fi %
+ \ifgre@translationcentering %
+ \setbox\gre@box@temp@width=\hbox{#1}%
+ \gre@dimen@temp@five=\dimexpr((\wd\gre@box@syllabletext - \wd\gre@box@temp@width) / 2)\relax%
+ \gre@mark@translation %
+ \kern\gre@dimen@temp@five %
+ \raise\gre@space@dimen@spacebeneathtext\hbox to 0pt{\vbox to 0pt{\vss\hbox to 0pt{\gre@style@translation#1\endgre@style@translation\hss}}}%
+ \kern-\gre@dimen@temp@five %
+ \else %
+ \gre@mark@translation %
+ \raise\gre@space@dimen@spacebeneathtext\hbox to 0pt{\vbox to 0pt{\vss\hbox to 0pt{\gre@style@translation#1\endgre@style@translation\hss}}}%
+ \fi %
}%
\def\GreWriteTranslationWithCenterBeginning#1{%
- \ifgre@breakintranslation\else%
- \GreBeginNLBArea{0}{1}%
- \fi %
- \gre@attr@center=1\relax %
- \gre@mark@translation %
- \raise\gre@space@dimen@spacebeneathtext\hbox to 0pt{\kern 0pt\vbox to 0pt{\vss\hbox to 0pt{\gre@style@translation#1\endgre@style@translation\hss}}\kern 0pt}%
- \ifx\gre@empty@translationformat\gretranslationformat% OBSOLETE
- \else% OBSOLETE
- \gre@obsolete{\protect\gretranslationformat}{\protect\grechangestyle{translation}}% OBSOLETE
- \fi% OBSOLETE
- \unsetluatexattribute{\gre@attr@center}%
- \relax %
+ \ifgre@breakintranslation\else%
+ \GreBeginNLBArea{0}{1}%
+ \fi %
+ \gre@attr@center=1\relax %
+ \gre@mark@translation %
+ \raise\gre@space@dimen@spacebeneathtext\hbox to 0pt{\kern 0pt\vbox to 0pt{\vss\hbox to 0pt{\gre@style@translation#1\endgre@style@translation\hss}}\kern 0pt}%
+ \unsetluatexattribute{\gre@attr@center}%
+ \relax %
}%
\newif\ifgre@mustdotranslationcenterend%
\gre@mustdotranslationcenterendfalse%
\def\GreTranslationCenterEnd{%
- \gre@mustdotranslationcenterendtrue%
- \relax %
+ \gre@mustdotranslationcenterendtrue%
+ \relax %
}%
\def\gre@dotranslationcenterend{%
- \ifgre@breakintranslation\else%
- \GreEndNLBArea{0}{1}%
- \fi %
- \gre@attr@center=2\relax %
- \raise\gre@space@dimen@spacebeneathtext\hbox to 0pt{}%
- \unsetluatexattribute{\gre@attr@center}%
- \relax %
+ \ifgre@breakintranslation\else%
+ \GreEndNLBArea{0}{1}%
+ \fi %
+ \gre@attr@center=2\relax %
+ \raise\gre@space@dimen@spacebeneathtext\hbox to 0pt{}%
+ \unsetluatexattribute{\gre@attr@center}%
+ \relax %
}%
@@ -1112,27 +1060,27 @@
\gre@justifylastlinefalse%
\def\gresetlastline#1{%
- \IfStrEqCase{#1}{%
- {justified}%
- {\gre@justifylastlinetrue}%
- {ragged}%
- {\gre@justifylastlinefalse}%
- }[% all other cases
- \gre@error{Unrecognized option "#1" for \protect\gresetlastline\MessageBreak Possible options are: 'justified' and 'ragged'}%
- ]%
+ \IfStrEqCase{#1}{%
+ {justified}%
+ {\gre@justifylastlinetrue}%
+ {ragged}%
+ {\gre@justifylastlinefalse}%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" for \protect\gresetlastline\MessageBreak Possible options are: 'justified' and 'ragged'}%
+ ]%
}%
% make this a count so that it can be read more easily in Lua
\newcount\gre@variableheightexpansion\gre@variableheightexpansion=1\relax %
\def\gresetlineheightexpansion#1{%
- \IfStrEqCase{#1}{%
- {uniform}%
- {\gre@variableheightexpansion=0\relax }%
- {variable}%
- {\gre@variableheightexpansion=1\relax }%
- }[% all other cases
- \gre@error{Unrecognized option "#1" for \protect\gresetlineheightexpansion\MessageBreak Possible options are: 'uniform' and 'variable'}%
- ]%
+ \IfStrEqCase{#1}{%
+ {uniform}%
+ {\gre@variableheightexpansion=0\relax }%
+ {variable}%
+ {\gre@variableheightexpansion=1\relax }%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" for \protect\gresetlineheightexpansion\MessageBreak Possible options are: 'uniform' and 'variable'}%
+ ]%
}%
% gre@attr@dash (see its definition in gregorio-syllable) is 0 when we are in a score, and unset when we are not
@@ -1143,58 +1091,58 @@
\newif\ifgre@haslinefive%
\def\gre@setstafflines#1{%
- \def\gre@stafflines{#1}%
- \ifcase#1% 0
- \gre@error{Invalid number of staff lines}%
- \or % 1
- \gre@error{Invalid number of staff lines}%
- \or % 2
- \let\gre@pitch@adjust@top\gre@pitch@f %
- \let\gre@pitch@abovestaff\gre@pitch@g %
- \let\gre@pitch@ledger@above\gre@pitch@h %
- \let\gre@pitch@raresign\gre@pitch@g %
- \let\gre@pitch@overbrace\gre@pitch@i %
- \grechangeglyph{Virgula}{*}{.2}%
- \grechangeglyph{Divisio*}{*}{.2}%
- \gre@haslinethreefalse %
- \gre@haslinefourfalse %
- \gre@haslinefivefalse %
- \or % 3
- \let\gre@pitch@adjust@top\gre@pitch@h %
- \let\gre@pitch@abovestaff\gre@pitch@i %
- \let\gre@pitch@ledger@above\gre@pitch@j %
- \let\gre@pitch@raresign\gre@pitch@i %
- \let\gre@pitch@overbrace\gre@pitch@k %
- \grechangeglyph{Virgula}{*}{.3}%
- \grechangeglyph{Divisio*}{*}{.3}%
- \gre@haslinethreetrue %
- \gre@haslinefourfalse %
- \gre@haslinefivefalse %
- \or % 4
- \let\gre@pitch@adjust@top\gre@pitch@j %
- \let\gre@pitch@abovestaff\gre@pitch@k %
- \let\gre@pitch@ledger@above\gre@pitch@l %
- \let\gre@pitch@raresign\gre@pitch@k %
- \let\gre@pitch@overbrace\gre@pitch@m %
- \greresetglyph{Virgula}%
- \greresetglyph{Divisio*}%
- \gre@haslinethreetrue %
- \gre@haslinefourtrue %
- \gre@haslinefivefalse %
- \or % 5
- \let\gre@pitch@adjust@top\gre@pitch@l %
- \let\gre@pitch@abovestaff\gre@pitch@m %
- \let\gre@pitch@ledger@above\gre@pitch@n %
- \let\gre@pitch@raresign\gre@pitch@m %
- \let\gre@pitch@overbrace\gre@pitch@p %
- \grechangeglyph{Virgula}{*}{.5}%
- \grechangeglyph{Divisio*}{*}{.5}%
- \gre@haslinethreetrue %
- \gre@haslinefourtrue %
- \gre@haslinefivetrue %
- \else %
- \gre@error{Invalid number of staff lines}%
- \fi %
+ \def\gre@stafflines{#1}%
+ \ifcase#1% 0
+ \gre@error{Invalid number of staff lines}%
+ \or % 1
+ \gre@error{Invalid number of staff lines}%
+ \or % 2
+ \let\gre@pitch@adjust@top\gre@pitch@f %
+ \let\gre@pitch@abovestaff\gre@pitch@g %
+ \let\gre@pitch@ledger@above\gre@pitch@h %
+ \let\gre@pitch@raresign\gre@pitch@g %
+ \let\gre@pitch@overbrace\gre@pitch@i %
+ \grechangeglyph{Virgula}{*}{.2}%
+ \grechangeglyph{Divisio*}{*}{.2}%
+ \gre@haslinethreefalse %
+ \gre@haslinefourfalse %
+ \gre@haslinefivefalse %
+ \or % 3
+ \let\gre@pitch@adjust@top\gre@pitch@h %
+ \let\gre@pitch@abovestaff\gre@pitch@i %
+ \let\gre@pitch@ledger@above\gre@pitch@j %
+ \let\gre@pitch@raresign\gre@pitch@i %
+ \let\gre@pitch@overbrace\gre@pitch@k %
+ \grechangeglyph{Virgula}{*}{.3}%
+ \grechangeglyph{Divisio*}{*}{.3}%
+ \gre@haslinethreetrue %
+ \gre@haslinefourfalse %
+ \gre@haslinefivefalse %
+ \or % 4
+ \let\gre@pitch@adjust@top\gre@pitch@j %
+ \let\gre@pitch@abovestaff\gre@pitch@k %
+ \let\gre@pitch@ledger@above\gre@pitch@l %
+ \let\gre@pitch@raresign\gre@pitch@k %
+ \let\gre@pitch@overbrace\gre@pitch@m %
+ \greresetglyph{Virgula}%
+ \greresetglyph{Divisio*}%
+ \gre@haslinethreetrue %
+ \gre@haslinefourtrue %
+ \gre@haslinefivefalse %
+ \or % 5
+ \let\gre@pitch@adjust@top\gre@pitch@l %
+ \let\gre@pitch@abovestaff\gre@pitch@m %
+ \let\gre@pitch@ledger@above\gre@pitch@n %
+ \let\gre@pitch@raresign\gre@pitch@m %
+ \let\gre@pitch@overbrace\gre@pitch@p %
+ \grechangeglyph{Virgula}{*}{.5}%
+ \grechangeglyph{Divisio*}{*}{.5}%
+ \gre@haslinethreetrue %
+ \gre@haslinefourtrue %
+ \gre@haslinefivetrue %
+ \else %
+ \gre@error{Invalid number of staff lines}%
+ \fi %
}%
%macro called at the beginning of a score
@@ -1206,130 +1154,128 @@
% #6 is the point-and-click filename
% #7 is the number of staff lines
\def\GreBeginScore#1#2#3#4#5#6#7{%
- % scores must be new paragraphs!
- \ifhmode\par\fi %
- \gre@beginningofscoretrue%
- \global\gre@dimen@morawidth=0pt\relax %
- \gre@reseteolcustos%
- \gre@resetledgerlineheuristics%
- \global\setluatexattribute\gre@attr@glyph@id{0}%
- \xdef\gre@gabcname{#6}%
- \gre@setstafflines{#7}%
- \global\let\gre@save@englishcentering\gre@lyriccentering\relax % OBSOLETE
- \global\let\gre@opening@initialstyle\gre@initiallines\relax % DEPRECATED by 4.1
- \ifgre@justifylastline%
- \xdef\gre@save@parfillskip{\the\parfillskip}%
- \parfillskip=0pt plus 0pt minus 0pt\relax%
- \fi %
- \ifgre@usestylefont%
- \gre@setstylefont %
- \fi %
- \gre@computespaces%
- \gre@cancelpenalties %
- \gre@attr@dash=0\relax %
- \xdef\gre@exhyphencharsave{\the\exhyphenchar}%
- \exhyphenchar=-1\relax %
- \gre@generatelines %
- \noindent%
- \gre@calculate@additionalspaces{#2}{#3}{#4}{#5}%
- \directlua{
- gregoriotex.atScoreBeginning([[#1]], #2, #3, #4, #5,
- \gre@pitch@adjust@top, \gre@pitch@adjust@bottom)
- gregoriotex.adjust_line_height(1)
- }%
- %TODO do something like LaTeX's AtBeginDocument
- \ifdefined\optgabcAtScoreBeginning %
- \optgabcAtScoreBeginning %
- \fi %
- \global\gre@knownline=1\relax %
- \global\gre@lastoflinecount=2\relax %
- \global\gre@endofscorefalse %
- \relax%
+ % scores must be new paragraphs!
+ \ifhmode\par\fi %
+ \gre@beginningofscoretrue%
+ \global\gre@dimen@morawidth=0pt\relax %
+ \gre@reseteolcustos%
+ \gre@resetledgerlineheuristics%
+ \global\setluatexattribute\gre@attr@glyph@id{0}%
+ \xdef\gre@gabcname{#6}%
+ \gre@setstafflines{#7}%
+ \global\let\gre@opening@initialstyle\gre@initiallines\relax % DEPRECATED for removal in 5.0
+ \ifgre@justifylastline%
+ \xdef\gre@save@parfillskip{\the\parfillskip}%
+ \parfillskip=0pt plus 0pt minus 0pt\relax%
+ \fi %
+ \ifgre@usestylefont%
+ \gre@setstylefont %
+ \fi %
+ \gre@computespaces%
+ \gre@cancelpenalties %
+ \gre@attr@dash=0\relax %
+ \xdef\gre@exhyphencharsave{\the\exhyphenchar}%
+ \exhyphenchar=-1\relax %
+ \gre@generatelines %
+ \noindent%
+ \gre@calculate@additionalspaces{#2}{#3}{#4}{#5}%
+ \directlua{
+ gregoriotex.atScoreBeginning([[#1]], #2, #3, #4, #5,
+ \gre@pitch@adjust@top, \gre@pitch@adjust@bottom)
+ gregoriotex.adjust_line_height(1)
+ }%
+ %TODO do something like LaTeX's AtBeginDocument
+ \ifdefined\optgabcAtScoreBeginning %
+ \optgabcAtScoreBeginning %
+ \fi %
+ \global\gre@knownline=1\relax %
+ \global\gre@lastoflinecount=2\relax %
+ \global\gre@endofscorefalse %
+ \relax%
}%
%macro called at the end of a score
\def\GreEndScore{%
- \ifnum\gre@biginitial=1\relax%
- \ifnum\gre@knownline<3\relax%
- \gre@error{Score ended before finding the end\MessageBreak of the second line of a 2-line initial. Make sure\MessageBreak you have at least two manual line breaks in \MessageBreak your gabc}%
- \fi%
- \fi%
- \global\gre@lastoflinecount=0\relax %
- \gre@useautoeolcustos%
- \GreEndEUOUAE{}%
- \ifnum\gre@nlbstate=0\else %
- \GreEndNLBArea{2}{0}%
- \fi %
- \gre@localleftbox{}%
- \ifgre@keeprightbox\else %
- \gre@localrightbox{}%
- \fi %
- \hfil %
- \par %
- \ifgre@keeprightbox%
- \global\gre@keeprightboxfalse%
- \fi%
- % with some versions of LuaTeX, the \localrightbox and \localleftbox must be set empty in an environment with the good attributes set
- \gre@localleftbox{}%
- \gre@localrightbox{}%
- \gre@calculate@additionalspaces{\gre@pitch@dummy}{\gre@pitch@dummy}{0}{0}%
- \global\gre@dimen@currentabovelinestextheight=0 sp%
- \gre@removetranslationspace %
- \gre@normalinitial %
- \gre@restorepenalties %
- \exhyphenchar=\gre@exhyphencharsave %
- \gre@dimen@temp@one=0pt\relax%
- \gre@dimen@temp@two=0pt\relax%
- \gre@dimen@temp@three=0pt\relax%
- \gre@dimen@temp@four=0pt\relax%
- \gre@dimen@temp@five=0pt\relax%
- \gre@skip@temp@one=0pt\relax%
- \gre@skip@temp@two=0pt\relax%
- \gre@skip@temp@three=0pt\relax%
- \gre@skip@temp@four=0pt\relax%
- \setbox\gre@box@annotation=\box\voidb@x%
- \setbox\gre@box@commentary=\box\voidb@x%
- \directlua{gregoriotex.atScoreEnd()}%
- \unsetluatexattribute{\gre@attr@glyph@id}%
- \unsetluatexattribute{\gre@attr@glyph@top}%
- \unsetluatexattribute{\gre@attr@glyph@bottom}%
- \unsetluatexattribute{\gre@attr@dash}%
- \ifgre@justifylastline%
- \parfillskip=\gre@save@parfillskip\relax%
- \fi %
- \global\let\gre@lyriccentering\gre@save@englishcentering\relax % OBSOLETE
- \global\setluatexattribute\gre@attr@glyph@id{0}%
- \relax%
+ \ifnum\gre@biginitial=1\relax%
+ \ifnum\gre@knownline<3\relax%
+ \gre@error{Score ended before finding the end\MessageBreak of the second line of a 2-line initial. Make sure\MessageBreak you have at least two manual line breaks in \MessageBreak your gabc}%
+ \fi%
+ \fi%
+ \global\gre@lastoflinecount=0\relax %
+ \gre@useautoeolcustos%
+ \GreEndEUOUAE{}%
+ \ifnum\gre@nlbstate=0\else %
+ \GreEndNLBArea{2}{0}%
+ \fi %
+ \gre@localleftbox{}%
+ \ifgre@keeprightbox\else %
+ \gre@localrightbox{}%
+ \fi %
+ \hfil %
+ \par %
+ \ifgre@keeprightbox%
+ \global\gre@keeprightboxfalse%
+ \fi%
+ % with some versions of LuaTeX, the \localrightbox and \localleftbox must be set empty in an environment with the good attributes set
+ \gre@localleftbox{}%
+ \gre@localrightbox{}%
+ \gre@calculate@additionalspaces{\gre@pitch@dummy}{\gre@pitch@dummy}{0}{0}%
+ \global\gre@dimen@currentabovelinestextheight=0 sp%
+ \gre@removetranslationspace %
+ \gre@normalinitial %
+ \gre@restorepenalties %
+ \exhyphenchar=\gre@exhyphencharsave %
+ \gre@dimen@temp@one=0pt\relax%
+ \gre@dimen@temp@two=0pt\relax%
+ \gre@dimen@temp@three=0pt\relax%
+ \gre@dimen@temp@four=0pt\relax%
+ \gre@dimen@temp@five=0pt\relax%
+ \gre@skip@temp@one=0pt\relax%
+ \gre@skip@temp@two=0pt\relax%
+ \gre@skip@temp@three=0pt\relax%
+ \gre@skip@temp@four=0pt\relax%
+ \setbox\gre@box@annotation=\box\voidb@x%
+ \setbox\gre@box@commentary=\box\voidb@x%
+ \directlua{gregoriotex.atScoreEnd()}%
+ \unsetluatexattribute{\gre@attr@glyph@id}%
+ \unsetluatexattribute{\gre@attr@glyph@top}%
+ \unsetluatexattribute{\gre@attr@glyph@bottom}%
+ \unsetluatexattribute{\gre@attr@dash}%
+ \ifgre@justifylastline%
+ \parfillskip=\gre@save@parfillskip\relax%
+ \fi %
+ \global\setluatexattribute\gre@attr@glyph@id{0}%
+ \relax%
}%
% macro called at the end of a bar (old bar spacing algorithm only).
\def\gre@endafterbar#1{%
- \gre@penalty{\greendafterbarpenalty }\relax %
- \ifnum#1=1\relax %
- \gre@debugmsg{ifdim}{ enddifference > 0pt}%
- \ifdim\gre@dimen@enddifference > 0 pt\relax%
- \gre@debugmsg{ifdim}{ nextbegindifference > 0pt}%
- \ifdim\gre@skip@nextbegindifference > 0 pt\relax%
- \gre@skip@temp@four = \gre@space@skip@notebarspace\relax%
- \gre@hskip\gre@skip@temp@four %
- \else % (next begin difference >0pt)
- \gre@skip@temp@four = \gre@space@skip@textbartextspace\relax%
- \gre@hskip\gre@skip@temp@four %
- \fi %
- \else%(enddifference < 0pt)
- \gre@debugmsg{ifdim}{ nextbegindifference < 0pt}%
- \ifdim\gre@skip@nextbegindifference < 0 pt\relax%
- \gre@skip@temp@four = \gre@space@skip@textbartextspace\relax%
- \gre@hskip\gre@skip@temp@four %
- \else %(next begin difference < 0 pt)
- \gre@skip@temp@four = \gre@space@skip@interwordspacetext\relax%
- \gre@hskip\gre@skip@temp@four %
- \fi %
- \fi %
- \fi %
- %\gre@penalty{\greendafterbarpenalty }\relax
- %\global\gre@dimen@enddifference=0pt
- \relax %
+ \gre@penalty{\the\gre@space@count@endafterbarpenalty }\relax %
+ \ifnum#1=1\relax %
+ \gre@debugmsg{ifdim}{ enddifference > 0pt}%
+ \ifdim\gre@dimen@enddifference > 0 pt\relax%
+ \gre@debugmsg{ifdim}{ nextbegindifference > 0pt}%
+ \ifdim\gre@skip@nextbegindifference > 0 pt\relax%
+ \gre@skip@temp@four = \gre@space@skip@notebarspace\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \else % (next begin difference >0pt)
+ \gre@skip@temp@four = \gre@space@skip@textbartextspace\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \fi %
+ \else%(enddifference < 0pt)
+ \gre@debugmsg{ifdim}{ nextbegindifference < 0pt}%
+ \ifdim\gre@skip@nextbegindifference < 0 pt\relax%
+ \gre@skip@temp@four = \gre@space@skip@textbartextspace\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \else %(next begin difference < 0 pt)
+ \gre@skip@temp@four = \gre@space@skip@interwordspacetext\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \fi %
+ \fi %
+ \fi %
+ %\gre@penalty{\the\gre@space@count@endafterbarpenalty }\relax
+ %\global\gre@dimen@enddifference=0pt
+ \relax %
}%
\newcount\gre@lastoflinecount%
@@ -1339,9 +1285,9 @@
% 1 if the syllable is the last of the line
% 2 after it has finished the syllable, so when it is two it means that the syllable is the first of a line
\def\GreLastOfLine{%
- \global\gre@lastoflinecount=1\relax%
- \gre@debugmsg{eolshift}{set lastoflinecount to 1}%
- \relax%
+ \global\gre@lastoflinecount=1\relax%
+ \gre@debugmsg{eolshift}{set lastoflinecount to 1}%
+ \relax%
}%
% Flag to mark the last syllable of the score
@@ -1350,13 +1296,13 @@
% called at element level, before the final element
\def\GreLastOfScore{%
- %\gre@localleftbox{}% For an unknown reason, if I uncomment this line, the
- %blank line removing algorithm (in lua) will let some blank space after the
- %last line... (see bug #20953)
- \global\gre@endofscoretrue %
- \gre@usemanualeolcustos%
- \gre@debugmsg{eolshift}{set lastoflinecount to 1}%
- \relax%
+ %\gre@localleftbox{}% For an unknown reason, if I uncomment this line, the
+ %blank line removing algorithm (in lua) will let some blank space after the
+ %last line... (see bug #20953)
+ \global\gre@endofscoretrue %
+ \gre@usemanualeolcustos%
+ \gre@debugmsg{eolshift}{set lastoflinecount to 1}%
+ \relax%
}%
% a flag to disable (or reenable) the left shift for first syllables of lines
@@ -1365,14 +1311,14 @@
\gre@bolshiftsenabledtrue
\def\gresetbolshifts#1{%
- \IfStrEqCase{#1}{%
- {enable}%
- {\gre@bolshiftsenabledtrue}%
- {disable}%
- {\gre@bolshiftsenabledfalse}%
- }[% all other cases
- \gre@error{Unrecognized option "#1" in \protect\gresetbolshifts\MessageBreak Possible options are: 'enable' and 'disable'}%
- ]%
+ \IfStrEqCase{#1}{%
+ {enable}%
+ {\gre@bolshiftsenabledtrue}%
+ {disable}%
+ {\gre@bolshiftsenabledfalse}%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" in \protect\gresetbolshifts\MessageBreak Possible options are: 'enable' and 'disable'}%
+ ]%
}%
% a flag to disable (or reenable) the shift for last syllables of lines
@@ -1382,82 +1328,71 @@
\gre@eolshiftsenabledtrue
\def\greseteolshifts#1{%
- \IfStrEqCase{#1}{%
- {enable}%
- {\gre@eolshiftsenabledtrue}%
- {disable}%
- {\gre@eolshiftsenabledfalse}%
- }[% all other cases
- \gre@error{Unrecognized option "#1" in \protect\greseteolshifts\MessageBreak Possible options are: 'enable' and 'diable'}%
- ]%
+ \IfStrEqCase{#1}{%
+ {enable}%
+ {\gre@eolshiftsenabledtrue}%
+ {disable}%
+ {\gre@eolshiftsenabledfalse}%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" in \protect\greseteolshifts\MessageBreak Possible options are: 'enable' and 'diable'}%
+ ]%
}%
-\def\gredisableeolshifts{%OBSOLETE
- \gre@obsolete{\protect\gredisableeolshifts}{\protect\greseteolshifts{disable}}%
-}%
-
-\def\greenableeolshifts{%OBSOLETE
- \gre@obsolete{\protect\greenableeolshifts}{\protect\greseteolshifts{enable}}%
-}%
% Flag indicating if we block the custos. We just block custos at the end of a score, to prevent a bug.
\newif\ifgre@blockeolcustos%
\def\gre@usemanualeolcustos{%
- \gre@blockeolcustostrue%
- \gre@localrightbox{}%
+ \gre@blockeolcustostrue%
+ \gre@localrightbox{}%
}%
\def\gre@useautoeolcustos{%
- \gre@blockeolcustosfalse%
+ \gre@blockeolcustosfalse%
}%
\def\greseteolcustos#1{%
- \IfStrEqCase{#1}{%
- {manual}%
- {\global\let\gre@reseteolcustos\gre@usemanualeolcustos\relax}%
- {auto}%
- {\global\let\gre@reseteolcustos\gre@useautoeolcustos\relax}%
- }[% all other cases
- \gre@error{Unrecognized option "#1" for \protect\greseteolcustos\MessageBreak Possible options are: 'manual' and 'auto'}%
- ]%
+ \IfStrEqCase{#1}{%
+ {manual}%
+ {\global\let\gre@reseteolcustos\gre@usemanualeolcustos\relax}%
+ {auto}%
+ {\global\let\gre@reseteolcustos\gre@useautoeolcustos\relax}%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" for \protect\greseteolcustos\MessageBreak Possible options are: 'manual' and 'auto'}%
+ ]%
}%
\greseteolcustos{auto}%
\newif\ifgre@blockeolcustosbeforeeuouae%
\def\greseteolcustosbeforeeuouae#1{%
- \IfStrEqCase{#1}{%
- {suppressed}%
- {\gre@blockeolcustosbeforeeuouaetrue\relax}%
- {auto}%
- {\gre@blockeolcustosbeforeeuouaefalse\relax}%
- }[% all other cases
- \gre@error{Unrecognized option "#1" for \protect\greseteolcustosbeforeeuouae\MessageBreak Possible options are: 'suppressed' and 'auto'}%
- ]%
+ \IfStrEqCase{#1}{%
+ {suppressed}%
+ {\gre@blockeolcustosbeforeeuouaetrue\relax}%
+ {auto}%
+ {\gre@blockeolcustosbeforeeuouaefalse\relax}%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" for \protect\greseteolcustosbeforeeuouae\MessageBreak Possible options are: 'suppressed' and 'auto'}%
+ ]%
}%
\greseteolcustosbeforeeuouae{suppressed}%
\newif\ifgre@raggedbreakbeforeeuouae%
\def\gresetbreakbeforeeuouae#1{%
- \IfStrEqCase{#1}{%
- {ragged}%
- {\gre@raggedbreakbeforeeuouaetrue\relax}%
- {justified}%
- {\gre@raggedbreakbeforeeuouaefalse\relax}%
- }[% all other cases
- \gre@error{Unrecognized option "#1" for \protect\greseteolcustosbeforeeuouae\MessageBreak Possible options are: 'ragged' and 'justified'}%
- ]%
+ \IfStrEqCase{#1}{%
+ {ragged}%
+ {\gre@raggedbreakbeforeeuouaetrue\relax}%
+ {justified}%
+ {\gre@raggedbreakbeforeeuouaefalse\relax}%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" for \protect\greseteolcustosbeforeeuouae\MessageBreak Possible options are: 'ragged' and 'justified'}%
+ ]%
}%
\gresetbreakbeforeeuouae{justified}%
-% macro to suppress the custos
-\def\greblockcustos{%OBSOLETE
- \gre@obsolete{\protect\greblockcustos}{\protect\greseteolcustos{manual}}%
-}%
-
-\def\GreAdHocSpaceEndOfElement#1#2{%
- \gre@skip@temp@four = \gre@space@skip@interelementspace\relax %
- \directlua{gregoriotex.scale_space(#1)}%
- \GreEndOfElement{4}{#2}%
+\def\GreAdHocSpaceEndOfElement#1#2#3{%
+ \gre@skip@temp@four = \gre@space@skip@interelementspace\relax %
+ \directlua{gregoriotex.scale_space(#1)}%
+ \GreEndOfElement{4}{#2}{#3}%
}%
+\newif\ifgre@unbreakableendofelement %
% macro to end elements, #1 is the type of space, it can be :
%% 0: default space
%% 1: larger space
@@ -1465,30 +1400,49 @@
%% 3: zero-width space
%% 4: custom space
% #2 is if the space is unbreakable (1) or not (0)
-\def\GreEndOfElement#1#2{%
- \ifnum #2=0\relax %
- \gre@penalty{\greendofelementpenalty}%
- \else %
- \GreNoBreak %
- \fi %
- \ifcase#1%
- \gre@skip@temp@four = \gre@space@skip@interelementspace\relax%
- \gre@hskip\gre@skip@temp@four %
- \or% case 1
- \gre@skip@temp@four = \gre@space@skip@largerspace\relax%
- \gre@hskip\gre@skip@temp@four %
- \or% case 2
- \gre@skip@temp@four = \gre@space@skip@glyphspace\relax%
- \gre@hskip\gre@skip@temp@four %
- \or% case 3
- \gre@skip@temp@four = \gre@space@skip@zerowidthspace\relax%
- \gre@hskip\gre@skip@temp@four %
- \or% case 4
- \gre@hskip\gre@skip@temp@four %
- \fi%
- \ifnum #2=1\relax %
- \GreNoBreak %
- \fi %
+% #3 is the number of notes emitted in this syllable before this macro
+\def\GreEndOfElement#1#2#3{%
+ \ifnum\gre@count@syllablenotes<\gre@count@unbreakabletotalnotes\relax %
+ \gre@unbreakableendofelementtrue %
+ \else %
+ \ifnum#3<\gre@count@unbreakableinitialnotes\relax %
+ \gre@unbreakableendofelementtrue %
+ \else %
+ \ifnum\numexpr\gre@count@syllablenotes-#3\relax<%
+ \gre@count@unbreakablefinalnotes\relax %
+ \gre@unbreakableendofelementtrue %
+ \else %
+ \ifnum#2=1\relax %
+ \gre@unbreakableendofelementtrue %
+ \else %
+ \gre@unbreakableendofelementfalse %
+ \fi %
+ \fi %
+ \fi %
+ \fi %
+ \ifgre@unbreakableendofelement %
+ \GreNoBreak %
+ \else %
+ \gre@penalty{\the\gre@space@count@endofelementpenalty}%
+ \fi %
+ \ifcase#1%
+ \gre@skip@temp@four = \gre@space@skip@interelementspace\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \or% case 1
+ \gre@skip@temp@four = \gre@space@skip@largerspace\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \or% case 2
+ \gre@skip@temp@four = \gre@space@skip@glyphspace\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \or% case 3
+ \gre@skip@temp@four = \gre@space@skip@zerowidthspace\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \or% case 4
+ \gre@hskip\gre@skip@temp@four %
+ \fi%
+ \ifgre@unbreakableendofelement %
+ \GreNoBreak %
+ \fi %
\relax%
}%
@@ -1519,63 +1473,67 @@
%% 21: space between a punctum inclinatum and a "no-bar" glyph three or four pitches above
%% 22: half-space
\def\gre@get@spaceskip#1{%
- \ifcase#1%
- \gre@skip@temp@four = \gre@space@skip@interglyphspace\relax%
- \or% case 1
- \gre@skip@temp@four = \gre@space@dimen@zerowidthspace\relax%
- \or% case 2
- \gre@skip@temp@four = \gre@space@dimen@alterationspace\relax%
- \or% case 3
- \gre@skip@temp@four = \gre@space@skip@punctuminclinatumshift\relax%
- \or% case 4
- \gre@skip@temp@four = \gre@space@skip@bitrivirspace\relax%
- \or% case 5
- \gre@skip@temp@four = \gre@space@skip@bitristrospace\relax%
- \or% case 6
- \gre@skip@temp@four = \gre@space@skip@spaceaftersigns\relax%
- \or% case 7
- \gre@skip@temp@four = \gre@space@skip@punctuminclinatumanddebilisshift\relax%
- \or% case 8
- \gre@skip@temp@four = \gre@space@skip@punctuminclinatumdebilisshift\relax%
- \or% case 9
- \gre@skip@temp@four = \gre@space@skip@beforepunctainclinatashift\relax%
- \or% case 10
- \gre@skip@temp@four = \gre@space@skip@punctuminclinatumbigshift\relax%
- \or% case 11
- \gre@skip@temp@four = \gre@space@skip@punctuminclinatummaxshift\relax%
- \or% case 12 (ascending version of 3)
- \gre@skip@temp@four = \gre@space@skip@ascendingpunctuminclinatumshift\relax%
- \or% case 13 (ascending version of 7)
- \gre@skip@temp@four = \gre@space@skip@ascendingpunctuminclinatumanddebilisshift\relax%
- \or% case 14 (ascending version of 10)
- \gre@skip@temp@four = \gre@space@skip@ascendingpunctuminclinatumbigshift\relax%
- \or% case 15 (ascending version of 11)
- \gre@skip@temp@four = \gre@space@skip@ascendingpunctuminclinatummaxshift\relax%
- \or% case 16
- \gre@skip@temp@four = \gre@space@skip@descendinginclinatumtonobarshift\relax%
- \or% case 17
- \gre@skip@temp@four = \gre@space@skip@descendinginclinatumtonobarbigshift\relax%
- \or% case 18
- \gre@skip@temp@four = \gre@space@skip@descendinginclinatumtonobarmaxshift\relax%
- \or% case 19
- \gre@skip@temp@four = \gre@space@skip@ascendinginclinatumtonobarshift\relax%
- \or% case 20
- \gre@skip@temp@four = \gre@space@skip@ascendinginclinatumtonobarbigshift\relax%
- \or% case 21
- \gre@skip@temp@four = \gre@space@skip@ascendinginclinatumtonobarmaxshift\relax%
- \or% case 22
- \gre@skip@temp@four = \gre@space@skip@halfspace\relax%
- \fi%
+ \ifcase#1%
+ \gre@skip@temp@four = \gre@space@skip@interglyphspace\relax%
+ \or% case 1
+ \gre@skip@temp@four = \gre@space@dimen@zerowidthspace\relax%
+ \or% case 2
+ \gre@skip@temp@four = \gre@space@dimen@alterationspace\relax%
+ \or% case 3
+ \gre@skip@temp@four = \gre@space@skip@punctuminclinatumshift\relax%
+ \or% case 4
+ \gre@skip@temp@four = \gre@space@skip@bitrivirspace\relax%
+ \or% case 5
+ \gre@skip@temp@four = \gre@space@skip@bitristrospace\relax%
+ \or% case 6
+ \gre@skip@temp@four = \gre@space@skip@spaceaftersigns\relax%
+ \or% case 7
+ \gre@skip@temp@four = \gre@space@skip@punctuminclinatumanddebilisshift\relax%
+ \or% case 8
+ \gre@skip@temp@four = \gre@space@skip@punctuminclinatumdebilisshift\relax%
+ \or% case 9
+ \gre@skip@temp@four = \gre@space@skip@beforepunctainclinatashift\relax%
+ \or% case 10
+ \gre@skip@temp@four = \gre@space@skip@punctuminclinatumbigshift\relax%
+ \or% case 11
+ \gre@skip@temp@four = \gre@space@skip@punctuminclinatummaxshift\relax%
+ \or% case 12 (ascending version of 3)
+ \gre@skip@temp@four = \gre@space@skip@ascendingpunctuminclinatumshift\relax%
+ \or% case 13 (ascending version of 7)
+ \gre@skip@temp@four = \gre@space@skip@ascendingpunctuminclinatumanddebilisshift\relax%
+ \or% case 14 (ascending version of 10)
+ \gre@skip@temp@four = \gre@space@skip@ascendingpunctuminclinatumbigshift\relax%
+ \or% case 15 (ascending version of 11)
+ \gre@skip@temp@four = \gre@space@skip@ascendingpunctuminclinatummaxshift\relax%
+ \or% case 16
+ \gre@skip@temp@four = \gre@space@skip@descendinginclinatumtonobarshift\relax%
+ \or% case 17
+ \gre@skip@temp@four = \gre@space@skip@descendinginclinatumtonobarbigshift\relax%
+ \or% case 18
+ \gre@skip@temp@four = \gre@space@skip@descendinginclinatumtonobarmaxshift\relax%
+ \or% case 19
+ \gre@skip@temp@four = \gre@space@skip@ascendinginclinatumtonobarshift\relax%
+ \or% case 20
+ \gre@skip@temp@four = \gre@space@skip@ascendinginclinatumtonobarbigshift\relax%
+ \or% case 21
+ \gre@skip@temp@four = \gre@space@skip@ascendinginclinatumtonobarmaxshift\relax%
+ \or% case 22
+ \gre@skip@temp@four = \gre@space@skip@halfspace\relax%
+ \or% case 23
+ \gre@skip@temp@four = \gre@space@skip@punctuminclinatumunisonshift\relax%
+ \else%
+ \gre@error{Unrecognized spaceskip #1}%
+ \fi%
}%
% macro to end a glyph without ending the element
% see \gre@get@glyphskip for the valus of the argument
\def\GreEndOfGlyph#1{%
- \GreNoBreak %
- \gre@get@spaceskip{#1}%
- \gre@hskip\gre@skip@temp@four %
- \GreNoBreak %
- \relax%
+ \GreNoBreak %
+ \gre@get@spaceskip{#1}%
+ \gre@hskip\gre@skip@temp@four %
+ \GreNoBreak %
+ \relax%
}%
% The different states of line break areas:
@@ -1584,87 +1542,95 @@
% 2: no line break area due to <nlba> tag
\xdef\gre@nlbstate{0}%
+\newcount\gre@nobreakpenaltysave%
+\newcount\gre@endofwordpenaltysave%
+\newcount\gre@endofsyllablepenaltysave%
+\newcount\gre@endafterbarpenaltysave%
+\newcount\gre@endafterbaraltpenaltysave%
+\newcount\gre@endofelementpenaltysave%
+%\newcount\gre@hyphenpenaltysave% in gregoriotex-spaces.tex
% first argument is if if the nlba is starting in neumes or not
% second argument is if it is called from translation centering or not
\def\GreBeginNLBArea#1#2{%
- \xdef\gre@nlbinitialstate{\gre@nlbstate}%
- \ifnum#2=0\relax %
- \xdef\gre@nlbstate{2}%
- \else %
- \ifcase\gre@nlbstate %
- \xdef\gre@nlbstate{1}%
- \or %
- \xdef\gre@nlbstate{1}%
- \or %
- \xdef\gre@nlbstate{2}%
- \fi %
- \fi %
- \ifnum\gre@nlbinitialstate=0\relax %
- \xdef\gre@nobreakpenaltysave{\grenobreakpenalty }%
- \xdef\grenobreakpenalty{10001}%
- \xdef\gre@endofwordpenaltysave{\greendofwordpenalty }%
- \xdef\greendofwordpenalty{10001}%
- \xdef\gre@endofsyllablepenaltysave{\greendofsyllablepenalty }%
- \xdef\greendofsyllablepenalty{10001}%
- \xdef\gre@endafterbarpenaltysave{\greendafterbarpenalty }%
- \xdef\greendafterbarpenalty{10001}%
- \xdef\gre@endafterbaraltpenaltysave{\greendafterbaraltpenalty }%
- \xdef\greendafterbaraltpenalty{10001}%
- \xdef\gre@endofelementpenaltysave{\greendofelementpenalty }%
- \xdef\greendofelementpenalty{10001}%
- \xdef\gre@hyphenpenaltysave{\grehyphenpenalty }%
- \xdef\grehyphenpenalty{10001}%
- \fi %
+ \xdef\gre@nlbinitialstate{\gre@nlbstate}%
+ \ifnum#2=0\relax %
+ \xdef\gre@nlbstate{2}%
+ \else %
+ \ifcase\gre@nlbstate %
+ \xdef\gre@nlbstate{1}%
+ \or %
+ \xdef\gre@nlbstate{1}%
+ \or %
+ \xdef\gre@nlbstate{2}%
+ \fi %
+ \fi %
+ \ifnum\gre@nlbinitialstate=0\relax %
+ \global\gre@nobreakpenaltysave=\gre@space@count@nobreakpenalty\relax %
+ \global\gre@endofwordpenaltysave=\gre@space@count@endofwordpenalty\relax %
+ \global\gre@endofsyllablepenaltysave=\gre@space@count@endofsyllablepenalty\relax %
+ \global\gre@endafterbarpenaltysave=\gre@space@count@endafterbarpenalty\relax %
+ \global\gre@endafterbaraltpenaltysave=\gre@space@count@endafterbaraltpenalty\relax %
+ \global\gre@endofelementpenaltysave=\gre@space@count@endofelementpenalty\relax %
+ \global\gre@hyphenpenaltysave=\gre@space@count@hyphenpenalty\relax %
+ %
+ \global\gre@space@count@nobreakpenalty=10001\relax %
+ \global\gre@space@count@endofwordpenalty=10001\relax %
+ \global\gre@space@count@endofsyllablepenalty=10001\relax %
+ \global\gre@space@count@endafterbarpenalty=10001\relax %
+ \global\gre@space@count@endafterbaraltpenalty=10001\relax %
+ \global\gre@space@count@endofelementpenalty=10001\relax %
+ \global\gre@space@count@hyphenpenalty=10001\relax %
+ \fi %
}%
\def\GreEndNLBArea#1#2{%
- \xdef\gre@nlbinitialstate{\gre@nlbstate}%
- \ifnum#2=0\relax %
- \xdef\gre@nlbstate{0}%
- \else %
- \ifcase\gre@nlbstate %
- \xdef\gre@nlbstate{0}%
- \or %
- \xdef\gre@nlbstate{0}%
- \or %
- \xdef\gre@nlbstate{2}%
- \fi %
- \fi %
- % if gre@nlbstate is not 0, then nothing should happend
- \ifnum\gre@nlbstate=0\relax %
- \ifnum\gre@nlbinitialstate=0\else %
- \xdef\grenobreakpenalty{\gre@nobreakpenaltysave }%
- \xdef\greendofwordpenalty{\gre@endofwordpenaltysave}%
- \xdef\greendofsyllablepenalty{\gre@endofsyllablepenaltysave}%
- \xdef\greendafterbarpenalty{\gre@endafterbarpenaltysave}%
- \xdef\greendafterbaraltpenalty{\gre@endafterbaraltpenaltysave}%
- \xdef\greendofelementpenalty{\gre@endofelementpenaltysave}%
- \xdef\grehyphenpenalty{\gre@hyphenpenaltysave}%
- \ifcase #1\relax % 0
- \gre@penalty{\greendofelementpenalty}%
- \or % 1
- \gre@penalty{\greendofsyllablepenalty}%
- \or % 2
- % end of score, no penalty needs to be added
- \or % 3
- % before bar, no penalty should to be added
- \fi %
- \fi %
- \fi %
+ \xdef\gre@nlbinitialstate{\gre@nlbstate}%
+ \ifnum#2=0\relax %
+ \xdef\gre@nlbstate{0}%
+ \else %
+ \ifcase\gre@nlbstate %
+ \xdef\gre@nlbstate{0}%
+ \or %
+ \xdef\gre@nlbstate{0}%
+ \or %
+ \xdef\gre@nlbstate{2}%
+ \fi %
+ \fi %
+ % if gre@nlbstate is not 0, then nothing should happend
+ \ifnum\gre@nlbstate=0\relax %
+ \ifnum\gre@nlbinitialstate=0\else %
+ \global\gre@space@count@nobreakpenalty=\gre@nobreakpenaltysave\relax %
+ \global\gre@space@count@endofwordpenalty=\gre@endofwordpenaltysave\relax %
+ \global\gre@space@count@endofsyllablepenalty=\gre@endofsyllablepenaltysave\relax %
+ \global\gre@space@count@endafterbarpenalty=\gre@endafterbarpenaltysave\relax %
+ \global\gre@space@count@endafterbaraltpenalty=\gre@endafterbaraltpenaltysave\relax %
+ \global\gre@space@count@endofelementpenalty=\gre@endofelementpenaltysave\relax %
+ \global\gre@space@count@hyphenpenalty=\gre@hyphenpenaltysave\relax %
+ \ifcase #1\relax % 0
+ \gre@penalty{\the\gre@space@count@endofelementpenalty}%
+ \or % 1
+ \gre@penalty{\the\gre@space@count@endofsyllablepenalty}%
+ \or % 2
+ % end of score, no penalty needs to be added
+ \or % 3
+ % before bar, no penalty should to be added
+ \fi %
+ \fi %
+ \fi %
}%
\newif\ifgre@euouae@implies@nlba
\gre@euouae@implies@nlbatrue
\def\gresetbreakineuouae#1{%
- \IfStrEqCase{#1}{%
- {allow}%
- {\gre@euouae@implies@nlbafalse}%
- {prohibit}%
- {\gre@euouae@implies@nlbatrue}%
- }[% all other cases
- \gre@error{Unrecognized option "#1" in \protect\gresetbreakineuouae\MessageBreak Possible options are: 'allow' and 'prohibit'}%
- ]%
+ \IfStrEqCase{#1}{%
+ {allow}%
+ {\gre@euouae@implies@nlbafalse}%
+ {prohibit}%
+ {\gre@euouae@implies@nlbatrue}%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" in \protect\gresetbreakineuouae\MessageBreak Possible options are: 'allow' and 'prohibit'}%
+ ]%
}%
@@ -1677,25 +1643,25 @@
\gre@lasteuouaeindex=0
\def\GreBeginEUOUAE#1{%
- \ifgre@euouae@implies@nlba %
- \GreBeginNLBArea{0}{0}%
- \fi %
- \ifgre@raggedbreakbeforeeuouae %
- \gre@lasteuouaeindex=#1\relax %
- \gre@firstin@euouaetrue %
- \fi %
- \gre@in@euouaetrue %
- % as soon as the EUOUAE starts, we stop blocking the EOL custos that might
- % have been blocked on the prior syllable.
- \gre@reseteolcustos %
+ \ifgre@euouae@implies@nlba %
+ \GreBeginNLBArea{0}{0}%
+ \fi %
+ \ifgre@raggedbreakbeforeeuouae %
+ \gre@lasteuouaeindex=#1\relax %
+ \gre@firstin@euouaetrue %
+ \fi %
+ \gre@in@euouaetrue %
+ % as soon as the EUOUAE starts, we stop blocking the EOL custos that might
+ % have been blocked on the prior syllable.
+ \gre@reseteolcustos %
}
\def\GreEndEUOUAE#1{%
- \ifgre@euouae@implies@nlba %
- \GreEndNLBArea{#1}{0}%
- \fi %
- \gre@in@euouaefalse %
- \gre@firstin@euouaefalse %
+ \ifgre@euouae@implies@nlba %
+ \GreEndNLBArea{#1}{0}%
+ \fi %
+ \gre@in@euouaefalse %
+ \gre@firstin@euouaefalse %
}
\input gregoriotex-symbols.tex%
@@ -1705,8 +1671,8 @@
%%%%%%%%%
\def\gretilde{%
- \ensuremath{\sim}%
- \relax %
+ \ensuremath{\sim}%
+ \relax %
}%
@@ -1714,33 +1680,38 @@
\def\gresetgregoriofontscaled{\@ifnextchar[{\gre@setgregoriofontscaled}{\gre@setgregoriofontscaled[]}}%
\def\gre@setgregoriofont[#1]#2{%
- \gre@setgregoriofontscaled[#1]{#2}{100000}%
- \relax %
+ \gre@setgregoriofontscaled[#1]{#2}{100000}%
+ \relax %
}%
\def\gre@setgregoriofontscaled[#1]#2#3{%
- \if\relax\detokenize{#1}\relax %
- \xdef\gre@gregoriofontname{#2}%
- \expandafter\xdef\csname gre@fontfactor@#2\endcsname{#3}%
- \gre@loadgregoriofont%
- \gdef\GreCPVirgaReversaAscendensOnDLine##1{##1}%
- \else %
- \xdef\gre@gregoriofontname{#2-#1}%
- \expandafter\xdef\csname gre@fontfactor@#2-#1\endcsname{#3}%
- \gre@loadgregoriofont%
- \gdef\GreCPVirgaReversaAscendensOnDLine##1{\GreCPVirgaReversaLongqueueAscendens}%
- \fi %
- \relax %
+ \IfStrEq{#2}{parmesan}{%%% DEPRECATED for removal in 5.0
+ \gre@deprecated{'parmesan' font}{'granapadano' font}%%% DEPRECATED for removal in 5.0
+ \gre@setgregoriofontscaled[#1]{granapadano}{#3}%%% DEPRECATED for removal in 5.0
+ }{%%% DEPRECATED for removal in 5.0
+ \if\relax\detokenize{#1}\relax %
+ \xdef\gre@gregoriofontname{#2}%
+ \expandafter\xdef\csname gre@fontfactor@#2\endcsname{#3}%
+ \gre@loadgregoriofont%
+ \gdef\GreCPVirgaReversaAscendensOnDLine##1{##1}%
+ \else %
+ \xdef\gre@gregoriofontname{#2-#1}%
+ \expandafter\xdef\csname gre@fontfactor@#2-#1\endcsname{#3}%
+ \gre@loadgregoriofont%
+ \gdef\GreCPVirgaReversaAscendensOnDLine##1{\GreCPVirgaReversaLongqueueAscendens}%
+ \fi %
+ }%%% DEPRECATED for removal in 5.0
+ \relax %
}%
\def\gre@loadgregoriofont{%
- \gre@count@temp@three = \the\gre@factor %
- \gre@count@temp@two = \expandafter\csname gre@fontfactor@\gre@gregoriofontname\endcsname\relax %
- \directlua{gregoriotex.set_font_factor([[\gre@gregoriofontname]], [[\the\gre@count@temp@two]])}%
- \multiply\gre@count@temp@three by \gre@count@temp@two %
- \global\font\gre@font@music={name:\gre@gregoriofontname} at \the\gre@count@temp@three sp\relax %
- {\gre@font@music\directlua{gregoriotex.check_font_version() gregoriotex.scale_score_fonts([[\the\gre@count@temp@three]], [[\the\gre@factor]])}}%
- \relax%
+ \gre@count@temp@three = \the\gre@factor %
+ \gre@count@temp@two = \expandafter\csname gre@fontfactor@\gre@gregoriofontname\endcsname\relax %
+ \directlua{gregoriotex.set_font_factor([[\gre@gregoriofontname]], [[\the\gre@count@temp@two]])}%
+ \multiply\gre@count@temp@three by \gre@count@temp@two %
+ \global\font\gre@font@music={name:\gre@gregoriofontname} at \the\gre@count@temp@three sp\relax %
+ {\gre@font@music\directlua{gregoriotex.check_font_version() gregoriotex.scale_score_fonts([[\the\gre@count@temp@three]], [[\the\gre@factor]])}}%
+ \relax%
}%
% the default gregorio font
@@ -1751,52 +1722,20 @@
% gregoriostylefont is the font used for additional glyphs
\def\gre@setstylefont{%
- \gre@count@temp@three = \numexpr(\gre@factor * 100000)\relax %
- \global\font\gre@font@style={name:greextra} at \the\gre@count@temp@three sp%
- {\gre@font@music\directlua{gregoriotex.check_font_version() gregoriotex.scale_score_fonts([[\the\gre@count@temp@three]], [[\the\gre@factor]])}}%
- \relax%
-}%
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% The following style functions are defined for backwards compatibility. They will eventually be removed.
-\def\greinitialformat#1{% OBSOLETE
- \relax %
-}
-\let\gre@empty@initialformat\greinitialformat
-
-\def\grebiginitialformat#1{% OBSOLETE
- \relax %
-}
-\let\gre@empty@biginitialformat\grebiginitialformat
-
-\def\gretranslationformat#1{% OBSOLETE
- \relax %
+ \gre@count@temp@three = \numexpr(\gre@factor * 100000)\relax %
+ \global\font\gre@font@style={name:greextra} at \the\gre@count@temp@three sp%
+ {\gre@font@music\directlua{gregoriotex.check_font_version() gregoriotex.scale_score_fonts([[\the\gre@count@temp@three]], [[\the\gre@factor]])}}%
+ \relax%
}%
-\let\gre@empty@translationformat\gretranslationformat
-\def\grenormalstafflinesformat{% OBSOLETE
- \relax %
-}%
-\let\gre@empty@normalstafflinesformat\grenormalstafflinesformat
-
-\def\greadditionalstafflinesformat{% OBSOLETE
- \relax %
-}%
-\let\gre@empty@additionalstafflinesformat\greadditionalstafflinesformat
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def\GreSetStaffLinesFormat#1{%OBSOLETE
- \gre@obsolete{\protect\GreSetStaffLinesFormat}{\protect\grechangestyle{normalstafflines}}%
-}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Master function for changing element formats
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\grechangestyle#1#2{%
- \IfStrEq{#1}{biginitial}{\gre@deprecated{biginitial style}{initial style}}{}%%% DEPRECATED for removal in 5.0
- \@ifnextchar[{\gre@changestyle{#1}{#2}}{\gre@changestyle{#1}{#2}[\relax]}%
+ \IfStrEq{#1}{biginitial}{\gre@deprecated{biginitial style}{initial style}}{}%%% DEPRECATED for removal in 5.0
+ \@ifnextchar[{\gre@changestyle{#1}{#2}}{\gre@changestyle{#1}{#2}[\relax]}%
}%
% because the mechanism for the defining the formats differs under LaTeX and PlainTeX the underlying function which does the work is defined in gregoriotex.sty or gregoriotex.tex respectively.
@@ -1807,29 +1746,25 @@
%%%%%%%%%%%%%%%%%%%
\def\grechangestaffsize#1{%
- \ifnum#1<0\relax%
- \gre@error{Staff size must be a positive integer.}%
- \else%
- \gre@changedimenfactor{\gre@factor}{#1}%
- \global\gre@factor=#1\relax %
- \fi%
- \gre@loadgregoriofont%
- \relax %
-}%
-
-\def\setgrefactor#1{%OBSOLETE
- \gre@obsolete{\protect\setgrefactor}{\protect\grechangestaffsize}%
+ \ifnum#1<0\relax%
+ \gre@error{Staff size must be a positive integer.}%
+ \else%
+ \gre@changedimenfactor{\gre@factor}{#1}%
+ \global\gre@factor=#1\relax %
+ \fi%
+ \gre@loadgregoriofont%
+ \relax %
}%
%%%%%%%%%%%%%%%%%%%
%% headers
%%%%%%%%%%%%%%%%%%%
\def\gresetheadercapture#1#2#3{%
- \directlua{gregoriotex.set_header_capture("#1","#2","#3")}%
+ \directlua{gregoriotex.set_header_capture("#1","#2","#3")}%
}%
\def\GreHeader#1#2{%
- \directlua{gregoriotex.capture_header("#1","#2")}%
+ \directlua{gregoriotex.capture_header("#1","#2")}%
}%
%%%%%%%%%%%%%%%%%%%
@@ -1840,37 +1775,20 @@
% 0 = never compile (default)
% 1 = auto compile (compile outdated scores and those lacking a compiled version)
% 2 = compile all scores
-\def\gre@compilegabc{0}
+\def\gre@compilegabc{0}%
% User macro to change compilation behavior
\def\gresetcompilegabc#1{%
- \IfStrEqCase{#1}{%
- {force}{\gdef\gre@compilegabc{2}}%
- {auto}{\gdef\gre@compilegabc{1}}%
- {never}{\gdef\gre@compilegabc{0}}%
- }[% all other cases
- \gre@error{Unrecognized argument for \protect\gresetcompilegabc.}%
- ]%
+ \IfStrEqCase{#1}{%
+ {force}{\gdef\gre@compilegabc{2}}%
+ {auto}{\gdef\gre@compilegabc{1}}%
+ {never}{\gdef\gre@compilegabc{0}}%
+ }[% all other cases
+ \gre@error{Unrecognized argument for \protect\gresetcompilegabc.}%
+ ]%
}%
-
-% User macro to force gregriotex to recompile gabc files. Useful for when there
-% are changes to gregoriotex but the GREGORIOTEX API VERSION is not changed.
-\def\forcecompilegabc{%OBSOLETE
- \gre@obsolete{\protect\forcecompilegabc}{\protect\gresetcompilegabc{force}}%
-}%
-
-% User macro to let gregoriotex auto recompile gabc files as necessary.
-% Intended to be used in the main tex file to revert the previous macro.
-\def\autocompilegabc{%OBSOLETE
- \gre@obsolete{\protect\autocompilegabc}{\protect\gresetcompilegabc{auto}}%
-}%
-
-% User macro to force score inclusion without compilation.
-\def\nevercompilegabc{%OBSOLETE
- \gre@obsolete{\protect\nevercompilegabc}{\protect\gresetcompilegabc{never}}%
-}
-
+\def\gre@allowdeprecated@asboolean{\ifgre@allowdeprecated true\else false\fi}%
% Internal marco which includes a score when \gregorioscore is called without the optional argument. Behavior is determined by the value of \gre@compilegabc flag.
%
@@ -1886,17 +1804,17 @@
% This forces gregoriotex to recompile the gabc file.
\def\gre@gregorioscore#1{%
- \ifcase\gre@compilegabc% case 0, never compile
- \gre@debugmsg{compile}{Refusing to compile #1}%
- \input #1%
- \or% case 1, auto compile
- \gre@debugmsg{compile}{Auto compile #1}%
- \directlua{gregoriotex.include_score([[#1]], nil)}%
- \or% case 2, force compile
- \gre@debugmsg{compile}{Forced to compile #1}%
- \directlua{gregoriotex.include_score([[#1]], true)}%
- \fi%
- \relax%
+ \ifcase\gre@compilegabc% case 0, never compile
+ \gre@debugmsg{compile}{Refusing to compile #1}%
+ \input #1%
+ \or% case 1, auto compile
+ \gre@debugmsg{compile}{Auto compile #1}%
+ \directlua{gregoriotex.include_score([[#1]], nil, \gre@allowdeprecated@asboolean)}%
+ \or% case 2, force compile
+ \gre@debugmsg{compile}{Forced to compile #1}%
+ \directlua{gregoriotex.include_score([[#1]], true, \gre@allowdeprecated@asboolean)}%
+ \fi%
+ \relax%
}%
% The internal macro called when \gregorioscore is called with the optional argument. Behavior is determined by the value of the argument:
@@ -1904,33 +1822,29 @@
% a - perform the checks to see if the score needs to be recompiled and do so only if necessary
% f - force the compilation of the score before including it
\def\gre@gregorioscore@option[#1]#2{%
- \ifx #1n\relax%
- \gre@debugmsg{compile}{Override not compiling #2}%
- \input #2%
- \else%
- \ifx #1f\relax%
- \gre@debugmsg{compile}{Override force compiling #2}%
- \directlua{gregoriotex.include_score([[#2]], true)}%
- \else%
- \ifx #1a\relax%
- \gre@debugmsg{compile}{Override auto compiling #2}%
- \directlua{gregoriotex.include_score([[#2]], nil)}%
- \else%
- \gre@error{Unrecognized option "#1" for \protect\includescore\MessageBreak Possible options are: 'f', 'a', and 'n'}%
- \fi%
- \fi%
- \fi%
- \relax%
+ \ifx #1n\relax%
+ \gre@debugmsg{compile}{Override not compiling #2}%
+ \input #2%
+ \else%
+ \ifx #1f\relax%
+ \gre@debugmsg{compile}{Override force compiling #2}%
+ \directlua{gregoriotex.include_score([[#2]], true, \gre@allowdeprecated@asboolean)}%
+ \else%
+ \ifx #1a\relax%
+ \gre@debugmsg{compile}{Override auto compiling #2}%
+ \directlua{gregoriotex.include_score([[#2]], nil, \gre@allowdeprecated@asboolean)}%
+ \else%
+ \gre@error{Unrecognized option "#1" for \protect\includescore\MessageBreak Possible options are: 'f', 'a', and 'n'}%
+ \fi%
+ \fi%
+ \fi%
+ \relax%
}%
% The main macro used by the user to input scores into the document.
-\def\includescore{%OBSOLETE
- \gre@obsolete{\protect\includescore}{\protect\gregorioscore}%
-}%
-
\def\gregorioscore{\@ifnextchar[{\gre@gregorioscore@option}%
- {\gre@gregorioscore}%
+ {\gre@gregorioscore}%
}%
% If called without the optional argument: '\gregorioscore{Antiphon}'
@@ -1950,16 +1864,16 @@
% Macros for compiling short snippets of GABC directly expressed in TeX
-\long\def\gre@gabcsnippet@option[#1]#2{%%% DEPRECATED by 4.1
- \gre@deprecated{\protect\gabcsnippet with initial-style argument}{\protect\gresetinitiallines}%
- \directlua{gregoriotex.direct_gabc("\luatexluaescapestring{\unexpanded\expandafter{#2}}", "initial-style: #1;")}%
+\long\def\gre@gabcsnippet@option[#1]#2{%%% DEPRECATED for removal in 5.0
+ \gre@deprecated{\protect\gabcsnippet with initial-style argument}{\protect\gresetinitiallines}%
+ \directlua{gregoriotex.direct_gabc("\luatexluaescapestring{\unexpanded\expandafter{#2}}", "initial-style: #1;", \gre@allowdeprecated@asboolean)}%
}%
\long\def\gre@gabcsnippet#1{%
- \directlua{gregoriotex.direct_gabc("\luatexluaescapestring{\unexpanded\expandafter{#1}}")}%
+ \directlua{gregoriotex.direct_gabc("\luatexluaescapestring{\unexpanded\expandafter{#1}}", nil, \gre@allowdeprecated@asboolean)}%
}%
-%%% \gre@gabcsnipper@option is DEPRECATED by 4.1
+%%% \gre@gabcsnipper@option is DEPRECATED for removal in 5.0
\def\gabcsnippet{\@ifnextchar[{\gre@gabcsnippet@option}{\gre@gabcsnippet}}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1968,16 +1882,16 @@
% a zero-width hyphen, useful for fine tuning line endings. To input in gabc verb for example.
\def\gre@char@zerohyph{%
- \hbox to 0pt{%
- \char\the\hyphenchar\font %
- \hss %
- }%
+ \hbox to 0pt{%
+ \char\the\hyphenchar\font %
+ \hss %
+ }%
}%
% a normal hyphen
\def\gre@char@normalhyphen{%
- %-
- \char\the\hyphenchar\font %
+ %-
+ \char\the\hyphenchar\font %
}%
% the definition that will be always used for end of lines hyphens in gregorio, except if one of the two before is explicitely used
@@ -1985,35 +1899,27 @@
% macro to change the definition of the hyphen:
\def\greseteolhyphen#1{%
- \IfStrEqCase{#1}{%
- {normal}%
- {\global\let\GreHyph\gre@char@normalhyphen}%
- {zero}%
- {\global\let\GreHyph\gre@char@zerohyph}%
- }[% all other cases
- \gre@error{Unrecognized option "#1" for \protect\greseteolhyphen\MessageBreak Possible options are: 'normal' and 'zero'}%
- ]%
-}%
-
-\def\GreUseNormalHyphen{%OBSOLETE
- \gre@obsolete{\protect\GreUseNormalHyphen}{\protect\greseteolhyphen{normal}}%
-}%
-
-\def\GreUseZeroHyphen{%OBSOLETE
- \gre@obsolete{\protect\GreUseZeroHyphen}{\protect\greseteolhyphen{zero}}%
+ \IfStrEqCase{#1}{%
+ {normal}%
+ {\global\let\GreHyph\gre@char@normalhyphen}%
+ {zero}%
+ {\global\let\GreHyph\gre@char@zerohyph}%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" for \protect\greseteolhyphen\MessageBreak Possible options are: 'normal' and 'zero'}%
+ ]%
}%
% macro to force hyphenation of all syllables.
\newif\ifgre@forcehyphen\gre@forcehyphenfalse%
\def\gresethyphen#1{%
- \IfStrEqCase{#1}{%
- {force}%
- {\gre@forcehyphentrue}%
- {auto}%
- {\gre@forcehyphenfalse}%
- }[% all other cases
- \gre@error{Unrecognized option "#1" in \protect\gresethyphen\MessageBreak Possible options are: 'force' and 'auto'}%
- ]%
+ \IfStrEqCase{#1}{%
+ {force}%
+ {\gre@forcehyphentrue}%
+ {auto}%
+ {\gre@forcehyphenfalse}%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" in \protect\gresethyphen\MessageBreak Possible options are: 'force' and 'auto'}%
+ ]%
}%
% macro called before the headers of a given inclusion
diff --git a/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-nabc.lua b/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-nabc.lua
index 659502e7d63..125acc458b4 100644
--- a/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-nabc.lua
+++ b/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-nabc.lua
@@ -20,7 +20,7 @@
-- this file contains lua functions used by GregorioTeX St. Gall ancient
-- neume support when called with LuaTeX.
--- GREGORIO_VERSION 4.1.1
+-- GREGORIO_VERSION 4.2.0-beta1
local catcode_at_letter = luatexbase.catcodetables['gre@atletter']
diff --git a/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-nabc.tex b/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-nabc.tex
index 25ebe0b847c..15d18920417 100644
--- a/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-nabc.tex
+++ b/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-nabc.tex
@@ -20,45 +20,45 @@
% this file contains macros for St. Gall ancient neume support
\gre@debugmsg{general}{Loading gregoriotex-nabc.tex}%
-\gre@declarefileversion{gregoriotex-nabc.tex}{4.1.1}% GREGORIO_VERSION
+\gre@declarefileversion{gregoriotex-nabc.tex}{4.2.0-beta1}% GREGORIO_VERSION
-\xdef\gre@nabcfontname{gregall}
-\xdef\gre@nabcfontsize{8}
+\xdef\gre@nabcfontname{gregall}%
+\xdef\gre@nabcfontsize{8}%
\def\gresetnabcfont#1#2{%
- \xdef\gre@nabcfontname{#1}%
- \xdef\gre@nabcfontsize{#2}%
- \global\font\gre@font@nabc={name:#1} at #2 pt\relax %
- {%
- \gre@font@nabc %
- \directlua{gregoriotex.init_nabc_font("\luatexluaescapestring{#1}")}%
- }%
- \gre@nabcfontloadedtrue%
+ \xdef\gre@nabcfontname{#1}%
+ \xdef\gre@nabcfontsize{#2}%
+ \global\font\gre@font@nabc={name:#1} at #2 pt\relax %
+ {%
+ \gre@font@nabc %
+ \directlua{gregoriotex.init_nabc_font("\luatexluaescapestring{#1}")}%
+ }%
+ \gre@nabcfontloadedtrue%
}
\def\grenabccharno#1#2#3{{\directlua{
- gregoriotex.print_nabc(gregoriotex.parse_nabc("#1", "\luatexluaescapestring{#2}", #3))
+ gregoriotex.print_nabc(gregoriotex.parse_nabc("#1", "\luatexluaescapestring{#2}", #3))
}}}
\def\GreNABCChar#1{{%
- %\catcode`\~=12{}%
- %\catcode`\@=11{}%
- \gre@font@nabc %
- \gre@style@nabc %
- \grenabccharno{#1}{\gre@nabcfontname}{1}%
- \endgre@style@nabc%
+ %\catcode`\~=12{}%
+ %\catcode`\@=11{}%
+ \gre@font@nabc %
+ \gre@style@nabc %
+ \grenabccharno{#1}{\gre@nabcfontname}{1}%
+ \endgre@style@nabc%
}}
\def\GreNABCNeumes#1#2{%
- \GreSetTextAboveLines{\GreNABCChar{#2}}%
+ \GreSetTextAboveLines{\GreNABCChar{#2}}%
}
\newif\ifgre@nabcfontloaded%
\gre@nabcfontloadedfalse%
\def\GreScoreNABCLines#1{%
- \ifgre@nabcfontloaded\else%
- \gresetnabcfont{\gre@nabcfontname}{\gre@nabcfontsize}%
- \fi %
+ \ifgre@nabcfontloaded\else%
+ \gresetnabcfont{\gre@nabcfontname}{\gre@nabcfontsize}%
+ \fi %
}
diff --git a/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-signs.lua b/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-signs.lua
index 0acb9789e75..17879fe855b 100644
--- a/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-signs.lua
+++ b/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-signs.lua
@@ -19,7 +19,7 @@
-- this file contains lua functions to support signs used by GregorioTeX.
--- GREGORIO_VERSION 4.1.1
+-- GREGORIO_VERSION 4.2.0-beta1
local err = gregoriotex.module.err
local warn = gregoriotex.module.warn
@@ -135,8 +135,8 @@ local offset_cases = {
-- oriscus as last note
{
case = 'FinalOriscus',
- v = [[\gre@vepisemaorrareaux{0}{\GreCPOriscus}{0}{0}{#2}{#3}{#4}]],
- h = [[\gre@hepisorlineaux{\GreCPOriscus}{\gre@char@he@oriscus{#4}}{2}{#3}]],
+ v = [[\gre@vepisemaorrareaux{0}{\GreCPAscendensOriscus}{0}{0}{#2}{#3}{#4}]],
+ h = [[\gre@hepisorlineaux{\GreCPAscendensOriscus}{\gre@char@he@oriscus{#4}}{2}{#3}]],
},
-- second-to-last note, with a second ambitus of one, when last note is a
-- standard punctum (like the second note of ghg)
@@ -155,7 +155,7 @@ local offset_cases = {
-- oriscus as first note, disconnected from next note
{
case = 'InitialOriscus',
- v = [[\gre@vepisemaorrareaux{0}{\GreCPOriscusReversus}{0}{0}{#2}{#3}{#4}]],
+ v = [[\gre@vepisemaorrareaux{0}{\GreCPDescendensOriscus}{0}{0}{#2}{#3}{#4}]],
h = [[\gre@hepisorlineaux{0}{\gre@char@he@oriscus{#4}}{0}{#3}]],
},
-- quilisma as first note, disconnected from next note
@@ -370,7 +370,7 @@ local offset_cases = {
-- oriscus as first note, connected to next higher note
{
case = 'InitialConnectedOriscus',
- v = [[\gre@vepisemaorrareaux{0}{\GreCPOriscusLineTR}{0}{0}{#2}{#3}{#4}]],
+ v = [[\gre@vepisemaorrareaux{0}{\GreCPAscendensOriscusLineTR}{0}{0}{#2}{#3}{#4}]],
h = [[\gre@hepisorlineaux{0}{\gre@char@he@oriscus@line@tr{#4}}{0}{#3}]],
},
-- punctum as last note, connected to prior higher note
@@ -407,13 +407,13 @@ local offset_cases = {
-- least two
{
case = 'SalicusOriscusWide',
- v = [[\gre@vepisemaorrareaux{\GreCPVirgaStrataThreeNothing}{\GreCPSalicusOriscus}{3}{0}{#2}{#3}{#4}]],
+ v = [[\gre@vepisemaorrareaux{\GreCPVirgaStrataThreeNothing}{\GreCPAscendensOriscusLineBLTR}{3}{0}{#2}{#3}{#4}]],
h = [[\gre@hepisorlineaux{\GreCPVirgaStrataThreeNothing}{\gre@char@he@salicus@oriscus{#4}}{4}{#3}]],
},
-- "oriscus" as the middle note of a salicus with a second ambitus of one
{
case = 'SalicusOriscusOne',
- v = [[\gre@vepisemaorrareaux{\GreCPVirgaStrataOneNothing}{\GreCPOriscus}{3}{0}{#2}{#3}{#4}]],
+ v = [[\gre@vepisemaorrareaux{\GreCPVirgaStrataOneNothing}{\GreCPAscendensOriscus}{3}{0}{#2}{#3}{#4}]],
h = [[\gre@hepisorlineaux{\GreCPVirgaStrataOneNothing}{\gre@char@he@salicus@oriscus{#4}}{4}{#3}]],
},
-- punctum fused to the next note
@@ -431,8 +431,8 @@ local offset_cases = {
-- oriscus fused to the next note
{
case = 'LeadingOriscus',
- v = [[\gre@vepisemaorrareaux{0}{\GreCPOriscus}{0}{0}{#2}{#3}{#4}]],
- h = [[\gre@hepisorlineaux{\GreCPOriscusTwoUp}{\gre@char@he@oriscus{#4}}{2}{#3}]],
+ v = [[\gre@vepisemaorrareaux{0}{\GreCPAscendensOriscus}{0}{0}{#2}{#3}{#4}]],
+ h = [[\gre@hepisorlineaux{\GreCPAscendensOriscusTwoUp}{\gre@char@he@oriscus{#4}}{2}{#3}]],
},
-- flat
{
diff --git a/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-signs.tex b/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-signs.tex
index 36ffb0a23ac..b008290faa0 100644
--- a/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-signs.tex
+++ b/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-signs.tex
@@ -23,14 +23,14 @@
\def\grebarbracewidth{.58879}%
\gre@debugmsg{general}{Loading gregoriotex-signs.tex}%
-\gre@declarefileversion{gregoriotex-signs.tex}{4.1.1}% GREGORIO_VERSION
+\gre@declarefileversion{gregoriotex-signs.tex}{4.2.0-beta1}% GREGORIO_VERSION
\def\gre@usestylecommon{%
- \ifgre@usestylefont\else %
- \gre@usestylefonttrue%
- \gre@setstylefont %
- \fi %
- \relax %
+ \ifgre@usestylefont\else %
+ \gre@usestylefonttrue%
+ \gre@setstylefont %
+ \fi %
+ \relax %
}%
\gresetglyphstyle{default}%
@@ -44,40 +44,40 @@
\gre@disablemorafalse
\def\greprintsigns#1#2{%
- \IfStrEqCase{#2}{%
- {enable}%
- {%
- \IfStrEqCase{#1}{%
- {vepisema}%
- {\global\gre@disablevepisemafalse}%
- {hepisema}%
- {\global\gre@disablehepisemafalse}%
- {mora}%
- {\global\gre@disablemorafalse}%
- {all}%
- {\global\gre@disablemorafalse\global\gre@disablevepisemafalse\global\gre@disablehepisemafalse}%
- }[% all other cases
- \gre@error{Unrecognized first argument for \protect\greprintsigns}%
- ]%
- }%
- {disable}%
- {%
- \IfStrEqCase{#1}{%
- {vepisema}%
- {\global\gre@disablevepisematrue}%
- {hepisema}%
- {\global\gre@disablehepisematrue}%
- {mora}%
- {\global\gre@disablemoratrue}%
- {all}%
- {\global\gre@disablemoratrue\global\gre@disablevepisematrue\global\gre@disablehepisematrue}%
- }[% all other cases
- \gre@error{Unrecognized first argument for \protect\greprintsigns}%
- ]%
- }%
- }[% all other cases
- \gre@error{Unrecognized second argument for \protect\greprintsigns}%
- ]%
+ \IfStrEqCase{#2}{%
+ {enable}%
+ {%
+ \IfStrEqCase{#1}{%
+ {vepisema}%
+ {\global\gre@disablevepisemafalse}%
+ {hepisema}%
+ {\global\gre@disablehepisemafalse}%
+ {mora}%
+ {\global\gre@disablemorafalse}%
+ {all}%
+ {\global\gre@disablemorafalse\global\gre@disablevepisemafalse\global\gre@disablehepisemafalse}%
+ }[% all other cases
+ \gre@error{Unrecognized first argument for \protect\greprintsigns}%
+ ]%
+ }%
+ {disable}%
+ {%
+ \IfStrEqCase{#1}{%
+ {vepisema}%
+ {\global\gre@disablevepisematrue}%
+ {hepisema}%
+ {\global\gre@disablehepisematrue}%
+ {mora}%
+ {\global\gre@disablemoratrue}%
+ {all}%
+ {\global\gre@disablemoratrue\global\gre@disablevepisematrue\global\gre@disablehepisematrue}%
+ }[% all other cases
+ \gre@error{Unrecognized first argument for \protect\greprintsigns}%
+ ]%
+ }%
+ }[% all other cases
+ \gre@error{Unrecognized second argument for \protect\greprintsigns}%
+ ]%
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -103,24 +103,24 @@
% #1 is the type of discretionary, for penalty assignment. Recognized types:
% - 0: clef change
\def\GreDiscretionary#1#2#3{%
- \global\let\gre@hskip\kern %
- \global\let\gre@penalty\gre@falsepenalty %
- \global\xdef\gre@insidediscretionary{\number 1}%
- \discretionary{%
- \global\gre@lastoflinecount=1\relax % (a good magic trick)
- \gre@debugmsg{bolshift}{discretionary pre lastoflinecount: \the\gre@lastoflinecount}%
- #2%
- }{%
- \global\gre@lastoflinecount=2\relax % (a good magic trick)
- \gre@debugmsg{bolshift}{discretionary post lastoflinecount: \the\gre@lastoflinecount}%
- }{%
- \gre@debugmsg{bolshift}{discretionary no lastoflinecount: \the\gre@lastoflinecount}%
- #3%
- }%
- \global\xdef\gre@insidediscretionary{\number 0}%
- \global\let\gre@hskip\hskip %
- \global\let\gre@penalty\gre@truepenalty %
- \relax %
+ \global\let\gre@hskip\kern %
+ \global\let\gre@penalty\gre@falsepenalty %
+ \global\xdef\gre@insidediscretionary{\number 1}%
+ \discretionary{%
+ \global\gre@lastoflinecount=1\relax % (a good magic trick)
+ \gre@debugmsg{bolshift}{discretionary pre lastoflinecount: \the\gre@lastoflinecount}%
+ #2%
+ }{%
+ \global\gre@lastoflinecount=2\relax % (a good magic trick)
+ \gre@debugmsg{bolshift}{discretionary post lastoflinecount: \the\gre@lastoflinecount}%
+ }{%
+ \gre@debugmsg{bolshift}{discretionary no lastoflinecount: \the\gre@lastoflinecount}%
+ #3%
+ }%
+ \global\xdef\gre@insidediscretionary{\number 0}%
+ \global\let\gre@hskip\hskip %
+ \global\let\gre@penalty\gre@truepenalty %
+ \relax %
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -132,61 +132,53 @@
\gre@showcleftrue
\def\gresetclef#1{%
- \IfStrEqCase{#1}{%
- {visible}%
- {\gre@showcleftrue}%
- {invisible}%
- {\gre@showcleffalse}%
- }[% all other cases
- \gre@error{Unrecognized option "#1" for \protect\gresetclef\MessageBreak Possible options are: 'visible' and 'invisible'}%
- ]%
+ \IfStrEqCase{#1}{%
+ {visible}%
+ {\gre@showcleftrue}%
+ {invisible}%
+ {\gre@showcleffalse}%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" for \protect\gresetclef\MessageBreak Possible options are: 'visible' and 'invisible'}%
+ ]%
}%
-\def\greremoveclef{% OBSOLETE
- \gre@obsolete{\protect\greremoveclef}{\protect\gresetclef{invisible}}%
-}%
-
-\def\grenormalclef{% OBSOLETE
- \gre@obsolete{\protect\grenormalclef}{\protect\gresetclef{visible}}%
-}%
-
%% marcro to define the clef that will appear at the beginning of the lines
% the first argument is the type : f or c, and the second is the height
% the third argument is whether we must type a space after or not (0 if not, 1 if yes)
% if the fourth argument is 3, it means that we must not put a flat after the key, otherwise it's the height of the flat
\def\GreSetLinesClef#1#2#3#4#5#6#7{%
- \gre@localleftbox{%
- \gre@skip@temp@four = \gre@dimen@additionalleftspace\relax%
- \kern\gre@skip@temp@four %
- \copy\gre@box@lines% draws the lines
- \unkern %
- \ifgre@showclef%
- \gre@skip@temp@four = \gre@space@skip@afterclefnospace\relax%
- \hbox{\gre@typeclef{#1}{#2}{0}{#3}{#4}{#5}{#6}{#7}\hskip\gre@skip@temp@four}%
- \else %
- \gre@skip@temp@four = \gre@space@dimen@noclefspace\relax%
- \hbox{\kern\gre@skip@temp@four}%
- \fi %
- }%
- \xdef\gre@clefflatheight{#4}%
- \xdef\gre@cleftwoflatheight{#7}%
- \relax%
+ \gre@localleftbox{%
+ \gre@skip@temp@four = \gre@dimen@additionalleftspace\relax%
+ \kern\gre@skip@temp@four %
+ \copy\gre@box@lines% draws the lines
+ \unkern %
+ \ifgre@showclef%
+ \gre@skip@temp@four = \gre@space@skip@afterclefnospace\relax%
+ \hbox{\gre@typeclef{#1}{#2}{0}{#3}{#4}{#5}{#6}{#7}\hskip\gre@skip@temp@four}%
+ \else %
+ \gre@skip@temp@four = \gre@space@dimen@noclefspace\relax%
+ \hbox{\kern\gre@skip@temp@four}%
+ \fi %
+ }%
+ \xdef\gre@clefflatheight{#4}%
+ \xdef\gre@cleftwoflatheight{#7}%
+ \relax%
}%
\def\gre@save@clef#1#2#3#4#5#6{%
- \global\let\gre@clef=#1\relax%
- \xdef\gre@clefheight{#2}%
- \xdef\gre@clefflatheight{#3}%
- \global\let\gre@cleftwo=#4\relax%
- \xdef\gre@cleftwoheight{#5}%
- \xdef\gre@cleftwoflatheight{#6}%
+ \global\let\gre@clef=#1\relax%
+ \xdef\gre@clefheight{#2}%
+ \xdef\gre@clefflatheight{#3}%
+ \global\let\gre@cleftwo=#4\relax%
+ \xdef\gre@cleftwoheight{#5}%
+ \xdef\gre@cleftwoflatheight{#6}%
}%
%% macro redrawing a key from clefnum, useful for vertical space changes
\def\gre@updatelinesclef{%
- \GreSetLinesClef{\gre@clef}{\gre@clefheight}{1}{\gre@clefflatheight}%
- {\gre@cleftwo}{\gre@cleftwoheight}{\gre@cleftwoflatheight}\relax %
+ \GreSetLinesClef{\gre@clef}{\gre@clefheight}{1}{\gre@clefflatheight}%
+ {\gre@cleftwo}{\gre@cleftwoheight}{\gre@cleftwoflatheight}\relax %
}%
\newbox\gre@box@temp@clef%
@@ -202,35 +194,35 @@
%% #7: the line of the secondary clef (1 is the lowest)
%% #8: if 3, it means that we must not put a flat after the secondary clef, otherwise it's the height of the flat
\def\gre@typeclef#1#2#3#4#5#6#7#8{%
- \setbox\gre@box@temp@width=\hbox{%
- \ifcase#7%
- \gre@typesingleclef{#1}{#2}{#3}{#5}%
- \else %
- \ifnum\numexpr (#7 - #2) * (#7 - #2) > 1 \relax %
- \setbox\gre@box@temp@clef=\hbox{\gre@typesingleclef{#1}{#2}{#3}{#5}}%
- \setbox\gre@box@temp@cleftwo=\hbox{\gre@typesingleclef{#6}{#7}{#3}{#8}}%
- \ifdim\wd\gre@box@temp@clef>\wd\gre@box@temp@cleftwo%
- \hbox to 0pt{\copy\gre@box@temp@cleftwo}\copy\gre@box@temp@clef%
- \else %
- \hbox to 0pt{\copy\gre@box@temp@clef}\copy\gre@box@temp@cleftwo%
- \fi %
- \else %
- \gre@typesingleclef{#1}{#2}{#3}{#5}%
- \gre@skip@temp@two=\gre@space@skip@clefflatspace\relax%
- \gre@hskip\gre@skip@temp@two %
- \gre@typesingleclef{#6}{#7}{#3}{#8}%
- \fi %
- \fi %
- }%
- \ifcase#3%
- \global\gre@dimen@clefwidth=\wd\gre@box@temp@width %
- \fi %
- \copy\gre@box@temp@width %
- \gre@skip@temp@two=\gre@space@skip@spaceafterlineclef\relax%
- \ifnum#4=0\relax %
- \gre@skip@temp@two=\gre@space@skip@afterclefnospace\relax%
- \fi %
- \gre@hskip\gre@skip@temp@two %
+ \setbox\gre@box@temp@width=\hbox{%
+ \ifcase#7%
+ \gre@typesingleclef{#1}{#2}{#3}{#5}%
+ \else %
+ \ifnum\numexpr (#7 - #2) * (#7 - #2) > 1 \relax %
+ \setbox\gre@box@temp@clef=\hbox{\gre@typesingleclef{#1}{#2}{#3}{#5}}%
+ \setbox\gre@box@temp@cleftwo=\hbox{\gre@typesingleclef{#6}{#7}{#3}{#8}}%
+ \ifdim\wd\gre@box@temp@clef>\wd\gre@box@temp@cleftwo%
+ \hbox to 0pt{\copy\gre@box@temp@cleftwo}\copy\gre@box@temp@clef%
+ \else %
+ \hbox to 0pt{\copy\gre@box@temp@clef}\copy\gre@box@temp@cleftwo%
+ \fi %
+ \else %
+ \gre@typesingleclef{#1}{#2}{#3}{#5}%
+ \gre@skip@temp@two=\gre@space@skip@clefflatspace\relax%
+ \gre@hskip\gre@skip@temp@two %
+ \gre@typesingleclef{#6}{#7}{#3}{#8}%
+ \fi %
+ \fi %
+ }%
+ \ifcase#3%
+ \global\gre@dimen@clefwidth=\wd\gre@box@temp@width %
+ \fi %
+ \copy\gre@box@temp@width %
+ \gre@skip@temp@two=\gre@space@skip@spaceafterlineclef\relax%
+ \ifnum#4=0\relax %
+ \gre@skip@temp@two=\gre@space@skip@afterclefnospace\relax%
+ \fi %
+ \gre@hskip\gre@skip@temp@two %
}%
% macro that typesets one clef
@@ -240,58 +232,58 @@
%% #3: if we must use small key characters (inside a line) or not 0: if not inside, 1 if inside
%% #4: if 3, it means that we must not put a flat after the key, otherwise it's the height of the flat
\def\gre@typesingleclef#1#2#3#4{%
- \ifcase#2 %
- \or%
- \gre@calculate@glyphraisevalue{\gre@pitch@c}{0}{}%
- \or%
- \gre@calculate@glyphraisevalue{\gre@pitch@e}{0}{}%
- \or%
- \gre@calculate@glyphraisevalue{\gre@pitch@g}{0}{}%
- \or%
- \gre@calculate@glyphraisevalue{\gre@pitch@i}{0}{}%
- \or%
- \gre@calculate@glyphraisevalue{\gre@pitch@k}{0}{}%
- \fi%
- \ifx c#1% we check if it is a c key
- \ifcase#3%
- \raise\gre@dimen@glyphraisevalue\hbox{\gre@fontchar@cclef}{}{}%
- \or%
- \raise\gre@dimen@glyphraisevalue\hbox{\gre@fontchar@incclef}{}{}%
- \fi%
- \else % we consider that it is a f key
- \ifcase#3%
- \raise\gre@dimen@glyphraisevalue\hbox{\gre@fontchar@fclef}{}{}%
- \or%
- \raise\gre@dimen@glyphraisevalue\hbox{\gre@fontchar@infclef}{}{}%
- \fi%
- \fi%
- \ifnum#4=3%
- \else %
- \gre@skip@temp@four = \gre@space@skip@clefflatspace\relax%
- \gre@hskip\gre@skip@temp@four %
- \GreFlat{#4}{1}{}{}{}%
- \fi %
- \relax %
+ \ifcase#2 %
+ \or%
+ \gre@calculate@glyphraisevalue{\gre@pitch@c}{0}{}%
+ \or%
+ \gre@calculate@glyphraisevalue{\gre@pitch@e}{0}{}%
+ \or%
+ \gre@calculate@glyphraisevalue{\gre@pitch@g}{0}{}%
+ \or%
+ \gre@calculate@glyphraisevalue{\gre@pitch@i}{0}{}%
+ \or%
+ \gre@calculate@glyphraisevalue{\gre@pitch@k}{0}{}%
+ \fi%
+ \ifx c#1% we check if it is a c key
+ \ifcase#3%
+ \raise\gre@dimen@glyphraisevalue\hbox{\gre@fontchar@cclef}{}{}%
+ \or%
+ \raise\gre@dimen@glyphraisevalue\hbox{\gre@fontchar@incclef}{}{}%
+ \fi%
+ \else % we consider that it is a f key
+ \ifcase#3%
+ \raise\gre@dimen@glyphraisevalue\hbox{\gre@fontchar@fclef}{}{}%
+ \or%
+ \raise\gre@dimen@glyphraisevalue\hbox{\gre@fontchar@infclef}{}{}%
+ \fi%
+ \fi%
+ \ifnum#4=3%
+ \else %
+ \gre@skip@temp@four = \gre@space@skip@clefflatspace\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \GreFlat{#4}{1}{}{}{}%
+ \fi %
+ \relax %
}%
% macro that writes the initial key, and sets the next keys to the same value
% if #3 is 3, it means that we must not put a flat after the key, otherwise it's the height
% of the flat
\def\GreSetInitialClef#1#2#3#4#5#6{%
- \gre@save@clef{#1}{#2}{#3}{#4}{#5}{#6}%
- \ifgre@showclef%
- \gre@typeclef{#1}{#2}{0}{1}{#3}{#4}{#5}{#6}%
- \else%
- \gre@skip@temp@four = \gre@space@dimen@noclefspace\relax%
- \hbox{\kern\gre@skip@temp@four}%
- \fi %
- \GreSetLinesClef{#1}{#2}{1}{#3}{#4}{#5}{#6}%
- % if the initial is big, then we adjust the second line
- \ifnum\gre@biginitial=0\relax %
- \else %
- \gre@adjustsecondline %
- \fi %
- \relax%
+ \gre@save@clef{#1}{#2}{#3}{#4}{#5}{#6}%
+ \ifgre@showclef%
+ \gre@typeclef{#1}{#2}{0}{1}{#3}{#4}{#5}{#6}%
+ \else%
+ \gre@skip@temp@four = \gre@space@dimen@noclefspace\relax%
+ \hbox{\kern\gre@skip@temp@four}%
+ \fi %
+ \GreSetLinesClef{#1}{#2}{1}{#3}{#4}{#5}{#6}%
+ % if the initial is big, then we adjust the second line
+ \ifnum\gre@biginitial=0\relax %
+ \else %
+ \gre@adjustsecondline %
+ \fi %
+ \relax%
}%
% macro called when the key changes
@@ -300,272 +292,314 @@
% if #4 is 3, it means that we must not put a flat after the key, otherwise it's the height
% of the flat
\def\GreChangeClef#1#2#3#4#5#6#7{%
- % it makes no sense to change the clef when there is no clef...
- \gresetclef{visible}%
- \gre@save@clef{#1}{#2}{#4}{#5}{#6}{#7}%
- \ifnum\gre@insidediscretionary=0\relax %
- \GreSetLinesClef{#1}{#2}{1}{#4}{#5}{#6}{#7}%
- \fi %
- \ifnum#3=1\relax %
- \gre@skip@temp@four = \gre@space@skip@clefchangespace\relax%
- \gre@hskip\gre@skip@temp@four %
- \else %
- % here it means that there is a bar before the clef, so we skip the difference between the normal space and the space around bars with clef changes
- \gre@skip@temp@four = -\gre@space@skip@spacearoundclefbars\relax%
- \gre@hskip\gre@skip@temp@four %
- \fi %
- \gre@typeclef{#1}{#2}{1}{0}{#4}{#5}{#6}{#7}%
- \gre@skip@temp@four = \gre@space@skip@clefchangespace\relax%
- \gre@hskip\gre@skip@temp@four %
- \relax%
+ % it makes no sense to change the clef when there is no clef...
+ \gresetclef{visible}%
+ \gre@save@clef{#1}{#2}{#4}{#5}{#6}{#7}%
+ \ifnum\gre@insidediscretionary=0\relax %
+ \GreSetLinesClef{#1}{#2}{1}{#4}{#5}{#6}{#7}%
+ \fi %
+ \ifnum#3=1\relax %
+ \gre@skip@temp@four = \gre@space@skip@clefchangespace\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \else %
+ \ifdim\gre@skip@bar@lastskip=0pt\else % we're after a bar:
+ % here it means that there is a bar before the clef, so we skip the difference between the normal space and the space around bars with clef changes
+ \gre@skip@temp@four = -\gre@space@skip@spacearoundclefbars\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \fi %
+ \fi %
+ \GreNoBreak %
+ \gre@typeclef{#1}{#2}{1}{0}{#4}{#5}{#6}{#7}%
+ \ifnum\gre@insidediscretionary=0\relax %
+ \gre@skip@temp@four = \gre@space@skip@clefchangespace\relax%
+ \else %
+ \gre@skip@temp@four = \gre@space@skip@interwordspacenotes\relax%
+ \fi %
+ \gre@hskip\gre@skip@temp@four %
+ \GreNoBreak %
+ \relax%
}%
% custos just typesets a custos, useful for before the key changes for example
% #1 is the height
-% #2 is indicating if the custo ends the line
-\def\GreCustos#1{%
- \ifdim\gre@skip@bar@lastskip=0pt\else % we're after a bar:
- \kern-\gre@skip@bar@lastskip %
- \fi %
- \gre@skip@temp@four = \gre@space@skip@spacebeforeinlinecustos\relax%
- \kern\gre@skip@temp@four%
- \gre@calculate@glyphraisevalue{#1}{0}{}%
- %here we need some tricks to draw the line before the custos (for the color)
- \setbox\gre@box@temp@width=\hbox{\gre@pickcustos{#1}}%
- \gre@dimen@temp@three=\wd\gre@box@temp@width %
- \ifgre@showlines %
- \ifnum#1<\gre@pitch@belowstaff\relax %
- \gre@additionalbottomcustoslinemiddle %
- \else\ifnum#1>\gre@pitch@abovestaff\relax %
- \gre@additionaltopcustoslinemiddle %
- \fi\fi %
- \fi %
- \raise \gre@dimen@glyphraisevalue\relax%
- \copy\gre@box@temp@width %
- \ifdim\gre@skip@bar@lastskip=0pt\relax %
- % for now we consider we always have a bar after the custos
- % we don't want to end the line here
- \GreNoBreak %
- \gre@skip@temp@four = -\gre@space@skip@spacearoundclefbars\relax%
- \gre@hskip\gre@skip@temp@four %
- \GreNoBreak %
- \else %
- \GreNoBreak %
- \kern\gre@skip@bar@lastskip %
- \GreNoBreak %
- \fi %
- \relax %
+\def\GreCustos#1#2{%
+ \GreNoBreak %
+ \ifdim\gre@skip@bar@lastskip=0pt\else % we're after a bar:
+ \kern-\gre@skip@bar@lastskip %
+ \GreNoBreak %
+ \fi %
+ \ifgre@firstglyph% we check if it is the first glyph
+ \global\gre@firstglyphfalse%
+ \ifnum\gre@insidediscretionary=0\else %
+ \gre@skip@temp@four=\gre@space@skip@interwordspacenotes %
+ \kern\gre@skip@temp@four%
+ \GreNoBreak %
+ \fi %
+ \else%
+ \ifgre@endofscore %
+ \gre@skip@temp@four=\gre@space@skip@spacebeforeeolcustos %
+ \else %
+ \gre@skip@temp@four=\gre@space@skip@spacebeforeinlinecustos %
+ \fi %
+ \kern\gre@skip@temp@four%
+ \GreNoBreak %
+ \fi %
+ \gre@custosalteration{#1}{#2}%
+ \GreNoBreak%
+ \gre@calculate@glyphraisevalue{#1}{0}{}%
+ %here we need some tricks to draw the line before the custos (for the color)
+ \setbox\gre@box@temp@width=\hbox{\gre@pickcustos{#1}{1}}%
+ \gre@dimen@temp@three=\wd\gre@box@temp@width %
+ \ifgre@showlines %
+ \ifnum#1<\gre@pitch@belowstaff\relax %
+ \gre@additionalbottomcustoslinemiddle %
+ \else\ifnum#1>\gre@pitch@abovestaff\relax %
+ \gre@additionaltopcustoslinemiddle %
+ \fi\fi %
+ \fi %
+ \raise \gre@dimen@glyphraisevalue\relax%
+ \copy\gre@box@temp@width %
+ \ifdim\gre@skip@bar@lastskip=0pt\relax %
+ % for now we consider we always have a bar after the custos
+ % we don't want to end the line here
+ \GreNoBreak %
+ \gre@skip@temp@four = -\gre@space@skip@spacearoundclefbars\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \GreNoBreak %
+ \else %
+ \GreNoBreak %
+ \kern\gre@skip@bar@lastskip %
+ \GreNoBreak %
+ \fi %
+ \directlua{gregoriotex.adjust_line_height(\gre@insidediscretionary)}%
+ \relax %
}%
% typesets a custos for the end of the score
-\def\GreFinalCustos#1{%
- \GreNoBreak%
- \gre@dimen@temp@four = \glueexpr(\gre@space@skip@spacebeforeeolcustos)\relax%
- \kern\gre@dimen@temp@four %
- \GreNoBreak%
- \GreCustos{#1}%
- \gre@endofglyphcommon %
+\def\GreFinalCustos#1#2{%
+ \GreNoBreak%
+ \GreCustos{#1}{#2}%
+ \gre@endofglyphcommon %
}
% the argument is the height
-\edef\gre@nextcustos{\gre@pitch@dummy}%
-\def\GreNextCustos#1{%
- \gre@debugmsg{custos}{nextcustos = #1}%
- \ifnum\gre@insidediscretionary=0\relax %
- \gre@debugmsg{custos}{not discretionary}%
- \edef\gre@nextcustos{#1}%
- \ifgre@blockeolcustos\else%
- \gre@debugmsg{custos}{not blocked}%
- \gre@calculate@glyphraisevalue{#1}{0}{}%
- %here we need some tricks to draw the line before the custos (for the color)
- \setbox\gre@box@temp@width=\hbox{%
- % we type a hskip and the we type the custos
- \gre@hskip\gre@space@skip@spacebeforeeolcustos\relax %
- \gre@pickcustos{#1}\relax %
- }%
- \gre@dimen@temp@three=\wd\gre@box@temp@width %
- % we make \wd\gre@box@temp@sign contain the width of a custos
- \setbox\gre@box@temp@sign=\hbox{%
- \gre@pickcustos{#1}\relax %
- }%
- \gre@localrightbox{%
- \ifgre@showlines %
- \ifnum#1<\gre@pitch@belowstaff\relax %
- \gre@additionalbottomcustoslineend %
- \else\ifnum#1>\gre@pitch@abovestaff\relax %
- \gre@additionaltopcustoslineend %
- \fi\fi %
- \fi %
- \raise \gre@dimen@glyphraisevalue\relax%
- \copy\gre@box@temp@width %
- }%
- \fi %
- \fi %
- \relax%
+\edef\gre@nextcustospitch{\gre@pitch@dummy}%
+\edef\gre@nextcustosalteration{}%
+\def\GreNextCustos#1#2{%
+ \gre@debugmsg{custos}{nextcustos = #1,#2}%
+ \ifnum\gre@insidediscretionary=0\relax %
+ \gre@debugmsg{custos}{not discretionary}%
+ \edef\gre@nextcustospitch{#1}%
+ \edef\gre@nextcustosalteration{#2}%
+ \ifgre@blockeolcustos\else%
+ \gre@debugmsg{custos}{not blocked}%
+ \gre@calculate@glyphraisevalue{#1}{0}{}%
+ %here we need some tricks to draw the line before the custos (for the color)
+ \setbox\gre@box@temp@width=\hbox{%
+ % we type a hskip and the we type the custos
+ \gre@hskip\gre@space@skip@spacebeforeeolcustos\relax %
+ \gre@custosalteration{#1}{#2}%
+ \GreNoBreak%
+ \raise \gre@dimen@glyphraisevalue\relax%
+ \hbox{%
+ \gre@pickcustos{#1}{2}\relax %
+ }%
+ }%
+ \gre@dimen@temp@three=\wd\gre@box@temp@width %
+ % we make \wd\gre@box@temp@sign contain the width of a custos
+ \setbox\gre@box@temp@sign=\hbox{%
+ \gre@custosalteration{#1}{#2}%
+ \GreNoBreak%
+ \gre@pickcustos{#1}{0}\relax %
+ }%
+ \gre@localrightbox{%
+ \ifgre@showlines %
+ \ifnum#1<\gre@pitch@belowstaff\relax %
+ \gre@additionalbottomcustoslineend %
+ \else\ifnum#1>\gre@pitch@abovestaff\relax %
+ \gre@additionaltopcustoslineend %
+ \fi\fi %
+ \fi %
+ \copy\gre@box@temp@width %
+ }%
+ \fi %
+ \fi %
+ \relax%
}%
% macro that typesets an additional line at the top for custos at end of line
\def\gre@additionaltopcustoslineend{%
- \gre@dimen@temp@five=\dimexpr(\gre@dimen@staffheight %
- + \gre@space@dimen@spacebeneathtext %
- + \gre@space@dimen@spacelinestext %
- + \gre@dimen@interstafflinespace %
- + \gre@dimen@additionalbottomspace %
- + \gre@dimen@currenttranslationheight)\relax %
- \raise\gre@dimen@temp@five %
- \hbox to 0pt{%
- \gre@style@additionalstafflines %
- \ifx\gre@empty@additionalstafflinesformat\greadditionalstafflinesformat% OBSOLETE
- \else % OBSOLETE
- \gre@obsolete{\protect\greadditionalstafflinesformat}{\protect\grechangestyle{additionalstafflinesformat}}% OBSOLETE
- \fi% OBSOLETE
- \kern\gre@dimen@temp@three %
- \gre@dimen@temp@five=\dimexpr(\wd\gre@box@temp@sign + \gre@space@dimen@additionalcustoslineswidth)\relax%
- \kern-\gre@dimen@temp@five %
- \vrule width \gre@dimen@temp@five height \gre@dimen@stafflineheight\relax%
- \hss %
- \endgre@style@additionalstafflines%
- }%
- \relax %
+ \gre@dimen@temp@five=\dimexpr(\gre@dimen@staffheight %
+ + \gre@space@dimen@spacebeneathtext %
+ + \gre@space@dimen@spacelinestext %
+ + \gre@dimen@interstafflinespace %
+ + \gre@dimen@additionalbottomspace %
+ + \gre@dimen@currenttranslationheight)\relax %
+ \raise\gre@dimen@temp@five %
+ \hbox to 0pt{%
+ \gre@style@additionalstafflines %
+ \kern\gre@dimen@temp@three %
+ \gre@dimen@temp@five=\dimexpr(\wd\gre@box@temp@sign + \gre@space@dimen@additionalcustoslineswidth)\relax%
+ \kern-\gre@dimen@temp@five %
+ \vrule width \gre@dimen@temp@five height \gre@dimen@stafflineheight\relax%
+ \hss %
+ \endgre@style@additionalstafflines%
+ }%
+ \relax %
}%
\def\gre@additionalbottomcustoslineend{%
- \gre@dimen@temp@five=\dimexpr(\gre@space@dimen@spacebeneathtext %
- + \gre@space@dimen@spacelinestext %
- + \gre@dimen@additionalbottomspace %
- + \gre@dimen@currenttranslationheight %
- - \gre@dimen@interstafflinespace %
- - \gre@dimen@stafflineheight)\relax %
- \raise\gre@dimen@temp@five %
- \hbox to 0pt{%
- \gre@style@additionalstafflines %
- \ifx\gre@empty@additionalstafflinesformat\greadditionalstafflinesformat% OBSOLETE
- \else % OBSOLETE
- \gre@obsolete{\protect\greadditionalstafflinesformat}{\protect\grechangestyle{additionalstafflinesformat}}% OBSOLETE
- \fi% OBSOLETE
- \kern\gre@dimen@temp@three %
- \gre@dimen@temp@five=\dimexpr(\wd\gre@box@temp@sign+\gre@space@dimen@additionalcustoslineswidth)\relax%
- \kern-\gre@dimen@temp@five %
- \vrule width \gre@dimen@temp@five height \gre@dimen@stafflineheight\relax%
- \hss %
- \endgre@style@additionalstafflines%
- }%
- \relax %
+ \gre@dimen@temp@five=\dimexpr(\gre@space@dimen@spacebeneathtext %
+ + \gre@space@dimen@spacelinestext %
+ + \gre@dimen@additionalbottomspace %
+ + \gre@dimen@currenttranslationheight %
+ - \gre@dimen@interstafflinespace %
+ - \gre@dimen@stafflineheight)\relax %
+ \raise\gre@dimen@temp@five %
+ \hbox to 0pt{%
+ \gre@style@additionalstafflines %
+ \kern\gre@dimen@temp@three %
+ \gre@dimen@temp@five=\dimexpr(\wd\gre@box@temp@sign+\gre@space@dimen@additionalcustoslineswidth)\relax%
+ \kern-\gre@dimen@temp@five %
+ \vrule width \gre@dimen@temp@five height \gre@dimen@stafflineheight\relax%
+ \hss %
+ \endgre@style@additionalstafflines%
+ }%
+ \relax %
}%
% same macros, but for a custos in the middle
\def\gre@additionaltopcustoslinemiddle{%
- \gre@dimen@temp@five=\dimexpr(\gre@dimen@staffheight %
- + \gre@space@dimen@spacebeneathtext %
- + \gre@space@dimen@spacelinestext %
- + \gre@dimen@interstafflinespace %
- + \gre@dimen@additionalbottomspace %
- + \gre@dimen@currenttranslationheight)\relax%
- \raise\gre@dimen@temp@five %
- \hbox to 0pt{%
- \gre@style@additionalstafflines %
- \ifx\gre@empty@additionalstafflinesformat\greadditionalstafflinesformat% OBSOLETE
- \else % OBSOLETE
- \gre@obsolete{\protect\greadditionalstafflinesformat}{\protect\grechangestyle{additionalstafflinesformat}}% OBSOLETE
- \fi% OBSOLETE
- \hss %
- \kern\gre@dimen@temp@three %
- \gre@dimen@temp@five=\dimexpr((\gre@space@dimen@additionalcustoslineswidth*2)+\wd\gre@box@temp@sign)\relax %
- \vrule width \gre@dimen@temp@five height \gre@dimen@stafflineheight\relax%
- \hss %
- \endgre@style@additionalstafflines%
- }%
- \relax %
+ \gre@dimen@temp@five=\dimexpr(\gre@dimen@staffheight %
+ + \gre@space@dimen@spacebeneathtext %
+ + \gre@space@dimen@spacelinestext %
+ + \gre@dimen@interstafflinespace %
+ + \gre@dimen@additionalbottomspace %
+ + \gre@dimen@currenttranslationheight)\relax%
+ \raise\gre@dimen@temp@five %
+ \hbox to 0pt{%
+ \gre@style@additionalstafflines %
+ \hss %
+ \kern\gre@dimen@temp@three %
+ \gre@dimen@temp@five=\dimexpr((\gre@space@dimen@additionalcustoslineswidth*2)+\wd\gre@box@temp@sign)\relax %
+ \vrule width \gre@dimen@temp@five height \gre@dimen@stafflineheight\relax%
+ \hss %
+ \endgre@style@additionalstafflines%
+ }%
+ \relax %
}%
\def\gre@additionalbottomcustoslinemiddle{%
- \gre@dimen@temp@five=\dimexpr(\gre@space@dimen@spacebeneathtext %
- + \gre@space@dimen@spacelinestext %
- + \gre@dimen@additionalbottomspace %
- + \gre@dimen@currenttranslationheight %
- - \gre@dimen@interstafflinespace %
- - \gre@dimen@stafflineheight)\relax%
- \raise\gre@dimen@temp@five %
- \hbox to 0pt{%
- \gre@style@additionalstafflines %
- \ifx\gre@empty@additionalstafflinesformat\greadditionalstafflinesformat% OBSOLETE
- \else % OBSOLETE
- \gre@obsolete{\protect\greadditionalstafflinesformat}{\protect\grechangestyle{additionalstafflinesformat}}% OBSOLETE
- \fi% OBSOLETE
- \hss %
- \kern\gre@dimen@temp@three %
- \gre@dimen@temp@five=\dimexpr((\gre@space@dimen@additionalcustoslineswidth*2)+\wd\gre@box@temp@sign)\relax %
- \vrule width \gre@dimen@temp@five height \gre@dimen@stafflineheight\relax%
- \hss %
- \endgre@style@additionalstafflines%
- }%
- \relax %
-}%
-
-\def\gre@pickcustos#1{%
- \ifcase#1%
- \or\or%
- \or\gre@fontchar@custostopmiddle %
- \or\gre@fontchar@custostoplong %
- \or\gre@fontchar@custostopshort %
- \or\gre@fontchar@custostoplong %
- \or\gre@fontchar@custostopshort %
- \or %
- \ifgre@haslinethree %
- \gre@fontchar@custostoplong %
- \else %
- \gre@fontchar@custosbottomlong %
- \fi %
- \or %
- \ifgre@haslinethree %
- \gre@fontchar@custostopshort %
- \else %
- \gre@fontchar@custosbottomshort %
- \fi %
- \or %
- \ifgre@haslinefour %
- \gre@fontchar@custostoplong %
- \else %
- \gre@fontchar@custosbottomlong %
- \fi %
- \or %
- \ifgre@haslinefour %
- \gre@fontchar@custostopshort %
- \else %
- \ifgre@haslinethree %
- \gre@fontchar@custosbottomshort %
- \else %
- \gre@fontchar@custosbottommiddle %
- \fi %
- \fi %
- \or %
- \ifgre@haslinefive %
- \gre@fontchar@custostoplong %
- \else %
- \gre@fontchar@custosbottomlong %
- \fi %
- \or %
- \ifgre@haslinefive %
- \gre@fontchar@custostopshort %
- \else %
- \ifgre@haslinefour %
- \gre@fontchar@custosbottomshort %
- \else %
- \gre@fontchar@custosbottommiddle %
- \fi %
- \fi %
- \or\gre@fontchar@custosbottomlong %
- \or %
- \ifgre@haslinefive %
- \gre@fontchar@custosbottomshort %
- \else %
- \gre@fontchar@custosbottommiddle %
- \fi %
- \or\gre@fontchar@custosbottomlong %
- \or\gre@fontchar@custosbottommiddle %
- \fi%
+ \gre@dimen@temp@five=\dimexpr(\gre@space@dimen@spacebeneathtext %
+ + \gre@space@dimen@spacelinestext %
+ + \gre@dimen@additionalbottomspace %
+ + \gre@dimen@currenttranslationheight %
+ - \gre@dimen@interstafflinespace %
+ - \gre@dimen@stafflineheight)\relax%
+ \raise\gre@dimen@temp@five %
+ \hbox to 0pt{%
+ \gre@style@additionalstafflines %
+ \hss %
+ \kern\gre@dimen@temp@three %
+ \gre@dimen@temp@five=\dimexpr((\gre@space@dimen@additionalcustoslineswidth*2)+\wd\gre@box@temp@sign)\relax %
+ \vrule width \gre@dimen@temp@five height \gre@dimen@stafflineheight\relax%
+ \hss %
+ \endgre@style@additionalstafflines%
+ }%
+ \relax %
+}%
+
+\newif\ifgre@usecustosalteration%
+\gre@usecustosalterationtrue%
+\def\gresetcustosalteration#1{%
+ \IfStrEqCase{#1}{%
+ {visible}{\gre@usecustosalterationtrue}%
+ {invisible}{\gre@usecustosalterationfalse}%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" for \protect\gresetcustosalteration\MessageBreak Possible options are: 'visible' and 'invisible'}%
+ ]%
+}%
+\def\gre@custosalteration#1#2{%
+ \ifgre@usecustosalteration %
+ \IfStrEq{#2}{}{}{\csname Gre#2\endcsname{#1}{0}{}{}{}}%
+ \fi %
+}%
+
+% #2 is 0 for measurement only, 1 in the normal case, 2 for the right box
+\def\gre@pickcustos#1#2{%
+ % set attributes to adjust the line height for the pitch of the custos
+ \ifcase#2% 0
+ \or % 1
+ \global\advance\gre@attr@glyph@id by 1\relax %
+ \GreGlyphHeights{#1}{#1}%
+ \or % 2
+ \ifgre@eolshiftsenabled %
+ \GreGlyphHeights{#1}{#1}%
+ \fi %
+ \fi %
+ \ifcase#1%
+ \or\or%
+ \or\gre@fontchar@custostopmiddle %
+ \or\gre@fontchar@custostoplong %
+ \or\gre@fontchar@custostopshort %
+ \or\gre@fontchar@custostoplong %
+ \or\gre@fontchar@custostopshort %
+ \or %
+ \ifgre@haslinethree %
+ \gre@fontchar@custostoplong %
+ \else %
+ \gre@fontchar@custosbottomlong %
+ \fi %
+ \or %
+ \ifgre@haslinethree %
+ \gre@fontchar@custostopshort %
+ \else %
+ \gre@fontchar@custosbottomshort %
+ \fi %
+ \or %
+ \ifgre@haslinefour %
+ \gre@fontchar@custostoplong %
+ \else %
+ \gre@fontchar@custosbottomlong %
+ \fi %
+ \or %
+ \ifgre@haslinefour %
+ \gre@fontchar@custostopshort %
+ \else %
+ \ifgre@haslinethree %
+ \gre@fontchar@custosbottomshort %
+ \else %
+ \gre@fontchar@custosbottommiddle %
+ \fi %
+ \fi %
+ \or %
+ \ifgre@haslinefive %
+ \gre@fontchar@custostoplong %
+ \else %
+ \gre@fontchar@custosbottomlong %
+ \fi %
+ \or %
+ \ifgre@haslinefive %
+ \gre@fontchar@custostopshort %
+ \else %
+ \ifgre@haslinefour %
+ \gre@fontchar@custosbottomshort %
+ \else %
+ \gre@fontchar@custosbottommiddle %
+ \fi %
+ \fi %
+ \or\gre@fontchar@custosbottomlong %
+ \or %
+ \ifgre@haslinefive %
+ \gre@fontchar@custosbottomshort %
+ \else %
+ \gre@fontchar@custosbottommiddle %
+ \fi %
+ \or\gre@fontchar@custosbottomlong %
+ \or\gre@fontchar@custosbottommiddle %
+ \fi%
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -577,27 +611,27 @@
\newif\ifgre@metapost@curlybrace\gre@metapost@curlybracetrue %
\newif\ifgre@metapost@barbrace\gre@metapost@barbracetrue %
\def\gresetbracerendering{%
- \@ifnextchar[{\gre@setbracerendering}{\gre@setallbracerendering}%
+ \@ifnextchar[{\gre@setbracerendering}{\gre@setallbracerendering}%
}%
\def\gre@setallbracerendering#1{%
- \gre@@setbracerendering{brace}{#1}%
- \gre@@setbracerendering{underbrace}{#1}%
- \gre@@setbracerendering{curlybrace}{#1}%
- \gre@@setbracerendering{barbrace}{#1}%
+ \gre@@setbracerendering{brace}{#1}%
+ \gre@@setbracerendering{underbrace}{#1}%
+ \gre@@setbracerendering{curlybrace}{#1}%
+ \gre@@setbracerendering{barbrace}{#1}%
}%
\def\gre@setbracerendering[#1]#2{%
- \IfStrEqCase{#1}{%
- {brace}{\gre@@setbracerendering{#1}{#2}}%
- {underbrace}{\gre@@setbracerendering{#1}{#2}}%
- {curlybrace}{\gre@@setbracerendering{#1}{#2}}%
- {barbrace}{\gre@@setbracerendering{#1}{#2}}%
- }[\gre@error{Unrecognized option "#1" for \protect\gresetbracerendering\MessageBreak Possible options are: 'brace', 'underbrace', 'curlybrace', and 'barbrace'}]%
+ \IfStrEqCase{#1}{%
+ {brace}{\gre@@setbracerendering{#1}{#2}}%
+ {underbrace}{\gre@@setbracerendering{#1}{#2}}%
+ {curlybrace}{\gre@@setbracerendering{#1}{#2}}%
+ {barbrace}{\gre@@setbracerendering{#1}{#2}}%
+ }[\gre@error{Unrecognized option "#1" for \protect\gresetbracerendering\MessageBreak Possible options are: 'brace', 'underbrace', 'curlybrace', and 'barbrace'}]%
}%
\def\gre@@setbracerendering#1#2{%
- \IfStrEqCase{#2}{%
- {font}{\csname gre@metapost@#1false\endcsname}%
- {metapost}{\csname gre@metapost@#1true\endcsname}%
- }[\gre@error{Unrecognized option "#2" for \protect\gresetbracerendering\MessageBreak Possible options are: 'font' and 'metapost'}]%
+ \IfStrEqCase{#2}{%
+ {font}{\csname gre@metapost@#1false\endcsname}%
+ {metapost}{\csname gre@metapost@#1true\endcsname}%
+ }[\gre@error{Unrecognized option "#2" for \protect\gresetbracerendering\MessageBreak Possible options are: 'font' and 'metapost'}]%
}%
\gdef\gre@fontchar@curlybrace{\gre@font@music\GreCPCurlyBrace}%
@@ -613,9 +647,9 @@
% #4: 1 if we shift to the beginning of the last glyph, 0 otherwise
% #5: 1 if we put an accentus above or not
\def\GreOverCurlyBrace#1#2#3#4#5{%
- \ifgre@boxing\else %
- \gre@brace@common{#1}{#2}{#3}{#4}{#5}{\gre@pitch@overbraceglyph}{\gre@fontchar@curlybrace}%
- \fi %
+ \ifgre@boxing\else %
+ \gre@brace@common{#1}{#2}{#3}{#4}{#5}{\gre@pitch@overbraceglyph}{\gre@fontchar@curlybrace}%
+ \fi %
}%
% #1: the width
@@ -623,9 +657,9 @@
% #3: a horizontal shift
% #4: 1 if we shift to the beginning of the last glyph, 0 otherwise
\def\GreOverBrace#1#2#3#4{%
- \ifgre@boxing\else %
- \gre@brace@common{#1}{#2}{#3}{#4}{0}{\gre@pitch@overbraceglyph}{\gre@fontchar@brace}%
- \fi %
+ \ifgre@boxing\else %
+ \gre@brace@common{#1}{#2}{#3}{#4}{0}{\gre@pitch@overbraceglyph}{\gre@fontchar@brace}%
+ \fi %
}%
% #1: the width
@@ -633,9 +667,9 @@
% #3: a horizontal shift
% #4: 1 if we shift to the beginning of the last glyph, 0 otherwise
\def\GreUnderBrace#1#2#3#4{%
- \ifgre@boxing\else %
- \gre@brace@common{#1}{#2}{#3}{#4}{0}{\gre@pitch@underbrace}{\gre@fontchar@underbrace}%
- \fi %
+ \ifgre@boxing\else %
+ \gre@brace@common{#1}{#2}{#3}{#4}{0}{\gre@pitch@underbrace}{\gre@fontchar@underbrace}%
+ \fi %
}%
% #1: the width
@@ -646,222 +680,222 @@
% #6: the pitch at which to compute the height
% #7: the brace character
\def\gre@brace@common#1#2#3#4#5#6#7{%
- \ifnum#4=1\relax %
- \setbox\gre@box@temp@sign=\hbox{\gre@fontchar@punctum}%
- \gre@dimen@temp@five=\wd\gre@box@temp@sign %
- \kern-\gre@dimen@temp@five %
- \fi %
- \gre@calculate@glyphraisevalue{#6}{13}{}%
- \advance\gre@dimen@glyphraisevalue by #2\relax %
- \hbox to 0pt{%
- \gre@skip@temp@four = #3\relax %
- \kern\gre@skip@temp@four %
- \raise\gre@dimen@glyphraisevalue\hbox{%
- \ifx#7\gre@fontchar@curlybrace %
- \ifgre@metapost@curlybrace %
- \gre@draw@curlybrace{#1}%
- \else %
- \gre@draw@fontbrace{#1}{#7}%
- \fi %
- \else %
- \ifx#7\gre@fontchar@brace %
- \ifgre@metapost@brace %
- \gre@draw@brace{#1}%
- \else %
- \gre@draw@fontbrace{#1}{#7}%
- \fi %
- \else %
- \ifx#7\gre@fontchar@underbrace %
- \ifgre@metapost@underbrace %
- \gre@draw@underbrace{#1}%
- \else %
- \gre@draw@fontbrace{#1}{#7}%
- \fi %
- \fi %
- \fi %
- \fi %
- }%
- \hss %
- \ifnum#5=1\relax %
- \gre@calculate@glyphraisevalue{\gre@pitch@overbrace}{13}{}%
- \advance\gre@dimen@glyphraisevalue by \gre@space@dimen@curlybraceaccentusshift\relax%
- \raise\gre@dimen@glyphraisevalue\hbox{%
- \gre@font@music\GreCPAccentus\relax %
- }%
- \hss %
- \fi %
- }%
- \ifnum#4=1\relax %
- \kern\gre@dimen@temp@five %
- \fi %
- \relax %
+ \ifnum#4=1\relax %
+ \setbox\gre@box@temp@sign=\hbox{\gre@fontchar@punctum}%
+ \gre@dimen@temp@five=\wd\gre@box@temp@sign %
+ \kern-\gre@dimen@temp@five %
+ \fi %
+ \gre@calculate@glyphraisevalue{#6}{13}{}%
+ \advance\gre@dimen@glyphraisevalue by #2\relax %
+ \hbox to 0pt{%
+ \gre@skip@temp@four = #3\relax %
+ \kern\gre@skip@temp@four %
+ \raise\gre@dimen@glyphraisevalue\hbox{%
+ \ifx#7\gre@fontchar@curlybrace %
+ \ifgre@metapost@curlybrace %
+ \gre@draw@curlybrace{#1}%
+ \else %
+ \gre@draw@fontbrace{#1}{#7}%
+ \fi %
+ \else %
+ \ifx#7\gre@fontchar@brace %
+ \ifgre@metapost@brace %
+ \gre@draw@brace{#1}%
+ \else %
+ \gre@draw@fontbrace{#1}{#7}%
+ \fi %
+ \else %
+ \ifx#7\gre@fontchar@underbrace %
+ \ifgre@metapost@underbrace %
+ \gre@draw@underbrace{#1}%
+ \else %
+ \gre@draw@fontbrace{#1}{#7}%
+ \fi %
+ \fi %
+ \fi %
+ \fi %
+ }%
+ \hss %
+ \ifnum#5=1\relax %
+ \gre@calculate@glyphraisevalue{\gre@pitch@overbrace}{13}{}%
+ \advance\gre@dimen@glyphraisevalue by \gre@space@dimen@curlybraceaccentusshift\relax%
+ \raise\gre@dimen@glyphraisevalue\hbox{%
+ \gre@font@music\GreCPAccentus\relax %
+ }%
+ \hss %
+ \fi %
+ }%
+ \ifnum#4=1\relax %
+ \kern\gre@dimen@temp@five %
+ \fi %
+ \relax %
}%
% #1 : the width
% #2 : the brace character
\def\gre@draw@fontbrace#1#2{%
- \setbox\gre@box@temp@sign=\hbox{#2}%
- \gre@resizebox{#1}{\ht\gre@box@temp@sign}{#2}%
+ \setbox\gre@box@temp@sign=\hbox{#2}%
+ \gre@resizebox{#1}{\ht\gre@box@temp@sign}{#2}%
}%
% #1: the width, or * for the bar brace width
% this can't have @ in the name because of the metapost catcode settings
\def\grebracemetapostpreamble#1{%
- % multiplier to convert gre@factor to em-size in bp
- % (100000 sp) * (72 bp/in) / (65536 sp/pt) / 72.27 (pt/in)
- factor = 1.5201782378;
- scale = \the\gre@factor * factor;
- % assuming #1 is in bp, we convert it back into the internal unit of the
- % calculation, ems
- width = \directlua{gregoriotex.width_to_bp([[#1]], "\grebarbracewidth * scale")} / scale;
+ % multiplier to convert gre@factor to em-size in bp
+ % (100000 sp) * (72 bp/in) / (65536 sp/pt) / 72.27 (pt/in)
+ factor = 1.5201782378;
+ scale = \the\gre@factor * factor;
+ % assuming #1 is in bp, we convert it back into the internal unit of the
+ % calculation, ems
+ width = \directlua{gregoriotex.width_to_bp([[#1]], "\grebarbracewidth * scale")} / scale;
}%
% #1: the width
\def\gre@draw@curlybrace#1{%
- \gre@debugmsg{general}{curly brace width = #1}%
- \gre@metapost{
- \grebracemetapostpreamble{#1}
- transform t;
- t = identity scaled scale;
- p := (width - 0.1416) / 2;
- q := (width - 0.08626) / 2;
- if (p < 0.1005) or (q < 0.12817):
- t := t xscaled (width / 0.34261);
- p := 0.1005;
- q := 0.12817;
- fi;
- f := 1 + (p / 4);
- beginfig(0);
- fill
- ( (0,0)
- -- (0.00651,0)
- .. controls (((0.03239**f)*p)+0.00651,0.01763) and (((0.08502**f)*p)+0.00651,0.03065) .. (((0.15789**f)*p)+0.00651,0.03906)
- .. controls (((0.23347**f)*p)+0.00651,0.04801) and (((0.32659**f)*p)+0.00651,0.05249) .. (((0.43725**f)*p)+0.00651,0.05249)
- .. controls (((0.49663**f)*p)+0.00651,0.05249) and (((0.59109**f)*p)+0.00651,0.05086) .. (((0.72065**f)*p)+0.00651,0.04761)
- .. controls (((0.82861**f)*p)+0.00651,0.04408) and (((0.92173**f)*p)+0.00651,0.04232) .. (p+0.00651,0.04232)
- .. controls (p+0.0198,0.04232) and (p+0.03242,0.04842) .. (p+0.04435,0.06063)
- .. controls (p+0.05602,0.07365) and (p+0.06483,0.0906) .. (p+0.0708,0.11149)
- .. controls (p+0.07677,0.0906) and (p+0.08558,0.07365) .. (p+0.09725,0.06063)
- .. controls (p+0.10918,0.04842) and (p+0.1218,0.04232) .. (p+0.13509,0.04232)
- .. controls (p+((1-(0.92173**f))*p)+0.13509,0.04232) and (p+((1-(0.82861**f))*p)+0.13509,0.04408) .. (p+((1-(0.72065**f))*p)+0.13509,0.04761)
- .. controls (p+((1-(0.59109**f))*p)+0.13509,0.05086) and (p+((1-(0.49663**f))*p)+0.13509,0.05249) .. (p+((1-(0.43725**f))*p)+0.13509,0.05249)
- .. controls (p+((1-(0.32659**f))*p)+0.13509,0.05249) and (p+((1-(0.23347**f))*p)+0.13509,0.04801) .. (p+((1-(0.15789**f))*p)+0.13509,0.03906)
- .. controls (p+((1-(0.08502**f))*p)+0.13509,0.03065) and (p+((1-(0.03239**f))*p)+0.13509,0.01763) .. (p+p+0.13509,0)
- -- (p+p+0.13509,0) -- (q+q+0.08626,0) -- (q+q+0.08626,0)
- .. controls (q+((1-(0.02117**f))*q)+0.08626,0.02658) and (q+((1-(0.08466**f))*q)+0.08626,0.04774) .. (q+((1-(0.19048**f))*q)+0.08626,0.06348)
- .. controls (q+((1-(0.29418**f))*q)+0.08626,0.07975) and (q+((1-(0.42434**f))*q)+0.08626,0.08789) .. (q+((1-(0.58095**f))*q)+0.08626,0.08789)
- .. controls (q+((1-(0.63386**f))*q)+0.08626,0.08789) and (q+((1-(0.70159**f))*q)+0.08626,0.08626) .. (q+((1-(0.78413**f))*q)+0.08626,0.08301)
- .. controls (q+((1-(0.87937**f))*q)+0.08626,0.07894) and (q+((1-(0.95132**f))*q)+0.08626,0.0769) .. (q+0.08626,0.0769)
- .. controls (q+0.06219,0.0769) and (q+0.05013,0.10644) .. (q+0.04679,0.13102)
- -- (q+0.04679,0.13102) -- (q+0.03947,0.13102) -- (q+0.03947,0.13102)
- .. controls (q+0.03614,0.10644) and (q+0.02407,0.0769) .. (q+0,0.0769)
- .. controls (((0.95132**f)*q)+0,0.0769) and (((0.87937**f)*q)+0,0.07894) .. (((0.78413**f)*q)+0,0.08301)
- .. controls (((0.70159**f)*q)+0,0.08626) and (((0.63386**f)*q)+0,0.08789) .. (((0.58095**f)*q)+0,0.08789)
- .. controls (((0.42434**f)*q)+0,0.08789) and (((0.29418**f)*q)+0,0.07975) .. (((0.19048**f)*q)+0,0.06348)
- .. controls (((0.08466**f)*q)+0,0.04774) and (((0.02117**f)*q)+0,0.02658) .. (0,0)
- -- cycle
- ) transformed t;
- setbounds currentpicture to
- ( (0,-0.67980) -- (q+q+0.08626,-0.67980) -- (q+q+0.08626,0.13102) -- (0,0.13102) -- cycle )
- transformed t;
- endfig;
- }%
+ \gre@debugmsg{general}{curly brace width = #1}%
+ \gre@metapost{
+ \grebracemetapostpreamble{#1}
+ transform t;
+ t = identity scaled scale;
+ p := (width - 0.1416) / 2;
+ q := (width - 0.08626) / 2;
+ if (p < 0.1005) or (q < 0.12817):
+ t := t xscaled (width / 0.34261);
+ p := 0.1005;
+ q := 0.12817;
+ fi;
+ f := 1 + (p / 4);
+ beginfig(0);
+ fill
+ ( (0,0)
+ -- (0.00651,0)
+ .. controls (((0.03239**f)*p)+0.00651,0.01763) and (((0.08502**f)*p)+0.00651,0.03065) .. (((0.15789**f)*p)+0.00651,0.03906)
+ .. controls (((0.23347**f)*p)+0.00651,0.04801) and (((0.32659**f)*p)+0.00651,0.05249) .. (((0.43725**f)*p)+0.00651,0.05249)
+ .. controls (((0.49663**f)*p)+0.00651,0.05249) and (((0.59109**f)*p)+0.00651,0.05086) .. (((0.72065**f)*p)+0.00651,0.04761)
+ .. controls (((0.82861**f)*p)+0.00651,0.04408) and (((0.92173**f)*p)+0.00651,0.04232) .. (p+0.00651,0.04232)
+ .. controls (p+0.0198,0.04232) and (p+0.03242,0.04842) .. (p+0.04435,0.06063)
+ .. controls (p+0.05602,0.07365) and (p+0.06483,0.0906) .. (p+0.0708,0.11149)
+ .. controls (p+0.07677,0.0906) and (p+0.08558,0.07365) .. (p+0.09725,0.06063)
+ .. controls (p+0.10918,0.04842) and (p+0.1218,0.04232) .. (p+0.13509,0.04232)
+ .. controls (p+((1-(0.92173**f))*p)+0.13509,0.04232) and (p+((1-(0.82861**f))*p)+0.13509,0.04408) .. (p+((1-(0.72065**f))*p)+0.13509,0.04761)
+ .. controls (p+((1-(0.59109**f))*p)+0.13509,0.05086) and (p+((1-(0.49663**f))*p)+0.13509,0.05249) .. (p+((1-(0.43725**f))*p)+0.13509,0.05249)
+ .. controls (p+((1-(0.32659**f))*p)+0.13509,0.05249) and (p+((1-(0.23347**f))*p)+0.13509,0.04801) .. (p+((1-(0.15789**f))*p)+0.13509,0.03906)
+ .. controls (p+((1-(0.08502**f))*p)+0.13509,0.03065) and (p+((1-(0.03239**f))*p)+0.13509,0.01763) .. (p+p+0.13509,0)
+ -- (p+p+0.13509,0) -- (q+q+0.08626,0) -- (q+q+0.08626,0)
+ .. controls (q+((1-(0.02117**f))*q)+0.08626,0.02658) and (q+((1-(0.08466**f))*q)+0.08626,0.04774) .. (q+((1-(0.19048**f))*q)+0.08626,0.06348)
+ .. controls (q+((1-(0.29418**f))*q)+0.08626,0.07975) and (q+((1-(0.42434**f))*q)+0.08626,0.08789) .. (q+((1-(0.58095**f))*q)+0.08626,0.08789)
+ .. controls (q+((1-(0.63386**f))*q)+0.08626,0.08789) and (q+((1-(0.70159**f))*q)+0.08626,0.08626) .. (q+((1-(0.78413**f))*q)+0.08626,0.08301)
+ .. controls (q+((1-(0.87937**f))*q)+0.08626,0.07894) and (q+((1-(0.95132**f))*q)+0.08626,0.0769) .. (q+0.08626,0.0769)
+ .. controls (q+0.06219,0.0769) and (q+0.05013,0.10644) .. (q+0.04679,0.13102)
+ -- (q+0.04679,0.13102) -- (q+0.03947,0.13102) -- (q+0.03947,0.13102)
+ .. controls (q+0.03614,0.10644) and (q+0.02407,0.0769) .. (q+0,0.0769)
+ .. controls (((0.95132**f)*q)+0,0.0769) and (((0.87937**f)*q)+0,0.07894) .. (((0.78413**f)*q)+0,0.08301)
+ .. controls (((0.70159**f)*q)+0,0.08626) and (((0.63386**f)*q)+0,0.08789) .. (((0.58095**f)*q)+0,0.08789)
+ .. controls (((0.42434**f)*q)+0,0.08789) and (((0.29418**f)*q)+0,0.07975) .. (((0.19048**f)*q)+0,0.06348)
+ .. controls (((0.08466**f)*q)+0,0.04774) and (((0.02117**f)*q)+0,0.02658) .. (0,0)
+ -- cycle
+ ) transformed t;
+ setbounds currentpicture to
+ ( (0,-0.67980) -- (q+q+0.08626,-0.67980) -- (q+q+0.08626,0.13102) -- (0,0.13102) -- cycle )
+ transformed t;
+ endfig;
+ }%
}%
% #1: the width
\def\gre@draw@brace#1{%
- \gre@draw@roundbrace{#1}{.89500}{
- (-.00192,.70347) % start the top
- .. controls (-.00192,.70525) and (-.00134,.70740)
- .. (.00000,.71000) -- (.00000,.71000){curl c}
- .. (p/2,.89500) % top of the center
- .. {curl c}(p,.71000) -- (p,.71000)
- .. controls (p+.00134,.70740) and (p+.00192,.70525)
- .. (p+.00192,.70347) % end the top
- .. controls (p+.00192,.69508) and (p-.01103,.69500)
- .. (p-.01856,.69500) % start the bottom
- .. controls (p-.01856,.69500) and (p-.01900,.69500)
- .. (p-.01900,.69500) -- (p-.01900,.69500){curl c}
- .. (p/2,.86400) % bottom of the center
- .. {curl c}(.01900,.69500) -- (.01900,.69500)
- .. controls (.01900,.69500) and (.01856,.69500)
- .. (.01856,.69500) % end the bottom
- .. controls (.01103,.69500) and (-.00192,.69508)
- .. (-.00192,.70347) -- cycle
- }%
+ \gre@draw@roundbrace{#1}{.89500}{
+ (-.00192,.70347) % start the top
+ .. controls (-.00192,.70525) and (-.00134,.70740)
+ .. (.00000,.71000) -- (.00000,.71000){curl c}
+ .. (p/2,.89500) % top of the center
+ .. {curl c}(p,.71000) -- (p,.71000)
+ .. controls (p+.00134,.70740) and (p+.00192,.70525)
+ .. (p+.00192,.70347) % end the top
+ .. controls (p+.00192,.69508) and (p-.01103,.69500)
+ .. (p-.01856,.69500) % start the bottom
+ .. controls (p-.01856,.69500) and (p-.01900,.69500)
+ .. (p-.01900,.69500) -- (p-.01900,.69500){curl c}
+ .. (p/2,.86400) % bottom of the center
+ .. {curl c}(.01900,.69500) -- (.01900,.69500)
+ .. controls (.01900,.69500) and (.01856,.69500)
+ .. (.01856,.69500) % end the bottom
+ .. controls (.01103,.69500) and (-.00192,.69508)
+ .. (-.00192,.70347) -- cycle
+ }%
}%
% #1: the width
\def\gre@draw@underbrace#1{%
- \gre@draw@roundbrace{#1}{.25500}{
- (-.00192,.24653) % start the bottom
- .. controls (-.00192,.24475) and (-.00134,.24260)
- .. (.00000,.24000) -- (.00000,.24000){curl c}
- .. (p/2,.05500) % bottom of the center
- .. {curl c}(p,.24000) -- (p,.24000)
- .. controls (p+.00134,.24260) and (p+.00192,.24475)
- .. (p+.00192,.24653) % end the bottom
- .. controls (p+.00192,.25492) and (p-.01103,.25500)
- .. (p-.01856,.25500) % start the top
- .. controls (p-.01856,.25500) and (p-.01900,.25500)
- .. (p-.01900,.25500) -- (p-.01900,.25500){curl c}
- .. (p/2,.08600) % top to the center
- .. {curl c}(.01900,.25500) -- (.01900,.25500)
- .. controls (.01900,.25500) and (.01856,.25500)
- .. (.01856,.25500) % end the top
- .. controls (.01103,.25500) and (-.00192,.25492)
- .. (-.00192,.24653) -- cycle
- }%
+ \gre@draw@roundbrace{#1}{.25500}{
+ (-.00192,.24653) % start the bottom
+ .. controls (-.00192,.24475) and (-.00134,.24260)
+ .. (.00000,.24000) -- (.00000,.24000){curl c}
+ .. (p/2,.05500) % bottom of the center
+ .. {curl c}(p,.24000) -- (p,.24000)
+ .. controls (p+.00134,.24260) and (p+.00192,.24475)
+ .. (p+.00192,.24653) % end the bottom
+ .. controls (p+.00192,.25492) and (p-.01103,.25500)
+ .. (p-.01856,.25500) % start the top
+ .. controls (p-.01856,.25500) and (p-.01900,.25500)
+ .. (p-.01900,.25500) -- (p-.01900,.25500){curl c}
+ .. (p/2,.08600) % top to the center
+ .. {curl c}(.01900,.25500) -- (.01900,.25500)
+ .. controls (.01900,.25500) and (.01856,.25500)
+ .. (.01856,.25500) % end the top
+ .. controls (.01103,.25500) and (-.00192,.25492)
+ .. (-.00192,.24653) -- cycle
+ }%
}%
% #1: the width
% #2: height of the bounding box
% #3: metapost commands to draw the outline
\def\gre@draw@roundbrace#1#2#3{%
- \gre@debugmsg{general}{round brace width = #1}%
- \gre@metapost{
- \grebracemetapostpreamble{#1}
- p = width;
- transform t;
- t = identity scaled scale;
- c = 1;
- if p < 0.200:
- c := 0;
- t := t xscaled (p/0.200);
- p := 0.200;
- elseif p < 0.350:
- c := (p - 0.200) / 0.350;
- fi;
- beginfig(0);
- fill ( #3 ) transformed t;
- setbounds currentpicture to
- ( (0,0) -- (p,0) -- (p,#2) -- (0,#2) -- cycle )
- transformed t;
- endfig;
- }%
+ \gre@debugmsg{general}{round brace width = #1}%
+ \gre@metapost{
+ \grebracemetapostpreamble{#1}
+ p = width;
+ transform t;
+ t = identity scaled scale;
+ c = 1;
+ if p < 0.200:
+ c := 0;
+ t := t xscaled (p/0.200);
+ p := 0.200;
+ elseif p < 0.350:
+ c := (p - 0.200) / 0.350;
+ fi;
+ beginfig(0);
+ fill ( #3 ) transformed t;
+ setbounds currentpicture to
+ ( (0,0) -- (p,0) -- (p,#2) -- (0,#2) -- cycle )
+ transformed t;
+ endfig;
+ }%
}%
% #1 : x-distance
% #2 : y-distance
% #3 : -1 for below, 1 for above
\def\gre@draw@slur#1#2#3{%
- \gre@metapost{
- \grebracemetapostpreamble{\directlua{gregoriotex.hypotenuse([[#1]],[[#2]])}}
- transform t;
- t = identity scaled scale;
- t := t xscaled width;
- t := t rotated \directlua{gregoriotex.rotation([[#1]],[[#2]])};
- beginfig(0);
- fill
- ( (0,0)
- .. controls (0.3,#3*0.20) and (0.7,#3*0.20)
- .. (1,0)
- -- (1,0)
- .. controls (0.7,#3*0.22) and (0.3,#3*0.22)
- .. (0,0)
- -- cycle
- ) transformed t withpen pencircle scaled 0.3;
- endfig;
- }%
+ \gre@metapost{
+ \grebracemetapostpreamble{\directlua{gregoriotex.hypotenuse([[#1]],[[#2]])}}
+ transform t;
+ t = identity scaled scale;
+ t := t xscaled width;
+ t := t rotated \directlua{gregoriotex.rotation([[#1]],[[#2]])};
+ beginfig(0);
+ fill
+ ( (0,0)
+ .. controls (0.3,#3*0.20) and (0.7,#3*0.20)
+ .. (1,0)
+ -- (1,0)
+ .. controls (0.7,#3*0.22) and (0.3,#3*0.22)
+ .. (0,0)
+ -- cycle
+ ) transformed t withpen pencircle scaled 0.3;
+ endfig;
+ }%
}%
\newdimen\greslurheight
@@ -872,69 +906,69 @@
% #5 : y-distance
% #6 : end height if #6 not given
\def\GreSlur#1#2#3#4#5#6{%
- \ifgre@boxing\else %
- \ifnum\number#2 > 0\relax %
- \gre@calculate@glyphraisevalue{#1}{15}{}%
- \else %
- \gre@calculate@glyphraisevalue{#1}{16}{}%
- \fi %
- \hbox to 0pt{\raise\gre@dimen@glyphraisevalue\hbox{%
- \ifcase#3 % 0
- \or % 1
- \setbox\gre@box@temp@sign=\hbox{\gre@fontchar@punctum}%
- \kern-\wd\gre@box@temp@sign %
- \or % 2
- \setbox\gre@box@temp@sign=\hbox{\gre@fontchar@punctum}%
- \kern-.5\wd\gre@box@temp@sign %
- \fi %
- \if\relax\detokenize{#5}\relax %
- \gre@dimen@temp@five=\gre@dimen@glyphraisevalue\relax %
- \ifnum\number#2 > 0\relax %
- \gre@calculate@glyphraisevalue{#6}{15}{}%
- \else %
- \gre@calculate@glyphraisevalue{#6}{16}{}%
- \fi %
- \greslurheight = \dimexpr(\gre@dimen@glyphraisevalue - \gre@dimen@temp@five)\relax %
- \else %
- \greslurheight = #5\relax %
- \fi %
- \gre@draw@slur{#4}{\the\greslurheight}{#2}%
- }}%
- \fi %
- \relax %
+ \ifgre@boxing\else %
+ \ifnum\number#2 > 0\relax %
+ \gre@calculate@glyphraisevalue{#1}{15}{}%
+ \else %
+ \gre@calculate@glyphraisevalue{#1}{16}{}%
+ \fi %
+ \hbox to 0pt{\raise\gre@dimen@glyphraisevalue\hbox{%
+ \ifcase#3 % 0
+ \or % 1
+ \setbox\gre@box@temp@sign=\hbox{\gre@fontchar@punctum}%
+ \kern-\wd\gre@box@temp@sign %
+ \or % 2
+ \setbox\gre@box@temp@sign=\hbox{\gre@fontchar@punctum}%
+ \kern-.5\wd\gre@box@temp@sign %
+ \fi %
+ \if\relax\detokenize{#5}\relax %
+ \gre@dimen@temp@five=\gre@dimen@glyphraisevalue\relax %
+ \ifnum\number#2 > 0\relax %
+ \gre@calculate@glyphraisevalue{#6}{15}{}%
+ \else %
+ \gre@calculate@glyphraisevalue{#6}{16}{}%
+ \fi %
+ \greslurheight = \dimexpr(\gre@dimen@glyphraisevalue - \gre@dimen@temp@five)\relax %
+ \else %
+ \greslurheight = #5\relax %
+ \fi %
+ \gre@draw@slur{#4}{\the\greslurheight}{#2}%
+ }}%
+ \fi %
+ \relax %
}%
% #1: id of the variable length brace within the score
\def\GreVarBraceLength#1{%
- \ifgre@boxing\else %
- \directlua{gregoriotex.var_brace_len(#1)}%
- \fi %
+ \ifgre@boxing\else %
+ \directlua{gregoriotex.var_brace_len(#1)}%
+ \fi %
}%
% #1: id of the variable length brace within the score
% #2: 0 = no left-shift, 1 = left-shift 1 punctum, 2 = left shift 1/2 punctum
% #3: 1 if the start, 2 if the end
\def\GreVarBraceSavePos#1#2#3{%
- \ifgre@boxing\else %
- \ifcase#2 % 0
- \gre@debugmsg{general}{save case 0}%
- \pdfsavepos %
- \or % 1
- \setbox\gre@box@temp@sign=\hbox{\gre@fontchar@punctum}%
- \kern-\wd\gre@box@temp@sign %
- \pdfsavepos %
- \kern\wd\gre@box@temp@sign %
- \or % 2
- \gre@debugmsg{general}{save case 2}%
- \setbox\gre@box@temp@sign=\hbox{\gre@fontchar@punctum}%
- \gre@dimen@temp@five=\wd\gre@box@temp@sign %
- \kern-.5\wd\gre@box@temp@sign %
- \pdfsavepos %
- \kern.5\wd\gre@box@temp@sign %
- \fi %
- \directlua{gregoriotex.var_brace_note_pos(#1, #3)}%
- \fi %
- \relax %
+ \ifgre@boxing\else %
+ \ifcase#2 % 0
+ \gre@debugmsg{general}{save case 0}%
+ \gre@savepos %
+ \or % 1
+ \setbox\gre@box@temp@sign=\hbox{\gre@fontchar@punctum}%
+ \kern-\wd\gre@box@temp@sign %
+ \gre@savepos %
+ \kern\wd\gre@box@temp@sign %
+ \or % 2
+ \gre@debugmsg{general}{save case 2}%
+ \setbox\gre@box@temp@sign=\hbox{\gre@fontchar@punctum}%
+ \gre@dimen@temp@five=\wd\gre@box@temp@sign %
+ \kern-.5\wd\gre@box@temp@sign %
+ \gre@savepos %
+ \kern.5\wd\gre@box@temp@sign %
+ \fi %
+ \directlua{gregoriotex.save_length(#1, #3)}%
+ \fi %
+ \relax %
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -951,128 +985,115 @@
% #3 is 1 in case of a punctommora in the note before the last note of a podatus, porrectus or torculus resupinus, 0 otherwise.
% #4 is 1 if we are at a punctum inclinatum, 0 otherwise
\def\gre@punctum@mora#1#2#3#4{%
- \GreNoBreak %
- \ifcase#2\relax %
- \gre@skip@temp@four = \gre@space@skip@spacebeforesigns\relax%
- \hskip\gre@skip@temp@four%
- \or %
- \gre@skip@temp@four = \gre@space@skip@spacebeforesigns\relax%
- \kern\gre@skip@temp@four %
- \or %
- % to get the widht of a punctum minus a line, we calculate the width of a flexus (with ambitus of two) minus the width of a punctum
- \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPPesQuadratumLongqueueThreeNothing}%
- \gre@dimen@temp@five=\wd\gre@box@temp@width %
- \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPPunctum}%
- \advance\gre@dimen@temp@five by -\wd\gre@box@temp@width %
- \kern-\gre@dimen@temp@five %
- \gre@skip@temp@four = \gre@space@skip@spacebeforesigns\relax%
- \kern\gre@skip@temp@four %
- \or %
- \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPPunctum}%
- \gre@dimen@temp@five=\wd\gre@box@temp@width %
- \kern-\gre@dimen@temp@five %
- \gre@skip@temp@four = \gre@space@skip@spacebeforesigns\relax%
- \kern\gre@skip@temp@four %
- \fi %
- \ifnum#2=0\relax %
- \global\gre@lastendswithmoratrue%
- \fi %
- \ifcase#3\relax % 0
- \gre@calculate@glyphraisevalue{#1}{4}{}%
- \or% 1
- \gre@calculate@glyphraisevalue{#1}{8}{}%
- \or% 2
- \gre@calculate@glyphraisevalue{#1}{14}{}%
- \fi %
- % here we shift a bit left in the case where we have a punctum inclinatum on a line
- \ifnum#4=1\relax %
- \ifgre@isonaline %
- \gre@dimen@temp@three=\dimexpr(3700sp * \gre@factor)\relax %
- \kern-\gre@dimen@temp@three %
- \gre@dimen@temp@three=\dimexpr(4500sp * \gre@factor)\relax%
- \advance\gre@dimen@glyphraisevalue by -\gre@dimen@temp@three %
- \else %
- \gre@dimen@temp@three=\dimexpr(2500sp * \gre@factor)\relax %
- \advance\gre@dimen@glyphraisevalue by -\gre@dimen@temp@three %
- \fi %
- \fi %
- \GreNoBreak %
- \raise \gre@dimen@glyphraisevalue \hbox{\gre@fontchar@punctummora}%
- \GreNoBreak %
- \ifcase#2\relax\or %
- \setbox\gre@box@temp@width=\hbox{\gre@fontchar@punctummora}%
- \gre@skip@temp@four = -\wd\gre@box@temp@width %
- \kern\gre@skip@temp@four%
- \gre@skip@temp@four = -\gre@space@skip@spacebeforesigns\relax%
- \kern\gre@skip@temp@four %
- \or %
- \setbox\gre@box@temp@width=\hbox{\gre@fontchar@punctummora}%
- \gre@skip@temp@four = -\wd\gre@box@temp@width %
- \kern\gre@skip@temp@four%
- \gre@skip@temp@four = -\gre@space@skip@spacebeforesigns\relax%
- \kern\gre@skip@temp@four %
- \kern\gre@dimen@temp@five %
- \or %
- \setbox\gre@box@temp@width=\hbox{\gre@fontchar@punctummora}%
- \gre@skip@temp@four = -\wd\gre@box@temp@width %
- \kern\gre@skip@temp@four%
- \gre@skip@temp@four = -\gre@space@skip@spacebeforesigns\relax%
- \kern\gre@skip@temp@four %
- \kern\gre@dimen@temp@five %
- \fi %
- \GreNoBreak %
- \relax%
+ \GreNoBreak %
+ \ifcase#2\relax %
+ \gre@skip@temp@four = \gre@space@skip@spacebeforesigns\relax%
+ \hskip\gre@skip@temp@four%
+ \or %
+ \gre@skip@temp@four = \gre@space@skip@spacebeforesigns\relax%
+ \kern\gre@skip@temp@four %
+ \or %
+ % to get the widht of a punctum minus a line, we calculate the width of a flexus (with ambitus of two) minus the width of a punctum
+ \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPPesQuadratumLongqueueThreeNothing}%
+ \gre@dimen@temp@five=\wd\gre@box@temp@width %
+ \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPPunctum}%
+ \advance\gre@dimen@temp@five by -\wd\gre@box@temp@width %
+ \kern-\gre@dimen@temp@five %
+ \gre@skip@temp@four = \gre@space@skip@spacebeforesigns\relax%
+ \kern\gre@skip@temp@four %
+ \or %
+ \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPPunctum}%
+ \gre@dimen@temp@five=\wd\gre@box@temp@width %
+ \kern-\gre@dimen@temp@five %
+ \gre@skip@temp@four = \gre@space@skip@spacebeforesigns\relax%
+ \kern\gre@skip@temp@four %
+ \fi %
+ \ifnum#2=0\relax %
+ \global\gre@lastendswithmoratrue%
+ \fi %
+ \ifcase#3\relax % 0
+ \gre@calculate@glyphraisevalue{#1}{4}{}%
+ \or% 1
+ \gre@calculate@glyphraisevalue{#1}{8}{}%
+ \or% 2
+ \gre@calculate@glyphraisevalue{#1}{14}{}%
+ \fi %
+ % here we shift a bit left in the case where we have a punctum inclinatum on a line
+ \ifnum#4=1\relax %
+ \ifgre@isonaline %
+ \gre@dimen@temp@three=\dimexpr(3700sp * \gre@factor)\relax %
+ \kern-\gre@dimen@temp@three %
+ \gre@dimen@temp@three=\dimexpr(4500sp * \gre@factor)\relax%
+ \advance\gre@dimen@glyphraisevalue by -\gre@dimen@temp@three %
+ \else %
+ \gre@dimen@temp@three=\dimexpr(2500sp * \gre@factor)\relax %
+ \advance\gre@dimen@glyphraisevalue by -\gre@dimen@temp@three %
+ \fi %
+ \fi %
+ \GreNoBreak %
+ \raise \gre@dimen@glyphraisevalue \hbox{\gre@fontchar@punctummora}%
+ \GreNoBreak %
+ \ifcase#2\relax\or %
+ \setbox\gre@box@temp@width=\hbox{\gre@fontchar@punctummora}%
+ \gre@skip@temp@four = -\wd\gre@box@temp@width %
+ \kern\gre@skip@temp@four%
+ \gre@skip@temp@four = -\gre@space@skip@spacebeforesigns\relax%
+ \kern\gre@skip@temp@four %
+ \or %
+ \setbox\gre@box@temp@width=\hbox{\gre@fontchar@punctummora}%
+ \gre@skip@temp@four = -\wd\gre@box@temp@width %
+ \kern\gre@skip@temp@four%
+ \gre@skip@temp@four = -\gre@space@skip@spacebeforesigns\relax%
+ \kern\gre@skip@temp@four %
+ \kern\gre@dimen@temp@five %
+ \or %
+ \setbox\gre@box@temp@width=\hbox{\gre@fontchar@punctummora}%
+ \gre@skip@temp@four = -\wd\gre@box@temp@width %
+ \kern\gre@skip@temp@four%
+ \gre@skip@temp@four = -\gre@space@skip@spacebeforesigns\relax%
+ \kern\gre@skip@temp@four %
+ \kern\gre@dimen@temp@five %
+ \fi %
+ \GreNoBreak %
+ \relax%
}%
\def\GrePunctumMora#1#2#3#4{%
- \ifgre@disablemora\else %
- \gre@punctum@mora{#1}{#2}{#3}{#4}%
- \fi %
- \relax %
+ \ifgre@disablemora\else %
+ \gre@punctum@mora{#1}{#2}{#3}{#4}%
+ \fi %
+ \relax %
}
% a function to typeset an augmentum duplex, easy enough to be understood...
\def\GreAugmentumDuplex#1#2#3{%
- \ifgre@boxing\else %
- \GrePunctumMora{#1}{1}{#3}{0}%
- \fi %
- \GrePunctumMora{#2}{0}{0}{0}%
- \relax %
+ \ifgre@boxing\else %
+ \GrePunctumMora{#1}{1}{#3}{0}%
+ \fi %
+ \GrePunctumMora{#2}{0}{0}{0}%
+ \relax %
}%
-\gdef\grelowchoralsignstyle#1{\relax}% OBSOLETE
-\let\gre@empty@lowchoralsignstyle\grelowchoralsignstyle%
-\gdef\grehighchoralsignstyle#1{\relax}% OBSOLETE
-\let\gre@empty@highchoralsignstyle\grehighchoralsignstyle%
-
% quite simple function: #1 is the height, #2 is the string, #3 is #2 of punctum mora, #4 is #3 of punctum mora
% #3 is 1 if it must be a bit higher
\def\GreLowChoralSign#1#2#3{%
- \GreNoBreak %
- \gre@skip@temp@four = \gre@space@skip@beforelowchoralsignspace\relax%
- \hskip\gre@skip@temp@four %
- \GreNoBreak %
- \ifnum#3=1\relax %
- \gre@calculate@glyphraisevalue{#1}{12}{}%
- \else %
- \gre@calculate@glyphraisevalue{#1}{10}{}%
- \fi %
- \raise\gre@dimen@glyphraisevalue\hbox{\gre@style@lowchoralsign#2\endgre@style@lowchoralsign}%
- \ifx\gre@empty@lowchoralsignstyle\grelowchoralsignstyle% OBSOLETE
- \else% OBSOLETE
- \gre@obsolete{\protect\grelowchoralsignstyle}{\protect\grechangestyle{lowchoralsign}}% OBSOLETE
- \fi% OBSOLETE
- \relax %
+ \GreNoBreak %
+ \gre@skip@temp@four = \gre@space@skip@beforelowchoralsignspace\relax%
+ \hskip\gre@skip@temp@four %
+ \GreNoBreak %
+ \ifnum#3=1\relax %
+ \gre@calculate@glyphraisevalue{#1}{12}{}%
+ \else %
+ \gre@calculate@glyphraisevalue{#1}{10}{}%
+ \fi %
+ \raise\gre@dimen@glyphraisevalue\hbox{\gre@style@lowchoralsign#2\endgre@style@lowchoralsign}%
+ \relax %
}%
\def\GreHighChoralSign#1#2#3{%
- \GreNoBreak %
- \gre@vepisemaorrare{#1}{#3}{}{3}{\gre@style@highchoralsign#2\endgre@style@highchoralsign}%
- \ifx\gre@empty@highchoralsignstyle\grehighchoralsignstyle% OBSOLETE
- \else% OBSOLETE
- \gre@obsolete{\protect\grehighchoralsignstyle}{\protect\grechangestyle{highchoralsign}}% OBSOLETE
- \fi% OBSOLETE
- \relax %
+ \GreNoBreak %
+ \gre@vepisemaorrare{#1}{#3}{}{3}{\gre@style@highchoralsign#2\endgre@style@highchoralsign}%
+ \relax %
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1080,8 +1101,8 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\GreLinea#1#2#3#4#5#6{%
- \GreGlyph{\GreCPLinea}{#1}{#2}{#3}{#4}{#5}{#6}%
- \relax %
+ \GreGlyph{\GreCPLinea}{#1}{#2}{#3}{#4}{#5}{#6}%
+ \relax %
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1110,46 +1131,46 @@
% #6 is the type of sign (1: vertical episema, 2: rare sign, 3: choral sign)
% #7 is the choral sign if relevant
\def\gre@vepisemaorrareaux#1#2#3#4#5#6#7{%
- % first we set \gre@dimen@temp@three to the width of the last glyph
- \gre@dimen@temp@three=\gre@dimen@lastglyphwidth\relax%
- \setbox\gre@box@temp@sign=\hbox{\gre@font@music #2}%
- \gre@dimen@temp@two=\dimexpr(\wd\gre@box@temp@sign / 2)\relax %
- \ifcase#3%
- % tempwidth is the width of the last glyph
- \advance\gre@dimen@temp@three by -\gre@dimen@temp@two %
- \or%
- \gre@dimen@temp@three=\gre@dimen@temp@two %
- \or%
- \setbox\gre@box@temp@sign=\hbox{\gre@font@music #1}%
- \gre@dimen@temp@three=\dimexpr(\wd\gre@box@temp@sign - \gre@dimen@temp@two)\relax %
- \or %
- \setbox\gre@box@temp@sign=\hbox{\gre@font@music #1}%
- \advance\gre@dimen@temp@three by \dimexpr(-\wd\gre@box@temp@sign + \gre@dimen@temp@two)\relax %
- \fi%
- \kern-\gre@dimen@temp@three % we do it here because of the now-removed ictus (chironomy)
- % then we draw the sign
- \ifcase#6\or %
- % vertical episema
- \setbox\gre@box@temp@sign=\hbox{\gre@fontchar@verticalepisema}%
- \or % rare sign
- \setbox\gre@box@temp@sign=\hbox{\gre@font@music#5}%
- \or % choral sign
- \setbox\gre@box@temp@sign=\hbox{#7}%
- \or % brace above bar
- \setbox\gre@box@temp@sign=\hbox{\gre@render@barbrace}%
- \fi %
- % we set tempwidth to half a punctum malus half the sign width, so that the centers are aligned
- \gre@dimen@temp@two=\dimexpr(\wd\gre@box@temp@sign / 2)\relax %
- \advance\gre@dimen@temp@three by \gre@dimen@temp@two %
- \kern-\gre@dimen@temp@two%
- \gre@skip@temp@four = #4sp%
- \kern \gre@skip@temp@four%
- \raise \gre@dimen@glyphraisevalue \copy\gre@box@temp@sign %
- \kern -\gre@skip@temp@four%
- % and finally we go back to the end of the glyph, where we were first
- \advance\gre@dimen@temp@three by -2\gre@dimen@temp@two %
- \kern\gre@dimen@temp@three%
- \relax%
+ % first we set \gre@dimen@temp@three to the width of the last glyph
+ \gre@dimen@temp@three=\gre@dimen@lastglyphwidth\relax%
+ \setbox\gre@box@temp@sign=\hbox{\gre@font@music #2}%
+ \gre@dimen@temp@two=\dimexpr(\wd\gre@box@temp@sign / 2)\relax %
+ \ifcase#3%
+ % tempwidth is the width of the last glyph
+ \advance\gre@dimen@temp@three by -\gre@dimen@temp@two %
+ \or%
+ \gre@dimen@temp@three=\gre@dimen@temp@two %
+ \or%
+ \setbox\gre@box@temp@sign=\hbox{\gre@font@music #1}%
+ \gre@dimen@temp@three=\dimexpr(\wd\gre@box@temp@sign - \gre@dimen@temp@two)\relax %
+ \or %
+ \setbox\gre@box@temp@sign=\hbox{\gre@font@music #1}%
+ \advance\gre@dimen@temp@three by \dimexpr(-\wd\gre@box@temp@sign + \gre@dimen@temp@two)\relax %
+ \fi%
+ \kern-\gre@dimen@temp@three % we do it here because of the now-removed ictus (chironomy)
+ % then we draw the sign
+ \ifcase#6\or %
+ % vertical episema
+ \setbox\gre@box@temp@sign=\hbox{\gre@fontchar@verticalepisema}%
+ \or % rare sign
+ \setbox\gre@box@temp@sign=\hbox{\gre@font@music#5}%
+ \or % choral sign
+ \setbox\gre@box@temp@sign=\hbox{#7}%
+ \or % brace above bar
+ \setbox\gre@box@temp@sign=\hbox{\gre@render@barbrace}%
+ \fi %
+ % we set tempwidth to half a punctum malus half the sign width, so that the centers are aligned
+ \gre@dimen@temp@two=\dimexpr(\wd\gre@box@temp@sign / 2)\relax %
+ \advance\gre@dimen@temp@three by \gre@dimen@temp@two %
+ \kern-\gre@dimen@temp@two%
+ \gre@skip@temp@four = #4sp%
+ \kern \gre@skip@temp@four%
+ \raise \gre@dimen@glyphraisevalue \copy\gre@box@temp@sign %
+ \kern -\gre@skip@temp@four%
+ % and finally we go back to the end of the glyph, where we were first
+ \advance\gre@dimen@temp@three by -2\gre@dimen@temp@two %
+ \kern\gre@dimen@temp@three%
+ \relax%
}%
\directlua{gregoriotex.emit_offset_macros()}%
@@ -1163,81 +1184,81 @@
% #4 is type (1: vertical episema, 2: rare sign, 3: choral sign, 4: brace above the bar)
% #5 is the choral sign if relevant
\def\gre@vepisemaorrare#1#2#3#4#5{%
- \ifgre@boxing\else %
- \ifcase#4\or %
- % if it is a vertical episema, we call the normal calculateglyphvalue
- \gre@calculate@glyphraisevalue{#1}{3}{}%
- \or %
- % if it is not, we call it with 6 as second argument, it will give us the height of the rare signs (accentus, etc.) the first argument is m if the pitch is < k, otherwise it's n.
- \ifnum#1<\gre@pitch@raresign\relax %
- \gre@calculate@glyphraisevalue{\gre@pitch@raresign}{6}{}%
- \else %
- {%
- \gre@count@temp@three=\numexpr(#1 + 1)\relax %
- \gre@calculate@glyphraisevalue{\gre@count@temp@three}{6}{}%
- }%
- \fi %
- \or % if it's a choral sign
- \gre@calculate@glyphraisevalue{#1}{11}{}%
- \or % if it's the brace above the bar
- \gre@calculate@glyphraisevalue{#1}{13}{}%
- \fi %
- \gre@v@case{#2}{#3}{#4}{#5}%
- \fi %
- \relax%
+ \ifgre@boxing\else %
+ \ifcase#4\or %
+ % if it is a vertical episema, we call the normal calculateglyphvalue
+ \gre@calculate@glyphraisevalue{#1}{3}{}%
+ \or %
+ % if it is not, we call it with 6 as second argument, it will give us the height of the rare signs (accentus, etc.) the first argument is m if the pitch is < k, otherwise it's n.
+ \ifnum#1<\gre@pitch@raresign\relax %
+ \gre@calculate@glyphraisevalue{\gre@pitch@raresign}{6}{}%
+ \else %
+ {%
+ \gre@count@temp@three=\numexpr(#1 + 1)\relax %
+ \gre@calculate@glyphraisevalue{\gre@count@temp@three}{6}{}%
+ }%
+ \fi %
+ \or % if it's a choral sign
+ \gre@calculate@glyphraisevalue{#1}{11}{}%
+ \or % if it's the brace above the bar
+ \gre@calculate@glyphraisevalue{#1}{13}{}%
+ \fi %
+ \gre@v@case{#2}{#3}{#4}{#5}%
+ \fi %
+ \relax%
}%
\def\GreVEpisema#1#2{%
- \ifgre@disablevepisema\else %
- \gre@vepisemaorrare{#1}{#2}{\GreCPVEpisema}{1}{}%
- \fi %
- \relax %
+ \ifgre@disablevepisema\else %
+ \gre@vepisemaorrare{#1}{#2}{\GreCPVEpisema}{1}{}%
+ \fi %
+ \relax %
}%
\def\GreBarBrace#1{%
- \gre@vepisemaorrare{\gre@pitch@overbraceglyph}{#1}{%
- \gre@render@barbrace%
- }{4}{}%
- \relax %
+ \gre@vepisemaorrare{\gre@pitch@overbraceglyph}{#1}{%
+ \gre@render@barbrace%
+ }{4}{}%
+ \relax %
}%
\def\gre@render@barbrace{%
- \hbox{%
- \ifgre@metapost@barbrace %
- \gre@draw@brace{*}%
- \else %
- \gre@fontchar@abovebarbrace %
- \fi %
- }%
+ \hbox{%
+ \ifgre@metapost@barbrace %
+ \gre@draw@brace{*}%
+ \else %
+ \gre@fontchar@abovebarbrace %
+ \fi %
+ }%
}%
\def\GreBarVEpisema#1{%
- \gre@vepisemaorrare{\gre@pitch@barvepisema}{#1}{\GreCPVEpisema}{1}{}%
- \relax %
+ \gre@vepisemaorrare{\gre@pitch@barvepisema}{#1}{\GreCPVEpisema}{1}{}%
+ \relax %
}%
\def\GreAccentus#1#2{%
- \gre@vepisemaorrare{#1}{#2}{\GreCPAccentus}{2}{}%
- \relax %
+ \gre@vepisemaorrare{#1}{#2}{\GreCPAccentus}{2}{}%
+ \relax %
}%
\def\GreSemicirculus#1#2{%
- \gre@vepisemaorrare{#1}{#2}{\GreCPSemicirculus}{2}{}%
- \relax %
+ \gre@vepisemaorrare{#1}{#2}{\GreCPSemicirculus}{2}{}%
+ \relax %
}%
\def\GreCirculus#1#2{%
- \gre@vepisemaorrare{#1}{#2}{\GreCPCirculus}{2}{}%
- \relax %
+ \gre@vepisemaorrare{#1}{#2}{\GreCPCirculus}{2}{}%
+ \relax %
}%
\def\GreReversedAccentus#1#2{%
- \gre@vepisemaorrare{#1}{#2}{\GreCPAccentusReversus}{2}{}%
- \relax %
+ \gre@vepisemaorrare{#1}{#2}{\GreCPAccentusReversus}{2}{}%
+ \relax %
}%
\def\GreReversedSemicirculus#1#2{%
- \gre@vepisemaorrare{#1}{#2}{\GreCPSemicirculusReversus}{2}{}%
- \relax %
+ \gre@vepisemaorrare{#1}{#2}{\GreCPSemicirculusReversus}{2}{}%
+ \relax %
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1262,75 +1283,71 @@
% end of #1
% #4 argument is the same as in hepisorline
\def\gre@hepisorlineaux#1#2#3#4{%
- \ifcase#3% case 0
- % first we set \gre@dimen@temp@three to the width of the last glyph
- \gre@dimen@temp@three=\gre@dimen@lastglyphwidth\relax%
- \or % case 1
- \gre@dimen@temp@three=0 pt\relax %
- \or % case 2
- \setbox\gre@box@temp@sign=\hbox{\gre@font@music #1}%
- \gre@dimen@temp@three=\wd\gre@box@temp@sign%
- \or % case 3
- \setbox\gre@box@temp@sign=\hbox{\gre@font@music #1}%
- \gre@dimen@temp@three=\dimexpr(\gre@dimen@lastglyphwidth - \wd\gre@box@temp@sign)\relax %
- \or % case 4
- \setbox\gre@box@temp@sign=\hbox{\gre@font@music #1}%
- \gre@dimen@temp@three=\dimexpr(\gre@dimen@lastglyphwidth - \wd\gre@box@temp@sign)\relax %
- \setbox\gre@box@temp@sign=\hbox{\gre@font@music #2}%
- \advance\gre@dimen@temp@three by \wd\gre@box@temp@sign %
- \fi%
- \kern-\gre@dimen@temp@three %
- % then we draw the sign, and go back to the beginning of the sign
- \setbox\gre@box@temp@sign=\hbox{\gre@font@music#2}%
- % we set tempwidth to half a punctum malus half the sign width, so that the centers are aligned
- \gre@dimen@temp@two=\wd\gre@box@temp@sign %
- \ifcase#4%
- %case of hepisema
- \raise \gre@dimen@glyphraisevalue \copy\gre@box@temp@sign %
- \or %
- %case of hepisema at the bottom
- \raise \gre@dimen@glyphraisevalue \copy\gre@box@temp@sign %
- \or % case of a line at the top
- \ifnum\gre@count@lastglyphiscavum=2\relax %
- \gre@drawadditionalline{0}{\gre@dimen@temp@two}{0}{}{1}{}%
- \else %
- \gre@drawadditionalline{0}{\gre@dimen@temp@two}{1}{}{1}{}%
- \fi %
- \gre@dimen@temp@two=0pt\relax %
- \or % case of a line at the bottom
- \ifnum\gre@count@lastglyphiscavum=2\relax %
- \gre@drawadditionalline{1}{\gre@dimen@temp@two}{0}{}{1}{}%
- \else %
- \gre@drawadditionalline{1}{\gre@dimen@temp@two}{1}{}{1}{}%
- \fi %
- \gre@dimen@temp@two=0pt\relax %
- \or %
- %case of choral sign
- \raise \gre@dimen@glyphraisevalue \copy\gre@box@temp@sign %
- \or %
- \fi %
- % and finally we go back to the end of the glyph, where we were first
- \advance\gre@dimen@temp@three by -\gre@dimen@temp@two %
- \kern\gre@dimen@temp@three %
- \relax%
+ \ifcase#3% case 0
+ % first we set \gre@dimen@temp@three to the width of the last glyph
+ \gre@dimen@temp@three=\gre@dimen@lastglyphwidth\relax%
+ \or % case 1
+ \gre@dimen@temp@three=0 pt\relax %
+ \or % case 2
+ \setbox\gre@box@temp@sign=\hbox{\gre@font@music #1}%
+ \gre@dimen@temp@three=\wd\gre@box@temp@sign%
+ \or % case 3
+ \setbox\gre@box@temp@sign=\hbox{\gre@font@music #1}%
+ \gre@dimen@temp@three=\dimexpr(\gre@dimen@lastglyphwidth - \wd\gre@box@temp@sign)\relax %
+ \or % case 4
+ \setbox\gre@box@temp@sign=\hbox{\gre@font@music #1}%
+ \gre@dimen@temp@three=\dimexpr(\gre@dimen@lastglyphwidth - \wd\gre@box@temp@sign)\relax %
+ \setbox\gre@box@temp@sign=\hbox{\gre@font@music #2}%
+ \advance\gre@dimen@temp@three by \wd\gre@box@temp@sign %
+ \fi%
+ \kern-\gre@dimen@temp@three %
+ % then we draw the sign, and go back to the beginning of the sign
+ \setbox\gre@box@temp@sign=\hbox{\gre@font@music#2}%
+ % we set tempwidth to half a punctum malus half the sign width, so that the centers are aligned
+ \gre@dimen@temp@two=\wd\gre@box@temp@sign %
+ \ifcase#4%
+ %case of hepisema
+ \raise \gre@dimen@glyphraisevalue \copy\gre@box@temp@sign %
+ \or %
+ %case of hepisema at the bottom
+ \raise \gre@dimen@glyphraisevalue \copy\gre@box@temp@sign %
+ \or % case of a line at the top
+ \ifnum\gre@count@lastglyphiscavum=2\relax %
+ \gre@drawadditionalline{0}{\gre@dimen@temp@two}{0}{}{1}{}%
+ \else %
+ \gre@drawadditionalline{0}{\gre@dimen@temp@two}{1}{}{1}{}%
+ \fi %
+ \gre@dimen@temp@two=0pt\relax %
+ \or % case of a line at the bottom
+ \ifnum\gre@count@lastglyphiscavum=2\relax %
+ \gre@drawadditionalline{1}{\gre@dimen@temp@two}{0}{}{1}{}%
+ \else %
+ \gre@drawadditionalline{1}{\gre@dimen@temp@two}{1}{}{1}{}%
+ \fi %
+ \gre@dimen@temp@two=0pt\relax %
+ \or %
+ %case of choral sign
+ \raise \gre@dimen@glyphraisevalue \copy\gre@box@temp@sign %
+ \or %
+ \fi %
+ % and finally we go back to the end of the glyph, where we were first
+ \advance\gre@dimen@temp@three by -\gre@dimen@temp@two %
+ \kern\gre@dimen@temp@three %
+ \relax%
}%
% another dumb top function
\def\GreAdditionalLine#1#2#3{%
- \ifgre@showlines %
- \ifgre@boxing\else %
- \xdef\gre@dimen@savedglyphraise{\the\gre@dimen@glyphraisevalue}%
- \gre@style@additionalstafflines %
- \ifx\gre@empty@additionalstafflinesformat\greadditionalstafflinesformat% OBSOLETE
- \else % OBSOLETE
- \gre@obsolete{\protect\greadditionalstafflinesformat}{\protect\grechangestyle{additionalstafflinesformat}}% OBSOLETE
- \fi% OBSOLETE
- \gre@hepisorline{\gre@pitch@dummy}{#1}{#2}{#3}{f}{}{}%
- \endgre@style@additionalstafflines%
- \gre@dimen@glyphraisevalue=\gre@dimen@savedglyphraise\relax%
- \fi %
- \fi %
- \relax %
+ \ifgre@showlines %
+ \ifgre@boxing\else %
+ \xdef\gre@dimen@savedglyphraise{\the\gre@dimen@glyphraisevalue}%
+ \gre@style@additionalstafflines %
+ \gre@hepisorline{\gre@pitch@dummy}{#1}{#2}{#3}{f}{}{}%
+ \endgre@style@additionalstafflines%
+ \gre@dimen@glyphraisevalue=\gre@dimen@savedglyphraise\relax%
+ \fi %
+ \fi %
+ \relax %
}%
% #1 0 for over staff,
@@ -1345,60 +1362,56 @@
% 2 for #6 space after
% #6 custom space after, used if #4 is 2
\def\GreDrawAdditionalLine#1#2#3#4#5#6{%
- \ifgre@showlines %
- \xdef\gre@dimen@savedglyphraise{\the\gre@dimen@glyphraisevalue}%
- \gre@style@additionalstafflines %
- \ifx\gre@empty@additionalstafflinesformat\greadditionalstafflinesformat% OBSOLETE
- \else % OBSOLETE
- \gre@obsolete{\protect\greadditionalstafflinesformat}{\protect\grechangestyle{additionalstafflinesformat}}% OBSOLETE
- \fi% OBSOLETE
- \gre@drawadditionalline{#1}{#2}{#3}{#4}{#5}{#6}%
- \endgre@style@additionalstafflines%
- \gre@dimen@glyphraisevalue=\gre@dimen@savedglyphraise\relax%
- \fi %
- \relax %
+ \ifgre@showlines %
+ \xdef\gre@dimen@savedglyphraise{\the\gre@dimen@glyphraisevalue}%
+ \gre@style@additionalstafflines %
+ \gre@drawadditionalline{#1}{#2}{#3}{#4}{#5}{#6}%
+ \endgre@style@additionalstafflines%
+ \gre@dimen@glyphraisevalue=\gre@dimen@savedglyphraise\relax%
+ \fi %
+ \relax %
}
\def\gre@drawadditionalline#1#2#3#4#5#6{%
- \ifcase#3 % 0
- \gre@dimen@temp@five=0pt\relax %
- \or % 1
- \gre@dimen@temp@five=\gre@space@dimen@additionallineswidth\relax %
- \or % 2
- \gre@dimen@temp@five=#4\relax %
- \fi %
- \ifcase#5 % 0
- \gre@dimen@temp@four=0pt\relax %
- \or % 1
- \gre@dimen@temp@four=\gre@space@dimen@additionallineswidth\relax %
- \or % 2
- \gre@dimen@temp@four=#6\relax %
- \fi %
- \gre@dimen@temp@two=%
- \dimexpr(#2 %
- + \gre@dimen@temp@five %
- + \gre@dimen@temp@four)\relax %
- \ifcase#1 % 0
- \gre@dimen@glyphraisevalue=%
- \dimexpr(\gre@dimen@additionalbottomspace %
- + \gre@space@dimen@spacebeneathtext %
- + \gre@space@dimen@spacelinestext %
- + \gre@dimen@currenttranslationheight %
- + \gre@stafflines\gre@dimen@interstafflinespace %
- + \gre@stafflines\gre@dimen@stafflineheight)\relax%
- \or % 1
- \gre@dimen@glyphraisevalue=%
- \dimexpr(\gre@dimen@additionalbottomspace %
- + \gre@space@dimen@spacebeneathtext %
- + \gre@space@dimen@spacelinestext %
- + \gre@dimen@currenttranslationheight %
- - \gre@dimen@interstafflinespace %
- - \gre@dimen@stafflineheight)\relax%
- \fi %
- \raise\gre@dimen@glyphraisevalue\hbox to 0pt{%
- \kern-\gre@dimen@temp@five %
- \vrule height \gre@dimen@stafflineheight %
- width \gre@dimen@temp@two %
- }%
+ \ifcase#3 % 0
+ \gre@dimen@temp@five=0pt\relax %
+ \or % 1
+ \gre@dimen@temp@five=\gre@space@dimen@additionallineswidth\relax %
+ \or % 2
+ \gre@dimen@temp@five=#4\relax %
+ \fi %
+ \ifcase#5 % 0
+ \gre@dimen@temp@four=0pt\relax %
+ \or % 1
+ \gre@dimen@temp@four=\gre@space@dimen@additionallineswidth\relax %
+ \or % 2
+ \gre@dimen@temp@four=#6\relax %
+ \fi %
+ \gre@dimen@temp@two=%
+ \dimexpr(#2 %
+ + \gre@dimen@temp@five %
+ + \gre@dimen@temp@four)\relax %
+ \ifcase#1 % 0
+ \gre@dimen@glyphraisevalue=%
+ \dimexpr(\gre@dimen@additionalbottomspace %
+ + \gre@space@dimen@spacebeneathtext %
+ + \gre@space@dimen@spacelinestext %
+ + \gre@dimen@currenttranslationheight %
+ + \gre@stafflines\gre@dimen@interstafflinespace %
+ + \gre@stafflines\gre@dimen@stafflineheight)\relax%
+ \or % 1
+ \gre@dimen@glyphraisevalue=%
+ \dimexpr(\gre@dimen@additionalbottomspace %
+ + \gre@space@dimen@spacebeneathtext %
+ + \gre@space@dimen@spacelinestext %
+ + \gre@dimen@currenttranslationheight %
+ - \gre@dimen@interstafflinespace %
+ - \gre@dimen@stafflineheight)\relax%
+ \fi %
+ \raise\gre@dimen@glyphraisevalue\hbox to 0pt{%
+ \kern-\gre@dimen@temp@five %
+ \vrule height \gre@dimen@stafflineheight %
+ width \gre@dimen@temp@two %
+ }%
}
% a function to typeset a horizontal line (additional line or episema).
@@ -1423,19 +1436,19 @@
%% 4 : low in space below note
%% 5 : high in space below note
\def\gre@hepisorline#1#2#3#4#5#6#7{{%
- \ifcase#4 % 0
- \gre@calculate@glyphraisevalue{#1}{9}{#7}%
- \or % 1
- \gre@calculate@glyphraisevalue{#1}{5}{#7}%
- \or % 2
- % the glyphraisevalue is ignored anyway... but it's just in case...
- \gre@calculate@glyphraisevalue{\gre@pitch@ledger@above}{0}{}%
- \or % 3
- \gre@calculate@glyphraisevalue{\gre@pitch@ledger@below}{0}{}%
- \fi %
- \global\gre@dimen@glyphraisevalue=\dimexpr\gre@dimen@glyphraisevalue#6\relax %
- \gre@h@case{#2}{#3}{#4}{#5}%
- \relax%
+ \ifcase#4 % 0
+ \gre@calculate@glyphraisevalue{#1}{9}{#7}%
+ \or % 1
+ \gre@calculate@glyphraisevalue{#1}{5}{#7}%
+ \or % 2
+ % the glyphraisevalue is ignored anyway... but it's just in case...
+ \gre@calculate@glyphraisevalue{\gre@pitch@ledger@above}{0}{}%
+ \or % 3
+ \gre@calculate@glyphraisevalue{\gre@pitch@ledger@below}{0}{}%
+ \fi %
+ \global\gre@dimen@glyphraisevalue=\dimexpr\gre@dimen@glyphraisevalue#6\relax %
+ \gre@h@case{#2}{#3}{#4}{#5}%
+ \relax%
}}%
% dumb top function
@@ -1451,39 +1464,31 @@
%% 4 : low in space below note
%% 5 : high in space below note
\def\GreHEpisema#1#2#3#4#5#6#7#8#9{%
- \ifgre@boxing\else\ifgre@disablehepisema\else %
- \gre@prephepisemaledgerlineheuristics%
- #7%
- \ifgre@hepisemabridge%
- \gre@hepisorline{#6}{#2}{#3}{#4}{#5}{#8}{#9}%
- \else %
- \gre@hepisorline{#1}{#2}{#3}{#4}{#5}{#8}{#9}%
- \fi %
- \gre@resetledgerlineheuristics%
- \fi\fi %
- \relax %
+ \ifgre@boxing\else\ifgre@disablehepisema\else %
+ \gre@prephepisemaledgerlineheuristics%
+ #7%
+ \ifgre@hepisemabridge%
+ \gre@hepisorline{#6}{#2}{#3}{#4}{#5}{#8}{#9}%
+ \else %
+ \gre@hepisorline{#1}{#2}{#3}{#4}{#5}{#8}{#9}%
+ \fi %
+ \gre@resetledgerlineheuristics%
+ \fi\fi %
+ \relax %
}%
\newif\ifgre@hepisemabridge
\gre@hepisemabridgetrue
-\def\AddHEpisemusBridges{%OBSOLETE
- \gre@obsolete{\protect\AddHEpisemusBridges}{\protect\gresethepisema{bridge}}%
-}%
-
-\def\RemoveHEpisemusBridges{%OBSOLETE
- \gre@obsolete{\protect\RemoveHEpisemusBridges}{\protect\gresethepisema{break}}%
-}%
-
\def\gresethepisema#1{%
- \IfStrEqCase{#1}{%
- {bridge}%
- {\gre@hepisemabridgetrue}%
- {break}%
- {\gre@hepisemabridgefalse}%
- }[% all other cases
- \gre@error{Unrecognized option, #1, for \protect\gresethepisema\MessageBreak Possible options are: 'bridge' and 'break'}%
- ]%
+ \IfStrEqCase{#1}{%
+ {bridge}%
+ {\gre@hepisemabridgetrue}%
+ {break}%
+ {\gre@hepisemabridgefalse}%
+ }[% all other cases
+ \gre@error{Unrecognized option, #1, for \protect\gresethepisema\MessageBreak Possible options are: 'bridge' and 'break'}%
+ ]%
}%
% same but for a "bridge episema" after the last note of a glyph (element, syllable) if the next episema is at the same height
@@ -1500,38 +1505,38 @@
%% 4 : low in space below note
%% 5 : high in space below note
\def\GreHEpisemaBridge#1#2#3#4#5#6{%
- \ifgre@hepisemabridge%
- \ifgre@boxing\else %
- \gre@prephepisemaledgerlineheuristics%
- #4%
- \ifcase#2 %
- \gre@calculate@glyphraisevalue{#1}{9}{#6}%
- \or %
- \gre@calculate@glyphraisevalue{#1}{5}{#6}%
- \fi %
- \global\gre@dimen@glyphraisevalue=\dimexpr\gre@dimen@glyphraisevalue#5\relax %
- \IfStrEq{-1}{#3}{%
- \raise\gre@dimen@glyphraisevalue\hbox to 0pt{\gre@font@music\gre@char@he@punctum{f}\hss}%
- }{%
- % special handling for punctum inclinatum
- \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPHEpisemaPunctumReduced}%
- \gre@dimen@temp@four = \wd\gre@box@temp@width\relax %
- \gre@get@spaceskip{#3}%
- % convert rubber length to dimension... not perfect but works in the usual case
- \gre@dimen@temp@three = 1\gre@skip@temp@four\relax %
- \raise\gre@dimen@glyphraisevalue\hbox to 0pt{%
- \loop\ifdim\gre@dimen@temp@three > 0pt\relax%
- \advance\gre@dimen@temp@three by -\gre@dimen@temp@four\relax %
- {\gre@font@music\GreCPHEpisemaPunctumReduced}%
- \repeat %
- \kern\gre@dimen@temp@three{\gre@font@music\GreCPHEpisemaPunctumReduced}%
- \hss %
- }%
- }%
- \gre@resetledgerlineheuristics%
- \fi %
- \fi %
- \relax %
+ \ifgre@hepisemabridge%
+ \ifgre@boxing\else %
+ \gre@prephepisemaledgerlineheuristics%
+ #4%
+ \ifcase#2 %
+ \gre@calculate@glyphraisevalue{#1}{9}{#6}%
+ \or %
+ \gre@calculate@glyphraisevalue{#1}{5}{#6}%
+ \fi %
+ \global\gre@dimen@glyphraisevalue=\dimexpr\gre@dimen@glyphraisevalue#5\relax %
+ \IfStrEq{-1}{#3}{%
+ \raise\gre@dimen@glyphraisevalue\hbox to 0pt{\gre@font@music\gre@char@he@punctum{f}\hss}%
+ }{%
+ % special handling for punctum inclinatum
+ \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPHEpisemaPunctumReduced}%
+ \gre@dimen@temp@four = \wd\gre@box@temp@width\relax %
+ \gre@get@spaceskip{#3}%
+ % convert rubber length to dimension... not perfect but works in the usual case
+ \gre@dimen@temp@three = 1\gre@skip@temp@four\relax %
+ \raise\gre@dimen@glyphraisevalue\hbox to 0pt{%
+ \loop\ifdim\gre@dimen@temp@three > 0pt\relax%
+ \advance\gre@dimen@temp@three by -\gre@dimen@temp@four\relax %
+ {\gre@font@music\GreCPHEpisemaPunctumReduced}%
+ \repeat %
+ \kern\gre@dimen@temp@three{\gre@font@music\GreCPHEpisemaPunctumReduced}%
+ \hss %
+ }%
+ }%
+ \gre@resetledgerlineheuristics%
+ \fi %
+ \fi %
+ \relax %
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1541,134 +1546,134 @@
% we define two types of macro for each four bar : when it is inside a syllable, and when it is not
\def\GreInVirgula#1#2{%
- \gre@writebar{0}{1}{#1}{#2}%
- \relax%
+ \gre@writebar{0}{1}{#1}{#2}%
+ \relax%
}%
\def\GreVirgula#1#2{%
- \gre@writebar{0}{0}{#1}{#2}%
- \relax%
+ \gre@writebar{0}{0}{#1}{#2}%
+ \relax%
}%
\def\GreInDivisioMinima#1#2{%
- \gre@writebar{1}{1}{#1}{#2}%
- \relax%
+ \gre@writebar{1}{1}{#1}{#2}%
+ \relax%
}%
\def\GreDivisioMinima#1#2{%
- \gre@writebar{1}{0}{#1}{#2}%
- \relax%
+ \gre@writebar{1}{0}{#1}{#2}%
+ \relax%
}%
\def\GreInDivisioMinor#1#2{%
- \gre@writebar{2}{1}{#1}{#2}%
- \relax%
+ \gre@writebar{2}{1}{#1}{#2}%
+ \relax%
}%
\def\GreDivisioMinor#1#2{%
- \gre@writebar{2}{0}{#1}{#2}%
- \relax%
+ \gre@writebar{2}{0}{#1}{#2}%
+ \relax%
}%
\def\GreInDivisioMaior#1#2{%
- \gre@writebar{3}{1}{#1}{#2}%
- \relax%
+ \gre@writebar{3}{1}{#1}{#2}%
+ \relax%
}%
\def\GreDivisioMaior#1#2{%
- \gre@writebar{3}{0}{#1}{#2}%
- \relax%
+ \gre@writebar{3}{0}{#1}{#2}%
+ \relax%
}%
\def\GreDominica#1#2#3{%
- \ifcase#1\or %
- \gre@writebar{6}{0}{#2}{#3}%
- \or %
- \gre@writebar{7}{0}{#2}{#3}%
- \or %
- \gre@writebar{8}{0}{#2}{#3}%
- \or %
- \gre@writebar{9}{0}{#2}{#3}%
- \or %
- \gre@writebar{10}{0}{#2}{#3}%
- \or %
- \gre@writebar{11}{0}{#2}{#3}%
- \or %
- \gre@writebar{12}{0}{#2}{#3}%
- \or %
- \gre@writebar{13}{0}{#2}{#3}%
- \fi %
- \relax%
+ \ifcase#1\or %
+ \gre@writebar{6}{0}{#2}{#3}%
+ \or %
+ \gre@writebar{7}{0}{#2}{#3}%
+ \or %
+ \gre@writebar{8}{0}{#2}{#3}%
+ \or %
+ \gre@writebar{9}{0}{#2}{#3}%
+ \or %
+ \gre@writebar{10}{0}{#2}{#3}%
+ \or %
+ \gre@writebar{11}{0}{#2}{#3}%
+ \or %
+ \gre@writebar{12}{0}{#2}{#3}%
+ \or %
+ \gre@writebar{13}{0}{#2}{#3}%
+ \fi %
+ \relax%
}%
\def\GreInDominica#1#2#3{%
- \ifcase#1\or %
- \gre@writebar{6}{1}{#2}{#3}%
- \or %
- \gre@writebar{7}{1}{#2}{#3}%
- \or %
- \gre@writebar{8}{1}{#2}{#3}%
- \or %
- \gre@writebar{9}{1}{#2}{#3}%
- \or %
- \gre@writebar{10}{1}{#2}{#3}%
- \or %
- \gre@writebar{11}{1}{#2}{#3}%
- \or %
- \gre@writebar{12}{1}{#2}{#3}%
- \or %
- \gre@writebar{13}{1}{#2}{#3}%
- \fi %
- \relax%
+ \ifcase#1\or %
+ \gre@writebar{6}{1}{#2}{#3}%
+ \or %
+ \gre@writebar{7}{1}{#2}{#3}%
+ \or %
+ \gre@writebar{8}{1}{#2}{#3}%
+ \or %
+ \gre@writebar{9}{1}{#2}{#3}%
+ \or %
+ \gre@writebar{10}{1}{#2}{#3}%
+ \or %
+ \gre@writebar{11}{1}{#2}{#3}%
+ \or %
+ \gre@writebar{12}{1}{#2}{#3}%
+ \or %
+ \gre@writebar{13}{1}{#2}{#3}%
+ \fi %
+ \relax%
}%
\def\GreInDivisioFinalis#1#2{%
- \ifgre@endofscore %
- \gre@writebar{5}{1}{#1}{#2}%
- \else %
- \gre@writebar{4}{1}{#1}{#2}%
- \fi %
- \relax%
+ \ifgre@endofscore %
+ \gre@writebar{5}{1}{#1}{#2}%
+ \else %
+ \gre@writebar{4}{1}{#1}{#2}%
+ \fi %
+ \relax%
}%
\def\GreDivisioFinalis#1#2{%
- \ifgre@endofscore %
- \gre@writebar{5}{0}{#1}{#2}%
- \else %
- \gre@writebar{4}{0}{#1}{#2}%
- \fi %
- \relax%
+ \ifgre@endofscore %
+ \gre@writebar{5}{0}{#1}{#2}%
+ \else %
+ \gre@writebar{4}{0}{#1}{#2}%
+ \fi %
+ \relax%
}%
% #1 is #2 of gre@writebar
% #2 is #3 of gre@writebar
% emits the suffix of the space
\def\gre@bar@space@suffix#1#2{%
- \ifcase#1\ifgre@newbarspacing %
- \ifcase#2 @standalone@notext\or @standalone@text\fi %
- \fi\fi %
+ \ifcase#1\ifgre@newbarspacing %
+ \ifcase#2 @standalone@notext\or @standalone@text\fi %
+ \fi\fi %
}%
\newcount\gre@count@shiftaftermora
\gre@count@shiftaftermora=5
\def\gresetshiftaftermora#1{%
- \IfStrEqCase{#1}{%
- {always}%
- {\gre@count@shiftaftermora=5}%
- {notesonly}%
- {\gre@count@shiftaftermora=4}%
- {barsonly}%
- {\gre@count@shiftaftermora=3}%
- {barsnotextonly}%
- {\gre@count@shiftaftermora=2}%
- {barsinsideonly}%
- {\gre@count@shiftaftermora=1}%
- {never}%
- {\gre@count@shiftaftermora=0}%
- }[% all other cases
- \gre@error{Unrecognized option "#1" in gresetshiftaftermora\MessageBreak Possible options are: 'always', 'barsonly', 'notesonly', 'barsnotextonly', 'barsinsideonly' and 'never'}%
- ]%
+ \IfStrEqCase{#1}{%
+ {always}%
+ {\gre@count@shiftaftermora=5}%
+ {notesonly}%
+ {\gre@count@shiftaftermora=4}%
+ {barsonly}%
+ {\gre@count@shiftaftermora=3}%
+ {barsnotextonly}%
+ {\gre@count@shiftaftermora=2}%
+ {barsinsideonly}%
+ {\gre@count@shiftaftermora=1}%
+ {never}%
+ {\gre@count@shiftaftermora=0}%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" in gresetshiftaftermora\MessageBreak Possible options are: 'always', 'barsonly', 'notesonly', 'barsnotextonly', 'barsinsideonly' and 'never'}%
+ ]%
}%
% width of a punctum mora, reinitalized at each score
@@ -1681,36 +1686,36 @@
% - 1 for the general case
% - 2 when the punctum mora is before a bar
\def\gre@get@unkern@aftermora#1{%
- \ifdim\gre@dimen@morawidth=0pt\relax %
- \setbox\gre@box@temp@width=\hbox{\gre@font@music\gre@fontchar@punctummora}%
- \global\gre@dimen@morawidth=\wd\gre@box@temp@width %
- \fi %
- \ifnum #1=1%
- \global\gre@skip@punctummorashift=\glueexpr - \gre@dimen@morawidth - \gre@space@skip@spacebeforesigns + \gre@space@skip@moraadjustment\relax %
- \else %
- \global\gre@skip@punctummorashift=\glueexpr - \gre@dimen@morawidth - \gre@space@skip@spacebeforesigns + \gre@space@skip@moraadjustmentbar\relax %
- \fi %
- \relax %
+ \ifdim\gre@dimen@morawidth=0pt\relax %
+ \setbox\gre@box@temp@width=\hbox{\gre@font@music\gre@fontchar@punctummora}%
+ \global\gre@dimen@morawidth=\wd\gre@box@temp@width %
+ \fi %
+ \ifnum #1=1%
+ \global\gre@skip@punctummorashift=\glueexpr - \gre@dimen@morawidth - \gre@space@skip@spacebeforesigns + \gre@space@skip@moraadjustment\relax %
+ \else %
+ \global\gre@skip@punctummorashift=\glueexpr - \gre@dimen@morawidth - \gre@space@skip@spacebeforesigns + \gre@space@skip@moraadjustmentbar\relax %
+ \fi %
+ \relax %
}
\def\gre@unkern@bar@aftermora{%
- \ifgre@newbarspacing%
- % don't apply a negative kern on the first glyph
- % while boxing, otherwise the box width will be wrong
- \ifgre@firstglyph %
- \ifgre@boxing\else %
- \gre@get@unkern@aftermora{2}%
- \kern\gre@skip@punctummorashift %
- \fi %
- \else %
- \gre@get@unkern@aftermora{2}%
- \kern\gre@skip@punctummorashift %
- \fi %
- \else%
- \gre@get@unkern@aftermora{2}%
- \kern\gre@skip@punctummorashift %
- \fi%
- \relax %
+ \ifgre@newbarspacing%
+ % don't apply a negative kern on the first glyph
+ % while boxing, otherwise the box width will be wrong
+ \ifgre@firstglyph %
+ \ifgre@boxing\else %
+ \gre@get@unkern@aftermora{2}%
+ \kern\gre@skip@punctummorashift %
+ \fi %
+ \else %
+ \gre@get@unkern@aftermora{2}%
+ \kern\gre@skip@punctummorashift %
+ \fi %
+ \else%
+ \gre@get@unkern@aftermora{2}%
+ \kern\gre@skip@punctummorashift %
+ \fi%
+ \relax %
}
\newskip\gre@skip@bar@lastskip% skip after last bar
@@ -1721,295 +1726,296 @@
%% 3: is 0 if there's no text under the bar or 1 if there is text under the bar
%% 4: macros that may happen before the skip after the bar (typically GreVEpisema)
\def\gre@writebar#1#2#3#4{%
- % first, for the bar to be really centered, if the last glyph has a punctum
- % mora, we kern of the corresponding space. We do it only in the case
- % of a bar in the middle of other notes.
- \ifgre@lastendswithmora %
- \ifgre@newbarspacing %
- \ifnum\gre@count@shiftaftermora=0\else\ifnum\gre@count@shiftaftermora=4\else %
- % new bar spacing takes care of punctum mora on its own, but only when
- % bar has its own syllable
- \ifcase #2\or %
- \gre@unkern@bar@aftermora %
- \fi %
- \fi\fi %
- \else %
- \ifcase\gre@count@shiftaftermora\or %
- % barsinsideonly
- \ifcase #2\or %
- \gre@unkern@bar@aftermora %
- \fi %
- \or %
- % barsnotextonly
- \ifcase #3\relax %
- \gre@unkern@bar@aftermora %
- \fi %
- \or %
- % barsonly
- \gre@unkern@bar@aftermora %
- \or\or %
- % always
- \gre@unkern@bar@aftermora %
- \fi %
- \fi %
- \fi %
- \gre@newglyphcommon %
- \gre@calculate@glyphraisevalue{\gre@pitch@bar}{0}{}% bar glyphs are made to be at this height
- \GreNoBreak %
- % count indicating if we have to output space or not:
- \gre@count@temp@one=0\relax %
- \ifnum#2=1\relax %
- \gre@count@temp@one=1\relax %
- \else %
- \ifgre@newbarspacing %
- \gre@count@temp@one=1\relax %
- \fi %
- \fi %
- \gre@skip@temp@four=0pt\relax %
- \ifcase#1 % 0 : virgula
- \ifnum\gre@count@temp@one=1\relax %
- \gre@skip@temp@four = \csname gre@space@skip@bar@virgula\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
- \gre@hskip\gre@skip@temp@four %
- \GreNoBreak %
- \fi %
- \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPVirgula}%
- \raise\gre@dimen@glyphraisevalue\hbox{\gre@font@music\GreCPVirgula}%
- #4\relax %
- \ifnum\gre@count@temp@one=1\relax %
- \GreNoBreak %
- \gre@skip@temp@four = \csname gre@space@skip@bar@virgula\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
- \gre@hskip\gre@skip@temp@four %
- \fi %
- \or % 1 : minima
- \ifnum\gre@count@temp@one=1\relax %
- \gre@skip@temp@four = \csname gre@space@skip@bar@minima\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
- \gre@hskip\gre@skip@temp@four %
- \GreNoBreak %
- \fi %
- \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioMinima}%
- \raise\gre@dimen@glyphraisevalue\hbox{\gre@font@music\GreCPDivisioMinima}%
- #4\relax %
- \ifnum\gre@count@temp@one=1\relax %
- \GreNoBreak %
- \gre@skip@temp@four = \csname gre@space@skip@bar@minima\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
- \gre@hskip\gre@skip@temp@four %
- \fi %
- \or % 2 : minor
- \ifnum\gre@count@temp@one=1\relax %
- \gre@skip@temp@four = \csname gre@space@skip@bar@minor\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
- \gre@hskip\gre@skip@temp@four %
- \GreNoBreak %
- \fi %
- \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioMinor}%
- \raise\gre@dimen@glyphraisevalue\hbox{\gre@font@music\GreCPDivisioMinor}%
- #4\relax %
- \ifnum\gre@count@temp@one=1\relax %
- \GreNoBreak %
- \gre@skip@temp@four = \csname gre@space@skip@bar@minor\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
- \gre@hskip\gre@skip@temp@four %
- \fi %
- \or % 3 : maior
- \ifnum\gre@count@temp@one=1\relax %
- \gre@skip@temp@four = \csname gre@space@skip@bar@maior\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
- \gre@hskip\gre@skip@temp@four %
- \GreNoBreak %
- \fi %
- \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioMaior}%
- \gre@fontchar@divisiomaior %
- #4\relax %
- \ifnum\gre@count@temp@one=1\relax %
- \GreNoBreak %
- \gre@skip@temp@four = \csname gre@space@skip@bar@maior\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
- \gre@hskip\gre@skip@temp@four %
- \fi %
- \or % 4 : finalis
- \ifnum\gre@count@temp@one=1\relax %
- \gre@skip@temp@four = \csname gre@space@skip@bar@finalis\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
- \gre@hskip\gre@skip@temp@four %
- \GreNoBreak %
- \fi %
- \setbox\gre@box@temp@width=\hbox{\gre@fontchar@divisiofinalis}%
- #4\relax %
- \gre@fontchar@divisiofinalis%
- \ifnum\gre@count@temp@one=1\relax %
- \GreNoBreak %
- \gre@skip@temp@four = \csname gre@space@skip@bar@finalis\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
- \gre@hskip\gre@skip@temp@four %
- \fi %
- \or % 5 : final finalis
- \ifnum\gre@count@temp@one=1\relax %
- \gre@skip@temp@four = \csname gre@space@skip@bar@finalfinalis\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
- \gre@hskip\gre@skip@temp@four %
- \GreNoBreak %
- \fi %
- \setbox\gre@box@temp@width=\hbox{\gre@fontchar@divisiofinalis}%
- #4\relax %
- \gre@fontchar@divisiofinalis%
- \ifgre@newbarspacing %
- \GreNoBreak %
- \gre@skip@temp@four = \csname gre@space@skip@bar@finalfinalis\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
- \gre@hskip\gre@skip@temp@four %
- \GreNoBreak %
- \fi %
- \or % 6 : dominican bar 1
- \gre@calculate@glyphraisevalue{\gre@pitch@e}{0}{}%
- % we need to adjust the height of the bar a little so that it is perfectly aligned with the bottom (or the top for some bars) of the staff line, which is not the case by default if \gre@stafflinefactor is not 10.
- \advance\gre@dimen@glyphraisevalue by -\gre@dimen@stafflinediff\relax%
- \ifnum\gre@count@temp@one=1\relax %
- \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
- \gre@hskip\gre@skip@temp@four %
- \GreNoBreak %
- \fi %
- \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioDominican}%
- \raise\gre@dimen@glyphraisevalue\hbox{\gre@font@music\GreCPDivisioDominican}%
- #4\relax %
- \ifnum\gre@count@temp@one=1\relax %
- \GreNoBreak %
- \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
- \gre@hskip\gre@skip@temp@four %
- \fi %
- \or % 7 : dominican bar 2
- \gre@calculate@glyphraisevalue{\gre@pitch@e}{0}{}%
- \advance\gre@dimen@glyphraisevalue by \gre@dimen@stafflinediff\relax%
- \ifnum\gre@count@temp@one=1\relax %
- \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
- \gre@hskip\gre@skip@temp@four %
- \GreNoBreak %
- \fi %
- \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioDominicanAlt}%
- \raise\gre@dimen@glyphraisevalue\hbox{\gre@font@music\GreCPDivisioDominicanAlt}%
- #4\relax %
- \ifnum\gre@count@temp@one=1\relax %
- \GreNoBreak %
- \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
- \gre@hskip\gre@skip@temp@four %
- \fi %
- \or % 8 : dominican bar 3
- \ifnum\gre@count@temp@one=1\relax %
- \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
- \gre@hskip\gre@skip@temp@four %
- \GreNoBreak %
- \fi %
- \advance\gre@dimen@glyphraisevalue by -\gre@dimen@stafflinediff\relax%
- \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioDominican}%
- \raise\gre@dimen@glyphraisevalue\hbox{\gre@font@music\GreCPDivisioDominican}%
- #4\relax %
- \ifnum\gre@count@temp@one=1\relax %
- \GreNoBreak %
- \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
- \gre@hskip\gre@skip@temp@four %
- \fi %
- \or % 9 : dominican bar 4
- \ifnum\gre@count@temp@one=1\relax %
- \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
- \gre@hskip\gre@skip@temp@four %
- \GreNoBreak %
- \fi %
- \advance\gre@dimen@glyphraisevalue by \gre@dimen@stafflinediff\relax%
- \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioDominicanAlt}%
- \raise\gre@dimen@glyphraisevalue\hbox{\gre@font@music\GreCPDivisioDominicanAlt}%
- #4\relax %
- \ifnum\gre@count@temp@one=1\relax %
- \GreNoBreak %
- \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
- \gre@hskip\gre@skip@temp@four %
- \fi %
- \or % 10 : dominican bar 5
- \gre@calculate@glyphraisevalue{\gre@pitch@i}{0}{}%
- \advance\gre@dimen@glyphraisevalue by -\gre@dimen@stafflinediff\relax%
- \ifnum\gre@count@temp@one=1\relax %
- \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
- \gre@hskip\gre@skip@temp@four %
- \GreNoBreak %
- \fi %
- \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioDominican}%
- \raise\gre@dimen@glyphraisevalue\hbox{\gre@font@music\GreCPDivisioDominican}%
- #4\relax %
- \ifnum\gre@count@temp@one=1\relax %
- \GreNoBreak %
- \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
- \gre@hskip\gre@skip@temp@four %
- \fi %
- \or % 11 : dominican bar 6
- \gre@calculate@glyphraisevalue{\gre@pitch@i}{0}{}%
- \advance\gre@dimen@glyphraisevalue by \gre@dimen@stafflinediff\relax%
- \ifnum\gre@count@temp@one=1\relax %
- \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
- \gre@hskip\gre@skip@temp@four %
- \GreNoBreak %
- \fi %
- \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioDominicanAlt}%
- \raise\gre@dimen@glyphraisevalue\hbox{\gre@font@music\GreCPDivisioDominicanAlt}%
- #4\relax %
- \ifnum\gre@count@temp@one=1\relax %
- \GreNoBreak %
- \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
- \gre@hskip\gre@skip@temp@four %
- \fi %
- \or % 12 : dominican bar 7
- \gre@calculate@glyphraisevalue{\gre@pitch@k}{0}{}%
- \advance\gre@dimen@glyphraisevalue by -\gre@dimen@stafflinediff\relax%
- \ifnum\gre@count@temp@one=1\relax %
- \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
- \gre@hskip\gre@skip@temp@four %
- \GreNoBreak %
- \fi %
- \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioDominican}%
- \raise\gre@dimen@glyphraisevalue\hbox{\gre@font@music\GreCPDivisioDominican}%
- #4\relax %
- \ifnum\gre@count@temp@one=1\relax %
- \GreNoBreak %
- \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
- \gre@hskip\gre@skip@temp@four %
- \fi %
- \or % 13 : dominican bar 8
- \gre@calculate@glyphraisevalue{\gre@pitch@k}{0}{}%
- \advance\gre@dimen@glyphraisevalue by \gre@dimen@stafflinediff\relax%
- \ifnum\gre@count@temp@one=1\relax %
- \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
- \gre@hskip\gre@skip@temp@four %
- \GreNoBreak %
- \fi %
- \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioDominicanAlt}%
- \raise\gre@dimen@glyphraisevalue\hbox{\gre@font@music\GreCPDivisioDominicanAlt}%
- #4\relax %
- \ifnum\gre@count@temp@one=1\relax %
- \GreNoBreak %
- \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
- \gre@hskip\gre@skip@temp@four %
- \fi %
- \fi %
- \global\gre@skip@bar@lastskip=\gre@skip@temp@four %
- \gre@debugmsg{spacing}{Width of bar just printed: \the\wd\gre@box@temp@width}%
- \gre@debugmsg{spacing}{Last bar space: \the\gre@skip@temp@four}%
- \global\gre@dimen@lastglyphwidth=\wd\gre@box@temp@width %
- \directlua{gregoriotex.adjust_line_height(\gre@insidediscretionary)}%
- \relax%
+ % first, for the bar to be really centered, if the last glyph has a punctum
+ % mora, we kern of the corresponding space. We do it only in the case
+ % of a bar in the middle of other notes.
+ \ifgre@lastendswithmora %
+ \ifgre@newbarspacing %
+ \ifnum\gre@count@shiftaftermora=0\else\ifnum\gre@count@shiftaftermora=4\else %
+ % new bar spacing takes care of punctum mora on its own, but only when
+ % bar has its own syllable
+ \ifcase #2\or %
+ \gre@unkern@bar@aftermora %
+ \fi %
+ \fi\fi %
+ \else %
+ \ifcase\gre@count@shiftaftermora\or %
+ % barsinsideonly
+ \ifcase #2\or %
+ \gre@unkern@bar@aftermora %
+ \fi %
+ \or %
+ % barsnotextonly
+ \ifcase #3\relax %
+ \gre@unkern@bar@aftermora %
+ \fi %
+ \or %
+ % barsonly
+ \gre@unkern@bar@aftermora %
+ \or\or %
+ % always
+ \gre@unkern@bar@aftermora %
+ \fi %
+ \fi %
+ \fi %
+ \gre@newglyphcommon %
+ \gre@calculate@glyphraisevalue{\gre@pitch@bar}{0}{}% bar glyphs are made to be at this height
+ \GreNoBreak %
+ % count indicating if we have to output space or not:
+ \gre@count@temp@one=0\relax %
+ \ifnum#2=1\relax %
+ \gre@count@temp@one=1\relax %
+ \else %
+ \ifgre@newbarspacing %
+ \gre@count@temp@one=1\relax %
+ \fi %
+ \fi %
+ \gre@skip@temp@four=0pt\relax %
+ \ifcase#1 % 0 : virgula
+ \ifnum\gre@count@temp@one=1\relax %
+ \gre@skip@temp@four = \csname gre@space@skip@bar@virgula\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \GreNoBreak %
+ \fi %
+ \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPVirgula}%
+ \raise\gre@dimen@glyphraisevalue\hbox{\gre@font@music\GreCPVirgula}%
+ #4\relax %
+ \ifnum\gre@count@temp@one=1\relax %
+ \GreNoBreak %
+ \gre@skip@temp@four = \csname gre@space@skip@bar@virgula\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \fi %
+ \or % 1 : minima
+ \ifnum\gre@count@temp@one=1\relax %
+ \gre@skip@temp@four = \csname gre@space@skip@bar@minima\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \GreNoBreak %
+ \fi %
+ \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioMinima}%
+ \raise\gre@dimen@glyphraisevalue\hbox{\gre@font@music\GreCPDivisioMinima}%
+ #4\relax %
+ \ifnum\gre@count@temp@one=1\relax %
+ \GreNoBreak %
+ \gre@skip@temp@four = \csname gre@space@skip@bar@minima\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \fi %
+ \or % 2 : minor
+ \ifnum\gre@count@temp@one=1\relax %
+ \gre@skip@temp@four = \csname gre@space@skip@bar@minor\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \GreNoBreak %
+ \fi %
+ \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioMinor}%
+ \raise\gre@dimen@glyphraisevalue\hbox{\gre@font@music\GreCPDivisioMinor}%
+ #4\relax %
+ \ifnum\gre@count@temp@one=1\relax %
+ \GreNoBreak %
+ \gre@skip@temp@four = \csname gre@space@skip@bar@minor\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \fi %
+ \or % 3 : maior
+ \ifnum\gre@count@temp@one=1\relax %
+ \gre@skip@temp@four = \csname gre@space@skip@bar@maior\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \GreNoBreak %
+ \fi %
+ \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioMaior}%
+ \gre@fontchar@divisiomaior %
+ #4\relax %
+ \ifnum\gre@count@temp@one=1\relax %
+ \GreNoBreak %
+ \gre@skip@temp@four = \csname gre@space@skip@bar@maior\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \fi %
+ \or % 4 : finalis
+ \ifnum\gre@count@temp@one=1\relax %
+ \gre@skip@temp@four = \csname gre@space@skip@bar@finalis\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \GreNoBreak %
+ \fi %
+ \setbox\gre@box@temp@width=\hbox{\gre@fontchar@divisiofinalis}%
+ #4\relax %
+ \gre@fontchar@divisiofinalis%
+ \ifnum\gre@count@temp@one=1\relax %
+ \GreNoBreak %
+ \gre@skip@temp@four = \csname gre@space@skip@bar@finalis\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \fi %
+ \or % 5 : final finalis
+ \ifnum\gre@count@temp@one=1\relax %
+ \gre@skip@temp@four = \csname gre@space@skip@bar@finalfinalis\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \GreNoBreak %
+ \fi %
+ \setbox\gre@box@temp@width=\hbox{\gre@fontchar@divisiofinalis}%
+ #4\relax %
+ \gre@fontchar@divisiofinalis%
+ \ifgre@newbarspacing %
+ \GreNoBreak %
+ \gre@skip@temp@four = \csname gre@space@skip@bar@finalfinalis\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \GreNoBreak %
+ \fi %
+ \or % 6 : dominican bar 1
+ \gre@calculate@glyphraisevalue{\gre@pitch@e}{0}{}%
+ % we need to adjust the height of the bar a little so that it is perfectly aligned with the bottom (or the top for some bars) of the staff line, which is not the case by default if \gre@stafflinefactor is not 10.
+ \advance\gre@dimen@glyphraisevalue by -\gre@dimen@stafflinediff\relax%
+ \ifnum\gre@count@temp@one=1\relax %
+ \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \GreNoBreak %
+ \fi %
+ \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioDominican}%
+ \raise\gre@dimen@glyphraisevalue\hbox{\gre@font@music\GreCPDivisioDominican}%
+ #4\relax %
+ \ifnum\gre@count@temp@one=1\relax %
+ \GreNoBreak %
+ \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \fi %
+ \or % 7 : dominican bar 2
+ \gre@calculate@glyphraisevalue{\gre@pitch@e}{0}{}%
+ \advance\gre@dimen@glyphraisevalue by \gre@dimen@stafflinediff\relax%
+ \ifnum\gre@count@temp@one=1\relax %
+ \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \GreNoBreak %
+ \fi %
+ \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioDominicanAlt}%
+ \raise\gre@dimen@glyphraisevalue\hbox{\gre@font@music\GreCPDivisioDominicanAlt}%
+ #4\relax %
+ \ifnum\gre@count@temp@one=1\relax %
+ \GreNoBreak %
+ \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \fi %
+ \or % 8 : dominican bar 3
+ \ifnum\gre@count@temp@one=1\relax %
+ \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \GreNoBreak %
+ \fi %
+ \advance\gre@dimen@glyphraisevalue by -\gre@dimen@stafflinediff\relax%
+ \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioDominican}%
+ \raise\gre@dimen@glyphraisevalue\hbox{\gre@font@music\GreCPDivisioDominican}%
+ #4\relax %
+ \ifnum\gre@count@temp@one=1\relax %
+ \GreNoBreak %
+ \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \fi %
+ \or % 9 : dominican bar 4
+ \ifnum\gre@count@temp@one=1\relax %
+ \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \GreNoBreak %
+ \fi %
+ \advance\gre@dimen@glyphraisevalue by \gre@dimen@stafflinediff\relax%
+ \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioDominicanAlt}%
+ \raise\gre@dimen@glyphraisevalue\hbox{\gre@font@music\GreCPDivisioDominicanAlt}%
+ #4\relax %
+ \ifnum\gre@count@temp@one=1\relax %
+ \GreNoBreak %
+ \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \fi %
+ \or % 10 : dominican bar 5
+ \gre@calculate@glyphraisevalue{\gre@pitch@i}{0}{}%
+ \advance\gre@dimen@glyphraisevalue by -\gre@dimen@stafflinediff\relax%
+ \ifnum\gre@count@temp@one=1\relax %
+ \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \GreNoBreak %
+ \fi %
+ \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioDominican}%
+ \raise\gre@dimen@glyphraisevalue\hbox{\gre@font@music\GreCPDivisioDominican}%
+ #4\relax %
+ \ifnum\gre@count@temp@one=1\relax %
+ \GreNoBreak %
+ \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \fi %
+ \or % 11 : dominican bar 6
+ \gre@calculate@glyphraisevalue{\gre@pitch@i}{0}{}%
+ \advance\gre@dimen@glyphraisevalue by \gre@dimen@stafflinediff\relax%
+ \ifnum\gre@count@temp@one=1\relax %
+ \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \GreNoBreak %
+ \fi %
+ \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioDominicanAlt}%
+ \raise\gre@dimen@glyphraisevalue\hbox{\gre@font@music\GreCPDivisioDominicanAlt}%
+ #4\relax %
+ \ifnum\gre@count@temp@one=1\relax %
+ \GreNoBreak %
+ \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \fi %
+ \or % 12 : dominican bar 7
+ \gre@calculate@glyphraisevalue{\gre@pitch@k}{0}{}%
+ \advance\gre@dimen@glyphraisevalue by -\gre@dimen@stafflinediff\relax%
+ \ifnum\gre@count@temp@one=1\relax %
+ \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \GreNoBreak %
+ \fi %
+ \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioDominican}%
+ \raise\gre@dimen@glyphraisevalue\hbox{\gre@font@music\GreCPDivisioDominican}%
+ #4\relax %
+ \ifnum\gre@count@temp@one=1\relax %
+ \GreNoBreak %
+ \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \fi %
+ \or % 13 : dominican bar 8
+ \gre@calculate@glyphraisevalue{\gre@pitch@k}{0}{}%
+ \advance\gre@dimen@glyphraisevalue by \gre@dimen@stafflinediff\relax%
+ \ifnum\gre@count@temp@one=1\relax %
+ \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \GreNoBreak %
+ \fi %
+ \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioDominicanAlt}%
+ \raise\gre@dimen@glyphraisevalue\hbox{\gre@font@music\GreCPDivisioDominicanAlt}%
+ #4\relax %
+ \ifnum\gre@count@temp@one=1\relax %
+ \GreNoBreak %
+ \gre@skip@temp@four = \csname gre@space@skip@bar@dominican\gre@bar@space@suffix{#2}{#3}\endcsname\relax%
+ \gre@hskip\gre@skip@temp@four %
+ \fi %
+ \fi %
+ \global\gre@skip@bar@lastskip=\gre@skip@temp@four %
+ \gre@debugmsg{spacing}{Width of bar just printed: \the\wd\gre@box@temp@width}%
+ \gre@debugmsg{spacing}{Last bar space: \the\gre@skip@temp@four}%
+ \global\gre@dimen@lastglyphwidth=\wd\gre@box@temp@width %
+ \directlua{gregoriotex.adjust_line_height(\gre@insidediscretionary)}%
+ \global\gre@firstglyphfalse %
+ \relax%
}%
\def\gre@fontchar@divisiomaior{%
- \ifnum\gre@stafflinefactor=17\relax %
- %\gre@calculate@glyphraisevalue{\gre@pitch@bar}{0}{}% bar glyphs are made to be at this height
- \raise\gre@dimen@glyphraisevalue\hbox{\gre@font@music\GreCPDivisioMaior}%
- \else %
- \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioMaior}%
- % we calculate the raise of the bar
- \gre@dimen@temp@five=\dimexpr(\gre@dimen@additionalbottomspace %
- + \gre@space@dimen@spacebeneathtext %
- + \gre@space@dimen@spacelinestext %
- + \gre@dimen@currenttranslationheight)\relax%
- % we calculate the height of the bar
- \raise\gre@dimen@temp@five\hbox{\vrule height \gre@dimen@staffheight width \wd\gre@box@temp@width}%
- \fi %
- \relax %
+ \ifnum\gre@stafflinefactor=17\relax %
+ %\gre@calculate@glyphraisevalue{\gre@pitch@bar}{0}{}% bar glyphs are made to be at this height
+ \raise\gre@dimen@glyphraisevalue\hbox{\gre@font@music\GreCPDivisioMaior}%
+ \else %
+ \setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioMaior}%
+ % we calculate the raise of the bar
+ \gre@dimen@temp@five=\dimexpr(\gre@dimen@additionalbottomspace %
+ + \gre@space@dimen@spacebeneathtext %
+ + \gre@space@dimen@spacelinestext %
+ + \gre@dimen@currenttranslationheight)\relax%
+ % we calculate the height of the bar
+ \raise\gre@dimen@temp@five\hbox{\vrule height \gre@dimen@staffheight width \wd\gre@box@temp@width}%
+ \fi %
+ \relax %
}%
\def\gre@fontchar@divisiofinalis{%
- \gre@calculate@glyphraisevalue{\gre@pitch@bar}{0}{}% bar glyphs are made to be at this height
- \gre@fontchar@divisiomaior %
- \kern\gre@space@dimen@divisiofinalissep %
- \GreNoBreak %
- \gre@fontchar@divisiomaior %
+ \gre@calculate@glyphraisevalue{\gre@pitch@bar}{0}{}% bar glyphs are made to be at this height
+ \gre@fontchar@divisiomaior %
+ \kern\gre@space@dimen@divisiofinalissep %
+ \GreNoBreak %
+ \gre@fontchar@divisiomaior %
}%
% Flag to tell if we have to keep the localrightbox until the end
@@ -2017,26 +2023,26 @@
%macro to end a line with a divisio finalis
\def\GreFinalDivisioFinalis#1{%
- \GreBarSyllable{\GreSetThisSyllable{}{}{}{}{}}{}{}{1}{\GreSetNextSyllable{}{}{}{}{}\GreLastOfLine}{}{16}{}{%
- \ifgre@newbarspacing\else %
- \gre@hskip\gre@space@skip@bar@finalfinalis %
- \GreNoBreak %
- \fi %
- \GreLastOfScore %
- \GreDivisioFinalis{0}{}%
- #1%
- }%
- \relax%
+ \GreBarSyllable{\GreSetThisSyllable{}{}{}{}{}}{}{}{1}{\GreSetNextSyllable{}{}{}{}{}\GreLastOfLine}{}{16}{}{%
+ \ifgre@newbarspacing\else %
+ \gre@hskip\gre@space@skip@bar@finalfinalis %
+ \GreNoBreak %
+ \fi %
+ \GreLastOfScore %
+ \GreDivisioFinalis{0}{}%
+ #1%
+ }%
+ \relax%
}%
%macro to end a line with a divisio maior
\def\GreFinalDivisioMaior#1{%
- \GreBarSyllable{\GreSetThisSyllable{}{}{}{}{}}{}{}{1}{\GreSetNextSyllable{}{}{}{}{}\GreLastOfLine}{}{16}{}{%
- \GreLastOfScore %
- \GreDivisioMaior{0}{}%
- #1%
- }%
- \relax%
+ \GreBarSyllable{\GreSetThisSyllable{}{}{}{}{}}{}{}{1}{\GreSetNextSyllable{}{}{}{}{}\GreLastOfLine}{}{16}{}{%
+ \GreLastOfScore %
+ \GreDivisioMaior{0}{}%
+ #1%
+ }%
+ \relax%
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -2050,22 +2056,14 @@
% macro for manipulating above flag
\def\gresetlinesbehindpunctumcavum#1{%
- \IfStrEqCase{#1}{%
- {visible}%
- {\gre@hidepclinesfalse}%
- {invisible}%
- {\gre@hidepclinestrue}%
- }[% all other cases
- \gre@error{Unrecognized option "#1" for \protect\gresetlinesbehindpunctumcavum\MessageBreak Possible options are: 'visible' and 'invisible'}%
- ]%
-}%
-
-\def\GreHidePCLines{%OBSOLETE
- \gre@obsolete{\protect\GreHidePCLines}{\protect\gresetlinesbehindpunctumcavum{invisible}}%
-}%
-
-\def\GreDontHidePCLines{%OBSOLETE
- \gre@obsolete{\protect\GreDontHidePCLines}{\protect\gresetlinesbehindpunctumcavum{visible}}%
+ \IfStrEqCase{#1}{%
+ {visible}%
+ {\gre@hidepclinesfalse}%
+ {invisible}%
+ {\gre@hidepclinestrue}%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" for \protect\gresetlinesbehindpunctumcavum\MessageBreak Possible options are: 'visible' and 'invisible'}%
+ ]%
}%
% flag to indicate that lines behind an alteration should be hidden
@@ -2075,22 +2073,14 @@
% macro for manipulating above flag
\def\gresetlinesbehindalteration#1{%
- \IfStrEqCase{#1}{%
- {visible}%
- {\gre@hidealtlinesfalse}%
- {invisible}%
- {\gre@hidealtlinestrue}%
- }[% all other cases
- \gre@error{Unrecognized option "#1" for \protect\gresetlinesbehindalteration\MessageBreak Possible options are: 'visible' and 'invisible'}%
- ]%
-}%
-
-\def\GreHideAltLines{%OBSOLETE
- \gre@obsolete{\protect\GreHideAltLines}{\protect\gresetlinesbehindalteration{invisible}}%
-}%
-
-\def\GreDontHideAltLines{%OBSOLETE
- \gre@obsolete{\protect\GreDontHideAltLines}{\protect\gresetlinesbehindalteration{visible}}%
+ \IfStrEqCase{#1}{%
+ {visible}%
+ {\gre@hidealtlinesfalse}%
+ {invisible}%
+ {\gre@hidealtlinestrue}%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" for \protect\gresetlinesbehindalteration\MessageBreak Possible options are: 'visible' and 'invisible'}%
+ ]%
}%
% is last glyph a cavum?
@@ -2103,21 +2093,21 @@
% the argument is the character with which we fill the hole, and we suppose that
% isonaline and glyphraisevalue are correctly set.
\def\gre@fillhole#1{%
- \ifgre@boxing\else %
- \global\gre@count@lastglyphiscavum=1\relax %
- \setbox\gre@box@temp@sign=\hbox{#1}%
- \hbox to 0pt{%
- {%
- \color{grebackgroundcolor}%
- \raise \gre@dimen@glyphraisevalue\relax%
- \copy\gre@box@temp@sign %
- }%
- %\pdfliteral{}% this is a ugly hack for old versions of LuaTeX to work
- \hss %
- }%
- \GreNoBreak %
- \fi %
- \relax %
+ \ifgre@boxing\else %
+ \global\gre@count@lastglyphiscavum=1\relax %
+ \setbox\gre@box@temp@sign=\hbox{#1}%
+ \hbox to 0pt{%
+ {%
+ \color{grebackgroundcolor}%
+ \raise \gre@dimen@glyphraisevalue\relax%
+ \copy\gre@box@temp@sign %
+ }%
+ %\pdfliteral{}% this is a ugly hack for old versions of LuaTeX to work
+ \hss %
+ }%
+ \GreNoBreak %
+ \fi %
+ \relax %
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -2133,63 +2123,63 @@
% #6 are the signs to typeset after the glyph (almost all signs)
% #7 is the line:char:column for a textedit link
\def\gre@alteration#1#2#3#4#5#6#7{%
- \setbox\gre@box@temp@width=\hbox{\gre@pointandclick{#2}{#7}}%
- \ifnum#4=0\relax %
- \gre@newglyphcommon %
- \fi %
- \global\gre@dimen@lastglyphwidth=\wd\gre@box@temp@width %
- % the three next lines are a trick to get the additional lines below the glyphs
- \gre@skip@temp@one = \gre@dimen@lastglyphwidth\relax%
- \kern\gre@skip@temp@one %
- #5\relax %
- \kern-\gre@skip@temp@one %
- \gre@calculate@glyphraisevalue{#1}{0}{}%
- \ifgre@hidealtlines %
- \gre@fillhole{#3}%
- \fi %
- \raise \gre@dimen@glyphraisevalue\relax%
- \copy\gre@box@temp@width%
- #6\relax %
- \ifnum#4=0\relax %
- % we try to avoid line breaking after a flat or a natural
- \GreNoBreak %
- \gre@skip@temp@four = \gre@space@dimen@alterationspace\relax%
- \ifgre@firstglyph%
- \gre@debugmsg{bolshift}{making adjustments for leading alteration}%
- \global\advance\gre@dimen@notesaligncenter by %
- \dimexpr(\wd\gre@box@temp@width + \dimexpr\gre@skip@temp@four)\relax %
- \kern\gre@skip@temp@four %
- \global\gre@dimen@bolextra = \dimexpr(\wd\gre@box@temp@width + \dimexpr\gre@skip@temp@four)\relax%
- \gre@debugmsg{bolshift}{bolextra: \the\gre@dimen@bolextra}%
- \else %
- \gre@hskip\gre@skip@temp@four %
- \fi %
- \GreNoBreak %
- \directlua{gregoriotex.adjust_line_height(\gre@insidediscretionary)}%
- \fi %
- \relax %
+ \setbox\gre@box@temp@width=\hbox{\gre@pointandclick{#2}{#7}}%
+ \ifnum#4=0\relax %
+ \gre@newglyphcommon %
+ \fi %
+ \global\gre@dimen@lastglyphwidth=\wd\gre@box@temp@width %
+ % the three next lines are a trick to get the additional lines below the glyphs
+ \gre@skip@temp@one = \gre@dimen@lastglyphwidth\relax%
+ \kern\gre@skip@temp@one %
+ #5\relax %
+ \kern-\gre@skip@temp@one %
+ \gre@calculate@glyphraisevalue{#1}{0}{}%
+ \ifgre@hidealtlines %
+ \gre@fillhole{#3}%
+ \fi %
+ \raise \gre@dimen@glyphraisevalue\relax%
+ \copy\gre@box@temp@width%
+ #6\relax %
+ \ifnum#4=0\relax %
+ % we try to avoid line breaking after a flat or a natural
+ \GreNoBreak %
+ \gre@skip@temp@four = \gre@space@dimen@alterationspace\relax%
+ \ifgre@firstglyph%
+ \gre@debugmsg{bolshift}{making adjustments for leading alteration}%
+ \global\advance\gre@dimen@notesaligncenter by %
+ \dimexpr(\wd\gre@box@temp@width + \dimexpr\gre@skip@temp@four)\relax %
+ \kern\gre@skip@temp@four %
+ \global\gre@dimen@bolextra = \dimexpr(\wd\gre@box@temp@width + \dimexpr\gre@skip@temp@four)\relax%
+ \gre@debugmsg{bolshift}{bolextra: \the\gre@dimen@bolextra}%
+ \else %
+ \gre@hskip\gre@skip@temp@four %
+ \fi %
+ \GreNoBreak %
+ \directlua{gregoriotex.adjust_line_height(\gre@insidediscretionary)}%
+ \fi %
+ \relax %
}%
% This macro typesets a flat on the height provided by #1.
% #2 is 1 if the flat is part of a clef.
\def\GreFlat#1#2#3#4#5{%
- \gre@alteration{#1}{\gre@fontchar@flat}{\gre@fontchar@flathole}{#2}{#3}{#4}{#5}%
- \relax%
+ \gre@alteration{#1}{\gre@fontchar@flat}{\gre@fontchar@flathole}{#2}{#3}{#4}{#5}%
+ \relax%
}%
% Same as the one before, but for naturals.
\def\GreNatural#1#2#3#4#5{%
- \gre@alteration{#1}{\gre@fontchar@natural}{\gre@fontchar@naturalhole}{#2}{#3}{#4}{#5}%
- \relax%
+ \gre@alteration{#1}{\gre@fontchar@natural}{\gre@fontchar@naturalhole}{#2}{#3}{#4}{#5}%
+ \relax%
}%
% Same as the one before, but for sharps.
\def\GreSharp#1#2#3#4#5{%
- \gre@alteration{#1}{\gre@fontchar@sharp}{\gre@fontchar@sharphole}{#2}{#3}{#4}{#5}%
- \relax%
+ \gre@alteration{#1}{\gre@fontchar@sharp}{\gre@fontchar@sharphole}{#2}{#3}{#4}{#5}%
+ \relax%
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -2202,81 +2192,73 @@
\def\gre@fontchar@lineapunctumcavumhole{\gre@font@music\GreCPLineaPunctumCavumHole}%
\def\gresetpunctumcavum#1{%
- \IfStrEqCase{#1}{%
- {alternate}%
- {%
- \grechangeglyph{PunctumCavum}{greciliae}{.caeciliae}%
- \grechangeglyph{LineaPunctumCavum}{greciliae}{.caeciliae}%
- \grechangeglyph{PunctumCavumHole}{greciliae}{.caeciliae}%
- \grechangeglyph{LineaPunctumCavumHole}{greciliae}{.caeciliae}%
- }%
- {normal}%
- {%
- \greresetglyph{PunctumCavum}%
- \greresetglyph{LineaPunctumCavum}%
- \greresetglyph{PunctumCavumHole}%
- \greresetglyph{LineaPunctumCavumHole}%
- }%
- }[% all other cases
- \gre@error{Unrecognized option "#1" for \protect\gresetpunctumcavum\MessageBreak Possible options are: 'alternate' and 'normal'}%
- ]%
+ \IfStrEqCase{#1}{%
+ {alternate}%
+ {%
+ \grechangeglyph{PunctumCavum}{greciliae}{.caeciliae}%
+ \grechangeglyph{LineaPunctumCavum}{greciliae}{.caeciliae}%
+ \grechangeglyph{PunctumCavumHole}{greciliae}{.caeciliae}%
+ \grechangeglyph{LineaPunctumCavumHole}{greciliae}{.caeciliae}%
+ }%
+ {normal}%
+ {%
+ \greresetglyph{PunctumCavum}%
+ \greresetglyph{LineaPunctumCavum}%
+ \greresetglyph{PunctumCavumHole}%
+ \greresetglyph{LineaPunctumCavumHole}%
+ }%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" for \protect\gresetpunctumcavum\MessageBreak Possible options are: 'alternate' and 'normal'}%
+ ]%
}%
-\def\UseAlternatePunctumCavum{%OBSOLETE
- \gre@obsolete{\protect\UseAlternatePunctumCavum}{\protect\gresetpunctumcavum{alternate}}%
-}%
-
-\def\UseNormalPunctumCavum{%OBSOLETE
- \gre@obsolete{\protect\UseNormalPunctumCavum}{\protect\gresetpunctumcavum{normal}}%
-}%
-
\def\gre@char@cavum#1#2#3#4#5#6#7#8{%
- \setbox\gre@box@temp@width=\hbox{#7}%
- \global\gre@dimen@lastglyphwidth=\wd\gre@box@temp@width %
- \gre@skip@temp@four = \gre@dimen@lastglyphwidth\relax%
- \kern\gre@skip@temp@four %
- #4\relax %
- \kern-\gre@skip@temp@four %
- \gre@calculate@glyphraisevalue{#1}{0}{}%
- \ifgre@hidepclines%
- \gre@fillhole{#8}%
- \fi %
- \GreGlyph{#7}{#1}{#2}{#3}{}{#5}{#6}%
- %\relax %
+ \setbox\gre@box@temp@width=\hbox{#7}%
+ \global\gre@dimen@lastglyphwidth=\wd\gre@box@temp@width %
+ \gre@skip@temp@four = \gre@dimen@lastglyphwidth\relax%
+ \kern\gre@skip@temp@four %
+ #4\relax %
+ \kern-\gre@skip@temp@four %
+ \gre@calculate@glyphraisevalue{#1}{0}{}%
+ \ifgre@hidepclines%
+ \gre@fillhole{#8}%
+ \fi %
+ \GreGlyph{#7}{#1}{#2}{#3}{}{#5}{#6}%
+ %\relax %
}%
\def\GrePunctumCavum#1#2#3#4#5#6{%
- \gre@char@cavum{#1}{#2}{#3}{#4}{#5}{#6}%
- {\gre@fontchar@punctumcavum}{\gre@fontchar@punctumcavumhole}%
+ \gre@char@cavum{#1}{#2}{#3}{#4}{#5}{#6}%
+ {\gre@fontchar@punctumcavum}{\gre@fontchar@punctumcavumhole}%
}%
\def\GreLineaPunctumCavum#1#2#3#4#5#6{%
- \gre@char@cavum{#1}{#2}{#3}{#4}{#5}{#6}%
- {\gre@fontchar@lineapunctumcavum}{\gre@fontchar@lineapunctumcavumhole}%
+ \gre@char@cavum{#1}{#2}{#3}{#4}{#5}{#6}%
+ {\gre@fontchar@lineapunctumcavum}{\gre@fontchar@lineapunctumcavumhole}%
}%
\def\GrePunctumCavumInclinatum#1#2#3#4#5#6{%
- \gre@char@cavum{#1}{#2}{#3}{#4}{#5}{#6}%
- {\gre@font@music\GreCPPunctumCavumInclinatum}{\gre@font@music\GreCPPunctumCavumInclinatumHole}%
+ \gre@char@cavum{#1}{#2}{#3}{#4}{#5}{#6}%
+ {\gre@font@music\GreCPPunctumCavumInclinatum}{\gre@font@music\GreCPPunctumCavumInclinatumHole}%
}%
\def\GrePunctumCavumInclinatumAuctus#1#2#3#4#5#6{%
- \gre@char@cavum{#1}{#2}{#3}{#4}{#5}{#6}%
- {\gre@font@music\GreCPPunctumCavumInclinatumAuctus}{\gre@font@music\GreCPPunctumCavumInclinatumAuctusHole}%
+ \gre@char@cavum{#1}{#2}{#3}{#4}{#5}{#6}%
+ {\gre@font@music\GreCPPunctumCavumInclinatumAuctus}{\gre@font@music\GreCPPunctumCavumInclinatumAuctusHole}%
}%
-\def\GreOriscusCavum#1#2#3#4#5#6{%
- \gre@char@cavum{#1}{#2}{#3}{#4}{#5}{#6}%
- {\gre@font@music\GreCPOriscusCavum}{\gre@font@music\GreCPOriscusCavumHole}%
+\def\GreAscendensOriscusCavum#1#2#3#4#5#6{%
+ \gre@char@cavum{#1}{#2}{#3}{#4}{#5}{#6}%
+ {\gre@font@music\GreCPAscendensOriscusCavum}{\gre@font@music\GreCPAscendensOriscusCavumHole}%
}%
-\def\GreOriscusCavumAuctus#1#2#3#4#5#6{%
- \gre@char@cavum{#1}{#2}{#3}{#4}{#5}{#6}%
- {\gre@font@music\GreCPOriscusCavumReversus}{\gre@font@music\GreCPOriscusCavumReversusHole}%
+\def\GreDescendensOriscusCavum#1#2#3#4#5#6{%
+ \gre@char@cavum{#1}{#2}{#3}{#4}{#5}{#6}%
+ {\gre@font@music\GreCPDescendensOriscusCavum}{\gre@font@music\GreCPDescendensOriscusCavumHole}%
}%
\def\GreOriscusCavumDeminutus#1#2#3#4#5#6{%
- \gre@char@cavum{#1}{#2}{#3}{#4}{#5}{#6}%
- {\gre@font@music\GreCPOriscusCavumDeminutus}{\gre@font@music\GreCPOriscusCavumDeminutusHole}%
+ \gre@char@cavum{#1}{#2}{#3}{#4}{#5}{#6}%
+ {\gre@font@music\GreCPOriscusCavumDeminutus}{\gre@font@music\GreCPOriscusCavumDeminutusHole}%
}%
diff --git a/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-spaces.tex b/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-spaces.tex
index dab25f2208e..d46efe02a3a 100644
--- a/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-spaces.tex
+++ b/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-spaces.tex
@@ -20,7 +20,7 @@
% this file contains definitions of spaces
\gre@debugmsg{general}{Loading gregoriotex-spaces.tex}%
-\gre@declarefileversion{gregoriotex-spaces.tex}{4.1.1}% GREGORIO_VERSION
+\gre@declarefileversion{gregoriotex-spaces.tex}{4.2.0-beta1}% GREGORIO_VERSION
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% macros for tuning penalties
@@ -29,52 +29,65 @@
%% The following macros enable users to tune penalties used in Gregorio
% macro to force a break on a new line
-\def\GreForceBreak{\gre@penalty{\grenewlinepenalty}}%
+\def\GreForceBreak{\gre@penalty{\the\gre@space@count@newlinepenalty}}%
% macro to prevent a line break
-\def\GreNoBreak{\gre@penalty{\grenobreakpenalty}}%
+\def\GreNoBreak{\gre@penalty{\the\gre@space@count@nobreakpenalty}}%
+
+\newcount\gre@hyphenpenaltysave%
+\newcount\gre@exhyphenpenaltysave%
+\newcount\gre@doublehyphendemeritssave%
+\newcount\gre@finalhyphendemeritssave%
+\newcount\gre@brokenpenaltysave%
+\newcount\gre@loosenesssave%
+\newcount\gre@tolerancesave%
+\newcount\gre@pretolerancesave%
+\newskip\gre@emergencystretchsave%
+\newcount\gre@widowpenaltysave%
+\newcount\gre@clubpenaltysave%
%% The following macros cancel some useless penalties, and reinstates them
%% at the end of a score
\def\gre@cancelpenalties{%
- \xdef\gre@hyphenpenaltysave{\the\hyphenpenalty }%
- \xdef\gre@exhyphenpenaltysave{\the\exhyphenpenalty }%
- \xdef\gre@doublehyphendemeritssave{\the\doublehyphendemerits }%
- \xdef\gre@finalhyphendemeritssave{\the\finalhyphendemerits }%
- \xdef\gre@brokenpenaltysave{\the\brokenpenalty }%
- \hyphenpenalty=\grehyphenpenalty\relax %
- \exhyphenpenalty=\grehyphenpenalty\relax %
- \doublehyphendemerits=0\relax %
- \finalhyphendemerits=0\relax %
- \brokenpenalty=\grebrokenpenalty\relax %
- \xdef\gre@loosenesssave{\the\looseness}%
- \xdef\gre@tolerancesave{\the\tolerance}%
- \xdef\gre@pretolerancesave{\the\pretolerance}%
- \xdef\gre@emergencystretchsave{\the\emergencystretch}%
- \xdef\gre@widowpenaltysave{\the\widowpenalty}%
- \xdef\gre@clubpenaltysave{\the\clubpenalty}%
- \looseness=\grelooseness %
- \tolerance=\gretolerance %
- \pretolerance=\grepretolerance %
- \emergencystretch=\greemergencystretch %
- \widowpenalty=\grewidowpenalty %
- \clubpenalty=\greclubpenalty %
+ \global\gre@hyphenpenaltysave=\hyphenpenalty\relax %
+ \global\gre@exhyphenpenaltysave=\exhyphenpenalty\relax %
+ \global\gre@doublehyphendemeritssave=\doublehyphendemerits\relax %
+ \global\gre@finalhyphendemeritssave=\finalhyphendemerits\relax %
+ \global\gre@brokenpenaltysave=\brokenpenalty\relax %
+ \global\gre@loosenesssave=\looseness\relax %
+ \global\gre@tolerancesave=\tolerance\relax %
+ \global\gre@pretolerancesave=\pretolerance\relax %
+ \global\gre@emergencystretchsave=\emergencystretch\relax %
+ \global\gre@widowpenaltysave=\widowpenalty\relax %
+ \global\gre@clubpenaltysave=\clubpenalty\relax %
+ %
+ \hyphenpenalty=\gre@space@count@hyphenpenalty %
+ \exhyphenpenalty=\gre@space@count@hyphenpenalty %
+ \doublehyphendemerits=0\relax %
+ \finalhyphendemerits=0\relax %
+ \brokenpenalty=\gre@space@count@brokenpenalty %
+ \looseness=\gre@space@count@looseness %
+ \tolerance=\gre@space@count@tolerance %
+ \pretolerance=\gre@space@count@pretolerance %
+ \emergencystretch=\gre@space@skip@emergencystretch\relax %
+ \widowpenalty=\gre@space@count@widowpenalty %
+ \clubpenalty=\gre@space@count@clubpenalty %
}%
\def\gre@restorepenalties{%
- \hyphenpenalty=\gre@hyphenpenaltysave %
- \exhyphenpenalty=\gre@exhyphenpenaltysave %
- \doublehyphendemerits=\gre@doublehyphendemeritssave %
- \finalhyphendemerits=\gre@finalhyphendemeritssave %
- \brokenpenalty=\gre@brokenpenaltysave %
- \looseness=\gre@loosenesssave %
- \tolerance=\gre@tolerancesave %
- \pretolerance=\gre@pretolerancesave %
- \emergencystretch=\gre@emergencystretchsave %
- \widowpenalty=\gre@widowpenaltysave %
- \clubpenalty=\gre@clubpenaltysave %
+ \hyphenpenalty=\gre@hyphenpenaltysave %
+ \exhyphenpenalty=\gre@exhyphenpenaltysave %
+ \doublehyphendemerits=\gre@doublehyphendemeritssave %
+ \finalhyphendemerits=\gre@finalhyphendemeritssave %
+ \brokenpenalty=\gre@brokenpenaltysave %
+ \looseness=\gre@loosenesssave %
+ \tolerance=\gre@tolerancesave %
+ \pretolerance=\gre@pretolerancesave %
+ \emergencystretch=\gre@emergencystretchsave %
+ \widowpenalty=\gre@widowpenaltysave %
+ \clubpenalty=\gre@clubpenaltysave %
}%
@@ -91,21 +104,21 @@
% textlower is the height of the separation between the bottom line (which is invisible : for the notes which are very low) and the bottom of the text
\newdimen\gre@dimen@textlower\relax%
\def\gre@calculate@textlower{%
- \gre@dimen@textlower=\gre@space@dimen@spacebeneathtext\relax%
- %\advance\gre@dimen@textlower by \translationheight
+ \gre@dimen@textlower=\gre@space@dimen@spacebeneathtext\relax%
+ %\advance\gre@dimen@textlower by \translationheight
}%
% stafflinewidth is the width of a line of staff, this can vary, for example at the first line
\newdimen\gre@dimen@stafflinewidth\relax%
\def\gre@calculate@stafflinewidth{%
- \gre@dimen@stafflinewidth=\gre@dimen@linewidth\relax%
+ \gre@dimen@stafflinewidth=\gre@dimen@linewidth\relax%
}%
% linewidth is the width of a line of a score (including the initial)
\newdimen\gre@dimen@linewidth\relax%
\def\gre@calculate@linewidth{%
- \gre@dimen@linewidth=\hsize %
+ \gre@dimen@linewidth=\hsize %
}%
% Messing with the staff line thickness directly is messy, so we provide the following interface to make life easier on the user:
@@ -113,27 +126,27 @@
% = 1500 * stafflinefactor
\newdimen\gre@dimen@stafflineheight\relax%
\def\gre@calculate@stafflineheight{%
- \global\gre@dimen@stafflineheight=\dimexpr(1500 sp * \gre@stafflinefactor)\relax %
+ \global\gre@dimen@stafflineheight=\dimexpr(1500 sp * \gre@stafflinefactor)\relax %
}%
% interstafflinespace is the space between two lines of staff
% = (30000 - (stafflineheight/gre@factor - 1500)) * gre@factor = 31500 * gre@factor - stafflineheight
\newdimen\gre@dimen@interstafflinespace\relax%
\def\gre@calculate@interstafflinespace{%
- \global\gre@dimen@interstafflinespace=\dimexpr((31500sp * \gre@factor) %
- - \gre@dimen@stafflineheight)\relax%
+ \global\gre@dimen@interstafflinespace=\dimexpr((31500sp * \gre@factor) %
+ - \gre@dimen@stafflineheight)\relax%
}%
% a distance to help place glyphs when the lines are not their default thickness
% = (stafflineheight/gre@factor - 1500sp)/2 * gre@factor
\newdimen\gre@dimen@stafflinediff\relax%
\def\gre@calculate@stafflinediff{%
- \global\gre@dimen@stafflinediff = \dimexpr(%
- ( ( ( \gre@dimen@stafflineheight %
- / \gre@factor)%
- - 1500sp)%
- / 2)%
- * \gre@factor)\relax%
+ \global\gre@dimen@stafflinediff = \dimexpr(%
+ ( ( ( \gre@dimen@stafflineheight %
+ / \gre@factor)%
+ - 1500sp)%
+ / 2)%
+ * \gre@factor)\relax%
}%
% the default factor
@@ -145,40 +158,37 @@
% a macro for setting the thickness of the staff lines. This changes the stafflinefactor and then adjusts the spaces that are affected by the thicker staff lines.
\def\grechangestafflinethickness#1{%
- \xdef\gre@stafflinefactor{#1}%
- \relax %
+ \xdef\gre@stafflinefactor{#1}%
+ \relax %
}%
-\def\setstafflinethickness{%OBSOLETE
- \gre@obsolete{\protect\setstafflinethickness}{\protect\grechangestafflinethickness}%
-}%
%constantglyphraise is the space between the 0 of the gregorian fonts and the effective 0 of the TeX score
\newdimen\gre@dimen@constantglyphraise\relax%
% to calculate that, we take the bottom of the third line : it is at 200 in the fonts, and it must be at grespacelinestext + grespacebeneathtext + 2*greinterstafflinespace + 2*grestafflineheight + translationheight
\def\gre@calculate@constantglyphraise{%
- \global\gre@dimen@constantglyphraise = \dimexpr((-22000 sp * \gre@factor) %
- + \gre@dimen@additionalbottomspace %
- + \gre@space@dimen@spacebeneathtext %
- + \gre@space@dimen@spacelinestext %
- + \gre@dimen@interstafflinespace %
- + \gre@dimen@interstafflinespace %
- + \gre@dimen@stafflineheight %
- + \gre@dimen@stafflineheight %
- + \gre@dimen@currenttranslationheight %
- % an adjustment in the case of big lines
- + \gre@dimen@stafflinediff)\relax%
- \relax %
+ \global\gre@dimen@constantglyphraise = \dimexpr((-22000 sp * \gre@factor) %
+ + \gre@dimen@additionalbottomspace %
+ + \gre@space@dimen@spacebeneathtext %
+ + \gre@space@dimen@spacelinestext %
+ + \gre@dimen@interstafflinespace %
+ + \gre@dimen@interstafflinespace %
+ + \gre@dimen@stafflineheight %
+ + \gre@dimen@stafflineheight %
+ + \gre@dimen@currenttranslationheight %
+ % an adjustment in the case of big lines
+ + \gre@dimen@stafflinediff)\relax%
+ \relax %
}%
%% Here is the function to compute some more vertical spaces from the basic values
\newdimen\gre@dimen@staffheight\relax%
\def\gre@calculate@staffheight{%
- \global\gre@dimen@staffheight = \dimexpr %
- \gre@stafflines\gre@dimen@stafflineheight %
- + \gre@stafflines\gre@dimen@interstafflinespace %
- - \gre@dimen@interstafflinespace\relax%
- \relax %
+ \global\gre@dimen@staffheight = \dimexpr %
+ \gre@stafflines\gre@dimen@stafflineheight %
+ + \gre@stafflines\gre@dimen@interstafflinespace %
+ - \gre@dimen@interstafflinespace\relax%
+ \relax %
}%
% A routine that simply aggregates the above global space calculating routines so we can easily update all when needed.
@@ -193,14 +203,14 @@
%% staffheight: stafflineheight & interstafflinespace
%% constantglyphraise: gre@factor, additionalbottomspace, spacebeneathtext, spacelinestext, interstafflinespace, stafflineheight, currenttranslationheight, stafflinediff
\def\gre@computespaces{%
- \gre@calculate@textlower%
- \gre@calculate@linewidth%
- \gre@calculate@stafflinewidth%
- \gre@calculate@stafflineheight%
- \gre@calculate@interstafflinespace%
- \gre@calculate@stafflinediff%
- \gre@calculate@staffheight%
- \gre@calculate@constantglyphraise%
+ \gre@calculate@textlower%
+ \gre@calculate@linewidth%
+ \gre@calculate@stafflinewidth%
+ \gre@calculate@stafflineheight%
+ \gre@calculate@interstafflinespace%
+ \gre@calculate@stafflinediff%
+ \gre@calculate@staffheight%
+ \gre@calculate@constantglyphraise%
}%
\newskip\gre@skip@syllablefinalskip
@@ -242,69 +252,69 @@
%% shift = max(min_shift_text, min_shift_notes)
\def\gre@calculate@syllablefinalskip#1#2{%
%% min_text_dist = prev_cur_word ? 0 : space_inter_words
- \ifnum#1=1\relax %
- \ifgre@in@euouae %
- \ifgre@newbarspacing%
- \ifnum#2=1\relax %
- \gre@skip@minTextDistance=\gre@space@dimen@interwordspacetext@bars@euouae\relax%
- \else %
- \gre@skip@minTextDistance=\gre@space@skip@interwordspacetext@euouae\relax%
- \fi %
- \else%
- \gre@skip@minTextDistance=\gre@space@skip@interwordspacetext@euouae\relax%
- \fi%
- \else %
- \ifgre@newbarspacing%
- \ifnum#2=1\relax %
- \gre@skip@minTextDistance=\gre@space@dimen@interwordspacetext@bars\relax%
- \else %
- \gre@skip@minTextDistance=\gre@space@skip@interwordspacetext\relax%
- \fi %
- \else%
- \gre@skip@minTextDistance=\gre@space@skip@interwordspacetext\relax%
- \fi%
- \fi %
- \else %
- \gre@skip@minTextDistance=0pt\relax%
- \fi %
- \gre@debugmsg{syllablespacing}{ minTextDistance = \the\gre@skip@minTextDistance}%
- % setting minNotesDistance (quite simple)
- \ifcase#2\relax %
- \ifnum#1=1\relax %
- \ifgre@in@euouae %
- \gre@skip@minNotesDistance=\gre@space@skip@interwordspacenotes@euouae\relax%
- \else %
- \gre@skip@minNotesDistance=\gre@space@skip@interwordspacenotes\relax%
- \fi %
- \else %
- \gre@skip@minNotesDistance=\gre@space@dimen@intersyllablespacenotes\relax%
- \fi %
- \ifnum\gre@count@shiftaftermora>3\relax %
- \ifgre@thisendswithmora %
- % last syllable ends by a punctum mora, we want to ignore it.
- % this sets the distance to shift into \gre@skip@temp@four:
- \gre@get@unkern@aftermora{1}%
- \advance\gre@skip@minNotesDistance by \gre@skip@punctummorashift %
- \fi %
- \fi %
- \or %
- \ifgre@newbarspacing %
- \gre@skip@minNotesDistance=0pt\relax%
- \else %
- \gre@skip@minNotesDistance=\gre@space@skip@notebarspace\relax%
- \fi %
- \or %
- \ifnum#1=1\relax %
- \gre@skip@minNotesDistance=\gre@space@skip@interwordspacenotes@alteration\relax %
- \else %
- \gre@skip@minNotesDistance=\gre@space@dimen@intersyllablespacenotes@alteration\relax%
- \fi %
- \fi %
- \gre@debugmsg{syllablespacing}{ minNotesDistance = \the\gre@skip@minNotesDistance}%
- % determining current distance between notes and
- % next notes, and current distance between text and next text
- \gre@dimen@curTextDistance=0pt\relax%
- \gre@dimen@curNotesDistance=0pt\relax%
+ \ifnum#1=1\relax %
+ \ifgre@in@euouae %
+ \ifgre@newbarspacing%
+ \ifnum#2=1\relax %
+ \gre@skip@minTextDistance=\gre@space@dimen@interwordspacetext@bars@euouae\relax%
+ \else %
+ \gre@skip@minTextDistance=\gre@space@skip@interwordspacetext@euouae\relax%
+ \fi %
+ \else%
+ \gre@skip@minTextDistance=\gre@space@skip@interwordspacetext@euouae\relax%
+ \fi%
+ \else %
+ \ifgre@newbarspacing%
+ \ifnum#2=1\relax %
+ \gre@skip@minTextDistance=\gre@space@dimen@interwordspacetext@bars\relax%
+ \else %
+ \gre@skip@minTextDistance=\gre@space@skip@interwordspacetext\relax%
+ \fi %
+ \else%
+ \gre@skip@minTextDistance=\gre@space@skip@interwordspacetext\relax%
+ \fi%
+ \fi %
+ \else %
+ \gre@skip@minTextDistance=0pt\relax%
+ \fi %
+ \gre@debugmsg{syllablespacing}{ minTextDistance = \the\gre@skip@minTextDistance}%
+ % setting minNotesDistance (quite simple)
+ \ifcase#2\relax %
+ \ifnum#1=1\relax %
+ \ifgre@in@euouae %
+ \gre@skip@minNotesDistance=\gre@space@skip@interwordspacenotes@euouae\relax%
+ \else %
+ \gre@skip@minNotesDistance=\gre@space@skip@interwordspacenotes\relax%
+ \fi %
+ \else %
+ \gre@skip@minNotesDistance=\gre@space@dimen@intersyllablespacenotes\relax%
+ \fi %
+ \ifnum\gre@count@shiftaftermora>3\relax %
+ \ifgre@thisendswithmora %
+ % last syllable ends by a punctum mora, we want to ignore it.
+ % this sets the distance to shift into \gre@skip@temp@four:
+ \gre@get@unkern@aftermora{1}%
+ \advance\gre@skip@minNotesDistance by \gre@skip@punctummorashift %
+ \fi %
+ \fi %
+ \or %
+ \ifgre@newbarspacing %
+ \gre@skip@minNotesDistance=0pt\relax%
+ \else %
+ \gre@skip@minNotesDistance=\gre@space@skip@notebarspace\relax%
+ \fi %
+ \or %
+ \ifnum#1=1\relax %
+ \gre@skip@minNotesDistance=\gre@space@skip@interwordspacenotes@alteration\relax %
+ \else %
+ \gre@skip@minNotesDistance=\gre@space@dimen@intersyllablespacenotes@alteration\relax%
+ \fi %
+ \fi %
+ \gre@debugmsg{syllablespacing}{ minNotesDistance = \the\gre@skip@minNotesDistance}%
+ % determining current distance between notes and
+ % next notes, and current distance between text and next text
+ \gre@dimen@curTextDistance=0pt\relax%
+ \gre@dimen@curNotesDistance=0pt\relax%
%% cur_dist_notes = cur_dist_text = 0
%% if (cur_end_diff < 0):
%% cur_dist_notes += -cur_end_diff
@@ -314,38 +324,38 @@
%% cur_dist_notes += -next_begin_diff
%% else:
%% cur_dist_text += next_begin_diff
- \gre@debugmsg{syllablespacing}{ enddifference = \the\gre@dimen@enddifference}%
- \gre@debugmsg{syllablespacing}{ nextbegindifference = \the\gre@skip@nextbegindifference}%
- \ifdim\gre@dimen@enddifference < 0 pt\relax%
- \gre@dimen@curNotesDistance = -\gre@dimen@enddifference\relax%
- \else %
- \gre@dimen@curTextDistance = \gre@dimen@enddifference\relax%
- \fi %
- \ifdim\gre@skip@nextbegindifference < 0 pt\relax%
- \advance\gre@dimen@curNotesDistance by -\gre@skip@nextbegindifference\relax%
- \else %
- \advance\gre@dimen@curTextDistance by \gre@skip@nextbegindifference\relax%
- \fi %
- \gre@debugmsg{syllablespacing}{ curNotesDistance = \the\gre@dimen@curNotesDistance}%
- \gre@debugmsg{syllablespacing}{ curTextDistance = \the\gre@dimen@curTextDistance}%
+ \gre@debugmsg{syllablespacing}{ enddifference = \the\gre@dimen@enddifference}%
+ \gre@debugmsg{syllablespacing}{ nextbegindifference = \the\gre@skip@nextbegindifference}%
+ \ifdim\gre@dimen@enddifference < 0 pt\relax%
+ \gre@dimen@curNotesDistance = -\gre@dimen@enddifference\relax%
+ \else %
+ \gre@dimen@curTextDistance = \gre@dimen@enddifference\relax%
+ \fi %
+ \ifdim\gre@skip@nextbegindifference < 0 pt\relax%
+ \advance\gre@dimen@curNotesDistance by -\gre@skip@nextbegindifference\relax%
+ \else %
+ \advance\gre@dimen@curTextDistance by \gre@skip@nextbegindifference\relax%
+ \fi %
+ \gre@debugmsg{syllablespacing}{ curNotesDistance = \the\gre@dimen@curNotesDistance}%
+ \gre@debugmsg{syllablespacing}{ curTextDistance = \the\gre@dimen@curTextDistance}%
%% min_shift_text = min_dist_text - cur_dist_text
%% min_shift_notes = min_dist_notes - cur_dist_notes
%% shift = max(min_shift_text, min_shift_notes)
- \gre@skip@minShiftText = \glueexpr(\gre@skip@minTextDistance - \gre@dimen@curTextDistance)\relax %
- \gre@skip@minShiftNotes = \glueexpr(\gre@skip@minNotesDistance - \gre@dimen@curNotesDistance)\relax %
- \gre@debugmsg{syllablespacing}{ minShiftNotes = \the\gre@skip@minShiftNotes}%
- \gre@debugmsg{syllablespacing}{ minShiftText = \the\gre@skip@minShiftText}%
- \ifdim\gre@skip@minShiftNotes < \gre@skip@minShiftText %
- \global\gre@skip@syllablefinalskip = \gre@skip@minShiftText %
- \else %
- \global\gre@skip@syllablefinalskip = \gre@skip@minShiftNotes %
- \fi %
- \ifgre@showhyphenafterthissyllable %
- \gre@debugmsg{syllablespacing}{ add intersyllablespacestretchhyphen (\gre@space@skip@intersyllablespacestretchhyphen)}%
- \advance\gre@skip@syllablefinalskip by \gre@space@skip@intersyllablespacestretchhyphen\relax%
- \fi %
- \gre@debugmsg{syllablespacing}{ syllablefinalskip = \the\gre@skip@syllablefinalskip}%
- \relax %
+ \gre@skip@minShiftText = \glueexpr(\gre@skip@minTextDistance - \gre@dimen@curTextDistance)\relax %
+ \gre@skip@minShiftNotes = \glueexpr(\gre@skip@minNotesDistance - \gre@dimen@curNotesDistance)\relax %
+ \gre@debugmsg{syllablespacing}{ minShiftNotes = \the\gre@skip@minShiftNotes}%
+ \gre@debugmsg{syllablespacing}{ minShiftText = \the\gre@skip@minShiftText}%
+ \ifdim\gre@skip@minShiftNotes < \gre@skip@minShiftText %
+ \global\gre@skip@syllablefinalskip = \gre@skip@minShiftText %
+ \else %
+ \global\gre@skip@syllablefinalskip = \gre@skip@minShiftNotes %
+ \fi %
+ \ifgre@showhyphenafterthissyllable %
+ \gre@debugmsg{syllablespacing}{ add intersyllablespacestretchhyphen (\gre@space@skip@intersyllablespacestretchhyphen)}%
+ \advance\gre@skip@syllablefinalskip by \gre@space@skip@intersyllablespacestretchhyphen\relax%
+ \fi %
+ \gre@debugmsg{syllablespacing}{ syllablefinalskip = \the\gre@skip@syllablefinalskip}%
+ \relax %
}
% dimen keeping the shift computed with next function
@@ -360,38 +370,38 @@
%%
%% @arg#1 \gre@dimen@begindifference of the first syllable of the line
\def\gre@calculate@bolshift#1{%
- \gre@skip@temp@three = 0pt\relax%
- % bolextra is the space taken up by a leading alteration (it's 0 if there is no leading alteration)
- % it's allowed to invade spaceafterlineclef, so long as it leaves at least beforealterationspace between itself and the clef
- % and minimalspaceatlinebeginning between the lyrics and the beginning of the line
- \gre@skip@temp@one = \glueexpr(\gre@space@skip@spaceafterlineclef-\gre@space@dimen@beforealterationspace)\relax%
- \ifdim\gre@dimen@bolextra>\gre@skip@temp@one\relax%
- \global\advance\gre@skip@temp@three by \gre@skip@temp@one\relax%
- \else%
- \global\advance\gre@skip@temp@three by \gre@dimen@bolextra\relax%
- \fi%
- \ifdim#1>0pt\relax%
- % no additional shift is needed if the notes start before the text
- \global\gre@dimen@bolshift = \gre@skip@temp@three\relax%
- \else%
- % as the \gre@dimen@bolshift is computed from skips, we compute it in
- % a skip temp registry, and then "cast" it into a dimen
- % basic value for bolshift needs to incorporate -begindifference
- \advance\gre@skip@temp@three by -#1\relax%
- % we don't want to kern more than clefwidth + spaceafterlineclef - minimalspaceatlinebeginning
- % violating this would mean that either the notes are closer than (clefwidth + spaceafterlineclef)
- % or that the lyrics are closer than minimalspaceatlinebeginning
- \gre@skip@temp@one = \glueexpr(\gre@dimen@clefwidth %
- + \gre@space@skip@spaceafterlineclef %
- - \gre@space@dimen@minimalspaceatlinebeginning)\relax %
- \ifdim\gre@skip@temp@three < \gre@skip@temp@one %
- \global\gre@dimen@bolshift = \dimexpr\gre@skip@temp@three\relax %
- \else%
- \global\gre@dimen@bolshift = \dimexpr\gre@skip@temp@one\relax %
- \fi %
- \fi%
- \gre@debugmsg{bolshift}{ bolshift = \the\gre@dimen@bolshift}%
- \relax %
+ \gre@skip@temp@three = 0pt\relax%
+ % bolextra is the space taken up by a leading alteration (it's 0 if there is no leading alteration)
+ % it's allowed to invade spaceafterlineclef, so long as it leaves at least beforealterationspace between itself and the clef
+ % and minimalspaceatlinebeginning between the lyrics and the beginning of the line
+ \gre@skip@temp@one = \glueexpr(\gre@space@skip@spaceafterlineclef-\gre@space@dimen@beforealterationspace)\relax%
+ \ifdim\gre@dimen@bolextra>\gre@skip@temp@one\relax%
+ \global\advance\gre@skip@temp@three by \gre@skip@temp@one\relax%
+ \else%
+ \global\advance\gre@skip@temp@three by \gre@dimen@bolextra\relax%
+ \fi%
+ \ifdim#1>0pt\relax%
+ % no additional shift is needed if the notes start before the text
+ \global\gre@dimen@bolshift = \gre@skip@temp@three\relax%
+ \else%
+ % as the \gre@dimen@bolshift is computed from skips, we compute it in
+ % a skip temp registry, and then "cast" it into a dimen
+ % basic value for bolshift needs to incorporate -begindifference
+ \advance\gre@skip@temp@three by -#1\relax%
+ % we don't want to kern more than clefwidth + spaceafterlineclef - minimalspaceatlinebeginning
+ % violating this would mean that either the notes are closer than (clefwidth + spaceafterlineclef)
+ % or that the lyrics are closer than minimalspaceatlinebeginning
+ \gre@skip@temp@one = \glueexpr(\gre@dimen@clefwidth %
+ + \gre@space@skip@spaceafterlineclef %
+ - \gre@space@dimen@minimalspaceatlinebeginning)\relax %
+ \ifdim\gre@skip@temp@three < \gre@skip@temp@one %
+ \global\gre@dimen@bolshift = \dimexpr\gre@skip@temp@three\relax %
+ \else%
+ \global\gre@dimen@bolshift = \dimexpr\gre@skip@temp@one\relax %
+ \fi %
+ \fi%
+ \gre@debugmsg{bolshift}{ bolshift = \the\gre@dimen@bolshift}%
+ \relax %
}
% dimen keeping the shift computed with next function
@@ -402,8 +412,8 @@
\gre@count@protrusion@hyphen@eol = 50\relax
\def\gresethyphenprotrusion#1{%
- \gre@count@protrusion@hyphen@eol = #1\relax %
- \relax %
+ \gre@count@protrusion@hyphen@eol = #1\relax %
+ \relax %
}
%% @desc Macro used in \GreSyllable. Sets \gre@dimen@eolshift to the right kern
@@ -412,41 +422,45 @@
%%
%% @arg#1 The \gre@dimen@enddifference of the corresponding syllable
\def\gre@calculate@eolshift#1{%
- \gre@skip@temp@two=0pt\relax%
- % we only need a shift if the lyrics are longer than the notes
- \gre@debugmsg{eolshift}{eolshift called with enddifference: \the #1}%
- \ifdim#1 <0pt\relax%
- % we only need to shift if there is a custos being printed
- \ifgre@blockeolcustos%
- \gre@dimen@eolshift=0pt\relax%
- \else%
- % The basic value for the eol shift is -enddifference
- \gre@skip@temp@two=-#1\relax%
- % if there is a possible hyphen (added afterwards in lua), we keep some room for it
- \ifgre@possibleluahyphenafterthissyllable %
- \setbox\gre@box@temp@width=\hbox{\GreHyph}%
- \advance\gre@skip@temp@two by -\dimexpr(\wd\gre@box@temp@width * ((100 - \gre@count@protrusion@hyphen@eol) / 100))\relax%
- \gre@debugmsg{eolshift}{adjusted enddifference for protrusion: \the\gre@skip@temp@two}%
- \fi %
- % The maximum value is wd(custos) + spacebeforeeolcustos
- % Were the eolshift larger than this the lyrics would stick out
- % into the margin
- \setbox\gre@box@temp@width=\hbox{\gre@pickcustos{\gre@pitch@g}}%
- \gre@skip@temp@three = \glueexpr(\wd\gre@box@temp@width+\gre@space@skip@spacebeforeeolcustos)\relax%
- \gre@debugmsg{eolshift}{custos + space before custos = \the\gre@skip@temp@three}%
- % pick the smaller of the two values calculated above
- \ifdim\gre@skip@temp@two>\gre@skip@temp@three%
- \gre@debugmsg{eolshift}{imposing limit}%
- \global\gre@dimen@eolshift = \gre@skip@temp@three%
- \else%
- \global\gre@dimen@eolshift = \gre@skip@temp@two%
- \fi%
- \fi %
- \else%
- \global\gre@dimen@eolshift=0pt\relax%
- \fi %
- \gre@debugmsg{eolshift}{eolshift: \the\gre@dimen@eolshift}%
- \relax %
+ \gre@skip@temp@two=0pt\relax%
+ % we only need a shift if the lyrics are longer than the notes
+ \gre@debugmsg{eolshift}{eolshift called with enddifference: \the #1}%
+ \ifdim#1 <0pt\relax%
+ % we only need to shift if there is a custos being printed
+ \ifgre@blockeolcustos%
+ \gre@dimen@eolshift=0pt\relax%
+ \else%
+ % The basic value for the eol shift is -enddifference
+ \gre@skip@temp@two=-#1\relax%
+ % if there is a possible hyphen (added afterwards in lua), we keep some room for it
+ \ifgre@possibleluahyphenafterthissyllable %
+ \setbox\gre@box@temp@width=\hbox{\GreHyph}%
+ \advance\gre@skip@temp@two by -\dimexpr(\wd\gre@box@temp@width * ((100 - \gre@count@protrusion@hyphen@eol) / 100))\relax%
+ \gre@debugmsg{eolshift}{adjusted enddifference for protrusion: \the\gre@skip@temp@two}%
+ \fi %
+ % The maximum value is wd(custos) + spacebeforeeolcustos
+ % Were the eolshift larger than this the lyrics would stick out
+ % into the margin
+ \setbox\gre@box@temp@width=\hbox{\gre@pickcustos{\gre@pitch@g}{0}}%
+ \gre@skip@temp@three = \glueexpr(\wd\gre@box@temp@width+\gre@space@skip@spacebeforeeolcustos)\relax%
+ \gre@debugmsg{eolshift}{custos + space before custos = \the\gre@skip@temp@three}%
+ % pick the smaller of the two values calculated above
+ \ifdim\gre@skip@temp@two>\gre@skip@temp@three%
+ \gre@debugmsg{eolshift}{imposing limit}%
+ \global\gre@dimen@eolshift = \gre@skip@temp@three%
+ \else%
+ \global\gre@dimen@eolshift = \gre@skip@temp@two%
+ \fi%
+ \fi %
+ \else%
+ \global\gre@dimen@eolshift=0pt\relax%
+ \fi %
+ % if the notes are not visible, then there's no shifting allowed.
+ \ifgre@shownotes\else%
+ \global\gre@dimen@eolshift=0pt\relax%
+ \fi%
+ \gre@debugmsg{eolshift}{eolshift: \the\gre@dimen@eolshift}%
+ \relax %
}
%%%%%%%%%%%%%%%%%%%
@@ -459,14 +473,14 @@
\newif\ifgre@useledgerlineheuristic%
\gre@useledgerlineheuristictrue%
\def\gresetledgerlineheuristic#1{%
- \IfStrEqCase{#1}{%
- {enable}%
- {\gre@useledgerlineheuristictrue}%
- {disable}%
- {\gre@useledgerlineheuristicfalse}%
- }[% all other cases
- \gre@error{Unrecognized option "#1" in \protect\gresetledgerlineheuristic\MessageBreak Possible options are: 'enable' and 'disable'}%
- ]%
+ \IfStrEqCase{#1}{%
+ {enable}%
+ {\gre@useledgerlineheuristictrue}%
+ {disable}%
+ {\gre@useledgerlineheuristicfalse}%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" in \protect\gresetledgerlineheuristic\MessageBreak Possible options are: 'enable' and 'disable'}%
+ ]%
}%
% for backwards compatibility, we set these to true by default, and the
% system will set them appropriately if the heuristics determine a ledger
@@ -474,20 +488,20 @@
\newif\ifgre@ledgerline@above%
\newif\ifgre@ledgerline@below%
\def\GreSupposeHighLedgerLine{%
- \ifgre@useledgerlineheuristic\gre@ledgerline@abovetrue\fi %
+ \ifgre@useledgerlineheuristic\gre@ledgerline@abovetrue\fi %
}%
\def\GreSupposeLowLedgerLine{%
- \ifgre@useledgerlineheuristic\gre@ledgerline@belowtrue\fi %
+ \ifgre@useledgerlineheuristic\gre@ledgerline@belowtrue\fi %
}%
\def\gre@resetledgerlineheuristics{%
- \gre@ledgerline@abovetrue\gre@ledgerline@belowtrue %
+ \gre@ledgerline@abovetrue\gre@ledgerline@belowtrue %
}%
\def\gre@prephepisemaledgerlineheuristics{%
- \ifgre@useledgerlineheuristic %
- \gre@ledgerline@abovefalse\gre@ledgerline@belowfalse %
- \else %
- \gre@ledgerline@abovetrue\gre@ledgerline@belowtrue %
- \fi %
+ \ifgre@useledgerlineheuristic %
+ \gre@ledgerline@abovefalse\gre@ledgerline@belowfalse %
+ \else %
+ \gre@ledgerline@abovetrue\gre@ledgerline@belowtrue %
+ \fi %
}%
% a very useful macro : it determines the good height of a glyph : the argument is the "number" where the glyph should be : 4 for the first line, 6 for the second, etc.
@@ -516,183 +530,183 @@
%% 4: low in space below note
%% 5: high in space below note
\def\gre@calculate@glyphraisevalue#1#2#3{%
- \global\gre@isonalinefalse%
- \ifcase#1%
- % the first two cases are special cases for episemae on the lowest note
- \or\gre@count@temp@three=\number 0%
- \or\gre@count@temp@three=\number 1%
- \or\gre@count@temp@three=\number 2%
- \or\gre@count@temp@three=\number 3%
- \ifgre@ledgerline@below %
- \ifnum#2=3\relax %
- \else %
- % if it is a vertical episema, we don't care if it is on a line or
- % not... which may cause some problems...
- \global\gre@isonalinetrue %
- \fi %
- \fi %
- \or\gre@count@temp@three=\number 4%
- \or\gre@count@temp@three=\number 5%
- \global\gre@isonalinetrue%
- \or\gre@count@temp@three=\number 6%
- \or\gre@count@temp@three=\number 7%
- \global\gre@isonalinetrue%
- \or\gre@count@temp@three=\number 8%
- \or\gre@count@temp@three=\number 9%
- \ifgre@haslinethree %
- \global\gre@isonalinetrue%
- \else %
- \ifgre@ledgerline@above %
- \global\gre@isonalinetrue%
- \fi %
- \fi %
- \or\gre@count@temp@three=\number 10%
- \or\gre@count@temp@three=\number 11%
- \ifgre@haslinefour %
- \global\gre@isonalinetrue%
- \else %
- \ifgre@haslinethree %
- \ifgre@ledgerline@above %
- \global\gre@isonalinetrue%
- \fi %
- \fi %
- \fi %
- \or\gre@count@temp@three=\number 12%
- \or\gre@count@temp@three=\number 13%
- \ifgre@haslinefive %
- \global\gre@isonalinetrue%
- \else %
- \ifgre@haslinefour %
- \ifgre@ledgerline@above %
- \global\gre@isonalinetrue%
- \fi %
- \fi %
- \fi %
- \or\gre@count@temp@three=\number 14%
- \or\gre@count@temp@three=\number 15%
- \ifgre@haslinefive %
- \ifgre@ledgerline@above %
- \global\gre@isonalinetrue%
- \fi %
- \fi %
- \or\gre@count@temp@three=\number 16%
- \or\gre@count@temp@three=\number 17%
- \or\gre@count@temp@three=\number 18%
- \or\gre@count@temp@three=\number 19%
- \or\gre@count@temp@three=\number 20%
- \fi%
- % if there is not line... we don't consider notes are on lines
- \ifgre@showlines\else %
- \global\gre@isonalinefalse %
- \fi %
- % if the note is on a line, we change its height if necessary
- \ifgre@isonaline%
- \ifcase#2 %
- \or% 1
- \global\advance\gre@count@temp@three by 1%
- \or% 2
- \global\advance\gre@count@temp@three by -1%
- \or% 3
- \global\advance\gre@count@temp@three by -1%
- \or% 4
- \global\advance\gre@count@temp@three by 1%
- \or% 5
- \global\advance\gre@count@temp@three by -1%
- \or\or\or% 8
- \global\advance\gre@count@temp@three by -1%
- \or% 9
- \global\advance\gre@count@temp@three by 1%
- \or% 10
- \global\advance\gre@count@temp@three by 1%
- \or% 11
- \global\advance\gre@count@temp@three by 1%
- \or% 12
- \global\advance\gre@count@temp@three by -1%
- \fi%
- \fi%
- \global\advance\gre@count@temp@three by -8 %
- \global\gre@dimen@glyphraisevalue = \dimexpr(15750 sp * \gre@factor * \gre@count@temp@three)\relax %
- \ifcase#2 %
- \or\or\or%3: if it is a vertical episema on a line, we shift it a bit higher, so that it's more beautiful
- \ifgre@isonaline%
- \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@vepisemahighshift\relax %
- \else % if it is not on a line, we shift it a bit lower
- \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@vepisemalowshift\relax %
- \fi %
- \or% 4: if it is a punctum mora on a line, we shift it a bit lower, for the same reason
- \ifgre@isonaline%
- \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@linepunctummorashift\relax %
- \else %
- \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@spacepunctummorashift\relax %
- \fi%
- \or% 5: if it is a horizontal episema under a note which is on a line, we shift it lower
- \ifcase#3\relax % 0 - auto
- \ifgre@isonaline% if it is under a note between two lines, we shift it higher
- \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@underhepisemahighshift\relax %
- \else %
- \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@underhepisemalowshift\relax %
- \fi %
- \or % 1 - middle
- \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@hepisemamiddleshift\relax %
- \or % 2 - over-low
- \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@overhepisemalowshift\relax %
- \or % 3 - over-high
- \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@overhepisemahighshift\relax %
- \or % 4 - under-low
- \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@underhepisemalowshift\relax %
- \or % 5 - under-high
- \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@underhepisemahighshift\relax %
- \fi %
- \or% 6: if it is a sign, we put it at an arbitrary height
- \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@raresignshift\relax %
- \or\or% 8: if it is a punctum mora on a line, we shift it a bit lower, for the same reason
- \ifgre@isonaline%
- \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@lineporrectuspunctummorashift\relax %
- \else %
- \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@spaceporrectuspunctummorashift\relax %
- \fi %
- \or% 9: if it is an horizontal episema not on a line, we put it a bit lower
- \ifcase#3\relax % 0 - auto
- \ifgre@isonaline%
- \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@overhepisemalowshift\relax %
- \else %
- \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@overhepisemahighshift\relax %
- \fi %
- \or % 1 - middle
- \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@hepisemamiddleshift\relax %
- \or % 2 - over-low
- \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@overhepisemalowshift\relax %
- \or % 3 - over-high
- \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@overhepisemahighshift\relax %
- \or % 4 - under-low
- \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@underhepisemalowshift\relax %
- \or % 5 - under-high
- \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@underhepisemahighshift\relax %
- \fi %
- \or% 10: low choral sign that is not lower than the note
- \global\advance\gre@dimen@glyphraisevalue by -\gre@space@dimen@choralsigndownshift\relax%
- \or% 11: high choral sign
- \ifgre@isonaline%
- \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@choralsignupshift\relax%
- \else %
- \global\advance\gre@dimen@glyphraisevalue by -\gre@space@dimen@choralsigndownshift\relax%
- \fi %
- \or% 12: low choral sign that is lower than the note
- \ifgre@isonaline%
- \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@choralsignupshift\relax%
- \else %
- \global\advance\gre@dimen@glyphraisevalue by -\gre@space@dimen@choralsigndownshift\relax%
- \fi %
- \or% 13: if it is the brace above the bars, we shift it to a user-defined value
- \global\advance\gre@dimen@glyphraisevalue by -\gre@space@dimen@braceshift\relax%
- \or% 14: raise the punctum mora in a space a bit higher than case 4
- \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@spaceamonepespunctummorashift\relax%
- \or% 15: over slur
- \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@overslurshift\relax%
- \or% 16: under slur
- \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@underslurshift\relax%
- \fi%
- \global\advance\gre@dimen@glyphraisevalue by \the\gre@dimen@constantglyphraise\relax%
+ \global\gre@isonalinefalse%
+ \ifcase#1%
+ % the first two cases are special cases for episemae on the lowest note
+ \or\gre@count@temp@three=\number 0%
+ \or\gre@count@temp@three=\number 1%
+ \or\gre@count@temp@three=\number 2%
+ \or\gre@count@temp@three=\number 3%
+ \ifgre@ledgerline@below %
+ \ifnum#2=3\relax %
+ \else %
+ % if it is a vertical episema, we don't care if it is on a line or
+ % not... which may cause some problems...
+ \global\gre@isonalinetrue %
+ \fi %
+ \fi %
+ \or\gre@count@temp@three=\number 4%
+ \or\gre@count@temp@three=\number 5%
+ \global\gre@isonalinetrue%
+ \or\gre@count@temp@three=\number 6%
+ \or\gre@count@temp@three=\number 7%
+ \global\gre@isonalinetrue%
+ \or\gre@count@temp@three=\number 8%
+ \or\gre@count@temp@three=\number 9%
+ \ifgre@haslinethree %
+ \global\gre@isonalinetrue%
+ \else %
+ \ifgre@ledgerline@above %
+ \global\gre@isonalinetrue%
+ \fi %
+ \fi %
+ \or\gre@count@temp@three=\number 10%
+ \or\gre@count@temp@three=\number 11%
+ \ifgre@haslinefour %
+ \global\gre@isonalinetrue%
+ \else %
+ \ifgre@haslinethree %
+ \ifgre@ledgerline@above %
+ \global\gre@isonalinetrue%
+ \fi %
+ \fi %
+ \fi %
+ \or\gre@count@temp@three=\number 12%
+ \or\gre@count@temp@three=\number 13%
+ \ifgre@haslinefive %
+ \global\gre@isonalinetrue%
+ \else %
+ \ifgre@haslinefour %
+ \ifgre@ledgerline@above %
+ \global\gre@isonalinetrue%
+ \fi %
+ \fi %
+ \fi %
+ \or\gre@count@temp@three=\number 14%
+ \or\gre@count@temp@three=\number 15%
+ \ifgre@haslinefive %
+ \ifgre@ledgerline@above %
+ \global\gre@isonalinetrue%
+ \fi %
+ \fi %
+ \or\gre@count@temp@three=\number 16%
+ \or\gre@count@temp@three=\number 17%
+ \or\gre@count@temp@three=\number 18%
+ \or\gre@count@temp@three=\number 19%
+ \or\gre@count@temp@three=\number 20%
+ \fi%
+ % if there is not line... we don't consider notes are on lines
+ \ifgre@showlines\else %
+ \global\gre@isonalinefalse %
+ \fi %
+ % if the note is on a line, we change its height if necessary
+ \ifgre@isonaline%
+ \ifcase#2 %
+ \or% 1
+ \global\advance\gre@count@temp@three by 1%
+ \or% 2
+ \global\advance\gre@count@temp@three by -1%
+ \or% 3
+ \global\advance\gre@count@temp@three by -1%
+ \or% 4
+ \global\advance\gre@count@temp@three by 1%
+ \or% 5
+ \global\advance\gre@count@temp@three by -1%
+ \or\or\or% 8
+ \global\advance\gre@count@temp@three by -1%
+ \or% 9
+ \global\advance\gre@count@temp@three by 1%
+ \or% 10
+ \global\advance\gre@count@temp@three by 1%
+ \or% 11
+ \global\advance\gre@count@temp@three by 1%
+ \or% 12
+ \global\advance\gre@count@temp@three by -1%
+ \fi%
+ \fi%
+ \global\advance\gre@count@temp@three by -8 %
+ \global\gre@dimen@glyphraisevalue = \dimexpr(15750 sp * \gre@factor * \gre@count@temp@three)\relax %
+ \ifcase#2 %
+ \or\or\or%3: if it is a vertical episema on a line, we shift it a bit higher, so that it's more beautiful
+ \ifgre@isonaline%
+ \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@vepisemahighshift\relax %
+ \else % if it is not on a line, we shift it a bit lower
+ \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@vepisemalowshift\relax %
+ \fi %
+ \or% 4: if it is a punctum mora on a line, we shift it a bit lower, for the same reason
+ \ifgre@isonaline%
+ \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@linepunctummorashift\relax %
+ \else %
+ \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@spacepunctummorashift\relax %
+ \fi%
+ \or% 5: if it is a horizontal episema under a note which is on a line, we shift it lower
+ \ifcase#3\relax % 0 - auto
+ \ifgre@isonaline% if it is under a note between two lines, we shift it higher
+ \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@underhepisemahighshift\relax %
+ \else %
+ \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@underhepisemalowshift\relax %
+ \fi %
+ \or % 1 - middle
+ \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@hepisemamiddleshift\relax %
+ \or % 2 - over-low
+ \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@overhepisemalowshift\relax %
+ \or % 3 - over-high
+ \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@overhepisemahighshift\relax %
+ \or % 4 - under-low
+ \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@underhepisemalowshift\relax %
+ \or % 5 - under-high
+ \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@underhepisemahighshift\relax %
+ \fi %
+ \or% 6: if it is a sign, we put it at an arbitrary height
+ \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@raresignshift\relax %
+ \or\or% 8: if it is a punctum mora on a line, we shift it a bit lower, for the same reason
+ \ifgre@isonaline%
+ \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@lineporrectuspunctummorashift\relax %
+ \else %
+ \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@spaceporrectuspunctummorashift\relax %
+ \fi %
+ \or% 9: if it is an horizontal episema not on a line, we put it a bit lower
+ \ifcase#3\relax % 0 - auto
+ \ifgre@isonaline%
+ \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@overhepisemalowshift\relax %
+ \else %
+ \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@overhepisemahighshift\relax %
+ \fi %
+ \or % 1 - middle
+ \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@hepisemamiddleshift\relax %
+ \or % 2 - over-low
+ \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@overhepisemalowshift\relax %
+ \or % 3 - over-high
+ \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@overhepisemahighshift\relax %
+ \or % 4 - under-low
+ \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@underhepisemalowshift\relax %
+ \or % 5 - under-high
+ \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@underhepisemahighshift\relax %
+ \fi %
+ \or% 10: low choral sign that is not lower than the note
+ \global\advance\gre@dimen@glyphraisevalue by -\gre@space@dimen@choralsigndownshift\relax%
+ \or% 11: high choral sign
+ \ifgre@isonaline%
+ \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@choralsignupshift\relax%
+ \else %
+ \global\advance\gre@dimen@glyphraisevalue by -\gre@space@dimen@choralsigndownshift\relax%
+ \fi %
+ \or% 12: low choral sign that is lower than the note
+ \ifgre@isonaline%
+ \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@choralsignupshift\relax%
+ \else %
+ \global\advance\gre@dimen@glyphraisevalue by -\gre@space@dimen@choralsigndownshift\relax%
+ \fi %
+ \or% 13: if it is the brace above the bars, we shift it to a user-defined value
+ \global\advance\gre@dimen@glyphraisevalue by -\gre@space@dimen@braceshift\relax%
+ \or% 14: raise the punctum mora in a space a bit higher than case 4
+ \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@spaceamonepespunctummorashift\relax%
+ \or% 15: over slur
+ \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@overslurshift\relax%
+ \or% 16: under slur
+ \global\advance\gre@dimen@glyphraisevalue by \gre@space@dimen@underslurshift\relax%
+ \fi%
+ \global\advance\gre@dimen@glyphraisevalue by \the\gre@dimen@constantglyphraise\relax%
}%
% two dimensions for the additionalspaces
@@ -713,38 +727,38 @@
% #3 is 1 if there is a translation somewhere
% #4 is if 1 if we have space above the staff
\def\gre@calculate@additionalspaces#1#2#3#4{%
- \gre@debugmsg{lineheight}{gre@calculate@additional@spaces called with #1 #2 #3 #4}%
- \gre@count@temp@one=\numexpr(#1 - \gre@pitch@adjust@top - \gre@space@count@additionaltopspacethreshold)\relax %
- \ifnum\gre@count@temp@one>0\relax %
- \global\gre@dimen@additionaltopspace=\dimexpr(15750 sp * \gre@count@temp@one * \gre@factor)\relax %
- \else %
- \global\gre@dimen@additionaltopspace=0 sp%
- \fi %
- \gre@count@temp@one=\numexpr(#1 - \gre@pitch@adjust@top - \gre@space@count@additionaltopspacealtthreshold)\relax %
- \ifnum\gre@count@temp@one>0\relax %
- \global\gre@dimen@additionaltopspacealt=\dimexpr(15750 sp * \gre@count@temp@one * \gre@factor)\relax %
- \else %
- \global\gre@dimen@additionaltopspacealt=0 sp%
- \fi %
- \gre@count@temp@one=\numexpr((#2 - \gre@pitch@adjust@bottom) * -1)\relax %
- \ifnum\gre@count@temp@one>0\relax %
- \global\gre@dimen@additionalbottomspace=\dimexpr(15750 sp * \gre@count@temp@one * \gre@factor)\relax %
- \else %
- \global\gre@dimen@additionalbottomspace=0 sp%
- \fi %
- \ifnum#3 = 1\relax %
- \gre@addtranslationspace %
- \else %
- \gre@removetranslationspace %
- \fi %
- \ifnum#4 = 1\relax %
- \gre@addspaceabove %
- \else %
- \gre@removespaceabove %
- \fi %
- \gre@generatelines %
- \gre@calculate@constantglyphraise %
- \relax %
+ \gre@debugmsg{lineheight}{gre@calculate@additional@spaces called with #1 #2 #3 #4}%
+ \gre@count@temp@one=\numexpr(#1 - \gre@pitch@adjust@top - \gre@space@count@additionaltopspacethreshold)\relax %
+ \ifnum\gre@count@temp@one>0\relax %
+ \global\gre@dimen@additionaltopspace=\dimexpr(15750 sp * \gre@count@temp@one * \gre@factor)\relax %
+ \else %
+ \global\gre@dimen@additionaltopspace=0 sp%
+ \fi %
+ \gre@count@temp@one=\numexpr(#1 - \gre@pitch@adjust@top - \gre@space@count@additionaltopspacealtthreshold)\relax %
+ \ifnum\gre@count@temp@one>0\relax %
+ \global\gre@dimen@additionaltopspacealt=\dimexpr(15750 sp * \gre@count@temp@one * \gre@factor)\relax %
+ \else %
+ \global\gre@dimen@additionaltopspacealt=0 sp%
+ \fi %
+ \gre@count@temp@one=\numexpr((#2 - \gre@pitch@adjust@bottom) * -1)\relax %
+ \ifnum\gre@count@temp@one>0\relax %
+ \global\gre@dimen@additionalbottomspace=\dimexpr(15750 sp * \gre@count@temp@one * \gre@factor)\relax %
+ \else %
+ \global\gre@dimen@additionalbottomspace=0 sp%
+ \fi %
+ \ifnum#3 = 1\relax %
+ \gre@addtranslationspace %
+ \else %
+ \gre@removetranslationspace %
+ \fi %
+ \ifnum#4 = 1\relax %
+ \gre@addspaceabove %
+ \else %
+ \gre@removespaceabove %
+ \fi %
+ \gre@generatelines %
+ \gre@calculate@constantglyphraise %
+ \relax %
}%
%% macro that typesets the text of the syllable, and sets textaligncenter to the middle of the middle letters, it is needed because we align the note (often the middle of the note) with the middle of the middle letters
@@ -755,20 +769,20 @@
\newdimen\gre@dimen@textaligncenter\relax%
\def\gre@calculate@textaligncenter#1#2#3{%
- \ifnum#3=0\relax%
- \gre@widthof{\gre@fixedtextformat{#1#2}}%
- \else %
- \gre@widthof{\gre@fixednexttextformat{#1#2}}%
- \fi %
- \global\gre@dimen@textaligncenter=\the\gre@dimen@temp@three %
- \ifnum#3=0\relax%
- \gre@widthof{\gre@fixedtextformat{#2}}%
- \else %
- \gre@widthof{\gre@fixednexttextformat{#2}}%
- \fi %
- \divide\gre@dimen@temp@three by 2 %
- \global\advance\gre@dimen@textaligncenter by -\the\gre@dimen@temp@three%
- \relax%
+ \ifnum#3=0\relax%
+ \gre@widthof{\gre@fixedtextformat{#1#2}}%
+ \else %
+ \gre@widthof{\gre@fixednexttextformat{#1#2}}%
+ \fi %
+ \global\gre@dimen@textaligncenter=\the\gre@dimen@temp@three %
+ \ifnum#3=0\relax%
+ \gre@widthof{\gre@fixedtextformat{#2}}%
+ \else %
+ \gre@widthof{\gre@fixednexttextformat{#2}}%
+ \fi %
+ \divide\gre@dimen@temp@three by 2 %
+ \global\advance\gre@dimen@textaligncenter by -\the\gre@dimen@temp@three%
+ \relax%
}%
% a dimen that will contain the difference between the end of the text and the end of the notes for the previous syllable (if we are in the same word) : positive if notes go further than text. We will use it for space adjustment between syllables of the same word
@@ -786,11 +800,11 @@
% #4: notesaligncenter (defined above too)
% #5: if we have to set previousenddifference or not
\def\gre@calculate@enddifference#1#2#3#4#5{%
- \ifcase#5\or %
- \global\gre@dimen@previousenddifference=\the\gre@dimen@enddifference\relax%
- \fi %
- \global\gre@dimen@enddifference=\dimexpr(#1 - #2 + #3 - #4)\relax%
- \relax%
+ \ifcase#5\or %
+ \global\gre@dimen@previousenddifference=\the\gre@dimen@enddifference\relax%
+ \fi %
+ \global\gre@dimen@enddifference=\dimexpr(#1 - #2 + #3 - #4)\relax%
+ \relax%
}%
% temporary value for space for the translation, beneath the text
@@ -798,26 +812,22 @@
% macro to tell gregorio to set space for the translation
\def\gre@addtranslationspace{%
- \gre@style@translation%
- \global\gre@dimen@currenttranslationheight=\gre@space@dimen@translationheight\relax%
- \global\gre@dimen@textlower=\dimexpr(\gre@space@dimen@spacebeneathtext %
- + \gre@space@dimen@translationheight)\relax%
- \gre@generatelines %
- \gre@calculate@constantglyphraise %
- \endgre@style@translation%
- \ifx\gre@empty@translationformat\gretranslationformat% OBSOLETE
- \else% OBSOLETE
- \gre@obsolete{\protect\gretranslationformat}{\protect\grechangestyle{translation}}% OBSOLETE
- \fi% OBSOLETE
- \relax %
+ \gre@style@translation%
+ \global\gre@dimen@currenttranslationheight=\gre@space@dimen@translationheight\relax%
+ \global\gre@dimen@textlower=\dimexpr(\gre@space@dimen@spacebeneathtext %
+ + \gre@space@dimen@translationheight)\relax%
+ \gre@generatelines %
+ \gre@calculate@constantglyphraise %
+ \endgre@style@translation%
+ \relax %
}%
\def\gre@removetranslationspace{%
- \global\gre@dimen@currenttranslationheight=0 sp%
- \global\gre@dimen@textlower=\gre@space@dimen@spacebeneathtext\relax%
- \gre@generatelines %
- \gre@calculate@constantglyphraise %
- \relax %
+ \global\gre@dimen@currenttranslationheight=0 sp%
+ \global\gre@dimen@textlower=\gre@space@dimen@spacebeneathtext\relax%
+ \gre@generatelines %
+ \gre@calculate@constantglyphraise %
+ \relax %
}%
%nextbegindifference is the begindifference of the next syllable
@@ -829,20 +839,20 @@
%% 3 : the end letters of the next syllable
%% 4 : the type of notes alignment
\def\gre@calculate@nextbegindifference#1#2#3#4{%
- \ifnum\gre@lastoflinecount=1\relax %
- \global\gre@skip@nextbegindifference=0pt\relax%
- \else %
- %to prevent the pollution of the normal values, we stock them into a temp value
- \gre@dimen@temp@two=\gre@dimen@textaligncenter\relax%
- \gre@calculate@textaligncenter{#1}{#2}{1}%
- \global\gre@skip@nextbegindifference=-\gre@dimen@textaligncenter\relax%
- \global\gre@dimen@textaligncenter=\gre@dimen@temp@two %
- \gre@dimen@temp@two=\gre@dimen@notesaligncenter\relax%
- \gre@calculate@nextnotesaligncenter{#4}% idem
- \global\advance\gre@skip@nextbegindifference by \the\gre@dimen@notesaligncenter\relax%
- \global\gre@dimen@notesaligncenter=\gre@dimen@temp@two %
- \fi %
- \relax %
+ \ifnum\gre@lastoflinecount=1\relax %
+ \global\gre@skip@nextbegindifference=0pt\relax%
+ \else %
+ %to prevent the pollution of the normal values, we stock them into a temp value
+ \gre@dimen@temp@two=\gre@dimen@textaligncenter\relax%
+ \gre@calculate@textaligncenter{#1}{#2}{1}%
+ \global\gre@skip@nextbegindifference=-\gre@dimen@textaligncenter\relax%
+ \global\gre@dimen@textaligncenter=\gre@dimen@temp@two %
+ \gre@dimen@temp@two=\gre@dimen@notesaligncenter\relax%
+ \gre@calculate@nextnotesaligncenter{#4}% idem
+ \global\advance\gre@skip@nextbegindifference by \the\gre@dimen@notesaligncenter\relax%
+ \global\gre@dimen@notesaligncenter=\gre@dimen@temp@two %
+ \fi %
+ \relax %
}%
%The distance from the baseline of the line to the baseline of the annotations
@@ -850,34 +860,34 @@
% When text is placed in the annotation boxes these dimensions are initialized with values based on the contents and the user parameters
%This function sets the true raises of the two lines above the initial (it has to be called just as the boxes are placed in order to make sure that the values are all correct)
\def\gre@calculate@annotationtrueraise{%
- \gre@debugmsg{annotation}{Calculating the raise.}%
- \global\advance\gre@dimen@annotationtrueraise by %
- \dimexpr(\gre@dimen@staffheight %
- + \gre@space@dimen@spacebeneathtext %
- + \gre@dimen@currenttranslationheight %
- + \gre@space@dimen@spacelinestext %
- + \gre@dimen@additionalbottomspace)\relax%
- \gre@style@annotation%
- \global\advance\gre@dimen@annotationtrueraise by \gre@space@dimen@annotationraise\relax%
- \gre@debugmsg{annnotation}{Added user raise.}%
- \endgre@style@annotation%
- \relax %
+ \gre@debugmsg{annotation}{Calculating the raise.}%
+ \global\advance\gre@dimen@annotationtrueraise by %
+ \dimexpr(\gre@dimen@staffheight %
+ + \gre@space@dimen@spacebeneathtext %
+ + \gre@dimen@currenttranslationheight %
+ + \gre@space@dimen@spacelinestext %
+ + \gre@dimen@additionalbottomspace)\relax%
+ \gre@style@annotation%
+ \global\advance\gre@dimen@annotationtrueraise by \gre@space@dimen@annotationraise\relax%
+ \gre@debugmsg{annnotation}{Added user raise.}%
+ \endgre@style@annotation%
+ \relax %
}%
%The distance from the baseline of the line to the baseline of the commentary
\newdimen\gre@dimen@commentarytrueraise\relax%
%This function sets the true raises of the commentary (it has to be called just as the boxes are placed in order to make sure that the values are all correct)
\def\gre@calculate@commentarytrueraise{%
- \gre@style@commentary%
- \gre@debugmsg{commentary}{Calculating the raise.}%
- \global\advance\gre@dimen@commentarytrueraise by %
- \dimexpr(\gre@dimen@staffheight %
- + \gre@space@dimen@spacebeneathtext %
- + \gre@dimen@currenttranslationheight %
- + \gre@space@dimen@spacelinestext %
- + \gre@dimen@additionalbottomspace %
- + \gre@space@dimen@commentaryraise)\relax%
- \endgre@style@commentary%
+ \gre@style@commentary%
+ \gre@debugmsg{commentary}{Calculating the raise.}%
+ \global\advance\gre@dimen@commentarytrueraise by %
+ \dimexpr(\gre@dimen@staffheight %
+ + \gre@space@dimen@spacebeneathtext %
+ + \gre@dimen@currenttranslationheight %
+ + \gre@space@dimen@spacelinestext %
+ + \gre@dimen@additionalbottomspace %
+ + \gre@space@dimen@commentaryraise)\relax%
+ \endgre@style@commentary%
}%
% spaces for new bar positioning algorithm
@@ -897,227 +907,227 @@
% #1 is #4 from \GreBarSyllable (1 if bar is end of word, 0 if not)
% #2 is #7 from \GreBarSyllable (alignment type of first next glyph)
\def\gre@calculate@barposition#1#2{%
- % we start by finding the distance between the text and notes of the previous and the next syllable (as if this syllable didn't exist, for the moment)
- \gre@debugmsg{barspacing}{calculate available space}%
- % first, recomputing \gre@dimen@previousenddifference into \gre@dimen@adjustedpreviousenddifference
- % taking into account the punctum mora shift
- \gre@dimen@adjustedpreviousenddifference=\gre@dimen@previousenddifference %
- % gre@skip@punctummorashift is 0 or the punctum mora shift
- \gre@skip@punctummorashift=0pt\relax %
- \ifgre@lastendswithmora %
- \ifcase\gre@count@shiftaftermora\or\or %
- \ifdim\wd\gre@box@syllabletext=0pt\relax %
- % punctum mora adjustment should occur only for bars with no text
- \gre@get@unkern@aftermora{2}%
- \advance\gre@dimen@adjustedpreviousenddifference by \gre@skip@punctummorashift %
- \fi %
- \or %
- % punctum mora adjustment only before bars
- \gre@get@unkern@aftermora{2}%
- \advance\gre@dimen@adjustedpreviousenddifference by \gre@skip@punctummorashift %
- \or\or %
- % punctum mora adjustment always occurs
- \gre@get@unkern@aftermora{2}%
- \advance\gre@dimen@adjustedpreviousenddifference by \gre@skip@punctummorashift %
- \fi %
- \fi %
- % now something a bit tricky: as we changed previousenddifference,
- % we must kern of the difference we created, but no more than
- % the end of the text:
- \ifdim\gre@skip@punctummorashift=0pt\else %
- \gre@debugmsg{barspacing}{adjustment for punctum mora: \the\gre@skip@punctummorashift}%
- \gre@debugmsg{barspacing}{adjusted previous enddifference (for punctum mora): \the\gre@dimen@adjustedpreviousenddifference}%
- \ifdim -\gre@skip@punctummorashift < \gre@dimen@previousenddifference %
- \gre@debugmsg{barspacing}{kern \the\gre@skip@punctummorashift for punctum mora adjustment}%
- \kern\gre@skip@punctummorashift %
- \else %
- \ifdim\gre@dimen@previousenddifference > 0pt\relax %
- \gre@debugmsg{barspacing}{kern \the\gre@dimen@previousenddifference for punctum mora adjustment}%
- \kern-\gre@dimen@previousenddifference %
- \fi %
- \fi %
- \fi %
- \ifdim\gre@dimen@adjustedpreviousenddifference > 0pt\relax%
- % the notes ended after the text in the previous syllable
- \gre@skip@text@allocation = \gre@dimen@adjustedpreviousenddifference\relax%
- \gre@skip@bar@allocation = 0pt\relax%
- \else%
- % the text ended after the notes in the previous syllable
- \gre@skip@text@allocation = 0pt\relax%
- \gre@skip@bar@allocation = -\gre@dimen@adjustedpreviousenddifference\relax%
- \fi%
- \ifdim\gre@skip@nextbegindifference > 0pt\relax%
- % the text began after the notes in the next syllable
- \advance\gre@skip@text@allocation by \gre@skip@nextbegindifference\relax%
- \advance\gre@skip@bar@allocation by 0pt\relax%
- \else%
- % the notes begin after the text in the next syllable
- \advance\gre@skip@text@allocation by 0pt\relax%
- \advance\gre@skip@bar@allocation by -\gre@skip@nextbegindifference\relax%
- \fi%
- \gre@debugmsg{barspacing}{space available to text: \the\gre@skip@text@allocation}%
- \gre@debugmsg{barspacing}{spacing available to notes: \the\gre@skip@bar@allocation}%
- % now we need to check these widths against the width the current syllable needs for each element and increase them as necessary
- % if they aren't wide enough, then we need to increase *both* widths
- \gre@debugmsg{barspacing}{calculate required widths}%
- % first we check the text width
- % we have to account for the spacing around the text as well as the text itself
- \ifdim\wd\gre@box@syllabletext > 0pt\relax%
- % first we account for the spacing which is needed after the previous syllable text (by using the minTextDistance left over from the previous syllablefinalskip calculation)
- \gre@debugmsg{barspacing}{text width: \the\wd\gre@box@syllabletext}%
- \gre@debugmsg{barspacing}{previous syllable skip after text: \the\gre@skip@minTextDistance}%
- \gre@skip@text@requirement = \glueexpr\wd\gre@box@syllabletext + \gre@skip@minTextDistance\relax%
- %now we need to account for the spacing which goes after this syllable (if there is text to this syllable)
- %this calculation is similar to what is done in \gre@calculate@syllablefinalskip, but is only for the text, so we'll use \gre@skip@syllablefinalskip to hold this value for now
- \ifnum#1=1\relax %
- \ifgre@in@euouae %
- \gre@skip@syllablefinalskip=\gre@space@dimen@interwordspacetext@bars@euouae\relax%
- \else %
- \gre@skip@syllablefinalskip=\gre@space@dimen@interwordspacetext@bars\relax%
- \fi %
- \else %
- \gre@skip@syllablefinalskip=0pt\relax%
- \fi %
- \gre@debugmsg{barspacing}{this syllable skip after text: \the\gre@skip@syllablefinalskip}%
- \advance\gre@skip@text@requirement by \gre@skip@syllablefinalskip\relax%
- \else%
- \ifnum#1=1\relax%
- \ifgre@in@euouae%
- \gre@skip@text@requirement=\gre@space@dimen@interwordspacetext@bars@notext@euouae\relax%
- \else%
- \gre@skip@text@requirement=\gre@space@dimen@interwordspacetext@bars@notext\relax%
- \fi%
- \else%
- \gre@skip@text@requirement=0pt\relax%
- \fi%
- \fi%
- \ifdim\gre@skip@text@allocation < \gre@skip@text@requirement\relax%
- \advance\gre@skip@bar@allocation by \glueexpr(\gre@skip@text@requirement - \gre@skip@text@allocation)\relax%
- \gre@skip@text@allocation = \gre@skip@text@requirement\relax%
- \fi%
- \gre@debugmsg{barspacing}{space required by text: \the\gre@skip@text@requirement}%
- \gre@debugmsg{barspacing}{allocated text space: \the\gre@skip@text@allocation}%
- \gre@debugmsg{barspacing}{allocated notes space: \the\gre@skip@bar@allocation}%
- % now we check the bar width
- \gre@debugmsg{barspacing}{bar width: \the\wd\gre@box@syllablenotes}%
- \gre@skip@bar@requirement = \wd\gre@box@syllablenotes\relax%
- \ifdim\gre@skip@bar@allocation < \gre@skip@bar@requirement\relax%
- \advance\gre@skip@text@allocation by \glueexpr(\gre@skip@bar@requirement - \gre@skip@bar@allocation)\relax%
- \gre@skip@bar@allocation = \gre@skip@bar@requirement\relax%
- \fi%
- \gre@debugmsg{barspacing}{required space for notes: \the\gre@skip@bar@requirement}%
- \gre@debugmsg{barspacing}{allocated text space: \the\gre@skip@text@allocation}%
- \gre@debugmsg{barspacing}{allocated notes space: \the\gre@skip@bar@allocation}%
- % our final position calculation is to make sure that the centers of the text and the bar are not too far from each other
- % this isn't really the begindifference (it doesn't account for the width of the text and the bar), but it's close enough that we'll use that register for this calculation
- % to be consistent with the normal begin difference, this value should take us from the middle of the notes to the middle of the text.
- \gre@dimen@begindifference=\dimexpr(-\gre@skip@bar@allocation/2% going to the left by the bar@allocation/2 (an always positive value, so we lead with a minus sign to go left)
- -\gre@dimen@adjustedpreviousenddifference% moving from the end of the notes in the previous syllable to the end of the text there (opposite the sense of enddifference so we lead with a minus sign)
- +\gre@skip@text@allocation/2)\relax% going to the right by the text@allocation/2 (an always positive value, so lead with positive to go right)
- \gre@debugmsg{barspacing}{new begindifference approximation: \the\gre@dimen@begindifference}%
- % in order to avoid code duplication, we check whether or not there is a bar line now and set temp variables to the appropriate offset limits. We’ll then use those temp variables in the code below.
- \ifdim\wd\gre@box@syllablenotes = 0pt\relax%
- \gre@debugmsg{barspacing}{no bar offset limits}%
- \gre@dimen@temp@three=\gre@space@dimen@maxbaroffsettextleft@nobar\relax%
- \gre@dimen@temp@two=\gre@space@dimen@maxbaroffsettextright@nobar\relax%
- \else%
- \gre@debugmsg{barspacing}{normal offset limits}%
- \gre@dimen@temp@three=\gre@space@dimen@maxbaroffsettextleft\relax%
- \gre@dimen@temp@two=\gre@space@dimen@maxbaroffsettextright\relax%
- \fi%
- % in the event that the bar is occurring at the end of the line, we use different offset limits
- % for now this only works for explicit end of lines which occur in the same syllable as the bar line (e.g. `test(::z)`)
- \ifnum\gre@newlinearg=-1\relax\else%
- \gre@debugmsg{barspacing}{end of line override on offset limits}%
- \gre@dimen@temp@three=\gre@space@dimen@maxbaroffsettextleft@eol\relax%
- \gre@dimen@temp@two=\gre@space@dimen@maxbaroffsettextright@eol\relax%
- \fi%
- \gre@debugmsg{barspacing}{left offset limit: \the\gre@dimen@temp@three}%
- \gre@debugmsg{barspacing}{right offset limit: \the\gre@dimen@temp@two}%
- % All this worry about shifts is superfluous if the text isn’t present,
- % so now we check for that and set them to 0 if it is missing
- \ifdim\wd\gre@box@syllabletext = 0pt\relax%
- \gre@debugmsg{barspacing}{no text, shifts set to 0}%
- \gre@dimen@text@shift = 0pt\relax%
- \gre@dimen@bar@shift = 0pt\relax%
- \else%
- \ifdim\gre@dimen@begindifference > \gre@dimen@temp@two\relax%
- %the two elements are too far apart and the text is to the right of the bar
- \gre@debugmsg{barspacing}{shifts for text right of bar}%
- % first we shift text to the left so that it has the correct offset
- \gre@dimen@bar@shift = 0pt\relax%
- \gre@dimen@text@shift = \dimexpr(0pt - (\gre@dimen@begindifference - \gre@dimen@temp@two))\relax%
- % is the text too far to the left?
- \ifdim-\gre@dimen@text@shift > \dimexpr(\gre@skip@text@allocation/2-\gre@skip@text@requirement/2)\relax%
- % it is, so push both bar and text right to prevent a collision
- \gre@debugmsg{barspacing}{text collision detected}%
- \gre@dimen@bar@shift = \dimexpr(-\gre@dimen@text@shift-(\gre@skip@text@allocation/2-\gre@skip@text@requirement/2))\relax %
- \gre@dimen@text@shift = \dimexpr(0pt - (\gre@skip@text@allocation/2 - \gre@skip@text@requirement/2))\relax %
- % is the bar too far to the right?
- % \gre@dimen@temp@one is excess shift
- \gre@dimen@temp@one = \dimexpr\gre@dimen@bar@shift - (\gre@skip@bar@allocation/2 - \gre@skip@bar@requirement/2)\relax%
- \ifdim\gre@dimen@temp@one>0pt\relax %
- \gre@debugmsg{barspacing}{bar collision detected}%
- % it is, so allocate more space to prevent the collision
- \advance\gre@skip@bar@allocation by \gre@dimen@temp@one\relax %
- % since the additional allocation will be split evenly on both sides of the bar, we also need to shift both elements left so that all of it will appear on the right hand side
- \advance\gre@dimen@bar@shift by -0.5\gre@dimen@temp@one\relax%
- \advance\gre@dimen@text@shift by -0.5\gre@dimen@temp@one\relax%
- \fi %
- \fi%
- \else\ifdim-\gre@dimen@begindifference > \gre@dimen@temp@three\relax%
- %the two elements are too far apart and the text is to the left of the bar
- \gre@debugmsg{barspacing}{shifts for text to left of bar}%
- % first we shift text to the right so that it has the correct offset
- \gre@dimen@bar@shift = 0pt\relax %
- \gre@dimen@text@shift = \dimexpr((-\gre@dimen@begindifference) - \gre@dimen@temp@three)\relax %
- % is the text too far to the right?
- \ifdim\gre@dimen@text@shift > \dimexpr(\gre@skip@text@allocation/2-\gre@skip@text@requirement/2)\relax %
- \gre@debugmsg{barspacing}{text collision detected}%
- % it is so push both bar and text left to prevent a collision
- \gre@dimen@bar@shift = \dimexpr(-\gre@dimen@text@shift+\gre@skip@text@allocation/2-\gre@skip@text@requirement/2)\relax %
- \gre@dimen@text@shift = \dimexpr(\gre@skip@text@allocation/2-\gre@skip@text@requirement/2)\relax %
- % is the bar too far to the left?
- % gre@dimen@temp@one is the excess of bar@shift:
- \gre@dimen@temp@one=\dimexpr(-\gre@dimen@bar@shift -(\gre@skip@bar@allocation/2-\gre@skip@bar@requirement/2))\relax %
- \ifdim\gre@dimen@temp@one>0pt\relax %
- \gre@debugmsg{barspacing}{bar collision detected}%
- % it is, so allocate more space to prevent the collision
- \advance\gre@skip@bar@allocation by \gre@dimen@temp@one\relax %
- % since the allocation will be split evenly on either side of the bar, we also need to shift both bar an text right by half of the increase so all of it appears on the left side
- \advance\gre@dimen@bar@shift by 0.5\gre@dimen@temp@one\relax%
- \advance\gre@dimen@text@shift by 0.5\gre@dimen@temp@one\relax%
- \fi %
- \fi %
- \else%
- %the two elements are sufficiently close together
- \gre@debugmsg{barspacing}{zero shifts}%
- \gre@dimen@text@shift = 0pt\relax%
- \gre@dimen@bar@shift = 0pt\relax%
- \fi\fi%
- \fi%
- \gre@debugmsg{barspacing}{text shift: \the\gre@dimen@text@shift}%
- \gre@debugmsg{barspacing}{bar shift: \the\gre@dimen@bar@shift}%
- %at this point we're going to correct the values of enddifference and begindifference so that they are right for calculations which reference them in the next syllable
- \gre@debugmsg{barspacing}{bar width: \the\wd\gre@box@syllablenotes}%
- \gre@debugmsg{barspacing}{text width: \the\wd\gre@box@syllabletext}%
- \gre@debugmsg{barspacing}{Correcting begindifference}%
- %same as before but now we need to account for the widths of the elements and the shifts
- \gre@dimen@begindifference = \dimexpr(\wd\gre@box@syllablenotes/2% go right to the middle of the bar syllable (width is always positive so lead with plus to go right)
- -\gre@dimen@bar@shift% go from actual middle of bar to nominal middle of bar (bar@shift represents going the other way, so lead with minus)
- +\gre@dimen@begindifference% go from nominal middle of bar line to nominal middle of text (this is what begindifference currently holds, so lead with positive)
- +\gre@dimen@text@shift% go from nominal middle of text to actual middle of text (text@shift represents this move, so lead with positive)
- -\wd\gre@box@syllabletext/2)\relax% go left from middle to beginning of text (width is always positive, so lead with negative to go left
- \gre@debugmsg{barspacing}{begindifference: \the\gre@dimen@begindifference}%
- \gre@debugmsg{barspacing}{Correcting enddifference}%
- \gre@dimen@enddifference = \dimexpr-\wd\gre@box@syllabletext% go from end of text to beginning of text (width is always positive, so lead with negative to go left)
- -\gre@dimen@begindifference% go from beginning of text to beginning of notes (opposite sense of begindifference so lead with negative)
- +\wd\gre@box@syllablenotes\relax% go from beginning of notes to end of notes (width is always positive so lead with positive to go right
- \gre@debugmsg{barspacing}{enddifference: \the\gre@dimen@enddifference}%
- %we also need to correct syllablefinalskip to make sure it’s accurate because it depends on enddifference
- \gre@debugmsg{barspacing}{Correcting syllablefinalskip}%
- \gre@calculate@syllablefinalskip{#1}{\gre@count@temp@one}%
- \gre@debugmsg{barspacing}{syllablefinalskip: \the\gre@skip@syllablefinalskip}%
+ % we start by finding the distance between the text and notes of the previous and the next syllable (as if this syllable didn't exist, for the moment)
+ \gre@debugmsg{barspacing}{calculate available space}%
+ % first, recomputing \gre@dimen@previousenddifference into \gre@dimen@adjustedpreviousenddifference
+ % taking into account the punctum mora shift
+ \gre@dimen@adjustedpreviousenddifference=\gre@dimen@previousenddifference %
+ % gre@skip@punctummorashift is 0 or the punctum mora shift
+ \gre@skip@punctummorashift=0pt\relax %
+ \ifgre@lastendswithmora %
+ \ifcase\gre@count@shiftaftermora\or\or %
+ \ifdim\wd\gre@box@syllabletext=0pt\relax %
+ % punctum mora adjustment should occur only for bars with no text
+ \gre@get@unkern@aftermora{2}%
+ \advance\gre@dimen@adjustedpreviousenddifference by \gre@skip@punctummorashift %
+ \fi %
+ \or %
+ % punctum mora adjustment only before bars
+ \gre@get@unkern@aftermora{2}%
+ \advance\gre@dimen@adjustedpreviousenddifference by \gre@skip@punctummorashift %
+ \or\or %
+ % punctum mora adjustment always occurs
+ \gre@get@unkern@aftermora{2}%
+ \advance\gre@dimen@adjustedpreviousenddifference by \gre@skip@punctummorashift %
+ \fi %
+ \fi %
+ % now something a bit tricky: as we changed previousenddifference,
+ % we must kern of the difference we created, but no more than
+ % the end of the text:
+ \ifdim\gre@skip@punctummorashift=0pt\else %
+ \gre@debugmsg{barspacing}{adjustment for punctum mora: \the\gre@skip@punctummorashift}%
+ \gre@debugmsg{barspacing}{adjusted previous enddifference (for punctum mora): \the\gre@dimen@adjustedpreviousenddifference}%
+ \ifdim -\gre@skip@punctummorashift < \gre@dimen@previousenddifference %
+ \gre@debugmsg{barspacing}{kern \the\gre@skip@punctummorashift for punctum mora adjustment}%
+ \kern\gre@skip@punctummorashift %
+ \else %
+ \ifdim\gre@dimen@previousenddifference > 0pt\relax %
+ \gre@debugmsg{barspacing}{kern \the\gre@dimen@previousenddifference for punctum mora adjustment}%
+ \kern-\gre@dimen@previousenddifference %
+ \fi %
+ \fi %
+ \fi %
+ \ifdim\gre@dimen@adjustedpreviousenddifference > 0pt\relax%
+ % the notes ended after the text in the previous syllable
+ \gre@skip@text@allocation = \gre@dimen@adjustedpreviousenddifference\relax%
+ \gre@skip@bar@allocation = 0pt\relax%
+ \else%
+ % the text ended after the notes in the previous syllable
+ \gre@skip@text@allocation = 0pt\relax%
+ \gre@skip@bar@allocation = -\gre@dimen@adjustedpreviousenddifference\relax%
+ \fi%
+ \ifdim\gre@skip@nextbegindifference > 0pt\relax%
+ % the text began after the notes in the next syllable
+ \advance\gre@skip@text@allocation by \gre@skip@nextbegindifference\relax%
+ \advance\gre@skip@bar@allocation by 0pt\relax%
+ \else%
+ % the notes begin after the text in the next syllable
+ \advance\gre@skip@text@allocation by 0pt\relax%
+ \advance\gre@skip@bar@allocation by -\gre@skip@nextbegindifference\relax%
+ \fi%
+ \gre@debugmsg{barspacing}{space available to text: \the\gre@skip@text@allocation}%
+ \gre@debugmsg{barspacing}{spacing available to notes: \the\gre@skip@bar@allocation}%
+ % now we need to check these widths against the width the current syllable needs for each element and increase them as necessary
+ % if they aren't wide enough, then we need to increase *both* widths
+ \gre@debugmsg{barspacing}{calculate required widths}%
+ % first we check the text width
+ % we have to account for the spacing around the text as well as the text itself
+ \ifdim\wd\gre@box@syllabletext > 0pt\relax%
+ % first we account for the spacing which is needed after the previous syllable text (by using the minTextDistance left over from the previous syllablefinalskip calculation)
+ \gre@debugmsg{barspacing}{text width: \the\wd\gre@box@syllabletext}%
+ \gre@debugmsg{barspacing}{previous syllable skip after text: \the\gre@skip@minTextDistance}%
+ \gre@skip@text@requirement = \glueexpr\wd\gre@box@syllabletext + \gre@skip@minTextDistance\relax%
+ %now we need to account for the spacing which goes after this syllable (if there is text to this syllable)
+ %this calculation is similar to what is done in \gre@calculate@syllablefinalskip, but is only for the text, so we'll use \gre@skip@syllablefinalskip to hold this value for now
+ \ifnum#1=1\relax %
+ \ifgre@in@euouae %
+ \gre@skip@syllablefinalskip=\gre@space@dimen@interwordspacetext@bars@euouae\relax%
+ \else %
+ \gre@skip@syllablefinalskip=\gre@space@dimen@interwordspacetext@bars\relax%
+ \fi %
+ \else %
+ \gre@skip@syllablefinalskip=0pt\relax%
+ \fi %
+ \gre@debugmsg{barspacing}{this syllable skip after text: \the\gre@skip@syllablefinalskip}%
+ \advance\gre@skip@text@requirement by \gre@skip@syllablefinalskip\relax%
+ \else%
+ \ifnum#1=1\relax%
+ \ifgre@in@euouae%
+ \gre@skip@text@requirement=\gre@space@dimen@interwordspacetext@bars@notext@euouae\relax%
+ \else%
+ \gre@skip@text@requirement=\gre@space@dimen@interwordspacetext@bars@notext\relax%
+ \fi%
+ \else%
+ \gre@skip@text@requirement=0pt\relax%
+ \fi%
+ \fi%
+ \ifdim\gre@skip@text@allocation < \gre@skip@text@requirement\relax%
+ \advance\gre@skip@bar@allocation by \glueexpr(\gre@skip@text@requirement - \gre@skip@text@allocation)\relax%
+ \gre@skip@text@allocation = \gre@skip@text@requirement\relax%
+ \fi%
+ \gre@debugmsg{barspacing}{space required by text: \the\gre@skip@text@requirement}%
+ \gre@debugmsg{barspacing}{allocated text space: \the\gre@skip@text@allocation}%
+ \gre@debugmsg{barspacing}{allocated notes space: \the\gre@skip@bar@allocation}%
+ % now we check the bar width
+ \gre@debugmsg{barspacing}{bar width: \the\wd\gre@box@syllablenotes}%
+ \gre@skip@bar@requirement = \wd\gre@box@syllablenotes\relax%
+ \ifdim\gre@skip@bar@allocation < \gre@skip@bar@requirement\relax%
+ \advance\gre@skip@text@allocation by \glueexpr(\gre@skip@bar@requirement - \gre@skip@bar@allocation)\relax%
+ \gre@skip@bar@allocation = \gre@skip@bar@requirement\relax%
+ \fi%
+ \gre@debugmsg{barspacing}{required space for notes: \the\gre@skip@bar@requirement}%
+ \gre@debugmsg{barspacing}{allocated text space: \the\gre@skip@text@allocation}%
+ \gre@debugmsg{barspacing}{allocated notes space: \the\gre@skip@bar@allocation}%
+ % our final position calculation is to make sure that the centers of the text and the bar are not too far from each other
+ % this isn't really the begindifference (it doesn't account for the width of the text and the bar), but it's close enough that we'll use that register for this calculation
+ % to be consistent with the normal begin difference, this value should take us from the middle of the notes to the middle of the text.
+ \gre@dimen@begindifference=\dimexpr(-\gre@skip@bar@allocation/2% going to the left by the bar@allocation/2 (an always positive value, so we lead with a minus sign to go left)
+ -\gre@dimen@adjustedpreviousenddifference% moving from the end of the notes in the previous syllable to the end of the text there (opposite the sense of enddifference so we lead with a minus sign)
+ +\gre@skip@text@allocation/2)\relax% going to the right by the text@allocation/2 (an always positive value, so lead with positive to go right)
+ \gre@debugmsg{barspacing}{new begindifference approximation: \the\gre@dimen@begindifference}%
+ % in order to avoid code duplication, we check whether or not there is a bar line now and set temp variables to the appropriate offset limits. We’ll then use those temp variables in the code below.
+ \ifdim\wd\gre@box@syllablenotes = 0pt\relax%
+ \gre@debugmsg{barspacing}{no bar offset limits}%
+ \gre@dimen@temp@three=\gre@space@dimen@maxbaroffsettextleft@nobar\relax%
+ \gre@dimen@temp@two=\gre@space@dimen@maxbaroffsettextright@nobar\relax%
+ \else%
+ \gre@debugmsg{barspacing}{normal offset limits}%
+ \gre@dimen@temp@three=\gre@space@dimen@maxbaroffsettextleft\relax%
+ \gre@dimen@temp@two=\gre@space@dimen@maxbaroffsettextright\relax%
+ \fi%
+ % in the event that the bar is occurring at the end of the line, we use different offset limits
+ % for now this only works for explicit end of lines which occur in the same syllable as the bar line (e.g. `test(::z)`)
+ \ifnum\gre@newlinearg=-1\relax\else%
+ \gre@debugmsg{barspacing}{end of line override on offset limits}%
+ \gre@dimen@temp@three=\gre@space@dimen@maxbaroffsettextleft@eol\relax%
+ \gre@dimen@temp@two=\gre@space@dimen@maxbaroffsettextright@eol\relax%
+ \fi%
+ \gre@debugmsg{barspacing}{left offset limit: \the\gre@dimen@temp@three}%
+ \gre@debugmsg{barspacing}{right offset limit: \the\gre@dimen@temp@two}%
+ % All this worry about shifts is superfluous if the text isn’t present,
+ % so now we check for that and set them to 0 if it is missing
+ \ifdim\wd\gre@box@syllabletext = 0pt\relax%
+ \gre@debugmsg{barspacing}{no text, shifts set to 0}%
+ \gre@dimen@text@shift = 0pt\relax%
+ \gre@dimen@bar@shift = 0pt\relax%
+ \else%
+ \ifdim\gre@dimen@begindifference > \gre@dimen@temp@two\relax%
+ %the two elements are too far apart and the text is to the right of the bar
+ \gre@debugmsg{barspacing}{shifts for text right of bar}%
+ % first we shift text to the left so that it has the correct offset
+ \gre@dimen@bar@shift = 0pt\relax%
+ \gre@dimen@text@shift = \dimexpr(0pt - (\gre@dimen@begindifference - \gre@dimen@temp@two))\relax%
+ % is the text too far to the left?
+ \ifdim-\gre@dimen@text@shift > \dimexpr(\gre@skip@text@allocation/2-\gre@skip@text@requirement/2)\relax%
+ % it is, so push both bar and text right to prevent a collision
+ \gre@debugmsg{barspacing}{text collision detected}%
+ \gre@dimen@bar@shift = \dimexpr(-\gre@dimen@text@shift-(\gre@skip@text@allocation/2-\gre@skip@text@requirement/2))\relax %
+ \gre@dimen@text@shift = \dimexpr(0pt - (\gre@skip@text@allocation/2 - \gre@skip@text@requirement/2))\relax %
+ % is the bar too far to the right?
+ % \gre@dimen@temp@one is excess shift
+ \gre@dimen@temp@one = \dimexpr\gre@dimen@bar@shift - (\gre@skip@bar@allocation/2 - \gre@skip@bar@requirement/2)\relax%
+ \ifdim\gre@dimen@temp@one>0pt\relax %
+ \gre@debugmsg{barspacing}{bar collision detected}%
+ % it is, so allocate more space to prevent the collision
+ \advance\gre@skip@bar@allocation by \gre@dimen@temp@one\relax %
+ % since the additional allocation will be split evenly on both sides of the bar, we also need to shift both elements left so that all of it will appear on the right hand side
+ \advance\gre@dimen@bar@shift by -0.5\gre@dimen@temp@one\relax%
+ \advance\gre@dimen@text@shift by -0.5\gre@dimen@temp@one\relax%
+ \fi %
+ \fi%
+ \else\ifdim-\gre@dimen@begindifference > \gre@dimen@temp@three\relax%
+ %the two elements are too far apart and the text is to the left of the bar
+ \gre@debugmsg{barspacing}{shifts for text to left of bar}%
+ % first we shift text to the right so that it has the correct offset
+ \gre@dimen@bar@shift = 0pt\relax %
+ \gre@dimen@text@shift = \dimexpr((-\gre@dimen@begindifference) - \gre@dimen@temp@three)\relax %
+ % is the text too far to the right?
+ \ifdim\gre@dimen@text@shift > \dimexpr(\gre@skip@text@allocation/2-\gre@skip@text@requirement/2)\relax %
+ \gre@debugmsg{barspacing}{text collision detected}%
+ % it is so push both bar and text left to prevent a collision
+ \gre@dimen@bar@shift = \dimexpr(-\gre@dimen@text@shift+\gre@skip@text@allocation/2-\gre@skip@text@requirement/2)\relax %
+ \gre@dimen@text@shift = \dimexpr(\gre@skip@text@allocation/2-\gre@skip@text@requirement/2)\relax %
+ % is the bar too far to the left?
+ % gre@dimen@temp@one is the excess of bar@shift:
+ \gre@dimen@temp@one=\dimexpr(-\gre@dimen@bar@shift -(\gre@skip@bar@allocation/2-\gre@skip@bar@requirement/2))\relax %
+ \ifdim\gre@dimen@temp@one>0pt\relax %
+ \gre@debugmsg{barspacing}{bar collision detected}%
+ % it is, so allocate more space to prevent the collision
+ \advance\gre@skip@bar@allocation by \gre@dimen@temp@one\relax %
+ % since the allocation will be split evenly on either side of the bar, we also need to shift both bar an text right by half of the increase so all of it appears on the left side
+ \advance\gre@dimen@bar@shift by 0.5\gre@dimen@temp@one\relax%
+ \advance\gre@dimen@text@shift by 0.5\gre@dimen@temp@one\relax%
+ \fi %
+ \fi %
+ \else%
+ %the two elements are sufficiently close together
+ \gre@debugmsg{barspacing}{zero shifts}%
+ \gre@dimen@text@shift = 0pt\relax%
+ \gre@dimen@bar@shift = 0pt\relax%
+ \fi\fi%
+ \fi%
+ \gre@debugmsg{barspacing}{text shift: \the\gre@dimen@text@shift}%
+ \gre@debugmsg{barspacing}{bar shift: \the\gre@dimen@bar@shift}%
+ %at this point we're going to correct the values of enddifference and begindifference so that they are right for calculations which reference them in the next syllable
+ \gre@debugmsg{barspacing}{bar width: \the\wd\gre@box@syllablenotes}%
+ \gre@debugmsg{barspacing}{text width: \the\wd\gre@box@syllabletext}%
+ \gre@debugmsg{barspacing}{Correcting begindifference}%
+ %same as before but now we need to account for the widths of the elements and the shifts
+ \gre@dimen@begindifference = \dimexpr(\wd\gre@box@syllablenotes/2% go right to the middle of the bar syllable (width is always positive so lead with plus to go right)
+ -\gre@dimen@bar@shift% go from actual middle of bar to nominal middle of bar (bar@shift represents going the other way, so lead with minus)
+ +\gre@dimen@begindifference% go from nominal middle of bar line to nominal middle of text (this is what begindifference currently holds, so lead with positive)
+ +\gre@dimen@text@shift% go from nominal middle of text to actual middle of text (text@shift represents this move, so lead with positive)
+ -\wd\gre@box@syllabletext/2)\relax% go left from middle to beginning of text (width is always positive, so lead with negative to go left
+ \gre@debugmsg{barspacing}{begindifference: \the\gre@dimen@begindifference}%
+ \gre@debugmsg{barspacing}{Correcting enddifference}%
+ \gre@dimen@enddifference = \dimexpr-\wd\gre@box@syllabletext% go from end of text to beginning of text (width is always positive, so lead with negative to go left)
+ -\gre@dimen@begindifference% go from beginning of text to beginning of notes (opposite sense of begindifference so lead with negative)
+ +\wd\gre@box@syllablenotes\relax% go from beginning of notes to end of notes (width is always positive so lead with positive to go right
+ \gre@debugmsg{barspacing}{enddifference: \the\gre@dimen@enddifference}%
+ %we also need to correct syllablefinalskip to make sure it’s accurate because it depends on enddifference
+ \gre@debugmsg{barspacing}{Correcting syllablefinalskip}%
+ \gre@calculate@syllablefinalskip{#1}{\gre@count@temp@one}%
+ \gre@debugmsg{barspacing}{syllablefinalskip: \the\gre@skip@syllablefinalskip}%
}%
%%%%%%%%%%%%%%%%%%%
@@ -1173,159 +1183,202 @@
%% Note: the distances created by this function are stored as strings, not skip or dimension registers. This allows the user to specify a distance in em or ex units even though the font parameters may not be the same at the time the distance is specified and the time the distance is used.
\newif\ifgre@checklength%
\def\grecreatedim#1#2#3{%
- \gre@dimension{#1}{#2}%
- \csname newif\expandafter\endcsname\csname ifgre@scale@#1\endcsname%
- \IfStrEqCase{#3}{%
- {1}%
- {\gre@obsolete{A numerical (1) last argument for \protect\grecreatedim}{'scalable'}}%
- {0}%
- {\gre@obsolete{A numerical (0) last argument for \protect\grecreatedim}{'fixed'}}%
- {scalable}%
- {\grescaledim{#1}{true}}%
- {fixed}%
- {\grescaledim{#1}{false}}%
- }[% all other cases
- \gre@error{Unrecognized option "#3" for \protect\grecreatedim\MessageBreak Possible options are: 'scalable' and 'fixed'}%
- ]%
+ \csname newif\expandafter\endcsname\csname ifgre@scale@#1\endcsname%
+ \IfStrEqCase{#3}{%
+ {scalable}%
+ {\grescaledim{#1}{true}}%
+ {fixed}%
+ {\grescaledim{#1}{false}}%
+ {inherited}%
+ {\grescaledim{#1}{false}}%
+ }[% all other cases
+ \gre@error{Unrecognized option "#3" for \protect\grecreatedim\MessageBreak Possible options are: 'scalable' and 'fixed'}%
+ ]%
+ \gre@dimension{#1}{#2}{#3}%
}%
-\def\gresetdim{%OBSOLETE
- \gre@obsolete{\protect\gresetdim}{\protect\grecreatedim}%
-}%
% a macro for changing a dimension. Unlike \grecreatedim, this function won’t create a new distance, just change an existing one.
\def\grechangedim#1#2#3{%
- \gre@rubberpermit{#1}%
- % figure out our prefix
- \ifgre@rubber%
- \gre@debugmsg{spacing}{Changing a skip.}%
- \def\gre@prefix{skip}%
- \else%
- \gre@debugmsg{spacing}{Changing a dimen.}%
- \def\gre@prefix{dimen}%
- \fi%
- \ifcsname gre@space@\gre@prefix @#1\endcsname%
- \gre@debugmsg{spacing}{It does exist.}%
- \gre@dimension{#1}{#2}%
- \IfStrEqCase{#3}{%
- {1}%
- {\gre@obsolete{A numerical (1) last argument for \protect\grechangedim}{'scalable'}}%
- {0}%
- {\gre@obsolete{A numerical (0) last argument for \protect\grechangedim}{'fixed'}}%
- {scalable}%
- {\grescaledim{#1}{true}}%
- {fixed}%
- {\grescaledim{#1}{false}}%
- % all other cases
- }[\gre@error{Unrecognized option "#3" for \protect\grechangedim\MessageBreak Possible options are: 'scalable' and 'fixed'}]%
- \else%
- \IfStrEqCase{#1}{% DEPRECATED
- {spacearoundsmallbars}% DEPRECATED
- {% DEPRECATED
- \gre@deprecated{spacearoundsmallbars}{bar@virgula or bar@minima}% DEPRECATED
- \grechangedim{bar@virgula}{#2}{#3}% DEPRECATED
- \grechangedim{bar@minima}{#2}{#3}% DEPRECATED
- }% DEPRECATED
- {spacearoundminor}% DEPRECATED
- {% DEPRECATED
- \gre@deprecated{spacearoundminor}{bar@minor}% DEPRECATED
- \grechangedim{bar@minor}{#2}{#3}% DEPRECATED
- }% DEPRECATED
- {spacearoundmaior}% DEPRECATED
- {% DEPRECATED
- \gre@deprecated{spacearoundmaior}{bar@maior}% DEPRECATED
- \grechangedim{bar@maior}{#2}{#3}% DEPRECATED
- }% DEPRECATED
- {spacearoundfinalis}% DEPRECATED
- {% DEPRECATED
- \gre@deprecated{spacearoundfinalis}{bar@finalis}% DEPRECATED
- \grechangedim{bar@finalis}{#2}{#3}% DEPRECATED
- }% DEPRECATED
- {spacebeforefinalfinalis}% DEPRECATED
- {% DEPRECATED
- \gre@deprecated{spacebeforfinalfinalis}{bar@finalfinalis}% DEPRECATED
- \grechangedim{bar@finalfinalis}{#2}{#3}% DEPRECATED
- }% DEPRECATED
- }[% DEPRECATED
- \gre@error{#1 is not a recognized distance.}% keep this line
- ]% DEPRECATED
- \fi%
+ \gre@rubberpermit{#1}%
+ % figure out our prefix
+ \ifgre@rubber%
+ \gre@debugmsg{spacing}{Changing a skip.}%
+ \def\gre@prefix{skip}%
+ \else%
+ \gre@debugmsg{spacing}{Changing a dimen.}%
+ \def\gre@prefix{dimen}%
+ \fi%
+ \ifcsname gre@space@\gre@prefix @#1\endcsname%
+ \gre@debugmsg{spacing}{It does exist.}%
+ \IfStrEqCase{#3}{%
+ {scalable}%
+ {\grescaledim{#1}{true}}%
+ {fixed}%
+ {\grescaledim{#1}{false}}%
+ {inherited}%
+ {%
+ \gre@rubberpermit{#2}%
+ \ifgre@rubber%
+ \def\gre@prefixII{skip}%
+ \else%
+ \def\gre@prefixII{dimen}%
+ \fi%
+ \ifcsname gre@space@\gre@prefixII @#2\endcsname%
+ \grescaledim{#1}{false}%
+ \else%
+ \gre@error{'#1' cannot inherit from '#2'\MessageBreak Please make sure '#2' is a valid GregorioTeX distance}%
+ \fi%
+ }%
+ % all other cases
+ }[\gre@error{Unrecognized option "#3" for \protect\grechangedim\MessageBreak Possible options are: 'scalable', 'fixed', and 'inherited'}]%
+ \gre@dimension{#1}{#2}{#3}%
+ \else%
+ \IfStrEqCase{#1}{% DEPRECATED
+ {spacearoundsmallbars}% DEPRECATED
+ {% DEPRECATED
+ \gre@deprecated{spacearoundsmallbars}{bar@virgula or bar@minima}% DEPRECATED
+ \grechangedim{bar@virgula}{#2}{#3}% DEPRECATED
+ \grechangedim{bar@minima}{#2}{#3}% DEPRECATED
+ }% DEPRECATED
+ {spacearoundminor}% DEPRECATED
+ {% DEPRECATED
+ \gre@deprecated{spacearoundminor}{bar@minor}% DEPRECATED
+ \grechangedim{bar@minor}{#2}{#3}% DEPRECATED
+ }% DEPRECATED
+ {spacearoundmaior}% DEPRECATED
+ {% DEPRECATED
+ \gre@deprecated{spacearoundmaior}{bar@maior}% DEPRECATED
+ \grechangedim{bar@maior}{#2}{#3}% DEPRECATED
+ }% DEPRECATED
+ {spacearoundfinalis}% DEPRECATED
+ {% DEPRECATED
+ \gre@deprecated{spacearoundfinalis}{bar@finalis}% DEPRECATED
+ \grechangedim{bar@finalis}{#2}{#3}% DEPRECATED
+ }% DEPRECATED
+ {spacebeforefinalfinalis}% DEPRECATED
+ {% DEPRECATED
+ \gre@deprecated{spacebeforfinalfinalis}{bar@finalfinalis}% DEPRECATED
+ \grechangedim{bar@finalfinalis}{#2}{#3}% DEPRECATED
+ }% DEPRECATED
+ }[% DEPRECATED
+ \gre@error{#1 is not a recognized distance.}% keep this line
+ ]% DEPRECATED
+ \fi%
}%
\def\grechangecount#1#2{%
- \expandafter\csname gre@space@count@#1\endcsname=#2%
- \relax %
+ \expandafter\csname gre@space@count@#1\endcsname=#2%
+ \relax %
}
% The common internals for \grecreatedim and \grechangedim.
-\def\gre@dimension#1#2{%
- \gre@checklengthfalse%
- %check if #2 is a rubber length (contains plus and/or minus)
- \IfSubStr{#2}{plus}{\gre@checklengthtrue}{\relax}%
- \IfSubStr{#2}{minus}{\gre@checklengthtrue}{\relax}%
- %if #1 is one of the distances which cannot be rubber.
- \gre@rubberpermit{#1}%
- % do we try to assign a rubber to one where it's not permitted?
- \ifgre@rubber%
- \def\gre@prefix{skip}%
- \else%
- \ifgre@checklength%
- \gre@error{#1 cannot be a rubber length.}%
- \else%
- \def\gre@prefix{dimen}%
- \fi%
- \fi%
- % special check for bar@rubber
- \IfStrEq*{#1}{bar@rubber}%
- {%
- \gre@skip@temp@one = #2\relax%
- \ifdim\gre@skip@temp@one=0pt\relax\else%
- \gre@error{bar@rubber cannot have a non-zero base}%
- \fi%
- }{}%
- \expandafter\edef\csname gre@space@\gre@prefix @#1\endcsname{#2}%
- \relax %
+\def\gre@dimension#1#2#3{%
+ \IfStrEq{#3}{inherited}{%
+ \gre@debugmsg{spacing}{setting inherited distance}%
+ \gre@rubberpermit{#1}%
+ \ifgre@rubber%
+ \def\gre@prefix{skip}%
+ \else%
+ \def\gre@prefix{dimen}%
+ \fi%
+ \gre@rubberpermit{#2}%
+ \ifgre@rubber%
+ \def\gre@prefixII{skip}%
+ \else%
+ \def\gre@prefixII{dimen}%
+ \fi%
+ \expandafter\edef\csname gre@space@\gre@prefix @#1\endcsname{\expandafter\unexpanded{\csname gre@space@\gre@prefixII @#2\endcsname}}%
+ }{%
+ \gre@rubberpermit{#2}%
+ \ifgre@rubber%
+ \def\gre@prefixII{skip}%
+ \else%
+ \def\gre@prefixII{dimen}%
+ \fi%
+ \ifcsname gre@space@\gre@prefixII @#2\endcsname%
+ \gre@error{'#1' cannot be '#3' and depend on '#2' at the same time\MessageBreak Either use 'inherited' in the third argument\MessageBreak or give an actual distance in the second}%
+ \fi%
+ \gre@checklengthfalse%
+ %check if #2 is a rubber length (contains plus and/or minus)
+ \IfSubStr{#2}{plus}{\gre@checklengthtrue}{\relax}%
+ \IfSubStr{#2}{minus}{\gre@checklengthtrue}{\relax}%
+ %if #1 is one of the distances which cannot be rubber.
+ \gre@rubberpermit{#1}%
+ % do we try to assign a rubber to one where it's not permitted?
+ \ifgre@rubber%
+ \def\gre@prefix{skip}%
+ \else%
+ \ifgre@checklength%
+ \gre@error{#1 cannot be a rubber length.}%
+ \else%
+ \def\gre@prefix{dimen}%
+ \fi%
+ \fi%
+ % special check for bar@rubber
+ \IfStrEq*{#1}{bar@rubber}%
+ {%
+ \gre@skip@temp@one = #2\relax%
+ \ifdim\gre@skip@temp@one=0pt\relax\else%
+ \gre@error{bar@rubber cannot have a non-zero base}%
+ \fi%
+ }{}%
+ \expandafter\edef\csname gre@space@\gre@prefix @#1\endcsname{#2}%
+ \relax %
+ }%
}
%a macro to use if all you want to do is turn on or off the scaling for a particular distance
\def\grescaledim#1#2{%
- \IfStrEqCase{#2}{%
- {true}%
- {\csname gre@scale@#1true\endcsname}%
- {yes}%
- {\grescaledim{true}}%
- {on}%
- {\grescaledim{true}}%
- {scalable}%
- {\grescaledim{true}}%
- }[% all other cases
- \csname gre@scale@#1false\endcsname%
- ]%
+ \ifcsname ifgre@scale@#1\endcsname%
+ \IfStrEqCase{#2}{%
+ {true}%
+ {\csname gre@scale@#1true\endcsname}%
+ {yes}%
+ {\grescaledim{true}}%
+ {on}%
+ {\grescaledim{true}}%
+ {scalable}%
+ {\grescaledim{true}}%
+ }[% all other cases
+ \csname gre@scale@#1false\endcsname%
+ ]%
+ \else%
+ \gre@error{Unrecognized distance "#1" in \protect\grescaledim}%
+ \fi%
}
-\def\grenoscaledim#1{%OBSOLETE
- \gre@obsolete{\protect\grenoscaledim}{\protect\grescaledim{...}{no}}%
-}%
+\newcount\gre@space@count@newlinepenalty%
+\newcount\gre@space@count@nobreakpenalty%
+\newcount\gre@space@count@endofwordpenalty%
+\newcount\gre@space@count@endofsyllablepenalty%
+\newcount\gre@space@count@endafterbarpenalty%
+\newcount\gre@space@count@endafterbaraltpenalty%
+\newcount\gre@space@count@finalpenalty%
+\newcount\gre@space@count@endofelementpenalty%
+\newcount\gre@space@count@hyphenpenalty%
+\newcount\gre@space@count@brokenpenalty%
+\newcount\gre@space@count@looseness%
+\newcount\gre@space@count@tolerance%
+\newcount\gre@space@count@pretolerance%
+\newcount\gre@space@count@widowpenalty%
+\newcount\gre@space@count@clubpenalty%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% space configuration loading
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\GreLoadSpaceConf#1{%OBSOLETE
- \gre@obsolete{\protect\GreLoadSpaceConf}{\protect\greloadspaceconf}%
-}%
-
\newcount\greconffactor%
\def\greloadspaceconf#1{%
- \input gsp-#1.tex\relax %
- \ifnum\greconffactor=0\relax%
- \gre@error{gsp-#1.tex does not have an assigned staff size.\MessageBreak Please edit it to define \protect\greconffactor}%
- \fi %
- \ifnum\the\gre@factor=\greconffactor\else %If the space configuration file is designed for a \gre@factor other than the current one, then we need to rescale the distances.
- \gre@changedimenfactor{\greconffactor}{\gre@factor} %
- \fi%
- \greconffactor=0%
- \relax %
+ \input gsp-#1.tex\relax %
+ \ifnum\greconffactor=0\relax%
+ \gre@error{gsp-#1.tex does not have an assigned staff size.\MessageBreak Please edit it to define \protect\greconffactor}%
+ \fi %
+ \ifnum\the\gre@factor=\greconffactor\else %If the space configuration file is designed for a \gre@factor other than the current one, then we need to rescale the distances.
+ \gre@changedimenfactor{\greconffactor}{\gre@factor} %
+ \fi%
+ \greconffactor=0%
+ \relax %
}%
@@ -1339,143 +1392,143 @@
% This function checks to see if the length is one of the ones which cannot be a rubber length. The assumption is that any length not listed here is allowed to be rubber.
\newif\ifgre@rubber%
\def\gre@rubberpermit#1{%
- % is length one that cannot be rubber?
- \IfStrEqCase*{#1}{%
- {additionallineswidth}{\gre@rubberfalse}%
- {additionalcustoslineswidth}{\gre@rubberfalse}%
- {zerowidthspace}{\gre@rubberfalse}%
- {maximumspacewithoutdash}{\gre@rubberfalse}%
- {afterinitialshift}{\gre@rubberfalse}%
- {beforeinitialshift}{\gre@rubberfalse}%
- {minimalspaceatlinebeginning}{\gre@rubberfalse}%
- {manualinitialwidth}{\gre@rubberfalse}%
- {annotationseparation}{\gre@rubberfalse}%
- {intersyllablespacenotes}{\gre@rubberfalse}%
- {intersyllablespacenotes@alteration}{\gre@rubberfalse}%
- {annotationraise}{\gre@rubberfalse}%
- {commentaryseparation}{\gre@rubberfalse}%
- {commentaryraise}{\gre@rubberfalse}%
- {noclefspace}{\gre@rubberfalse}%
- {clivisalignmentmin}{\gre@rubberfalse}%
- {choralsigndownshift}{\gre@rubberfalse}%
- {choralsignupshift}{\gre@rubberfalse}%
- {translationheight}{\gre@rubberfalse}%
- {spacelinestext}{\gre@rubberfalse}%
- {spacebeneathtext}{\gre@rubberfalse}%
- {abovelinestextraise}{\gre@rubberfalse}%
- {abovelinestextheight}{\gre@rubberfalse}%
- {braceshift}{\gre@rubberfalse}%
- {curlybraceaccentusshift}{\gre@rubberfalse}%
- {initialraise}{\gre@rubberfalse}%
- {beforealterationspace}{\gre@rubberfalse}%
- {alterationspace}{\gre@rubberfalse}%
- {overslurshift}{\gre@rubberfalse}%
- {underslurshift}{\gre@rubberfalse}%
- {maxbaroffsettextleft}{\gre@rubberfalse}%
- {maxbaroffsettextright}{\gre@rubberfalse}%
- {maxbaroffsettextleft@nobar}{\gre@rubberfalse}%
- {maxbaroffsettextright@nobar}{\gre@rubberfalse}%
- {maxbaroffsettextleft@eol}{\gre@rubberfalse}%
- {maxbaroffsettextright@eol}{\gre@rubberfalse}%
- {interwordspacetext@bars@euouae}{\gre@rubberfalse}%
- {interwordspacetext@bars}{\gre@rubberfalse}%
- {interwordspacetext@bars@notext@euouae}{\gre@rubberfalse}%
- {interwordspacetext@bars@notext}{\gre@rubberfalse}%
- {overhepisemalowshift}{\gre@rubberfalse}%
- {overhepisemahighshift}{\gre@rubberfalse}%
- {underhepisemalowshift}{\gre@rubberfalse}%
- {underhepisemahighshift}{\gre@rubberfalse}%
- {hepisemamiddleshift}{\gre@rubberfalse}%
- {vepisemalowshift}{\gre@rubberfalse}%
- {vepisemahighshift}{\gre@rubberfalse}%
- {linepunctummorashift}{\gre@rubberfalse}%
- {spacepunctummorashift}{\gre@rubberfalse}%
- {spaceamonepespunctummorashift}{\gre@rubberfalse}%
- {lineporrectuspunctummorashift}{\gre@rubberfalse}%
- {spaceporrectuspunctummorashift}{\gre@rubberfalse}%
- {raresignshift}{\gre@rubberfalse}%
- {divisiofinalissep}{\gre@rubberfalse}%
- }[\gre@rubbertrue]%
+ % is length one that cannot be rubber?
+ \IfStrEqCase*{#1}{%
+ {additionallineswidth}{\gre@rubberfalse}%
+ {additionalcustoslineswidth}{\gre@rubberfalse}%
+ {zerowidthspace}{\gre@rubberfalse}%
+ {maximumspacewithoutdash}{\gre@rubberfalse}%
+ {afterinitialshift}{\gre@rubberfalse}%
+ {beforeinitialshift}{\gre@rubberfalse}%
+ {minimalspaceatlinebeginning}{\gre@rubberfalse}%
+ {manualinitialwidth}{\gre@rubberfalse}%
+ {annotationseparation}{\gre@rubberfalse}%
+ {intersyllablespacenotes}{\gre@rubberfalse}%
+ {intersyllablespacenotes@alteration}{\gre@rubberfalse}%
+ {annotationraise}{\gre@rubberfalse}%
+ {commentaryseparation}{\gre@rubberfalse}%
+ {commentaryraise}{\gre@rubberfalse}%
+ {noclefspace}{\gre@rubberfalse}%
+ {clivisalignmentmin}{\gre@rubberfalse}%
+ {choralsigndownshift}{\gre@rubberfalse}%
+ {choralsignupshift}{\gre@rubberfalse}%
+ {translationheight}{\gre@rubberfalse}%
+ {spacelinestext}{\gre@rubberfalse}%
+ {spacebeneathtext}{\gre@rubberfalse}%
+ {abovelinestextraise}{\gre@rubberfalse}%
+ {abovelinestextheight}{\gre@rubberfalse}%
+ {braceshift}{\gre@rubberfalse}%
+ {curlybraceaccentusshift}{\gre@rubberfalse}%
+ {initialraise}{\gre@rubberfalse}%
+ {beforealterationspace}{\gre@rubberfalse}%
+ {alterationspace}{\gre@rubberfalse}%
+ {overslurshift}{\gre@rubberfalse}%
+ {underslurshift}{\gre@rubberfalse}%
+ {maxbaroffsettextleft}{\gre@rubberfalse}%
+ {maxbaroffsettextright}{\gre@rubberfalse}%
+ {maxbaroffsettextleft@nobar}{\gre@rubberfalse}%
+ {maxbaroffsettextright@nobar}{\gre@rubberfalse}%
+ {maxbaroffsettextleft@eol}{\gre@rubberfalse}%
+ {maxbaroffsettextright@eol}{\gre@rubberfalse}%
+ {interwordspacetext@bars@euouae}{\gre@rubberfalse}%
+ {interwordspacetext@bars}{\gre@rubberfalse}%
+ {interwordspacetext@bars@notext@euouae}{\gre@rubberfalse}%
+ {interwordspacetext@bars@notext}{\gre@rubberfalse}%
+ {overhepisemalowshift}{\gre@rubberfalse}%
+ {overhepisemahighshift}{\gre@rubberfalse}%
+ {underhepisemalowshift}{\gre@rubberfalse}%
+ {underhepisemahighshift}{\gre@rubberfalse}%
+ {hepisemamiddleshift}{\gre@rubberfalse}%
+ {vepisemalowshift}{\gre@rubberfalse}%
+ {vepisemahighshift}{\gre@rubberfalse}%
+ {linepunctummorashift}{\gre@rubberfalse}%
+ {spacepunctummorashift}{\gre@rubberfalse}%
+ {spaceamonepespunctummorashift}{\gre@rubberfalse}%
+ {lineporrectuspunctummorashift}{\gre@rubberfalse}%
+ {spaceporrectuspunctummorashift}{\gre@rubberfalse}%
+ {raresignshift}{\gre@rubberfalse}%
+ {divisiofinalissep}{\gre@rubberfalse}%
+ }[\gre@rubbertrue]%
}%
%% an aux function adapting the value #1 from the factor #2 to the factor #3
\def\gre@changeonedimenfactor#1#2#3{%
- % Math
- \gre@rubberpermit{#1}%
- \ifgre@rubber%
- % if we have a rubber allowed length we create a temporary skip
- \let\gre@scaledist\gre@skip@temp@one%
- \edef\gre@convert{\csname gre@space@skip@#1\endcsname}%
- \gre@scaledist=\glueexpr(\gre@convert * \number#3 / \number#2)\relax %
- \else%
- % otherwise we create a temporary dimen
- \let\gre@scaledist\gre@dimen@temp@one%
- \edef\gre@convert{\csname gre@space@dimen@#1\endcsname}%
- \gre@scaledist=\dimexpr(\gre@convert * \number#3 / \number#2)\relax %
- \fi%
- \gre@consistentunits{\gre@convert}{\gre@scaledist}%
- \gre@dimension{#1}{\gre@stringdist}%
- \relax %
+ % Math
+ \gre@rubberpermit{#1}%
+ \ifgre@rubber%
+ % if we have a rubber allowed length we create a temporary skip
+ \let\gre@scaledist\gre@skip@temp@one%
+ \edef\gre@convert{\csname gre@space@skip@#1\endcsname}%
+ \gre@scaledist=\glueexpr(\gre@convert * \number#3 / \number#2)\relax %
+ \else%
+ % otherwise we create a temporary dimen
+ \let\gre@scaledist\gre@dimen@temp@one%
+ \edef\gre@convert{\csname gre@space@dimen@#1\endcsname}%
+ \gre@scaledist=\dimexpr(\gre@convert * \number#3 / \number#2)\relax %
+ \fi%
+ \gre@consistentunits{\gre@convert}{\gre@scaledist}%
+ \gre@dimension{#1}{\gre@stringdist}%
+ \relax %
}%
% This function converts a distance to the units indicated in #1 and returns it as a string.
\def\gre@convertto#1#2{%
- \gre@debugmsg{general}{convertto (#1) (#2)}%
- % \p@ is equal to 1pt and is used here for a more accurate computation
- \edef\gre@converted{\gre@strip@pt\dimexpr#2*\p@/\dimexpr 1#1\relax\relax #1}%
- \gre@debugmsg{general}{converted value is \gre@converted}%
+ \gre@debugmsg{general}{convertto (#1) (#2)}%
+ % \p@ is equal to 1pt and is used here for a more accurate computation
+ \edef\gre@converted{\gre@strip@pt\dimexpr#2*\p@/\dimexpr 1#1\relax\relax #1}%
+ \gre@debugmsg{general}{converted value is \gre@converted}%
}%
% This function takes a distance (#2) and formats it as a string so that its units conform to the pattern set by a string representation of a distance (#1)
\newif\ifgre@stretch%
\newif\ifgre@shrink%
\def\gre@consistentunits#1#2{%
- \gre@stretchfalse%
- \gre@shrinkfalse%
- \IfSubStr{#1}{plus}{\gre@stretchtrue}{\relax}%
- \IfSubStr{#1}{minus}{\gre@shrinktrue}{\relax}%
- \ifgre@stretch%
- \ifgre@shrink%
- %rubber with both stretch and shrink
- \StrBefore{#1}{plus}[\gre@baseunit]%
- \StrBetween{#1}{plus}{minus}[\gre@stretchunit]%
- \StrBehind{#1}{minus}[\gre@shrinkunit]%
- \else%
- %rubber with stretch only
- \StrBefore{#1}{plus}[\gre@baseunit]%
- \StrBehind{#1}{plus}[\gre@stretchunit]%
- \def\gre@shrinkunit{\relax}%
- \fi%
- \else%
- \ifgre@shrink%
- %rubber with shrink only
- \StrBefore{#1}{minus}[\gre@baseunit]%
- \def\gre@stretchunit{\relax}%
- \StrBehind{#1}{minus}[\gre@shrinkunit]%
- \else%
- %non-rubber
- \def\gre@baseunit{#1}%
- \def\gre@stretchunit{\relax}%
- \def\gre@shrinkunit{\relax}%
- \fi%
- \fi%
- \StrDel{\gre@baseunit}{ }[\gre@baseunit]%
- \StrRight{\gre@baseunit}{2}[\gre@baseunit]%
- \StrDel{\gre@stretchunit}{ }[\gre@stretchunit]%
- \StrRight{\gre@stretchunit}{2}[\gre@stretchunit]%
- \StrDel{\gre@shrinkunit}{ }[\gre@shrinkunit]%
- \StrRight{\gre@shrinkunit}{2}[\gre@shrinkunit]%
- \gre@convertto{\gre@baseunit}{\dimexpr#2\relax}%
- \edef\gre@stringdist{\gre@converted}%
- \if\relax\gre@stretchunit\else%
- \gre@convertto{\gre@stretchunit}{\gluestretch#2}%
- \edef\gre@stringdist{\gre@stringdist plus \gre@converted}%
- \fi%
- \if\relax\gre@shrinkunit\else%
- \gre@convertto{\gre@shrinkunit}{\glueshrink#2}%
- \edef\gre@stringdist{\gre@stringdist minus \gre@converted}%
- \fi%
+ \gre@stretchfalse%
+ \gre@shrinkfalse%
+ \IfSubStr{#1}{plus}{\gre@stretchtrue}{\relax}%
+ \IfSubStr{#1}{minus}{\gre@shrinktrue}{\relax}%
+ \ifgre@stretch%
+ \ifgre@shrink%
+ %rubber with both stretch and shrink
+ \StrBefore{#1}{plus}[\gre@baseunit]%
+ \StrBetween{#1}{plus}{minus}[\gre@stretchunit]%
+ \StrBehind{#1}{minus}[\gre@shrinkunit]%
+ \else%
+ %rubber with stretch only
+ \StrBefore{#1}{plus}[\gre@baseunit]%
+ \StrBehind{#1}{plus}[\gre@stretchunit]%
+ \def\gre@shrinkunit{\relax}%
+ \fi%
+ \else%
+ \ifgre@shrink%
+ %rubber with shrink only
+ \StrBefore{#1}{minus}[\gre@baseunit]%
+ \def\gre@stretchunit{\relax}%
+ \StrBehind{#1}{minus}[\gre@shrinkunit]%
+ \else%
+ %non-rubber
+ \def\gre@baseunit{#1}%
+ \def\gre@stretchunit{\relax}%
+ \def\gre@shrinkunit{\relax}%
+ \fi%
+ \fi%
+ \StrDel{\gre@baseunit}{ }[\gre@baseunit]%
+ \StrRight{\gre@baseunit}{2}[\gre@baseunit]%
+ \StrDel{\gre@stretchunit}{ }[\gre@stretchunit]%
+ \StrRight{\gre@stretchunit}{2}[\gre@stretchunit]%
+ \StrDel{\gre@shrinkunit}{ }[\gre@shrinkunit]%
+ \StrRight{\gre@shrinkunit}{2}[\gre@shrinkunit]%
+ \gre@convertto{\gre@baseunit}{\dimexpr#2\relax}%
+ \edef\gre@stringdist{\gre@converted}%
+ \if\relax\gre@stretchunit\else%
+ \gre@convertto{\gre@stretchunit}{\gluestretch#2}%
+ \edef\gre@stringdist{\gre@stringdist plus \gre@converted}%
+ \fi%
+ \if\relax\gre@shrinkunit\else%
+ \gre@convertto{\gre@shrinkunit}{\glueshrink#2}%
+ \edef\gre@stringdist{\gre@stringdist minus \gre@converted}%
+ \fi%
}%
@@ -1483,342 +1536,309 @@
%% simply by dividing them by the old factor, and multiplying them by the new one.
% #1 is the old gre@factor, #2 is the new one
\def\gre@changedimenfactor#1#2{%
- \ifgre@scale@additionallineswidth%
- \gre@changeonedimenfactor{additionallineswidth}{#1}{#2}%
- \fi%
- \ifgre@scale@additionalcustoslineswidth%
- \gre@changeonedimenfactor{additionalcustoslineswidth}{#1}{#2}%
- \fi%
- \ifgre@scale@zerowidthspace%
- \gre@changeonedimenfactor{zerowidthspace}{#1}{#2}%
- \fi%
- \ifgre@scale@interglyphspace%
- \gre@changeonedimenfactor{interglyphspace}{#1}{#2}%
- \fi%
- \ifgre@scale@alterationspace%
- \gre@changeonedimenfactor{alterationspace}{#1}{#2}%
- \fi%
- \ifgre@scale@clefflatspace%
- \gre@changeonedimenfactor{clefflatspace}{#1}{#2}%
- \fi%
- \ifgre@scale@beforelowchoralsignspace%
- \gre@changeonedimenfactor{beforelowchoralsignspace}{#1}{#2}%
- \fi%
- \ifgre@scale@beforealterationspace%
- \gre@changeonedimenfactor{beforealterationspace}{#1}{#2}%
- \fi%
- \ifgre@scale@halfspace%
- \gre@changeonedimenfactor{halfspace}{#1}{#2}%
- \fi%
- \ifgre@scale@interelementspace%
- \gre@changeonedimenfactor{interelementspace}{#1}{#2}%
- \fi%
- \ifgre@scale@largerspace%
- \gre@changeonedimenfactor{largerspace}{#1}{#2}%
- \fi%
- \ifgre@scale@nabcinterelementspace%
- \gre@changeonedimenfactor{nabcinterelementspace}{#1}{#2}%
- \fi%
- \ifgre@scale@nabclargerspace%
- \gre@changeonedimenfactor{nabclargerspace}{#1}{#2}%
- \fi%
- \ifgre@scale@glyphspace%
- \gre@changeonedimenfactor{glyphspace}{#1}{#2}%
- \fi%
- \ifgre@scale@spacebeforeinlinecustos%
- \gre@changeonedimenfactor{spacebeforeinlinecustos}{#1}{#2}%
- \fi%
- \ifgre@scale@spacebeforeeolcustos%
- \gre@changeonedimenfactor{spacebeforeeolcustos}{#1}{#2}%
- \fi%
- \ifgre@scale@spacebeforesigns%
- \gre@changeonedimenfactor{spacebeforesigns}{#1}{#2}%
- \fi%
- \ifgre@scale@spaceaftersigns%
- \gre@changeonedimenfactor{spaceaftersigns}{#1}{#2}%
- \fi%
- \ifgre@scale@spaceafterlineclef%
- \gre@changeonedimenfactor{spaceafterlineclef}{#1}{#2}%
- \fi%
- \ifgre@scale@interwordspacenotes%
- \gre@changeonedimenfactor{interwordspacenotes}{#1}{#2}%
- \fi%
- \ifgre@scale@intersyllablespacenotes%
- \gre@changeonedimenfactor{intersyllablespacenotes}{#1}{#2}%
- \fi%
- \ifgre@scale@interwordspacenotes@alteration%
- \gre@changeonedimenfactor{interwordspacenotes@alteration}{#1}{#2}%
- \fi%
- \ifgre@scale@intersyllablespacenotes@alteration%
- \gre@changeonedimenfactor{intersyllablespacenotes@alteration}{#1}{#2}%
- \fi%
- \ifgre@scale@intersyllablespacestretchhyphen%
- \gre@changeonedimenfactor{intersyllablespacestretchhyphen}{#1}{#2}%
- \fi%
- \ifgre@scale@interwordspacetext%
- \gre@changeonedimenfactor{interwordspacetext}{#1}{#2}%
- \fi%
- \ifgre@scale@interwordspacetext@bars%
- \gre@changeonedimenfactor{interwordspacetext@bars}{#1}{#2}%
- \fi%
- \ifgre@scale@interwordspacetext@bars@notext%
- \gre@changeonedimenfactor{interwordspacetext@bars@notext}{#1}{#2}%
- \fi%
- \ifgre@scale@interwordspacenotes@euouae%
- \gre@changeonedimenfactor{interwordspacenotes@euouae}{#1}{#2}%
- \fi%
- \ifgre@scale@interwordspacetext@euouae%
- \gre@changeonedimenfactor{interwordspacetext@euouae}{#1}{#2}%
- \fi%
- \ifgre@scale@interwordspacetext@bars@euouae%
- \gre@changeonedimenfactor{interwordspacetext@bars@euouae}{#1}{#2}%
- \fi%
- \ifgre@scale@interwordspacetext@bars@notext@euouae%
- \gre@changeonedimenfactor{interwordspacetext@bars@notext@euouae}{#1}{#2}%
- \fi%
- \ifgre@scale@bitrivirspace%
- \gre@changeonedimenfactor{bitrivirspace}{#1}{#2}%
- \fi%
- \ifgre@scale@bitristrospace%
- \gre@changeonedimenfactor{bitristrospace}{#1}{#2}%
- \fi%
- \ifgre@scale@punctuminclinatumshift%
- \gre@changeonedimenfactor{punctuminclinatumshift}{#1}{#2}%
- \fi%
- \ifgre@scale@ascendingpunctuminclinatumshift%
- \gre@changeonedimenfactor{ascendingpunctuminclinatumshift}{#1}{#2}%
- \fi%
- \ifgre@scale@beforepunctainclinatashift%
- \gre@changeonedimenfactor{beforepunctainclinatashift}{#1}{#2}%
- \fi%
- \ifgre@scale@punctuminclinatumanddebilisshift%
- \gre@changeonedimenfactor{punctuminclinatumanddebilisshift}{#1}{#2}%
- \fi%
- \ifgre@scale@ascendingpunctuminclinatumanddebilisshift%
- \gre@changeonedimenfactor{ascendingpunctuminclinatumanddebilisshift}{#1}{#2}%
- \fi%
- \ifgre@scale@punctuminclinatumdebilisshift%
- \gre@changeonedimenfactor{punctuminclinatumdebilisshift}{#1}{#2}%
- \fi%
- \ifgre@scale@punctuminclinatumbigshift%
- \gre@changeonedimenfactor{punctuminclinatumbigshift}{#1}{#2}%
- \fi%
- \ifgre@scale@ascendingpunctuminclinatumbigshift%
- \gre@changeonedimenfactor{ascendingpunctuminclinatumbigshift}{#1}{#2}%
- \fi%
- \ifgre@scale@punctuminclinatummaxshift%
- \gre@changeonedimenfactor{punctuminclinatummaxshift}{#1}{#2}%
- \fi%
- \ifgre@scale@ascendingpunctuminclinatummaxshift%
- \gre@changeonedimenfactor{ascendingpunctuminclinatummaxshift}{#1}{#2}%
- \fi%
- \ifgre@scale@descendinginclinatumtonobarshift%
- \gre@changeonedimenfactor{descendinginclinatumtonobarshift}{#1}{#2}%
- \fi%
- \ifgre@scale@descendinginclinatumtonobarbigshift%
- \gre@changeonedimenfactor{descendinginclinatumtonobarbigshift}{#1}{#2}%
- \fi%
- \ifgre@scale@descendinginclinatumtonobarmaxshift%
- \gre@changeonedimenfactor{descendinginclinatumtonobarmaxshift}{#1}{#2}%
- \fi%
- \ifgre@scale@ascendinginclinatumtonobarshift%
- \gre@changeonedimenfactor{ascendinginclinatumtonobarshift}{#1}{#2}%
- \fi%
- \ifgre@scale@ascendinginclinatumtonobarbigshift%
- \gre@changeonedimenfactor{ascendinginclinatumtonobarbigshift}{#1}{#2}%
- \fi%
- \ifgre@scale@ascendinginclinatumtonobarmaxshift%
- \gre@changeonedimenfactor{ascendinginclinatumtonobarmaxshift}{#1}{#2}%
- \fi%
- \ifgre@scale@bar@virgula%
- \gre@changeonedimenfactor{bar@virgula}{#1}{#2}%
- \fi%
- \ifgre@scale@bar@minima%
- \gre@changeonedimenfactor{bar@minima}{#1}{#2}%
- \fi%
- \ifgre@scale@bar@minor%
- \gre@changeonedimenfactor{bar@minor}{#1}{#2}%
- \fi%
- \ifgre@scale@bar@minor%
- \gre@changeonedimenfactor{bar@dominican}{#1}{#2}%
- \fi%
- \ifgre@scale@bar@maior%
- \gre@changeonedimenfactor{bar@maior}{#1}{#2}%
- \fi%
- \ifgre@scale@bar@finalis%
- \gre@changeonedimenfactor{bar@finalis}{#1}{#2}%
- \fi%
- \ifgre@scale@bar@finalfinalis%
- \gre@changeonedimenfactor{bar@finalfinalis}{#1}{#2}%
- \fi%
- \ifgre@scale@bar@virgula@standalone@text%
- \gre@changeonedimenfactor{bar@virgula@standalone@text}{#1}{#2}%
- \fi%
- \ifgre@scale@bar@minima@standalone@text%
- \gre@changeonedimenfactor{bar@minima@standalone@text}{#1}{#2}%
- \fi%
- \ifgre@scale@bar@minor@standalone@text%
- \gre@changeonedimenfactor{bar@minor@standalone@text}{#1}{#2}%
- \fi%
- \ifgre@scale@bar@minor@standalone@text%
- \gre@changeonedimenfactor{bar@dominican@standalone@text}{#1}{#2}%
- \fi%
- \ifgre@scale@bar@maior@standalone@text%
- \gre@changeonedimenfactor{bar@maior@standalone@text}{#1}{#2}%
- \fi%
- \ifgre@scale@bar@finalis@standalone@text%
- \gre@changeonedimenfactor{bar@finalis@standalone@text}{#1}{#2}%
- \fi%
- \ifgre@scale@bar@virgula@standalone@notext%
- \gre@changeonedimenfactor{bar@virgula@standalone@notext}{#1}{#2}%
- \fi%
- \ifgre@scale@bar@minima@standalone@notext%
- \gre@changeonedimenfactor{bar@minima@standalone@notext}{#1}{#2}%
- \fi%
- \ifgre@scale@bar@minor@standalone@notext%
- \gre@changeonedimenfactor{bar@minor@standalone@notext}{#1}{#2}%
- \fi%
- \ifgre@scale@bar@minor@standalone@notext%
- \gre@changeonedimenfactor{bar@dominican@standalone@notext}{#1}{#2}%
- \fi%
- \ifgre@scale@bar@maior@standalone@notext%
- \gre@changeonedimenfactor{bar@maior@standalone@notext}{#1}{#2}%
- \fi%
- \ifgre@scale@bar@finalis@standalone@notext%
- \gre@changeonedimenfactor{bar@finalis@standalone@notext}{#1}{#2}%
- \fi%
- \ifgre@scale@spacearoundclefbars%
- \gre@changeonedimenfactor{spacearoundclefbars}{#1}{#2}%
- \fi%
- \ifgre@scale@textbartextspace%
- \gre@changeonedimenfactor{textbartextspace}{#1}{#2}%
- \fi%
- \ifgre@scale@notebarspace%
- \gre@changeonedimenfactor{notebarspace}{#1}{#2}%
- \fi%
- \ifgre@scale@maximumspacewithoutdash%
- \gre@changeonedimenfactor{maximumspacewithoutdash}{#1}{#2}%
- \fi%
- \ifgre@scale@afterclefnospace%
- \gre@changeonedimenfactor{afterclefnospace}{#1}{#2}%
- \fi%
- \ifgre@scale@afterinitialshift%
- \gre@changeonedimenfactor{afterinitialshift}{#1}{#2}%
- \fi%
- \ifgre@scale@beforeinitialshift%
- \gre@changeonedimenfactor{beforeinitialshift}{#1}{#2}%
- \fi%
- \ifgre@scale@minimalspaceatlinebeginning%
- \gre@changeonedimenfactor{minimalspaceatlinebeginning}{#1}{#2}%
- \fi%
- \ifgre@scale@manualinitialwidth%
- \gre@changeonedimenfactor{manualinitialwidth}{#1}{#2}%
- \fi%
- \ifgre@scale@annotationseparation%
- \gre@changeonedimenfactor{annotationseparation}{#1}{#2}%
- \fi%
- \ifgre@scale@annotationraise%
- \gre@changeonedimenfactor{annotationraise}{#1}{#2}%
- \fi%
- \ifgre@scale@noclefspace%
- \gre@changeonedimenfactor{noclefspace}{#1}{#2}%
- \fi%
- \ifgre@scale@clefchangespace%
- \gre@changeonedimenfactor{clefchangespace}{#1}{#2}%
- \fi%
- \ifgre@scale@clivisalignmentmin%
- \gre@changeonedimenfactor{clivisalignmentmin}{#1}{#2}%
- \fi%
- \ifgre@scale@choralsigndownshift%
- \gre@changeonedimenfactor{choralsigndownshift}{#1}{#2}%
- \fi%
- \ifgre@scale@choralsignupshift%
- \gre@changeonedimenfactor{choralsignupshift}{#1}{#2}%
- \fi%
- \ifgre@scale@translationheight%
- \gre@changeonedimenfactor{translationheight}{#1}{#2}%
- \fi%
- \ifgre@scale@spaceabovelines%
- \gre@changeonedimenfactor{spaceabovelines}{#1}{#2}%
- \fi%
- \ifgre@scale@spacelinestext%
- \gre@changeonedimenfactor{spacelinestext}{#1}{#2}%
- \fi%
- \ifgre@scale@spacebeneathtext%
- \gre@changeonedimenfactor{spacebeneathtext}{#1}{#2}%
- \fi%
- \ifgre@scale@abovelinestextraise%
- \gre@changeonedimenfactor{abovelinestextraise}{#1}{#2}%
- \fi%
- \ifgre@scale@abovelinestextheight%
- \gre@changeonedimenfactor{abovelinestextheight}{#1}{#2}%
- \fi%
- \ifgre@scale@braceshift%
- \gre@changeonedimenfactor{braceshift}{#1}{#2}%
- \fi%
- \ifgre@scale@curlybraceaccentusshift%
- \gre@changeonedimenfactor{curlybraceaccentusshift}{#1}{#2}%
- \fi%
- \ifgre@scale@maxbaroffsettextright%
- \gre@changeonedimenfactor{maxbaroffsettextright}{#1}{#2}%
- \fi%
- \ifgre@scale@maxbaroffsettextleft%
- \gre@changeonedimenfactor{maxbaroffsettextleft}{#1}{#2}%
- \fi%
- \ifgre@scale@maxbaroffsettextright@nobar%
- \gre@changeonedimenfactor{maxbaroffsettextright@nobar}{#1}{#2}%
- \fi%
- \ifgre@scale@maxbaroffsettextleft@nobar%
- \gre@changeonedimenfactor{maxbaroffsettextleft@nobar}{#1}{#2}%
- \fi%
- \ifgre@scale@maxbaroffsettextleft@eol%
- \gre@changeonedimenfactor{maxbaroffsettextleft@eol}{#1}{#2}%
- \fi%
- \ifgre@scale@maxbaroffsettextright@eol%
- \gre@changeonedimenfactor{maxbaroffsettextright@eol}{#1}{#2}%
- \fi%
- \ifgre@scale@bar@rubber%
- \gre@changeonedimenfactor{bar@rubber}{#1}{#2}%
- \fi%
- \ifgre@scale@divisiofinalissep%
- \gre@changeonedimenfactor{divisiofinalissep}{#1}{#2}%
- \fi%
- \ifgre@scale@stafflinefactor%
- \gre@count@temp@two = \numexpr((\gre@stafflinefactor * #2) / #1)\relax%
- \xdef\gre@stafflinefactor{\the\gre@count@temp@two}%
- \fi%
- \relax %
-}%
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Some Macros for changing the spacing around the initial
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%Seeing as these are the distances that people will want to change the most often,
-%we give them their own set of macros to make that easier.
-
-% To change the spacing between annotations.
-%First argument is distance, second is whether it should scale when \gre@factor changes.
-\def\setaboveinitialseparation#1#2{%OBSOLETE
- \gre@obsolete{\protect\setaboveinitialseparation}{\protect\grechangedim\{annotationseparation\}}%
-}%
-
-
-%To change the space after the initial
-%First argument is distance, second is whether it should scale when \gre@factor changes.
-\def\setspaceafterinitial#1#2{%OBSOLETE
- \gre@obsolete{\protect\setspaceafterinitial}{\protect\grechangedim{afterinitialshift}}%
-}
-
-%To change the space before the initial
-%First argument is distance, second is whether it should scale when \gre@factor changes.
-\def\setspacebeforeinitial#1#2{%OBSOLETE
- \gre@obsolete{\protect\setspacebeforeinitial}{\protect\grechangedim{beforeinitialshift}}%
-}%
-
-
-%To change all the distances associated with the initial.
-%First three arguments are distances, last is whether they should scale when \gre@factor changes.
-\def\setinitialspacing#1#2#3#4{%OBSOLETE
- \gre@obsolete{\protect\setinitialspacing}{\protect\grechangedim{beforeinitialshift}, \protect\grechangedim{manualinitialwidth}, and \protect\grechangedim{afterinitialshift}}%
+ \ifgre@scale@additionallineswidth%
+ \gre@changeonedimenfactor{additionallineswidth}{#1}{#2}%
+ \fi%
+ \ifgre@scale@additionalcustoslineswidth%
+ \gre@changeonedimenfactor{additionalcustoslineswidth}{#1}{#2}%
+ \fi%
+ \ifgre@scale@zerowidthspace%
+ \gre@changeonedimenfactor{zerowidthspace}{#1}{#2}%
+ \fi%
+ \ifgre@scale@interglyphspace%
+ \gre@changeonedimenfactor{interglyphspace}{#1}{#2}%
+ \fi%
+ \ifgre@scale@alterationspace%
+ \gre@changeonedimenfactor{alterationspace}{#1}{#2}%
+ \fi%
+ \ifgre@scale@clefflatspace%
+ \gre@changeonedimenfactor{clefflatspace}{#1}{#2}%
+ \fi%
+ \ifgre@scale@beforelowchoralsignspace%
+ \gre@changeonedimenfactor{beforelowchoralsignspace}{#1}{#2}%
+ \fi%
+ \ifgre@scale@beforealterationspace%
+ \gre@changeonedimenfactor{beforealterationspace}{#1}{#2}%
+ \fi%
+ \ifgre@scale@halfspace%
+ \gre@changeonedimenfactor{halfspace}{#1}{#2}%
+ \fi%
+ \ifgre@scale@interelementspace%
+ \gre@changeonedimenfactor{interelementspace}{#1}{#2}%
+ \fi%
+ \ifgre@scale@largerspace%
+ \gre@changeonedimenfactor{largerspace}{#1}{#2}%
+ \fi%
+ \ifgre@scale@nabcinterelementspace%
+ \gre@changeonedimenfactor{nabcinterelementspace}{#1}{#2}%
+ \fi%
+ \ifgre@scale@nabclargerspace%
+ \gre@changeonedimenfactor{nabclargerspace}{#1}{#2}%
+ \fi%
+ \ifgre@scale@glyphspace%
+ \gre@changeonedimenfactor{glyphspace}{#1}{#2}%
+ \fi%
+ \ifgre@scale@spacebeforeinlinecustos%
+ \gre@changeonedimenfactor{spacebeforeinlinecustos}{#1}{#2}%
+ \fi%
+ \ifgre@scale@spacebeforeeolcustos%
+ \gre@changeonedimenfactor{spacebeforeeolcustos}{#1}{#2}%
+ \fi%
+ \ifgre@scale@spacebeforesigns%
+ \gre@changeonedimenfactor{spacebeforesigns}{#1}{#2}%
+ \fi%
+ \ifgre@scale@spaceaftersigns%
+ \gre@changeonedimenfactor{spaceaftersigns}{#1}{#2}%
+ \fi%
+ \ifgre@scale@spaceafterlineclef%
+ \gre@changeonedimenfactor{spaceafterlineclef}{#1}{#2}%
+ \fi%
+ \ifgre@scale@interwordspacenotes%
+ \gre@changeonedimenfactor{interwordspacenotes}{#1}{#2}%
+ \fi%
+ \ifgre@scale@intersyllablespacenotes%
+ \gre@changeonedimenfactor{intersyllablespacenotes}{#1}{#2}%
+ \fi%
+ \ifgre@scale@interwordspacenotes@alteration%
+ \gre@changeonedimenfactor{interwordspacenotes@alteration}{#1}{#2}%
+ \fi%
+ \ifgre@scale@intersyllablespacenotes@alteration%
+ \gre@changeonedimenfactor{intersyllablespacenotes@alteration}{#1}{#2}%
+ \fi%
+ \ifgre@scale@intersyllablespacestretchhyphen%
+ \gre@changeonedimenfactor{intersyllablespacestretchhyphen}{#1}{#2}%
+ \fi%
+ \ifgre@scale@interwordspacetext%
+ \gre@changeonedimenfactor{interwordspacetext}{#1}{#2}%
+ \fi%
+ \ifgre@scale@interwordspacetext@bars%
+ \gre@changeonedimenfactor{interwordspacetext@bars}{#1}{#2}%
+ \fi%
+ \ifgre@scale@interwordspacetext@bars@notext%
+ \gre@changeonedimenfactor{interwordspacetext@bars@notext}{#1}{#2}%
+ \fi%
+ \ifgre@scale@interwordspacenotes@euouae%
+ \gre@changeonedimenfactor{interwordspacenotes@euouae}{#1}{#2}%
+ \fi%
+ \ifgre@scale@interwordspacetext@euouae%
+ \gre@changeonedimenfactor{interwordspacetext@euouae}{#1}{#2}%
+ \fi%
+ \ifgre@scale@interwordspacetext@bars@euouae%
+ \gre@changeonedimenfactor{interwordspacetext@bars@euouae}{#1}{#2}%
+ \fi%
+ \ifgre@scale@interwordspacetext@bars@notext@euouae%
+ \gre@changeonedimenfactor{interwordspacetext@bars@notext@euouae}{#1}{#2}%
+ \fi%
+ \ifgre@scale@bitrivirspace%
+ \gre@changeonedimenfactor{bitrivirspace}{#1}{#2}%
+ \fi%
+ \ifgre@scale@bitristrospace%
+ \gre@changeonedimenfactor{bitristrospace}{#1}{#2}%
+ \fi%
+ \ifgre@scale@punctuminclinatumshift%
+ \gre@changeonedimenfactor{punctuminclinatumshift}{#1}{#2}%
+ \fi%
+ \ifgre@scale@ascendingpunctuminclinatumshift%
+ \gre@changeonedimenfactor{ascendingpunctuminclinatumshift}{#1}{#2}%
+ \fi%
+ \ifgre@scale@beforepunctainclinatashift%
+ \gre@changeonedimenfactor{beforepunctainclinatashift}{#1}{#2}%
+ \fi%
+ \ifgre@scale@punctuminclinatumanddebilisshift%
+ \gre@changeonedimenfactor{punctuminclinatumanddebilisshift}{#1}{#2}%
+ \fi%
+ \ifgre@scale@ascendingpunctuminclinatumanddebilisshift%
+ \gre@changeonedimenfactor{ascendingpunctuminclinatumanddebilisshift}{#1}{#2}%
+ \fi%
+ \ifgre@scale@punctuminclinatumdebilisshift%
+ \gre@changeonedimenfactor{punctuminclinatumdebilisshift}{#1}{#2}%
+ \fi%
+ \ifgre@scale@punctuminclinatumbigshift%
+ \gre@changeonedimenfactor{punctuminclinatumbigshift}{#1}{#2}%
+ \fi%
+ \ifgre@scale@ascendingpunctuminclinatumbigshift%
+ \gre@changeonedimenfactor{ascendingpunctuminclinatumbigshift}{#1}{#2}%
+ \fi%
+ \ifgre@scale@punctuminclinatummaxshift%
+ \gre@changeonedimenfactor{punctuminclinatummaxshift}{#1}{#2}%
+ \fi%
+ \ifgre@scale@ascendingpunctuminclinatummaxshift%
+ \gre@changeonedimenfactor{ascendingpunctuminclinatummaxshift}{#1}{#2}%
+ \fi%
+ \ifgre@scale@descendinginclinatumtonobarshift%
+ \gre@changeonedimenfactor{descendinginclinatumtonobarshift}{#1}{#2}%
+ \fi%
+ \ifgre@scale@descendinginclinatumtonobarbigshift%
+ \gre@changeonedimenfactor{descendinginclinatumtonobarbigshift}{#1}{#2}%
+ \fi%
+ \ifgre@scale@descendinginclinatumtonobarmaxshift%
+ \gre@changeonedimenfactor{descendinginclinatumtonobarmaxshift}{#1}{#2}%
+ \fi%
+ \ifgre@scale@ascendinginclinatumtonobarshift%
+ \gre@changeonedimenfactor{ascendinginclinatumtonobarshift}{#1}{#2}%
+ \fi%
+ \ifgre@scale@ascendinginclinatumtonobarbigshift%
+ \gre@changeonedimenfactor{ascendinginclinatumtonobarbigshift}{#1}{#2}%
+ \fi%
+ \ifgre@scale@ascendinginclinatumtonobarmaxshift%
+ \gre@changeonedimenfactor{ascendinginclinatumtonobarmaxshift}{#1}{#2}%
+ \fi%
+ \ifgre@scale@bar@virgula%
+ \gre@changeonedimenfactor{bar@virgula}{#1}{#2}%
+ \fi%
+ \ifgre@scale@bar@minima%
+ \gre@changeonedimenfactor{bar@minima}{#1}{#2}%
+ \fi%
+ \ifgre@scale@bar@minor%
+ \gre@changeonedimenfactor{bar@minor}{#1}{#2}%
+ \fi%
+ \ifgre@scale@bar@minor%
+ \gre@changeonedimenfactor{bar@dominican}{#1}{#2}%
+ \fi%
+ \ifgre@scale@bar@maior%
+ \gre@changeonedimenfactor{bar@maior}{#1}{#2}%
+ \fi%
+ \ifgre@scale@bar@finalis%
+ \gre@changeonedimenfactor{bar@finalis}{#1}{#2}%
+ \fi%
+ \ifgre@scale@bar@finalfinalis%
+ \gre@changeonedimenfactor{bar@finalfinalis}{#1}{#2}%
+ \fi%
+ \ifgre@scale@bar@virgula@standalone@text%
+ \gre@changeonedimenfactor{bar@virgula@standalone@text}{#1}{#2}%
+ \fi%
+ \ifgre@scale@bar@minima@standalone@text%
+ \gre@changeonedimenfactor{bar@minima@standalone@text}{#1}{#2}%
+ \fi%
+ \ifgre@scale@bar@minor@standalone@text%
+ \gre@changeonedimenfactor{bar@minor@standalone@text}{#1}{#2}%
+ \fi%
+ \ifgre@scale@bar@minor@standalone@text%
+ \gre@changeonedimenfactor{bar@dominican@standalone@text}{#1}{#2}%
+ \fi%
+ \ifgre@scale@bar@maior@standalone@text%
+ \gre@changeonedimenfactor{bar@maior@standalone@text}{#1}{#2}%
+ \fi%
+ \ifgre@scale@bar@finalis@standalone@text%
+ \gre@changeonedimenfactor{bar@finalis@standalone@text}{#1}{#2}%
+ \fi%
+ \ifgre@scale@bar@virgula@standalone@notext%
+ \gre@changeonedimenfactor{bar@virgula@standalone@notext}{#1}{#2}%
+ \fi%
+ \ifgre@scale@bar@minima@standalone@notext%
+ \gre@changeonedimenfactor{bar@minima@standalone@notext}{#1}{#2}%
+ \fi%
+ \ifgre@scale@bar@minor@standalone@notext%
+ \gre@changeonedimenfactor{bar@minor@standalone@notext}{#1}{#2}%
+ \fi%
+ \ifgre@scale@bar@minor@standalone@notext%
+ \gre@changeonedimenfactor{bar@dominican@standalone@notext}{#1}{#2}%
+ \fi%
+ \ifgre@scale@bar@maior@standalone@notext%
+ \gre@changeonedimenfactor{bar@maior@standalone@notext}{#1}{#2}%
+ \fi%
+ \ifgre@scale@bar@finalis@standalone@notext%
+ \gre@changeonedimenfactor{bar@finalis@standalone@notext}{#1}{#2}%
+ \fi%
+ \ifgre@scale@spacearoundclefbars%
+ \gre@changeonedimenfactor{spacearoundclefbars}{#1}{#2}%
+ \fi%
+ \ifgre@scale@textbartextspace%
+ \gre@changeonedimenfactor{textbartextspace}{#1}{#2}%
+ \fi%
+ \ifgre@scale@notebarspace%
+ \gre@changeonedimenfactor{notebarspace}{#1}{#2}%
+ \fi%
+ \ifgre@scale@maximumspacewithoutdash%
+ \gre@changeonedimenfactor{maximumspacewithoutdash}{#1}{#2}%
+ \fi%
+ \ifgre@scale@afterclefnospace%
+ \gre@changeonedimenfactor{afterclefnospace}{#1}{#2}%
+ \fi%
+ \ifgre@scale@afterinitialshift%
+ \gre@changeonedimenfactor{afterinitialshift}{#1}{#2}%
+ \fi%
+ \ifgre@scale@beforeinitialshift%
+ \gre@changeonedimenfactor{beforeinitialshift}{#1}{#2}%
+ \fi%
+ \ifgre@scale@minimalspaceatlinebeginning%
+ \gre@changeonedimenfactor{minimalspaceatlinebeginning}{#1}{#2}%
+ \fi%
+ \ifgre@scale@manualinitialwidth%
+ \gre@changeonedimenfactor{manualinitialwidth}{#1}{#2}%
+ \fi%
+ \ifgre@scale@annotationseparation%
+ \gre@changeonedimenfactor{annotationseparation}{#1}{#2}%
+ \fi%
+ \ifgre@scale@annotationraise%
+ \gre@changeonedimenfactor{annotationraise}{#1}{#2}%
+ \fi%
+ \ifgre@scale@noclefspace%
+ \gre@changeonedimenfactor{noclefspace}{#1}{#2}%
+ \fi%
+ \ifgre@scale@clefchangespace%
+ \gre@changeonedimenfactor{clefchangespace}{#1}{#2}%
+ \fi%
+ \ifgre@scale@clivisalignmentmin%
+ \gre@changeonedimenfactor{clivisalignmentmin}{#1}{#2}%
+ \fi%
+ \ifgre@scale@choralsigndownshift%
+ \gre@changeonedimenfactor{choralsigndownshift}{#1}{#2}%
+ \fi%
+ \ifgre@scale@choralsignupshift%
+ \gre@changeonedimenfactor{choralsignupshift}{#1}{#2}%
+ \fi%
+ \ifgre@scale@translationheight%
+ \gre@changeonedimenfactor{translationheight}{#1}{#2}%
+ \fi%
+ \ifgre@scale@spaceabovelines%
+ \gre@changeonedimenfactor{spaceabovelines}{#1}{#2}%
+ \fi%
+ \ifgre@scale@spacelinestext%
+ \gre@changeonedimenfactor{spacelinestext}{#1}{#2}%
+ \fi%
+ \ifgre@scale@spacebeneathtext%
+ \gre@changeonedimenfactor{spacebeneathtext}{#1}{#2}%
+ \fi%
+ \ifgre@scale@abovelinestextraise%
+ \gre@changeonedimenfactor{abovelinestextraise}{#1}{#2}%
+ \fi%
+ \ifgre@scale@abovelinestextheight%
+ \gre@changeonedimenfactor{abovelinestextheight}{#1}{#2}%
+ \fi%
+ \ifgre@scale@braceshift%
+ \gre@changeonedimenfactor{braceshift}{#1}{#2}%
+ \fi%
+ \ifgre@scale@curlybraceaccentusshift%
+ \gre@changeonedimenfactor{curlybraceaccentusshift}{#1}{#2}%
+ \fi%
+ \ifgre@scale@maxbaroffsettextright%
+ \gre@changeonedimenfactor{maxbaroffsettextright}{#1}{#2}%
+ \fi%
+ \ifgre@scale@maxbaroffsettextleft%
+ \gre@changeonedimenfactor{maxbaroffsettextleft}{#1}{#2}%
+ \fi%
+ \ifgre@scale@maxbaroffsettextright@nobar%
+ \gre@changeonedimenfactor{maxbaroffsettextright@nobar}{#1}{#2}%
+ \fi%
+ \ifgre@scale@maxbaroffsettextleft@nobar%
+ \gre@changeonedimenfactor{maxbaroffsettextleft@nobar}{#1}{#2}%
+ \fi%
+ \ifgre@scale@maxbaroffsettextleft@eol%
+ \gre@changeonedimenfactor{maxbaroffsettextleft@eol}{#1}{#2}%
+ \fi%
+ \ifgre@scale@maxbaroffsettextright@eol%
+ \gre@changeonedimenfactor{maxbaroffsettextright@eol}{#1}{#2}%
+ \fi%
+ \ifgre@scale@bar@rubber%
+ \gre@changeonedimenfactor{bar@rubber}{#1}{#2}%
+ \fi%
+ \ifgre@scale@divisiofinalissep%
+ \gre@changeonedimenfactor{divisiofinalissep}{#1}{#2}%
+ \fi%
+ \ifgre@scale@stafflinefactor%
+ \gre@count@temp@two = \numexpr((\gre@stafflinefactor * #2) / #1)\relax%
+ \xdef\gre@stafflinefactor{\the\gre@count@temp@two}%
+ \fi%
+ \relax %
}%
diff --git a/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-syllable.tex b/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-syllable.tex
index 2c3a9e08f83..b8afe707735 100644
--- a/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-syllable.tex
+++ b/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-syllable.tex
@@ -20,7 +20,7 @@
% this file contains definitions of the glyphs and the syllables
\gre@debugmsg{general}{Loading gregoriotex-syllable.tex}%
-\gre@declarefileversion{gregoriotex-syllable.tex}{4.1.1}% GREGORIO_VERSION
+\gre@declarefileversion{gregoriotex-syllable.tex}{4.2.0-beta1}% GREGORIO_VERSION
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% macros for the typesetting of the different glyphs
@@ -42,88 +42,88 @@
\newcount\gre@generate@pointandclick\gre@generate@pointandclick=0\relax %
\def\gresetpointandclick#1{%
- \IfStrEqCase{#1}{%
- {on}%
- {%
- \ifx\pdfoutput\undefined %
- \gre@warning{Unable to enable point-and-click because \protect\pdfoutput \MessageBreak is not defined}%
- \gre@generate@pointandclick=0\relax %
- \else %
- \ifnum\pdfoutput=1\relax %
- \gre@generate@pointandclick=1\relax %
- \else %
- \gre@warning{Unable to enable point-and-click when not\MessageBreak generating a PDF}%
- \gre@generate@pointandclick=0\relax %
- \fi %
- \fi %
- }%
- {off}%
- {\gre@generate@pointandclick=0\relax}%
- }[% all other cases
- \gre@error{Unrecognized option "#1" for \protect\gresetpointandclick\MessageBreak Possible options are: 'on' and 'off'}%
- ]%
+ \IfStrEqCase{#1}{%
+ {on}%
+ {%
+ \ifx\pdfoutput\undefined %
+ \gre@warning{Unable to enable point-and-click because \protect\pdfoutput \MessageBreak is not defined}%
+ \gre@generate@pointandclick=0\relax %
+ \else %
+ \ifnum\pdfoutput=1\relax %
+ \gre@generate@pointandclick=1\relax %
+ \else %
+ \gre@warning{Unable to enable point-and-click when not\MessageBreak generating a PDF}%
+ \gre@generate@pointandclick=0\relax %
+ \fi %
+ \fi %
+ }%
+ {off}%
+ {\gre@generate@pointandclick=0\relax}%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" for \protect\gresetpointandclick\MessageBreak Possible options are: 'on' and 'off'}%
+ ]%
}%
\def\gre@pointandclick#1#2{%
- \def\gre@@arg{#2}%
- \ifx\gre@@arg\gre@nothing %
- #1%
- \else %
- \def\gre@@arg{\gre@gabcname}%
- \ifx\gre@@arg\gre@nothing %
- #1%
- \else %
- \ifnum\gre@generate@pointandclick=1\relax %
- \pdfstartlink user{%
- /Subtype/Link/Border[0 0 0]%
- /A<</Type/Action/S/URI/URI(textedit://\gre@gabcname:#2)>>%
- }%
- #1%
- \pdfendlink %
- \else %
- #1%
- \fi %
- \fi %
- \fi %
+ \def\gre@@arg{#2}%
+ \ifx\gre@@arg\gre@nothing %
+ #1%
+ \else %
+ \def\gre@@arg{\gre@gabcname}%
+ \ifx\gre@@arg\gre@nothing %
+ #1%
+ \else %
+ \ifnum\gre@generate@pointandclick=1\relax %
+ \gre@startlink user{%
+ /Subtype/Link/Border[0 0 0]%
+ /A<</Type/Action/S/URI/URI(textedit://\gre@gabcname:#2)>>%
+ }%
+ #1%
+ \gre@endlink %
+ \else %
+ #1%
+ \fi %
+ \fi %
+ \fi %
}%
\def\gre@newglyphcommon{%
- \global\advance\gre@attr@glyph@id by 1\relax %
- % first there is something we must do: setting \gre@lastoflinecount to 0 if its value is 2. The reason of this is that in ab(abzcd), we cannot let \grelastoflinecount set to 2 after the end of line... the only way I found to achieve it is to reset \grelastoflinecount to 0 after each glyph or bar.
- \ifnum\gre@lastoflinecount=2\relax %
- \global\gre@lastoflinecount=0\relax %
- \fi %
- \global\gre@skip@bar@lastskip=0pt\relax %
- \gre@currenttextabovelines %
- \ifcase\gre@count@lastglyphiscavum\or %
- \global\gre@count@lastglyphiscavum=2\relax %
- \or %
- \global\gre@count@lastglyphiscavum=0\relax %
- \fi %
- \global\gre@lastendswithmorafalse %
- \ifgre@boxing\else\ifgre@firstin@euouae %
- \ifgre@raggedbreakbeforeeuouae %
- \directlua{gregoriotex.save_pos(\the\gre@lasteuouaeindex,2)}%
- \fi %
- \gre@firstin@euouaefalse %
- \fi\fi %
- \relax %
+ \global\advance\gre@attr@glyph@id by 1\relax %
+ % first there is something we must do: setting \gre@lastoflinecount to 0 if its value is 2. The reason of this is that in ab(abzcd), we cannot let \grelastoflinecount set to 2 after the end of line... the only way I found to achieve it is to reset \grelastoflinecount to 0 after each glyph or bar.
+ \ifnum\gre@lastoflinecount=2\relax %
+ \global\gre@lastoflinecount=0\relax %
+ \fi %
+ \global\gre@skip@bar@lastskip=0pt\relax %
+ \gre@currenttextabovelines %
+ \ifcase\gre@count@lastglyphiscavum\or %
+ \global\gre@count@lastglyphiscavum=2\relax %
+ \or %
+ \global\gre@count@lastglyphiscavum=0\relax %
+ \fi %
+ \global\gre@lastendswithmorafalse %
+ \ifgre@boxing\else\ifgre@firstin@euouae %
+ \ifgre@raggedbreakbeforeeuouae %
+ \directlua{gregoriotex.save_euouae(\the\gre@lasteuouaeindex,2)}%
+ \fi %
+ \gre@firstin@euouaefalse %
+ \fi\fi %
+ \relax %
}%
\def\gre@endofglyphcommon{%
- \ifgre@endofscore %
- \gre@penalty{\grefinalpenalty}%
- \gre@localleftbox{}%
- \gre@localrightbox{}%
- \fi %
+ \ifgre@endofscore %
+ \gre@penalty{\the\gre@space@count@finalpenalty}%
+ \gre@localleftbox{}%
+ \gre@localrightbox{}%
+ \fi %
}
% passes the glyph height limits:
% #1: the high height
% #2: the low height
\def\GreGlyphHeights#1#2{%
- \global\setluatexattribute\gre@attr@glyph@top{#1}%
- \global\setluatexattribute\gre@attr@glyph@bottom{#2}%
+ \global\setluatexattribute\gre@attr@glyph@top{#1}%
+ \global\setluatexattribute\gre@attr@glyph@bottom{#2}%
}%
% Flag that tells us if the current glyph is the first glyph or not.
@@ -132,7 +132,7 @@
% macro to typeset the glyph. attributes are :
% #1: character : the character that it must call
% #2: height : the height it must be raised : can be negative (must be calculated by a preprocessor)
-% #3: height of the next note : we define the custos with that
+% #3: typesets the next custos
% #4: type : the type of glyph, to determine the aligncenter; can be :
%%%%%%%% 0 : one-note glyph or more than two notes glyph except porrectus : here we must put the aligncenter in the middle of the first note
%%%%%%%% 1 : two notes glyph (podatus is considered as a one-note glyph) : here we put the aligncenter in the middle of the glyph
@@ -148,28 +148,28 @@
% #6 are the signs to typeset after the glyph (almost all signs)
% #7 is the line:char:column for a textedit link
\def\GreGlyph#1#2#3#4#5#6#7{%
- \gre@newglyphcommon %
- \setbox\gre@box@temp@width=\hbox{\gre@pointandclick{\gre@font@music #1}{#7}}%
- \global\gre@dimen@lastglyphwidth=\wd\gre@box@temp@width %
- % the three next lines are a trick to get the additional lines below the glyphs
- \gre@skip@temp@one = \gre@dimen@lastglyphwidth\relax%
- \kern\gre@skip@temp@one %
- #5\relax %
- \kern-\gre@skip@temp@one %
- \gre@calculate@glyphraisevalue{#2}{0}{}%
- \raise\gre@dimen@glyphraisevalue\relax%
- \copy\gre@box@temp@width%
- \ifgre@endofscore\else\ifgre@boxing\else %
- \GreNextCustos{#3}%
- \fi\fi %
- \ifgre@firstglyph% we check if it is the first glyph
- \gre@calculate@notesaligncenter{#4}%
- \global\gre@firstglyphfalse%
- \fi%
- #6\relax %
- \directlua{gregoriotex.adjust_line_height(\gre@insidediscretionary)}%
- \gre@endofglyphcommon %
- \relax%
+ \gre@newglyphcommon %
+ \setbox\gre@box@temp@width=\hbox{\gre@pointandclick{\gre@font@music #1}{#7}}%
+ \global\gre@dimen@lastglyphwidth=\wd\gre@box@temp@width %
+ % the three next lines are a trick to get the additional lines below the glyphs
+ \gre@skip@temp@one = \gre@dimen@lastglyphwidth\relax%
+ \kern\gre@skip@temp@one %
+ #5\relax %
+ \kern-\gre@skip@temp@one %
+ \gre@calculate@glyphraisevalue{#2}{0}{}%
+ \raise\gre@dimen@glyphraisevalue\relax%
+ \copy\gre@box@temp@width%
+ \ifgre@endofscore\else\ifgre@boxing\else %
+ #3%
+ \fi\fi %
+ \ifgre@firstglyph% we check if it is the first glyph
+ \gre@calculate@notesaligncenter{#4}%
+ \global\gre@firstglyphfalse%
+ \fi%
+ #6\relax %
+ \directlua{gregoriotex.adjust_line_height(\gre@insidediscretionary)}%
+ \gre@endofglyphcommon %
+ \relax%
}%
% this function is quite simple, it just sets \gre@box@temp@width with a box of the good width, watch the next function for the complete thing
@@ -195,64 +195,64 @@
% there is a tricky here : if notesaligncenter is not 0, it means that there is a flat before, so we simply add notes aligncenter
% #2 is 0 if we are in the context of current syllable, 1 if we are in the context of next syllable
\def\gre@calculate@simplenotesaligncenter#1#2{%
- \ifcase#1%
- %case of punctum
- \global\setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPPunctum}%
- \or%
- %case of flexus
- \gre@handleclivisspecialalignment{\gre@font@music\GreCPPesQuadratumLongqueueThreeNothing}{\gre@font@music\GreCPPunctum}{#2}%
- \or%
- %case of porrectus (we consider it to have the same alignment as punctum)
- \global\setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPPunctum}%
- \or%
- %case of a initio debilis
- \global\setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPPunctumDeminutus}%
- \or %
- %case of a quilisma
- \global\setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPQuilisma}%
- \or %
- %case of an oriscus
- \global\setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPOriscus}%
- \or %
- %case of a punctum inclinatum
- \global\setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPPunctumInclinatum}%
- \or %
- %case of a stropha
- \global\setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPStropha}%
- \or %
- % case of flexus with ambitus of one
- \gre@handleclivisspecialalignment{\gre@font@music\GreCPPesQuadratumLongqueueOneNothing}{\gre@font@music\GreCPPunctum}{#2}%
- \or %
- % case of flexus deminutus
- \gre@handleclivisspecialalignment{\gre@font@music\GreCPFlexusTwoDeminutus}{\gre@font@music\GreCPPunctum}{#2}%
- \or %
- % case of virgula
- \global\setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPVirgula}%
- \or %
- % case of divisio minima
- \global\setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioMinima}%
- \or %
- % case of divisio minor
- \global\setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioMinor}%
- \or %
- % case of divisio maior
- \global\setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioMaior}%
- \or %
- % case of dominican bar
- \global\setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioDominican}%
- \or %
- % case of divisiofinalis
- \global\setbox\gre@box@temp@width=\hbox{\gre@fontchar@divisiofinalis}%
- \or %
- % case of no note
- \ifgre@newbarspacing%
- \global\setbox\gre@box@temp@width=\hbox{}%
- \else%
- % under the old algorithm, syllables with no notes triggered a 0 in this function, so we duplicate the first case here
- \global\setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPPunctum}%
- \fi%
- \fi%
- \relax%
+ \ifcase#1%
+ %case of punctum
+ \global\setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPPunctum}%
+ \or%
+ %case of flexus
+ \gre@handleclivisspecialalignment{\gre@font@music\GreCPPesQuadratumLongqueueThreeNothing}{\gre@font@music\GreCPPunctum}{#2}%
+ \or%
+ %case of porrectus (we consider it to have the same alignment as punctum)
+ \global\setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPPunctum}%
+ \or%
+ %case of a initio debilis
+ \global\setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPPunctumDeminutus}%
+ \or %
+ %case of a quilisma
+ \global\setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPQuilisma}%
+ \or %
+ %case of an oriscus
+ \global\setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPAscendensOriscus}%
+ \or %
+ %case of a punctum inclinatum
+ \global\setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPPunctumInclinatum}%
+ \or %
+ %case of a stropha
+ \global\setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPStropha}%
+ \or %
+ % case of flexus with ambitus of one
+ \gre@handleclivisspecialalignment{\gre@font@music\GreCPPesQuadratumLongqueueOneNothing}{\gre@font@music\GreCPPunctum}{#2}%
+ \or %
+ % case of flexus deminutus
+ \gre@handleclivisspecialalignment{\gre@font@music\GreCPFlexusTwoDeminutus}{\gre@font@music\GreCPPunctum}{#2}%
+ \or %
+ % case of virgula
+ \global\setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPVirgula}%
+ \or %
+ % case of divisio minima
+ \global\setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioMinima}%
+ \or %
+ % case of divisio minor
+ \global\setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioMinor}%
+ \or %
+ % case of divisio maior
+ \global\setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioMaior}%
+ \or %
+ % case of dominican bar
+ \global\setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPDivisioDominican}%
+ \or %
+ % case of divisiofinalis
+ \global\setbox\gre@box@temp@width=\hbox{\gre@fontchar@divisiofinalis}%
+ \or %
+ % case of no note
+ \ifgre@newbarspacing%
+ \global\setbox\gre@box@temp@width=\hbox{}%
+ \else%
+ % under the old algorithm, syllables with no notes triggered a 0 in this function, so we duplicate the first case here
+ \global\setbox\gre@box@temp@width=\hbox{\gre@font@music\GreCPPunctum}%
+ \fi%
+ \fi%
+ \relax%
}%
% aux function to previous one: sets \gre@box@temp@width to \hbox{#1} or \hbox{#2}
@@ -270,116 +270,144 @@
%
% #3 is the same as #2 of previous function
\def\gre@handleclivisspecialalignment#1#2#3{%
- \ifcase\gre@clivisalignment%
- \global\setbox\gre@box@temp@width=\hbox{#1}%
- \or%
- \global\setbox\gre@box@temp@width=\hbox{#2}%
- \or%
- \gre@widthof{#1}%
- \divide\gre@dimen@temp@three by 2\relax %
- \gre@debugmsg{ifdim}{ temp@three > textaligncenter}%
- \ifdim\gre@dimen@temp@three >\gre@dimen@textaligncenter\relax%
- \global\setbox\gre@box@temp@width=\hbox{#2}%
- \else%
- \ifcase\gre@lyriccentering% 0 == syllable centering
- \gre@debugmsg{ifdim}{ textaligncenter > clivisalignmentmin}%
- \ifdim\gre@dimen@textaligncenter >\gre@space@dimen@clivisalignmentmin\relax%
- \global\setbox\gre@box@temp@width=\hbox{#2}%
- \else%
- \global\setbox\gre@box@temp@width=\hbox{#1}%
- \fi%
- \else% vowel or first-letter centering
- \ifcase#3%
- \gre@widthof{\gre@endsyllablepart}%
- \else%
- \gre@widthof{\gre@nextendsyllablepart}%
- \fi%
- \gre@debugmsg{ifdim}{ temp@three > clivisalignmentmin}%
- \ifdim\gre@dimen@temp@three >\gre@space@dimen@clivisalignmentmin\relax%
- \global\setbox\gre@box@temp@width=\hbox{#2}%
- \else%
- \global\setbox\gre@box@temp@width=\hbox{#1}%
- \fi%
- \fi%
- \fi%
- \fi%
+ \ifcase\gre@clivisalignment%
+ \global\setbox\gre@box@temp@width=\hbox{#1}%
+ \or%
+ \global\setbox\gre@box@temp@width=\hbox{#2}%
+ \or%
+ \gre@widthof{#1}%
+ \divide\gre@dimen@temp@three by 2\relax %
+ \gre@debugmsg{ifdim}{ temp@three > textaligncenter}%
+ \ifdim\gre@dimen@temp@three >\gre@dimen@textaligncenter\relax%
+ \global\setbox\gre@box@temp@width=\hbox{#2}%
+ \else%
+ \ifcase\gre@lyriccentering% 0 == syllable centering
+ \gre@debugmsg{ifdim}{ textaligncenter > clivisalignmentmin}%
+ \ifdim\gre@dimen@textaligncenter >\gre@space@dimen@clivisalignmentmin\relax%
+ \global\setbox\gre@box@temp@width=\hbox{#2}%
+ \else%
+ \global\setbox\gre@box@temp@width=\hbox{#1}%
+ \fi%
+ \else% vowel or first-letter centering
+ \ifcase#3%
+ \gre@widthof{\gre@endsyllablepart}%
+ \else%
+ \gre@widthof{\gre@nextendsyllablepart}%
+ \fi%
+ \gre@debugmsg{ifdim}{ temp@three > clivisalignmentmin}%
+ \ifdim\gre@dimen@temp@three >\gre@space@dimen@clivisalignmentmin\relax%
+ \global\setbox\gre@box@temp@width=\hbox{#2}%
+ \else%
+ \global\setbox\gre@box@temp@width=\hbox{#1}%
+ \fi%
+ \fi%
+ \fi%
+ \fi%
}%
% the "hat" function, that calls the simple function with the good argument, according to the fact that it's a flat, natural, etc.
% warning: the behaviour of all this is quite difficult to understand: this function is called with simple arguments (between 0 and 20) by the glyph function. In this case we add the align center of the argument to notesaligncenter ; and notesaligncenter can be already set to something by flat and natural.
\def\gre@calculate@notesaligncenter#1{%
- \gre@calculate@simplenotesaligncenter{#1}{0}%
- \global\advance\gre@dimen@notesaligncenter by \dimexpr(\wd\gre@box@temp@width / 2)\relax %
- \relax %
+ \gre@calculate@simplenotesaligncenter{#1}{0}%
+ \global\advance\gre@dimen@notesaligncenter by \dimexpr(\wd\gre@box@temp@width / 2)\relax %
+ \relax %
}%
% this is the function that we call when we try to determine the next aligncenter of the notes. In this case we call this function with normal arguments if there is no flat nor natural ; we call it with argument + 20 if there is a flat and argument + 40 if there is a natural, +60 with a sharp
\def\gre@calculate@nextnotesaligncenter#1{%
- \ifnum#1<20\relax %
- \gre@calculate@simplenotesaligncenter{#1}{1}%
- \gre@dimen@temp@five=\dimexpr(\wd\gre@box@temp@width / 2)\relax %
- \global\gre@dimen@notesaligncenter=\gre@dimen@temp@five %
- \else %\ifnum#1<20
- \gre@count@temp@three=#1 %
- \ifnum#1<40\relax%
- \advance\gre@count@temp@three by -20\relax %
- \gre@calculate@simplenotesaligncenter{\gre@count@temp@three}{1}%
- \gre@dimen@temp@five=\dimexpr(\wd\gre@box@temp@width / 2)\relax %
- \setbox\gre@box@temp@width=\hbox{\gre@fontchar@flat}%
- \else%\ifnum#1<40
- \ifnum#1<60\relax%
- \advance\gre@count@temp@three by -40\relax %
- \gre@calculate@simplenotesaligncenter{\gre@count@temp@three}{1}%
- \gre@dimen@temp@five=\dimexpr(\wd\gre@box@temp@width / 2)\relax %
- \setbox\gre@box@temp@width=\hbox{\gre@fontchar@natural}%
- \else%\ifnum#1<60
- \advance\gre@count@temp@three by -60\relax %
- \gre@calculate@simplenotesaligncenter{\gre@count@temp@three}{1}%
- \gre@dimen@temp@five=\dimexpr(\wd\gre@box@temp@width / 2)\relax %
- \setbox\gre@box@temp@width=\hbox{\gre@fontchar@sharp}%
- \fi%
- \fi %
- \advance\gre@dimen@temp@five by \dimexpr(\wd\gre@box@temp@width+\gre@space@dimen@alterationspace)\relax %
- \global\gre@dimen@notesaligncenter=\gre@dimen@temp@five %
- \fi %
- \relax %
+ \ifnum#1<20\relax %
+ \gre@calculate@simplenotesaligncenter{#1}{1}%
+ \gre@dimen@temp@five=\dimexpr(\wd\gre@box@temp@width / 2)\relax %
+ \global\gre@dimen@notesaligncenter=\gre@dimen@temp@five %
+ \else %\ifnum#1<20
+ \gre@count@temp@three=#1 %
+ \ifnum#1<40\relax%
+ \advance\gre@count@temp@three by -20\relax %
+ \gre@calculate@simplenotesaligncenter{\gre@count@temp@three}{1}%
+ \gre@dimen@temp@five=\dimexpr(\wd\gre@box@temp@width / 2)\relax %
+ \setbox\gre@box@temp@width=\hbox{\gre@fontchar@flat}%
+ \else%\ifnum#1<40
+ \ifnum#1<60\relax%
+ \advance\gre@count@temp@three by -40\relax %
+ \gre@calculate@simplenotesaligncenter{\gre@count@temp@three}{1}%
+ \gre@dimen@temp@five=\dimexpr(\wd\gre@box@temp@width / 2)\relax %
+ \setbox\gre@box@temp@width=\hbox{\gre@fontchar@natural}%
+ \else%\ifnum#1<60
+ \advance\gre@count@temp@three by -60\relax %
+ \gre@calculate@simplenotesaligncenter{\gre@count@temp@three}{1}%
+ \gre@dimen@temp@five=\dimexpr(\wd\gre@box@temp@width / 2)\relax %
+ \setbox\gre@box@temp@width=\hbox{\gre@fontchar@sharp}%
+ \fi%
+ \fi %
+ \advance\gre@dimen@temp@five by \dimexpr(\wd\gre@box@temp@width+\gre@space@dimen@alterationspace)\relax %
+ \global\gre@dimen@notesaligncenter=\gre@dimen@temp@five %
+ \fi %
+ \relax %
}%
% box that we will use to determine the width of the notes, to determine wether we typeset a - or not after the letters
\newbox\gre@box@syllablenotes%
+\newif\ifgre@showlyrics%
+\gre@showlyricstrue%
+
+\def\gresetlyrics#1{%
+ \IfStrEqCase{#1}{%
+ {visible}{\gre@showlyricstrue}%
+ {invisible}{\gre@showlyricsfalse}%
+ }[% all other cases
+ \gre@error{Unknown option, "#1" for \protect\gresetlyrics\MessageBreak Possible options are: 'visible' and 'invisible'}%
+ ]%
+}%
+
+\newif\ifgre@shownotes%
+\gre@shownotestrue%
+
+\def\gresetnotes#1{%
+ \IfStrEqCase{#1}{%
+ {visible}{\gre@shownotestrue}%
+ {invisible}{\gre@shownotesfalse}%
+ }[% all other cases
+ \gre@error{Unknown option, "#1" for \protect\gresetnotes\MessageBreak Possible options are: 'visible' and 'invisible'}%
+ ]%
+}%
+
% Macro used to fill \gre@box@syllablenotes with everything contained in #1. This
% saves and restores a few values so that when really typesetting #1 in \GreSyllable,
% the result is identical.
\def\gre@syllablenotes#1{%
- % \gre@count@lastglyphiscavum is reinitialized at each syllable...
- % so there's a bug on g(bx)g(b)
- \global\gre@count@lastglyphiscavum=0\relax %
- \global\gre@firstglyphtrue%
- \global\gre@boxingtrue%
- \let\ifgre@lastendswithmorasave\ifgre@lastendswithmora%
- \xdef\gre@savedlastoflinecount{\number\gre@lastoflinecount\relax }%
- \setbox\gre@box@syllablenotes=\hbox{#1}%
- \gre@debugmsg{spacing}{Width of notes: \the\wd\gre@box@syllablenotes}%
- \global\gre@boxingfalse%
- \global\gre@lastoflinecount=\gre@savedlastoflinecount\relax %
- \global\gre@firstglyphtrue%
- % now gre@lastendswithmora is true if this syllable ends with a
- % punctum mora, but we still want to keep gre@lastendswithmora if we
- % are on a bar, so:
- % - we set gre@thisendswithmora to gre@lastendswithmora
- % - when syllables will be really typeset, they will set gre@lastendswithmora
- % again
- \ifgre@lastendswithmora %
- \gre@thisendswithmoratrue %
- \else %
- \gre@thisendswithmorafalse %
- \fi %
- \let\ifgre@lastendswithmora\ifgre@lastendswithmorasave %
- \global\gre@count@lastglyphiscavum=0\relax %
- \global\gre@skip@bar@lastskip=0pt\relax %
- \global\gre@endofscorefalse %
- \relax %
+ % \gre@count@lastglyphiscavum is reinitialized at each syllable...
+ % so there's a bug on g(bx)g(b)
+ \global\gre@count@lastglyphiscavum=0\relax %
+ \global\gre@firstglyphtrue%
+ \global\gre@boxingtrue%
+ \let\ifgre@lastendswithmorasave\ifgre@lastendswithmora%
+ \xdef\gre@savedlastoflinecount{\number\gre@lastoflinecount\relax }%
+ \ifgre@shownotes%
+ \setbox\gre@box@syllablenotes=\hbox{#1}%
+ \else%
+ \setbox\gre@box@syllablenotes=\box\voidb@x%
+ \fi%
+ \gre@debugmsg{spacing}{Width of notes: \the\wd\gre@box@syllablenotes}%
+ \global\gre@boxingfalse%
+ \global\gre@lastoflinecount=\gre@savedlastoflinecount\relax %
+ \global\gre@firstglyphtrue%
+ % now gre@lastendswithmora is true if this syllable ends with a
+ % punctum mora, but we still want to keep gre@lastendswithmora if we
+ % are on a bar, so:
+ % - we set gre@thisendswithmora to gre@lastendswithmora
+ % - when syllables will be really typeset, they will set gre@lastendswithmora
+ % again
+ \ifgre@lastendswithmora %
+ \gre@thisendswithmoratrue %
+ \else %
+ \gre@thisendswithmorafalse %
+ \fi %
+ \let\ifgre@lastendswithmora\ifgre@lastendswithmorasave %
+ \global\gre@count@lastglyphiscavum=0\relax %
+ \global\gre@skip@bar@lastskip=0pt\relax %
+ \global\gre@endofscorefalse %
+ \relax %
}%
@@ -408,7 +436,7 @@
% the macro we call with all normal text
\def\gre@textnormal#1{%
- #1\relax %
+ #1\relax %
}%
% macro to specify a text which is different from #1#2#3 (of \GreSyllable). It is useful for
@@ -433,26 +461,26 @@
% 4: tt
% 5: ul
\def\GreSetFixedTextFormat#1{%
- \ifcase#1\relax%
- \global\let\gre@fixedtextformat\gre@textnormal %
- \or %
- \global\let\gre@fixedtextformat\GreItalic %
- \or %
- \global\let\gre@fixedtextformat\GreBold %
- \or %
- \global\let\gre@fixedtextformat\GreSmallCaps %
- \or %
- \global\let\gre@fixedtextformat\GreTypewriter %
- \or %
- \global\let\gre@fixedtextformat\GreUnderline %
- \or %
- \global\let\gre@fixedtextformat\GreColored %
- \fi %
+ \ifcase#1\relax%
+ \global\let\gre@fixedtextformat\gre@textnormal %
+ \or %
+ \global\let\gre@fixedtextformat\GreItalic %
+ \or %
+ \global\let\gre@fixedtextformat\GreBold %
+ \or %
+ \global\let\gre@fixedtextformat\GreSmallCaps %
+ \or %
+ \global\let\gre@fixedtextformat\GreTypewriter %
+ \or %
+ \global\let\gre@fixedtextformat\GreUnderline %
+ \or %
+ \global\let\gre@fixedtextformat\GreColored %
+ \fi %
}%
% a function to cancel the previous one
\def\gre@unsetfixedtextformat{%
- \global\let\gre@fixedtextformat\gre@textnormal %
+ \global\let\gre@fixedtextformat\gre@textnormal %
}%
\let\gre@fixedtextformat\gre@textnormal %
@@ -460,26 +488,26 @@
% The same but for the next syllable
\def\GreSetFixedNextTextFormat#1{%
- \ifcase#1\relax%
- \global\let\gre@fixednexttextformat\gre@textnormal %
- \or %
- \global\let\gre@fixednexttextformat\GreItalic %
- \or %
- \global\let\gre@fixednexttextformat\GreBold %
- \or %
- \global\let\gre@fixednexttextformat\GreSmallCaps %
- \or %
- \global\let\gre@fixednexttextformat\GreTypewriter %
- \or %
- \global\let\gre@fixednexttextformat\GreUnderline %
- \or %
- \global\let\gre@fixednexttextformat\GreColored %
- \fi %
+ \ifcase#1\relax%
+ \global\let\gre@fixednexttextformat\gre@textnormal %
+ \or %
+ \global\let\gre@fixednexttextformat\GreItalic %
+ \or %
+ \global\let\gre@fixednexttextformat\GreBold %
+ \or %
+ \global\let\gre@fixednexttextformat\GreSmallCaps %
+ \or %
+ \global\let\gre@fixednexttextformat\GreTypewriter %
+ \or %
+ \global\let\gre@fixednexttextformat\GreUnderline %
+ \or %
+ \global\let\gre@fixednexttextformat\GreColored %
+ \fi %
}%
% a function to cancel the previous one
\def\gre@unsetfixednexttextformat{%
- \global\let\gre@fixednexttextformat\gre@textnormal %
+ \global\let\gre@fixednexttextformat\gre@textnormal %
}%
\let\gre@fixednexttextformat\gre@textnormal %
@@ -492,36 +520,36 @@
\gre@nextforcedcenteringfalse%
\def\GreGABCForceCenters{%
- \ifgre@gabcforcecenters%
- \gre@forcedcenteringtrue%
- \else%
- \gre@forcedcenteringfalse%
- \fi%
+ \ifgre@gabcforcecenters%
+ \gre@forcedcenteringtrue%
+ \else%
+ \gre@forcedcenteringfalse%
+ \fi%
}%
\def\GreGABCNextForceCenters{%
- \ifgre@gabcforcecenters%
- \gre@nextforcedcenteringtrue%
- \else%
- \gre@nextforcedcenteringfalse%
- \fi%
+ \ifgre@gabcforcecenters%
+ \gre@nextforcedcenteringtrue%
+ \else%
+ \gre@nextforcedcenteringfalse%
+ \fi%
}%
\newif\ifgre@gabcforcecenters%
\gre@gabcforcecenterstrue%
\def\gresetgabcforcecenters#1{%
- \ifcase\gre@lyriccentering\or
- \gre@warning{\protect\gresetgabcforcecenters\space has no effect when lyrics are centered on the vowels}%
- \fi%
- \IfStrEqCase{#1}{%
- {allow}%
- {\gre@gabcforcecenterstrue}%
- {prohibit}%
- {\gre@gabcforcecentersfalse}%
- }[% all other cases
- \gre@error{Unrecognized option "#1" for \protect\gresetgabcforcecenters\MessageBreak Possible options are: 'allow' and 'prohibit'}%
- ]%
+ \ifcase\gre@lyriccentering\or%
+ \gre@warning{\protect\gresetgabcforcecenters\space has no effect when lyrics are centered on the vowels}%
+ \fi%
+ \IfStrEqCase{#1}{%
+ {allow}%
+ {\gre@gabcforcecenterstrue}%
+ {prohibit}%
+ {\gre@gabcforcecentersfalse}%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" for \protect\gresetgabcforcecenters\MessageBreak Possible options are: 'allow' and 'prohibit'}%
+ ]%
}%
% #1 : the first letters of the syllable, that don't count for the alignment
@@ -530,49 +558,49 @@
% #4 : the very first letter
% #5 : all the letters after the first letter
\def\GreSetThisSyllable#1#2#3#4#5{%
- \ifgre@forcedcentering%
- \gdef\gre@firstsyllablepart{#1}%
- \gdef\gre@middlesyllablepart{#2}%
- \gdef\gre@endsyllablepart{#3}%
- \else%
- \ifcase\gre@lyriccentering% 0 - syllable centering
- \gdef\gre@firstsyllablepart{}%
- \gdef\gre@middlesyllablepart{#1#2#3}%
- \gdef\gre@endsyllablepart{}%
- \or % 1 - vowel centering
- \gdef\gre@firstsyllablepart{#1}%
- \gdef\gre@middlesyllablepart{#2}%
- \gdef\gre@endsyllablepart{#3}%
- \or % 2 - first-letter centering
- \gdef\gre@firstsyllablepart{}%
- \gdef\gre@middlesyllablepart{#4}%
- \gdef\gre@endsyllablepart{#5}%
- \fi %
- \fi%
- \gre@forcedcenteringfalse%
+ \ifgre@forcedcentering%
+ \gdef\gre@firstsyllablepart{#1}%
+ \gdef\gre@middlesyllablepart{#2}%
+ \gdef\gre@endsyllablepart{#3}%
+ \else%
+ \ifcase\gre@lyriccentering% 0 - syllable centering
+ \gdef\gre@firstsyllablepart{}%
+ \gdef\gre@middlesyllablepart{#1#2#3}%
+ \gdef\gre@endsyllablepart{}%
+ \or % 1 - vowel centering
+ \gdef\gre@firstsyllablepart{#1}%
+ \gdef\gre@middlesyllablepart{#2}%
+ \gdef\gre@endsyllablepart{#3}%
+ \or % 2 - first-letter centering
+ \gdef\gre@firstsyllablepart{}%
+ \gdef\gre@middlesyllablepart{#4}%
+ \gdef\gre@endsyllablepart{#5}%
+ \fi %
+ \fi%
+ \gre@forcedcenteringfalse%
}%
\def\GreSetNextSyllable#1#2#3#4#5{%
- \ifgre@nextforcedcentering%
- \gdef\gre@nextfirstsyllablepart{#1}%
- \gdef\gre@nextmiddlesyllablepart{#2}%
- \gdef\gre@nextendsyllablepart{#3}%
- \else%
- \ifcase\gre@lyriccentering% 0 - syllable centering
- \gdef\gre@nextfirstsyllablepart{}%
- \gdef\gre@nextmiddlesyllablepart{#1#2#3}%
- \gdef\gre@nextendsyllablepart{}%
- \or % 1 - vowel centering
- \gdef\gre@nextfirstsyllablepart{#1}%
- \gdef\gre@nextmiddlesyllablepart{#2}%
- \gdef\gre@nextendsyllablepart{#3}%
- \or % 2 - first-letter centering
- \gdef\gre@nextfirstsyllablepart{}%
- \gdef\gre@nextmiddlesyllablepart{#4}%
- \gdef\gre@nextendsyllablepart{#5}%
- \fi %
- \fi%
- \gre@nextforcedcenteringfalse%
+ \ifgre@nextforcedcentering%
+ \gdef\gre@nextfirstsyllablepart{#1}%
+ \gdef\gre@nextmiddlesyllablepart{#2}%
+ \gdef\gre@nextendsyllablepart{#3}%
+ \else%
+ \ifcase\gre@lyriccentering% 0 - syllable centering
+ \gdef\gre@nextfirstsyllablepart{}%
+ \gdef\gre@nextmiddlesyllablepart{#1#2#3}%
+ \gdef\gre@nextendsyllablepart{}%
+ \or % 1 - vowel centering
+ \gdef\gre@nextfirstsyllablepart{#1}%
+ \gdef\gre@nextmiddlesyllablepart{#2}%
+ \gdef\gre@nextendsyllablepart{#3}%
+ \or % 2 - first-letter centering
+ \gdef\gre@nextfirstsyllablepart{}%
+ \gdef\gre@nextmiddlesyllablepart{#4}%
+ \gdef\gre@nextendsyllablepart{#5}%
+ \fi %
+ \fi%
+ \gre@nextforcedcenteringfalse%
}%
%%%%%%%%%%%%%%%
@@ -580,27 +608,20 @@
%%%%%%%%%%%%%%%
\def\gresetlyriccentering#1{%
- \IfStrEqCase{#1}{%
- {vowel}%
- {\xdef\gre@lyriccentering{1}}%
- {syllable}%
- {\xdef\gre@lyriccentering{0}}%
- {firstletter}%
- {\xdef\gre@lyriccentering{2}}%
- }[% all other cases
- \gre@error{Unrecognized option "#1" for \protect\gresetlyriccentering\MessageBreak Possible options are: 'vowel', 'syllable' and 'firstletter'}%
- ]%
+ \IfStrEqCase{#1}{%
+ {vowel}%
+ {\xdef\gre@lyriccentering{1}}%
+ {syllable}%
+ {\xdef\gre@lyriccentering{0}}%
+ {firstletter}%
+ {\xdef\gre@lyriccentering{2}}%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" for \protect\gresetlyriccentering\MessageBreak Possible options are: 'vowel', 'syllable' and 'firstletter'}%
+ ]%
}%
\xdef\gre@lyriccentering{1}%
-\def\englishcentering{%OBSOLETE
- \gre@obsolete{\protect\englishcentering}{\protect\gresetlyriccentering{syllable}}%
-}%
-
-\def\defaultcentering{%OBSOLETE
- \gre@obsolete{\protect\defaultcentering}{\protect\gresetlyriccentering{vowel} }%
-}%
%% options about clivis centering scheme. Clivis are usually aligned by their
%% center, which is different from most neumes. Gregorio has three modes:
@@ -615,41 +636,30 @@
\def\gresetclivisalignment#1{%
- \IfStrEqCase{#1}{%
- {always}%
- {\global\gre@clivisalignment=0\relax}%
- {never}%
- {\global\gre@clivisalignment=1\relax}%
- {special}%
- {\global\gre@clivisalignment=2\relax}%
- }[% all other cases
- \gre@error{Unrecognized option "#1" for \protect\gresetclivisalignment\MessageBreak Possible options are 'always', 'never', and 'special'}%
- ]%
+ \IfStrEqCase{#1}{%
+ {always}%
+ {\global\gre@clivisalignment=0\relax}%
+ {never}%
+ {\global\gre@clivisalignment=1\relax}%
+ {special}%
+ {\global\gre@clivisalignment=2\relax}%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" for \protect\gresetclivisalignment\MessageBreak Possible options are 'always', 'never', and 'special'}%
+ ]%
}%
-\def\clivisalignmentalways{%OBSOLETE
- \gre@obsolete{\protect\clivisalignmentalways}{\protect\gresetclivisalignment{always}}%
-}%
-
-\def\clivisalignmentnever{%OBSOLETE
- \gre@obsolete{\protect\clivisalignmentnever}{\protect\gresetclivisalignment{never}}%
-}%
-
-\def\clivisalignmentspecial{%OBSOLETE
- \gre@obsolete{\protect\clivisalignmentspecial}{\protect\gresetclivisalignment{special}}%
-}%
\newif\ifgre@forceemptyfirstsyllablehyphen%
\gre@forceemptyfirstsyllablehyphentrue%
\def\gresetemptyfirstsyllablehyphen#1{%
- \IfStrEqCase{#1}{%
- {auto}%
- {\gre@forceemptyfirstsyllablehyphenfalse}%
- {force}%
- {\gre@forceemptyfirstsyllablehyphentrue}%
- }[% all other cases
- \gre@error{Unrecognized option "#1" for \protect\gresetlyriccentering\MessageBreak Possible options are 'auto' and 'force'}%
- ]%
+ \IfStrEqCase{#1}{%
+ {auto}%
+ {\gre@forceemptyfirstsyllablehyphenfalse}%
+ {force}%
+ {\gre@forceemptyfirstsyllablehyphentrue}%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" for \protect\gresetlyriccentering\MessageBreak Possible options are 'auto' and 'force'}%
+ ]%
}%
\newif\ifgre@showhyphenafterthissyllable%
@@ -661,6 +671,24 @@
\newif\ifgre@possibleluahyphenafterthissyllable
\gre@possibleluahyphenafterthissyllablefalse
+\newcount\gre@count@unbreakabletotalnotes %
+\newcount\gre@count@unbreakableinitialnotes %
+\newcount\gre@count@unbreakablefinalnotes %
+% #1 : minimum notes in the syllable before the syllable may be split across lines
+% #2 : minimum notes to keep together at the start of a syllable
+% #3 : minimum notes to keep together at the end of a syllable
+\def\gresetunbreakablesyllablenotes#1#2#3{%
+ \gre@count@unbreakabletotalnotes=\number#1\relax %
+ \gre@count@unbreakableinitialnotes=\number#2\relax %
+ \gre@count@unbreakablefinalnotes=\number#3\relax %
+}%
+\gresetunbreakablesyllablenotes{10}{4}{4}%
+
+\newcount\gre@count@syllablenotes %
+\def\GreSyllableNoteCount#1{%
+ \gre@count@syllablenotes=\number#1\relax %
+}%
+
%% general macro : it will typeset the syllable : arguments are :
% #1 : macro setting the letters of this syllable
% #2 : reserved (unused)
@@ -676,184 +704,202 @@
%% with a special option for #7 : if it is a bar, we don't put a space at the end
%% at the end we wall \greendofword or \gre@endofsyllable with #7, to reduce the space in case of a flat or natural
\def\GreSyllable#1#2#3#4#5#6#7#8#9{%
- \gre@debugmsg{general}{}%
- \gre@debugmsg{general}{New syllable: \expandafter\unexpanded{#1}}%
- \gre@debugmsg{general}{}%
- \global\gre@possibleluahyphenafterthissyllablefalse %
- \gre@showhyphenafterthissyllablefalse%
- \ifcase#4\ifgre@forcehyphen%
- \gre@debugmsg{hyphen}{Forcing hyphen}%
- \gre@showhyphenafterthissyllabletrue%
- \fi\fi%
- #1%
- \gre@firstglyphtrue%
- \gre@dimen@bolextra = 0pt\relax%
- \gre@calculate@textaligncenter{\gre@firstsyllablepart}{\gre@middlesyllablepart}{0}% we first get the width between the alignment point and the end of the syllable
- \gre@syllablenotes{#9}% we put the notes in a box, so that we have the width of it
- % now we calculate the begin difference, that is to say \gre@dimen@notesaligncenter - \gre@dimen@textaligncenter
- \gre@dimen@begindifference=\dimexpr(\gre@dimen@notesaligncenter - \gre@dimen@textaligncenter)\relax %
- % Now, let's go for something I took years to figure out: we want to align
- % scores on the notes (see https://github.com/gregorio-project/gregorio/issues/221)
- % but it means we have to shift lines starting by text by \gre@dimen@bolshift
- % sadly, we cannot do that in TeX, we can't just say that. But, the way TeX
- % handles this with usual spaces, is that it ignores all spaces at beginning
- % of lines. To use this, we just \kern\gre@dimen@bolshift right, this will be
- % ignored at beginning of line, then \hbox{} that will break the "ignorance"
- % of spaces, then \kern\gre@dimen@bolshift left, which will not be ignored.
- % So, at beginning of lines, we will have shifted left, and in middle of lines
- % we will have shifted right and left, thus cancelling... Very easy trick, but
- % took me years to find it!
- \gre@debugmsg{bolshift}{Current glyph: \the\gre@attr@glyph@id}%
- % we only want to execute these shifts if the clef is being shown
- % if no clef is being shown, then there is no space under the clef for the
- % lyrics to invade
- \ifgre@showclef%
- \ifgre@bolshiftsenabled%
- \gre@calculate@bolshift{\gre@dimen@begindifference}%
- % we don't want to shift right on the first syllable of the score
- % because the printing of the initial clef, initial, and/or the staff lines
- % will have already broken TeX's ignorance of spaces.
- \ifgre@beginningofscore%
- \gre@beginningofscorefalse%
- \else%
- % we don't want to shift right inside a discretionary
- \ifnum\gre@insidediscretionary=0\relax%
- \kern\gre@dimen@bolshift\relax%
- \fi%
- \fi%
- \GreNoBreak %
- \hbox to 0pt{}%
- \GreNoBreak %
- \kern-\gre@dimen@bolshift\relax%
- \fi%
- \else%
- % if there is no clef, we still need to break TeX's ignorance of spaces at
- % the beginning of a line so that the alterations, which would otherwise be
- % ignored in positioning the syllable, don't stick out into margin
- \GreNoBreak %
- \hbox to 0pt{}%
- \GreNoBreak %
- \fi %
- % by default, gre@attr@dash will be 2
- \gre@attr@dash=2\relax %
- #5%
- \gre@calculate@nextbegindifference{\gre@nextfirstsyllablepart}{\gre@nextmiddlesyllablepart}{\gre@nextendsyllablepart}{#7}%
- \gre@unsetfixednexttextformat %
- \setbox\gre@box@syllabletext=\hbox{\gre@fixedtextformat{\gre@pointandclick{\gre@firstsyllablepart\gre@middlesyllablepart\gre@endsyllablepart}{#6}}}%
- \gre@calculate@enddifference{\wd\gre@box@syllablenotes}{\wd\gre@box@syllabletext}{\gre@dimen@textaligncenter}{\gre@dimen@notesaligncenter}{1}%
- % gre@count@temp@one holds 0 if next is a not bar, 1 if it is
- \gre@count@temp@one=0%
- \ifnum#7>9\relax %
- \ifnum#7<20\relax %
- \gre@count@temp@one=1\relax %
- \else %
- \gre@count@temp@one=2\relax %
- \fi %
- \fi %
- \gre@calculate@syllablefinalskip{#4}{\gre@count@temp@one}%
- \ifcase#4 %
- % we enter here if the end of word is 0, so we must determine if we need to type a dash here
- \gre@skip@temp@one = \gre@skip@syllablefinalskip\relax%
- \gre@debugmsg{ifdim}{ enddifference > 0pt}%
- \ifdim\gre@dimen@enddifference >0pt\relax%
- \advance\gre@skip@temp@one by \gre@dimen@enddifference\relax%
- \fi %
- \gre@debugmsg{ifdim}{ nextbegindifference > 0pt}%
- \ifdim\gre@skip@nextbegindifference >0pt\relax%
- \advance\gre@skip@temp@one by \gre@skip@nextbegindifference\relax%
- \fi %
- %
- % then we compare it with \gre@space@dimen@maximumspacewithoutdash, if it is larger, we add a dash
- %
- \gre@debugmsg{ifdim}{ temp@skip@one > maximumspacewithoutdash}%
- \ifdim\gre@skip@temp@one > \gre@space@dimen@maximumspacewithoutdash\relax%
- \gre@debugmsg{hyphen}{spacing requires hyphen}%
- \gre@showhyphenafterthissyllabletrue%
- \fi %
- \fi% ficase#4
- \ifgre@showhyphenafterthissyllable\relax%
- \gre@debugmsg{hyphen}{Showing the hyphen}%
- % if it's the last syllable of line, the hyphen will be \GreHyph
- \ifnum\gre@lastoflinecount=1\relax %
- \setbox\gre@box@syllabletext=\hbox{\gre@fixedtextformat{\gre@pointandclick{\gre@firstsyllablepart\gre@middlesyllablepart\gre@endsyllablepart#3{\GreHyph}\relax}{#6}}}%
- \else %
- \setbox\gre@box@syllabletext=\hbox{\gre@fixedtextformat{\gre@pointandclick{\gre@firstsyllablepart\gre@middlesyllablepart\gre@endsyllablepart#3{-}}{#6}}}%
- \fi %
- % recomputing end difference and final skip with the final hyphen
- \gre@calculate@enddifference{\wd\gre@box@syllablenotes}{\wd\gre@box@syllabletext}{\gre@dimen@textaligncenter}{\gre@dimen@notesaligncenter}{0}%
- \gre@calculate@syllablefinalskip{#4}{\gre@count@temp@one}%
- \else %
- \ifcase#4 %
- \gre@debugmsg{hyphen}{No hyphen}%
- \gre@attr@dash=1\relax % in this particular case where it is not the end of a word and we haven't put a dash, we set potentital dash to 1
- % we rebuild this box, in order it to have the attribute
- \setbox\gre@box@syllabletext=\hbox{\gre@fixedtextformat{\gre@pointandclick{\gre@firstsyllablepart\gre@middlesyllablepart\gre@endsyllablepart}{#6}}}%
- \global\gre@possibleluahyphenafterthissyllabletrue %
- \fi %
- \fi%
- % then we reuse temp, we assign to it the \gre@dimen@begindifference, but only if it is positive, else it is 0
- \gre@debugmsg{ifdim}{ begindifference > 0pt}%
- \ifdim\gre@dimen@begindifference > 0 pt\relax%
- \gre@skip@temp@one = \gre@dimen@begindifference\relax%
- \kern\gre@skip@temp@one %
- \fi%
- #8\relax %
- \raise\gre@dimen@textlower\relax%
- \copy\gre@box@syllabletext %
- \ifgre@mustdotranslationcenterend%
- % case of end of translation centering, we do it after the typesetting of the text
- \gre@dotranslationcenterend %
- \gre@mustdotranslationcenterendfalse%
- \fi %
- \gre@skip@temp@one = -\wd\gre@box@syllabletext %
- \kern\gre@skip@temp@one%
- \gre@skip@temp@one = -\gre@dimen@begindifference\relax%
- \kern\gre@skip@temp@one %
- % here we need to unset \gre@attr@dash for the typesetting of notes
- \gre@attr@dash=0\relax %
- \GreNoBreak % no line breaks between text and notes
- #9% we do that instead of \unhbox\Syllablnotes, because it would not set the \localrightbox
- \GreNoBreak % no line breaks between notes and end of syllable skips
- \gre@debugmsg{ifdim}{ enddifference < 0pt}%
- \ifdim\gre@dimen@enddifference <0pt\relax%
- %% important, else we are not really at the end of the syllable
- \kern -\gre@dimen@enddifference\relax%
- \GreNoBreak %
- \fi%
- % we call end of syllable
- \gre@syllable@end{#7}{\gre@nextfirstsyllablepart\gre@nextmiddlesyllablepart\gre@nextendsyllablepart}{#4}%
- \global\gre@dimen@notesaligncenter=0pt\relax% very important, see flat and natural
- \gre@unsetfixedtextformat %
- \ifgre@blockeolcustos\ifnum\gre@insidediscretionary=0\relax %
- \gre@localrightbox{}%
- \fi\fi %
- \relax %
+ \gre@debugmsg{general}{}%
+ \gre@debugmsg{general}{New syllable: \expandafter\unexpanded{#1}}%
+ \gre@debugmsg{general}{}%
+ \global\gre@possibleluahyphenafterthissyllablefalse %
+ \gre@showhyphenafterthissyllablefalse%
+ \ifcase#4\ifgre@forcehyphen%
+ \gre@debugmsg{hyphen}{Forcing hyphen}%
+ \gre@showhyphenafterthissyllabletrue%
+ \fi\fi%
+ #1%
+ \gre@firstglyphtrue%
+ \gre@dimen@bolextra = 0pt\relax%
+ \gre@calculate@textaligncenter{\gre@firstsyllablepart}{\gre@middlesyllablepart}{0}% we first get the width between the alignment point and the end of the syllable
+ \gre@syllablenotes{#9}% we put the notes in a box, so that we have the width of it
+ % now we calculate the begin difference, that is to say \gre@dimen@notesaligncenter - \gre@dimen@textaligncenter
+ \gre@dimen@begindifference=\dimexpr(\gre@dimen@notesaligncenter - \gre@dimen@textaligncenter)\relax %
+ % Now, let's go for something I took years to figure out: we want to align
+ % scores on the notes (see https://github.com/gregorio-project/gregorio/issues/221)
+ % but it means we have to shift lines starting by text by \gre@dimen@bolshift
+ % sadly, we cannot do that in TeX, we can't just say that. But, the way TeX
+ % handles this with usual spaces, is that it ignores all spaces at beginning
+ % of lines. To use this, we just \kern\gre@dimen@bolshift right, this will be
+ % ignored at beginning of line, then \hbox{} that will break the "ignorance"
+ % of spaces, then \kern\gre@dimen@bolshift left, which will not be ignored.
+ % So, at beginning of lines, we will have shifted left, and in middle of lines
+ % we will have shifted right and left, thus cancelling... Very easy trick, but
+ % took me years to find it!
+ \gre@debugmsg{bolshift}{Current glyph: \the\gre@attr@glyph@id}%
+ % we only want to execute these shifts if the clef is being shown
+ % if no clef is being shown, then there is no space under the clef for the
+ % lyrics to invade
+ \ifgre@showclef%
+ \ifgre@bolshiftsenabled%
+ \gre@calculate@bolshift{\gre@dimen@begindifference}%
+ % we don't want to shift right on the first syllable of the score
+ % because the printing of the initial clef, initial, and/or the staff lines
+ % will have already broken TeX's ignorance of spaces.
+ \ifgre@beginningofscore%
+ \gre@beginningofscorefalse%
+ \else%
+ % we don't want to shift right inside a discretionary
+ \ifnum\gre@insidediscretionary=0\relax%
+ \kern\gre@dimen@bolshift\relax%
+ \fi%
+ \fi%
+ \GreNoBreak %
+ \hbox to 0pt{}%
+ \GreNoBreak %
+ \kern-\gre@dimen@bolshift\relax%
+ \fi%
+ \else%
+ % if there is no clef, we still need to break TeX's ignorance of spaces at
+ % the beginning of a line so that the alterations, which would otherwise be
+ % ignored in positioning the syllable, don't stick out into margin
+ \GreNoBreak %
+ \hbox to 0pt{}%
+ \GreNoBreak %
+ \fi %
+ % by default, gre@attr@dash will be 2
+ \gre@attr@dash=2\relax %
+ #5%
+ \gre@calculate@nextbegindifference{\gre@nextfirstsyllablepart}{\gre@nextmiddlesyllablepart}{\gre@nextendsyllablepart}{#7}%
+ \gre@unsetfixednexttextformat %
+ \ifgre@showlyrics%
+ \setbox\gre@box@syllabletext=\hbox{\gre@fixedtextformat{\gre@pointandclick{\gre@firstsyllablepart\gre@middlesyllablepart\gre@endsyllablepart}{#6}}}%
+ \else%
+ \setbox\gre@box@syllabletext=\box\voidb@x%
+ \fi%
+ \gre@calculate@enddifference{\wd\gre@box@syllablenotes}{\wd\gre@box@syllabletext}{\gre@dimen@textaligncenter}{\gre@dimen@notesaligncenter}{1}%
+ % gre@count@temp@one holds 0 if next is a not bar, 1 if it is
+ \gre@count@temp@one=0%
+ \ifnum#7>9\relax %
+ \ifnum#7<20\relax %
+ \gre@count@temp@one=1\relax %
+ \else %
+ \gre@count@temp@one=2\relax %
+ \fi %
+ \fi %
+ \gre@calculate@syllablefinalskip{#4}{\gre@count@temp@one}%
+ \ifcase#4 %
+ % we enter here if the end of word is 0, so we must determine if we need to type a dash here
+ \gre@skip@temp@one = \gre@skip@syllablefinalskip\relax%
+ \gre@debugmsg{ifdim}{ enddifference > 0pt}%
+ \ifdim\gre@dimen@enddifference >0pt\relax%
+ \advance\gre@skip@temp@one by \gre@dimen@enddifference\relax%
+ \fi %
+ \gre@debugmsg{ifdim}{ nextbegindifference > 0pt}%
+ \ifdim\gre@skip@nextbegindifference >0pt\relax%
+ \advance\gre@skip@temp@one by \gre@skip@nextbegindifference\relax%
+ \fi %
+ %
+ % then we compare it with \gre@space@dimen@maximumspacewithoutdash, if it is larger, we add a dash
+ %
+ \gre@debugmsg{ifdim}{ temp@skip@one > maximumspacewithoutdash}%
+ \ifdim\gre@skip@temp@one > \gre@space@dimen@maximumspacewithoutdash\relax%
+ \gre@debugmsg{hyphen}{spacing requires hyphen}%
+ \gre@showhyphenafterthissyllabletrue%
+ \fi %
+ \fi% ficase#4
+ \ifgre@showhyphenafterthissyllable\relax%
+ \gre@debugmsg{hyphen}{Showing the hyphen}%
+ % if it's the last syllable of line, the hyphen will be \GreHyph
+ \ifnum\gre@lastoflinecount=1\relax %
+ \ifgre@showlyrics%
+ \setbox\gre@box@syllabletext=\hbox{\gre@fixedtextformat{\gre@pointandclick{\gre@firstsyllablepart\gre@middlesyllablepart\gre@endsyllablepart#3{\GreHyph}\relax}{#6}}}%
+ \else%
+ \setbox\gre@box@syllabletext=\box\voidb@x%
+ \fi%
+ \else %
+ \ifgre@showlyrics%
+ \setbox\gre@box@syllabletext=\hbox{\gre@fixedtextformat{\gre@pointandclick{\gre@firstsyllablepart\gre@middlesyllablepart\gre@endsyllablepart#3{-}}{#6}}}%
+ \else%
+ \setbox\gre@box@syllabletext=\box\voidb@x%
+ \fi%
+ \fi %
+ % recomputing end difference and final skip with the final hyphen
+ \gre@calculate@enddifference{\wd\gre@box@syllablenotes}{\wd\gre@box@syllabletext}{\gre@dimen@textaligncenter}{\gre@dimen@notesaligncenter}{0}%
+ \gre@calculate@syllablefinalskip{#4}{\gre@count@temp@one}%
+ \else %
+ \ifcase#4 %
+ \gre@debugmsg{hyphen}{No hyphen}%
+ \gre@attr@dash=1\relax % in this particular case where it is not the end of a word and we haven't put a dash, we set potentital dash to 1
+ % we rebuild this box, in order it to have the attribute
+ \ifgre@showlyrics%
+ \setbox\gre@box@syllabletext=\hbox{\gre@fixedtextformat{\gre@pointandclick{\gre@firstsyllablepart\gre@middlesyllablepart\gre@endsyllablepart}{#6}}}%
+ \else%
+ \setbox\gre@box@syllabletext=\box\voidb@x%
+ \fi%
+ \global\gre@possibleluahyphenafterthissyllabletrue %
+ \fi %
+ \fi%
+ % then we reuse temp, we assign to it the \gre@dimen@begindifference, but only if it is positive, else it is 0
+ \gre@debugmsg{ifdim}{ begindifference > 0pt}%
+ \ifdim\gre@dimen@begindifference > 0 pt\relax%
+ \gre@skip@temp@one = \gre@dimen@begindifference\relax%
+ \kern\gre@skip@temp@one %
+ \fi%
+ #8\relax %
+ \raise\gre@dimen@textlower\relax%
+ \copy\gre@box@syllabletext %
+ \ifgre@mustdotranslationcenterend%
+ % case of end of translation centering, we do it after the typesetting of the text
+ \gre@dotranslationcenterend %
+ \gre@mustdotranslationcenterendfalse%
+ \fi %
+ \gre@skip@temp@one = -\wd\gre@box@syllabletext %
+ \kern\gre@skip@temp@one%
+ \gre@skip@temp@one = -\gre@dimen@begindifference\relax%
+ \kern\gre@skip@temp@one %
+ % here we need to unset \gre@attr@dash for the typesetting of notes
+ \gre@attr@dash=0\relax %
+ \GreNoBreak % no line breaks between text and notes
+ \ifgre@shownotes%
+ #9% we do that instead of \unhbox\Syllablnotes, because it would not set the \localrightbox
+ \fi%
+ \GreNoBreak % no line breaks between notes and end of syllable skips
+ \gre@debugmsg{ifdim}{ enddifference < 0pt}%
+ \ifdim\gre@dimen@enddifference <0pt\relax%
+ %% important, else we are not really at the end of the syllable
+ \kern -\gre@dimen@enddifference\relax%
+ \GreNoBreak %
+ \fi%
+ % we call end of syllable
+ \gre@syllable@end{#7}{\gre@nextfirstsyllablepart\gre@nextmiddlesyllablepart\gre@nextendsyllablepart}{#4}%
+ \global\gre@dimen@notesaligncenter=0pt\relax% very important, see flat and natural
+ \gre@unsetfixedtextformat %
+ \ifgre@blockeolcustos\ifnum\gre@insidediscretionary=0\relax %
+ \gre@localrightbox{}%
+ \fi\fi %
+ \relax %
}%
% #1 is the id of the euouae block (assigned by the C code)
% #2 is whether there is a line break between here and the actuall beginning of
% the euouae block. 1 if there is a linebreak, 0 in the general case.
\def\GreNextSyllableBeginsEUOUAE#1#2{%
- \GreNoBreak %
- \ifgre@blockeolcustosbeforeeuouae %
- \gre@usemanualeolcustos %
- \fi %
- \ifgre@raggedbreakbeforeeuouae %
- \directlua{gregoriotex.save_pos(#1,1)}%
- \ifcase#2\ifcase\directlua{gregoriotex.is_ypos_different(#1)}\relax%
- \gre@newlinecommon{1}{1}%
- \fi\fi %
- \fi %
- \relax %
+ \GreNoBreak %
+ \ifgre@blockeolcustosbeforeeuouae %
+ \gre@usemanualeolcustos %
+ \fi %
+ \ifgre@raggedbreakbeforeeuouae %
+ \directlua{gregoriotex.save_euouae(#1,1)}%
+ \ifcase#2\ifcase\directlua{gregoriotex.is_ypos_different(#1)}\relax%
+ \gre@newlinecommon{1}{1}%
+ \fi\fi %
+ \fi %
+ \relax %
}%
% #1 is the id of the euouae block (assigned by the C code)
% #2 is whether there is a line break between here and the actuall beginning of
% the euouae block. 1 if there is a linebreak, 0 in the general case.
\def\GreLastSyllableBeforeEUOUAE#1#2{%
- \ifcase#2\ifcase\directlua{gregoriotex.is_ypos_different(#1)}\relax%
- \GreLastOfLine%
- \fi\fi %
+ \ifcase#2\ifcase\directlua{gregoriotex.is_ypos_different(#1)}\relax%
+ \GreLastOfLine%
+ \fi\fi %
}%
%% @desc Macro to make a few checks and call the right macros between
@@ -862,34 +908,34 @@
%% @arg#2 next syllable text
%% @arg#3 end of word or not (#4 of \GreSyllable)
\def\gre@syllable@end#1#2#3{%
- \gre@debugmsg{syllablespacing}{ syllable@end with #1}%
- % gre@count@temp@one holds 0 if next is a not bar, 1 if it is
- \gre@count@temp@one=0%
- \ifnum#1>9\relax %
- \ifnum#1<20\relax %
- \gre@count@temp@one=1%
- \fi %
- \fi %
- \gre@debugmsg{syllablespacing}{ gre@count@temp@one = \the\gre@count@temp@one}%
- \ifnum\gre@count@temp@one=1\relax %
- \ifnum\gre@lastoflinecount=1\relax %
- \gre@endofsyllable{0}{1}{1}%
- \else %
- % otherwise we call it with 1 only if there is no letters after (we can see it with nextbegindifference)
- \setbox\gre@box@temp@width=\hbox{#2}%
- \ifdim\wd\gre@box@temp@width=0pt\relax%
- \gre@endofsyllable{0}{1}{1}%
- \else %
- \gre@endofsyllable{1}{1}{1}%
- \fi %
- \fi %
- \else %
- \ifnum\gre@lastoflinecount=1\relax %
- \global\gre@lastoflinecount=2\relax %
- \fi %
- \gre@debugmsg{syllablespacing}{ calling endofsyllable with #3}%
- \gre@endofsyllable{1}{#3}{0}%
- \fi %
+ \gre@debugmsg{syllablespacing}{ syllable@end with #1}%
+ % gre@count@temp@one holds 0 if next is a not bar, 1 if it is
+ \gre@count@temp@one=0%
+ \ifnum#1>9\relax %
+ \ifnum#1<20\relax %
+ \gre@count@temp@one=1%
+ \fi %
+ \fi %
+ \gre@debugmsg{syllablespacing}{ gre@count@temp@one = \the\gre@count@temp@one}%
+ \ifnum\gre@count@temp@one=1\relax %
+ \ifnum\gre@lastoflinecount=1\relax %
+ \gre@endofsyllable{0}{1}{1}%
+ \else %
+ % otherwise we call it with 1 only if there is no letters after (we can see it with nextbegindifference)
+ \setbox\gre@box@temp@width=\hbox{#2}%
+ \ifdim\wd\gre@box@temp@width=0pt\relax%
+ \gre@endofsyllable{0}{1}{1}%
+ \else %
+ \gre@endofsyllable{1}{1}{1}%
+ \fi %
+ \fi %
+ \else %
+ \ifnum\gre@lastoflinecount=1\relax %
+ \global\gre@lastoflinecount=2\relax %
+ \fi %
+ \gre@debugmsg{syllablespacing}{ calling endofsyllable with #3}%
+ \gre@endofsyllable{1}{#3}{0}%
+ \fi %
}
%% @desc Macro called at end of a syllable, adds a penalty and a space
@@ -898,65 +944,65 @@
%% @arg#3 1 if next syllable is a bar, 0 otherwise
%%
\def\gre@endofsyllable#1#2#3{%
- \gre@debugmsg{syllablespacing}{ endofsyllable with #2}%
- \ifgre@eolshiftsenabled%
- %this shift will shorten the line somewhat to allow the lyrics to extend under the custos should TeX decide to insert a line break after the syllable being ended
- \GreNoBreak%
- \gre@calculate@eolshift{\gre@dimen@enddifference}%
- \gre@debugmsg{eolshift}{End of line shift: \the\gre@dimen@eolshift}%
- \kern -\gre@dimen@eolshift\relax%
- \fi%
- \ifnum#3=1\relax %
- \GreNoBreak %
- \gre@debugmsg{syllablespacing}{ set penalty \grenobreakpenalty}%
- \else %
- \ifnum#2=1\relax %
- \gre@penalty{\greendofwordpenalty}%
- \gre@debugmsg{syllablespacing}{ set penalty \greendofwordpenalty}%
- \else %
- \gre@penalty{\greendofsyllablepenalty}%
- \gre@debugmsg{syllablespacing}{ set penalty \greendofsyllablepenalty}%
- \fi %
- \fi %
- \ifgre@eolshiftsenabled%
- %If the above penalties don't result in a line break, then we need to undo the eolshift to prevent the next syllable from overlapping with this one. If the line break did occur, then this shift will occur at the beginning of a line and thus will be ignored automatically by TeX.
- \kern \gre@dimen@eolshift\relax%
- \GreNoBreak%
- \fi%
- \ifnum#1=1\relax %
- \ifgre@newbarspacing%
- %the new bar spacing algorithms take care of this for us when the next syllable is a bar
- \relax%
- \else%
- \gre@hskip\gre@skip@syllablefinalskip\relax%
- \fi%
- \ifnum#3=1\relax %
- \GreNoBreak %
- \else%
- \ifgre@newbarspacing%
- %the new bar spacing algorithm still needs the syllablefinalskip when the next syllable is not a bar
- \gre@hskip\gre@skip@syllablefinalskip\relax%
- \fi%
- \fi %
- \fi %
- \relax%
+ \gre@debugmsg{syllablespacing}{ endofsyllable with #2}%
+ \ifgre@eolshiftsenabled%
+ %this shift will shorten the line somewhat to allow the lyrics to extend under the custos should TeX decide to insert a line break after the syllable being ended
+ \GreNoBreak%
+ \gre@calculate@eolshift{\gre@dimen@enddifference}%
+ \gre@debugmsg{eolshift}{End of line shift: \the\gre@dimen@eolshift}%
+ \kern -\gre@dimen@eolshift\relax%
+ \fi%
+ \ifnum#3=1\relax %
+ \GreNoBreak %
+ \gre@debugmsg{syllablespacing}{ set penalty \the\gre@space@count@nobreakpenalty}%
+ \else %
+ \ifnum#2=1\relax %
+ \gre@penalty{\the\gre@space@count@endofwordpenalty}%
+ \gre@debugmsg{syllablespacing}{ set penalty \the\gre@space@count@endofwordpenalty}%
+ \else %
+ \gre@penalty{\the\gre@space@count@endofsyllablepenalty}%
+ \gre@debugmsg{syllablespacing}{ set penalty \the\gre@space@count@endofsyllablepenalty}%
+ \fi %
+ \fi %
+ \ifgre@eolshiftsenabled%
+ %If the above penalties don't result in a line break, then we need to undo the eolshift to prevent the next syllable from overlapping with this one. If the line break did occur, then this shift will occur at the beginning of a line and thus will be ignored automatically by TeX.
+ \kern \gre@dimen@eolshift\relax%
+ \GreNoBreak%
+ \fi%
+ \ifnum#1=1\relax %
+ \ifgre@newbarspacing%
+ %the new bar spacing algorithms take care of this for us when the next syllable is a bar
+ \relax%
+ \else%
+ \gre@hskip\gre@skip@syllablefinalskip\relax%
+ \fi%
+ \ifnum#3=1\relax %
+ \GreNoBreak %
+ \else%
+ \ifgre@newbarspacing%
+ %the new bar spacing algorithm still needs the syllablefinalskip when the next syllable is not a bar
+ \gre@hskip\gre@skip@syllablefinalskip\relax%
+ \fi%
+ \fi %
+ \fi %
+ \relax%
}%
\def\gresetbarspacing#1{%
- \IfStrEqCase{#1}{%
- {new}%
- {%
- \gre@newbarspacingtrue%
- \let\GreNoNoteSyllable\GreBarSyllable%
- }%
- {old}%
- {%
- \gre@newbarspacingfalse%
- \let\GreNoNoteSyllable\GreSyllable%
- }%
- }[% all other cases
- \gre@error{Unrecognized option "#1" for \protect\gresetbarspacing\MessageBreak Possible options are: 'new' and 'old'}%
- ]%
+ \IfStrEqCase{#1}{%
+ {new}%
+ {%
+ \gre@newbarspacingtrue%
+ \let\GreNoNoteSyllable\GreBarSyllable%
+ }%
+ {old}%
+ {%
+ \gre@newbarspacingfalse%
+ \let\GreNoNoteSyllable\GreSyllable%
+ }%
+ }[% all other cases
+ \gre@error{Unrecognized option "#1" for \protect\gresetbarspacing\MessageBreak Possible options are: 'new' and 'old'}%
+ ]%
}%
% macro to save new lines in bar syllables. With the new bar spacing algorithm, we
@@ -964,259 +1010,274 @@
% end of line for later.
\xdef\gre@newlinearg{-1}
\gdef\gre@newlinecommondelayed#1#2{%
- \xdef\gre@newlinearg{#1}%
+ \xdef\gre@newlinearg{#1}%
}
%a macro to typeset a syllable with only a bar inside
\def\GreBarSyllable#1#2#3#4#5#6#7#8#9{%
- \gre@debugmsg{general}{New bar syllable}%
- \gre@possibleluahyphenafterthissyllablefalse %
- \gre@showhyphenafterthissyllablefalse %
- % the algorithm of this function is *extremely* complex, and has been much painful to write... good luck to understand.
- % the main goal is, when there is no text under the bar, to put the bar in the middle of the space between the last note of the previous syllable and the first note of the next syllable. But there are limits : a bar can't go very far above text. For example if there is "nuncncncncn" with a punctum on the u, the bar can't go above the fourth n, the most far position is the position where the end of the bar is above the end of the word. The same limitation applies for the syllable after the bar.
- % there are two different cases that have almost nothing in common : the case where there is something written under the bar, and the case where there is nothing.
- % first of all we need to calculate previousenddifference, begindifference, enddifference and nextbegindifference.
- #1%
- \gre@calculate@textaligncenter{\gre@firstsyllablepart}{\gre@middlesyllablepart}{0}%
- \setbox\gre@box@syllabletext=\hbox{\gre@fixedtextformat{\gre@pointandclick{\gre@firstsyllablepart\gre@middlesyllablepart\gre@endsyllablepart}{#6}}}%
- \gre@debugmsg{barspacing}{Width of bar text: \the\wd\gre@box@syllabletext}%
- \global\let\gre@newlinecommonsaved\gre@newlinecommon %
- \global\let\gre@newlinecommon\gre@newlinecommondelayed %
- \xdef\gre@newlinearg{-1}%
- \gre@syllablenotes{#9}%
- \gre@debugmsg{barspacing}{Width of bar line: \the\wd\gre@box@syllablenotes}%
- \gre@dimen@notesaligncenter=\dimexpr(\wd\gre@box@syllablenotes / 2)\relax %
- \gre@dimen@begindifference=\dimexpr(\gre@dimen@notesaligncenter - \gre@dimen@textaligncenter)\relax%
- \gre@calculate@enddifference{\wd\gre@box@syllablenotes}{\wd\gre@box@syllabletext}{\gre@dimen@textaligncenter}{\gre@dimen@notesaligncenter}{1}%
- #5%
- \gre@calculate@nextbegindifference{\gre@nextfirstsyllablepart}{\gre@nextmiddlesyllablepart}{\gre@nextendsyllablepart}{#7}%
- \gre@unsetfixednexttextformat %
- \gre@debugmsg{barspacing}{previousenddifference: \the\gre@dimen@previousenddifference}%
- \gre@debugmsg{barspacing}{begindifference: \the\gre@dimen@begindifference}%
- \gre@debugmsg{barspacing}{enddifference: \the\gre@dimen@enddifference}%
- \gre@debugmsg{barspacing}{nextbegindifference: \the\gre@skip@nextbegindifference}%
- \ifgre@newbarspacing%
- %
- % New bar spacing algorithm
- %
- \gre@calculate@barposition{#4}{#7}%
- %now we can place the text and bar
- %we're going to use the bar line to control positioning, so we need to start by getting to the end of the notes of the previous syllable
- \ifdim\gre@dimen@adjustedpreviousenddifference < 0pt\relax%
- %we need to move back to where the previous notes ended
- \kern\gre@dimen@adjustedpreviousenddifference\relax%
- \GreNoBreak %
- \fi%
- %move to the beginning of the text
- \gre@hskip\glueexpr(\gre@skip@bar@allocation/2% right from end of previous notes to nominal middle of bar line
- +\gre@dimen@bar@shift% from nominal middle of bar line to actual middle
- -\wd\gre@box@syllablenotes/2% back up to beginning of bar line
- +\gre@dimen@begindifference% from beginning of bar line to beginning of text
- +\gre@space@skip@bar@rubber)\relax % the rubber component
- \GreNoBreak %
- % all that extra stuff (translations and the like)
- #8%
- \GreNoBreak %
- %print the text, the raise is in case of a translation
- \raise\gre@dimen@textlower \copy\gre@box@syllabletext%
- %and the code which handles translation centering
- \ifgre@mustdotranslationcenterend%
- % case of end of translation centering, we do it after the typesetting of the text
- \gre@dotranslationcenterend %
- \gre@mustdotranslationcenterendfalse%
- \fi %
- %move back to the beginning of the bar line
- \kern\dimexpr(\gre@dimen@enddifference% move from end of text to end of bar line
- -\wd\gre@box@syllablenotes)\relax % back up from end of bar line to beginning
- \GreNoBreak%
- #9%
- \global\let\gre@newlinecommon\gre@newlinecommonsaved %
- \GreNoBreak%
- % get into position to place the penalty
- \ifdim\gre@dimen@enddifference < 0pt\relax%
- % the text extends past the notes, so we need to get to the end of the text
- \kern-\gre@dimen@enddifference%
- \GreNoBreak%
- \fi%
- \ifgre@eolshiftsenabled%
- %this shift will shorten the line somewhat to allow the lyrics to extend under the custos should TeX decide to insert a line break after the syllable being ended
- \gre@calculate@eolshift{\dimexpr(\gre@dimen@enddifference-\gre@skip@bar@lastskip)\relax }%
- \gre@debugmsg{barspacing}{End of line shift: \the\gre@dimen@eolshift}%
- \ifdim\gre@dimen@eolshift<\gre@skip@bar@lastskip %
- \gre@dimen@eolshift=\gre@skip@bar@lastskip\relax %
- \fi %
- \kern\glueexpr(-\gre@dimen@eolshift)\relax%
- \fi%
- % gre@count@temp@one is "forced end of line or last of score"
- \gre@count@temp@one=0\relax %
- \ifnum\gre@newlinearg=-1\else %
- \gre@count@temp@one=1\relax %
- \fi %
- \ifgre@endofscore %
- \gre@count@temp@one=1\relax %
- \fi %
- % if no end of line or end of score
- \ifnum\gre@count@temp@one=0\relax %
- % add the penalty
- \gre@debugmsg{barspacing}{after bar penalty: \greendafterbarpenalty}%
- \gre@penalty{\greendafterbarpenalty}%
- \ifgre@eolshiftsenabled%
- %If the above penalties don't result in a line break, then we need to undo the eolshift to prevent the next syllable from overlapping with this one. If the line break did occur, then this shift will occur at the beginning of a line and thus will be ignored automatically by TeX.
- \kern \dimexpr(\gre@dimen@eolshift)\relax%
- \GreNoBreak%
- \fi%
- \ifdim\gre@dimen@enddifference < 0pt\relax%
- %undo the earlier shift
- \kern\gre@dimen@enddifference%
- \GreNoBreak%
- \fi%
- %move to the beginning of the notes of the next syllable
- \gre@hskip\glueexpr(-\wd\gre@box@syllablenotes/2% back up to middle of notes
- -\gre@dimen@bar@shift% go back from actual middle to nominal middle of bar line
- +\gre@skip@bar@allocation/2% go from nominal middle to the start of the next notes
- +\gre@space@skip@bar@rubber)\relax % the rubber component
- \ifdim\gre@skip@nextbegindifference < 0pt\relax%
- %we need to move back to where the text for the next syllable should start
- \GreNoBreak %
- \kern\gre@skip@nextbegindifference\relax%
- \fi%
- \else %
- \ifgre@endofscore %
- \gre@localleftbox{}%
- \gre@debugmsg{barspacing}{after bar penalty: \greendafterbarpenalty}%
- \gre@penalty{\grefinalpenalty}%
- \else %
- \gre@debugmsg{barspacing}{calling new line with argument: \gre@newlinearg}%
- \gre@newlinecommon{\gre@newlinearg}{1}%
- \fi %
- \fi%
- \else%
- %
- % Old spacing algorithm
- %
- %This is the old algorithm. I've kept it in case people still want to use it.
- % then we check if there is something to write
- \global\let\gre@newlinecommon\gre@newlinecommonsaved %
- \gre@debugmsg{ifdim}{ wd(gre@box@syllabletext) = 0pt}%
- \ifdim\wd\gre@box@syllabletext = 0 pt\relax %
- % the most difficult case : when there is nothing to write
- % first we need to determine the real space that there will be between the notes. Here again it is not so simple... let's consider these two kinds of spaces :
- %% 1/ the minimal space between a note and the bar + the width of the bar + the minimal space between the bar and the note (that's the global idea, in fact there are nuances) : we assign skip@temp@three to it
- %% 2/ enddifference + begindifference + space between notes and word : we assign skip@temp@two to it
- \gre@skip@temp@three=\glueexpr(\gre@space@skip@notebarspace %
- + \gre@space@skip@notebarspace %
- + \wd\gre@box@syllablenotes)\relax %
- % now let's get skip@temp@two
- \gre@debugmsg{ifdim}{ nextbegindifference < 0pt}%
- \ifdim\gre@skip@nextbegindifference < 0 pt\relax%
- \gre@skip@temp@two=-\gre@skip@nextbegindifference\relax%
- \else %
- \gre@skip@temp@two=0 pt\relax%
- \fi %
- \gre@debugmsg{ifdim}{ previousenddifference < 0pt}%
- \ifdim\gre@dimen@previousenddifference < 0 pt\relax%
- \advance\gre@skip@temp@two by %
- \glueexpr(-\gre@dimen@previousenddifference %
- + \gre@space@skip@interwordspacetext)\relax%
- \else %
- \advance\gre@skip@temp@two by \gre@space@skip@interwordspacenotes\relax%
- \fi%
- % we take the max of it, then we divide it by two and we substract half of the width of the bar
- \gre@debugmsg{ifdim}{ temp@skip@three < temp@skip@two}%
- \ifdim\gre@skip@temp@three <\gre@skip@temp@two %
- \gre@skip@temp@three=\gre@skip@temp@two %
- \fi %
- \divide\gre@skip@temp@three by 2\relax %
- \advance\gre@skip@temp@three by \dimexpr(\wd\gre@box@syllablenotes / -2)\relax %
- % now we have our skipone
- \gre@skip@temp@two=\gre@skip@temp@three %
- \gre@debugmsg{ifdim}{ previousenddifference < 0pt}%
- \ifdim\gre@dimen@previousenddifference < 0 pt\relax%
- \advance\gre@skip@temp@two by \gre@dimen@previousenddifference\relax%
- \fi %
- \GreNoBreak %
- \gre@debugmsg{ifdim}{ temp@skip@two > -wd(gre@box@syllablenotes)}%
- \ifdim\gre@skip@temp@two > -\wd\gre@box@syllablenotes %
- \kern\gre@skip@temp@two %
- \else %
- \gre@skip@temp@one = -\wd\gre@box@syllablenotes %
- \kern\gre@skip@temp@one%
- \fi %
- \GreNoBreak %
- #8\relax %
- \ifgre@mustdotranslationcenterend%
- % case of end of translation centering, we do it after the typesetting of the text
- \gre@dotranslationcenterend %
- \gre@mustdotranslationcenterendfalse%
- \fi %
- #9\relax %
- \gre@penalty{\greendafterbaraltpenalty }% TODO: isn't it a bit buggy?
- % end of same code as syllable
- \ifnum\gre@lastoflinecount=1\relax %
- \global\gre@lastoflinecount=2\relax %
- \else %
- \gre@debugmsg{ifdim}{ temp@skip@two < -wd(gre@box@syllablenotes)}%
- \ifdim\gre@skip@temp@two < -\wd\gre@box@syllablenotes %
- \gre@debugmsg{ifdim}{ nextbegindifference > 0pt}%
- \ifdim\gre@skip@nextbegindifference > 0 pt\relax%
- \gre@skip@temp@one = \gre@space@skip@interwordspacetext\relax%
- \gre@hskip\gre@skip@temp@one %
- \else % \ifdim\gre@skip@nextbegindifference > 0 pt
- \gre@skip@temp@one = \gre@space@skip@interwordspacetext\relax%
- \gre@hskip\gre@skip@temp@one %
- \fi %
- \else %
- \gre@skip@temp@two=\gre@skip@temp@three %
- \gre@debugmsg{ifdim}{ nextbegindifference < 0pt}%
- \ifdim\gre@skip@nextbegindifference < 0 pt\relax%
- \advance\gre@skip@temp@two by \gre@skip@nextbegindifference\relax%
- \fi %
- \gre@debugmsg{ifdim}{ temp@skip@two > -wd(gre@box@syllablenotes)}%
- \ifdim\gre@skip@temp@two > -\wd\gre@box@syllablenotes %
- \kern\gre@skip@temp@two %
- \else % \ifdim\gre@dimen@temp@five > -\wd\gre@box@syllablenotes
- \gre@skip@temp@one = -\wd\gre@box@syllablenotes %
- \gre@hskip\gre@skip@temp@one %
- \fi %
- \fi %
- \fi %
- % then the most simple : the case where there is something to write under the bar. We just need to adjust the spaces.
- \else %ifdim\wd\gre@box@syllabletext = 0 pt
- #8\relax %
- \raise\gre@dimen@textlower \copy\gre@box@syllabletext %
- \ifgre@mustdotranslationcenterend%
- % case of end of translation centering, we do it after the typesetting of the text
- \gre@dotranslationcenterend %
- \gre@mustdotranslationcenterendfalse%
- \fi %
- \gre@skip@temp@one = -\wd\gre@box@syllabletext %
- \kern\gre@skip@temp@one %
- \gre@skip@temp@one = -\gre@dimen@begindifference\relax%
- \kern\gre@skip@temp@one %
- #9%
- \gre@debugmsg{ifdim}{ enddifference < 0pt}%
- \ifdim\gre@dimen@enddifference <0pt\relax%
- %% important, else we are not really at the end of the syllable
- \gre@skip@temp@one = -\gre@dimen@enddifference\relax%
- \kern\gre@skip@temp@one %
- \fi%
- % end of same code as syllable
- \ifnum\gre@lastoflinecount=1\relax %
- \global\gre@lastoflinecount=2\relax %
- \gre@endafterbar{0}%
- \else %
- \global\gre@lastoflinecount=0\relax %
- \gre@endafterbar{1}%
- \fi %
- %and that's it !!
- \fi %
- \fi%
- \global\gre@dimen@notesaligncenter= 0 pt\relax % very important, see flat and natural
- \gre@unsetfixedtextformat %
- \ifgre@blockeolcustos\ifnum\gre@insidediscretionary=0\relax %
- \gre@localrightbox{}%
- \fi\fi %
- \relax%
+ \gre@debugmsg{general}{New bar syllable}%
+ \gre@possibleluahyphenafterthissyllablefalse %
+ \gre@showhyphenafterthissyllablefalse %
+ % the algorithm of this function is *extremely* complex, and has been much painful to write... good luck to understand.
+ % the main goal is, when there is no text under the bar, to put the bar in the middle of the space between the last note of the previous syllable and the first note of the next syllable. But there are limits : a bar can't go very far above text. For example if there is "nuncncncncn" with a punctum on the u, the bar can't go above the fourth n, the most far position is the position where the end of the bar is above the end of the word. The same limitation applies for the syllable after the bar.
+ % there are two different cases that have almost nothing in common : the case where there is something written under the bar, and the case where there is nothing.
+ % first of all we need to calculate previousenddifference, begindifference, enddifference and nextbegindifference.
+ #1%
+ \gre@calculate@textaligncenter{\gre@firstsyllablepart}{\gre@middlesyllablepart}{0}%
+ \ifgre@showlyrics%
+ \setbox\gre@box@syllabletext=\hbox{\gre@fixedtextformat{\gre@pointandclick{\gre@firstsyllablepart\gre@middlesyllablepart\gre@endsyllablepart}{#6}}}%
+ \else%
+ \setbox\gre@box@syllabletext=\box\voidb@x%
+ \fi%
+ \gre@debugmsg{barspacing}{Width of bar text: \the\wd\gre@box@syllabletext}%
+ \global\let\gre@newlinecommonsaved\gre@newlinecommon %
+ \global\let\gre@newlinecommon\gre@newlinecommondelayed %
+ \xdef\gre@newlinearg{-1}%
+ \gre@syllablenotes{#9}%
+ \gre@debugmsg{barspacing}{Width of bar line: \the\wd\gre@box@syllablenotes}%
+ \gre@dimen@notesaligncenter=\dimexpr(\wd\gre@box@syllablenotes / 2)\relax %
+ \gre@dimen@begindifference=\dimexpr(\gre@dimen@notesaligncenter - \gre@dimen@textaligncenter)\relax%
+ \gre@calculate@enddifference{\wd\gre@box@syllablenotes}{\wd\gre@box@syllabletext}{\gre@dimen@textaligncenter}{\gre@dimen@notesaligncenter}{1}%
+ #5%
+ \gre@calculate@nextbegindifference{\gre@nextfirstsyllablepart}{\gre@nextmiddlesyllablepart}{\gre@nextendsyllablepart}{#7}%
+ \gre@unsetfixednexttextformat %
+ \gre@debugmsg{barspacing}{previousenddifference: \the\gre@dimen@previousenddifference}%
+ \gre@debugmsg{barspacing}{begindifference: \the\gre@dimen@begindifference}%
+ \gre@debugmsg{barspacing}{enddifference: \the\gre@dimen@enddifference}%
+ \gre@debugmsg{barspacing}{nextbegindifference: \the\gre@skip@nextbegindifference}%
+ \ifgre@newbarspacing%
+ %
+ % New bar spacing algorithm
+ %
+ \gre@calculate@barposition{#4}{#7}%
+ %now we can place the text and bar
+ %we're going to use the bar line to control positioning, so we need to start by getting to the end of the notes of the previous syllable
+ \ifdim\gre@dimen@adjustedpreviousenddifference < 0pt\relax%
+ %we need to move back to where the previous notes ended
+ \kern\gre@dimen@adjustedpreviousenddifference\relax%
+ \GreNoBreak %
+ \fi%
+ %move to the beginning of the text
+ \gre@hskip\glueexpr(\gre@skip@bar@allocation/2% right from end of previous notes to nominal middle of bar line
+ +\gre@dimen@bar@shift% from nominal middle of bar line to actual middle
+ -\wd\gre@box@syllablenotes/2% back up to beginning of bar line
+ +\gre@dimen@begindifference% from beginning of bar line to beginning of text
+ +\gre@space@skip@bar@rubber)\relax % the rubber component
+ \GreNoBreak %
+ % all that extra stuff (translations and the like)
+ #8%
+ \GreNoBreak %
+ %print the text, the raise is in case of a translation
+ \raise\gre@dimen@textlower \copy\gre@box@syllabletext%
+ %and the code which handles translation centering
+ \ifgre@mustdotranslationcenterend%
+ % case of end of translation centering, we do it after the typesetting of the text
+ \gre@dotranslationcenterend %
+ \gre@mustdotranslationcenterendfalse%
+ \fi %
+ %move back to the beginning of the bar line
+ \kern\dimexpr(\gre@dimen@enddifference% move from end of text to end of bar line
+ -\wd\gre@box@syllablenotes)\relax % back up from end of bar line to beginning
+ \GreNoBreak%
+ \ifgre@shownotes%
+ #9%
+ \fi%
+ \global\let\gre@newlinecommon\gre@newlinecommonsaved %
+ \GreNoBreak%
+ % get into position to place the penalty
+ \ifdim\gre@dimen@enddifference < 0pt\relax%
+ % the text extends past the notes, so we need to get to the end of the text
+ \kern-\gre@dimen@enddifference%
+ \GreNoBreak%
+ \fi%
+ \ifgre@eolshiftsenabled%
+ %this shift will shorten the line somewhat to allow the lyrics to extend under the custos should TeX decide to insert a line break after the syllable being ended
+ \gre@calculate@eolshift{\dimexpr(\gre@dimen@enddifference-\gre@skip@bar@lastskip)\relax }%
+ \gre@debugmsg{barspacing}{End of line shift: \the\gre@dimen@eolshift}%
+ \ifdim\gre@dimen@eolshift<\gre@skip@bar@lastskip %
+ \gre@dimen@eolshift=\gre@skip@bar@lastskip\relax %
+ \fi %
+ \kern\glueexpr(-\gre@dimen@eolshift)\relax%
+ \fi%
+ % gre@count@temp@one is "forced end of line or last of score"
+ \gre@count@temp@one=0\relax %
+ \ifnum\gre@newlinearg=-1\else %
+ \gre@count@temp@one=1\relax %
+ \fi %
+ \ifnum\gre@lastoflinecount=1\relax %
+ \gre@count@temp@one=1\relax %
+ \fi %
+ \ifgre@endofscore %
+ \gre@count@temp@one=1\relax %
+ \fi %
+ % if no end of line or end of score
+ \ifnum\gre@count@temp@one=0\relax %
+ % add the penalty
+ \gre@debugmsg{barspacing}{after bar penalty: \the\gre@space@count@endafterbarpenalty}%
+ \gre@penalty{\the\gre@space@count@endafterbarpenalty}%
+ \ifgre@eolshiftsenabled%
+ %If the above penalties don't result in a line break, then we need to undo the eolshift to prevent the next syllable from overlapping with this one. If the line break did occur, then this shift will occur at the beginning of a line and thus will be ignored automatically by TeX.
+ \kern \dimexpr(\gre@dimen@eolshift)\relax%
+ \GreNoBreak%
+ \fi%
+ \ifdim\gre@dimen@enddifference < 0pt\relax%
+ %undo the earlier shift
+ \kern\gre@dimen@enddifference%
+ \GreNoBreak%
+ \fi%
+ %move to the beginning of the notes of the next syllable
+ \gre@hskip\glueexpr(-\wd\gre@box@syllablenotes/2% back up to middle of notes
+ -\gre@dimen@bar@shift% go back from actual middle to nominal middle of bar line
+ +\gre@skip@bar@allocation/2% go from nominal middle to the start of the next notes
+ +\gre@space@skip@bar@rubber)\relax % the rubber component
+ \ifdim\gre@skip@nextbegindifference < 0pt\relax%
+ %we need to move back to where the text for the next syllable should start
+ \GreNoBreak %
+ \kern\gre@skip@nextbegindifference\relax%
+ \fi%
+ \else %
+ \ifgre@endofscore %
+ \gre@localleftbox{}%
+ \gre@debugmsg{barspacing}{after bar penalty: \gre@space@count@endafterbarpenalty}%
+ \gre@penalty{\the\gre@space@count@finalpenalty}%
+ \else %
+ \ifnum\gre@newlinearg=-1\else %
+ \gre@debugmsg{barspacing}{calling new line with argument: \gre@newlinearg}%
+ \gre@newlinecommon{\gre@newlinearg}{1}%
+ \fi %
+ \fi %
+ \fi%
+ \else%
+ %
+ % Old spacing algorithm
+ %
+ %This is the old algorithm. I've kept it in case people still want to use it.
+ % then we check if there is something to write
+ \global\let\gre@newlinecommon\gre@newlinecommonsaved %
+ \gre@debugmsg{ifdim}{ wd(gre@box@syllabletext) = 0pt}%
+ \ifdim\wd\gre@box@syllabletext = 0 pt\relax %
+ % the most difficult case : when there is nothing to write
+ % first we need to determine the real space that there will be between the notes. Here again it is not so simple... let's consider these two kinds of spaces :
+ %% 1/ the minimal space between a note and the bar + the width of the bar + the minimal space between the bar and the note (that's the global idea, in fact there are nuances) : we assign skip@temp@three to it
+ %% 2/ enddifference + begindifference + space between notes and word : we assign skip@temp@two to it
+ \gre@skip@temp@three=\glueexpr(\gre@space@skip@notebarspace %
+ + \gre@space@skip@notebarspace %
+ + \wd\gre@box@syllablenotes)\relax %
+ % now let's get skip@temp@two
+ \gre@debugmsg{ifdim}{ nextbegindifference < 0pt}%
+ \ifdim\gre@skip@nextbegindifference < 0 pt\relax%
+ \gre@skip@temp@two=-\gre@skip@nextbegindifference\relax%
+ \else %
+ \gre@skip@temp@two=0 pt\relax%
+ \fi %
+ \gre@debugmsg{ifdim}{ previousenddifference < 0pt}%
+ \ifdim\gre@dimen@previousenddifference < 0 pt\relax%
+ \advance\gre@skip@temp@two by %
+ \glueexpr(-\gre@dimen@previousenddifference %
+ + \gre@space@skip@interwordspacetext)\relax%
+ \else %
+ \advance\gre@skip@temp@two by \gre@space@skip@interwordspacenotes\relax%
+ \fi%
+ % we take the max of it, then we divide it by two and we substract half of the width of the bar
+ \gre@debugmsg{ifdim}{ temp@skip@three < temp@skip@two}%
+ \ifdim\gre@skip@temp@three <\gre@skip@temp@two %
+ \gre@skip@temp@three=\gre@skip@temp@two %
+ \fi %
+ \divide\gre@skip@temp@three by 2\relax %
+ \advance\gre@skip@temp@three by \dimexpr(\wd\gre@box@syllablenotes / -2)\relax %
+ % now we have our skipone
+ \gre@skip@temp@two=\gre@skip@temp@three %
+ \gre@debugmsg{ifdim}{ previousenddifference < 0pt}%
+ \ifdim\gre@dimen@previousenddifference < 0 pt\relax%
+ \advance\gre@skip@temp@two by \gre@dimen@previousenddifference\relax%
+ \fi %
+ \GreNoBreak %
+ \gre@debugmsg{ifdim}{ temp@skip@two > -wd(gre@box@syllablenotes)}%
+ \ifdim\gre@skip@temp@two > -\wd\gre@box@syllablenotes %
+ \kern\gre@skip@temp@two %
+ \else %
+ \gre@skip@temp@one = -\wd\gre@box@syllablenotes %
+ \kern\gre@skip@temp@one%
+ \fi %
+ \GreNoBreak %
+ #8\relax %
+ \ifgre@mustdotranslationcenterend%
+ % case of end of translation centering, we do it after the typesetting of the text
+ \gre@dotranslationcenterend %
+ \gre@mustdotranslationcenterendfalse%
+ \fi %
+ \ifgre@shownotes%
+ #9\relax %
+ \fi%
+ \gre@penalty{\the\gre@space@count@endafterbaraltpenalty }% TODO: isn't it a bit buggy?
+ % end of same code as syllable
+ \ifnum\gre@lastoflinecount=1\relax %
+ \global\gre@lastoflinecount=2\relax %
+ \else %
+ \gre@debugmsg{ifdim}{ temp@skip@two < -wd(gre@box@syllablenotes)}%
+ \ifdim\gre@skip@temp@two < -\wd\gre@box@syllablenotes %
+ \gre@debugmsg{ifdim}{ nextbegindifference > 0pt}%
+ \ifdim\gre@skip@nextbegindifference > 0 pt\relax%
+ \gre@skip@temp@one = \gre@space@skip@interwordspacetext\relax%
+ \gre@hskip\gre@skip@temp@one %
+ \else % \ifdim\gre@skip@nextbegindifference > 0 pt
+ \gre@skip@temp@one = \gre@space@skip@interwordspacetext\relax%
+ \gre@hskip\gre@skip@temp@one %
+ \fi %
+ \else %
+ \gre@skip@temp@two=\gre@skip@temp@three %
+ \gre@debugmsg{ifdim}{ nextbegindifference < 0pt}%
+ \ifdim\gre@skip@nextbegindifference < 0 pt\relax%
+ \advance\gre@skip@temp@two by \gre@skip@nextbegindifference\relax%
+ \fi %
+ \gre@debugmsg{ifdim}{ temp@skip@two > -wd(gre@box@syllablenotes)}%
+ \ifdim\gre@skip@temp@two > -\wd\gre@box@syllablenotes %
+ \kern\gre@skip@temp@two %
+ \else % \ifdim\gre@dimen@temp@five > -\wd\gre@box@syllablenotes
+ \gre@skip@temp@one = -\wd\gre@box@syllablenotes %
+ \gre@hskip\gre@skip@temp@one %
+ \fi %
+ \fi %
+ \fi %
+ % then the most simple : the case where there is something to write under the bar. We just need to adjust the spaces.
+ \else %ifdim\wd\gre@box@syllabletext = 0 pt
+ #8\relax %
+ \raise\gre@dimen@textlower \copy\gre@box@syllabletext %
+ \ifgre@mustdotranslationcenterend%
+ % case of end of translation centering, we do it after the typesetting of the text
+ \gre@dotranslationcenterend %
+ \gre@mustdotranslationcenterendfalse%
+ \fi %
+ \gre@skip@temp@one = -\wd\gre@box@syllabletext %
+ \kern\gre@skip@temp@one %
+ \gre@skip@temp@one = -\gre@dimen@begindifference\relax%
+ \kern\gre@skip@temp@one %
+ \ifgre@shownotes%
+ #9%
+ \fi%
+ \gre@debugmsg{ifdim}{ enddifference < 0pt}%
+ \ifdim\gre@dimen@enddifference <0pt\relax%
+ %% important, else we are not really at the end of the syllable
+ \gre@skip@temp@one = -\gre@dimen@enddifference\relax%
+ \kern\gre@skip@temp@one %
+ \fi%
+ % end of same code as syllable
+ \ifnum\gre@lastoflinecount=1\relax %
+ \global\gre@lastoflinecount=2\relax %
+ \gre@endafterbar{0}%
+ \else %
+ \global\gre@lastoflinecount=0\relax %
+ \gre@endafterbar{1}%
+ \fi %
+ %and that's it !!
+ \fi %
+ \fi%
+ \global\gre@dimen@notesaligncenter= 0 pt\relax % very important, see flat and natural
+ \gre@unsetfixedtextformat %
+ \ifgre@blockeolcustos\ifnum\gre@insidediscretionary=0\relax %
+ \gre@localrightbox{}%
+ \fi\fi %
+ \relax%
}
\newif\ifgre@newbarspacing%
@@ -1232,35 +1293,35 @@
%% #5 - Everything after the first letter of the syllable
%% #6 - Macros to run after the text is emitted
\def\gre@setfirstsyllabletext#1#2#3#4#5#6{%
- \def\gre@opening@syllabletext{%
- \GreSetThisSyllable{#1}{#2}{#3}%
- {\GreFirstWord{\GreFirstSyllable{\GreFirstSyllableInitial{#4}}}}%
- {\GreFirstWord{\GreFirstSyllable{#5}}}%
- #6\relax %
- }%
+ \def\gre@opening@syllabletext{%
+ \GreSetThisSyllable{#1}{#2}{#3}%
+ {\GreFirstWord{\GreFirstSyllable{\GreFirstSyllableInitial{#4}}}}%
+ {\GreFirstWord{\GreFirstSyllable{#5}}}%
+ #6\relax %
+ }%
}%
\def\gresetinitiallines#1{%
- \IfInteger{#1}%
- {%
- \ifnum#1>-1\relax%
- \ifnum#1<3\relax%
- \def\gre@initiallines{#1}%
- \else%
- \gre@error{The argument for \protect\gresetinitiallines\space must be 0, 1, or 2}%
- \fi%
- \else%
- \gre@error{The argument for \protect\gresetinitiallines\space must be positive}%
- \fi%
- }%
- {\gre@error{\protect\gresetinitiallines\space takes a positive integer argument}}%
+ \IfInteger{#1}%
+ {%
+ \ifnum#1>-1\relax%
+ \ifnum#1<3\relax%
+ \def\gre@initiallines{#1}%
+ \else%
+ \gre@error{The argument for \protect\gresetinitiallines\space must be 0, 1, or 2}%
+ \fi%
+ \else%
+ \gre@error{The argument for \protect\gresetinitiallines\space must be positive}%
+ \fi%
+ }%
+ {\gre@error{\protect\gresetinitiallines\space takes a positive integer argument}}%
}%
\gresetinitiallines{1}% default to one-line initials
-\def\GreSetInitialStyle#1{%%% DEPRECATED by 4.1
- \gre@deprecated{initial-style gabc header}{\protect\gresetinitiallines}%%% DEPRECATED by 4.1
- \def\gre@opening@initialstyle{#1}%%% DEPRECATED by 4.1
-}%%% DEPRECATED by 4.1
+\def\GreSetInitialStyle#1{%%% DEPRECATED for removal in 5.0
+ \gre@deprecated{initial-style gabc header}{\protect\gresetinitiallines}%%% DEPRECATED for removal in 5.0
+ \def\gre@opening@initialstyle{#1}%%% DEPRECATED for removal in 5.0
+}%%% DEPRECATED for removal in 5.0
%% sets the first syllable text
%% #1 - Initial
@@ -1270,31 +1331,31 @@
%% #5 - Three syllable parts where there is no separated initial
%% #6 - Extra macros to run if there is an initial
\def\GreSetFirstSyllableText#1#2#3#4#5#6{%
- %%% DEPRECATED by 4.1: When \gre@opening@initialstyle is removed, use \gre@initiallines directly in the following line
- \ifcase\gre@opening@initialstyle\relax % no initial
- \gre@noinitial %
- \gre@setfirstsyllabletext#5{#1}{#2#3}{}%
- \or % regular intiial
- \gre@setinitial{#1}%
- \gre@setfirstsyllabletext#4{#2}{#3}{#6}%
- \or % big initial
- \gre@setbiginitial\gre@setinitial{#1}%
- \gre@setfirstsyllabletext#4{#2}{#3}{#6}%
- \fi %
+ %%% DEPRECATED for removal in 5.0: When \gre@opening@initialstyle is removed, use \gre@initiallines directly in the following line
+ \ifcase\gre@opening@initialstyle\relax % no initial
+ \gre@noinitial %
+ \gre@setfirstsyllabletext#5{#1}{#2#3}{}%
+ \or % regular intiial
+ \gre@setinitial{#1}%
+ \gre@setfirstsyllabletext#4{#2}{#3}{#6}%
+ \or % big initial
+ \gre@setbiginitial\gre@setinitial{#1}%
+ \gre@setfirstsyllabletext#4{#2}{#3}{#6}%
+ \fi %
}%
\def\GreSetNoFirstSyllableText{%
- \gre@noinitial %
- \gre@setfirstsyllabletext{}{}{}{}{}{}%
+ \gre@noinitial %
+ \gre@setfirstsyllabletext{}{}{}{}{}{}%
}%
\def\GreUpcomingNewLineForcesCustos#1{%
- \ifcase#1\relax % 0 - forced off
- \gre@usemanualeolcustos %
- \or % 1 - forced on
- \gre@useautoeolcustos %
- \GreNextCustos{\gre@nextcustos}%
- \fi %
+ \ifcase#1\relax % 0 - forced off
+ \gre@usemanualeolcustos %
+ \or % 1 - forced on
+ \gre@useautoeolcustos %
+ \GreNextCustos{\gre@nextcustospitch}{\gre@nextcustosalteration}%
+ \fi %
}%
%% opens a score
@@ -1305,17 +1366,17 @@
%% #5 - macros rendering the first syllable; should emit the initial and
%% populate \gre@opening@syllabletext (even if that should be empty)
\def\GreScoreOpening#1#2#3#4#5{%
- #3\relax % fixed styles, etc.
- #5\relax % should emit the initial
- \ifnum\gre@biginitial=1\relax %
- \gre@debugmsg{general}{making adjustment NECESSARY}%
- \gre@thirdlineadjustmentnecessarytrue %
- \else %
- \gre@debugmsg{general}{making adjustment unnecessary}%
- \gre@thirdlineadjustmentnecessaryfalse %
- \fi %
- #1\relax % score reference, voice info, etc.
- \gre@beginnotes\relax %
- #2\relax % initial clef, etc.
- #4{\gre@opening@syllabletext}%
+ #3\relax % fixed styles, etc.
+ #5\relax % should emit the initial
+ \ifnum\gre@biginitial=1\relax %
+ \gre@debugmsg{general}{making adjustment NECESSARY}%
+ \gre@thirdlineadjustmentnecessarytrue %
+ \else %
+ \gre@debugmsg{general}{making adjustment unnecessary}%
+ \gre@thirdlineadjustmentnecessaryfalse %
+ \fi %
+ #1\relax % score reference, voice info, etc.
+ \gre@beginnotes\relax %
+ #2\relax % initial clef, etc.
+ #4{\gre@opening@syllabletext}%
}%
diff --git a/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-symbols.lua b/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-symbols.lua
index bf8bbe404a8..633e1397f6e 100644
--- a/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-symbols.lua
+++ b/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-symbols.lua
@@ -19,7 +19,7 @@
-- this file contains lua functions to support signs used by GregorioTeX.
--- GREGORIO_VERSION 4.1.1
+-- GREGORIO_VERSION 4.2.0-beta1
local err = gregoriotex.module.err
local warn = gregoriotex.module.warn
diff --git a/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-symbols.tex b/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-symbols.tex
index 79edaf7ad73..7b56622e351 100644
--- a/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-symbols.tex
+++ b/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-symbols.tex
@@ -23,7 +23,7 @@
\def\gregoriotex@symbols@loaded{}%
\gre@debugmsg{general}{Loading gregoriotex-symbols.tex}%
-\gre@declarefileversion{gregoriotex-symbols.tex}{4.1.1}% GREGORIO_VERSION
+\gre@declarefileversion{gregoriotex-symbols.tex}{4.2.0-beta1}% GREGORIO_VERSION
\RequireLuaModule{gregoriotex}%
@@ -34,8 +34,8 @@
% #2 = font name
% #3 = glyph name or code point
\def\gredefsymbol#1#2#3{%
- \directlua{gregoriotex.init_variant_font([[#2]],false)}%
- \directlua{gregoriotex.def_symbol([[#1]],[[#2]],[[#3]],false)}%
+ \directlua{gregoriotex.init_variant_font([[#2]],false)}%
+ \directlua{gregoriotex.def_symbol([[#1]],[[#2]],[[#3]],false)}%
}%
% Defines a symbol which takes a point size as argument
@@ -43,8 +43,8 @@
% #2 = font name
% #3 = glyph name or code point
\def\gredefsizedsymbol#1#2#3{%
- \directlua{gregoriotex.init_variant_font([[#2]],false)}%
- \directlua{gregoriotex.def_symbol([[#1]],[[#2]],[[#3]],true)}%
+ \directlua{gregoriotex.init_variant_font([[#2]],false)}%
+ \directlua{gregoriotex.def_symbol([[#1]],[[#2]],[[#3]],true)}%
}%
%%%%%%%%%%%%%
@@ -83,8 +83,8 @@
\gredefsizedsymbol{greVBarAlt}{greextra}{VBar.alt}
\def\grebarredsymbol#1#2#3#4#5{%
- \leavevmode\hbox to 0pt{}\kern #4\lower#5%
- \hbox{\csname #2\endcsname{#3}}\kern -#4\relax #1%
+ \leavevmode\hbox to 0pt{}\kern #4\lower#5%
+ \hbox{\csname #2\endcsname{#3}}\kern -#4\relax #1%
}%
%% Intermediate version or barred glyph definition
@@ -95,16 +95,16 @@
%% #5: the kern of the bar from the beggining of the glyph
%% #6: greextra glyph lowering
\def\gredefbarredsymbol#1#2#3#4#5#6{%
- \expandafter\gdef\csname #1\endcsname {%
- \grebarredsymbol{#2}{#3}{#4}{#5}{#6}%
- }%
+ \expandafter\gdef\csname #1\endcsname {%
+ \grebarredsymbol{#2}{#3}{#4}{#5}{#6}%
+ }%
}%
%% Most simple version or barred glyph definition
%% #1: A, R or V
%% #2: the negative kern
\def\gresimpledefbarredsymbol#1#2{%
- \gredefbarredsymbol{#1bar}{#1}{gre#1Bar}{\f@size}{#2}{0pt}%
+ \gredefbarredsymbol{#1bar}{#1}{gre#1Bar}{\f@size}{#2}{0pt}%
}%
% defining \ABar, \VBar and \RBar for libertine font, define yours for your font
@@ -113,44 +113,44 @@
\gresimpledefbarredsymbol{V}{.10em}%
\gre@iflatex{%
- \def\gre@latex@barredsymbol#1#2#3#4{%
- \IfStrEq{\f@series/\f@shape}{#1}{\grebarredsymbol{#2}{#3}{\f@size}{#4}{0pt}}%
- }%
-
- %% define a barred symbol that handles italic, slanted, and small cap shapes
- %% simply (LaTeX-only)
- %% Most simple version or barred glyph definition
- %% #1: A, R or V
- %% #2: the negative kern for upright shape
- %% #3: idem, for italic/slanted shape
- %% #4: idem, for bold shape
- %% #5: idem, for bold and italic/slanted shape
- \def\grelatexsimpledefbarredsymbol#1#2#3#4#5{%
- \expandafter\gdef\csname #1bar\endcsname {%
- \gre@latex@barredsymbol{m/n}{#1}{gre#1Bar}{#2}{%
- \gre@latex@barredsymbol{m/it}{#1}{gre#1BarSlant}{#3}{%
- \gre@latex@barredsymbol{m/sl}{#1}{gre#1BarSlant}{#3}{%
- \gre@latex@barredsymbol{bx/n}{#1}{gre#1Bar}{#4}{%
- \gre@latex@barredsymbol{bx/it}{#1}{gre#1BarSlant}{#5}{%
- \gre@latex@barredsymbol{bx/sl}{#1}{gre#1BarSlant}{#5}{%
- \gre@latex@barredsymbol{b/n}{#1}{gre#1Bar}{#4}{%
- \gre@latex@barredsymbol{b/it}{#1}{gre#1BarSlant}{#5}{%
- \gre@latex@barredsymbol{b/sl}{#1}{gre#1BarSlant}{#5}{%
- }%
- }%
- }%
- }%
- }%
- }%
- }%
- }%
- }%
- }%
- }%
-
- \grelatexsimpledefbarredsymbol{A}{.30em}{.35em}{.30em}{.33em}%
- \grelatexsimpledefbarredsymbol{R}{.35em}{.38em}{.45em}{.48em}%
- \grelatexsimpledefbarredsymbol{V}{.10em}{.12em}{.14em}{.18em}%
+ \def\gre@latex@barredsymbol#1#2#3#4{%
+ \IfStrEq{\f@series/\f@shape}{#1}{\grebarredsymbol{#2}{#3}{\f@size}{#4}{0pt}}%
+ }%
+
+ %% define a barred symbol that handles italic, slanted, and small cap shapes
+ %% simply (LaTeX-only)
+ %% Most simple version or barred glyph definition
+ %% #1: A, R or V
+ %% #2: the negative kern for upright shape
+ %% #3: idem, for italic/slanted shape
+ %% #4: idem, for bold shape
+ %% #5: idem, for bold and italic/slanted shape
+ \def\grelatexsimpledefbarredsymbol#1#2#3#4#5{%
+ \expandafter\gdef\csname #1bar\endcsname {%
+ \gre@latex@barredsymbol{m/n}{#1}{gre#1Bar}{#2}{%
+ \gre@latex@barredsymbol{m/it}{#1}{gre#1BarSlant}{#3}{%
+ \gre@latex@barredsymbol{m/sl}{#1}{gre#1BarSlant}{#3}{%
+ \gre@latex@barredsymbol{bx/n}{#1}{gre#1Bar}{#4}{%
+ \gre@latex@barredsymbol{bx/it}{#1}{gre#1BarSlant}{#5}{%
+ \gre@latex@barredsymbol{bx/sl}{#1}{gre#1BarSlant}{#5}{%
+ \gre@latex@barredsymbol{b/n}{#1}{gre#1Bar}{#4}{%
+ \gre@latex@barredsymbol{b/it}{#1}{gre#1BarSlant}{#5}{%
+ \gre@latex@barredsymbol{b/sl}{#1}{gre#1BarSlant}{#5}{%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+
+ \grelatexsimpledefbarredsymbol{A}{.30em}{.35em}{.30em}{.33em}%
+ \grelatexsimpledefbarredsymbol{R}{.35em}{.38em}{.45em}{.48em}%
+ \grelatexsimpledefbarredsymbol{V}{.10em}{.12em}{.14em}{.18em}%
}%
% the gothic R and V
@@ -184,18 +184,15 @@
%#1 is the type of line (1-5)
%#2 is the number of pt of the font it will use
\def\greseparator#1#2{%
- \ifcase#1\relax %
- \or\greLineOne{#2}%
- \or\greLineTwo{#2}%
- \or\greLineThree{#2}%
- \or\greLineFour{#2}%
- \or\greLineFive{#2}%
- \fi%
+ \ifcase#1\relax %
+ \or\greLineOne{#2}%
+ \or\greLineTwo{#2}%
+ \or\greLineThree{#2}%
+ \or\greLineFour{#2}%
+ \or\greLineFive{#2}%
+ \fi%
}%
-\def\gresep#1#2{%OBSOLETE
- \gre@obsolete{\protect\gresep}{\protect\greseparator}%
-}
%%%%%%%%%%%
%% Ornamentation
@@ -205,10 +202,10 @@
\gredefsizedsymbol{greOrnamentTwo}{greextra}{Drawing2}%
\def\greornamentation#1#2{%
- \ifcase#1\relax%
- \or\greOrnamentOne{#2}%
- \or\greOrnamentTwo{#2}%
- \fi%
+ \ifcase#1\relax%
+ \or\greOrnamentOne{#2}%
+ \or\greOrnamentTwo{#2}%
+ \fi%
}%
%% Specials
diff --git a/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex.lua b/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex.lua
index 4f94d1a1f9b..e00885a3ca5 100644
--- a/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex.lua
+++ b/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex.lua
@@ -24,13 +24,13 @@ local hpack, traverse, traverse_id, has_attribute, count, remove, insert_after,
gregoriotex = gregoriotex or {}
local gregoriotex = gregoriotex
-local internalversion = '4.1.1' -- GREGORIO_VERSION (comment used by VersionManager.py)
+local internalversion = '4.2.0-beta1' -- GREGORIO_VERSION (comment used by VersionManager.py)
local err, warn, info, log = luatexbase.provides_module({
name = "gregoriotex",
- version = '4.1.1', -- GREGORIO_VERSION
+ version = '4.2.0-beta1', -- GREGORIO_VERSION
greinternalversion = internalversion,
- date = "2016/03/10", -- GREGORIO_DATE_LTX
+ date = "2016/04/27", -- GREGORIO_DATE_LTX
description = "GregorioTeX module.",
author = "The Gregorio Project (see CONTRIBUTORS.md)",
copyright = "2008-2015 - The Gregorio Project",
@@ -68,11 +68,14 @@ local line_heights = nil
local new_line_heights = nil
local score_heights = nil
local new_score_heights = nil
-local var_brace_positions = nil
-local new_var_brace_positions = nil
-local pos_saves = nil
-local new_pos_saves = nil
+local saved_positions = nil
+local saved_lengths = nil
+local new_saved_lengths = nil
+local saved_newline_before_euouae = nil
+local new_saved_newline_before_euouae = nil
local auxname = nil
+local snippet_filename = nil
+local snippet_logname = nil
local space_below_staff = 5
local space_above_staff = 13
@@ -134,7 +137,35 @@ local function keys_changed(tab1, tab2)
return false
end
-local function heights_changed()
+local function saved_computations_changed(tab1, tab2)
+ local score_ids = {}
+ local id,_
+ for id,_ in pairs(tab1) do
+ score_ids[id] = true
+ end
+ for id,_ in pairs(tab2) do
+ score_ids[id] = true
+ end
+ for id,_ in pairs(score_ids) do
+ local inner1 = tab1[id]
+ local inner2 = tab2[id]
+ if inner1 == nil or inner2 == nil then return true end
+ local keys = {}
+ local index
+ for index,_ in pairs(inner1) do
+ keys[index] = true
+ end
+ for index,_ in pairs(inner2) do
+ keys[index] = true
+ end
+ for index,_ in pairs(keys) do
+ if inner1[index] ~= inner2[index] then return true end
+ end
+ end
+ return false
+end
+
+local function is_greaux_write_needed()
local id, tab
for id, tab in pairs(new_line_heights) do
if keys_changed(tab, line_heights[id]) then return true end
@@ -142,30 +173,24 @@ local function heights_changed()
for id, tab in pairs(line_heights) do
if keys_changed(tab, new_line_heights[id]) then return true end
end
- for id, tab in pairs(new_var_brace_positions) do
- if keys_changed(tab, var_brace_positions[id]) then return true end
+ if saved_computations_changed(saved_lengths, new_saved_lengths) then
+ return true
end
- for id, tab in pairs(var_brace_positions) do
- if keys_changed(tab, new_var_brace_positions[id]) then return true end
- end
- for id, tab in pairs(new_pos_saves) do
- if keys_changed(tab, pos_saves[id]) then return true end
- end
- for id, tab in pairs(pos_saves) do
- if keys_changed(tab, new_pos_saves[id]) then return true end
+ if saved_computations_changed(saved_newline_before_euouae, new_saved_newline_before_euouae) then
+ return true
end
return false
end
local function write_greaux()
- if heights_changed() then
+ if is_greaux_write_needed() then
-- only write this if heights change; since table ordering is not
-- predictable, this ensures a steady state if the heights are unchanged.
local aux = io.open(auxname, 'w')
if aux then
log("Writing %s", auxname)
aux:write('return {\n ["line_heights"]={\n')
- local id, tab, id2, line
+ local id, tab, id2, line, value
for id, tab in pairs(new_line_heights) do
aux:write(string.format(' ["%s"]={\n', id))
for id2, line in pairs(tab) do
@@ -174,25 +199,26 @@ local function write_greaux()
end
aux:write(' },\n')
end
- aux:write(' },\n ["var_brace_positions"]={\n')
- for id, tab in pairs(new_var_brace_positions) do
+ aux:write(' },\n ["saved_lengths"]={\n')
+ for id, tab in pairs(new_saved_lengths) do
aux:write(string.format(' ["%s"]={\n', id))
- for id2, line in pairs(tab) do
- if line[1] ~= nil and line[2] ~= nil then
- aux:write(string.format(' [%d]={%d,%d},\n', id2, line[1],
- line[2]))
+ for id2, value in pairs(tab) do
+ if value ~= nil then
+ aux:write(string.format(' [%d]=%d,\n', id2, value))
end
end
aux:write(' },\n')
end
- aux:write(' },\n ["pos_saves"]={\n')
- for id, tab in pairs(new_pos_saves) do
+ aux:write(' },\n ["saved_newline_before_euouae"]={\n')
+ for id, tab in pairs(new_saved_newline_before_euouae) do
aux:write(string.format(' ["%s"]={\n', id))
- for id2, line in pairs(tab) do
- if line[1] ~= nil and line[2] ~= nil and line[3] ~= nil and
- line[4] ~= nil then
- aux:write(string.format(' [%d]={%d,%d,%d,%d},\n', id2, line[1],
- line[2], line[3], line[4]))
+ for id2, value in pairs(tab) do
+ if value ~= nil then
+ if value then
+ aux:write(string.format(' [%d]=true,\n', id2))
+ else
+ aux:write(string.format(' [%d]=false,\n', id2))
+ end
end
end
aux:write(' },\n')
@@ -221,8 +247,12 @@ local function init(arg, enable_height_computation)
end
if outputdir and lfs.isdir(outputdir) then
auxname = outputdir..'/'..tex.jobname..'.gaux'
+ snippet_filename = outputdir..'/'..tex.jobname..'.gsnippet'
+ snippet_logname = outputdir..'/'..tex.jobname..'.gsniplog'
else
auxname = tex.jobname..'.gaux'
+ snippet_filename = tex.jobname..'.gsnippet'
+ snippet_logname = tex.jobname..'.gsniplog'
end
-- to get latexmk to realize the aux file is a dependency
@@ -231,12 +261,12 @@ local function init(arg, enable_height_computation)
log("Reading %s", auxname)
local score_info = dofile(auxname)
line_heights = score_info.line_heights or {}
- var_brace_positions = score_info.var_brace_positions or {}
- pos_saves = score_info.pos_saves or {}
+ saved_lengths = score_info.saved_lengths or {}
+ saved_newline_before_euouae = score_info.saved_newline_before_euouae or {}
else
line_heights = {}
- var_brace_positions = {}
- pos_saves = {}
+ saved_lengths = {}
+ saved_newline_before_euouae = {}
end
if enable_height_computation then
@@ -262,8 +292,9 @@ local function init(arg, enable_height_computation)
'line heights. Remove or undefine \\greskipheightcomputation to '..
'resume height computation.')
end
- new_var_brace_positions = {}
- new_pos_saves = {}
+ saved_positions = {}
+ new_saved_lengths = {}
+ new_saved_newline_before_euouae = {}
end
-- node factory
@@ -527,19 +558,43 @@ local function clean_old_gtex_files(file_withdir)
end
end
-local function compile_gabc(gabc_file, gtex_file)
+local function compile_gabc(gabc_file, gtex_file, glog_file, allow_deprecated)
info("compiling the score %s...", gabc_file)
local extra_args = ''
if tex.count['gre@generate@pointandclick'] == 1 then
- extra_args = ' -p'
+ extra_args = extra_args..' -p'
+ end
+ if not allow_deprecated then
+ extra_args = extra_args..' -D'
end
- res = os.execute(string.format("gregorio %s -o %s %s", extra_args, gtex_file, gabc_file))
+ local cmd = string.format("gregorio %s -W -o %s -l %s %s",
+ extra_args, gtex_file, glog_file, gabc_file)
+ res = os.execute(cmd)
if res == nil then
- err("\nSomething went wrong when executing\n 'gregorio -o %s %s'.\n"
- .."shell-escape mode may not be activated. Try\n\n%s --shell-escape %s.tex\n\nSee the documentation of gregorio or your TeX\ndistribution to automatize it.", gtex_file, gabc_file, tex.formatname, tex.jobname)
+ err("\nSomething went wrong when executing\n '%s'.\n"
+ .."shell-escape mode may not be activated. Try\n\n"
+ .."%s --shell-escape %s.tex\n\n"
+ .."See the documentation of gregorio or your TeX\n"
+ .."distribution to automatize it.",
+ cmd, tex.formatname, tex.jobname)
elseif res ~= 0 then
- err("\nAn error occured when compiling the score file\n'%s' with gregorio.\nPlease check your score file.", gabc_file)
+ local glog = io.open(glog_file, 'a+')
+ if glog == nil then
+ err("\n Unable to open %s", glog_file)
+ else
+ local size = glog:seek('end')
+ if size > 0 then
+ glog:seek('set')
+ local line
+ for line in glog:lines() do
+ warn(line)
+ end
+ end
+ glog:close()
+ end
+ err("\nAn error occured when compiling the score file\n"
+ .."'%s' with gregorio.\nPlease check your score file.", gabc_file)
else
-- open the gtex file for writing so that LuaTeX records output to it
-- when the -recorder option is used
@@ -549,10 +604,25 @@ local function compile_gabc(gabc_file, gtex_file)
else
gtex:close()
end
+ local glog = io.open(glog_file, 'a+')
+ if glog == nil then
+ err("\n Unable to open %s", glog_file)
+ else
+ local size = glog:seek('end')
+ if size > 0 then
+ glog:seek('set')
+ local line
+ for line in glog:lines() do
+ warn(line)
+ end
+ warn("*** end of warnings for %s ***", gabc_file)
+ end
+ glog:close()
+ end
end
end
-local function include_score(input_file, force_gabccompile)
+local function include_score(input_file, force_gabccompile, allow_deprecated)
local file_root
if string.match(input_file:sub(-5), '%.gtex') then
file_root = input_file:sub(1,-6)
@@ -564,6 +634,7 @@ local function include_score(input_file, force_gabccompile)
file_root = input_file
end
local gtex_file = file_root.."-"..internalversion:gsub("%.", "_")..".gtex"
+ local glog_file = file_root.."-"..internalversion:gsub("%.", "_")..".glog"
local gabc_file = file_root..".gabc"
if not lfs.isfile(gtex_file) then
clean_old_gtex_files(file_root)
@@ -576,7 +647,7 @@ local function include_score(input_file, force_gabccompile)
else
gabc:close()
end
- compile_gabc(gabc_file, gtex_file)
+ compile_gabc(gabc_file, gtex_file, glog_file, allow_deprecated)
tex.print(string.format([[\input %s\relax]], gtex_file))
return
else
@@ -597,29 +668,57 @@ local function include_score(input_file, force_gabccompile)
end
if gtex_timestamp < gabc_timestamp then
log("%s has been modified and %s needs to be updated. Recompiling the gabc file.", gabc_file, gtex_file)
- compile_gabc(gabc_file, gtex_file)
+ compile_gabc(gabc_file, gtex_file, glog_file, allow_deprecated)
elseif force_gabccompile then
- compile_gabc(gabc_file, gtex_file)
+ compile_gabc(gabc_file, gtex_file, glog_file)
end
tex.print(string.format([[\input %s\relax]], gtex_file))
return
end
-local function direct_gabc(gabc, header)
- tmpname = os.tmpname()
- local f = io.open(tmpname, 'w')
+local function direct_gabc(gabc, header, allow_deprecated)
+ info('Processing gabc snippet...')
+ local deprecated
+ if allow_deprecated then
+ deprecated = ''
+ else
+ deprecated = '-D '
+ end
+ local f = io.open(snippet_filename, 'w')
-- trims spaces on both ends (trim6 from http://lua-users.org/wiki/StringTrim)
gabc = gabc:match('^()%s*$') and '' or gabc:match('^%s*(.*%S)')
f:write('name:direct-gabc;\n'..(header or '')..'\n%%\n'..gabc:gsub('\\par ', '\n'))
f:close()
- local p = io.popen('gregorio -S '..tmpname, 'r')
+ local cmd = string.format('gregorio -W %s-S -l %s %s', deprecated, snippet_logname,
+ snippet_filename)
+ local p = io.popen(cmd, 'r')
if p == nil then
- err("\nSomething went wrong when executing\n gregorio -S "..tmpname..".\n"
- .."shell-escape mode may not be activated. Try\n\n%s --shell-escape %s.tex\n\nSee the documentation of gregorio or your TeX\ndistribution to automatize it.", tex.formatname, tex.jobname)
+ err("\nSomething went wrong when executing\n %s\n"
+ .."shell-escape mode may not be activated. Try\n\n"
+ .."%s --shell-escape %s.tex\n\n"
+ .."See the documentation of gregorio or your TeX\n"
+ .."distribution to automatize it.", cmd, tex.formatname, tex.jobname)
+ else
+ tex.print(p:read("*a"):explode('\n'))
+ p:close()
end
- tex.print(p:read("*a"):explode('\n'))
- p:close()
- os.remove(tmpname)
+ local glog = io.open(snippet_logname, 'a+')
+ if glog == nil then
+ err("\n Unable to open %s", snippet_logname)
+ else
+ local size = glog:seek('end')
+ if size > 0 then
+ glog:seek('set')
+ local line
+ for line in glog:lines() do
+ warn(line)
+ end
+ warn("*** end of warnings/errors processing snippet ***")
+ end
+ glog:close()
+ end
+ os.remove(snippet_filename)
+ os.remove(snippet_logname)
end
local function get_gregorioversion()
@@ -696,10 +795,9 @@ local function check_font_version()
local gregoriofont = get_font_by_name('gre@font@music')
if gregoriofont then
local fontversion = gregoriofont.shared.rawdata.metadata.version
- if fontversion ~= internalversion then
+ if fontversion and string.match(fontversion, "%d+%.%d+%.%d+") ~= string.match(internalversion, "%d+%.%d+%.%d+") then
local fontname = gregoriofont.shared.rawdata.metadata.fontname
- local fontfile = gregoriofont.shared.rawdata.metadata.origname
- err("\nUncoherent file versions!\ngregoriotex.tex is version %s\nwhile %s.ttf is version %s\nplease update file\n%s", internalversion, fontname, fontversion, fontfile)
+ err("\nUncoherent file versions!\ngregoriotex.tex is version %s\nwhile %s.ttf is version %s\nplease reinstall one so that the\nversions match", string.match(internalversion, "%d+%.%d+%.%d+"), fontname, string.match(fontversion, "%d+%.%d+%.%d+"))
end
end
end
@@ -880,64 +978,97 @@ local function adjust_line_height(inside_discretionary)
end
end
-local function var_brace_note_pos(brace, start_end)
- tex.print(string.format([[\luatexlatelua{gregoriotex.late_brace_note_pos('%s', %d, %d, \number\pdflastxpos)}]], cur_score_id, brace, start_end))
+local function prep_save_position(index, fn)
+ if saved_positions[cur_score_id] == nil then
+ saved_positions[cur_score_id] = {}
+ end
+ saved_positions[cur_score_id][index] = { fn = fn }
+end
+
+local function save_position(index, which)
+ tex.print(catcode_at_letter, string.format([[\luatexlatelua{gregoriotex.late_save_position('%s', %d, %d, \number\gre@lastxpos, \number\gre@lastypos)}]], cur_score_id, index, which))
end
-local function late_brace_note_pos(score_id, brace, start_end, pos)
- if new_var_brace_positions[score_id] == nil then
- new_var_brace_positions[score_id] = {}
+local function late_save_position(score_id, index, which, xpos, ypos)
+ info('saving %s, %d [%d] (%d,%d)', score_id, index, which, xpos, ypos)
+ local pos = saved_positions[score_id][index]
+ if pos == nil then
+ err('Attempting to use unprepared position save slot %d', index)
+ return
+ end
+ --[[
+ if pos.fn == nil then
+ err('Attempting to reuse position save slot %d', index)
+ return
end
- if new_var_brace_positions[score_id][brace] == nil then
- new_var_brace_positions[score_id][brace] = {}
+ --]]
+ pos['x'..which] = xpos
+ pos['y'..which] = ypos
+ if pos.x1 ~= nil and pos.y1 ~= nil and pos.x2 ~= nil and pos.y2 ~= nil then
+ pos.fn(score_id, index, pos)
+ --pos.fn = nil
end
- new_var_brace_positions[score_id][brace][start_end] = pos
end
-local function var_brace_len(brace)
- if var_brace_positions[cur_score_id] ~= nil then
- if var_brace_positions[cur_score_id][brace] ~= nil then
- local posend = var_brace_positions[cur_score_id][brace][2]
- local posstart = var_brace_positions[cur_score_id][brace][1]
- if posend > posstart then
- tex.print(string.format('%dsp', posend - posstart))
- else
- warn('Dynamically sized braces spanning multiple lines unsupported, using length 2mm.')
- tex.print('2mm')
- end
- return
- end
+local function compute_saved_length(score_id, index, pos)
+ if new_saved_lengths[score_id] == nil then
+ new_saved_lengths[score_id] = {}
end
- tex.print('2mm')
+ new_saved_lengths[score_id][index] = pos.x2 - pos.x1
+ info('computed length for %s, %d: %d', score_id, index,
+ new_saved_lengths[score_id][index])
end
-local function save_pos(index, which)
- tex.print(string.format([[\pdfsavepos\luatexlatelua{gregoriotex.late_save_pos('%s', %d, %d, \number\pdflastxpos, \number\pdflastypos)}]], cur_score_id, index, which))
+local function save_length(index, which)
+ if which == 1 then
+ prep_save_position(index, compute_saved_length)
+ end
+ save_position(index, which)
end
-local function late_save_pos(score_id, index, which, xpos, ypos)
- if new_pos_saves[score_id] == nil then
- new_pos_saves[score_id] = {}
+local function compute_saved_newline_before_euouae(score_id, index, pos)
+ if new_saved_newline_before_euouae[score_id] == nil then
+ new_saved_newline_before_euouae[score_id] = {}
end
- if new_pos_saves[score_id][index] == nil then
- new_pos_saves[score_id][index] = {}
+ new_saved_newline_before_euouae[score_id][index] = pos.y2 ~= pos.y1
+ info('computed euouae for %s, %d: %s', score_id, index,
+ new_saved_newline_before_euouae[score_id][index])
+end
+
+local function save_euouae(index, which)
+ if which == 1 then
+ prep_save_position(index, compute_saved_newline_before_euouae)
+ end
+ tex.sprint(catcode_at_letter, [[\gre@savepos]])
+ save_position(index, which)
+end
+
+local function var_brace_len(brace)
+ if saved_lengths[cur_score_id] ~= nil then
+ local length = saved_lengths[cur_score_id][brace]
+ if saved_lengths[cur_score_id][brace] ~= nil then
+ if length > 0 then
+ tex.print(string.format('%dsp', length))
+ return
+ else
+ warn('Dynamically sized signs spanning multiple lines unsupported, using length 2mm.')
+ end
+ end
end
- new_pos_saves[score_id][index][(2 * which) - 1] = xpos
- new_pos_saves[score_id][index][2 * which] = ypos
+ tex.print('2mm')
end
-- this function is meant to be used from \ifcase; prints 0 for true and 1 for false
local function is_ypos_different(index)
- if pos_saves[cur_score_id] ~= nil then
- local saved_pos = pos_saves[cur_score_id][index]
- if saved_pos == nil or saved_pos[2] == saved_pos[4] then
- tex.sprint([[\number1\relax ]])
- else
+ if saved_newline_before_euouae[cur_score_id] ~= nil then
+ local newline_before_euouae =
+ saved_newline_before_euouae[cur_score_id][index]
+ if newline_before_euouae then
tex.sprint([[\number0\relax ]])
+ return
end
- else
- tex.sprint([[\number1\relax ]])
end
+ tex.sprint([[\number1\relax ]])
end
local function width_to_bp(width, value_if_star)
@@ -1031,8 +1162,7 @@ gregoriotex.font_size = font_size
gregoriotex.direct_gabc = direct_gabc
gregoriotex.adjust_line_height = adjust_line_height
gregoriotex.var_brace_len = var_brace_len
-gregoriotex.var_brace_note_pos = var_brace_note_pos
-gregoriotex.late_brace_note_pos = late_brace_note_pos
+gregoriotex.save_length = save_length
gregoriotex.mark_translation = mark_translation
gregoriotex.mark_abovelinestext = mark_abovelinestext
gregoriotex.width_to_bp = width_to_bp
@@ -1041,11 +1171,11 @@ gregoriotex.rotation = rotation
gregoriotex.scale_space = scale_space
gregoriotex.set_header_capture = set_header_capture
gregoriotex.capture_header = capture_header
-gregoriotex.save_pos = save_pos
-gregoriotex.late_save_pos = late_save_pos
gregoriotex.is_ypos_different = is_ypos_different
+gregoriotex.save_euouae = save_euouae
gregoriotex.mode_part = mode_part
gregoriotex.set_debug_string = set_debug_string
+gregoriotex.late_save_position = late_save_position
dofile(kpse.find_file('gregoriotex-nabc.lua', 'lua'))
dofile(kpse.find_file('gregoriotex-signs.lua', 'lua'))
diff --git a/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex.tex b/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex.tex
index ca9bf25334e..73bb165e3ec 100644
--- a/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex.tex
+++ b/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex.tex
@@ -21,7 +21,7 @@
% This file needs to be marked with the version number. For now I've done this with the following comment, but we should check to see if PlainTeX has something similar to the version declaration of LaTeX and use that if it does.
-% [2016/03/10 v4.1.1 GregorioTeX system.]% PARSE_VERSION_DATE_LTX
+% [2016/04/27 v4.2.0-beta1 GregorioTeX system.]% PARSE_VERSION_DATE_LTX
\edef\greoldcatcode{\the\catcode`@}
@@ -33,6 +33,7 @@
\input luaotfload.sty%
\input graphicx.tex % for \resizebox
\input xstring.sty%
+\input color.sty%
\def\gre@error#1{\begingroup%
\def\MessageBreak{^^J}%
@@ -60,72 +61,80 @@
\ifcsname gre@debug\endcsname%
\else%
- \def\gre@debug{}%
+ \def\gre@debug{}%
\fi%
\ifcsname f@size\endcsname%
\else%
- \def\f@size{\directlua{gregoriotex.font_size()}}%
+ \def\f@size{\directlua{gregoriotex.font_size()}}%
\fi%
\newif\ifgre@allowdeprecated%
\gre@allowdeprecatedtrue%
\long\def\gre@metapost#1{{%
- \gre@localleftbox{}%
- \gre@localrightbox{}%
- \mplibcode
- #1
- \endmplibcode%
+ \gre@localleftbox{}%
+ \gre@localrightbox{}%
+ \mplibcode
+ #1
+ \endmplibcode%
}}%
%% This is \strip@pt from LaTeX
\begingroup%
- \catcode`P=12%
- \catcode`T=12%
- \lowercase{%
- \def\x{\def\gre@rem@pt##1.##2PT{##1\ifnum##2>\z@.##2\fi}}}%
- \expandafter\endgroup\x%
+ \catcode`P=12%
+ \catcode`T=12%
+ \lowercase{%
+ \def\x{\def\gre@rem@pt##1.##2PT{##1\ifnum##2>\z@.##2\fi}}}%
+ \expandafter\endgroup\x%
\def\gre@strip@pt{\expandafter\gre@rem@pt\the}%
\long\def\gre@iflatex#1{}%
\input gregoriotex-main.tex
+
+%%%%%%%%%
+%% Color definitions
+%%%%%%%%%
+
+\definecolor{grebackgroundcolor}{RGB}{255,255,255}%
+\definecolor{gregoriocolor}{RGB}{229,53,44}%
+
%%%%%%%%%
%% PlainTeX specific definitions for fonts
%%%%%%%%%
\def\GreBold#1{%
- {\bf #1}%
- \relax %
+ {\bf #1}%
+ \relax %
}%
\def\GreItalic#1{%
- {\it #1}%
- %\relax
+ {\it #1}%
+ %\relax
}%
\def\GreSmallCaps#1{%
- {\sc #1}%
- \relax %
+ {\sc #1}%
+ \relax %
}%
\def\GreTypewriter#1{%
- {\tt #1}%
- \relax %
+ {\tt #1}%
+ \relax %
}%
-% Note since underlining and coloring don’t exist in PlainTeX, but we need the following commands to maintain compatibility with LaTeX.
-\def\GreUnderline#1{%
- \gre@warning{Underlining cannot be done in PlainTeX}%
- {#1}%
- \relax %
+\def\GreColored#1{%
+ {%
+ \color{gregoriocolor}#1%
+ }%
}%
-\def\GreColored#1{%
- \gre@warning{Text color cannot be changed in PlainTeX}%
- {#1}%
- \relax %
+% Note since underlining don’t exist in PlainTeX, we need the following command to maintain compatibility with LaTeX, but all it does is raise a warning.
+\def\GreUnderline#1{%
+ \gre@warning{Underlining cannot be done in PlainTeX}%
+ {#1}%
+ \relax %
}%
%%%%%%%%%%%%%%%
@@ -135,26 +144,9 @@
% Colors don't work in PlainTeX, but we need these functions for interoperability with LaTeX.
\def\gresetlinecolor#1{%
- \gre@warning{Line color cannot be changed in PlainTeX}%
- \relax%
-}
-
-
-\def\grecoloredlines#1#2#3{%OBSOLETE
- \gre@obsolete{\protect\grecoloredlines}{\protect\gresetlinecolor}%
-}
-
-\def\greredlines{%OBSOLETE
- \gre@obsolete{\protect\greredlines}{\protect\gresetlinecolor{gregoriocolor}}%
-}
-
-\let\redlines\greredlines%OBSOLETE
-
-\def\grenormallines{%OBSOLETE
- \gre@obsolete{\protect\grenormallines}{\protect\gresetlinecolor{black}}%
+ \gre@changestyle{normalstafflines}{\color{#1}}[\relax]%
}
-\let\normallines\grenormallines%OBSOLETE
%%%%%%%%%%%%%%%%%%%%
%% Formatting environments
@@ -164,130 +156,130 @@
\font\gre@font@initial=pncr at 40pt\relax%
\def\gre@style@initial{%
- \begingroup%
- \gre@font@initial%
- \relax %
+ \begingroup%
+ \gre@font@initial%
+ \relax %
}%
\def\endgre@style@initial{\endgroup}%
\def\gre@style@biginitial{%%% DEPRECATED for removal in 5.0
- \begingroup%%% DEPRECATED for removal in 5.0
- \gre@font@biginitial%%% DEPRECATED for removal in 5.0
- \relax %%% DEPRECATED for removal in 5.0
+ \begingroup%%% DEPRECATED for removal in 5.0
+ \gre@font@biginitial%%% DEPRECATED for removal in 5.0
+ \relax %%% DEPRECATED for removal in 5.0
}%%% DEPRECATED for removal in 5.0
\def\endgre@style@biginitial{\endgroup}%%% DEPRECATED for removal in 5.0
\def\gre@style@translation{%
- \begingroup%
- \it%
+ \begingroup%
+ \it%
}%
\def\endgre@style@translation{\endgroup}%
\def\gre@style@abovelinestext{%
- \begingroup%
- \it%
+ \begingroup%
+ \it%
}%
\def\endgre@style@abovelinestext{\endgroup}%
\def\gre@style@normalstafflines{%
- \begingroup%
- \relax%
+ \begingroup%
+ \relax%
}%
\def\endgre@style@normalstafflines{\endgroup}%
\def\gre@style@additionalstafflines{%
- \begingroup%
- \gre@style@normalstafflines%
+ \begingroup%
+ \gre@style@normalstafflines%
}%
\def\endgre@style@additionalstafflines{%
- \endgre@style@normalstafflines%
- \endgroup%
+ \endgre@style@normalstafflines%
+ \endgroup%
}%
\def\gre@style@lowchoralsign{%
- \begingroup%
- \relax%
+ \begingroup%
+ \relax%
}%
\def\endgre@style@lowchoralsign{\endgroup}%
\def\gre@style@highchoralsign{%
- \begingroup%
- \relax%
+ \begingroup%
+ \relax%
}%
\def\endgre@style@highchoralsign{\endgroup}%
\def\gre@style@firstsyllableinitial{%
- \begingroup%
- \relax%
+ \begingroup%
+ \relax%
}%
\def\endgre@style@firstsyllableinitial{\endgroup}%
\def\gre@style@firstsyllable{%
- \begingroup%
- \relax%
+ \begingroup%
+ \relax%
}%
\def\endgre@style@firstsyllable{\endgroup}%
\def\gre@style@firstword{%
- \begingroup%
- \relax%
+ \begingroup%
+ \relax%
}%
\def\endgre@style@firstword{\endgroup}%
\def\gre@style@modeline{%
- \begingroup%
- \bf%
- \sc%
- \relax%
+ \begingroup%
+ \bf%
+ \sc%
+ \relax%
}%
\def\endgre@style@modeline{\endgroup}%
\def\gre@style@modemodifier{%
- \begingroup%
- \bf%
- \it%
- \relax%
+ \begingroup%
+ \bf%
+ \it%
+ \relax%
}%
\def\endgre@style@modemodifier{\endgroup}%
\def\gre@style@modedifferentia{%
- \begingroup%
- \bf%
- \relax%
+ \begingroup%
+ \bf%
+ \relax%
}%
\def\endgre@style@modedifferentia{\endgroup}%
\def\gre@style@commentary{%
- \begingroup%
- \it%
- % footnotesize is LaTeX, but nothing here since changing font size is so hard
- \relax%
+ \begingroup%
+ \it%
+ % footnotesize is LaTeX, but nothing here since changing font size is so hard
+ \relax%
}%
\def\endgre@style@commentary{\endgroup}%
\def\gre@style@elision{%
- \begingroup%
- \it%
- % small is LaTeX, but nothing here since changing font size is so hard
- \relax%
+ \begingroup%
+ \it%
+ % small is LaTeX, but nothing here since changing font size is so hard
+ \relax%
}%
\def\endgre@style@elision{\endgroup}%
\def\gre@style@annotation{%
- \begingroup%
- \relax%
+ \begingroup%
+ \relax%
}%
\def\endgre@style@annotation{\endgroup}%
\def\gre@style@nabc{%
- \begingroup%
- \relax% we do nothing since colors are not implemented in PlainTeX
+ \begingroup%
+ \color{gregoriocolor}%
}
\def\endgre@style@nabc{\endgroup}%
\def\gre@changestyle#1#2[#3]{%
- \gdef\csname gre@style@#1\endcsname{\begingroup#2}%
- \gdef\csname endgre@style@#1\endcsname{#3\endgroup}%
+ \expandafter\gdef\csname gre@style@#1\endcsname{\begingroup#2}%
+ \expandafter\gdef\csname endgre@style@#1\endcsname{#3\endgroup}%
}%
\catcode`\@=\greoldcatcode
diff --git a/Master/texmf-dist/tex/luatex/gregoriotex/gsp-default.tex b/Master/texmf-dist/tex/luatex/gregoriotex/gsp-default.tex
index 2c2af57a84a..0426e613ced 100644
--- a/Master/texmf-dist/tex/luatex/gregoriotex/gsp-default.tex
+++ b/Master/texmf-dist/tex/luatex/gregoriotex/gsp-default.tex
@@ -22,51 +22,50 @@
%% First, the penalties
% penalty to force a break on a new line
-\xdef\grenewlinepenalty{-10001}%
+\grechangecount{newlinepenalty}{-10001}%
% penalty to prevent a line break
-\xdef\grenobreakpenalty{10001}%
+\grechangecount{nobreakpenalty}{10001}%
% penalty at the end of a syllable which is the end of a word
-\xdef\greendofwordpenalty{-100}%
+\grechangecount{endofwordpenalty}{-100}%
% penalty at the end of a syllable which is not the end of a word
-\xdef\greendofsyllablepenalty{-50}%
+\grechangecount{endofsyllablepenalty}{-50}%
% penalty at the end of a syllable which is just a bar, with something printed
% under it
-\xdef\greendafterbarpenalty{-200}%
+\grechangecount{endafterbarpenalty}{-200}%
% penalty right after a bar with nothing printed
-\xdef\greendafterbaraltpenalty{-200}%
+\grechangecount{endafterbaraltpenalty}{-200}%
% penalty at the end of the score
-\xdef\grefinalpenalty{0}%
+\grechangecount{finalpenalty}{0}%
% penalty at the end of a breakable neumatic element (typically at a space
% between elements)
-\xdef\greendofelementpenalty{-50}%
+\grechangecount{endofelementpenalty}{-50}%
% hyphenpenalty will be used in discretionaries, in Gregorio this is used for
% a bar with clef change for example. It also set \exhyphenpenalty. It should
-% be close to \greendafterbarpenalty
-\xdef\grehyphenpenalty{-200}%
+% be close to endafterbarpenalty
+\grechangecount{hyphenpenalty}{-200}%
% broken penalty is the vertical penalty inserted after a break on a clef change
% I'm not sure it should be set, but it might be useful...
-\xdef\grebrokenpenalty{0}%
+\grechangecount{brokenpenalty}{0}%
%% These macro enable the tuning of linepenalty, tolerance, pretolerance
%% and emergencystretch
-\def\grelooseness{-1}%
-\def\gretolerance{9000}%
+\grechangecount{looseness}{-1}%
+\grechangecount{tolerance}{9000}%
% Workaround for bug 842 (http://tracker.luatex.org/view.php?id=842)
% see http://tug.org/pipermail/luatex/2013-July/004516.html
% The idea is that we use discretionaries (explicit hyphens, though more than hyphens in our case) for clef changes, and we need to give them a special penalty, which is not taken into account if pretolerance is > -1 on LuaTeX < 0.80. For a more detailed explanation see http://tug.org/pipermail/luatex/2013-July/004516.html.
\ifnum\the\luatexversion < 78\relax %
- \global\def\grepretolerance{-1}%
+ \grechangecount{pretolerance}{-1}%
\else %
- \global\def\grepretolerance{\pretolerance}%
+ \grechangecount{pretolerance}{\the\pretolerance}%
\fi %
-\def\greemergencystretch{\emergencystretch}%
+\grecreatedim{emergencystretch}{\the\emergencystretch}{scalable}%
% By default, we don't care if a line of score is alone on the page,
% if you think it is bad, you can modify the two following values. Assigning
% 10000 to them will prevent all orphaned lines (this will certainly improve
% some spacings a lot).
-\def\grewidowpenalty{0}%
-\def\greclubpenalty{0}%
-
+\grechangecount{widowpenalty}{0}%
+\grechangecount{clubpenalty}{0}%
%%%%%%%%%%%%%%%%%%%
@@ -109,7 +108,7 @@
% space between elements which has the size of a note
\grecreatedim{glyphspace}{0.21877 cm plus 0.01822 cm minus 0.01822 cm}{scalable}%
% space before in-line custos
-\grecreatedim{spacebeforeinlinecustos}{0 cm plus 0 cm minus 0 cm}{scalable}%
+\grecreatedim{spacebeforeinlinecustos}{0.10938 cm plus 0.01822 cm minus 0.00911 cm}{scalable}%
% space before end-of-line custos
\grecreatedim{spacebeforeeolcustos}{0.3 cm plus 0 cm minus 0 cm}{scalable}%
% space before punctum mora and augmentum duplex
@@ -131,12 +130,11 @@
% stretching added in the case where the text of two syllables of the same word are
% separated with an automatic hyphen
\grecreatedim{intersyllablespacestretchhyphen}{0cm plus 0.05cm}{scalable}%
-% minimal space between letters of different words. Makes sense to have
-% the same plus and minus as interwordspacenotes.
-\grecreatedim{interwordspacetext}{0.38 cm plus 0.15 cm minus 0.05 cm}{scalable}%
+% minimal space between letters of different words.
+\grecreatedim{interwordspacetext}{1ex plus 0.15cm minus 0.05cm}{fixed}%
% Versions of interword spaces for euouae blocks
\grecreatedim{interwordspacenotes@euouae}{0.19 cm plus 0.1 cm minus 0.05 cm}{scalable}%
-\grecreatedim{interwordspacetext@euouae}{0.27 cm plus 0.1 cm minus 0.05 cm}{scalable}%
+\grecreatedim{interwordspacetext@euouae}{0.8ex plus 01.cm minus 0.05cm}{fixed}%
% versions of note spaces when the first note of the second syllable is an alteration
% those are used in euouae blocks
\grecreatedim{interwordspacenotes@alteration}{0.1 cm plus 0.07 cm minus 0.01 cm}{scalable}%
@@ -152,6 +150,8 @@
%
% space between two punctum inclinatum
\grecreatedim{punctuminclinatumshift}{-0.03918 cm plus 0.0009 cm minus 0.0009 cm}{scalable}%
+% space between two unison punctum inclinatum
+\grecreatedim{punctuminclinatumunisonshift}{0.05286 cm plus 0.00728 cm minus 0.00455 cm}{scalable}%
% space before puncta inclinata
\grecreatedim{beforepunctainclinatashift}{0.05286 cm plus 0.00728 cm minus 0.00455 cm}{scalable}%
% space between a punctum inclinatum and a punctum inclinatum deminutus
@@ -223,14 +223,14 @@
%
% minimal space between letters of different syllable texts for text around bars
% (new bar spacing algorithm only)
-\grecreatedim{interwordspacetext@bars}{0.15 cm}{scalable}%
+\grecreatedim{interwordspacetext@bars}{0.7ex}{fixed}%
% minimal space between letters of different syllable texts for text around bars,
% euouae context
-\grecreatedim{interwordspacetext@bars@euouae}{0.15 cm}{scalable}%
-\grecreatedim{interwordspacetext@bars@notext}{0.4 cm}{scalable}%
+\grecreatedim{interwordspacetext@bars@euouae}{0.7ex}{fixed}%
+\grecreatedim{interwordspacetext@bars@notext}{1ex}{fixed}%
% minimal space between letters of different syllable texts for text around bars,
% euouae context
-\grecreatedim{interwordspacetext@bars@notext@euouae}{0.3 cm}{scalable}%
+\grecreatedim{interwordspacetext@bars@notext@euouae}{0.7ex}{fixed}%
% rubber length that will be added around bars in new bar spacing algorithm
\grecreatedim{bar@rubber}{0 cm plus 0.22787 cm minus 0.02 cm}{scalable}%
% additional space that will appear around bars that are preceded by a custos and followed by a key.
@@ -280,7 +280,7 @@
% space at the beginning of the lines if there is no clef
\grecreatedim{noclefspace}{0.1 cm}{scalable}%
% space around a clef change
-\grecreatedim{clefchangespace}{0.01768 cm plus 0.00175 cm minus 0.01768 cm}{scalable}%
+\grecreatedim{clefchangespace}{0.27345 cm plus 0.14584 cm minus 0.01367 cm}{scalable}%
% When \gre@clivisalignment is 2, this distance is the maximum length of the consonants after vowels for which the clivis will be aligned on its center.
\grecreatedim{clivisalignmentmin}{0.3 cm}{scalable}%