I need to use a certain document class (acm_proc_article-sp) that introduces vertical space between paragraphs. I want to remove or at least reduce that space, which I am unable to.
Here is a minimal file to reproduce the problem:
\documentclass{acm_proc_article-sp}
\begin{document}
\section{Introduction}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer lobortis sagittis libero, et mattis arcu vehicula at. Morbi a hendrerit diam. Quisque quis rhoncus mauris.
Nulla tempor molestie aliquet. Nulla quis sapien sapien, non egestas dui. Phasellus consectetur blandit orci, ut viverra urna dapibus sit amet.
\end{document}
Now I tried to change the vertical space by using \partopsep
, \parskip
and also tried using the package parskip
. No change at all.
I know this is a very specific question as it is related probably to this document class only, yet being relatively new to LaTeX I have no ideas where to go from here. Any help is highly appreciated.
Best Answer
I found a copy of the relevant class file here; assuming that this is the same as the one that you are using, the culprit is the following comment:
Sure enough, looking further down in the document we find that in the definition of the section commands,
\parskip
gets reset. For example:That innocuous
\parskip=10.5pt
at the end means that every time a\section
,\subsection
,\subsubsection
, or\paragraph
command is used then\parskip
gets reset to10.5pt
. (The command\@sect
has the same ending.)So to reduce
\parskip
, you need to reduce it each time that you start a section or otherwise. Depending on your needs, a variety of strategies are possible. The simplest would be to have a copy of the class file in the same directory as the TeX file and simply edit out that extra\parskip=10.5pt
(actually, edit out both of them: one from\@ssect
and one from\@sect
). If you need to leave the class file pristine for some reason, then you can redefine these commands in your preamble. The simplest would be to simply copy out the definitions from the class file with the appropriate modifications to\parskip
. If you do this, then the copied definitions need to be sandwiched between\makeatletter ... \makeatother
.If you want to be a bit more fancy, you could have the
\section
commands remember what\parskip
is when they are called, then reset it at the end. This would involve hacking three commands from the class file, since the command\@startsection
also messes with\parskip
. So it would be something like (not tested!):