해킹 - 명령을 다시 실행하기 전에 기억하세요

해킹 - 명령을 다시 실행하기 전에 기억하세요

여기에 작은 코드가 있습니다.

\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으며 처음에는 단일 매개변수 매크로로 정의되지 않았으며 여기서는 불가능할 catcode로 작업을 수행할 수 있다는 것을 알았습니다. 아마도 이런 일이 발생하지 않더라도 제안된 솔루션이 실행 가능할 수 있습니다.

내 열쇠들

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

관련 정보