定义枚举环境,第一项之前不换行

定义枚举环境,第一项之前不换行

我有一份正式的法律文件,其中包含行号和许多章节。我定义了一个自定义枚举环境,允许使用\S以下方法列出段落。

\newlist{myenum}{enumerate}{1}
\setlist[myenum]{nosep,label={\textbf{\S\arabic*}}}

使用包定义的各个部分titlesec如下。

\titleformat{\section}[runin]{\normalfont\scshape}{Section \thesection. }{0em}{}[\newline]

命令之后\section,我通常会有一些介绍性文字,然后是myenum开始于新行的环境。但是,在某些情况下,没有介绍性文字。但不幸的是,自定义枚举的起始位置比应有的位置低了一行,因为它在枚举前插入了一个额外的换行符。

如何定义一个自定义枚举环境,使其不在第一个项目之前插入换行符?

请参阅下面的 MWE。这个问题也可以表述为:如何定义一个自定义枚举环境,它具有仅有的第一个项目是否内联,其他行为是否正常?请注意,行号需要正确计算,即仅引入负间距不是解决方案。

进一步注意,只需定义第二个标题类\othersection\newline从标题格式中删除该选项即可解决间距问题。但是,我需要章节编号和交叉引用机制连续工作,并且该titlesec包要求每个标题类都有自己的计数器。也许有通过这种方法的替代解决方案,但我找不到它。

MWE 截图

\documentclass{article}

\usepackage{titlesec}
\titleformat{\section}[runin]{\normalfont\scshape}{Section \thesection. }{0em}{}[\newline]

\usepackage{enumitem}
\newlist{myenum}{enumerate}{1}
\setlist[myenum]{nosep,label={\textbf{\S\arabic*}}}

\usepackage{lineno}
\leftlinenumbers
\linenumbers

\begin{document}

\section{First Section}
First section introductory text.
\begin{myenum}
    \item First item
    \item Second item   
\end{myenum}

\section{Second Section Without Intro Text}
\begin{myenum}
    \item First item after extra line (unwanted!)
\end{myenum}

\end{document}

答案1

问题在于使用runinwith\newline之后。删除它们并改为对间距进行操作。

\documentclass{article}

\usepackage{titlesec}
\usepackage{enumitem}
\usepackage{lineno}

%% titlesec
\titleformat{\section}
  {\normalfont\scshape}
  {Section \thesection. }
  {0em}
  {}
\titlespacing*{\section}% * means no indent after the title
  {0pt}% left
  {*4}% above
  {0pt}% below

\newlist{myenum}{enumerate}{1}
\setlist[myenum]{nosep,label={\textbf{\S\arabic*}}}

\leftlinenumbers
\linenumbers

\begin{document}

\section{First Section}
First section introductory text.
\begin{myenum}
    \item First item
    \item Second item   
\end{myenum}

\section{Second Section Without Intro Text}
\begin{myenum}
    \item First item after extra line (unwanted!)
\end{myenum}

\end{document}

在此处输入图片描述

相关内容