我现在正在使用\include
将每个单独的 .tex 连接成一整本书。现在我只想将书中的某个部分编译为单个 pdf,有什么办法吗?我已经像这样尝试过 pandoc:
pandoc jenkins-kubernetes.tex --pdf-engine=xelatex -o jenkins.pdf
但输出的 pdf 格式不好,不支持中文。有没有更好的方法可以存档?我参考了 tex 文件,如下所示:
\section{Chaos}
\input{chapter-2020-04/chaos/flutter/enterprise.tex}
\input{chapter-2020-04/chaos/http/self-sign-certificate.tex}
\input{chapter-2020-04/chaos/http/auto-update-certificate.tex}
\input{chapter-2020-04/chaos/http/cert-problem.tex}
答案1
使用该subfiles
软件包,您可以为本书的每一章创建子文件,然后独立编译每个子文件,直到没有错误。每个子文件都是自给自足的:它将自动使用主文件中的序言。
调试速度更快,因为使用\input
或\include
错误消息多次指向错误的行号。此外,由于不需要生成目录,因此无需编译两次。
有四种可能的情况可以测试它的工作原理:
首先,放入main.tex
一个新目录。创建一个子目录chapters
,并将 放入chap1.tex
其中chap2.tex
。
(1)编译main.tex
评论\subfile{./chapters/chap1}
和 \subfile{./chapters/chap2}
来自main.tex
经过两次编译后,它将生成main.pdf
预期的标题、目录和章节“简介”。
(2)编译时保留chap1.tex
注释\subfile{./chapters/chap1}
并 \subfile{./chapters/chap2}
main.tex
它将chap1.pdf
在chapters
目录中生成,使用main.tex
前言。编译后得到类似的结果chap2.tex
没有标题、目录或简介,因此编译速度会更快。在实际生活中,您可以使用此功能调试这两个文件。错误消息将指向代码的正确行。
(3)运行main.tex
,现在取消注释 \subfile{./chapters/chap1}
并\subfile{./chapters/chap2}
它将运行两次(因为目录)并将main.pdf
在根目录中生成,其中包含标题页、目录和所有章节。
(4 从根目录中删除除main.tex
并编译之外的文件chap1.tex
。
它将像以前一样运行两次,并将main.pdf
在根目录中生成完整的标题页、目录和所有章节,如 (3) 所示。
这是main.tex
书籍原型:
%% main.tex in its own directory
\documentclass[12pt,a4paper]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{graphicx}
\usepackage[left=2.00cm, right=2.00cm, top=2.00cm, bottom=2.00cm]{geometry}
\usepackage{subfiles} %<<<<<<<<<<< added
\usepackage{kantlipsum} % dummy text
\author{The Author}
\title{The BooK Title}
\begin{document}
\maketitle
\tableofcontents
\chapter*{Introduction}
0. \kant[1-6]
\subfile{./chapters/chap1} % chapter #1 file in root/chapters directory
\subfile{./chapters/chap2} %chapter #2 file in root/chapters directory
\end{document}
这是chap1.tex
文件
%% chap1.tex in "chapters" directory will compile using main.tex preamble
\documentclass[../main.tex]{subfiles}
\begin{document}
\chapter{One}
1. \kant[2-7]
\end{document}
这是chap2.tex
文件
%% chap2.tex in "chapters" directory will compile using main.tex preamble
\documentclass[../main.tex]{subfiles}
\begin{document}
\chapter{Two}
2. \kant[7-8]
\end{document