![удалить пробел перед многоколоночной средой в pdf, созданном rmarkdown](https://rvso.com/image/475732/%D1%83%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C%20%D0%BF%D1%80%D0%BE%D0%B1%D0%B5%D0%BB%20%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%20%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE%D0%BA%D0%BE%D0%BB%D0%BE%D0%BD%D0%BE%D1%87%D0%BD%D0%BE%D0%B9%20%D1%81%D1%80%D0%B5%D0%B4%D0%BE%D0%B9%20%D0%B2%20pdf%2C%20%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%BD%D0%BE%D0%BC%20rmarkdown.png)
Моя проблема возникает из-заhttps://bookdown.org/yihui/rmarkdown-cookbook/multi-column.html, где я заимствую установку columns.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}