终于搞定Ubuntu 9.04下XeTeX的配置了。 - 行者无疆 始于足下 - 行走,思考,在路上

终于搞定Ubuntu 9.04下XeTeX的配置了。

xiaohanyu posted @ Sun, 13 Sep 2009 00:13:47 +0800 in TeX with tags emacs ubuntu xetex latex auctex , 5741 readers

整整弄了三天。写了份《Ubuntu 9.04 环境下TEX中文化配置》,呕心之作。内容都在文档里面了。

主要内容包括:Ubuntu 9.04xeCJK配置

这是我使用的xeCJK模板。

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Name: XeTeX+xeCJK日常使用模板
% Author: Lox Freeman
% Email: xiaohanyu1988@gmail.com
%
% 本文档可以自由转载、修改,希望能给广大TeXer的中文之路提供一些方便。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\documentclass[a4paper, 12pt, titlepage]{article}

%%%%%%%%%%%%%%%%%%%%%%%%%xeCJK相关宏包%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{xltxtra,fontspec,xunicode}

\usepackage[slantfont, boldfont, CJKaddspaces, CJKchecksingle]{xeCJK}
\CJKsetecglue{\hskip 0.15em plus 0.05em minus 0.05em}
% slanfont: 允许斜体
% boldfont: 允许粗体
% CJKnormalspaces: 仅忽略汉字之间的空白,但保留中英文之间的空白。
% CJKchecksingle: 避免单个汉字单独占一行。
% CJKaddspaces: [备选]忽略汉字之间的空白,并且自动在中英文转换时插入空白。

\CJKlanguage{zh-cn}                  % 中文标点特殊处理
\XeTeXlinebreaklocale "zh"           % 针对中文进行断行
\XeTeXlinebreakskip = 0pt plus 1pt minus 0.1pt
                                     % 给予TeX断行一定自由度
%%%%%%%%%%%%%%%%%%%%%%%%%xeCJK%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%日常所用宏包、通通放在一起%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 什么常用的宏包都可以放这里。下面是我常用的宏包,每个都给出了简要注释
\usepackage[top=2.5cm, bottom=3cm, left=2cm, right=2cm]{geometry}                               
                                     % 控制页边距
\usepackage{enumerate}               % 控制项目列表
\usepackage{multicol}                % 多栏显示

\usepackage[%
    pdfstartview=FitH,%
    CJKbookmarks=true,%
    bookmarks=true,%
    bookmarksnumbered=true,%
    bookmarksopen=true,%
    colorlinks=true,%
    citecolor=blue,%
    linkcolor=blue,%
    anchorcolor=green,%
    urlcolor=blue%
]{hyperref}

\usepackage{titlesec}                % 控制标题
\usepackage{titletoc}                % 控制目录
\usepackage{type1cm}                 % 控制字体大小
\usepackage{indentfirst}             % 首行缩进,用\noindent取消某段缩进
\usepackage{bbding}                  % 一些特殊符号
\usepackage{cite}                    % 支持引用
\usepackage{color,xcolor}            % 支持彩色文本、底色、文本框等
\usepackage{latexsym}                % LaTeX一些特殊符号宏包
\usepackage{amsmath}                 % AMS LaTeX宏包
\usepackage{bm}                      % 数学公式中的黑斜体
\usepackage{relsize}                 % 调整公式字体大小:\mathsmaller, \mathlarger
%\makeindex                          % 生成索引

%%%%%%%%%%%%%%%%%%%%%%%%%基本插图方法%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{graphicx}                % 图形宏包
% \begin{figure}[htbp]               % 控制插图位置
%   \setlength{\abovecaptionskip}{0pt}   
%   \setlength{\belowcaptionskip}{10pt}
                                     % 控制图形和上下文的距离
%   \centering                       % 使图形居中显示
%   \includegraphics[width=0.8\textwidth]{CTeXLive2008.jpg}
                                     % 控制图形显示宽度为0.8\textwidth
%   \caption{CTeXLive2008安装过程} \label{fig:CTeXLive2008}
                                     % 图形题目和交叉引用标签
% \end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%插图方法结束%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%fancyhdr设置页眉页脚%%%%%%%%%%%%%%%%%%%%
\usepackage{fancyhdr}                % 页眉页脚
\pagestyle{fancy}                    % 页眉页脚风格
\setlength{\headheight}{15pt}        % 有时会出现\headheight too small的warning
%\fancyhf{}                          % 清空当前页眉页脚的默认设置
%%%%%%%%%%%%%%%%%%%%%%%%%fancyhdr设置结束%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%listings宏包粘贴源码%%%%%%%%%%%%%%%%%%%%
\usepackage{listings}                % 方便粘贴源代码,部分代码高亮功能
\lstloadlanguages{}                  % 所要粘贴代码的编程语言

