【问题标题】:Numbering and referencing images in Pandoc在 Pandoc 中编号和引用图像
【发布时间】:2020-06-03 06:55:09
【问题描述】:

我想为我在 Pandoc 中的图像添加诸如“图 1:Blah Blah”之类的标题,并能够像查看 @Figure1 一样引用它们。我正在使用 gpp(预处理器)为我的图像添加标题并执行各种花哨的操作,例如更改大小、格式等。但是,我无法为 Figure1、Figure2 等图像实现计数器。

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

\define{\counter}{0}

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

我在我的脚本中这样称呼它:\count

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

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

【问题讨论】:

    标签: html latex preprocessor pandoc


    【解决方案1】:

    我找到了一些部分解决我的问题的方法。我发现使用 CSS 的 counter-increment 属性可以帮助对图像进行自动编号,如下所示: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

    【讨论】:

    • 您的 CSS 计数问题已在 this answer 中解决。
    【解决方案2】:

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

    简而言之,您可以像这样为图像添加标签:

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

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

    @fig:description
    

    有关安装和使用说明,请参阅 github 上的 pandoc-fignos 页面。还有 pandoc-eqnos 过滤器可以用方程做同样的事情。

    【讨论】:

      【解决方案3】:

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

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

      对于带有引用的自动编号,请使用pandoc-xnos 套件的pandoc-fignos

      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) ': ';
      }
      

      【讨论】:

        猜你喜欢
        • 2019-01-19
        • 1970-01-01
        • 1970-01-01
        • 2015-06-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-02
        相关资源
        最近更新 更多