Latex:入门教程

http://blog.csdn.net/pipisorry/article/details/54571521

总的来说,LaTex 是一套排版系统,与 word 那种所见即所得对排版方式不太,用 LaTex 排版更像是写程序一样,将想要的排版效果用指令写出来,再通过 LaTex 编译成文档。简单来说,你只要按照要求撰写 tex 文件,就能够通过 LaTex 生成排版好的 pdf 文件。
有些人可能听到写程序就头大了,其实使用命令来排版的好处正是我们可以将各种版式做成模板文件,使用者只要调用模板即可,完全不用去处理字体样大小、位置,目录生成,图片公式序号等诸多细节,使我们专注于内容。更多关于 LaTex 和 word 的比较这篇文章有很详细的论述。

LaTex 也是可以用来做简历,PPT 等文档的。

皮皮 blog


入门教程

LaTeX 文件的通常语法如下:

\documentstyle{article}

\begin{document}

This is a first example of a simple inputfile.

\end{document}

如果是中文,将 \documentstyle{article} 改为 \documentstyle{carticle}

简单的规则

(1)空格:Latex 中空格不起作用。
(2)换行:用控制命令 "\\", 或 "\newline".
(3)分段:用控制命令 "\par" 或空出一行。
(4)换页:用控制命令 "\newpage" 或 "\clearpage"
(5)特殊控制字符:#,$, %, &, - ,{,}, ^, ~

西文字符转换表

\rm 罗马字体 \it 意大利字体
\bf 黑体 \sl 倾斜体
\sf 等线体 \sc 小体大写字母
\tt 打字机字体 \mit 数学斜体

纵向固定间距控制命令

\smallskip \medskip \bigskip

页面控制命令

\textwidth=14.5cm
\textheight=21.5cm
系统默认:字号 10pt= 五号字;西文字体为罗马字体;textwidth=12.2cm,textheight=18.6cm。相当于美国标准信纸大小。

中英文 LaTeX 模板

(1) 下面给出的是中文 LaTeX2e 模板,此时文件的扩展名为.ctx。模板中 % 后面的中文是中文注解,读者可以阅读这些模板中的中文注解,以理解所涉及的 LaTeX2e 命令的含义。

\documentclass[11pt]{ccart}% 文件类说明

% 还可以选择的类是 cctbook

\setlength{\parindent}{12pt}% 自然段第一行的缩进量为 12pt

\setlength{\parskip}{10pt plus1ptminus1pt}

% 自然段之间的距离为 10pt,并可在 8pt 到 11pt 之间变化

\setlength{\baselineskip}{8pt plus2ptminus1pt}

% 行间距为 8pt,并可在 7pt 到 10pt 之间变化

\setlength{\textheight}{21truecm}% 版面高为 21 厘米

\setlength{\textwidth}{14.5truecm}% 版面宽为 14.5 厘米

\begin{document}% 正文开始

\title{Thesis}% 文章标题,双反斜杠 \\ 表示换行

\author{author\\Dept. of Math.}

% 作者名,单位,通信地址等,双反斜杠 \\ 表示换行

\date{2003/8/5}

% 文章写作日期,如果省略此行,计算机日期作为写作日期

\maketitle% 建立标题部分

% 文章的正文输入

\begin{center}% 参考文献的书写

{\heiti 参考文献}

\end{center}

\vskip 0.1cm

\def\hang{\hangindent\parindent}

\def\textindent#1{\indent\llap{#1\enspace}\ignorespaces}

\def\re{\par\hang\textindent}

\re{[1]} Nordhaus E,Stewart B,WhiteA.On theMaximum Genus of a Graph.{\it J.combinatorial TheoryB},1971,11:258-267

\re{[2]} Skoviera M.The Maximum Genus of Graphsof Diameter Two.{\it Discrete Math}.1991, 87:175-180

\end{document}% 源文件的结束

英文 LaTeX2e 模板

\documentclass[11pt]{article}% 文件类说明

% 还可以选择的类是 book,report

\setlength{\parindent}{12pt}% 自然段第一行的缩进量为 12pt

\setlength{\parskip}{10pt plus1ptminus1pt}

% 自然段之间的距离为 10pt,并可在 8pt 到 11pt 之间变化

\setlength{\baselineskip}{8pt plus2ptminus1pt}

% 行间距为 8pt,并可在 7pt 到 10pt 之间变化

\setlength{\textheight}{21truecm}% 版面高为 21 厘米

\setlength{\textwidth}{14.5truecm}% 版面宽为 14.5 厘米

\begin{document}% 正文开始

\title{Thesis}% 文章标题,双反斜杠 \\ 表示换行

\author{author\\Dept. of Math.}

% 作者名,单位,通信地址等,双反斜杠 \\ 表示换行

\date{2003/8/5}

% 文章写作日期,如果省略此行,计算机日期作为写作日期

\maketitle% 建立标题部分

% 文章的正文输入

\section{Introduction}% 第一节引言(机器自动编号)

{\bf Theorem 1.} {\it For any fixed $\rho>0$,we have

$$||R(u,\rho)||\leq ||R_1(u,\rho)||\leq2||R(u,\rho)||,~~~\forall u\in H.

\eqno(10)$$ Hence, (2) and (3) are equivalent forany fixed$\rho>0$.}

% 一般定理的写法

{\bf Proof.}

\begin{thebibliography}{99}

\bibitem{Kind} D. Kinderlehrer and G.Stampacchia, {\it An Introduction to

Variational Inequalities and Their Applications},Academic Press,New York, (1980).

\end{thebibliography}% 参考文献

\end{document}% 源文件的结束
[ LaTex 基本语法]

入门示例

helloworld.tex

\documentclass{article}
% 这里是导言区
\begin{document}
Hello, world!

\end{document}

1

\documentclass{article} 中包含了一个控制序列(或称命令 / 标记)。所谓控制序列,是以反斜杠 \ 开头,以第一个空格或非字母 的字符结束的一串文字,他们并不被输出,但是他们会影响输出文档的效果。这里的控制序列是 documentclass,它后面紧跟着的 {article} 代表这个控制序列有一个必要的参数,该参数的值为 article。这个控制序列的作用,是调用名为 "article" 的文档类。

Note: TeX 对控制序列的大小写是敏感的
部分控制序列还有被方括号 [] 包括的可选参数。
所谓文档类,即是 TeX 系统预设的(或是用户自定的)一些格式的集合。不同的文档类在输出效果上会有差别。

\documentclass[options]{ class }

article 排版科技期刊、短报告、程序文档、邀请函等。

report 排版多章节的长报告、短篇的书籍、博士论文等。

book 排版书籍。

slides 排版幻灯片。其中使用了较大的 sans serif 字体。也可以考虑使用 FoilTEX 来得到相同的效果。
2
TeX 风格的文档中,从 "%" 开始,到该行末尾的所有字符,都会被 TeX 系统无视,只作为供人类阅读的注释。除非在 "%" 前加上反斜杠来取消这一特性。

3

控制序列 begin,这个控制序列总是与 end 成对出现。这两个控制序列以及他们中间的内容被称为「环境」;他们之后的第一个必要参数总是一致的,被称为环境名。

只有在 "document" 环境中的内容,才会被正常输出到文档中去或是作为控制序列对文档产生影响。也就是说,在 \end{document} 之后插入任何内容都是无效的。

\begin{document} 与 \documentclass{article} 之间的部分被称为导言区。导言区中的控制序列,通常会影响到整个输出文档。比如,我们通常在导言区设置页面大小、页眉页脚样式、章节标题样式等等。

latex 目录下产生的文件说明

.tex LATEX 或 TEX 源文件。可以用 latex 处理。

.sty LATEX 宏包文件。可使用命令 \usepackage 将其加载到你的 LATEX 文件中。

.dtx 文档化 TEX 文件。这也是 LATEX 宏包发布的主要格式。通过处理一个

.dtx 文件就可以得到该 LATEX 宏包中所包括的宏代码文档。

.ins 为相应的.dtx 文件的安装文件。如果你在网络上下载了一 LATEX 宏包,你通常会发现会有一个.dtx 和一个.ins 文件。使用 LATEX 对.ins 文件进行处理,可以从.dtx 文件中提取出宏包。

