使用 showdow 选项加载 datetime2 包会与 ctable 包产生冲突,至少对我来说是这样。如果没有 showdow 选项,则不会出现问题。以下 MWE 显示错误消息,并将输出显示为第 12 行和第 13 行中的注释。
% !TeX program = lualatex
% !TEX encoding = UTF-8 Unicode
% !TeX spellcheck = en_US
\documentclass{article}
\usepackage{ctable}
\usepackage[showdow,en-US]{datetime2}
%\usepackage[en-US]{datetime2} causes no problem
\begin{document}
Month: \DTMmonthname{2}.
%Error line 11: Undefined control sequence. \begin{document}
%Output: /TRP1«/ca1/CA 1» Month: February.
\end{document}
答案1
该示例可以简化为:
\documentclass{article}
\usepackage{transparent} %loaded by ctable
\usepackage{pgfcalendar} %loaded by datetime
\begin{document}
blub
\end{document}
transparent 必须将透明度设置添加到 pdf 中的全局字典中(到/ExtGState
),并且必须与想要将设置添加到此资源的 pgf 包进行协调(请参阅https://tex.stackexchange.com/a/253417/2388了解为什么需要这样做)。
为此,transparent 检查 pgf 命令是否\pgfutil@addpdfresource@extgs
存在,如果存在则使用它。遗憾的是,该pgfcalendar
包仅加载部分 pgf 文件,因此\pgfutil@addpdfresource@extgs
存在但错误。真正的解决方案将要求pgfcalendar
至少加载pgfcore
而不是仅加载pgfrcs
。
解决方法
加载pgfcore
或者一些隐式加载它的包:
\documentclass{article}
\usepackage{transparent} %loaded by ctable
\usepackage{pgfcalendar} % loaded by datetime
\usepackage{pgfcore} %
\begin{document}
blub
\end{document}
或者使用 LaTeX PDF 管理:
\DocumentMetadata{} %load PDF management
\documentclass{article}
\usepackage{transparent} %loaded by ctable
\usepackage{pgfcalendar} % loaded by datetime
\begin{document}
blub
\end{document}