从零开始用 LaTeX 排版一篇中文期刊论文 | 您所在的位置:网站首页 › 新手写论文怎么写格式 › 从零开始用 LaTeX 排版一篇中文期刊论文 |
从零开始用 LaTeX 排版一篇中文期刊论文 - (一)
创建简单文档编写标题直接编辑使用命令生成
字体字号设置英文字体中文字体字号设置全局定义字号局部定义字号
摘要多级标题各级标题命令和样式自定义多级标题样式
脚注脚注分界线设置
行距和页边距行距页边距
附录: 完整代码
由于篇幅过长,本篇已完结。 第二部分链接
本篇文章主要是对B站 用Latex 排版一篇中文期刊论文 (上) 中的内容进行总结的第一部分。由于本文档以讲解为主,所以源代码会放到附录中,可能会与视频中的内容有所不同,附录中代码主要针对视频中所讲的命令的使用的精简版。 创建简单文档使用 LaTeX \LaTeX LATEX 的时候,第一步就是选择要使用的文档类型。使用命令 \documentclass{} 选择文档类型,常用的文档类型有如下几种: 类型用途article基本文档类型,主要用于排版一些较短的期刊论文。book书籍文档类型,用于长篇的书籍排版,也可用来排毕业论文等中长篇文章。report虽然是报告类型,但是其实是功能介于book和article之间的一个文档类型。standalone用来单独保存 latex 做的图片或表格的文档类型而本文是针对中文期刊论文的,因此使用的是article 的文档类型。 选择完文档类型之后,就可以正式编辑文档,正文的编辑需要在 document 环境中进行。而 LaTeX \LaTeX LATEX 环境是需要由 begin 和 end 组成。如下: \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 ptpt点1 pt = 0.351 mmbp大点1 bp = 0.353 mm > 1 ptdd迪多1 dd = 0.376 mm = 1.07 ptpc排卡1 pc = 4.218 mm = 12 ptsp定标点65536 sp = 1 ptcm厘米1 cm= 10 mm= 28.453 ptcc西塞罗1 cc= 4.513 mm= 12 dd = 12.84 ptin英寸1 in = 25.4 mm = 72.27 ptexex1 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} |
CopyRight 2018-2019 实验室设备网 版权所有 |