![如何将 \MakeOuterQuote{"} 与 l3doc 包结合使用?](https://linux22.com/image/452574/%E5%A6%82%E4%BD%95%E5%B0%86%20%5CMakeOuterQuote%7B%22%7D%20%E4%B8%8E%20l3doc%20%E5%8C%85%E7%BB%93%E5%90%88%E4%BD%BF%E7%94%A8%EF%BC%9F.png)
答案1
答案2
里面l3doc.cls
有两行硬编码
\AtBeginDocument
{
\MakeShortVerb \"
\MakeShortVerb \|
}
这样,2 个字符"
和|
将被转换为短动词字符。(注:的文档\MakeShortVerb
可以在中找到texdoc doc
。使用的fancyvrb
包l3doc
具有类似的命令,\DefineShortVerb
)
"
任何在序言中重新定义的尝试都将被覆盖,并且csquotes
不支持在文档本身中定义它们。
我可以找到一种方法来覆盖该行为,但它相当丑陋:
\RemoveFromHook{begindocument}[l3doc]
\MakeOuterQuote{"}
附注:\RemoveFromHook
在较新的 LaTeX 版本中可用。在较旧的版本中,您可能需要手动操作\@begindocumenthook
...?
至少在当前版本中,它不会产生任何意外的后果,可以通过执行以下命令来显示
\ShowHook{begindocument}
这表明上面的 2 个命令是唯一被 删除的命令\RemoveFromHook
。
(这意味着在未来的某些版本中,l3doc 可能会执行其他操作,\AtBeginDocument
并且上述代码将会中断。请小心使用。)
(尽管您可能希望\MakeShortVerb \|
事后手动执行此操作。)