diff options
Diffstat (limited to 'macros/latex/contrib/sidenotes/caesar_book.cls')
-rw-r--r-- | macros/latex/contrib/sidenotes/caesar_book.cls | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/macros/latex/contrib/sidenotes/caesar_book.cls b/macros/latex/contrib/sidenotes/caesar_book.cls new file mode 100644 index 0000000000..b04a244d91 --- /dev/null +++ b/macros/latex/contrib/sidenotes/caesar_book.cls @@ -0,0 +1,177 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{caesar_book.cls}[2016/04/21 v1.00 Caesar book] +% Load the amsmath and the mhchem package before loading microtype +\RequirePackage{amsmath}% better math handling +\RequirePackage[version=3]{mhchem}% chemical formulas +\LoadClassWithOptions{book}% this is derived from the book class +\RequirePackage{sidenotes}% put annotations, tables and figures in the margin +\captionsetup{font=footnotesize, skip=4pt} +\RequirePackage[maxfloats=45]{morefloats}% a lot of marginals need more float 'memory' +\RequirePackage{marginfix}% automatically adjust the side-floats nicely +\newcommand{\caesar@letterspace}[1]{#1}% allow LuaLaTeX, LaTeX letterspacing +\RequirePackage{microtype}% microtypography +\@ifpackagelater{microtype}{2011/08/18}% xxx allow LaTeX and earlier microtype +{\renewcommand{\caesar@letterspace}[1]{\textls{#1}}}% +{\AtEndDocument{\ClassWarningNoLine{caesar_book}{Need newest microtype for letterspacing.}}} +% +% Set page layout geometry -- default is science-book format +% this means a (portrait) paper size of 170mm x 240mm +% +\RequirePackage{geometry} +\geometry{paperwidth=170mm, paperheight=240mm, left=42pt, top=40pt, textwidth=280pt, marginparsep=20pt, marginparwidth=100pt, textheight=560pt, footskip=40pt} +% +% fontsize is 10pt with a leading (line spacing) of 13pt for book +% +\renewcommand{\normalsize}{\fontsize{10pt}{13pt}\selectfont}% +\renewcommand{\footnotesize}{\fontsize{8pt}{10pt}\selectfont}% +% fullwidth environment, text across textwidth+marginparsep+marginparwidth +\newlength{\overhang} +\setlength{\overhang}{\marginparwidth} +\addtolength{\overhang}{\marginparsep} +% +\newenvironment{fullwidth} + {\ifthenelse{\boolean{@twoside}}% + {\begin{adjustwidth*}{}{-\overhang}}% + {\begin{adjustwidth}{}{-\overhang}}% + }% + {\ifthenelse{\boolean{@twoside}}% + {\end{adjustwidth*}}% + {\end{adjustwidth}}% + } +% set up the fonts +\RequirePackage{ifluatex} +\ifluatex% in LuaLateX we use fontspec + \RequirePackage{fontspec}% + \RequirePackage[vargreek-shape=TeX]{unicode-math}% + \setmathfont{Asana-Math.otf}% asana math works well with palatino + \setmainfont[Ligatures=TeX, Numbers=OldStyle]{Tex Gyre Pagella}% free Palatino clone + \setmonofont{Tex Gyre Cursor}% works okay with palatino + \setsansfont{Tex Gyre Heros}% work okay with palatino + \mhchemoptions{textfontcommand=\addfontfeature{Numbers=Lining}} % use lining numbers for chemical formulas +\else% in LaTeX we load fonts differently + \IfFileExists{mathpazo.sty}{\RequirePackage[osf,sc]{mathpazo}}{}% palatino clone for math + \IfFileExists{helvet.sty}{\RequirePackage[scaled=0.90]{helvet}}{}% helvetica is sans serif font + \IfFileExists{beramono.sty}{\RequirePackage[scaled=0.85]{beramono}}{}% beramono is tt font + \RequirePackage[T1]{fontenc}% finally load fontenc +\fi +% nice headings and TOC +\RequirePackage{titlesec,titletoc}% load the helper package +\setcounter{secnumdepth}{-1}% no numbering at all +\titleformat{\chapter}[display]{\relax\itshape\huge}{}{0pt}{\huge\rmfamily\itshape}[]% chapter format +\titleformat{\section}[hang]{\normalfont\Large\itshape}{}{1em}{}[]% section format +\titleformat{\subsection}[hang]{\normalfont\large\itshape}{}{1em}{}[]% subsection format +\titleformat{\paragraph}[runin]{\normalfont\itshape}{}{1em}{}[]% paragraph format +\renewcommand*\descriptionlabel[1]{\hspace\labelsep\normalfont\em #1}% italic description instead of bold) +\setcounter{tocdepth}{0}% The Table of Contents, only chapters +\titlecontents{chapter}% + [0em] % distance from left margin + {\vspace{1.5\baselineskip}\begin{fullwidth}\LARGE\rmfamily\itshape} % above (global formatting of entry) + {\hspace*{0em}\contentslabel{2em}} % before w/label (label = ``2'') + {\hspace*{0em}} % before w/o label + {\rmfamily\upshape\qquad\thecontentspage} % filler + page (leaders and page num) + [\end{fullwidth}] % after +%set up header, footer and page numbering +\RequirePackage{fancyhdr}% helper package +\renewcommand{\headrulewidth}{0pt}% The running heads and feet do not have rules +\renewcommand{\footrulewidth}{0pt} +\fancyhf{}% set up the page numbering +{\fancyfoot[LE,RO]{\thepage}} +\fancypagestyle{plain}{% + \fancyhf{} +} +\renewcommand{\frontmatter}{\pagestyle{empty}}% the frontmatter is empty +\renewcommand{\mainmatter}{\cleardoublepage\pagestyle{fancy}}% mainmatter with page numbering +\RequirePackage{ragged2e} % \RaggedRight works better than \raggedright +\newcommand{\marginparstyle}{\footnotesize\RaggedRight} % initialize style with start value +\long\def\@ympar#1{% redefine margin par to avoid too many macros in the document + \@savemarbox\@marbox{\marginparstyle#1}% marginparstyle is a prefix to the marginpar text now + \global\setbox\@currbox\copy\@marbox % the rest of the definition is taken from original LaTeX + \@xympar} +\renewcommand*{\marginfont}{\marginparstyle} +% setup itemize and enumerate +\RequirePackage{enumitem} +\setlist[itemize]{leftmargin=*} +%\renewcommand{\labelitemi}{} +% compatibility with T-L +% +% titlepage +\newcommand{\publisher}[1]{\gdef\caesar@publisher{#1}} +\gdef\caesar@thesis{} +\newcommand{\thesis}[1]{\gdef\caesar@thesis{#1}} +\RequirePackage{textcase} % provides \MakeTextUppercase and \MakeTextLowercase +\RequirePackage{color} % the title is too black, define gray +\definecolor{darkgray}{rgb}{0.25,0.25,0.25} +\newcommand{\maketitlepage}{% the title page is generated here + % first count the number of lines in the title + \begin{fullwidth} + \raggedright% + \setbox0\vbox{\noindent\fontsize{30}{38}\selectfont\caesar@letterspace{\MakeTextUppercase{\@title}}\par + \count@\z@ + \loop + \unskip\unpenalty\unskip\unpenalty\unskip + \setbox0\lastbox + \ifvoid0 + \xdef\caesar@numlines{\the\count@}% + \else + \advance\count@\@ne + \repeat} + % now adjust the vertical spaces accordingly + \edef\caesar@titlespace{\the\dimexpr 210pt - 15pt * \caesar@numlines \relax}% calculate the necessary space + \cleardoublepage% + \begingroup% + {% + \sffamily% + %\begin{fullwidth}% + \vspace*{0em}% one line extra space + \noindent\LARGE\caesar@letterspace{\MakeTextUppercase{\@author}}\par + \vfill% + \noindent\fontsize{30}{38}\selectfont\textcolor{darkgray}{\caesar@letterspace{\MakeTextUppercase{\@title}}}\par + \vfill% + \vspace{\caesar@titlespace}% + \noindent\Large\caesar@letterspace{\MakeTextUppercase{\caesar@publisher}}\par + %\end{fullwidth}% + }% + \thispagestyle{empty}% + \endgroup + \cleardoublepage% + \begin{center}% + \vspace*{0em}% one line extra space + \textit{\@title}% + \end{center}% + \end{fullwidth}% + \cleardoublepage% + \chapter*{\@title} + \vspace{-3em}% + \section*{\caesar@thesis\@author} + % +} +\newcommand\newthought[1]{% + \addvspace{1.0\baselineskip plus 0.5ex minus 0.2ex}% + \noindent\textsc{#1}% +}% +\ExplSyntaxOn +\NewDocumentCommand \sidecite { o o m } +{ + \IfNoValueOrEmptyTF{#1} + { + \IfNoValueOrEmptyTF{#2} + { + \sidenote{\fullcite{#3}} + } + { + \sidenote{\fullcite[#2]{#3}} + } + } + { + \IfNoValueOrEmptyTF{#2} + { + \sidenote{\fullcite[#1]{#3}} + } + { + \sidenote{\fullcite[#1][#2]{#3}} + } + } +} +\ExplSyntaxOff + + |