为什么我的文档无法正确编译?

为什么我的文档无法正确编译?

我正在尝试开始用 LaTeX 写作,并有以下简单的文档骨架:

\documentclass{book}                                                                                             

\begin{document}
\frontmatter

\title{Test Document}
\author{Test Author}
\date{April 2018}
\maketitle

\chapter{Introduction}
intro

\mainmatter
\chapter {Chapter 1}
test

\end{document}

但是documentclass,、、和frontmatter都显示为红色,无法正常工作。特别是,默认情况下应该创建一个新的标题页,但没有。和没有。和无论我把它们放在哪里都不会做任何事情。即使从 Wikibooks 复制示例书籍布局也会产生这种行为。datemaketitlemainmatter\documentclass{book}\documentclass[titlepage]{book}\documentclass[titlepage]{article}newpagepagebreak

这么简单的文档我哪里出错了?我该如何修复?如果有问题的话,我会使用 Debian Buster。

答案1

问题在于你尝试使用 pandoc 而不是 LaTeX 引擎来处理文件。所以你认为的工作流程是

LaTeX ⇒ PDF

但实际的工作流程是

LaTeX ⇒ (pandoc internal structure ⇒ LaTeX) ⇒ PDF
        \_____________pandoc______________/

不幸的是,pandoc 的内部结构不像 LaTeX 那样功能丰富,并且基本上有关文档的所有内容都会在处理过程中丢失。

你可以通过使用以下代码来查看 pandoc 输出的 LaTeX 代码类型

pandoc test.tex -s -o pandoc-gen.tex

我的 pandoc 版本(1.16.0.2)生成的内容与输入的 LaTeX 几乎没有任何共同之处:

\documentclass[]{article}
\usepackage{lmodern}
\usepackage{amssymb,amsmath}
\usepackage{ifxetex,ifluatex}
\usepackage{fixltx2e} % provides \textsubscript
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
  \usepackage[T1]{fontenc}
  \usepackage[utf8]{inputenc}
\else % if luatex or xelatex
  \ifxetex
    \usepackage{mathspec}
  \else
    \usepackage{fontspec}
  \fi
  \defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase}
\fi
% use upquote if available, for straight quotes in verbatim environments
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
% use microtype if available
\IfFileExists{microtype.sty}{%
\usepackage{microtype}
\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
}{}
\usepackage{hyperref}
\hypersetup{unicode=true,
            pdftitle={Test Document},
            pdfauthor={Test Author},
            pdfborder={0 0 0},
            breaklinks=true}
\urlstyle{same}  % don't use monospace font for urls
\IfFileExists{parskip.sty}{%
\usepackage{parskip}
}{% else
\setlength{\parindent}{0pt}
\setlength{\parskip}{6pt plus 2pt minus 1pt}
}
\setlength{\emergencystretch}{3em}  % prevent overfull lines
\providecommand{\tightlist}{%
  \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
\setcounter{secnumdepth}{0}
% Redefines (sub)paragraphs to behave more like sections
\ifx\paragraph\undefined\else
\let\oldparagraph\paragraph
\renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}}
\fi
\ifx\subparagraph\undefined\else
\let\oldsubparagraph\subparagraph
\renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}}
\fi

\title{Test Document}
\author{Test Author}
\date{April 2018}

\begin{document}
\maketitle

\section{Introduction}\label{introduction}

intro

\section{Chapter 1}\label{chapter-1}

test

\end{document}

相关内容