Взлом — запомните команду, прежде чем использовать ее повторно

Взлом — запомните команду, прежде чем использовать ее повторно

Вот небольшой код.

\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}

Связанный контент