summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/leadsheets/leadsheets.library.properties.code.tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-08-19 21:44:56 +0000
committerKarl Berry <karl@freefriends.org>2016-08-19 21:44:56 +0000
commit2639cda39baf8b76bc02b0e2cd4e426570ee46d5 (patch)
tree27df9611cca8433df0fd634c9486d55e0a6f17da /Master/texmf-dist/tex/latex/leadsheets/leadsheets.library.properties.code.tex
parent3a531292de6d64a874319788cdf2f324bc8aa2eb (diff)
leadsheets (19aug16)
git-svn-id: svn://tug.org/texlive/trunk@41890 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/leadsheets/leadsheets.library.properties.code.tex')
-rw-r--r--Master/texmf-dist/tex/latex/leadsheets/leadsheets.library.properties.code.tex43
1 files changed, 41 insertions, 2 deletions
diff --git a/Master/texmf-dist/tex/latex/leadsheets/leadsheets.library.properties.code.tex b/Master/texmf-dist/tex/latex/leadsheets/leadsheets.library.properties.code.tex
index f434525a50d..1b587975dea 100644
--- a/Master/texmf-dist/tex/latex/leadsheets/leadsheets.library.properties.code.tex
+++ b/Master/texmf-dist/tex/latex/leadsheets/leadsheets.library.properties.code.tex
@@ -5,7 +5,6 @@
%
% --------------------------------------------------------------------------
% Clemens Niederberger
-% Web: http://www.mychemistry.eu/forums/forum/leadsheets/
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
% Copyright 2014-2016 Clemens Niederberger
@@ -22,7 +21,7 @@
%
% The Current Maintainer of this work is Clemens Niederberger.
% --------------------------------------------------------------------------
-\LeadsheetsExplLibrary{properties}{2014/08/10 song properties}
+\LeadsheetsExplLibrary{properties}{2016/05/18 song properties}
\cs_generate_variant:Nn \tl_if_eq:nnTF {x}
@@ -60,6 +59,35 @@
\cs_generate_variant:Nn \leadsheets_if_property:nnT { V }
\cs_generate_variant:Nn \leadsheets_if_property_p:nn { V }
+\prg_new_protected_conditional:Npnn \leadsheets_if_any_property:nn #1#2 {T,F,TF}
+ {
+ \bool_set_false:N \l__leadsheets_tmpa_bool
+ \clist_map_inline:nn {#1}
+ {
+ \prop_if_in:cnT {l__leadsheets_songs_#2_prop} {#1}
+ { \bool_set_true:N \l__leadsheets_tmpa_bool }
+ }
+ \bool_if:NTF \l__leadsheets_tmpa_bool
+ { \prg_return_true: }
+ { \prg_return_false: }
+ }
+\cs_generate_variant:Nn \leadsheets_if_any_property:nnTF {V}
+
+\prg_new_protected_conditional:Npnn \leadsheets_if_all_properties:nn #1#2 {T,F,TF}
+ {
+ \bool_set_false:N \l__leadsheets_tmpa_bool
+ \clist_map_inline:nn {#1}
+ {
+ \prop_if_in:cnTF {l__leadsheets_songs_#2_prop} {#1}
+ { \bool_set_true:N \l__leadsheets_tmpa_bool }
+ { \bool_set_false:N \l__leadsheets_tmpa_bool }
+ }
+ \bool_if:NTF \l__leadsheets_tmpa_bool
+ { \prg_return_true: }
+ { \prg_return_false: }
+ }
+\cs_generate_variant:Nn \leadsheets_if_all_properties:nnTF {V}
+
\prg_new_protected_conditional:Npnn \leadsheets_if_properties_eq:nnn #1#2#3 {T,F,TF}
{
\tl_if_eq:xxTF
@@ -171,15 +199,25 @@
\DeclareExpandableDocumentCommand \ifsongproperty {m}
{ \leadsheets_if_property:VnTF \l_leadsheets_current_song_id_tl {#1} }
+\NewDocumentCommand \ifanysongproperty {m}
+ { \leadsheets_if_any_property:VnTF \l_leadsheets_current_song_id_tl {#1} }
+
+\NewDocumentCommand \ifallsongproperties {m}
+ { \leadsheets_if_all_properties:VnTF \l_leadsheets_current_song_id_tl {#1} }
+
\DeclareExpandableDocumentCommand \ifsongmeasuring {}
{ \leadsheets_if_measuring:TF }
\NewDocumentCommand \ifsongpropertiesequal {mm}
{ \leadsheets_if_properties_eq:VnnTF \l_leadsheets_current_song_id_tl {#1} {#2} }
+% #1: property 1
+% #2: property 2
\NewDocumentCommand \ifsongpropertyequal {mm}
{ \leadsheets_if_property_eq:VnnTF \l_leadsheets_current_song_id_tl {#1} {#2} }
+% #1: property
+% #2: tokenlist
\NewDocumentCommand \definesongproperty {m}
{ \leadsheets_define_property:n {#1} }
\@onlypreamble\definesongproperty
@@ -190,3 +228,4 @@
\endinput
2015/07/05: enable usage of # in the key property
+2016/05/18: new commands \ifanysongproperty and \ifallsongproperties