在Pandoc中编号和引用图像

时间:2013-04-23 23:54:19

标签: html latex preprocessor pandoc

我想在Pandoc中为我的图像添加诸如“图1:Blah Blah”之类的标题,并且可以像参见@ Figure1一样引用它们。我正在使用gpp(预处理器)为我的图像添加字幕,并做各种奇特的事情,如更改大小,格式等。但是,我无法为图像,图2等图像实现计数器。

我在gpp脚本中定义了以下函数:

\define{\counter}{0}

\defeval{count}{\eval{\counter+ 1}

我在我的剧本中称之为\count

但是,\counter在我的gpp脚本中没有得到评估,我看到以下error: unfinished macro

我该如何实施这个计数器?我在gpp中使用-T(tex)模式

3 个答案:

答案 0 :(得分:2)

我发现我的问题有点局部解决方案。我发现使用CSS的反增量属性可以帮助自动对图像进行编号,如下所示:http://www.w3schools.com/cssref/pr_gen_counter-reset.asp

然而,问题仍然是我每次调用gpp标签时都使用gpp复制相同的代码。因此,计数器永远不会增加。例如:我的gpp代码是:

\define{\image{src}{width}{caption}{tag}}{

<div style=" margin:50px auto; text-align:center;" class="figures">
<a  href="\src" id="\tag" style="margin:0px 20px; display:inline-block; 
text-decoration:none; color:black; "><img src="\src" width="\width px" 
alt="\caption" style="padding-bottom:0.5em;"> <div> \caption </div></a></div>}

\define{\imageref{label}}{
<span style="white-space:nowrap;"><a href="#\label" style="display:inline-block">\label</a></span>
}

我的style.css看起来像这样:

div .figures{
counter-reset:figure;
}

a.figure-caption:before{
counter-increment:figure;
content: "Figure" counter(figure) ":";
}

因此,每当我添加带有标记\image的图片时,它始终会获得计数器Figure1

答案 1 :(得分:0)

您可以尝试使用pandoc-fignos过滤器:它会自动创建图号,并启用图引用。

简而言之,您可以为图像添加标签,如下所示:

![Caption.](image.png) {#fig:description}

...然后像这样引用它:

@fig:description

有关安装和使用说明,请参阅github上的pandoc-fignos页面。还有pandoc-eqnos过滤器用于处理方程式。

答案 2 :(得分:0)

无需交叉引用的多语言CSS编号

这是一种自动CSS编号的简单方法,带有取决于文档语言的标签。这种简单的CSS方法不允许允许引用。

要使用引用进行自动编号,请使用pandoc-fignos套件中的pandoc-xnos

body {
    counter-reset: figure;
}

p.caption:before {
    counter-increment: figure;
}

p.caption:lang(en):before {
    content: 'Figure ' counter(figure) ': ';
}

p.caption:lang(nl):before {
    content: 'Figuur ' counter(figure) ': ';
}