From acedfa5b268d19e3032eb974830e03f0f352e90d Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 7 Sep 2022 20:43:08 +0000 Subject: menukeys (7sep22) git-svn-id: svn://tug.org/texlive/trunk@64311 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/menukeys/menukeys.pdf | Bin 579072 -> 622559 bytes .../texmf-dist/source/latex/menukeys/menukeys.dtx | 64 +- .../texmf-dist/source/latex/menukeys/menukeys.ins | 6 +- .../tex/latex/menukeys/menukeys-2020-12-19.sty | 1008 ++++++++++++++++++++ Master/texmf-dist/tex/latex/menukeys/menukeys.sty | 16 +- 5 files changed, 1073 insertions(+), 21 deletions(-) create mode 100644 Master/texmf-dist/tex/latex/menukeys/menukeys-2020-12-19.sty diff --git a/Master/texmf-dist/doc/latex/menukeys/menukeys.pdf b/Master/texmf-dist/doc/latex/menukeys/menukeys.pdf index dd1b548f2d2..b15059e78f5 100644 Binary files a/Master/texmf-dist/doc/latex/menukeys/menukeys.pdf and b/Master/texmf-dist/doc/latex/menukeys/menukeys.pdf differ diff --git a/Master/texmf-dist/source/latex/menukeys/menukeys.dtx b/Master/texmf-dist/source/latex/menukeys/menukeys.dtx index d7fcb2684c5..aab8d306bf8 100644 --- a/Master/texmf-dist/source/latex/menukeys/menukeys.dtx +++ b/Master/texmf-dist/source/latex/menukeys/menukeys.dtx @@ -9,9 +9,14 @@ %% %% https://www.latex-project.org/lppl.txt %% -%\NeedsTeXFormat{LaTeX2e}[2009/01/01] -%\ProvidesPackage{menukeys} -% [2020/12/19 v1.6.1 -- A package to format menus, paths and shortcuts] +%\NeedsTeXFormat{LaTeX2e}[2009/01/01] +%\providecommand\DeclareRelease[3]{} +%\providecommand\DeclareCurrentRelease[2]{} +%\DeclareRelease{v1.6.1}{2020-12-19}{menukeys-2020-12-19.sty} +%\DeclareCurrentRelease{v1.6.2}{2022-07-01} +%\ProvidesPackage{menukeys} +% [2022/07/01 v1.6.2 -- A package to format menus, paths and shortcuts] +%<161> [2020/12/19 v1.6.1 -- A package to format menus, paths and shortcuts] % %<*driver> \documentclass{ltxdoc} @@ -34,6 +39,15 @@ urlcolor=darkred, bookmarksopen=true, bookmarksdepth=10, + pdftitle={The menukeys package}, + pdfsubject={% + Format menu sequences, paths and keystrokes from lists.% + }, + pdfauthor={% + Tobias Weh (mail@tobiw.de), Jonathan P. Spratte + (jspratte@yahoo.de)% + }, + pdfkeywords={The menukeys package, LaTeX} }{hyperref} \PassOptionsToPackage{hyphens}{url} \usepackage{hypdoc} @@ -211,7 +225,7 @@ % \changes{v1.2}{2013/07/23}{Added \cs{SPACE} and \cs{spacename}} % \changes{v1.2}{2013/07/23}{Added \cs{normalsize} before symbol definitions to make % the \texttt{ex} unit available} -% \changes{v1.2a}{2013/09/10}{Replaced obsolete \cs{tikzsytle}} +% \changes{v1.2a}{2013/09/10}{Replaced obsolete \cs{tikzstyle}} % \changes{v1.2a}{2013/09/10}{Added braces to the \cs{tikz} macro since the parser % seems to crash with \pkg{babel}'s french option otherwise.} % \changes{v1.3}{2014/03/10}{Improved key symbols.} @@ -230,7 +244,7 @@ % \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb} % \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt} % \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt} -% \DoNotIndex{\@xxpt,\@xxvpt,\\,\,\addpenalty,\addtolength,\addvspace} +% \DoNotIndex{\@xxpt,\@xxvpt,\\,\,,\addpenalty,\addtolength,\addvspace} % \DoNotIndex{\advance,\ast,\begin,\begingroup,\bfseries,\bgroup,\box} % \DoNotIndex{\bullet} % \DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption} @@ -520,11 +534,11 @@ % \item [sep] is the code executed between the lists elements, e.g. some % space or a symbol. % \item [mid] is the style for all elements between the first and the -% last one. It has to be a \TikZ sytle. +% last one. It has to be a \TikZ style. % \item [last] is the style for the last list element. -% It has to be a \TikZ sytle. +% It has to be a \TikZ style. % \item [single] this style is used if the list contains only one element. -% It has to be a \TikZ sytle. +% It has to be a \TikZ style. % \item [post] is the code which is executed after a menu macro. % \item [theme] is a color theme (see section~\ref{colors}). % \end{description} @@ -760,9 +774,12 @@ % If you find something to add to this list please send me an e-mail or report a % bug on GitHub (\url{https://github.com/tweh/menukeys}). % -% \StopEventually{\clearpage\PrintChanges\PrintIndex} +% \StopEventually{\clearpage\PrintChanges\clearpage\PrintIndex} % % \section{Implementation} +% \begin{macrocode} +%<*pkg> +% \end{macrocode} % \subsection{Required packages} % \changes{v1.6}{2020/10/27}{Don't load \pkg{catoptions}} % Load the required packages @@ -1107,12 +1124,12 @@ } % \end{macrocode} % \end{macro} -% \begin{macro}{\tw@declare@sytle}\begin{macro}{\tw@declare@sytle@extra@args} +% \begin{macro}{\tw@declare@style}\begin{macro}{\tw@declare@style@extra@args} % The next step is to create the extended command. This command must have % ten arguments (including the star) so we have to define a helping macro % to grab the last two macros. % \begin{macrocode} -\DeclareDocumentCommand{\tw@declare@sytle@extra@args}{% +\DeclareDocumentCommand{\tw@declare@style@extra@args}{% O{\tw@default@post} m }{% \csdef{tw@style@\tw@current@style @post}{#1}% @@ -1146,7 +1163,7 @@ \tikz[baseline=(tw@node.base)]{% \node(tw@node)[#7]{\strut\CurrentMenuElement};}}% }% - \tw@declare@sytle@extra@args% + \tw@declare@style@extra@args% } % \end{macrocode} % \end{macro}\end{macro} @@ -1430,7 +1447,15 @@ \hspace{0.2ex}\hspace{0.1em plus 0.1em minus 0.05em}% \textcolor{\usemenucolor{b}}{\raisebox{0.25ex}{\sffamily\relsize{-2}+}}% \hspace{0.1em plus 0.1em minus 0.05em}% -][\hspace{0.2ex}]{gray} +% \end{macrocode} +% \changes{v1.6.2}{2022/07/01}{changed \cs{hspace} to \cs{kern}} +% \begin{macrocode} +% +%][\kern0.2ex\relax]{gray} +%<161>][\hspace{0.2ex}]{gray} +%<*pkg> +% \end{macrocode} +% \begin{macrocode} \tikzset{tw@angularkeys@base/.style={% tw@set@tikz@colors, @@ -1472,7 +1497,15 @@ \hspace{0.2ex}\hspace{0.1em plus 0.1em minus 0.05em}% \textcolor{\usemenucolor{b}}{\raisebox{0.25ex}{\sffamily\relsize{-2}+}}% \hspace{0.1em plus 0.1em minus 0.05em}% -][\hspace{0.2ex}]{gray} +% \end{macrocode} +% \changes{v1.6.2}{2022/07/01}{changed \cs{hspace} to \cs{kern}} +% \begin{macrocode} +% +%][\kern0.2ex\relax]{gray} +%<161>][\hspace{0.2ex}]{gray} +%<*pkg> +% \end{macrocode} +% \begin{macrocode} \tikzset{tw@typewriterkeys@base/.style={% tw@set@tikz@colors, @@ -2110,6 +2143,9 @@ \fi % \end{macrocode} % +% \begin{macrocode} +% +% \end{macrocode} % % \Finale \endinput diff --git a/Master/texmf-dist/source/latex/menukeys/menukeys.ins b/Master/texmf-dist/source/latex/menukeys/menukeys.ins index 8999ea72759..709f5f3bfb8 100644 --- a/Master/texmf-dist/source/latex/menukeys/menukeys.ins +++ b/Master/texmf-dist/source/latex/menukeys/menukeys.ins @@ -36,7 +36,11 @@ LaTeX version 1999/12/01 or later. \endpreamble \askforoverwritefalse -\generate{\file{menukeys.sty}{\from{menukeys.dtx}{package}}} +\generate + {% + \file{menukeys.sty}{\from{menukeys.dtx}{pkg,cur,rbk}}% + \file{menukeys-2020-12-19.sty}{\from{menukeys.dtx}{pkg,161}}% + } \obeyspaces \Msg{****************************************************} diff --git a/Master/texmf-dist/tex/latex/menukeys/menukeys-2020-12-19.sty b/Master/texmf-dist/tex/latex/menukeys/menukeys-2020-12-19.sty new file mode 100644 index 00000000000..e64e4412e06 --- /dev/null +++ b/Master/texmf-dist/tex/latex/menukeys/menukeys-2020-12-19.sty @@ -0,0 +1,1008 @@ +%% +%% This is file `menukeys-2020-12-19.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% menukeys.dtx (with options: `pkg,161') +%% +%% This is a generated file. +%% +%% Copyright (C) 2016 by Tobias Weh +%% www.tobiw.de/en +%% +%% This file 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: +%% +%% https://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. +%% +%% 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 +%% +%% https://www.latex-project.org/lppl.txt +%% +\NeedsTeXFormat{LaTeX2e}[2009/01/01] +\ProvidesPackage{menukeys} + [2020/12/19 v1.6.1 -- A package to format menus, paths and shortcuts] +\RequirePackage{xparse} +\RequirePackage{xstring} +\RequirePackage{etoolbox} +\RequirePackage{tikz} + \usetikzlibrary{calc,shapes.symbols,shadows} +\RequirePackage{xcolor} +\RequirePackage{adjustbox} +\RequirePackage{relsize} +\ExplSyntaxOn +\cs_new_eq:NN \tw@mk@trimspaces \tl_trim_spaces:n +\cs_new_eq:NN \tw@mk@exp@Nnno \exp_args:Nnno +\cs_new_eq:NN \tw@mk@string \cs_to_str:N +\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 { Noo } +\cs_new_protected:Npn \tw@mk@indrisloop #1 #2 #3 + { + \__twmk_pushseq: + \__twmk_pushint: + \seq_set_split:Noo \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}% +} +\newcommand*{\tw@mk@warning}[1]{% + \PackageWarning{menukeys}{#1}% +} +\newcommand*{\tw@mk@warning@noline}[1]{% + \PackageWarningNoLine{menukeys}{#1}% +} +\def\tw@mk@tempa{} +\def\tw@mk@tempb{} +\DeclareDocumentCommand{\tw@mk@gobble@args}{m}{% + \RenewDocumentCommand{\tw@mk@tempa}{#1}{}% + \tw@mk@tempa% +} +\RequirePackage{kvoptions} +\SetupKeyvalOptions{ + family=tw@mk, + prefix=tw@mk@ +} +\DeclareBoolOption[true]{definemenumacros} +\DeclareBoolOption[true]{definekeys} +\DeclareBoolOption[false]{hyperrefcolorlinks} +\DeclareStringOption[mac]{os} +\DeclareStringOption[symbols]{mackeys} +\ProcessKeyvalOptions{tw@mk}\relax +\IfSubStr{.mac.win.}{.\tw@mk@os.}{}{% + \tw@mk@error{Unknown value for option 'os'\MessageBreak + Possible values are 'mac' or 'win'.}% +} +\IfSubStr{.symbols.text.}{.\tw@mk@mackeys.}{}{% + \tw@mk@error{Unknown value for option 'mackeys'\MessageBreak + Possible values are 'symbols' or 'text'.}% +} +\iftw@mk@hyperrefcolorlinks + \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}% + \definecolor{tw@color@theme@#1@br}{#2}{#4}% + \definecolor{tw@color@theme@#1@txt}{#2}{#5}% + \definecolor{tw@color@theme@#1@a}{#2}{#6}% + \definecolor{tw@color@theme@#1@b}{#2}{#7}% + \definecolor{tw@color@theme@#1@c}{#2}{#8}% +} +\NewDocumentCommand{\newmenucolortheme}{ m m m m m O{#3} O{#4} O{#5} }{% + \@ifundefinedcolor{tw@color@theme@#1@bg}{% + \tw@make@color@theme{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}% + }{% + \tw@mk@error{Color theme '#1' already defined!\MessageBreak + Use \string\renewmenucolortheme\space instead.}% + } +} +\NewDocumentCommand{\renewmenucolortheme}{ m m m m m O{#3} O{#4} O{#5} }{% + \tw@make@color@theme{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}% +} +\newcommand*{\changemenucolor}[4]{% + \IfSubStr{ bg br txt }{ #2 }{% + \definecolor{tw@color@theme@#1@#2}{#3}{#4}% + }{% + \tw@mk@error{No such color element ('#2')!\MessageBreak + Possible values are bg, br and txt.} + }% +} +\newcommand*{\copymenucolortheme}[2]{% + \@ifundefinedcolor{tw@color@theme@#1@bg}{% + \colorlet{tw@color@theme@#1@bg}{tw@color@theme@#2@bg}% + \colorlet{tw@color@theme@#1@br}{tw@color@theme@#2@br}% + \colorlet{tw@color@theme@#1@txt}{tw@color@theme@#2@txt}% + \colorlet{tw@color@theme@#1@a}{tw@color@theme@#2@a}% + \colorlet{tw@color@theme@#1@b}{tw@color@theme@#2@b}% + \colorlet{tw@color@theme@#1@c}{tw@color@theme@#2@c}% + }{% + \tw@mk@error{Color theme '#1' already defined!\MessageBreak + Use \string\renewmenucolortheme\space instead.} + } +} +\newcommand{\changemenucolortheme}[2]{% + \ifcsundef{tw@style@#1@pre}{% + \tw@mk@error{Style '#1' undefined!\MessageBreak + Maybe you misspelled it?}% + }{% + \@ifundefinedcolor{tw@color@theme@#2@bg}{% + \tw@mk@error{Color theme '#2' is not defined!}% + }{% + \csdef{tw@style@#1@color@theme}{#2}% + }% + }% +} +\newcommand{\usemenucolor}[1]{% + tw@color@theme@\tw@current@color@theme @#1% +} +\newmenucolortheme{gray}{gray}{0.95}{0.3}{0}[0.95][0][0] +\newmenucolortheme{blacknwhite}{gray}{1}{0}{0}[1][0][0] +\newcommand{\tw@default@sep}{% + \hspace{0.2em plus 0.1em minus 0.5em}% +} +\newcommand{\tw@default@pre}{} +\newcommand{\tw@default@post}{} +\DeclareDocumentCommand{\tw@declare@style@simple}{% + s m O{\tw@default@pre} m O{\tw@default@sep} O{\tw@default@post} m +}{% + \csdef{tw@style@#2@color@theme}{#7}% + \csdef{tw@style@#2@pre}{#3}% + \csdef{tw@style@#2@sep}{#5}% + \csdef{tw@style@#2@post}{#6}% + \IfBooleanTF{#1}{% + \csdef{tw@style@#2@single}{#4}% + \csdef{tw@style@#2@first}{#4}% + \csdef{tw@style@#2@mid}{#4}% + \csdef{tw@style@#2@last}{#4}% + }{% + \csdef{tw@style@#2@single}{% + \tikz[baseline=(tw@node.base)]{% + \node(tw@node)[#4]{\strut\CurrentMenuElement};}}% + \csdef{tw@style@#2@first}{% + \tikz[baseline=(tw@node.base)]{% + \node(tw@node)[#4]{\strut\CurrentMenuElement};}}% + \csdef{tw@style@#2@mid}{% + \tikz[baseline=(tw@node.base)]{% + \node(tw@node)[#4]{\strut\CurrentMenuElement};}}% + \csdef{tw@style@#2@last}{% + \tikz[baseline=(tw@node.base)]{% + \node(tw@node)[#4]{\strut\CurrentMenuElement};}}% + }% +} +\DeclareDocumentCommand{\tw@declare@style@extra@args}{% + O{\tw@default@post} m +}{% + \csdef{tw@style@\tw@current@style @post}{#1}% + \csdef{tw@style@\tw@current@style @color@theme}{#2}% +} +\DeclareDocumentCommand{\tw@declare@style}{% + s m O{\tw@default@pre} m O{\tw@default@sep} m m m +}{% + \def\tw@current@style{#2} + \csdef{tw@style@#2@pre}{#3}% + \csdef{tw@style@#2@sep}{#5}% + \IfBooleanTF{#1}{% + \csdef{tw@style@#2@single}{#8}% + \csdef{tw@style@#2@first}{#4}% + \csdef{tw@style@#2@mid}{#6}% + \csdef{tw@style@#2@last}{#7}% + }{% + \csdef{tw@style@#2@single}{% + \tikz[baseline=(tw@node.base)]{% + \node(tw@node)[#8]{\strut\CurrentMenuElement};}}% + \csdef{tw@style@#2@first}{% + \tikz[baseline=(tw@node.base)]{% + \node(tw@node)[#4]{\strut\CurrentMenuElement};}}% + \csdef{tw@style@#2@mid}{% + \tikz[baseline=(tw@node.base)]{% + \node(tw@node)[#6]{\strut\CurrentMenuElement};}}% + \csdef{tw@style@#2@last}{% + \tikz[baseline=(tw@node.base)]{% + \node(tw@node)[#7]{\strut\CurrentMenuElement};}}% + }% + \tw@declare@style@extra@args% +} +\NewDocumentCommand{\newmenustylesimple}{s m}{% + \ifcsundef{tw@style@#2@pre}{% + \IfBooleanTF{#1}{% + \tw@declare@style@simple*{#2}% + }{% + \tw@declare@style@simple{#2}% + }% + }{% + \tw@mk@error{Style '#2' already defined!\MessageBreak + Use \string\renewmenustylesimple\space instead.}% + \tw@mk@gobble@args{o m o o m}% + }% +} +\NewDocumentCommand{\renewmenustylesimple}{s m}{% + \IfBooleanTF{#1}{% + \tw@declare@style@simple*{#2}% + }{% + \tw@declare@style@simple{#2}% + }% +} +\NewDocumentCommand{\providemenustylesimple}{s m}{% + \ifcsundef{tw@style@#2@pre}{% + \IfBooleanTF{#1}{% + \tw@declare@style@simple*{#2}% + }{% + \tw@declare@style@simple{#2}% + }% + }{% + \tw@mk@warning{Trying to provide style '#2' failed,\MessageBreak + because it's already defined.\MessageBreak + You may use \string\renewmenustylesimple\space instead.}% + \tw@mk@gobble@args{o m o o m}% + }% +} + +\NewDocumentCommand{\newmenustyle}{s m}{% + \ifcsundef{tw@style@#2@pre}{% + \IfBooleanTF{#1}{% + \tw@declare@style*{#2}% + }{% + \tw@declare@style{#2}% + }% + }{% + \tw@mk@error{Style '#2' already defined!\MessageBreak + Use \string\renewmenustyle\space instead.}% + \tw@mk@gobble@args{o m o m m m o m}% + }% +} +\NewDocumentCommand{\renewmenustyle}{s m}{% + \IfBooleanTF{#1}{% + \tw@declare@style*{#2}% + }{% + \tw@declare@style{#2}% + }% +} +\NewDocumentCommand{\providemenustyle}{s m}{% + \ifcsundef{tw@style@#2@pre}{% + \IfBooleanTF{#1}{% + \tw@declare@style*{#2}% + }{% + \tw@declare@style{#2}% + }% + }{% + \tw@mk@warning{Trying to provide style #2 failed,\MessageBreak + because it's already defined.\MessageBreak + You may use \string\renewmenustyle\space instead.}% + \tw@mk@gobble@args{o m o m m m o m}% + }% +} +\newcommand*{\copymenustyle}[2]{% + \ifcsundef{tw@style@#1@pre}{% + \ifcsundef{tw@style@#2@pre}{% + \tw@mk@error{Can't copy not existing style ('#2')!}% + }{% + \csletcs{tw@style@#1@pre}{tw@style@#2@pre}% + \csletcs{tw@style@#1@post}{tw@style@#2@post}% + \csletcs{tw@style@#1@sep}{tw@style@#2@sep}% + \csletcs{tw@style@#1@single}{tw@style@#2@single}% + \csletcs{tw@style@#1@first}{tw@style@#2@first}% + \csletcs{tw@style@#1@mid}{tw@style@#2@mid}% + \csletcs{tw@style@#1@last}{tw@style@#2@last}% + \csletcs{tw@style@#1@color@theme}{tw@style@#2@color@theme} + }% + }{% + \tw@mk@error{Style '#1' already exists!}% + }% +} +\NewDocumentCommand{\changemenuelement}{s m m m}{% + \ifcsundef{tw@style@#2@pre}{% + \tw@mk@error{Style '#2' undefined.}% + }{% + \IfSubStr{ single first middle last pre post sep }{ #3 }{% + \IfBooleanTF{#1}{% + \csdef{tw@style@#2@#3}{#4}% + }{% + \IfSubStr{ pre post sep }{ #3 }{% + \csdef{tw@style@#2@#3}{#4}% + }{% + \csdef{tw@style@#2@#3}{% + \tikz[baseline=(tw@node.base)]{% + \node(tw@node)[#4]{\strut\color{\usemenucolor{txt}}\CurrentMenuElement};}}% + }% + }% + }{\tw@mk@error{No element '#3'. Possible values are\MessageBreak + single, first, middle, last, pre, post or sep.}}% + }% +} +\tikzset{tw@set@tikz@colors/.style={% + draw=\usemenucolor{br}, + fill=\usemenucolor{bg}, + text=\usemenucolor{txt}, +}} +\tikzset{tw@menus@base/.style={% + tw@set@tikz@colors, + rounded corners=0.15ex, + inner sep=0pt, + inner xsep=2pt, + text height=1.825ex, + text depth=0.7ex, + minimum width=1.5em, + font=\relsize{-1}\sffamily, + signal, + signal to=nowhere, + signal pointer angle=110, +}} +\tw@declare@style*{menus}{% + \tikz[baseline={($(tw@node.base)+(0,-0.2ex)$)}]{% + \node(tw@node)[tw@menus@base,signal to=east]% + {\strut\color{\usemenucolor{txt}}\CurrentMenuElement};}% +}[\hspace{-0.2em}\hspace{0em plus 0.1em minus 0.05em}]% +{% + \tikz[baseline={($(tw@node.base)+(0,-0.2ex)$)}]{% + \node(tw@node)[tw@menus@base,signal from=west,signal to=east]% + {\strut\color{\usemenucolor{txt}}\CurrentMenuElement};}% +}{% + \tikz[baseline={($(tw@node.base)+(0,-0.2ex)$)}]{% + \node(tw@node)[tw@menus@base,signal from=west,]% + {\strut\color{\usemenucolor{txt}}\CurrentMenuElement};}% +}{% + \tikz[baseline={($(tw@node.base)+(0,-0.2ex)$)}]{% + \node(tw@node)[tw@menus@base]{\strut\color{\usemenucolor{txt}}\CurrentMenuElement};}% +}{gray} + +\tikzset{tw@roundedmenus@base/.style={% + tw@set@tikz@colors, + rounded corners=0.3ex, + inner sep=0pt, + inner xsep=2pt, + text height=1.825ex, + text depth=0.7ex, + minimum width=1.5em, + font=\relsize{-1}\sffamily, + signal, + signal to=nowhere, + signal pointer angle=110, +}} +\tw@declare@style*{roundedmenus}{% + \tikz[baseline={($(tw@node.base)+(0,-0.2ex)$)}]{% + \node(tw@node)[tw@roundedmenus@base,signal to=east]% + {\strut\color{\usemenucolor{txt}}\CurrentMenuElement};}% +}[\hspace{-0.2em}\hspace{0em plus 0.1em minus 0.05em}]% +{% + \tikz[baseline={($(tw@node.base)+(0,-0.2ex)$)}]{% + \node(tw@node)[tw@roundedmenus@base,signal from=west,signal to=east]% + {\strut\color{\usemenucolor{txt}}\CurrentMenuElement};}% +}{% + \tikz[baseline={($(tw@node.base)+(0,-0.2ex)$)}]{% + \node(tw@node)[tw@roundedmenus@base,signal from=west,]% + {\strut\color{\usemenucolor{txt}}\CurrentMenuElement};}% +}{% + \tikz[baseline={($(tw@node.base)+(0,-0.2ex)$)}]{% + \node(tw@node)[tw@roundedmenus@base]{\strut\color{\usemenucolor{txt}}\CurrentMenuElement};}% +}{gray} + +\tikzset{tw@angularmenus@base/.style={% + tw@set@tikz@colors, + inner sep=0pt, + inner xsep=2pt, + text height=1.825ex, + text depth=0.7ex, + minimum width=1.5em, + font=\relsize{-1}\sffamily, + signal, + signal to=nowhere, + signal pointer angle=110, +}} +\tw@declare@style*{angularmenus}{% + \tikz[baseline={($(tw@node.base)+(0,-0.2ex)$)}]{% + \node(tw@node)[tw@angularmenus@base,signal to=east]% + {\strut\color{\usemenucolor{txt}}\CurrentMenuElement};}% +}[\hspace{-0.2em}\hspace{0em plus 0.1em minus 0.05em}]% +{% + \tikz[baseline={($(tw@node.base)+(0,-0.2ex)$)}]{% + \node(tw@node)[tw@angularmenus@base,signal from=west,signal to=east]% + {\strut\color{\usemenucolor{txt}}\CurrentMenuElement};}% +}{% + \tikz[baseline={($(tw@node.base)+(0,-0.2ex)$)}]{% + \node(tw@node)[tw@angularmenus@base,signal from=west,]% + {\strut\color{\usemenucolor{txt}}\CurrentMenuElement};}% +}{% + \tikz[baseline={($(tw@node.base)+(0,-0.2ex)$)}]{% + \node(tw@node)[tw@angularmenus@base]{\strut\color{\usemenucolor{txt}}\CurrentMenuElement};}% +}{gray} + +\tikzset{tw@roundedkeys@base/.style={% + tw@set@tikz@colors, + rounded corners=0.3ex, + inner sep=0pt, + inner xsep=2pt, + text height=1.825ex, + text depth=0.7ex, + minimum width=1.5em, + font=\relsize{-1}\sffamily, +}} +\tw@declare@style@simple*{roundedkeys}{% + \tikz[baseline={($(tw@node.base)+(0,-0.2ex)$)}]{% + \node(tw@node)[tw@roundedkeys@base]% + {\strut\color{\usemenucolor{txt}}\CurrentMenuElement};}% +}[% + \hspace{0.1em plus 0.1em minus 0.05em}% + \textcolor{\usemenucolor{b}}{\raisebox{0.25ex}{\sffamily\relsize{-2}+}}% + \hspace{0.1em plus 0.1em minus 0.05em}% +]{gray} + +\tikzset{tw@shadowedroundedkeys@base/.style={% + tw@set@tikz@colors, + rounded corners=0.3ex, + inner sep=0pt, + inner xsep=2pt, + text height=1.825ex, + text depth=0.7ex, + minimum width=1.5em, + font=\relsize{-1}\sffamily, + general shadow={% + shadow xshift=.2ex, shadow yshift=-.15ex, + fill=\usemenucolor{c}, + }, +}} +\tw@declare@style@simple*{shadowedroundedkeys}{% + \tikz[baseline={($(tw@node.base)+(0,-0.2ex)$)}]{% + \node(tw@node)[tw@shadowedroundedkeys@base]% + {\strut\color{\usemenucolor{txt}}\CurrentMenuElement};% + }% +}[% + \hspace{0.2ex}\hspace{0.1em plus 0.1em minus 0.05em}% + \textcolor{\usemenucolor{b}}{\raisebox{0.25ex}{\sffamily\relsize{-2}+}}% + \hspace{0.1em plus 0.1em minus 0.05em}% +][\hspace{0.2ex}]{gray} + +\tikzset{tw@angularkeys@base/.style={% + tw@set@tikz@colors, + inner sep=0pt, + inner xsep=2pt, + text height=1.825ex, + text depth=0.7ex, + minimum width=1.5em, + font=\relsize{-1}\sffamily, +}} +\tw@declare@style@simple*{angularkeys}{% + \tikz[baseline={($(tw@node.base)+(0,-0.2ex)$)}]{% + \node(tw@node)[tw@angularkeys@base]% + {\strut\color{\usemenucolor{txt}}\CurrentMenuElement};}% +}[% + \hspace{0.1em plus 0.1em minus 0.05em}% + \textcolor{\usemenucolor{b}}{\raisebox{0.25ex}{\sffamily\relsize{-2}+}}% + \hspace{0.1em plus 0.1em minus 0.05em}% +]{gray} + +\tikzset{tw@shadowedangularkeys@base/.style={% + tw@set@tikz@colors, + inner sep=0pt, + inner xsep=2pt, + text height=1.825ex, + text depth=0.7ex, + minimum width=1.5em, + font=\relsize{-1}\sffamily, + general shadow={% + shadow xshift=.2ex, shadow yshift=-.15ex, + fill=\usemenucolor{c}, + }, +}} +\tw@declare@style@simple*{shadowedangularkeys}{% + \tikz[baseline={($(tw@node.base)+(0,-0.2ex)$)}]{% + \node(tw@node)[tw@shadowedangularkeys@base]% + {\strut\color{\usemenucolor{txt}}\CurrentMenuElement};}% +}[% + \hspace{0.2ex}\hspace{0.1em plus 0.1em minus 0.05em}% + \textcolor{\usemenucolor{b}}{\raisebox{0.25ex}{\sffamily\relsize{-2}+}}% + \hspace{0.1em plus 0.1em minus 0.05em}% +][\hspace{0.2ex}]{gray} + +\tikzset{tw@typewriterkeys@base/.style={% + tw@set@tikz@colors, + shape=circle, + minimum size=2ex, + inner sep=0.5pt, outer sep=1pt, + font=\ttfamily\relsize{-1}, +}} +\tw@declare@style@simple*{typewriterkeys}{% + \def\tw@typewriterkeys@curr@elem{% + \maxsizebox*{2ex}{2ex}{\CurrentMenuElement}% + }% + \begin{tikzpicture}[baseline={($(tw@node.south)+(0,0.8ex)$)}]% + \node(tw@node)[% + tw@typewriterkeys@base, inner sep=1.25pt, line width=0.6pt% + ]{\color{\usemenucolor{txt}}\tw@typewriterkeys@curr@elem}; + \node[tw@typewriterkeys@base]% + {\color{\usemenucolor{txt}}\tw@typewriterkeys@curr@elem}; + \end{tikzpicture}% +}[% + \hspace{0.2ex}\hspace{0.1em plus 0.1em minus 0.05em}% + \textcolor{\usemenucolor{b}}{\raisebox{0.25ex}{\sffamily\relsize{-2}+}}% + \hspace{0.1em plus 0.1em minus 0.05em}% +]{blacknwhite} + +\tw@declare@style@simple*{paths}{% + {\ttfamily\color{\usemenucolor{txt}}\CurrentMenuElement}% +}[% + \hspace{0.2em plus 0.1em}% + \raisebox{0.08ex}{% + \tikz{\fill[\usemenucolor{c}] (0,0) -- (0.5ex,0.5ex)% + -- (0,1ex) -- cycle;}% + }% + \hspace{0.2em plus 0.1em}% +]{blacknwhite} + +\newcounter{tw@hyphen@char@num} +\newif\if@tw@hyphenatepaths@warnig +\@tw@hyphenatepaths@warnigtrue +\tw@declare@style@simple*{hyphenatepaths}{% + {\ttfamily + \IfStrEq{T1}{\encodingdefault}{% + \setcounter{tw@hyphen@char@num}{23}% + }{% + \IfStrEq{OT1}{\encodingdefault}{% + \setcounter{tw@hyphen@char@num}{255}% + }{% + \if@tw@hyphenatepaths@warnig% + \tw@mk@warning{The hyphenatepaths styles will probably only\MessageBreak + work with T1 or OT1 encoding.}% + \fi\global\@tw@hyphenatepaths@warnigfalse% + }% + }% + \hyphenchar\font=\value{tw@hyphen@char@num}\relax + \color{\usemenucolor{txt}}% + \CurrentMenuElement}% +}[% + \hspace{0.2em plus 0.1em}% + \raisebox{0.08ex}{% + \tikz{\fill[\usemenucolor{c}] (0,0) -- (0.5ex,0.5ex)% + -- (0,1ex) -- cycle;}% + }% + \hspace{0.2em plus 0.1em}% +]{blacknwhite} + +\NewDocumentCommand{\drawtikzfolder}{O{white} O{black}}{% + \begin{tikzpicture}[rounded corners=0.02ex,scale=0.7] + \draw [#2] (0,0) -- (1em,0) -- (1em,1.5ex) -- (0.5em,1.5ex) -- % + (0.4em,1.7ex) -- (0.1em,1.7ex) -- (0,1.5ex) -- cycle; + \draw [#2,fill=#1] (0,0) -- (1em,0) -- (0.85em,1.15ex) -- % + ++(-1em,0) -- cycle; + \end{tikzpicture}% +} + +\copymenustyle{pathswithfolder}{paths} +\changemenuelement{pathswithfolder}{pre}{% + \drawtikzfolder[\usemenucolor{a}][\usemenucolor{b}]% + \hspace{0.2em plus 0.1em}% +} + +\copymenustyle{pathswithblackfolder}{paths} +\changemenuelement{pathswithblackfolder}{pre}{% + \drawtikzfolder[\usemenucolor{c}][\usemenucolor{b}]% + \hspace{0.2em plus 0.1em}% +} + +\copymenustyle{hyphenatepathswithfolder}{hyphenatepaths} +\changemenuelement{hyphenatepathswithfolder}{pre}{% + \drawtikzfolder[\usemenucolor{a}][\usemenucolor{b}]% + \hspace{0.2em plus 0.1em}% +} + +\copymenustyle{hyphenatepathswithblackfolder}{hyphenatepaths} +\changemenuelement{hyphenatepathswithblackfolder}{pre}{% + \drawtikzfolder[\usemenucolor{c}][\usemenucolor{b}]% + \hspace{0.2em plus 0.1em}% +} +\def\tw@default@input@sep{,} +\def\CurrentMenuElement{} +\begingroup +\lccode`\,=1 +\lowercase{\endgroup + \@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,}% + }% + }% +} +\newcommand\tw@define@menu@macro[3] + {% + \IfNoValueTF{#3} + {\tw@mk@exp@Nnno\tw@define@menu@macro@{#1}{#2}\tw@default@input@sep} + {\tw@define@menu@macro@{#1}{#2}{#3}}% + } +\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@\tw@mk@string#2}##1% + {% + \def\CurrentMenuElement{##1}% + \tw@mk@iflastindris + {% + \ifnum\tw@mk@indrisnr=\@ne + \@nameuse{tw@style@#4@single}% + \else + \@nameuse{tw@style@#4@sep}% + \@nameuse{tw@style@#4@last}% + \fi + } + {% + \ifnum\tw@mk@indrisnr=\@ne + \@nameuse{tw@style@#4@first}% + \else + \@nameuse{tw@style@#4@sep}% + \@nameuse{tw@style@#4@mid}% + \fi + }% + }% + #1#2{+O{#3}+m}% + {% + \leavevmode + \begingroup + \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{\tw@mk@trimspaces{##1}}% + }% + \begingroup + \letcs{\tw@mk@tempb}{tw@parse@menu@list@\tw@mk@string#2}% + \tw@mk@indrisloop\tw@mk@tempa\tw@menu@list\tw@mk@tempb + \endgroup + \@nameuse{tw@style@#4@post}% + \endgroup + }% + }% + } +\NewDocumentCommand{\newmenumacro}{m o m}{% + \ifcsundef{\tw@mk@string#1}{% + \tw@define@menu@macro\NewDocumentCommand{#1}{#2}{#3}% + }{% + \tw@mk@error{Menu macro '\string#1' already defined!\MessageBreak + Use \string\renewmenustyle\space instead.}% + }% +} +\NewDocumentCommand{\renewmenumacro}{m o m}{% + \tw@define@menu@macro\RenewDocumentCommand{#1}{#2}{#3}% +} +\NewDocumentCommand{\providemenumacro}{m o m}{% + \ifcsundef{\tw@mk@string#1}{% + \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.}% + }% +} +\iftw@mk@definemenumacros +\newmenumacro{\menu}[>]{menus} +\newmenumacro{\directory}[/]{paths} +\newmenumacro{\keys}[+]{roundedkeys} +\fi +\iftw@mk@definekeys +\NewDocumentCommand{\tw@make@key@box}{m m}{% + \csdef{tw@mk@#1}{% + #2% + }% +} +\NewDocumentCommand{\tw@make@key@macro}{s m}{% + \IfBooleanTF{#1}{% + \expandafter\providecommand\csname\tw@mk@string#2\endcsname{% + \expandonce{\maxsizebox{!}{1.8ex}{% + \@nameuse{tw@mk@\tw@mk@string#2@\tw@mk@os}}% + }% + }% + \expandafter\providecommand\csname\tw@mk@string#2mac\endcsname{% + \expandonce{\maxsizebox{!}{1.8ex}{% + \@nameuse{tw@mk@\tw@mk@string#2@mac}}% + }% + }% + \expandafter\providecommand\csname\tw@mk@string#2win\endcsname{% + \expandonce{\maxsizebox{!}{1.8ex}{% + \@nameuse{tw@mk@\tw@mk@string#2@win}}% + }% + }% + }{% + \expandafter\providecommand\csname\tw@mk@string#2\endcsname{% + \expandonce{\maxsizebox{!}{1.8ex}{% + \@nameuse{tw@mk@\tw@mk@string#2}}% + }% + }% + }% +} +\newcommand*{\tw@define@mackey}[2]{% + \IfStrEq{text}{\tw@mk@mackeys}{#1}{% + \IfStrEq{symbols}{\tw@mk@mackeys}{#2}{}% + }% +} +\tikzset{ + menukeys key symbol/.style={ + rounded corners=0pt, + line width=0.1ex, + baseline={(0,0)}, + }, + menukeys thick/.style={line width=0.25ex}, +} +\normalsize +\tw@make@key@box{shift}{% + \begin{tikzpicture}[yshift=-0.1ex,menukeys key symbol] + \draw (0.3ex,0) -- (1.1ex,0) -- (1.1ex,1.2ex) -- % + (1.5ex,1.2ex) -- (0.7ex,1.9ex) -- (-0.1ex,1.2ex) -- % + (0.3ex,1.2ex) -- cycle; + \end{tikzpicture}% +} +\tw@make@key@macro{\shift} +\tw@make@key@box{capslock@mac}{% + \begin{tikzpicture}[yshift=-0.1ex,menukeys key symbol] + \draw (0.3ex,0.7ex) -- (1.1ex,0.7ex) -- (1.1ex,1.2ex) -- % + (1.5ex,1.2ex) -- (0.7ex,1.9ex) -- (-0.1ex,1.2ex) -- % + (0.3ex,1.2ex) -- cycle; + \draw (0.3ex,0) rectangle (1.1ex,0.4ex); + \end{tikzpicture}% +} +\tw@make@key@box{capslock@win}{% + \begin{tikzpicture}[yscale=-1,yshift=-1.8ex,menukeys key symbol] + \draw (0.3ex,0) -- (1.1ex,0) -- (1.1ex,1.2ex) -- % + (1.5ex,1.2ex) -- (0.7ex,1.9ex) -- (-0.1ex,1.2ex) -- % + (0.3ex,1.2ex) -- cycle; + \end{tikzpicture}% +} +\tw@make@key@macro*{\capslock} +\tw@make@key@box{tab@mac}{% + \begin{tikzpicture}[yshift=0.6ex,menukeys key symbol] + \draw [->] (0,0) -- (1em,0); + \draw (1em,-0.35ex) -- (1em,0.35ex); + \end{tikzpicture}% +} +\tw@make@key@box{tab@win}{% + \begin{tikzpicture}[yshift=0.1ex,menukeys key symbol] + \draw [->] (0.2em,0) -- (1.2em,0); + \draw (1.2em,-0.35ex) -- (1.2em,0.35ex); + \draw [<-] (0,1ex) -- (1em,1ex); + \draw (0,0.65ex) -- (0,1.35ex); + \end{tikzpicture}% +} +\tw@make@key@macro*{\tab} +\def\tw@mk@esc@win{Esc} +\tw@define@mackey{% + \def\tw@mk@esc@mac{esc} +}{% + \tw@make@key@box{esc@mac}{% + \begin{tikzpicture}[yshift=-0.1ex,menukeys key symbol] + \draw [->] (0.5ex,0.5ex) -- ++(135:1.1ex); + \draw (0.5ex,0.5ex) ++(105:0.6ex) arc (105:-195:0.6ex); + \end{tikzpicture}% + }% +} +\tw@make@key@macro*{\esc} +\def\tw@mk@oldesc@win{Esc} +\tw@define@mackey{% + \def\tw@mk@oldesc@mac{esc} +}{% + \tw@make@key@box{oldesc@mac}{% + \begin{tikzpicture}[yshift=-0.1ex,menukeys key symbol] + \draw [->] (0.5ex,0.5ex) -- ++(45:1.1ex); + \draw (0.5ex,0.5ex) ++(15:0.6ex) arc (15:-285:0.6ex); + \end{tikzpicture}% + }% +} +\tw@make@key@macro*{\oldesc} +\providecommand\ctrlname{Ctrl} +\def\tw@mk@ctrl@win{\ctrlname} +\def\tw@mk@ctrl@mac{ctrl} +\tw@make@key@macro*{\ctrl} +\def\tw@mk@Alt@win{Alt} +\tw@define@mackey{% + \def\tw@mk@Alt@mac{alt}% +}{% + \tw@make@key@box{Alt@mac}{% + \begin{tikzpicture}[yshift=-0.1ex,menukeys key symbol] + \draw (0,1ex) -- (0.5ex,1ex) -- (1ex,0.3ex) -- (1.8ex,0.3ex); + \draw (0.8ex,1ex) -- (1.8ex,1ex); + \end{tikzpicture}% + }% +} +\tw@make@key@macro*{\Alt} +\providecommand*{\AltGr}{Alt\,Gr} +\def\tw@mk@cmd@win{% + \tw@mk@warning{'\string\cmd' only for Mac!}% +} +\tw@define@mackey{% + \def\tw@mk@cmd@mac{cmd}% +}{% + \tw@make@key@box{cmd@mac}{% + \begin{tikzpicture}[yshift=-0.15ex,menukeys key symbol] + \draw (0.5ex,0.7ex) -- (0.5ex,1.25ex) arc (0:270:0.25ex) -- % + (1.25ex,1ex) arc (-90:180:0.25ex) -- (1ex,0.25ex) % + arc (-180:90:0.25ex) -- (0.25ex,0.5ex) arc (90:360:0.25ex) % + -- cycle; + \end{tikzpicture}% + }% +} +\tw@make@key@macro*{\cmd} +\providecommand*{\Space}{\expandonce{\rule{3em}{0pt}}} +\newcommand{\spacename}{Space} +\providecommand*{\SPACE}{\expandonce{\rule{2em}{0pt}\spacename\rule{2em}{0pt}}} +\tw@make@key@box{return@mac}{% + \begin{tikzpicture}[yshift=0.25ex,menukeys key symbol] + \draw [->, rounded corners=0.2ex] (1.25ex,1ex) -| % + (2ex,0) -- (0,0); + \end{tikzpicture}% +} +\tw@make@key@box{return@win}{% + \begin{tikzpicture}[menukeys key symbol] + \draw [->] (1ex,1.25ex) |- (0,0); + \end{tikzpicture}% +} +\tw@make@key@macro*{\return} +\def\tw@mk@enter@win{Enter} +\tw@make@key@box{enter@mac}{% + \begin{tikzpicture}[menukeys key symbol] + \draw (0,0) -- (0.5ex,0.5ex) -- (1ex,0); + \draw (0,0.55ex) -- (1ex,0.55ex); + \end{tikzpicture}% +} +\tw@make@key@macro*{\enter} +\def\tw@mk@winmenu@mac{% + \tw@mk@warning{'\string\winmenu' only for Windows!}% +} +\tw@make@key@box{winmenu@win}{% + \begin{tikzpicture}[yshift=-0.2ex,menukeys key symbol] + \draw (0,0) rectangle (1.5ex,1.8ex); + \draw (0.25ex,1.4ex) -- ++(1ex,0); + \draw (0.25ex,1ex) -- ++(1ex,0); + \draw (0.25ex,0.6ex) -- ++(1ex,0); + \end{tikzpicture}% +} +\tw@make@key@macro*{\winmenu} +\tw@make@key@box{backspace}{% + \begin{tikzpicture}[yshift=0.65ex,menukeys key symbol] + \draw [<-,menukeys thick] (0,0) -- (1.35em,0); + \end{tikzpicture}% +} +\tw@make@key@macro{\backspace} +\providecommand{\delname}{Del.} +\def\tw@mk@del@win{\delname} +\tw@define@mackey{% + \def\tw@mk@del@mac{\delname}% +}{% + \tw@make@key@box{del@mac}{% + \begin{tikzpicture}[yshift=0.2ex,menukeys key symbol] + \draw (0,0) -- (1.5ex,0) -- (2ex,0.5ex) --% + (1.5ex,1ex) -- (0,1ex) -- cycle; + \draw (0.5ex,0.2ex) -- (1.1ex,0.8ex); + \draw (0.5ex,0.8ex) -- (1.1ex,0.2ex); + \end{tikzpicture}% + }% +} +\tw@make@key@macro*{\del} +\def\tw@mk@backdel@win{\delname} +\tw@define@mackey{% + \def\tw@mk@backdel@mac{\delname}% +}{% + \tw@make@key@box{backdel@mac}{% + \begin{tikzpicture}[yshift=0.2ex,menukeys key symbol] + \draw (2ex,0) -- (0.5ex,0) -- (0,0.5ex) --% + (0.5ex,1ex) -- (2ex,1ex) -- cycle; + \draw (1ex,0.2ex) -- (1.6ex,0.8ex); + \draw (1ex,0.8ex) -- (1.6ex,0.2ex); + \end{tikzpicture}% + }% +} +\tw@make@key@macro*{\backdel} +\tw@make@key@box{arrowkeyup}{% + \begin{tikzpicture}[yshift=-0.2ex,menukeys key symbol] + \draw [->] (0,0) -- (0,0.8em); + \end{tikzpicture}% +} +\tw@make@key@macro{\arrowkeyup} + +\tw@make@key@box{arrowkeydown}{% + \begin{tikzpicture}[yshift=0.7em,menukeys key symbol] + \draw [->] (0,0) -- (0,-0.8em); + \end{tikzpicture}% +} +\tw@make@key@macro{\arrowkeydown} + +\tw@make@key@box{arrowkeyright}{% + \begin{tikzpicture}[yshift=0.5ex,menukeys key symbol] + \draw [->] (0,0) -- (0.8em,0); + \end{tikzpicture}% +} +\tw@make@key@macro{\arrowkeyright} + +\tw@make@key@box{arrowkeyleft}{% + \begin{tikzpicture}[yshift=0.5ex,menukeys key symbol] + \draw [->] (0,0) -- (-0.8em,0); + \end{tikzpicture}% +} +\tw@make@key@macro{\arrowkeyleft} +\newcommand{\arrowkey}[1]{% + \IfStrEq{^}{#1}{\arrowkeyup}{% + \IfStrEq{v}{#1}{\arrowkeydown}{% + \IfStrEq{<}{#1}{\arrowkeyleft}{% + \IfStrEq{>}{#1}{\arrowkeyright}{% + \tw@mk@error{Wrong value '#1' for \string\arrowkey\MessageBreak + Possible values are '^', 'v', '<' or '>'}% + }% + }% + }% + }% +} +\fi +\endinput +%% +%% End of file `menukeys-2020-12-19.sty'. diff --git a/Master/texmf-dist/tex/latex/menukeys/menukeys.sty b/Master/texmf-dist/tex/latex/menukeys/menukeys.sty index b6c28a440ba..c5b8a12137d 100644 --- a/Master/texmf-dist/tex/latex/menukeys/menukeys.sty +++ b/Master/texmf-dist/tex/latex/menukeys/menukeys.sty @@ -4,7 +4,7 @@ %% %% The original source files were: %% -%% menukeys.dtx (with options: `package') +%% menukeys.dtx (with options: `pkg,cur,rbk') %% %% This is a generated file. %% @@ -31,8 +31,12 @@ %% https://www.latex-project.org/lppl.txt %% \NeedsTeXFormat{LaTeX2e}[2009/01/01] +\providecommand\DeclareRelease[3]{} +\providecommand\DeclareCurrentRelease[2]{} +\DeclareRelease{v1.6.1}{2020-12-19}{menukeys-2020-12-19.sty} +\DeclareCurrentRelease{v1.6.2}{2022-07-01} \ProvidesPackage{menukeys} - [2020/12/19 v1.6.1 -- A package to format menus, paths and shortcuts] + [2022/07/01 v1.6.2 -- A package to format menus, paths and shortcuts] \RequirePackage{xparse} \RequirePackage{xstring} \RequirePackage{etoolbox} @@ -232,7 +236,7 @@ \node(tw@node)[#4]{\strut\CurrentMenuElement};}}% }% } -\DeclareDocumentCommand{\tw@declare@sytle@extra@args}{% +\DeclareDocumentCommand{\tw@declare@style@extra@args}{% O{\tw@default@post} m }{% \csdef{tw@style@\tw@current@style @post}{#1}% @@ -263,7 +267,7 @@ \tikz[baseline=(tw@node.base)]{% \node(tw@node)[#7]{\strut\CurrentMenuElement};}}% }% - \tw@declare@sytle@extra@args% + \tw@declare@style@extra@args% } \NewDocumentCommand{\newmenustylesimple}{s m}{% \ifcsundef{tw@style@#2@pre}{% @@ -512,7 +516,7 @@ \hspace{0.2ex}\hspace{0.1em plus 0.1em minus 0.05em}% \textcolor{\usemenucolor{b}}{\raisebox{0.25ex}{\sffamily\relsize{-2}+}}% \hspace{0.1em plus 0.1em minus 0.05em}% -][\hspace{0.2ex}]{gray} +][\kern0.2ex\relax]{gray} \tikzset{tw@angularkeys@base/.style={% tw@set@tikz@colors, @@ -554,7 +558,7 @@ \hspace{0.2ex}\hspace{0.1em plus 0.1em minus 0.05em}% \textcolor{\usemenucolor{b}}{\raisebox{0.25ex}{\sffamily\relsize{-2}+}}% \hspace{0.1em plus 0.1em minus 0.05em}% -][\hspace{0.2ex}]{gray} +][\kern0.2ex\relax]{gray} \tikzset{tw@typewriterkeys@base/.style={% tw@set@tikz@colors, -- cgit v1.2.3