![添加 titlesec 包导致 nameref 显示错误标题](https://linux22.com/image/469214/%E6%B7%BB%E5%8A%A0%20titlesec%20%E5%8C%85%E5%AF%BC%E8%87%B4%20nameref%20%E6%98%BE%E7%A4%BA%E9%94%99%E8%AF%AF%E6%A0%87%E9%A2%98.png)
从 Debian 11 升级后(pdfTeX 3.14159265-2.6-1.40.21(TeX Live 2020/Debian)) 升级到 Debian 12 (*pdfTeX 3.141592653-2.6-1.40.24 (TeX Live 2022/Debian)) 后,一些\nameref
调用会显示错误的标题。
当创建一个最小化的测试用例时,我发现如果我禁用标题安全包裹,标签就会正确显示。我这里做错了什么吗?
\pdfobjcompresslevel=1
\documentclass[a4paper,twoside,openany,oldfontcommands,11pt,english]{memoir}
\usepackage{titlesec}
\usepackage{hyperref}
\usepackage[english]{isodate}
\usepackage[export]{adjustbox}
\usepackage{ifthen}
\usepackage{pdfpages}
\begin{document}
\section{How to Use This Manual}
\label{sec:howtouse}
\hyperref[subsec:osupdate]{\ref*{subsec:osupdate} \textbf{\nameref*{subsec:osupdate}}}
explains how to upgrade the software on the product.
\chapter{USER INTERFACE}
\label{ch:gui}
Blah blah blah
\section{Data}
\label{sec:data}
Blah blah blah
\subsection{Data --- OS Update}
\label{subsec:osupdate}
Blah blah blah
\end{document}
使用 Debian 12构建此程序latexmk -pdf try.tex
,我得到:
1.1 用户界面解释如何升级产品上的软件。
而我期望 Debian 11 的输出是:
1.1 数据 — 操作系统更新说明如何升级产品上的软件。
这也是我禁用时所得到的\usepackage{titlesec}
。
在我的实际文档中,我已经对小节进行了编号,但这对名称引用不起作用。\ref
两种情况下均返回正确的数字。