# vrule align with top of the text using multicols

My MWE is:

\documentclass{book}
\usepackage{showframe}
\usepackage{lipsum,multicol}
\pagestyle{empty}
\setlength{\columnseprule}{2pt}
%\setlength{\multicolsep}{-10pt}
\begin{document}

\lipsum[1]

\begin{multicols}{3}
\lipsum[1-10]
\end{multicols}
\end{document}


I would like to align rule with top of the text. (see the example image).

The multicols environment uses \topskip before typesetting the columns. Setting topskip=0pt is a (possible) solution.

Modifying \multicolsep does only affect the total spacing above multicols environment, but not the internal skip.

\documentclass{book}
\usepackage{showframe}
\usepackage{lipsum}
\usepackage{multicol}
\pagestyle{empty}
\setlength{\columnseprule}{2pt}
\begin{document}

\lipsum[1]
\begin{multicols}{3}
\topskip=0pt
\lipsum[1-10]
\end{multicols}
\end{document}


• In the top of the multicols its working fine. How to control in the bottom? Feb 26, 2018 at 12:11
• @Balaji: You did not write anything about the bottom, did you?
– user31729
Feb 26, 2018 at 12:12
• Yes. I have need in the bottom also. Please suggest. Feb 26, 2018 at 12:13
• @Balaji: That's changing the question
– user31729
Feb 26, 2018 at 12:18
• @Balaji: Sigh... you should not change the question afterwards. It is up to you to post a clear question right from the start, not changing it in the end such that a posted solution becomes useless. This is not ok!
– user31729
Feb 26, 2018 at 12:31