当你运行 LATEX 处理你的源文件时,会得到下列文件:

.dvi 与设备无关文件。这是 LATEX 编译运行的主要结果。你可以使用 DVI 预览器浏览其内容,或者使用像 dvips 这样的应用程序输出到打印机。

.log 记录了上次编译运行时的详细信息。

.toc 存储了所有章节标题。该文件将在下次编译运行时被读入并生成目录。

.lof 类似.toc 文件,可生成图形目录。

.lot 类似.toc 文件,可生成表格目录。

.aux 另一个用来向下次编译运行传递信息的辅助文件。除了其它信息外,.aux 文件通常包含交叉引用信息。

.idx 如果你的文件中包含有索引,LATEX 使用此文件存储所有的索引词条。此文件需要使用 makeindex 处理。

.ind 经过处理后的.idx 文件。可在下次编译运行时加入到你的文档中。

.ilg 运行 makeindex 时生成的记录文件。

[LaTEX 学习笔记]

latex 类文件.cls 文件

示例 awesome-cv.cls
awesome-cv 的 class file,可以在其他 latex file 中引用,例如在 ./example/resume.tex 中:
\documentclass[11pt, a4paper]{awesome-cv}
每個 class file 中都會以以下兩行指令做開頭
\NeedsTeXFormat{LaTeX2e} % 告訴 Compiler 此 class 是用哪一版
\ProvidesClass{my_cv}[2011/03/26 My custom CV class]

Note: Latex 中.cls 文件和.sty 文件的区别和联系:.cls 和.sty 文件是用来提高 LaTeX 的排版效果的补充文件。它们分别用命令 \documentclass{...} 和命令 \usepackage{...} 来装载到 LaTeX 文件。.cls 文件通常被称为 "classes"(也就是 "类"),而.sty 文件被称为 "style files"(样式文件), 或者就简单地称其为 "packages"(包)。通过命令 \documentclass{...} 来装载一个类是强制性的,而且在 LaTeX 文件里可能只出现一次;通常它是第一个命令。不同的是,包是可选的,而且它们可以在需要时随时被装载 (不过一定是在正文开头之前)。总而言之,.cls 和.sty 文件被 LaTeX 文件装载以提供或改善产生文档的方法。一般而言,类文件实现文档的特定结构,而包包既可以用于提供从属于文档的功能,又可以改变特定的类文件提供的方法的风格。[.cls 和.sty 文件的作用和区别]

LaTeX 允许你在自己编写的宏包(e.g. .cls 文件中)中调用其它宏包,命令为 RequirePackage

宏包

所谓宏包,就是一系列控制序列的合集。这些控制序列太常用,以至于人们会觉得每次将他们写在导言区太过繁琐,于是将他们打包放在同一个文件中,成为所谓的宏包(台湾方面称之为「巨集套件」)。\usepackage{·} 可以用来调用宏包。

在引言中调用。

指定字体 \usepackage{times}

package latexsym, which defines all symbols known from the old LaTeX version.

组织你的文章

\documentclass[UTF8]{ctexart}
\title{你好,world!}
\author{Liam}
\date{\today}
\begin{document}
\maketitle
你好,world!
\end{document}

Note: 这里是用的 ctex,改成 article 也可以,但是不能显示中文了,lz 目前不写中文的,所以先不管了。

定义了标题、作者、日期

maketitle 这个控制序列能将在导言区中定义的标题、作者、日期 按照预定的格式展现出来。

\documentclass[UTF8]{ctexart}
\title{你好,world!}
\author{Liam}
\date{\today}
\begin{document}
\maketitle
\section{你好中国}
中国在East Asia.
\subsection{Hello Beijing}
北京是capital of China.
\subsubsection{Hello Dongcheng District}
\paragraph{Tian'anmen Square}
is in the center of Beijing
\subparagraph{Chairman Mao}
is in the center of 天安门广场。
\subsection{Hello 山东}
\paragraph{山东大学} is one of the best university in 山东。
\end{document}

插入目录

在上一节的文档中,找到 \maketitle,在它的下面插入控制序列 \tableofcontents

版面设置

页边距

设置页边距,推荐使用 geometry 宏包。可以在这里查看它的说明文档。

比如我希望,将纸张的长度设置为 20cm、宽度设置为 15cm、左边距 1cm、右边距 2cm、上边距 3cm、下边距 4cm,可以在导言区加上这样几行:

\usepackage{geometry}
\geometry{papersize={20cm,15cm}}
\geometry{left=1cm,right=2cm,top=3cm,bottom=4cm}

页眉页脚

设置页眉页脚,推荐使用 fancyhdr 宏包。可以在这里查看它的说明文档。

比如我希望,在页眉左边写上我的名字,中间写上今天的日期,右边写上我的电话;页脚的正中写上页码;页眉和正文之间有一道宽为 0.4pt 的横线分割,可以在导言区加上如下几行:

\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{\author}
\chead{\date}
\rhead{152xxxxxxxx}
\lfoot{}
\cfoot{\thepage}
\rfoot{}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\headwidth}{\textwidth}
\renewcommand{\footrulewidth}{0pt}

首行缩进

CTeX 宏集已经处理好了首行缩进的问题(自然段前空两格汉字宽度)。

不使用 CTeX 宏集(使用 xeCJK 宏包)的话,请遵照以下提示操作。

中国人写文章,习惯每一段的段首都空出两个中文汉字的长度。美国人没有这个习惯,他们每一小节的段首都顶格。为了解决这个问题,我们可以在导言区调用 \usepackage{indentfirst}.

就算是这样,首行缩进的长度,仍然不符合中国人的习惯。我们可以在导言区添加这样的控制序列 \setlength{\parindent}{\ccwd} 来调整首行缩进的大小。这里的 \ccwd 是当前字号下一个中文汉字的宽度。

行间距

我们可以通过 setspace宏包提供的命令来调整行间距。比如在导言区添加如下内容,可以将行距设置为字号的 1.5 倍:

\usepackage{setspace}
\onehalfspacing

具体可以查看该宏包的文档

请注意用词的差别:

  • 行距是字号的 1.5 倍;
  • 1.5 倍行距。

事实上,这不是设置 1.5 倍行距的正确方法,请参考:http://liam0205.me/2013/10/17/LaTeX-Linespace/

段间距

我们可以通过修改长度 \parskip 的值来调整段间距。例如在导言区添加以下内容

\addtolength{\parskip}{.4em}

则可以在原有的基础上,增加段间距 0.4em。如果需要减小段间距,只需将该数值改为负值即可。


Latex 进阶分述

4 字体 Fonts

somewords {\it somewords} somewords
\bf 黑体字;粗体铅字
\it Italics
\tt Typewriter (monospace, fixed-width). 打字型印刷铅字

\emph Although it also changes fonts, the \emph{text} commandis semantic, for text to be emphasized, and should not be used as asubstitute for \textit. For example, \emph{starttext \emph{middle text} end text} will result in thestart text and end text in italics, but middle textwill be in roman.

The \em command is the unconditional version of \emph.

。。。

字体颜色

(如用于批改)

{\color{red}{[??]}}

数学字体

The following commands are for use in math mode. They are not cumulative, so \mathbf{\mathit{symbol}} does not create a boldface and italic symbol; instead, it will just be in italics. This is because typically math symbols need consistent typographic treatment, regardless of the surrounding environment.
\mathrm
Roman, for use in math mode.
\mathbf
Boldface, for use in math mode.
\mathsf
Sans serif, for use in math mode.
\mathtt
Typewriter, for use in math mode.
\mathit
(\mit)
Italics, for use in math mode.
\mathnormal
For use in math mode, e.g., inside another type style declaration.
\mathcal 书法字体
Calligraphic letters, for use in math mode. Note: 大写字母才有书法字体,小写的是无效的。

字母大小写转换 (pipi add)

\MakeUppercase{abc} ABC

\MakeLowercase

首字母大写 (只能对第一个有效)
\usepackage{stringstrings}

\capitalize{abc abc} Abc abc

整个字符串所有单词首字母大写

。。。有点复杂没写

google: latex uppercase the first letter of each word in a sentence

