从零开始用 LaTeX 排版一篇中文期刊论文 - (一)<完结>


由于篇幅过长,本篇已完结。
第二部分链接

本篇文章主要是对B站 用Latex 排版一篇中文期刊论文 (上) 中的内容进行总结的第一部分。由于本文档以讲解为主,所以源代码会放到附录中,可能会与视频中的内容有所不同,附录中代码主要针对视频中所讲的命令的使用的精简版。

创建简单文档

使用 LaTeX \LaTeX LATEX 的时候,第一步就是选择要使用的文档类型。使用命令 \documentclass{} 选择文档类型,常用的文档类型有如下几种:

类型用途
article基本文档类型,主要用于排版一些较短的期刊论文。
book书籍文档类型,用于长篇的书籍排版,也可用来排毕业论文等中长篇文章。
report虽然是报告类型,但是其实是功能介于book和article之间的一个文档类型。
standalone用来单独保存 latex 做的图片或表格的文档类型

而本文是针对中文期刊论文的,因此使用的是article 的文档类型。

选择完文档类型之后,就可以正式编辑文档,正文的编辑需要在 document 环境中进行。而 LaTeX \LaTeX LATEX 环境是需要由 beginend 组成。如下:

\documentclass{article}
\begin{document}
	This is a TEST sentence.
	这是一段中文字体。
\end{document}

需要注意的是,编译完成之后,结果是不显示中文的。这是因为,latex 并不能直接支持中文,因此需要借助于宏包才可以显示中文。而宏包必须在导言区使用,导言区指的是\begin{document} 以上\documentclass{article} 以下的部分。而使用宏包需要借助命令\usepackage{} 而实现中文显示可以借助 ctex 宏包。 即在导言区使用\usepackage{ctex}

除此之外,为了更好的实现中文,需要将texstudio 的默认编译器改为 xelatex。因为texstudio默认使用的编译器是pdflatex。更改方式如下:
选项 --> 设置 --> 构建 -->默认编译器 --> xelatex

为什么要把pdflatex 更换为 xelatex 呢? 其实粗俗的一点解释,实现编译中文就像要吃一碗面条,而pdflatex 是勺子,但 xelatex是筷子。吃面条的时候只有勺子吃个卵啊,那用勺子可以吃面条吗,当然也是可以的,但是他费劲啊。所以还是建议大家使用筷子吃面条。

这里再强调一下,texstudio 是编译软件,不是编译器,编译器是xelatex、pdflatex 等,texstudio 只是为我们提供这样使用编译器的平台,更高效的完成撰写和编译任务而已。

编写标题

LaTeX \LaTeX LATEX 编写标题,有两种方法,

直接编辑

一种就是正常的编辑标题、作者等文本,并居中显示。如:

\documentclass{article}
\usepackage{ctex}
\begin{document}
	\begin{center}
		这是标题
		宋荍
		2020年8月3日
	\end{center}
\end{document}

其中 center 环境用于使文本居中,但是上述代码运行的结果所有的字体是在同一行的,这是因为 LaTeX \LaTeX LATEX 中回车并不能换行,实现换行,可以在段落后面使用\\ 。但是这样的换行方式,第二行文本没有缩进。如果想使换行后的文本自动缩进,则需要使用空行的方法换行,即在两行文本之间空一行。 LaTeX \LaTeX LATEX 中无论空多少行都是分段(另起一段),而不能增加两个段落间的距离。想要增加距离可以使用\\[10pt] 即段落后多空出10pt 的距离。

另外字体间的空格也不能实现真正意义上的空格, LaTeX \LaTeX LATEX 会忽视输入的空格,因此如果想实现字体间空格可以使用如下命令:

命令效果长度
a \qquad b a b a \qquad b ab两个 m 的宽度
a \quad b a b a \quad b ab一个 m 的宽度
a\ b 或 a~b a   b a\ b a b1/3个 m 宽度
a;b a    b a\;b ab2/7个 m 宽度
a,b a   b a\,b ab1/6个 m 宽度
a!b a  ⁣ b a\!b ab缩进1/6个 m 宽度

