2011年5月26日星期四

我的TeX手札之 源代码引用和语法高亮

LaTeX自带的『原文照排』的verbatim环境的确不错,但是其功能略显简略,不能满足我们引用各种源代码的高级要求。本文介绍一下宏包listing的使用,并给出引用源代码并作高亮显示的TeX代码示例。
通常地,我们引用源代码的要求有:
  • 字体样式与正文有明显区分,美观大方
  • 可以标注代码行号
  • 可以添加背景色,可以添加边框
  • 可以对援引源代码进行语法高亮
那么listing宏包一定是你非常好的选择!

listing宏包支持代码上色的语言非常之多,目前所支持的语言有:
ABAP    IDL    Plasm    ACSL    inform    POV    Ada    Java    Prolog
Algol    JVMIS    Promela    Ant    ksh    Python    Assembler    Lisp    R
Awk    Logo    Reduce    bash    make    Rexx    Basic    Mathematica    RSL
C    Matlab    Ruby    C++    Mercury    S    Caml    MetaPost    SAS
Clean    Miranda    Scilab    Cobol    Mizar    sh    Comal    ML    SHELXL
csh    Modula-2    Simula    Delphi    MuPAD    SQL    Eiffel    NASTRAN    tcl
Elan    Oberon-2    TeX    erlang    OCL    VBScript    Euphoria    Octave     Verilog
Fortran    Oz    VHDL    GCL    Pascal    VRML    Gnuplot    Perl    XML
Haskell    PHP    XSLT    HTML    PL/I
当然,这个语言列表可能会随时间推移而逐渐庞大,如果你所援引的语言暂时不在上述之列,你仍可以自定义语法高亮的规则,不过,这便不再本文讨论之范畴。

以下给出的是使用了listing宏包的TeX代码示例,该代码可以使用LaTeX,pdfLaTeX,XeLaTeX等编译通过。


有关这个示例的TeX源文件以及排版结果之DVI档,PDF档,请移步:
https://docs.google.com/leaf?id=0ByIYMq1zOBB4NzJlNmJmMWYtZmU2ZS00NGJlLTliOWUtODc0NjJhZGY5YWIw&hl=zh_CN

2011年5月7日星期六

我的XeTeX/LaTeX手札 之 DIY模板篇

本文未完成……

本文的目的是整理一些常见的XeTeX/LaTeX页面设置,段落设置,字体设置等各种格式上设置所需要的一些代码,以方便自己日后制作模板。

页面设置

纸张大小

不用加载任何宏包就可以很容易的设置纸张大小,只需在documentclass加入关于纸张大小的选项即可。
\documentclass[a4paper]{article}
默认就是a4
其他可用的选项还有
  • a4paper (297mm * 210mm)
  • a5paper (210mm * 148mm)
  • b5paper (250mm * 176mm)
  • letterpaper (11in * 8.5in)
  • legalpaper (14in * 8.5in)
  • executivepaper (10.5in * 7.25in)
这些选择内部实际上是设置 \paperheight 和 \paperwidth 两个值。手动设置的方式是
\setlength\paperheight{高度}
\setlength\paperwidth{宽度}

使用geometry宏包

使用geometry宏包,可以让页边距和页眉页脚的设置变得非常简单
\documentclass[a4paper]{article}
\usepackage{geometry}
\geometry{left=2.5cm,right=2.5cm,top=2.5cm,bottom=2.5cm}
\begin{document}
test
\end{document}