Aurora Troubleshooting

Aurora toolbar and menu don't show up in Word

Check that your current security level is not set to “Very High.” Currently, Aurora is not compatible with this setting, because Aurora needs to load templates from its installation directory. You can achieve a very similar level of security by choosing “High” as your security level and disabling both Trust all installed add-ins and templates and Trust access to Visual Basic Project on the Trusted Sources page of the Security dialog. 继续阅读

中文TeX模板收集

幻灯模板

beamer模板 (黄正华)

ConTeXt模板 (逰道德之平林)

pdfscreen模板 (逰道德之平林)

pdfwin模板 (李树钧)

SkyDrive打包下载页面

中文期刊论文模板

《兰州大学学报》自然科学版模板

《数学建模》模板 (毛紫阳)

通用模板 (rabbitbug)

中国运筹学会论文模板 (吴凌云)

SkyDrive打包下载页面

学位论文模板

国防科技大学模板 (毛紫阳)

哈尔滨工业大学模板 (韩琦)

清华大学模板 (王磊)

武汉大学模板 (黄正华)

西安交通大学模板 (李树钧)

浙江大学模板 (wangww)

中科院计算数学所模板 (张林波)

中科院模板 (吴凌云)

中南大学CCT模板 (Wang Hong)

SkyDrive打包下载页面

清泉系列模板

LaTexArticle1.92

LaTexBook2.02

myslidebook1.15

SkyDrive打包下载页面

其他模板

《运筹学》书籍模板 (胡知能)

彩色粗体PDF书签模板 (Hai-Ying Shan)

高教社杯全国大学生数学建模竞赛模板 (毛紫阳)

基于CTeX宏包的书籍模板 (孙文昌)

奇门遁甲版试卷模板 (Shadow)

数学试卷排版模板及指南 (盖鹤麟)

水印背景模板 (黄正华)

中科院博士后出站报告模板 (吴凌云)

中英文双语目录模板 (reds)

最简单的书籍、学位论文模板 (刘轼波)

SkyDrive打包下载页面

资料来源:《LATEX入门与提高》(第二版)附带光碟

水木清华TeX版问题集锦

SMTH水木清华TeX版已经提过的问题及解答

1. 旋转和缩放命令为什么不产生效果?
按照《latex插图指南》30页的讲解测试几个旋转和缩放命令\scalebox \resizebox 和\rotatebox,对象像示例一样选了几个文字,但不知道为什么不产生效果,编译可以正常通过,graphicx宏包已正确使用,后来使用了\frambox命令发现刚才的几个  旋转缩放命令在字的外面加上了缩放的盒子,字却没有变化,不知道这是为什么?

答:dvi文件中没有效果,需要转成ps或pdf来看的.

2.  latex初学,一个会议文章的模板中有如下一句:
\documentclass[9pt,onecolumn]{scrartcl},
编译出错如下:
! Class scrartcl Error: File "size9.clo" not found!
(scrartcl)              This error is fatal!.
请问这个问题如何解决?
答: 模版不全。上google找缺少的文件size9.clo

3. 请问是不是写中文用ctex,英文用latex?
答:见CTeX-FAQ. CTeX和LaTeX的关系。

4.  从MATLAB里直接得到的图形怎么嵌进TEX文件里去啊?
答:
1. Open the figure by Matlab
2. In the Figure Editor, Click "File" Menu
3. Export...
4. Save as type (choose .eps)
5. Provide a file name, then the file will be save as *.eps,
which can be used in LaTeX.

5. 每个item之间的那个距离在那里设置?
答:LaTeX manual中文版第四章有详细介绍。

6. 请问英文字体大小怎么控制啊,各位大虾帮帮忙吧
答:见LaTeX manual 第八章3节及附录5.

7. 请问有没有表示正负离子的那个符号?用^+显得太大了,怎么在公式里改字号?
答:见LaTeX manual第五章.

8. 关于prosper裁边的问题
答:step1. 修改style文件。
%%\PDFCroppingBox{10 40 594 820}
\PDFCroppingBox{0 0 594 840}
step2.不使用WinEdt上的ps2pdf,打开GSview浏览生成的ps文件,选择convert,按他的默认设置,转换成PDF,应该就可以了.四周的边都可以出来,没问题。至于footer, 如果有问题的话改一下prosper.cls文件就可以了。
……
{\@colorFoot\tiny \@cartouche~--~p.~\thepage\ifallPages/\realpageref{last@page}
在这里加入空格“~”\fi}%
……
9. 请教双栏文章中如何跨两栏写长公式
答:       

      \begin{multicols}{2}
Bla bla...
\end{multicols}
%
\begin{equation}
very long equation
\end{equation}
%
\begin{multicols}{2}
Bla bla...
\end{multicols}
To help the reader to read the columns in the correct order you could
also add horizontal lines at the bottom of column 1 and at the top
of column 4:
111111111111111111  2222222222222222222
1111111111111111111  2222222222222.
111111111111111.      222222222222222222
111111111111111111  2222222222222222222
1111111111111111111  2222222:
--------------------
equation too long to fit in one column
-------------------
3333333333333333333  4444444444444444444
33333333333.         44444444.
333333333333333333   444444444444444444
3333333333333333333  4444444444444444444
The horizontal lines can be created using the following macros (this is a
quick hack; I'm sure that there are room for plenty of improvements here...
):
\newlength{\halfpagewidth}
\setlength{\halfpagewidth}{\linewidth}
\divide\halfpagewidth by 2
\newcommand{\leftsep}{%
\noindent\raisebox{4mm}[0ex][0ex]{%
\makebox[\halfpagewidth]{\hrulefill}\hbox{\vrule height 3pt}}%
\vspace*{-2mm}%
}
\newcommand{\rightsep}{%
\noindent\hspace*{\halfpagewidth}%
\rlap{\raisebox{-3pt}[0ex][0ex]{\hbox{\vrule height 3pt}}}%
\makebox[\halfpagewidth]{\hrulefill}%
}
Use them like:
\begin{multicols}{2}
Bla bla...
\end{multicols}
%
\leftsep
\begin{equation}
very long equation
\end{equation}
\rightsep
%
\begin{multicols}{2}
Bla bla...
\end{multicols}

