2012-02-24 95 views
72

我目前正在用markdown编写一个文档,并且想从我的文本中对图像进行引用。如何使用pandoc对降价数字进行引用?

this is my text, I want a reference to my image1 [here]. blablabla 

![image1](img/image1.png) 

我想这样做参考,因为我降价转换为PDF格式后,图像得到安置在一两页后的文件没有任何意义。

UPDATE:

我试过在that postRyan's answer,我不能让它工作。 显然代码:

[image]: image.png "Image Title" 
![Alt text][image] 
A reference to the [image](#image). 

应出示:

\begin{figure}[htbp] 
\centering 
\includegraphics[keepaspectratio,width=\textwidth,height=0.75\textheight]{i mage.png} 
\caption{Alt text} 
\label{image} 
\end{figure} 

A reference to the image (\autoref{image}). 

相反,我得到:

\begin{figure}[htbp] 
\centering 
\includegraphics{image.png} 
\caption{Alt text} 
\end{figure} 

A reference to the \href{\#image}{image}. 

我注意到两个问题:

  • \label{image}没有按” t出现:不参考被创建。
  • (\autoref{image})变成\href{\#image}{image}:未检测到交叉参考。

然后,当我将它转换为pdf时,它显然不链接到图像。有一个链接,但它不链接到任何东西。

任何帮助将不胜感激!

+1

您是否尝试过http://groups.google.com/group/pandoc-discuss/msg/4a42442657a96414中提及的方法? – 2012-02-24 16:47:01

+0

我测试过了,它不会产生autoref。怪异的...... – 2012-02-27 09:34:19

+0

也许你应该编辑你的问题,包括你的尝试,你得到了什么,你想要什么(以便它会更容易帮助你)。 – 2012-02-27 10:01:11

回答

61

在pandoc你甚至可以这样做:

![This is the caption\label{mylabel}](/url/of/image.png) 
See figure \ref{mylabel}. 
+35

这只有在你转换成TeX的时候才会有帮助,但是如果你也想从同一个Markdown源创建HTML的话,这个只会有帮助。 – Jakob 2012-08-02 08:33:00

+9

有几个过滤器可用于使用所有输出格式[pandoc-fignos](https://github.com/tomduck/pandoc-fignos)和[pandoc-crossref](https:// github。 com/lierdakil/pandoc-crossref) – 2015-04-26 15:39:20

+0

不幸的是,这不是一个非常灵活的方式。不能以这种方式指定图像的宽度或高度。这种方式可以包含PDF吗?如果不是那样也会是一个缺点,因为在PDF中作为输出案例更可取。 – Zelphir 2016-09-21 20:26:04

17

我在阅读过his answer之后,曾与Ryan Gray聊过。其实他的解决方案使用:

[image]: image.png "Image Title" 
![Alt text][image] 
A reference to the [image](#image). 

只适用于使用multimarkdown。

当谈到pandoc,唯一的解决方案,使交叉引用是直接使用乳胶关键字:

[image]: image.png "Image Title" 
![Alt text \label{mylabel}][image] 
See figure \ref{mylabel}. 
+3

但是正如Jakob在接受的答案中所说:“这只有在您转换为TeX时才有所帮助,但如果您还想从同一个Markdown源创建HTML,则不会。” – DanielTuzes 2015-03-17 09:44:39

+0

对于multimarkdown,有没有办法通过自动计算图号来引用图形?我想像[](#图像),然后multimarkdown会用一个数字代替空白文本(就像脚注一样)。 – 2015-07-27 16:27:14

4

Pandoc支持引用的部分(通过section identifiers,前缀#)。在此open issue

评论描述以下解决方法如何利用部分标识符,用于产生在胶乳和HTML图像引用:

<div id="fig:lalune"> 
![A voyage to the moon\label{fig:lalune}](lalune.jpg) 

</div> 

[The voyage to the moon](#fig:lalune). 

</div>前的空行是必需的。

+4

一个合适的解决方案,即[扩展pandoc markdown语法以允许图片标识符](https://github.com/jgm/pandoc/issues/261#issuecomment-50236381)现在正在进行中。敬请期待:) – 2014-12-08 15:37:55

15

您可以使用pandoc-fignos过滤器进行图编号和参考。它适用于任何输出格式 - 不仅仅是LaTeX。

标签添加到图像的属性是这样的:

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

...,然后引用这个数字是这样的:

@fig:description 

关于如何安装并应用pandoc,fignos信息过滤器在其网页上给出。还有pandoc-eqnos过滤器与方程式做同样的事情。

+0

我想做一些类似的事情[引用一个有序列表中的元素](http://stackoverflow.com/questions/29086880/how-to-place-labels-correctly-and-use -cross-reference-in-latex-to-be-able-to-con) – DanielTuzes 2015-03-17 09:48:15

0

假设你想Pandoc的PDF输出结尾:

插入图像,并改变它们的属性,我发现最好的解决办法是:

\begin{figure}[H] 
\includegraphics[width=0.25\textwidth, height=!]{images/path.png} 
\centering 
\caption{mycaption} 
\end{figure} 

,并在我的template.latex我:

\usepackage{wrapfig} 
\usepackage{float} 

其他解决方案无法指定图像宽度或高度,至少不能用标准降价。然而,除了要在文档中使用图像之前配置图像的输出尺寸外,像书或纸这样的东西通常很重要,以指定图的尺寸。在这种情况下,您必须处理用于创建图像的工具的不同设置。

我建议如果Matplotlib导出为PDF,然后使用我发布的代码。这将为配置输出PDF中图像的外观提供最佳的图像质量和最高的灵活性,而无需担心任何问题。

+0

所有这些乳胶语法都直接进入你的降价文件吗? – spinup 2016-09-20 19:46:37

+0

@spinup是的。 Pandoc可以在你的markdown文件中处理嵌入式Latex的东西。另一个建议:从Matplotlib导出时导出为PDF文件。通过这种方式,Pandoc /乳胶引擎不会降低图像质量,并且您将拥有可缩放的图像,而不是放大和缩小PDF文件时发生的像素化。 – Zelphir 2016-09-21 20:16:41

相关问题