I am using BibTeX with the amsart
class. Is there a way to decrease the vertical spacing between the "References" section heading and the bibliographic entries?
[Tex/LaTex] Change the vertical spacing between “References” heading and bibliographic entries
amsartbibliographiesspacing
Related Solutions
Here's a solution that doesn't require the use of additional packages. The new command, \vertiii
, takes one argument; the triple vertical bars resize automatically depending on the size of the argument. For the MWE below, I've actually set the spacing between the vertical bars to be slightly less than what's generated by \[l,r]Vert
-- you can adjust the spacing to suit your taste by changing the value of the argument of the four \kern
commands.
Addendum: I've modified the code -- by inserting curly braces around the entire command -- to allow for the use of the command \vertiii
in subscripts and superscripts as well.
\documentclass{article}
\usepackage{amsmath,amssymb}
\newcommand{\vertiii}[1]{{\left\vert\kern-0.25ex\left\vert\kern-0.25ex\left\vert #1
\right\vert\kern-0.25ex\right\vert\kern-0.25ex\right\vert}}
\begin{document}
$\vertiii{a}$,
$\vertiii{\int_0^1 a(x)\,\mathrm{d}x}$,
$\displaystyle \vertiii{\int_0^1 a(x)\,\mathrm{d}x}_\vertiii{b}$
$\lVert a \rVert$ (for comparison)
$c_\vertiii{d}$, $f^\vertiii{g}$
\end{document}
This answer was taken mostly verbatim from How to remove top margin above \tableofcontents
.
In the standard document classes (like book
and report
), \tableofcontents
(and friends) is set as a \chapter*
:
\newcommand\tableofcontents{%
\if@twocolumn
\@restonecoltrue\onecolumn
\else
\@restonecolfalse
\fi
\chapter*{\contentsname
\@mkboth{%
\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
\@starttoc{toc}%
\if@restonecol\twocolumn\fi
}
So, it would be possible to temporarily modify the chapter heading macro to not insert as much vertical space. Here's a look at the \chapter*
heading macro \@makeschapterhead
:
\def\@makeschapterhead#1{%
\vspace*{50\p@}%
{\parindent \z@ \raggedright
\normalfont
\interlinepenalty\@M
\Huge \bfseries #1\par\nobreak
\vskip 40\p@
}}
Note the insertion of vertical space (\vspace*{50\p@}
) before setting the heading. So, we can temporarily redefine this macro to not insert the vertical space (or modify it to whatever you need):
\documentclass{report}
\begin{document}
\begingroup
\makeatletter
% Redefine the \chapter* header macro to remove vertical space
\def\@makeschapterhead#1{%
%\vspace*{50\p@}% Remove the vertical space
{\parindent \z@ \raggedright
\normalfont
\interlinepenalty\@M
\Huge \bfseries #1\par\nobreak
\vskip 40\p@
}}
\makeatother
\tableofcontents
\endgroup
\chapter{A chapter}\section{A section}\subsection{A subsection}
\chapter{A chapter}\section{A section}\subsection{A subsection}
\chapter{A chapter}\section{A section}\subsection{A subsection}
\chapter{A chapter}\section{A section}\subsection{A subsection}
\chapter{A chapter}\section{A section}\subsection{A subsection}
\chapter{A chapter}\section{A section}\subsection{A subsection}
\end{document}
The grouping of the redefinition makes it local. Therefore, all modifications are restored after \endgroup
. The same idea goes for \listoffigures
, \listoftables
, etc. Of course, a global change to \@makeschapterhead
would also suffice as the ToC, LoF and LoT are typically all unnumbered chapters.
Here is another suggestion that patches \@makeschapterhead
using etoolbox
:
\documentclass{report}
\usepackage{etoolbox}
\makeatletter
% \patchcmd{<cmd>}{<search>}{<replace>}{<success>}{<failure>}
\patchcmd{\@makeschapterhead}{\vspace*{50\p@}}{}{}{}
\makeatother
\begin{document}
\tableofcontents
\chapter{A chapter}\section{A section}\subsection{A subsection}
\chapter{A chapter}\section{A section}\subsection{A subsection}
\chapter{A chapter}\section{A section}\subsection{A subsection}
\chapter{A chapter}\section{A section}\subsection{A subsection}
\chapter{A chapter}\section{A section}\subsection{A subsection}
\chapter{A chapter}\section{A section}\subsection{A subsection}
\end{document}
Since the \chapter*
header macro only uses \vspace*{..}
to insert the gap between the text block and chapter header, you could also redefine \vspace
to gobble the two arguments (*
and {50\p@}
):
\documentclass{book}
\begin{document}
\begingroup
\renewcommand{\vspace}[2]{}% Gobble 2 arguments after \vspace
\tableofcontents
\endgroup
\chapter{A chapter}\section{A section}\subsection{A subsection}
\chapter{A chapter}\section{A section}\subsection{A subsection}
\chapter{A chapter}\section{A section}\subsection{A subsection}
\chapter{A chapter}\section{A section}\subsection{A subsection}
\chapter{A chapter}\section{A section}\subsection{A subsection}
\chapter{A chapter}\section{A section}\subsection{A subsection}
\end{document}
While the above suggestion may seem simple, it may have negative effects elsewhere in your document where you use \vspace
(perhaps indirectly) if the change is made global (rather than the suggested localization through grouping). It is therefore not advised in the global use case.
Other packages (including titlesec
) can also be used to obtain this result.
Related Question
- [Tex/LaTex] Condense the space between bibliographic entries
- [Tex/LaTex] Different vertical spacing (parskip) between concurrent section titles and paragraphs
- [Tex/LaTex] How to remove the vertical distance between references in lyx
- [Tex/LaTex] Vertical spacing and item separation between entries in pgfplots’ legend
Best Answer
You can redefine the
thebibliography
environment to add a convenient vertical (negative) space; a little example in which I decrease the vertical spacing by5pt
(the line marked with% NEW
):I would suggest you, however, not to decrease this spacing since doing so the heading and the first reference will appear too close.