使用命令生成

我们也可以使用命令,提前定义标题名称、作者姓名和日期。如下:

\title{这是标题}
\author{作者}
\date{\today}

此部分内容可以放在导言区也可以放在正文部分,单纯定义这些内容,正文是不会显示的,想要正文显示这部分内容,还需要在正文部分使用命令\maketitle ,使用 这一命令生成的文本的字体字号使被提前定义好的。

  • 并且标题和页面顶部有一部分空隙,想消除这部分空隙,可以使用 \vspace{}命令,使文本竖直向上移动一段距离。这一命令是用来控制其后面的内容和前面内容的间隔,花括号内填正距离使增加距离,负距离使减小距离。因此向提高标题位置应该对\title{}内的内容进行如下操作。
\title{\vspace{-4cm}这是标题}

使标题内容与页面顶部间距缩短4cm,注意这里面的数值一定要有距离单位。latex 中的距离单位如下:

单位名称说明
mm毫米1 mm = 2.845 pt
pt1 pt = 0.351 mm
bp大点1 bp = 0.353 mm > 1 pt
dd迪多1 dd = 0.376 mm = 1.07 pt
pc排卡1 pc = 4.218 mm = 12 pt
sp定标点65536 sp = 1 pt
cm厘米1 cm= 10 mm= 28.453 pt
cc西塞罗1 cc= 4.513 mm= 12 dd = 12.84 pt
in英寸1 in = 25.4 mm = 72.27 pt
exex1 ex = 当前字体尺寸中 x 的高度
emem1 em = 当前字体尺寸中 M 的宽度
  • 至于作者,可能需要填写多个作者的名字,三个字和两个字的作者为了保持长度一致可以用两个 ~ 放在两个字中间,如下:
\title{宋作者,宋~~荍}

其效果如下:

宋 作 者 , 宋    荍 宋作者,宋~~荍   

  • 最后是日期中使用了命令 \today ,其作用是显示当日的日期。也可以填写包含具体日期信息的文本作为日期。ctex 宏包情况下使用 \today 命令生成的日期格式形如:
2020 年 8 月 5 日

不使用ctex宏包的条件下格式形如:

August 5, 2020

如果需要更改其样式可使用 \renewcommand{已有命令}{重新定义内容} 命令对 \today 命令的形式重新定义,如下:

\renewcommand{\today}{\number\year /\number\month /number\day }

可将其形式改为形式如下的日期:

2020/8/5

这里面 \numer\year 调用的是年份; 月份和日期与之类似。 此外这里面的 “/” 前面的空格会被忽略,"/" 后面如果有空格的话,会被认为 “/” 和后边内容是两个单词自动添加一个空格。 因此如果想是年月日和 " / " 之间不存在空隙的话,因此需要把年、月、日对应的命令直接放在 / 后面。

字体字号设置

LaTeX \LaTeX LATEX 中字体、字号也需要通过命令进行控制。

英文字体

默认包含如下表中的字体族(family)。字体设置命令主要用于局部改变字体,而字体声明命令可以对声明后的所有字体产生作用,但是也可以使用花括号限制作用范围,使其仅对花括号内的内容起作用。默认为罗马字体(注意:这里面的罗马字体并非新罗马字体)。

字体族设置命令声明命令
罗马字体\textrm{字体内容}{\rmfamily 字体内容}
无衬线字体\textsf{字体内容}{\sffamily 字体内容}
打字机字体\texttt{字体内容}{\ttfamily 字体内容}

控制字体粗细(series),如下表所示,其中\textmd{}{\rmseries } 常用于全局加粗时,局部需要还原为正常字体的地方。默认为正常字体。

字体系列设置命令声明命令
正常字体\textmd{字体内容}{\rmseries 字体内容}
加粗字体\textbf{字体内容}{\bfseries 字体内容}

控制字体形状(shape)。其中斜体字体主要又被称为意大利斜体,类似于花体一样的字体,而伪斜体(slant) 只是让字体发生倾斜。

