Я использую пакет listings
, но в основном для фрагментов. Мне вообще не нужно было беспокоиться о разрывах страниц. Одна из замечательных особенностей listings
- высокая степень гибкости. Например, я не пишу с заглавной буквы свой SQL, но я могу напечатать свои списки с заглавными словами:
\makeatletter
\newcommand{\lstuppercase}{\uppercase\expandafter{\expandafter\lst@token
\expandafter{\the\lst@token}}}
\newcommand{\lstlowercase}{\lowercase\expandafter{\expandafter\lst@token
\expandafter{\the\lst@token}}}
\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
.