Jon*_*son 12
我使用的是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,
}
Run Code Online (Sandbox Code Playgroud)
并根据需要定义更多关键字:
\lstdefinelanguage[Oracle]{SQL}[]{SQL}{
morekeywords={ACCESS, MOD, NLS_DATE_FORMAT, NVL, REPLACE, SYSDATE,
TO_CHAR, TO_NUMBER, TRUNC},
}
Run Code Online (Sandbox Code Playgroud)
要使用这些定义:
\lstset{language=[Oracle]SQL,
style=Oracle,
}
Run Code Online (Sandbox Code Playgroud)
如果我要打印出更大的代码片段,我要么不要担心分页符,要么写一个预处理器来将代码分开,然后再传递给它LaTeX.
您想要使用该listings包.你想用它做一件具体的事吗,或者你只是问一般哪种套餐效果最好?我从来没有遇到过任何大问题listings,虽然要做到完全我想要的东西有时候很棘手(这是LaTeX;期待其他任何东西都是愚蠢的).
编辑(解决您的编辑问题):智能分页可能有问题; 这肯定超出了我的能力.listings或许可以使用显式标记(转移到LaTeX并在适当的位置插入负分页符惩罚;可能是宏 - 可用),但我认为listings不能自动完成,我怀疑LGrind也可以这样做.你可能有更好的运气搜索或询问特定于LaTeX的列表(comp.text.tex在Usenet上是一个很好的尝试),但TeX中的分页从来没有像破线一样好,所以我不会抱太多的希望不幸的是.