LetLtxMacro 的問題

LetLtxMacro 的問題

我正在嘗試重新定義\rule以製作更清晰的下劃線,但我的書籍文件(在回憶錄類中)有以下問題:

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

我在 上收到“未定義的控制序列” \LetLtxMacro{\oldrule}{\rule}

答案1

LaTeX的目的\newcommand正是為了防止使用者重新定義對系統非常重要的指令。

例如,如果嘗試重新定義\fi,就會發生各種奇怪的事情,從 LaTeX 在尋找\begin{document}和告訴時拋出錯誤開始

Missing \begin{document}.

真的。 :)

該指令\rule在LaTeX核心中排版腳註時使用,重新定義它會破壞該功能。類別和包\rule也可以使用:它在memoir.cls.

在某些情況下,重新定義核心指令也是有好處的。 Heiko Oberdiek 的包經常這樣做,為此包已被設計出來。然而,用戶應該準確地知道他們在做什麼,並且絕不更改命令語法(參數的數量和性質)。

你收到錯誤是很奇怪的,因為你的程式碼對我有用。然而,用它。而是定義一個個人命令,例如

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

你只會從中得到好處:你給予語意對您的程式碼的價值。

相關內容