diff options
author | Karl Berry <karl@freefriends.org> | 2018-01-21 22:32:14 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-01-21 22:32:14 +0000 |
commit | 9af5cfaf04a2780b2a4f07a08511b8732808171e (patch) | |
tree | e46b30eee2cdf0565f5038ae063fca83f6fd0d52 /Master/texmf-dist/tex/latex/fancyhandout | |
parent | 97966488b5256797ac90a85eba46fd4464842c8f (diff) |
fancyhandout (21jan18)
git-svn-id: svn://tug.org/texlive/trunk@46401 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/fancyhandout')
-rw-r--r-- | Master/texmf-dist/tex/latex/fancyhandout/fancyhandout.cls | 311 |
1 files changed, 311 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/fancyhandout/fancyhandout.cls b/Master/texmf-dist/tex/latex/fancyhandout/fancyhandout.cls new file mode 100644 index 00000000000..b3ae40861b1 --- /dev/null +++ b/Master/texmf-dist/tex/latex/fancyhandout/fancyhandout.cls @@ -0,0 +1,311 @@ +%% This is file 'fancyhandout.cls', Version 2018-01-20 +%% Copyright 2017-18 Sebastian Friedl <sfr682k@t-online.de> +%% +%% This work may be distributed and/or modified under the conditions of the LaTeX Project +%% Public License, either version 1.3c of this license or (at your option) any later version. +%% The latest version of this license is available at +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of LaTeX version 2008-05-04 or later. +%% +%% This work has the LPPL maintenance status 'maintained'. +%% Author: Sebastian Friedl +%% Current maintainer of this work is Sebastian Friedl +%% +%% This work consists of the files fancyhandout.cls and fancyhandout-doc.tex +%% +%% --------------------------------------------------------------------------------------------------------------------------------------------- +%% +%% A LaTeX class for producing nice-looking handouts. +%% +%% --------------------------------------------------------------------------------------------------------------------------------------------- +%% +%% Please report bugs and other problems as well as suggestions for improvements to the following email address: sfr682k@t-online.de +%% +%% --------------------------------------------------------------------------------------------------------------------------------------------- + + +\ProvidesClass{fancyhandout}[2018/01/20 fancyhandout: A LaTeX class for producing nice-looking handouts] +\NeedsTeXFormat{LaTeX2e} +\RequirePackage{etoolbox} + + + +% DEFINE OPTIONS --------------------------------------------------------------------------------------------- + +% Option for using letter paper +\newif\if@letter +\@letterfalse +\DeclareOption{letter}{\@lettertrue} + +% Option for one-sided layout +\newif\if@twoside +\@twosidetrue +\DeclareOption{oneside}{\@twosidefalse} + +% Option for 10pt or 12pt font size +\newif\if@tenpt +\newif\if@twelvept +\@tenptfalse +\@twelveptfalse +\DeclareOption{10pt}{\@tenpttrue} +\DeclareOption{12pt}{\@twelvepttrue} + +% Option for using the roman font as text font +\newif\if@sffont +\@sffonttrue +\DeclareOption{rmfont}{\@sffontfalse} + +\ProcessOptions + + + +% LOAD "article" --------------------------------------------------------------------------------------------- + +% Pass font size to article +\if@tenpt \PassOptionsToClass{10pt}{article} +\else\if@twelvept \PassOptionsToClass{12pt}{article} +\else \PassOptionsToClass{11pt}{article} +\fi\fi + +% If not specified otherwise, use twoside layout +\if@twoside \PassOptionsToClass{twoside}{article} +\fi + +% All options specified. Load article. +\LoadClass{article} + +% Set \parindent to zero +\parindent 0pt + + + +% REQUIRE "geometry" ----------------------------------------------------------------------------------------- + +% If not specified otherwise, use twoside layout +\if@twoside \PassOptionsToPackage{twoside}{geometry} +\fi + +% Page size +\if@letter \PassOptionsToPackage{letterpaper}{geometry} +\else \PassOptionsToPackage{a4paper}{geometry} +\fi + +% Default page margins +\PassOptionsToPackage{left=2.25cm, right=2.25cm, top=2.25cm, bottom=2.25cm, includehead, includefoot}{geometry} + +% All options specified. Load geometry. +\RequirePackage{geometry} + + + +% REQUIRE OTHER PACKAGES ------------------------------------------------------------------------------------- + +\AtEndPreamble{\RequirePackage{csquotes}} + +\RequirePackage{enumitem} + \setlist{itemsep=0ex,topsep=.75ex} + +\RequirePackage{fancyhdr} + \pagestyle{fancy} + \fancyhead{} + \fancyfoot{} + \if@twoside% + \fancyhead[ro,le]{% + \def\and{\unskip,~}% + \insertshortauthor% + \ifx\@title\@empty\else \ifx\@author\empty\else :~\fi \fi% + \insertshorttitle} + \fancyfoot[ro,le]{\thepage} + \fancyfoot[re,lo]{\insertshortdate} + \else + \fancyhead[r]{% + \def\and{\unskip,~} + \insertshortauthor% + \ifx\@title\@empty\else \ifx\@author\empty\else :~\fi \fi% + \insertshorttitle} + \fancyfoot[l]{\insertshortdate} + \fancyfoot[r]{\thepage} + \fi + \def\footrulewidth{0.4pt} + \headheight=14pt + +% Required when hyperref is not loaded by the user +% This "fake command" gets redefined when hyperref is loaded +\ifx\phantomsection\@undefined \let\phantomsection\@empty \fi +% Also, write the document information to hyperref when loaded +\AtBeginDocument{% + \ifx\hypersetup\@undefined\else% + \hypersetup{pdftitle=\inserttitle,pdfauthor=\insertauthor,pdfcreator={LaTeX with fancyhandout class}}% + \fi} + + + +% COLOR SETTINGS --------------------------------------------------------------------------------------------- + +\RequirePackage{xcolor} + +% Basic color +\definecolor{fancyhandoutblue}{rgb}{0.2,0.2,0.7} + +% Initial definition of a primary and a secondary color +\colorlet{fancyhandoutmaincolor}{fancyhandoutblue} +\colorlet{fancyhandoutsecondarycolor}{fancyhandoutblue!85} + +% Line colors +\colorlet{fancyhandoutsectlinecolor}{fancyhandoutmaincolor} +\colorlet{fancyhandoutsubsectlinecolor}{fancyhandoutsecondarycolor} + +% Title box colors +\colorlet{fancyhandouttboxlinecolor}{fancyhandoutmaincolor} +\colorlet{fancyhandouttboxfillcolor}{fancyhandoutmaincolor!12.5} + + + +% FONT SETTINGS ---------------------------------------------------------------------------------------------- + +% As long as not specified otherwise, use the sans-serif font by default +\if@sffont \def\familydefault{\sfdefault} +\fi + + + +% TITLE COMMANDS --------------------------------------------------------------------------------------------- + +% Redefine the provided commands and define beamer-like commands inserting their values +\def\title{} +\let\inserttitle\@empty +\let\insertshorttitle\@empty +% +\def\subtitle{} +\let\insertsubtitle\@empty +\let\insertshortsubtitle\@empty +% +\def\author{} +\let\insertauthor\@empty +\let\insertshortauthor\@empty +\let\and\@empty +% +\def\institute{} +\let\insertinstitute\@empty +\let\insertshortinstitute\@empty +% +\def\date{} +\let\insertdate\today +\let\insertshortdate\today + +% Set the according variable when a command is used +\renewcommand{\title}[2][\inserttitle]{% + \def\inserttitle{#2}% + \def\insertshorttitle{#1}} +\renewcommand{\subtitle}[2][\insertsubtitle]{% + \def\insertsubtitle{#2}% + \def\insertshortsubtitle{#1}} +\renewcommand{\author}[2][\insertauthor]{% + \def\insertauthor{#2}% + \def\insertshortauthor{#1}} +\renewcommand{\institute}[2][\insertinstitute]{% + \def\insertinstitute{#2} + \def\insertshortinstitute{#1}} +\renewcommand{\date}[2][\insertdate]{% + \def\insertdate{#2}% + \def\insertshortdate{#1}} + +% Typesets a title box +\def\maketitle{% + \def\and{\qquad}% + \thispagestyle{empty} + \begin{center} + \fcolorbox{fancyhandouttboxlinecolor}{fancyhandouttboxlinecolor}{% + \fcolorbox{fancyhandouttboxlinecolor}{fancyhandouttboxfillcolor}{% + \parbox{.95\textwidth}{\centering\vspace{\medskipamount}% + \ifx\inserttitle\@empty\else {\LARGE\bfseries\inserttitle} \\[\smallskipamount] \fi + \ifx\insertsubtitle\@empty\else {\large\insertsubtitle} \\ \fi + \vspace{\medskipamount}\small + \ifx\insertauthor\@empty\else \insertauthor \ifx\insertinstitute\@empty \\[\medskipamount] \else \\ \fi + \ifx\insertinstitute\@empty\else \insertinstitute \\[\medskipamount] \fi + \insertdate + \vspace{\medskipamount}}}}% + \end{center}\smallskip} + + + +% SECTION COMMANDS ------------------------------------------------------------------------------------------- + +% TOC (Pt. I): Add some space below +\let\origtableofcontents\tableofcontents +\def\tableofcontents{% + \origtableofcontents% + \vskip 1.5\bigskipamount} + +% TOC (Pt. II): No numbering of sections and subsections +\renewcommand{\numberline}[1]{} + +% Own \section command +\def\fancysection#1{% + \vskip 2\bigskipamount% \vskip, not \vspace; starts a new paragraph + \noindent% + \begin{minipage}{\textwidth}% + {\Large\bfseries% + #1}\vskip -1ex% + {\color{fancyhandoutsectlinecolor}\rule{\textwidth}{3pt}} + \end{minipage} + \vskip \bigskipamount% +} + +% Own \subsection command +\def\fancysubsection#1{% + \vskip 1.25\bigskipamount% + \noindent% + \begin{minipage}{\textwidth}% + {\large\bfseries% + #1}\vskip -1.25ex% + {\color{fancyhandoutsubsectlinecolor}\rule{\textwidth}{1.5pt}} + \end{minipage} + \vskip \medskipamount% +} + +% Own \subsubsection command +\def\fancysubsubsection#1{% + \vskip .75\bigskipamount% \vskip, not \vspace; starts a new paragraph + \noindent% + \begin{minipage}{\textwidth}% + {\bfseries% + #1}% + \end{minipage} + \vskip .75\smallskipamount% +} + +% Redefine article's sectioning commands +\def\section{\@ifstar\@@section\@section} +\def\@section#1{% + \phantomsection% + \refstepcounter{section}% + \def\@currentlabel{\enquote{#1}}% Manipulate LaTeX's internal mechanisms to print the section name when using \ref >:) + \addcontentsline{toc}{section}{#1}% + \@@section{#1}} +\def\@@section#1{\fancysection{#1}} + +\def\subsection{\@ifstar\@@subsection\@subsection} +\def\@subsection#1{% + \phantomsection% + \refstepcounter{subsection}% + \def\@currentlabel{\enquote{#1}}% + \addcontentsline{toc}{subsection}{#1}% + \@@subsection{#1}} +\def\@@subsection#1{\fancysubsection{#1}} + +\def\subsubsection{\@ifstar\@@subsubsection\@subsubsection} +\def\@subsubsection#1{% + \phantomsection% + \refstepcounter{subsubsection}% + \def\@currentlabel{\enquote{#1}}% + \addcontentsline{toc}{subsubsection}{#1}% + \@@subsubsection{#1}} +\def\@@subsubsection#1{\fancysubsubsection{#1}} + + + +% OTHER TODOS ------------------------------------------------------------------------------------------------ + + +% TODO: Beamer styled boxes!!
\ No newline at end of file |