早就想把使用Markdown&pandoc的事情歸納、總結和梳理一下,但一直沒有時間。放假一天多,邊做事情邊喘氣兒的空隙,整理了一下。 Markdown是個好東西,LaTeX也是個好東西。以下的一些說法只是屬于個人觀點,還不一定正確,可視為吐槽,亦可視為一個人的電腦操作習慣。 把目錄放前面: 一如果熟悉LaTeX,沒必要入Markdown的坑 二 Markdown并非一無是處,pandoc讓Markdown神通廣大 2.1 關于md→doc&docx 2.2 關于md→epub&mobi&azw&6寸pdf 三借助pandoc轉化LaTeX為doc&docx 把結論也放前面: 1 Markdown非常適合隨寫隨用的小文檔,特別是有數(shù)學、物理背景的小文檔 2 不必擔心用Markdown平日里積累的小素材,日后難于整合,LaTeX+pandoc可以把散碎的Md文件串聯(lián)到一起,并輸出成任何你想要的格式 3 如果內心早已有大型規(guī)劃與設計,建議還是直接上LaTeX,畢竟專業(yè) 4 Markdown和LaTeX借助pandoc的支持力量,使得制作專業(yè)電子書文檔更現(xiàn)實 關于Markdown、RMarkdown、pandoc、LaTeX、Typora、ML標記語言和epub、mobi等電子書格式,不贅述。 一 如果熟悉LaTeX,沒必要入Markdown的坑 最近聽信了一些介紹,走向了Markdown的坑,使用的是Typora和RMarkdown。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主打的就是短小精悍。Typora和pandoc加在一起才100M多點兒,與動耽1G的Office相比,簡直是瑞士軍刀,相當犀利。 但是,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里,以插入的圖像,默認是以Base64序列化字符串內嵌入到輸出的html文件里面的,即使未來原始圖像丟失,我們仍然可以通過輸出后的html文件還原一個圖像出來——這使RMarkdown生成的文檔比較大,這可能是為了保存R語言的執(zhí)行結果的原因;當使用html語法插入圖像時,圖像文件并不總是包含在輸出的html文件里。但無論以哪種方式插入圖像,Typora總不會把文件包含在html文件里。這比較怪。 ⑵單行公式、圖像等的居中顯示。Markdown里,圖像不設置位置,是左對齊,寫成 <divalign="center"></div> 在RMarkdown里輸出后才能居中顯示,在typora直接顯示為居中。 在插入單行公式時,typora使用$$eqn$$并不顯示為居中,在RMarkdown里則顯示為居中;輸出后,二者均顯示居中。 ⑶字體大小。通篇設置字體大小 <fontsize=3><!--設置字體大小為3倍,置文檔最前--> 內容</font><!—chrunk,置文檔最后--> 一些稍麻煩的設置,不得不借助html語法和css樣式。若對文檔細節(jié)有要求,反倒不如LaTeX方便了,因為LaTeX有浩如煙海的極豐富的宏包加持。 二 Markdown并非一無是處,pandoc讓Markdown神通廣大 安裝了Typora,或者在RStudio里面安裝了RMarkdown之后,md文檔通過pandoc可以在諸多文檔格式之間轉換:Word、pdf、html、rtf、LaTeX、epub、OPML以及圖像(png&jpg)及相關格式。 我們關心的,是兩件有趣的事: ⑴markdown向word格式的轉換,即md→doc&docx。 ⑵pdf、epub、mobi、azw3等電子書的制作,即md→epub。 2.1 關于md→doc&docx 先說向Word的格式轉換。 因為在中學里使用Markdown或LaTeX的人太少了,基本沒有可能用md或tex格式與他人文稿溝通,但是你不可能不面對每天要寫不少文稿,所以,Word(doc&docx)格式是不得不考慮的轉換。 事實上,Word的doc&docx格式是相當糟糕的文檔格式,壞文件和不明原因的文件損壞經(jīng)常發(fā)生,然而這種事情在md或tex文檔格式上是絕無可能發(fā)生的。 無論是Typora,還是RMarkdown,直接輸出Word格式就可以了。 有兩個事情值得一提。 一個是,如果在md文件里以$$或$$$$輸入了公式,在導出為docx時,會被自動轉化成word的ML公式,就是在word 2007以上版本的ALT+=輸入的公式。如果輸出的是doc格式,這些公式根本就不會被轉化,甚至Typora編輯器徹底就不讓你隨便玩doc格式——沒有這個選項。 另一個與doc&docx無關的話題,是Typora默認就支持輸出pdf,而RMarkdown則需要一通復雜的設置,但總還都能實現(xiàn)我們需要的功能。特別是有人提出在RMarkdown里如何輸出中文Beamer的問題,事實上,借助rticles宏包提供的CTex Documents模板,輸出為Article再簡單修改一下即可轉換為Beamer幻燈片,絕對比在RMarkdown里靈活得多。Markdown的出現(xiàn),并不能替代LaTeX,Markdown控制功能太弱了。 2.2 關于md→epub&mobi&azw&6寸pdf 再說電子書文檔。 現(xiàn)在全社會都在搞花式閱讀,手機以及移動的閱讀器、電子書和電紙書等已經(jīng)很普及了。我們用Markdown借助pandoc就可以方便的生成epub格式,再借助Calibre轉成mobi&azw&6寸pdf格式。 為什么不是直接md格式轉換到pdf呢?頁面尺寸和適于手機閱讀的行距等,Calibre做得比其他工具出色得多。只此一點足夠作為理由。 導出電子文檔在手機閱讀器里的表現(xiàn): 總之,Markdown讓我們把文檔轉換成其它格式提供了太多太多的方便。 三借助pandoc轉化LaTeX為doc&docx 之所以要把LaTeX轉換成Word格式,就是因為至少在中學階段里,使用LaTeX的人太過稀少。若干年前,LaTeX轉Word,一般是使用Tex2Word軟件,但是它收費;另一個辦法是使用TTH(http://hutchinson.belmont./tth/),經(jīng)由html轉到word,其中的LaTeX公式會轉化成圖片格式而不能被再次編輯。 現(xiàn)在Markdown標記語言排版經(jīng)由pandoc的轉化,提示我們,可以通過pandoc轉化tex到Word格式去。嘗試之后,發(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格式圖像,只能轉jpg和png # 轉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> |
|
來自: 新用戶5228KeDY > 《待分類》