2012-02-24 78 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