减少标题后的间距

减少标题后的间距

我搜索了很多网站,但找不到任何答案。这是一个神秘的问题:

如何减少标题后的间距?

这是我的代码。

\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[turkish]{babel}
\usepackage[left=3.50cm, right=2.50cm, top=3.00cm, bottom=3.00cm,nohead,nofoot]{geometry}
 \usepackage[overload]{textcase} 
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{pslatex}
\usepackage[explicit]{titlesec}
\linespread{1.5}

\usepackage{setspace}
\setlength{\parindent}{0pt}
\setlength{\parskip}{\baselineskip}

\addto\extrasturkish{\uccode`i=\string"9D \lccode`I=\string"19 }
\addto\noextrasturkish{\uccode`i=`I \lccode`I=`i }

\titleformat{\section}
  {\normalfont\normalsize\bfseries}{\thesection}{1em}{\MakeTextUppercase{#1}}
\titleformat{\subsection}
  {\normalfont\normalsize\bfseries}{\thesubsection}{1em}{#1}
\titleformat{\subsubsection}
  {\normalfont\normalsize\bfseries\itshape}{\thesubsubsection}{1em}{#1}

\usepackage{chngcntr}

我的实际目的是将行距设置为 1.5 行。这是我必须用于项目报告的 MS Word 模板。当我使用时,\setlength{\parskip}{\baselineskip}\linespread{1.5}标题和段落之间的间隙很大,大到令人发笑。如果我不使用,\linespread{1.5}行距不会像预期的那样扩展。如果我不使用\setlength{\parskip}{\baselineskip}这个,段落之间就没有间距。

答案1

您已加载该包 - 它提供了以下格式的titlesec命令\titlespacing

\titlespacing{command}{left spacing}{before spacing}{after spacing}[right]

来自titlesec 包裹

% Spacing: how to read {12pt plus 4pt minus 2pt}
% 12pt is what we would like the spacing to be.
% plus 4pt means that TeX can stretch it by at most 4pt.
% minus 2pt means that TeX can shrink it by at most 2pt.
% This is one example of the concept of, 'glue', in TeX.

完整的 MWE 如下

\documentclass{article}
\usepackage{lipsum}
\usepackage{titlesec}

\titlespacing\section{0pt}{12pt plus 4pt minus 2pt}{0pt plus 2pt minus 2pt}
\titlespacing\subsection{0pt}{12pt plus 4pt minus 2pt}{0pt plus 2pt minus 2pt}
\titlespacing\subsubsection{0pt}{12pt plus 4pt minus 2pt}{0pt plus 2pt minus 2pt}

\begin{document}
\section{Section}
\lipsum[1]

\end{document}

答案2

您可以使用包\titlespacing中的命令titlesec。例如:

\titlespacing{\section}{0pt}{\parskip}{-\parskip}
\titlespacing{\subsection}{0pt}{\parskip}{-\parskip}
\titlespacing{\subsubsection}{0pt}{\parskip}{-\parskip}

标题sec.pdf以获得更多选项。

答案3

如果您正在使用setspace,那么将其与您自己的混合\linespread{1.5}可能不是一个好主意。

尝试删除 about 行\linespread并改用

\usepackage{setspace}
\onehalfspacing

软件包文档说,它的作用不仅仅是改变行距:它还处理标题、显示等之前和之后的跳过——您说您需要的东西。

答案4

如果您使用基于 KOMA-Script 的文档类(例如scrartcl),您不能(或者更确切地说:不应该)titlesec按原样使用该包与 KOMA-Script 不兼容

相反,你可以按照给出的方法这里,建议使用\RedeclareSectionCommand宏。 最简单的例子可能如下所示(从链接的答案中复制):

\documentclass[
  parskip=half% inserts additional space after \section
]{scrartcl}

\usepackage{lipsum}
\usepackage{multicol}

\RedeclareSectionCommand[afterskip=1sp]{section}

\begin{document}
    \rule{\textwidth}{15cm}

    \begin{multicols}{2}
        \section*{Section 1}
        \lipsum[1-2]
    \end{multicols}
\end{document}

相关内容