日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Markdown、Pandoc轉換tex文件為doc&docx與其它

 新用戶5228KeDY 2021-10-10

早就想把使用Markdown&pandoc的事情歸納、總結和梳理一下,但一直沒有時間。放假一天多,邊做事情邊喘氣兒的空隙,整理了一下。

Markdown是個好東西,LaTeX也是個好東西。以下的一些說法只是屬于個人觀點,還不一定正確,可視為吐槽,亦可視為一個人的電腦操作習慣。

把目錄放前面:

如果熟悉LaTeX,沒必要入Markdown的坑

Markdown并非一無是處,pandocMarkdown神通廣大

2.1 關于mddoc&docx

2.2 關于mdepub&mobi&azw&6pdf

借助pandoc轉化LaTeXdoc&docx

把結論也放前面:

1 Markdown非常適合隨寫隨用的小文檔,特別是有數(shù)學、物理背景的小文檔

2 不必擔心用Markdown平日里積累的小素材,日后難于整合,LaTeX+pandoc可以把散碎的Md文件串聯(lián)到一起,并輸出成任何你想要的格式

3 如果內心早已有大型規(guī)劃與設計,建議還是直接上LaTeX,畢竟專業(yè)

4 MarkdownLaTeX借助pandoc的支持力量,使得制作專業(yè)電子書文檔更現(xiàn)實

關于Markdown、RMarkdown、pandoc、LaTeX、Typora、ML標記語言和epub、mobi等電子書格式,不贅述。

一 如果熟悉LaTeX,沒必要入Markdown的坑

最近聽信了一些介紹,走向了Markdown的坑,使用的是TyporaRMarkdown。Markdown有它的優(yōu)勢,比如憑空起一篇文稿,不用再去記憶一些文檔模板命令了,比如\documentclass和一堆堆的\begin、\end\section、\subsection\emph{}、\textbf{}等等,要么被徹底省略了,要么被###***所取代。

相對LaTeX,Markdown簡化之處甚多。當然Markdown的出現(xiàn),絕對不是為簡化LaTeX,原來的時候它們沒什么聯(lián)系的,只是因為二者天生都是用標記語言來排版文檔。

Markdown的好處,便是語法太簡單,而且部分語法與html語法兼容,比LaTeX的學習與熟練的臺階,不知道要降低了多少。如果恰好在RStudio里面使用R語言,那RMarkdown應該是使用者唯一的文檔編輯器的選擇,因為R代碼能夠把執(zhí)行結果放在文檔里,這種功能再沒有第二個編輯器能做到了。

Markdown似乎只是適合寫些小文檔的場合,比如讀書筆記,并不太適合寫長篇。估計Markdown主打的就是短小精悍。Typorapandoc加在一起才100M多點兒,與動耽1GOffice相比,簡直是瑞士軍刀,相當犀利。

但是,Markdown也有諸多不便:

⑴插圖尺寸的調整。比如我習慣把圖像分辨率按600dpi來輸出,這樣一旦打印,會相當清晰。但是如果這樣的圖像直接插入到markdown,圖像就會非常大,解決的辦法是寫成

<img src="C:\3.jpg"style="zoom:40" div />

或者

<img src="C:\3.jpg"style=“width:200px height:200px” />

要特別注意上面那個zoom,實際是縮小60%的意思。下面的寫法里height可以省略。

此外,在RMarkdown里,以![](.\97.png)插入的圖像,默認是以Base64序列化字符串內嵌入到輸出的html文件里面的,即使未來原始圖像丟失,我們仍然可以通過輸出后的html文件還原一個圖像出來——這使RMarkdown生成的文檔比較大,這可能是為了保存R語言的執(zhí)行結果的原因;當使用html語法插入圖像時,圖像文件并不總是包含在輸出的html文件里。但無論以哪種方式插入圖像,Typora總不會把文件包含在html文件里。這比較怪。

⑵單行公式、圖像等的居中顯示。Markdown里,圖像不設置位置,是左對齊,寫成

<divalign="center">![caption](.\97.png)</div>

RMarkdown里輸出后才能居中顯示,在typora直接顯示為居中。

在插入單行公式時,typora使用$$eqn$$并不顯示為居中,在RMarkdown里則顯示為居中;輸出后,二者均顯示居中。

⑶字體大小。通篇設置字體大小

<fontsize=3><!--設置字體大小為3,置文檔最前-->

內容</font><!—chrunk,置文檔最后-->

一些稍麻煩的設置,不得不借助html語法和css樣式。若對文檔細節(jié)有要求,反倒不如LaTeX方便了,因為LaTeX有浩如煙海的極豐富的宏包加持。

二 Markdown并非一無是處,pandoc讓Markdown神通廣大

安裝了Typora,或者在RStudio里面安裝了RMarkdown之后,md文檔通過pandoc可以在諸多文檔格式之間轉換:Wordpdf、html、rtf、LaTeX、epub、OPML以及圖像(png&jpg)及相關格式。

我們關心的,是兩件有趣的事:

markdownword格式的轉換,即mddoc&docx。

pdfepubmobi、azw3等電子書的制作,即mdepub。

2.1 關于md→doc&docx

先說向Word的格式轉換。

因為在中學里使用MarkdownLaTeX的人太少了,基本沒有可能用mdtex格式與他人文稿溝通,但是你不可能不面對每天要寫不少文稿,所以,Word(doc&docx)格式是不得不考慮的轉換。

