From a201fc622ae00233697dd4beaec315657e160b8d Mon Sep 17 00:00:00 2001 From: "Br. Samuel Springuel" Date: Sun, 10 Mar 2019 17:29:14 -0400 Subject: [PATCH 1/9] CTAN ready CHANGELOG --- CHANGELOG.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7329fdc93..860421679 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,9 +2,6 @@ All notable changes to this project will be documented in this file. As of v3.0.0 this project adheres to [Semantic Versioning](http://semver.org/). It follows [some conventions](http://keepachangelog.com/). -## [Unreleased][develop] - - ## [Unreleased][CTAN] From 8d81faffc0fed24f10690c9d33f34124f750be7c Mon Sep 17 00:00:00 2001 From: "Br. Samuel Springuel" Date: Tue, 12 Mar 2019 11:46:37 -0400 Subject: [PATCH 2/9] Fix quoting problem in system-setup.bat The file name for otfinfo wasn't properly quoted. This fixes that. system-setup.bat is not uploaded to CTAN. No patch release is required by this change, but it should be included in all subsequent releases. --- contrib/system-setup.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/system-setup.bat b/contrib/system-setup.bat index 283553adf..ad622dc5b 100644 --- a/contrib/system-setup.bat +++ b/contrib/system-setup.bat @@ -198,7 +198,7 @@ for %%G in (%files%) do ( set loc=%%H set loc=!loc:/=\! echo !loc! >> %output% - otfinfo --font-version !loc! >> %output% 2>&1 + otfinfo --font-version "!loc!" >> %output% 2>&1 ) ) From 0431f447bece5c2e6076f050f7c5a6cbd8198297 Mon Sep 17 00:00:00 2001 From: "Br. Samuel Springuel" Date: Sat, 23 Mar 2019 17:23:55 -0400 Subject: [PATCH 3/9] Update for Lua 5.3 Turns out there is an integer/float issue that needed to be dealt with. This change works under both TeX Live 2018 and TeX Live 2019. This change does not affect any tests. --- tex/gregoriotex.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tex/gregoriotex.lua b/tex/gregoriotex.lua index 93fe9298b..f5985f387 100644 --- a/tex/gregoriotex.lua +++ b/tex/gregoriotex.lua @@ -547,7 +547,7 @@ local function post_linebreak(h, groupcode, glyphes) h, line = remove(h, line) else linenum = linenum + 1 - debugmessage('linesglues', 'line %d: %s factor %d%%', linenum, glue_sign_name[line.glue_sign], line.glue_set*100) + debugmessage('linesglues', 'line %d: %s factor %.0f%%', linenum, glue_sign_name[line.glue_sign], line.glue_set*100) centerstartnode = nil line_id = nil line_top = nil From cee65695e0a5ea2d1801a4fd83db8d0dd7a62f39 Mon Sep 17 00:00:00 2001 From: "Br. Samuel Springuel" Date: Sat, 23 Mar 2019 17:25:50 -0400 Subject: [PATCH 4/9] CHANGELOG entry --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 860421679..446300065 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,8 @@ All notable changes to this project will be documented in this file. As of v3.0.0 this project adheres to [Semantic Versioning](http://semver.org/). It follows [some conventions](http://keepachangelog.com/). ## [Unreleased][CTAN] - +### Fixed +- Eliminated implicit casting from float to integer in string formatting (something no longer allowed in Lua 5.3) ## [5.2.0] - 2019-03-10 ### Fixed From 4e4614338a0347ae1d645241c85e0e6620cd6c4b Mon Sep 17 00:00:00 2001 From: "Br. Samuel Springuel" Date: Sun, 24 Mar 2019 15:19:16 -0400 Subject: [PATCH 5/9] Enumerate ancient font options Generally when there is a limited number of options, we enumerate them. I've therefore listed the possible ancient fonts. Technically a user could add their own, but I'm not sure that's realistic. --- doc/Command_Index_User.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/Command_Index_User.tex b/doc/Command_Index_User.tex index 3816d7ef2..af8c84f84 100644 --- a/doc/Command_Index_User.tex +++ b/doc/Command_Index_User.tex @@ -1366,7 +1366,7 @@ \subsubsection{Ancient Notation} Macro to set the font to be used for the ancient notation. \begin{argtable} - \#1 & string & the name of the font\\ + \#1 & string & the name of the font, either \texttt{gregall}, \texttt{grelaon}, or \texttt{gresgmodern}\\ \#2 & integer & point size at which the font should be loaded\\ \end{argtable} From f7c6bc2e11e78ace1f8a242ea7d6aaa067dbb869 Mon Sep 17 00:00:00 2001 From: "Br. Samuel Springuel" Date: Sat, 30 Mar 2019 17:39:38 -0400 Subject: [PATCH 6/9] Simpler fix for filenames This fix for problematic filenames seems to work and is simpler than what I was working on in #1426. It is compatible with gregorio-project/gregorio-test#328 after the changes I proposed on henryso/gregorio-test#1 are pulled in. The corresponding PR which adds the test for this problem is gregorio-project/gregorio-test#331 --- tex/gregoriotex.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tex/gregoriotex.lua b/tex/gregoriotex.lua index 93fe9298b..2927606e3 100644 --- a/tex/gregoriotex.lua +++ b/tex/gregoriotex.lua @@ -147,13 +147,13 @@ local function gregorio_exe() -- first look for one with the exact version real_gregorio_exe = 'gregorio-5_2_0' -- FILENAME_VERSION - local cmd = string.format("%s -o %%s %s", real_gregorio_exe, + local cmd = string.format([["%s" -o "%%s" "%s"]], real_gregorio_exe, test_snippet_filename) exe_version = get_prog_output(cmd, '*line') if not exe_version then -- look for suffix-less executable real_gregorio_exe = 'gregorio' - cmd = string.format("%s -o %%s %s", real_gregorio_exe, + cmd = string.format([["%s" -o "%%s" "%s"]], real_gregorio_exe, test_snippet_filename) exe_version = get_prog_output(cmd, '*line') end @@ -932,7 +932,7 @@ local function direct_gabc(gabc, header, allow_deprecated) 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 cmd = string.format('%s -W %s-o %%s -l %s %s', gregorio_exe(), + local cmd = string.format([["%s" -W %s-o "%%s" -l "%s" "%s"]], gregorio_exe(), deprecated, snippet_logname, snippet_filename) local content = get_prog_output(cmd, '*a') if content == nil then From 58a24d275721b167e2735f05e38ae86d42533d9d Mon Sep 17 00:00:00 2001 From: "Br. Samuel Springuel" Date: Sat, 30 Mar 2019 17:41:41 -0400 Subject: [PATCH 7/9] CHANGELOG entry --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 860421679..40d24600e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,8 @@ All notable changes to this project will be documented in this file. As of v3.0.0 this project adheres to [Semantic Versioning](http://semver.org/). It follows [some conventions](http://keepachangelog.com/). ## [Unreleased][CTAN] +### Fixed +- Project names with quotes in them no longer cause GregorioTeX to not be able to find the executable. See [#1416](https://github.com/gregorio-project/gregorio/issues/1416). ## [5.2.0] - 2019-03-10 From f0b263ec2d3a5eff33e63bd732303e62d1b22299 Mon Sep 17 00:00:00 2001 From: "Br. Samuel Springuel" Date: Tue, 2 Apr 2019 13:23:16 -0400 Subject: [PATCH 8/9] Do not quote executable name If the executable name is quoted then the system command restrictions don't recognize it as an allowed command. Since we rely on the executable to be in `PATH` and never put a space in its name, we don't need to quote it anyway. This commit removes those extra quotes. --- tex/gregoriotex.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tex/gregoriotex.lua b/tex/gregoriotex.lua index 2927606e3..b6078cf87 100644 --- a/tex/gregoriotex.lua +++ b/tex/gregoriotex.lua @@ -147,13 +147,13 @@ local function gregorio_exe() -- first look for one with the exact version real_gregorio_exe = 'gregorio-5_2_0' -- FILENAME_VERSION - local cmd = string.format([["%s" -o "%%s" "%s"]], real_gregorio_exe, + local cmd = string.format([[%s -o "%%s" "%s"]], real_gregorio_exe, test_snippet_filename) exe_version = get_prog_output(cmd, '*line') if not exe_version then -- look for suffix-less executable real_gregorio_exe = 'gregorio' - cmd = string.format([["%s" -o "%%s" "%s"]], real_gregorio_exe, + cmd = string.format([[%s -o "%%s" "%s"]], real_gregorio_exe, test_snippet_filename) exe_version = get_prog_output(cmd, '*line') end @@ -932,7 +932,7 @@ local function direct_gabc(gabc, header, allow_deprecated) 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 cmd = string.format([["%s" -W %s-o "%%s" -l "%s" "%s"]], gregorio_exe(), + local cmd = string.format([[%s -W %s-o "%%s" -l "%s" "%s"]], gregorio_exe(), deprecated, snippet_logname, snippet_filename) local content = get_prog_output(cmd, '*a') if content == nil then From dd4e968dda5325d45ecba75a9fc511f890d63400 Mon Sep 17 00:00:00 2001 From: "Br. Samuel Springuel" Date: Fri, 5 Apr 2019 16:21:28 -0400 Subject: [PATCH 9/9] Update language information In responding to #1454, I noticed that the language information in the docs was out of date. This brings it up to date, listing all languages supported and noting the standards used when defining aliases and language names. --- doc/Command_Index_User.tex | 4 ++-- doc/Gabc.tex | 10 ++++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/doc/Command_Index_User.tex b/doc/Command_Index_User.tex index af8c84f84..0a943802f 100644 --- a/doc/Command_Index_User.tex +++ b/doc/Command_Index_User.tex @@ -938,9 +938,9 @@ \subsubsection{Text Alignment} & \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. +\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 Latin, English, Church Slavonic and Hungarian. Polish, Czech, and Slovak are supported as aliases for Church Slavonic. Furthermore 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. -You can also define your own languages in \texttt{gregorio-vowels.dat}. If you do define a language, please consider sharing your work by submitting it to the project (see CONTRIBUTING.md for instructions). +You can also define your own languages in \texttt{gregorio-vowels.dat} (see \nameref{customvowels} for details). If you do define a language, please consider sharing your work by submitting it to the project (see CONTRIBUTING.md for instructions). Finally, in cases where you want some sort of exceptional alignment, you can force Gregorio to consider a particular part of the syllable to be the ``vowel'' by enclosing it in curly braces (``\{'' and ``\}'') in your gabc file. Curly braces only affect alignment when using vowel centering. Syllable centering will always use the entire syllable, and firstletter centering will always use the first character of the syllable --- regardless of curly braces in the gabc file. diff --git a/doc/Gabc.tex b/doc/Gabc.tex index a793cd3a9..f0ddc890d 100644 --- a/doc/Gabc.tex +++ b/doc/Gabc.tex @@ -388,6 +388,8 @@ \subsubsection{Vowel Detection}\label{voweldetection} If you are using a language for which built-in language rules do not exist and the fallbacks are insufficient, then you may wish to provide your own set of vowel detection rules. This can be done with a special file:\verb=gregorio-vowels.dat=. See \nameref{customvowels} for information about how to create and use this file. +Languages which are currently supported are Latin, English, Church Slavonic and Hungarian. Polish, Czech, and Slovak are supported as aliases for Church Slavonic. All of these languages can be specified by name (in which case both titlecase and lowercase names are recognized) and by using their ISO 639 (-1 two-letter, -2/T three-letter, or -2/B three-letter) standard abbreviations. + \subsection{Notation --- Note Syntax}\label{notesyntax} @@ -1101,6 +1103,8 @@ \subsection{Vowel file}\label{customvowels} enclosed in square brackets, and a semicolon. The language specified applies until the next language statement. +When choosing the name for your language, it is preferable that you use the ISO 639-1 standard (two-letter) code. All other names should be listed as aliases (see above). If you plan to submit your vowel detection rules for inclusion in the Gregorio source, then this will be required. + \item[vowel] The \texttt{vowel} keyword indicates that the characters which follow, @@ -1138,9 +1142,11 @@ \subsection{Vowel file}\label{customvowels} By way of example, here is a vowel file that works for English: \begin{lstlisting}[autogobble] -alias [english] to [English]; +alias [english] to [en]; +alias [English] to [en]; +alias [eng] to [en]; -language [English]; +language [en]; vowel aàáAÀÁ; vowel eèéëEÈÉË;