
\hyper@normalise
모든 매크로를 덮어쓰지 않고도 명령 에 후크를 추가할 수 있습니까 ? \hyper@n@rmalise
정규화할 사용자 정의 정의를 추가하기 직전에 매크로 끝에 후크를 추가하고 싶습니다 .
이것이 내가 달성하고 싶은 것입니다:
\begingroup
\endlinechar=-1 %
\catcode`\^^A=14 %
\catcode`\^^M\active
\catcode`\%\active
\catcode`\#\active
\catcode`\_\active
\catcode`\$\active
\catcode`\&\active
\gdef\hyper@normalise{^^A
\begingroup
\catcode`\^^M\active
\def^^M{ }^^A
\catcode`\%\active
\let%\@percentchar
\let\%\@percentchar
\catcode`\#\active
\def#{\hyper@hash}^^A
\def\#{\hyper@hash}^^A
\@makeother\&^^A
\edef&{\string&}^^A
\edef\&{\string&}^^A
\edef\textunderscore{\string_}^^A
\let\_\textunderscore
\catcode`\_\active
\let_\textunderscore
\let~\hyper@tilde
\let\~\hyper@tilde
\let\textasciitilde\hyper@tilde
\let\\\@backslashchar
\edef${\string$}^^A
\Hy@safe@activestrue
\csname hyper@normalise@hook\endcsname % <--HERE
\hyper@n@rmalise
}^^A
\endgroup
하지만 나는 패키지에 있는 \patchcmd
것을 얼릴 필요가 없는 것으로 하고 싶습니다 . \hyper@normalise
이 매크로에서는 많은 catcode가 변경되어 오류가 발생합니다.
Runaway definition?
\active \def \catcode `\
! File ended while scanning definition of \etb@resrvda.
MWE:
\documentclass{article}
\usepackage{etoolbox}
\usepackage{hyperref}
\makeatletter
\patchcmd\hyper@normalise{\hyper@n@rmalise}{\csname hyper@normalise@hook\endcsname \hyper@n@rmalise}{}{}
\show\hyper@normalise
\makeatother
\begin{document}
aa
\end{document}