%%%%设置listings宏包的一些全局样式%%%%
%%%%参见http://hi.baidu.com/shawpinlee/blog/item/9ec431cbae28e41cbe09e6e4.html%%%%
\lstset{
numbers=left,                        % 在左边显示行号
numberstyle=\tiny,
keywordstyle=\color{blue!70}, commentstyle=\color{red!50!green!50!blue!50},
                                     % 关键字高亮
frame=shadowbox,                     % 给代码加框
rulesepcolor=\color{red!20!green!20!blue!20},
escapechar=`,                        % 中文逃逸字符
xleftmargin=2em,xrightmargin=2em, aboveskip=1em,
breaklines,                          % 这条命令可以让LaTeX自动将长的代码行换行排版
extendedchars=false                  % 这一条命令可以解决代码跨页时,章节标题,页眉等汉字不显示的问题
}
%%%%%%%%%%%%%%%%%%%%%%%%%listings宏包设置结束%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%xeCJK字体设置%%%%%%%%%%%%%%%%%%%%%%%%%
\punctstyle{kaiming}                                        % 设置中文标点样式
                                                            % 支持quanjiao、banjiao、kaiming等多种方式
\setCJKmainfont[BoldFont=Adobe Heiti Std]{Adobe Song Std}   % 设置缺省中文字体
\setCJKsansfont[BoldFont=Adobe Heiti Std]{Adobe Kaiti Std% 设置中文无衬线字体
\setCJKmonofont{Adobe Heiti Std}                            % 设置等宽字体
\setmainfont{DejaVu Serif}                                  % 英文衬线字体
\setmonofont{DejaVu Sans Mono}                              % 英文等宽字体
\setsansfont{DejaVu Sans}                                   % 英文无衬线字体

%%%%定义新字体%%%%
\setCJKfamilyfont{song}{Adobe Song Std}                     
\setCJKfamilyfont{kai}{Adobe Kaiti Std}
\setCJKfamilyfont{hei}{Adobe Heiti Std}
\setCJKfamilyfont{fangsong}{Adobe Fangsong Std}
\setCJKfamilyfont{lisu}{LiSu}
\setCJKfamilyfont{youyuan}{YouYuan}

\newcommand{\song}{\CJKfamily{song}}                       % 自定义宋体
\newcommand{\kai}{\CJKfamily{kai}}                         % 自定义楷体
\newcommand{\hei}{\CJKfamily{hei}}                         % 自定义黑体
\newcommand{\fangsong}{\CJKfamily{fangsong}}               % 自定义仿宋体
\newcommand{\lisu}{\CJKfamily{lisu}}                       % 自定义隶书
\newcommand{\youyuan}{\CJKfamily{youyuan}}                 % 自定义幼圆
%%%%%%%%%%%%%%%%%%%%%%%%%xeCJK字体设置结束%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%一些关于中文文档的重定义%%%%%%%%%%%%%%%%%

%%%%数学公式定理的重定义%%%%
\newtheorem{example}{例}                                   % 整体编号
\newtheorem{algorithm}{算法}
\newtheorem{theorem}{定理}[section]                         % 按 section 编号
\newtheorem{definition}{定义}
\newtheorem{axiom}{公理}
\newtheorem{property}{性质}
\newtheorem{proposition}{命题}
\newtheorem{lemma}{引理}
\newtheorem{corollary}{推论}
\newtheorem{remark}{注解}
\newtheorem{condition}{条件}
\newtheorem{conclusion}{结论}
\newtheorem{assumption}{假设}

%%%%章节等名称重定义%%%%
\renewcommand{\contentsname}{目录}     
\renewcommand{\indexname}{索引}
\renewcommand{\listfigurename}{插图目录}
\renewcommand{\listtablename}{表格目录}
\renewcommand{\figurename}{图}
\renewcommand{\tablename}{表}
\renewcommand{\appendixname}{附录}

%%%%设置chapter、section与subsection的格式%%%%
\titleformat{\chapter}{\centering\huge}{第\thechapter{}章}{1em}{\textbf}
\titleformat{\section}{\centering\LARGE}{\thesection}{1em}{\textbf}
\titleformat{\subsection}{\Large}{\thesubsection}{1em}{\textbf}
%%%%%%%%%%%%%%%%%%%%%%%%%中文重定义结束%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%一些个性设置%%%%%%%%%%%%%%%%%%%%%%
% \renewcommand{\baselinestretch}{1.3}     % 效果同\linespread{1.3}
% \pagenumbering{arabic}                   % 设定页码方式,包括arabic、roman等方式
% \sloppy                                  % 有时LaTeX无从断行,产生overfull的错误,
                                           % 这条命令降低LaTeX断行标准
\setlength{\parskip}{0.5\baselineskip}     % 设定段间距
\linespread{1.2}                           % 设定行距
\newcommand{\pozhehao}{\kern0.3ex\rule[0.8ex]{2em}{0.1ex}\kern0.3ex}
                                           % 中文破折号,据说来自清华模板

%%%%%%%%%%%%%%%%%%%%%%%%%个性设置结束%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%正文部分%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\setlength{\parindent}{2em}                   
% 设定首行缩进为2em。注意此设置一定要在document环境之中。
% 这可能与\setlength作用范围相关

\title{Ubuntu 9.04环境下\TeX 中文化配置}
\author{Lox Freeman}
\date{\today}

\maketitle

\tableofcontents

\newpage

\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%正文部分结束%%%%%%%%%%%%%%%%%%%%%% 
longrs said:
Thu, 20 May 2010 07:37:27 +0800

强烈支持,都被latex字体转换弄烦,
你写的做得真好

Avatar_small
Lox said:
Thu, 20 May 2010 08:02:35 +0800

@longrs: 都是一点一点折腾过来的咧。

Avatar_small
Lox said:
Thu, 20 May 2010 08:03:43 +0800

@longrs: 不过,ubuntu 10.04支持texlive2009了。不用像我这样再手动折腾了。当然,我现在也不用ubuntu了,呵呵。

longrs said:
Thu, 20 May 2010 08:15:59 +0800

@Lox: 你用什么?

longrs said:
Thu, 20 May 2010 08:18:21 +0800

@Lox: 我现在在安装 sudo apt-get install texlive
要下100M多的东西,太大了。

Lox said:
Thu, 20 May 2010 19:54:58 +0800

@longrs: 我后来用了archlinux,现在用gentoo。主要是强迫自己深入了解下linux的体系结构。

sudo apt-get install texlive,
我印象中应该不止100M吧。我这边texlive的iso要好几个G的。

柯嘉 said:
Wed, 01 Dec 2010 10:06:57 +0800

给你加个修复页眉英文的配置:
\renewcommand{\chaptermark}[1]{\markboth{第~\thechapter~章 \ #1}{}}

Avatar_small
Lox said:
Wed, 01 Dec 2010 19:06:09 +0800

多谢多谢,我去研究下。不过这个文档配置已经过时了。因为基本上现在的最新的linux的发行版都是texlive 2009了

mazenvoy said:
Mon, 15 Aug 2011 09:15:40 +0800

我在98上看到的你这个模版,现在在用,当然我不是很了解的,你那个模版好像只有\CJKlanguage{zh-cn}这个没有用了吧。

个人非常喜欢你写的东西,当然我说的是98上的,这里的没看过多少

Avatar_small
Lox said:
Mon, 15 Aug 2011 12:52:22 +0800

hi,这个文档已经稍显过时了。因为xecjk本身已经变了很多。

我在google code上开了个小项目:

http://code.google.com/p/xecjk-template/

不过这个项目被ctex高手批了,里面也有很多不合理的地方。
但是我现在还没有时间去改进。

Avatar_small
mazenvoy said:
Tue, 16 Aug 2011 10:24:22 +0800

我试了下你在google上的模版,我发现等宽字体有个问题,就是没有空格符号,如world前面的␣ 打不出来

\ begin{verbatim*}
p r i n t f ( " Hello , world ! " ) ;
\ end{verbatim*}

我换了个文泉驿等宽正黑就好了,不知道是不是我的问题

Avatar_small
mazenvoy said:
Wed, 24 Aug 2011 23:56:43 +0800

hello,你好我又来了
改正你google上的模版中参考文献的一个不足
就是在
\addcontentsline{toc}{section}{\refname}
前面加上
\clearpage
\phantomsection

不然的话pdf标签和目录的超链接都是不对的,具体就是少一页,你可以看看你的那个main.pdf示例里就是不对的

我是看了http://bbs.ctex.org/viewthread.php?tid=58350

谢谢
5楼的解决方案


Login *


loading captcha image...
(type the code from the image)
or Ctrl+Enter
Host by is-Programmer.com | Power by Chito 1.3.3 beta | © 2007 LinuxGem | Design by Matthew "Agent Spork" McGee