字体大小设置(正文和图表通用)

The standard classes, article, report and book support 3 different font sizes, 10pt, 11pt, 12pt (by default 10pt). The font size is set through the optional argument, e.g.:
\documentclass[12pt]{report}

use the extsizes package. It allows for the following font sizes: 8pt, 9pt, 10pt, 11pt, 12pt, 14pt, 17pt, 20pt.
%Article
\documentclass[9pt]{extarticle}
%Report
\documentclass[14pt]{extreport}

[Changing the font size in LaTeX]

局部改变字号

\fontsize{字体尺寸}{行距},只有使用 \selectfont 命令之后,\fontzize{}{} 的设置才能生效。

\fontsize{10pt}{12pt}\selectfont 这样后面的字体都变成 10pt 大小了。

使用给定字号:字号转换命令表

点数 (pt) 相应中文字号 控制命令
25 一号 \Huge
20 二号 \huge
17 三号 \LARGE
14 四号 \Large
12 小四号 \large
10 五号 \normalsize(default)
9 小五号 \small
8 六号 \footnotesize
7 小六号 \scriptsize
5 七号 \tiny

中文字体

执行 fc-list:lang=zh-cn 命令查询简体中文的字体。同理查询繁体中文字体可以用 fc-list:lang=zh-tw 命令,查询日语字体可以用 fc-list:lang=ja。

lz 列出常用的几个示例:

SimSun, 宋体:style=Regular, 常规
KaiTi, 楷体:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standa
STXingkai, 华文行楷:style=Regular
Microsoft YaHei, 微软雅黑,Microsoft YaHei Light, 微软雅黑 Light:style=Light,Regular
Microsoft YaHei, 微软雅黑:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
YouYuan, 幼圆:style=Regular
FangSong, 仿宋:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
SimHei, 黑体:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
NSimSun, 新宋体:style=Regular, 常规
/usr/share/fonts/ 方正兰亭黑.TTF: FZLanTingHeiS\-R\-GB, 方正兰亭黑简体:style=Regular

方式 1

linux latex 中文不显示

解决:使用 xelatex 编译(否则可能直接报错,而不是不显示中文了)

且加入

\usepackage{fontspec}
\setmainfont{SimSun} % 宋体
就可以显示中文了

方式 2

% 使用支持汉字的 CJK 包
\usepackage{CJK}
% 开始 CJK 环境, 只有在这句话之后, 你才能使用汉字。另外, 如果在 Linux 下, 请将文件的编码格式设置成 GBK,否则会显示乱码。
\begin{CJK*}{GBK}{song}

[latex 中文字体]

加粗或加斜某几个中文

使用 \bf 或者 \textbf 加粗中文无效果。

西文的习惯是使用加粗、倾斜、花体等来强调内容,而汉语的习惯则是使用不同的字形来强调内容。所以,一般的建议都是将粗宋体改用黑体,斜体之类的也改用仿宋、圆体之类的表示。

比如 lz 使用微软雅黑代替中文加粗:\fontspec{Microsoft YaHei}\selectfont{求职意向:大数据算法工程师}