字体形状设置命令声明命令
直立字体\textup{字体内容}{\upshape 字体内容}
斜体字体\textit{字体内容}{\itshape 字体内容}
伪斜体\textsl{字体内容}{\slshape 字体内容}
小型大写\textsc{字体内容}{\scshape 字体内容}

中文字体

PC端中,中文字体包含以下几种,

字体声明命令声明命令
宋体\songti\CJKfamily{zhsong}
黑体\heiti\CJKfamily{zhhei}
仿宋\fangsong\CJKfamily{zhfs}
楷书\kaishu\CJKfamily{zhkai}

虽然中文没有属于自己的字体设置命令,仅有两种声明方式,但是英文的设置命令同样会影响中文字体,具体影响如下:

设置命令\textsf{}\texttt{}\textit{}\textbf{}\textsl{}
中文字体黑体仿宋楷书黑体楷书

注意到加粗命令对中文字体的影响是使其变成黑体,因此 $\LaTeX $ 中,中文加粗又称为加黑,并不是真正的加粗。斜体命令对中文的影响是使其变为楷体,也并不是真正的斜体。同时使用加粗和斜体,最终得到的也是黑体正体

想实现中文字体的加粗和斜体,需要打开文档类型的伪粗体和伪斜体设置。字体设置部分会在加载系统字体的文档中一并解决。

字号设置

字号设置主要包括两部分内容,一是定义全局正文的默认字号,另一个是局部修改字号。

全局定义字号

一般论文写作过程中不需要修改正文字号,因为latex 默认的正文字号为五号字,这也是期刊论文普遍论文要求的字号,因此基本无需修改。 但是并不是不可以修改,latex 为我们提供了几个修改全文正文字体的方法,即在加载文档类的时候,添加一个设置字体的可选参数,例如:

\documentclass[11pt]{ctexart}

即将正文默认字体改为 11pt 的字体大小。

而文档类更改默认字体的参数其实不是随意的,我们可以使用的只有 10pt,11pt,12pt。并且默认文档为10pt。

那在中文文档中,如果使用了ctex宏包,它也为我们提供了全局定义自豪的两种方法。zihao = 5 (默认)和 zihao = -4 即将全局正文字体更改为 五号字 和 小四号字。用法同上面类似。如下:

\documentclass[zihao = -4]{ctexart}

局部定义字号

局部定义字号方法不止一种,本文只分享常用的两种方法:

基本的字号命令及其对应大小见下表(摘自 lshort-zh-cn)

字号10(默认,单位pt)11 (单位pt)12(单位pt)
\tiny566
\scriptsize788
\footnotesize8910
\small91010.95
\normalsize1010.9512
\large121214.4
\Large14.414.417.28
\LARGE17.2817.2820.74
\huge20.7420.7424.88
\Huge252525

但是通常情况下,我们需要的是中文字号,因此ctex 宏包为我们提供了更方便的定义中文字号的方法,和全局定义方法类似,我们只需要用命令\zihao{<字体大小>}

<字体大小> :为数字,例如 \zihao{0} 为初号字;\zihao{3} 为 三号字 \zihao{-5} 为小五号字,以此类推。

另外基本文档的字体命令与对应的字号大小如下表 :

字号zihao = 5zihao = -4
命令字号单位:bp字号单位:bp
\tiny七号5.5小六6.5
\scriptsize小六6.5六号7.5
\footnotesize六号7.5小五9
\small小五9五号10.5
\normalsize五号10.5小四12
\large小四12小三15
\Large小三15小二18
\LARGE小二18二号22
\huge二号22小一24
\Huge一号26一号26

相关内容可查看 ctex 宏包说明。讲的很清楚的嘞。

摘要

摘要部分其实也是可以通过直接编辑,不需要使用环境,因为一般期刊论文不需要我们产生目录等,

个人还是比较推荐直接编译摘要,也就是文本内容该加粗的加粗,该黑体的黑体。但是直接编译的话,段落内容会自动缩进,因此取消摘要前面的缩进,可以在摘要段落的前面使用命令 \noindent

