从 28 个 .tex 文件生成连续的页码 + 目录?

从 28 个 .tex 文件生成连续的页码 + 目录?

我已经完成了半学期的离散数学。

我已将所有 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,而是花时间以更灵活的方式来(重新)组织它们,如下所示。

  1. 取出每个单独的讲座文件(为了具体起见,假设您正在处理这些文件lecture1.tex),并删除和命令之间的所有内容(但不包括)\maketitle\end{document}将剪切出的代码粘贴到名为的新文件中lecture1-body.tex,然后将指令插入\input lecture1-body“主”文件(lecture1.tex)。重复 28 次。这样,您将保留所有“旧”文件,以备将来需要将它们打印为单独的独立文件时使用。
  2. 创建一个新的 LaTeX 样式文件,例如,discmath.sty。在此文件中,您应该加载已经加载的各种 LaTeX 包以及迄今为止为各个讲座创建的所有宏和快捷方式。浏览 28 个“主要”文件的序言,并扫描其中的\usepackage\newcommand\renewcommand(以及类似的) 说明,然后将它们复制并粘贴到新的“样式”文件中,根据需要省略重复项。如果您已经养成了在讲座文件主体中“即时”创建新宏的习惯(显然不鼓励这样做,但也不是不可能),现在是时候将它们移动到主样式文件中了。
  3. 创建一个新的驱动程序文件,例如discmath-lectures.tex。考虑到您要创建的文档的性质,bookreport文档类似乎比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 的区域?

相关内容