删除 pdf_document 中的章节编号

Remove section numbering in pdf_document

我正在尝试使用 RMarkdown 将文档编织成 pdf 文档。我想默认删除节号。我以为 number_section:FALSE 会这样做,但事实并非如此。我已经精简为 MWE,但我仍在获取章节编号。

在编织的report.tex文件中,我用{-}特别标记为没有数字的部分被标记为\section*{...},而其他部分被标记为\section{...} 这就是你如何在 LaTeX 中完成编号 some 部分,但是我希望所有部分都编织为 \section*{...} 而不必在中指定 {-}每个部分(或小节)。

我正在使用 pandoc 版本 2.11.2、RStudio 版本 1.4.1103 和 R 版本 4.0.3

这是我的源文件:

report.Rmd:

---
output: 
  pdf_document:
    template: template.tex
    keep_tex: TRUE
    number_sections: FALSE
---
# Abstract {-}

# Introduction

## A Subsection

# A Second Section

template.tex:

\documentclass{article}

\usepackage{hyperref}

\begin{document}

$body$

\end{document}

RMarkdown 输出中的 pandoc 调用显示为(我添加了换行符以使其更易于阅读),注意它不包括 --number-sections,它通常用于告诉 pandoc 强制编号,默认情况下 pandoc 不应该给它们编号。

"C:/Program Files/RStudio/bin/pandoc/pandoc" 
+RTS -K512m -RTS report.utf8.md 
--to latex 
--from markdown+autolink_bare_uris+tex_math_single_backslash 
--output report.tex 
--lua-filter "C:\Users\MichaelBarrowman\Documents\R\R-4.0.3\library\rmarkdown\rmarkdown\lua\pagebreak.lua" 
--lua-filter "C:\Users\MichaelBarrowman\Documents\R\R-4.0.3\library\rmarkdown\rmarkdown\lua\latex-div.lua" 
--self-contained
--template template.tex 
--highlight-style tango 
--pdf-engine pdflatex 

这编织到以下 report.tex 文件:

\documentclass{article}

\usepackage{hyperref}

\begin{document}

\hypertarget{abstract}{%
\section*{Abstract}\label{abstract}}
\addcontentsline{toc}{section}{Abstract}

\hypertarget{introduction}{%
\section{Introduction}\label{introduction}}

\hypertarget{a-subsection}{%
\subsection{A Subsection}\label{a-subsection}}

\hypertarget{a-second-section}{%
\section{A Second Section}\label{a-second-section}}

\end{document}

呈现为 report.pdf 并且看起来像这样:

您的问题似乎是您使用的是自定义 LaTeX 模板,但没有在该模板中放入任何内容来处理打开或关闭节编号。 作为参考,以下是 pandoc 默认 LaTeX 模板处理此问题的方式:

$if(numbersections)$
\setcounter{secnumdepth}{$if(secnumdepth)$$secnumdepth$$else$endif$}
$else$
\setcounter{secnumdepth}{-\maxdimen} % remove section numbering
$endif$

(见第306--310行here)。

所以,如果你想处理这个 并且 使用你自己的自定义模板,你必须自己处理(甚至可能只是通过复制粘贴默认模板的功能).

当我这样编辑你的 template.tex 时:

\documentclass{article}

\usepackage{hyperref}

$if(numbersections)$
\setcounter{secnumdepth}{$if(secnumdepth)$$secnumdepth$$else$endif$}
$else$
\setcounter{secnumdepth}{-\maxdimen} % remove section numbering
$endif$


\begin{document}

$body$

\end{document}

我得到了你想要的结果: