精华内容
下载资源
问答
  • LaTex排版教程——入门篇
    2021-11-13 18:36:57

    1 LaTeX排版软件简介

      LaTeX(音译“拉泰赫”)是一种基于TEX的排版系统,由美国计算机学家莱斯利·兰伯(Leslie Lamport)在20世纪80年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由 TeX 所提供的强大功能,能在几天、甚至几小时内生成很多具有书籍质量的印刷品。 对于生成复杂表格和 数学公式 ,这一点表现得尤为突出。 因此它非常适用于生成高印刷质量的科技和数学类文档。 这个系统同样适用于生成从简单的信件到完整书籍的所有其他种类的文档。LaTeX使用 TeX 作为它的格式化引擎,当前的版本是LaTeX2ε。 Leslie Lamport开发的LaTeX是当今世界上最流行和使用最为广泛的TeX宏集。与所见即所得的MS Office不同,LaTeX入门门槛较高,但一旦掌握该工具,相信你一定会爱上LaTeX。
      本教程难度适中,属于入门版本,适合LaTeX初学者参考。由于本人能力有限,文章中难免出现错误,欢迎大家积极批评指正。

    2 LaTeX基础知识

    2.0你的第一个LaTeX文档

    % hello_world.tex
    \documentclass{article}%定义一个article类型文档
    \begin{document}
    	Hello \LaTex!
    \end{document}
    

    2.1 标点与强调

    引号

    破折、省略号与短横

    强调:粗与斜

    下划线与删除线

    \uline{下划线}
    \uuline{双下划线}
    \dashuline{虚下划线}
    \dotuline{点下划线}
    \uwave{波浪线}
    \sout{删除线}
    \xout{斜删除线}
    

    其他

    2.2 格式控制

    2.3 字体与颜色

    2.4 引用与注释

    2.5 正式排版:封面、大纲与目录

    2.6 计数器与列表

    2.7 浮动体与图表

    2.8 页面设置

    2.9 抄录与代码环境

    2.10 分栏

    2.11 文档拆分

    2.12 西文排版与其他

    参考文献

    waweew

    wefsdfss

    更多相关内容
  • LATEX 排版编程技术书籍的一些个人经验 陈硕 最后更新2013-4-14 版权声明 本作品采用“Creative Commons 署名-非商业性使用-相同方式共享3.0 Unported 许可协议 (cc by-nc-sa)”进行许可。...多年之前我写过一篇书评...
  • 开源免费资源,相关博客:https://blog.csdn.net/qinglingLS/article/details/105457617
  • 美赛latex排版资源,希望对你有所帮助
  • LATEX 排版

    2018-12-11 20:41:19
    介绍了LaTeX的安装,以及入门知识,还有进阶提高方面的知识。
  • Latex排版教程书籍

    2018-11-27 17:04:31
    latex排版教程书籍集合,适合用latex排版的人员学习。
  • 该文件为数学建模国赛所需Latex模板,建模时可直接套用该模板进行编辑。其内含有代码教程。
  • Latex排版 1.编写源代码 第一部分是导言区,是对版面的全局设置,如对版心尺寸、页眉页脚样式、字号大小、首行缩进距离的设置。第二部分是正文区,不仅有纯文字和符号,还有大量的排版命令。 导言区: 1 \document...

    Latex排版

    1.编写源代码

    第一部分是导言区,是对版面的全局设置,如对版心尺寸、页眉页脚样式、字号大小、首行缩进距离的设置。第二部分是正文区,不仅有纯文字和符号,还有大量的排版命令。
    导言区:

    1 \documentclass[选项1,选项2,...]{文类}
    2 \usepackage[选项1,选项2,...]{宏包1}
    3 \usepackage[选项1,选项2,...]{宏包2}
    4 其他一些设置命令 ...
    

    第1行documentclass表示文档类型,第2、3行usepackage表示调用宏包。
    正文区:

    5 \begin{document}
    6 坚持使用\LaTeX ,你会爱不释手!
    7 \end{document}
    

    第5行表示文档开始,第7行表示文档结束。所有命令都是以反斜杠“\”开头,并且在正文中不会出现。
    编写完成后先保存,再编译。
    在这里插入图片描述

    2.短文排版

    2.1设定文类为中文论文

    \documentclass{ctexart}
    

    2.2文档开始

    命令表示文档开始,同时会带入文档结束

    \begin{document}
    	内容...
    \end{document}
    

    2.3输入短文标题及作者信息(居中环境)

    设置居中环境:
    (1)菜单栏中的Latex→环境→居中按钮
    (2)输入命令:

    \begin{center}
    ......
    \end{center}
    

    (3)短文标题及作者信息:

    \documentclass{ctexart}
    \begin{document}
    	\begin{center} %进入居中环境
    	{\zihao{3}\heiti 计\hspace{8mm}算\hspace{8mm}机\hspace{8mm}排\hspace{8mm}版}
    	%3号黑体字,\hspace{8mm}表示在两个汉字之间有8mm的横向距离
    	\\[3mm] %先强制换行,下一行与这一行增加3mm行间距
    	{\zihao{-5}434400\,\,湖北省第一中学\,\,王某某}\\[-2mm] %"\,"表示在横向增加较少间距,[-2mm]表示下一行与这一行行距减少2mm
    	{\zihao{6}E-mail:123456789@qq.com}
    	\end{center}
    
    	计算机的发展带动了各行各业的发展,使很多行业出现了革命性的变化。\LaTeX 就是一个优秀的计算机排版系统,原先是面向英文版的。
    
    \end{document}
    

    在这里插入图片描述

    2.4输入短文标题及作者信息(系统提供)

    使用LATEX系统提供的一组专门用于生成文章标题及作者姓名、发表日期和致谢的题名信息命令。
    1.标题文本命令:\title{标题文本}。标题自动居中,标题过长则自动换行,还可强制换行。
    2.作者信息:\author{作者信息}。
    3.日期信息:\data{日期文本}。\today用于生成当天的日期信息。
    4.\maketitle:在以上的命令后输入该命令,才能生成以上题名信息。

    %导言区
    \documentclass{article} %article,report,letter
    
    \title{LATEX Document}
    %\title{LATEX \\ Document}强制换行
    %\author{CMPUNK}
    \author{CMPUNK \and Mark} %左右并列作者信息
    \date{\today}
    
    %正文区
    \begin{document}
    	\maketitle %生成以上题名信息
    	Hello World!
    	
    	%代码空行使得文本换行
    	Let $f(x)$ be defined by the formula 
    	%$f(x)=3x^2+5x+6$.%公式紧跟文本
    	$$f(x)=3x^2+5x+6$$which is polynomial of degree 2.%公式单独居中一行
    
    \end{document}
    

    在这里插入图片描述

    3.LATEX中的中文处理

    LATEX介绍命令:在cmd中输入texdoc lshort-zh
    ctex介绍:在cmd中输入texdoc ctex

    %导言区
    \documentclass{article} %article,report,letter
    \usepackage{ctex}
    
    \newcommand\degree{^\circ}%正文区使用了自定义的命令\degree
    
    \title{\heiti 勾股定理}%指定黑体字体
    \author{\kaishu 毕达哥拉斯}%指定楷书字体
    \date{\today}
    
    \begin{document}
    	\maketitle%使得导言区的设置生效
    	符号语言表述:设直角三角形$ABC$,其中$\angle C=90\degree$,则有:
    	\begin{equation} %表示带编号的行间公式
    		AB^2=BC^2+AC^2
    	\end{equation}
    \end{document}
    

    在这里插入图片描述

    4.字体字号设置

    在LATEX中一个字体有5种属性:
    1.字体编码:
    (1)正文字体编码:OT1、T1、EU1等;
    (2)数学字体编码:OML、OMS、OMX等;
    2.字体族:
    (1)罗马字体:笔画起始处有装饰;
    (2)无衬线字体:笔画起始处无装饰;
    (3)打字机字体:每个字符宽度相同,又称等宽字体;
    3.字体系列:
    (1)粗细;
    (2)宽度;
    4.字体形状:
    (1)直立;
    (2)斜体;
    (3)伪斜体;
    (4)小型大写;
    5.字体大小

    %字体字号设置
    \documentclass[10pt]{article}
    %10磅是默认正常的字体大小,即下文中的normalsize
    \usepackage{ctex}
    \newcommand{\myfont}{\textbf{\textsf{Fancy Text}}}
    
    %正文区
    \begin{document}
    	%字体族设置(罗马字体、无衬线字体、打字机字体)
    	
    
    	\textrm{Roman Family} \textsf{Scan Serif Family}\texttt{Typewriter Family}%\textrm等是字体命令,大括号里是作用到的文字
    	
    	{\rmfamily Roman Family} {\sffamily Scan Serif Family}{\ttfamily Typewriter Family}%\rmfamily是字体声明,后面紧跟的文字是作用到的文字
    	
    	%字体系列设置(粗细、宽度),\textbf可以对字体加粗
    	\textmd{Medium Series} \textbf{Boldface Series}%\textmd等是字体命令,大括号里是作用到的文字
    	
    	{\mdseries Medium Series} {\bfseries Boldface Series}%字体声明
    	
    	%字体形状(直立、斜体、伪斜体、小型大写)
    	%字体命令
    	\textup{Upright Shape} \textit{Italic Shape} 
    	\textsl{Slanted Shape} \textsc{Small Caps Shape}
    	
    	%字体声明
    	{\upshape Upright Shape} 
    	{\itshape Italic Shape}
    	{\slshape Slanted Shape}
    	{\scshape Small Caps Shape}
    	
    	%字体大小:相对于normalsize设置的
    	{\tiny  Hello }\\
    	{\scriptsize  Hello }\\
    	{\footnotesize  Hello }\\
    	{\small  Hello }\\
    	{\normalsize  Hello }\\
    	{\large  Hello }\\
    	{\Large  Hello }\\
    	{\LARGE  Hello }\\
    	{\huge  Hello }\\
    	{\Huge  Hello }\\
    	
    	%中文字体
    	{\songti 宋体} \quad {\heiti 黑体} \quad {\fangsong 仿宋} \quad {\kaishu 楷书}%\quad表示空格
    	
    	中文字体的\textbf{粗体}与\textit{斜体}%粗体为黑体、斜体为楷书
    	
    	%中文字号设置命令
    	\zihao{5}你好!
    	\myfont%latex格式与内容分离
    
    \end{document}
    

    在这里插入图片描述

    展开全文
  • 清华大学毕业论文的latex排版使用介绍和指导,值得一看
  • Latex排版教程

    千次阅读 2021-01-08 01:08:20
    文章目录Latex排版教程1. Latex源文件的基本结构2. 大纲目录3. 文字设置3.1字体族设置3.1.1英文3.1.2中文3.2字体粗细宽度设置3.3 字体形状设置3.4字体大小设置3.4.1英文3.4.2中文4. 特殊字符5. 插入图片5.1普通插图...

    Latex排版教程

    教程来自b站–latex中文教程-15集从入门到精通包含各种latex操作

    1. Latex源文件的基本结构

    % 导言区 用于全局设置
    \documentclass{article} % book, report, letter
    
    \usepackage{ctex} %中文
    
    \title{My First Document}
    \author{ZhangYue}
    \date{\today}
    
    % 正文区
    \begin{document}
        \maketitle %输出标题
        Hello World!
    \end{document}
    

    2. 大纲目录

    \section{} 一级标题, \subsection{} 二级标题,\subsubsection{} 三级标题
    空行用于分割段落,\\ 用于换行,\par 也用于换行 注意命令与文字之间用空格间隔
    \chapter{} 章节大纲
    \tableofcentonts 生成目录

    3. 文字设置

    3.1字体族设置
    3.1.1英文

    罗马字体、无衬线字体、打字机字体

    \textrm{Roman Family}%在花括号内的字体都是罗马字体
    \textsf{Sans Serif Family}
    \texttt{Typewriter Family}
    
    { %括号限制作用范围
    \rmfamily Roman Family\\
    Xiamen, located in Fujian province, is a famous coastal city. It's not only renowned for its natural beauty, but also for its modernization.
    }
    
    \sffamily Sans Serif Family %该命令下面的字体都是是无衬线字体字体,直到新的声明出现覆盖该声明。
    
    {\ttfamily Typewriter Family\\
    As far as I'm concerned, Xiamen is very clean and pretty. In that city, we can enjoy clear sky, beautiful sea, and green tropical plants. I guess living there must be very pleasant.
    }
    
    3.1.2中文
    {\songti 宋体}
    {\heiti 黑体}
    {\fangsong 仿宋}
    {\kaishu 楷书}
    
    3.2字体粗细宽度设置
    \textmd{Medium Series}
    \textbf{Boldface Series}
    
    {\mdseries Medium Series}
    {\bfseries Boldface Series}
    
    3.3 字体形状设置

    直立、斜体、伪斜体、大小写

    \textup{Upright Shape}
    \textit{Italic Shape}
    \textsl{Slanted Shape}
    \textsc{Small Caps Shape}
    
    \upshape Upright Shape
    \itshape Italic Shape
    \slshape Slanted Shape
    \scshape Small Caps Shape
    
    3.4字体大小设置

    与文档相对

    3.4.1英文
    {\tiny hello}\\
    {\scriptsize hello}\\
    {\footnotesize hello}\\
    {\small hello}\\
    {\normalsize hello}\\
    {\large hello}\\
    {\Large hello}\\
    {\LARGE hello}\\
    {\huge hello}\\
    {\Huge hello}
    
    3.4.2中文
    \subsection{中文字号}
    \zihao{-0} 你好\\
    \zihao{5} 你好
    

    4. 特殊字符

    空白字符

    • 英文多个空格,当作一个空格处理
    • 中英文混合时,自动产生空格间隔
    • 中文空格无效
    a\quad b % 1em(当前字体一个M的大小)
    a\qquad b % 2em
    a\, b 或者 a\thinspace b % 1/6的个em
    a\enspace b % 0.5em
    

    控制符

    %转义字符 其中‘\’ 用\textbackslash
    \# \$ \% \{ \} \~{} \_{} \^{} \& \textbackslash
    

    引号

    ` ' %单引号
    `` " %双引号
    

    博客《LaTeX学习系列之—LaTeX的特殊字符》总结的很详细

    5. 插入图片

    5.1普通插图
    \usepackage{graphicx} %导入图片的宏包
    \graphicspath{{figures/},{pics/}} %图片搜索路径
    
    %includegraphics[<选项>]{<文件名>}
    %格式:EPS PDF PNG JPEG BMP
    \includegraphics[scale=0.1]{IMG_1148}
    

    scale=0.3 设置缩放比例
    height=3cm 设置图片的高度
    width=100pt 设置图片的宽度
    height=1\textheight 设置图片的相对高度
    width=1\textwidth 设置图片的相对宽度
    angle=-45 设置角度
    同时设置多个参数时,用","进行分割

    5.2浮动体环境

    浮动体就是会移动的文本框

    如图\ref{fig:fig-fudong}所示 %交叉引用
    
    \begin{figure}[htbp]
    	\centering %居中排版
    	\includegraphics[scale=0.1]{IMG_1148.JPG}
      %标题和标签
    	\caption{浮动图}\label{fig:fig-fudong}
    \end{figure}
    

    \ref交叉引用可以用于公式,表格,图片
    h:此处(here)-代码所在的上下文
    t:页顶(top)-代码所在页的顶部或者之后页的顶部
    b:底页(botton)-代码所页的底部,或者下一页的底部
    p:独立的一页(page)-浮动页面

    6. 表格插入

    6.1普通插表

    设置宽度:p{宽度值},内容超过宽度时,自动换行

    \begin{tabular}{l|c c c||r} %l 左, c 居中, r 对齐; | 竖线, || 双竖线
    		1 & 2 & 33333333333333 & 4 & 5\\
    		1 & 2 & 3 & 4 & 5\\
    		\hline        %横线
    		1 & 2 & 3 & 4 & 5\\
    		\hline \hline %双横线
    		1 & 2 & 3 & 4 & 5\\
    		1 & 2 & 3 & 4 & 5
    \end{tabular}
    
    6.2浮动体环境
    \usepackage{bigstrut,multirow,rotating}
    \usepackage{booktabs}
    \usepackage[table ]{ xcolor}
    
    \begin{table}[htbp]
    	\centering
    	\begin{tabular}{lrrrr}
    	\toprule
    			& \multicolumn{2}{c}{a} & \multicolumn{2}{c}{b} \\
    			& \multicolumn{1}{l}{type1} & \multicolumn{1}{l}{type2} & \multicolumn{1}{l}{type3} & \multicolumn{1}{l}{type4} \\
    	\midrule
    	sn    & 2.35  & 2.69  & 7.34  & 5.48 \\
    	sp    & 6.32  & 5.32  & 9.13  & 7.46 \\
    	\bottomrule
    	\end{tabular}%
    	\caption{Add caption1}\label{tab:addlabel1}
    \end{table}%
    
    
    \begin{table}[htbp]
    	\centering
    	\begin{tabular}{crrrrr}
    	\toprule
    			&       & \multicolumn{1}{l}{type1} & \multicolumn{1}{l}{type2} & \multicolumn{1}{l}{type3} & \multicolumn{1}{l}{type4} \\
    	\midrule
    	\multirow{2}[1]{*}{sn} & 1     & 2.35  & 2.69  & 7.34  & 5.48 \\
    			& \cellcolor[rgb]{ .906,  .902,  .902} 2 & \cellcolor[rgb]{ .906,  .902,  .902} 2.35 & \cellcolor[rgb]{ .906,  .902,  .902} 2.69 & \cellcolor[rgb]{ .906,  .902,  .902} 7.34 & \cellcolor[rgb]{ .906,  .902,  .902} 5.48 \\
    	\multirow{2}[1]{*}{sp} & 3     & 6.32  & 5.32  & 9.13  & 7.46 \\
    			& \cellcolor[rgb]{ .906,  .902,  .902} 4 & \cellcolor[rgb]{ .906,  .902,  .902} 6.32 & \cellcolor[rgb]{ .906,  .902,  .902} 5.32 & \cellcolor[rgb]{ .906,  .902,  .902} 9.13 & \cellcolor[rgb]{ .906,  .902,  .902} 7.46 \\
    	\bottomrule
    	\end{tabular}
    	\caption{Add caption2}\label{tab:addlabel2}
    \end{table}%
    

    7.公式插入

    7.1单行公式
    \usepackage{amsmath}
    \usepackage{amssymb}`
    
    \begin{equation} %产生带编号的公式
    	f(x)=a+b
    	\label{eq:eq1}
    \end{equation}
    \begin{equation}
    	f(x)=a-b
    	\label{eq:eq2}
    \end{equation}
    
    %一个公式的多行排版, & 对齐位置
    \begin{equation}
    	\begin{split}
    		\cos 2x &= \cos^2 x -\sin^2 x\\
    				    &= 2\cos^2 x - 1
    	\end{split}
    \end{equation}
    

    \begin{equation*}产生不带编号的公式

    7.2矩阵
    \begin{equation}
    	\left[ \begin{matrix}
    		a& b& \cdots& d\\
    		& a& \cdots& d\\
    		& &	\ddots&	\vdots\\
    		0& & & d\\
    	\end{matrix} \right]
    \end{equation}
    
    \begin{pmatrix}
    	a& b& \cdots& d\\
    	& a& \cdots& d\\
    	& &	\ddots&	\vdots\\
    	0& & & d\\
    \end{pmatrix}
    
    \[
    \begin{bmatrix}
    	a& b& \cdots& d\\
    	& a& \cdots& d\\
    	& &	\ddots&	\vdots\\
    	0& & & d\\
    \end{bmatrix}
    \begin{Bmatrix}
    	a& b& \cdots& d\\
    	& a& \cdots& d\\
    	& &	\ddots&	\vdots\\
    	0& & & d\\
    \end{Bmatrix}
    \begin{vmatrix}
    	a& b& \cdots& d\\
    	& a& \cdots& d\\
    	& &	\ddots&	\vdots\\
    	\text{\huge 0}& & & d\\
    \end{vmatrix}
    \begin{Vmatrix}
    	a& b& \cdots& d\\
    	& a& \cdots& d\\
    	& &	\ddots&	\vdots\\
    	\text{\large 0}& & & d\\
    \end{Vmatrix}
    \]
    
    这是行内小矩阵
    \begin{math}
    	\left(
    		\begin{smallmatrix}
    			x & -y \\ y & x
    		\end{smallmatrix}
    	\right)
    \end{math}
    
    7.3多行公式
    7.3.1居中对齐
    \begin{gather}
    	a + b = b + a\\
    	a - b = c
    \end{gather}
    %gather带编号,gather*不带编号
    \begin{gather*}
    	a + b = b + a\\
    	a - b = c
    \end{gather*}
    
    7.3.2指定对齐位置
    \begin{align}
    	x &= t + \cos t + 1\\
    	y &= 2\sin t
    \end{align}
    
    7.3.3带括号
    \begin{equation}
    	D\left( x \right) =\left\{ \begin{array}{l}
    		1,if\ x>0\\
    		0,if\ x<0\\
    	\end{array} \right.
    \end{equation}
    

    8.版面设计

    1.纸张大小的设置

    \usepackage{geometry}
    %\geometry{papersize={宽, 高}}
    \geometry{papersize={20cm, 15cm}}
    

    2.边距的设置

    \usepackage{geometry}
    %\geometry{left=左边距,right=右边距,top=上边距,bottom=下边距}
    \geometry{left=5cm,right=5cm,top=5cm,bottom=5cm}
    

    3.页眉页脚的设置

    \usepackage{fancyhdr}
    \pagestyle{fancy}
    
    %设置页眉
    \lhead{页眉左}
    \chead{页眉中}
    \rhead{页眉右}
    
    %设置页脚
    \lfoot{左页脚}
    \cfoot{中页脚}
    \rfoot{右页脚}
    

    4.横分割线的设置

    %\renewcommand{\headrulewidth}{上分割线的宽度}
    %\renewcommand{\headwidth}{\textwidth}
    %\renewcommand{\footrulewidth}{下分割线的宽度}
    \renewcommand{\headrulewidth}{0.4pt}
    \renewcommand{\headwidth}{\textwidth}
    \renewcommand{\footrulewidth}{0.4pt}
    

    5.行间距与段间距

    \usepackage{setspace}
    \onehalfspacing %命令:设置行间距,1.5倍
    %设置段落间距
    %\addtolength{\parskip}{宽度}
    
    %导言区
    \usepackage{geometry} %导入版面设置的宏包
    \usepackage{fancyhdr} %导入页眉页脚需要的宏包
    \pagestyle{fancy}
    \usepackage{setspace} %行间距所用的包
    
    
    \geometry{papersize={20cm, 15cm}} %设置纸张的大小
    \geometry{left=2cm,right=5cm,top=5cm,bottom=5cm}%设置边距
    %设置页首
    \lhead{张一根}
    \chead{理工大学}
    \rhead{\today}
    %设置页眉
    \lfoot{左页脚}
    \cfoot{\thepage}
    \rfoot{右页脚}
    %设置横线分割的宽度
    \renewcommand{\headrulewidth}{0.4pt}
    \renewcommand{\headwidth}{\textwidth}
    \renewcommand{\footrulewidth}{0.4pt}
    \onehalfspacing %设置行间距,1.5倍
    \addtolength{\parskip}{0.4em} %设置段落间距
    
    %正文区
    \begin{document}
        秋风用时光的旋律,...,渲染得天地间空旷而又阳刚。
    
        酷热的夏天刚刚过去,...说上一晚悄悄话。
    \end{document}
    

    9.参考文献

    把所以的参考文献放在一个后缀名为.bib的文件里

    \bibliographystyle{plain} %在导言区需要导入
    
    %再在需要导入文献的地方,使用
    \cite{标签名}
    
    \bibliography{test.bib} %在文字末尾使用
    
    展开全文
  • Sensors等MDPI期刊latex排版模板
  • 如何使用LATEX 排版论文-清华大学
  • LaTeX排版教程

    2016-02-23 16:02:23
    LaTeX是论文排版工具的佼佼者!其强大的公式排版是其他软件所不能及的,是今后排版的主流趋势。还在上学的同学应该掌握!
  • 不错的资源哦!
  • LaTeX排版心得

    2019-03-05 21:36:52
    来自北京大学李东风老师的 LaTeX 排版心得。 本文先简单介绍TEX和LATEX系统,然后是一些经验总结,包括作者用LATEX和PDFLATEX打印《统计软件教程》一书的心得,编辑一些数学书籍的经验,和使用LATEX制作课程演示...
  • LaTeX 排版(一)——基础应用

    千次阅读 2021-04-12 19:21:30
    LaTeX 排版的基础功能应用

    1. LaTeX 基本概念

    LaTeX \LaTeX LATEX 的源代码为文本文件。这些文本除了文字本身,还包括各种命令,用在排版公式、划分文档结构、控制样式等等不同的地方.

    1.1 LaTeX 命令和代码结构

    1.1.1 LaTeX 命令

    LaTeX \LaTeX LATEX 中命令以 \ 开头,为以下两种形式之一:

    • 反斜线和后面的一串字母,如 \LaTeX,它们以任意非字母符号(空格、数字、标点等)为界限
    • 反斜线和后面的单个非字母符号,如 \$

    命令是大小写敏感的

    一些 LaTeX \LaTeX LATEX 命令可以接收一些参数,参数的内容会影响命令的效果. LaTeX \LaTeX LATEX 的参数分为可选参数和必选参数. 可选参数以方括号 [] 包裹;必选参数一般以花括号 {} 包裹. 还有些命令可以带一个星号 *,带星号和不带星号的命令效果有一定差异. 初次接触这些概念时,可以粗略地把星号看作一种特殊的可选参数.

    1.1.2 LaTeX 环境

    LaTeX \LaTeX LATEX 中还包括环境,用以令一些效果在局部生效,或是生成特殊的文档元素. LaTeX \LaTeX LATEX 环境的用法为一对命令 \begin\end

    \begin{⟨environment name⟩}[⟨optional arguments⟩]{⟨mandatory arguments⟩}
    …
    \end{⟨environment name⟩}
    
    • 其中 ⟨environment name⟩ 为环境名,\begin\end 中填写的环境名应当一致
    • 类似命令,{⟨mandatory arguments⟩}[⟨optional arguments⟩] 为环境所需的必选和可选参数
    • 部分环境允许嵌套使用

    1.1.3 LaTeX 分组

    有些命令(如 \bfseries)会对其后所有内容产生作用,若要限制其作用范围,则需要使用分组.

    LaTeX \LaTeX LATEX 使用一对花括号 {} 作为分组,在分组中使用的命令被限制在分组内,不会影响到分组外的内容.

    上文提到的 LaTeX \LaTeX LATEX 环境隐含了一个分组,在环境中的命令被包裹在分组内.

    1.1.4 LaTeX 源代码结构

    LaTeX \LaTeX LATEX 源代码以一个 \documentclass 命令作为开头,它指定了文档使用的文档类. document 环境当中的内容是文档正文.

    \documentclass\begin{document} 之间的位置称为导言区,在导言区中一般会使用 \usepackage 命令调用宏包,还会进行文档的全局设置.

    \documentclass{...} % ... 为某文档类
    % 导言区
    \begin{document}
    % 正文内容
    \end{document}
    % 此后内容会被忽略
    

    1.2 LaTeX 宏包和文档类

    1.2.1 文档类

    文档类规定了 LaTeX \LaTeX LATEX 源代码所要生成的文档的性质——普通文章、书籍、演示文稿、个人简历等等. LaTeX \LaTeX LATEX 源代码的开头须用 \documentclass 指定文档类:

    \documentclass[⟨options⟩]{⟨class-name⟩}
    

    其中 ⟨class-name⟩ 为文档类的名称,如 LaTeX \LaTeX LATEX 提供的 article, report, book,在其基础上派生的一些文档类如支持中文排版的 ctexart / ctexrep / ctexbook,或者有其它功能的一些文档类,如 moderncv / beamer 等, LaTeX \LaTeX LATEX 提供的基础文档类如下所示:

    在这里插入图片描述

    可选参数 ⟨options⟩ 为文档类指定选项,以全局地规定一些排版的参数,如字号、纸张大小、单双面等等。比如调用 article 文档类排版文章,指定纸张为 A4 大小,基本字号为 11pt,双面排版:

    \documentclass[11pt,twoside,a4paper]{article}
    

    LaTeX \LaTeX LATEX 的三个标准文档类可指定的选项包括:

    • 10pt11pt12pt 指定文档的基本字号,默认为 10pt.
    • a4paperletterpaper 指定纸张大小,默认为美式信纸 letterpaper. 可指定选项还包括 a5paperb5paperexecutivepaperlegalpaper.
    • twosideoneside 指定单面/双面排版. 双面排版时,奇偶页的页眉页脚、页边距不同. articlereport 默认为 onesidebook 默认为 twoside.
    • onecolumntwocolumn 指定单栏/双栏排版,默认为 onecolumn.
    • openrightopenany 指定新的一章 \chapter 是在奇数页(右侧)开始,还是直接紧跟着上一页开始. report 默认为 openanybook 默认为 openright,对 article 无效.
    • landscape 指定横向排版,默认为纵向.
    • titlepage, notitlepage 指定标题命令 \maketitle 是否生成单独的标题页,article 默认为 notitlepagereportbook 默认为 titlepage.
    • fleqn 令行间公式左对齐,默认为居中对齐.
    • leqno 将公式编号放在左边,默认为右边.
    • draftfinal 指定草稿/终稿模式。草稿模式下,断行不良的地方会在行尾添加一个黑色方块,默认为 final.

    1.2.2 宏包

    在使用 LaTeX \LaTeX LATEX 时,时常需要依赖一些扩展来增强或补充 LaTeX \LaTeX LATEX 的功能,比如排版复杂的表格、插入图片、增加颜色甚至超链接等等,这些扩展称为宏包. 调用宏包的方法非常类似调用文档类的方法:

    \usepackage[⟨options⟩]{⟨package-name⟩}
    

    宏包(包括前面所说的文档类)可能定义了许多命令和环境,或者修改了 LaTeX \LaTeX LATEX 已有的命令和环境。它们的用法说明记在相应宏包和文档类的帮助文档。在 Windows 命令提示符或者 Linux 终端下输入命令可查阅相应文档:

    texdoc ⟨pkg-name⟩
    

    1.3 LaTeX 用到的文件

    • .tex:源码文件
    • .sty:宏包文件,宏包的名称与文件名一致
    • .cls:文档类文件,文档类名称与文件名一致
    • .bib:BIBTEX 参考文献数据库文件
    • .bst:BIBTEX 用到的参考文献格式模板

    LaTeX \LaTeX LATEX 在编译过程中除了生成 .dvi.pdf 格式的文档外,还可能会生成相当多的辅助文件和日志. 一些功能如交叉引用、参考文献、目录、索引等,需要先通过编译生成辅助文件,然后再次编译时读入辅助文件得到正确的结果,所以复杂的 LaTeX \LaTeX LATEX 源代码可能要编译多次:

    • .aux LaTeX \LaTeX LATEX 生成的主辅助文件,记录交叉引用、目录、参考文献的引用等
    • .toc LaTeX \LaTeX LATEX 生成的目录记录文件
    • .lof LaTeX \LaTeX LATEX 生成的图片目录记录文件
    • .lot LaTeX \LaTeX LATEX 生成的表格目录记录文件
    • .bbl BIBTEX 生成的参考文献记录文件
    • .idx LaTeX \LaTeX LATEX 生成的供 makeindex 处理的索引记录文件
    • .ind makeindex 处理 .idx 生成的用于排版的格式化索引文件
    • .out hyperref 宏包生成的 PDF 书签记录文件

    1.4 文件的组织方式

    当编写长篇文档时,例如当编写书籍、毕业论文时,单个源文件会使修改、校对变得十分困难. 将源文件分割成若干个文件,例如将每章内容单独写在一个文件中,会大大简化修改和校对的工作.

    LaTeX \LaTeX LATEX 提供了命令 \include 用来在源代码里插入文件:

    \include{⟨filename⟩}
    

    ⟨filename⟩ 为文件名(不带 .tex扩展名),如果和要编译的主文件不在一个目录中,则要加上相对或绝对路径

    值得注意的是 \include 在读入 ⟨filename⟩ 之前会另起一页. 有的时候我们并不需要这样,而是用 \input 命令,它纯粹是把文件里的内容插入:

    \input{⟨filename⟩}
    

    当导言区内容较多时,常常将其单独放置在一个 .tex 文件中,再用 \input 命令插入,复杂的图、表、代码等也会用类似的手段处理.

    LaTeX \LaTeX LATEX 还提供了一个 \includeonly 命令来组织文件,用于导言区,指定只载入某些文件. 导言区使用了 \includeonly 后,正文中不在其列表范围的 \include 命令不会起效:

    \includeonly{⟨filename1⟩,⟨filename2⟩,…}
    

    需要注意的是,使用 \include\input 命令载入的文件名最好不要加空格和特殊字符,也尽量避免使用中文名,否则很可能会出错.

    最后介绍一个实用的工具宏包 syntonly。加载这个宏包后,在导言区使用 \syntaxonly 命令,可令 LaTeX \LaTeX LATEX 编译后不生成 DVI 或者PDF 文档,只排查错误,编译速度会快不少:

    \usepackage{syntonly}
    \syntaxonly
    

    2. 用 LaTeX 排版文字

    2.1 示例

    \documentclass{ctexart}
    \begin{document}
    	在\LaTeX{}中排版中文。
    	汉字和English单词混排,通常不需要在中英文之间添加额外的空格。
    	当然,为了代码的可读性,加上汉字和English 之间的空格也无妨。
    	汉字换行时不会引入多余的空格。
    \end{document}
    

    输出结果为:

    在这里插入图片描述

    2.2 LaTeX 中的字符

    2.2.1 空格和分段

    LaTeX \LaTeX LATEX 源代码中,空格键Tab 键输入的空白字符视为“空格”,连续的若干个空白字符视为一个空格.

    一行开头的空格忽略不计.

    行末的换行符视为一个空格;但连续两个换行符,也就是空行,会将文字分段.

    多个空行被视为一个空行,也可以在行末使用 \par 命令分段。

    2.2.2 注释

    LaTeX \LaTeX LATEX% 字符作为注释. 在这个字符之后直到行末,所有的字符都被忽略,行末的换行符也不引入空格.

    2.2.3 特殊字符

    \documentclass{ctexart}
    \begin{document}
    \# \$ \% \& \{ \} \_
    \^{} \~{} \textbackslash
    \end{document}
    

    在这里插入图片描述

    2.2.4 连字

    西文排版中经常会出现连字(ligatures),常见的有 fffiflffiffl

    \documentclass{ctexart}
    \begin{document}
    It's difficult to find \ldots\\
    It's dif{}f{}icult to f{}ind \ldots
    \end{document}
    

    在这里插入图片描述

    2.2.5 标点符号

    中文的标点符号(绝大多数为非ASCII 字符)使用中文输入法输入即可,一般不需要过多留意. 而输入西文标点符号时,有不少地方需要留意.

    • 引号

      LaTeX \LaTeX LATEX 中单引号 分别用 ` 输入;双引号 分别用 ``‘’ 输入

      ``Please press the `x' key.''
      

      在这里插入图片描述

      中文的引号 ‘ ’ 和 “ ” 与西文的引号实际上是同一组符号,但由于中西文通常用不同的字体显示,它们的具体形状和宽度可能有所不同。在使用 ctex 宏包或文档类的情况下,中文引号可以通过输入法直接输入.

    • 连字号破折号

      LaTeX \LaTeX LATEX 中有三种长度的“横线”可用:连字号(hyphen)、短破折号(en-dash)和长破折号(em-dash).

      它们分别有不同的用途:连字号 - 用来组成复合词;短破折号 用来连接数字表示范围;长破折号 用来连接单词,语义上类似中文的破折号.

      daughter-in-law, X-rated\\
      pages 13--67\\
      yes---or no?
      

      在这里插入图片描述

    • 省略号

      LaTeX \LaTeX LATEX 提供了 \ldots 命令表示省略号,相对于直接输入三个点的方式更为合理.

      \dots\ldots 命令等效.

    2.3 断行和断页

    LaTeX \LaTeX LATEX 将文字段落在合适的位置进行断行,尽可能做到每行的疏密程度匀称,单词间距不会过宽或过窄. 文字段落和公式、图表等内容从上到下顺序排布,并在合适的位置断页,分割成匀称的页面. 在绝大多数时候,我们无需自己操心断行和断页,但偶尔会遇到需要手工调整的地方.

    2.3.1 单词间距

    在西文排版实践中,断行的位置优先选取在两个单词之间,也就是在源代码中输入的“空格”. “空格”本身通常生成一个间距,它会根据行宽和上下文自动调整,文字密一些的地方,单词间距就略窄,反之略宽.

    文字在单词间的“空格”处断行时,“空格”生成的间距随之舍去. 我们可以使用字符 ~ 输入一个不会断行的空格(高德纳称之为 tie,“带子”),通常用在英文人名、图表名称等上下文环境:

    Fig.~2a \\
    Donald~E. Knuth
    

    在这里插入图片描述

    2.3.2 手动断行和断页

    如果我们确实需要手动断行,可使用如下命令:

    \\[⟨length⟩] \\*[⟨length⟩]
    \newline
    

    它们有两点区别:

    • 一是 \\ 可以带可选参数 ⟨length⟩,用于在断行处向下增加垂直间距,而 \newline 不带可选参数
    • 二是 \\ 也在表格、公式等地方用于换行,而 \newline 只用于文本段落中

    带星号的 \\ 表示禁止在断行处分页

    断页的命令有两个:

    \newpage
    \clearpage
    

    通常情况下两个命令都起到另起一页的作用,区别在于:

    • 第一,在双栏排版模式中 \newpage 起到另起一栏的作用,\clearpage 则能够另起一页
    • 第二,在涉及浮动体的排版上行为不同

    有时候我们不满足于 LaTeX \LaTeX LATEX 默认的断行和断页位置,需要进行微调,可以用以下命令告诉 LaTeX \LaTeX LATEX 哪些地方适合断行或断页,哪些地方不适合:

    \linebreak[⟨n⟩] \nolinebreak[⟨n⟩]
    \pagebreak[⟨n⟩] \nopagebreak[⟨n⟩]
    

    以上命令都带一个可选参数,用数字 ⟨n⟩ 代表适合/不适合的程度,取值范围为 0–4,不带可选参数时,缺省为 4. 比如 \linebreak 或者 \linebreak[4] 意味着此处需要强行断行;`nopagebreak\nopagebreak[4]` 意味着禁止在此处断页.

    以上命令适合给出优先考虑断行断页/禁止断行断页的位置,但不适合直接拿来断行或断页,使用 \newline\newpage 等命令是更好的选择. 因为 \newline\newpage 会在断行/断页位置填充适当的间距,但 \linebreak\pagebreak 不能,使用这些命令强行断行/断页可能会制造出糟糕的排版效果.

    使用\verb|\newline| 断行的效果
    \newline
    与使用\verb|\linebreak| 断行的效果
    \linebreak
    进行对比。
    

    在这里插入图片描述

    2.3.3 断词

    如果 LaTeX \LaTeX LATEX 遇到了很长的英文单词,仅在单词之间的“空格”处断行无法生成疏密程度匀称的段落时,就会考虑从单词中间断开. 对于绝大多数单词, LaTeX \LaTeX LATEX 能够找到合适的断词位置,在断开的行尾加上连字符 -

    如果一些单词没能自动断词,我们可以在单词内手动使用 \- 命令指定断词的位置:

    I think this is: su\-per\-cal\-%
    i\-frag\-i\-lis\-tic\-ex\-pi\-%
    al\-i\-do\-cious.
    

    在这里插入图片描述

    3. 文档元素

    3.1 章节和目录

    3.1.1 章节标题

    一篇结构化的、条理清晰文档一定是层次分明的,通过不同的命令分割为章、节、小节. 三个标准文档类 articlereportbook 提供了划分章节的命令:

    \chapter{⟨title⟩} 
    \section{⟨title⟩} 
    \subsection{⟨title⟩}
    \subsubsection{⟨title⟩} 
    \paragraph{⟨title⟩} 
    \subparagraph{⟨title⟩}
    

    其中 \chapter 只在 reportbook 文档类有定义

    这些命令生成章节标题,并能够自动编号.

    上述命令除了生成带编号的标题之外,还向目录中添加条目,并影响页眉页脚的内容,每个命令有两种变体:

    • 带可选参数

      \section[⟨short title⟩]{⟨title⟩}
      

      标题使用 ⟨title⟩ 参数,在目录和页眉页脚中使用 ⟨short title⟩ 参数

    • 带星号

      \section*{⟨title⟩}
      

      标题不带编号,也不生成目录项和页眉页脚

    • article 文档类带编号的层级为 \section\subsection\subsubsection 三级

    • reportbook 文档类带编号的层级为 \chapter\section\subsection 三级

    LaTeX \LaTeX LATEX 及标准文档类并未提供为 \section 等章节命令定制格式的功能,这一功能由 titlesec 宏包提供

    3.1.2 目录

    LaTeX \LaTeX LATEX 中生成目录非常容易,只需在合适的地方使用命令:

    \tableofcontents
    

    这个命令会生成单独的一章(reportbook)或一节(article),标题默认为“Contents

    \tableofcontents 生成的章节默认不写入目录(\section\chapter),可使用 tocbibind 等宏包修改设置

    titletoctocloft 等宏包提供了具体定制目录项格式的功能

    正确生成目录项,一般需要编译两次源代码

    3.1.3 文档结构的划分

    所有标准文档类都提供了一个 \appendix 命令将正文和附录分开,使用 \appendix 后,最高一级章节改为使用拉丁字母编号,从 A 开始

    book 文档类还提供了前言、正文、后记结构的划分命令:

    • \frontmatter 前言部分,页码使用小写罗马数字;其后的 \chapter 不编号
    • \mainmatter 正文部分,页码使用阿拉伯数字,从 1 1 1 开始计数,其后的章节编号正常
    • \backmatter 后记部分,页码格式不变,继续正常计数;其后的 \chapter 不编号

    以上三个命令还可和 \appendix 命令结合,生成有前言、正文、附录、后记四部分的文档

    \documentclass{book}
    % 导言区,加载宏包和各项设置,包括参考文献、索引等
    \usepackage{makeidx} % 调用makeidx 宏包,用来处理索引
    \makeindex % 开启索引的收集
    \bibliographystyle{plain} % 指定参考文献样式为plain
    \begin{document}
    \frontmatter % 前言部分
    \maketitle % 标题页
    \include{preface} % 前言章节preface.tex
    \tableofcontents
    \mainmatter % 正文部分
    \include{chapter1} % 第一章chapter1.tex
    \include{chapter2} % 第二章chapter2.tex
    ...
    \appendix % 附录
    \include{appendixA} % 附录A appendixA.tex
    ...
    \backmatter % 后记部分
    \include{prologue} % 后记prologue.tex
    \bibliography{books} % 利用BibTeX 工具从数据库文件books.bib 生成参考文献
    \printindex % 利用makeindex 工具生成索引
    \end{document}
    

    3.2 标题页

    LaTeX \LaTeX LATEX 支持生成简单的标题页. 首先需要给定标题和作者等信息:

    \title{⟨title⟩}
    \author{⟨author⟩}
    \date{⟨date⟩}
    

    其中前两个命令是必须的(不用 \title 会报错;不用 \author 会警告),\date 命令可选

    LaTeX \LaTeX LATEX 还提供了一个 \today 命令自动生成当前日期,\date 默认使用 \today.

    \title\author 等命令内可以使用 \thanks 命令生成标题页的脚注,用 \and 隔开多个人名.

    在信息给定后,就可以使用 \maketitle 命令生成一个简单的标题页了:

    \title{Test title}
    \author{ Mary\thanks{E-mail:*****@***.com}
    \and Ted\thanks{Corresponding author}
    \and Louis}
    \date{\today}
    

    在这里插入图片描述

    article 文档类的标题默认不单独成页,而 reportbook 默认单独成页.

    可在 \documentclass 命令调用文档类时指定 titlepage / notitlepage 选项以修改默认的行为.

    LaTeX \LaTeX LATEX 标准类还提供了一个简单的 titlepage 环境,生成不带页眉页脚的一页. 用户可以在这个环境中使用各种排版元素自由发挥,生成自定义的标题页以替代 \maketitle 命令. 甚至可以利用 titlepage 环境重新定义 \maketitle

    \renewcommand{\maketitle}{\begin{titlepage}
    ... % 用户自定义命令
    \end{titlepage}}
    

    事实上,为标准文档类指定了 titlepage 选项以后,使用 \maketitle 命令生成的标题页就是一个 titlepage 环境.

    3.3 交叉引用

    交叉引用是 LaTeX \LaTeX LATEX 强大的自动排版功能的体现之一,在能够被交叉引用的地方,如章节、公式、图表、定理等位置使用 \label 命令:

    \label{⟨label-name⟩}
    

    之后可以在别处使用 \ref\pageref 命令,分别生成交叉引用的编号和页码:

    \ref{⟨label-name⟩} 
    \pageref{⟨label-name⟩}
    

    【Example】

    A reference to this subsection
    \label{sec:this} looks like:
    ``see section~\ref{sec:this} on
    page~\pageref{sec:this}.''
    

    在这里插入图片描述

    为了生成正确的交叉引用,一般也需要多次编译源代码

    \label 命令可用于记录各种类型的交叉引用,使用位置分别为:

    • 章节标题:在章节标题命令 \section 等之后紧接着使用
    • 行间公式:单行公式在公式内任意位置使用;多行公式在每一行公式的任意位置使用
    • 有序列表:在 enumerate 环境的每个 \item 命令之后、下一个 \item 命令之前任意位置使用
    • 图表标题:在图表标题命令 \caption 之后紧接着使用
    • 定理环境:在定理环境内部任意位置使用

    3.4 脚注和边注

    3.4.1 脚注

    使用 \footnote 命令可以在页面底部生成一个脚注:

    \footnote{⟨footnote⟩}
    

    假如我们输入以下文字和命令:

    “天地玄黄,宇宙洪荒。日月盈昃,辰宿列张。”\footnote{出自《千字文》。}
    

    正文显示为:

    在这里插入图片描述

    脚注在页面底部显示为:

    在这里插入图片描述

    有些情况下(比如在表格环境、各种盒子内)使用 \footnote 并不能正确生成脚注. 我们可以分两步进行,先使用 \footnotemark 为脚注计数,再在合适的位置用\footnotetext 生成脚注。比如:

    \begin{tabular}{l}
    \hline
    “天地玄黄,宇宙洪荒。日月盈昃,辰宿列张。”\footnotemark \\
    \hline
    \end{tabular}
    \footnotetext{表格里的名句出自《千字文》。}
    

    效果为:

    在这里插入图片描述

    3.4.2 边注

    使用 \marginpar 命令可在边栏位置生成边注:

    \marginpar[⟨left-margin⟩]{⟨right-margin⟩}
    

    如果只给定了 ⟨right-margin⟩,那么边注在奇偶数页文字相同;如果同时给定了 ⟨left-margin⟩,则偶数页使用 ⟨left-margin⟩ 的文字,例如以下代码:

    \marginpar{\footnotesize 边注较窄,不要写过多文字,最好设置较小的字号。}
    

    其效果为:

    在这里插入图片描述

    3.5 特殊环境

    3.5.1 列表

    LaTeX \LaTeX LATEX 提供了基本的有序和无序列表环境 enumerateitemize,两者的用法很类似,都用 \item 标明每个列表项,enumerate 环境会自动对列表项编号.

    \begin{enumerate}
    \item …
    \end{enumerate}
    

    其中 \item 可带一个可选参数,将有序列表的计数或者无序列表的符号替换成自定义的符号,列表可以嵌套使用,最多嵌套四层.

    例如有序列表:

    \begin{enumerate}
    \item An item.
    \begin{enumerate}
    \item A nested item.\label{itref}
    \item[*] A starred item.
    \end{enumerate}
    \item Reference(\ref{itref}).
    \end{enumerate}
    

    其效果为:

    在这里插入图片描述

    无序列表:

    \begin{itemize}
    \item An item.
    \begin{itemize}
    \item A nested item.
    \item[+] A `plus' item.
    \item Another item.
    \end{itemize}
    \item Go back to upper level.
    \end{itemize}
    

    其效果为:

    在这里插入图片描述


    关键字环境 description 的用法与以上两者类似,不同的是 \item 后的可选参数用来写关键字,以粗体显示,一般是必填的:

    \begin{description}
    \item[⟨item title⟩] …
    \end{description}
    

    例如:

    \begin{description}
    \item[Enumerate] Numbered list.
    \item[Itemize] Non-numbered list.
    \end{description}
    

    其效果为:

    在这里插入图片描述

    各级无序列表的符号由命令 \labelitemi\labelitemiv 定义,可以简单地重新定义它们:

    \renewcommand{\labelitemi}{\ddag}
    \renewcommand{\labelitemii}{\dag}
    \begin{itemize}
    \item First item
    \begin{itemize}
    \item Subitem
    \item Subitem
    \end{itemize}
    \item Second item
    \end{itemize}
    

    在这里插入图片描述

    有序列表的符号由命令 \labelenumi\labelenumiv 定义,重新定义这些命令需要用到计数器相关命令:

    \renewcommand{\labelenumi}%
    {\Alph{enumi}>}
    \begin{enumerate}
    \item First item
    \item Second item
    \end{enumerate}
    

    在这里插入图片描述

    默认的列表间距比较宽, LaTeX \LaTeX LATEX 本身也未提供方便的定制功能,可用 enumitem 宏包定制各种列表间距,enumitem 宏包还提供了对列表标签、引用等的定制.

    3.5.2 文本对齐环境

    centerflushleftflushright 环境分别用于生成居中、左对齐和右对齐的文本环境.

    \begin{center} … \end{center}
    \begin{flushleft} … \end{flushleft}
    \begin{flushright} … \end{flushright}
    

    例如:

    \begin{center}
    Centered text using a
    \verb|center| environment.
    \end{center}
    \begin{flushleft}
    Left-aligned text using a
    \verb|flushleft| environment.
    \end{flushleft}
    \begin{flushright}
    Right-aligned text using a
    \verb|flushright| environment.
    \end{flushright}
    

    其效果为:

    在这里插入图片描述

    除此之外,还可以用以下命令直接改变文字的对齐方式:

    \centering 
    \raggedright 
    \raggedleft
    

    例如:

    \centering
    Centered text paragraph.
    
    \raggedright
    Left-aligned text paragraph.
    
    \raggedleft
    Right-aligned text paragraph.
    

    效果为:

    在这里插入图片描述

    有一点可以将两者区分开来:center 等环境会在上下文产生一个额外间距,而 \centering 等命令不产生,只是改变对齐方式. 比如在浮动体环境 tablefigure 内实现居中对齐,用 \centering 命令即可,没必要再用 center 环境.

    3.5.3 引用环境

    LaTeX \LaTeX LATEX 提供了两种引用的环境:quote 用于引用较短的文字,首行不缩进;quotation 用于引用若干段文字,首行缩进.

    引用环境较一般文字有额外的左右缩进.

    Francis Bacon says:
    \begin{quote}
    Knowledge is power.
    \end{quote}
    

    效果为:

    在这里插入图片描述

    《木兰诗》:
    \begin{quotation}
    万里赴戎机,关山度若飞。
    朔气传金柝,寒光照铁衣。
    将军百战死,壮士十年归。
    
    归来见天子,天子坐明堂。
    策勋十二转,赏赐百千强。⋯⋯
    \end{quotation}
    

    在这里插入图片描述

    verse 用于排版诗歌,与 quotation 恰好相反,verse 是首行悬挂缩进的.

    Rabindranath Tagore's short poem:
    \begin{verse}
    Beauty is truth's smile
    when she beholds her own face in
    a perfect mirror.
    \end{verse}
    

    在这里插入图片描述

    3.5.4 摘要环境

    摘要环境 abstract 默认只在标准文档类中的 articlereport 文档类可用,一般用于紧跟 \maketitle 命令之后介绍文档的摘要。如果文档类指定了 titlepage 选项,则单独成页;反之,单栏排版时相当于一个居中的小标题加一个 quotation 环境,双栏排版时相当于 \section* 定义的一节.

    3.5.5 代码环境

    有时我们需要将一段代码原样转义输出,这就要用到代码环境 verbatim,它以等宽字体排版代码,回车和空格也分别起到换行和空位的作用;带星号的版本更进一步将空格显示成 “␣”.

    \begin{verbatim}
    #include <iostream>
    int main()
    {
        std::cout << "Hello, world!"
                  << std::endl;
        return 0;
    }
    \end{verbatim}
    

    在这里插入图片描述

    \begin{verbatim*}
    for (int i=0; i<4; ++i)
        printf("Number %d\n",i);
    \end{verbatim*}
    

    在这里插入图片描述

    要排版简短的代码或关键字,可使用 \verb 命令:

    \verb⟨delim⟩⟨code⟩⟨delim⟩
    

    ⟨delim⟩ 标明代码的分界位置,前后必须一致,除字母、空格或星号外,可任意选择使得不与代码本身冲突,习惯上使用 | 符号.

    verbatim 环境,\verb 后也可以带一个星号,以显示空格:

    \verb|\LaTeX| \\
    \verb+(a || b)+ \verb*+(a || b)+
    

    在这里插入图片描述

    \verb命令对符号的处理比较复杂,一般不能用在其它命令的参数里,否则多半会出错

    verbatim 宏包优化了 verbatim 环境的内部命令,并提供了 \verbatiminput 命令用来直接读入文件生成代码环境. fancyvrb 宏包提供了可定制格式的 Verbatim 环境;listings 宏包更进一步,可生成关键字高亮的代码环境,支持各种程序设计语言的语法和关键字.

    3.6 表格

    LaTeX \LaTeX LATEX 里排版表格不如 Word 等所见即所得的工具简便和自由,不过对于不太复杂的表格来讲,完全能够胜任.

    排版表格最基本的 tabular 环境用法为:

    \begin{tabular}[⟨align⟩]{⟨column-spec⟩}
    ⟨item1⟩ & ⟨item2⟩ & … \\
    \hline
    ⟨item1⟩ & ⟨item2⟩ & … \\
    \end{tabular}
    

    其中 ⟨column-spec⟩ 是列格式标记;& 用来分隔单元格;\\ 用来换行;\hline 用来在行与行之间绘制横线

    直接使用 tabular 环境的话,会和周围的文字混排。此时可用一个可选参数 ⟨align⟩ 控制垂直对齐:tb 分别表示按表格顶部、底部对齐,其他参数或省略不写(默认)表示居中对齐.

    \begin{tabular}{|c|}
    center-\\ aligned \\
    \end{tabular},
    \begin{tabular}[t]{|c|}
    top-\\ aligned \\
    \end{tabular},
    \begin{tabular}[b]{|c|}
    bottom-\\ aligned\\
    \end{tabular} tabulars.
    

    在这里插入图片描述

    但是通常情况下 tabular 环境很少与文字直接混排,而是会放在 table 浮动体环境中,并用 \caption 命令加标题.

    3.6.1 列格式

    tabular 环境使用 ⟨column-spec⟩ 参数指定表格的列数以及每列的格式,基本的列格式见下表:

    列格式
    说明
    l/c/r单元格内容左对齐/居中/右对齐,不折行
    p{⟨width⟩}单元格宽度固定为 ⟨width⟩,可自动折行
    |绘制竖线
    @{⟨string⟩}自定义内容 ⟨string⟩

    例如:

    \begin{tabular}{lcr|p{6em}}
    \hline
    left & center & right
    & par box with fixed width\\
    L & C & R & P \\
    \hline
    \end{tabular}
    

    在这里插入图片描述

    表格中每行的单元格数目不能多于列格式里 l/c/r/p 的总数(可以少于这个总数),否则出错.

    @ 格式可在单元格前后插入任意的文本,但同时它也消除了单元格前后额外添加的间距. @ 格式可以适当使用以充当“竖线”,特别地,@{} 可直接用来消除单元格前后的间距:

    \begin{tabular}{@{} r@{:}lr @{}}
    \hline
    1 & 1 & one \\
    11 & 3 & eleven \\
    \hline
    \end{tabular}
    

    在这里插入图片描述

    另外 LaTeX \LaTeX LATEX 还提供了简便的将格式参数重复的写法 *{⟨n⟩}{⟨column-spec⟩},比如以下两种写法是等效的:

    \begin{tabular}{|c|c|c|c|c|p{4em}|p{4em}|}
    \begin{tabular}{|*{5}{c|}*{2}{p{4em}|}}
    

    有时需要为整列修饰格式,比如整列改变为粗体,如果每个单元格都加上 \bfseries 命令会比较麻烦。array 宏包提供了辅助格式 ><,用于给列格式前后加上修饰命令

    % \usepackage{array}
    \begin{tabular}{>{\itshape}r<{*}l}
    	\hline
    	italic & normal \\
    	column & column \\
    	\hline
    \end{tabular}
    

    在这里插入图片描述

    array 宏包还提供了类似 p 格式的 m 格式和 b 格式,三者分别在垂直方向上靠顶端对齐、居中以及底端对齐:

    % \usepackage{array}
    \newcommand\txt{a b c d e f g h i}
    \begin{tabular}{cp{2em}m{2em}b{2em}}
    	\hline
    	pos & \txt & \txt & \txt \\
    	\hline
    \end{tabular}
    

    在这里插入图片描述

    3.6.2 列宽

    在控制列宽方面, LaTeX \LaTeX LATEX 表格有着明显的不足:l/c/r 格式的列宽是由文字内容的自然宽度决定的,而 p 格式给定了列宽却不好控制对齐(可用 array 宏包的辅助格式),更何况列与列之间通常还有间距,所以直接生成给定总宽度的表格并不容易.

    tabularx 宏包为我们提供了方便的解决方案。它引入了一个 X 列格式,类似 p 列格式,不过会根据表格宽度自动计算列宽,多个 X 列格式平均分配列宽. X 列格式也可以用array 里的辅助格式修饰对齐方式:

    % \usepackage{array,tabularx}
    \begin{tabularx}{14em}%
    	{|*{4}{>{\centering\arraybackslash}X|}}
    	\hline
    	A & B & C & D \\ \hline
    	a & b & c & d \\ \hline
    \end{tabularx}
    

    在这里插入图片描述

    3.6.3 横线

    我们已经在之前的例子见过许多次绘制表格线的 \hline 命令. 另外\cline{⟨i⟩-⟨j⟩} 用来绘制跨越部分单元格的横线:

    \begin{tabular}{|c|c|c|}
    	\hline
    	4 & 9 & 2 \\ \cline{2-3}
    	3 & 5 & 7 \\ \cline{1-1}
    	8 & 1 & 6 \\ \hline
    \end{tabular}
    

    在这里插入图片描述

    在科技论文排版中广泛应用的表格形式是三线表,形式干净简明. 三线表由 booktabs 宏包支持,它提供了\toprule\midrule\bottomrule 命令用以排版三线表的三条线,以及和 \cline 对应的 \cmidrule. 除此之外,最好不要用其它横线以及竖线:

    % \usepackage{booktabs}
    \begin{tabular}{cccc}
    	\toprule
    	& \multicolumn{3}{c}{Numbers} \\
    	\cmidrule{2-4}
    	& 1 & 2 & 3 \\
    	\midrule
    	Alphabet & A & B & C \\
    	Roman & I & II& III \\
    	\bottomrule
    \end{tabular}
    

    在这里插入图片描述

    3.6.4 合并单元格

    LaTeX \LaTeX LATEX 是一行一行排版表格的,横向合并单元格较为容易,由 \multicolumn 命令实现:

    \multicolumn{⟨n⟩}{⟨column-spec⟩}{⟨item⟩}
    

    其中 ⟨n⟩ 为要合并的列数,⟨column-spec⟩ 为合并单元格后的列格式,只允许出现一个 l / c / rp 格式

    如果合并前的单元格前后带表格线 |,合并后的列格式也要带 | 以使得表格的竖线一致

    \begin{tabular}{|c|c|c|}
    	\hline
    	1 & 2 & Center \\ \hline
    	\multicolumn{2}{|c|}{3} &
    	\multicolumn{1}{r|}{Right} \\ \hline
    	4 & \multicolumn{2}{c|}{C} \\ \hline
    \end{tabular}
    

    在这里插入图片描述

    上面的例子还体现了,形如 \multicolumn{1}{⟨column-spec⟩}{⟨item⟩} 的命令可以用来修改某一个单元格的列格式.

    纵向合并单元格需要用到 multirow 宏包提供的 \multirow 命令

    \multirow{⟨n⟩}{⟨width⟩}{⟨item⟩}
    

    ⟨width⟩ 为合并后单元格的宽度,可以填 * 以使用自然宽度

    我们看一个结合 \cline\multicolumn\multirow 命令的例子:

    % \usepackage{multirow}
    \begin{tabular}{ccc}
    	\hline
    	\multirow{2}{*}{Item} & \multicolumn{2}{c}{Value} \\ \cline{2-3}
    	& First & Second \\ \hline
    	A & 1 & 2 \\ \hline
    \end{tabular}
    

    在这里插入图片描述

    3.6.5 行距控制

    LaTeX \LaTeX LATEX 生成的表格看起来通常比较紧凑,修改参数 \arraystretch 可以得到行距更加宽松的表格:

    \renewcommand\arraystretch{1.8}
    \begin{tabular}{|c|}
    	\hline
    	Really loose \\ \hline
    	tabular rows.\\ \hline
    \end{tabular}
    

    在这里插入图片描述

    3.7 图片

    LaTeX \LaTeX LATEX 本身不支持插图功能,需要由 graphicx 宏包辅助支持. 在调用了graphicx 宏包以后,就可以使用 \includegraphics 命令加载图片了:

    \includegraphics[⟨options⟩]{⟨filename⟩}
    

    其中 ⟨filename⟩ 为图片文件名,与 \include 命令的用法类似,文件名可能需要用相对路径或绝对路径表示

    图片文件的扩展名一般可不写,另外一定要注意,文件名里既不要有空格(类似 \include),也不要有多余的英文点号,否则宏包在解析文件名的过程中会出错.

    另外 graphicx 宏包还提供了 \graphicspath 命令,用于声明一个或多个图片文件存放的目录,使用这些目录里的图片时可不用写路径:

    % 假设主要的图片放在figures 子目录下,标志放在logo 子目录下
    \graphicspath{{figures/}{logo/}}
    

    \includegraphics 命令的可选参数 ⟨options⟩ 支持 ⟨key⟩=⟨value⟩ 形式赋值,常用的参数如下:

    在这里插入图片描述

    3.8 盒子

    盒子是 LaTeX \LaTeX LATEX 排版的基础单元,虽然解释上去有些抽象:每一行是一个盒子,里面的文字从左到右依次排列;每一页也是一个盒子,各行文字从上到下依次排布⋯⋯

    3.8.1 水平盒子

    生成水平盒子的命令如下:

    \mbox{…}
    \makebox[⟨width⟩][⟨align⟩]{…}
    

    \mbox 生成一个基本的水平盒子,内容只有一行,不允许分段(除非嵌套其它盒子,比如后文的垂直盒子). 外表看上去,\mbox 的内容与正常的文本无二,不过断行时文字不会从盒子里断开.

    \makebox 更进一步,可以加上可选参数用于控制盒子的宽度 ⟨width⟩,以及内容的对齐方式 ⟨align⟩,可选居中 c(默认值)、左对齐 l、右对齐 r 和分散对齐 s.

    |\mbox{Test some words.}|\\
    |\makebox[10em]{Test some words.}|\\
    |\makebox[10em][l]{Test some words.}|\\
    |\makebox[10em][r]{Test some words.}|\\
    |\makebox[10em][s]{Test some words.}|
    

    在这里插入图片描述

    3.8.2 带框的水平盒子

    \fbox\framebox 让我们可以为水平盒子添加边框. 使用的语法与 \mbox\makebox 一模一样:

    \fbox{…}
    \framebox[⟨width⟩][⟨align⟩]{…}
    

    可以通过 \setlength 命令调节边框的宽度 \fboxrule 和内边距 \fboxsep

    \framebox[10em][r]{Test box}\\[1ex]
    \setlength{\fboxrule}{1.6pt}
    \setlength{\fboxsep}{1em}
    \framebox[10em][r]{Test box}
    

    在这里插入图片描述

    3.8.3 垂直盒子

    如果需要排版一个文字可以换行的盒子, LaTeX \LaTeX LATEX 提供了两种方式:

    \parbox[⟨align⟩][⟨height⟩][⟨inner-align⟩]{⟨width⟩}{…}
    \begin{minipage}[⟨align⟩][⟨height⟩][⟨inner-align⟩]{⟨width⟩}
    …
    \end{minipage}
    

    其中⟨align⟩ 为盒子和周围文字的对齐情况(类似 tabular 环境);⟨height⟩⟨inner-align⟩ 设置盒子的高度和内容的对齐方式,类似水平盒子\makebox 的设置,不过⟨inner-align⟩ 接受的参数是顶部 t、底部 b、居中 c 和分散对齐 s.

    三字经:\parbox[t]{3em}%
    {人之初性本善性相近习相远}
    \quad
    千字文:
    \begin{minipage}[b][8ex][t]{4em}
    天地玄黄宇宙洪荒
    \end{minipage}
    

    在这里插入图片描述

    3.8.4 标尺盒子

    \rule 命令用来画一个实心的矩形盒子,也可适当调整以用来画线(标尺):

    \rule[⟨raise⟩]{⟨width⟩}{⟨height⟩}
    

    例如:

    Black \rule{12pt}{4pt} box. \\ \\
    Upper \rule[4pt]{6pt}{8pt} and
    lower \rule[-4pt]{6pt}{8pt} box. \\ \\
    A \rule[-.4pt]{3em}{.4pt} line.
    

    在这里插入图片描述

    3.9 浮动体

    内容丰富的文章或者书籍往往包含许多图片和表格等内容,这些内容的尺寸往往太大,导致分页困难. LaTeX \LaTeX LATEX 为此引入了浮动体的机制,令大块的内容可以脱离上下文,放置在合适的位置.

    LaTeX \LaTeX LATEX 预定义了两类浮动体环境 figuretable。习惯上 figure 里放图片,table 里放表格,但并没有严格限制,可以在任何一个浮动体里放置文字、公式、表格、图片等等任意内容.

    table 环境的用法举例,figure 同理:

    \begin{table}[⟨placement⟩]
    …
    \end{table}
    

    ⟨placement⟩ 参数提供了一些符号用来表示浮动体允许排版的位置,如 hbp 允许浮动体排版在当前位置、底部或者单独成页. tablefigure 浮动体的默认设置为 tbp.

    在这里插入图片描述

    • 排版位置的选取与参数里符号的顺序无关, LaTeX \LaTeX LATEX 总是以 h-t-b-p 的优先级顺序决定浮动体位置,也就是说 [!htp][ph!t] 没有区别
    • 限制包括浮动体个数(除单独成页外,默认每页不超过 3 个浮动体,其中顶部不超过 2 个,底部不超过 1 个)以及浮动体空间占页面的百分比(默认顶部不超过 70%,底部不超过 30%)

    双栏排版环境下, LaTeX \LaTeX LATEX 提供了 table*figure* 环境用来排版跨栏的浮动体. 它们的用法与 tablefigure 一样,不同之处为双栏的⟨placement⟩ 参数只能用 tp 两个位置.

    浮动体的位置选取受到先后顺序的限制. 如果某个浮动体由于参数限制、空间限制等原因在当前页无法放置,就要推迟到之后处理,并使得之后的同类浮动体一并推迟. \clearpage 命令会在另起一页之前,先将所有推迟处理的浮动体排版成页,此时 htbp 等位置限制被完全忽略.

    float 宏包为浮动体提供了 H 位置参数,不与 htbp! 混用. 使用 H 位置参数时,会取消浮动机制,将浮动体视为一般的盒子插入当前位置. 这在一些特殊情况下很有用(如使用 multicol 宏包排版分栏内容的时候),但尺寸过大的浮动体可能使得分页比较困难.

    3.9.1 浮动体的标题

    图表等浮动体提供了 \caption 命令加标题,并且自动给浮动体编号:

    \caption{…}
    

    \caption 的用法非常类似于 \section 等命令,可以用带星号的命令 \caption* 生成不带编号的标题,也可以使用带可选参数的形式 \caption[…]{…},使得在目录里使用短标题. \caption 命令之后还可以紧跟 \label 命令标记交叉引用.

    \caption 生成的标题形如 “Figure 1: …”(figure 环境)或 “Table 1: …”(table 环境). 可通过修改 \figurename\tablename 的内容来修改标题的前缀. 标题样式的
    定制功能由 caption 宏包提供.

    tablefigure 两种浮动体分别有各自的生成目录的命令:

    \listoftables
    \listoffigures
    

    它们类似 \tableofcontents 生成单独的章节

    3.9.2 并排和子图表

    我们时常有在一个浮动体里面放置多张图的用法. 最简单的用法就是直接并排放置,也可以通过分段或者换行命令 \\ 排版多行多列的图片,以下为示意代码:

    \begin{figure}[htbp]
        \centering
        \includegraphics[width=...]{...}
        \qquad
        \includegraphics[width=...]{...} \\[..pt]
        \includegraphics[width=...]{...}
        \caption{...}
    \end{figure}
    

    示意图大致如下:

    在这里插入图片描述

    由于标题是横跨一行的,用 \caption 命令为每个图片单独生成标题就需要借助前文提到的 \parbox 或者 minipage 环境,将标题限制在盒子内.

    \begin{figure}[htbp]
        \centering
        \begin{minipage}{...}
            \centering
            \includegraphics[width=...]{...}
            \caption{...}
        \end{minipage}
        \qquad
        \begin{minipage}{...}
            \centering
            \includegraphics[width=...]{...}
            \caption{...}
        \end{minipage}
    \end{figure}
    

    示意图如下:

    在这里插入图片描述

    当我们需要更进一步,给每个图片定义小标题时,就要用到 subfig 宏包的功能了. 这里仅举一例:

    \begin{figure}[htbp]
    	\centering
    	\subfloat[...]{\label{sub-fig-1}% 为子图加交叉引用
    		\begin{minipage}{...}
    			\centering
    			\includegraphics[width=...]{...}
    		\end{minipage}
    	}
    	\qquad
    	\subfloat[...]{%
    		\begin{minipage}{...}
    			\centering
    			\includegraphics[width=...]{...}
    		\end{minipage}
    	}
    	\caption{...}
    \end{figure}
    

    在这里插入图片描述

    展开全文
  • 2021美赛Latex排版美化 完整代码1

    千次阅读 多人点赞 2021-01-23 12:58:27
    2021美赛Latex排版 还有两周就打美赛啦!!!这次小组准备用Latex排版,毕竟比word用得舒坦~ 下面是官网下载的MCM-ICM_2021_Summary: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% MCM/ICM LaTeX Template %% %% ...
  • R语言 Latex 排版代码

    2018-04-20 23:12:58
    R语言中 利用Latex工具对论文进行排版调整格式。尤其对量化论文有所帮助
  • LATEX在书籍和论文排版方面具有很强大的功能,本讲义从初学者角度一步步将排版技巧介绍的非常清楚
  • Latex学习以及IEEE论文投稿Latex排版经历 ** 1.工欲善其事必先利其器 我使用的软件是TeXLive2021+TEXstudio,读者可以在下面的超链接下载,亲测有效。 TeXLive2021+TEXstudio 2.入门视频课 b站上有很多,推荐一个快速...
  • 背景来源三:引用老师对我们的教诲——不要太高估自己使用word的能力,word并不节约时间,一晚上不睡觉latex排版还是有可能的完成个差不多的,但是一晚上word排版还是洗洗睡吧,想想梦里如何排,第二天可能精神更好...
  • Latex排版文字

    2021-06-06 12:57:06
    文字是排版的基础,在本篇文章将继续介绍Latex的使用 提示:以下是本篇文章正文内容,下面案例可供参考 一、排版中文 只说最简单的一个方式即:使用ctex宏包。 ctex 宏包和文档类是对 CJK 和 xeCJK 等宏包的...
  • LaTeX 排版(二)——排版数学公式

    千次阅读 2021-04-13 21:58:49
    LaTeX 的王牌功能——公式排版
  • 出版社要求的是使用tex格式来排版,模板(.tex文件)由出版社来提供,从其网站下载即可。但我们写的论文一般都是word格式。如何按照出版社的要求作出tex格式的论文呢?那就是用latex。他就像doc文件使用word进行编辑...
  • 写英文文章的LaTeX软件,这个就一个软件,无需别的插件,很好用
  • LaTex学习笔记(二):LaTex排版文字

    千次阅读 2020-03-18 23:43:57
    LaTeX排版文字 中文排版 当编译器选择为pdflatex时,因为这个编译器貌似是只支持ASCⅡ的,所以中文文档就会出现乱码。 因此,默认编译器选择xelatex,编码方式选择UTF-8,然后引用ctex这个宏包,就可以愉快的给...
  • Latex排版数学公式

    2019-05-02 09:05:19
    Latex排版数学公式,介绍latex排版数学公式的各种命令,及数学红包,是学习latex编辑数学公式的好教材
  • 在mathtype中编辑公式 对Mathtype 进行简单设置 在word中对公式代码进行修改 将公式代码粘贴到latex的编辑软件中 以WinEdt 7.0 为例,直接将在word中修改后的公式代码复制粘贴到latex的正文中, 运行之后就生成的...
  • WPF-Math是一个.NET库,用于WPF框架,使用LaTeX排版样式呈现数学公式。 入门 使用WPF-Math的最简单方法是在XAML文件中呈现静态公式,如下所示。 ;assembly=WpfMath> 有关更详细的示例,请查看。 它显示了数据...
  • 编辑器选择了我个人比较常用的VSCode,二者关系是用VSCode编辑.tex文件,然后用live版LaTex生成排版项目,在应用市场下载LaTex拓展,在拓展的LaTex环境下就可以自动补全和实时编译。 这里推荐一个LaTex模板文件...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,567
精华内容 4,626
关键字:

latex排版

友情链接: CoNMF.zip