|TeX各版本概述及基本约定,特殊字符|
+---------------------------------+
tex提供300多条基本排版命令
由D.E.Knuth1978年开发
plain tex:在tex基础上新定义600多条复合命令
AMS-TEX:美国数学会开发(amsmath宏包)排版的数学公式
LATEX:L.Lamport(1985)编写,适合排版普通文章和书籍
LATEX2e:可加载amsmath宏包,目前最流行的TEX宏包
版本:LATEX2.09-->LATEX2e-->LATEX3(开发中)
中文排版:
CCT:科学院张林波
TY(天元):华师大肖刚、陈志杰教授开发
CJK:德国W.Lemberg开发,处理中日韩三国文字。
发行版CTEX:集成了CCT,TY,CJK的MikTEX系统。
ChinaTEX:内容涵盖MiKTeX系统及中文支持、常用外围软件、TeX\LaTeX文档和模板选萃等
TeX中的长度
mm毫米
cm厘米
in英寸=2.54cm=72.27pt
pt点
em大写字母M的宽度
ex小写字母x的高度
弹性长度:根据需要自动伸缩
正常值plus伸展值minus收缩值
实际长度可超过正常值和伸展值之和,但不能小于正常值和收缩值之差
\documentclass[11pt]{article}%11pt字体,普通文章
%导言区,全局命令
\usepackage{CJK}%使用CJK宏包
\begin{document}%主环境
\begin{CJK}{GBK}{song}%汉字必须放入CJK环境
%其它字体:song,kai,fs,hei,li,you
%CJK的两种环境CJK和CJK*
%GBK是采用的字符集:GB,GBK,Bg5,Gbt
Hi,This is my first \LaTeX file
祝贺你,MikTex和CJK安装成功了
\end{CJK}
\ent{document}
CJK和CJK*环境之间的切换
\CJKspace和\CJKnospace
\CJKtilde 重新定义~的长度
基本约定
分组{......}
注释符:%
西文标点后要加空格
各种环境的开始和结束命令最好独占一行
换行:连续两个回车,一个仅为空格
输入特殊字符
前加\的有:#$%{}~_^&
\=\textbackslash
|,<,>=$|$,$<$,$>$,$*$(中间星)
*=*上面星
特殊符号\s \p \dag \ddag \copyrigh版权号,\pounds 磅
\TeX \LaTeX \LaTeXe \AmS-\LaTeX(最后这个要amsmath宏包)
单引号:`'(1键前面的)
双引号:``"
+------------------------------+
|段落、行距、水平间距、缩进命令|
+------------------------------+
强制分行:\\或\\*[和下行间距离]、\newline
建议分行:\linebreak[0-4,数越大建议力度越大]
\linebreak增加字间距,强制换行
\nolinebreak[n]建议不分行
\mbox{内容}内容保持在同一行
分段:\par,或两个回车
分页:自动分页
强制分页:\newpage
建议分页:\pagebreak[n],\nopagebreak[n]
增加当前页高度有时可以避免难看的分页
\enlargethispage{尺寸}可增加的最大高度
\enlargethispage*{尺寸}指定增加高度
水平间距:
\quad 插入空白相当于当前字体大小
\qquad=\quad×2
\ ,=\quad×3/18
~=???好象比\ 小
\hspace{宽度大小},\hspace*{宽度大小}
\hfill弹性长度:hspace{\hfill}插入空白,撑满整行
\hphantom{文本内容},占据文本内容的宽度
\vphantom[文本内容},\phantom{文本内容}
导引线:\dotfill,\hrulefill
垂直间距:
\vspace{高度}和\vspace*{高度}
\vfill:相当于\vspace{\fill}
\smallskip:-->\vspace{\smallskipamount}
\medskip:-->\vspace{\medskipamount}
\bigskip:-->\vspace{\bigskipamount}
段落首行缩进:
\setlength{\parindent}{2em},2个M
\setlength{\parindent}{0pt},首行不缩进
\CJKindent:两个汉字
\indent与\noindent
每节的第一段首行不会自动缩进
\hspane{\parindent}
在导言区加入:\usepackage{indentfirst}
段落间距:\lineskip+\parskip
可用\setlength修改以上值
行距:
\baselineskip:相邻两行基线间距离
\baselinestretch:伸展因子
修改改变行距:\renewcommand{\baselinestretch}[1.2]
放在\begin{document}之后,字体尺寸改变时才生效
+----------------------------------+
|西文字体属性、及中文字体属性、命令|
+----------------------------------+
字体有5种属性
族:
\rmfamily:罗马字体
\sffamily:无衬线字体
\ttfamily:打字机字体
形状:(shape)直立斜
\upshape:直立
\itshape:意大利斜体
\slshape:斜体
\scshape:小体大写
系列:(series)宽度黑度
\mdseries:中等权重(黑)
\bfseries:粗体
\normalfont:默认字体,中等权重直立罗马字体
西文尺寸:10pt,11pt,12pt
\em强调,一般为斜体
以上命令称为声明(无参数)
每一声明对应字体命令
命令只对其参数中的文本起作用
族:
\testrm{},\testsf{},\testtt{}
形状
\textup{},\textit{},\textsl{},\textsc{}
系列
\textmd{},\textbf{}
默认值:\textnormal{}
强调:\emph{}
定义了基本尺寸后,可使用下面的声明来改变字体
\tiny 5pt
\scriptsize 7pt
\footnotesize 8pt
\small 9pt
\normalsize 10pt
\large 12pt
\Large 14.4pt
\LARGE 17.28pt
\huge 20.74pt
\Huge 24.88pt
以上尺寸是基本尺寸为10pt时的大小
所有西文字体命令对中文同样起作用
italic和slanted斜体对中文一样
中文书籍基本字号为5号约等于11pt
使用GBK编码时,可同时输入简繁体。
自定义字体大小
\fontsize{字体尺寸}{行距}后面须加上\selectfont才生效
可得到任意大小汉字,西文最大不能超\Huge
行距通常为字体大小的1.2-1.5倍
例:\fontsize{12pt}{\baselineskip}\selectfont
\usepackage{type1cm}任意大小西文
行距:\linespread{1.3}产生1.5倍行距,1.6产生双倍行距,效果夸张,不适合出版
用下面方法:\setlength{\baselineskip}{1.5\baselineskip}{......}
正文中更换字体:\CJKfamily{字体族}
为方便,作以下自定义
\newcommand*{\SONG}{\CJKfamily{song}}
\newcommand*{\HEI}{\CJKfamily{hei}}
\newcommand*{\KAI}{\CJKfamily{kai}}
\newcommand*{\FS}{\CJKfamily{fs}}
\newcommand*{\LI}{\CJKfamily{li}}
\newcommand*{\YOU}{\CJKfamily{YOU}}
引用更改为宋体:\SONG 正文
文本居中
文本默认为左对齐
单行文本居中命令
\centerline{....}
多行使用\begin{center}环境
居中声明:\centering(不建议使用)
+------------+
|参考文献环境|
+------------+
\begin{thebibliography}{编号样本}
\bibitem[记号]{引用标志} 文献条目
.
.
.
\bibitem[记号]{引用标志} 文献条目
\end{thebibliography}
\bibitem[省略为方括号数字]{不可省由字母,数字和,号外符号组成,各个文献互不相
同} 文献条目
编号样本,指定记号的宽度,一般为数字
引用文献时用\cite{引用标志1,引用标志2}
调节各文献间距离
\setlength{\itemsep}{高度}
标题缺省为左对齐Reference
(\Large\bfseries)
由\refname值确定
书籍参考文献标题由\bibname值确定
文献条目包含:作者,标题,出版社,年代,版本,页码
一行放不下,后面自动缩进,距离为“编号样本”宽度
+----------+
| 脚 注 |
+----------+
\footnote{脚注内容}
article文档,整篇同一编号
book和report文档,每章统一编号
+----------------+
| 文档类别、章节 |
+----------------+
\documentclass[可选项]{article,book,report,letter,只能选一种}
article 短篇文章
report 长篇报告,可分章
book (书)可含chapter,奇偶页采用不同处理
可选项对整篇文档起作用,使用多个选项互不排斥,用逗号分隔
基本字体:10pt,11pt,12pt
纸张大小:letterpaper,a4paper,a5paper...
排版方向:portrait(竖向),landscape(横向)
标题页:titlepage,notitlepage
final和draft
指定纸张大小(只有latex2e中使用)
letterpaper(11*8.5in)
legalpaper(14*8.5in)
executivepaper(10.5*7.25in)
a4paper(29.7*21cm)
a5paper(21*14.8cm)
b5paper(25*17.6cm)
默认值是letterpaper,美国信纸尺寸,纵向
landscape 横向
章节命令:
\part,\chapter,\section,\subsection,\subsubsection,\paragraph,\subparagraph
\命令[短标题]{标题},用于显示在目录和页眉
\命令*{标题}
层次号:book中\part为-1(article中为0),\chapter为0,....
book类
\part,\chapter独立编号,只出现在奇数页,\part独占一页
\section,\subsection 关联编号
article类
\part,\section独立编号
\subsection,\subsubsection 关联编号
星号章节不参加自动编号
\part和\chapter标题占两行
标题中文化
\renewcommand{\partname}{}
\renewcommand{\thepart}{第\,\Roman{part}}\,篇}
修改编号最深层次
\setcounter{secnumberdepth}{数}
secnumberdepth,book类-2~5,缺省为2,-2时取消编号
article类-1~5,缺省为3
自动编号章节对应计数器
part,chapter,section,bsection,subsubsection,paragraph,subparagraph
修改计数器值:
\setcounter{计数器名}{数}
TeX的版式首先是文件版式, 也就是我们接触的第一个最最最
简单的TeX文档中的第一句:
\documentstyle[选项1,选项2,...]{格式}
其中的[]及选项是可选的, 而{格式}是必需的. LaTeX有以下几种
格式: article(文章), report(报告), book(书), letter(信件).
CCT对前面三种进行了汉化, 分别是carticle, creport和cbook.
常用的选项有
10pt/11pt/12pt: 定义基准字号, 缺省10pt.
twoside: 两面印刷格式, 因奇偶页装订位置不同而异, 缺省为
单页.
twocolumn: 双栏排版, 缺省为单栏.
titlepage: 仅在article格式使用, 它是\maketile产生一个单
独的文章题目页, 同时abstract也产生单独页
leqno: 使公式标号出现在左边, 缺省在右
fleqn: 公式左对齐, 缺省中间对齐
thesis: 专用于毕业论文排版
IEEE: 专向IEEE类杂志投稿的格式
IFTHEN: 排版计算机程序
\columnsep 指定两栏间距
\columnseprule 两栏间竖线宽度,默认为0。
\mathindent 选择fleqn时 左边界的缩进量
以上参数修改用\setlength{\mathindent}{2.5cm}
LaTeX的一个页面有页眉(head, 通常是杂志名, 卷号, 当前
章节名等), 主体(body, 正文, 包括脚注及图表), 页脚(通常是
页码, 如果页码放在页眉处, 则页脚可能是空的). 我们用下面的
指令控制页版面:
\pagestyle{参数}
参数可以是
plain: 页码在页脚居中, 页眉空白, 为article, report的缺省
empty: 页眉页脚都空白
heading: 页脚为空, 页眉为正文的章节信息及页码
myheadings: 自定义页眉, 内容由
\markboth{left_head}{right_head} (双面twoside排版)
或\markright{right_head} (单面排版)
\pagestyle是对全文有效的, 而如果要定义某页的页面格式,
则可用\thispagestyle, 用法同上, 下一页自动恢复原设置.
这里提到页码, 我们经常会修改页码的表现格式, 可能用阿
拉伯数字或罗马数字等, 则修改\pagenumbering{参数}, 这里参
数可以是arabic(阿拉伯数字), roman(小写罗马数字: i, ii, iii,)
Roman(大写罗马数字: I, II, III,), alph(小写英文: a, b, c,),
Alph(大写英文: A, B, C). 如果需要更改某页的页码, 则用修改
计数器命令: \setcounter{page}{数字}, 这里page是页码计数器.
+----------------+
|*修改版面的命令*|
+----------------+
TeX中还经常会在\documentstyle和\begin{document}之间
常用到很多修改版面尺寸的命令. 如未指明, 这些命令的格式都
是用\para_name=newvalue的格式.
\texwidth, \texheight 主要正文body的宽度和高度, 不包括页眉页脚
\oddsidemargin, \evensidemargin 奇数/偶数页, 纸张左边缘
到页body左边缘的距离减去一英寸
\topmargin 纸张上边缘到页眉或body(无页眉时)的距离减去一
英寸
\marginparwidth 页边注(marginnote)的宽度
\marginparsep 正文边缘到页边注边缘的距离
\headheight 页眉高度
\headsep 页眉底部到页主体顶部的距离
\footheight 页脚高度
\footskip 页正文最后一行底到页脚底的距离
(建议, 总把
\oddsizemargin(奇数页的左边界)
\evensidemargin(偶数页的左边界)
\topmargin(从上页边到页眉的距离)
设为0cm;
如果没用页眉, 将
\headheight(页眉高度),
headsep(页眉基线到正文顶部的距离)
设为0cm;
如果没用页脚, 将
\footheight(已过时latex2e中已被去掉),
\footskip(正文底部到页脚底部的距离)设为0cm,
这样便于在输出时直接利用驱动程序的功能控制版心的位置.)
\columnsep 双栏article中, 左右栏间空白的距离
\columnseprule 双栏article中, 左右栏间分隔线的宽度, 缺省 为零, 即没有线
以下参数的修改可以在\begin{document}的前面和后面:
\parskip 段落之间除了空出正常行距外额外空出的距离
\parindent 段首空白的长度
\footnotesep 两个注脚之间的距离
\baselineskip 正文中前一行底和第二行底的距离, 会因字号的
改变自动改变.
另外, 定义行距还有一个特殊的参数, 那是\baselinestretch,
它是用在\begin{document}前的全局变量, 修改格式如
\renewcommand\baselinestretch{倍数} 缺省时为1.0, 因此
LaTeX中最小行距是\baselineskip乘上\baselinestretch得到的.
+----------------+
| 文档标题、摘要 |
+----------------+
\title{标题可有\\换行}
\author{作者名可用and分开}
\date{日期可选,无命令自动当天日期,空白选项不显示}
\thanks{}可出现\maketitle以上任何位置,或几个\thanks
\maketitle
LaTex用特定字体、号居中输出
自定义标题环境
\begin{titlepage}
\end{titlepage}
生成标题独占一页,并重置页码计数器
摘要环境
\begi{abstract}
...
\end{abstract}
book类没有摘要
摘要标题中文化
\renewcommand{abstractname}{摘\qquad 要}
+----------------------------------------------------+
| 本节内容: 三种数学环境, 数学环境中字体和字号, 数 |
| 学公式中的空格, 上下标, 分式, \displaystyle, 大 |
| 大小小的括号, 根式, 导数. |
+----------------------------------------------------+
导言区加入数学公式宏包
\usepackage{latexsym}
\usepackage{bm}
\usepackage{amsmsth}
\usepackage{amssymb}
也可以等
\usepackage{latexsym,bm,amsmsth,amssymb}
到这里, 大家就已经能输入一篇完整的一般文章了, 但是科
技文章总少不了数学公式, 而且大家选择TeX作为排版工具, 其中
一个原因也是看中了它美观的公式编排, 现在我们就来看看和一
般正文不一样的公式.
TeX提供三种有关数学公式的环境, 一种是"文中公式", 通过
$或\(进入"数学环境", 通过$或\)来结束数学环境的; 第二种是
"独立公式", 用$$或\[进入"显示数学环境"(以后我们统称数学环
境), 用$$或\]退出, 在正文, 它是独占一行的, 它排出的字体要
稍微比文中公式要大些; 第三种是带公式标号的数学公式: "方程",
这个以后我们详细再讲. 数学环境是自动根据当前字号来调整公式
中字的大小的.
数学环境中, 缺省字体是数学斜体(显示出来和意大利体一样),
因此如果要用到正文, 需要改变字体或使用盒子, 如我们要输出
"y=x, if x>0,"这一句, 其中的"y=0"和"x>0"应该是数学公式(虽
然不进入数学环境也能输), 而"if"却属于正文内容, 因此不应该
用数学斜体显示, 而应该用"$y=x, {\rm if} x>0$"或用盒子:
"$y=x, \mbox{if } x>0$", 但这里还要注意的是, 数学环境中忽
略一切空格(当然分隔命令的空格除外), 因此第一种输入可以发现,
if和x>0之间没有我们想要的空格, 而第二种输入方式由于在\mbox{}
中if后加了一个空格, 所以if和x>0有一个空格, 这正是我们想要
的. 因此标准的输入方法一般用后者. 而且, 前者的方法对汉字
就不适用, 因为汉字不能出现在数学环境中, 而用盒子框起来就
没问题了. 这里再多说一句的是, 数学环境中不能使用字号命令,
如果需要改变字号, 应该在数学环境之外改变, 而数学环境自动
根据当前字号调整字的大小.
上面已经提到数学环境中忽略任何空白字符, 那么, 怎么在
公式中输出空格呢? 当然我们可以用以前讲过的\quad或hskip来
空出横向空格等, 但是如果我们要输出诸如"fdx"(这里dx是微分),
这样在f和dx中要有一个小空格, 用\quad显然太大了, hskip根本
不知道该空出多大距离. 在公式中, 常用的几个调整距离的命令
是"\,"(小距离), "\:"(中距离), "\;"(大距离), "\!"(负距离),
象刚才说的例子, 我们一般就用$f\,dx$即可. 当然, 一般情况我
们很少改变数学公式中的距离.
下面我们看看如何在数学公式中输入上下标, 在讲TeX保留字
时大家就有印象了, 上下标分别用"^"和"_"来表示, 如$x_0^2$,
TeX中, 先输上标后输下标和先写下标再写上标是没有区别的, 它
都会一样地自动调整字符大小和位置. 如果上下标的字符不止一
个, 那就用"{}"括起来, 如$x^{1+y^{i+1}}$. 如果有人突然想在
字符的左边输上下标呢? 简单的方法是在前面加一个空的{}, 如
${}_{17}^{35}Cl$, 哦, 可能不是用的数学斜体, 那只好再用盒
子了: ${}_{17}^{35}\mbox{Cl}$.
有时我们可能直接用1/2来表示分数就可以了, 但是如果分子
分母我们想要排在分数线的上下, 那就要用"\frac{分子}{分母}"
来表示了, 如$$\frac{1}{x+1}$$. 但是大家如果再把这个例子用
单$括起做文中公式, 或者$$y=\frac{y-\frac{1}{x+1}}{y+1}$$,
就会发现, 这个分式显示出来觉得比正常字号小, 要解决这个问
题就要用\displaystyle的命令了. 你可以试试
$$y=\frac{y-\displaystyle\frac{1}{x+1}}{y+1}$$, 可以了吧.
当然, 如果你在\documentstyle中使用了vatola选项(需要TeX系
统在指定目录有vatola.sty文件), 那么, 你可以直接用\dfrac来
代替\frac来达到同样的效果, 而避免使用冗长的\displaystyle
的输入.(格式如\documentstyle[vatola]{article}; 而如果用
\documentclass{article}, 则用\usepackage{vatola}); 或二
者均可以在第一句后面加上\input vatola.sty来包含这个包)
有人可能又要问了, 如果我输出的分数, 分子还是有分子分
母的分数, 分母也是一个不简单的分数, 那层层迭迭的分数线,
不够美观, 我还是喜欢"分子/分母"的格式, 那怎么把这条斜分数
线画得长一些呢? 这里就要用到所谓的"定界符", 也就是成对出
现的类似于括号的符号了, 如(), [], {}(用\{和\}输入), <>(用
\langle和\rangle输入), /, \(用\backslash), |, ||(用\|);
以及另一些没法直接显示的符号, 大家自己用TeX产生出来看看:
$\lfloor, \rfloor; \lceil, \rceil; \uparrow; \Uparrow;
\downarrow; \Downarrow; \updownarrow; \Updownarrow$. 这些
"括号"通常嵌套并和分数等数学公式一起使用, 如
$$y=1+(\frac{(x+1)^2}{x^2})$$, 当然大家会看到这外层括号太
小, 不美观, 因此TeX提供了几个改变大小的命令, 从小到大依次
是\big, \Big, \bigg, \Bigg, 如$$(, \big(, \Big(, \bigg(,
\Bigg($$, 其它定界符类似使用. 另外, TeX还提供了自动调整括
号大小的命令, 那就是在定界符前加\left和\right, 需要注意的
是\left和\right一定要成对出现, 如果只用单个, 那么另一边就
要用"\left."或"\right."补上. 知道这些后, 我们就可以来输入
长的"/"号了: $$\frac{1}{x+1} \left/ \frac{y+1}{x^2} \right.$$
或$$\left. \frac{1}{x+1} \right/ \frac{y+1}{x^2}$$, 这两个
是不是比$$\frac{\displaystyle\frac{1}{x+1}}{\displaystyle
\frac{y+1}{x^2}}$$更令人满意啊?
下面, 我们来讲讲根式的输入: "\sqrt[开方次数]{表达式}",
其中[开方次数]可选参数, 如果没有则是开平方, 如
$$\sqrt[3]{x+y}+\sqrt{2}$$.
而导数, 也就是在字母右上方加一撇或两撇的输出, 我们常用
$$f^{\prime}$$和$$f^{\prime\prime}$$来表示, 或更简单地, 用
$$f'$$和$$f''$$来表示.
+----------------------------------------------------+
| 本节内容: 数学符号: 希腊字母, 二元运算符, 关系运 |
| 算符, 箭头, 其它符号, 可用于一般环境的符号, 花体 |
| 符号及函数名, 可变大小的符号, \limits和\nolimits, |
| 省略号, 符号的上下堆积, 上下标的分行 |
+----------------------------------------------------+
TeX提供了许多"控制符号"来得到诸如希腊字母, 关系运算符,
箭头等无法用ASCII键盘直接输入的符号. 小写希腊字母, 如\alpha,
\beta, \gamma, \pi; 大写希腊字母, 如\Gamma, \Pi, \Omega;
二元运算符, 如\times(乘号), \div(除号), \pm(加减号), \circ
(小圆圈), \cdot(点)等; 关系运算符, 如\leq(小于等于), \geq
(大于等于), \subset(包含于), \supset(包含), \in(属于); 否
定关系运算符, 如\not=(不等于), \not<(不小于), \not\supset
(不包含); 箭头, \leftarrow, \rightarrow, \longrightarrow,
\uparrow, \mapto等; 其它符号, \nabla(Nabla算子), \angle(角),
\infty(无穷), \forall(任意), \exists(存在), \prime(导数的
撇). 这些符号比较多, 这里就不细细一一列出, 大家去找一本TeX
书, 复印那两三页下来就可以了.
本节讲的绝大多数符号都只能在数学环境中使用, 有几个符号
也可以使用在一般环境中, 那是\S(节号), \P(段落号), \dag(剑
号), \ddag(双剑号).
有时数学公式中的函数名, 算子等要用特别的花体来排版,
TeX提供了\cal字体, 如"function $\cal F$". 而对于专有名词,
如一些函数名, 如sin x中的sin, 就要用罗马体, 而不是一般的
数学斜体排印, 我们可以用$${\rm sin}x$$, 也可以用TeX提供的
直接在函数名前加"\"的方法: $$\sin x$$, 一般的函数均有定义,
如\sin, \cos, \lim, \log等.
数学环境中, 还有一类特殊的符号, 那就是可变大小符号, 如
求和号, 积分号, 它们会因为符号后面的内容的大小自动调整自己
的大小: \sum, \prod, \coprod, \int, \oint, \bigcap, \bigcup,
\bigsqcup, \bigvee, \bigwedge, \bigodot, \bigotimes,
\bigoplus, \biguplus. 需要注意的是, 有些可变符号的上下标位
置在文中公式和独立公式中是不一样的, 大家看个例子:
$\sum_{i=1}^n x_i=\int_0^\infty f(x)dx$
和$$\sum_{i=1}^n x_i=\int_0^\infty f(x)dx$$, 这里大家看到,
\sum在文中公式中, 上下标是写在右上角和右下角的, 在独立公式
中, 是写在上面和下面的; 而\int在二者中都写在右上角和右下角
的. 我们可以强制用\limits和\nolimits来控制上下标的出现位置:
使用方法如$\sum\limits_{i=1}^b x_i$就强制将上下标写在上边
和下边, 而\nolimits使其出现在右边角上. 这里多说一句, 如果
你想把一般的操作符也想用\limits或\nolimits用, 只须把你的操
作符用\mathop{}括起来即可.
大家如果编排矩阵或行列式, 就会遇到特别的省略号, 大家试
试\cdots, \vdots, \ddots就是三个方向的省略号. 而\ldots是比
\cdots低一点的省略号, 它和其它三个不同的是也可以用在正文环
境中. \ldots一般用于$x_1, x_2, \ldots, x_n$这样的时候.
排版数学公式可能还会遇到需要把两个符号上下组合在一起,
最常见的就是上划线和下划线, 大家试试$$\overline{a+b+c+d}$$
和$$\underline{a+b+c+d}$$, 这里需要说明的是, \overline只能
用于数学环境, 而\underline也可以用在正文中. 类似地还有用花
括号括在式子上下的: $$\overbrace{a+\underbrace{b+c}+d}$$,
而如果上下括号上面或下面还有符号, 可以用上下标来表示, 如:
$$\overbrace{a+\underbrace{b+c}_{1.0}+d}^{2.0}$$. LaTeX还
可以将任意两个符号重叠在一起: \stackrel{上层符号}{下层符号},
如$$\vec{x} \stackrel{\rm def}{=}(x_1, x_2, \ldots, x_n)$$,
这里需要说明的是\stackrel中第一个参数的符号以较小字号输出的.
而$${上面 \atop 下面}$$可以把两行内容按相同字号排出, 类似
地就出现了$${n \choose m}$$则是带括号的n个取m个的写法.
符号可以上下堆积, 可是我们如果要在\sum的下面写诸如i<9
和j<9这两行下标, 用$$\sum_{i<9 \\ j<9} i/j$$是不行的. 我们
怎么实现这样的分行呢? 我们可以用\atop来堆积, 如
$$\sum_{\scriptstyle i<3 \atop \scriptstyle j<3} i/j$$
这里之所以加了\scriptstyle是因为仅用\atop命令会把上下的字
体再缩小一号. 另外, 我们也可以用另外的方法: 前面我们在讲
\frac时提到\dfrac这个符号需要使用包vatola.sty, 这里, 如果
使用了vatola.sty这个包, 我们可以在下标中用{\Sb 第一行 \\
第二行 \endSb}, 在上标中用{\Sp 第一行 \\ 第二行 \endSp}来
表示多行下标或上标.
+----------------------------------------------------+
| 本节内容: 数组array, 方程(标号)equation, 多行方程 |
| eqnarray, \aligned(vatola.sty), 标号的交叉引用 |
| 参考文献的使用(more) |
+----------------------------------------------------+
数组环境通常用来编排矩阵, 行列式等对齐的数学公式的.
它的格式是:
\begin{array}{列对齐}
第一行 \\
第二行 \\
...
最后一行
\end{array}
这里, 列对齐的格式是{c1c2c3...cn}, 每个ci为一个字母, 说明
第i列的对齐方式, 可以是c(居中), l(左对齐), r(右对齐). 而
每一行的各列用&符号隔开, 行末是\\. 因此n列的数组, {列对齐}
应该有n项, 每行应该有n-1个&, 一个\\(最后行通常不用\\). 数
组中某一列可以不存在, 但是&号不能少. 数组外常常使用可变大
小的定界符\left和\right, 大家看个例子:
$$\left(
\begin{array}{clr}
a+b+c & a+b+c & a+b+c \\
a+b & a+b & a+b \\
a & a & a
\end{array}
\right) $$
这里要作些说明, 数组中某两行的距离可以用"\\[距离]"来
改变, 也可以用"\renewcommand\arraystretch{实数}"来整体修
改数组的垂直距离(缺省为1.0), 而参数\arraycolsep=...是修改
其列间距. 使用数组时, 经常容易出错的是: array必须出现在数
学环境中, &的个数和\\的个数一定要正确, 如果使用可变大小的
括号, 一定要注意\left和\right必须成对出现, 即使只排印半对
括号.
一般的$和$$环境, 不能给公式或方程编号, 因此, 就用到了
方程环境. 格式是:
\begin{equation}
方程
\end{equation}
这其中的方程, 和$$情况没有两样, 只是在公式右边自动加上了
方程编号(如果\documentstyle用了\leqno选项, 则公式标号在左
边). 多行的方程可以把array使用在equation中来实现, 但是标
号只出现一个, 出现在多行的中间. 如果多行要分别标号, 或者
不想用麻烦的$$嵌套array, 那就要用到多行方程环境:
\begin{eqnarray}
......
\end{eqnarray}
和
\begin{eqnarray*}
...
\end{eqnarray*}
二者的区别是, 带*号的不将公式标号排出来, 而不带*的自动给
每行式子编排标号. 在\begin{eqnarray}和\end{eqnarray}中的
部分是一个三列的array环境, 因此有两个&和一个\\, 如:
\begin{eqnarray}
y&=&1+2+3+4+5+6+7+8+9+10 \\
&=&55
\end{eqnarray}
而如果把方程某行的\\前加上"\nonumber", 则TeX不给该行方程
编排标号, 如"y&=&1+2+3+4+5+6+7+8+9+10 \nonumber \\", 则该
行不出现标号. 这里还要注意的是equation和eqnarray都是直接
进入$$的显示数学环境, 因此不能在前面和后面加上$或$$了.
大家可能会注意到, 不论是array还是eqnarray, 每个&符号
都会在公式中产生列的小空隙, 同样也在vatola宏库中, 定义了
一个aligned对齐环境, 它使得编排多行公式在对齐的同时不会出
现$符号位置的列空隙. 它可以出现在$$环境中, 那公式不标号;
或出现在equation中, 它对一个多行公式只标一个标号, 类似于
array. 它相当于一个两列的array, 因此每行仅有一个&.
\begin{equation}
\aligned
y&=1+2+3+4+5+6+7+8+9+10 \\
&=55
\endaligned
\end{equation}
这里需要注意的是, \begin{array} \end{array}和\begin{tabular}
(制表)\end{tabular}不能出现在\aligned与\endaligned中, 如须
使用, 要用\vbox{}或\hbox{}等把array或tabular环境括起来.
在讲第一个完整的TeX文档例子时, 大家一定注意到参考文献
标号的交叉引用, 而方程也有标号, 也可以交叉引用. 为什么我
们选择交叉引用而不是直接在文中写"公式(1)中..."的原因很简
单, 交叉引用可以实时地调整标号, 插入或删去一个公式带来整
体标号的改变, 无需改变引用标号的地方; 而且, 可以在不修改
正文的情况下灵活地调整标号的风格.
TeX使用\lable{标号}来定义标号, 这里的标号可以是字母,
数字, 标点等组成的字符串. 需要引用, 则使用\ref{标号}, 这
里的"标号"应该是有\lable定义过的, 定义和引用的先后无关.
例如, 我们有
\subsection{Early Results}
\label{sec-early} %这里定义子节标号
Euler's equation
\begin{equation}
e^{i\pi}+1=0 \label{eq:euler} %这里定义方程标号
\end{equation}
\combines the five most important numbers in mathematics
in a single euqtion.
然后我们就可以如下地引用
Equation~\ref{eq:euler} in Section~\ref{sec-early} ...
不管这里方程或子节的标号是多少, 引用时都能准确地指出. 这
就是我们要使用自动交叉引用的原因. 这里, \label会自动根据
自己的位置, 得出标号, 如出现在equation, eqnarray, enumerate
(项目), figure(图), table(表)环境中, 被引用的是公式号, 项
目编号或图表号; 而出现在其它位置则是章节号.
引用时除了\ref外还有一个\pageref{标号}, 它显示的是
\label{标号}出现的页面位置.
\cite和\bibitem我们在一开始的例子中就看到了, 我们这里
更详细地说说这两条命令的完整格式:
\cite[附加信息]{标号1, 标号2, ..., 标号n}
\bibitem[名称]{标号}
先看一个\cite加附加信息的例子(这个例子是在第5节例子的参考
文献的基础上的):
See \cite{texbook, companion} or \cite[page 20-22]{lamport} ..
再看\bibitem的名称可选项:
See \cite{kn:texbook} for more details.
...
\begin{thebibliography}[lamport 86] %[]中是最长文献编号
\bibitem[Knuth 84]{kn:texbook} D. E. Knuth. {\sl The \TeX{}book}.
Addison-Wesley, Reading.
\end{thebibliography}
这里再多说一句的是: 所有涉及交叉引用的文件, 在修改过与
交叉引用有关的内容之后, 都需要对源文件进行两次编译才能得到
正确的结果.
+----------------------------------------------------+
| 本节内容: 居中, 左对齐, 右对齐环境; 小页环境; 抄 |
| 录环境; 列表环境; 制表环境. |
+----------------------------------------------------+
这里要介绍的是几个TeX中常用的环境, 它的一般格式是:
\begin{环境名}
...
\end{环境名}
首先是居中, 左对齐, 右对齐环境, 这三者的环境名分别是
center, flushleft和flushright, 在环境中的正文以\\断行. 这
三个环境比较简单, 就不举例子了. 需要注意的是, 紧接这环境
后的正文和环境如果没有空行隔开, 那么系统认为是一个段落,
就是说环境后的正文行首没有\parindent的缩进.
小页环境大家在第一个完整的TeX例子中已经看到了, abstract
就是小页. 小页环境的格式是:
\begin{minipage}[位置]{宽度}
...
\end{minipage}
{宽度}可以用TeX的任何合法距离; [位置]是可选项, 可以选择t
或b来表示小页是和正文是"顶部对齐"还是"底部对齐", 请看例子:
NORMAL TEXT
\begin{minipage}[b]{1 in}
This is a minipage aligned on its bottom line.
\end{minipage}
AND
\begin{minipage}[t]{1 in}
This is a minipage aligned on its top line.
\end{minipage}
END
注意的是, 小页的footnote(脚注)是紧跟在小页后面, 而不是在
整个页面的下面, 所以在minipage嵌套时, 可能系统会放错脚注
的位置.
抄录环境(verbatim)在\begin{verbatim}和\end{verbatim}
的任何字符都将原样输出, 包括\等TeX保留字. 而"verbatim*"与
verbatim的区别是, 它将把空格用|_|表示出来. verbatim有一个
简写形式, "\verb标识符 字符串 标识符", 其中标识符可以是空
格以外任何字符, 它与\verb之间没有空格. 如:
\verb+
This is \!@#$%%^&*&*({ All you want to type.
+
当然, 字符串里就不能出现你作为标识符的符号了.
列表环境itemize, enumerate, description.
\begin{itemize}
\item 列表项1
\item 列表项2
...
\item 列表项n
\end{itemize}
自动编号; 如果超过一行, 自动缩进以突出编号. 而enumerate与
itemize的区别是, 它不出现数字编号, 而是以小黑圆点来标识.
description一般用于类似于名词解释的情形:
\begin{description}
\item[名词] 解释
\item[名词] 解释
...
\end{description}
一般, 还在[名词]中加上\bf或\heiti以突出名词.
列表环境还可以嵌套使用, 具体就不细述了.
+----------+
| 表 格 |
+----------+
表格环境tabular
\begin{tabular}[竖向位置]{列格式}
....
\end{tabular}
竖向位置:t、b 缺省居中
列与列间用&分隔,每行\\[长度:改变行间间隔]结束
列格式:l左对齐,c居中,r右对齐
边界线:|,||
横线:
\hline
\cline{m--n} m--n列水平线
\nline与行等高竖线
\multicolumn{列数}{列格式}{文本内容}
列数=1时,改变当前列对齐方式
TeX专门提供了一个制表环境, 用来排印有线或无线的表格.
\begin{tabular}[位置]{列定义}
...
\end{tabular}
这里[位置]和minipage一样, 可选t或b, 但我们通常用的表格都
是独立表格, 所以通常不定义位置, 而直接独立一段. {列定义}
类似于array的列对齐, 可以用c,l和r来表示对齐方式, 这里的列
定义还可以在列对齐字母间用"|"以画出表格中列的竖线. 表格内
容如array一样, 用&隔开, \\换行, 同样要注意&的个数. 表格的
横线可以用\hline来表示, 如:
\begin{tabular}{|c|c|c}
\hline
1 & 2 & 3 \\
\hline
4 & & 6 \\ %这里要注意, 若最后行要画横线, 则此处要有\\
\hline
\end{tabular}
而"\cline{列号1-列号2}"则是表示从列号1到列号2的一条横线.
而如果要在表格元素中画竖线, 则可以用"\vline". 有时我们还
会遇到需要把某行表格的几列合并起来, 这就要使用
\multicolumn{栏数}{栏定义}{内容}
{栏数}是要合并的栏的数目, {栏定义}类似于表格的{列定义}, 如:
\begin{tabular}{|c|c|c|}
\hline
\multicolumn{2}{|c|}{1} & 2 \\
\hline
3 & 4 & 5 \\
\hline
\end{tabular}
而
\begin{tabular*}{宽度}[位置]{列定义}
...
\end{tabular*}可以自己定义表格的总宽度, 如\textwidth等TeX
的合法距离.
最后, 我们讲讲制表环境的四个参数, 这四个参数都是局部
参数, 也就是说只要用分组限定命令的作用范围, 就可以调整某
个表格的参数而不影响其它表格. \tabcolsep是两列间水平距离
的一半, 缺省为6pt; \arrayrulewidth为定义\hline, \vline,
\cline及列定义的分隔线|的线宽, 缺省为0.4pt; \doublerulesep
为连续两个\hline或列定义中连续两个|所画的线段之间的间隔,
缺省为2pt, 如果设为0pt, 则可以用连续的\hline或|来加粗表格
的某些线框; \arraystretch是一个实数, 缺省为1.0, 定义行距
的一个因子, 用\renewcommand来改变.
+----------------------------------------+
| 本节内容: 在TeX文档中插入eps图形文件 |
+----------------------------------------+
plain TeX的图形功能非常弱, LaTeX在一定程度上增强了这
方面的功能, 但是也只能画由文字, 直线, 矢量, 圆等组成的很
简单的图形. 这里我觉得没有多大必要花不少精力去学这不大实
用的东西. CCT对图形, 图像功能方面作了补充, 具体大家可看它
所附带的man.dvi文件, 里面有详细的说明. 而windows下的TeX或
如sci-word一般的环境, 可能提供了插入一般windows下剪贴板图
形的方法, 具体可看该软件的帮助.
这里, 我们仅就如何在TeX文档中插入EPS的PostScript图形
作些说明, 因为现在的很多windows下的作图软件, 如mathematica
都能产生EPS文件, 这类文件的图形是矢量格式而不是点阵格式的,
可以以较高精度输出而不会出现锯齿状不光滑现象.(mathematica
3.0中, 只要点击所做的图形成为选中, 然后点鼠标右键, 在菜单
中选择Save Selection As..., 那里有EPS格式)
插入EPS图形的TeX文件所生成的dvi文件, 无法用view看到其
中嵌入的图形, 只能用dvips将dvi以及内嵌的EPS图形一起转化成
PS文件, 然后用Ghost View来看.
首先, 我们先要安装"dvips". 现在假设我们已经把CCT EMTEX
5.13安装在C:\EMTEX目录下了(如果装在其他盘, 那么dvips就要改
设置config.ps了, 估计有麻烦), 那么解开dvips.zip(下载请到
http://202.38.68.78/~chencs/math/ ), 里面有一部分文件展开
在emtex目录下, 还有一个texfonts目录(大概是为dvips提供字体
用的). 大家使用CCT之前, 应该运行过emtex目录下的setenv.bat
(这是CCT emtex要求大家设置的TeX的环境变量, 建议将setenv.bat
的内容加到autoexec.bat中去, 因为这里的环境变量没设好, 会影
响dvips的使用).
有了上面准备工作之后, 以后如果我们要在TeX中插入EPS文件,
只要按TeX格式编好源程序; 然后用patchdvi把dvi文件中可能有的
汉字字库剥离出来, 以供不依赖汉字环境的dvips使用; 然后用
dvips32就可以将dvi文件以及EPS图形一起合成为ps文件, 回到95
环境, 用GhostView就可以阅读或打印了.
在打包的dvips.zip中, 我们加入了一个ll.bat文件(使用格式
是ll filename, 这里, CCT的文件名为filename.ctx), 大家可以从
中看到怎么使用patchdvi和dvips:
call patchdvi -y %1.dvi ~~tmp.dvi
dvidrv dvips32 ~~tmp.dvi
最后, 大家就看看怎么在TeX文件插入EPS图形了. 如果我们用
\documentstyle{}, 那么, 在{}前的选项[]中加入epsfig; 如果用
的是\documentclass{}, 那么就用\usepackage{epsfig}调如该库.
然后在要插入图形的地方使用\epsfig{figure=filename.eps}, 当
然, 也可以把这句话加在浮动图表的环境中而形成浮动图表, 或直
接使用直接插在文中. 一个简单的例子是打包在我们的dvips.zip中
的sample.ctx中插入了sin.eps.
这里补充说一下浮动图形figure环境, 它能自动调整图形在页
面中出现的位置:
\begin{figure}[位置]
...内容...(可能是上面的\espfig{...})
\caption{图的标题}
\end{figure}\begin{figure}[位置] ...内容...(可能是上面的\espfig{...}) \caption{图的标题} \end{figure}
这里[位置]可以是h(当前位置),t(页顶),b(页底),p(另页).
+----------------------+
| 一个英文文档的例子 |
+----------------------+
一个英文文档的例子,保存为:**.tex
\documentstyle{article} %使用article格式
\topmargin=0pt %以下页面设置
\oddsidemargin=0pt \evensidemargin=0pt %
\textwidth=14cm %
\textheight=21cm %
%
\title{This is a sample of \LaTeX} %文章题目
\author{Bigeyes(\tt{[email protected]})\\ %作者. 多行用\\
Department of Mathematics\\ %
USTC, Anhui, Hefei, 230026 %
%
\and %如有多作者, 用\and
A\_A %
\thanks{Supported by ...} %致谢, 在author里
\\ %
BBS of USTC\\ %
bbs.ustc.edu.cn[202.38.64.3]} %
\date{Mar. 1, 1999} %日期, 如果没有此项,
%则以当前日期代替, 若
%不要日期, 则用空{}
%
\begin{document} %document开始.
%以上定义标题各项内容,
\maketitle %此句产生标题, 不可缺少,
%一般都是正文第一句
\begin{abstract} %套用abstract格式
This is mini-page defined for abstract, %自动形成小页
you only write your abstract in it. If %
you want to shows keywords, maybe you %
should use: %
{\bf Keywords: }\LaTeX, example %LaTeX没有keywords环境
\end{abstract} %自己手工来做吧
%
\section{The very beginning} %一个节, 节的使用后详
This is the first section of your %
article. You may find every first %一节的第一段缺省情况
paragraph of your section, subsection, %为段首不自动缩进
chapter or ... always has no %
``parindent'' at the beginning. %
This is the second paragrph, you can %但是以后的段段首
find this has parindent at the % 自动缩进
beginning. If you want to show %
parindent at first paragraph too, %
do as the first paragraph I showed %
in the next section. %
%
\section{The 2nd step} %第二节,使用自动标号
\hskip \parindent %横向空出\parindent
This is the second section. In this %从这里大家看到
first paragraph, I use `hskip' to %\parindent其实是
get the first parindent. Maybe you %一个长度单位, 长
can get this effect by another way. %度单位后详
%
\subsection{Sub-sect of 2} %小节
this %
%
\subsection*{\S 2.2 Another sub of 2} %节,小节可以不使用
this %自动标号, 这时有关
%的计数器不增加
\section{Conclusion} %
I think you have know \TeX well now. %又是一节
I want to show you how to use %
bibliography. In the article, you %参考文献的
can use as ``see \cite{texbook}''. %引用方法\cite{标识}
%
\begin{thebibliography}{0} %参考文献列在这里
%{0}表示最长文献序号
% 为一位数
%\bibitem{标识}
%参考文献使用后详
\bibitem{texbook} Donald~E.~Knouth, ``The \TeX book'',
Addison-Wesley, 1984
\bibitem{lamport} L.\ Lamport, ``\LaTeX:
A Document Preparation System'',
Addison-Wesley, 1994
\bibitem{companion} M.~Goossens, F.~Millelbach,
and A.~Samarin, ``The \LaTeX\ Companion'',
Addison--Wesley, 1994
\end{thebibliography}
\end{document}\begin{document} %document开始. %以上定义标题各项内容, \maketitle %此句产生标题, 不可缺少, %一般都是正文第一句 \begin{abstract} %套用abstract格式 This is mini-page defined for abstract, %自动形成小页 you only write your abstract in it. If % you want to shows keywords, maybe you % should use: % {\bf Keywords: }\LaTeX, example %LaTeX没有keywords环境 \end{abstract} %自己手工来做吧 % \section{The very beginning} %一个节, 节的使用后详 This is the first section of your % article. You may find every first %一节的第一段缺省情况 paragraph of your section, subsection, %为段首不自动缩进 chapter or ... always has no % ``parindent'' at the beginning. % This is the second paragrph, you can %但是以后的段段首 find this has parindent at the % 自动缩进 beginning. If you want to show % parindent at first paragraph too, % do as the first paragraph I showed % in the next section. % % \section{The 2nd step} %第二节,使用自动标号 \hskip \parindent %横向空出\parindent This is the second section. In this %从这里大家看到 first paragraph, I use `hskip' to %\parindent其实是 get the first parindent. Maybe you %一个长度单位, 长 can get this effect by another way. %度单位后详 % \subsection{Sub-sect of 2} %小节 this % % \subsection*{\S 2.2 Another sub of 2} %节,小节可以不使用 this %自动标号, 这时有关 %的计数器不增加 \section{Conclusion} % I think you have know \TeX well now. %又是一节 I want to show you how to use % bibliography. In the article, you %参考文献的 can use as ``see \cite{texbook}''. %引用方法\cite{标识} % \begin{thebibliography}{0} %参考文献列在这里 %{0}表示最长文献序号 % 为一位数 %\bibitem{标识} %参考文献使用后详 \bibitem{texbook} Donald~E.~Knouth, ``The \TeX book'', Addison-Wesley, 1984 \bibitem{lamport} L.\ Lamport, ``\LaTeX: A Document Preparation System'', Addison-Wesley, 1994 \bibitem{companion} M.~Goossens, F.~Millelbach, and A.~Samarin, ``The \LaTeX\ Companion'', Addison--Wesley, 1994 \end{thebibliography} \end{document}
%document结束
+-------------------------+
| 如何编辑、编译TeX文件 |
+-------------------------+
我们已经讲过, TeX源文件是文本文件, 就象一个C语言的源
文件一样, 那么我们也象编译C语言程序得到可执行程序一样, 我
们编译TeX源文件, 以得到能在计算机上浏览或打印的格式文件,
那就是后缀为.DVI的文件(我们就称它为DVI文件). TeX源文件我
们通常把其后缀取为.TEX. 当然, 如果你在中文TeX的环境中编排
你的中文文章, 那么你的源文件后缀可能就是那个中文TeX给你约
定的了, 我们现在常用的CCT EMTEX, 所用的后缀是.CTX, 系统的
操作是将.CTX源文件中的中文经过预处理, 产生标准的TeX文件,
然后再照平常的TeX文档一样操作, 得到DVI文件.
今后, 我们均以DOS下的CCT EMTEX环境为例, 来讲述TeX文章
的编排. 因为TeX的标准, 所以在不同的TeX环境, 其实文章编排
的内容格式是一样的, 只是可能它得到DVI的途径不同而已. 而我
们就以现在比较流行的LaTeX为准来讲述TeX的使用, 其它如amstex,
amslatex等, 仅是文档的最外层框架以及少数扩展的命令不大一
样之外, 其它命令都是相同的.
一个最最简单的TeX文档可能是: (比如我们用EDIT, 当然也
可以用写字板或UltraEdit等甚至是UNIX下的vi编辑器等编辑一个
文本文件如下四行, 取名为'1.tex')
\documentstyle{article}
\begin{document}
my example content
\end{document}\begin{document} my example content \end{document}
现在流行的TeX格式似乎已经不是documentstyle而是documentclass
了, 但是它们除了一开始的写法不大一样之外, 正文的命令排版
等等都没有任何区别. 以CCT EMTEX环境为例, 我们用'latex 1.tex'
来编译TeX文件来得到DVI文件, 然后用'view 1.dvi'来浏览, 用
'dvi24p 1.dvi'(24针打)或'dviljp 1.dvi'(激打)来打印文章.
(以上三条命令的后缀均可以省去, 仅用'latex 1','view 1'和
'dviljp 1'等.)
如果你的TeX文件不符合TeX语法, 那编译将可能出错, 这时
可以让系统忽略错误产生DVI文件(这时可能就不能达到你所期望
的排版效果了), 或者你应该修改源文件中的错误, 重新编译, 直
到全部通过. 在LaTeX编译出错时, 会在屏幕上显示出错信息, 并
显示"?"以接受用户进一步的指示. 在"?"后, 输入:
1. 回车: LaTeX尽量忽略此错误, 继续运行;
2. s: LaTeX继续运行, 并之后还有错误, 也不停止运行;
3. r: 类似s, 比上者更强硬, 甚至连打不开文件这样的严重错误
也不停止;
4. q: 同r, 但错误及提示均不在屏幕显示, 直接写入.LOG文件;
5. I: 之后跟一个字符串, 用来插入替代出错的字符串. 比如在
正文需要纵向空出1cm空白, 用"\vskip 1cm", 但是输入错误
成为"\vship 1cm", 则编译出错:
! Undefined control sequence.
l.102 \vship
1cm
?
表示在第102行, \vship是未定义的命令, 这时在?后输入
"I\vskip", 则用\vskip替代出错的\vship, 继续执行. 这里
需要注意的是, 这条指令只是编译中临时修改错误, 并没有
真正地修改源文件;
6. 小于10的数: 表示删出从当前位置开始的那么多个字符;
7. ?: 显示提示
8. h: 显示帮助, 对当前错误提出进一步动作的建议;
9. x: 中断编译, 将已编译的结果写入.DVI中, 出错及提示写入
.LOG中.
+----------+
|制作幻灯片|
+----------+
xcolor宏包
\usepackage[选项]{xcolor}
选项:
彩色驱动程序名:dvips,dvipdfm,pdftex
彩色模式:natural,rgb,cmyk,..
预定义色彩集合:dvipsnames,dvipsnames*,...
red,green,blue,yellow,cyan,magenta,black,white,orange,violet,purple,brown,pink,...
使用彩色
\color{色彩名}-->声明
\textcolor{色彩名}{文本}-->命令
\pagecolor{色彩名}-->声明,指定背景色(ps,pdf有效)
色彩名必须是已经有定义的
可以使用不同色彩的混合,如
\color{green!40!yellow}-->40%的绿色与60%的黄色混合
\color{-green!40!yellow}上述颜色的补色
色彩混合公式:
C0!P1!C1!P2!...!PN!CN=????
另一种方法
\color[色彩模式]{数据}
\textcolor{色彩名}{数据}{文本}
\pagecolor{色彩名}{数据}
例:
\textcolor[rgb]{0.3,0.8,0.1}
\textcolor[cmyk]{0.0,0.5,0.1,0.5}
\definecolor{色彩名}{色彩模式}{数据}
\providecolor{色彩名}{色彩模式}{数据}
色彩模式:rgb,cmyk,gray等
逗号分隔的十进制小数,表示每个分量的力度
如:\definecolor{red}{rgb}{1,0,0}
\definecolor{yellow}{cmyk}{0,0,1,0}
如色彩名已有定义,\providecolor不起作用,\definecolor覆盖原来的定义
彩色盒子
\colorbox{色彩名}{文本}
\fcolorbox{色彩一}{色彩二}{文本}
\colorbox{色彩模式}{数据}{文本}
\fcolorbox{色彩模式}{数据一}{数据二}{文本}
\normalcolor:恢复正常色
使用pdfTeX
dvipdfm-->div 转 pdf
dvipdfmx-->dvipdfm的扩展
pdfTeX处理Plain TeX and AMS-TeX文件
pdfLaTeX处理LaTeX文件
直接生成pdf文件,可以增加一些LaTeX中没有的pdf功能
支持图片格式:pdf,png,jpg,tif,但不支持eps
建立书签:hyperref宏包
\usepackage[选项]{hyperref}
\usepackage[选项]{hyperref}
hypersetup{...}
例子:
\usepackage[dvipdfmx,CJKbookmarks]{hyperref}
\usepackage[dvipdfmx]{hyperref}
hypersetup{CJKbookmarks=true}
hyperref宏包常用选项
驱动选项:dvipdfmx,dvips,pdftex,....
pdf属性:pdftitle,pdfauthor,pdfsubiect,...
pdf打开方式:pdfstartview,pdfpagemode,...
书签:bookmarks,CJKbookmarks,bookmarksnumbered,bookmarksopen,...
链接属性:colorlinks,linkcolor,citecolor,...
slides文档类:制作透明胶片
\documentclass[选项]{slides}
字体较大,\normalsize-->20pt
缺省字体为sffamily
三种环境:slide,overlay,note
pdfscreen宏包
\usepackage[选项]{pdfscreen}
常用选项
screen:产生适合屏幕输出的pdf文件
print:输出打印版
panelleft,panelright,nopanel:设置导航面板
paneltoc:将目录放在导航面板上
sectionbreak:每节分页
导航面板配色方案:blue,gray,orange,...
pdfscreen宏包自动输入graphicx和color宏包
pdfscreen定制幻灯片命令(导言区)
\screensize{高度}{宽度}:屏幕大小(必须)
\margins{左}{右}{上}{下}:定义页边空白,(放在\screensize前)
\overlay{pdf图形文件}:幻灯片背景
\paneloverlay{pdf图形文件}导航面板背景
\urlid{CRL地址}:设置主页链接地址
\emblema{图形文件}:在导航面板加入图片
导航按钮:
\bottombuttons,\nobottombuttons
\topbuttons
\notopbuttons
按钮中文化
\panelhomepagename:主页
\paneltitlepagename:标题页
\panelabstractname:摘要页
\panelcontentsname:目录页
\panelgobackname:返回
\panelfullscreename:全屏显示
\panelclosename:关闭
\panelquitname:退出
\panelpagename,\panelofname,\panelofnamep
slide环境
\begin{slide}
...
\end{slide}\begin{slide} ... \end{slide}
一个slide环境生成一张幻灯片
页面过渡命令(需使用宏包texpower)
\usepackage[display]{texpower}
\pageTransitionBlindsH
\pageTransitionBlindsV
\pageTransitionSplitVI
\pageTransitionDissolve
\pageTransitionSplitVO
\pageTransitionSplitHI
\pageTransitionSplitHO
\pageTransitionGlitter{270}
+------------------+
|beamer宏包(最佳)|
+------------------+
是latex制作slide的一个文档类
用pdflatex编译,不需要其它后处理程序
同票latex结合度高
直观而方便的创建遮挡(overlays)
及其它各种漂亮的演示效果
利用theme实现内容和风格的独立,可以轻松的改变风格
在latex中使用beamer的一般步骤
将latex的文档类型从article改为beamer
用section和subsection组织latex的文档结构
用frame环境制作独立的帧
执行pdflatex编译tex文件
beamer文档类
\documentclass[11pt,CJK,compress]{beamer}
\usetheme{Warsaw}
\usecolortheme{lily}
...
幻灯片主体结构
\section{....} %用于书签和导航条
\subsection{....} %用于书签和导航条
\begin{brame}[选项]
\frametitle{...}-->帧的标题
\subframetitle{...}-->%帧的副标题
\end{brame}\begin{brame}[选项] \frametitle{...}-->帧的标题 \subframetitle{...}-->%帧的副标题 \end{brame}
一个帧中可以包含覆盖,逐段显示内容
一个有用的选项:plain
标题页
\begin{brame}[选项]
\titlepage-->生成标题页
\end{brame}\begin{brame}[选项] \titlepage-->生成标题页 \end{brame}
标题,副标题,报告人,。。。
\title{...}
\subtitle{...}
\author{...}
\date{...}
\institute{...}
\titlegraphic{...}
目录页
\begin{brame}[选项]
\frametitle{Outline}
\tableofcontents[选项]-->生成目录
\end{brame}\begin{brame}[选项] \frametitle{Outline} \tableofcontents[选项]-->生成目录 \end{brame}
\tableofcontents-->逐段显示目录
hideallsubsections,hideothersubsections
currentsection
currentsubsection
若不想使用自动生成的目录,可以手工输入
中文支持-CJK宏包
中文模板
\documentclass[CJK]{beamer}
.......
\usepackage{CJK}
......
\begin{document}
\begin{CJK}{GBK}{song}
......
\end{CJK}
\end{document}\begin{document} \begin{CJK}{GBK}{song} ...... \end{CJK} \end{document}
beamer中的一些预定义环境
theorem,lemma,corollary,definition,...
Theorem(费马)
block环境-->类似定理环境,可自选标题
\begin{block}{标题}
...
\end{block}\begin{block}{标题} ... \end{block}
colums环境
\begin{colums}{选项}
\column{宽度}
...
\column{宽度}
...
\end{colums}\begin{colums}{选项} \column{宽度} ... \column{宽度} ... \end{colums}
beamer中的罗列环境
应多使用罗列环境
可以嵌套使用,但通常不要超过2层
罗列条目的自动逐段显示
\beamerdefaultoverlayspecification{<+->}
手工指定逐段显示的内容:<数字范围>
如:<3>,<-3>,<2-4>,<2->
抄录环境semiverbatim
\begin{semiverbatim}
...
\end{semiverbatim}\begin{semiverbatim} ... \end{semiverbatim}
使用该环境,需在frame后加[fragile]或[containsverbatim]选项
\,{,}仍然保持特殊含义
verbatim仍然可以使用
条目不同性质内容用\newblock分隔
插入图片
\includegraphics[scale=0.5]{***.png}
插入多媒体:multimedia宏包
插入电影
\movie[autostart]{}{***.wmv}
插入声音
\sound[autostart]{}{***.wav}
插入logo
\pgfdeclareimage[height=.8cm]{logo}{math}
\logo{\pgfuseimage{logo}}
在幻灯片右下角插入logo
幻灯片的切换
\transblindshorizontal
\transblindsvertical
\transboxin
\transboxout
\transdissolve
\transglitter
\transsplithorizontalin
\transsplitverticalin
\transsplithorizontalout
\transsplittverticalout
\transwipe
导航图标
\setbeamertemplate{navigation symbols}%{\insert***navigationsymbol}
其中***可以为
slide,frame,subsection,section,doc,backfindforward
多个导航图标,用逗号分隔
取消
\setbeamertemplate{navigation symbols}{}
+--------------------------------------+
|beamer中动态时间和倒计时的最终解决办法|
+--------------------------------------+
摘自 bbs.ctex.org
pdflatex通过。不可以用web宏包,否则和beamer冲突。
颜色字体,时间格式等参数自己设。
有些要参考javascript,如时间格式。
\documentclass[pdftex,8pt]{beamer}
\mode{
\usetheme{CambridgeUS}
\useinnertheme{default}
\usecolortheme{orchid}
\usecolortheme{whale}
\usefonttheme{default}
}
\usepackage{pgf,pgfrcs,pgfarrows,pgfnodes,pgfautomata,pgfheaps,pgfshade}
\usepackage{xcolor}
\usepackage{amsmath,amssymb}
\usepackage[latin1]{inputenc}
\usepackage{colortbl}
\usepackage[english]{babel}
\usepackage{times}
\usepackage{hyperref}
\usepackage{graphicx}
\usepackage[final]{pdfpages}
\usepackage{textcomp}
\usepackage{multicol}
%****************************************
\usepackage{eforms}
\begin{insDLJS}{showtime}{Show time}
function tClock()
{this.getField("datetime").value = util.printd("hh:MM:ss tt dd/mm/yyyy", new
Date());
%参数可以自己改
}
var timeout =app.setInterval("tClock()",1000);
\end{insDLJS}\begin{insDLJS}{showtime}{Show time} function tClock() {this.getField("datetime").value = util.printd("hh:MM:ss tt dd/mm/yyyy", new Date()); %参数可以自己改 } var timeout =app.setInterval("tClock()",1000); \end{insDLJS}
%************************************************
\let\oldfootnote\footnote
\renewcommand\footnote[1]{\oldfootnote{%
\renewcommand\baselinestretch{1}%
\large\scriptsize\ignorespaces#1}}
\addtolength{\footnotesep}{1pt}
\setlength{\abovecaptionskip}{2pt}
\setlength{\belowcaptionskip}{1pt}
\makeatletter
\newcommand\figcaption{\def\@captype{figure}\caption}
\newcommand\tabcaption{\def\@captype{table}\caption}
\makeatother
\setbeamertemplate{caption}[numbered]
\usepackage[absolute,overlay]{textpos}
\usepackage{tikz}
\title[Title short]{Title long}
\subtitle{Subtitle subtitle}%
\author[authorshort]{\large{authorlong}}%
\institute[Schoolshort]{\large{School of ......}}%
%*************************
\newcommand{\timemark}%
{\textField[\BC{0.2 0.2 0.7}\BG{0.2 0.2 0.7}%
\textFont{TiRo}\textSize{5}\textColor{1 1 1 rg}]{datetime}{2cm}{4bp}}
%参数可以自己改
\date[\timemark]{\today}%时间标签
%****************************
\begin{document}
\begin{frame}[plain]
\titlepage\pdfbookmark[1]{Title}{Titlepage}
\end{frame}
\setbeamercolor{frametitle}{fg=red}
\section*{Outline}%
\begin{frame}\frametitle{Outline}
\tableofcontents
\end{frame}
\section[Backgroud]{Backgroud}
\subsection{backgroundA}
\begin{frame}
\frametitle{backgroundA1}
backgroundA1text
\end{frame}
\begin{frame}
\frametitle{backgroundA2}
backgroundA2 text
\end{frame}
\subsection{backgroundB}
\begin{frame}
\frametitle{backgroundB1}
background1text
\end{frame}
\begin{frame}
\frametitle{backgroundB2}
background2 text
\end{frame}
\section[Experimental]{Experimental}
\subsection{Experimental}
\begin{frame}
\frametitle{Experimental 1}
Experimental 1 text
\end{frame}
\begin{frame}
\frametitle{Experimental 2}
Experimental 2 text
\end{frame}
\end{document}\begin{document} \begin{frame}[plain] \titlepage\pdfbookmark[1]{Title}{Titlepage} \end{frame} \setbeamercolor{frametitle}{fg=red} \section*{Outline}% \begin{frame}\frametitle{Outline} \tableofcontents \end{frame} \section[Backgroud]{Backgroud} \subsection{backgroundA} \begin{frame} \frametitle{backgroundA1} backgroundA1text \end{frame} \begin{frame} \frametitle{backgroundA2} backgroundA2 text \end{frame} \subsection{backgroundB} \begin{frame} \frametitle{backgroundB1} background1text \end{frame} \begin{frame} \frametitle{backgroundB2} background2 text \end{frame} \section[Experimental]{Experimental} \subsection{Experimental} \begin{frame} \frametitle{Experimental 1} Experimental 1 text \end{frame} \begin{frame} \frametitle{Experimental 2} Experimental 2 text \end{frame} \end{document}
倒计时
\begin{insDLJS}{showtime}{Show time}
ttotal=120;%总时间自己设定
stotal=ttotal*60
function tClock()
{%this.getField("datetime").value = util.printd("hh:MM:ss tt dd/mm/yyyy", new
Date());
stotal=stotal-1
hleft=Math.floor(stotal/3600)
mleft=Math.floor((stotal - hleft*3600)/60)
sleft=stotal - hleft*3600-mleft*60
if (hleft>=1){this.getField("datetime").value=hleft+':'+mleft+':'+sleft;}
else{this.getField("datetime").value=mleft+':'+sleft;}
}
var timeout =app.setInterval("tClock()",1000);
\end{insDLJS}\begin{insDLJS}{showtime}{Show time} ttotal=120;%总时间自己设定 stotal=ttotal*60 function tClock() {%this.getField("datetime").value = util.printd("hh:MM:ss tt dd/mm/yyyy", new Date()); stotal=stotal-1 hleft=Math.floor(stotal/3600) mleft=Math.floor((stotal - hleft*3600)/60) sleft=stotal - hleft*3600-mleft*60 if (hleft>=1){this.getField("datetime").value=hleft+':'+mleft+':'+sleft;} else{this.getField("datetime").value=mleft+':'+sleft;} } var timeout =app.setInterval("tClock()",1000); \end{insDLJS}
+-----------+
|例 子 1|
+-----------+
% 13-4-1.tex 用 pdfLaTeX 编译
\documentclass[cjk]{beamer}
\mode
{
\usetheme{Warsaw}
% 可供选择的主题参见 beameruserguide.pdf, 第 134 页起
% 无导航条的主题: Bergen, Boadilla, Madrid, Pittsburgh, Rochester;
% 有树形导航条的主题: Antibes, JuanLesPins, Montpellier;
% 有目录竖条的主题: Berkeley, PaloAlto, Goettingen, Marburg, Hannover;
% 有圆点导航条的主题: Berlin, Dresden, Darmstadt, Frankfurt, Singapore,
Szeged;
% 有节与小节导航条的主题: Copenhagen, Luebeck, Malmos, Warsaw
% \setbeamercovered{transparent}
% 如果取消上一行的注解 %, 就会使得被覆盖部分变得透明(依稀可见)
}
\usepackage{CJK}
\begin{CJK*}{GBK}{kai}
\newtheorem{thm}[theorem]{定理}
\newtheorem{dfn}[theorem]{定义}
\theoremstyle{example}
\newtheorem{ex}[theorem]{例}
\end{CJK*}\begin{CJK*}{GBK}{kai} \newtheorem{thm}[theorem]{定理} \newtheorem{dfn}[theorem]{定义} \theoremstyle{example} \newtheorem{ex}[theorem]{例} \end{CJK*}
\begin{document}
\begin{CJK*}{GBK}{kai}
\CJKtilde
\title{没有最大的素数}
\author[\CJKfamily{fs}王某某]{王某某\\ \texttt{[email protected]}}
\date[CFP 2003]{奇妙问题探讨大会, 2003}
\begin{frame}
\titlepage
\end{frame}
\begin{frame}
\frametitle{概要}
\tableofcontents
\end{frame}
\section{动机}
\subsection{我们研究的基本问题}
\begin{frame}
\frametitle{什么是素数}
\begin{dfn}
\alert{素数}就是只有两个因子的数.
\end{dfn}
\begin{ex}
\begin{itemize}
\item 2~是素数。
\pause
\item 3~是素数。
\pause
\item 4~不是素数~(它有~\alert{3}~个因子)。
\end{itemize}
\end{ex}
\end{frame}
\begin{frame}
\frametitle{没有最大素数}
\framesubtitle{证明使用了\textit{归谬法}}
\begin{thm}
没有最大素数。
\end{thm}
\begin{proof}[证明]
\begin{enumerate}
\item<1-> 假设~$p$~是最大素数.
\item<2-> 令~$q$~是前~$p$~个数的乘积.
\item<3-> 则~$q$~不被它们中的任何一个除尽.
\item<1-> 因此~$q$~也是素数而且比~$p$~大.\qedhere
\end{enumerate}
\end{proof}
\uncover<4->{证明使用了\textit{归谬法}}
\end{frame}
\section{未解决的问题}
\begin{frame}
\frametitle{还能做什么?}
\begin{columns}[t]
\column{.5\textwidth}
\begin{block}{已解决的问题}
有多少素数?
\end{block}
\column{.5\textwidth}
\begin{block}{未解决的问题}
是否每个偶数都是两个素数之和?\cite{Goldbach1742}
\end{block}
\end{columns}
\end{frame}
\begin{frame}
\begin{thebibliography}{10}
\bibitem{Goldbach1742}[Goldback, 1742]
Christian Goldback.
\newblock A problem we should try to solve before the ISPN '43 deadline,
\newblock \emph{Letter to Leonard Euler}, 1742.
\end{thebibliography}
\end{frame}
\begin{frame}[fragile]
\frametitle{寻找素数的算法}
\begin{semiverbatim}
\uncover<1->{\alert<0>{int main (void)}}
\uncover<1->{\alert<0>{\{}}
\uncover<1->{\alert<1>{ \alert<4>{std::}vector
\uncover<1->{\alert<1>{ for (int i = 2; i < 100; i++)}}
\uncover<2->{\alert<2>{ if (is_prime[i])}}
\uncover<2->{\alert<0>{ \{}}
\uncover<3->{\alert<3>{ \alert<4>{std::}cout << i << " ";}}
\uncover<3->{\alert<3>{ for (int j = i; j < 100;}}
\uncover<3->{\alert<3>{ is_prime [j] = false, j+=i);}}
\uncover<2->{\alert<0>{ \}}}
\uncover<1->{\alert<0>{ return 0;}}
\uncover<1->{\alert<0>{\}}}
\end{semiverbatim}
\visible<4->{Note the use of \alert{\texttt{std::}}.}
\end{frame}
\end{CJK*}
\end{document}\begin{document} \begin{CJK*}{GBK}{kai} \CJKtilde \title{没有最大的素数} \author[\CJKfamily{fs}王某某]{王某某\\ \texttt{[email protected]}} \date[CFP 2003]{奇妙问题探讨大会, 2003} \begin{frame} \titlepage \end{frame} \begin{frame} \frametitle{概要} \tableofcontents \end{frame} \section{动机} \subsection{我们研究的基本问题} \begin{frame} \frametitle{什么是素数} \begin{dfn} \alert{素数}就是只有两个因子的数. \end{dfn} \begin{ex} \begin{itemize} \item 2~是素数。 \pause \item 3~是素数。 \pause \item 4~不是素数~(它有~\alert{3}~个因子)。 \end{itemize} \end{ex} \end{frame} \begin{frame} \frametitle{没有最大素数} \framesubtitle{证明使用了\textit{归谬法}} \begin{thm} 没有最大素数。 \end{thm} \begin{proof}[证明] \begin{enumerate} \item<1-> 假设~$p$~是最大素数. \item<2-> 令~$q$~是前~$p$~个数的乘积. \item<3-> 则~$q$~不被它们中的任何一个除尽. \item<1-> 因此~$q$~也是素数而且比~$p$~大.\qedhere \end{enumerate} \end{proof} \uncover<4->{证明使用了\textit{归谬法}} \end{frame} \section{未解决的问题} \begin{frame} \frametitle{还能做什么?} \begin{columns}[t] \column{.5\textwidth} \begin{block}{已解决的问题} 有多少素数? \end{block} \column{.5\textwidth} \begin{block}{未解决的问题} 是否每个偶数都是两个素数之和?\cite{Goldbach1742} \end{block} \end{columns} \end{frame} \begin{frame} \begin{thebibliography}{10} \bibitem{Goldbach1742}[Goldback, 1742] Christian Goldback. \newblock A problem we should try to solve before the ISPN '43 deadline, \newblock \emph{Letter to Leonard Euler}, 1742. \end{thebibliography} \end{frame} \begin{frame}[fragile] \frametitle{寻找素数的算法} \begin{semiverbatim} \uncover<1->{\alert<0>{int main (void)}} \uncover<1->{\alert<0>{\{}} \uncover<1->{\alert<1>{ \alert<4>{std::}vector
+-----------+
|例 子 2|
+-----------+
% 13-4-2.tex 用 pdfLaTeX 处理
\documentclass[table]{beamer}
\mode
{
\usetheme{default}
% 可供选择的主题参见 beameruserguide.pdf, 第 134 页起
% 无导航条的主题: Bergen, Boadilla, Madrid, Pittsburgh, Rochester;
% 有树形导航条的主题: Antibes, JuanLesPins, Montpellier;
% 有目录竖条的主题: Berkeley, PaloAlto, Goettingen, Marburg, Hannover;
% 有圆点导航条的主题: Berlin, Dresden, Darmstadt, Frankfurt, Singapore,
Szeged;
% 有节与小节导航条的主题: Copenhagen, Luebeck, Malmos, Warsaw
\setbeamercovered{transparent}
% 如果取消上一行的注解 %, 就会使得被覆盖部分变得透明(依稀可见)
}
\usepackage{times}
\usepackage{pifont}
\begin{document}
\begin{frame}
\begin{itemize}
\item<1-| alert@1> First point.
\item<2-| alert@2> Second point.
\item<3-| alert@3> Third point.
\end{itemize}
\end{frame}
\begin{frame}
\begin{itemize}[<+-| alert@+>]
\item First point.
\item Second point.
\item Third point.
\end{itemize}
\end{frame}\begin{frame} \begin{itemize}[<+-| alert@+>] \item First point. \item Second point. \item Third point. \end{itemize} \end{frame}
\begin{frame}
\begin{align}
A &= B \\
\uncover<2->{&= C \\}
\uncover<3->{&= D}
\end{align}
\end{frame}\begin{frame} \begin{align} A &= B \\ \uncover<2->{&= C \\} \uncover<3->{&= D} \end{align} \end{frame}
\begin{frame}
\begin{align}
A &= B \\
\uncover<2->{&= C \\}
\uncover<3->{&= D \\}
\notag
\end{align}
\vspace{-1.5em}
\end{frame}\begin{frame} \begin{align} A &= B \\ \uncover<2->{&= C \\} \uncover<3->{&= D \\} \notag \end{align} \vspace{-1.5em} \end{frame}
\begin{frame}
\rowcolors[]{1}{blue!20}{blue!10}
\begin{tabular}{l!{\vrule}cccc}
Class & A & B & C & D \\\hline
X & 1 & 2 & 3 & 4 \\\pause
Y & 3 & 4 & 5 & 6 \\\pause
Z & 5 & 6 & 7 & 8
\end{tabular}
\end{frame}
\begin{frame}
\rowcolors[]{1}{blue!20}{blue!10}
\begin{tabular}{l!{\vrule}c<{\onslide<2->}c<{\onslide<3->}c<{\onslide<4->}c<{\onslide}c}
Class & A & B & C & D \\
X & 1 & 2 & 3 & 4 \\
Y & 3 & 4 & 5 & 6 \\
Z & 5 & 6 & 7 & 8
\end{tabular}
\end{frame}\begin{frame} \rowcolors[]{1}{blue!20}{blue!10} \begin{tabular}{l!{\vrule}c<{\onslide<2->}c<{\onslide<3->}c<{\onslide<4->}c<{\onslide}c} Class & A & B & C & D \\ X & 1 & 2 & 3 & 4 \\ Y & 3 & 4 & 5 & 6 \\ Z & 5 & 6 & 7 & 8 \end{tabular} \end{frame}
\newenvironment{ballotenv}
{\only{%
\setbeamertemplate{itemize item}{\ding{56}}%
\setbeamertemplate{itemize subitem}{\small\ding{56}}%
\setbeamertemplate{itemize subsubitem}{\footnotesize\ding{56}}}}
{}
\setbeamertemplate{itemize item}{\ding{52}}
\setbeamertemplate{itemize subitem}{\small\ding{52}}
\setbeamertemplate{itemize subsubitem}{\footnotesize\ding{52}}
\begin{frame}
\begin{itemize}
\item<1-| ballot@1> First point.
\item<2-| ballot@2> Second point.
\item<3-| ballot@3> Third point.
\end{itemize}
\end{frame}
\begin{frame}
\begin{itemize}[<+-| ballot@+>]
\item First point.
\item Second point.
\item Third point.
\end{itemize}
\end{frame}\begin{frame} \begin{itemize}[<+-| ballot@+>] \item First point. \item Second point. \item Third point. \end{itemize} \end{frame}
\end{document}
+------------+
|TeX 使用指南|
+------------+
如何把多个文件组装在一起?
所用命令:\include, \includeonly
TeX Guru的回答
我想使目录表中显示到\subsubsection的标题该怎么办?
我想使目录表中显示附录,但前面没有第??章字样该怎么办?
所用命令:\setcounter, \tableofcontents \addcontentsline
TeX Guru的回答
当开始新的一节时,我希望公式自动从1开始编号,那该怎么办?
所用命令:\@addtoreset, \makeatletter, \makeatother,
TeX Guru的回答
章节标题太长该怎么办?
所用命令:\section, \\
TeX Guru的回答
在LaTeX中,插图单独显示在一页上,而且有相当多的空白。可我如果改成
\begin{figure}[t],就会把插图显示在文档尾部。这是为什么呢?
所用命令:\renewcommand, \floatpagefraction, \topfraction, \bottomfraction,
\textfraction.
TeX Guru的回答
在LaTeX中,如何使参考文献的编号只是没有方括号的阿拉伯数字或者上标?
所用命令:\renewcommand, \@biblabel, \makeatletter ... \makeatother
TeX Guru的回答
我用\pagestyle{empty}无法去掉所有页的页码,到底怎样可以去掉所有页的页码呢?
所用命令:\pagestyle, \thispagestyle
TeX Guru的回答
生成了有中文字符的DVI文件,该如何把它转化成PostScript文件呢?
所用程序:patchdvi, cdvia, dvidrv, dvips32
TeX Guru的回答
在文件中,想把用其它方法生成的PostScript图形包含进来, 可以采用什么方法?
所用命令:\includegraphics, \epsfig
TeX Guru的回答
CCT EMTeX中的汉字字体只有可怜的5种,而市面上却有相当多的 适用于Windows中的
True Type字体,有可能在CCT中用这些字体吗?
所用程序:cdvia -c
TeX Guru的回答
在调试LaTeX文件时,如果有一长段中出现了令人讨厌的错误,想把它去掉,但又希望继
续编译它后面的部分。如果LaTeX有块注释功能就太好了,
所用命令:\iffalse, \fi(TeX命令)
TeX Guru的回答
在Book类中的\pagestyle{}命令可以生成较为复杂的页眉,可我希望在页眉与正文之间有
一横线,该怎么办?
所用命令:\leftmark, \rightmark, \@evenhead, \@oddhead, \makeatletter,
\makeatother
TeX Guru的回答
+-------------+
|TeX 常见问题1|
+-------------+
整理:happytex
1.\makeatletter 和 \makeatother 的用法?
答:如果需要借助于内部有\@字符的命令,如\@addtoreset,就需要借助于另两个命令
\makeatletter, \makeatother。
下面给出使用范例,用它可以实现公式编号与节号的关联。
\begin{verbatim}
\documentclass{article}
...
\makeatletter % \renewcommand\theequation{\thesection.\arabic{equation}}
\@addtoreset{equation}{section}
\makeatother %
\begin{document}
...
\end{verbatim}
2.比较一下CCT与CJK的优缺点?
答:根据王磊的经验, CJK 比 CCT 的优越之处有以下几点:
1) 字体定义采用 LaTeX NFSS 标准,生成的 DVI 文件不必像 CCT 那样需要用
patchdvi 处理后才能预览和打印。而且一般 GB 编码的文件也不必进行预处理就可直接
用 latex 编译。
2) 可使用多种 TrueType 字体和 Type1 字体,生成的 PDF 文件更清楚、漂亮。
3) 能同时在文章中使用多种编码的文字,如中文简体、繁体、日文、韩文等。
当然,CCT 在一些细节上,如字体可用中文字号,字距、段首缩进等。毕竟 CJK 是老外
作的吗。
谈到 MikTeX 和 fpTeX, 应该说谈不上谁好谁坏,主要看个人的喜好了。 MikTeX 比较小
,不如 fpTeX 里提供的 TeX 工具,宏包全,但一般的情况也足够了。而且 Yap 比
windvi 要好用。fpTeX 是 teTeX 的 Windows 实现,可以说各种 TeX 的有关软件基本上
都包括在内。
3.中文套装中如何加入新的.cls文件?
答:放在tex文件的同一目录下,或者miktex/localtexmf/tex/latex/下的某个子目录下
,可以自己建一个。
4.怎样象第几章一样, 将参考文献也加到目录?
答:在参考文献部分加入
\addcontentsline{toc}{chapter}{参考文献}
语句即可
5.对于A4的纸型参数,如何使PDFLaTeX按照指定的letter输出?
答:设置参数letterpaper \usepackage[letterpaper]{geometry}
6.如何改变题注或脚注的标号?
答:重新定义\maketitle或者直接修改article.cls中的“
\renewcommand\thefootnote\@fnsymbol\c@footnote}%”这句话。
7.怎么给CJKnumber付初值?
答:计数器都是这样赋值的 \setcounter{\CJKnumber}{value}
8.怎样才能使Winedt错误关联?
答:"C:\?????\winedt\winedt.exe" "[Open('%f');SelLine(%l,8)]"
9.如何改变Reference的大小?
答:\renewcommand\refname{\begin{CJK*}{GB}{song}\small参考文献\end{CJK*}}
10.如何拷贝PDF和PS文件中的图片?
答:Adobe Acrobat中有专门的命令-“文件”-“导出”-“提取图象为”。。。当然
用选中区域再拷贝的方法也可以。实际上ps文件本身就可以被不少的图像处理软件打开,
然后就可以直接转换了。对于不支持ps文件的图像处理软件,则可以把ps文件转存为eps
文件,eps文件几乎可以被所有的图像/图形处理软件打开。
11.在左边列出输入的命令,在右边列出输出的排印结果,应该用什么命令?
答:分栏,然后用
\begin{verbatim}
Text
\end{verbatim}
如果做成表格形式,用\verb=Text=
12.如何用数字而非特定符号分段落?
答:用\enumerate
13.如何在参考文献加入脚注?
答:例如
\begin{thebibliography}{0}
\bibitem{companion} M.~Goossens, F.~Millelbach, and A.~Samarin, ``The
\LaTeX\ Companion'', Addison--Wesley, 1994 \footnote{test of footnote}
\end{thebibliography}
14.如何在章节、标题上加脚注?
答:使用\protect\footnote{....}命令,也可用\usepackage[stable]{footmisc}
15.正文中实现单栏到双栏,双栏到单栏的版式的混排,而且不换页,请问如何实现?答
:\usepackage{multicol}
\begin{document}
...
\begin{multicol}{2}
\end{multicol}
...
\end{document}\begin{document} ... \end{verbatim} 2.比较一下CCT与CJK的优缺点? 答:根据王磊的经验, CJK 比 CCT 的优越之处有以下几点: 1) 字体定义采用 LaTeX NFSS 标准,生成的 DVI 文件不必像 CCT 那样需要用 patchdvi 处理后才能预览和打印。而且一般 GB 编码的文件也不必进行预处理就可直接 用 latex 编译。 2) 可使用多种 TrueType 字体和 Type1 字体,生成的 PDF 文件更清楚、漂亮。 3) 能同时在文章中使用多种编码的文字,如中文简体、繁体、日文、韩文等。 当然,CCT 在一些细节上,如字体可用中文字号,字距、段首缩进等。毕竟 CJK 是老外 作的吗。 谈到 MikTeX 和 fpTeX, 应该说谈不上谁好谁坏,主要看个人的喜好了。 MikTeX 比较小 ,不如 fpTeX 里提供的 TeX 工具,宏包全,但一般的情况也足够了。而且 Yap 比 windvi 要好用。fpTeX 是 teTeX 的 Windows 实现,可以说各种 TeX 的有关软件基本上 都包括在内。 3.中文套装中如何加入新的.cls文件? 答:放在tex文件的同一目录下,或者miktex/localtexmf/tex/latex/下的某个子目录下 ,可以自己建一个。 4.怎样象第几章一样, 将参考文献也加到目录? 答:在参考文献部分加入 \addcontentsline{toc}{chapter}{参考文献} 语句即可 5.对于A4的纸型参数,如何使PDFLaTeX按照指定的letter输出? 答:设置参数letterpaper \usepackage[letterpaper]{geometry} 6.如何改变题注或脚注的标号? 答:重新定义\maketitle或者直接修改article.cls中的“ \renewcommand\thefootnote\@fnsymbol\c@footnote}%”这句话。 7.怎么给CJKnumber付初值? 答:计数器都是这样赋值的 \setcounter{\CJKnumber}{value} 8.怎样才能使Winedt错误关联? 答:"C:\?????\winedt\winedt.exe" "[Open('%f');SelLine(%l,8)]" 9.如何改变Reference的大小? 答:\renewcommand\refname{\begin{CJK*}{GB}{song}\small参考文献\end{CJK*}} 10.如何拷贝PDF和PS文件中的图片? 答:Adobe Acrobat中有专门的命令-“文件”-“导出”-“提取图象为”。。。当然 用选中区域再拷贝的方法也可以。实际上ps文件本身就可以被不少的图像处理软件打开, 然后就可以直接转换了。对于不支持ps文件的图像处理软件,则可以把ps文件转存为eps 文件,eps文件几乎可以被所有的图像/图形处理软件打开。 11.在左边列出输入的命令,在右边列出输出的排印结果,应该用什么命令? 答:分栏,然后用 \begin{verbatim} Text \end{verbatim} 如果做成表格形式,用\verb=Text= 12.如何用数字而非特定符号分段落? 答:用\enumerate 13.如何在参考文献加入脚注? 答:例如 \begin{thebibliography}{0} \bibitem{companion} M.~Goossens, F.~Millelbach, and A.~Samarin, ``The \LaTeX\ Companion'', Addison--Wesley, 1994 \footnote{test of footnote} \end{thebibliography} 14.如何在章节、标题上加脚注? 答:使用\protect\footnote{....}命令,也可用\usepackage[stable]{footmisc} 15.正文中实现单栏到双栏,双栏到单栏的版式的混排,而且不换页,请问如何实现?答 :\usepackage{multicol} \begin{document} ... \begin{multicol}{2} \end{multicol} ... \end{document}
16.辅助的Package放到哪个目录下?
答:不过非 miktex 自带的包最好放在 localtexmf 下,这样以后升级的时候方便些。
17.如何用fancyhdr宏包实现在页眉下画一粗一细两条横线?
答:试试下面的命令: \usepackage{fancyhdr}
\newcommand{\makeheadrule}{%
\makebox[0pt][l]{\rule[.7\baselineskip]{\headwidth}{0.8pt}}%
\rule[.6\baselineskip]{\headwidth}{0.4pt}\vskip-.8\baselineskip}
\makeatletter \renewcommand{\headrule}{%
{\if@fancyplain\let\headrulewidth\plainheadrulewidth\fi
\makeheadrule}}\makeatother
\begin{document}
\pagestyle{fancy}
....
\end{document}\begin{document} \pagestyle{fancy} .... \end{document}
18.能不能改变Chapter 起始页码仅从奇数页开始?
答:用 \documentclass[openany]{book} 让 \chapter 可以从任何页面开始。
19.如何在文中实现带圈的数字?
答:1)使用\textcircled{}命令,后面的参数可以是一个字符或者汉字(配合CJK),甚
至也可以是公式,但是它只会给第一个字符或者汉字加上 > 合适的圆圈,字体放缩命令
对它也有效,因此可以利用这点实现两个字符加圈的效果,但是需要仔细的调整尺寸,参
考如下命令: > \Large{\textcircled{\small{12}}}、\textcircled{九}。
2)使用pifont宏包,那里面有很漂亮的带圈的各种数字符号(仅限于阿拉伯数字,如果
想使用加圈的中文“一”至“九”就不行了)。在.tex > 文件中尝试下列命令:
\ding{172}~\ding{211}。
3)在GB和GBK字库中本来就有10个加圈数字形式,可以直接在CJK中使用。如果不超过11
的话应该够用了呵呵:①②③④⑤⑥⑦⑧⑨⑩,这些汉 > 字可以直接使用数字软键盘输
入(以智能ABC输入法为例,其实大部分输入法都是一样的):打开软键盘,选择“数字
序号”即可看到。
20.如何产生可变长的 Longrightarrow?
答:用\xleftarrow and \xrightarrow,例如
0←ζαF×△[n−1]−→−−∂0α(b)E∂0b0←ζαF×△[n−1]→∂0α(b)E∂0b
21.如何在公式中表示上下堆积关系?
答:在latex有一个命令\stackre{上部符号}{下部符号},但更好的一个是用宏包
amslatex中命令\overset和\underset。一个例子是
X∗X∗XbaX∗X∗Xba
+-------------+
|TeX 常见问题2|
+-------------+
1。怎样在多栏环境中使用单栏图表?
答:如果你在多栏环境中使用
\begin{figure} ... \end{figure}\begin{figure} ... \end{figure}
, 图形是不会出现的
。如果你用另外的命令
\begin{figure*} ... \end{figure*}\begin{figure*} ... \end{figure*}
, 图形就会超出右边或有
页的上边。解决的方法是把下面命令放在
\begin{document}前面
\makeatletter
\newenvironment{tablehere}
{\def\@captype{table}}
{}
\newenvironment{figurehere}
{\def\@captype{figure}}
{}
\makeatother
然后用 figurehere 和 tablehere 在你平常用 figure[h....] 和 table[h...]的地方。
2。怎样得到度(degree)的符号?
答:在\begin{document} 前面用 \newcommand{\grad}{\ensuremath{^{\circ}}} ,然后
你在文中就可用 45\grad等等了。
3。怎样得到一个欧元符号?
答:用\usepackage{textcomp} 和 \texteuro 或 \usepackage{marvosym} 和 \EUR都可
以。
4。当我应用fancyhdr时,我得到了太多'Overfull \vbox' 的信息?
答:这是因为缺省的标题空间太小的原因(文本的一行),不能包括fancy标题(1 line
of text + 1 rule)。在导言里面加\addtolength{\headheight}{2.5pt}即可。
5。当我用 fancyhdr时,左边和右边的题有交叉重合?
答:这是因为\section 等命令中的文本太长的原因,可用类似"\section[short
version]{very long version indeed}"来解决问题。
6。怎样从两栏页面中得到单栏的标题和摘要?
答:试试Donald Arseneau的
\documentclass{article}
....
\begin{document}
\twocolumn[
\begin{@twocolumnfalse}
\maketitle
\begin{abstract}
...
\end{abstract}
\end{@twocolumnfalse}
]
7。怎样改变只有几行文本的页边距?
答:把以下命令放在\begin{document}前面
\newenvironment{narrow}[2]{%
\begin{list}{}{%
\setlength{\topsep}{0pt}%
\setlength{\leftmargin}{#1}%
\setlength{\rightmargin}{#2}%
\setlength{\listparindent}{\parindent}%
\setlength{\itemindent}{\parindent}%
\setlength{\parsep}{\parskip}%
}%
\item[]}{\end{list}}
然后 \begin{narrow}{1.0in}{0.5in} ... \end{narrow} 就产生了左边缩小1.0 英寸和
右边缩小 0.5 英寸的效果
8。我的文本在开始时就停止不编译?
答:这是因为每一次文本编译时都有对应的*.aux文件(前一次产生的),所以删去这个
文件重新编译即可。
9。在eps上加公式的另一个方法。
答:1)建一个eps图形;
2)在你所想放置的地方写下文本(如公式);
3)在latex文本中用命令 \usepackage{psfrag} ;
4)用命令 \psfrag{formula}{some text $\sum_1^\infty \int \frac{a^2}{b_i}$ }让
latex为做工作。
例如
\documentclass[12pt]{article}
\usepackage{psfrag}
\usepackage{epsfig}
\begin{document}
\begin{figure}
\begin{center}
\psfrag{formula1}{some text $\sum_1^\infty \int \frac{a^2}{b_i}$}
\psfrag{formula2}{other text $\int_0^{\frac{a^2}{b}} \sqrt{c}$}
\epsfig{file=example.eps, width=12cm}
\end{center}
\caption{The example figure}
\label{exampl}
\end{figure}
\end{document}\begin{document}前面 \makeatletter \newenvironment{tablehere} {\def\@captype{table}} {} \newenvironment{figurehere} {\def\@captype{figure}} {} \makeatother 然后用 figurehere 和 tablehere 在你平常用 figure[h....] 和 table[h...]的地方。 2。怎样得到度(degree)的符号? 答:在\begin{document} 前面用 \newcommand{\grad}{\ensuremath{^{\circ}}} ,然后 你在文中就可用 45\grad等等了。 3。怎样得到一个欧元符号? 答:用\usepackage{textcomp} 和 \texteuro 或 \usepackage{marvosym} 和 \EUR都可 以。 4。当我应用fancyhdr时,我得到了太多'Overfull \vbox' 的信息? 答:这是因为缺省的标题空间太小的原因(文本的一行),不能包括fancy标题(1 line of text + 1 rule)。在导言里面加\addtolength{\headheight}{2.5pt}即可。 5。当我用 fancyhdr时,左边和右边的题有交叉重合? 答:这是因为\section 等命令中的文本太长的原因,可用类似"\section[short version]{very long version indeed}"来解决问题。 6。怎样从两栏页面中得到单栏的标题和摘要? 答:试试Donald Arseneau的 \documentclass{article} .... \begin{document} \twocolumn[ \begin{@twocolumnfalse} \maketitle \begin{abstract} ... \end{abstract} \end{@twocolumnfalse} ] 7。怎样改变只有几行文本的页边距? 答:把以下命令放在\begin{document}前面 \newenvironment{narrow}[2]{% \begin{list}{}{% \setlength{\topsep}{0pt}% \setlength{\leftmargin}{#1}% \setlength{\rightmargin}{#2}% \setlength{\listparindent}{\parindent}% \setlength{\itemindent}{\parindent}% \setlength{\parsep}{\parskip}% }% \item[]}{\end{list}} 然后 \begin{narrow}{1.0in}{0.5in} ... \end{narrow} 就产生了左边缩小1.0 英寸和 右边缩小 0.5 英寸的效果 8。我的文本在开始时就停止不编译? 答:这是因为每一次文本编译时都有对应的*.aux文件(前一次产生的),所以删去这个 文件重新编译即可。 9。在eps上加公式的另一个方法。 答:1)建一个eps图形; 2)在你所想放置的地方写下文本(如公式); 3)在latex文本中用命令 \usepackage{psfrag} ; 4)用命令 \psfrag{formula}{some text $\sum_1^\infty \int \frac{a^2}{b_i}$ }让 latex为做工作。 例如 \documentclass[12pt]{article} \usepackage{psfrag} \usepackage{epsfig} \begin{document} \begin{figure} \begin{center} \psfrag{formula1}{some text $\sum_1^\infty \int \frac{a^2}{b_i}$} \psfrag{formula2}{other text $\int_0^{\frac{a^2}{b}} \sqrt{c}$} \epsfig{file=example.eps, width=12cm} \end{center} \caption{The example figure} \label{exampl} \end{figure} \end{document}
10。怎样把一个大表格横向放置?
答:用宏包\usepackage{rotating},然后变换
\begin{table}
....
\end{table}\begin{table} .... \end{table}
为
\begin{sidewaystable}
....
\end{sidewaystable}\begin{sidewaystable} .... \end{sidewaystable}
注意这个旋转很可能在你的预览中不会再现。
11。关于itemize。
答: 清单至多有四级
$\bullet$ - \labelitemi
\textbf{ --} - \labelitemii
$\ast$ - \labelitemiii
$\cdot$ - \labelitemiv
你可重新定义
\def{\labelitemi}{$\spadesuit$}
\renewcommand{\labelitemi}{$\spadesuit$}
也可在itemize 环境中\item命令中同时拥有不同的标签
\begin{itemize}
\item[$\heartsuit$] ...
\item[$\diamondsuit$] ...
\item[$\clubsuit$] ...
\end{itemize}\begin{itemize} \item[$\heartsuit$] ... \item[$\diamondsuit$] ... \item[$\clubsuit$] ... \end{itemize}
数字序列至多四级顺序可显示,如
1,2 ... - \enumi
(a), (b) ... - \enumii
i,ii,... - \enumiii
A., B. ... - \enumiv
你也可指明选项,如
\begin{enumerate}
\item[(1)]
\item[(2)] ...
\end{enumerate}\begin{enumerate} \item[(1)] \item[(2)] ... \end{enumerate}
12。我怎样重新定义items之间的距离?
答:用miktex2.1中的mdwlist宏包,也可从CTAN的
macros/latex/contrib/supported/mdwtools.zip 上下载后。
13。怎样改变行距?
答:用doublespace宏包,参数"coef"是\baselinestretch文本中定义数值,则可用命令
\begin{spacing}{coef} % coef=2 时双倍行距了
... text
\end{spacing}\begin{spacing}{coef} % coef=2 时双倍行距了 ... text \end{spacing}
14。 怎么定义一个定理型环境?
答:用theorem宏包,例子:
\newtheorem{howto}{Questions}[section]
\theoremstyle{change}
\theorembodyfont{\itshape}
\theoremheaderfont{\scshape}
15。怎样在latex中包括一每列的源文件?
答:例如
\floatstyle{boxed}
\restylefloat{figure}
\begin{figure}[hb]
\begin{listing}{1}
#include
int main(int argc, char **argv)
{
int i;
for (i = 0; i < argc; ++i)
printf("argv[%d] = %s\n", i, argv[i]);
return 0;
}
\end{listing}
\caption{A numbered C program}
\end{figure}\begin{figure}[hb] \begin{listing}{1} #include
16。怎样把附录A中的公式序号变为 A.1, A.2, .... B.1, B.2, ...的形式?
答: \appendix
\makeatletter
\renewcommand\theequation{A.\@arabic\c@equation }
\makeatother
\setcounter{equation}{0}
或者 \renewcommand{\theequation}{A.\arabic{equation}}
17。怎样把一个 \vertatim 放入 verbatim环境中?
答:用fancyvrb宏包定义自己的 verbatim环境。
18。怎样改变主文本中的字体?
答:命令: \textnorml;申明: \normalfont\ttfamiliy
19。怎样定义一个命令或申明 ?
答:例如一个命令: \newcommand{\name}{1]{\textsc{#1}}
一个申明: \newcommand{\name}{1]{{\normalfont\scshape #1}}
20。怎样合并字体命令?
答: \textrm{...} {\rmfamily...} roman familiy
\textsf{...} {\sffamliy...} sans serif family
\texttt{...} {\ttfamily...} typewritter family
\textmd{...} {\mdserier...} medium series
\textbf{...} {\bfseries...} bold series
\textup{...} {\upshape...} upright shape
\textit{...} {\itshape...} italic shape
\textsl{...} {\slshape...} slanted shape
\textsc{...} {\scshape...} small caps shape
size \tiny \scriptsize \footnotesize \small \normalsize \large
\Large \LARGE \huge \Huge
\emph{...} {\em ...} emphasized
\textnormal{...} {\normalfont...} document font
21。 怎样在页眉和页脚中划一道横线?
答:用 fancyhdr宏包。
22。怎样改变章节字体(section fonts)?
答:用titlesec宏包,例如
\usepackage[nops,sf,small,compact]{titlesec}
23。怎样做一个页面设置?
答: \usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead{} %clear all fields
\fancyhead[RO, LE]{\bfseries \LaTeXe{} HOWTO}
\fancyfoot[LE, RO]{\thepage\ of \pageref{LastPage}}
\fancyfoot[LO, CE]{}
\fancyfoot[CO, RE]{Techical Report}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\footrulewidth}{0.4pt}
24。怎样实现"page M of N"的形式?
答:用lastpage宏包,任何时候你都可在文本中用 \pageref{LastPage},只是须注意当
用了fancyhdr宏包时,lastpage宏包就须在它后面。
25。怎样实现下划线的标题?
答:
\def\@evenhead{\makebox[0pt][l]{\rule[-0.15cm]{\textwidth}{0.1mm}}\hbox{}%
\textbf\thepage\hfil\leftmark}%
\def\@oddhead{\makebox[0pt][l]{\rule[-0.15cm]{\textwidth}{0.1mm}}\hbox{}%
{\rightmark}\hfil\textbf\thepage}%
26。 怎样把一个浮动对象固定下来?
答:例如
\begin{figure}[h]
...
\end{figure]
27。怎样定义一个新的浮动 "float" 形式?
答:用float宏包,用\newfloat就可定义新的浮动形式,它的语法是:
\newfloat{type}{placement}{ext}{within}
- type 是浮动新类型名
- placement 可以是 t, b, p, h 和 H
- ext 是以章节列序的任何图表的后缀名
\floatstyle{style}, 其中 style 可以是
- plain, 空白
- boxed, 盒子
- ruled,
\floatname{float}{floatname}
定义了浮动标题名,像图的 "Figure" 等等。
\restylefloat{float}用于改变图表的标准浮动形式,例如可以
\floatstyle{ruled}
\restylefloat{table}
一个例子是:
\documentclass{article}
\usepackage{float, times}
\thispagestyle{empty}
\floatstyle{ruled}
\newfloat{Program}{thp}{lop}[section]
\floatstyle{boxed}
\newfloat{algorithm}{thp}{loa}
\floatname{algorithm}{Algorithm}
\begin{document}
\section{Let's begin}
This document show some possibilities of \texttt{float.sty}
for floating objects.
\begin{Program}
\begin{verbatim}
#include
int main(int argc, char **argv)
{
int i;
for (i = 0; i < argc; ++i)
printf("argv[%d] = %s\n", i, argv[i]);
return 0;
}
\end{verbatim}
\caption{A simple C program}
\end{Program}
....
\end{document}
28。 怎样让文字在一个窄小的浮动图周围?
答:用floatfig宏包,其改进宏包是floatflt宏包。语法是
\begin{floatingfigure}[options]{width of figure}
figure contents
\end{floatingfigure}
一个例子是:
\documentclass{article}
\usepackage{floatfig, epsfig}
...bla bla bla
\par
\begin{floatingfigure}{6cm}
... anything possible in figure environment
\end{floatingfigure}
后面的文本将会和浮动图形平行 ,可惜floatfig宏包不是Miktex自带的。
也可用
\begin{wrapfigure}[nlines]{placement}{width}figure, caption, etc.
\end{wrapfigure}
- nlines定义了文本折行为,每一个方程占3行。
- placement水平位置(l,r)
- width图形宽度
一个例子是
\begin{wrapfigure}{r}{3in}
\begin{boxit}
\begin{center} This is a "wrapfigure" \end{center}
\caption{A wrapfigure example}
\end{boxit}
\end{wrapfigure}
注意, wrapfigure 是不浮动的,所以它可能和浮动图形的顺序就不一样了,并且它不能
在“列表list”中,详见王磊的插图指南。
也可用 picins 宏包,命令是
\parpic(width,height)(x-off,y-off)[Options][Position]{Picture}
段落文本
除了 Picture 以外所有的命令都是可选的,详见王磊的插图指南。
29。怎样使图形并列?
答:用subfigure宏包。
一个例子是 \begin{figure}
\centering
\mbox{ \subfigure[Big]{\includegraphics ...} \quad
\subfigure[Small]{\includegraphics ...} \quad
\subfigure[Medium]{\includegraphics ...} \quad }
\caption{Three subfigures}
\label{fig:subfigures}
\end{figure}\begin{figure}[h] ... \end{figure] 27。怎样定义一个新的浮动 "float" 形式? 答:用float宏包,用\newfloat就可定义新的浮动形式,它的语法是: \newfloat{type}{placement}{ext}{within} - type 是浮动新类型名 - placement 可以是 t, b, p, h 和 H - ext 是以章节列序的任何图表的后缀名 \floatstyle{style}, 其中 style 可以是 - plain, 空白 - boxed, 盒子 - ruled, \floatname{float}{floatname} 定义了浮动标题名,像图的 "Figure" 等等。 \restylefloat{float}用于改变图表的标准浮动形式,例如可以 \floatstyle{ruled} \restylefloat{table} 一个例子是: \documentclass{article} \usepackage{float, times} \thispagestyle{empty} \floatstyle{ruled} \newfloat{Program}{thp}{lop}[section] \floatstyle{boxed} \newfloat{algorithm}{thp}{loa} \floatname{algorithm}{Algorithm} \begin{document} \section{Let's begin} This document show some possibilities of \texttt{float.sty} for floating objects. \begin{Program} \begin{verbatim} #include
30。把一幅 .eps 横向放置后,怎样使标题变为相应的形式?
答: \usepackage{rotating}
和
\begin{sidewaysfigure}\centering
\includegraphics[width=?cm]{*.eps}
\caption{...}
\end{sidewaysfigure}\begin{sidewaysfigure}\centering \includegraphics[width=?cm]{*.eps} \caption{...} \end{sidewaysfigure}
+-------------+
|TeX 常见问题3|
+-------------+
压缩空间
1。页面设置
a4 会给你一个较小的页面,为了使用更多的控制,可用 geometry宏包和命令 \layout
。
2。改变长度
在latex里改变长度的命令是 \addtolength 和 \setlength。latex可认的是 cm, mm,
in 和 pt. 变量可设为负数。一个例子是 \addtolength{\parindent}{-5mm}
一些有用的变量是:
页面设置
\columnsep: 列间距
\topmargin: 页眉到页边的距离
\topskip: 页眉与正文的距离
\textheight: 正文的高度
\textwidth: 文本的宽度
\oddsidemargin: 奇数页的左面页边距
\evensidemargin : 偶数页的左面页边距
段落
\parindent: 段落缩进距离
\parskip: 段落间的距离
浮动图表
\floatsep: 浮动对象之间的距离
\textfloatsep: 最后一个浮动对象顶端或第一个浮动对象底端与正文之间的距离
\intextsep : 文中浮动顶端与底端所留的距离
\dbltextfloatsep 是在双列输出时用 \textfloatsep 的数值
\dblfloatsep 是在双列输出时用 \floatsep 的数值
\abovecaptionskip: 标题上方的距离
\belowcaptionskip: 标题下方的距离
数学公式
\abovedisplayskip: 公式前的距离
\belowdisplayskip: 公式后面的距离
\arraycolsep: 在一个array中列之间的空白长度
列表
\topsep: 第一个item和前面版落间的距离
\partopsep: 当在一个新页开始时加到 \topsep 的额外空间
\itemsep: 连续items之间的距离。
3。环境
宏包 atbeginend.sty 提供了 \BeforeBegin{environment}{code-to-execute},
\AfterEnd 等等命令。这些命令可去掉环境外面和内部的空间。例如
\AfterBegin{itemize}{\addtolength{\itemsep}{-\baselineskip}} 就在环境内以重新
设置 \itemsep 来压缩items之间的距离 。
mdwlist 宏包有一个 itemize* 环境; paralist 宏包提供了一个item之间距离压缩环境
和一个使每个item不在新的一段开始的 inparaenum 环境。
4。图表
为了节约空间,可用 subfigure 宏包把多幅图形放在一人图形环境中,也可用
floatflt 宏包把图形用文本包围起来。
当有图表时, LaTeX 缺省值不会在超过 70% 的页中加文本。这个可有
\begin{document}加上
\renewcommand\floatpagefraction{.9}
\renewcommand\topfraction{.9}
\renewcommand\bottomfraction{.9}
\renewcommand\textfraction{.1}
\setcounter{totalnumber}{50}
\setcounter{topnumber}{50}
\setcounter{bottomnumber}{50}
即可。
另外,可用 caption宏包减少标题尺寸。
对于一个大的表格,可用 \setlength{\tabcolsep}{1pt}来减少表格的列间距离;也可用
\resizebox{!}{5cm}{\begin{tabular} ... \end{tabular}}把整个表格当作一个图形
5。标题
一个标题周围的距离是由 \parskip, \baselineskip等来决定的,要注意的是 LaTeX 宁
愿在一页中留下空白,也不愿把一个标题放在此页的底部。如果你要重新定义这些命令,
就应该仔细的读一下 titlesec 宏包。
6。文献里面的内容
宏包 mulitoc 可让在单列文本中有一个两列的表格内容存在。
可用 setspace 宏包来减少文献中的行间距离(在文本中也是一个道理)
\begin{spacing}{0.9}
\tableofcontents
\end{spacing}
...
\begin{spacing}{0.9}
\bibliographystyle{plain}
\bibliography{refs}
\end{spacing}
如果选用了 natbib 宏包的话(推荐),就可以用 \bibsep 来控制items之间的距离。否
则就可在导言区里用下面的命令。
\let\oldthebibliography=\thebibliography
\let\endoldthebibliography=\endthebibliography
\renewenvironment{thebibliography}[1]{%
\begin{oldthebibliography}{#1}%
\setlength{\parskip}{0ex}%
\setlength{\itemsep}{0ex}%
}%
{%
\end{oldthebibliography}%
}
+-------------+
|TeX 常见问题4|
+-------------+
2003年4月15日更新!
本期主题是《运筹学—线性系统优化》的实战篇,关于本书的各种模版和一些TeX的实例(
包括幻灯片的源文件)请到运筹学书的模版和PDF文件下载;一些排版原则请到书的一些专
业排版原则中讨论。而下面只是使用技巧,这本书可是自己排的版,但完全达到了出版社
的要求,应该很有用吧。本使用技巧对初学者非常有用,对于论坛上的高手们只是起了一
个参考作用而已。预计一个月后就能完全更新完全,因为我的论文还没写啊。
1、模版的种类
(1)包括了书的两种类型,两种书的类型的章节标题形式为
第1章 第一章
1 第一节标题 一 第一节标题
1.1 第一小节标题 一 第一小节标题
1.1.1第一小小节标题 (一) 第一小小节标题
(1) 再下一小节标题 1 再下一小节标题
① 还小一层次的标题 (1) 还小一层次的标题
(i)再小一层次的标题 ① 还小一层次的标题
(a)还小一层次的标题 (i)再小一层次的标题
本书是采用的最左边的格式;右边的格式是对一些出版社而定的,但还没完全达到要求,
特别是目录还需要大家来测试出来。ORmain1与ORmain2就是用手工输入确定参考文献顺序
的模版,DEmain1与DEmain2就是据此修改而得的用Bibtex自动确定参考文献的模版。由上
面的说明,ORmain2与DEmain2还不成熟。当用了Bibtex来得到参考文献时,因为我用了
\usepackage{ulem,CJKulem}宏包命令,所以修改了plainat.bst和unsrtnat.bst文件。
(2)据此书模版修改而得到的幻灯片模版ORslidem.tex是用PDFslide来实现的,这有几
个好处可见模版的抬头说明。这个模版的最大好处是可以用任何.pdf文件来做为它的背景
,我就选择了pdfscreen下的一个.pdf背景文件。
(3)据此书模版修改而成的文章模版myjournal.tex适合于中英文的文章。
2、版面问题
每一种书内有B5、16开、A4三种页面设置,这是出版社给的标准设置,建议只采用定义版
面和版心大小的方面来进行设置,而不是像word那样定义页边距来实现页面设置!下面对
问题进行分类说明。
首先,在每一级标题中,字体应该一粗一细,但不要使用加粗命令来得到这个效果。在本
书中,出版社采用了正文为11pt的宋体类型,由此有
第1章 隶书居中Huge
1 第一节标题 楷书居中Large
1.1 第一小节标题 幼园齐左large
1.1.1第一小小节标题 仿宋空两字normalsize
(1) 小小小节标题 宋体空两字normalsize
① 还小一层次的标题 宋体空两字normalsize
(i)再小一层次的标题 宋体空两字normalsize
(a)还小一层次的标题 宋体空两字normalsize
要注意的是:如果只到“ 小小小节标题”的命令时,要尽可能地用“(1) 小小小节标题
”,如果这时表示的是列举,就不用断行。但是,如果这儿表示是标题时,特别是“ 小
小小节标题”下面还有小标题“①”时,即这儿表示分类叙述,则标题后的内容要另起一
行(或者说是标题要独立成行!);并且这时要注意不要背题,即至少下面应有一行正文
内容,这是很重要的!!!所以重新定义了\paragraph命令,这个命令可以实现标题形式
为(1)...(2)...等,并且这时能自动为避免背题现象,推荐!!!
其次,书眉要采用footnotesize的楷体才对,这时也没有大家原来讨论过的overfull的警
告信息了;页码要放在切口。
第三,图表标题的字号应和正文一样,而其内容可以采用small和footenotesize两类,由
于书中有大量的分数,所以采用了small这一类的选项。这里要注意的是,图表标题采用
了楷体,而内容全部采用了宋体,即使是定理结构类型中的图表内容也应和正文中的形式
一致!
3、公式问题
(1)自动调整大小的括号用符号
左右括号,左右中括号等等的符号,常常会因为方程式内容的关系,需要动态的依内容改
变大
小,在LaTeX 中要达到这样的效果,可以在这些符号之前加上\left和\right来达成这样
的效果,
在左边的括号,前面就加上\left,而在右边的括号就加上\right。这两个命令,一定要
成对使用
,也就是,在一个数学模式中,有一个\left就要有一个\right。如果你只需要其中一个
,(如在作
条件列示的时候)那么可以用\left\{而右边则是用\right.用句号来表示一个空的符号。
可以使用这
两个命令的符号有
( ) [ ]
\{ \} | \|(||符号)
/ \backslash(反斜线) \lfloor \rfloor
\lceil \rceil \langle \rangle
\uparrow \Uparrow \downarrow \Downarrow
\updownarrow \Updownarrow
(2) 本书的一些特殊设置
当采用标准的\frac{}{}命令时,基本上不做特殊的改动。由于出版社要求行中的公式里
面的分子分母不改变字号,所以定义了一个myfrac命令:
\newcommand{\myfrac}[2]{\frac{\displaystyle
#1}{\displaystyle\vphantom{\between}#2}}%显示公式的标准尺寸
\newcommand{\myfracnovm}[2]{\frac{\displaystyle #1}{\displaystyle#2}}%
%\newcommand{\myfrac}[2]{\genfrac{}{}{}{0}{#1}{#2}}%根据ams宏包做的定义,不推荐
这个
%增加公式和表格环境中公式上下的间距,特别是能避免上下分数粘在一起和表格内分数压
线的问题
\setlength{\extrarowheight}{3pt}
%以下两命令可以用来增加表格中行内公式的上下间距以免压线,这个公式不会显示出来
\newcommand{\myvphantom}{\vphantom{\frac{\sum}{\sum}}}
\newcommand{\mybigvphantom}{\vphantom{\frac{\frac{\sum}{\sum}}{\frac{\sum}{\sum}}}}
注意上面的\vphantom的特殊效果,由此以下的宏包就非常重要了!!!
\usepackage{delarray}%使array环境的[t]或者[b]选项生效;并可解决表格中的文字上
下位置不对的问题
另外,不得不提的分块矩阵的问题,特别推荐pmat宏包,这个的兼容性非常强,模版中有
说明。
而我们平时没注意的是用了\leq和\geq命令,但应该为\leqslant和\geqslant命令。
在公式中,如果表示分类条件,则前面要用“,”号,否则后面要用括号,比如:
$$\begin{cases}0,&\mbox{如果为否}\\
1,&\mbox{如果为是}\end{cases} $$\begin{cases}0&(i=1)\\
1&(i=1,2,\cdots,n)\end{cases}
顺便于说一下,全文均用了\cdots命令,而没有用\ldots命令,这也省了很多麻烦。在上
面的右边公式中,因为1,2,\cdots,n要经常使用,所以可以定义一个
\newcommand{\myn}{1,2,\cdots,n}来表示它。这应该是一个良好的习惯,因为可以按出
版社的要求进行统改。
而经常是因为公式作为一个整体的原因导致不能很好分页,所以在该用
\allowdisplaybreaks ... \displaybreak[0]的地方一定要用这一组命令。但要注意的是
这一组命令最好要在局部环境下应用,因为eqnarray环境对他是比较敏感的。
4、三线表、列表、文献格式
模版中有详细的说明,特别是本书里面的设置很有用。
首先,要注意的是,图表混排时的小表格不能放在订口,而应该放在切口才行,我用的是
floatflt宏包,当选用[p]选项时就行了。
其次,表格的宽度应该长于标题的长度。当出现多个了图形时,只需要一个标题就行了,
这个可参见动态规划章节中的前面几个标题,所以只需要caption一个宏包就行了,不推
荐subfigure宏包。
第三,参考文献排列有两种方式,一是依正文中出现的顺序排列,这时正文中可以用“参
见文献{6-8]”的形式;二是文献用拼音方式排列,而在正文中就应该用作者-年代的方式
引用。由于拼音排序还没有解决,所以本书采用了第一种方式。
5、特殊字符
包括了罗马数字、度、破折号等字符的输入。其中,破折号、不存在符号、连字符、半字
符是各不相同的,其分别的输入应该为---\!---、--\!--、--、-,因为出版社认为它们
有点靠下,书中都把它们定义了。例如
两阶段法---\!---阶段一,时间--资源的优化,$\alpha$-方法,而不存在符号是用于矩
阵内的。
要注意的是在正文的英文单词的首字符要大写,比如基变量(Basic Variable)。外文名字
方面应该用R. Bellman,而不是R·Bellman的格式。并且外文名字要统一,比如拉格朗日
等人名,要么全用中文,要么全用外文原文。
6、定理结构
当有鱼尾号作为定理结构的开始时,就可以不空两字符了,但如果没有的话,定理结构的
开始就应该空两字符。本书的“【】”型的定理结构是老船长给出的,其他的要求可以再
麻烦他。
其他的排版技巧就要到论坛里面讨论了,那里有很多老大。再一次感谢各位网友的帮助,
没有大家,这本书是排不出来的。出版社的编辑老师说可以和他们的专业LaTeX排版相比
了,这可是大家的功劳,我对程序是一点都不懂的。对于本期主题有什么建议和问题,请
到论坛实战篇讨论。
+-------------+
| 疑难解析 |
+-------------+
问题不多,但是有代表性。
问题: 如何生成ps(PostScript)文件?
回答: 方法有二
1,用dvips这个工具,自己琢磨去吧,很麻烦,很麻烦的;
2,如果使用windows系统的话,在打印机中安装HP LaserJet 4/4M PostScript
的驱动程序。在浏览DVI文件的时候,打印到文件就可以了。文件是保存为*.prn的
,
您只要改他为*.ps就可以了。
问题: 为什么在浏览dvi文件时,告诉我没有makepk这个程序?
回答: 看看您的emtex是完全的吗?如果不全,没有makepk.exe,那么请到“编译器”中
去下
载一个完全的版本,并安装。
最好把cctwin32拷贝到emtex的目录中去。在运行的时候,修改一下路径设置。
最好把emtex下的setenv.bat加入到autoexec.bat中,系统在启动的时候就可以执
行路
径设置。
问题: 如何插入图象?
回答: 我知道的方法有,
1,使用emtex下的img2cct.exe工具。
首先将图象改变为单色BMP,用画笔就可以做这件事情,提醒在保存的时候一定要
存为
单色图。
例如有单色BMP文件test.bmp
然后执行命令:img2cct test.bmp -t3 -c0
具体img2cct的参数,可以直接执行"img2cct.exe"来查看
最后将img2cct.exe生成的test.tex文件的代码拷贝到您的大作中,适当调整位置
,就
可以了。
您可以下载test.zip(4K),看看是如何emtex是如何嵌入图象的。
2,使用 Scientific WorkPlace(Word) 的用户,只要菜单上File/Import
Picture
功能就行。
问题: 为什么cct&emtexsetup无法安装?
回答: 由于Windows系统中的环境变量太多,install程序无法顺利安装。
因此把autoexec.bat中所有的语句前面都加上"rem",然后重新启动计算机,再安
装一
次。安装完毕之后,改回到以前的autoexec.bat,就万事OK了!
注:下面的内容都是从水木清华,南大小百合、笑书亭等BBS下载的。
问题: 现在很多文章的定理, 定义, 推论, 例子都采用统一编号, 不再是
独立编号, 如定义1.1, 接下来可能是定理1.2, 然后推论1.3...
怎么做一个总的框架环境, 实现这种自动的编号吗?
回答:
\newtheorem{athm}{\heiti \t}[section]
\newenvironment{thm} [1] {\def\t{#1}
\begin{athm} \fangsong \rm}
{\end {athm}}
正文中如下使用即可:
\begin{thm}{定义}
...
\end{thm}
或
\begin{thm}{定理}
...
\end{thm}
等等.
问题: 在教科书中出现一种字体, 用于实数域R或复数域C等的表示.
象这种非常用字体怎么使用?
还有向量我们常用黑体表示, 而\bf是正体的黑体, 公式中习
惯用斜体, 有斜体的黑体么?
回答: 使用
\font\aaa=msbm10 scaled \magstep 0
或
\newfont {\aaa} {msbm10 scaled \megstep 0}
定义新的字体\aaa
正文中如下使用:
$..... \aaa \mbox{R} ...$
注1: 以上字体msbm10你可参看tfm目录下的有关文件, 多是有
趣的字体, 你可以逐一的试试.
如果想用斜体的黑体, 把上述字体库名改为cmbxsl10即可.
注2: \megstep 0的数字0是放大参数, 改为0-5(?)的数可以得
到不同大小(数字大字就大)的字, 当然msbm9就比msbm10字
问题: 在使用某些字体时, (有.TFM文件) 在编译时没出错,
但在显示时就发现找不到.PK的字库, 怎么办? 要到哪
里去搞这些字库?
回答: 您大可不必去找字库, CCT EMTEX提供了字库生成程序.
你只需如下操作即可: (假设你生成的文件是test.dvi)
makepk -r300 test.dvi > temp.bat
temp.bat
这样就生成了.DVI中用到的字体的字库文件了(.PK)
问题: 如果公式不独立一行, 而是和文字同处一行, 这时怎么能让
公式显示得大一些: 在有求和或分数时?
在矩阵中, 也发现矩阵的元素如果有分子分母, 也显得特小,
很不合适, 有什么办法么?
回答: 大眼睛也是很笨笨的说.
一开始就是不会, 后来用了一种很不怎样的方法, 把需要加大
显示的一堆括起来, 再放大:
$ .... \mbox{\Large $ <要放大的公式> $} ... $
后来才发现很简单的说, 只要在需要显示大一点的公式前加:
\displaystyle 即可. (在丁卫星 的书后面的例子中用到
过, 可惜一直没发现)
如: \displaystyle \frac{\partial F}{\partial x_1}
不过, 大眼睛还解嘲道: 我前面用的那种字体用得很方便呀,
把\Large 改成 \LARGE还能再大呢! 嘿嘿...
问题: 在公式或定理, 定义编号上, 我不想按原来的格式, 如
定理4.2, 而想用定理4.1.2. 或者就直接定理123, 怎么
作修改?
回答: 用\renewcommand重新定义一下标号就可以了.
\renewcommand {\theequation} {\arabic{chapter}.
\arabic{section}.\arabic{eqation}
后标号就成了 4.1.2这样的了.
(在article风格中是section和subsection)
注: 那些变量\the*也可以用于自己定义的环境中, 如
\newtheorem {mythm}{\hskip 2 \ccwd \heiti定理}
后, 就可以
\renewcommand {\themythm} {\arabic{mythm}}
问题: 怎么使用不同的字号和字体?(中英文)
怎么使用双页?(就象书那样)
\documentstyle后面的选项和格式都有什么?
回答: 1.关于字号, 你如果是想改通篇文章的字号. 最简单的方法是
将第一句 \documentstyle[选项]{格式}
(选项有...,9pt,10pt(默认),11pt,...;
twoside,twocolumn,proc,oneside(默认);
leqno(默认),fleqn,epsf.
格式有book,report,article,letter;
cbook,carticle,...)
的选项选你需要的大小.
2.如想选用双页, 就用twoside,
(cbook默认就是twoside, 页码在上面, 章的首页页码在下)
3.在正文某处想改字号大小, 英文用
\tiny, \scriptsize, \footnotesize, \small, \normalize,
\large, \Large, \LARGE, \huge, \Huge
中文用
\zihao{n} 此处n可取值: 0(初号),1(一号),2(二号),3(三号),
4(四号),-4(小四),5,-5,6,7
4.关于字体, 英文常用的: \bf黑体, \rm罗马, \sl斜体, \cal花体
\sc, \it公式缺省, \sf
不常用的详见前文所述.
中文常用: \songti, \kaishu, \heiti, \fangsong, \biaosong,
问题: 中文章节如何排版(自动生成)?目前我只能得到英文风格的
“Chapter 10”字样。能够生成中文的么?
回答: 我是这样做的, 加个*号, 不让"chapter 10"出来:
\chapter*{\centerline{\heiti 第十章 \quad 多变量函数的微分学}}
\setcounter{chapter}{10}
%后面的一句是修正该章定理定义等的章的编号
如果你想爽一点, 那么改 \EMTEX\TEXINPUT\CLaTeX\CBOOK.STY
(如果你用的cbook格式)
把\def\@chapapp{Chapter}改为\def\@chapapp{}
然后再在你的.CTX中加上
\renewcommand {\thechapter} {第\arabic{chapter}章}
然后你就可以用 \chapter{章题} 了.
注: 在你用爽一点的方法时, 定理定义等的编号就出问题了 (可能是
"定理第10章.4"之类), 那是因为 \thechapter和\arabic{chapter}
不太一样的原因, 你只需重定义一下编号, 用后者替换前者即可.
问题: 如何在CCT EMTEX的文章中插入图象文件?
在插入图象文件时, 我发现它是左对齐的, 能让它居中么?
回答: 在CCT EMTEX提供的软件环境下, 你可以将一个黑白双色的图象
文件插入到文章中, 具体步骤是:
1. 先得到一个黑白双色的.PCX格式的图象文件.
可能你是用画笔画的一个.BMP文件, 那么它可能就是16色或
256色或更多色(虽然你可能只使用了黑白两色作图), 那么
你首先必须把它转成2色.PCX文件. 在使用中, 我发现wingif
最好用(用alchemy.exe转化好象后面一步无法通过): 你先把
图在wingif中读入, 再点Edit菜单下的Monochrome Dither,
然后File/Save, 在对话框中点Format>>, 然后选PCX, 存盘
即可. (wingif在.141 /incoming/tools/wingif.rar)
2. 使用CCT自带的工具img2cct.exe转化, 自动生成一个.tex文
件和.bmf文件(img2cct的参数使用请打img2cct回车)
3. 你将生成的.tex文件插入到你文章的正文中. 也可用
\input fig1.tex %假设该图名为fig1.bmf
4. 编译即可. (可参看CCT自带的使用手册)
注: 1. 你会发现图形并不在一行的中间, 这可能使你很不满意, 不要紧,
你只要稍加修改即可. 我们看一个例子, 这是fig1.tex
\vbox{\hsize7.556 true cm
\vskip4.9389 true cm
\relax\hbox to\hsize{\hbox to0pt{\special{BMF=FIG1.BMF}}\hss}\hss}
我们只需将{\special{BMF=FIG1.BMF}}用\centerline括起来即可.
即改为 {\centerline{\special{BMF=FIG1.BMF}}}
2. 这只是点阵图, 所以分辨率有限, 为了使图象效果好些, 你可能要
把图画得大一些, 如上的图是按-r180的参数生成的, 原图是500X350.
大家自己算算要画多大生成的图才不至于太小.
3. 有一个网友以前提供给我一个.pcx到.bmf的文件, 可惜后来我找不到
了, 因为我打的书, 插图有专人画, 不用我管, 所以我也没再麻烦他要了.
使用该文件会简单很多, 不一定要求是2色的图象了. 就用不着麻烦地使
用wingif了.
问题: 我打矩阵时, 发现矩阵(使用array环境)的行距特别小,
显得很挤, 有什么办法么?
回答: 最简单的方法是来个空行, 多打个\\.
另外, 大家都知道修改行间距可以改: \baselineskip <距离>
或\renewcommand{\baselinestretch}{<实数>}来达到目的.
而修改array的行距也有相应于后者的语句:
\renewcommand{\arraystretch}{<实数>}
该数是1.0时, 是缺省情况; 如果是1.5, 则间距为原来的1.5倍.
注: 1.不过我试了一下, 发现对一般的array很有效, 但对于复杂的array,
比如说矩阵每一项都有分子分母, 然后用的\displaystyle的, 就
显得效果不大.
2.array中, 列间的间距是\arraycolsep, 这个我没试过.
问题: LaTeX的连字符, 连数符, 破折号; 单引号, 双引号.
回答: LaTeX的连字符, 用 - , 如"X-ray";
连数符, 用 -- , 如"1--2";
破折号, 用 --- ;
这三者分别从短到长. 这些符号前后一般都无空格.
单引号: 用 ` 和 ' 表示两个方向的单引号.
双引号: 用 `` 和 '' (两个单引号连在一起)表示.
" 只产生一个方向的双引号.
注: 在数学环境中, 任何 - 都表示减号.
问题:LaTeX 如何生成目录
回答:1.最好自己定义目录形式,美观方便,下面是偶定义的几个,你不妨试试
\def\mlA#1#2#3{\par\noindent\hspace*{1 true cm}\parbox[b]{12.3 true cm}
{\protect\hspace*{-1 true cm}{#1}\quad{#2}~\dotfill~}
\hbox to1.0 true cm{~(\hss#3\hss)}\vspace{2mm}}
\def\mlB#1#2#3{\par\noindent\hspace*{1 true cm}\parbox[b]{12.3 true cm}
{\protect\hspace*{-1 true cm}{#1}~\dotfill~\hbox{#2}}
\hbox to1.0 true cm{~(\hss#3\hss)}\vspace{2mm}}
\def\mlC#1#2{\par\noindent\hspace*{1 true cm}\parbox[b]{12.3 true cm}
{\protect\hspace*{-1 true cm}\quad{#1}~\dotfill~}
\hbox to1.0 true cm{~(\hss#2\hss)}\vspace{2mm}}
\def\mlD#1#2{\par\noindent\hspace*{1 true cm}\parbox[b]{12.3 true cm}
{\protect\hspace*{-1 true cm}\quad{#1}~\hfill~}
\hbox to1.0 true cm{~(\hss#2\hss)}\vspace{2mm}}
2.使用方法如下:
\mlA{title}{author}{page no.}
效果: title author ......................... (page no.)
\mlB{title}{author}{page no.}
效果: title .......................... author (page no.)
\mlC{title}{page no.}
效果: title ......................... (page no.)
\mlD{title}{page no.}
效果: title (page no.)
问题: 如何把某种图形文件(如jpg,gif等)插到tex或ctx文件中?
图形文件(如jpg,gif等)转成ps文件后如何插到tex或ctx文件中?
回答:最好先转为ps文件. pdftex和dvipdfm支持jpeg, gif不行.
\usepackage{graphicx}
\begin{document}
...
\includegraphics{your.ps}
...
\end{document}\begin{document}加上 \renewcommand\floatpagefraction{.9} \renewcommand\topfraction{.9} \renewcommand\bottomfraction{.9} \renewcommand\textfraction{.1} \setcounter{totalnumber}{50} \setcounter{topnumber}{50} \setcounter{bottomnumber}{50} 即可。 另外,可用 caption宏包减少标题尺寸。 对于一个大的表格,可用 \setlength{\tabcolsep}{1pt}来减少表格的列间距离;也可用 \resizebox{!}{5cm}{\begin{tabular} ... \end{tabular}}把整个表格当作一个图形 5。标题 一个标题周围的距离是由 \parskip, \baselineskip等来决定的,要注意的是 LaTeX 宁 愿在一页中留下空白,也不愿把一个标题放在此页的底部。如果你要重新定义这些命令, 就应该仔细的读一下 titlesec 宏包。 6。文献里面的内容 宏包 mulitoc 可让在单列文本中有一个两列的表格内容存在。 可用 setspace 宏包来减少文献中的行间距离(在文本中也是一个道理) \begin{spacing}{0.9} \tableofcontents \end{spacing} ... \begin{spacing}{0.9} \bibliographystyle{plain} \bibliography{refs} \end{spacing} 如果选用了 natbib 宏包的话(推荐),就可以用 \bibsep 来控制items之间的距离。否 则就可在导言区里用下面的命令。 \let\oldthebibliography=\thebibliography \let\endoldthebibliography=\endthebibliography \renewenvironment{thebibliography}[1]{% \begin{oldthebibliography}{#1}% \setlength{\parskip}{0ex}% \setlength{\itemsep}{0ex}% }% {% \end{oldthebibliography}% } +-------------+ |TeX 常见问题4| +-------------+ 2003年4月15日更新! 本期主题是《运筹学—线性系统优化》的实战篇,关于本书的各种模版和一些TeX的实例( 包括幻灯片的源文件)请到运筹学书的模版和PDF文件下载;一些排版原则请到书的一些专 业排版原则中讨论。而下面只是使用技巧,这本书可是自己排的版,但完全达到了出版社 的要求,应该很有用吧。本使用技巧对初学者非常有用,对于论坛上的高手们只是起了一 个参考作用而已。预计一个月后就能完全更新完全,因为我的论文还没写啊。 1、模版的种类 (1)包括了书的两种类型,两种书的类型的章节标题形式为 第1章 第一章 1 第一节标题 一 第一节标题 1.1 第一小节标题 一 第一小节标题 1.1.1第一小小节标题 (一) 第一小小节标题 (1) 再下一小节标题 1 再下一小节标题 ① 还小一层次的标题 (1) 还小一层次的标题 (i)再小一层次的标题 ① 还小一层次的标题 (a)还小一层次的标题 (i)再小一层次的标题 本书是采用的最左边的格式;右边的格式是对一些出版社而定的,但还没完全达到要求, 特别是目录还需要大家来测试出来。ORmain1与ORmain2就是用手工输入确定参考文献顺序 的模版,DEmain1与DEmain2就是据此修改而得的用Bibtex自动确定参考文献的模版。由上 面的说明,ORmain2与DEmain2还不成熟。当用了Bibtex来得到参考文献时,因为我用了 \usepackage{ulem,CJKulem}宏包命令,所以修改了plainat.bst和unsrtnat.bst文件。 (2)据此书模版修改而得到的幻灯片模版ORslidem.tex是用PDFslide来实现的,这有几 个好处可见模版的抬头说明。这个模版的最大好处是可以用任何.pdf文件来做为它的背景 ,我就选择了pdfscreen下的一个.pdf背景文件。 (3)据此书模版修改而成的文章模版myjournal.tex适合于中英文的文章。 2、版面问题 每一种书内有B5、16开、A4三种页面设置,这是出版社给的标准设置,建议只采用定义版 面和版心大小的方面来进行设置,而不是像word那样定义页边距来实现页面设置!下面对 问题进行分类说明。 首先,在每一级标题中,字体应该一粗一细,但不要使用加粗命令来得到这个效果。在本 书中,出版社采用了正文为11pt的宋体类型,由此有 第1章 隶书居中Huge 1 第一节标题 楷书居中Large 1.1 第一小节标题 幼园齐左large 1.1.1第一小小节标题 仿宋空两字normalsize (1) 小小小节标题 宋体空两字normalsize ① 还小一层次的标题 宋体空两字normalsize (i)再小一层次的标题 宋体空两字normalsize (a)还小一层次的标题 宋体空两字normalsize 要注意的是:如果只到“ 小小小节标题”的命令时,要尽可能地用“(1) 小小小节标题 ”,如果这时表示的是列举,就不用断行。但是,如果这儿表示是标题时,特别是“ 小 小小节标题”下面还有小标题“①”时,即这儿表示分类叙述,则标题后的内容要另起一 行(或者说是标题要独立成行!);并且这时要注意不要背题,即至少下面应有一行正文 内容,这是很重要的!!!所以重新定义了\paragraph命令,这个命令可以实现标题形式 为(1)...(2)...等,并且这时能自动为避免背题现象,推荐!!! 其次,书眉要采用footnotesize的楷体才对,这时也没有大家原来讨论过的overfull的警 告信息了;页码要放在切口。 第三,图表标题的字号应和正文一样,而其内容可以采用small和footenotesize两类,由 于书中有大量的分数,所以采用了small这一类的选项。这里要注意的是,图表标题采用 了楷体,而内容全部采用了宋体,即使是定理结构类型中的图表内容也应和正文中的形式 一致! 3、公式问题 (1)自动调整大小的括号用符号 左右括号,左右中括号等等的符号,常常会因为方程式内容的关系,需要动态的依内容改 变大 小,在LaTeX 中要达到这样的效果,可以在这些符号之前加上\left和\right来达成这样 的效果, 在左边的括号,前面就加上\left,而在右边的括号就加上\right。这两个命令,一定要 成对使用 ,也就是,在一个数学模式中,有一个\left就要有一个\right。如果你只需要其中一个 ,(如在作 条件列示的时候)那么可以用\left\{而右边则是用\right.用句号来表示一个空的符号。 可以使用这 两个命令的符号有 ( ) [ ] \{ \} | \|(||符号) / \backslash(反斜线) \lfloor \rfloor \lceil \rceil \langle \rangle \uparrow \Uparrow \downarrow \Downarrow \updownarrow \Updownarrow (2) 本书的一些特殊设置 当采用标准的\frac{}{}命令时,基本上不做特殊的改动。由于出版社要求行中的公式里 面的分子分母不改变字号,所以定义了一个myfrac命令: \newcommand{\myfrac}[2]{\frac{\displaystyle #1}{\displaystyle\vphantom{\between}#2}}%显示公式的标准尺寸 \newcommand{\myfracnovm}[2]{\frac{\displaystyle #1}{\displaystyle#2}}% %\newcommand{\myfrac}[2]{\genfrac{}{}{}{0}{#1}{#2}}%根据ams宏包做的定义,不推荐 这个 %增加公式和表格环境中公式上下的间距,特别是能避免上下分数粘在一起和表格内分数压 线的问题 \setlength{\extrarowheight}{3pt} %以下两命令可以用来增加表格中行内公式的上下间距以免压线,这个公式不会显示出来 \newcommand{\myvphantom}{\vphantom{\frac{\sum}{\sum}}} \newcommand{\mybigvphantom}{\vphantom{\frac{\frac{\sum}{\sum}}{\frac{\sum}{\sum}}}} 注意上面的\vphantom的特殊效果,由此以下的宏包就非常重要了!!! \usepackage{delarray}%使array环境的[t]或者[b]选项生效;并可解决表格中的文字上 下位置不对的问题 另外,不得不提的分块矩阵的问题,特别推荐pmat宏包,这个的兼容性非常强,模版中有 说明。 而我们平时没注意的是用了\leq和\geq命令,但应该为\leqslant和\geqslant命令。 在公式中,如果表示分类条件,则前面要用“,”号,否则后面要用括号,比如: $$\begin{cases}0,&\mbox{如果为否}\\ 1,&\mbox{如果为是}\end{cases} $$\begin{cases}0&(i=1)\\ 1&(i=1,2,\cdots,n)\end{cases} 顺便于说一下,全文均用了\cdots命令,而没有用\ldots命令,这也省了很多麻烦。在上 面的右边公式中,因为1,2,\cdots,n要经常使用,所以可以定义一个 \newcommand{\myn}{1,2,\cdots,n}来表示它。这应该是一个良好的习惯,因为可以按出 版社的要求进行统改。 而经常是因为公式作为一个整体的原因导致不能很好分页,所以在该用 \allowdisplaybreaks ... \displaybreak[0]的地方一定要用这一组命令。但要注意的是 这一组命令最好要在局部环境下应用,因为eqnarray环境对他是比较敏感的。 4、三线表、列表、文献格式 模版中有详细的说明,特别是本书里面的设置很有用。 首先,要注意的是,图表混排时的小表格不能放在订口,而应该放在切口才行,我用的是 floatflt宏包,当选用[p]选项时就行了。 其次,表格的宽度应该长于标题的长度。当出现多个了图形时,只需要一个标题就行了, 这个可参见动态规划章节中的前面几个标题,所以只需要caption一个宏包就行了,不推 荐subfigure宏包。 第三,参考文献排列有两种方式,一是依正文中出现的顺序排列,这时正文中可以用“参 见文献{6-8]”的形式;二是文献用拼音方式排列,而在正文中就应该用作者-年代的方式 引用。由于拼音排序还没有解决,所以本书采用了第一种方式。 5、特殊字符 包括了罗马数字、度、破折号等字符的输入。其中,破折号、不存在符号、连字符、半字 符是各不相同的,其分别的输入应该为---\!---、--\!--、--、-,因为出版社认为它们 有点靠下,书中都把它们定义了。例如 两阶段法---\!---阶段一,时间--资源的优化,$\alpha$-方法,而不存在符号是用于矩 阵内的。 要注意的是在正文的英文单词的首字符要大写,比如基变量(Basic Variable)。外文名字 方面应该用R. Bellman,而不是R·Bellman的格式。并且外文名字要统一,比如拉格朗日 等人名,要么全用中文,要么全用外文原文。 6、定理结构 当有鱼尾号作为定理结构的开始时,就可以不空两字符了,但如果没有的话,定理结构的 开始就应该空两字符。本书的“【】”型的定理结构是老船长给出的,其他的要求可以再 麻烦他。 其他的排版技巧就要到论坛里面讨论了,那里有很多老大。再一次感谢各位网友的帮助, 没有大家,这本书是排不出来的。出版社的编辑老师说可以和他们的专业LaTeX排版相比 了,这可是大家的功劳,我对程序是一点都不懂的。对于本期主题有什么建议和问题,请 到论坛实战篇讨论。 +-------------+ | 疑难解析 | +-------------+ 问题不多,但是有代表性。 问题: 如何生成ps(PostScript)文件? 回答: 方法有二 1,用dvips这个工具,自己琢磨去吧,很麻烦,很麻烦的; 2,如果使用windows系统的话,在打印机中安装HP LaserJet 4/4M PostScript 的驱动程序。在浏览DVI文件的时候,打印到文件就可以了。文件是保存为*.prn的 , 您只要改他为*.ps就可以了。 问题: 为什么在浏览dvi文件时,告诉我没有makepk这个程序? 回答: 看看您的emtex是完全的吗?如果不全,没有makepk.exe,那么请到“编译器”中 去下 载一个完全的版本,并安装。 最好把cctwin32拷贝到emtex的目录中去。在运行的时候,修改一下路径设置。 最好把emtex下的setenv.bat加入到autoexec.bat中,系统在启动的时候就可以执 行路 径设置。 问题: 如何插入图象? 回答: 我知道的方法有, 1,使用emtex下的img2cct.exe工具。 首先将图象改变为单色BMP,用画笔就可以做这件事情,提醒在保存的时候一定要 存为 单色图。 例如有单色BMP文件test.bmp 然后执行命令:img2cct test.bmp -t3 -c0 具体img2cct的参数,可以直接执行"img2cct.exe"来查看 最后将img2cct.exe生成的test.tex文件的代码拷贝到您的大作中,适当调整位置 ,就 可以了。 您可以下载test.zip(4K),看看是如何emtex是如何嵌入图象的。 2,使用 Scientific WorkPlace(Word) 的用户,只要菜单上File/Import Picture 功能就行。 问题: 为什么cct&emtexsetup无法安装? 回答: 由于Windows系统中的环境变量太多,install程序无法顺利安装。 因此把autoexec.bat中所有的语句前面都加上"rem",然后重新启动计算机,再安 装一 次。安装完毕之后,改回到以前的autoexec.bat,就万事OK了! 注:下面的内容都是从水木清华,南大小百合、笑书亭等BBS下载的。 问题: 现在很多文章的定理, 定义, 推论, 例子都采用统一编号, 不再是 独立编号, 如定义1.1, 接下来可能是定理1.2, 然后推论1.3... 怎么做一个总的框架环境, 实现这种自动的编号吗? 回答: \newtheorem{athm}{\heiti \t}[section] \newenvironment{thm} [1] {\def\t{#1} \begin{athm} \fangsong \rm} {\end {athm}} 正文中如下使用即可: \begin{thm}{定义} ... \end{thm} 或 \begin{thm}{定理} ... \end{thm} 等等. 问题: 在教科书中出现一种字体, 用于实数域R或复数域C等的表示. 象这种非常用字体怎么使用? 还有向量我们常用黑体表示, 而\bf是正体的黑体, 公式中习 惯用斜体, 有斜体的黑体么? 回答: 使用 \font\aaa=msbm10 scaled \magstep 0 或 \newfont {\aaa} {msbm10 scaled \megstep 0} 定义新的字体\aaa 正文中如下使用: $..... \aaa \mbox{R} ...$ 注1: 以上字体msbm10你可参看tfm目录下的有关文件, 多是有 趣的字体, 你可以逐一的试试. 如果想用斜体的黑体, 把上述字体库名改为cmbxsl10即可. 注2: \megstep 0的数字0是放大参数, 改为0-5(?)的数可以得 到不同大小(数字大字就大)的字, 当然msbm9就比msbm10字 问题: 在使用某些字体时, (有.TFM文件) 在编译时没出错, 但在显示时就发现找不到.PK的字库, 怎么办? 要到哪 里去搞这些字库? 回答: 您大可不必去找字库, CCT EMTEX提供了字库生成程序. 你只需如下操作即可: (假设你生成的文件是test.dvi) makepk -r300 test.dvi > temp.bat temp.bat 这样就生成了.DVI中用到的字体的字库文件了(.PK) 问题: 如果公式不独立一行, 而是和文字同处一行, 这时怎么能让 公式显示得大一些: 在有求和或分数时? 在矩阵中, 也发现矩阵的元素如果有分子分母, 也显得特小, 很不合适, 有什么办法么? 回答: 大眼睛也是很笨笨的说. 一开始就是不会, 后来用了一种很不怎样的方法, 把需要加大 显示的一堆括起来, 再放大: $ .... \mbox{\Large $ <要放大的公式> $} ... $ 后来才发现很简单的说, 只要在需要显示大一点的公式前加: \displaystyle 即可. (在丁卫星 的书后面的例子中用到 过, 可惜一直没发现) 如: \displaystyle \frac{\partial F}{\partial x_1} 不过, 大眼睛还解嘲道: 我前面用的那种字体用得很方便呀, 把\Large 改成 \LARGE还能再大呢! 嘿嘿... 问题: 在公式或定理, 定义编号上, 我不想按原来的格式, 如 定理4.2, 而想用定理4.1.2. 或者就直接定理123, 怎么 作修改? 回答: 用\renewcommand重新定义一下标号就可以了. \renewcommand {\theequation} {\arabic{chapter}. \arabic{section}.\arabic{eqation} 后标号就成了 4.1.2这样的了. (在article风格中是section和subsection) 注: 那些变量\the*也可以用于自己定义的环境中, 如 \newtheorem {mythm}{\hskip 2 \ccwd \heiti定理} 后, 就可以 \renewcommand {\themythm} {\arabic{mythm}} 问题: 怎么使用不同的字号和字体?(中英文) 怎么使用双页?(就象书那样) \documentstyle后面的选项和格式都有什么? 回答: 1.关于字号, 你如果是想改通篇文章的字号. 最简单的方法是 将第一句 \documentstyle[选项]{格式} (选项有...,9pt,10pt(默认),11pt,...; twoside,twocolumn,proc,oneside(默认); leqno(默认),fleqn,epsf. 格式有book,report,article,letter; cbook,carticle,...) 的选项选你需要的大小. 2.如想选用双页, 就用twoside, (cbook默认就是twoside, 页码在上面, 章的首页页码在下) 3.在正文某处想改字号大小, 英文用 \tiny, \scriptsize, \footnotesize, \small, \normalize, \large, \Large, \LARGE, \huge, \Huge 中文用 \zihao{n} 此处n可取值: 0(初号),1(一号),2(二号),3(三号), 4(四号),-4(小四),5,-5,6,7 4.关于字体, 英文常用的: \bf黑体, \rm罗马, \sl斜体, \cal花体 \sc, \it公式缺省, \sf 不常用的详见前文所述. 中文常用: \songti, \kaishu, \heiti, \fangsong, \biaosong, 问题: 中文章节如何排版(自动生成)?目前我只能得到英文风格的 “Chapter 10”字样。能够生成中文的么? 回答: 我是这样做的, 加个*号, 不让"chapter 10"出来: \chapter*{\centerline{\heiti 第十章 \quad 多变量函数的微分学}} \setcounter{chapter}{10} %后面的一句是修正该章定理定义等的章的编号 如果你想爽一点, 那么改 \EMTEX\TEXINPUT\CLaTeX\CBOOK.STY (如果你用的cbook格式) 把\def\@chapapp{Chapter}改为\def\@chapapp{} 然后再在你的.CTX中加上 \renewcommand {\thechapter} {第\arabic{chapter}章} 然后你就可以用 \chapter{章题} 了. 注: 在你用爽一点的方法时, 定理定义等的编号就出问题了 (可能是 "定理第10章.4"之类), 那是因为 \thechapter和\arabic{chapter} 不太一样的原因, 你只需重定义一下编号, 用后者替换前者即可. 问题: 如何在CCT EMTEX的文章中插入图象文件? 在插入图象文件时, 我发现它是左对齐的, 能让它居中么? 回答: 在CCT EMTEX提供的软件环境下, 你可以将一个黑白双色的图象 文件插入到文章中, 具体步骤是: 1. 先得到一个黑白双色的.PCX格式的图象文件. 可能你是用画笔画的一个.BMP文件, 那么它可能就是16色或 256色或更多色(虽然你可能只使用了黑白两色作图), 那么 你首先必须把它转成2色.PCX文件. 在使用中, 我发现wingif 最好用(用alchemy.exe转化好象后面一步无法通过): 你先把 图在wingif中读入, 再点Edit菜单下的Monochrome Dither, 然后File/Save, 在对话框中点Format>>, 然后选PCX, 存盘 即可. (wingif在.141 /incoming/tools/wingif.rar) 2. 使用CCT自带的工具img2cct.exe转化, 自动生成一个.tex文 件和.bmf文件(img2cct的参数使用请打img2cct回车) 3. 你将生成的.tex文件插入到你文章的正文中. 也可用 \input fig1.tex %假设该图名为fig1.bmf 4. 编译即可. (可参看CCT自带的使用手册) 注: 1. 你会发现图形并不在一行的中间, 这可能使你很不满意, 不要紧, 你只要稍加修改即可. 我们看一个例子, 这是fig1.tex \vbox{\hsize7.556 true cm \vskip4.9389 true cm \relax\hbox to\hsize{\hbox to0pt{\special{BMF=FIG1.BMF}}\hss}\hss} 我们只需将{\special{BMF=FIG1.BMF}}用\centerline括起来即可. 即改为 {\centerline{\special{BMF=FIG1.BMF}}} 2. 这只是点阵图, 所以分辨率有限, 为了使图象效果好些, 你可能要 把图画得大一些, 如上的图是按-r180的参数生成的, 原图是500X350. 大家自己算算要画多大生成的图才不至于太小. 3. 有一个网友以前提供给我一个.pcx到.bmf的文件, 可惜后来我找不到 了, 因为我打的书, 插图有专人画, 不用我管, 所以我也没再麻烦他要了. 使用该文件会简单很多, 不一定要求是2色的图象了. 就用不着麻烦地使 用wingif了. 问题: 我打矩阵时, 发现矩阵(使用array环境)的行距特别小, 显得很挤, 有什么办法么? 回答: 最简单的方法是来个空行, 多打个\\. 另外, 大家都知道修改行间距可以改: \baselineskip <距离> 或\renewcommand{\baselinestretch}{<实数>}来达到目的. 而修改array的行距也有相应于后者的语句: \renewcommand{\arraystretch}{<实数>} 该数是1.0时, 是缺省情况; 如果是1.5, 则间距为原来的1.5倍. 注: 1.不过我试了一下, 发现对一般的array很有效, 但对于复杂的array, 比如说矩阵每一项都有分子分母, 然后用的\displaystyle的, 就 显得效果不大. 2.array中, 列间的间距是\arraycolsep, 这个我没试过. 问题: LaTeX的连字符, 连数符, 破折号; 单引号, 双引号. 回答: LaTeX的连字符, 用 - , 如"X-ray"; 连数符, 用 -- , 如"1--2"; 破折号, 用 --- ; 这三者分别从短到长. 这些符号前后一般都无空格. 单引号: 用 ` 和 ' 表示两个方向的单引号. 双引号: 用 `` 和 '' (两个单引号连在一起)表示. " 只产生一个方向的双引号. 注: 在数学环境中, 任何 - 都表示减号. 问题:LaTeX 如何生成目录 回答:1.最好自己定义目录形式,美观方便,下面是偶定义的几个,你不妨试试 \def\mlA#1#2#3{\par\noindent\hspace*{1 true cm}\parbox[b]{12.3 true cm} {\protect\hspace*{-1 true cm}{#1}\quad{#2}~\dotfill~} \hbox to1.0 true cm{~(\hss#3\hss)}\vspace{2mm}} \def\mlB#1#2#3{\par\noindent\hspace*{1 true cm}\parbox[b]{12.3 true cm} {\protect\hspace*{-1 true cm}{#1}~\dotfill~\hbox{#2}} \hbox to1.0 true cm{~(\hss#3\hss)}\vspace{2mm}} \def\mlC#1#2{\par\noindent\hspace*{1 true cm}\parbox[b]{12.3 true cm} {\protect\hspace*{-1 true cm}\quad{#1}~\dotfill~} \hbox to1.0 true cm{~(\hss#2\hss)}\vspace{2mm}} \def\mlD#1#2{\par\noindent\hspace*{1 true cm}\parbox[b]{12.3 true cm} {\protect\hspace*{-1 true cm}\quad{#1}~\hfill~} \hbox to1.0 true cm{~(\hss#2\hss)}\vspace{2mm}} 2.使用方法如下: \mlA{title}{author}{page no.} 效果: title author ......................... (page no.) \mlB{title}{author}{page no.} 效果: title .......................... author (page no.) \mlC{title}{page no.} 效果: title ......................... (page no.) \mlD{title}{page no.} 效果: title (page no.) 问题: 如何把某种图形文件(如jpg,gif等)插到tex或ctx文件中? 图形文件(如jpg,gif等)转成ps文件后如何插到tex或ctx文件中? 回答:最好先转为ps文件. pdftex和dvipdfm支持jpeg, gif不行. \usepackage{graphicx} \begin{document} ... \includegraphics{your.ps} ... \end{document}
问题:LaTeX中如何使公式编号具有(1.2)这种格式?
回答:It is default style in book. In article style,
use the following command
\documentclass{article}
\usepackage{amsmath}
\numberwithin{equation}{section}
\begin{document}
\section{my section}
\begin{equation}
x^2+y^2=1
\bend{equation}
....
\end[document}
问题:TeX问题:如何自定义数学函数
回答:Try
\def\myfun#1#2#3#4%
{\mathrel{\mathop{\mathrm #1}\limits_{#2}^{#3}#4}}
\begin{document}
...
$\myfun{simfun}{x<0}{y>0}{x^2+y^2}$
...
\end{document}\begin{document} \section{my section} \begin{equation} x^2+y^2=1 \bend{equation} .... \end[document} 问题:TeX问题:如何自定义数学函数 回答:Try \def\myfun#1#2#3#4% {\mathrel{\mathop{\mathrm #1}\limits_{#2}^{#3}#4}} \begin{document} ... $\myfun{simfun}{x<0}{y>0}{x^2+y^2}$ ... \end{document}
问题:tex中花体字母N怎么输入?
回答:不是花体字母N, 是标准的 $N$. 要用花体的话, $\mathcal {N}$
问题:在LaTeX中怎样生成双线的方括号?哪儿有stmaryrd
回答:ftp://159.226.47.19/pub/TeX/Package/latex/contrib/other/misc/
问题:请问如何把word文档转换成latex的格式?
回答:用mathtype4.0, 双击公式可打开公式编辑器,
设定菜单Preferences->Translaters
Translate to another launguage:
选latex2.09 and later
uncheck 'include translater name' and 'include mathtype data'
选中整个公式,^c, 到notepad里面^V就行了
我现在就这么干的。 不过熟悉之后,直接敲tex公式也不慢。