目录
Part I 组织文本 [1]
一、文字处理
1.1 文字间隔
%
注释放在末尾可以消除掉因换行产生的多余空格\,
可以产生很小的间隔:多用于防止符号连接- 对于防止连字方面,可以使用
\/
或者{}
进行分隔 ~
不可断空格- 使用
xeCJK
宏包时,要忽略汉字与其他西文字符之间的自动空格可用盒子\mbox{}
,例如:
1 | \mbox{真棒}-b |
- 连字符:
-
; 范围:--
; 破折号:---
. - 在控制连字方面,宏包
fontspec
中的[Ligature]
字体选项能选择连字的程度(XeTeX引擎 OpenType字体情况下) - 文字隐形命令
\phantom{}
1.2 字体设置
- 查看系统字体命令[cmd]:
fc-list
,例如查看预装字体以及系统已装的矢量字体
1 | fc-list -f "%{family}\n" :outline > fontlist.txt |
- 设置字体:借助宏包
fontspec
可选参数[no-math]
1 | \setmainfont[<可选参数>]{<字体名>} %正文罗马字体族 |
在CTeX套件中对应设置项为:
1 | \setCJKmainfont[<可选参数>]{<字体名>} %正文罗马字体族 |
举了例子
1 | \setCJKmainfont[BoldFont=SimHei,ItalicFont=KaiTi,BoldItalicFont=LiShu]{SimSun} |
- 重新定义默认字体族
1
2
3\renewcommand\rmdefault{} %修改\rmfamily
\renewcommand\sfdefault{} %修改\sffamily
\renewcommand\ttdefault{} %修改\ttfamily
在CTeX套件中对应设置项为:
1 | \renewcommand\CJKrmdefault{} %修改\CJKrmfamily |
1.3 下划线和正文字号
-
下划线推荐使用:
西文 -
ulem
宏包的\uline
\uuline
\uwave
等;中文 -
CJKfntef
宏包中的\CJKunderdot
\CJKunderline
\CJKunderdblline
\CJKunderwave
\CJKsout
等; -
字号选择:
\documentclass[<参数>]{<文档类型>}
参数部分可设置全文默认正文字体字号;在CTeX套件中提供了
c5size
- 默认设置,五号字体;cs4size
- 小四号字体。
二、段落设置
2.1 普通段落排版
-
行距设置:
自定义行距:
\linespread{<因子>} %默认因子为1.3
此外宏包
setspace
能够保证数学公式等的行距也相对合理,命令\setstretch{<因子>}
-
单段落悬挂缩进
1
2\hangafter = ±n % 作用于段落行数;正值:n行之后;负值前n行;
\hangindent = ±npc %缩进距离;正值在左侧;负值在右侧; -
首字下沉
推荐使用宏包
lettrine
的\lettrine{}{}
命令 -
特殊形状段落
宏包
shapepar
中的\parshape
;例如:1
2
3\heartpar{%
内容
}
2.2 计数器
宏包 calc
提供了有关长度和计数器计算的简单功能
计数器设计:
1 | \newcounter{<计数器名称>}[<可选参数:依赖的计数器名称>] |
2.3 环境类排版
-
定理类环境(默认有)
-
通过
theorem
宏包设置:\theoremstyle{<参数>}
其中参数有:
plain 默认
break 定理头换行
marginbreank 编号在页边,定理头换行
changebreak 定理头编号在前文字在后,换行
change 定理头编号在前文字在后,不换行
margin 编号在页边,定理头不换行 -
通过
ntheorem
宏包设置:\theoremstyle{<参数>}
;参数同上,又新增了些
其中新增参数有:nonumberplain 无编号
nonumber 无编号,定理头换行
empty 空的此外,还添加了
[thmmarks]
选项,可使用\theoremsymbol
设置末尾添加结尾符号。
-
-
抄录
-
简单抄录命令:
\verb<符号><抄录内容><符号>
%带*命令可使抄录内容空格可见 -
简单抄录环境:
verbatim
% 带*号环境作用同上;注:以上为特殊命令,不可作为其他命令参数
宏包
fancyvrb
提供了verbatim
环境扩展。 -
代码抄录环境:
listings
宏包的lstlisting
环境lstlisting 环境全局设置;以下仅列部分
1
2
3
4
5
6
7
8
9
10
11
12\lstset{
basicstyle = <>, % 整体格式,例如:\sffamily
keywordstyle = <>, % 关键字格式,例如:\bfseries
identifierstyle = <>, % 标识符格式
stringstyle = <>, % 字符串格式,例如:\ttfamily
commentstyle = <>, % 注释格式,例如:\rmfamily\itshape
column = flexible, % 设置列对齐为非等宽,默认为fixd
% flexible columns, % 作用同上
numbers = left, % 行编号在左边,默认为 none,可选 right
numberstyle = <>, % 行号格式
escapechar = ` % 转义字符设置,xeCJK v3.2.2 以后无需设置
}命令:类
\verb
的命令为\lstinline<符号><代码><符号>
-
-
制表位排版
tabbing
环境,行用\\
分隔,\=
设置制表位\'
使其前后文字以当前制表位为中心对齐\`
后面文字右对齐\<
与\>
相反,向前跳一个制表位\+
后面行向后跳一个制表位\-
与上相反\pushtabs
保存当前制表位poptabs
恢复上边保存的制表位可借助算法宏包
clrcode
、algorithm2e
(广泛) 、algorithmicx
排版算法
2.4 边/脚注与垂直间距
-
脚注与边注
-
脚注编号由
\thefootnote
控制,可重定义例如带圈编号:
\renewcommand\thefootnote{\textcircled{\arabic{footnote}}}
pifont
宏包提供的更好,`\renewcommand\thefootnote{\ding{\numexpr171+\value{footnote}}}`
标题使用脚注需要保护,防止写入目录:
\section[节标题]{节标题\protect\footnote{脚注内容}}
-
边注
\marginpar{}
,\marginpar[左侧内容]{右侧内容}
(双面模式)宏包
marginnote
的\marginnote
命令可以禁止不需要的浮动。\reversemarginpar
改变边注的左右位置
\normalmarginpar
复原编著的左右位置
\marginparwidth
边注宽度,可通过\setlength
或者宏包geometry
设置
\marginparsep
边注与正文距离,可通过\setlength
或者宏包geometry
设置
\marginparpush
边注见最小距离,可通过\setlength
设置注:
endnotes
宏包提供了尾注功能
-
-
垂直间距
-
\vfill = \vspace{\fill}
\hfill = \hspace{\fill}
-
\raggedbottom
页面内容保持自然高度,底部空白填满\flushbottom
页面内容在高度上均匀填满 -
\pagebreak[<0~4>]
断页位置,0 允许,4 必须断页(默认值);相反的\nopagebreak
-
若剩孤行未排序,可用
\enlargethispage{长度}
,提高版心内容,带*号的命令还会适当缩小行距。 -
\clearpage
与\newpage
类似,还会清理浮动体
\cleardoublepage
双面文档模式,奇数页会多分一页
-
三、标题结构
层次 | 名称 | 命令 | 说明 |
---|---|---|---|
-1 | part(部分) | \part | 可选的最高层 |
0 | chapter(章) | \chapter | report,book最高层 |
1 | section(节) | \section | article最高层 |
2 | subsection(小节) | \subsection | - |
3 | subsubsection(小小节) | \subsubsection | reprot,book默认不编号不放目录 |
4 | paragraph(段) | \paragraph | 默认不编号,不编目录 |
5 | subparagraph(小段) | \subparagraph | 默认不编号,不编目录 |
标题文档格式可通过 titlesec
宏包等修改
ctex文档类旧版本可通过 \CTEXsetup[<选项>=<值>,……]{<对象>}
去修改;
新版本可通过 \ctexset{对象={<选项>=<值>,}, 对象/<选项>=<值>,……}
去修改。
修改方法,可参考相关文档说明(texdoc ctex
)
四、页面格式
4.1 文档类选项
-
标准文档类的选项
类型 选项 说明 纸张大小 a4paper a5paper b5paper letterpaper (默认值) leagalpaper executivepaper 纸张方向 landscape 横向,即长宽交换(默认无) 单双面 oneside 单面(article、report 默认值) twoside 双面,奇偶页不同,对称(book 默认值) 字号大小 10pt 正文字号 10pt ,\large等命令与之相衬(默认值) 11pt 正文字号 11pt 12pt 正文字号 12pt 分栏 onecolumn 单栏(默认值) twocolumn 双栏 标题格式 titlepage 标题独自成页(report、book 默认值) notitlepage 标题不独自成页(article 默认值) 章格式 openright 每章只从奇数页开始(book 默认值) openany 每章可从任一页开始(article、report 默认值) 公式编号 leqno 公式编号在左边(默认无,即在右边) 公式位置 fleqn 公式左对齐,固定缩进(默认无,即居中) 草稿设置 draft 草稿,会把行溢出的盒子着重显示为黑块儿 final 终稿(默认值) 参考文献 openbib 每条文献分多段输出(默认无) -
ctex 宏包以及文档类的选项
类型 选项 说明 字号大小 c5size 正文五号字(仅用于文档类,默认值) cs4size 正文四号字(仅用于文档) 章节标题 sub3section 使 \paragraph 标题独占一行(仅用于ctexcap及文档类,默认无) sub4section 使 \paragraph 和 \subparagraph 标题都独占一行(仅用于ctexcap及文档类,默认无) 中文编码 GBK 使用GBK编码,但对XeTeX无效 UTF8 使用UTF8编码 XeTeX中文字库 nofonts 不设定中文字体,需要自己在文中定义 winfonts 设定Windows系统预装字体(默认) adobefonts 设定Adobe中文字体 排版风格 cap 使用中文标题、编号、日期等(默认) nocap 保留英文标题、编号、日期等 punct 启用标点压缩(默认值) nopunct 关闭标点压缩 indent 标题后首行缩进(默认值) noindent 标题后首行不缩进 宏包兼容 fancyhdr 调用 fancyhdr 并与之兼容(默认无) hyperref 调用 hyperref 并自动设置防止标签乱码选项(默认无) fntef 调用 CJKfntef 并定义等价的 \CTEX 开头命令(默认无)
4.2 页面尺寸
使用宏包 geometry
,例如:
1 | \usepackage{geometry} |
4.3 页眉页脚
-
内部页面风格设置
\pagestyle{}
选项
empty 无页眉页脚
plain 无页眉,页脚居中页码
headings 无页脚,页眉为章节名称、页码
myheadings 无页脚,页眉为页码和自定义内容其中,
myheadings
可有以下设置单面文档(oneside):\markright{页眉文字}
双面文档(twoside):\markboth{左面页眉}{右面页眉} %左对偶数页,右对奇数页
-
fancyhdr
宏包提供了fancy风格;\pagestyle{fancy}
\lhead{} 页眉左
\chead{} 页眉中
\rhead{} 页眉右
\lfoot{} 页脚左
\cfoot{} 页脚中
\rfoot{} 页脚右
\fancyhead[<位置>]{} 页眉;位置为E、O与L、R、C的组合
\fancyfoot[<位置>]{} 页脚;同上
\fancyhf[<部位位置>]{} 页眉页脚;部位位置为H、F与E、O与L、R、C的组合注:E为偶数页;O为奇数页。多参数时,使用半角字符逗号分隔
-
在设置页眉页脚时可使用节标题
\rightmark
与章标题\leftmark
(article无) -
页眉页脚线可有如下设置:
1
2\renewcommand\headrulewidth{0.6pt} %重定义页眉线粗细,默认0.4pt; 0pt 表示无
\renewcommand\footrulewidth{0.6pt} %默认0pt此外,
\fancypagestyle{}
可重定义原有的风格,通常设置plain
4.4 分栏控制
-
默认
- 全文双栏排版:[twocolumn]{文档类型}
- 使用命令
\twocolumn
和\onecolumn
分别进入双/单栏模式(都会先换页)
\twocolumn[可选参数]
例如:\twocolumn[\maketitle]
适用于通栏标题 - 双栏模式下,
\newpage
与\pagebreak
只表示分栏
\clearpage
与\cleardoublepage
完成分页等。 - 栏间距由
\columnsep
控制,可通过\setlength
修改
栏宽\columnwidth
可应用于它出,不要修改 - 栏与栏之间的长线由
\columnseprule
控制;默认 0pt,即没有 - 双栏内容默认不均衡,可使用
balance
宏包的\balance
命令(导言)控制平衡
-
multicol
宏包可不分页,默认平衡multicols
环境内不能使用浮动体与边注!!!例如:
\begin{multicols}{3}
分三栏其内部不再使用
\newpage
分栏 而是用\columnbreak
.
Part II 自动化排版
一、关于目录
1.1 内容定制
1. 修改目录深度`\setcounter{secnumdepth}{4} % 增加编号深度`<br>
`\setcounter{tocdepth}{4} % 增加目录深度`
-
正文中手工加一条目录
\addcontentsline{<文件>}{<类型>}{<标题文字>}
文件:目录文件扩展名 类型:章节或图标命令名 标题文字:目录项标题 oc --> 章节目录 chapter - of --> 图目录 section - ot --> 表目录 figure - 注:可用此法将标题与目录本身也添加至目录
-
tocbibind
宏包默认章节目录、图表目录、文献、索引等都加入章节目录;设置参数如下:参数 说明 参数 说明 otbib 不加入参考文献 chapter 使用 \chapter
样式(仅对book、article类)otindex 不加入索引 section 使用 \section
样式ottoc 不加入章节目录 numbib 对参考文献按章节编号(默认无) otlot 不加入表目录 numindex 对索引按章节编号(默认无) otlof 不加入图目录 - - one 以上项目(左)都不加入 - - -
\addtocontents{<文件>}{<内容>}
可将任何内容加在目录中
例如:
1 | ………… % Other contents |
1.2 格式定制
关于目录格式的自定义,宏包 tocloft
与 titletoc
都可以解决;后者比较麻烦,以后慢慢研究
参考文献
刘海洋. 入门[M]. 北京: 电子工业出版社:2013, 6.