我开始使用 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}
}
如果我将它们注释掉,有时会抛出错误,有时则不会。我希望能够按照作者的意图切换“草稿”水印。
谁能告诉我这里出了什么问题以及如何修复?
提前致谢。
-- 杰森
答案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}
结果: