Вопрос или проблема
Я пытаюсь выровнять текст в обоих столбцах по вертикали. Я пытался устранить пробелы/перерывы, о которых я знаю (parskip, отступы до/после раздела). После начала раздела ‘Результаты’ выравнивание нарушается. Используемая мной среда figure, подпись и подсекция, похоже, работают нормально, отступы задаются исключительно с использованием кратных baselineskip. Однако перед новым разделом, похоже, добавляется какое-то пространство.
Минимальный работающий пример:
\documentclass[ 11pt, a4paper]{scrbook}
\usepackage[top=2cm,bottom=2cm, includehead, headheight=0.5cm]{geometry}
\setkomafont{disposition}{\fontfamily{lmss}\normalfont}
\renewcommand{\familydefault}{\sfdefault}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[singlelinecheck=off, font={sf, bf}, labelfont=bf,
labelsep=period, margin=0cm,skip=0pt, belowskip=0pt]{caption}
\usepackage{graphicx}
\usepackage{setspace}
\usepackage{lipsum}
\newenvironment{Figure2col}[1]
{\par\noindent\minipage[][#1\baselineskip][t]{\linewidth}}
{\endminipage\par}
\usepackage{multicol}
\setlength{\multicolsep}{0pt plus 0pt minus 0pt}
\RedeclareSectionCommand[
runin=false,
afterindent=false,
beforeskip=0pt,
afterskip=0pt]{section}
\RedeclareSectionCommand[
runin=true,
afterindent=false,
beforeskip=\baselineskip,
afterskip=30pt]{subsection}
\RedeclareSectionCommands[
runin=true,
beforeskip=0pt,
afterskip=0pt]{paragraph,subparagraph}
\setkomafont{section}{\centering \Large \bfseries \scshape}
\setkomafont{subsection}{\large \bfseries \scshape}
\setcounter{secnumdepth}{-1}
\begin{document}
\setlength{\parskip}{0pt}
\section{Аннотация}
\lipsum[1-2]
\vspace{0.5cm}
\begin{multicols}{2}
\section{Введение}
\lipsum[3]
\subsection{Некоторое вводное содержание}
\lipsum[4-8]
\section{Результаты}
\lipsum[3-4]
\begin{Figure2col}{12}
\includegraphics[width=\linewidth]{example-image-a}
\end{Figure2col}
\begin{minipage}[][1\baselineskip][c]{\linewidth}
\captionof{figure}[Рисунок A]{\textit{Рисунок A}}
\end{minipage}
\subsection{Больше результатов}
\lipsum[3-5]
\end{multicols}
\end{document}
Я пробовал вставить \nointerlineskip перед \section{Результаты}, но это не помогло. Изменение размера шрифта заголовка секции на \normalfont также не дало результата. В реальном коде я добавляю hrules и baselineskips вокруг раздела, но поскольку это ничего не изменило, я опустил это здесь. Я пытался найти ответы повсюду, но ничего не сработало. Это сводит меня с ума. Любое предложение будет крайне ценным!
Ответ или решение
Проблема с вертикальным выравниванием текста в многоколонном окружении может быть сложной, особенно если применяются значительные настройки пробелов, как в вашем случае. Ваша минимальная рабочая версия (MWE) демонстрирует, что после секции "Results" вы сталкиваетесь с дополнительным пространством, которое нарушает вертикальное выравнивание.
Вот несколько шагов и подходов, которые могут помочь решить вашу проблему:
-
Устранение дополнительного пробела перед секцией: В вашем случае, скорее всего, причина в настройках пробелов, заданных в
\RedeclareSectionCommand
. Убедитесь, что у вас в секции "Results" нет дополнительных команд, придающих отступы. В данном случае, вы можете попробовать уменьшитьbeforeskip
для секции или полностью отключить его. Например:\RedeclareSectionCommand[ beforeskip=0pt, % Установите это значение на 0pt afterskip=0pt ]{section}
-
Использование
\nointerlineskip
: Это решение вы пробовали, однако важно его правильно расположить. Разместите команду\nointerlineskip
перед секцией "Results", чтобы устранить нежелательные пробелы. Например:\nointerlineskip \section{Results}
-
Проверка настроек
multicol
: Убедитесь, что вы правильно настроили параметрыmulticol
. Попробуйте установить отступы и пробелы для колонок, чтобы они не мешали отображению:\setlength{\columnsep}{0pt} \setlength{\multicolsep}{0pt plus 0pt minus 0pt}
-
*Использование `\vspace{…}
**: Если вам все еще не удается добиться нужного выравнивания, попробуйте использовать команду
\vspace*{-<размер>}` для устранения лишнего пространства. Например:\vspace*{-10pt} % Уберите 10pt (настроите по необходимости) \section{Results}
-
Перепроверка других настроек: Убедитесь, что в других частях вашего документа нет настроек, которые могут мешать вашему выравниванию. Например, проверьте, есть ли в других окружениях пробелы, изменяющие общий отступ.
Пример измененного кода будет выглядеть так:
\documentclass[11pt,a4paper]{scrbook}
\usepackage[top=2cm,bottom=2cm, includehead, headheight=0.5cm]{geometry}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[singlelinecheck=off, font={sf, bf}, labelfont=bf, labelsep=period, margin=0cm,skip=0pt, belowskip=0pt]{caption}
\usepackage{graphicx}
\usepackage{setspace}
\usepackage{lipsum}
\usepackage{multicol}
\setlength{\columnsep}{0pt}
\setlength{\multicolsep}{0pt plus 0pt minus 0pt}
\setlength{\parskip}{0pt}
\RedeclareSectionCommand[beforeskip=0pt, afterskip=0pt]{section}
\RedeclareSectionCommand[beforeskip=0pt, afterskip=0pt]{subsection}
\begin{document}
\section{Abstract}
\lipsum[1-2]
\vspace{0.5cm}
\begin{multicols}{2}
\section{Introduction}
\lipsum[3]
\subsection{Some Intro Part}
\lipsum[4-8]
\nointerlineskip
\section{Results}
\lipsum[3-4]
\begin{figure}
\includegraphics[width=\linewidth]{example-image-a}
\caption{Figure A}
\end{figure}
\subsection{More Results}
\lipsum[3-5]
\end{multicols}
\end{document}
При реализации этих рекомендаций вы, скорее всего, сможете добиться необходимого вертикального выравнивания текста в многоколонной среде. Если у вас останутся вопросы или потребуется дальнейшая помощь, не стесняйтесь обращаться!