50 hyperref宏包的bookmarksnumbered=true选项会导致部分书签显示异常

发布于 2025-02-12 23:39:21

该问题来自这个问题的评论区

@u6746
1.三个反引号才是行间代码块,同时编辑栏有“预览”功能在发布前强烈建议点击
2.对于论坛的贡献而言,上一个问题重点在于页眉和目录的字体等宽,考虑论坛的边际映射功能,作为提问者要尽可能保证让你的问题有更大的概率被后来人更轻松地以关键词搜到,同时一个提问应尽量聚焦一个问题;如果把上一个问题放在评论区,那么很容易就被淹没.
3.MWE可以(也应该)更精简 当看到一份很长的代码和很短的代码的心情是很不一样的

从最新评论的MWE调用hyperref的选项中,通过二分删减代码的选项,很容易找到罪魁祸首是
bookmarksnumbered=true这一选项

因此一个更令人赏心悦目的代码可以是,这样会让人更集中在hyperref文档关于这一选项的说明,而非花较多的精力在查看上一问题。

\documentclass[b5paper,twoside,openany]{ctexbook}
\usepackage{zhlipsum}
\ctexset{
    chapter/name = {,},
    chapter/number = {\makebox[5\ccwd][s]{第\chinese{chapter}回}},
}
\usepackage[%
    bookmarksnumbered=true,
]{hyperref}
\begin{document}
    \tableofcontents
    \chapter{这是一个标题名1}\zhlipsum[1-6]
    \addtocounter{chapter}{9}
    \chapter{这是一个标题名2}\zhlipsum[1-6]
\end{document}

如上的代码会导致pdf的书签出现异常:
image.png

【作为提问者,我发现似乎删去这一选项对pdf无肉眼可见的影响....】

查看更多

关注者
1
被浏览
176
1 个回答
Sagittarius Rover
Sagittarius Rover 2025-02-13
我要成为Typst糕手/(ㄒoㄒ)/~~

@u38442 林间花(xxn)老师指出:

你好像传入了这个 \makebox[5\ccwd][s]{第\chinese{chapter}回} 就变成了 [5][s]第一回....
书签使用 \texorpdfstring{⟨TEX 字符串⟩}{⟨PDF 字符串⟩}
同时严厉地指责了我不看hyperref文档的恶劣行为:
image.png

尝试传入chapter/number={\texorpdfstring{...}{...}}即可:

\documentclass[b5paper,twoside,openany]{ctexbook}
\usepackage{zhlipsum}
\ctexset{
    chapter/name = {,},
    chapter/number = {\texorpdfstring{\makebox[5\ccwd][s]{第\chinese{chapter}回}}{第\chinese{chapter}回}},
}
\usepackage[%
    bookmarksnumbered=true,
]{hyperref}
\begin{document}
    \tableofcontents
    \chapter{这是一个标题名1}\zhlipsum[1-6]
    \addtocounter{chapter}{9}
    \chapter{这是一个标题名2}\zhlipsum[1-6]
\end{document}

image.png


测试上一问题评论源代码:

image.png

总是尝试先 最小化代码----定位问题----优先看文档/寻找论坛旧文----解决问题...

非常感谢林间花老师~

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览