事實上,Worddoc&docx格式是相當糟糕的文檔格式,壞文件和不明原因的文件損壞經(jīng)常發(fā)生,然而這種事情在mdtex文檔格式上是絕無可能發(fā)生的。

無論是Typora,還是RMarkdown,直接輸出Word格式就可以了。

有兩個事情值得一提。

一個是,如果在md文件里以$$$$$$輸入了公式,在導出為docx時,會被自動轉化成wordML公式,就是在word 2007以上版本的ALT+=輸入的公式。如果輸出的是doc格式,這些公式根本就不會被轉化,甚至Typora編輯器徹底就不讓你隨便玩doc格式——沒有這個選項。

另一個與doc&docx無關的話題,是Typora默認就支持輸出pdf,而RMarkdown則需要一通復雜的設置,但總還都能實現(xiàn)我們需要的功能。特別是有人提出在RMarkdown里如何輸出中文Beamer的問題,事實上,借助rticles宏包提供的CTex Documents模板,輸出為Article再簡單修改一下即可轉換為Beamer幻燈片,絕對比在RMarkdown里靈活得多。Markdown的出現(xiàn),并不能替代LaTeXMarkdown控制功能太弱了。

2.2 關于md→epub&mobi&azw&6寸pdf

再說電子書文檔。

現(xiàn)在全社會都在搞花式閱讀,手機以及移動的閱讀器、電子書和電紙書等已經(jīng)很普及了。我們用Markdown借助pandoc就可以方便的生成epub格式,再借助Calibre轉成mobi&azw&6pdf格式。

為什么不是直接md格式轉換到pdf呢?頁面尺寸和適于手機閱讀的行距等,Calibre做得比其他工具出色得多。只此一點足夠作為理由。

導出電子文檔在手機閱讀器里的表現(xiàn):

總之,Markdown讓我們把文檔轉換成其它格式提供了太多太多的方便。

三借助pandoc轉化LaTeX為doc&docx

之所以要把LaTeX轉換成Word格式,就是因為至少在中學階段里,使用LaTeX的人太過稀少。若干年前,LaTeXWord,一般是使用Tex2Word軟件,但是它收費;另一個辦法是使用TTH(http://hutchinson.belmont./tth/),經(jīng)由html轉到word,其中的LaTeX公式會轉化成圖片格式而不能被再次編輯。

現(xiàn)在Markdown標記語言排版經(jīng)由pandoc的轉化,提示我們,可以通過pandoc轉化texWord格式去。嘗試之后,發(fā)現(xiàn)效果可以接受,只需注意到⑴pdf圖像問題、⑵beamer\only<presentation>{}和⑶UTF8編碼問題。

Pandoc轉化word是以cmd命令進行的,以下為CTRL+R運行在cmd窗口中的情況形,注釋為后期添加,以#領起。

Microsoft Windows [版本 10.0.17134.523]

(c) 2018 MicrosoftCorporation。保留所有權利。

C:\Users\Administrator>pandocC:\Example\da.tex -o C:\elec.doc

Unknown writer: doc

# pandoc命令只在正常安裝了pandoc才能正常執(zhí)行,否則會提示錯誤命令

# 失敗,不能直接輸出為doc格式

C:\Users\Administrator>cdc:\example

c:\Example>pandocda.tex -o d:\e.docx

pandoc: Cannot decodebyte '\xb1': Data.Text.Internal.Encoding.decodeUtf8: Invalid UTF-8 stream

# 錯誤提示的意思是tex文件不是UTF8格式的

# 使用記事本打開,然后保存成UTF8格式

c:\Example>pandocda.tex -o d:\e.docx

# 正常執(zhí)行,得到e.docx文件

c:\Example>cd c:\22

# 進入另一目錄,實驗其他功能

c:\22>pandoc 22.tex-o 22.docx

# 正常執(zhí)行

c:\22>pandoc 22.tex-o 22.doc

Unknown writer: doc

# 不能直接轉doc

c:\22>pandoc 22.tex-o 22.rtf

[WARNING] Could notfetch resource '0.pdf': image is not a jpeg or png

[WARNING] Could notfetch resource 'pgf1.pdf': image is not a jpeg or png

[WARNING] Could notfetch resource 'pgf3.pdf': image is not a jpeg or png

[WARNING] Could notfetch resource '1.pdf': image is not a jpeg or png

[WARNING] Could notfetch resource '2.pdf': image is not a jpeg or png

[WARNING] Could notfetch resource '3.pdf': image is not a jpeg or png

[WARNING] Could notfetch resource '6.pdf': image is not a jpeg or png

[WARNING] Could notfetch resource '7.pdf': image is not a jpeg or png

[WARNING] Could notconvert TeX math '\sqrt{\frac{13}{17}}', rendering as TeX

# rtf格式時會提示pandoc不能轉pdf格式圖像,只能轉jpgpng

# rtf時不能轉LaTeX數(shù)學公式

# 實際測試,對使用的外來宏包,都能正常轉換

c:\22>pandoc 22.tex-o 22.html

[WARNING] Could notconvert TeX math '\sqrt{\frac{13}{17}}', rendering as TeX

# html也不能轉換LaTeX公式,但保留的原始標記語言信息并不丟失

c:\22>rem “OK!OVER!”

c:\22>

    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多