If you want vertical space between your paragraphs and no indentation, then as I have seen, the best solution is to use the parskip package. But in the documentation that package has no options, so how do you change that vertical space if you want to add more or less of it?
[Tex/LaTex] Package parskip to add more (or remove) vertical space
parskipspacing
Related Solutions
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:
\parskip 0pt % Extra vertical space between paragraphs.
% Set to 0pt outside sections, to keep section heads
% uniformly spaced. The value of parskip is set
% to leading value _within_ sections.
% 12 Jan 2000 gkmt
Sure enough, looking further down in the document we find that in the definition of the section commands, \parskip
gets reset. For example:
\def\@ssect#1#2#3#4#5{%
\@tempskipa #3\relax
\ifdim \@tempskipa>\z@
\begingroup
#4{%
\@hangfrom{\hskip #1}%
\interlinepenalty \@M #5\@@par}%
\endgroup
\else
\def\@svsechd{#4{\hskip #1\relax #5}}%
\fi
\vskip -10.5pt %gkmt, 7 jan 00 -- had been -14pt, now set to parskip
\@xsect{#3}\parskip=10.5pt} % within the starred section, parskip = leading 12 Jan 2000 gkmt
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 to 10.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!):
\makeatletter
\let\orig@startsection=\@startsection
\let\orig@ssect=\@ssect
\let\orig@sect=\@sect
\newskip\orig@parskip
\orig@parskip\parskip % just for safety's sake!
\def\@startsection{%
\orig@parskip\parskip%
\orig@startsection}
\def\@ssect#1#2#3#4#5{%
\orig@ssect{#1}{#2}{#3}{#4}{#5}%
\parskip\orig@parskip}
\def\@sect#1#2#3#4#5#6[#7]#8{%
\orig@sect{#1}{#2}{#3}{#4}{#5}{#6}[#7]{#8}%
\parskip\orig@parskip}
\makeatother
\parskip
is a TeX primitive which gets set to various values in LaTeX constructs, so setting it directly at the start of the document has a defined effect but possibly not as expected. In particular LaTeX lists manipulate \parskip
to control the spacing before the list and between items, in particular before a list it is reset to values depending on \partopsep
and \topsep
.
Best Answer
Here, I take
parskip.sty
, rename it asmyparskip.sty
and make the following changes:1) change to
\ProvidesPackage{myparskip}
2) change
to
This has the effect if called with a zero value of
\parskip
, it mimics what theparskip
package would do (which is to set\parskip
to a value of0.5\baselineskip
). On the other hand, if\parskip
is specified to a non-zero value in advance of calling the package, it will take that as the new default value and do the other things theparskip
package would do, such as adding glue to the\parskip
dimension, and adjusting vertical dimensions associated with list making.Consider this MWE, which gives the default
parskip
package behavior:When the
\parskip
value is set in advance (uncomment the one line in the preamble), it affects the paragraph and list-making spacing both: