駭客攻擊 - 在重新執行命令之前記住它

駭客攻擊 - 在重新執行命令之前記住它

這是一個小程式碼。

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

相關內容