Problema com LetLtxMacro

Problema com LetLtxMacro

Estou tentando redefinir \rulepara deixar sublinhados mais limpos, mas meu arquivo de livro (na classe de memórias) está tendo problemas com o seguinte:

\RequirePackage{letltxmacro}
\LetLtxMacro{\oldrule}{\rule}
\renewcommand{\rule}[1]{\oldrule[0pt]{#1}{0.4pt}}

Recebo uma "sequência de controle indefinida" no \LetLtxMacro{\oldrule}{\rule}.

Responder1

O objetivo do \newcommandLaTeX é exatamente proteger os usuários de redefinir um comando que pode ser muito importante para o sistema.

Por exemplo, se alguém tentar redefinir \fi, todo tipo de coisas estranhas acontecerão, começando pelo LaTeX, gerando um erro ao encontrar \begin{document}e informar

Missing \begin{document}.

Realmente. :)

O comando \ruleé usado no kernel LaTeX ao compor notas de rodapé e redefini-las interromperá o recurso. Classes e pacotes \ruletambém podem ser usados: aparece 14 vezes em memoir.cls.

Em alguns casos é bom redefinir também os comandos do kernel; Os pacotes de Heiko Oberdiek fazem isso com frequência e para isso o pacoteletltxmacrofoi concebido. No entanto, os usuários devem saber exatamente o que estão fazendo enuncaaltere a sintaxe do comando (o número e a natureza dos argumentos).

É muito estranho que você receba um erro, porque seu código funciona para mim. No entanto,nãouse-o. Em vez disso, defina um comando pessoal como

\newcommand{\blank}[1]{\rule{#1}{0.4pt}}

Você só terá benefícios com isso: você dásemânticovalor para o seu código.

informação relacionada