墘青

LaTeX, Gaussian, ORCA and More...


  • 首页

  • 关于

  • 归档

  • 搜索

LaTeX中长文档的处理

发表于 2019-08-05 更新于 2019-08-25 分类于 LaTeX

当你需要排版一个非常大的文档,或者涉及到多人协同的时候,我们就希望能将一个庞大的.tex文件分成很多部分以方便我们的管理。那么该如何做到这一点呢?

最简单的分开输出的方式

我们可以使用\input{filename.tex}这个命令来将另外一个.tex文档中的内容插入到一个.tex文件中。

首先我们来创建一系列.tex文档。新建一个.tex文件,输入且仅输入以下的内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
\usepackage{chemfig}
\usepackage{ctex}
\usepackage{amsmath}
\usepackage{array}
\usepackage{booktabs}
\usepackage{hypdoc}
\usepackage{listings}
\usepackage{lmodern}
\usepackage{mathpazo}
\usepackage{microtype}
\usepackage{graphicx}
\usepackage{makeidx}
\author{Your Name}
\title{Developing Large Documents}

随后保存为preamble.tex(具体文件名随意,但绝对不能包含中文)。

接着再新建一个.tex文件,输入且仅输入以下的内容:

1
2
3
4
5
6
7
\chapter{文本}
这一章包含了关于基础文字输入的内容。
\section{一个标题}
首先是段落:
\paragraph{段落标题}这是段落的内容。

图表表格也都可以照常使用!

保存为chpt1.tex。

随后再新建一个.tex文件,输入且仅输入以下的内容:

1
2
3
4
\chapter{结构式}
这一章就随便画画结构式好了。
\section{chemfig}
\chemfig{A-B-[1]C-[3]-D-[7]E-[6]F}

保存为chpt2.tex

最后,新建.tex文件,输入且仅输入以下的内容:

1
2
3
4
5
6
7
8
\documentclass[openany]{ctexbook}
\input{preamble}
\begin{document}
\maketitle
\tableofcontents
\input{chpt1}
\input{chpt2}
\end{document}

保存为main.tex。并将之前的所有文件都放在同一目录下,随后对main.tex进行编译即可。

处理更复杂的文档

之前所涉及到的内容还没有满足以下需求:

  • 插入更长的内容的时候效果不佳
  • 工作文件夹很乱
  • 需要封面和附录

接下来我将简单地介绍一下解决这些问题的方法。

插入更长的内容

刚刚提到的\input命令其实比较适合插入结构简单或者内容较少的.tex文档,面对较长而且排版复杂的.tex文档就稍显力不从心。

这个时候我们可以用\include命令来代替\input。相较于\input,\include有以下特点:

  • 可以用相对路径引用外部文件
  • 默认换页,不会破坏原来的排版
  • 不能嵌套

整理工作文件夹

你可以在你的工作文件夹里新建几个文件夹,分别叫data,fig,ref。

在data文件夹中你可以存放你的所有的内容相关的.tex文件,在main.tex中引用的时候你需要这样用:

1
2
\input{data/preamble}
\include{data/chpt1}

随后你需要在导言区中加上这样的命令:

1
\graphicspath{{fig/}}

这样你在使用\includegraphics命令的时候就可以照旧直接输入文件名了。

接着,在参考文献处,你可以这样使用ref文件夹里的refs.bib文件:

1
\bibliography{ref/refs}

这样,你就可以获得一个干净漂亮的工作文件夹了!

序言和附录

在排版书籍的过程中,常常遇到这样一种需求:需要用罗马数字标记序言、目录等内容;在书籍的最后需要加上后记等内容。而这些内容都不算正文,你不希望让LaTeX给予这些章节序号。

在这个时候,我们就可以利用\frontmatter和\backmatter。具体而言,前言部分是\frontmatter,正文是\mainmatter而后记等内容是\backmatter。下面是一个例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
\documentclass[twocolumn,openany]{ctexbook}
\input{preamble}
\begin{document}
\frontmatter
\maketitle
\chapter{前言}
此书献给伟大的思想家马克思。
\tableofcontents
\mainmatter
\input{chpt1}
\input{chpt2}
\backmatter
\chapter{后记}
自强不息,厚德载物。
\bibliography{ref/refs}
\end{document}

仔细观察编译出的文件,你会发现以下几点:

  • \frontmatter中页码是小写罗马数字,章节会出现在目录里但是没有序号。
  • \mainmatter中页码是阿拉伯数字,章节有编号
  • \backmatter中页码是阿拉伯数字,章节会出现在目录里但是没有序号。
任之 wechat
订阅公众号以获取最新内容!
LaTeX中遇到问题如何求助
用LaTeX制作幻灯片
  • 文章目录
  • 站点概览
任之

任之

Personal blog featuring tutorials for LaTeX, Gaussian and ORCA in Chinese.
32 日志
4 分类
4 标签
GitHub E-Mail
  1. 1. 最简单的分开输出的方式
  2. 2. 处理更复杂的文档
    1. 2.1. 插入更长的内容
    2. 2.2. 整理工作文件夹
    3. 2.3. 序言和附录
© 2020 任之
Alexander Qi 专属
|
闲言碎语