diff options
author | Karl Berry <karl@freefriends.org> | 2016-04-16 21:22:41 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2016-04-16 21:22:41 +0000 |
commit | c9383c25c72dffde2894fd8a164d53269ce828a1 (patch) | |
tree | 0eb3ad41c8855ab9c21b0924ef23a2215b30f06e /Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-symbols.lua | |
parent | cb7776b7b205ed1ca821d824dd80f7e6c86dc92e (diff) |
gregoriotex (16apr16)
git-svn-id: svn://tug.org/texlive/trunk@40561 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-symbols.lua')
-rw-r--r-- | Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-symbols.lua | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-symbols.lua b/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-symbols.lua new file mode 100644 index 00000000000..bf8bbe404a8 --- /dev/null +++ b/Master/texmf-dist/tex/luatex/gregoriotex/gregoriotex-symbols.lua @@ -0,0 +1,61 @@ +--GregorioTeX Symbols Lua support file. +-- +--Copyright (C) 2016 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/>. + +-- this file contains lua functions to support signs used by GregorioTeX. + +-- GREGORIO_VERSION 4.1.1 + +local err = gregoriotex.module.err +local warn = gregoriotex.module.warn +local info = gregoriotex.module.info +local log = gregoriotex.module.log + +local catcode_at_letter = luatexbase.catcodetables['gre@atletter'] +local number_to_letter = gregoriotex.number_to_letter +local special_characters = {} +local next_special = 0 + +function gregoriotex.define_special_character(sequence) + local substitution = special_characters[sequence] + if substitution == nil then + substitution = string.gsub(tostring(next_special), '[0-9]', number_to_letter) + special_characters[sequence] = substitution + next_special = next_special + 1 + end + tex.print(catcode_at_letter, + string.format([[\gdef\gre@special@%s]], substitution)) +end + +function gregoriotex.undefine_special_character(sequence) + local substitution = special_characters[sequence] + if substitution ~= nil then + special_characters[sequence] = nil + tex.print(catcode_at_letter, + string.format([[\let\gre@special@%s\undefined\relax ]], substitution)) + end +end + +function gregoriotex.special_character(sequence) + local substitution = special_characters[sequence] + if substitution ~= nil then + tex.print(catcode_at_letter, string.format([[\gre@special@%s\relax ]], substitution)) + else + tex.print(sequence) + end +end |