更新

更新

重新安装 TeXLive 发行版(,Ubuntu 14.04)后install-tl-20160318,软件包的更新版本出现问题titlesec:章节编号丢失。

可能缺少了什么?是否有我尚未看到的修改?

以下是两个版本的 MWE 比较。该prevtitlesec软件包是上一个版本(2011/12/15)的重新安装。

\documentclass{book}
\usepackage[margin=2cm,a4paper]{geometry}
%\usepackage{prevtitlesec}% 2011/12/15 version
\usepackage{titlesec}% 2016/03/15 version
\usepackage{lipsum}

\begin{document}

\chapter{Title of the first chapter}
\lipsum[1]
\section{A test section}
\lipsum[4]
\subsection{A test subsection}
\lipsum[4]
\subsection{A test subsection}
\lipsum[4]

\end{document}

titlesec包 2011/12/15:

titlesec2011

titlesec软件包 2016/03/15:

在此处输入图片描述

答案1

更新

该问题已在 2.10.2 版本中得到解决titlesec(2016/03/21 发布)


原始答案

新版本 2.10.1 中的错误是无法像以前那样正确启动水平模式。

您可以通过添加以下方法修复错误:

\usepackage{etoolbox}

\makeatletter
\patchcmd{\ttlh@hang}{\parindent\z@}{\parindent\z@\leavevmode}{}{}
\patchcmd{\ttlh@hang}{\noindent}{}{}{}
\makeatother

\usepackage{titlesec}

\ttlh@hang以下是(titlesec.sty第 746 行)的“正确”代码

\def\ttlh@hang#1#2#3#4#5#6#7#8{%
  \gdef\ttl@makeline##1{\ttl@calc\hspace{#6}##1\ttl@calc\hspace{#7}}%
  \setlength\leftskip{#6}%
  \setlength\rightskip{#7}%
  \interlinepenalty\@M
  \ttl@changecentercr
  \ttl@beginlongest
  #1{\ifhmode\ttl@hmode@error\fi
     \ttl@glcmds
     \parindent\z@
     \leavevmode % <------ MISSING
     \begingroup
       \ifttl@label
          \sbox\z@{#2\strut\ttl@calc\hspace{#3}}%
          \hangindent\wd\z@
          \box\z@ % \noindent was redundant
       \fi
       #4{#8}%
       \kern\z@\strut\@@par
     \endgroup
     \nobreak\ttl@midlongest#5\@@par}%
  \ttl@endlongest}

在此处输入图片描述

答案2

对于带有 texlive 的 Ubuntu 16.04:

sudo wget http://mirrors.ctan.org/macros/latex/contrib/titlesec/titlesec.sty -O /usr/share/texlive/texmf-dist/tex/latex/titlesec/titlesec.sty

对于其他 Linux 发行版:

先运行locate /titlesec.sty然后调整以前的代码。

单个非管理员用户的本地树:

mkdir -p ~/texmf/tex/latex/titlesec/ ; wget http://mirrors.ctan.org/macros/latex/contrib/titlesec/titlesec.sty -O ~/texmf/tex/latex/titlesec/titlesec.sty

相关内容