有人能帮我吗?我正在用 pdflatex 编译一份 Latex 文档。该过程正常退出。Latex 生成一份 4 页的 pdf 文档。但需要大约 2 分钟。对于 20 页的文档,程序通常会崩溃。我必须编译一份 150 页的文档。这是我的序言。请问有人能回答我吗?
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[margin=1in]{geometry}
%\usepackage[demo]{graphicx}
\usepackage{graphicx}
\usepackage{subfig}
%\graphicspath{Bilder-Promotion}
\usepackage{fancyhdr}
\usepackage{pdfpages}
\usepackage{caption}
\usepackage{float}
\usepackage{amssymb}
\usepackage{mathdots}
\usepackage[classicReIm]{kpfonts}
\usepackage{enumitem}
%\usepackage[dvips]{graphicx} %%% use 'pdftex' instead of 'dvips' for PDF output
%\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
%\addbibresource{mybib.bib}
\usepackage[english]{babel}
\usepackage{lmodern}
\usepackage{textcomp}
\pagestyle{fancy}
%\fancyhead[]
%\fancyfoot[]
\usepackage{amsmath}
%\includeonly{fundamental}
\usepackage{chemist}
%\includeonly{Intro,filename2,...}
\usepackage[colorlinks=true, breaklinks=true,citecolor=black,linkcolor=blue,
menucolor=black,urlcolor=blue]{hyperref}
%\usepackage{siunitx}
\usepackage{txfonts}
\usepackage[classicReIm]{kpfonts}
\usepackage{array,booktabs}
\usepackage{calc}
\numberwithin{table}{section}
\numberwithin{figure}{section}
\numberwithin{equation}{section}
\setlength{\parindent}{4em}
\setlength{\parskip}{1em}
\renewcommand{\baselinestretch}{1.5}
\usepackage{titling}
\makeatletter
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
{-2.5ex\@plus -1ex \@minus -.25ex}%
{1.25ex \@plus .25ex}%
{\normalfont\normalsize\bfseries}}
\makeatother
\setcounter{secnumdepth}{4} % how many sectioning levels to assign numbers to
\setcounter{tocdepth}{4} % how many sectioning levels to show in ToC
\usepackage{glossaries}
\makeglossaries
%%%%%%%%%%%%%%%%%%%%%%%%%%%%liste des abréviations%%%%%%%%%%%%%%
\usepackage[english]{nomencl}
\makenomenclature
\renewcommand{\nomname}{Liste des abréviations, des sigles et des symboles}
\tracingall
答案1
摘自 TeXbook,第 121 页:
Plain TEX 提供了一个宏 '\tracingall',它可以打开所有可能的交互模式,包括 \tracingonline。作者使用这些功能检查了上述几个练习的答案。
它提供并写入大量信息,因此必定会花费大量时间。请比较使用和不使用 `\tracingall' 时 *.log 文件的大小。
答案2
一些数字可以作为不同情况下的开销的基准\tracingall
。这些只是我的笔记本电脑中的数字,但相对数字(比率)可能很有意义。
用于测试的源文件是TeX 简介,LaTeX2ε 的简短介绍和TeX 按主题分类。
引擎
tex
,格式纯 TeX (tex gentle.tex
):- 无
\tracingall
(time tex '\input gentle' > out
):~0.14 秒。 - 使用
\tracingall
:(time tex '\tracingall \input gentle' > out
):~0.75 秒。 - 开销
\tracingall
:~5。
- 无
引擎
pdftex
,格式纯 TeX (pdftex gentle.tex
):- 无
\tracingall
(time pdftex '\input gentle' > out
):~0.36 秒 - 使用
\tracingall
): (time pdftex '\tracingall \input gentle' > out
): ~1.15 秒 - 开销
\tracingall
:〜3.2。
- 无
引擎
pdftex
,格式 LaTeX (pdflatex lshort.tex
):- 无
\tracingall
(time pdflatex '\input lshort' > out
):~4.5 秒。 - 使用
\tracingall
(time pdflatex '\tracingall \input lshort' > out
):~145 秒。 - 开销
\tracingall
:〜32。
- 无
引擎
pdftex
,格式 LaTeX (pdflatex TeXbyTopic.tex
):- 无
\tracingall
(time pdflatex '\input TeXbyTopic' > out
):~1.3 秒。 - 使用
\tracingall
(time pdflatex '\tracingall \input TeXbyTopic' > out
):~33 秒。 - 开销
\tracingall
:〜25。
- 无
总体而言,对于 LaTeX 文档,使用似乎\tracingall
会导致速度减慢约 25 到 30 倍。这是因为 LaTeX 执行了更多\tracingall
显示的工作(LaTeX 具有更复杂的宏等)。[请注意,在我的测试中,我\tracingall
在导入任何软件包之前使用了它,这肯定会使结果与在序言最后使用它时产生偏差。]
就你的情况而言,如果我们从这个 25-30 的因素推断,那么删除它\tracingall
可能会将你的“大约 2 分钟”缩短到大约 4-5 秒,适用于你的 4 页文档。我认为这仍然是方式太高了,因为整本 311 页的 TeXbyTopic 书只需要一秒多一点的时间就能排版完成。所以这可能不是速度慢的完整解释(这也是我在评论中要求提供完整的可编译示例的原因)。不过,简单地删除\tracingall
可能会有很大帮助。