Defina a opção global (e passe-a para todos os pacotes) em um arquivo de classe personalizado

Defina a opção global (e passe-a para todos os pacotes) em um arquivo de classe personalizado

Eu tinha um texarquivo que basicamente começava da seguinte maneira

\documentclass[
  a4paper, hyperref, amsmath, headinclude=true, ngerman, final
]{scrbook}
\usepackage{babel}
\usepackage{ntheorem}
\usepackage{graphix}

Eu converti isso em meu próprio arquivo de classe personalizado

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{kitbook}[2015/04/23 KITbook]

\RequirePackage{kvoptions}
\SetupKeyvalOptions{family=KIT,prefix=KIT@}
...
\ProcessKeyvalOptions*\relax

\LoadClass[
  a4paper, hyperref, amsmath, headinclude=true, ngerman, final
]{scrbook}
\RequirePackage{babel}
\RequirePackage{ntheorem}
\RequirePackage{graphix}

O tex-file é reduzido para

\documentclass{kitbook}

Mas de repente recebo um aviso do LaTeX de que as opções hyperref, amsmath, headinclude=truenão são utilizadas. Babel apresenta o erro de que nenhum idioma foi especificado e a opção finalé de fato usada pela scrbookclasse, mas não pelo graphixpacote.

Parece que há uma diferença na semântica de \documentclasse \LoadClass. As opções fornecidas a \documentclasssão tornadas globais e passadas implicitamente para todos os pacotes. Mas as opções fornecidas \LoadClasssão usadas apenas pela própria classe. Essa é a razão pela qual babelnão consegue ngermane assim por diante.

Existe alguma maneira de tornar as opções globais em um arquivo de classe personalizado?

Especialmente, vejo um grande problema. A opção headinclude=truenão é usada por nenhum pacote carregado explicitamente. (Acredito que seja usado por typeareaser carregado por scrbook.) Claro, eu poderia usar, \PassOptionToPackage{headinclude=true}{typearea}mas o problema com essa abordagem é que preciso descobrir qual pacote usa qual opção para cada opção e pacote e então chamar \PassOptionToPackageexplicitamente. Esta abordagem não é muito promissora.

informação relacionada