![微类型扩展导致 pdfauthor 出错](https://linux22.com/image/330822/%E5%BE%AE%E7%B1%BB%E5%9E%8B%E6%89%A9%E5%B1%95%E5%AF%BC%E8%87%B4%20pdfauthor%20%E5%87%BA%E9%94%99.png)
以下文档给出了错误
! Argument of \MT@res@a has an extra }.
错误的根源是重音命令\"L
(这没有多大意义,我只在示例中使用它,因为它\accent
即使在 T1 编码中也总是使用)。
问题的第二个根源是 hyperref 加载于 \AtBeginDocument 中,位于 microtype 代码之后。稍后加载 microtype(或更早加载 hyperref),可避免错误。
但是我想知道是否有比微调加载顺序(这对于 hyperref 来说很痛苦)更好的解决方案来保护 pdfauthor 的参数。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{microtype}
\AtBeginDocument{%
\RequirePackage[%
pdfauthor={Max \"Labc}
]{hyperref}
}
\begin{document}
ablub
\end{document}
答案1
使用\hypersetup
设置作者而不是在加载时直接提供作者似乎可以正常工作,这是建议做法无论如何,当使用特殊字符时:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{microtype}
\AtBeginDocument{%
\usepackage{hyperref}
\hypersetup{pdfauthor={Max \"Labc}}
}
\begin{document}
ablub
\end{document}