bigyellowdoc / 计算机使用 / AUCTeX安装与使用

0 0

   

AUCTeX安装与使用

2012-08-17  bigyellow...


AUCTeX 是用来编辑 LaTeX, ConTeXt, docTeX, Texinfo, 和 TeX 的一个集成环境。 使用 AUCTeX 编辑 LaTeX 文件,可以帮助我们提高输入速度、减少输入错误。

AUCTeX 的效果图
AUCTeX
Preview 的效果图
Preview

AUCTeX 的安装与配置

最新版的 AUCTeX 可以到这里下载:

http://www.gnu.org/software/auctex/

把 tarball 下载回来后,安装非常简单:

# tar xzf auctex-11.81.tar.gz
# cd auctex-11.81
# ./configure && make && make install

注意: preview-latex 现在已经被纳入了 AUCTeX,要想使用预览,你的Emacs 编译时必须加入图片支持www。

配置方法也很简单,在你的 ~/.emacs 中加入下面的基本设置就可以了:

(load "auctex.el" nil t t)
(load "preview-latex.el" nil t t)
(setq TeX-auto-save t)
(setq TeX-parse-self t)
(setq-default TeX-master nil)

如果一切正常,当你用 Emacs 打开 .tex 文件时,将会看到 LaTeX 和 Commond 菜单,如果 preview-latex 也没问题的话,还将看到一个 Preview 菜单,请看预览效果。

其他一些扩展设置,各取所需 (:

(setq TeX-auto-untabify t) ;; 不使用 TAB字符缩进
(setq LaTeX-document-regexp "document\\|CJK\\*?") ;; CJK 环境中不缩进
(add-hook 'LaTeX-mode-hook #'LaTeX-install-toolbar)
(add-hook 'LaTeX-mode-hook 'turn-on-auto-fill)

管理多个文件

如果你的 tex 文件有多个,比如 master.tex, partone.tex, parttwo.tex:

\documentclass[13pt,cjk]{beamer}
\usepackage{CJK,ccmap,pgf,tikz}
\usepackage[latin1]{inputenc}
\usepackage[english]{babel}

\begin{document}
\begin{CJK*}{GBK}{kai}
%% End-Of-Header

\include{partone}
\include{parttwo}

%% Start-Of-Trailer
\end{CJK*}
\end{document}

在各个文件的最后添加文件局部变量:

% Local Variables:
% mode: LaTeX
% TeX-master: "master.tex"
% TeX-header-end: "% End-Of-Header$"
% TeX-trailer-start: "% Start-Of-Trailer$"
% End:

其中 TeX-master 告诉 AUCTeX 应该去找那个主文件,编译整个文档。

如果主文件和子文件存放不同的目录时,需要在 TeX-master 的参数中告诉主文件的位置:

TeX-master:"../master.tex",表示主文件位于子文件的上一级目 录;TeX-master:"../../master.tex"表示主文件位于子文件的上上一级目 录;TeX-master:"master/master.tex",表示主文件位于子文件所在目录的master子目录。

最懒的方法是在.emacs.el文件中加入下列代码,在新建子文件时会提示主文件的存放地点:

(setq TeX-auto-save t)
(setq TeX-parse-self t)
(setq-default TeX-master nil)

只编译文档的一个片断

设置一个 region,然后只编译这个 region,看看效果如何。如果你在制作幻灯片,比如 使用 beamer,只编译一个 frame,会节省很多时间。

想通过 LaTeX 只编译文档片断,除了需要让 AUCTeX 知道哪里是你的主文件,还需标出 哪些是文档的开始必需的内容,那些是文档结束必需的内容。

如前面的例子所示,通过设置 TeX-header-end 和 TeX-trailer-start,AUCTeX 会把 主文件中 "End-Of-Header" 之前的内容放到 region 之前,"Start-Of-Trailer" 之后的内容 放到 region 之后,默认保存到 _region_.tex 文件中。

而你只需要做的就是,设好 region 然后按 C-c C-r 编译,再 C-c C-r 查看。

或者,设置好 region,按 C-x n n,narrow 到当前 region,然后 C-c C-b 编译 当前缓冲中的内容,再 C-c C-b 查看。

默认 PDF mode (TeX-PDF-mode)

开启 PDF mode 后,再执行编译命令,会默认使用 pdflatex。而每次 C-c C-t C-p 比价麻烦。

始终开启 PDF mode 有两个办法,一个是打开 TeX-global-PDF-mode,所有 tex 文件都默认使用 pdflatex,如下设置:

(eval-after-load "tex"
'(progn
(TeX-global-PDF-mode t)))

