pdfbookmark 不支持特殊字符

pdfbookmark 不支持特殊字符

我正在用英语写一份文档,但其中也有一些部分是用其他语言写的。

我创建了自己的样式来更改book类的行为方式,其中还包括标题chapterchapter*环境。作为其中的一部分,chapter*我在定义中添加了pdfbookmark命令,以便所有未编号的章节都出现在书签中。定义如下:

\renewcommand{\@makeschapterhead}[1]{%
    {%
        \pdfbookmark[0]{#1}{#1}%
        \vspace*{\@spacebeforechapterhead}%
        \parindent 0pt \Large%\bfseries
        \interlinepenalty\@M%
        \vspace*{\@spaceinchapterhead}%
        \rule{0.666\textwidth}{0.5pt}%
        \par%
        \vspace*{\@spaceinchapterhead}%
        \vspace*{\@spaceinchapterhead}%
        {\spacedlowsmallcaps{#1}\hfill}%
        \mbox{}\par%
        \mbox{}\par%
        \mbox{}\par%
        \markright{}%remove header, there were problems with "My publications" header after "Bibliography"
    }%
}

一切都按我预期的方式进行,除了未编号的章节,其名称中包含特殊字符,例如

\chapter*{Sa{ž}etak}

这里的问题在于pdfbookmark命令中的第三个参数,它类似于书签的标签。我尝试从不同角度解决这个问题,但似乎都不起作用。简单的解决方案是从定义pdfbookmark中删除该命令chapter*,然后手动为所有未编号的章节添加它,但我正在尝试寻找更优雅的解决方案。

我还没有尝试过的一个可能的解决方案是

\RemoveAllNonASCII{#1}

作为第三个参数,但我不知道如何设计这样的函数。

知道如何解决这个问题吗?


以下是最小工作示例:

麦格

\documentclass{style}

\begin{document}

\author{Me}
\title{MWE}

\maketitle

% Bookmark works
\chapter*{Unnumbered chapter}

% Bookmark does not work
\chapter*{Unnumbered chapter Ž}

% Bookmark works
\chapter{Numbered chapter}

% Bookmarks works, even though we have Ž in the title
\chapter{Numbered chapter Ž}

\end{document}

样式.cls

\LoadClass[a4paper,11pt,oneside]{book}

\usepackage{hyperref}
\usepackage{bookmark}

\renewcommand{\@makeschapterhead}[1]{%
    {%
        \pdfbookmark[0]{#1}{#1}%
        {#1}
    }%
}

答案1

使用一些合理的内容作为第三个参数。

\documentclass{article}
\usepackage{hyperref}
\newcounter{myschapter}
\begin{document}
 abc
\stepcounter{myschapter}
\pdfbookmark[0]{Sa{ž}etak}{schapter.\number\value{myschapter}}%
\end{document}

相关内容