我正在尝试为我的课程加载草稿模式作为选项。过满的行会突出显示,但不幸的是图像可以正常加载(不仅仅是作为框架)。有人能告诉我为什么吗?
类文件:
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{thesis}[template]
\RequirePackage{ifthen}
\RequirePackage{iflang}
\RequirePackage{kvoptions}
\SetupKeyvalOptions{%
family=SBMT,%
prefix=SBMT@%
}
% Declare class options
\DeclareBoolOption[false]{draftmode}
\ProcessKeyvalOptions*
% if draft mode is enabled (true) pass option "draft" to class
\ifthenelse{\boolean{SBMT@draftmode}}{%
\PassOptionsToClass{draft}{scrbook}
}{}
\LoadClass[
fontsize=12pt,
DIV=12,
open=right,
cleardoublepage=empty,
parskip=half-,
headings=normal
]{scrbook}
\usepackage{scrhack}
% Basics
\RequirePackage[utf8]{inputenc}
\RequirePackage{pdfpages}
\RequirePackage{graphicx}
文档:
\RequirePackage{kvoptions-patch}
\documentclass[
draftmode=true ,
]{thesis}
\setlength\headheight{30pt}
\begin{document}
\includegraphics[width=1.1\textwidth]{example-image-a}
\end{document}
答案1
这个问题是,在自定义类中,您使用 加载scrbook
并\LoadClass
传递选项,但在您自己的类中,您graphicx
使用加载\RequirePackage
。这导致包加载超出范围\LoadClass
,因此选项未传递。
您可以在取消注释时检查这一点\RequirePackage{graphicx}
(并且\RequirePackage{pdfpages}
因为该包graphicx
在内部加载)并放入\usepackage{graphicx}
您的文档中,然后该draft
选项就会受到尊重。
一种解决方法是使用 将选项graphicx
明确传递给(以及其他所需的包)\PassOptionsToPackage
。
代码:
% if draft mode is enabled (true) pass option "draft" to class
\ifthenelse{\boolean{SBMT@draftmode}}{%
\PassOptionsToClass{draft}{scrbook}
\PassOptionsToPackage{draft}{graphicx}
}{}