梅威瑟:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{csquotes}
\MakeAutoQuote{‘}{’}
\MakeAutoQuote*{“}{”}
\begin{document}
Hylo
\end{document}
该代码与 TL 2017 的 pdfLaTeX 配合使用效果良好,但与 TL 2018 配合使用会导致编译错误。
! Package csquotes Error: Invalid argument.
See the csquotes package documentation for explanation.
Type H <return> for immediate help.
...
l.15 \MakeAutoQuote{‘}{’}
? h
Only single characters with category code 12 or 13 may be
allocated as active quotes. Numbers, punctuation marks, and
characters which are part of LaTeX's syntax or reserved
for a specific purpose are invalid.
我该如何修复csquotes
配置,以便我选择的活动引号字符继续工作?我的所有文档都使用这些字符,因此简单地切换到包现在认为可以接受的字符不是一个实用的选择。
csquotes
修订历史记录未列出版本 5.2c 的任何会影响用户界面或软件包行为的更改 - 此类更改列表中没有此更新的条目。因此,我认为适用于 5.2b 的功能也应该适用于 5.2c。因此,我想知道软件包外部是否有变化,而不是从 b 到 c 的转变本身改变了行为。
答案1
如果你有许多文档加载csquotes
和/或依赖于复杂的自定义类和包,你可能不想依赖Joseph Wright 的序言解决方法。您显然可以从 CTAN 手动下载更新版本。但是,您需要记住在 TeX Live 获得更新包时将其删除。为了避免这种情况,我尝试了以下包装器,它会在控制台/日志上触发有关包名称的警告,但除此之外,它通过了最低限度的测试。
% !TEX encoding = UTF-8 Unicode
\ProvidesPackage{csquotes}[2018/02/11 v5.2c]
% ateb Joseph Wright: https://tex.stackexchange.com/a/426253/
\def\@inpenc@undefined{}
\RequirePackage{csquotes/csquotes}
\endinput
现在它csquotes.sty
在我的 TEXMFHOME 中。希望警告能提醒我稍后删除该文件。如果没有,它仍会引入任何csquotes
取代 5.2d 的更新版本。