summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/menukeys
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-10-31 21:05:52 +0000
committerKarl Berry <karl@freefriends.org>2020-10-31 21:05:52 +0000
commit41e89cc699b2bc2d2bd06efb0c9010e1fd93a2ea (patch)
treef46c788a296419247090f0b9107637a4656122d5 /Master/texmf-dist/tex/latex/menukeys
parentc06466531bdbf8090b8acb6e2252d78d61c95c12 (diff)
menukeys (31oct20)
git-svn-id: svn://tug.org/texlive/trunk@56822 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/menukeys')
-rw-r--r--Master/texmf-dist/tex/latex/menukeys/menukeys.sty160
1 files changed, 112 insertions, 48 deletions
diff --git a/Master/texmf-dist/tex/latex/menukeys/menukeys.sty b/Master/texmf-dist/tex/latex/menukeys/menukeys.sty
index 732d1409961..3765286a07a 100644
--- a/Master/texmf-dist/tex/latex/menukeys/menukeys.sty
+++ b/Master/texmf-dist/tex/latex/menukeys/menukeys.sty
@@ -21,9 +21,18 @@
%% and version 1.2 or later is part of all distributions of
%% LaTeX version 1999/12/01 or later.
%%
+%% File: menukeys.dtx Copyright (c) Tobias Weh
+%%
+%% This file may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License (LPPL), either version 1.3c of this
+%% license or (at your option) any later version. The latest version
+%% of this license is in the file
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
\NeedsTeXFormat{LaTeX2e}[2009/01/01]
\ProvidesPackage{menukeys}
- [2016/08/08 v1.5 -- A package to format menus, paths and shortcuts]
+ [2020/10/31 v1.6 -- A package to format menus, paths and shortcuts]
\RequirePackage{xparse}
\RequirePackage{xstring}
\RequirePackage{etoolbox}
@@ -32,7 +41,67 @@
\RequirePackage{xcolor}
\RequirePackage{adjustbox}
\RequirePackage{relsize}
-\RequirePackage{catoptions}[2011/12/07]
+\ExplSyntaxOn
+\cs_new_eq:NN \tw@mk@trimspaces \tl_trim_spaces:n
+\cs_new_eq:NN \tw@mk@expanded \use:x
+\prg_generate_conditional_variant:Nnn \tl_if_in:nn { xx } { TF }
+\cs_new:Npn \tw@mk@xifinsetTF #1 #2
+ {
+ \tl_if_in:xxTF {#2} {#1}
+ }
+\cs_new:Npn \tw@mk@iflastindris
+ {
+ \seq_if_empty:NTF \l__twmk_indris_seq
+ }
+\seq_new:N \l__twmk_indris_seq
+\int_new:N \l__twmk_indris_int
+\tl_new:N \l__twmk_indris_tl
+\cs_new_eq:NN \tw@mk@indrisnr \l__twmk_indris_int
+\seq_new:N \l__twmk_indris_seqstack_seq
+\seq_new:N \l__twmk_indris_intstack_seq
+\cs_new_protected:Npn \__twmk_pushseq:
+ {
+ \seq_push:No \l__twmk_indris_seqstack_seq \l__twmk_indris_seq
+ }
+\cs_new_protected:Npn \__twmk_pushint:
+ {
+ \seq_push:NV \l__twmk_indris_intstack_seq \l__twmk_indris_int
+ }
+\cs_new_protected:Npn \__twmk_popseq:
+ {
+ \seq_if_empty:NTF \l__twmk_indris_seqstack_seq
+ { \seq_clear:N \l__twmk_indris_seq }
+ { \seq_pop:NN \l__twmk_indris_seqstack_seq \l__twmk_indris_seq }
+ }
+\cs_new_protected:Npn \__twmk_popint:
+ {
+ \seq_if_empty:NTF \l__twmk_indris_intstack_seq
+ { \int_zero:N \l__twmk_indris_int }
+ {
+ \group_begin:
+ \seq_pop:NN \l__twmk_indris_intstack_seq \l__twmk_indris_tl
+ \exp_args:NNNo
+ \group_end:
+ \int_set:Nn \l__twmk_indris_int \l__twmk_indris_tl
+ }
+ }
+\cs_generate_variant:Nn \seq_set_split:Nnn { Nno }
+\cs_new_protected:Npn \tw@mk@indrisloop #1 #2 #3
+ {
+ \__twmk_pushseq:
+ \__twmk_pushint:
+ \seq_set_split:Nno \l__twmk_indris_seq {#1} {#2}
+ \int_zero:N \l__twmk_indris_int
+ \bool_do_while:nn { \bool_not_p:n { \seq_if_empty_p:N \l__twmk_indris_seq } }
+ {
+ \int_incr:N \l__twmk_indris_int
+ \seq_pop_left:NN \l__twmk_indris_seq \l__twmk_indris_tl
+ \exp_args:No #3 \l__twmk_indris_tl
+ }
+ \__twmk_popseq:
+ \__twmk_popint:
+ }
+\ExplSyntaxOff
\newcommand*{\tw@mk@error}[2][Please consult the manual for more information.]{%
\PackageError{menukeys}{#2}{#1}%
}
@@ -68,16 +137,10 @@
Possible values are 'symbols' or 'text'.}%
}
\iftw@mk@hyperrefcolorlinks
- \Hy@AtBeginDocument{% (hyperref.sty, line 4790)
- \def\@pdfborder{0 0 0}% (hyperref.sty, line 4806...)
- \let\@pdfborderstyle\@empty
- \def\Hy@colorlink#1{%
- \begingroup
- \HyColor@UseColor#1%
- }%
- \def\Hy@endcolorlink{\endgroup}%
- \Hy@Info{Link coloring ON}%
- }
+ \tw@mk@warning{The option `hyperrefcolorlinks' is obsolete}
+ \@ifpackageloaded{hyperref}
+ {\hypersetup{colorlinks}}
+ {\PassOptionsToPackage{colorlinks}{hyperref}}
\fi
\newcommand*{\tw@make@color@theme}[8]{%
\definecolor{tw@color@theme@#1@bg}{#2}{#3}%
@@ -593,71 +656,72 @@
\begingroup
\lccode`\,=1
\lowercase{\endgroup
- \robust@def*\tw@mk@test@input@sep#1{%
- \xifinsetTF{,\cpttrimspaces{#1},}{,bslash,backslash,directory,location,}%
- }%
+ \@ifdefinable\tw@mk@test@input@sep
+ {%
+ \protected\def\tw@mk@test@input@sep#1{%
+ \tw@mk@xifinsetTF
+ {,\tw@mk@trimspaces{#1},}{,bslash,backslash,directory,location,}%
+ }%
+ }%
}
-\NewDocumentCommand{\tw@define@menu@macro}{%
- m O{\tw@default@input@sep} m
-}{%
- \ifcsundef{tw@style@#3@sep}{%
- \tw@mk@error{Can't define menu macro \string#1\space,\MessageBreak
- because the style '#3' is not available!}
+\newcommand\tw@define@menu@macro[4]{%
+ \ifcsundef{tw@style@#4@sep}{%
+ \tw@mk@error{Can't define menu macro \string#2\space,\MessageBreak
+ because the style '#4' is not available!}
}{%
- \csdef{tw@parse@menu@list@\expandafter\@gobble\string#1}##1{%
- \iflastindris
- \ifnum\indrisnr=\@ne
+ \csdef{tw@parse@menu@list@\expandafter\@gobble\string#2}##1{%
+ \tw@mk@iflastindris
+ {%
+ \ifnum\tw@mk@indrisnr=\@ne
\def\CurrentMenuElement{##1}%
- \@nameuse{tw@style@#3@single}%
+ \@nameuse{tw@style@#4@single}%
\else
\def\CurrentMenuElement{##1}%
- \@nameuse{tw@style@#3@sep}\@nameuse{tw@style@#3@last}%
+ \@nameuse{tw@style@#4@sep}\@nameuse{tw@style@#4@last}%
\fi
- \else
- \ifnum\indrisnr=\@ne
+ }
+ {%
+ \ifnum\tw@mk@indrisnr=\@ne
\def\CurrentMenuElement{##1}%
- \@nameuse{tw@style@#3@first}%
+ \@nameuse{tw@style@#4@first}%
\else
\def\CurrentMenuElement{##1}%
- \@nameuse{tw@style@#3@sep}\@nameuse{tw@style@#3@mid}%
+ \@nameuse{tw@style@#4@sep}\@nameuse{tw@style@#4@mid}%
\fi
- \fi
+ }%
}%
- \expandafter\newcommand\csname\expandafter\@gobble\string#1\endcsname[2][#2]{%
+ #1 #2 { +O{#3} +m }{%
\leavevmode%
- {\def\tw@current@color@theme{\csname tw@style@#3@color@theme\endcsname}%
- \@nameuse{tw@style@#3@pre}%
+ {\def\tw@current@color@theme{\csname tw@style@#4@color@theme\endcsname}%
+ \@nameuse{tw@style@#4@pre}%
\tw@mk@test@input@sep{##1}{%
\edef\tw@menu@list{\detokenize{##2}}\edef\tw@mk@tempa{\@backslashchar}%
}{%
- \edef\tw@menu@list{\unexpanded{##2}}\edef\tw@mk@tempa{\cpttrimspaces{##1}}%
+ \edef\tw@menu@list{\unexpanded{##2}}\edef\tw@mk@tempa{\tw@mk@trimspaces{##1}}%
}%
- {\letcs{\tw@mk@tempb}{tw@parse@menu@list@\expandafter\@gobble\string#1}%
- \cptexpanded{\indrisloop*[\tw@mk@tempa]}\tw@menu@list\tw@mk@tempb}%
- \@nameuse{tw@style@#3@post}}%
+ {\letcs{\tw@mk@tempb}{tw@parse@menu@list@\expandafter\@gobble\string#2}%
+ \tw@mk@expanded{\tw@mk@indrisloop{\tw@mk@tempa}}\tw@menu@list\tw@mk@tempb}%
+ \@nameuse{tw@style@#4@post}}%
}%
}%
}
-\edef\cpt@parserlist{\cpt@parserlist\@backslashchar}
\NewDocumentCommand{\newmenumacro}{m O{\tw@default@input@sep} m}{%
\ifcsundef{\expandafter\@gobble\string#1}{%
- \tw@define@menu@macro{#1}[#2]{#3}%
- \expandafter\cptrobustify\csname\expandafter\@gobble\string#1\endcsname
- }{
+ \tw@define@menu@macro\NewDocumentCommand{#1}{#2}{#3}%
+ }{%
\tw@mk@error{Menu macro '\string#1' already defined!\MessageBreak
- Use \string\renewmenustyle\space instead.}
+ Use \string\renewmenustyle\space instead.}%
}%
}
\NewDocumentCommand{\renewmenumacro}{m O{\tw@default@input@sep} m}{%
- \cslet{\expandafter\@gobble\string#1}{\relax}%
- \tw@define@menu@macro{#1}[#2]{#3}%
+ \tw@define@menu@macro\RenewDocumentCommand{#1}{#2}{#3}%
}
\NewDocumentCommand{\providemenumacro}{m O{\tw@default@input@sep} m}{%
\ifcsundef{\expandafter\@gobble\string#1}{%
- \tw@define@menu@macro{#1}[#2]{#3}%
- }{
+ \tw@define@menu@macro\ProvideDocumentCommand{#1}{#2}{#3}%
+ }{%
\tw@mk@warning{Menu macro '\string#1' already defined!\MessageBreak
- Use \string\renewmenustyle\space to redefine it.}
+ Use \string\renewmenustyle\space to redefine it.}%
}%
}
\iftw@mk@definemenumacros