diff options
Diffstat (limited to 'Build/source/texk/gregorio/gregorio-src/contrib')
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> <</string> + <key>Close Strings 2</key><string>> </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>[^\(\[<]+</match> + </context> + <context id="comment" style-ref="comment"> + <!--<start>%</start> + <end>
</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><</prefix> + <suffix>></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>[><\~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="<" char1=">"/> + </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="[><\~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 Binary files differnew file mode 100644 index 00000000000..d58efff6a27 --- /dev/null +++ b/Build/source/texk/gregorio/gregorio-src/contrib/gregorio.png 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 + |