\pgfkeys@temp 的参数有一个额外的}。(tikz 和 hyperref 不兼容?)

\pgfkeys@temp 的参数有一个额外的}。(tikz 和 hyperref 不兼容?)

我正在尝试在章节标题中使用 TikZ,按照以下答案进行操作章节标题中的 TikZ,但由于某种原因,只要涉及到 hyperref 它就无法构建:

\documentclass{article}
\usepackage{hyperref}
\usepackage{tikz}

\DeclareRobustCommand\circled[1]{\fbox{\tikz[baseline=(char.base)]{
        \node[shape=circle,draw,inner sep=2pt] (char) {#1};}}}

\begin{document}

\section{Custom \circled{word} in Section heading}

\end{document}

pdflatex 报告:

! Argument of \pgfkeys@temp has an extra }.
<inserted text>
                \par
l.10 ...{Custom \circled{word} in Section heading}

如果我删除 hyperref 导入,一切正常。这里出了什么问题?

我在用着:

  • pdfTeX 3.14159265-2.6-1.40.20(TeX Live 2019/Debian)
  • texlive 2019.20200218-1

我也尝试重新排序 tikz 和 hyperref 导入,但无济于事。

答案1

按照@muzimuzhiZ的建议,解决方案是使用 \texorpdfstring 从 hypertex 的 PDF 元数据中隐藏 tikz 命令,例如:

\DeclareRobustCommand{\circled}[1]{\texorpdfstring{\fbox{\tikz[baseline=(char.base)]{
        \node[shape=circle,draw,inner sep=2pt] (char) {#1};}}}{#1}}

相关内容