我正在写一份具有非常具体规则的文档:
- 部分:14 pt,粗体,大写
- 小节:12 pt,粗体,大写
- 小节:12 pt,粗体
- 段落:12 pt
- 文档间距:1.5
- 段落之间的间距:一行
- 标题后的空格:一行
- 编号:最高至 4 级(段落)
- 编号:空格-空格(1 - 文本)
以下是一个例子:
到目前为止,我已经用sectsty
包更改了标题字体和大小,用更改了文档间距linespread{1.3}
,将编号增加到 4 级。
我还需要
- 在编号中添加连字符
- 设置段落之间以及标题与段落之间的间距
- 在第 4 级(段落)后添加换行符
我怎样才能使用最少的包来做到这一点
\documentclass[12pt,a4paper]{article}
\usepackage{blindtext}
\usepackage[brazil]{babel}
\usepackage{mathptmx}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}%
\usepackage[
left=3.00cm,
right=2.00cm,
top=3.00cm,
bottom=2.00cm
]{geometry}
\usepackage{graphicx}
%%%%%%%%%%
\usepackage{sectsty}
\partfont{\centering}
\chapterfont{\raggedright\Large\MakeUppercase}
\sectionfont{\raggedright\large\MakeUppercase}
\subsectionfont{\raggedright\normalsize\MakeUppercase}
\subsubsectionfont{\raggedright}
\paragraphfont{\raggedright\normalfont}
%%%%%%%%%%
\linespread{1.3}
\setcounter{secnumdepth}{4}
\setcounter{tocdepth}{4}
\begin{document}
\blinddocument
\end{document}
答案1
你写了,
I still need
to add the hyphen in the numbering
to set the space between paragraphs, and titles and paragraphs
to add a line break after level 4 (paragraph)
我假设您将使用article
文档类。
对于第一项,我建议您在序言中插入以下说明:
\makeatletter
\def\@seccntformat#1{\csname the#1\endcsname\space- }
\makeatother
顺便说一句,如果您需要插入“en-dash”而不是连字符,只需在前面的代码块中-
替换即可。--
对于第二项,我建议您使用parskip
选项skip=1\baselineskip
和来加载包indent
。(指定后一个选项可保留段落的非零默认缩进。
在讨论第三项之前,我想建议你
替换
\usepackage{mathptmx}
为\usepackage{newtxtext,newtxmath}
(该mathptmx
包确实很旧,替换
\linespread{1.3}
为\usepackage[nodisplayskipstretch]{setspace} \setstretch{1.3}
(不要直接操作低级参数\linespread
),并且替换
\sectionfont{\raggedright\large\MakeUppercase}
为\sectionfont{\raggedright\fontsize{14}{16.8}
。(如果主文档字体大小为12pt
,则\large
对应于14.4pt
,不是14pt
。
最后,关于在 -level 标题后设置换行符的目的\paragraph
:我建议您在序言中添加以下代码:
\usepackage{etoolbox}
\makeatletter
\renewcommand\paragraph{\@startsection{paragraph}{4}%
{\z@}{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}{\normalfont\normalsize}}
\makeatother
完整的 MWE (最小工作示例):
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[left=3cm,right=2cm,top=3cm,bottom=2cm]{geometry}
\usepackage[brazil]{babel}
\usepackage{graphicx}
\usepackage{lipsum} % for filler text
%%\usepackage{mathptmx}
\usepackage{newtxtext,newtxmath}
\usepackage{sectsty}
\partfont{\centering}
%%\chapterfont{\raggedright\Large\MakeUppercase} % not needed
%%\sectionfont{\raggedright\large\MakeUppercase}
\sectionfont{\raggedright\fontsize{14}{16.8}\selectfont\MakeUppercase}
\subsectionfont{\raggedright\normalsize\MakeUppercase}
\subsubsectionfont{\raggedright}
\paragraphfont{\raggedright\normalfont}
\setcounter{secnumdepth}{4}
\setcounter{tocdepth}{4}
%%\linespread{1.3} % don't manipulate this macro directly
\usepackage[nodisplayskipstretch]{setspace}
\setstretch{1.3} % BTW: why not "1.5"?
%% And here's the all-new code:
\makeatletter
% Extra space between paragraphs:
\usepackage[indent,skip=1\baselineskip]{parskip}
% Insert "-" (dash) between sectioning numbers and text:
\def\@seccntformat#1{\csname the#1\endcsname\space- }
% Line break after \paragraph-level headers:
\usepackage{etoolbox}
\renewcommand\paragraph{\@startsection{paragraph}{4}%
{\z@}{-3.25ex\@plus -0.75ex \@minus -.1ex}%
{1ex \@plus .2ex}{\normalfont\normalsize}}
\makeatother % end of new-code block
\begin{document}
\section{Heading on level 1 (Section)}
\subsection{Heading on level 2 (Subsection)}
\subsubsection{Heading on level 3 (Subsubsection)}
\paragraph{Heading on level 4 (Paragraph)}
\lipsum[1-2] % filler text
\end{document}