10. 我按照清泉的模版自定义一个列表。但是和我想要还有差距。附件有我编译后的效果,但是对于第三个item,第二行竟然和“检测3”对齐,我想让它和“:”后面的内容对齐,请问该怎么办?谢谢!
下面是自定义列表:
\newcounter{newlist} %自定义新计数器
\newenvironment{mylist}[1][可改变的列表题目]{%%%%%定义新环境
\begin{list}{\textbf{\hei #1} \arabic{newlist}:} %%标签格式
{
\usecounter{newlist}
\setlength{\labelwidth}{22pt} %标签盒子宽度
\setlength{\labelsep}{0cm} %标签与列表文本距离
\setlength{\leftmargin}{22pt} %左右边界
\setlength{\rightmargin}{0cm}
\setlength{\parsep}{0.5ex plus0.2ex minus0.1ex} %段落间距
\setlength{\itemsep}{0ex plus0.2ex} %标签间距
\setlength{\itemindent}{22pt} %标签缩进量
}}

{\end{list}}%%%%%

答: 看了一下 latex companion 2ed 第三章,发现你的问题是由于没有弄清楚 \labelwidth \labelsep \itemindent 以及starting position of label 之间的关系.
------------_>--------->
|\labelwidth |\labelsep|
|----------->
----------------->|\itemindent
\leftmargin  |
可以知道 starting position of label 相对于页面的左边为: \leftmargin + \itemindent - (\labelsep + \labelwidth)及相对于列表第二行及其以下文字的左边为:
\itemindent - (\labelsep + \labelwidth)
算一下就知道你的结果在情理之中了.你只要把 \itemindent 改一下就可以了,它默认为零.

11. 问个origin做的图嵌到tex里的问题
答:     你在export的时候,选择打开eps options然后在弹出的eps options窗口中有一个embedding选项选择use built-in fonts.

12. 如何使一些章节标题不在目录中出现?
几个\subsubsection{}生成的标题不想让它们在目录里出现,有办法吗??
答: \setcounter{tocdepth}{2}

13. 请问怎么把一个汉字旋转90度?
答:     \usepackage{graphicx}
\rotatebox{90}{字}

14. 有么有latex输入程序的模版?
答:     bbs.ctex.org上有清泉模板,里面有输入matlab 和c++的模版。其实就是用listlings宏包。一学就会。

15. 有没有比较方便的更改表格线宽的方法?tex这方面好像挺弱啊.
答:     强烈推荐booktabs宏包,几乎一切都随你订制

16.  关于中文段首缩进,我发现我文章里面的中文段首缩进不是两个汉字而是一个半,看上去比较别扭,可以调整吗?
答: CJK 环境中使用命令\CJKindent, 另外很多模板自己已经设置好了(如王磊模板等).

17. 如何剪裁eps图片?
答: PS to EPS,把自动计算boundbox前面的勾去掉就可以了

18. Photoshop等其他软件生成eps格式无Bounding Box的问题。
答:方法1. gsview再次转换到eps格式,生成Bounding Box.
方法2. 在插入图形时使用参数定义Bounding Box:
\includegraphics[bb=10 20 100 200 ]{myfile_converted_from_Photoshop.eps}
bb的值从photoshop或gsview中可以读出来。

19. 请问怎么把excel里的图片弄成eps的
答: 虚拟打印.

20. 如何设置背景颜色?比如黑底蓝字?
答:   

  \documentclass[11pt]{article}
\usepackage[usenames]{color}
\begin{document}
\fcolorbox{Black}{Black}{\textcolor{Blue}{Blue words in Black Background!}}
\end{document}

21. 怎么更改title和autor的格式吗
答:

\posttitle
\authorfont
\postauthor
\datefont
\postdate

The titling package provides a configurable \maketitle command. \maketitle
These commands control the typesetting of the document’s \maketitle com- mand
. The
\title is processed between the \titlefont and \posttitle com-
mands; that is, like:
{\titlefont \title \posttitle}
and similarly for the \author and \date commands. The commands are initialised

to mimic the normal result of \maketitle typesetting in the article/report classes
.
For example, the default definitions of the \...title... and \...author...
commands are:
\newcommand{\titlefont}{\begin{center}\LARGE}
\newcommand{\posttitle}{\par\end{center}\vskip 0.5em}
\newcommand{\authorfont}{\begin{center}
\large \lineskip 0.5em%
\begin{tabular}[t]{c}}
\newcommand{\postauthor}{\end{tabular}\par\end{center}}
They can be renewed to obtain different effects, for instance removing the
center environment from \...title... will result in the title being typeset as
a normal paragraph.

22. 关于行距,页边距等的调整
答:都有相关的命令
行间距:baselinestretch、baselineskip
页边距:leftmargin、rightmargin
建议你找本书看一看,其实初学者的绝大部分问题在书里都讲过了。
推荐lshort和manual of latex

23. 第一页没有写完,后面接着一个比较长的公式,所以自动换了一页,我觉得第一页下面空着这么一截怪难看的,最好不要自动换页,还是接着写,然后到非换不可的时候,在公式内部换.如下面所示,我已经用公式为关键字在版内找过了,但是不果,不知哪位xdjm明示一下,谢谢了!!!

\begin{subequations}\label{Eq14}
\begin{gather}
\begin{split}
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
\end{split}\\
\begin{split}
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
\end{split}\\
%%%  比如说在这里可以换页嘛,因为第一页剩下来的的地方其实还是写两行的
%%%  比如说在这里可以换页嘛,因为第一页剩下来的的地方其实还是写两行的
\begin{split}
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
\end{split}\\
\begin{split}
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
\end{split}
\end{gather}
\end{subequations}

答:    在文档的导言部分加上:\allowdisplaybreaks[4]括号内的数字表示你希望换行的程度。
0表示不要换行,1表示尽可能不换行,4的换行程度最强。

24.   用\thanks 命令在文章左下方作者介绍,怎样能让文章题目下的作者名的右上方不带星号?我表达清楚了吧?紧急求助。
答:    不用\thanks,就用\footnotetext,但是可能不能用在标题里,正文开始用试试吧。

25.   [请教]itemize的缩进问题
默认情况下

\begin{itemize}
\item xxx
\item yyy
\end{itemize}
xxx和yyy会相对于前面的正文有一段缩进,如何在整个文档中取消这样的缩进?
答:    LaTeX manual上有详细解释。现给出一个例子。

\newcounter{newlist} %自定义新计数器
\newenvironment{denselist}[1][可改变的列表题目]{%%%%%定义新环境
\begin{list}{\textbf{\hei #1} \arabic{newlist}:} %%标签格式
{
\usecounter{newlist}
\setlength{\labelwidth}{22pt} %标签盒子宽度
\setlength{\labelsep}{0cm} %标签与列表文本距离
\setlength{\leftmargin}{0cm} %左右边界
\setlength{\rightmargin}{0cm}
\setlength{\parsep}{0ex} %段落间距
\setlength{\itemsep}{0ex} %标签间距
\setlength{\itemindent}{44pt} %标签缩进量
\setlength{\listparindent}{22pt} %段落缩进量
}}
{\end{list}}%%%%%

26 使用syntonly 宏包可以让LATEX 快速的检查你的文档:LATEX 浏览你的文档,仅仅检查语法和所使用的命令是否正确,不会产生DVI 输出。在这种模式下,LATEX 运行的非常快,可以节省可观的时间。使用方法非常简单:
\usepackage{syntonly}
\syntaxonly

27 如何让第一页不显示日期?
\date{}

28 曾经有某位朋友我问如何将参考文献的格式[1],[2],[3],[4]变成[1]-[4]。或把[1,2,3,4]变成[1-4]。

可以用\usepackage{cite} or  \usepackage[sort&compress]{natbib}

29 请问如何写一个圈1,圈2之类的?
\testcircled{\scriptsize 1} == 圈1

30 竖排中文

\usepackage{ifthen,graphicx}
\begin{document}
\newcommand{\verticle}{%
\renewcommand{\CJKsymbol}[1]{%
\setbox0=\hbox{\symbol{##1}}%
\newcommand{\POS}{}%
\ifthenelse{\lengthtest{\ht0<.39\wd0}}%
{\renewcommand{\POS}{c}}{\renewcommand{\POS}{r}}%
\makebox[\wd0][\POS]{\rotatebox[origin=lB]{90}{\symbol{##1}}}%
\if CJK@bold@%
\hbox to \CJKboldshift{\hss\makebox[\wd0][\POS]{%
\rotatebox[origin=lB]{90}{\symbol{##1}}}}%
\hbox to \CJKboldshift{\hss\makebox[\wd0][\POS]{%
\rotatebox[origin=lB]{90}{\symbol{##1}}}}%
\fi}}
\newsavebox{\saverotate}%
\newcommand{\shupai}[2][\textheitht]{%
\savebox{\saverotate}{\parbox[t]{#1}{\verticle #2}}
\hfill\rotatebox[origin=lt]{-90}{\usebox{\saverotate}}}
\verticle 话说当时住持真人对洪太尉说道:“太尉不知,此殿中当初是祖老天师洞玄真人传下法符,嘱付道:此殿内镇锁着三十六员天罡星,七十二座地煞星,共是一百单八个魔君在里面。上立石碑,凿着龙章凤篆天符,镇住在此。若还放他出世,必恼下方生灵。'如今太尉放他走了,怎生是好!他日必为后患。”洪太尉听罢,浑身冷汗,捉颤不住;急急收拾行李,引了从人,下山回京。真人并道众送官已罢,自回宫内修整殿宇,竖立石碑,不在话下。
\end{document}

31 首行缩进
\usepackage{indentfirst}

LaTeX中的定理环境

在LaTex中需要有关定理、公理、命题、引理、定义等时,常用如下命令

   \newtheorem{定理环境名}{标题}[主计数器名]
   %例如
   \newtheorem{theorem}{Theorem}[Chapter]

意思就是定义一个以Theorem为标题的theorem环境,计数以章节数为主.

\begin{theorem}[均值不等式] 设$A,B$是两个实数, 则$2AB\leq A^2+B^2$.
\end{theorem}

的输出为

表示为Chapter 5的第一个定理.

如果需要输出中文,使用定义theorem如下

 \newtheorem{theorem}{\hspace{2em}定理}[chaptet]

同样的代码其输出为

另外在{\hspace{2em}定理}中还可以输入更改字体的命令来改变定理的字体.

前面提到的定理、公理、命题、引理、定义的一套命令可以用这个

 % Theorem style
\newtheoremstyle{mystyle}{3pt}{3pt}{\kaishu}{0cm}{\heiti}{}{1em}{}
\theoremstyle{mystyle}

\newtheorem{definition}{\hspace{2em}定义}[chapter]
% 如果没有章, 只有节, 把上面的[chapter]改成[section]
\newtheorem{theorem}[definition]{\hspace{2em}定理}
\newtheorem{axiom}[definition]{\hspace{2em}公理}
\newtheorem{lemma}[definition]{\hspace{2em}引理}
\newtheorem{proposition}[definition]{\hspace{2em}命题}
\newtheorem{corollary}[definition]{\hspace{2em}推论}
\newtheorem{remark}{\hspace{2em}注}[chapter]
%类似地定义其他“题头”. 这里“注”的编号与定义、定理等是分开的

其中\hspace{2em} 表示在定理的前面空2格.

TEX中的多重数学符号的输入

以下介绍的命令都是在调用宏包amsmath的基础上进行。

多重上下标

第一种方法

运用命令\substack,先看个例子

2010-09-27-01

上图对应代码为

\begin{displaymath}
\sum_{\substack{i=0\\j=0}}^{\substack{n\\m}}a_i^j
\end{displaymath}

通过看代码,这种方法没有什么技巧,注意如果多重下标分行和文章内分行是一样的都是"\\" 而角标都是默认居中的。

第二种方法

运用环境subarray,(1)中图对应代码为

\begin{displaymath}
\sum_{\begin{subarray}{l}
i=0\\j=0
\end{subarray}}^{\begin{subarray}{c}
n\\m
\end{subarray}}a_i^j
\end{displaymath}

注意一点\begin{subarray}{*}——*为l(L小写)表示角标居左对齐,*为c表示角标居中对齐。

多重积分

多重积分符号很简单,和普通的\int的区别在于多了几个i,即\int,\iint,\iiint,\idotsint等。

下面看例子

2010-09-27-01

上图对应代码为

\begin{gather*}
\int\qquad \iint \qquad\iiint \\
\iiiint\qquad\idotsint
\end{gather*}

这里的gather环境是一个输入多行公式的环境,带上*表示不参与编号,\\为分行命令。

TEX中分式、连分式的输入

LATEX中常用的分式为\frac,它会随着环境的变动而自动改变尺寸,有时在行内如何使得分子分母保持与文字同样的大小呢?

有个解决方案就是调入amsmath,利用命令

\dfrac{分子}{分母}

这个命令使得无论是在行内还是行间,它总是显示为\displaystyle;类似的还有

\tfrac{分子}{分母}

这个命令使得无论是在行内还是行间,它总是显示为\textstyle.

下面举个例子

上面式子的代码为

$a+b=1,a-b=3$,求$\tfrac{a}{b},\frac{a}{b},\dfrac{a}{b}$

还有个比较特殊的分式命令就是

$\cfrac[位置]{分子}{分母}$

它的意思就是continued fraction.位置处为可选项,表示分子位于分数线的何处,缺省时默认为居中,l(L小写)时居左,r时居右.\cfrac里面还能继续叠加\cfrac,并且默认分子分母字体大小保持一致,下面看一例

上面式子的代码为

$a+\cfrac[l]{1}{b+\cfrac[r]{1}{c+\cfrac{1}{d}}}$

利用宏包amscd画方形交换图

画交换图最简单的方法就是利用AMS-LATEX的宏包amscd,可以画出各种方形的交换图,对于较复杂的交换图可以利用宏包diagrams或Xy-pic。

在调用宏包amscd时,必须现在导言区加上代码
\usepackage{amscd}
举个例子来看
2010-09-26-11
 \begin{CD}
A @>p_1>> B \\
@Vp_2VV       @AAfA  \\
C        @<<g<    D
\end{CD}   

通过这个例子,我们找出其规律,那就是

@>>>,@<<<,@AAA,@VVV

分别表示向左,向右,向上,向下的箭头。如果函数是在第一个>或<后的话,那么函数将会显示在箭头上面,如果函数是在第二个>或<后的话,那么函数将会显示在箭头下面;同样的,如果函数是在第一个A或V后的话,那么函数将会显示在箭头左面,如果函数是在第二个A或V后的话,那么函数将会显示在箭头右面。

数学毕业论文TEX模板

下载

以下是国内某知名大学数学科学学院毕业论文的TEX模板

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5%%%%%%%%%%%%%%%
% 本文档可在安装了CTEX宏包, CTEX字体下的TEX系统运行,
% 访问http://www.ctex.org, 可以获得最新的宏包与字体安装包
%
% 请使用PDFLATEX对模板编译2次, 可得正确结果, 由于hyperref的设置中不支持DVI-PDF,
% 用LATEX编译时需要替换相应的命令, 详见相应注释.
%
% 文档是在原来XX、XX同学的模板的基础上修改的, 主要包括以下几个地方:
%
%1.修正了原模板使用hyperref宏包中的设置, 使文档更加美观, 对设置作出了说明, 可以进一步修改
%2.修正了定理的样式, 原定理标题是黑体加粗, 现改为黑体, 原定理正文为倾斜楷体, 现改为楷体, 符合一般论文的格式
%3.对导言区的少部分命令修改, 删去了一些默认的重复的设置
%4.对模板的少部分正文进行充实
%5.对部分原来模板中的注释进行了修改, 删去了不必要的, 加入了一些中文的注释, 方便查阅
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% documentclass can be ctexart, ctexrep, ctexbook, 推荐使用模板中的CTEXREP
% cs4size - 默认的字体大? ∷?% punct - 对中文标点的位置(宽度)进行调整
% twoside - if you want to print on both side of the paper, or else you should omit this

\documentclass[notitlepage,cs4size,punct,oneside]{ctexrep}

% default paper settings, change it according to your word
\usepackage[a4paper,hmargin={2.54cm,2.54cm},vmargin={3.17cm,3.17cm}]{geometry}

\usepackage{amsmath,amssymb,amsthm}

% 公式编号的计数格式, 在章内计数
\numberwithin{equation}{chapter}

% set the abstract format, need abstract package

\usepackage[runin]{abstract}

%使用hyperref宏包, 对目录, 公式引用, 文献引用做超链接, 超链接方便电子版的阅读, 但不影响打印
% pdfborder对超链接的边框大小进行设置, 模板中默认边框大小为0
% colorlinks=true, 表示超链接对应的文字采用超链接边框的颜色, =false时保持原字体颜色
% linkcolor=blue, 设置超链接边框的颜色, 可以改为red,green等等.
% CJKbookmarks=true, 生成PDF中文书签,
% 非CTEX套装用户可能发现即便如此设置, 生成的PDF书签也是乱码, 需要用GBK2UNI.EXE解决
\usepackage[pdfborder={0 0 0},colorlinks=true,linkcolor=blue,CJKbookmarks=true]{hyperref}
%若要用LATEX编译, 请用下面的命令替代上述命令:
%\usepackage[dvipdfm,pdfborder={0 0 0},colorlinks=true,linkcolor=blue,CJKbookmarks=true]{hyperref}

\setlength{\absleftindent}{1.5cm} \setlength{\absrightindent}{1.5cm}
\setlength{\abstitleskip}{-\parindent}
\setlength{\absparindent}{0cm}

% Theorem style
\newtheoremstyle{mystyle}{3pt}{3pt}{\kaishu}{0cm}{\heiti}{}{1em}{}
\theoremstyle{mystyle}

\newtheorem{definition}{\hspace{2em}定义}[chapter]
% 如果没有章, 只有节, 把上面的[chapter]改成[section]
\newtheorem{theorem}[definition]{\hspace{2em}定理}
\newtheorem{axiom}[definition]{\hspace{2em}公理}
\newtheorem{lemma}[definition]{\hspace{2em}引理}
\newtheorem{proposition}[definition]{\hspace{2em}命题}
\newtheorem{corollary}[definition]{\hspace{2em}推论}
\newtheorem{remark}{\hspace{2em}注}[chapter]
%类似地定义其他“题头”. 这里“注”的编号与定义、定理等是分开的

\def\theequation{\arabic{chapter}.\arabic{equation}}
\def\thedefinition{\arabic{chapter}.\arabic{definition}.}

% title - \zihao{1} for size requirement \heiti for font family requirement
\title{{\zihao{1}\heiti{} 数学学院毕业论文模版}}

\author{作者姓名\\学号:您的学号\\专业:您的专业}

\date{}
%%%%%%%%%%%%%%%%%%%导言区设置完毕
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
%Styles for chapters/section
%若要将章标题左对齐, 用下面这个语句替换相应的设置
%\CTEXsetup[nameformat={\raggedright\zihao{3}\bfseries},%
\CTEXsetup[nameformat={\zihao{3}\heiti},%
titleformat={\zihao{3}},%
beforeskip={0.8cm},afterskip={1.2cm}]{chapter}
\CTEXsetup[nameformat={\zihao{4}\bfseries},%
titleformat={\zihao{4}},%
name={第~,~节},number={\arabic{section}},%
beforeskip={0.4cm},afterskip={0.4cm}]{section}
\CTEXsetup[format={\zihao{-4}\bfseries},%
titleformat={\zihao{-4}},%
number={\arabic{section}.\arabic{subsection}.},%
beforeskip={0.4cm},afterskip={0.4cm}]{subsection}
\CTEXoptions[abstractname={摘要:}]
\CTEXoptions[bibname={\heiti 参考文献}]

\renewcommand{\thepage}{\roman{page}}
\setcounter{page}{1}
\tableofcontents\clearpage

\maketitle\renewcommand{\thepage}{\arabic{page}}
\thispagestyle{empty}\setcounter{page}{0}
%%% 论文的页码从正文开始计数, 摘要页不显示页码
% 撰写论文的摘要
\begin{abstract}
本文介绍XX大学数学科学学院本科生毕业论文的撰写要求,
摘要应当简略地概括你的研究成果以及主要研究方法. 本模板除了给出论文的 \LaTeX 模板,
还根据以往的常见错误给出了一些注意点.

\noindent{\heiti 关键字:} 正文写法, 公式写法, 参考文献写法.
\end{abstract}

\chapter{总论}

这是XX大学数学科学学院本科生毕业论文~\TeX ~版本的模板.

\section{为什么可以使用\LaTeX{}?}
学校要求毕业论文用~Word~撰写. 鉴于数学论文的特殊性, 学校允许
我院学生使用~\TeX~编写毕业论文. 但是, 对于申报校优秀毕业论文的,
也许仍然
需要使用~Word~版本(相应的模板已经给出)\footnote{请上数学科学学院网站下载}.
今年的毕业论文格式就以此为标准. 但是
我们仍然欢迎同学们提供好的建议以便使下一届学生的毕业论文格式更为合理.

\subsection{一些注意事项}
本模板提供的格式应该是数学论文写作中的一些通行格式. 目的是为初学者提供一个选择. 若有与指导老师讲的不一致
之处, 则更可能是我们打印错误, 此时请和教务员联系.

\CTeX 套装的~2.8 版似乎并不稳定. 请大家下载其他稳定的版本.

\subsection{~\TeX~ 资源}
~\TeX~的下载:\href{http://www.ctex.org/HomePage}{http://www.ctex.org/HomePage}

~\TeX~的论坛: \href{http://bbs.ctex.org/}{http://bbs.ctex.org/}

\chapter{正文行文}
\section{文章标题}
使用文章标题样式, 是居中, 黑体, 一号字.

\section{章标题}
使用三号字, 黑体, 居中对齐.

\section{节标题}
使用小三号字, 黑体, 居中对齐.

\section{子节标题}
使用小四号字, 黑体, 靠左对齐.

\section{正文}
使用小四号字, 行距为20磅. 首行缩进两个字符宽. 建议标点符号用半角.
例如句号用``句点". 输入时每个标点后打一个空格.

\section{章节} 如果文章内容较多, 可以采用分章节. 如果内容较少, 可以只用节而不用章. 章节的编号方式(编号类型等的选择)要恰当.

\chapter{公式排版}
这部分介绍如何正确使用公式编排.
\begin{equation}\label{N-L}
F(b)-F(a)=\int^b_a F^\prime(x)\, dx.
\end{equation}

\section{行内公式}
如果~$x=y,y=z$, 那么我们可以推得~$x=z$. 如果式子过长,
应该写成行间公式.

\section{行间公式}
如果~$x=y$, 那么
\(
f(x) = f(y)
\)
但是, 若~$x\neq y$, 我们也不能获得
\begin{equation}\label{E1}
f(x) \neq f(y)
\end{equation}
所以~(\ref{E1}) 不是~$x\ne y$ 的必要条件.

下面是另外的例子:第一个公式不标号, 请注意命令\texttt{\textbackslash
nonumber}的使用:
\begin{eqnarray}
\nonumber W_{i,a}^{\text{new}} & \leftarrow & W_{i,a} \sum_{\mu} \frac{V_{i,\mu}}{(WH)_{i,\mu}} H_{a,\mu} \\
H_{a,\mu}^{\text{new}} & \leftarrow & H_{a,\mu} \sum_{i} W_{i,a} \frac{V_{i,\mu}}{(WH)_{i,\mu}} \label{eq:renewh}\\
W_{i,a}^{\text{new}} & \leftarrow & \frac{W_{i,a}}{\sum_{j}W_{j,a}}
\end{eqnarray}
如果所有公式都不标号, 可以采用下面的环境:
\begin{eqnarray*}
(\arcsin x)^2 &=& \Big( \sum^\infty_{k=0}{C^k_{2k}\over
2k+1}{x^{2k+1}\over 2^{2k}}\Big)^2\\
&=& \sum^\infty_{k=0}\sum^\infty_{j=0}{C^k_{2k}C^j_{2j}\over
(2k+1)(2j+1)}{x^{2k+2j+2}\over 2^{2k+2j}}\\
& =& \sum^\infty_{n=0}\sum_{k+j=n}{C^k_{2k}C^j_{2j}\over
(2k+1)(2j+1)}{x^{2n+2}\over 2^{2n}}\\
& =& \sum^\infty_{n=0}{(2x)^{2n+2}\over 2C^{n+1}_{2n+2}(n+1)^2}.
\end{eqnarray*}

更多公式环境的使用以及一些数学符号的使用可以参考一些\LaTeX 的书籍.
\par 本模板中, 在每章开头, 公式标号重新计数.
一章中, 即使换节, 计数并不重新开始(比较(\ref{N-L}), (\ref{E1})), 请注意
公式编号的引用以及对应的超链接效果.

若各节的公式需要重新编号, 可自行修改, 比如利用命令
\begin{verbatim}
\def\theequation{\arabic{chapter}.\arabic{section}.\arabic{equation}}

(或 \def\theequation{3.2.\arabic{equation}})

\setcounter{equation}{0}
\end{verbatim}
利用以上命令也可以解决诸如引入带撇的编号``3.1.3$^\prime$", 以及回到正常编号的重新编号问题.

\def\theequation{\arabic{chapter}.\arabic{section}.\arabic{equation}}
\setcounter{equation}{0}

上述命令下的公式编号:
\begin{equation}
\lim_{n\to +\infty}\Big(1+{1\over n}\Big)^n=e.
\end{equation}
定义、定理、例子等的编号格式也可以用类似命令.

\chapter{表格和图片}
\begin{table}[htbp]\centering
\begin{tabular}{llll}
\hline\hline
Dataset             & Before      & After     & Percentage \\
\hline
ALL/AML leukaemia   & 7129        & 1038      & 14.56      \\
Breast Cancer       & 24 481      & 834       & 3.41       \\
CNS embryonal tumous& 7129        & 74        & 1.04       \\
Colon tumour        & 7129        & 135       & 1.89       \\
Lung cancer         & 12 533      & 5365      & 42.81      \\
Prostate cancer     & 12 600      & 3071      & 24.37      \\
outcome             & 12 600      & 208       & 1.65       \\
\hline
\end{tabular}
\caption{这是个表格}\label{tab:hh}
\end{table}

如果插图, 可以考虑下面的命令:
\begin{verbatim}
\includegraphics[options]{yourfile}
\end{verbatim}
具体命令参考~graphicx~宏包说明,
值得注意的是用~PDF\, LATEX~编译是不支持插入~EPS~格式图片的,
不过将~EPS~格式图片转换为~PDF~后就可以插入了. 限于条件限制, 本模板不给出插入图片的示例.
\par
论文中的数据图例可以由~MatLab~制作(比如数据模拟图),
一般的图例(含流程图, 交换图等)可由~MetaPost~
或者~Asymptote~作出(当然作图工具不限于此), 限于条件限制,
模板不给出示例.

\chapter{定理环境}

\section{题头}
同一章内定理、引理等``题头"可以采用连续/统一的标号, 这是由模板中的诸如
``\verb+\newtheorem{theorem}[definition]{定理}+ "这样的命令中的``\verb+ [definition]+"选项确定的, 它使所有定理采用和定义统一编号:
\begin{lemma}\label{L1} 对于任何实数$A$, 成立着$A^2\geq 0$.
\end{lemma}

\begin{theorem}\label{T1} 设$A,B$是两个实数, 则$2AB\leq A^2+B^2$.
\end{theorem}

\section{同章另一节的题头}

\begin{corollary}\label{P1} 设$a,b$为两个正数, 则其几何平均不大于其算术平均, 即
$\displaystyle \sqrt{ab}\leq {a+b\over 2}$.
\end{corollary}

\chapter{参考文献的写法}

所有参考文献均用尾注形式列在论文篇末, 内容包括:主要负责人(作者,
编者) 文献题名. 出版地, 出版年份, 起止页码.
(如果文献是期刊杂志内的文章, 则除要列出作者和题名外, 还要注明期刊名,
出版时间, 卷号或期号, 起止页码).

英文出版物见\cite{HTF}, 国际会议见\cite{ZhangC},
英文期刊见\cite{ChenSX}.

中文出版物见\cite{ChenJX}, 中文期刊见\cite{Su}.

建议文献排序按作者姓氏的字母排序, 同一作者的文章按时间先后排列.
英文姓名的写法有先姓后名(\cite{LiT})和先名后姓(\cite{ChenSX})两种写法,
请统一到其中一种.

\textbf{注意``参考文献"不写成论文的一章. }

\chapter*{\heiti 致谢}

请对帮助过你完成论文的老师、同学致谢. 也可以在此对您四年大学生活有重要帮助的人致谢.

\textbf{``致谢"本身不作为一章,致谢内容的字体大小不宜与作为标题的``致谢"两字的大小有很大的反差. 这一点尤其请使用word模板的同学注意. } 一般说来, 杂志论文的致谢在文章正文结束、参考文献前(即本模板中它所处的位置); 学位论文的致谢在最后一页,并宜单独成页; 书籍的致谢在序言结尾.

感谢~2001 级的XX同学和XX同学根据学校关于毕业论文的格式要求于~2005 年设计了本模板.
感谢~2004 级的XX同学在~2008 年对模板进行了修改.

欢迎其他同对模板进行修改, 以适宜新的编译环境等. 特别, 我们欢迎尽量简单的新模板.

相关事宜请和XXX老师或XXX老师联系.

\footnotesize
\begin{thebibliography}{99}
\bibitem{HTF} T. Hastie et al., The Element of Statistical
Learning, Springer Series in Statistics, Springer-Verlag, 2001.
\bibitem{ChenSX} S. Chen, Mach configuration in pseudo-stationary compressible
flow, \emph{J. Amer. Math. Soc.}, 21(2008), no. 1, pp. 63--100.
\bibitem{ZhangC} Junping Zhang, Li He, and Zhi-Hua Zhou, ``Analyzing Magnification Factors
and Principal Spead Directions in Manifold Learning'', in
\emph{Proceedings of the 9th Online World Conference on Soft
Computing in Industrial Applications (WSC9)}, 2004.
\bibitem{ChenJX} 陈纪修,淤崇华, 金路, 数学分析, 高等教育出版社,1999.
%\bibitem{ChenHong} 陈恕行, 洪家兴, 偏微分方程近代方法, 复旦大学出版社, 1988.
\bibitem{Su} 苏步青,数学教育与应用数学问题, 数学通报, 1988, (2): 1--2.
\bibitem{LiT} Li, T. and Chen, Y., Global classical solutions for nonlinear
evolution equations, Pitman Monographs and Surveys in Pure and
Applied Mathematics, 45, Longman Scientific \& Technical, Harlow.
\end{thebibliography}

%\bibliographystyle{plain}
%\bibliography{../ml}
\end{document}

Tex一点小技巧

  • 怎样把C++等代码写入Tex文件里.

 documentclass{article}
begin{document}
begin{verbatim}
#include <iostream>
int main()
{
std::cout << 'Hello, world!' << std::endl;
return 0;
}
end{verbatim}
end{document}

 

  • 如何获得eps格式的图片.   

 就是将图片通过Visio转换为pdf格式的图片,然后用Acrobat直接存为eps,这样出来的就是高质量图片了,任意放大,一点问题都没有。好了,我得到了一个很清晰的图。但是问题又来了:图片的上下端空白怎么去掉?否则插到paper里面很难看的,也是无法忍受的。一种很简单的方法——Adobe Acrobat Prefessional 里面的“文档”里有个“裁剪页面”选项,OK,这个东西可以帮你搞定一切了。

 

  • 关于设置目录的颜色.

    documentclass{article}
    usepackage{color}
    makeatletter
    renewcommandtableofcontents{%
    section*{contentsname
    @mkboth{%
    MakeUppercasecontentsname}{MakeUppercasecontentsname}}%
    {color{red}%
    @starttoc{toc}}%
    }
    makeatother
    begin{document}
    tableofcontents
    section{Change}
    section{Color}
    end{document}

  •  I,II,III,IV的输入.  

    经常有人问:

    I,II,III,IV,用什么命令啊?

    其实很简单就是

    MakeUppercase{romannumeral1}
    MakeUppercase{romannumeral2}
    MakeUppercase{romannumeral3}
    MakeUppercase{romannumeral4}

用LaTeX写漂亮学位论文

 序

一直觉得有必要写这样一篇文章,因为学位论文从格式上说更像一本书,与文章的排版不同,不仅多出目录等文章没有的部分,而且一般要设置页眉页脚方便阅读查找。学校有时会提出具体的格式要求,虽然复旦的要求非常简单,而且事实上并不严格执行,但自己的论文毕竟是自己的孩子,还是要敝帚自珍的,大家都希望做得漂亮一点。

网上已经有不少学位论文的模板,其中大都出自一两个最初的版本,针对各自学校的要求作了一些改动。这些模板还是很方便的,如果对它们的排版效果感到完全满意,那么直接拿来用就可以了。不过如果想调整其中某些格式,就不得不仔细研究一下它们的代码或说明文档,有时并不那么容易。而且这些模板的导言或cls或sty文件都写得很长,内容很多,尽可能的包含了大家有可能用到的功能,但其实具体到每个人只有一部分是需要用到的。用一个包含“冗余”代码的模板,总不是一件很舒服的事情。当然也许很多人抱着能用就好的态度,并不care。:)

本文是为那些对论文格式有特殊要求或喜欢自己设置格式的人写的。如果你觉得网上能找到的论文模板已经足以满足你的需要,并且对TeX本身也没有多少兴趣,那么你没有必要花费宝贵的时间阅读本文。

阅读本文的基础是假定你已经了解怎样用LaTeX来写普通的文章。一般的TeX/LaTeX命令不会再作解释,重点将放在学位论文与普通文章的不同点上,以及怎样用一些宏包方便地设置其格式。其中大部分内容来源于网络资源、工具书以及各个宏包的说明文档,恕不一一注明,在此一并致谢!

 一

首先讲一下纸张大小和页边距的设置。根据复旦的格式要求,纸张大小为A4纸,正文用小四号字,页边距按Word中的默认设置。小四号字即12pt, Word中默认的页边距为

上边距=2.54cm, 下边距=2.54cm, 左边距=3.17cm, 右边距=3.17cm

或者换算成更容易记忆的

上边距=1in, 下边距=1in, 左边距=1.25in, 右边距=1.25in

如果我们用book类,第一句可以写

\documentclass[a4paper,12pt]{book}

然后用geometry宏包设置页边距

\usepackage[top=1in,bottom=1in,left=1.25in,right=1.25in]{geometry}

但其实这样设置的页边距极不美观,尤其是左右对称的页边距没有考虑装订的需要,而且加上页眉后这样的上边距就显得过窄。所以注重美观的话还是自己调整一下吧。

需要注意的是,book类默认是twoside即双面打印模式,与article类默认的oneside即单面打印模式不同。两者区别在于页边距和页码的位置。单面模式每页的页边距都相同,双面模式则会在偶数页将设置的左、右页边距调换。如果采用单面打印,则可在\documentclass的方括号里加上oneside参数,并在geometry的选项中适当增加左边距,减少右边距,以留出装订线的位置。但是不要忘了装订的时候右侧一般会裁掉一点边,所以左、右边距也不要相差过大。如果采用双面打印,则geometry中的设置被解释为奇数页的页边距,偶数页的左、右边距会自动互换。

还有几个注意事项。首先,这里的奇数页和偶数页是针对当前page计数器的值来说的,而不是在生成文件中总的页码。也就是说,假如当前页在整个输出中总排序是偶数页,但当前page计数器(即显示的页码)为奇数,则当前页的页边距是按奇数页设置的。

其次,\documentclass还有一对选项openright和openany, book类默认是前者,即每一章(包括目录)都会在奇数页开始,如果前一章的最后一页是奇数页,则会在其后插入一页空白页,以确保新的一章仍然从奇数页开始。这是书籍的排版规范,不建议改变,论文页数比较少的还可以借此增加页数。:)这是双面模式的情况,在单面模式下不存在这个问题。经常有人问为什么自己明明是单面打印,却仍然会在两章之间有一页空白页,请注意book类默认是双面模式,除非你设为oneside, 记住告诉TeX你要的是什么!

另外,为了方便查看,页码应该放在书籍的外侧。对于单面模式,外侧就是右侧,而对于双面模式,奇数页右侧是外侧,偶数页左侧是外侧。如何设置页码留到后面讲设置页眉、页脚时再详细说。

至于到底是单面打印还是双面打印,看你自己的喜好了。复旦的论文规范没说,一般的做法是博士双面、硕士单面。反正总页数少于50页的话,就不要双面了,否则显得太单薄,书脊的内容都很难打印。

最后提一个常见的问题。如果用pdf文件来打印,在Acrobat的打印对话框里有一项PageScaling默认是Fit to paper, 这样打印出来整个内容就会缩小一些,不再是设置的尺寸。这是因为打印机的可打印范围不能达到整个A4纸张的全部,而是比A4纸的规格要小一些(具体的可打印范围跟打印机型号有关), Fit to paper的意思就是把整个页面调整到可打印范围上去,以保证所有页面上的内容都能打印出来。因为可打印范围总是小于A4纸的尺寸,所以打印出来总是会缩小一些。缩小的比例一般为95%左右,与打印机型号有关。解决这个问题,只要选择Page Scaling为None就可以了。 

这一节讲中文字体和中英文混排的问题。中文处理推荐使用CJK或新版CCT, 旧版CCT因为年代久远,有一些bug会导致莫名其妙的问题,不建议再使用。本文以CJK为例,中文环境为

\begin{CJK*}{GBK}{song}
...
\end{CJK*}

与英文习惯不同,中文排版一般没有粗体的概念,而是用宋体、黑体、楷体、仿宋等不同的字体来加强文本效果。在CJK默认的字体定义文件中,宋体对应的粗体是用\CJKbold命令通过微小平移字形来实现的,不仅放大后能看到锯齿,而且也不符合中文的排版习惯。建议将宋体对应的粗体设为黑体,这样文中所有粗体命令作用的环境中加粗的宋体都会自动变成黑体,不需要再用\CJKfamily{hei}来转换。

宋体的字体定义文件C19song.fd里典型的一段代码如下

\DeclareFontFamily{C19}{song}{}
\DeclareFontShape{C19}{song}{m}{n}{<-> CJK * gbksong}{}
\DeclareFontShape{C19}{song}{bx}{n}{<-> CJKb * gbksong}{\CJKbold}
\DeclareFontShape{C19}{song}{m}{it}{<-> CJK * gbksongsl}{}
\DeclareFontShape{C19}{song}{bx}{it}{<-> CJKb * gbksongsl}{\CJKbold}
\DeclareFontShape{C19}{song}{m}{sl}{<-> CJK * gbksongsl}{}
\DeclareFontShape{C19}{song}{bx}{sl}{<-> CJKb * gbksongsl}{\CJKbold}

这里C19代表GBK字符集的编码方式,m表示字符的粗细程度和宽紧程度均为中等(medium), bx表示字符的属性为粗(bold)和松(expanded), n, it和sl分别表示正常直立体(normal), 意大利斜体(italic)和机械斜体(slanted)。\DeclareFontShape的最后两个参数分别是字体定义和命令序列。显然,上述语句将宋体的粗体定义为用\CJKbold生成。要将其改为黑体,只需将这段代码改为

\DeclareFontFamily{C19}{song}{}
\DeclareFontShape{C19}{song}{m}{n}{<-> CJK * gbksong}{}
\DeclareFontShape{C19}{song}{bx}{n}{<-> CJKb * gbkhei}{}
\DeclareFontShape{C19}{song}{m}{it}{<-> CJK * gbksongsl}{}
\DeclareFontShape{C19}{song}{bx}{it}{<-> CJKb * gbkheisl}{}
\DeclareFontShape{C19}{song}{m}{sl}{<-> CJK * gbksongsl}{}
\DeclareFontShape{C19}{song}{bx}{sl}{<-> CJKb * gbkheisl}{}

实际上,正式的中文排版也不应使用斜体,而应使用楷体或仿宋代替。所以也可以类似地将上述语句中的gbksongsl改为gbkkai或gbkfs。

上述字体定义命令可以放在sty文件中(设保存文件名为thesis.sty , 则在导言区用 \usepackage{thesis} 引用,后面所述的大部分命令也都可以放在sty文件中), 而不需要 更改本地机器上的fd文件,以便在别的机器上也能产生同样的效果。

另外,为了方便可以定义几个简短的字体转换命令

\newcommand{\song}{\CJKfamily{song}}
\newcommand{\hei}{\CJKfamily{hei}}
\newcommand{\kai}{\CJKfamily{kai}}
\newcommand{\fs}{\CJKfamily{fs}}

以后就可以用\song, \hei, \kai和\fs在文中转换字体了。

在用\begin{CJK*}{GBK}{song}开始中文环境后,应加上\CJKindent 和 \CJKtilde 两句。 前者将段首缩进设为两个中文字符的宽度。后者则是为了解决中英文混排的美观问题。CJK*环境会吞掉跟在汉字后面的空格,从而使得源文件中的换行不会在相邻汉字之间产生空白。但是这样一来,像下面这样输入的中英文内容

中文 abc 中文

就会产生如下效果

中文abc 中文

即abc两侧的空白不一样,很不美观。为解决这个问题,\CJKtilde重新定义了波浪符~的意义,使得这个符号不再代表一个不可断行的空格,而是一个可断行的弹性距离,加在中文和英文之间调整它们的距离。上面的中英文内容应该这样输入

中文~abc~中文

就能得到良好的效果。这个输入方式最好一开始就形成习惯,否则后来再加会很麻烦。当然你也可以这样输入

中文abc中文

这样的话虽然中英文之间的距离太窄,但至少左右对称,比上述第一种方式略好,是偷懒的办法。不过如果你比较在意排版质量的话,还是忍受一下输入~的麻烦吧。

中英文混排有一些标点的问题要处理好。首先是在默认的CJK环境里,行末的中文标点不能与边界对齐,因为中文标点也被视为一个普通的全角字符,所以看起来行末就有了不应该有的空白,这不符合中文的排版习惯。另外,当一行文字需要压缩或拉伸时,逗号与句号也应该区别对待,逗号后面留的空白应该比句号小一些。这两个问题用CJKpunct宏包就能很好地解决,只要加上\usepackage{CJKpunct} 即可。

此外,中英文混排的时候是用中文标点还是英文标点呢?这并没有统一的规范。不过比较合理也比较通行的做法是,中文后用中文标点,英文后用英文标点。比较特殊的两个标点是句号和括号。一般数学文章习惯用全角的实心句点作为中文句号,这样看起来与英文的句号比较一致。全角的中文括号看起来不太好看,可以统一使用英文的括号,不过左括号前面和右括号后面最好加上波浪符~以和前后的文字留出适当的距离。

上面说的这几点也许比较琐碎,不过也正是最能看出是否精心排版的地方。 

下面几节讲怎样用titlesec和titletoc宏包设置章节标题、页眉页脚和目录的格式。设置页眉页脚有一个很有名的宏包fancyhdr也可以用,不过titlesec提供的页面设计命令更方便与它的章节标题命令配合,功能更强大。这一节先讲章节标题格式的设置。

在引用titlesec宏包时就可以指定几个格式选项,例如

\usepackage[bf,small,center,indentafter,pagestyles]{titlesec}

其中bf设置章节标题的字体为黑体,这也是默认值,可以略去。此外,还可以设为rm(罗马体), sf(无衬线体), tt(打字机体), md(中等黑度), up(直立体), it(意大利斜体), sl(机械斜体), sc(小体大写字母)。

small设置标题字体的尺寸,还可设为big(默认), medium, tiny。

center使标题居中,还可以设为raggedleft(居左,默认), raggedright(居右)。

indentafter相当于宏包indentfirst的作用,使标题下面的第一个段落正常缩进。

pagestyles是申明后面要自定义页面样式。

下面就可以用\titleformat, \titlespacing, \titlelabel等命令来设置标题格式了。因为这些命令里会用到中文,所以要在设置之前放一个空的CJK环境,如

\begin{CJK*}{GBK}{song}
\end{CJK*}

下面的\titleformat命令设置了章标题的格式

\titleformat{\chapter}[hang]{\centering\LARGE\bfseries}{\chaptername}{1em}{}

其中\chapter可以换为\section, \subsection等,设置节、小节等标题的格式。

hang表示标题头与标题内容在同一行,是默认值。而book类默认的章标题是标题头与标题内容放在两个段落,对应于display选项。此外还有block, runin, leftmargin, rightmargin, frame, wrap等选项,一般不大用到。

\centering\LARGE\bfseries这一块是设置标题的排版格式,这里设置为居中、\LARGE尺寸和黑体。

后面紧跟的是标题头的定义。book类里的标题头是英文,需要改成中文。如果希望改成“第一章”这样的格式,则应先引用CJKnumb 宏包,它提供了把阿拉伯数字转换成中文数 字的命令。然后定义

\renewcommand{\chaptername}{第\CJKnumber{\thechapter}章}

那么\titleformat里的标题头定义\chaptername就得到我们希望的效果。当然你也可以不用中文数字而用阿拉伯数字,即定义

\renewcommand{\chaptername}{第~\thechapter~章}

跟在标题头定义后面的是标题头与标题内容之间的距离,这里是1em。注意,在中文环境里1em等于一个汉字的宽度。

最后一个花括号内是在排版标题前执行的命令,这里空置。

然后用\titlespacing或\titlespacing*命令设置标题与四周的距离,例如

\titlespacing{\chapter}{0pt}{*0}{*4}

将章标题与左边、上边、下边内容的距离分别设为0pt, *0, *4。这里*n表示弹性距离,对上距离来说相当于n ex plus .3ex minus .06ex, 对下距离来说相当于n ex plus .1ex。弹性距离因为有一定的伸缩自由度,比较容易得到美观的排版。如果想自己指定用关键字plus, minus定义的弹性距离,可以用星号版本的命令,即

\titlespacing*{命令}{左距离}{上距离}{下距离}

上面设置了章标题的命令,用相同的命令也可以设置节、小节等的标题格式。但如果没有特殊的要求,只希望修改一下标题头,可以用更加简单的命令\titlelabel来设置。例如

\titlelabel{\S\thetitle\quad}

将章节标题设置为类似“§1  标题内容”的格式。这里\quad等于\hspace{1em}, 即空出一个汉字宽度的距离。注意,\titleformat命令的定义会覆盖\titlelabel的定义,而一般来说章跟节标题的格式不一样,所以只要另外用\titleformat命令定义章标题的格式,\titlelabel的定义就只能作用于节以下层次的标题了。 

这一节接着讲怎样用titlesec宏包提供的命令设置页眉、页脚。下面命令定义了一个新的页面样式并使用该样式

\newpagestyle{main}[\small\kai]{
\sethead{}{}{\ifthechapter{\chaptername\quad}{}\chaptertitle\qquad\thepage}
     \setfoot{}{}{}\headrule}
\pagestyle{main}

其中方括号内的格式设置\small\kai是对整个样式的定义都有效的。在后面的定义中用\sethead命令设置页眉,格式为

\sethead[偶数页左页眉][偶数页中页眉][偶数页右页眉]
     {奇数页左页眉}{奇数页中页眉}{奇数页右页眉}

单面打印模式只要给出奇数页的设置即可,双面模式则需要将左、右页眉做个调换。上面给出的例子是单面模式的。对应地在双面模式下可以写为

\sethead[\thepage\qquad\ifthechapter{\chaptername\quad}{}\chaptertitle][][]
     {}{}{\ifthechapter{\chaptername\quad}{}\chaptertitle\qquad\thepage}

\setfoot用来设置页脚,格式与\sethead类似。

在页眉、页脚里可以显示章节标题、页码等内容。如上面的例子就在页眉中显示了章标题和页码。注意,\qquad相当于两个\quad, 即\hspace{2em}。

\headrule是划出页眉线,类似地\footrule划出页脚线,不过比较少用。默认页眉线的宽度是0.4pt, 如果不满意,可以用下面命令重新设置其宽度

\setheadrule{宽度}

最后,上面的代码中用到了一个判断语句\ifthechapter, 是为了解决在目录、参考文献或以\chapter*命令生成的章,标题头\chaptername不应显示的问题。

此外,关于页面样式还有两点需要注意。首先,尽管在上面例子中用\pagestyle{main}使用了自定义的页面样式,但每一章的第一页不受影响,仍然使用默认的plain样式。在这种页面上,出于美观的考虑,一般不加页眉,而将页码放在页脚(也有人喜欢不加页码)。所以plain样式(没有页眉,页码放在页脚中间)已经基本符合要求,不必修改。如果需要修改,可定义一个新的页面样式,再用下面命令重定义plain样式

\renewpagestyle{plain}{新的页面样式}

其次,在双面模式下,如果一章的最后一页落在奇数页上,系统就会自动在其后补上一个空白页,以使新的一章总是从奇数页开始。但是这多加上的空白页却仍是有页眉页脚的!这显然很不好看,为了让它彻底地“空白”,我们可以重定义\cleardoublepage(加入空白页的动作就是由这条命令来完成的)如下

\makeatletter
\renewcommand\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else
\hbox{}\thispagestyle{empty}\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi}
\makeatother 

目录是学位论文的必要组成部分。只要在正文中适当的地方用

\tableofcontents

就可以自动生成目录。但是目录的格式不总是符合个人的要求,有时还要往其中加一些条目。用titletoc宏包提供的命令可以方便地设置目录的格式。

首先可以用

\renewcommand{\contentsname}{目\quad 录}

将目录部分的标题改为中文。然后,用\titlecontents命令来设置不同级别目录项的格式。例如,chapter层次的目录项格式可设置如下

\titlecontents{chapter}[0pt]{\vspace{.5\baselineskip}\bfseries}
     {第\CJKnumber{\thecontentslabel}章\quad}{}
     {\hspace{.5em}\titlerule*[10pt]{$\cdot$}\contentspage}

其中0pt是目录项到版芯左边界的距离。紧跟其后的是在排版目录项之前执行的命令,这里\vspace{.5\baselineskip}表示与上文留出一定的垂直距离,该距离为当前单倍行间距的一半。\bfseries把整条目录项的字体设为黑体。

后面一项是设置目录项的头部,这里设为“第一章”这样的格式,并在其后留出一个汉字宽度的距离。紧跟的是设置目录项主体的格式,这里因为跟目录项头部相同而空置。

再后面是设置填充命令和页码。这里先用\hspace{.5em}在目录项内容后面留出一点空白,以免跟其后的填充点靠得太近。然后用\titlerule*命令画出填充点,这里是把垂直居中的实心圆点作为填充符号(习惯上中文不采用居下的填充点), 并以10pt为包含一个填充符号的水平盒子的宽度,即这个宽度越小,填充点越紧密。填充点后加上页码
\contentspage。

类似地可以设置section层次的目录项格式如下

\titlecontents{section}[2em]{\vspace{.25\baselineskip}}
     {\S\thecontentslabel\quad}{}
     {\hspace{.5em}\titlerule*[10pt]{$\cdot$}\contentspage}

其中2em表示section层次的目录项距左边界有一个缩进。如果还有subsection等层次,可以类似地定义。

但是\chapter*, \section*等命令生成的标题不会自动进入目录中。例如中文摘要部分如果用下面命令开始

\chapter*{摘\quad 要}

那么可以紧跟其后加上

\addcontentsline{toc}{chapter}{中文摘要}

就可以将中文摘要作为一个chapter层次插入目录中。英文摘要、参考文献部分均可照此处理。随便提一下,参考文献部分的标题可用如下命令改为中文

\renewcommand{\bibname}{参考文献} 

这一节讲前几节尚未提到的一些文本排版问题。

首先是行间距的设置。学校的学位论文规范中提到行间距为20pt。其实不同尺寸的字体行间距都不相同,而是成比例关系。这个20pt是对正文主要字体来说的。在TeX中基本的行间距是\baselineskip, 对于12pt的字体,这个值等于14.5pt, 而真正的行间距是

\baselineskip * \baselinestretch

\baselinestretch默认为1, 但我们可以重新设置它的值,如

\renewcommand{\baselinestretch}{1.38}

就得到真正的行间距为14.5pt*1.38≈20pt。而这样定义之后,对不同尺寸的字体都会按同样的比例因子1.38放大行间距,使得全文排版能协调一致。

那么\baselineskip的值是怎么知道的呢?在TeX源文件中加上命令

\showthe\baselineskip

编译时就会暂停下来显示当前字体的\baselineskip值。用这个方法可以知道,10pt字体对应的\baselineskip为12pt, 11pt字体对应的\baselineskip为13.6pt。

至于通常所说的1.5倍行间距和双倍行间距,一般理解为字体基准尺寸的1.5倍和2倍,例如对于12pt字体, 1.5倍行间距和双倍行间距分别应为12pt*1.5=18pt, 12pt*2=24pt。那么\baselinestretch分别应设为18pt/14.5pt≈1.24, 24pt/14.5≈1.66, 而不是1.5和2, 那样的话行间距就会显得过大了。

然后讲一下论文首页的设置。复旦的学位论文,装订的地方会按学校的模板制作封面,就不用自己做了,不过规范中要求在扉页注明指导小组成员名单,并且为了保持论文电子版的完整性,最好还是做一个简单的论文首页(标题页)。

没有必要用\title, \author和\maketitle等命令自动生成论文的标题,因为那可能不太符合你的要求。只要用

\begin{titlepage}
标题页内容
\end{titlepage}

在标题页内容中用上一些center环境、\vspace*和字体选择命令就可以很容易地设计出自己想要的格式了。

注意,上述标题页是没有页码的。而一般正文之前的部分,包括目录、摘要等,习惯上采用与正文部分不同的页码格式,如用罗马数字表示,而从正文第一页开始用阿拉伯数字重新开始计算页码。要做到这一点,只要在标题页后加上

\frontmatter 或 \pagenumbering{roman}

并在正文第一章前加上

\mainmatter 或 \pagenumbering{arabic}

就可以了。但是推荐使用\frontmatter和\mainmatter, 因为这两个命令的用处不仅限于此。前面说过,像中文摘要这种非正文的部分,可以用\chapter*命令加入,但当设置了页眉后就会发现一个问题,页眉中的\chaptertitle没有同步更新。要解决这个问题,一个办法是在\chapter*命令后加上一句\chaptermark, 例如

\chapter*{摘\quad 要}\chaptermark{摘\quad 要}

但假如我们使用了\frontmatter, \mainmatter以及与其配套的\backmatter, 就不需要这么麻烦,只要直接用不带星号版本的\chapter命令就可以了,对于\frontmatter与\mainmatter之间的部分,以及\backmatter之后的部分,系统就会自动地跟正文部分的章区别开来,不加上“第一章”这样的章标题头。一个典型的文档结构示例如下

\begin{document}

\begin{titlepage}
标题页内容
\end{titlepage}

\frontmatter     % 开始正文之前的部分
\tableofcontents     % 自动生成目录

\chapter[中文摘要]{摘\quad 要}
% 方括号中是在目录中显示的内容,相当于前面使用的\addcontentsline
中文摘要内容

\chapter[英文摘要]{Abstract}
英文摘要内容

\mainmatter      % 开始正文部分
\chapter{第一章标题}
第一章内容

\backmatter      % 开始正文之后的部分
\begin{thebibliography}{99}\addcontentsline{toc}{chapter}{参考文献}
参考文献内容
\end{thebibliography}

\chapter[致谢]{致\quad 谢}
致谢内容

\end{document} 

到这里文本排版讲得差不多了。这一节再讲讲定理和证明环境的格式设置。

数学论文里经常使用大量的定理环境。LaTeX默认的定理环境已经不能满足要求,amsthm宏包提供了方便的命令用于设置定理环境的格式。例如下面的命令定义了一个定理样式mythm, 并用它来定义一些常用的定理环境

\newtheoremstyle{mythm}{1.5ex plus 1ex minus .2ex}{1.5ex plus 1ex minus .2ex}
     {\kai}{\parindent}{\song\bfseries}{}{1em}{}
\theoremstyle{mythm}
\newtheorem{thm}{定理~}
\newtheorem{lem}{引理~}
\newtheorem{prop}{命题~}
\newtheorem{cor}{推论~}
\newtheorem{defn}{定义~}
\newtheorem{conj}{猜想~}
\newtheorem{exmp}{例~}
\newtheorem{rem}{注~}

我们解释一下\newtheoremstyle命令里各项参数的意义。样式名称之后的两个长度分别表示定理与上、下文之间的距离,这里均设为弹性距离。\kai是设置定理内容的字体。\parindent是设置定理首行的缩进,在前面使用了\CJKindent的情况下,它就等于2em。

紧随其后的\song\bfseries是设置定理头部即类似“定理 1”部分的格式,一般中文使用黑体。因为我们在前面已经将宋体对应的粗体定义为黑体,所以这里将中文字体设为宋体,再用选择粗体命令\bfseries, 就同时把中文变为黑体,英文变为粗体了。注意,如果前面没有修改字体定义文件,而在这里用\hei改变字体,再加上\bfseries就很可能会造成“黑上加黑”即黑体的加粗,这种拙劣的文本效果是不应该出现的。

这之后的参数是设置紧跟定理头部的符号,英文中常设为一句点,而中文习惯不加任何符号,所以这里空置。然后是设置定理头部与定理内容之间的空白距离,这里设为1em, 即一个汉字的宽度。

最后一项是对定理头部的补充说明,这里空置。但如果我们希望得到类似“定理 1 (存在性定理)”这样的定理头部,那么可以再定义一种定理样式

\newtheoremstyle{specthm}{1.5ex plus 1ex minus .2ex}{1.5ex plus 1ex minus
     .2ex}{\kai}{\parindent}{\song\bfseries}{}{1em}{\thmnote{#3}}

这里最后一项\thmnote{#3}表示用方括号中的附加内容作为定理头部。用此样式定义一个新的定理环境(与前面定义过的thm环境统一编号)

\theoremstyle{specthm}
\newtheorem{sthm}[thm]{}

并在正文中使用

\begin{sthm}[定理~\thethm~(存在性定理)]
定理内容
\end{sthm}

就得到了想要的效果。

至于证明的排版,amsthm宏包提供了proof环境,但格式需要做一点调整。amsthm.sty中对proof环境的定义如下

\newenvironment{proof}[1][\proofname]{\par
     \pushQED{\qed}%
     \normalfont \topsep6\p@\@plus6\p@\relax
     \trivlist
     \item[\hskip\labelsep
         \itshape
       #1\@addpunct{.} ]\ignorespaces
}{%
     \popQED\endtrivlist\@endpefalse
}

为了符合一般中文证明环境的排版习惯,可以重新定义proof环境为(注意,因为这些命令含有@字符,所以需要在前、后分别加上\makeatletter和\makeatother)

\makeatletter
\renewenvironment{proof}[1][\proofname]{\par
     \pushQED{\qed}%
     \normalfont \topsep6\p@\@plus6\p@ \labelsep1em \relax
     \trivlist
     \item[\hskip\labelsep\indent
         \bfseries #1]\ignorespaces
}{%
     \popQED\endtrivlist\@endpefalse
}
\makeatother

并且重新定义\proofname为

\renewcommand{\proofname}{证明}

proof环境会自动在证明最后一行的最右边加上一个证明结束符,默认为空心方块,可以重新定义\qedsymbol来修改它。需要注意的是,当证明以一个独立公式结束时,证明结束符会出现在下一行的最右边,而不是在公式的同一行上,这不合乎习惯。这时只要在公式环境内加上\qedhere即可。 

最后还要讲讲浮动图形和表格环境的中文化。首先把Figure和Table改为中文

\renewcommand{\figurename}{图}
\renewcommand{\tablename}{表}

然后需要对浮动环境的标题格式做一点修改。在book.cls中可以找到如下定义

\long\def\@makecaption#1#2{%
   \vskip\abovecaptionskip
   \sbox\@tempboxa{#1: #2 }%
   \ifdim \wd\@tempboxa >\hsize
     #1: #2 \par
   \else
     \global \@minipagefalse
     \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
   \fi
   \vskip\belowcaptionskip}

这段代码包括了一个判断选择结构,如果标题超过一行则直接显示,否则在一行内居中显示。可以不理会这个,只要根据自己的格式要求修改#1(即\figurename或\tablename)和#2(标题内容)的格式,以及#1与#2之间的分隔符。例如,如果希望把#1改为黑体,并把分隔符改为一个空格,可以这样设置

\makeatletter
\long\def\@makecaption#1#2{%
   \vskip\abovecaptionskip
   \sbox\@tempboxa{{\bfseries #1}\quad #2 }%
   \ifdim \wd\@tempboxa >\hsize
     {\bfseries #1}\quad #2 \par
   \else
     \global \@minipagefalse
     \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
   \fi
   \vskip\belowcaptionskip}
\makeatother                          

结束语

 

到这里,每个人都需要知道的东西已经基本上介绍完了。如果你仔细读了这些文字,并且按照它去设置了你的论文格式,我想应该差不多了。当然,不同学科的论文有各自的特点和要求,肯定还有很多具体的问题没有涉及。 希望费了不少时间写的这些东西能对大家有所帮助。最后,祝大家TeX越用越熟练,都能写出漂亮的论文!

 
 

 

【转】http://bbs.fudan.edu.cn/bbs/0an?path=/groups/sci.faq/TeX/faq/thesis