114

我目前正在用 markdown 编写文档,我想引用我的文本中的图像。

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

![image1](img/image1.png)

我想做那个参考,因为在将我的 markdown 转换为 pdf 之后,图像会放在一两页之后,并且文档没有任何意义。

更新:

我在那篇文章中尝试了Ryan的回答,但我无法让它发挥作用。显然代码:

[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}没有出现:没有创建参考。
  • (\autoref{image})变为\href{\#image}{image}:未检测到交叉引用。

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

任何帮助将非常感激!!

4

7 回答 7

108

在 pandoc 中,您甚至可以执行以下操作:

![This is the caption\label{mylabel}](/url/of/image.png)
See figure \ref{mylabel}.
于 2012-04-20T21:42:10.930 回答
28

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

为图像的属性添加标签,如下所示:

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

...然后像这样引用该图:

 @fig:description

有关如何安装和应用 pandoc-fignos 过滤器的信息在其网页上提供。还有pandoc-eqnos过滤器可以用方程做同样的事情。

于 2015-03-16T04:56:33.833 回答
22

在阅读了他在类似帖子中的回答后,我与 Ryan Gray 进行了交谈。实际上他的使用解决方案:

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

仅在使用 multimarkdown 时进行调整。

对于 pandoc,进行交叉引用的唯一解决方案是直接使用 latex 关键字:

[image]: image.png "Image Title"
![Alt text \label{mylabel}][image]
See figure \ref{mylabel}.
于 2012-02-28T09:30:46.797 回答
6

Pandoc 支持引用部分(通过以 为前缀的部分标识符#)。

对此开放问题的评论描述了以下解决方法如何利用部分标识符在 LaTeX 和 HTML 中生成图像引用:

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

</div>

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

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

于 2014-08-25T23:45:22.167 回答
4

使用pandoc-crossref,您可以使用以下语法交叉引用图形:

![Caption](file.ext){#fig:label}

然后参考文本中类似于引用语法的图形[@fig:label]并编译(如果您也使用它,则--filter pandoc-crossref需要先出现)。--filter pandoc-citeproc

\usepackage[font=small,labelfont=bf]{caption}您可以使用例如in来控制样式header-includes


如果您\listoffigures在乳胶中使用,一个巧妙的相关技巧是这个 lua-filter,它允许您设置一个简短的标题,而不是让整个图例显示在您的数字列表中:

![Caption](file.ext){#fig:label short-caption='my short caption'}

然后用--lua-filter short-captions.lua.

于 2020-05-15T06:06:13.983 回答
2

假设您最后想要 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 中的图像外观时提供最佳图像质量和最高灵活性,而不必担心任何事情。

于 2015-12-18T23:12:06.863 回答
2

这里有很多很棒的遮阳篷。我只想提请您注意一个细节:

必须有字幕! 如:

Lore ipsum @fig:label

![Caption](file.ext){#fig:label}

以下将不起作用

Lore ipsum @fig:label

![](file.ext){#fig:label}
于 2021-07-08T07:51:27.290 回答