分享

LateX使用指南

 昵称12873806 2013-06-22

常见问题(一)


整理:happytex

1.\makeatletter 和 \makeatother 的用法?

答:如果需要借助于内部有\@字符的命令,如\@addtoreset,就需要借助于另两个命令
\makeatletter, \makeatother。

下面给出使用范例,用它可以实现公式编号与节号的关联。
\begin{verbatim}
\documentclass{article}
...
\makeatletter % '@' is now a normal "letter" for TeX
\renewcommand\theequation{\thesection.\arabic{equation}}
\@addtoreset{equation}{section}
\makeatother % '@' is restored as a "non-letter" character for TeX
\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}

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 \xleftarrow[\zeta]{\alpha}

F\times\triangle[n-1]

\xrightarrow{\partial_0\alpha(b)}

E^{\partial_0b}

\]

21.如何在公式中表示上下堆积关系?

答:在latex有一个命令\stackre{上部符号}{下部符号},但更好的一个是用宏包amslatex中命令\overset和\underset。一个例子是

\[ \overset{*}{X} \qquad

\underset{*}{X} \qquad

\overset{a}{\underset{b}{X}} \]

常见问题(二)


翻译/ 整理:happytex

1。怎样在多栏环境中使用单栏图表? 
答:如果你在多栏环境中使用 \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}

10。怎样把一个大表格横向放置?

答:用宏包\usepackage{rotating},然后变换 
\begin{table}
....
\end{table}
为 
\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}

数字序列至多四级顺序可显示,如

1,2 ... - \enumi
(a), (b) ... - \enumii
i,ii,... - \enumiii
A., B. ... - \enumiv

你也可指明选项,如 
\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}

14。 怎么定义一个定理型环境?

答:用theorem宏包,例子:

\newtheorem{howto}{Questions}[section]
\theoremstyle{change}
\theorembodyfont{\itshape}
\theoremheaderfont{\scshape}
15。怎样在latex中包括一每列的源文件?
答:例如 
\floatstyle{boxed}
\restylefloat{figure}
\begin{figure}[hb]
\begin{listing}{1}
#i nclude <stdio.h>
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}
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}
#i nclude <stdio.h>
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自带的。


也可用 <wrapfigure> 宏包,语法为

\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}
30。把一幅 .eps 横向放置后,怎样使标题变为相应的形式?

答: \usepackage{rotating}

\begin{sidewaysfigure}\centering
\includegraphics[width=?cm]{*.eps}
\caption{...}
\end{sidewaysfigure}

常见问题(三)


翻译/ 整理:happytex

压缩空间

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}%
}

常见问题(四)
翻译/ 整理:happytex

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} 
        
问题: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公式也不慢。   

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多