我正在尝试在章节标题中使用 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}}