我尝试将我在 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*}%
}