Как происходит разделение multicol?

Как происходит разделение multicol?

Сначала я думал, что он разделится на половину числа строк. Затем я написал код, в котором число строк первой части было больше, чем число строк второй части, и он разделился именно там, где я хотел. Повезло мне? Я так не думаю. Как разделяются multicol?

Вот код, который у меня был:

 \documentclass{article}
\usepackage{multicol}
\def\tab{\mbox{\quad}}
\begin{document}
\begin{multicols}{2}
\noindent
READER::\\
$P(mutex_3);$\\
$P(r);$\\
$P(mutex_1);$\\
$readcount++;$\\
if(readcount == 1)\\
\tab P(w);\\
$V(mutex_1);$\\
$V(r);$\\
$V(mutex_3);$\\
read the content of object\\
$P(mutex_1);$\\
$readcount--;$\\
if(readcount == 0)\\
\tab V(w);\\
$V(mutex_1);$\\
WRITER::\\
$P(mutex_2);$\\
writecount++;\\
if(writecount == 1)\\
\tab P(r);\\
$V(mutex_2);$\\
P(w);\\
writing object\\
V(w);\\
$P(mutex_2);$\\
writecount--;\\
if(writecount == 0)\\
\tab V(r);\\
$V(mutex_2);$
\end{multicols}
\end{document}

и я хотел, чтобы было разделение на READERи WRITERразделы и вот как именно это было сделано. Почему?

решение1

multicolбалансирует строки, но, как всегда бывает, если \\неправильно использовать его в конце абзаца, TeX создает «полностью белую» строку и жалуется в журнале:

Underfull \hbox (badness 10000) in paragraph at lines 6--37

Итак, когда multicolбалансирует столбцы, первый столбец имеет толькоодинстрока больше второй, последняя строка второго столбца полностью белая.

Если удалить финал \\перед тем, как \end{multicols}предупреждение в журнале уйдет, но теперь столбцы сбалансированы как

введите описание изображения здесь

Примечание, не связанное с этой математикой: курсив никогда не следует использовать для многобуквенных слов; шрифт имеет широкие боковые выступы, чтобы соседние буквы выглядели как произведение переменных инетслово. Так что

$readcount--;$\\

должно быть

$\mathit{readcount}{-}{-};$\\

Хотя вы, кажется, переключаетесь между математическим и текстовым режимами? Почему

 if(readcount == 1)

не математика? Аналогично, почему writecount--установлено в текстовом режиме (где --лигатура для n-тире), а readcountв математическом режиме установлено с двумя знаками минус?

Связанный контент