我已经完成了半学期的离散数学。
我已将所有 28 个讲座编写成单独的 .tex 文件,标记为 Lecture1.tex、Lecture 2.tex ... Lecture28.tex。
每一个的开头(加或减几个包)都是:
\documentclass[a4paper,11pt]{article}
\usepackage[english]{babel}
\usepackage{amsmath,amssymb}
\usepackage{cancel}
\title{Discrete Mathematics -- Lecture 28}
\author{Alec Taylor}
\date{September 16, 2011}
\begin{document}
\maketitle
如何使用以下命令自动生成包含所有 28 个 .tex 文件内容的单个 PDF:
- 所有页面的连续编号
- 目录
- 封面
答案1
您可以使用combine
课程将各个讲座合并为一个文档。“主”文件如下所示:
\documentclass[a4paper,11pt]{combine}
\usepackage[nomauthor]{combinet}
\usepackage[english]{babel}
\usepackage{amsmath,amssymb}
\usepackage{cancel}
\title{Discrete Mathematics}
\author{Alec Taylor}
\begin{document}
\maketitle
\tableofcontents
\begin{papers}
\import{Lecture1}
\import{Lecture2}
% ...
\import{Lecture28}
\end{papers}
\end{document}
个别讲座包含在\import
命令。请注意,您必须在主文档中加载您在讲座中使用的所有软件包。(作为替代方案,您可以使用packages
类选项会自动执行此操作,但这有点实验性。)
为了将所有讲座纳入目录,我添加了\usepackage{combinet}
在上面的例子中 - 这是一个额外的包,它会自动处理这个问题。nomauthor
该选项禁止将作者添加到目录中(据我了解,它始终是“Alec Taylor”)。
答案2
考虑到你试图创建的文档的性质——一组讲义——我想知道你是否最好不是或多或少只是简单地组合现有文件(根据您的描述,这些文件是包含、等信息的独立 TeX 文件\title
)\author
,而是花时间以更灵活的方式来(重新)组织它们,如下所示。
- 取出每个单独的讲座文件(为了具体起见,假设您正在处理这些文件
lecture1.tex
),并删除和命令之间的所有内容(但不包括)\maketitle
。\end{document}
将剪切出的代码粘贴到名为的新文件中lecture1-body.tex
,然后将指令插入\input lecture1-body
“主”文件(lecture1.tex
)。重复 28 次。这样,您将保留所有“旧”文件,以备将来需要将它们打印为单独的独立文件时使用。 - 创建一个新的 LaTeX 样式文件,例如,
discmath.sty
。在此文件中,您应该加载已经加载的各种 LaTeX 包以及迄今为止为各个讲座创建的所有宏和快捷方式。浏览 28 个“主要”文件的序言,并扫描其中的\usepackage
、\newcommand
和\renewcommand
(以及类似的) 说明,然后将它们复制并粘贴到新的“样式”文件中,根据需要省略重复项。如果您已经养成了在讲座文件主体中“即时”创建新宏的习惯(显然不鼓励这样做,但也不是不可能),现在是时候将它们移动到主样式文件中了。 - 创建一个新的驱动程序文件,例如
discmath-lectures.tex
。考虑到您要创建的文档的性质,book
或report
文档类似乎比article
此新驱动程序文件的类更合适。在此文件中,您将首先加载新样式文件,创建新的总标题以及目录,然后(在文件正文中)依次加载 28 个文件中的每一个...-body.tex
。
该文件看起来类似于X
\documentclass[11pt]{book}
\usepackage{discmath}
\title{Lecture Notes\\Discrete Mathematics}
\author{Alex Taylor}
\date{\nodate} % use \nodate if you don't want to show a date at all
\begin{document}
\frontmatter
\maketitle
\tableofcontents
\mainmatter
\chapter{Introduction to Discrete Mathematics (or some other title)}
\include lecture1-body
\chapter{Xyz}
\include lecture2-body
...
\chapter{Additional thoughts}
\include lecture28-body
\begin{bibliography}{99}
... [to be created by you]
\end{thebibliography}
\end{document}
您在回答中没有提到的一个问题是,每节课是否都是一个独立的单元(或就本文档而言的“章节”)。上面的 MWE 假设情况确实如此。但是,如果不是这样,您当然应该适当调整命令\chapter
。祝您 TeXing 愉快!
附录在原作者贴出他的程序的日志文件之后。我注意到最后,就在“这是你使用的 TeX 内存量”之前有以下几行:
Chapter 3.
[7]
\openout2 = `l.aux'.
No file l.tex
此消息强烈暗示 LaTeX 被指示打开一个名为 的文件l.tex
,但该文件不存在。您的 .tex 文件中是否有拼写错误,可能是在应加载 lesson3-body.tex 的区域?