Latex入门_第2章:用latex排版文字
文章目录
- 思维导图版
- 文字版
思维导图版
文字版
• 第2章:用latex排版文字
• 2.1 语言文字和编码
• 2.1.1 ASCII 编码
• ASCII(美国通用信息交换码)使用0x00~0x7F对文字编码,能够表示键盘上能够输入的拉丁字母、数字和符号
• 由于TEX最初面向英语文档的排版。ASCII编码(7-bit)完全够用,而早期版本的TEX也只支持ASCII。要排版西欧语言中带重音的字符,就必须用到后文所叙述的重音命令
• 2.1.2 扩展编码
• 在ASCII之后,各种语言文字都发展了自己的编码,比如西欧语言的Latin-1,日本的Shift-JIS,中国大陆的GB2312-80和GBK等。它们之中的绝大对数都向下兼容ASCII,因此无论是在哪种编码下,TEX以及LATEX的命令和符号都能够使用。
• 现在的TEX程序支持8-bit,能够识别源代码里编码处于0x800xFF范围的字符西欧、俄语系等语言的编码方案刚好能够利用0x800xFF这个范围latex命令及pdflatex命令下,这些编码的处理由inputenc宏包支持
• 例:将源代码保存为Latain-1编码
\usepackage[latin1]{inputenc}
• GBK等编码是多字节编码,ASCII字符为一个字节,汉字等非ASCII字符为两个字节,这就需要借助宏包进行较为复杂的判断和处理。CJK宏包就是用于处理中、日、韩等多字节编码的语言文字的宏包CJK宏包使用非常不方便,后一节将简单介绍现在推荐的中文支持方案
• 2.1.3 UTF-8 编码
• Unicode是一个多国字符的集合,覆盖了几乎全球范围内的语言文字UTF-8是Unicode的一套编码方案,一个字符可以由一个到四个字节编码,其中单字节字符兼容ASCII编码
• latex命令及pdflatex命令可以使用inputenc宏包支持UTF-8\usepackage[utf8]{inputenc}
• xelatex命令原生支持UTF-8编码,而且不适用inputenc宏包将.tex源代码保存为UTF-8编码,并借助fontspec宏包调用适当的字体,就可以在源代码中输入任意语言的文字。单各个语言的特殊排版要求,需要更多的宏包支持,如babel、polyglossia等
• 2.2 排版中文
• 2.2.1 xeCJK宏包
• 用latex排版中文的一大难题是中文字体的处理。TEX使用的字体格式仅支持不超过256个字符,旧式的中文排版方案如CJK宏包往往需要复杂的预处理,将中文字体拆分成数百个小字体,非常麻烦
• xelatex命令支持直接使用系统安装的TrueType(.ttf) / OpenType(.otf)等格式的字体,加上对UTF-8编码的原生支持,免去了预处理字体的麻烦在此基础上xeCJK宏包更进一步完善了排版中文的一些细节,比如中英文之间插入空袭、中文行尾的回车不引入空格、标点符号不出现在行首等等
• xeCJK宏包支持用简单的命令配置中文字体
• 例:在windows下使用xeCJK的例子源码保存为UTTF-8编码,并使用xelatex命令编译
\documentclass{article}\usepackage{xeCJK}\setCJKmainfont{SimSun}
\begin{document}中文latex排版\end{document}
• 2.2.2 ctex宏包和文档类
• ctex宏包和文档类是对CJK和xeCJK等宏包的进一步封装。ctex文档类包括ctexart/ctexrep/ctexbook,是对latex的三个标准文档类的封装,对latex的排版做了许多调整,以切合中文排版风格最新版本的ctex宏包/文档类甚至支持自动配置字体
• 例:上述操作体现到代码\documentclass{ctexart}\begin{document}中文latex排版\end{document}
• ctex宏包/文档类支持源代码保存为UTF-8和GBK编码,用latex+dvipdfmx命令、pdflatex或者xelatex命令(仅支持UTF-8)都能编译建议在使用ctex宏包和文档类时将源代码保存为UTF-8编码,使用xelatex命令编译
• 2.3 latex中的字符
• 2.3.1 空格和分段
• latex源代码中,空格键和tab键输入的空白字符视为"空格"连续的若干个空白字符视为一个空格一行开头的空格忽略不计
• 行末的回车视为一个空格连续两个回车视为空行也就是换行多个空行视为一个空行也可以在行末使用 \par 命令分段
• 例
• 代码
• \documentclass[UTF8]{ctexart}
\begin{document}Several spaces equal one. Front spaces are ignored.
An empty line starts a newparagraph. \parA \verb*|\par| command alsostarts a new line.\end{document}
• 效果
•
• 2.3.2 注释
• latex用%字符作为注释在这个字符之后知道行末,所有的字符都被忽略,行末的第一个回车也不引入空格
• 例
• 代码
• \documentclass[UTF8]{ctexart}
\begin{document}This is an % short comment% —% long and organized% —example:Comments do not bre%ak a word.\end{document}
• 效果
•
• 2.3.3 特殊字符
• 以下字符在latex里有特殊用途,如%表示注释,$、^、_等用于排版数学公式,&用于排版表格,等等
• 例
• 代码
• \documentclass[UTF8]{ctexart}
\begin{document}
# $ % ^ & { } _^{} ~{}
\end{document}
• 效果
•
• ^ ~两个命令是需要带参数的,如果不加一对花括号(空参数),就会将后面的字符作为参数,形成重音效果\被定义为换行,输入"\"只能用\textbackslach
• 代码
• \documentclass[UTF8]{ctexart}
\begin{document}
# $ % ^ & { } _^ A ~ B
\end{document}
• 效果
•
• 2.3.4 连字
• 西文排版中经常会出现连字(Ligatures),常见的有 ff / fi / ffi / ffl
• 例:去掉连字效果
• 代码
• \documentclass[UTF8]{ctexart}
\begin{document}
It’s difficult to find \dots .\parIt’s dif{}f{}icult to f{}ind \dots . \end{document}
• 效果
•
• 2.3.5 标点符号
• 中文的标点符号(都是全角的非ASCII字符)一般来讲不用特别操心,只要使用中文输入法即可。而在引文标点的输入上,有许多需要注意的地方
• 引号
• 单引号
• ‘’
• 双引号
• “”
• 连字号和破折号
• latex有三种长度的"横线"可用:连字号、短破折号和长破折号连字号 -:用来组成复合词短破折号 --:将数字连接表示范围长破折号 —:作为破折号使用
• 省略号
• latex提供了命令\ldots来生成省略号,相对于三个点的方式更为合理\ldots和\dots是两个等效的命令
• 波浪号
• ~命令可以用于输入波浪号,但是其位置靠顶端可以使用数学公式里的 \sim 符号生成位置在中部的波浪号
• 2.3.6 特殊西文符号与重音
• latex支持用命令输入各种西欧语言的特殊符号和重音
• 例
• 代码
• \documentclass[UTF8]{ctexart}
\begin{document}H^otel, na"\i ve,'el’eve,\parsm\o rrebr\o d, !'Se\ norita!,\parSch"onbrunner Schlo\ss{} \end{document}
• 效果
•
• 查表
•
• 2.3.7 其他符号
•
• latex预定义了其它一些文本模式的符号,部分符号可参考表4.4
• 例
• 代码
• \documentclass[UTF8]{ctexart}
\begin{document}
\P{} \S{} \dag{} \ddag{}\copyright{} \pounds{}\textasterisklefted\textperiodlefted\textbullet\textregistered{} \texttrademark \end{document}
• 效果
•
• 2.3.8 latex标志
• \TeX\LaTeX\LaTeXe
• 例
• 代码
• \documentclass[UTF8]{ctexart}
\begin{document}
\TeX
\LaTeX
\LaTeXe \end{document}
• 效果
•
• 2.4 文字强调
• 强调文字的方法,要么是添加一些下划线或者装饰物,要么是改变文字的字体
• 下划线
• \underline{contents…}
• \uline{contents…}需要ulem宏包支持
• 字体改变
• \emph{contents…}
• 其他字体请参考后文中的5.1.1小节
• 例
• 代码
• \documentclass[UTF8]{ctexart}\usepackage{ulem}
\begin{document}
An \underline{underlined} text.
An \underline{underlinedtext.}
An \uline{underlinedtext.}
hello, \emph{world!!!}
\end{document}
• 效果
•
• 2.5 断行和断页
• 2.5.1 单词间距和断行
• 通常情况下,断行的位置尽可能选取在两个单词之间,也就是你输入到源文件中的"空格"一般情况下,这个空格生成一个间距,它会根据行宽和文字自动调整,文字密一些的地方单词间距就略窄,反之略宽
• 可以使用字符~在合适的位置插入一个不会断行的空格,通常用在英文人名、图标名称等场景
• 例
• 代码
• \documentclass[UTF8]{ctexart}\usepackage{ulem}
\begin{document}
Fig.~2a \parDonale~E. Knuth
\end{document}
• 效果
•
• 2.5.2 手动断行和断页
• 断行
• \
• 可用于文本、表格、公式的分行
• \newline
• 只用于文本段落
• 断页
• \newpage
• \clearpage
• 区别
• 在双栏排版中\newpage只起到另起一栏的作用
• 涉及到浮动体的排版上行为不同
• 有时候latex默认的断行和断页位置,需要进行微调,以上命令就不再适用
• 自定义断行
• \linebreak[]
• \nolinebreak[]
• 自定义断页
• \pagebreak[]
• \nopagebreak[]
• 以上两个命令都带一个可选参数,n表示适合/不适合的程度取值范围0~4,缺省值为4以上命令适合给出优先考虑断行断页/禁止断行断页的位置但不适合直接拿来断行或断页
\newline 或 \newpage会在断行/断页位置正确的添加空白但是上面四条指令不能,它们的强行断行/断页会导致latex报Underfull \hbox等警告使用 \newline 或 \newpage 等是更好的选择
• 例
• \linebreak[3] 意味着此处在断行时优先考虑
• \nopagebreak 或\nopagebreak[4] 意味着禁止在此处断页
• 例
• 代码
• \documentclass[UTF8]{ctexart}\usepackage{ulem}
\begin{document}
A \B \newlineC \linebreak[10]D \nolinebreak[10]E \newpageF \clearpageG \pagebreak[10]H \nopagebreak[10]
\end{document}
• 效果
• 第1页
•
• 第2页
•
• 第3页
•
• 2.5.3 断词
• 如果遇到很长的英文单词,仅在单词之间的位置断行无法生成宽度均匀的行时,就要考虑从单词中间断开对于绝大部分单词,latex能够找到合适的断词位置,在断开的行尾加上连字符"-"
• 如果一些单词没能自动断词,我们可以在单词内使用"-"命令指定断词位置
• 例
• 代码
• \documentclass[UTF8]{ctexart}\usepackage{ulem}
\begin{document}
I think this is: supercalifragilisticexpialido-cious.
I think this is: su-per-cal-%i-frag-i-lis-tic-ex-pi-%al-i-do-cious.
\end{document}
• 效果
•
Latex入门_第2章:用latex排版文字相关推荐
- Latex入门_第3章:文档元素
文章目录 思维导图版本 文字版 思维导图版本 文字版 • 第3章:文档元素 • 3.1 章节和目录 • 3.1.1 章节标题 • 一片结构化的.条理清晰的文档一定是层次分明的,通过不同的命令分割为章. ...
- LaTeX入门|(1)从Word到LaTeX:LateX排版常用指令
从word的需要到latex的使用 写在前面 学习latex之前大多数使用word的,甚至精通word排版的,对于latex这种使用代码编程进行论文排版或ppt制作就显得比较费劲,比如平时很简单的居中 ...
- latex 中文_【小白向】LaTeX 中文入门
注:本文尚未撰写完毕,先暂存一下~(2020/06/27) 参考学习路线[1] 如何从零开始,入门 LaTeX? @孟晨 1. 卸载 CTeX 套装,安装 TeX Live 原因及教程见:TeX Li ...
- LaTeX入门_刘海洋_电子工业出版社_案例代码1
------------------------------更新-------------------------------------- 买了本二手的书,仔细看了一下要用JabRef这个软件来制作 ...
- 我的LaTeX入门--h
LaTeX概览 摘自维基百科: LaTeX, 是一种基于TEX的排版系统,由美国电脑学家莱斯利·兰伯特在20世纪80年代初期开发,利用这种格式,即使用户没有排版和程序设计的知识也可以充分发挥由TEX所 ...
- Latex入门篇之论文排版
Latex入门篇 1. 概述 1.1 Latex作用 1.2 初识Latex 2. Latex模板的使用 3. Latex排版的正经讲解 3.1 关于tex File文件 3.2 关于普通文本 3.3 ...
- LaTeX入门(刘海洋)_百度云
LaTeX入门(刘海洋)_百度云链接下载:链接:https://pan.baidu.com/s/1Y_LoLs-0o_acKIdG7Orj8g 提取码:jyik 复制这段内容后打开百度网盘手机App, ...
- 一份其实很短的 LaTeX 入门文档
一份其实很短的 LaTeX 入门文档 优雅的 LaTeX 有很多 Geeks 或者 LaTeX's Fanatical Fans 过分地强调了 LaTeX 的一些并非重点的特性,以至于很多初学者会觉得 ...
- Latex 入门笔记(2) 常用语法
文章目录 0. 前言 1. LaTeX 文档总体结构 2. 字符相关 3. 文档元素 3.1 章节与目录 3.2 标题页 3.3 列表.引用.摘要.代码 3.4 表格 4. 排版格式 4.1 字体.字 ...
最新文章
- python 浏览器自动化测试,python中使用chrome进行自动化测试,浏览器变量设置
- matlab蚁群算法 降维,基于蚁群算法的路由问题研究
- 火狐已阻止载入混合活动内容“http://www.XXX/index.php?app=serviceac=authts=isauthurl=...
- response生成图片验证码
- linux使用命令设置IP,DNS,网关
- LeetCode 1453. 圆形靶内的最大飞镖数量(几何题)
- #前端# 解决前端页面滑动不顺畅的问题
- 2017年预测:突破性创意工作站、物联网
- 一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
- ERROR 1820 (HY000): You must reset your password
- 前景检测算法(十五)--LOBSTER算法
- STM32 MDK片外FLASH下载算法制作 —— 基于QSPI(W25Q32)
- SaaS运营实战:B端与C端的区别在哪?
- 函数式编程Haskell初探
- Aspose.Words五 MergeField
- dm385和8127的区别
- 短视频SDK测试tips
- Arduino安装与配置ESP8266开发板(超简单,亲测有效)
- 使用WinGate代理服务器使局域网连接到Internet
- 中国猪饲料行业经营模式与十四五前景形势分析报告2022版