2009-04-21 53 views
4

我正在尋找一個包來在LaTeX中排版SQL語句。到目前爲止,我聽說listingslgrind,有沒有其他建議?LaTeX中有哪些可用於排版SQL的軟件包?

添加要求:我希望包能夠智能地插入分頁符,以便在可能的情況下語句不會跨越多個頁面。仍在閱讀文檔,所以有可能任何一個a/m都能夠做到這一點 - 請讓我知道如果是這樣的話。

相關:question

+0

不是我。你提到的包都是成熟的,他們都聲稱支持SQL。在遠處看之前我會嘗試一下。 – dmckee 2009-04-21 00:46:11

回答

5

您要使用的listings包。有沒有你想要做的具體事情,或者你只是問一般哪個包最適合?我從來沒有遇到任何大問題listings,雖然讓它做「我想要的東西」有時很棘手(這是LaTeX;期望別的東西會是愚蠢的)。

編輯(解決您的編輯):智能分頁可能會有問題;這當然超出了我的能力。 listings可能可以通過顯式標記(轉到LaTeX並在適當的位置插入負面分頁符懲罰;可能宏觀可行),但我認爲listings可以自動執行,我懷疑LGrind可以做到這一點無論是。你可能會有更好的運氣搜索或在LaTeX特定的列表上詢問(Usenet上的comp.text.tex是一個很好的嘗試),但TeX的分頁從未像斷線那樣好,所以我也不會支持太多希望,不幸的是。

10

我使用listings軟件包,但主要用於摘錄。一般來說,我不需要擔心分頁符。 listings的優點之一就是可以提供高度的靈活性。舉例來說,我不利用我的SQL,但我可以打印我的房源用大寫關鍵字:

\makeatletter 
\newcommand{\lstuppercase}{\uppercase\expandafter{\expandafter\[email protected] 
          \expandafter{\the\[email protected]}}} 
\newcommand{\lstlowercase}{\lowercase\expandafter{\expandafter\[email protected] 
          \expandafter{\the\[email protected]}}} 
\makeatother 

\lstdefinestyle{Oracle}{basicstyle=\ttfamily, 
         keywordstyle=\lstuppercase, 
         emphstyle=\itshape, 
         showstringspaces=false, 
         } 

當我需要他們定義多個關鍵字:

\lstdefinelanguage[Oracle]{SQL}[]{SQL}{ 
    morekeywords={ACCESS, MOD, NLS_DATE_FORMAT, NVL, REPLACE, SYSDATE, 
       TO_CHAR, TO_NUMBER, TRUNC}, 
} 

要使用這些定義的:

\lstset{language=[Oracle]SQL, 
     style=Oracle, 
     } 

如果我打印出大塊的代碼,我要麼不擔心分頁或寫一個預處理器將它傳遞給LaTeX前了劃分代碼。

相關問題