summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/leadsheets/leadsheets.library.shorthands.code.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/leadsheets/leadsheets.library.shorthands.code.tex
Initial commit
Diffstat (limited to 'macros/latex/contrib/leadsheets/leadsheets.library.shorthands.code.tex')
-rw-r--r--macros/latex/contrib/leadsheets/leadsheets.library.shorthands.code.tex68
1 files changed, 68 insertions, 0 deletions
diff --git a/macros/latex/contrib/leadsheets/leadsheets.library.shorthands.code.tex b/macros/latex/contrib/leadsheets/leadsheets.library.shorthands.code.tex
new file mode 100644
index 0000000000..0f5a339e55
--- /dev/null
+++ b/macros/latex/contrib/leadsheets/leadsheets.library.shorthands.code.tex
@@ -0,0 +1,68 @@
+% --------------------------------------------------------------------------
+% the LEADSHEETS package
+%
+% typesetting leadsheets and songbooks
+%
+% --------------------------------------------------------------------------
+% Clemens Niederberger
+% E-Mail: contact@mychemistry.eu
+% --------------------------------------------------------------------------
+% Copyright 2014-2016 Clemens Niederberger
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Clemens Niederberger.
+% --------------------------------------------------------------------------
+\LeadsheetsExplLibrary{shorthands}
+ {2016/06/29 definition and activation of shorthands}
+
+\seq_new:N \l__leadsheets_shorthands_seq
+
+\cs_new_protected:Npn \leadsheets_define_shorthand:NN #1#2
+ {
+ \seq_if_in:NnF \l__leadsheets_shorthands_seq {#1}
+ { \seq_put_right:Nn \l__leadsheets_shorthands_seq {#1} }
+ \char_set_active_eq:NN #1#2
+ }
+
+\cs_new_protected:Npn \leadsheets_remove_shorthand:N #1
+ {
+ \leadsheets_define_shorthand:NN #1 \c_empty_tl
+ \seq_remove_all:Nn \l__leadsheets_shorthands_seq {#1}
+ \prop_remove:Nn \l__leadsheets_shorthands_prop {#1}
+ }
+
+\prg_new_conditional:Npnn \leadsheets_if_shorthand:N #1 {p,T,F,TF}
+ {
+ \seq_if_in:NnTF \l__leadsheets_shorthands_seq {#1}
+ { \prg_return_true: }
+ { \prg_return_false: }
+ }
+
+\cs_new_protected:Npn \leadsheets_for_all_shorthands_do:n #1
+ { \seq_map_inline:Nn \l__leadsheets_shorthands_seq {#1} }
+
+\cs_new_protected:Npn \leadsheets_activate_shorthand:N #1
+ { \leadsheets_if_shorthand:NT #1 { \char_set_catcode_active:N #1 } }
+
+\cs_new_protected:Npn \leadsheets_activate_shorthands:n #1
+ { \tl_map_inline:nn {#1} { \leadsheets_activate_shorthand:N ##1 } }
+
+\cs_new_protected:Npn \leadsheets_activate_all_shorthands:
+ {
+ \leadsheets_for_all_shorthands_do:n
+ { \leadsheets_activate_shorthand:N ##1 }
+ }
+
+\file_input_stop:
+
+2016/06/29 - breaking change: \leadsheets_define_shorthand:Npn is now
+ \leadsheets_define_shorthand:NN