如何管理已定义的命令?例如:xwatermark 和 titleps

如何管理已定义的命令?例如:xwatermark 和 titleps

我希望找到一个命令来etoolbox帮助解决此类错误。有这样的命令吗?

编辑于 10/14。我正在寻找的是:当两个包定义相同的命令时,导致错误,能够防止错误。我正在考虑一个补丁,它可以包装命令,无论是在哪个包中,ifdef并相应地更改实现。当然可以用 来完成etoolbox

\documentclass{report}
\usepackage{lastpage}
\usepackage{lipsum}
\usepackage{xwatermark}
\usepackage{hyperref}

\usepackage{titleps}%--------------------------------------------------
\newpagestyle{special}
{
  \setfoot{}
  {\thepage/\pageref{LastPage}}
  {}
}
\pagestyle{special}

\begin{document}

\chapter{Intro}

\lipsum[1]

\end{document}

错误:LaTeX 错误:命令 \headrule 已定义。

--- TeX 说 --- 或者名称 \end... 非法,请参阅手册第 192 页。

请参阅 LaTeX 手册或 LaTeX Companion 了解解释。输入 H 可立即获得帮助。...

                                               l.308 \newcommand\headrule{\setheadrule{.4\p@}}

--- 帮助 --- 没有可用的帮助

xwatermark.sty:

\ifpgn@showheadrule
    \def\headrule{{%
      \color{\pgn@headrulecolor}%
      \hrule\@height\pgn@headruleheight\@depth\pgn@headruledepth
        \@width\headwidth\vspace{\pgn@headrulesep}%
      \hrule\@height\pgn@headruleheight\@depth\pgn@headruledepth
        \@width\headwidth\vspace{-\pgn@headrulesep}%
    }}%
  \else
    \let\headrule\relax
  \fi

答案1

已定义的问题\headrule来自titleps包。事实上,您不必使用它来在最后一页上添加水印(如果我理解您的代码,这是您需要的一项功能)。

但是我还有另一个问题:我必须xcolor先加载包,xwatermark否则会出现编译错误。

这是完整的 MWE,其中包含一些用于\newwatermark演示的命令选项:

\documentclass{report}

\usepackage{lipsum}
\usepackage{xcolor}
\usepackage[printwatermark=true]{xwatermark}
\usepackage{hyperref}

% Watermarks
\newwatermark[lastpage,color=gray!25,xpos=0,ypos=0,angle=45]{My Watermark}

\begin{document}

    \chapter{Intro}

    \lipsum[1-6]

\end{document}

答案2

我修改了代码,使得titlepsxwatermark能够有效地(而不仅仅是假设地)一起使用。

\documentclass{report}
\usepackage{lastpage}
\usepackage{lipsum}
\usepackage{xcolor}
\usepackage[printwatermark]{xwatermark}
\let\headrule=\undefined % solution<-----------
\let\footrule=\undefined % ------------------->

\usepackage{titleps}%--------------------------
\newpagestyle{special}
{
  \setfoot{}
  {\thepage/\pageref{LastPage}}
  {}
}
\pagestyle{special}

%   https://tex.stackexchange.com/questions/36880/insert-a-blank-page-after-current-page#36881
\def\blankpage{%
  \clearpage%
  \null%
  \clearpage}

\newwatermark[
pages={2},
fontfamily=bch,
color=gray!25,
angle=45,
scale=3,
xpos=0,
ypos=15
]{WATERMARK}

\begin{document}

\chapter{Intro}

\lipsum[1]

\blankpage

\end{document}

展示

相关内容