Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I am using a custom LaTeX document class for my thesis which is derived from the report class. I'd like to set the default size of the font to 12pt, and still have the option to change it (to 10pt) via the \documentclass command. How can I do it?

share|improve this question
4  
    
The link above does not mention default options. –  user1145885 Jan 12 '12 at 17:10
add comment

migrated from stackoverflow.com Jan 12 '12 at 16:09

This question came from our site for professional and enthusiast programmers.

2 Answers

up vote 4 down vote accepted

12pt is the default. The demo class is baz.cls

\RequirePackage{filecontents}
\begin{filecontents}{baz.cls}
\def\@@ptsize{12pt}
\DeclareOption{10pt}{\def\@@ptsize{10pt}}
\DeclareOption{11pt}{\def\@@ptsize{11pt}}
\DeclareOption{12pt}{\def\@@ptsize{12pt}}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}}
\ProcessOptions\relax
\LoadClass[letterpaper,oneside,onecolumn,final,openany,\@@ptsize]{report}
\end{filecontents}

\documentclass
%[10pt]
%[11pt]
{baz} 
\usepackage{lipsum}

\begin{document}
\lipsum  
\end{document}
share|improve this answer
    
Thanks! Works like a charm :) –  user1145885 Jan 13 '12 at 7:04
add comment

If your modified documentclass file does not involve a \LoadClass call to LaTeX's report.cls file, it likely contains the following instruction shortly before the \ProcessOptions statement:

\ExecuteOptions{letterpaper,10pt,oneside,onecolumn,final,openany}

Change 10pt to 12pt in this instruction, save the documentclass file under a new name, and load this newly-modified documentclass file from now on. The default font size will now be 12pt, but this can be overridden by specifying 10pt -- or, for that matter, 11pt -- as an option. Of course, specifying the 12pt option will now simply duplicate the default behavior of this document class.

Addendum: If the modified class file you're working with executes a \LoadClass call to the report.cls LaTeX document class, you may want to try modifying \LoadClass{report} to \LoadClassWithOptions[12pt]{report}.

share|improve this answer
    
that is a command in the original class and one should do all modifications not int the original class! See Stefans comment ... –  Herbert Jan 12 '12 at 16:32
    
@Herbert: Thanks for this. I would definitely never suggest modifying an original class file. However, the OP's question seemed to indicate that he/she is working with a modified (hacked?!) version of the report document class which -- in all likelihood -- does not perform either a \LoadClass or a \LoadClassWithOptions call to report.cls. However, just in case that this assumption is incorrect, I'll modify my answer to make clear that the OP should save his/her further-customized documentclass file name under a new name. –  Mico Jan 12 '12 at 16:36
    
\ExecuteOptions does not seem to work! I have put it in my cls file with 12pt option, but it still takes the default value as 10pt. Of course, changing the option in the latex document works. BTW, the option declarations in my cls file appear after the \LoadClass command -- is that a problem? –  user1145885 Jan 12 '12 at 16:46
    
@Mico: I am not modifying the report.cls file. I am using \LoadClass to load report.cls. –  user1145885 Jan 12 '12 at 16:50
    
OK, I see that the modified class file you have doesn't conform to my initial assumptions. See my modified answer for an alternative method. –  Mico Jan 12 '12 at 16:52
show 11 more comments

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.