![xkeyval 示例无法编译](https://linux22.com/image/240690/xkeyval%20%E7%A4%BA%E4%BE%8B%E6%97%A0%E6%B3%95%E7%BC%96%E8%AF%91.png)
我已经阅读了有关 kvoptions 和 xkeyval 的文档和教程,但我无法编译我的 xkeyval 示例。
这是错误:
! LaTeX Error: Missing \begin{document}.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
....
l.10 \define@choicekey*{test}[war
ning]{errorlevel}{info,warning,error}{}
我用这段代码得到:
\documentclass{scrbook}
\usepackage{filecontents}
% Test using xkeyval
\begin{filecontents}{options.sty}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{options}
\RequirePackage{xkeyval}
%
\define@choicekey*{test}[warning]{errorlevel}{info,warning,error}{}
\setkeys{test}{errorlevel=info}
\ProcessOptionsX
\providecommand\printerrorlevel{%
Errorlevel is: \KV@test@errorlevel%
}
\end{filecontents}
\usepackage[errorlevel=error]{options}
\begin{document}
\printerrorlevel
\end{document}
我究竟做错了什么?
(也发布在 de.comp.text.tex 上,但没有答案)
答案1
根据语法
\define@choicekey*[pre]{fam}{key}[bin]{al}[dft]{func}
检查分隔符,第一个参数是可选的,第二个参数不能在括号中。例如:
\define@choicekey*{warning}{errorlevel}{info,warning,error}{}
还可以考虑指定家庭\ProcessOptionsX
,例如
\ProcessOptionsX<warning>