考虑包含以下内容的类文件 mwe.cls
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{mwe}[2022/09/26]
\def\myGreatMacro{twoside=false}
\LoadClass[a4paper,\myGreatMacro]{scrreprt}%% warning about ununsed option
%\LoadClass[a4paper,twoside=false]{scrreprt}%% no warning
\endinput
输入文件 mwe.tex 包含
\documentclass{mwe}
\begin{document}
\end{document}
跑步latex mwe.tex
吐出
LaTeX Warning: Unused global option(s):
[twoside=false].
twoside=false
但是,如果我们直接发出选项\LoadClass
(而不是通过宏),警告就会消失。为什么?实际上,在每种情况下,哪些选项传递给 scrreprt?如何将宏内容作为选项传递给\LoadClass
?
答案1
不需要特殊的类。你可以在普通文档中测试它:
\newcommand\myoption{twoside=true}
\documentclass[a4paper,\myoption]{scrreport}
\usepackage[pass,showframe]{geometry}
\usepackage{lipsum}
\begin{document}
abc \newpage abc
\end{document}
给出一份不在两侧的文档。
KOMA 处理键值,和大多数键值处理程序一样,不喜欢您在命令中隐藏键值。
将整个选项列表放在命令中有什么作用:
\newcommand\myoption{a5paper,twoside=true}
\documentclass[\myoption]{scrreport}
\usepackage[pass,showframe]{geometry}
\usepackage{lipsum}
\begin{document}
abc \newpage abc
\end{document}