2015-05-07 50 views
1

我創建使用最簡單的pandoc命令從降價文檔的PDF文檔:Pandoc禁用數字從減價拉伸到PDF轉換

pandoc my.md -o my.pdf 

的PDF內的數字都被拉伸,即:100%的寬度。

對於pandoc,我應該給出哪種配置來保持原樣而不改變圖形尺寸。

+0

您正在使用哪個版本的'pandoc'?在哪個OS平臺上? –

+0

「拉伸」的意思是:他們沒有保持其長寬比?還是他們,他們只是放大? –

+0

@KurtPfeifle pandoc 1.12.2.1 Kubuntu 14.04:Linux bor-asus4 3.8.0-39-generic#57〜precise1-Ubuntu SMP Tue Apr 1 20:04:50 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux – bugdayci

回答

1

目前您無法直接從Markdown控制該功能。

在最近幾個月出現了一些討論,在Pandoc開發+用戶社區如何最好地實現它,並創建一個易於使用的語法事情,例如

![Image Caption](./path/to/image.jpg "Image Comment"){width="60%", height="150px"} 

警告:僅供舉例,由我自己製作並由空氣中抽出 - 無法記住討論的最新狀態......)這是設計然後轉移到全部支持的輸出格式可以包含圖像,而不僅僅是PDF。

因此,這是計劃成爲Pandoc下一個主要版本的主要新功能。


正如你可能會或可能不知道,Pandoc不會創建PDF文件本身。它生成LaTeX並使用LaTeX技術(默認爲pdflatex命令)將LaTeX轉換爲PDF(然後刪除中間LaTeX文件)。

要對LaTeX/PDF頁面(或其他輸出)的外觀進行一些(有限)控制,Pandoc使用模板文件。你可以看一下自己Pandoc版本使用的乳膠/ PDF輸出的確切模板定義運行

pandoc -D latex 

所以,如果你是一個LaTeX的黑客(或知道一個),你可以修改或創建自己的從頭開始模板。

在Pandoc(v1.13.2.1)的當前版本中,有在LaTeX的模板此代碼段:

\makeatletter 
\def\maxwidth{\ifdim\[email protected]@width>\linewidth\linewidth\else\[email protected]@width\fi} 
\def\maxheight{\ifdim\[email protected]@height>\textheight\textheight\else\[email protected]@height\fi} 
\makeatother 
% Scale images if necessary, so that they will not overflow the page 
% margins by default, and it is still possible to overwrite the defaults 
% using explicit options in \includegraphics[width, height, ...]{} 
\setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio} 

這應該保持原始圖像的大小,如果他們到合適的頁面寬度,如果它們不是,則將它們縮小到頁面寬度。

如果這不是您使用PDF輸出的行爲,我懷疑您是Pandoc的一個相當老的版本。

對於使用自己的模板代替內置的內部一個,你可以添加

--template=/path/to/myown-template.latex

到Pandoc命令行。

+0

我相信你提到的第一部分是可能的:https://github.com/jgm/pandoc-templates/blob/master/default.latex#L93「和它仍然可以使用\ includegraphics [width,height,...] {}中的顯式選項覆蓋默認值 %@ – bugdayci

+0

@bugdayci:抱歉,我不理解您的評論*「您提到的第一部分是可能的」* 。哪個第一部分? - 另外,你爲什麼要鏈接到GitHub上的那條註釋行93,它與我的代碼塊中給出的註釋行相同? –

+0

我已經在我的模板中獲得了這個,但它縮放了圖像。我怎樣才能保持較小的圖像? – Simon

0

@KurtPfeifle感謝您的幫助。我更新了膠乳,爲使用提示的圖像設置靜態寬度和高度。

在我乳膠的模板,我有:

\setkeys{Gin}{width=128pt,height=192pt,keepaspectratio} 

這對於移動圖像的偉大工程。但我也有一個封面,封面圖現在很小。

我嘗試創建2個不同的乳膠文件並將它們組合但身材尺寸都回被拉伸:

pandoc _cover_page.md -o _cover_page.tex 
pandoc ... -template=mobile_images.latex -o remaining.tex 
pandoc _cover_page.tex remaining.tex -o out.pdf 
  • 有一種簡單的方法來whicih服從Pandoc模板乳膠結合文件?

  • 我可以創建2個pdf文件:cover.pdf和remaining.pdf,並將它們結合起來。你知道有一個簡單的工具嗎?

+0

最後,我使用gs將它們組合在一起:http://askubuntu.com/questions/2799/how-to-merge-several-pdf-files#answer-257170 – bugdayci

+0

您的創建TeX的Pandoc命令(前兩個)生成通用的TeX-snippets,沒有任何TeX序言。生成PDF的第三個Pandoc命令會隱式激活'--self-contained',而後者又包含一個TeX前導碼。這個前導碼對於所有*連續的TeX代碼是有效的,並且涵蓋了兩個部分,'_cover_page.tex'和'remaining.tex'。這就是爲什麼*「圖形大小恢復到拉伸狀態」* ... - 組合兩個PDF的最簡單方法是:'pdftk 1.pdf 2.pdf cat output combined.pdf'。 –