最好自定义一下:\newcommand{\yahei}[1]{\fontspec{Microsoft YaHei}\selectfont{#1}} 使用 \yahei{求职意向:大数据算法工程师}

[fontspec 宏包]

Latex 同时设置中英文字体

中文标题 + 中文正文 + 英文字体:

  1. 中易宋体加粗 + 中易宋体 +Calibri (中易宋体即 Windows 自带的宋体)
  2. 中易黑体 + 中易宋体 +Calibri(无法使用 PDF 时首选)
  3. 华文细黑 + 华文细黑 +Calibri(兼顾打印及分享,Office2013+MacOS 自带)
  4. 方正兰亭黑 + 方正兰亭黑 +Calibri (中文标题及正文使用华文细黑(Word 文档)、方正兰亭黑(PDF 文档))

[中文简历用什么字体会比较好?]

\RequirePackage{xeCJK} % 使用 xeCJK 宏包
\setCJKmainfont{方正兰亭黑简体} % 设置缺省中文字体
\setmainfont{Calibri} % 如不指定,使用 Tex 的默认英文字体

中文标题 lz 使用的是方正兰亭粗黑简体

使用包 xeCJK 后,随时设置字体命令 \fontspec 会无效,要使用 \CJKfontspec 代替。

[Latex 中英文环境设置]

6 分节 Sectioning

\part
\chapter
(report and book class only)
\section
\subsection

Note: \section*{Acknowledgments},标题不带 number

\subsubsection
\paragraph
\subparagraph

附录 appendix

The \appendix command changes the way following sectional unitsare numbered. The \appendix command itself generates no textand does not affect the numbering of parts. The normal use of thiscommand is something like

\chapter{A Chapter}
…
\appendix
\chapter{The First Appendix}

修改 Latex 默认 section,subsection 样式

设置 section 字体为微软雅黑及其它设置说明

\newcommand{\yahei}[1]{\fontspec{Microsoft YaHei}\selectfont{#1}}
\titleformat{\section} % Customise the \section command
{\Large\scshape\raggedright\yahei} % Make the \section headers large (\Large),
% small capitals (\scshape) and left aligned (\raggedright)
{}{0em} % Can be used to give a prefix to all sections, like 'Section ...'
{} % Can be used to insert code before the heading
[\titlerule] % Inserts a horizontal line after the heading
\titlespacing*{\section}{0cm}{*1.8}{*1.8}

section 可选参数

\section[short title]{long title}

7 交叉引用 Cross references

• \label: Assign a symbolic name to a piece of text.

一般定义的方式最好如下:

chfor chapters

sec``for lower-level sectioning commands

figfor figures

tabfor tables

eqfor equations

• \pageref: Refer to a page number.
• \ref: Refer to a section, figure or similar.

对公式的引用建议使用 \eqref,这样会在公式引用自动添加 ()。

\label{stylefiles} #定义

\ref{stylefiles} #引用

8 环境 Environment

8.1 Latex 图片 figure 处理

\begin{figure}[placement]
  figure body
\caption[loftitle]{title}
\label{label}
\end{figure}
or  

\begin{figure*}...\end{figure*}

示例

\usepackage{graphicx}
\begin{figure}[!t]
    \centering
%    \small
    \includegraphics[width=1\linewidth]{./figures/compare1}
%    \vspace{-3mm}
    \caption{figure caption}
    %todo
%    \vspace{-5mm}
    \label{fig:compare1}

\end{figure}

多图的插入

\begin{figure}[!htbp]
    \centering
    \begin{subfigure}[b]{0.45\textwidth}
      \includegraphics[width=\textwidth]{oaspl_a}
      \caption{}
      \label{fig:oaspl_a}
    \end{subfigure}%
    ~%add desired spacing
    \begin{subfigure}[b]{0.45\textwidth}
      \includegraphics[width=\textwidth]{oaspl_b}
      \caption{}
      \label{fig:oaspl_b}
    \end{subfigure}
    \caption{***。(a)$A$,(b)$B$}
    \label{fig:oaspl}
\end{figure}

1 插入双栏图片时需在 figure 的上标中加入符号 * \begin{figure*}...\end{figure*}。双列模式中的插图:The starred form figure* is used when a document is in double-column mode (see \twocolumn). It produces a figure thatspans both columns, at the top of the page. 这样插图占两列,而不是只占一列。

2 图片插入的正确位置:初始引用页面的最上或者最下位置。Like tables, figures cannot be split across pages; the best placement for them is typically the top or the bottom of the page nearest their initial cite.

3 关键性的语句是:\includegraphics[选项]{图片.eps},其选项有:
height % 指定图片的高度

width % 指定图片的宽度 \includegraphics[width=3in]{file.eps} 将 file.eps 插入文档并且它的宽度被缩放到 3 英寸,高度也会 按相应的比例缩放。如果用 \textwidth 或 \em 等的函数来 指定宽度,而不是用像 3 英寸这样的固定尺寸,将会使你的 LATEX 文 档更具通用性。例如:\includegraphics[width=\textwidth]{graphics.eps} 将所插入图形缩放到和文本行的宽度一样宽。width=0.8\textwidth 设置图片为 0.8 倍的文本宽度;width=\textwidth - 2.0in 设置图片为文本宽度少 2.0inches(当与 calc 宏包配合使用 时);

angle % 指定图片旋转的角度 用 graphicx 包的 includegraphics 宏命令插入图片时还可以使图片旋转, 方法是 \includegraphics[height= 高度][angle= 旋转角度]{图片文件名}
scale % 缩放图形

trim 指定图形可以被看到的部分的另一选项。所给出的四个数字 分别代表了从左、下、右、上被截去的值。正数代表从此方向 截去的大小,而负数则代表从此方向加上的大小。如 \includegraphics[width=1\linewidth, trim=0 132 0 155]{./figures/framework0.eps} 截取图片上下的部分。lz 一直没搞清楚 trim 和 clip 使用,如 \includegraphics[width=0.6\textwidth, clip=true, trim=98mm 40mm 88mm 35mm]{paper_organization.eps} 显示的并不是想像的先截取 eps 文件中间的图形,再放大为 0.6 倍 textwidth!![Displaying only part of an EPS picture]

其它选项 [includegraphics 命令]

插入的图形通常为 eps、pdf 或者 jpg、png 等格式,假设名字叫 fig,把它放在你的 tex 文档同一目录下。Note: 最佳的引用格式一般使用 eps 格式,如果使用 pdflatex 编译,最好使用 pdf 格式图片。.eps files to be displayable with LATEX. If you work with pdfL A TEX, use files in the .pdf format. Note that most modern TEX systems will convert .eps to .pdf for you on the fly. 如果是 eps 的图形, 编译过程是 latex, dvips, ps2pdf. 如果是 pdf jpg png 图形, 编译过程是 pdflatex .

4 图片描述 / 图标题 caption

如果想使用双语描述,使用 bicaption 宏包:

\usepackage{bicaption}
\captionsetup[figure][bi-second]{name=Figure} % 设置图的英文编号前缀
\captionsetup[table][bi-second]{name=Table} % 设置表的英文编号前缀

Note: 也可以使用 ccaption 宏包,\usepackage{ccaption},将 \caption 命令换成如下:\bicaption{图}{中文}{Fig}{English title},但这个宏包与 caption 宏包相互不兼容,很容易出错。

[Latex 中的图表中英文标题]

5 图标题和图居中

\begin{figure}[!htbp]

\captionsetup{justification=centering} % 图标题强制居中

\centering % 图居中
\end{figure}
示例代码

\begin{figure}
\centering
\includegraphics[width=0.7\linewidth]{../../../../Downloads/figure_1}
\caption{nono}
\label{fig:figure_1}
\end{figure}

说明

在 LaTeX 文档中插入图片都是通过使用一些 latex 图形处理宏命令来实现的, 有很多宏命令都支持在在 LaTeX 文档中插入 eps 格式的图形文件, 主要有:
用 includegraphics 宏命令 (graphicx 包)
首先需在 latex 文档的文件说明部分加上:
\usepackage{graphicx}
然后在需要插入图片的地方引用:
\includegraphics[height= 高度]{图片文件名} 或者: \includegraphics[width= 宽度]{图片文件名}
其中的 "高度" 和 "宽度" 是指希望图片打印的高度和宽度, 必须给出单位, 可用厘米 (cm) 或英寸(in). 高度和宽度也可用上述格式同时给出, 这样可以改变原图的长宽比例. 上述命令中的图片文件名是指欲插入的图片文件 的文件名, 图片必需是 eps 格式的.(直接使用 latex 编译不能插入 jpg 图片,但是使用 xelatex 可以)

1、先导言区加一句 \usepackage{graphicx}
2、如果想插入 inline 的图形, 直接使用
\includegraphics[width=5in]{fig},不用加后缀名。
3、如果你想插入浮动图形, 使用
\begin{figure}[htbp]
\centering\includegraphics[width=3.5in]{fig}
\caption{something}

\label{fig:1}
\end{figure}
还有其它 package 插入的方法参考 [LaTeX 文档插入图片的几种常用方法]

latex 插图的放置位置 \begin{figure}[htbp]

图形(figure)环境有一个可选参数项允许用户来指示图形有可能 被放置的位置。这一可选参数项可以是下列字母的任意组合。
h 当前位置。 将图形放置在 正文文本中给出该图形环境的地方。如果本页所剩的页面不够, 这一参数将不起作用。
t 顶部。 将图形放置在页面的顶部。
b 底部。 将图形放置在页面的底部 16.1。
p 浮动页。 将图形放置在一只允许 有浮动对象的页面上。
注:
如果在图形环境中没有给出上述任一参数,则缺省为 [tbp]。
给出参数的顺序不会影响到最后的结果。因为在考虑这些参数时 LATEX 总是尝试以 h-t-b-p 的顺序来确定图形的位置。所以 [hb] 和 [bh] 都使 LATEX 以 h-b 的顺序来排版。
给出的参数越多, LATEX 的排版结果就会越好。 [htbp], [tbp], [htp], [tp] 这些组合得到的效果不错。
只给出单个的参数项极易引发问题 16.2。 如果该图形不适合所指定的位置,它就会被搁置并阻碍对后面的图形 的处理。一旦这些阻塞的图形数目超过了 18 幅这一 LATEX 所能容许 的最大值,就会产生 ``Too Many Unprocessed Floats'' 的错误(见 第 16.3 节)。

在浮动位置选项前加上一个惊叹号(如 \begin{figure}[!ht]) 会使 LATEX 忽略应用于文本页的审美条件,试图用最严格的标准来放置浮动图形。不过, ! 不会影响应用于浮动页的审美条件。

当 LATEX `` 试图 '' 放置一浮动图形时, 它将遵循以下规则:

  1. 图形只能置于由位置参数所确定的地点。
  2. 图形的放置不能造成超过版心的错误(overfull page)。
  3. 图形只能置于当前页或后面的页中16.3。所以图形只能 `` 向后浮动 '' 而 不能 `` 向前浮动''。
  4. 图形必须按顺序出现。这样只有当前面的图形都被放置好之后才能被放置。
    • 只要前面有未被处理的图形,一幅图形就不会被放在当前位置。
    • 一幅 `` 不可能放置 '' 的图形将阻碍它后面的图形的放置。直到 文件结束或达到 LATEX 的浮动限制。参见第 16.4 节。
      同样地,一表格也只能在其前面的表格都被处理完后才能被放置。 不过,表格在排版时是跳过图形而单独处理的。
  5. 必须符合在第 17 章中给出的审美条件。例如,一页上的 浮动对象的数目不能超过 totalnumber。在浮动位置选项前加上一个惊叹号(如 \begin{figure}[!ht]) 会使 LATEX 忽略应用于文本页的审美条件,试图用最严格的标准来 放置浮动图形。不过, ! 不会影响应用于浮动页的审美条件。

[L^A^TEX2~e~ 插图指南]

[Latex 基础 ------ 图片位置排版技巧]

8.2 + 8.22 + 8.23 Latex 表格处理

标准 LaTeX 提供有 array 和 tabular 两个制表环境,它们的完整格式如下:

\begin{array}[表格位置]{列样式} \end{array}

\begin{tabular}[表格位置]{列样式} \end{tabular} or \begin{tabular*}{表格总宽度}[表格位置]{列样式} \end{tabular*}

这两个环境的选项和参数定义是相同的,不过 array 主要用于数组矩阵的排版,且只能用在数学环境中,如 equation 等。

array

array 宏包扩展了 array 和 tabular 环境功能,主要增加和增强了列样式选项,甚至可编程定义新的列样式;还增加了许多细部微调功能,如改变垂直表格线的粗细和自动调整表格间隙等。使用该宏包可以排印出外形美观、功能丰富的表格。

array

\begin{array}[pos]{cols}
column 1 entry &column 2 entry ... &column n entry \\
...
\end{array}

table

table 的位置:一般初次引用页的最上面。Because tables cannot be split across pages, the best placement for them is typically the top of the page nearest their initial cite.

To ensure this proper ``floating'' placement of tables, use the environment \textbf{table} to enclose the table's contents and the table caption. The contents of the table itself must go in the \textbf{tabular} environment, to be aligned properly in rows and columns, with the desired horizontal and vertical rules.

Note: 1 \caption 放在主体下面时显示也是在表格下面,放在主体上面就显示在表格上面。
2 table* 可以横跨两页面。
\begin{table}[placement]
table body
\caption[loftitle]{title}
\label{label}
\end{table}
示例 1(acm 标准,三线图)
\begin{table}
\caption{Frequency of Special Characters}
\label{tab:freq}
\begin{tabular}{ccl}
\toprule
Non-English or Math&Frequency&Comments\\
\midrule
\O & 1 in 1,000& For Swedish names\\
$\pi$ & 1 in 5& Common in math\\
\$ & 4 in 5 & Used in business\\
$\Psi^2_1$ & 1 in 40,000& Unexplained usage\\
\bottomrule
\end{tabular}
\end{table}

示例 2:另一种三线图的实现,lz 之前用的,不过感觉没有 acm 标准那个好。

\begin{table}[!tbp]
\small
\centering
\vspace{-0mm}
\renewcommand{\arraystretch}{1.1}
\begin{tabular}{>{\centering} p{40pt} >{\centering} p{120pt}}
\Xhline{1.1pt}
\textbf{Attribute} & \textbf{Value}
\tabularnewline \hline Name & Bosie Tea Parlor
\tabularnewline Address & New York,NY,United States
\tabularnewline Category & Food
\tabularnewline \Xhline{1.1pt}
\end{tabular}
\vspace{-1mm}
\caption{Instance of a POI's content word set.}
\label{tab:lda}
\vspace{-4mm}
\end{table}

acm 推荐使用的一个 table 格式包:booktabs

It is strongly recommended to use the package booktabs and follow its main principles of typography with respect to tables:
Never, ever use vertical rules.
Never use double rules.
It is also a good idea not to overuse horizontal rules.

tabular

参数

选项说明
l该列左对齐排列
c该列居中排列
r该列右对齐排列
p{ 列宽 }设置该列宽度,文本顶对齐。如需要哪一列自动换行,直接指定该列宽即可实现。(但是合并单元格后的就不会自动换行了,还没解决这个问题)
@{ 声明 }该列每行插入声明中文本
m{ 列宽 }设置该列宽度,文本居中对齐
b{ 列宽 }设置该列宽度,文本底对齐
>{ 声明 }声明可以是命令或插入列元素之前的文本
<{ 声明 }声明可以是命令或插入列元素之后的文本
|列边或列间加入一条垂直线
!{ 声明 }用声明要求的样式取代列间垂直线

*{num}{cols}Equivalent to num copies of cols, where num is apositive integer and cols is a list of specifiers. Thus\begin{tabular}{|*{3}{l|r}|} is equivalent to\begin{tabular}{|l|rl|rl|r|}.

Note: 出错 Extra alignment tab has been changed to \cr 是因为列数 |c|c|... 没写对。

[【LaTeX Tips】各种表格的绘制]

LaTeX 如何加粗表格横线

使用 makecell 宏包来定制表格线,这个包提供了 \Xhline 来定制表格线。

\Xhline{1.2pt}

[LaTeX 技巧 423:LaTeX 如何加粗表格横线]

合并单元格

合并一行多列单元格

	\begin{tabular}{|c|c|c|c|}
		\hline
		\multicolumn{2}{|c|}{合并一行两列} & 三 & 四 \\
		\hline
		1 & 2 & 3 & 4 \\
		\hline
	\end{tabular}

合并多行一列单元格


` `\begin{`tabular`}{`|c|c|c|c|`}` `\hline` `\multirow{`2`}`*`{`合并两行一列`}` `&` 二 `&` 三 `&` 四 `\\` `\cline{`2-4`}` `~` `&` 2 `&` 3 `&` 4 `\\` `\hline` `\end{`tabular`}

合并多行多列单元格

	\begin{tabular}{|c|c|c|c|}
		\hline
		\multicolumn{2}{|c|}{\multirow{2}*{合并两行两列}}  & 三 & 四 \\
		\cline{3-4}
		\multicolumn{2}{|c|}{~} & 3 & 4 \\
		\hline
	\end{tabular}

multirowAndCcol

[Latex 表格技巧 - 合并单元格]

列表项

8.4 描述 description

description 顾名思义,对列表项的解释描述等,description 项描述可以是多个段落,也可多个环境嵌套。

\begin{description}
\item [first label] text of first item
\item [second label] text of second item
  ...
\end{description}

效果是首行不缩进,从第二行开始缩进。也可以改变其表现 [LaTeX 技巧 303:description 列表不得不说的用法]。

8.7 有序列表 enumerate

有标号的缩进列表。\begin{enumerate}[itemindent=1em]% 在这里设置缩进的距离

\begin{enumerate}
\item [first label] text of first item
\item [second label] text of second item
...
\end{enumerate}

修改标号格式,如变成 (1):

如果使用的是 \usepackage{ enumitem } 则使用 \begin{enumerate}[itemsep=0pt, parsep=0pt,label=(\arabic*)]

列表标签的控制指令有:

命令例子
\arabic1, 2, 3 ...
\alpha, b, c ...
\AlphA, B, C ...
\romani, ii, iii ...
\RomanI, II, III ...
\fnsymbol星号,单剑号,双剑号等

如果使用的是 \usepackage{ enumerate } 则使用 \begin{enumerate}[(1)]

使用混乱会出错:
Undefined control sequence. \end{enumerate} OR

  • Missing number, treated as zero.

8.14 分条列举(圆点)itemize

\begin{itemize}
\item item1
\item item2
...
\end{itemize}

The itemize environment produces an "unordered", "bulleted"list. Itemizations can be nested within one another, up to fourlevels deep. They can also be nested within other paragraph-makingenvironments, such as enumerate (see enumerate).

示例:

紧凑的列表

以上的列表环境空白较大,如果需要更紧凑的列表方式,可以选用 mdwlist 宏包提供的 itemize*、enumerate* 和 description* 环境,用法和无星号的版本一致。

[在 Latex 使用條列式清單 itemize , enumerate , description [转]{#cb_post_title_url}]

8.19 picture

\begin{picture}(width,height)(xoffset,yoffset)
... picture commands ...
\end{picture}
Note: 这个没有研究过,感觉可用于图片插入,以后再研究。

8.20 引用quotation and quote

\begin{quotation}
text
\end{quotation}

or

\begin{quote}
text
\end{quote}

8.24 参考文献 bibliography

使用 BibTeX 管理参考文献

%% The file named.bst is a bibliography style file for BibTeX 0.99c
\bibliographystyle{named}
\bibliography{ijcai17}

ijcai17.bib 内容:

@article{ gottlob:nonmon,
author = "Georg Gottlob",
title = "Complexity results for nonmonotonic logics",
journal = "Journal of Logic and Computation",
volume = "2",
number = "3",
pages = "397--425",
month = "June",
year = "1992"
}

Note: @article{ gottlob:nonmon... 中的 gottlob 首字母必须小写,否则引用可以失败。

简写

编写 bib 文件时,若要使用一个简写来代替很长的字符串,可以使用
@string(Abbrv="Long string")
比如: @string(TIT="IEEE Trans. Inf. Theory")
这样在条目中,journal=TIT 等价于 journal={IEEE Trans. Inf. Theory}
注意使用简写的时候不要加大括号,大括号的作用是防止 latex 对内容做处理,比如在 title 中有些简写是需要大写的,为防止在参考文献列表中把这些简写变成小写字母,可以在简写两边加上大括号。

正文中引用参考文献 \cite[subcite]{keys}
The keys argument is a list of one or more citation keys, separated by commas. This command generates an in-text citation to the references associated with keys by entries in the .aux file. The text of the optional subcite argument appears after the citation. For example, \cite[p.~314]{knuth} might produce '[Knuth, p. 314]'.

\nocite : Include an item in the bibliography.The \nocite command produces no text, but writes keys,which is a list of one or more citation keys, to the .aux file. 若要把没引用的文档列入参考文献,用 \nocite{}。\nocite{*} 列入所有 bib 文件中的文献。\nocite{*} 命令是写在.tex 文件中而不是.bib 文件。

Note: key 一般取一作的姓和标题的一个词。The key is a short reference you invent to uniquely identify each work; in this sample document, the key is the first author's surname and a word from the title.

示例

Gottlob~\shortcite{gottlob:nonmon} has shown that, rather than, In our previous work~\cite{gottlob:nonmon}

Gottlob [1992] has shown that, rather than, In our previous work [Gottlob, 1992]

单作:[Gottlob, 1992] 或者 Nebel [2000](很容易看出来时)

二作:[Brachman and Schmolze, 1985]

多作:[Baumgartner et al., 2001]

多篇引用使用, 隔开:[Gott-

lob et al., 2002; Levesque, 1984a]

latex 代码:\cite{gls:hypertrees,levesque:functional-foundations}

引用作者 \citeauthor

如同时引用作者和文献 Early,~\citeauthor{eagle2009inferring}~\cite{eagle2009inferring} examined the communications

结果 Early, Eagle et al. [6] examined the communications

注意 \citeauthor 是由包 \usepackage{natbib} 提供,否则出错。

其它包中添加这种行为:

\documentclass{article} \usepackage{natbib} \begin{document} \citeauthor{lamport94} \citet{lamport94} \begin{thebibliography}{9} \bibitem[Lamport (1994)]{lamport94}Leslie Lamport, \emph{\LaTeX: A Document Preparation System}. Addison Wesley, Massachusetts, 2nd Edition, 1994. \end{thebibliography} \end{document}

[ Problem displaying author in citation when using natbib's \citeauthor command]

11 脚注 Footnotes

\footnote

\footnote[number]{text}

LaTeX 提供了 \pagestyle 命令让我们可以文档所有页面的样式 (包括页边距, 页眉和页脚等内容); 同时, 还提供了 \pagenumbering 来设置页码的显示格式. LaTeX 提供了四种不同的页面样式:

  • \pagestyle{empty} 设置页面的样式为没有页眉和页脚.
  • \pagestyle{plain} 设置页面的样式为没有页眉, 页脚中间是页码.
  • \pagestyle{headings} 设置页面的样式为没有页脚, 页眉显章节标题和页码.
  • \pagestyle{myheadings} 设置页面的样式为没有页脚, 页眉中显示用户提供的内容.

页眉页脚注释包 fancyhdr 宏包

设置没有页眉,页脚居中显示自定义字符串

\usepackage{fancyhdr}
\renewcommand{\headrulewidth}{0.0pt} #去除页眉的横线 bar
\pagestyle{fancy}
\fancyhf{} %\fancyhead{} #去除页眉内容
\cfoot{Passion in my heart, Dynamic in my body!} #设置页脚居中字符串

[How to remove the top horizontal bar in fancyhdr?]

[fancyhdr 宏包]

12 定义 Definitions

\newcommand & \renewcommand

\newcommand and \renewcommand define and redefine a command, respectively.

使用 \newcommand 可以自己定制命令
语法格式 \newcommand{\yourcommand}[参数个数]{内容}
比如:\newcommand{\wuhao}{\fontsize{10.5pt}{10.5pt}\selectfont} 用来定义一个选定字号命令

Here's a command definition that uses arguments:
\newcommand{\defreference}[1]{Definition~\ref{#1}}
Then, \defreference{def:basis} will expand to something like 'Definition~3.14'.

\newcommand 示例

\newcommand{\home}[2][]{\faHome\
\ifthenelse{\isempty{#1}}
{\href{#2}{#2}}
{\href{#2}{#1}}}

使用 \home[***.github.io]{http://\*\*\*.github.io/}

pdf 效果点击就可以跳转

不过 lz 没有搞懂 [2][] 的用法,知道的麻烦给个链接吧?比如如何定义 4 个参数的两个不同链接?

Note: \href{网址}{描述}:生成网址链接,以正常字体显示描述,隐藏网址。

所以可以简单的使用 \href{http://blog.csdn.net/pipisorry}{blog.csdn.net/pipisorry} 来表示上面的链接。但是如何定义 4 个参数的两个不同链接?

[How to use \newcommand for \href?]

LaTeX 里的超链接如何取消方框?

\usepackage[colorlinks,
linkcolor=red,
anchorcolor=blue,
citecolor=green
]{hyperref}

[LaTeX 里的超链接如何取消方框?]

\newtheorem

Define a new theorem-like environment. Synopses:
\newtheorem{name}{title}[numbered_within]
\newtheorem{name}[numbered_like]{title}

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

示例

\newtheorem{problem}{Problem}
\begin{problem}
\textbf{(Location-based Recommendation)}
Given a user activity dataset ...
\end{problem}

[LaTeX 中的定理环境]

definition

示例 1(lz 都是使用这个来定义的!)

\begin{definition}
If $z$ is irrational, then by $e^z$ we mean the
unique number that has
logarithm $z$:
\begin{displaymath}
\log e^z = z.
\end{displaymath}
\end{definition}

示例 2:定义 \newdef

\newdef{definition3}{Definition}
\begin{definition3}
\textbf{(\textit{POI})}
A POI is defined as ...
\end{definition3}


Note: lz 也不知道 \newdef 是什么意思。。。

proof

\begin{proof}
Suppose on the contrary there exists a real number $L$ such that
\begin{displaymath}
\lim_{x\rightarrow\infty} \frac{f(x)}{g(x)} = L.
\end{displaymath}
Then
\begin{displaymath}
l=\lim_{x\rightarrow c} f(x)
= \lim_{x\rightarrow c}
\left[g{x} \cdot \frac{f(x)}{g(x)} \right ]
= \lim_{x\rightarrow c} g(x) \cdot \lim_{x\rightarrow c}
\frac{f(x)}{g(x)} = 0\cdot L = 0,
\end{displaymath}
which contradicts our assumption that $l\neq 0$.
\end{proof}

15 段落 Making paragraphs

• \indent: Indent this paragraph.
• \noindent: Do not indent this paragraph. Latex 换行顶格、不缩进
• \parskip: Space added before paragraphs.
• Marginal notes: Putting remarks in the margin.

16 数学公式 Math Formulas

16.2 数学符号 Math Symbols

常用数学符号的 LaTeX 表示方法,数学符号表,请参考 [WiKibook Mathematics][symbols] [unofficial reference manual16.2]

\ 箭头

在 Latex 中怎样在指向左或右的箭头上方标注字母?

宏包 amsmath 提供了两个可以伸长的单箭头符号

\xleftarrow[下方公式]{上方公式}

上方可输入中文的双向箭头

双向箭头,且上方可输入中文,且箭头居中。

\usepackage{extarrows},$\xleftrightarrow{\text{ 社交联系}}$

或者 $\stackrel{\underleftrightarrow{\text{ 社交联系}}}{}$,其中 \stackrel{ 上层符号}{下层符号} 表示将任意两个符号重叠在一起。

附加:括号的使用

可以使用 \left 和 \right 来显示不同的括号:

功能语法显示
圆括号,小括号\left ( \frac{a}{b}\right )\left( \frac{a}{b} \right)
方括号,中括号\left [ \frac{a}{b}\right ]\left\[ \frac{a}{b} \right\]
花括号,大括号\left \{ \frac{a}{b}\right \}\left\{ \frac{a}{b} \right\}
角括号\left \langle \frac{a}{b} \right \rangle\left\langle \frac{a}{b} \right \rangle
单竖线,绝对值\left | \frac{a}{b}\right |\left| \frac{a}{b} \right|
双竖线,范\left \| \frac{a}{b} \right \|\left \| \frac{a}{b} \right \|
取整函数 (Floor function)\left \lfloor \frac{a}{b} \right \rfloor\left \lfloor \frac{a}{b} \right \rfloor
取顶函数 (Ceiling function)\left \lceil \frac{c}{d} \right \rceil\left \lceil \frac{c}{d} \right \rceil
斜线与反斜线\left / \frac{a}{b} \right \backslash\left / \frac{a}{b} \right \backslash
上下箭头\left \uparrow \frac{a}{b} \right \downarrow\left \uparrow \frac{a}{b} \right \downarrow
上下箭头\left \Uparrow \frac{a}{b} \right \Downarrow\left \Uparrow \frac{a}{b} \right \Downarrow
上下箭头\left \updownarrow \frac{a}{b} \right \Updownarrow\left \updownarrow \frac{a}{b} \right \Updownarrow
混合括号\left [0,1 \right) \left \langle \psi \right |\left \[ 0,1 \right ) \left \langle \psi \right |
单左括号\left \{\frac{a}{b} \right .\left \{ \frac{a}{b} \right .
单右括号\left . \frac{a}{b} \right \}\left . \frac{a}{b} \right \}

备注:可以使用 \big, \Big, \bigg,\Bigg 控制括号的大小,比如代码 \Bigg (\bigg [ \Big \{\big \langle \left | \| \frac{a}{b} \| \right |\big \rangle \Big \}\bigg ] \Bigg ) 显示\Bigg ( \bigg \[ \Big \{ \big \langle \left | \| x \| \right | \big \rangle \Big \} \bigg \] \Bigg )

16.3 数学函数 Math functions

LATEX 使用一种特殊的模式来排版数学符号和公式(mathematics)。段落中的数学表达式应该置于 \(和 \),$ 和 $ 或者 \begin{math} 和 \end{math} 之间。对于较大的数学式子,最好的方法是使用显示式样来排版:将它们放置于 \[和 \] 或 \begin{displaymath} 和 \end{displaymath} 之间。这样排版出的公式是没有编号的。如果你希望 LATEX 对其添加编号的话,可以使用 equation 环境来达到这一目的。

数学模式和文本模式有很多不同之处。例如在数学模式中:空格和分行都将被忽略。所有的空格或是由数学表达式逻辑的衍生,或是由特殊的命令如 \,,\quad 或 \qquad 来得到。在数学环境中 ($........$ 和 $$..........$$) 生成空格请参考 19 空格 spaces。

不允许有空行,每个公式中只能有一个段落。每个字符都将被看作是一个变量名并以此来排版。如果你希望在公式中出现普通的文本(使用正体字并可以有空格),那么你必须使用命令 \textrm{...} 来输入这些文本。数学模式中的命令仅对其后面第一个字符起作用。所以,如果你希望某一命令作用于多个字符的话,那么你就必须将它们放置于括号中:{...}。

。。。

小公式,lz 一般使用 $$ 环境实现。大公式,lz 一般使用 equation 环境实现。

无 numberd 公式环境

\begin{displaymath}
\sum_{i=0}^{\infty} x + 1
\end{displaymath}

有 numbered 公式环境:equation 环境

\begin{equation}
  math text
\end{equation}

Make a displaymath environment (see displaymath) with anequation number in the right margin. The equation number is generated using the equation counter.

示例

\begin{equation}
\label{eq:diversity}
\small \centering
D_{ij} = exp(H_{ij}) = exp(-\sum_{l}^{} P^l_{ij}logP^l_{ij})
\end{equation}

引用时候使用 Eq. \ref{eq:diversity}

多行公式

长公式

不对齐

无须对齐的长公式可以使用 multline 环境。

\begin{multline}
x = a+b+c+{} \\
d+e+f+g
\end{multline}

效果:

如果不需要编号,可以使用 multline* 环境代替。

对齐

需要对齐的公式,可以使用 aligned 次环境来实现,它必须包含在数学环境之内。

\[\begin{aligned}
x ={}& a+b+c+{} \\
&d+e+f+g
\end{aligned}\]

效果图:

& 为对齐指示符,这个是常用的。

当然也可以使用下面这个进行长公式分行左对齐

\begin{equation}
\label{eq:framework}
\small \centering
\begin{split}
&abc\\
&abc
\end{split}
\end{equation}

公式组

无需对齐的公式组可以使用 gather 环境,需要对齐的公式组可以使用 align 环境。他们都带有编号,如果不需要编号可以使用带星花的版本。

\begin{gather}
a = b+c+d \\
x = y+z
\end{gather}
\begin{align}
a &= b+c+d \\
x &= y+z
\end{align}

效果:

Latex 中将下标放在正下方

Latex 输入数学公式时(特别是文字之间的公式),有时需要将公式的下标放在正下方。比如 Max 函数下面的取值范围,需要放在 Max 的正下方。

方法 1

$\max \limits_{a<x<b}\{f(x)\}$
但是对于双 $$ 之间的公式,Latex 默认下标是放在正下方。所以就不需要加 \limits。此方法在 equation 环境中同样适用。

方法 2
\usepackage{amsmath}

格式

\underset{下标}{表达式}

\underset{t}{\text{maxk}} \{

Note: 公式中不能直接写入自定义的 maxk 这些字符,要使用 \text{maxk},否则会变成这样。另外如果 latex 自带的字符如 max 应该直接使用 \max。

18 页面格式 Page styles

• \maketitle: Generate a title page.
• \pagenumbering: Set the style used for page numbers.
• \pagestyle: Change the headings/footings style.
• \thispagestyle: Change the headings/footings style for this page.

\maketitle

\author{name \and name2}
The \author command declares the document author(s), where the argument is a list of authors separated by \and commands. Use \\ to separate lines within a single author's entry---for example, to give the author's institution or address.
\date{text}
The \date command declares text to be the document's date. With no \date command, the current date (see \today) is used.
\thanks{text}
The \thanks command produces a \footnote to the title, usually used for credit acknowledgements.
\title{text}
The \title command declares text to be the title of the document. Use \\ to force a line break, as usual.

19 空格 spaces

Horizontal space
• \hspace: Fixed horizontal space.
• \hfill: Stretchable horizontal space.
• \(SPACE) and \@: Space after a period.
• \(SPACE) after CS: Controlling space gobbling after a control sequence.
• \frenchspacing: Make interword and intersentence space equal.
• \thinspace: One-sixth of an em.
• \/: Insert italic correction.
• \hrulefill \dotfill: Stretchable horizontal rule or dots.

Vertical space
• \addvspace: Add arbitrary vertical space if needed.
• \bigskip \medskip \smallskip: Fixed vertical spaces.
• \vfill: Infinitely stretchable vertical space.
• \vspace: Add arbitrary vertical space.

行缩进 2 字符:使用 \hspace{2em} #\indent 好像无效不知为啥

\(SPACE) and \@ and ~

由于 LaTeX 采用的是源文件编译方式, 默认 LaTeX 会忽略多余的空格。

如果需要产生一个空格,可以使用 命令 \ , 注意代表的是空间键。例如: Jones, et al.\ (1993), 这样就在 "." 后产生了一个空格。符号 ~ 产生一个不可断行的空格。即空格前的反斜线符号产生一个不能伸长的空格。波浪字符 '~' 也产生一个不能伸长的空格,并且禁止断行。

如果需要多个空格, 可以使用多个 \. 一个更方便生成水平方向的空格可以使用命令 \hspace{长度} , 例如 \hspace{1cm},如果 \hspace 命令在一行的开始则需要改用 \hspace*{1cm} 来产生空格;如果要产生垂直方向的空白, 可使用命令 \vspace{长度} 和 \vspace*{长度}。

如果想在段落直接产生一定的间距, 则使用命令 \medskip, \bigskip, 或 \smallskip.

为了使输出的右边界对齐,LATEX 在单词间插入不等的间隔。在句子的末尾插入的空间稍多一些,因为这使得文本更具可读性。LATEX 假定句子以句号、问号或惊叹号结尾。如果句号紧跟一个大写字母,它就不视为句子的结尾。因为一般在有缩写地方,才出现句号紧跟大写字母的情况。

句号前的命令 \@ 说明这个句号是句子的末尾,即使它紧跟一个大写字母。对 article 风格的文档,有下列分节命令:\section{...} \paragraph{...} \subsection{...}\subparagraph{...} \subsubsection{...} 对 report 和 book 风格的文档,还有其他两个分节命令:\part{...} \chapter{...}。因为 article 风格的文档不划分为章,所以很容易把它作为一章插入书籍文档中。节之间的间隔,节的序号和标题的字号由 LATEX 自动设置。分节的两个命令有些特殊性:命令 \part 不影响章的序号。命令 \appendix 不带参量,只把章的序号改用为字母标记。LATEX 在文档编译的最后一个循环中,提取节的标题和页码以生成目录。命令 \tableofcontents 在其出现的位置插入目录。为了得到正确的目录内容,一个新文档必须编译两次。上面列出的分节命令也以 "带星" 的形式出现。"带星" 的命令通过在命令名称后加 * 来实现。它们生成的节标题既不出现于目录,也不带序号。例如,命令 \section{Help} 的 "带星" 形式为 \section*{Help}。目录出现的标题,一般与输入的文本完全一致。有时这是不可能的,因为标题太长排不进目录。在这种情况下,目录的条目可由真实标题前的可选参量确定。

\chapter[Title for the table ofcontents]{A long and especially boring title, shown inthe text}

整篇文档的标题由命令 \maketitle 产生。标题的内容必须在调用 \maketitle 以前,由命令 \title{...}, \author{...} 和可选的 \date{...} 定义。在命令 \author 中,可以输入几个用 \and 命令分开的名字。\frontmatter 应接着命令 \begin{document} 使用。它把页码更换为罗马数字。对于正文前的内容普遍使用带星的命令(例如,\chapter*{Preface}),以阻止 LATEX 对它们排序。\mainmatter 应出现在书的第一章紧前面。它打开阿拉伯页码计数器,并对页码从新计数。\appendix 标志书中附录材料的开始。该命令后的各章序号改用字母标记。\backmatter 应该插入与书中最后一部分内容的紧前面,如参考文献和索引。在标准文档类型中,它对页面没有什么效果。

在数学环境中 ($........$ 和 $$..........$$) 生成空格

两个 quad 空格 a \qquad b 两个 m 的宽度
quad 空格 a \quad b 一个 m 的宽度
大空格 a\ b 1/3m 宽度
中等空格 a\;b 2/7m 宽度
小空格 a\,b 1/6m 宽度
紧贴 a\!b 缩进 1/6m 宽度

21 特殊短语 Special insertions

• Reserved characters: Inserting '# $ % & ~ _ ^ \ { }'

如何打出这些特殊字符? \ 使用 \backslash,~ 使用 \sim,{ 使用 \{ 等等。latex 双引号 ``word'' [函数、符号及特殊字符][http://zh.wikipedia.org/wiki/Help:MATH]

• Text symbols: Inserting other non-letter symbols in text.
• Accents: Inserting accents.
• Non-English characters: Inserting other non-English characters.
• \rule: Inserting lines and rectangles.

• \today: Inserting today's date.

Text symbols

\LaTeX The LaTeX logo.

使用时后面要加一个 {},否则空格会被忽略。somewords \LaTeX{} somewords. 还可以这样使用:{\LaTeX{} and Word Style Files}。

在作者名字上加不同角标

enter image description here

[lshort-zh-cn.pdf]

\ldots
\dots
\textellipsis
An ellipsis (three dots at the baseline): '...'. \ldots and \dots also work in math mode.

附加 latex 的算法环境

latex 下描写算法的包主要有 algorithmic, algorithmicx。这两个宏包是被设计成同时一起使用的,但也可以根据用户的特殊需要分开使用。其中 algorithm 宏包主要是为算法提供一个浮动体环境,也就是说,在 LaTeX 中算法和图像,表一样,都是浮动体。algorithmic 宏包主要是用来完成算法的描述功能,该宏包提供了我们描述算法常用的几种结构命令,如条件结构、循环结构等。下面我们就通过示例来对 algorithm 的使用进行讲解。

Algorithmic 宏包,为描述算法提供了程序设计中的所有常用结构的表示,如:判断 (IF) ,循环 (WHILE, FOR, LOOP), 输入 (REQUIRE) , 输出(ENSURE) 等。

Algorithm 环境主要作用是将代码段变成浮动体,浮动体一方面能防止代码超出页面范围,另外一方面也方面最后生成和图表目录相似的算法列表目录。也能通过标记,方便在文章其它地方引用。

简单示例

\usepackage{algorithm}
\usepackage{algorithmicx}

\floatname{algorithm}{算法}
\renewcommand{\algorithmicrequire}{\textbf{ 输入:}}
\renewcommand{\algorithmicensure}{\textbf{ 输出:}}
\begin{algorithm}[!htbp]
\caption{LDA 吉布斯采样算法 LDAGibbs(\{w,$\alpha$,$\beta$,K\})}
\label{algo:lda}
\begin{algorithmic} % 每行显示行号 \begin{algorithmic}[1]
\Require 单词向量 $w$,超参数 $\alpha,\beta$,主题数目 $K$
\Ensure 主题向量 $z$,多项分布参数 $\Phi, \Theta$\\
\noindent\textbf{全局变量:} 统计量 $n_m^k,n_k^t$,以及它们的总数 $n_m,n_k$,全部条件概率数组 $p(z_i|\cdot)$\\
\textbf{[初始化]} 设置全局变量 $n_m^k,n_k^t,n_m,n_k$ 为 $0$

\noindent\textbf{[迭代 burn-in 和 sampling 步骤]}
\end{algorithmic}
\end{algorithm}

[LaTeX/Algorithms 伪代码] [Latex 建立带有竖线和编号的算法环境]

皮皮 blog


附录

常用的长度单位说明

(如用在 p{列宽} 中)

绝对定位则是固定尺寸,它们采用的是物理度量单位:cm、mm、in、px、pt 以及 pc。

但在实际应用中,我们使用最广泛的则是 em、rem、px 以及百分比(%)来度量页面元素的尺寸。

  1. px:为像素单位。它是显示屏上显示的每一个小点,为显示的最小单位。它是一个绝对尺寸单位;

  2. em:它是描述相对于应用在当前元素的字体尺寸,所以它也是相对长度单位。一般浏览器字体大小默认为 16px,则 2em == 32px;

  3. %: 百分比,它是一个更纯粹的相对长度单位。它描述的是相对于父元素的百分比值。如 50%,则为父元素的一半。

  4. 长度的说明:

    • in - 英寸 (inch)( (http://latex.yo2.cn), 白色印记.)
    • mm - 毫米 (millimeters)
    • cm - 厘米 (centimeters)
    • pt - points (大约 1/72 inch)
    • em - 接近当前字体的字符 "M" 的宽度 (approximately the width of an "M" in the current font)
    • ex - 接近当前字体的字符 "x" 的高度 approximately the height of an "x" in the current font

[ CSS 尺寸和字体单位 -em、px 还是 %]

Latex 宏定义

定义 \def\FRAMEWORK{online-offline unified framework}

引用 we introduce the {\it \FRAMEWORK}~ which can

[TeX 的宏]

写作注意事项

文件名 {\tt ijcai17.sty}

链接名 {\tt http://www.ijcai-17.org/}

not 强调 {\em not}

问题:

bib 文件中的 {Lixto} 代表什么意思?
from: http://blog.csdn.net/pipisorry/article/details/54571521

ref: [A simple guide to LaTeX]
[使用 LaTex 写毕业论][一份其实很短的 LaTeX 入门文档][始终:LaTeX 分类][lshort: http://ctan.mirror.rafal.ca/info/lshort/english/lshort.pdf]*

[LATEX 与论文写作]*

[Ctex 社区:LaTeX文档[LaTeX 2e 插图指南(中文)]

[LaTeX Tutorials: A Primer http://www.tug.org/twg/mactex/tutorials/ltxprimer-1.0.pdf]

[LaTeX Beginner's Guide]

[texstudio help: LaTeX2e unofficial reference manual (October 2015)]*

[lshort-zh-cn.pdf]

[LaTeX 简介:入门文档 huangxg 的 LaTeX Notes]

[Beginning LaTeX]

[一个完整的论文写作 LaTeX 模板]

[在 LaTeX 学术论文写作中有哪些经验和技巧?]

[ChinaTeX 论坛: 论坛 - ChinaTeX 论坛]

[wikipedia en.wikibooks.org/wiki/LaTeX/Absolute_Beginners]

[知乎:关于 LaTeX 有什么推荐的说明教程、指南一类的资料?]

[SCI 英文论文写作 - Latex 进阶]

[LaTeX_Fun 的博客]