另外投稿时,摘要下方可能需要添加中图分类号文献标识,而且两者之间有很长一段间隔,使用前面提到的加空格的方法肯定十分麻烦,因此我们可以借用\hspace{} 命令,类似于 \vsapce 是竖直方向控制间隔距离,\hspace 是水平方向控制间隔距离,依然正值为增加距离,负值为缩短距离,我们可以用下面这串命令来排中图分类号和文献表示:

中图分类号:xxx \hspace{3cm} 文献表示: X

对于中文摘要后面的英文标题、作者及摘要,以正文方式排版即可。
当然对摘要也可以使用 article 文档类型中提供的 abstract 环境。abstract 可以自动生成固定格式的摘要内容,不作为本文的重点,需要使用的可自行检索查阅。

多级标题

各级标题命令和样式

LaTeX \LaTeX LATEX 中还可以对多级标题实现自动编号。article 文档类型中多级标题的深度、名称、命令、以及默认样式如下表:

深度名称命令默认样式
0chapter\partpart I
章节名称
1section\section1 章节名称
2subsection\subsection1.1 章节名称
3subsubsection\subsubsection1.1.1 章节名称
4paragraph\paragraph标题加粗无缩进,正文内容与标题同行显示
4subparagraph\subparagraph标题加粗有缩进,正文内容与标题同行显示

注意:使用ctex宏包时,其默认样式和article 文档类型默认样式相同。但是更好的控制文章结构,而不仅仅是实现中文显示,我们可以使用 ctexart 文档类型。即:使用:\documentclass{ctexart} 。这样使用的话,\part{}命令的结果会变为

第一部分 章节名称

并且为居中显示,而 一级标题 section 的样式和article 基本样式相同,但是为居中显示,其余各级标题样式和位置与article 中的基本样式相同。

自定义多级标题样式

前面我们提到,使用 ctex 宏包,我们仅可以实现中文,但是文章章节段落的格式,其实还是 article 文档类型中的基本格式。因此想更方便的控制章节标题等元素的格式,我们可以使用 ctexart 文档类型。

ctexart 文档类型下,我们可以使用 \ctexset 命令来自定义各级标题的样式。默认
以一级、二级标题为例:
要求:
一级标标题格式为: 第一章 标题名称,序号要求黑体3号字,名称要求宋体3号字,且都加粗。段前5pt ± \pm ± 3pt 段后 2pt
二级标题格式为:1.1.章节名称,4号字楷书。加粗。段前单倍行距,段后0.5倍行距。
且都为左对齐。

\documentclass[AutoFakeBold=1]{ctexart}
\ctexset{
section={name={\heiti 第,章},%标号内容,逗号是为序号预留的位置
	number={\heiti \chinese{section}},%序号形式,采用中文序号
	format={\zihao{3} \songti \bfseries},%标题内容字体格式
	beforeskip={5pt plus 3pt minus3pt},%段前,+3pt,-3pt 
	afterskip={2pt}%段后2pt
	},
subsection={
	format={\zihao{4} \kaishu \bfseries},
	aftername={.},%序号与标题间内容,使用句点
	beforeskip={\baselineskip},%行距:baselineskip
	afterskip={.5\baselineskip}
	}
}
\begin{document}
	\section{章节名称}
	\subsection{示例章节名称}
	正文内容,这里是一行示例文本。
\end{document}

其中为了实现中文加粗而非加黑,使用了伪粗体 AutoFakeBold 参数。默认为AutoFakeBold = 2 若认为太粗可更改此数值为1。

\ctexset 命令仅在使用 ctexart 文档类型时有效。如果使用 ctex 宏包则会提示无此命令。若使用宏包的情况下仍想使用 \ctexset 命令,可增加可选参数 [heading=true] 即:

\usepackage[heading = true]{ctex}

latex 中命令后面的方括号内通常为可选参数,而花括号内为必填参数。

脚注

因为我了解到的中文期刊论文的脚注都是要求的无序号的脚注,因此,本文只分享不需要添加序号的脚注,如果想自定义序号类型可自行查看footnote 相关宏包,或着百度。

