![如果 biblatex 的选项位于多行,xkvltxp 会出现 keyval 错误](https://linux22.com/image/290746/%E5%A6%82%E6%9E%9C%20biblatex%20%E7%9A%84%E9%80%89%E9%A1%B9%E4%BD%8D%E4%BA%8E%E5%A4%9A%E8%A1%8C%EF%BC%8Cxkvltxp%20%E4%BC%9A%E5%87%BA%E7%8E%B0%20keyval%20%E9%94%99%E8%AF%AF.png)
keyval
如果同时出现以下情况,则会出现错误:
xkvltxp
已加载biblatex
载入了多行选项。
以下 MWE 显示了这种奇怪的行为:
\documentclass{article}
% \usepackage{xkvltxp}
\usepackage[backend=biber,
style=numeric]{biblatex}
\begin{document}
Test.
\end{document}
效果很好,但是,如果xkvltxp
加载,就会出现错误:
! Package keyval Error: style undefined.
See the keyval package documentation for explanation.
Type H <return> for immediate help.
...
l.10902 \blx@processoptions
只要biblatex
在同一行给出 的选项,这个文件就会顺利编译。
我尝试了一些其他的包而不是biblatex
在多行上使用选项的包,但是我发现只有它会出现这个错误。
答案1
有一个包kvoptions-patch
。它试图比更保守xkvltxp
。它只假设可能有key=value
对来保护value
部分(免受扩展、类别代码更改等)。
以下示例有效
\RequirePackage{kvoptions-patch}
\documentclass[myoption={val1,val2}]{article}
\usepackage[backend=biber,
style=numeric]{biblatex}
\begin{document}
Test.
\end{document}
出现预期的警告:
LaTeX Warning: Unused global option(s):
[myoption={val1,val2}].