关于 LaTeX 宏参数的一个问题

关于 LaTeX 宏参数的一个问题

几周前,我问了一个关于使用 IF 语句在文档中插入图像的 LaTeX 宏的问题。解决方案非常完美。现在我遇到了类似的问题。我有以下宏:

\newcommand{\notebook}[1]{
    \newpage
    \begin{center}
        \fbox{\includegraphics[scale=0.50]{\nb#1.png}}
    \end{center}
}

在哪里

\newcommand{\nb}{"Text Analytics Using Python_Page_"}

是要插入到文档中的图像。我在文档中使用它,例如:

\notebook{"01"}
\notebook{"12"}

我想修改它以便于:

\notebook{1, This is an example notebook.} 
\notebook{12, You can see from this notebook that XXX.}

基本上,我想省略图像编号周围的双引号(和"01""12",并且我想在文档中的图像下方添加一些文本。对于后者,我尝试在宏定义中添加第二个参数,但没有成功。任何帮助都将不胜感激。

沃尔特·帕兹科夫斯基

我在 Windows 10 笔记本电脑上使用 LaTeX。

\newcommand{\notebook}[1]{
    \newpage
    \begin{center}
        \fbox{\includegraphics[scale=0.50]{\nb#1.png}}
    \end{center}
}

使用更简单的调用:

\notebook{1, This is some text.}
\notebook{12} Somme example text.}

答案1

  • 将多个参数传递给宏的通常的 tex 方法\macroname{arg1}{arg2}而不是逗号分隔的列表。

  • 没有必要使用""around ,因为有问题的字符(空格和 _)位于文件名的一部分,存储在 中。将此部分括在引号中就足够了。当然,更好的方法是不在文件名中使用此类字符...01\nb


\documentclass{article}

\usepackage{graphicx}

\newcommand{\notebook}[2]{%
    \newpage%
    \begin{center}%
        \fbox{\includegraphics[scale=0.50]{\nb#1.png}}%

        #2
    \end{center}%
}

\newcommand{\nb}{"test test_"}

\begin{document}

\notebook{01}{This is an example notebook.}
\notebook{12}{You can see from this notebook that XXX.}

\end{document}

相关内容