一般论文要求我们添加的脚注内容包括,

投稿日期:xxxx年xx月xx日

项目名称:项目一二三四五六七八,项目二三四五六七八九,项目二三四五六七八九十,项目一二三四五六七八,项目二三四五六七八九,项目二三四五六七八九十

作者简介:略

字号为小五的无序脚注可以使用\footnotetext{脚注内容} 来添加,一般添加给标题或者是作者,如下:

\title{这是标题  \footnotetext{\small 投稿日期:xxxx年xx月xx日\\
		项目名称:项目一二三四五六七八,项目二三四五六七八九,项目二三四五六七八九十,项目一二三四五六七八,项目二三四五六七八九,项目二三四五六七八九十}
		}

小五我们可以使用 \small 。因为是两段,因此使用 " \\ " 换行。 另外这样“投稿日期”会因为首行缩进,和“项目名称”不是对齐的。

调整使其对齐,可在投稿日期前使用命令 \hskip -6pt 使其向前移动 6 pt ,然后再项目名称前使用命令 \hspace*{1 em} 使其向后移动 1 em 的距离。这些单位距离使借鉴 系统工程学报模板的样式和代码。而实际上是否能达到对其和使用的页边距\字号等都有关系,因此还需自己决定如何调整其距离。 其中 要注意掉这里的 \hspace{} 命令家里 星号,是因为段首如果不加 星号的话,是不起作用的,同样\vspace 命令在页面首段段首等位置也需要用 \vspace*{} 才可以起作用。

如要求项目内容 是在 项目名称后的冒号处对齐,可使用 minipage 环境。如下:

项目名称:\begin{minipage}[t]{0.85\linewidth}
			项目一二三四五六七八,项目二三四五六七八九,项目二三四五六七八九十,项目一二三四五六七八,项目二三四五六七八九,项目二三四五六七八九十
		\end{minipage}

其中 环境后的花括号 是用来定义 minipage 的长度的, 其中 0.85\linewidth 代表0.85倍 的行长度。(随意取的可根据需要调整)。方括号内为可选参数,用来定义minipage 和 环境外文本的对齐方式,有 t、c、b 三个选项。分别代表顶部、居中和底部对齐。

脚注分界线设置

会有期刊要求脚注分界线的长度和粗细,因此在此简要介绍一下其方法如下:

首先需要了解一个生成直线的命令 \rule[与下文间距]{长度}{粗细}

重新定义分界线(分界线命令为:\footnoterule):

\renewcommand\footnoterule{\noindent \rule[0.25\baselineskip]{105pt}{1pt}}

因为我们的分界线不需要缩进,因此使用了命令 \noindent 其次间距设置为 0.25\baselineskip 为0.25倍的行间距,是为了不让横线和下面的段落内容距离太近。长度和粗细自己按照要求进行定义即可。

行距和页边距

行距

首先了解什么是行距。在 LaTeX \LaTeX LATEX 中行距由 \baselineskip 控制,他的高度(其实就是字体基线间的距离):

行距=字体高度+两行字体间空白距离

因此设置行距可以使用 如下命令将行距设置为 20 pt。

\setlength{\baselineskip}{10pt}

而基础文档和 中文 ctexart 文档类型中的行距是不同的,因此如果想要知道当前文档的行间距具体是多少的时候,可以使用如下明亮,使其在生成的pdf 中显示出来。

\the\baselineskip

另一种设置行间距的方法,就是 设置 \baselinestretch ,stretch 这个单词是拉伸的意思,因此此命令看控制的是当前行距拉伸的倍数,例如双倍行距就可以使用如下命令实现:

\renewcommand{\baselinestretch}{2}\linespread{2}

这两个命令是等价的,其后面的花括号内都是填的一个倍数。表示行距的多少倍,但是只是用这个命令是不够的,如果你尝试后会发现,文章的行间距不管设置成多少,都没有任何的变化,这是因为,他只有在指定字体的时候才会起作用,(和使用\fontsize{}{} 命令的时候相似)

因此为了使其产生效果,我们需要在其后面使用命令 \selectfont

