Skip to content

Releases: gregorio-project/gregorio


13 Mar 18:42
Choose a tag to compare

With the close of the TeX Live 2021 pretest just around the corner, we’re finalizing the 6.0.0 release. This release is will not be available through tlmgr for TeX Live 2020, but can be installed using the appropriate method for your platform if you want it before the release of TeX Live 2021.


[6.0.0] - 2021-03-13


  • Fixed some problem in 900_gregorio.xml (Scribus render frame tool). First, the use of filecontents rather than filecontents* was leading to a comment header that made it impossible for Gregorio to find the gabc headers in the temporary score file. Further, some of the indenting (which makes the file more human readable) was leading to errors in the formatting of the created files because they are processed in a way which handles whitespace differently from XML. See #1457.
  • spacelinestext is now based on the lyric font size instead of being a fixed distance. As a result, large lyrics should no longer overlap with low notes. See #1261.
  • Added parenthesized figures for virgula (gabc: `?), divisio minima (gabc: ,?), flat (gabc: x?), natural (gabc: y?), and sharp (gabc: #?). See #1475.
  • Staff line thickness is now set in gsp-default.tex. This corrects a problem with the staff lines changing thickness when the default spacing configuration is loaded while the staff size is something other than the default (17). See #1461.
  • Corrected interaction issues between text styles and ligatures. The LaTeX commands like \textit insert italics correction, preventing ligatures being formed between their arguments if two occur sequentially. On the other hand the switches like \itshape do not. Since gregorio breaks up syllables around the vowel and then applies the formating commands to each part, this behavior showed up. We switch to using the switches to avoid this (except for underlining, for which a switch does not exist). We also fix this for color tags by loading luacolor which changes how the \color tag is implemented to allow ligatures to span groups. See #1444.
  • A reuse of a save register led to the \hyphenpenalty not being restored correctly at the end of the score. All save registers are now clearly identified by when they are used so as to make it harder to accidentally use the wrong one. See posts on mailing list.
  • Fixed an overly specific find/replace in snippets that that led to \par being able to slip into the snippet file under certain circumstances (and there by causing compilation to fail). See #1497.
  • Updated to use iftex package (the sucessor to ifluatex). See #1481.


  • Default spacings are now designated internal and thus always loaded. gsp-sample.tex is added to the doc folder to show users how to create their own custom spacing configuration. As part of this change, spacing configuration files no longer need to be complete. Since the default configuration is always loaded at package startup, all needed penalties and spacings will be defined and the user's configuration file need only specify those whose value they wish to customize. Addresses issues raised in #1460.
  • Added additional message to verbose output of command-line tool to prevent confusion when a custom Latin vowel convention is found that the internal Latin rules will be used. See #1470.
  • Added $ in gabc text to prevent special interpretation of the character that follows. See #1515
  • GregorioTeX will now look in additional places for scores. Users can specify paths to look in using \gresetgregpath. If scores are not found in the current working directory or the list of provided paths, we fall back on kpse to try and find them. See #1395.
  • Added the ability to toggle the visibility of the translation and above lines text. See user request on mailing list.


  • The space between a non-punctum inclinatum and the upright punctum inclinatum is renamed to uprightpunctuminclinatumshift. This helps to better distinguish it from punctuminclinatumunisonshift (the space between two consecutive ascending or descending puncta inclinata on the same line). See #1507.
  • noteadditionalspacelinestext now calculates the actual amount of additional space needed by low notes. To enable the old behavior (when noteadditionalspacelinestext is set by the user), use \gresetnoteadditionalspacelinestext{manual}. See #1521 and #1526.


  • \gresethyphenprotrusion{percentage}, supplanted by \gresetprotrusionfactor{eolhyphen}{factor}. Note that the value the new command takes is a factor rather than a percentage.



Upright punctum inclinatum

Gregorio will now use an "upright" punctum inclinatum shape for a series of unison punctum inclinatum notes over a given syllable. When there is a single punctum inclinatum, Gregorio will use a heuristic to choose a shape. In any of these cases, if the result is not satisfactory, especially in context with nearby syllables, you may select a different shape by using 0 (for the descending shape) or 1 (for the ascending shape) after the capitalized letter indicating the punctum inclinatum. Forced selection of the upright shape is also possible by using 2 after the capitalized letter indicating the punctum inclinatum.

GABC escape character

In GABC text, the dollar sign ($) is now an "escape character" which prevents any special interpretation of the single character which follows the $. This allows you to put things like parentheses in text (use $(), but it also prevents other special interpretation of the character that follows (e.g., $: prevents auto-protrusion for the colon and $- prevents hyphenation handling of the dash). In order to send a $ to TeX, use $$ to escape the dollar sign.

If you had used the $ for some reason in your GABC text, this change will break your score. You will need to change all $ in your text to $$ to retain the old behavior.


06 Apr 21:00
Choose a tag to compare

This release fixes bugs found while testing against the TeX Live 2019 Pretest.

[5.2.1] - 2019-04-06


  • Project names with quotes in them no longer cause GregorioTeX to not be able to find the executable. See #1416.
  • Eliminated implicit casting from float to integer in string formatting (something no longer allowed in Lua 5.3)


10 Mar 21:42
Choose a tag to compare

The release intended for TeX Live 2019.

[5.2.0] - 2019-03-10


  • latin is now supported as a valid language name. This brings Latin into line with other languages where both titlecased and lowercased version of the language name (e.g. English and english) are both allowed.


  • Added support for two and three letter language codes for supported languages. This list of codes (and language names) was used for this support. No new languages are supported as a result of this change, just different ways of specifying the existing names.
  • A non-rotated diamond-shaped variant of the punctum inclinatum. Append a 2 in gabc to the capitalized note pitch letter to force gregorio to use this shape. Otherwise, gregorio will try to use it when a string of these notes is at the unison within a syllable. See #1425.
  • Support for an eighth bar (nicknamed divisio "minimis") by using ^ in gabc (see #1424).
  • 8 new St. Gall neume glyphs have been added to the gregall font.


25 Mar 19:10
Choose a tag to compare

This is merely a patch to fix small problems in the documentation.


11 Mar 20:38
Choose a tag to compare

This is the official release which is designated for inclusion in TeXLive 2018. It will work with older systems as well using the usual manual installation methods.

[5.1.0] - 2018-03-11


  • Added support for virgula (gabc: `0) and divisio minima (gabc: ,0) on the ledger line above the staff (see #1370).
  • Added support for a dotted bar (gabc: :?) (See #1360 and #1387)
  • 10 new St. Gall neume glyphs have been added to the gregall font (see #1328, #1330, #1337, #1340, #1341, #1342, #1343, #1345).
  • 4 new Laon neume glyphs have been added to the grelaon font.
  • A more modern-looking sharp symbol has been added to the greciliae font. To switch to this, use \grechangeglyph{Sharp}{greciliae}{.modern}\grechangeglyph{SharpHole}{greciliae}{.modern} in your TeX file. See #1399.
  • Added documentation note about loading microtype after gregoriotex (see #1364).


  • Fixed issue with Tex Live 2017 latexmk not detecting auto-compiled gabc files as dependencies (see #1367).
  • Fixed issue where an altered note (glyph) throws off the position of an episema in the glyph that immediately precedes it (see #1379).


24 May 21:45
Choose a tag to compare

This is purely a CTAN release. We discovered that occasionally the package code was unable to locate the gregorio executable in the TeXLive 2017 pretest. While unable to determine the exact conditions to replicate this bug consistently, we have come up with a work around which avoids the problematic code.

[5.0.2] - 2017-05-24

  • Worked around an issue discovered during the TeX Live 2017 pre-test. See #1362.


16 Apr 19:43
Choose a tag to compare

Just a simple bugfix for Windows users. If you're not using Windows and have already upgraded to v5.0, then you can safely ignore this release.


[5.0.1] - 2017-04-16

  • Fixed a bug in the TeXLive compatibility code for Windows users. Thanks to Akira Kakuto for the catch.


15 Apr 14:29
Choose a tag to compare

Just in time (or perhaps just a hair late) for the TeXLive 2017 pretest.



The autocompile option is now the default option for the behavior of \gregorioscore. If you want to go back to the old, manual behavior, then you should pass the nevercompile option when loading gregoriotex.

Additional fonts

With the addition of more cavum shapes, the number of font options which come with Gregorio (the package) by default has been reduced in order to control the download size. From now on only Greciliae (and its "-op" Dominican variant) will be installed by default. The Gregorio and Grana Padano fonts, as well as their "-op" Dominican variants, will now be available as a separate download. If you were using these fonts, either download and install them or switch to Greciliae.

To install the new versions of Gregorio (the font) and Grana Padano, unzip, navigate to the uncompressed folder in Terminal (or Command Prompt on Windows) and execute texlua install_supp_fonts.lua after you have installed the main Gregorio distribution. This script will look for the location of Greciliae and copy the other fonts to that location. If you wish to control the installation of the fonts manually, the script takes an optional argument with one of the following values:

  • auto (optional): the same folder as Greciliae
  • system: the appropriate font folder in $TEXMFLOCAL
  • user: the appropriate font folder in $TEXMFHOME
  • <dir>: the name of an alternate texmf root directory you want to use

Additionally, if you are building the fonts yourself from a git clone, and install_supp_fonts.lua will install all the fonts you have built, not just the ones they are normally distributed with.

Note: All the above methods assume you only need to access the fonts from within a TeX document (and thus are designed to put them into the correct folder in a texmf tree). If you want to use the fonts in other programs, then you will need to consult the documentation appropriate to your platform and/or the program and manually move, copy, or link the fonts to the necessary location.

Ledger lines

As of version 5.0, ledger lines are extended through notes on either side of a ledger line that crosses a stem, as long as the notes are within the same element.

The algorithm for this is simple so it can be predictable, and it cannot take into account spacing adjustments made it TeX. This means it may not produce the exactly desired results. In order to get the results you want, you can override the automatic behavior in gabc:

  • [oll:1] will force an over-the-staff ledger line on a note.
  • [oll:0] will suppress an over-the-staff ledger line on a note.
  • [ull:1] will force an under-the-staff ledger line on a note.
  • [ull:0] will suppress an under-the-staff ledger line on a note.

The other oll and ull forms take precendence over and will interfere with the above settings, so if you are using them, you may need to adjust them to get the output you want.

Note: You may need to use a construct such as /! to keep notes that are separated in the same element. For example, abcV is two elements (ab and cV), so the ledger line on b is not extended to cV. In contrast, ab/!cV is one element, so the ledger line on b is extended to cV.

End-of-line hyphen protrusion factor

As of version 5.0, the \gresethyphenprotrusion{percentage} command is deprecated. To set this protrusion factor, use \gresetprotrusionfactor{eolhyphen}{factor} instead. Note that the factor taken by the new command is a factor rather than the percentage taken by the deprecated command, so for example, use \gresetprotrusionfactor{eolhyphen}{0.5} instead of \gresethyphenprotrusion{50}.

Oriscus orientation at the unison

As of version 5.0, when the note after the oriscus is at the same pitch as the oriscus, the oriscus will point towards the first non-unison note after the oriscus or downwards if at the end of the score. Use the 0 (for downwards) 1 (for upwards) modifiers to force a different orientation.

Elisions in vowel centering

As of version 5.0, elisions after a vowel centering prefix will not cause the center to be placed on the vowel at the end of the prefix. Since elisions are unvoiced vowels, this makes more sense than the previous behavior. However, if this change does not produce your desired output, you may surround the center manually with { and } in gabc.


[5.0.0] - 2017-04-15


  • The printing of the commentary box is no longer tied to the printing of the inital. As a result it is now possible to have a score which has a commentary but not an initial. See this thread on the user list.
  • Elisions after a vowel centering prefix will no longer cause the center to be placed on the vowel in the prefix. Since prefixes are unvoiced vowels, this makes more sense than the previous behavior. As usual, you may use the manual centering features to force the centering where you want if this does not produce what you want. See #1320.
  • Dynmanic line spacing when a clef change occurs at the end of a line is fixed so that the line after the clef change is spaced appropriately. See #1285.
  • Spaces in the filename of a score no longer cause Gregoriotex to fail. See #1224.
  • Glyphs for pes quadratum shapes with initio debilis are no longer missing. Use -fqg to engrave them. See #1310.
  • Horizontal episemata bridge spaces more correctly. As mentioned earlier, you can prevent this by appending 2 to the _ on the note before the space you do not want bridged. See #1216.
  • A rising note after an oriscus flexus will no longer generate a porrectus (see #1220).
  • The Scribus external tool script now uses latexmk in order to handle the multi-pass features of Gregorio (see #1236).
  • Translation text in a syllable with a trailing (forced) hyphen is no longer truncated to its first character (see #1254).
  • A trailing (forced) hyphen in a syllable no longer generates a forced hyphen in the previous syllable (see #1255).
  • A trailing space on a header line is now ignored (see #1269).
  • A pes whose second note is an oriscus now obeys the oriscus orientation rules (see #1272)


  • The default behaviour of \gregorioscore has been changed to autocompile.
  • When the note after an oriscus is at the same pitch, the oriscus direction now depends on the first non-unison, non-oriscus note after the oriscus (see #1179).
  • 6 new St. Gall neume glyphs have been added to the gregall font and glyph for nabc to!ciG has been changed (see #1303, #1305, #1313, #1314, #1315).
  • Notes are now left-aligned as if all clefs had the same width as the largest clef in the score. You can get previous behavior back with \grebolshiftcleftype{current}, or temporary force alignment until the end of a score with \grelocalbolshiftcleftype. See Documentation of these functions and #1189.
  • A clef change immediately before a line break (z) will now typeset the new clef at the beginning of the next line. An explicit custos (z0) immediately before such a clef change (or separated by only a bar) will be suppressed. See #1190.
  • Ledger lines are now extended through notes on either side of a ledger line that crosses a stem, as long as the notes are within the same "element." If the algorithm doesn't produce the result you want, you can use [oll:0] to suppress an over-the-staff ledger line on a note, [ull:0] to suppress an under-the-staff ledger line on a note, [oll:1] to force an over-the-line ledger line on a note, or [ull:1] to force an under-the-staff ledger line on a note. Please note that other forms of [oll:...] and [ull:...] can interfere with these new settings. See and #1215 for details.
  • The left stem of Dominican plicae on lines has been shortened (see #1238).
  • Clefs on the top or bottom line adjust the spacing as if there were a note above the top line or below the bottom line, respectively (see #1007).
  • Default spaces have been adjusted (see #1182).
  • \grechangenextscorelinedim can now take a comma-separated list of line numbers as its first argument (see #1280).


  • More cavum shapes are now available. To use them, simply add r in gabc to any note in a glyph. Se...
Read more


24 Sep 19:11
Choose a tag to compare

It's taken a bit longer to get through the release cycle than normal, but hopefully this release of 4.2 is worth the wait.

Anyone who tested out one of the betas or release candidates for 4.2 is advised to uninstall that version before installing the stable release. For Mac users this means using the version of Uninstall-Gregorio*.pkg which goes with the version you're uninstalling, not the one below. Users of 4.1 or earlier should have no problems upgrading to 4.2.


Executable file name

In order to facilitate installation alongside TeX Live, the version number is now appended to the gregorio executable file name. In version 4.2.0, the filename is gregorio-4.2.0. If you run the executable directly, you will need to modify your procedures and/or scripts to use the new name. Alternately, creating a symbolic link, if your system supports it, may work for you.

If you auto-compile or force-compile your GABC files and are not using the Gregorio packaged with TeX Live, you will probably need to use the --shell-escape option when compiling your .tex files. Alternately, you can add the new filename to your system's shell_escape_commands TeX option.

Unfortunately, there appears to be no easier way to let a user-installed Gregorio coexist with the TeX-Live-packaged Gregorio. Please note: in TeX Live 2016, which includes Gregorio 4.1.1, the executable filename does not include the version number, though that will change starting with TeX Live 2017.

Stemmed oriscus flexus orientation

As of version 4.2, the orientation of the stemmed oriscus flexus (gOe) is consistent with the unstemmed oriscus flexus (goe) in that the oriscus points downwards (since the note which follows is of lower pitch). If you prefer the oriscus to point upwards, you will need to use the 1 modifier (as in (gO1e)), which will force an upward orientation of the oriscus.

Oriscus orientation at the unision

As of version 4.2, when the note after the oriscus is at the same pitch as the oriscus, the oriscus will point downwards by default. If you prefer it to point upwards, append the 1 modifier to force the upward orientation.

Podatus followed by a virga

As of version 4.2, a podatus followed by a virga of the same or higher pitch as the second note in the podatus (e.g., (eghv)) will be kept together, disallowing a line break between the two shapes. If you would like to allow a line break between the two shapes, use a / or some other breakable space between them (e.g., (eg/hv)).


As of version 4.2, the penalties should be changed by using \grechangecount rather than the old way of redefining macros. The following tunable values are available (they have the same name as their old macro counterparts, minus the gre):

  • brokenpenalty
  • clubpenalty
  • endafterbaraltpenalty
  • endafterbarpenalty
  • endofelementpenalty
  • endofsyllablepenalty
  • endofwordpenalty
  • finalpenalty
  • hyphenpenalty
  • looseness
  • newlinepenalty
  • nobreakpenalty
  • pretolerance
  • tolerance
  • widowpenalty

See GregorioRef for descriptions.

Additionally, if you were redefining \greemergencystretch, you should now be changing the emergencystretch dimension using the \grechangedim command.

Custos with alteration

If the note following a custos has an alteration (flat, natural, or sharp), the custos will now also have that alteration typeset before it. If you prefer the old behavior, use \gresetcustosalteration{invisible}. This setting may be switched to visible and invisible between scores.

Punctum inclinatum orientation

As of version 4.2, a different glyph is used for puncta inclinata in an ascent versus puncta inclinata in a descent. However, because the two shapes clash with each other, Gregorio will attempt to use the same shape for all notes within a string of puncta inclinata. This is accomplished by a heuristic algorithm that determines the glyph to use, but tastes differ, so you may override the shape by appending 0 (to force descending) or 1 (to force ascending) after the letter used for the punctum inclinatum.

Two additional distances have been added to handle strings of puncta inclinata which both ascend and descend. descendingpunctuminclinatumascendingshift will be used between two descending punctum inclinatum glyphs which ascend in pitch, and ascendingpunctuminclinatumdescendingshift will be used between two ascending punctum inclinatum glyphs which descend in pitch.

Styles spanning syllables

From version 4.2, gabc styles persist through syllables so you can now, for instance, style an entire verse differently from the rest of the piece by starting the style at the beginning of the verse and ending it at the end of the verse. This covers italics (<i>), bold (<b>), small capitals (<sc>), underlined text (<ul>), colored text (<c>), and "teletype" text (<tt>).

Prior to version 4.2, Gregorio inconsistenly indicated style errors. Now, errors like ending a style that is not started and starting a style that is already started will be caught more consistently. If you are getting errors to this effect, double-check the styles in your score to make sure that styles are started and ended properly.


[4.2.0] - 2016-09-23


  • When the note after an oriscus is at the same pitch, the oriscus will now point downwards by default (see #1177).
  • When the last note in a score is not in the last syllable, it no longer merges into the (no-note) syllable(s) that follow (see #1205).
  • A two-line initial on a two-line score no longer generates an error (see #1139).
  • Staff lines after a two-line initial should now be sized correctly in a more consistent way (see #1141).
  • Space at the end of line was not always correct when a line is cut in the middle of a word (see #1155).
  • In rare cases, the very last bar or glyph of a score could appear alone at the beginning of the final line (see #1152).
  • In cases of a syllable without note, the space between notes of the previous and next syllables was sometimes not enough (see #1137).
  • moraadjustment and moraadjustmentbar did not scale when changing factor, they do now.
  • The 900_gregorio.xml file for Scribus now matches main-lualatex.tex again (see #1087).
  • Multiple subsequent lines in gabc no longer cause TeX to fail (see #1111).
  • Old bar spacing algorithm will no longer separate the text and bar when the bar is preceeded by a puncutm mora (see #1078).
  • Scores which end with a no-note syllable under the new bar spacing algorithm will no longer have their text pushed out into the right hand margin. See #1110.
  • PlainTeX will now respect underline requests in gabc.
  • PlainTeX will now raise a warning when small caps are requested but \sc has not been defined.
  • A manual custos at the end of the score will now be spaced like regular end of line custos #1034.
  • Custos glyphs heights are now counted when adjusting line heights (see #961).


  • Some vertical spaces can now be adjusted for a particular line in a score. Use \grechangenextscorelinedim prior to including the score to set the desired values. spaceabovelines, spacebeneathtext, and spacelinestext may be changed with this command. See GregorioRef and #1156 for details.
  • Nabc now supports pitches hn and hp in addition to previously supported ha through hm.
  • 32 new St. Gall neume glyphs have been added to the gregall font and glyphs for nabc po-1pp2su1sux1 and po-1su1sux1 have been changed.
  • 31 new St. Gall neume glyphs have been added to the gresgmodern font and glyph for nabc tr-1 has been changed.
  • It is now possible to set \parskip, \lineskip, \baselineskip, and \lineskiplimit to have different values within a score using \grechangedim. See #1038.
  • It is now possible to invert the oriscus orientation on pes quassus and oriscus flexus shapes. Use o0 or o1 to force the oriscus into the orientation you desire. It is also possible to fuse the oriscus from either direction in either orientation. See #898 and #972.
  • Formerly missing torculus figures starting with an oriscus are now rendered using neume fusion (see #1013).
  • Gregorio will keep together (prevent line breaks between) a user-configurable number of notes (by default, 4) at the start and end of the syllable. Further, Gregorio will prevent line breaks in a syllable with fewer than a user-configurable number of notes (by default, 10). These values may be changed by using the \gresetunbreakablesyllablenotes command. See GregorioRef for details (for the change request, see #1044).
  • The visibility of notes and lyrics can now be toggled on an off using \gresetlyrics and \gresetnotes. See #1039.
Read more


22 Aug 14:55
Choose a tag to compare

This is a CTAN specific release, so installers for it will not be provided. It fixes some bugs in 4.1 which were discovered while preparing 4.2 for release. If you use TeXLive 2016, then you can obtain this release by updating your TeXLive installation using tlmgr. The update should be available on the mirrors on August 23rd or 24th.

[4.1.5] - 2016-08-18


  • Use node.travese_id() to find our desired nodes when doing translation centering across syllables, thereby preventing a conflict with other packages which insert nodes (such as luatex-ja). See #1180.
  • Explicitly communicate the rescaling of \gre@skip@temp@four back to TeX, thereby fixing the problem with custom spacings. See #1199.
  • With thanks to Claudio Beccari (@OldClaudio), adding a commentary no longer generates a bad \hbox during TeX processing (see #1202).