我想编辑 .sty 文件中的单词。我正在学习 Latex,不知道是否可以通过使用序言中的\makeatletter
和命令来编辑它。\makeatother
.sty 文件(novel-PostLayout
来自novel
类)具有以下代码:
%% LABEL DRAFT OPTION
%% ----------------------------------------------------------------------------
% Writes DRAFT inside upper left of TrimBox, when in draft mode.
% This macro must go here, in order, so that the label is not over-shaded.
\ifdraftdoc
\AddToShipoutPictureBG{%
\@getPageXY%
\AtPageUpperLeft{%
\raisebox{-\@SetFontSize}{\textbf{~DRAFT}}%
}%
}%
\fi
%% end label draft.
我想将单词改为~DRAFT
另一个。我的问题是在 中编辑该代码\ifdraftdoc
。当它是 时\newcommand
,我可以使用\renewcommand
,但我不知道条件是否有类似的东西。
可以编辑吗?
答案1
这个比较难改,因为这个代码看起来并不在任何定义中。你必须稍微破解一下才能找到代码存储的位置。宏\AddToShipoutPictureBG
将其参数添加到\ESO@HookIBG
,因此你可以使用etoolbox
来\patchcmd
更改文本。必须这样做,\AtEndPreamble
因为那是加载的时候novel-PostLayout
:
\makeatletter
\AtEndPreamble{%
\patchcmd\ESO@HookIBG
{DRAFT}{Something else}{}{}}
\makeatother
可编译代码:
\documentclass[draft]{novel}
\usepackage{etoolbox}
\makeatletter
\AtEndPreamble{%
\patchcmd\ESO@HookIBG
{DRAFT}{Something else}{}{}}
\makeatother
\begin{document}
\end{document}