.png)
Кажется, это дубликатЛожный [?] вертикальный пробел, введенный многоколонками, но решение оттуда не работает для меня. В основном я хочу случай использования multicols
длянетизменить вертикальный интервал между вступительным текстом и списком. Вывод справа использует multicols
:
Также имеется дополнительное пространство, соответствующее multicols
окружающей среде.
Примечания:
- Окружающая
minipage
среда была использована для иллюстрации проблемы. Я ненетполагаю, что это влияет на проблему дополнительного вертикального пространства. - Пакет
tikz
используетсятолькочтобы подчеркнуть проблему интервалов.
Код:
\documentclass{article}
\usepackage{tikz}
\usepackage{enumitem}
\usepackage{multicol}
\raggedcolumns
%\setlength{\multicolbaselineskip}{0pt}% Seems to have no effect
\begin{document}
\begin{minipage}[t]{0.44\linewidth}
The following are examples of numbers:
\begin{itemize}
\item 0ne,
\item $\pi$,
\item $2+3i$,
and
\item $0$.
\end{itemize}%
Some text following.
\end{minipage}%
\hfill%-------------------------
\begin{minipage}[t]{0.44\linewidth}
%% https://tex.stackexchange.com/questions/161966/spurious-vertical-space-introduced-by-multicols
%\setlength{\topskip}{\fontcharht\font`B }% Seems to have no effect
The following are examples of numbers:
\begin{multicols}{2}
\begin{itemize}
\item 0ne,
\item $\pi$,
\item $2+3i$,
\item $0$.
\item Two,
\item $e$,
\item $2-3i$,
and
\item $-0$.
\end{itemize}%
\end{multicols}
Some text following.
\end{minipage}%
% Following manually tweaked to show the problem.
\begin{tikzpicture}[overlay, remember picture]
\draw [red] (-11.5cm,-1.16cm) -- ++(4.8in,0);
\draw [blue] (-11.5cm,-1.86cm) -- ++(4.8in,0);
\draw [orange] (-11.5cm,-3.95cm) -- ++(4.8in,0);
\end{tikzpicture}
\end{document}
Результаты (2014-08-25)
Вот вывод, который я получил от MWE Франка Миттельбаха (обратите внимание, что интервалы в тексте ниже неверны):
Вывод из \listfiles:
Я только что обновилвсепакеты из TeXLive2014 до запуска теста. Итак, один из моих пакетов устарел или проблема с релизом TeXLive2014:
*File List*
article.cls 2007/10/19 v1.4h Standard LaTeX document class
size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
tikz.sty 2013/12/13 v3.0.0 (rcs-revision 1.142)
pgf.sty 2013/12/18 v3.0.0 (rcs-revision 1.14)
pgfrcs.sty 2013/12/20 v3.0.0 (rcs-revision 1.28)
everyshi.sty 2001/05/15 v3.00 EveryShipout Package (MS)
pgfrcs.code.tex
pgfcore.sty 2010/04/11 v3.0.0 (rcs-revision 1.7)
graphicx.sty 2014/04/25 v1.0g Enhanced LaTeX Graphics (DPC,SPQR)
keyval.sty 2014/05/08 v1.15 key=value parser (DPC)
graphics.sty 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR)
trig.sty 1999/03/16 v1.09 sin cos tan (DPC)
graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live
pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX
infwarerr.sty 2010/04/08 v1.3 Providing info/warning/error messages (HO)
ltxcmds.sty 2011/11/09 v1.22 LaTeX kernel commands for general use (HO)
pgfsys.sty 2013/11/30 v3.0.0 (rcs-revision 1.47)
pgfsys.code.tex
pgfsyssoftpath.code.tex 2013/09/09 (rcs-revision 1.9)
pgfsysprotocol.code.tex 2006/10/16 (rcs-revision 1.4)
xcolor.sty 2007/01/21 v2.11 LaTeX color extensions (UK)
color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive
pgfcore.code.tex
pgfcomp-version-0-65.sty 2007/07/03 v3.0.0 (rcs-revision 1.7)
pgfcomp-version-1-18.sty 2007/07/23 v3.0.0 (rcs-revision 1.1)
pgffor.sty 2013/12/13 v3.0.0 (rcs-revision 1.25)
pgfkeys.sty
pgfkeys.code.tex
pgfmath.sty
pgfmath.code.tex
pgffor.code.tex
tikz.code.tex
enumitem.sty 2011/09/28 v3.5.2 Customized lists
multicol.sty 2014/04/23 v1.8e multicolumn formatting (FMi)
etoolbox.sty 2011/01/03 v2.1 e-TeX tools for LaTeX
etex.sty 1998/03/26 v2.0 eTeX basic definition package (PEB)
supp-pdf.mkii
pdftexcmds.sty 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO)
ifluatex.sty 2010/03/01 v1.3 Provides the ifluatex switch (HO)
ifpdf.sty 2011/01/30 v2.3 Provides the ifpdf switch (HO)
epstopdf-base.sty 2010/02/09 v2.5 Base part for package epstopdf
grfext.sty 2010/08/19 v1.1 Manage graphics extensions (HO)
kvdefinekeys.sty 2011/04/07 v1.3 Define keys (HO)
kvoptions.sty 2011/06/30 v3.11 Key value format for package options (HO)
kvsetkeys.sty 2012/04/25 v1.16 Key value parser (HO)
etexcmds.sty 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO)
epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Live
omscmr.fd 1999/05/25 v2.5h Standard LaTeX font definitions
решение1
Если список, например, itemize
размещен в начале мини-страницы, то обычный вертикальный интервал перед списком опускается.
Добавление multicols
таким образом, как вы это сделали, создает рамку вокруг itemize
списка, как на мини-странице, и поэтому \topsep
не добавляется. Вместо этого вы видите , \multicolsep
который добавляется до и после multicol
окружения.
В статье класс (10pt) \topsep
имеет значение 8pt плюс 2pt минус 4pt, в то время как \multicolsep
это что-то вроде 12pt, что объясняет (большинство) наблюдаемых различий. Таким образом
\setlength\multicolsep{\topsep}
Теоретически это должно решить вашу проблему.
Однако ваш пример также продемонстрировал сбой в обработке многоколоночных элементов, \prevdepth
который объясняет смещение на 1,9994 пункта после окружения (происходит только в «блочном» режиме, т. е. если окружение отображается на мини-странице или подобном объекте).
Поэтому вам дополнительно нужно пропатчить один из внутренних компонентов multicol на данный момент:
\usepackage{etoolbox}
\makeatletter
\patchcmd\page@sofar{\kern-\dimen\tw@ \ifdim\dimen\tw@}
{\kern-\dimen\tw@ \prevdepth\z@ \ifdim\dimen\tw@}
{\typeout{Success!}}{\ERRORpatching}
\makeatother
После этих двух корректировок вы должны увидеть следующее:
Как и просили, вот полная версия MWE. Если она у вас не работает, возможно, у вас более старая версия multicol
. Эта версия была запущена с версией 2014/06/19 v1.8f.
\documentclass{article}
\usepackage{tikz}
\usepackage{enumitem}
\usepackage{multicol}
\raggedcolumns
\usepackage{etoolbox}
\setlength\multicolsep{\topsep}
\makeatletter
\patchcmd\page@sofar{\kern-\dimen\tw@ \ifdim\dimen\tw@}
{\kern-\dimen\tw@ \prevdepth\z@ \ifdim\dimen\tw@}
{\typeout{Success!}}{\ERRORpatching}
\makeatother
\begin{document}
\begin{minipage}[t]{0.44\linewidth}
The following are examples of numbers:
\begin{itemize}
\item 0ne,
\item $\pi$,
\item $2+3i$,
and
\item $0$.
\end{itemize}%
Some text following.
\end{minipage}%
\hfill%-------------------------
\begin{minipage}[t]{0.44\linewidth}
%% http://tex.stackexchange.com/questions/161966/spurious-vertical-space-introduced-by-multicols
%\setlength{\topskip}{\fontcharht\font`B }% Seems to have no effect
The following are examples of numbers:
\begin{multicols}{2}
\begin{itemize}
\item 0ne,
\item $\pi$,
\item $2+3i$,
\item $0$.
\item Two,
\item $e$,
\item $2-3i$,
and
\item $-0$.
\end{itemize}%
\end{multicols}%
Some text following.
\end{minipage}%
% Following manually tweaked to show the problem.
\begin{tikzpicture}[overlay, remember picture]
\draw [red] (-11.5cm,-1.16cm) -- ++(4.8in,0);
\draw [blue] (-11.5cm,-1.86cm) -- ++(4.8in,0);
\draw [orange] (-11.5cm,-3.95cm) -- ++(4.8in,0);
\end{tikzpicture}
\end{document}
Обновить
Исправление этой проблемы было добавлено в multicol
1.8g. Новая версия теперь находится на CTAN и должна появиться в дистрибутивах с возможностью обновления в течение нескольких дней (как только Heiko предоставит пакет tls).
Обратите внимание, что подходящая настройка для \multicolsep
по-прежнему необходима (и всегда будет необходима).