修复 texMemo 类在不应该产生水印时产生水印的问题

修复 texMemo 类在不应该产生水印时产生水印的问题

我开始使用 texMemo 文档类(可以在这里)。该类使用ifthen包和草稿水印包。我以前用过后者,但没有用过前者。我在 macOS 中使用 pdflatex 进行编译(在终端上,pdflatex --version返回“pdfTeX 3.14159265-2.6-1.40.21 (TeX Live 2020)”)。

如果您取消注释“header.tex”包含文件中的一行,texMemo 文档类就会在输出中添加“草稿”水印。我不想要水印,但我无法让它消失。

header.tex 文件包含以下行

% Uncomment if you would like a DRAFT watermark:
% \memodraft{true}

这意味着如果您不取消注释第二行,就不会有水印。

但是,无论这些行是否被注释或取消注释,水印都会出现。

main.tex 文件有这个命令块

\ifthenelse{\equal{\@memodraft}{\relax}}{}{%
    \RequirePackage{palatino}
    \usepackage{draftwatermark}
    \SetWatermarkText{DRAFT}
    \SetWatermarkLightness{1}
    \SetWatermarkLightness{0.95}
}

如果我将它们注释掉,有时会抛出错误,有时则不会。我希望能够按照作者的意图切换“草稿”水印。

谁能告诉我这里出了什么问题以及如何修复?

提前致谢。

-- 杰森

编辑:当我编译发行版中包含的 LaTeX 源(它不应该产生水印)时,我得到了这个:编译时输出的 PNG 图片

答案1

文件main.tex缺失\makeatletter且在块\makeatother周围。这是必需的,因为使用了包含字符的\ifthenelse宏。\@memodraft@

添加此文件并正确跳过水印后,会出现另一个问题,即没有任何文件加载包,graphicx因此\maketitle在尝试包含徽标时不起作用。修复之前这不是问题,因为修复后draftwatermark包始终被加载,进而加载graphicx

完整 MWE:

\documentclass[paper=letter]{texMemo}
\usepackage{graphicx}

\input{header.tex}
\makeatletter
\ifthenelse{\equal{\@memodraft}{\relax}}{}{%
    \RequirePackage{palatino}
    \usepackage{draftwatermark}
    \SetWatermarkText{DRAFT}
    \SetWatermarkLightness{.95}
}
\makeatother

\begin{document}
\maketitle

\input{body.tex}

\end{document}

结果:

在此处输入图片描述

相关内容