删除 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}
我得到了你想要的结果:
我正在尝试使用 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}
我得到了你想要的结果: