![eliminar espacios en blanco antes del entorno de varias columnas en pdf producido por rmarkdown](https://rvso.com/image/475732/eliminar%20espacios%20en%20blanco%20antes%20del%20entorno%20de%20varias%20columnas%20en%20pdf%20producido%20por%20rmarkdown.png)
Mi problema surge dehttps://bookdown.org/yihui/rmarkdown-cookbook/multi-column.html, donde tomo prestada la configuración columns.tex
que dice
\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
Para hacerlo claro y simple, resumo mi problema en código fuente de látex puro de la siguiente manera:
\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}
que es algo equivalente al código fuente de rmarkdown como
---
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]
Después de compilar el código fuente, el archivo pdf que obtengo muestra un espacio en blanco antes del entorno de dos columnas. ¿Cómo eliminarlo?
Respuesta1
Es simple: el material de dos columnas está colocado en cajas, por lo que no se puede dividir en páginas.
Si el texto simplemente fluye de una columna a la otra, puedes usar 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}
Si los dos textos son “paralelos”, puedes utilizar 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}