存档

‘LaTeX’ 分类的存档

Gentoo 搭建 LaTex 编辑环境

2011年9月30日 没有评论

记录一下过程:

使用的是 ctex 的方案, 这样我不用再为中文和各种字体头疼了, 直接使用系统 中的字体. 由于系统是 Gentoo, 所以我装 zhspacing 这个包, 把依赖也一起 解决了.

$ sudo emerge texlive           #不知道为什么安装 zhspacing 没有安装这个包
$ sudo emerge zhspacing
$ sudo emerge dvipdfmx          #需要这个包的支持

剩下的, 参考之前的文章 用 org-mode 写 LaTeX

分类: Gentoo, LaTeX 标签: ,

用 org-mode 写 LaTeX

2011年8月17日 2 条评论

最近要离职了, 要写移交文档, 以前写文档的一般都是用 org-mode 写好以后转为 html 或者 mediawiki 的格式, 偶尔给国外的客户写技术文档才转成 pdf 格式. 这次想正式一点, 顺便再回顾一下上次 FJLUG 上学到的 XeLaTeX.

话说我以前用 LaTeX 处理中文都是用 CJK 的方式, 直到上次去 FJLUG 上被 鱼一尾 告知我用的技术是几年前的, 被狠狠鄙视了一把之后, 我才知道原来用 XeLaTeX 处理中文如此简单.

Org-article 模板

我用的 latex 模板是 org-modeThe Org-article LaTeX class

NOTE!!! 以下假设 xeLaTeX 和 xeCJK 环境已经安装好了. 并且 org-mode 最好是7.0以上的版本, 不然 org-babel-tangle-file 函数可能找不到

安装很简单

$ git clone git://github.com/tsdye/org-article.git
$ cd org-article
$ emacs -batch --eval "(org-babel-tangle-file \"article-class.org\")"
$ sudo cp org-article.cls /usr/share/texmf-texlive/tex/latex/base
$ sudo mktexlsr
$ kpsewhich org-article.cls

其中 usr/share/texmf-texlive/tex/latex/base 不同平台可能会不一样

如果提示

reference 'gantttest' not found in this buffer

则在 Org-article.org 里面搜索 ganttest, 把相应的片段删除, 我这里删除了三处.

xeCJK 模板

以下设置假设你有相关字体, 用 fc-list 查看你系统的字体, 如果你想要其他 字体, 执行类似的代码添加提供的字体

$ fc-list
$ sudo cp your_fonts.ttf /usr/share/fonts/your_fonts_dir
$ cd /usr/share/fonts/your_fonts_dir
$ sudo mkfontdir 
$ sudo mkfontscale
$ sudo fc-cache -fv

然后 fc-list 找到你添加的字体名, 最好选英文的那一列

将以下代码保存为 /usr/share/texmf-texlive/tex/latex/base/zhfontcfg.sty /usr/share/texmf-texlive/tex/latex/base 是我的 latex 能找到的目录, 不同 平台可能不一样

% xetex/xelatex 字体设定宏包
 
\ProvidesPackage{zhfontcfg}
\usepackage[utf8]{inputenc}
\usepackage{fontspec,xunicode}
 
\usepackage[slantfont, boldfont, CJKtextspaces, CJKmathspaces]{xeCJK} % 允许斜体和粗体
\setCJKmainfont{WenQuanYi Micro Hei} % 设置缺省中文字体
\setCJKmonofont{WenQuanYi Micro Hei Mono} % 设置等宽字体
 
\setmainfont{Tahoma} % 英文衬线字体
\setsansfont{Tahoma} % 英文无衬线字体
\setmonofont{Monaco} % 英文等宽字体
\punctstyle{kaiming} % 开明式标点格式
 
\usepackage{indentfirst} % 首段缩进
 
\defaultfontfeatures{Mapping=tex-text} %如果没有它,会有一些 tex 特殊字符无法正常使用,比如连字符。
 
% 中文断行
\XeTeXlinebreaklocale "zh"
\XeTeXlinebreakskip = 0pt plus 1pt minus 0.1pt

emacs 设定

保存下列代码到 ~/.emacs

(require 'org-latex)
(setq org-export-latex-listings t)
(add-to-list 'org-export-latex-classes
             '("org-article"
               "\\documentclass{org-article}
                 [NO-DEFAULT-PACKAGES]
                 [EXTRA]"
               ("\\section{%s}" . "\\section*{%s}")
               ("\\subsection{%s}" . "\\subsection*{%s}")
               ("\\subsubsection{%s}" . "\\subsubsection*{%s}")
               ("\\paragraph{%s}" . "\\paragraph*{%s}")
               ("\\subparagraph{%s}" . "\\subparagraph*{%s}")))

开始写文档

每一个 org-mode 的头部要添加一下代码.

#+TITLE: 用 org-mode 写 LaTeX
#+AUTHOR: mathslinux <riegamaths@gmail.com>
#+DATE: [2011-08-17 三 16:30]
 
#+OPTIONS:   H:3 num:t toc:t \n:nil @:t ::t |:t ^:nil -:t f:t *:t <:t
#+OPTIONS:   TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc
 
#+EXPORT_SELECT_TAGS: export
#+EXPORT_EXCLUDE_TAGS: noexport
#+LINK_UP:   
#+LINK_HOME: 
#+XSLT: 
#+BABEL: :exports code
#+LaTeX_CLASS: org-article
#+LaTeX_CLASS_OPTIONS: [koma,times,letterpaper,captions=tableheading,utopia,11pt,listings-sv,microtype,paralist,colorlinks=true,urlcolor=blue,secnums,secnumss,secnumsss,secnump,secnumsp]
 
#+LATEX_HEADER: \usepackage{zhfontcfg}

剩下的, 就是按照 org-mode 的格式来写文档, 神马代码高亮, 神马标题分类, 都不用 考虑 latex 的语法, 完全就是可见即可得.

分类: Emacs, LaTeX 标签: , ,