重新安装 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:
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