Latex 中的函数和新命令

Latex 中的函数和新命令

我在创建新函数时遇到了一些问题。

我在另一个主题中找到了在页面上创建水印的方法,为了使我的工作更轻松,我创建了一个函数,当调用时,它会在我的工作表上插入水印。到目前为止,我有这个代码。

\usepackage{eso-pic}
\usepackage{rotating}
\usepackage{transparent}


\newcommand{\watermark}[1]{
    \AddToShipoutPicture{
    
        \put(0,0){
        
            \parbox[b][\paperheight]{\paperwidth}{
                \vfill
                \centering
            
                {\transparent{0.15}\fontsize{150pt}{1.5pt}\fontfamily{lmtt}\selectfont \begin{turn}{45} \textbf{#1}\end{turn}}
                \vfill}}}
        
    }

但是,我想进一步优化此命令,通过强制命令传递要显示的文本,并通过可选参数传递以下数据:“旋转、透明度和字体大小”。但我不知道如何创建包含所有这些可选和强制参数的命令。

先感谢您。

答案1

阅读@Cicada的回答和发给我的链接,我找到了我真正需要的东西。在这个关联我找到了一种使用所有参数创建命令的方法。我得到了这个:

\documentclass[a4paper]{article}
\usepackage{keyval}
\usepackage{eso-pic}
\usepackage{rotating}
\usepackage{transparent}

\makeatletter
\define@key{watermark}{fontsize}{\def\wm@fontsize{#1}}
\define@key{watermark}{transparency}{\def\wm@transparency{#1}}
\define@key{watermark}{align}{\def\wm@align{#1}}

\setkeys{watermark}{fontsize=100pt,transparency=0.15,align=45}%
\newcommand{\watermark}[2][]{
    \setkeys{watermark}{#1}
    \AddToShipoutPicture{
        \put(0,0){  
            \parbox[b][\paperheight]{\paperwidth}{
                \vfill
                \centering      
                {\transparent{\wm@transparency}\fontsize{\wm@fontsize}{1.5pt}\fontfamily{lmtt}\selectfont \begin{turn}{\wm@align} \textbf{#2}\end{turn}}
                \vfill}}}
}

\makeatother

\begin{document}
    \watermark{DRAFT}
\end{document}

非常感谢您的关注。

相关内容