以路径名作为变量的新环境

以路径名作为变量的新环境

我目前正在做一个更大的项目,有几个章节。它们都在文件夹中chapter<chapternumber>。每个文件夹都有一个子文件夹images,用于存放图像。我必须将它们全部放在文档末尾的附录中。所以我想我为自己创建了一个appfig可以节省一些工作的新环境:

\newenvironment{appfig}[3]
{
\begin{figure}[h]
\centering
\input{chapter#1/image/#2}
\caption{#3}
\label{fig:#2}
\end{figure}
}

#1相应的章节、#2图片名称和#3图片标题在哪里。但是,我得到了错误

Runaway argument?
{chapter4,htb_angle_theory,htb/image/
! Paragraph ended before \@iinput was complete.
<to be read again> 
\par 
l.24 

Runaway argument?
{
! Paragraph ended before \caption@prepareanchor was complete.
<to be read again> 
               \par 
l.24 

Extra }, or forgotten \endgroup.
\@caption ...\else \caption@prepareanchor {#1}{#2}
                           \memcaptioninfo {#1}    {\csna...     
l.24 

还有一些类似的东西。
我在第 22 行使用 调用了环境\appfig{4,imagename.tex,some caption}

我在附录中这样做:

\chapter*{Appendix}
\pagenumbering{Roman}
\setcounter{page}{1}
\appfig{4,htb_angle_theory,htb}

有什么方法可以让我清楚地表明#1只需将此数字添加到文件路径中吗?

编辑:

\input{}我应该提到我打算只将此函数用于 pgf-plots。这就是我在-environment 中使用它的原因figure。当我使用正常的图形环境时,一切都正常。

答案1

环境定义为参数:

\newenvironment{appfig}[3]{...}{...}

缺少结束部分(TeX\par从下面的空行中获取)。

它用作命令争论:

\appfig{4,htb_angle_theory,htb}

可以使用以下方法修复此问题\newcommand

\newcommand{\appfig}[3]{...}

并使用以下命令调用命令参数:

\appfig{4}{htb_angle_theory}{htb}

如果附录不包含文本,则使用minipage\captionof{figure}{#3}capt-of可以caption替代环境figure,因为在这种情况下浮动环境没有多大意义。

顺便说一句,\pagenumbering已经将页码重置为 1。

相关内容