此外需要注意的是,前面的两个命令会更改所有的行间距,包括脚注 等。因此仅想使论文主体部分的行间距产生变化,可以参考 setspace 宏包。本文不在详细介绍。

页边距

页边距设置较为简单,可借助 geometry 宏包。通常设置页边距,仅需要对上下左右边距进行设置。方法如下:

第一种:直接添加可选参数

\usepackage[left=2.25cm,right=1.97cm,top=2.25cm,bottom=2.25cm]{geometry}

第二种:加载完宏包,再进行设置:

\usepackage{geometry}
\geometry{left=2.25cm,right=1.97cm,top=2.25cm,bottom=2.25cm}

两种方法的效果相同,第一种适合全局页边距相同的时候使用,更简单,不用再使用geometry 命令。第二种方法可以用来重新设置各边距,方法可参考geometry 宏包说明。另外需要注意,这里面的长度单位不能省略,因为他没有默认单位。但是单位不一定是cm 可是其他单位

geometry 宏包不只是边距,版式的事情他大都可以做。例如限制每一页具体有多少行,页眉页脚的高度等等。

如果你的论文是双开门的(含奇偶页), 为了装订等都需要里面宽,外面窄,这个时候可以将 left 和 right 两个参数换成 inner 和outer。

小 tips: 有时候我们排版的时候,先看我们的图片、表格或者条目和内容边距的距离等。可以使用 showframe 参数,在生成的 pdf 中显示版式框架。当然终稿的时候记得去掉这个参数。

附录: 完整代码

\documentclass{ctexart}
\usepackage[left=2.25cm,right=1.97cm,top=2.25cm,bottom=2.25cm]{geometry} 
%定义页边距:左 右 上 下的边距
\ctexset{
	section={name={\heiti 第,章},%标号内容,逗号是为序号预留的位置
		number={\heiti \chinese{section}},%序号形式,采用中文序号
		format={\zihao{3} \songti \bfseries},%标题内容字体格式
		beforeskip={5pt plus 3pt minus3pt},%段前,+3pt,-3pt 
		afterskip={2pt}%段后2pt
	},
	subsection={
		format={\zihao{4} \kaishu \bfseries},
		aftername={.},%序号与标题间内容,使用句点
		beforeskip={\baselineskip},%行距:baselineskip
		afterskip={.5\baselineskip}
	}
}
\begin{document}
	\title{这是标题 \footnotetext{\small \hskip -6pt 投稿日期:xxxx年xx月xx日\\
		\hspace*{1em} 项目名称:\begin{minipage}[t]{0.85\linewidth}
			项目一二三四五六七八,项目二三四五六七八九,项目二三四五六七八九十,项目一二三四五六七八,项目二三四五六七八九,项目二三四五六七八九十
		\end{minipage}}
		}
	\author{宋作者,宋~~荍}
	\date{\today}
	\maketitle
	\noindent \textbf{摘要:}摘要内容\\
	中图分类号:xxx \hspace{3cm} 文献表示: X
\end{document}
  • 37
    点赞
  • 224
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
LaTeX中,要为表格单元格设置背景颜色,可以使用\cellcolor命令。你可以直接输入颜色的名称(如红色、灰色、绿色等),也可以使用其他格式(如HTML格式)。下面是一个示例代码: \begin{verbatim} \documentclass{article} \usepackage\[table\]{xcolor} \begin{document} \begin{tabular}{|c|c|} \hline \cellcolor{red} 红色单元格 & \cellcolor{blue} 蓝色单元格 \\ \hline \end{tabular} \end{document} \end{verbatim} 在这个例子中,我们使用了xcolor宏包,并在表格中的单元格上使用了\cellcolor命令来设置背景颜色。你可以根据需要修改颜色名称或使用其他格式来设置背景颜色。 #### 引用[.reference_title] - *1* *2* [LaTex 写演示文稿 - Beamer 入门 之 彩色表格](https://blog.csdn.net/joefsong/article/details/108032685)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [在 LaTeX 中插入表格](https://blog.csdn.net/xovee/article/details/109254872)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值