Skip to main content
Classes/Templates

Classes/Templates #

(Maybe) Useful resources #

For using #

For writing #

Classes I like #

Basic class writing #

Refs:

\ProvidesClass{mydoc}

% %%%% If using a parent class, new options
% %%%% must be placed before \PassOptionsToClass

% default false option
\newif\if@optionone
\DeclareOption{optionone}{\@optiononetrue}

% default true option with false counterpart
\newif\if@optiontwo \@optiontwotrue
\DeclareOption{optionthree}{\@optiontwofalse}

% %%%% Load parent class
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
\ProcessOptions\relax
\LoadClass[12pt, a4paper]{article}

% %%%% Load packages
\RequirePackage[option]{package}

% %%%% Use option to load packages
% https://tex.stackexchange.com/a/1274/206709
\if@optionone
  \RequirePackage{package}
\else
  \RequirePackage{package}
\fi

% %%%% Use option to do other things
\if@optiontwo
  \renewcommand*{...}{...}
\fi

% %%%% Packages that need to be load after others
\RequirePackage[colorlinks,bookmarksnumbered,pdfusetitle]{hyperref}

% load after hyperref
% https://tex.stackexchange.com/a/312661/206709
\RequirePackage[numbered]{bookmark}
\RequirePackage[margin=1in]{geometry}
\RequirePackage[nameinlink]{cleveref}