这里使用 eval-after-load 的原因是,如果直接执行 (TeX-global-PDF-mode t),会导致在 启动 Emacs 的时候就加载整个AUCTeX,因为这个包实在不小,会浪费很多启动时间,而我们又不是 每次启动 Emacs 后就一定使用这个模式。 -]

第二种方法,使用文件变量:

% Local Variables:
% mode: LaTeX
% mode: TeX-PDF
% End:

如果,既使用了 TeX-global-PDF-mode,又使用了文件变量 "mode: TeX-PDF",恰好会关闭 TeX-PDF-mode。

RefTeX 简单修改

reftex 如下设置后,可以按文档目录结构浏览。在 LaTeX 缓冲中,按 C-c =, Emacs 会打开一个类似文档的目录的缓冲。

(setq reftex-revisit-to-follow t
reftex-auto-recenter-toc t)
(add-hook 'TeX-mode-hook
(lambda ()
(setq reftex-plug-into-AUCTeX t)
(turn-on-reftex)
))

把 beamer 的 frametitle 也放入 reftex 目录缓冲中,但需要把 \frametitle 写在行首:

(setq reftex-section-levels
'(("part" . 0) ("chapter" . 1) ("section" . 2) ("subsection" . 3)
("frametitle" . 4) ("subsubsection" . 4) ("paragraph" . 5)
("subparagraph" . 6) ("addchap" . -1) ("addsec" . -2)))

bibtex 的设置参考

(setq bibtex-autokey-names 1
bibtex-autokey-names-stretch 1
bibtex-autokey-name-separator "-"
bibtex-autokey-additional-names "-et.al."
bibtex-autokey-name-case-convert 'identity
bibtex-autokey-name-year-separator "-"
bibtex-autokey-titlewords-stretch 0
bibtex-autokey-titlewords 0
bibtex-maintain-sorted-entries 'plain
bibtex-entry-format '(opts-or-alts numerical-fields))

有参考文献的文档编译dvi的步骤为latex-bibtex-latex-latex。

Windows 上预览 PDF 文档

C-c C-c 编译文档后,如果再按 C-c C-c ,会提示 View 命令,不过默认的 xdvi 命令 windows 上没有。 如果想利用这个方法预览文档,需要对 TeX-output-view-style 稍加修改。

(eval-after-load "tex"
'(progn
(setq TeX-output-view-style
(cons '("^pdf$" "." "cmdproxy /C %o ") TeX-output-view-style))
))

当然如果你已就有一个 "tex" 文件的 eval-after-load,可以直接把 setq 部分加到 progn 里面。另外,你的 latex 源文件名里不能有空格

当然,如果你使用 MikTeX 可以直接:

(require 'tex-mik)

有时候emacs无法用PDFlatex得出正确生成CJK格式的PDF文件,需要对latex编译生成的dvi文件进行编译生成pdf文件后才可以正常浏览,但是DVIPDF命令在emacs中没有,需要手动添加,在.emacs.el中添加以下代码后在commander菜单中会增加dvipdf项。

(setq my-tex-commands-extra (list
(list "dvipdfmx" "dvipdfmx %s.dvi" 'TeX-run-command nil t)))

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。如发现有害或侵权内容,请点击这里 或 拨打24小时举报电话:4000070609 与我们联系。

    猜你喜欢

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多
    喜欢该文的人也喜欢 更多