2011-03-15 31 views
5

我想在我的LyX文檔中添加代碼附錄。我已經考慮過幾個選項,但都有問題。如何在LaTeX/LyX中添加(大)代碼附錄?

我知道一些關於清單的問題,但是其中一個問題是,如果我複製&將我的代碼粘貼到它們中,我將失去所有輸入/換行符。由於代碼太大而無法用手修正,所以我想知道是否有替代方案。

在LyX中有插入子文檔的可能性,但似乎只適用於.tex文件。如果我可以將我的.java文件作爲子文檔插入,理想情況是理想的。

我可以將代碼打印到PDF,但它會包含使最終文檔變得糟糕的頁邊空白,因爲PDF放置在最終文檔的左邊緣,並且,然後存在PDF邊距。此外,此PDF始終包含整個代碼和白色區域,其中並未填充整個頁面。

有沒有人有很好的選擇?

+0

YConsider發佈您在http://tex.stackexchange.com/上的問題。 – BernardMarx 2011-03-15 10:53:13

+0

@Bernard @Remix考慮將此問題遷移...交叉發佈不受歡迎。如果你想遷移,只需標記爲mod注意。 – Will 2011-03-15 17:05:53

回答

6

該列表包這裏找到

http://www.ctan.org/tex-archive/macros/latex/contrib/listings/

允許包括的外部源代碼文件(看到基準爲\lstinputlisting)。

編輯:在這裏你能找到一些樣本如何使用它:

http://en.wikibooks.org/wiki/LaTeX/Packages/Listings

+0

我相信外部資源必須是.sty或.tex類型。如果我放入一個.java文件,它會給出錯誤:***(無法從終端以非停止模式讀取)。但是,我不知道它的實際含義。 – RemiX 2011-03-15 15:49:31

+0

@RemiX:看看我上面發佈的第二個鏈接。 – 2011-03-15 15:57:37

+0

謝謝。我還決定將LyX文檔導出到LaTeX,所以我可以使用實際的命令來進行更多的控制。 – RemiX 2011-03-16 13:27:57

1

是的,如果你複製&粘貼代碼到LyX的列表中,你失去了所有的換行,但你可以預處理代碼(插入各線以下額外的換行符):

$ cat foo.java | sed -e 's/$/\n/' > bar.java 

然後,你可以複製粘貼&新文件bar.java,一切都將好的。

3

如果您需要將代碼複製粘貼到LyX列表框,然後使用編輯 - >選擇性粘貼 - >選擇或Ctrl + Alt + V。

+0

我會記住下次,謝謝。 – RemiX 2011-04-06 13:02:43

2

對於什麼是值得的,至少LyX的2.0版本能夠將列表作爲子文檔加入。插入,文件,子文檔,然後從下拉框中選擇「程序清單」。這使用listings軟件包,可讓您將源文件保存在自己的文件中。

如果列表不支持你的語言,你總是可以使用類似highlightsource-highlight產生的語法高亮顯示的代碼片段乳膠可以添加類型「輸入」的子文件