diff options
author | Karl Berry <karl@freefriends.org> | 2017-08-30 23:02:13 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-08-30 23:02:13 +0000 |
commit | da65270cdbb449c68e6e9f06dd8089b64275a2d3 (patch) | |
tree | b369d96387b99866dd74704ec42f6d762f88cb15 /Master/texmf-dist/tex/latex/multilang/multilang-tags.sty | |
parent | 26fdf6e8d8d273185f664cfc3e4066b52a65797e (diff) |
multilang (30aug17)
git-svn-id: svn://tug.org/texlive/trunk@45179 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/multilang/multilang-tags.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/multilang/multilang-tags.sty | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/multilang/multilang-tags.sty b/Master/texmf-dist/tex/latex/multilang/multilang-tags.sty new file mode 100644 index 00000000000..66ab2a6133c --- /dev/null +++ b/Master/texmf-dist/tex/latex/multilang/multilang-tags.sty @@ -0,0 +1,84 @@ +%% +%% This is file `multilang-tags.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% multilang.dtx (with options: `pkgtags') +%% +%% Copyright (C) 2016-2017 by Richard Gay <richard.gay@t-online.de> +%% +%% This file may be distributed and/or modified under the conditions of +%% the LaTeX Project Public License, either version 1.2 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.2 or later is part of all distributions of LaTeX version +%% 1999/12/01 or later. +%% +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{multilang-tags}[2017/08/30 v0.9 Filtering of multilingual macros by tags] + + + + +\newcommand\SetTagFilter[2][accept]{% + \kcvml@parsepolicy{kcvml@@tagfilter}{#1}{#2}} +\newcommand\kcvml@@tagfilter{} +\newcommand\DefineTagFilter[3]{% + \kcvml@parsepolicy{kcvml@filter@@#1}{#2}{#3}} +\newcommand\UseTagFilter[1]{% + \letcs\kcvml@@tagfilter{kcvml@filter@@#1}} +\newcommand\kcvml@parsepolicy[3]{% + \bgroup + \def\kcvml@@tmptagfilter{}% + \pgfqkeys{kcvml/tagfilter}{#3,default/#2}% + \edef\do{\egroup + \unexpanded{\csdef{#1}}{\expandonce{\kcvml@@tmptagfilter}}}% + \do} +\pgfqkeys{kcvml/tagfilter}{% + accept/.code={\kcvml@appendrule{#1}{\boolfalse}{\booltrue}}, + deny/.code ={\kcvml@appendrule{#1}{\booltrue}{\boolfalse}}, + default/accept/.code n args={0}{\appto\kcvml@@tmptagfilter{% + \kcvml@applydefault{\boolfalse}}}, + default/deny/.code n args={0}{\appto\kcvml@@tmptagfilter{% + \kcvml@applydefault{\booltrue}}}, +} +\newcommand\kcvml@appendrule[3]{% + \bgroup + \def\kcvml@@ruletags{}% + \forcsvlist{\listadd{\kcvml@@ruletags}}{#1}% + \expandafter\egroup + \expandafter\listadd\expandafter\kcvml@@tmptagfilter\expandafter{% + \expandafter\kcvml@applyrule\expandafter{\kcvml@@ruletags}{#2}{#3}}} +\appto\multilang@hook@processargs{% + \ifbool{multilang@@disablable}% + {\eappto{\multilang@@keys}{% + \noexpand\pgfqkeys{\multilang@@cekey}{% + tags/.code={\noexpand\kcvml@applyfilter{##1}}}}} + {}} +\newcommand\kcvml@applyfilter[1]{% + \ifbool{multilang@cmd@@disabled}{}{% + \boolfalse{kcvml@@match}% + \def\do##1{% + ##1{#1}% + \ifbool{kcvml@@match}{\listbreak}{}}% + \dolistloop{\kcvml@@tagfilter}}} +\newbool{kcvml@@match} +\newcommand\kcvml@applyrule[4]{% + \forcsvlist{\kcvml@applyrule@i{#1}{#2}{#3}}{#4}} +\newcommand\kcvml@applyrule@i[4]{% + \if !\@car#4\@nil + \expandafter\kcvml@applyrule@ii\expandafter{\@cdr#4\@nil}{#1}{#3}% + \else + \kcvml@applyrule@ii{#4}{#1}{#2}\fi} +\newcommand\kcvml@applyrule@ii[3]{% + \ifinlist{#1}{\empty #2}% + {#3{multilang@cmd@@disabled}\booltrue{kcvml@@match}}{}} +\newcommand\kcvml@applydefault[2]{% + #1{multilang@cmd@@disabled}} +\endinput +%% +%% End of file `multilang-tags.sty'. |