2010-08-14 81 views
1

我已經嘗試使用LaTeX和DocBook來記錄編程工具,以獲得PDF輸出。我發現,這些工具在某些方面非常出色 - 輕鬆版本化,並生成非常實用的PDF手冊。但是有一個嚴重的缺陷。代碼片段不能簡單地從PDF中剪切和粘貼。如何使用剪切粘貼代碼片段來創建PDF文檔?

對於DocBook,問題是空白的損失 - 主要是縮進,但任何重複的空格似乎都被剝離了。因此,將代碼片段粘貼到文本編輯器後,您需要清理縮進和垂直對齊。兩條或三條線路不會太麻煩,但它很快就會變得煩人。

隨着乳膠 - 好吧,這是一團糟。以下內容來自使用MikTeX 2.8中的LaTeX生成的PDF。

node myclas s 
f f i e l d f i e l d 0 1 : i n t ; 
f i e l d f i e l d 0 2 : 」 char 」 ; 
g; 

預期的例子是...

node myclass 
{ 
    field field01 : int; 
    field field02 : "char*"; 
}; 

除了事實乳膠報價戲劇,預期的形式是什麼,你在Adobe Reader看 - 但不是很像你得到了什麼剪切和粘貼。不要問我空間上發生了什麼,或者爲什麼大括號變成字母,或者星號發生了什麼 - 我不知道!

大多數情況下,我已經注意到這些東西玩的方式保留自己的個人筆記,並回到其他方式。有些筆記是HTML或純文本,所以我可以對它們進行版本化。其他人則在我使用了多年的舊雜誌程序中。但是我寫了一個我可能很快就會發布的工具 - 而且我想要包含一個可用的PDF手冊,其中需要包含示例。

那麼 - 是否有創建PDF文檔的方法,可以輕鬆地剪切和粘貼代碼片段?最好能讓我在版本化的文本文件中保留「源代碼」。

EDIT

任何解決方案必須是便攜式的。我需要在Linux和Windows XP上使用它。

編輯

看起來這是不可能的。

我試過從記事本++打印到Adobe Acrobat Pro 7打印機驅動程序。由此產生的文件看起來很好,但剪切和粘貼給出了與DocBook一樣的缺少的空白問題。

我嘗試在Acrobat Pro中使用touchup文本工具來添加前導空格。保存並重新加載時會保留這些內容 - 但是,如果您通常在雜技演員中選擇文本,則不包括它們。您只能使用touchup文本工具剪切和粘貼這些空格,據我所知,這顯然不包含在讀者中。

換句話說,這看起來像一個基本的限制 - 而不是PDF格式本身,就像使用它的工具一樣。這裏似乎有一個普遍的假設,即空白不重要 - 對我來說顯然是不正確的。

EDIT

一種解決方案可以是 「文本字段」。我可以使用Acrobat Pro輕鬆添加這些文件,可以設置固定寬度的字體,輸入多行文本並使字段只讀。在Acrobat Pro 7中,字段中的文本是不可選的 - 但在Reader 9中,可選,並且在剪切和粘貼時保留所有內容。

問題是可以直接使用某種可用於創建完整手冊的標記語言生成文本字段嗎?

回答

1

我建議enscript。我用它來製作檔案和文件。 此外,您可以將pscript中的多個源代碼與enscript合併爲另一個pdf。

+0

我只是看了一下,但我應該說我需要在Windows上運行它。我知道有一個Windows端口,但這是我第一次見到一個Windows端口,它假定它將運行在類Unix系統上。即使是二進制下載也採用Unix文件系統結構,只包含原始的基於Unix的安裝說明等。我真的已經足夠了這些 - 它是一個挑戰 - 只是安裝該死的東西程序,所以這不適合我。 – Steve314 2010-08-14 07:18:58

+0

好的,那麼我會建議使用一個PDF創建者,它充當打印機驅動程序。 應該很容易將純文本文件打印到PDF中,然後將它們合併到其餘文檔中。 查看http://download.cnet.com/1770-20_4-0.html?query=Adobe+PDF+Printer+Driver+Plug+in&searchtype=downloads for drivers。 – polemon 2010-08-14 07:28:00

+0

看起來這可能是一個不可能完成的任務 - 我馬上就會更新這個問題 – Steve314 2010-08-14 07:36:18

0

如果您的代碼保存在外部文件中,一種方法是將原始文件附加爲PDF附件。這可以通過Docbook,LaTeX,DITA和其他一些軟件來完成。

例如,如果您使用的是this method to include code in Docbook,則可以將一些代碼寫入XSL自定義層,以將外部文件作爲附件添加到PDF。據我所知,這是可移植的(雖然我沒有親自嘗試在Evince,Okular,Xpdf等中打開帶有附件的PDF文件來查看會發生什麼)。

如果您正在使用FOP處理Docbook文件,您仍然應該能夠在自定義層中寫入某些內容來附加文件。請參閱section on PDF attachments。如果您想讓人們更容易發現,您甚至可以在PDF中的代碼塊下方輸出指向附件的鏈接。

類似的解決方案應該可以使用LaTeX和attachfile包。