删除rmarkdown生成的pdf中多列环境前的空白

删除rmarkdown生成的pdf中多列环境前的空白

我的问题来自于https://bookdown.org/yihui/rmarkdown-cookbook/multi-column.htmlcolumns.tex,我借用了这样的设定

\newenvironment{cols}[1][]{}{}

\newenvironment{col}[1]{\begin{minipage}{#1}\ignorespaces}{%
\end{minipage}
\ifhmode\unskip\fi
\aftergroup\useignorespacesandallpars}

\def\useignorespacesandallpars#1\ignorespaces\fi{%
#1\fi\ignorespacesandallpars}

\makeatletter
\def\ignorespacesandallpars{%
  \@ifnextchar\par
    {\expandafter\ignorespacesandallpars\@gobble}%
    {}%
}
\makeatother

为了清楚和简单起见,我在纯 latex 源代码中总结了我的问题,如下所示:

\documentclass[12pt,a4paper]{article}

\usepackage{lipsum}
\input{columns.tex}

\begin{document}

\section{Two columns}

\lipsum[1]

\begin{col}{0.49\textwidth}
\scriptsize
\lipsum[2-5]
\end{col}

\begin{col}{0.02\textwidth}
~
\end{col}

\begin{col}{0.49\textwidth}
\scriptsize
\lipsum[6-9]
\end{col}
~

\lipsum[10]

\end{document} 

这有点相当于 rmarkdown 源代码

---
output:
  pdf_document: 
    keep_tex: true
    includes:
      in_header: columns.tex
  html_document: 
    css: columns.css
  beamer_presentation: 
    keep_tex: true
    includes:
      in_header: columns.tex
documentclass: article
classoption: 12pt,a4paper
header-includes:
  - \usepackage{lipsum}
---

# Two columns

\lipsum[1]

:::::: {.cols data-latex=""}

::: {.col data-latex="{0.49\textwidth}"}

\scriptsize
\lipsum[2-5]

:::

::: {.col data-latex="{0.02\textwidth}"}
\ 
<!-- an empty Div (with a white space), serving as
a column separator -->
:::

::: {.col data-latex="{0.49\textwidth}"}

\scriptsize
\lipsum[6-9]

:::
::::::

\lipsum[10]

我编译源代码后,得到的 pdf 文件在双列环境之前显示空白。如何删除它?

在此处输入图片描述 在此处输入图片描述

答案1

很简单:双栏材料设在框中,因此无法跨页拆分。

如果文本只是从一列流到另一列,则可以使用multicol

\documentclass[12pt,a4paper]{article}

\usepackage{lipsum}
\usepackage{multicol}

\begin{document}

\section{Two columns}

\lipsum[1]

\begin{multicols}{2}
\scriptsize
\lipsum[2-5]
\lipsum[6-9]
\end{multicols}

\lipsum[10]

\end{document}

在此处输入图片描述

如果两段文本是“平行”的,则可以使用paracol

\documentclass[12pt,a4paper]{article}

\usepackage{lipsum}
\usepackage{paracol}

\begin{document}

\section{Two columns}

\lipsum[1]

\vspace{\topsep}

\begin{paracol}{2}
\scriptsize
\lipsum[2-5]
\switchcolumn
\lipsum[6-9]
\end{paracol}

\vspace{\topsep}

\lipsum[10]

\end{document}

在此处输入图片描述

相关内容