2009-04-21 3 views
4

LaTeXでSQL文をタイプセットするパッケージを探しています。これまで私はlistingslgrindについて聞いたことがありますが、他に提案はありますか?LaTeXでSQLをタイプセットできるパッケージはありますか?

[編集]追加された要件:可能なステートメントが複数のページにまたがっていないように、パッケージにページ区切りをインテリジェントに挿入できるようにしたい。まだドキュメントを読んでいるので、どちらかのA/Mがすでにこれを行うことができる可能性があります。もしそうなら、教えてください。

関連:question

+0

私からのものではありません。あなたが言及したパッケージはどちらも成熟しており、どちらもSQLをサポートすると主張しています。私はそれらを遠くから遠くに見てみる前に試してみる。 – dmckee

答えて

5

あなたはlistingsパッケージを使用します。あなたがそれをやりたいと思っていることがあるのですか? listingsで大きな問題に遭遇したことは一度もありませんが、正確に何をしたいのかは時には難しいです(LaTeX、それ以外のものは愚かではないと期待しています)。

編集(あなたの編集に対処するため):インテリジェントなページの破損が問題になることがあります。それは確かに私の能力を超えています。 listings明示的なマークアップ(LaTeXにエスケープし、適切な場所で負の改ページペナルティを挿入する可能性がありますが、マクロ化する可能性があります)がありますが、私はlistingsが自動的にそれを行うことはできないと思います。どちらか。あなたはLaTeX特有のリスト(Usenet上のcomp.text.texは試してみるのに最適な場所です)を探したり、質問したりするのがよいかもしれませんが、TeXのページを破ることは、改行ほど良くはありませんでした。残念ながら、希望。

10

私はlistingsパッケージを使用しますが、主にスニペット用です。私は一般的に改ページについて心配する必要はありませんでした。 listingsの素晴らしい点の1つは、高い柔軟性です。例えば、私は私の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に渡す前にアップコードを分割するプリプロセッサを書き込みませ思いますどちらか。

関連する問題