编辑 sty 文件中的单词

编辑 sty 文件中的单词

我想编辑 .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}

相关内容