当我尝试将 tufte-book 类与 adforn 和 pdfx 包一起使用时,我遇到了符号替换问题。例如:
\documentclass{tufte-book}
\usepackage{adforn}
\usepackage[x-1a]{pdfx}
\begin{document}
\textcopyright
\end{document}
生成:
如果我执行以下任何一项操作(a)改用文章类(b)省略 adforn(c)省略 pdfx,我就会得到正确的符号:
我不知道如何开始诊断这个问题。我可能可以通过创建自己的版权符号来解决这个问题,但我担心我的大型文档中的其他符号也可能是错误的。有什么建议吗?其他人可以复制这个吗?
我在 Windows 上使用带有 MiKtex 的 pdflatex。
编辑:这对我来说编译没有错误。这是我的日志档案,我没有看到任何相关内容。
答案1
类中经常出现这样的问题tufte
:加载hyperref
过早。对于pdfx
,应该由这个包来加载它。
tufte-book
关于使用选项加载xcolor
以及pdfx
使用不同的选项执行相同操作还有另外一个小问题。
\PassOptionsToPackage{cmyk,hyperref}{xcolor}
\documentclass[nohyper]{tufte-book}
\usepackage{adforn}
\usepackage[x-1a]{pdfx}
\begin{document}
\textcopyright
\end{document}
如果要使用hyperref
与相同的设置tufte-book
,请添加
\hypersetup{
pdfborder = {0 0 0},
bookmarksdepth = section,
citecolor = DarkGreen,
linkcolor = DarkBlue,
urlcolor = DarkGreen,
}
前\begin{document}
。
adforn
为什么加载时会出现此问题?这adforn
是https://tex.stackexchange.com/a/394388/4427。它导致U
字体编码在加载时为当前编码pdfx
,因此出于无法解释的原因,L8U 最终被指定为\textcopyright
和的默认编码许多其他命令,这是错误的,因为这种编码仅供内部使用。
我下面添加的修复可能就足够了,但无论如何最好还是使用nohyper
。
\PassOptionsToPackage{cmyk,hyperref}{xcolor}
\documentclass[nohyper]{tufte-book}
\usepackage{adforn}
\fontencoding{T1}\selectfont % work around the adforn bug
\usepackage[x-1a]{pdfx}
\hypersetup{
pdfborder = {0 0 0},
bookmarksdepth = section,
citecolor = DarkGreen,
linkcolor = DarkBlue,
urlcolor = DarkGreen,
}
\begin{document}
\textcopyright
\end{document}