4.0.0 carries with it some significant changes, implementing many new features (some of which have been long asked for), and systematizing the user interface to make it more consistent. Please make sure you look carefully at [the changelog](CHANGELOG.md) and [upgrade guide](UPGRADE.md).

# CHANGELOG
## [4.0.0-beta] - 2015-08-01
### Fixed
- Handling of the first syllable in gabc is now more consistent with the all other syllables. This centers the syllable correctly when using latin syllable centering (see [#42](https://github.com/gregorio-project/gregorio/issues/42)) and makes the use of styles less surprising in the first syllable (see [#135](https://github.com/gregorio-project/gregorio/issues/135)). - Handling of manually-placed custos is improved. In particular, a manual custos at the end of the score should no longer be lost when the bar happens to be at the end of the line. - Improved rendering of torculus resupinus flexus figures (see [#18](https://github.com/gregorio-project/gregorio/issues/18)). - Horizontal episema on the second note of a scandicus is now rendered in the correct place (see [#419](https://github.com/gregorio-project/gregorio/issues/419)). - The dot in a space directly above a punctum in a descending neume is now placed slightly higher in the space (see [#386](https://github.com/gregorio-project/gregorio/issues/386) and [Gna! bug 21737](https://gna.org/bugs/?21737)). - Choral signs are now positioned correctly around porrectus and torculus resupinus (see [#387](https://github.com/gregorio-project/gregorio/issues/387) and [Gna! bug 22025](https://gna.org/bugs/?22025)). - Gregorio will now try harder to select an appropriate pitch for an automatic custos (`z0`) on a clef change (see [#446](https://github.com/gregorio-project/gregorio/issues/446)). If results are not satisfactory, use a manual custos (`+`) to select a pitch manually. - The centering of styled text under notes is now correct (See [#509](https://github.com/gregorio-project/gregorio/issues/509)). - Space for above lines text is now correctly added as needed, even at the beginning of a score (see [#533](https://github.com/gregorio-project/gregorio/issues/533)).

### Changed
- A new, more systematic naming scheme has been created for GregorioTeX macros. The naming scheme should reduce the chances of naming conflicts with other packages and make it easier to identify what a particular macro is for and how to use it. Most user functions have been renamed in order to bring them into line with this scheme. Please see GregorioRef for a complete list of the new function names. In general, old names will still work, but they will raise a deprecation warning and will be dropped from GregorioTeX in a future relase. - The spacing algorithm has completely changed, expect your scores to look quite different (better we hope).
- Lines are now aligned on the leftmost note instead of the leftmost letter.
- Some glyph shapes are improved a little in greciliae, it should be noticeable especially for porrectus. - The `O` modifier in gabc now has expanded uses beyond the salicus `(egOi)`. A stemmed oriscus will appear on a lone pitch `(gO)` or a followed by a lower pitch `(gOe)` (see [#76](https://github.com/gregorio-project/gregorio/issues/76)). A virga strata will appear on the second note of two ascending pitches `(giO)`. - With thanks to *Abbazia Mater Ecclesiae (IT)* for drawing the new shapes, the strophicus, liquescent strophicus, liquescent oriscus, and liquescent punctum inclinatum in greciliae have changed to better differentiate them from other shapes. If you prefer the old shapes use:
```
    \grechangeglyph{Stropha}{greciliae}{.caeciliae}
    \grechangeglyph{StrophaAucta}{greciliae}{.caeciliae}
    \grechangeglyph{OriscusDeminutus}{greciliae}{.caeciliae}
    \grechangeglyph{PunctumInclinatumAuctus}{greciliae}{.caeciliae}
```
- Default initial sizes have been chosen so that they are more appropriate when an infinitely scaling font is loaded. LaTeX will make an automatic substitution of the closest avaialble size when such a font is not used. - Porrectus deminutus and torculus resupinus deminutus glyphs have been updated to more closely match the current Solesmes books (see [#143](https://github.com/gregorio-project/gregorio/issues/143)). If you prefer the old forms, use:
```
    \grechangeglyph{Porrectus*}{*}{.alt}
    \grechangeglyph{TorculusResupinus*}{*}{.alt}
```
- New (much) improved drawings for letter bars (for Versicle, Antiphon, etc.). You must fine-tune them if you use a text font other than Linux Libertine, see [UPGRADE.md](UPGRADE.md) for details. - The default extension `gregorio` (the executable program) will use when it produces GregorioTeX files has been changed from `.tex` to `.gtex`. Any calls to `\includescore` that use the old extension should be changed appropriately.
- Horizontal episema improvements:
- A horizontal episema on the first two notes of a porrectus is now rendered differently than a horizontal episema on all three notes of a porrectus. It will no longer reach to the right side of the porrectus (see [#70](https://github.com/gregorio-project/gregorio/issues/70)). - Similar to appending `0` to the `_` to force a horizontal episema to appear below a note, `1` may now be appended to the `_` to force a horizontal episema to appear above the note. These may be used simutaneously, by adding both `_0` and `_1` to the same note (see [#40](https://github.com/gregorio-project/gregorio/issues/40)). - It is now possible to render a small horizontal episema. To use it, append `3` (for left-aligned), `4` (for center-aligned), or `5` (for right-aligned) to the `_` used for adding the horizontal episema in gabc (see [#40](https://github.com/gregorio-project/gregorio/issues/40)). - Horizontal episema "bridging" has been made more consistent and is now possible on an episema that is below the note. (see [#389](https://github.com/gregorio-project/gregorio/issues/70)). - It is now possible to suppress the automatic horizontal episema "bridging" across spaces within a syllable. To use it, append `2` to the `_` on the note before the space you do not want bridged (see [#72](https://github.com/gregorio-project/gregorio/issues/72)). - A horizontal episema will no longer overlap with a vertical episema on the same note (see [#395](https://github.com/gregorio-project/gregorio/issues/395)). - The dot after a torculus whose last note is on a line will now appear below the line (see [#386](https://github.com/gregorio-project/gregorio/issues/386)). If you do not like the automatic placement of a dot after any note on a line (not just the torculus), you may specify a `0` or `1` after the `.` to force the dot to appear below or above the line, respectively. - Choral sign dimensions have been renamed (see [#387](https://github.com/gregorio-project/gregorio/issues/387)):
  - `beforechoralsignspace` is now `beforelowchoralsignspace`.
  - `lowchoralsignshift` is now `choralsigndownshift`.
- `highchoralsignshift` is now `choralsignupshift` and its sign is now inverted. - Style for score elements can now be changed via the `\grechangestyle` command. This replaces the mixed system of styling commands which could be redefined for some elements and specialized commands for applying styles to others. See GregorioRef for details. - Annotations with more than two lines are now supported (originally requested [on the user list](http://www.mail-archive.com/gregorio-users%40gna.org/msg00164.html) when two line annoations were made possible). To build the annotation box use `\greannoataion`. See GregorioRef for details. - The `annotation` header field in `gabc` now places its value(s) above the inital if no annotation is explicitly given by the user via `\greannotation` (see [#44](https://github.com/gregorio-project/gregorio/issues/44)). - `\grescaledim` now takes two arguments to bring it into line with the systemized naming scheme. The second argument should be `yes`, `true`, or `on` if you want the distance to scale when the staff size changes. Anything else will make the distance independent of the staff size. - Gregorio is now able to make individual lines of a score taller, when the position of the note require extra space, without affecting the rest of the lines. This is the new default behavior. See [UPGRADE.md](UPGRADE.md) and GregorioRef for details (for the change request, see [#59](https://github.com/gregorio-project/gregorio/issues/59)). - Braces are now rendered using MetaPost by default. This allows the line weight to remain more consistent when braces are stretched. The old behavior (which uses the score font instead) can be restored using `\gresetbracerendering{font}`. See [UPGRADE.md](UPGRADE.md) and GregorioRef for details (for the change request, see [#535](https://github.com/gregorio-project/gregorio/issues/535)).

### Added
- With thanks to Jakub Jelínek, St. Gallen style adiastematic notation is now handled through [nabc syntax](http://gregoriochant.org/dokuwiki/doku.php/language) (see GregorioNabcRef.pdf for details and [the new example](examples/FactusEst.gabc)). Only one line above the notes is currently handled. This is a preview, backward incompatible change are possible in future releases. - `<eu>` tag in gabc to delimit *Euouae* block in the score. It prevents linebreaking and makes spaces tighter. See [UPGRADE.md](UPGRADE.md) for details. - With thanks to Fr. Jacques Peron, it is now possible to embed short gabc snippets directly into a TeX document. The command is `\gabcsnippet`. See GregorioRef.pdf for full details.
- `[ub:x:y mm]` tag, similar to `[ob:x:y mm]`, but for braces under notes.
- `[ob:x{]` and `[ob:x}]` tag pairs for braces where the length is determined by the distance of the opening and closing tags. `[ocb:x{]` with `[ocb:x}]`, `[ocba:x{]` with `[ocba:x}]` and `[ub:x{]` with `[ub:x}]` can be used similarly for other kinds of braces and brackets. - The ability to substitute an arbitrary glyph for one used by GregorioTeX. This adds four macros:
  - `\grechangeglyph` to make a score glyph substitution
  - `\greresetglyph` to remove a score glyph substitution
- `\gredefsymbol` for (re-)defining an arbitrary non-score glyph that scales with the text - `\gredefsizedsymbol` for (re-)defining an arbitary non-score glyph that requires a point-size to be specified.
See GregorioRef.pdf for full details.
- Added `--with-kpathsea` option to configure script, to check input and output file against `openout_any` and `openin_any` settings of texmf.cnf (TeXLive only). Necessary to be included in `shell_escape_commands` in TeXLive. - Support for `lualatex -recorder`. Autocompiled gabc and gtex files will now be properly recorded so that programs like `latexmk -recorder` can detect the need to rebuild the PDF when a gabc file changes. - A vertical episema may now be forced to appear above or below a note. In gabc, use `'0` for the vertical episema to appear below and `'1` for the vertical episema to appear above (see [#385](https://github.com/gregorio-project/gregorio/issues/385)). - The first syllable and first letter of the first syllable that is *not* interpreted as the initial of the score are now passed to macros that allow them to be styled from TeX. The first syllable is passed to `\GreFirstSyllable#1` and the first letter of the first syllable is passed to `\GreFirstSyllableInitial#1`. - The final line of a score may now be forced to be fully justified (rather than ragged) using `\gresetlastline{justified}` before including the score (see [#43](https://github.com/gregorio-project/gregorio/issues/43)). Use `\gresetlastline{ragged}` to switch back to a ragged last line. - `\gresethyphen{force}` forces GregorioTeX to put a hyphen between each syllable in a polysyllabic word. `\gresethyphen{auto}` restores behavior to normal. - Support for custom vowel centering rules. Put a file called `gregorio-vowels.dat` into your project directory or into a directory accessible from TEXMF and add the header `language: name;` to your gabc file. The `gregorio-vowels.dat` file describes how vowels are to be located in the *name* language. See GregorioRef for details. - `\gresetlinecolor` takes a named color as an argument. As a result, the red staff lines can be made consistent with the text, even when the user changes `gregoriocolor` with `\gresetlinecolor{gregoriocolor}`. Addresses [#21787 on the old tracker](https://gna.org/bugs/index.php?21787). - Package option `deprecated=false`. Causes all deprecated commands to raise an error and halt TeX. - The ability to add LilyPond-like point-and-click textedit links into the PDF file to aid with debugging scores. This must be explicitly enabled and **should be turned off** when producing files for distribution as it embeds path information into the output. To enable this, you must pass the `-p` option to gregorio when compiling gabc files and add `\gresetpointandclick{on}` before including the score. It may be toggled back off with `\gresetpointandclick{off}`. See GregorioRef for details (for the change request, see [#528](https://github.com/gregorio-project/gregorio/issues/528)). - New score fonts with glyphs unique to Dominican chant. These fonts replace the epiphonus and the augmented liquescents with corresponding figures from Dominican liturgical books. To use the new fonts, pass the `[op]` option to the `\gresetgregoriofont` command (i.e., `\gresetgregoriofont[op]{greciliae}`). See GregorioRef for details (for the change request, see [#1](https://github.com/gregorio-project/gregorio/issues/1)). - Support for "punctum cavum inclinatum" and "punctum cavum inclinatum auctus" figures. The gabc for these are `(Gr)` and `(Gr<)`, where `G` is the capitalized pitch letter.

### Deprecated
- `\GreSetStaffLinesFormat`, supplanted by `\grechangeformat{normalstafflines}...` - `\greinitialformat`, if you were redefining this command, use `\grechangeformat{initial}...` instead - `\grebiginitialformat`, if you were redefining this command, use `\grechangeformat{biginitial}...` instead - `\gretranslationformat`, if you were redefining this command, use `\grechangeformat{translation}...` instead - `\greabovelinestextstyle`, if you were redefining this command, use `\grechangeformat{abovelinestext}...` instead - `\grelowchoralsignstyle`, if you were redefining this command, use `\grechangeformat{lowchoralsign}...` instead - `\grehighchoralsignstyle`, if you were redefining this command, use `\grechangeformat{highchoralsign}...` instead - `centering-scheme` gabc header, supplanted by `\grelyriccentering` in TeX. See GregorioRef for syntax. - `\setaboveinitialseparation`, supplanted by `\grechangedim{annotationseparation}...` - `gregoriotex-font` gabc header, supplanted by `\gresetgregoriofont` in TeX. See GregorioRef for syntax.
- `\scorereference`, supplanted by `\grescorereference`
- `\GreScoreReference`, supplanted by `\grescorereference`
- `\commentary`, supplanted by `\grecommentary`
- `\setgretranslationcenteringscheme`, supplanted by `\gresettranslationcentering`
- `\englishcentering`, supplanted by `\gresetlyriccentering{syllable}`
- `\defaultcentering`, supplanted by `\gresetlyriccentering{vowel}`
- `\setgrefactor`, supplanted by `\grechangestaffsize`
- `\forcecompilegabc`, supplanted by `\gresetcompilegabc{force}`
- `\autocompilegabc`, supplanted by `\gresetcompilegabc{auto}`
- `\nevercompilegabc`, supplanted by `\gresetcompilegabc{never}`
- `\includescore`, supplanted by `\gregorioscore`
- `\grenoscaledim`, supplanted by `\grescaledim{...}{no}`
- `\gresetdim`, supplanted by `\grecreatedim`
- `\setstafflinethickness`, supplanted by `\grechangestafflinethickness`
- `\grecoloredlines`, supplanted by `\gresetlinecolor`
- `\greredlines` and `\redlines`, supplanted by `\gresetlinecolor{gregoriocolor}` - `\grenormallines` and `\normallines`, supplanted by `\gresetlinecolor{black}`
- `\greremovelines`, supplanted by `\gresetlines{invisible}`
- `\gredonotremovelines`, supplanted by `\gresetlines{visible}`
- `\GreHidePCLines`, supplanted by `\gresetlinesbehindpunctumcavum{invisible}` - `\GreDontHidePCLines`, supplanted by `\gresetlinesbehindpunctumcavum{visible}` - `\GreHideAltLines`, supplanted by `\gresetlinesbehindalteration{invisible}` - `\GreDontHideAltLines`, supplanted by `\gresetlinesbehindalteration{visible}`
- `\gresetnlbintranslation`, supplanted by `\gresetbreakintranslation`
- `\greblockcustos`, supplanted by `\greseteolcustos{manual}`
- `\greenableeolshifts`, supplanted by `\greseteolshifts{enable}`
- `\gredisableeolshifts`, supplanted by `\greseteolshifts{disable}`
- `\GreUseNoramalHyphen`, supplanted by `\greseteolhyphen{normal}`
- `\GreUseZeroHyphen`, supplanted by `\greseteolhyphen{zero}`
- `\greremoveclef`, supplanted by `\gresetclef{invisible}`
- `\grenormalclef`, supplanted by `\gresetclef{visible}`
- `\AddHEpisemusBridges`, supplanted by `\gresethepisemus{bridge}`
- `\RemoveHEpisemusBridges`, supplanted by `\gresethepisemus{break}`
- `\UseAlternatePunctumCavum`, supplanted by `\gresetpunctumcavum{alternate}`
- `\UseNormalPunctumCavum`, supplanted by `\gresetpunctumcavum{normal}`
- `\clivisalignmentalways`, supplanted by `\gresetclivisalignment{always}`
- `\clivisalignmentnever`, supplanted by `\gresetclivisalignment{never}`
- `\clivisalignmentspecial`, supplanted by `\gresetclivisalignment{special}`
- `\greusedefaultstyle`, supplanted by `\gresetglyphsytle{default}`
- `\greusemedicaeastyle`, supplanted by `\gresetglyphsytle{medicaea}`
- `\greusehufnagelstyle`, supplanted by `\gresetglyphsytle{hufnagel}`
- `\greusemensuralstyle`, supplanted by `\gresetglyphsytle{mensural}`


### Removed
- GregorioXML and OpusTeX output
- Support for `lilypond-preamble`, `musixtex-preamble`, and `opustex-preamble` gabc headers.
- Support for the font Gregoria.
- Chironomy markings (gabc `u` and `U`), which were not working correctly in the first place. - `\Vbarsmall`, `\greletterbar`, and `\greletteraltbar`, supplanted by the new glyph system, see [UPGRADE.md](UPGRADE.md). - `\GreSetAboveInitialSeparation`, supplanted by `\grechangedim{annotationseparation}...`
- `\includetexscore`, supplanted by `\gregorioscore[n]`
- `\greincludetexscore`, supplanted by `\gregorioscore[n]`
- `\includegabcscore`, supplanted by `\gregorioscore[f]`
- `\greincludegabcscore`, supplanted by `\gregorioscore[f]`
- `\GreSetSpaceBeforeInitial`, supplanted by `\grechangedim{spacebeforeinitial}...` - `\GreSetSpaceAfterInitial`, supplanted by `\grechangedim{spaceafterinitial}...` - `\GreSetAboveInitialSeparation`, supplanted by `\grechangedim{annotationseparation}...`
- `\gresetstafflinefactor`, supplanted by `\grechangestafflinethickness`

# UPGRADE
### Command Name Systemization

A naming scheme for GregorioTeX commands has been established and so most commands have had their names changed in order to bring them into line with the new scheme. Some have also had their syntax changed. Briefly, user commands all now have a `\gre` prefix (to prevent name colisions with other packages) and groups of commands which altered a single setting have been replaced by a single command which takes an argument specifying the value of the setting. The notable exception to this are the two main commands: `\gregorioscore` (replaces `\includescore`) and `\gabcsnippet`. See GregorioRef for the complete list of new command names and their syntax.

Old command names should still work for now, but will raise a deprecation warning which indicates the name of the correct command to use. Exceptions are noted below:

- `\grescaledim`: This function now takes two arguments. The second should be `yes`, `true`, or `on` to acheive the old behavior.

Additionally a new package option has been added. The option `deprecated=false` is helpful if you wish to ensure that your TeX file is compliant with the new naming system. This option causes all deprecated commands to raise an error, halting TeX, thus allowing you to actively find all deprecated commands and update them in your TeX file.

### Barred letters

If you use barred letters and a font other than libertine in your document, you must adjust the horizontal placement of the bar on the letter. To do so, use the `\gresimpledefbarglyph` macro. For example, use `\gresimpledefbarredsymbol{A}{0.3em}` in your preamble, tweaking the second argument to have a good result (same for R and V). If using LaTeX, you can alternately use the `\grelatexsimpledefbarredsymbol` macro, which allows control over bold and italic versions of the barred letter. See the documentation of `\gresimpledefbarredsymbol` and `\grelatexsimpledefbarredsymbol` in the PDF documentation for more details.

If you were using `\Vbarsmall`, `\greletterbar`, and `\greletteraltbar`, you must use `\gresimpledefbarredsymbol` to redefine your barred letters (see PDF documentation for details).

### .gtex extension

The `gregorio` executable now uses the `.gtex` extension by default (instead of `.tex`, formerly) for GregorioTeX files that it produces. If you use `\includescore{file.tex}`, then you should change this to `\includescore{file.gtex}` or use the newer autocompilation feature.

### Custom spacings

If you are using custom spacings, please update the values of `interwordspacetext`, `intersyllablespacenotes` and `interwordspacenotes` to match their new definitions (in the comments in `gsp-default.tex`).

### Euouae blocks

You are advised to surround you *Euouae* blocks by the new `<eu>` tag. For instance,

    E(i) u(i) o(i) u(h) a(h) e(fe..)

can become

    <eu>E(i) u(i) o(i) u(h) a(h) e</eu>(fe..)

This will prevent line breaking, so if you were using so called *no linebreak areas* (with `{` in gabc) just for Euouae blocks, you can switch to this new tag, it will make things clearer and allow further spacing customization.

### Horizontal episema improvements

Changes to the way the horizontal episema is placed and "bridged" to other notes within the syllable may cause Gregorio to render things differently in the more esoteric (or bug-ridden) cases. If you are depending on the old behavior, you might need to add suffixes to the `_` in gabc to get what you want:

- Add `0` to force the episema to appear below the note.
- Add `1` to force the episema to appear above the note.
- Add `2` to prevent Gregorio from attempting to connect this episema to the next.
- Add `3` to use a small episema, aligned to the left of the note.
- Add `4` to use a small episema, centered in the middle of the note.
- Add `5` to use a small episema, aligned to the right of the note.

Note: `3`, `4`, and `5` encompass a new feature and are listed here only for completeness.

### Choral sign dimension renames

- `beforechoralsignspace` has been renamed to `beforelowchoralsignspace`.
- `lowchoralsignshift` has been renamed to `choralsigndownshift`.
- `highchoralsignshift` has been renamed to `choralsignupshift` and its sign inverted.

### Styling score elements

Changing the styling of text elements of the score (the initial, translations, etc.) formerly required the user to redefine a command which took an argument while changing the styling of the staff lines had a command specialized to that purpose. All formats can now be changed via the `\grechangestyle` command. This command takes two or three arguments. The first argument, required, is the format to be altered. The defined formats are:

- `greinitial`: normal initials
- `grebiginitial`: big (2-line) initials
- `translation`: translation text
- `abovelinestext`: above lines text (`alt` in gabc)
- `normalstafflines`: the full length staff lines
- `additionalstafflines`: the short lines behind notes above or below the staff. This style defaults to inheriting changes to `normalstafflines`.
- `lowchoralsign`: low choral signs
- `highchoralsign`: high choral signs
- `modeline`: the mode annotation above the initial if the content of the mode header in gabc is rendered.

The second argument, also required, is the code necessary to turn on the styling. The third argument, optional and enclosed in square braces (`[` and `]`), is the code necessary to turn off the styling (e.g. if the code to turn on the styling contains a `\begin{environment}` then the code to turn it off must have the matching `\end{environment}`. The third argument is optional because not all styling commands have explicit off switches.

While the old way of changing the styles is still supported, you should switch to this new method to future proof your scores.

Examples: Let's say you previously had the following in your LaTeX document:

    \renewcommand{\greabovelinetextstyle}[1]{{\small\it #1}}

This would have made the text which was wrapped with `<alt></alt>` in your gabc file appear small and italicized in your score. To update this to the new system you would replace the above line with the following:

    \grechangestyle{abovelinetext}{\small\it}

### Centering scheme

The gabc `centering-scheme` header is now deprecated and will disappear soon. Use the `\grelyriccentering` command from TeX instead. If you were using `centering-scheme: latine;` in gabc, now use `\grelyriccentering{vowel}` in the TeX file that includes the gabc. If you were using `centering-scheme: english;` in gabc, now use `\grelyriccentering{syllable}` in the TeX file that includes the gabc.

Using the gabc header will, in this release, do that for you, but it will produce a deprecation warning. This header will no longer be available in the next release.

### Annotations

Support for annotations with an arbitrary number of lines has been added. To facilite this, the old functions which added annotations to specific lines (either the first or the second) are consolidated into a single function `\greannotation` which builds the annotations line by line. If you used the old functions for adding annotations, then you should switch out those functions for the new one.

The distance associated with the annotations has also been renamed (from `aboveinitialseparation` to `annotationseparation`) and added a new one (`annotationraise`). The first still controls the spacing between the lines of the annoation. The second controls the position of the annotation relative to the score, and thus replaces the second argument in the old functions. By default, annotations are positioned so that the baseline of the first line is aligned with the top line of the staff. Positive values of `annotationraise` will push the annotation up while negative values will push it down. If you were previously using the second argument to `\gresetfirstlineaboveinitial` to adjust the spacing, you will need to convert this to call:

    \grechangedim{annotationraise}{0.1cm}{1}

You will need to play with the vaule of the distance a bit to acheive the desired positioning.

As is normal, calls to the deprecated command names will raise a warning but still work. However there is one caveat: the old functions will always add the annotations to the bottom of the annotation list, regardless of the order in which they are called. Previously, you could call `\gresetsecondannotation` before `\gresetfirstannotation` and still have the first annotation appear on top. Which annotation appears on top is now determined by the order in which the functions are called.

#### The Annotation Header

The `annotation` header in gabc files now passes its value(s) to gregoriotex for placement above the inital letter of the score. Up to two `annotation` field are supported, the first for the first line above the initial, and the second field for the second line.

    annotation: 1 Ant.;
    annotation: VII a;

Full TeX markup is also accepted:

    annotation: {\color{red}1 Ant.};
    annotation: {\color{red}VII a};

If the user already defined annotation(s) in the main TeX file via `\greannotation` then the `annotation` header field will not overwrite that definition.

#### Variable Height Line Spacing

Gregorio is now able to make individual lines of a score taller, when the position of the note require extra space, without affecting the rest of the lines. This is the new default behavior. If you prefer the uniform line heights of earlier versions, use:

    \gresetlineheightexpansion{uniform}

Within a TeX document, you can switch back to variable line heights by using:

    \gresetlineheightexpansion{variable}

You can freely switch between the two behaviors within a TeX document.

This new behavior requires two passes (two runs of lualatex) in order to do the calculation correctly. On the first pass, lualatex will warn you with the message

Module gregoriotex warning: Line heights or variable brace lengths may have changed. Rerun to fix.

As you edit your document, lualatex will only show this warning if an extra run is required.

Alternately, you can use something like latexmk to automate this activity. Instructions for using latexmk are outside the scope of this document. Please consult the latexmk documentation for more information on using it.

It should also be noted that this new feature, besides requiring two passes, also imposes a small performance penalty on each pass to do the additional computation. This is negligible for small documents, but may have more noticeable impact as documents get larger.

#### MetaPost brace rendering

Gregorio now uses MetaPost (by default) to render braces. This allows fine-tuning to better maintain optical line weight when braces are stretched. Since the shapes are slightly different, you may prefer the old behavior, which may be restored by using:

    \gresetbracerendering{font}

Within a TeX document, you can switch back to MetaPost brace rendering by using:

    \gresetbracerendering{metapost}

You can freely switch between the two behaviors within a TeX document.
--
✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝
Br. Samuel, OSB
(R. Padraic Springuel)

PAX ☧ ΧΡΙΣΤΟΣ

_______________________________________________
Gregorio-users mailing list
[email protected]
https://mail.gna.org/listinfo/gregorio-users

Reply via email to