2009-04-21 9 views
4

Ich suche nach einem Paket zum Schreiben von SQL-Anweisungen in LaTeX. Bisher habe ich von listings und lgrind gehört, gibt es noch andere Vorschläge?Welche Pakete sind zum Schreiben von SQL in LaTeX verfügbar?

[bearbeiten] Anforderung hinzugefügt: Ich möchte, dass das Paket Seitenumbrüche intelligent einfügen kann, so dass Anweisungen, wenn möglich, nicht mehrere Seiten umfassen. Ich lese immer noch Dokumentation, also ist es möglich, dass einer der a/m dies bereits tun kann - Bitte lassen Sie mich wissen, wenn dies der Fall ist.

Verwandte: question

+0

Nicht von mir. Beide Pakete, die Sie erwähnen, sind ausgereift, und beide behaupten, SQL zu unterstützen. Ich würde sie ausprobieren, bevor ich weiter wegschauen würde. – dmckee

Antwort

5

Sie wollen die listings Paket verwenden. Gibt es eine bestimmte Sache, die du damit machen willst, oder fragst du nur, welches Paket am besten funktioniert? Ich habe noch nie irgendwelche großen Probleme mit listings angetroffen, obwohl es manchmal schwierig ist, es genau zu tun, was ich will (es ist LaTeX; etwas anderes zu erwarten, wäre Torheit).

Bearbeiten (um Ihre Bearbeitung zu bearbeiten): Intelligentes Seitenumbruch könnte problematisch sein; Es ist sicherlich jenseits meiner Fähigkeiten. listings möglicherweise in der Lage, es mit expliziten Markup (Escape zu LaTeX und fügen Sie eine negative Seitenumbrüche an geeigneter Stelle; wahrscheinlich Makro-izierbar), aber ich glaube nicht, listings kann es automatisch tun, und ich bezweifle, LGrind kann es tun entweder. Sie haben vielleicht mehr Glück beim Suchen oder Fragen auf einer LaTeX-spezifischen Liste (comp.text.tex im Usenet ist ein großartiger Ort, um es zu versuchen), aber Seitenbrechen in TeX war noch nie so gut wie Zeilenumbruch, und so würde ich nicht zu viel halten hoffe, leider.

10

Ich verwende das listings Paket, aber vor allem für Snippets. Ich musste mich im Allgemeinen nicht um Seitenumbrüche kümmern. Einer der großen Vorteile von listings ist der hohe Grad an Flexibilität. Zum Beispiel kann kapitalisieren ich nicht meine SQL, aber ich kann meine Inserate mit aktivierten Schlüsselwörter drucken:

\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, 
         } 

Und definieren weitere Keywords wie ich sie brauche:

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

nutzen diese Definitionen :

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

Wenn ich größere Teile des Codes drucken, würde ich entweder nicht über Seitenumbrüche Sorge oder einen Präprozessor schreiben den Code bis zu teilen, bevor es zu LaTeX vorbei.

Verwandte Themen