4

I would like to make a deep copy of macro that I don't have control of, because various packages might change it. So I want to take the current meaning of the macro, patching it, but without changing the original macro. Something along the lines of

\deepcopy\mylabel\label \patchcmd{\mylabel}{\thepage}{\thepage+1}{}{} 

How can I achieve that?

5
  • \let\mylabel\label; however, \LetLtxMacro from the letltxmacro package and \xpatchcmd from xpatch are required if the macro to copy and patch can have optional arguments or has been defined with \DeclareRobustCommand. Commented Mar 2, 2013 at 17:04
  • \let\deepcopy=\let ;) However, \let is "exactly one layer deep". Commented Mar 2, 2013 at 17:04
  • @tohecz egreg Thanks. Seems I asked a stupid question. Shall I delete it? Commented Mar 2, 2013 at 17:10
  • @mafp \let us close it as a duplicate of What is the difference between \let and \def? or What is the difference between \let and \edef? More information on letltxmacro can be found in When to use \LetLtxMacro? Commented Mar 2, 2013 at 17:25
  • 4
    @mafp: Definitely not a stupid question. If one does not know about \let it is difficult to search for it. Having a duplicate asked in a different way may help more people get to the solution, so best to not delete it. Commented Mar 2, 2013 at 18:28

0

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.