在Pandoc中对图像进行编号和引用

问题描述 投票:5回答:3

我想在Pandoc中为我的图片添加标题,如 "图1:Blah Blah",并能像@Figure1那样引用它们。我正在使用gpp(一个预处理器)为我的图片添加标题,并做各种花哨的事情,如改变大小、格式等。然而,我无法为图1、图2等图片实现一个计数器。

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

\define{\counter}{0}

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

我在我的gpp脚本中定义了以下函数: 我在脚本中这样调用它。\count

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

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

html latex preprocessor pandoc
3个回答
2
投票

我已经找到了一个部分解决我的问题的方法。我发现使用CSS的counter-increment属性可以帮助自动给图片编号,就像这样。http:/www.w3schools.comcssrefpr_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
投票

你可以试试 潘多克-菲尼奥斯 滤镜来代替:它能自动创建数字编号,并启用数字引用。

简而言之,你可以像这样给图像添加一个标签:

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

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

@fig:description

请看 潘多克-菲尼奥斯 页面的安装和使用说明。 还有pandoc-eqnos过滤器也可以用方程做同样的事情。


0
投票

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

下面是一个简单的自动CSS编号的方法。的标签。 这个简单的CSS方法可以 允许引用。

对于自动编号与引用,而是使用 pandoc-fignospandoc-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) ': ';
}
© www.soinside.com 2019 - 2024. All rights reserved.