Saturday, August 23, 2008

配置LaTeX & XeTeX & AUCTeX

这几天折腾了一下LaTeX, 对于其中的概念也有了一些了解. 这篇日志主要是说下在Ubuntu 8.04下配置LaTeX+XeTeX环境的过程, 还有Emacs里的AUCTeX的配置.

  1. 首先是LaTeX与XeTeX的安装
  2. $ sudo apt-get install texlive texlive-latex-extra texlive-xetex lmodern

    当时为了安装最新的XeTeX, 花了很多时间在编译安装上, 最后只弄好一个半成品, 无法使用. 于是决定舍弃zhspacing宏包, 直接装了源里的XeTeX.

    经过以上步骤后, 应该就可以正常编译TeX文件了, 用XeTeX调整字体也很爽. 如果你也使用Emacs来编辑TeX文件的话, 那么一定要安上AUCTeX这个扩展, 下面是一些配置详情.

  3. AUCTeX
  4. $ sudo apt-get install auctex

    安装好以后, 重点是配置.emacs文件, 因为AUCTeX本身是不支持通过xelatex编译的.
    ;; AUCTeX
    (defun auctex ()
      (add-to-list 'TeX-command-list '("XeLaTeX" "%`xelatex%(mode)%' %t; %`xelatex%(mode)%' %t" TeX-run-TeX nil t)) ;; 这里我编译了两次
        (setq TeX-command-default "XeLaTeX") ;; 设定默认编译命令为XeLaTeX
        (setq TeX-save-query nil)            ;; 保存之前不询问
        (setq TeX-show-compilation t))       ;; 在新窗口显示编译过程
    (add-hook 'LaTeX-mode-hook 'auctex)
    
    (custom-set-variables
     '(TeX-output-view-style (quote (("^dvi$nnnnnnn" ("^landscape$" "^pstricks$\\|^pst-\\|^psfrag$") "%(o?)dvips -t landscape %d -o && gv %f") ("^dvi$" "^pstricks$\\|^pst-\\|^psfrag$" "%(o?)dvips %d -o && gv %f") ("^dvi$" ("^a4\\(?:dutch\\|paper\\|wide\\)\\|sem-a4$" "^landscape$") "%(o?)xdvi %dS -paper a4r -s 0 %d") ("^dvi$" "^a4\\(?:dutch\\|paper\\|wide\\)\\|sem-a4$" "%(o?)xdvi %dS -paper a4 %d") ("^dvi$" ("^a5\\(?:comb\\|paper\\)$" "^landscape$") "%(o?)xdvi %dS -paper a5r -s 0 %d") ("^dvi$" "^a5\\(?:comb\\|paper\\)$" "%(o?)xdvi %dS -paper a5 %d") ("^dvi$" "^b5paper$" "%(o?)xdvi %dS -paper b5 %d") ("^dvi$" "^letterpaper$" "%(o?)xdvi %dS -paper us %d") ("^dvi$" "^legalpaper$" "%(o?)xdvi %dS -paper legal %d") ("^dvi$" "^executivepaper$" "%(o?)xdvi %dS -paper 7.25x10.5in %d") ("^dvi$" "." "%(o?)xdvi %dS %d") ("^pdf$" "." "acroread %o %(outpage)") ("^html?$" "." "netscape %o")))))
    最后那个有点长, 主要是没有找到合适的方法像添加XeLaTeX一样只需要写新增的条目, 所以这里就把原有的和修改以后的都写了出来. 其实只改了一个地方, 已经用红色标注出来了, 就是在使用C-c C-v预览PDF文件的时候使用什么软件来打开. 我这里就是acroread, 你用的其它的话, 可以相应修改.

    这样修改好以后, 以后就可以直接使用C-c C-c编译, C-c C-v预览, C-c `在错误间跳转了.

    8月5日更新:
    如果不是用的源安装的LaTeX, 比如我为了用上最新版的XeTeX, 就选择单独安装TeX Live. 这时再用源安装AUCTeX的时候, 会因为依赖关系而又把源里的LaTeX相关包给装上, 囧

    不过幸运的是这并不会与TeX Live冲突, 原因在于:
    $ echo $PATH
    /home/xiaogaozi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
    嘿嘿, 我的TeX Live的可执行文件都放在了/usr/local/bin里, 而源里安装的放在了/usr/bin, 自然优先级不同啦~

    但是TeX Live中的install-info文件会导致源安装AUCTeX的时候失败, 所以如果是先安装的TeX Live, 再安装AUCTeX, 就需要先把TeX Live的install-info"消灭"掉:
    $ sudo mv /usr/local/bin/install-info /usr/local/bin/install-info.bak

附上我的TeX文件模板, 很杂, 也许有的在article上能用上, 而有的则只能在book上用上.

\documentclass[adobefonts]{ctexart}

\CTEXoptions[captiondelimiter={\quad}]

\usepackage{amsmath}            % AMS的数学宏包
\usepackage{amssymb}            % AMS的数学符号宏包
\usepackage{graphicx}           % 插入图片需要的宏包
\usepackage{float}              % 强大的浮动环境控制宏包
\usepackage{framed}             % `shaded'环境需要用到
\usepackage{enumitem}           % 增强列表功能
\usepackage{alltt}              % 在`alltt'环境中为等宽字体, 但可以使用LaTeX命令

% \usepackage{shortvrb}           % 简化\verb的写法
% \MakeShortVerb{\|}

\usepackage{color}              % 可以定义各种颜色
\usepackage[x11names]{xcolor}   % 下面的RoyalBlue3颜色需要用到的宏包
% 自定义的几种颜色
\definecolor{shadecolor}{gray}{0.85}
% \definecolor{darkblue}{rgb}{52,101,164}
% \definecolor{darkgreen}{rgb}{78,154,6}

% % 设置背景颜色
% \definecolor{bisque}{rgb}{.996,.891,.755}
% \pagecolor{bisque}

\usepackage[pdfauthor={Dreamseeker},
            pdftitle={For Alist},
            colorlinks=true,
            urlcolor=blue,
            linkcolor=RoyalBlue3]{hyperref} % 为超链接设置颜色, 修改PDF文件信息

\title{\textbf{For Alist}}
\author{Dreamseeker}
% \date{}

\usepackage[pagestyles]{titlesec} % 定制页眉页脚
% % 设置页眉页脚
% \newpagestyle{main}{%
%   \sethead[$\cdot$~\thepage~$\cdot$][][\thesection\quad%
%   \sectiontitle]{\thesection\quad\sectiontitle}{}{%
%   $\cdot$~\thepage~$\cdot$}
%   \setfoot{}{}{}\headrule}
% \pagestyle{main}
% \renewpagestyle{plain}{\sethead{}{}{}\setfoot{}{}{}}
\pagestyle{plain}

\usepackage[top=1in,bottom=1in,left=1.25in,right=1.25in]{geometry} % 设置页边距

\setlength{\belowcaptionskip}{1em} % 设置caption之后的距离

% XeTeX logo
\def\XeTeX{\leavevmode
\setbox0=\hbox{X\lower.5ex\hbox{\kern-.15em\reflectbox{E}}\kern-.1667em
\TeX}%
\dp0=0pt\ht0=0pt\box0}

% For LaN
\newcommand{\LaN}{L{\scriptsize\hspace{-0.47em}\raisebox{0.23em}{A}}\hspace{-0.1em}N}

\begin{document}

\maketitle

\tableofcontents
\newpage

\end{document}

另外推荐下好用的LaTeX, XeTeX入门文档:

  1. The (Not So) Short Introduction to LaTeX2e, 一个比较全面的文档, 是一个老外写的, CTeX论坛翻译的在这里下载, 版本相对老一点. 我刚开始看的就是这个, 觉得还是要边看边动手, 而且要勤动手, 毕竟说全面, 也只是相对下面两个文档的, 对于初学者来说, 里面很多讲得也不是很详细的, 毕竟这些都是比较短小的文档. 因为是老外写的, 所以看完以后你还是不会知道怎样在文档中输出中文.

  2. LaTeX Notes, 清华的一个老师写的LaTeX笔记, 比较务实地将经常用到的命令都讲了出来, 而且内容整体上比上一个新, 所以上一个主要是用来掌握基础, 看完你基本上可以写一个格式和这个PDF差不多的文章了. 最后还专门讲了一下中文化的一些内容, 不过现在用XeTeX了, 也基本上用不上了, 回顾下历史也是不错的.
    P.S. 文中古诗无数, 附精美照片一张.

  3. XeTeX/LaTeX中文排版之胡言乱语, 这个作为了我的XeTeX入门教程, 其实XeTeX的主要学习的地方还是在导言区. 这是一个很短小的文档, 总共只有7页, 对于提高排版质量有一定用处.

No comments:

Post a Comment