%% Tareas Estilosas %% Felipe Portales-Oliva (f.portales.oliva@gmail.com) %% %% Clase para crear respuestas a tareas de manera sencilla \NeedsTeXFormat{LaTeX2e} % we need to have LaTeX2e for this to compile \ProvidesClass{fphw}[2019/03/19 LaTeX class to deliver your homework] % We will use the article class as a template, with a fontsize of 11pt \LoadClassWithOptions{article}[] % UTF-8 is best coding \RequirePackage[utf8]{inputenc} % We won't need those ugly margins \RequirePackage{geometry} % we will modify sections, subsections and sub subsections \RequirePackage{titlesec} % Header and footers, we will use the titles also \RequirePackage{fancyhdr,titling} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % We define the macro for the name of the professor \newcommand{\professor}[1]{ \renewcommand{\professor}{#1} } % We define the macro for the name of the class \newcommand{\class}[1]{ \renewcommand{\class}{#1} } % We define the macro for the name of the institution \newcommand{\institute}[1]{ \renewcommand{\institute}{#1} } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Redefine the title for the class \renewcommand{\maketitle}{% \thispagestyle{plain} \begin{center} {\scshape \institute} \\[10pt] \hrule \vspace{10pt} {\LARGE \bfseries \@title} \\[5pt] Student name: {\itshape \@author} \vspace{8pt} \hrule \vspace{10pt} Course: {\itshape\class} -- Professor: {\itshape\professor} \\ Due date: {\itshape\@date} \vspace{20pt} \end{center} } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Modification of section \titleformat{\section}[block]{\normalsize\bfseries\filcenter}{\thesection.}{.3cm}{} % modification of subsection and sub sub section \titleformat{\subsection}[runin]{\bfseries}{ \thesubsection.} {1mm}{}[.\quad] \titleformat{\subsubsection}[runin]{\bfseries\itshape}{ \thesubsubsection.} {1mm}{}[.\quad] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% set margins for the document % Narrow \DeclareOption{narrow}{\geometry{left=1.5cm,right=1.5cm,top=2.5cm,bottom=2.5cm}} % Standard \DeclareOption{standard}{\geometry{left=2.5cm,right=2.5cm,top=2.5cm,bottom=2.5cm}} % two columns are really difficult to grade, this is to avoid them \DeclareOption{twocolumn}{\OptionNotUsed} % the user can put their name on the header and footers along other info \DeclareOption{decorate}{ % clear all data \fancyhead{} \fancyfoot{} \pagestyle{fancy} \renewcommand{\headrulewidth}{0.4pt} % we want rules \renewcommand{\footrulewidth}{0.4pt} \fancyhead[RO] {\footnotesize\thepage} \fancyhead[LO] {\footnotesize\itshape\class{} -- \makeatletter\@title\makeatother } \fancyfoot[RO] {\footnotesize\itshape\theauthor} } % As we loaded the article class we need to pass it options not specifically % defined, such as font size \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} % This is the point when we pass the options \ProcessOptions\relax % we finish the class \endinput