Проблема с LetLtxMacro

Проблема с LetLtxMacro

Я пытаюсь переопределить, \ruleчтобы сделать подчеркивания более четкими, но в моем файле книги (по классу мемуаров) возникают следующие проблемы:

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

Я получаю «неопределенную управляющую последовательность» на \LetLtxMacro{\oldrule}{\rule}.

решение1

Целью \newcommandLaTeX является именно защита пользователей от переопределения команды, которая может быть очень важна для системы.

Например, если попытаться переопределить \fi, произойдут всевозможные странные вещи, начиная с того, что LaTeX выдаст ошибку при поиске \begin{document}и сообщении

Missing \begin{document}.

Действительно. :)

Команда \ruleиспользуется в ядре LaTeX, когда набор сносок и их переопределение нарушат функцию. Классы и пакеты \ruleтакже могут использовать: она появляется 14 раз в memoir.cls.

В некоторых случаях полезно переопределить также команды ядра; пакеты Хайко Обердика делают это часто, и для этого пакетletltxmacroбыл разработан. Однако пользователи должны точно знать, что они делают, иникогдаизменить синтаксис команды (количество и характер аргументов).

Довольно странно, что вы получаете ошибку, потому что ваш код работает у меня. Однако,неиспользуйте его. Лучше определите персональную команду, например

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

От этого вы получите только выгоду: вы отдаетесемантическийценность вашего кода.

Связанный контент