tufte-book、adforn 和 pdfx 之间的冲突

tufte-book、adforn 和 pdfx 之间的冲突

当我尝试将 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为什么加载时会出现此问题?这adfornhttps://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}

相关内容