在用户编写的 LaTeX 包中使用 \newcommand

在用户编写的 LaTeX 包中使用 \newcommand

我尝试将我在 Beamer 幻灯片中经常使用的 LaTeX 宏放入包中。这里是

\NeedsTeXFormat{LaTeX2e}[1994/06/01]
\ProvidesPackage{icone}[2018/06/20 insert journal icone in beamer slides]
\RequirePackage[absolute,showboxes,overlay]{textpos}

\newcommand{\icone}[1]{%
\begin{textblock*}{15mm}[0,0](315pt,5pt)%
\includegraphics[height=20mm,keepaspectratio]{/path/to/predefined/folder/{#1}}%
\end{textblock*}}

当我直接在文件中使用此命令时,它完美地工作。但我的包不起作用。错误消息是

! Missing \endcsname inserted.
<to be read again> 
               \def 

我读到的是,最好使用\def.sty\newcommand文件。我试过了,但也没用。

附录

实际上,我无法解释原因,但我肯定需要添加{}到我自己的宏的参数中。我测试了有和没有(再次在包内使用宏)并且我需要它们。例如,下面的代码有效

\NeedsTeXFormat{LaTeX2e}[1994/06/01]
\ProvidesPackage{citation}[2018/06/20 insert citation at bottom right of beamer slides]
\RequirePackage[absolute,showboxes,overlay]{textpos}
\newcommand{\citationfoot}[2]{%
\begin{textblock*}{55mm}[0,0](250pt, 250pt)%
{\setlength{\baselineskip}{.6\baselineskip}%
\rule{30mm}{.25mm} \\%
\tiny%
\textit{{#1} \\ {#2}}%
\par}%
\end{textblock*}%
}

而这个没有

\NeedsTeXFormat{LaTeX2e}[1994/06/01]
\ProvidesPackage{citation}[2018/06/20 insert citation at bottom right of beamer slides]
\RequirePackage[absolute,showboxes,overlay]{textpos}
\newcommand{\citationfoot}[2]{%
\begin{textblock*}{55mm}[0,0](250pt, 250pt)%
{\setlength{\baselineskip}{.6\baselineskip}%
\rule{30mm}{.25mm} \\%
\tiny%
\textit{#1 \\ #2}%
\par}%
\end{textblock*}%
}

相关内容