一千萬個為什麽

搜索

包含代碼的電子書格式



制作包含代碼的電子書的最佳格式是什麽?降價是一個很好的選擇,還是有更好的選擇?我可能希望稍後將其轉換為ePub/Mobi和PDF。

將自定義樣式添加到降價文件是一個好主意嗎?這些風格是否適合像pandoc這樣的軟件?

我還有什麽其他選擇?

修改

這本書是關於序言,並將主要包含這些類型的結構:

  • 標題 - h1,h2,h3 ...
  • 表格(不含標題)
  • 縮進文字
  • 代碼片段
  • 可能包含文本和代碼或者只是代碼的大塊示例代碼塊(範圍從15到+100行)。我需要這些部分與代碼片段看起來不同。

轉載註明原文: 包含代碼的電子書格式

一共有 5 個回答:

Embedding code in EPUB can be accomplished with pure HTML and CSS. The tag and monospace attribute will bring you most of the way. See https://github.com/oreillymedia/HTMLBook for a lot of detail.

如果你不需要包含很長的代碼塊,最簡單的方法就是使用某種形式的html/xhtml,你將定義代碼文本將使用一個固定寬度的字體,你通常應該包含它。從html開始將使後續轉換變得非常簡單。

如果你必須包含很長的代碼塊,也許有更好的解決方案,但我在這裏沒有什麽幫助。

可以使用Markdown來做到這一點,但這不是我的經驗,最好的選擇。原因是你真正應該做的是整合來自真實程序的代碼,這些程序可以使用一些(單元)測試工具進行測試。 通過這種方式,您書中包含的代碼包含的某些錯誤幾乎不會被註意,因為它從未運行過。

但降價保持非常簡單,並且不支持來自其他地方的代碼包含。

  • 使用 pandoc 有辦法解決這個限制,因為它允許合並文件,因為它允許合並文件,但是包括一次一行的代碼片段,這有點過於簡單根據我的喜好,並且您在放大縮小文字中的概覽放在哪裏。
  • 還有一些附加組件用於匯編,以將包含信息保留在文件中。您需要以某種方式生成代碼片段,將其包含在文本中的單獨文件中並包含它們。

如果您的內容不止一些,您應該查看 reStructuredText格式,特別是使用 reStructuredText格式獅身人面像中。它特別寫入文檔源代碼。最初為Python,但也支持其他編程語言。它具有對包含/組裝的本機支持。

Sphinx已經支持epub和pdf生成,後者無需通過LaTeX。使用 pandoc 時,您將不得不使用LaTeX,但這並不總是微不足道的,這取決於您的操作系統。

你可以使用LaTeX。軟件包如列表鑄造可用於包含代碼片段和語法突出顯示。兩者都由 tex4ht 支持,因此可以轉換為html然後epub。作為獎勵,你可以得到完美的PDF文件。

如果您有興趣,我有一個示例文檔(使用捷克語,但希望代碼可讀),其中 minted 用於語法高亮顯示, biblatex 用於參考書目,代碼>詞匯表用於首字母縮寫詞: TeX source生成的html 。為了進行轉換,使用了 make4htmake4httex4ht 的前端,它允許你使用你自己的構建腳本,它有一些用於生成html清理的過濾器。

還有另一個工具 tex4ebook ,它基於 make4ht ,它可以用於將 LaTeX 轉換為 epubepub3mobi 格式。請註意,我是 make4httex4ebook 的作者。

Leanpub可能是一個解決方案。請參閱代碼片段的此部分(html)手冊。如果你有很多代碼,你可以把它放在一個外部文件中並引用它。 Leanpub使用Markdown和Dropbox文件夾與Leanpub分享每本書。它生成pdf,epub和mobi,因此它對你想要做的事情來說看起來很完美。它們的語法highligher, pygments 支持序言。

我發現的唯一缺點是它處理圖像的方式。圖像必須至少300PPI(像素每英寸),所以除非你想讓你的書很大,你必須限制你使用的圖像數量。如果圖片小於300 PPI,圖片看起來很糟糕。