可以将单个 tex 文件编译为 pdf 吗

可以将单个 tex 文件编译为 pdf 吗

我现在正在使用\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.pdfchapters目录中生成,使用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

相关内容