
Вот небольшой код.
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{menukeys}
\begin{document}
\keys{Ctrl+Alt+C}
\keys{BUG}
\keys{\return}
\end{document}
Предположим, что я знаю, например, что \keys{BUG}
и \keys{\return}
не работает хорошо. Поэтому я хотел бы переопределить команды \keys
, чтобы использовать частичное домашнее решение, пока пакет будет восстановлен.
Для этого мне нужно сохранить след исходного \keys
макроса в команде \@@@@keys
, например. Затем я мог бы определить свой макрос \keys
, который будет заботиться об аргументах BUG
и \return
, или просто повторно использовать исходный макрос \keys
. Как я могу это сделать?
решение1
Что-то вроде этого, однако я не проверял, как \keys
обрабатывает его входные данные, я заметил, что он изначально не определен как макрос с одним параметром, он мог бы делать вещи с catcodes, которые здесь невозможны. Возможно, хотя этого и не происходит, поэтому предлагаемое решение может быть жизнеспособным.
( standalone
класс, используемый для создания обрезанного изображения)
\documentclass[border=12pt]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{menukeys}
\makeatletter
\let\originalkeys\keys
%\show\keys
\protected\def\keys #1{\in@{#1}{BUG,\return}%
\ifin@\expandafter\mykeys\else
\expandafter\originalkeys
\fi {#1}}
\makeatother
\newcommand{\mykeys}[1]{\fbox{\ttfamily\detokenize{#1}}}
\begin{document}
\keys{Ctrl+Alt+C}
\keys{BUG}
\keys{\return}
\end{document}