summaryrefslogtreecommitdiff
path: root/Build/source/texk/gregorio/gregorio-src/contrib
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-02-25 19:22:25 +0000
committerKarl Berry <karl@freefriends.org>2021-02-25 19:22:25 +0000
commitad547a6b5986815fda458221149728d9d9ab1d87 (patch)
tree16296910eb3eca724371474ea9aea3994dc69614 /Build/source/texk/gregorio/gregorio-src/contrib
parent947b43de3dd21d58ccc2ffadefc4441ea1c2a813 (diff)
restore Build,TODO from r57911
git-svn-id: svn://tug.org/texlive/trunk@57915 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/gregorio/gregorio-src/contrib')
-rw-r--r--Build/source/texk/gregorio/gregorio-src/contrib/900_gregorio.xml111
-rw-r--r--Build/source/texk/gregorio/gregorio-src/contrib/Makefile.am20
-rw-r--r--Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/LuaLaTeX+se.engine8
-rw-r--r--Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/LuaTeX+se.engine8
-rw-r--r--Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/Makefile.am18
-rw-r--r--Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/auto-configure.command58
-rw-r--r--Build/source/texk/gregorio/gregorio-src/contrib/checkSyllabation.py156
-rw-r--r--Build/source/texk/gregorio/gregorio-src/contrib/config-texworks.command93
-rw-r--r--Build/source/texk/gregorio/gregorio-src/contrib/contrib_README.md92
-rw-r--r--Build/source/texk/gregorio/gregorio-src/contrib/gabc-syntax.plist82
-rw-r--r--Build/source/texk/gregorio/gregorio-src/contrib/gabc.lang96
-rw-r--r--Build/source/texk/gregorio/gregorio-src/contrib/gabc.vim93
-rw-r--r--Build/source/texk/gregorio/gregorio-src/contrib/gabc.xml40
-rw-r--r--Build/source/texk/gregorio/gregorio-src/contrib/gprocess183
-rw-r--r--Build/source/texk/gregorio/gregorio-src/contrib/gregorio.pngbin0 -> 916 bytes
-rw-r--r--Build/source/texk/gregorio/gregorio-src/contrib/system-setup.bat247
-rw-r--r--Build/source/texk/gregorio/gregorio-src/contrib/system-setup.command232
17 files changed, 1537 insertions, 0 deletions
diff --git a/Build/source/texk/gregorio/gregorio-src/contrib/900_gregorio.xml b/Build/source/texk/gregorio/gregorio-src/contrib/900_gregorio.xml
new file mode 100644
index 00000000000..edd28c2682d
--- /dev/null
+++ b/Build/source/texk/gregorio/gregorio-src/contrib/900_gregorio.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0"?>
+<!--
+ XML file for using gregorio inside scribus.
+ Copyright (C) 2009 Pierre Couderc <pierre@couderc.eu>.
+ Copyright (C) 2010 Elie Roux <elie.roux@telecom-bretagne.eu>
+ Copyright (C) 2015-2019 The Gregorio Project (see CONTRIBUTORS.md)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ See the different comments in the file to change the default configuration.
+-->
+<editorsettings description="gregorio" icon="gregorio.png">
+ <executable command="lualatex --shell-escape --interaction nonstopmode" />
+ <imagefile extension=".pdf"/>
+ <highlighter>
+ <rule name="gabc header" regex="[a-zA-Z]+:" color="blue" minimal="true"/>
+ <rule name="gabc delimiter" regex="%%" color="green" minimal="true"/>
+ <rule name="gabc notes" regex="\([^)]*\)" color="red" minimal="true"/>
+ </highlighter>
+ <empty-frame-text>
+ name: myscore;
+ %%
+ (c3) Pó(eh/hi)pu(h)lus(h) Si(hi)on,(hgh.)
+ </empty-frame-text>
+ <!-- you can change the basic headers here -->
+ <preamble>
+ \documentclass[$scribus_grefontsize$]{extarticle}
+ \usepackage[paperwidth=$scribus_realwidth$ pt,
+ paperheight=$scribus_realheight$ pt,
+ left=0cm,top=0cm,right=0cm,bottom=0cm,nohead,nofoot]{geometry}
+ \usepackage[autocompile]{gregoriotex}
+ \usepackage{filecontents}
+ \title{Scribus-Latex-File}
+ $scribus_additionalgreheaders$
+ \author{Scribus}
+ \pagestyle{empty}
+ \setlength{\textwidth}{$scribus_realwidth$ pt}
+
+ \begin{filecontents}{scribus_file-score.gabc}
+ </preamble>
+ <postamble>
+ \end{filecontents}
+
+ \begin{document}
+ $scribus_greconf$
+ \gregorioscore{scribus_file-score}
+ \end{document}
+ </postamble>
+ <tab type="settings">
+ <title>
+ <i18n>
+ <en>Headers</en>
+ <fr>En-tête</fr>
+ </i18n>
+ </title>
+ <list name="grefontsize" default="11pt">
+ <title>
+ <i18n>
+ <en>Fontsize:</en>
+ <de>Schriftgröße:</de>
+ <fr>Taille police :</fr>
+ <pl>Stopień pisma:</pl>
+ <ru>Кегль шрифт:</ru>
+ </i18n>
+ </title>
+ <option value="8pt">8pt</option>
+ <option value="9pt">9pt</option>
+ <option value="10pt">10pt</option>
+ <option value="11pt">11pt</option>
+ <option value="12pt">12pt</option>
+ <option value="14pt">14pt</option>
+ <option value="17pt">17pt</option>
+ <option value="20pt">20pt</option>
+ </list>
+ <text name="additionalgreheaders" type="long" default="\usepackage{fontspec}
+\usepackage{libertine}">
+ <i18n>
+ <en>Additional LaTeX Headers:</en>
+ <de>Zusätzliche LaTeX Header:</de>
+ <fr>En-tête LaTeX additionnel :</fr>
+ </i18n>
+ </text>
+ </tab>
+ <tab type="settings">
+ <title>
+ <i18n>
+ <en>Gregorio Options</en>
+ <fr>Conf. gregorio</fr>
+ </i18n>
+ </title>
+ <comment>
+ <i18n>
+ <en>Input here your additional gregorio-specific TeX commands.</en>
+ <fr>Ajoutez ici vos commandes additionelles pour GregorioTeX.</fr>
+ </i18n>
+ </comment>
+ <text name="greconf" type="long" default="\grechangestaffsize{17}"></text>
+ </tab>
+</editorsettings>
diff --git a/Build/source/texk/gregorio/gregorio-src/contrib/Makefile.am b/Build/source/texk/gregorio/gregorio-src/contrib/Makefile.am
new file mode 100644
index 00000000000..5cabdb95d3b
--- /dev/null
+++ b/Build/source/texk/gregorio/gregorio-src/contrib/Makefile.am
@@ -0,0 +1,20 @@
+# Copyright (C) 2006-2019 The Gregorio Project (see CONTRIBUTORS.md)
+#
+# This file is part of Gregorio.
+#
+# Gregorio is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Gregorio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Gregorio. If not, see <http://www.gnu.org/licenses/>.
+
+SUBDIRS = TeXShop
+
+EXTRA_DIST = gprocess gabc.xml gabc.lang gabc.vim 900_gregorio.xml gregorio.png gabc-syntax.plist contrib_README.md system-setup.command system-setup.bat config-texworks.command checkSyllabation.py
diff --git a/Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/LuaLaTeX+se.engine b/Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/LuaLaTeX+se.engine
new file mode 100644
index 00000000000..2c2642dd8c4
--- /dev/null
+++ b/Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/LuaLaTeX+se.engine
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+if [[ -n ${2:+x} ]]; then
+ echo "I will add $2 to the input path"
+ export TEXINPUTS="$2//:"
+ export LUAINPUTS="$2//:"
+fi
+lualatex --shell-escape -file-line-error -synctex=1 "$1"
diff --git a/Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/LuaTeX+se.engine b/Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/LuaTeX+se.engine
new file mode 100644
index 00000000000..6da782ed7b4
--- /dev/null
+++ b/Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/LuaTeX+se.engine
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+if [[ -n ${2:+x} ]]; then
+ echo "I will add $2 to the input path"
+ export TEXINPUTS="$2//:"
+ export LUAINPUTS="$2//:"
+fi
+luatex --shell-escape -file-line-error -synctex=1 "$1"
diff --git a/Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/Makefile.am b/Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/Makefile.am
new file mode 100644
index 00000000000..ff4d5272046
--- /dev/null
+++ b/Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/Makefile.am
@@ -0,0 +1,18 @@
+# Copyright (C) 2006-2019 The Gregorio Project (see CONTRIBUTORS.md)
+#
+# This file is part of Gregorio.
+#
+# Gregorio is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Gregorio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Gregorio. If not, see <http://www.gnu.org/licenses/>.
+
+EXTRA_DIST = auto-configure.command LuaLaTeX+se.engine LuaTeX+se.engine
diff --git a/Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/auto-configure.command b/Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/auto-configure.command
new file mode 100644
index 00000000000..58f1df2e959
--- /dev/null
+++ b/Build/source/texk/gregorio/gregorio-src/contrib/TeXShop/auto-configure.command
@@ -0,0 +1,58 @@
+#!/usr/bin/env bash
+
+# This script is designed to automatically configure a TeXShop distribution.
+# You should be able to direct it to run by double clicking on it.
+
+#This trap combination allows the window to linger long enough for the user to
+#inspect the output, but still get closed when all is said and done.
+function quit {
+ read -n1 -r -p "Press any key to close window." key
+ osascript -e 'tell application "Terminal" to close front window' > /dev/null 2>&1 &
+}
+
+trap quit EXIT
+
+
+#Copy the engine file from its instalation directory to the TeXShop Engines directory
+ENGINEDIR="$HOME/Library/TeXShop/Engines"
+if [ ! -d "$ENGINEDIR" ]; then
+ echo "Cannot Find TeXShop configuration directory!"
+ echo "Please open and close TeXShop and try running this script again."
+ exit 1
+fi
+SOURCE="/Users/Shared/Gregorio/contrib/TeXShop/LuaLaTeX+se.engine"
+if [ ! -e "$SOURCE" ]; then
+ SOURCE="$PWD/LuaLaTeX+se.engine"
+ if [ ! -e "$SOURCE" ]; then
+ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
+ SOURCE="$DIR/LuaLaTeX+se.engine"
+ else
+ echo "Cannot find LuaLaTeX+se.engine"
+ echo "Please try running the Gregorio intaller again"
+ exit 1
+ fi
+fi
+echo "Copying LuaLaTeX+se.engine into TeXShop configuration"
+cp "$SOURCE" "$ENGINEDIR"
+
+SOURCE="/Users/Shared/Gregorio/contrib/TeXShop/LuaTeX+se.engine"
+if [ ! -e "$SOURCE" ]; then
+ SOURCE="$PWD/LuaTeX+se.engine"
+ if [ ! -e "$SOURCE" ]; then
+ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
+ SOURCE="$DIR/LuaTeX+se.engine"
+ else
+ echo "Cannot find LuaTeX+se.engine"
+ echo "Please try running the Gregorio intaller again"
+ exit 1
+ fi
+fi
+echo "Copying LuaTeX+se.engine into TeXShop configuration"
+cp "$SOURCE" "$ENGINEDIR"
+
+#double check the execution bits
+chmod +x "$ENGINEDIR/LuaLaTeX+se.engine"
+chmod +x "$ENGINEDIR/LuaTeX+se.engine"
+
+echo "Configuration complete"
+exit 0
diff --git a/Build/source/texk/gregorio/gregorio-src/contrib/checkSyllabation.py b/Build/source/texk/gregorio/gregorio-src/contrib/checkSyllabation.py
new file mode 100644
index 00000000000..8fcd6431af4
--- /dev/null
+++ b/Build/source/texk/gregorio/gregorio-src/contrib/checkSyllabation.py
@@ -0,0 +1,156 @@
+#! /usr/bin/env python3
+
+"""
+ A script to check the syllabation of a gabc file
+
+ See checkSyllabation.py -h for help
+
+ Copyright (C) 2016-2019 Elie Roux
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
+ this software and associated documentation files (the "Software"), to deal in
+ the Software without restriction, including without limitation the rights to
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+ of the Software, and to permit persons to whom the Software is furnished to do
+ so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+
+ Depends on pyphen: http://pyphen.org/
+ You also need the hyph_la_liturgical.dic file. To get it, get the
+ hyphen-la project on https://github.com/gregorio-project/hyphen-la
+ and run "make" in the "patterns" directory.
+
+"""
+
+import sys
+import re
+import argparse
+import pyphen
+import os
+import glob
+
+DEFAULT_OUTFILE = False
+if os.name == 'nt':
+ DEFAULT_OUTFILE = 'check-syllabation.log'
+
+def get_parser():
+ "Return command line parser"
+ parser = argparse.ArgumentParser(
+ description='A script to check the syllabation of gabc files')
+ parser.add_argument('-p', '--pat-path',
+ help='hyphenation pattern file',
+ action='store', default="hyph_la_liturgical.dic")
+ parser.add_argument('-o', '--outfile',
+ help='The file that will contain the report',
+ action='store', default=DEFAULT_OUTFILE)
+ parser.add_argument('-v', '--verbose',
+ help='Report also files without error',
+ action='store_true', default=False)
+ parser.add_argument('path',
+ help='Path to a gabc file or a directory containing gabc files',
+ action='store', default=".")
+ return parser
+
+def deacc(accstr):
+ return accstr.replace('á', 'a').replace('é', 'e').replace('í', 'i').replace('ó', 'o').replace('ú', 'u').replace('ý', 'y').replace('́', '').replace('ǽ', 'æ')
+
+def checkwords(words_list, hyphenator):
+ errors = []
+ for word in words_list:
+ initialword = deacc(word.lower())
+ if initialword.find('-') == -1:
+ # no need for noise
+ continue
+ correctword = hyphenator.inserted(initialword.replace('-',''))
+ if correctword != initialword:
+ errors.append( (initialword,correctword) )
+ return errors
+
+def get_words_list(gabc_content):
+ gabc_content = gabc_content.split('%%\n', 1)[1] # no headers
+ gabc_content = re.sub(r'%.*\n', '', gabc_content)
+ gabc_content = gabc_content.replace('\n', ' ').replace('\r', ' ').replace('{','')
+ gabc_content = gabc_content.replace('}','').replace('<sp>\'ae</sp>', 'ǽ')
+ gabc_content = gabc_content.replace('<sp>oe</sp>', 'œ').replace('<sp>\'oe</sp>', 'œ')
+ gabc_content = gabc_content.replace('<sp>ae</sp>', 'æ').replace('<sp>\'æ</sp>', 'ǽ')
+ gabc_content = gabc_content.replace('<sp>\'œ</sp>', 'œ')
+ gabc_content = re.sub(r'\([^\)]*\)', '-', gabc_content)
+ gabc_content = re.sub(r'<\/?[ibuec]>', '', gabc_content)
+ gabc_content = re.sub(r'<\/?sc>', '', gabc_content)
+ gabc_content = re.sub(r'<\/?eu>', '', gabc_content)
+ gabc_content = re.sub(r'<v>[^<]*<\/v>', '', gabc_content)
+ gabc_content = re.sub(r'<v>[^>]*<\/v>', '', gabc_content)
+ gabc_content = re.sub(r'<sp>[^>]*<\/sp>', '', gabc_content)
+ gabc_content = re.sub(r'<alt>[^>]*<\/alt>', '', gabc_content)
+ gabc_content = re.sub(r'\[[^\]]*\]', '', gabc_content)
+ gabc_content = re.sub(r'-+', '-', gabc_content)
+ gabc_content = re.sub(r'-?(\s+|$)', ' ', gabc_content)
+ gabc_content = re.sub(r'[^a-záéíóæúýœǽ\u0301 -]', '', gabc_content, flags=re.IGNORECASE)
+ gabc_content = re.sub(r'(^|\s+)-', ' ', gabc_content)
+ return gabc_content.split()
+
+def get_file_list(path):
+ if os.path.isfile(path):
+ return [path]
+ elif os.path.isdir(path):
+ files = glob.glob(os.path.join(path, '**/*.gabc'), recursive=True)
+ files = sorted(files)
+ return files
+ else:
+ print('Error! Cannot find '+path, file=sys.stderr)
+ sys.exit(1)
+
+def check_file(filepath, hyphenator, outfd, report_no_error=False):
+ words_list = []
+ with open(filepath, 'r', encoding='utf8') as inputf:
+ words_list = get_words_list(inputf.read())
+ errors = checkwords(words_list, hyphenator)
+ nb_errors = len(errors)
+ if nb_errors > 0 or report_no_error :
+ outfd.write('analyzing '+filepath+':\n')
+ if nb_errors == 0:
+ outfd.write(' no error!\n')
+ else:
+ for t in errors:
+ outfd.write(' '+t[0]+' should be '+t[1]+'\n')
+ outfd.write('\n')
+ return nb_errors
+
+def main():
+ "Main function"
+ parser = get_parser()
+ if len(sys.argv) == 1:
+ parser.print_help()
+ sys.exit(1)
+ args = parser.parse_args()
+ hyphenator = pyphen.Pyphen(filename=args.pat_path,left=1,right=1)
+ outfd = sys.stdout
+ if args.outfile != False:
+ outfd = open(args.outfile, 'w', encoding='utf8')
+ file_list = get_file_list(args.path)
+ nb_errors = 0
+ for f in file_list:
+ nb_errors += check_file(f, hyphenator, outfd, args.verbose)
+ if len(file_list) > 1 and nb_errors > 0:
+ outfd.write('Total errors: '+str(nb_errors)+'\n')
+ elif nb_errors == 0 and not args.verbose:
+ outfd.write('No error!\n')
+ if outfd is not sys.stdout:
+ outfd.close()
+ if nb_errors == 0:
+ sys.exit(0)
+ else:
+ sys.exit(2)
+
+if __name__ == "__main__":
+ main()
diff --git a/Build/source/texk/gregorio/gregorio-src/contrib/config-texworks.command b/Build/source/texk/gregorio/gregorio-src/contrib/config-texworks.command
new file mode 100644
index 00000000000..2101b5ea75d
--- /dev/null
+++ b/Build/source/texk/gregorio/gregorio-src/contrib/config-texworks.command
@@ -0,0 +1,93 @@
+#!/usr/bin/env bash
+
+# This script is designed to automatically configure a TeXworks distribution.
+# You can run it by double clicking on it on a Mac.
+# On Linux this behavior is controlled by a preference. See http://askubuntu.com/questions/286621/how-do-i-run-executable-scripts-in-nautilus for details.
+# If prompted, you need to select "Run in Terminal" to see the output.
+
+
+#This trap combination allows the window to linger long enough for the user to
+#inspect the output, but still get closed when all is said and done.
+function quit {
+ read -n1 -r -p "Press any key to close window." key
+ if $mac; then
+ osascript -e 'tell application "Terminal" to close front window' > /dev/null 2>&1 &
+ else
+ exit
+ fi
+}
+
+trap quit EXIT
+
+case "$(uname -s)" in
+ Darwin)
+ echo 'Mac OS X detected'
+ mac=true
+ ToolsDir="$HOME/Library/TeXworks"
+ ;;
+ Linux)
+ echo 'Linux detected'
+ mac=false
+ ToolsDir="$HOME/.TeXworks"
+ ;;
+ *)
+ echo 'Unsupported OS detected'
+ echo "Please configure TeXworks manually"
+ exit 1
+ ;;
+esac
+
+# Add the typesetting tool
+TOOLS="$ToolsDir/configuration/tools.ini"
+if [ ! -e "$TOOLS" ]; then
+ echo "Cannot find TeXworks configuration"
+ echo "Please open and close TeXworks and try running this script again"
+ echo "If this still does not work, then Add and Remove a dummy typesetting"
+ echo " tool from the Preferences dialog."
+ exit 1
+fi
+echo "Adding LuaLaTeX+se Typesetting tool"
+oldTOOLS="$TOOLS.old"
+cp "$TOOLS" "$oldTOOLS"
+last=`grep -E "^\[[0-9]+\]$" "$TOOLS" | tail -1`
+last=${last:1:-1}
+last=$(expr $last + 0)
+(( last++ ))
+last=`printf "%03d" $last`
+last="[$last]"
+echo "" >> "$TOOLS"
+echo "$last" >> "$TOOLS"
+echo "name=LuaLaTeX+se" >> "$TOOLS"
+echo "program=lualatex" >> "$TOOLS"
+echo "arguments=--shell-escape, \$synctexoption, \$fullname" >> "$TOOLS"
+echo "showPdf=true" >> "$TOOLS"
+
+# Add the file filter and cleanup patterns to the configuration
+CONFIG="$ToolsDir/configuration/texworks-config.txt"
+oldCONFIG="$CONFIG.old"
+mv "$CONFIG" "$oldCONFIG"
+cleanup=false
+echo "Adding Gregorio files to Open dialog and Trash Aux Files list"
+while read line; do
+ if [[ $line == "# file-open-filter:"* ]]; then
+ line=${line:2}
+ fi
+ if [[ $line == *"Auxiliary files"* ]]; then
+ line="${line%?} *.gaux)"
+ fi
+ if [[ $line == *"All files"* ]]; then
+ echo "file-open-filter: Gabc score (*.gabc)" >> "$CONFIG"
+ fi
+ if [[ $line == "cleanup-patterns:"* ]]; then
+ cleanup=true
+ else
+ if $cleanup; then
+ echo "cleanup-patterns: \$jobname.gaux \$jobname.glog *-*_*_*.gtex" >> "$CONFIG"
+ cleanup=false
+ fi
+ fi
+ echo "$line" >> "$CONFIG"
+done < "$oldCONFIG"
+
+echo "Configuration Complete"
+exit 0
diff --git a/Build/source/texk/gregorio/gregorio-src/contrib/contrib_README.md b/Build/source/texk/gregorio/gregorio-src/contrib/contrib_README.md
new file mode 100644
index 00000000000..f0089e58e47
--- /dev/null
+++ b/Build/source/texk/gregorio/gregorio-src/contrib/contrib_README.md
@@ -0,0 +1,92 @@
+# Third party scripts
+
+This folder contains various small scripts or modules for third-party softwares to use Gregorio.
+
+## Scribus
+
+Gregorio can be used in [Scribus](http://wiki.scribus.net/canvas/Scribus) using three files:
+
+ * `gregorio-scribus.lua`
+ * `gregorio.png`
+ * `900_gregorio.xml`
+
+To install Gregorio support in Scribus:
+
+ * copy the three files in the editorconfig folder of scribus (`/usr/share/scribus/editorconfig` under Linux, `C:\Program Files\Scribus\share\editorconfig`
+under Windows).
+ * read the comments in `900_gregorio.xml` and change some variables accordingly
+ * in Scribus:
+ * go in `File->Preferences->External Tools`
+ * click `Add` in the `Render Frames`
+ * select the file `900_gregorio.xml`
+
+After that you can insert a render frame using Gregorio, and simply
+typing gabc (`right-click->edit sources`).
+
+For more details see [the website](http://gregorio-project.github.io/introduction-scribus.html).
+
+## Syllabation checker
+
+The scripts in this folder allow to check the syllabation of a gabc score against syllabation rules that you must provide.
+
+#### Dependencies
+
+The main script, `checkSyllabation.py` is in Python3, so you obviously need it. It uses the [pyphen](http://pyphen.org/) package. You will also need the hyphenation of the text language in the `libhyphen` format in order to run it.
+
+If you want liturgical Latin hyphenation rules, you can pick those from the [hyphen-la](https://github.com/gregorio-project/hyphen-la) project. They are available in `libhyphen` format on the [webpage](http://gregorio-project.github.io/hyphen-la/).
+
+#### Running the scripts
+
+Once you have the hyphenation rules in the `libhyphen` format, you can check one score by running
+
+```
+checkSyllabation.py -p path/to/file.dic my_file.gabc
+```
+
+where `path/to/file.dic` is the path to the hyphenation rules file (default is `hyph_la_liturgical.dic` in the current directory). You can also analyze all gabc scores of a directory (with subdirectories) by replacing `my_file.gabc` by the name of the directory. By default, the script analyzes the current directory. The script outputs the report to `stdout` on Unix systems, and to `check-syllabation.log` on Windows systems.
+
+You can see more options by running
+
+```
+checkSyllabation.py --help
+```
+
+#### Hyphenation problems
+
+If you encounter problems of hyphenation, meaning you disagree with the proposed hyphenation, please contact the author of the hyphenation rules you are using ([here](https://github.com/gregorio-project/hyphen-la/issues) for `hyphen-la` for example).
+
+If you encounter problems because the script got confused by a gabc construct you are using or has bugs not directly related to hyphenation, please report it on the [gregorio tracker](https://github.com/gregorio-project/gregorio/issues).
+
+## Kde editors (Kate, Kedit)
+
+You can use `gabc.xml` for syntax highlighting in kate (and Kedit, etc.). To
+install it, copy the file in `/usr/share/apps/katepart/syntax`. This path
+may vary according to your distribution.
+
+## Gnome editors (Gedit)
+
+You can use `gabc.lang` for syntax highlighting in GtkSourceView (Gedit, etc.). To
+install it, copy the file in `/usr/share/gtksourceview-3.0/language-specs`. This path
+may vary according to your distribution.
+
+## Emacs
+
+To use gregorio in [Emacs](https://www.gnu.org/software/emacs/), see [this script](https://github.com/cajetanus/gregorio-mode.el).
+
+## Vim
+
+To get gabc syntax highlighting in [Vim](http://www.vim.org/):
+
+ * copy `gabc.vim` in `/usr/share/vim/vimcurrent/syntax`
+ * add the line `au BufNewFile,BufRead *.gabc setf gabc`
+somewhere near lines of the same type (near line 100 for example) in
+`/usr/share/vim/vimcurrent/filetype.vim`. This will autodetect the filetypes.
+
+## BBedit and TextWrangler (OSX only)
+
+To get gabc syntax highlight in [BBedit](http://www.barebones.com/products/bbedit/) or [TextWrangler](http://www.barebones.com/products/textwrangler/), copy `gabc-syntax.plist` into `~/Library/Application Support/TextWrangler/Language Modules/` and restart BBEdit or TextWrangler.
+
+## Script to process gabc score
+
+`gprocess` is a perl script to instantly compile and show the result of a gabc
+file. You can modify some variables directly into the script.
diff --git a/Build/source/texk/gregorio/gregorio-src/contrib/gabc-syntax.plist b/Build/source/texk/gregorio/gregorio-src/contrib/gabc-syntax.plist
new file mode 100644
index 00000000000..39396b46089
--- /dev/null
+++ b/Build/source/texk/gregorio/gregorio-src/contrib/gabc-syntax.plist
@@ -0,0 +1,82 @@
+<!--
+GABC syntax file for BBedit and TextWrangler
+Copyright Tomasz Grabowski <zzzygzak@gmail.com>, 2013
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+--><plist version="1.0">
+<dict>
+<key>BBEditDocumentType</key>
+ <string>CodelessLanguageModule</string>
+<key>BBLMLanguageCode</key>
+ <string>0079</string>
+<key>BBLMLanguageCode</key>
+ <string>GABC</string>
+<key>BBLMLanguageDisplayName</key>
+ <string>Gregorio GABC</string>
+<key>BBLMSuffixMap</key>
+ <array>
+ <dict>
+ <key>BBLMIsSourceKind</key>
+ <true/>
+ <key>BBLMLanguageSuffix</key>
+ <string>.gabc</string>
+ </dict>
+ </array>
+<key>BBLMColorsSyntax</key><true/>
+<key>BBLMIsCaseSensitive</key><true/>
+<key>BBLMScansFunctions</key><false/>
+<key>BBLMSupportsTextCompletion</key><true/>
+<key>BBLMCanSpellCheckCodeRuns</key><false/>
+
+<key>BBLMPredefinedNameList</key>
+ <array>
+ <string>name</string>
+ <string>gabc-copyright</string>
+ <string>score-copyright</string>
+ <string>office-part</string>
+ <string>occasion</string>
+ <string>meter</string>
+ <string>commentary</string>
+ <string>arranger</string>
+ <string>gabc-version</string>
+ <string>author</string>
+ <string>date</string>
+ <string>manuscript</string>
+ <string>manuscript-reference</string>
+ <string>manuscript-storage-place</string>
+ <string>book</string>
+ <string>transcriber</string>
+ <string>transcription-date</string>
+ <string>gregoriotex-font</string>
+ <string>mode</string>
+ <string>initial-style</string>
+ <string>centering-scheme</string>
+ <string>user-notes</string>
+ <string>annotation</string>
+ </array>
+<key>BBLMCommentLineDefault</key><string>%</string>
+<key>Language Features</key>
+ <dict>
+ <key>Open Strings 1</key><string>(</string>
+ <key>Close Strings 1</key><string>)</string>
+ <key>Open Strings 2</key><string> &lt;</string>
+ <key>Close Strings 2</key><string>&gt; </string>
+ <key>End-of-line Ends Strings 1</key> <false/>
+ <key>Identifier and Keyword Characters</key>
+ <string>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-</string>
+ <key>Open Statement Blocks</key> <string>\</string>
+ <key>Close Statement Blocks</key> <string>}</string>
+ </dict>
+</dict>
+</plist>
diff --git a/Build/source/texk/gregorio/gregorio-src/contrib/gabc.lang b/Build/source/texk/gregorio/gregorio-src/contrib/gabc.lang
new file mode 100644
index 00000000000..eda2860a718
--- /dev/null
+++ b/Build/source/texk/gregorio/gregorio-src/contrib/gabc.lang
@@ -0,0 +1,96 @@
+<?xml version="1.0"?>
+<!--
+
+ Author: Elie Roux <elie.roux@telecom-bretagne.fr>
+ Copyright (C) 2008-2019 Elie Roux <elie.roux@telecom-bretagne.fr>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+-->
+<language id="gabc" _name="Gabc" version="2.0" _section="Sources">
+ <metadata>
+ <property name="globs">*.gabc</property>
+ </metadata>
+ <styles>
+ <style id="attribute-name" _name="Attribute Name" map-to="def:keyword"/>
+ <style id="text" _name="Text" map-to="def:keyword"/>
+ <style id="text-markups" _name="Text Markups" map-to="def:statement"/>
+ <style id="translation" _name="Translation" map-to="def:doc-comment-element"/>
+ <style id="comment" _name="Comment" map-to="def:doc-comment-element"/>
+ <style id="notes" _name="Notes"/>
+ <style id="notes-base" _name="Basic Notes" map-to="def:constant"/>
+ <style id="alterations" _name="Alterations" map-to="def:identifier"/>
+ <style id="spaces" _name="Spaces" map-to="def:special-char"/>
+ </styles>
+ <definitions>
+ <context id="gabc">
+ <include>
+ <context id="header">
+ <include>
+ <context id="attribute-name" style-ref="attribute-name">
+ <match>[^:]+:|;</match>
+ </context>
+ </include>
+ </context>
+ <context id="score">
+ <start>%%</start>
+ <end>%%</end>
+ <include>
+ <context id="text" style-ref="text">
+ <match>[^\(\[&lt;]+</match>
+ </context>
+ <context id="comment" style-ref="comment">
+ <!--<start>%</start>
+ <end>&#x0a;</end>-->
+ <match>\%[^%]\n</match>
+ </context>
+ <context id="translation" style-ref="translation">
+ <start>\[</start>
+ <end>\]</end>
+ </context>
+ <context id="specials-symbol" style-ref="text-markups">
+ <prefix>&lt;</prefix>
+ <suffix>&gt;</suffix>
+ <keyword>v</keyword>
+ <keyword>/v</keyword>
+ <keyword>i</keyword>
+ <keyword>/i</keyword>
+ <keyword>b</keyword>
+ <keyword>/b</keyword>
+ <keyword>tt</keyword>
+ <keyword>/tt</keyword>
+ <keyword>sp</keyword>
+ <keyword>/sp</keyword>
+ </context>
+ <context id="notes" style-ref="notes">
+ <start>\(</start>
+ <end>\)</end>
+ <include>
+ <context id="notes-normal" style-ref="notes-base">
+ <match>[a-mA-M]+</match>
+ </context>
+ <context id="alterations" style-ref="alterations">
+ <match>[&gt;&lt;\~xXyYvVoOwWqQ-Ss\._'1234]+</match>
+ </context>
+ <context id="spaces" style-ref="spaces">
+ <match>[`,;!: /zZ]+</match>
+ </context>
+ </include>
+ </context>
+ </include>
+ </context>
+ </include>
+ </context>
+ </definitions>
+</language>
diff --git a/Build/source/texk/gregorio/gregorio-src/contrib/gabc.vim b/Build/source/texk/gregorio/gregorio-src/contrib/gabc.vim
new file mode 100644
index 00000000000..3d15f41c055
--- /dev/null
+++ b/Build/source/texk/gregorio/gregorio-src/contrib/gabc.vim
@@ -0,0 +1,93 @@
+" Vim syntax file
+" Language: Gabc gregorian chant notation
+" Last Change: 2016 Feb 11
+
+" Quit when a (custom) syntax file was already loaded
+if exists("b:current_syntax")
+ finish
+endif
+
+syn match gabcAttributeName /^[^:]*:/
+syn match gabcAttributeEnd ";"
+syn match gabcNoteError "." contained
+syn match gabcBasicNote "[a-np]" contained
+syn match gabcBasicNote "[A-NP][012]\?" contained
+syn match gabcNoteShape "[\<\>~xy#vVwWqQR\-Ss\.+]" contained
+syn match gabcNoteShape "_[0-5]*" contained
+syn match gabcNoteShape "[oO'\.][01]\?" contained
+syn match gabcNoteShape "r[0-8]\?" contained
+syn match gabcClef "[cf]b\?[1-5]" contained
+syn match gabcTextMarkup "</\?e>" contained
+syn match gabcTextMarkup "</\?b>" contained
+syn match gabcTextMarkup "</\?i>" contained
+syn match gabcTextMarkup "</\?c>" contained
+syn match gabcTextMarkup "</\?ul>" contained
+syn match gabcTextMarkup "</\?tt>" contained
+syn match gabcTextMarkup "</\?sc>" contained
+syn match gabcTextMarkup "</\?eu>" contained
+syn match gabcTextOrNoteMarkup "</\?nlba>" contained
+syn match gabcTextCenter "[{}]" contained
+syn match gabcFuse "@" contained
+syn match gabcFuseEnd "\]" contained
+syn match gabcBar ":?\?" contained
+syn match gabcBar ";[1-8]\?" contained
+syn match gabcBar ",[0-8]\?" contained
+syn match gabcBar "[`^]0\?" contained
+syn match gabcSpace "[! ]" contained
+syn match gabcSpace "/0\?" contained
+syn match gabcSpace "z[-+0]\?" contained
+syn match gabcSpace "Z[-+]\?" contained
+syn match gabcSpace "/\[[^\]]*\]" contained extend
+syn match gabcCommand "@\@<!\[[^\]]*\]" contained extend
+syn match gabcCommand "[{}]" contained extend
+syn match gabcBracket "\[\[" contained
+syn match gabcBracket "\]\]" contained
+
+syn region gabcComment start="%" end="$" keepend extend
+syn region gabcAlt matchgroup=gabcTextMarkup start="<alt>" end="</alt>"
+ \ contained
+syn region gabcSpecial matchgroup=gabcTextMarkup start="<sp>" end="</sp>"
+ \ contained
+syn region gabcVerbatim matchgroup=gabcTextMarkup start="<v>" end="</v>"
+ \ contained
+syn region gabcNabc matchgroup=gabcNabcCut start="|" end="[|)]" keepend
+syn cluster gabcFusible contains=gabcBasicNote,gabcNoteShape,gabcBar,gabcSpace,
+ \gabcComment,gabcCommand,gabcNoteError,gabcFuse,
+ \gabcTextOrNoteMarkup,gabcClef,gabcNabc,gabcBracket
+syn region gabcFuseGroup matchGroup=gabcFuseGroup start="@\[" end="\]"
+ \ contains=@gabcFusible,gabcFuseEnd contained keepend
+syn region gabcNotes matchgroup=gabcNote start="(" end=")"
+ \ contains=@gabcFusible,gabcFuseGroup contained keepend
+syn region gabcTranslation matchgroup=gabcTextMarkup start="\[" end="\]"
+ \ contained extend
+syn region gabcText start="^\(%%\)\@=" end="\%$"
+ \ contains=gabcNotes,gabcTextMarkup,gabcTextOrNoteMarkup,
+ \gabcTextCenter,gabcTranslation,gabcComment,gabcAlt,gabcSpecial,
+ \gabcVerbatim
+
+" Define the default highlighting.
+hi def link gabcAttributeName Statement
+hi def link gabcAttributeEnd Statement
+hi def link gabcText Constant
+hi def link gabcTranslation Constant
+hi def link gabcComment Comment
+hi def link gabcTextMarkup Delimiter
+hi def link gabcTextOrNoteMarkup Delimiter
+hi def link gabcTextCenter Delimiter
+hi def link gabcSpecial Constant
+hi def link gabcVerbatim Constant
+hi def link gabcAlt Constant
+hi def link gabcClef Statement
+hi def link gabcBasicNote Statement
+hi def link gabcNoteShape PreProc
+hi def link gabcCommand Type
+hi def link gabcBar Special
+hi def link gabcSpace Special
+hi def link gabcNabcCut Delimiter
+hi def link gabcBracket Delimiter
+hi def link gabcFuse Constant
+hi def link gabcFuseGroup Constant
+hi def link gabcFuseEnd Constant
+hi def link gabcNoteError Error
+
+let b:current_syntax = "gabc"
diff --git a/Build/source/texk/gregorio/gregorio-src/contrib/gabc.xml b/Build/source/texk/gregorio/gregorio-src/contrib/gabc.xml
new file mode 100644
index 00000000000..e84ec8975f2
--- /dev/null
+++ b/Build/source/texk/gregorio/gregorio-src/contrib/gabc.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!-- Elie Roux - elie.roux@telecom-bretagne.eu
+ version1.0 - 10 november 2008 -->
+<language name="GABC" version="1.10" kateversion="2.4" section="Other" extensions="*.gabc" mimetype="text/plain" casesensitive="1" author="Elie Roux (elie.roux@telecom-bretagne.eu)" license="GPL">
+ <highlighting>
+ <contexts>
+ <context name="Normal" attribute="Normal Text" lineEndContext="#stay">
+ <DetectChar attribute="Attribute" context="Attribute" char=":"/>
+ <StringDetect attribute="Separation" context="Score Text" String="%%" insensitive="FALSE"/>
+ </context>
+ <context name="Attribute" attribute="Attribute" lineEndContext="#pop">
+ <DetectChar attribute="Attribute Name" context="Normal" char=";"/>
+ </context>
+ <context name="Score Text" attribute="Score Text" lineEndContext="#stay">
+ <DetectChar attribute="Notes" context="Notes" char="("/>
+ <RangeDetect attribute="Translation" context="#stay" char="[" char1="]"/>
+ <RangeDetect attribute="Text Markups" context="#stay" char="&lt;" char1="&gt;"/>
+ </context>
+ <context name="Notes" attribute="Notes" lineEndContext="#stay">
+ <DetectChar attribute="Notes" context="#pop" char=")"/>
+ <RegExpr attribute="Notes Base" context="#stay" String="[a-mA-M]+"/>
+ <RegExpr attribute="Alterations" context="#stay" String="[&gt;&lt;\~xXyYvVoOwWqQ-Ss\._'1234]+"/>
+ <RegExpr attribute="Space" context="#stay" String="[`,;!: /zZ]+"/>
+ </context>
+ </contexts>
+ <itemDatas>
+ <itemData name="Normal Text" defStyleNum="dsNormal"/>
+ <itemData name="Attribute" defStyleNum="dsNormal" italic="true"/>
+ <itemData name="Separation" defStyleNum="dsNormal" bold="true"/>
+ <itemData name="Score Text" defStyleNum="dsNormal" bold="true"/>
+ <itemData name="Text Markups" defStyleNum="dsFloat" bold="true"/>
+ <itemData name="Translation" defStyleNum="dsNormal" italic="true"/>
+ <itemData name="Notes" defStyleNum="dsNormal"/>
+ <itemData name="Notes Base" defStyleNum="dsNormal"/>
+ <itemData name="Alterations" defStyleNum="dsFloat" italic="true"/>
+ <itemData name="Space" defStyleNum="dsString" bold="true"/>
+ </itemDatas>
+ </highlighting>
+</language>
diff --git a/Build/source/texk/gregorio/gregorio-src/contrib/gprocess b/Build/source/texk/gregorio/gregorio-src/contrib/gprocess
new file mode 100644
index 00000000000..205acd7540e
--- /dev/null
+++ b/Build/source/texk/gregorio/gregorio-src/contrib/gprocess
@@ -0,0 +1,183 @@
+#!/usr/bin/perl
+
+# gprocess
+# a script for 'compiling' gregorio gabc music files
+# v0.2
+# Copyright (c) 2010 Richard Chonak <chonak@yahoo.com>
+# Changes in v0.2:
+# -- change list of PDF viewers
+# -- invoke LuaLateX instead of lamed/dvipdfm
+# -- drop use of pdftk (it's not available for my system)
+# -- use latin1 character set instead of utf8
+# -- update macro and variable names (with "gre" prefix) as needed
+# -- add 'redlines'
+# --
+#
+# v0.1
+# Copyright (C) 2008-2019 Richard Chonak <chonak@yahoo.com>
+#
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+use strict;
+
+## USER-MODIFIABLE COMMAND PATHS
+
+my $TEXCOMPILER = "lualatex --shell-escape";
+
+## END OF USER-MODIFIABLE COMMAND PATHS
+
+
+# print usage string if no command-line arg specified
+
+if ($#ARGV < 0) {
+ die "usage: $0 <gabc-file-name>\n";
+}
+
+
+my $GABCFILE = $ARGV[0];
+my $GABCNAME = $GABCFILE;
+$GABCNAME =~ s/.gabc//;
+my $SCORENAME;
+my $ANNOTATION;
+my $REFERENCE;
+my $OFFICEPART;
+my $NAMEFOUND = 0;
+my $KEEPSEARCHING = 1;
+my $INLINE = "";
+
+
+my $SCOREWRAPTEX = $GABCFILE;
+$SCOREWRAPTEX =~ s/.gabc$/-main.tex/;
+
+#### GET THE SCORE TITLE FROM THE GABC FILE ####
+
+if ($GABCFILE =~ m#/#) {
+ die "File spec must not contain slashes: $GABCFILE\n";
+};
+
+
+open (GABC,"<".$GABCFILE) or die "No such file: $GABCFILE\n";
+while ($KEEPSEARCHING == 1 && ($INLINE = <GABC>)) {
+ if ($INLINE =~ /^name/) {
+ $SCORENAME = $INLINE;
+ $SCORENAME =~ s/^.*:\s*//;
+ $SCORENAME =~ s/\s*;\s*$//;
+ };
+ if ($INLINE =~ /^anotation/) {
+ $ANNOTATION = $INLINE;
+ $ANNOTATION =~ s/^.*:\s*//;
+ $ANNOTATION =~ s/\s*;\s*$//;
+ };
+ if ($INLINE =~ /^reference/) {
+ $REFERENCE = $INLINE;
+ $REFERENCE =~ s/^.*:\s*//;
+ $REFERENCE =~ s/\s*;\s*$//;
+ };
+ if ($INLINE =~ /^office-part/) {
+ $OFFICEPART = $INLINE;
+ $OFFICEPART =~ s/^.*:\s*//;
+ $OFFICEPART =~ s/\s*;\s*$//;
+ };
+ if ($INLINE =~ /^%%/) { $KEEPSEARCHING = 0; }
+}
+
+close (GABC);
+
+
+
+#### READ IN THE TEMPLATE ####
+
+my @TEMPLATELINES;
+
+
+@TEMPLATELINES = <DATA>;
+
+
+
+#### MAKE SUBSTITUTIONS ####
+
+&do_subst ("XXXX-SCORENAME-XXXX", $SCORENAME);
+&do_subst ("XXXX-GABCFILE-XXXX", $GABCNAME);
+&do_subst ("XXXX-ANNOTATION-XXXX", $ANNOTATION);
+&do_subst ("XXXX-OFFICEPART-XXXX", $OFFICEPART);
+&do_subst ("XXXX-REFERENCE-XXXX", $REFERENCE);
+
+foreach (@TEMPLATELINES){
+ s/^.*XXXX.*$//;
+};
+
+#### WRITE TEX WRAPPER FILE ####
+
+open (TEXWRAP,">".$SCOREWRAPTEX) or die "Cannot write file $SCOREWRAPTEX\n";
+print TEXWRAP @TEMPLATELINES;
+close (TEXWRAP);
+
+#### RUN LATEX ####
+my $PDFFILE = $SCOREWRAPTEX;
+$PDFFILE =~ s/tex$/pdf/;
+my $AUXFILE = $SCOREWRAPTEX;
+$AUXFILE =~ s/tex$/aux/;
+my $GAUXFILE = $SCOREWRAPTEX;
+$GAUXFILE =~ s/tex$/gaux/;
+
+# remove product files so that we don't accidentally view results
+# from a prior run
+unlink $PDFFILE;
+
+do_cmd("$TEXCOMPILER $SCOREWRAPTEX");
+# Run twice to calculate line heights.
+do_cmd("$TEXCOMPILER $SCOREWRAPTEX");
+unlink $AUXFILE;
+unlink $GAUXFILE;
+
+print "\n\nOutput is in $PDFFILE .\n";
+
+exit;
+
+sub do_subst {
+ my $TAG = $_[0];
+ my $VAL = $_[1];
+
+ foreach (@TEMPLATELINES) {
+ s/$TAG/$VAL/g;
+ }
+};
+
+sub do_cmd {
+ my $CMD = $_[0];
+#debugging print "Doing command: \n $CMD\n\n";
+ system ($CMD) == 0
+ or die "\n\nSystem command failed: $CMD : $?\n";
+};
+
+
+# THE LINES AFTER THIS "END" TAG ARE A TEMPLATE FOR THE TEX FILE TO BE GENERATED
+__END__
+
+\documentclass[12pt, letterpaper]{article}
+\usepackage{fullpage}
+\usepackage[T1]{fontenc}
+\usepackage{palatino}
+\usepackage[autocompile,allowdeprecated=false]{gregoriotex}
+\pagestyle{empty}
+\begin{document}
+
+\begin{center}\begin{huge}\textsc{XXXX-SCORENAME-XXXX}\end{huge}\end{center}
+
+\gregorioscore{XXXX-GABCFILE-XXXX}
+
+\end{document}
+
diff --git a/Build/source/texk/gregorio/gregorio-src/contrib/gregorio.png b/Build/source/texk/gregorio/gregorio-src/contrib/gregorio.png
new file mode 100644
index 00000000000..d58efff6a27
--- /dev/null
+++ b/Build/source/texk/gregorio/gregorio-src/contrib/gregorio.png
Binary files differ
diff --git a/Build/source/texk/gregorio/gregorio-src/contrib/system-setup.bat b/Build/source/texk/gregorio/gregorio-src/contrib/system-setup.bat
new file mode 100644
index 00000000000..ad622dc5b9b
--- /dev/null
+++ b/Build/source/texk/gregorio/gregorio-src/contrib/system-setup.bat
@@ -0,0 +1,247 @@
+@echo off
+SETLOCAL ENABLEEXTENSIONS EnableDelayedExpansion
+
+set output="%TEMP%\system-setup.log"
+
+echo Gregorio Windows Setup Diagnostic Tool
+echo (C) 2015 The Gregorio Project.
+echo.
+echo Gregorio is free software: you can redistribute it and/or modify
+echo it under the terms of the GNU General Public License as published by
+echo the Free Software Foundation, either version 3 of the License, or
+echo (at your option) any later version.
+echo.
+echo This program is distributed in the hope that it will be useful,
+echo but WITHOUT ANY WARRANTY; without even the implied warranty of
+echo MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+echo GNU General Public License for more details.
+echo.
+echo You should have received a copy of the GNU General Public License
+echo along with this program. If not, see http://www.gnu.org/licenses/.
+echo.
+echo Creating system-setup.log...
+
+echo ### Gregorio Windows Setup Results > %output%
+echo #### Created: %date% >> %output%
+echo ----------------------------------------------------------------------------- >> %output%
+echo. >> %output%
+echo. >> %output%
+
+echo ### Windows Version >> %output%
+ver >> %output%
+echo. >> %output%
+echo. >> %output%
+echo ----------------------------------------------------------------------------- >> %output%
+echo. >> %output%
+echo. >> %output%
+
+echo ### LuaTeX Setup >> %output%
+echo #### Version >> %output%
+echo. >> %output%
+luatex -v >> %output% 2>&1
+echo. >> %output%
+echo #### Location >> %output%
+echo. >> %output%
+@for %%e in (%PATHEXT%) do @for %%i in (luatex%%e) do @if NOT "%%~$PATH:i"=="" echo %%~$PATH:i >> %output% 2>&1
+echo. >> %output%
+echo. >> %output%
+echo #### TEXMFDIST >> %output%
+kpsewhich --var-value=TEXMFDIST >> %output% 2>&1
+echo. >> %output%
+echo #### TEXMFLOCAL >> %output%
+echo. >> %output%
+for /f "delims=" %%i in ('kpsewhich --var-value TEXMFLOCAL') do set texmflocal=%%i
+echo %texmflocal% >> %output% 2>&1
+set texmflocal=%texmflocal:/=\%
+IF NOT EXIST %texmflocal% ECHO Folder does not exist >> %output% 2>&1
+echo. >> %output%
+echo #### TEXINPUTS.lualatex >> %output%
+kpsewhich --var-value=TEXINPUTS.lualatex >> %output% 2>&1
+echo. >> %output%
+echo #### LUAINPUTS.lualatex >> %output%
+kpsewhich --var-value=LUAINPUTS.lualatex >> %output% 2>&1
+echo. >> %output%
+echo #### shell_escape >> %output%
+kpsewhich --var-value=shell_escape >> %output% 2>&1
+echo. >> %output%
+echo #### Shell Escape Commands >> %output%
+kpsewhich --var-value=shell_escape_commands >> %output% 2>&1
+echo. >> %output%
+echo #### openout_any >> %output%
+kpsewhich --var-value=openout_any >> %output% 2>&1
+echo. >> %output%
+echo #### openin_any >> %output%
+kpsewhich --var-value=openin_any >> %output% 2>&1
+echo. >> %output%
+echo. >> %output%
+echo ----------------------------------------------------------------------------- >> %output%
+echo. >> %output%
+echo. >> %output%
+
+echo ### Gregorio Setup >> %output%
+echo #### Locations and Versions >> %output%
+for /f "delims=" %%G in ('where /f gregorio*') do (
+ echo %%G >> %output%
+ for /f "delims=" %%H in ('%%G -V') do echo %%H >> %output% 2>&1
+ echo. >> %output%
+)
+echo #### GregorioTeX Locations >> %output%
+echo. >> %output%
+
+:: Files using GREGORIO_VERSION in {}
+set files=gregoriosyms.sty ^
+gregoriotex-chars.tex ^
+gregoriotex-main.tex ^
+gregoriotex-nabc.tex ^
+gregoriotex-signs.tex ^
+gregoriotex-spaces.tex ^
+gregoriotex-syllable.tex ^
+gregoriotex-common.tex ^
+gregoriotex-symbols.tex
+
+for %%G in (%files%) do (
+ echo ##### %%G >> %output%
+ for /f "delims=" %%H in ('kpsewhich -all %%G') do (
+ set loc=%%H
+ set loc=!loc:/=\!
+ echo !loc! >> %output%
+ for /f "delims=" %%I in ('findstr /r "GREGORIO_VERSION" "!loc!"') do set ver=%%I
+ set ver=!ver:*{=!
+ set ver=!ver:*{=!
+ set trash=}!ver:*}=!
+ call set ver=%%ver:!trash!=%%
+ echo !ver! >> %output% 2>&1
+ set ver=
+ )
+)
+
+:: Files using GREGORIO_VERSION in spaces
+set files=gregoriotex-nabc.lua ^
+gregoriotex-signs.lua ^
+gregoriotex-symbols.lua
+
+for %%G in (%files%) do (
+ echo ##### %%G >> %output%
+ for /f "delims=" %%H in ('kpsewhich -all %%G') do (
+ set loc=%%H
+ set loc=!loc:/=\!
+ echo !loc! >> %output%
+ for /f "delims=" %%I in ('findstr /r "GREGORIO_VERSION" "!loc!"') do set ver=%%I
+ set ver=!ver:*N =!
+ echo !ver! >> %output% 2>&1
+ set ver=
+ )
+)
+
+:: Files using GREGORIO_VERSION in ''
+set files=gregoriotex.lua
+
+for %%G in (%files%) do (
+ echo ##### %%G >> %output%
+ for /f "delims=" %%H in ('kpsewhich -all %%G') do (
+ set loc=%%H
+ set loc=!loc:/=\!
+ echo !loc! >> %output%
+ for /f "delims=" %%I in ('findstr /r "GREGORIO_VERSION" "!loc!"') do set ver=%%I
+ set ver=!ver:*'=!
+ set trash='!ver:*'=!
+ call set ver=%%ver:!trash!=%%
+ echo !ver! >> %output% 2>&1
+ set ver=
+ )
+)
+
+:: Files using PARSE_VERSION_DATE_LTX
+set files=gregoriotex.sty ^
+gregoriotex.tex
+
+for %%G in (%files%) do (
+ echo ##### %%G >> %output%
+ for /f "delims=" %%H in ('kpsewhich -all %%G') do (
+ set loc=%%H
+ set loc=!loc:/=\!
+ echo !loc! >> %output%
+ for /f "delims=" %%I in ('findstr /r "PARSE_VERSION_DATE_LTX" "!loc!"') do set ver=%%I
+ set ver=!ver:*v=!
+ set trash=G!ver:*G=!
+ call set ver=%%ver:!trash!=%%
+ echo !ver! >> %output% 2>&1
+ set ver=
+ )
+)
+
+:: Font Files
+set files=greciliae.ttf ^
+greciliae-hollow.ttf ^
+greciliae-hole.ttf ^
+greciliae-op.ttf ^
+greciliae-op-hollow.ttf ^
+greciliae-op-hole.ttf ^
+greextra.ttf ^
+gregorio.ttf ^
+gregorio-hollow.ttf ^
+gregorio-hole.ttf ^
+gregorio-op.ttf ^
+gregorio-op-hollow.ttf ^
+gregorio-op-hole.ttf ^
+granapadano.ttf ^
+granapadano-hollow.ttf ^
+granapadano-hole.ttf ^
+granapadano-op.ttf ^
+granapadano-op-hollow.ttf ^
+granapadano-op-hole.ttf ^
+gregall.ttf
+
+for %%G in (%files%) do (
+ echo ##### %%G >> %output%
+ for /f "delims=" %%H in ('kpsewhich -all %%G') do (
+ set loc=%%H
+ set loc=!loc:/=\!
+ echo !loc! >> %output%
+ otfinfo --font-version "!loc!" >> %output% 2>&1
+ )
+)
+
+:: Unversioned and Obsolete Files
+set files=gregorio-vowels.dat ^
+gsp-default.tex ^
+gregoriotex-ictus.tex ^
+gresym.ttf ^
+parmesan.ttf ^
+parmesan-op.ttf ^
+gregsmodern.ttf
+
+for %%G in (%files%) do (
+ echo ##### %%G >> %output%
+ for /f "delims=" %%H in ('kpsewhich -all %%G') do (
+ set loc=%%H
+ set loc=!loc:/=\!
+ echo !loc! >> %output%
+ )
+)
+
+echo. >> %output%
+echo #### kpsewhich --all -engine luatex -progname lualatex gregoriotex.sty >> %output%
+kpsewhich --all -engine luatex -progname lualatex gregoriotex.sty >> %output% 2>&1
+echo. >> %output%
+echo #### kpsewhich --all -engine luatex gregoriotex.tex >> %output%
+kpsewhich --all -engine luatex gregoriotex.tex >> %output% 2>&1
+echo. >> %output%
+echo. >> %output%
+echo ----------------------------------------------------------------------------- >> %output%
+echo. >> %output%
+echo. >> %output%
+
+echo.
+echo.
+echo system-setup.log created and saved in a temporary location.
+echo Upon exiting this script, the log will be opened in Notepad for you.
+echo Please save the file to a convenient location and email it to
+echo gregorio-users@googlegroups.com as part of your bug report.
+echo.
+echo You can also create an issue at
+echo http://github.com/gregorio-project/gregorio/issues
+echo and copy-paste the content of this file into the description.
+echo.
+pause
+start notepad %output%
diff --git a/Build/source/texk/gregorio/gregorio-src/contrib/system-setup.command b/Build/source/texk/gregorio/gregorio-src/contrib/system-setup.command
new file mode 100644
index 00000000000..13fe833be6a
--- /dev/null
+++ b/Build/source/texk/gregorio/gregorio-src/contrib/system-setup.command
@@ -0,0 +1,232 @@
+#!/usr/bin/env bash
+
+# This script generates a log detailing information about your computer.
+# You can run it by double clicking on it on a Mac.
+# On Linux this behavior is controlled by a preference. See http://askubuntu.com/questions/286621/how-do-i-run-executable-scripts-in-nautilus for details.
+# If prompted, you need to select "Run in Terminal" to see the output.
+
+#This trap combination allows the window to linger long enough for the user to
+#inspect the output, but still get closed when all is said and done.
+function quit {
+ read -n1 -r -p "Press any key to close window." key
+ if $mac; then
+ osascript -e 'tell application "Terminal" to close front window' > /dev/null 2>&1 &
+ else
+ exit
+ fi
+}
+
+trap quit EXIT
+
+case "$(uname -s)" in
+ Darwin)
+ echo 'Mac OS X detected'
+ mac=true
+ ;;
+ Linux)
+ echo 'Linux detected'
+ mac=false
+ ;;
+ *)
+ echo 'Unsupported OS detected'
+ exit 1
+ ;;
+esac
+
+
+HERE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+OUTPUT=$HERE/system-setup.log
+
+echo "Gregorio Unix Setup Diagnostic Tool"
+echo "(C) 2015 The Gregorio Project."
+echo ""
+echo "Gregorio is free software: you can redistribute it and/or modify"
+echo "it under the terms of the GNU General Public License as published by"
+echo "the Free Software Foundation, either version 3 of the License, or"
+echo "(at your option) any later version."
+echo ""
+echo "This program is distributed in the hope that it will be useful,"
+echo "but WITHOUT ANY WARRANTY; without even the implied warranty of"
+echo "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the"
+echo "GNU General Public License for more details."
+echo ""
+echo "You should have received a copy of the GNU General Public License"
+echo "along with this program. If not, see http://www.gnu.org/licenses/."
+echo ""
+echo "Creating system-setup.log..."
+
+echo "### Gregorio Unix Setup Results" > $OUTPUT
+echo "#### Created: `date`" >> $OUTPUT
+echo "-----------------------------------------------------------------------------" >> $OUTPUT
+echo "" >> $OUTPUT
+echo "" >> $OUTPUT
+
+echo "### OS Version" >> $OUTPUT
+uname -v >> $OUTPUT
+echo "" >> $OUTPUT
+echo "" >> $OUTPUT
+echo "-----------------------------------------------------------------------------" >> $OUTPUT
+echo "" >> $OUTPUT
+echo "" >> $OUTPUT
+
+echo "### LuaTeX Setup" >> $OUTPUT
+echo "#### Version" >> $OUTPUT
+echo "" >> $OUTPUT
+luatex -v >> $OUTPUT 2>&1
+echo "" >> $OUTPUT
+echo "#### Location" >> $OUTPUT
+echo "" >> $OUTPUT
+which -a luatex >> $OUTPUT 2>&1
+echo "" >> $OUTPUT
+echo "" >> $OUTPUT
+echo "#### TEXMFLOCAL" >> $OUTPUT
+echo "" >> $OUTPUT
+kpsewhich --var-value TEXMFLOCAL >> $OUTPUT 2>&1
+echo "" >> $OUTPUT
+echo "#### TEXINPUTS.lualatex" >> $OUTPUT
+kpsewhich --var-value=TEXINPUTS.lualatex >> $OUTPUT 2>&1
+echo "" >> $OUTPUT
+echo "#### LUAINPUTS.lualatex" >> $OUTPUT
+kpsewhich --var-value=LUAINPUTS.lualatex >> $OUTPUT 2>&1
+echo "" >> $OUTPUT
+echo "#### shell_escape" >> $OUTPUT
+kpsewhich --var-value=shell_escape >> $OUTPUT 2>&1
+echo "" >> $OUTPUT
+echo "#### Shell Escape Commands" >> $OUTPUT
+kpsewhich --var-value=shell_escape_commands >> $OUTPUT 2>&1
+echo "" >> $OUTPUT
+echo "#### openout_any" >> $OUTPUT
+kpsewhich --var-value=openout_any >> $OUTPUT 2>&1
+echo "" >> $OUTPUT
+echo "#### openin_any" >> $OUTPUT
+kpsewhich --var-value=openin_any >> $OUTPUT 2>&1
+echo "" >> $OUTPUT
+echo "" >> $OUTPUT
+echo "-----------------------------------------------------------------------------" >> $OUTPUT
+echo "" >> $OUTPUT
+echo "" >> $OUTPUT
+
+echo "### Gregorio Setup" >> $OUTPUT
+echo "#### Locations and Versions" >> $OUTPUT
+echo "" >> $OUTPUT
+progs=`compgen -cbka -A function 'gregorio'`
+for prog in $progs; do
+ which -a $prog >> $OUTPUT 2>&1
+ $prog -V >> $OUTPUT 2>&1
+ echo "" >> $OUTPUT
+done
+echo "#### GregorioTeX Locations" >> $OUTPUT
+echo "" >> $OUTPUT
+
+# Files using GREGORIO_VERSION
+files="gregoriosyms.sty
+gregoriotex-chars.tex
+gregoriotex-main.tex
+gregoriotex-nabc.lua
+gregoriotex-nabc.tex
+gregoriotex-signs.lua
+gregoriotex-signs.tex
+gregoriotex-spaces.tex
+gregoriotex-syllable.tex
+gregoriotex-symbols.lua
+gregoriotex-symbols.tex
+gregoriotex-common.tex
+gregoriotex.lua"
+
+for f in $files
+do
+ echo "##### $f" >> $OUTPUT
+ locations=`kpsewhich -all $f`
+ for loc in $locations; do
+ echo $loc >> $OUTPUT 2>&1
+ grep -m 1 'GREGORIO_VERSION' $loc | grep -o '[0-9]*\.[0-9]*\.[0-9]*-*[betarc]*[0-9]*' >> $OUTPUT 2>&1
+ done
+done
+
+# Files using PARSE_VERSION_DATE_LTX
+files="gregoriotex.sty
+gregoriotex.tex"
+
+for f in $files
+do
+ echo "##### $f" >> $OUTPUT
+ locations=`kpsewhich -all $f`
+ for loc in $locations; do
+ echo $loc >> $OUTPUT 2>&1
+ grep -m 1 'PARSE_VERSION_DATE_LTX' $loc | grep -o '[0-9]*\.[0-9]*\.[0-9]*-*[betarc]*[0-9]*' >> $OUTPUT 2>&1
+ done
+done
+
+# Font Files
+files="greciliae.ttf
+greciliae-hollow.ttf
+greciliae-hole.ttf
+greciliae-op.ttf
+greciliae-op-hollow.ttf
+greciliae-op-hole.ttf
+greextra.ttf
+gregorio.ttf
+gregorio-hollow.ttf
+gregorio-hole.ttf
+gregorio-op.ttf
+gregorio-op-hollow.ttf
+gregorio-op-hole.ttf
+granapadano.ttf
+granapadano-hollow.ttf
+granapadano-hole.ttf
+granapadano-op.ttf
+granapadano-op-hollow.ttf
+granapadano-op-hole.ttf
+gregall.ttf"
+
+for f in $files
+do
+ echo "##### $f" >> $OUTPUT
+ locations=`kpsewhich -all $f`
+ for loc in $locations; do
+ echo $loc >> $OUTPUT 2>&1
+ otfinfo --font-version $loc >> $OUTPUT 2>&1
+ done
+done
+
+# Unversioned and Obsolete Files
+files="gregorio-vowels.dat
+gsp-default.tex
+gregoriotex-ictus.tex
+gresym.ttf
+parmesan.ttf
+parmesan-op.ttf
+gregsmodern.ttf"
+
+for f in $files
+do
+ echo "##### $f" >> $OUTPUT
+ kpsewhich -all $f >> $OUTPUT 2>&1
+done
+
+
+echo "" >> $OUTPUT
+echo "### LuaTeX Double Checks" >> $OUTPUT
+echo "#### kpsewhich --all -engine luatex -progname lualatex gregoriotex.sty" >> $OUTPUT
+kpsewhich --all -engine luatex -progname lualatex gregoriotex.sty >> $OUTPUT 2>&1
+echo "" >> $OUTPUT
+echo "#### kpsewhich --all -engine luatex gregoriotex.tex" >> $OUTPUT
+kpsewhich --all -engine luatex gregoriotex.tex >> $OUTPUT 2>&1
+echo "" >> $OUTPUT
+echo "" >> $OUTPUT
+echo "-----------------------------------------------------------------------------" >> $OUTPUT
+echo "" >> $OUTPUT
+echo "" >> $OUTPUT
+
+echo ""
+echo ""
+echo "system-setup.log created and saved the working directory from which you"
+echo "ran this script. Please email it to gregorio-users@googlegroups.com as"
+echo "part of your bug report."
+echo ""
+echo "You can also create an issue at "
+echo "http://github.com/gregorio-project/gregorio/issues"
+echo "and copy-paste the content of this file into the description."
+echo ""
+exit 0
+