By default, my system produces A4 documents. If I want to set the paper size to US Letter, I can pass the letterpaper option to scrartcl:
\documentclass[letterpaper]{scrartcl}
\begin{document}
Hello, World!
\end{document}
But if I create my own class that extends scrartcl, I can't pass the letterpaper option in the class file. E.g., this doesn't work (the resulting document has A4 paper dimensions):
mcve.ltx
\documentclass{mcve}
\begin{document}
Hello, World!
\end{document}
mcve.cls
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{mcve}
\LoadClass[letterpaper]{scrartcl}
This does work if I replace scrartcl with article (although I then also have to load the geometry package in both cases to make the PDF paper size match). Even more interestingly, this also works:
mcve.ltx
\documentclass[letterpaper]{mcve}
\begin{document}
Hello, World!
\end{document}
mcve.cls
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{mcve}
\LoadClassWithOptions{scrartcl}
How can I set the letterpaper option in my class file?
letterpaperis not an option ofscrartclbut oftypearea.\LoadClassdoes not set global option like\documentclassbut a class only option. So you have to pass the option totypeareainstead. – Schweinebacke Sep 08 '17 at 10:51