In a two column text (with multicol), the first column is composed of a long paragraph, ending a line before the column end. Then a parskip is added, which makes the last line of the column empty. The result is that the second column is ended a line after the first column.
Is there a way to avoid this, and make the two column end at the same place? (without modifying the text, or inserting some commands inside it to manually fix the problem - the text is generated by a program, and it'd be cumbersome to go over all such places and manually fix them)
MWE:
\documentclass[12pt]{book}
\usepackage{multicol}
\setlength{\columnsep}{1.5pc}
\setlength{\parindent}{0pt}
\setlength{\parskip}{1ex plus 0.2ex minus 0.2ex}
%%%%%%%%%%% DATA %%%%%%%%%%%
\begin{document}
\begin{multicols}{2}
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vel turpis nunc eget lorem. Tortor vitae purus faucibus ornare suspendisse sed nisi lacus sed. Phasellus egestas tellus rutrum tellus pellentesque eu tincidunt. Nunc id cursus metus aliquam eleifend mi. Phasellus vestibulum lorem sed risus ultricies tristique nulla aliquet. Tristique et egestas quis ipsum suspendisse ultrices gravida dictum fusce. Mi sit amet mauris commodo quis imperdiet massa tincidunt. In ante metus dictum at tempor commodo. Adipiscing elit duis tristique sollicitudin nibh sit amet commodo nulla. Commodo quis imperdiet massa tincidunt nunc pulvinar sapien et ligula. Ultrices dui sapien eget mi proin sed libero enim sed. Bibendum at varius vel pharetra. Imperdiet nulla malesuada pellentesque elit eget. Amet commodo nulla facilisi nullam vehicula ipsum a. Eu tincidunt tortor aliquam nulla facilisi cras fermentum odio. In hendrerit gravida rutrum quisque non tellus orci ac auctor. Consequat ac felis donec et odio pellentesque diam volutpat commodo. Ipsum a arcu cursus vitae.\\
Eu consequat ac felis donec et odio pellentesque diam volutpat. Ornare suspendisse sed nisi lacus sed viverra. Et sollicitudin.
Quam quisque id diam vel. Sed enim ut sem viverra aliquet. Elit eget gravida cum sociis natoque penatibus et magnis. Id faucibus nisl tincidunt eget nullam. Faucibus purus in massa tempor nec feugiat. Morbi tristique senectus et netus et malesuada fames ac. Mauris pellentesque pulvinar pellentesque habitant morbi tristique senectus. Turpis egestas pretium aenean pharetra magna. Sit amet volutpat consequat mauris nunc congue nisi.
Urna et pharetra pharetra massa. Nec feugiat in fermentum posuere urna. Turpis massa tincidunt dui ut. Tempor orci eu lobortis elementum. Sed felis eget velit aliquet. Pellentesque nec nam aliquam sem et tortor consequat. Lorem ipsum dolor sit amet consectetur adipiscing elit. Pellentesque elit eget gravida cum sociis natoque. Duis ultricies lacus sed turpis tincidunt. Quisque non tellus orci ac auctor augue mauris. Duis tristique sollicitudin nibh sit amet commodo. Eget velit aliquet sagittis id consectetur purus ut faucibus. Arcu cursus euismod quis viverra nibh cras pulvinar mattis. Eget duis at tellus at urna condimentum. Nec nam aliquam sem et tortor consequat id porta. Convallis posuere morbi leo urna molestie at elementum eu. Nibh mauris cursus mattis molestie a iaculis.\\
Elementum facilisis leo vel fringilla est. Adipiscing elit ut aliquam purus sit. Et magnis dis parturient montes nascetur.
\end{multicols}
\end{document}
EDIT
Answering some points from the comments, and the given answers.
Background
This project is not a regular book. It's a kind of a dictionary, in Hebrew.
That dictionary is written in Word (not by myself). I wrote a Python program that parses the .docx file, and creates from it HTML pages that goes to an Android application, and creates from it also a .tex file, in order to allow new printing of the book.
The book is already in print, and was prepared with some proprietary program (manually from the .docx file - before I wrote my Python program). Now the author wishes to issue an updated print of the dictionary, that would look as close as possible to the existing printed book.
A picture of the printed book can be seen in this question.
The dictionary has definitions, and some definitions are grouped together. Therefore, the usual LaTeX notion of 'paragraph' isn't sufficient. I need "paragraph" and some sort of "sub-paragraph" - or "paragraph" and "group-of-paragraphs". I solved this with using \\ to separate atomic definitions, that should be in the same group, and paragraph breaks to separate groups of paragraphs. That's way it also looks like the original printed book.
BTW, in Hebrew it's very uncommon to indent new paragraphs. The common practice is no indent, and vertical space between the paragraphs.
Column issue
What should happen in case of a two columns book, and a paragraph that ends at the end of the first column? Well, we can debate this. But the author of this book wants that the two columns will end at the same line. I.e., there won't be parskip in that case. However, he wants that to be achieved without moving text line(s) from the one column to another. I'm trying to help him do that.
Can't we make LaTeX to simply ignore the parskip in such scenario, and slightly increase all spaces between the lines, in order to make the columns end at the same place?
After all, that was achieved with the software he worked with before. And that was done by human typesetters before...





parskippackage instead of setting\parindentand\parskipmanually. However, in this special case it does not change your situation. – Martin Scharrer Jan 24 '19 at 13:59and non-zero\parskip`. In your case, never mind the odd line spacing, how is the reader to know that the second column starts with a new paragraph? – Peter Wilson Jan 24 '19 at 18:39\parskipof1\baselineskip). In this example this doesn't change output but avoids bad boxes warnings. – Jan 26 '19 at 17:02\setlength\baselineskip{14pt plus 2pt}in the preamble, and it didn't work. Now I understood that I should have put it later, after the\begin{multicolscommand. Indeed, it solved the MWE. However, the "LATEX2e: An unofficial reference manual" saysChanging \baselineskip directly is inadvisable since its value is reset every time a size change happens; see \baselinestretch, next.Can I use\linespreadto achieve that? Or maybe even with thesetspacepackage? (which I prefer to\linespread, because of footnotes) – Zvika Feb 03 '19 at 11:29