This repository has been archived by the owner on Jun 6, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
261 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,257 @@ | ||
\documentclass[$if(fontsize)$$fontsize$,$endif$$if(lang)$$lang$,$endif$$if(papersize)$$papersize$,$endif$$for(classoption)$$classoption$$sep$,$endfor$]{$documentclass$} | ||
$if(fontfamily)$ | ||
\usepackage{$fontfamily$} | ||
$else$ | ||
\usepackage{lmodern} | ||
$endif$ | ||
$if(linestretch)$ | ||
\usepackage{setspace} | ||
\setstretch{$linestretch$} | ||
$endif$ | ||
\usepackage{amssymb,amsmath} | ||
\usepackage{ifxetex,ifluatex} | ||
\usepackage{fixltx2e} % provides \textsubscript | ||
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex | ||
\usepackage[T1]{fontenc} | ||
\usepackage[utf8]{inputenc} | ||
$if(euro)$ | ||
\usepackage{eurosym} | ||
$endif$ | ||
\else % if luatex or xelatex | ||
\ifxetex | ||
\usepackage{mathspec} | ||
\usepackage{xltxtra,xunicode} | ||
\else | ||
\usepackage{fontspec} | ||
\fi | ||
\defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase} | ||
\newcommand{\euro}{€} | ||
$if(mainfont)$ | ||
\setmainfont{$mainfont$} | ||
$endif$ | ||
$if(sansfont)$ | ||
\setsansfont{$sansfont$} | ||
$endif$ | ||
$if(monofont)$ | ||
\setmonofont[Mapping=tex-ansi]{$monofont$} | ||
$endif$ | ||
$if(mathfont)$ | ||
\setmathfont(Digits,Latin,Greek){$mathfont$} | ||
$endif$ | ||
\fi | ||
% use upquote if available, for straight quotes in verbatim environments | ||
\IfFileExists{upquote.sty}{\usepackage{upquote}}{} | ||
% use microtype if available | ||
\IfFileExists{microtype.sty}{% | ||
\usepackage{microtype} | ||
\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts | ||
}{} | ||
$if(geometry)$ | ||
\usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry} | ||
$endif$ | ||
\ifxetex | ||
\usepackage[setpagesize=false, % page size defined by xetex | ||
unicode=false, % unicode breaks when used with xetex | ||
xetex]{hyperref} | ||
\else | ||
\usepackage[unicode=true]{hyperref} | ||
\fi | ||
\hypersetup{breaklinks=true, | ||
bookmarks=true, | ||
pdfauthor={$author-meta$}, | ||
pdftitle={$title-meta$}, | ||
colorlinks=true, | ||
citecolor=$if(citecolor)$$citecolor$$else$blue$endif$, | ||
urlcolor=$if(urlcolor)$$urlcolor$$else$blue$endif$, | ||
linkcolor=$if(linkcolor)$$linkcolor$$else$magenta$endif$, | ||
pdfborder={0 0 0}} | ||
\urlstyle{same} % don't use monospace font for urls | ||
$if(lang)$ | ||
\ifxetex | ||
\usepackage{polyglossia} | ||
\setmainlanguage{$mainlang$} | ||
\setotherlanguages{$for(otherlang)$$otherlang$$sep$,$endfor$} | ||
\else | ||
\usepackage[shorthands=off,$lang$]{babel} | ||
\fi | ||
$endif$ | ||
$if(natbib)$ | ||
\usepackage{natbib} | ||
\bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$} | ||
$endif$ | ||
$if(biblatex)$ | ||
\usepackage{biblatex} | ||
$for(bibliography)$ | ||
\addbibresource{$bibliography$} | ||
$endfor$ | ||
$endif$ | ||
$if(listings)$ | ||
\usepackage{listings} | ||
$endif$ | ||
$if(lhs)$ | ||
\lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{} | ||
$endif$ | ||
$if(highlighting-macros)$ | ||
$highlighting-macros$ | ||
$endif$ | ||
$if(verbatim-in-note)$ | ||
\usepackage{fancyvrb} | ||
\VerbatimFootnotes | ||
$endif$ | ||
$if(tables)$ | ||
\usepackage{longtable,booktabs} | ||
$endif$ | ||
$if(graphics)$ | ||
\usepackage{graphicx,grffile} | ||
\makeatletter | ||
\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi} | ||
\def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi} | ||
\makeatother | ||
% Scale images if necessary, so that they will not overflow the page | ||
% margins by default, and it is still possible to overwrite the defaults | ||
% using explicit options in \includegraphics[width, height, ...]{} | ||
\setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio} | ||
$endif$ | ||
$if(links-as-notes)$ | ||
% Make links footnotes instead of hotlinks: | ||
\renewcommand{\href}[2]{#2\footnote{\url{#1}}} | ||
$endif$ | ||
$if(strikeout)$ | ||
\usepackage[normalem]{ulem} | ||
% avoid problems with \sout in headers with hyperref: | ||
\pdfstringdefDisableCommands{\renewcommand{\sout}{}} | ||
$endif$ | ||
\setlength{\parindent}{0pt} | ||
\setlength{\parskip}{6pt plus 2pt minus 1pt} | ||
\setlength{\emergencystretch}{3em} % prevent overfull lines | ||
\providecommand{\tightlist}{% | ||
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} | ||
$if(numbersections)$ | ||
\setcounter{secnumdepth}{5} | ||
$else$ | ||
\setcounter{secnumdepth}{0} | ||
$endif$ | ||
$if(verbatim-in-note)$ | ||
\VerbatimFootnotes % allows verbatim text in footnotes | ||
$endif$ | ||
|
||
$if(title)$ | ||
\title{$title$$if(subtitle)$\\\vspace{0.5em}{\large $subtitle$}$endif$} | ||
$endif$ | ||
$if(author)$ | ||
\author{$for(author)$$author$$sep$ \and $endfor$} | ||
$endif$ | ||
\date{$date$} | ||
$for(header-includes)$ | ||
$header-includes$ | ||
$endfor$ | ||
|
||
% Redefines (sub)paragraphs to behave more like sections | ||
\ifx\paragraph\undefined\else | ||
\let\oldparagraph\paragraph | ||
\renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}} | ||
\fi | ||
\ifx\subparagraph\undefined\else | ||
\let\oldsubparagraph\subparagraph | ||
\renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}} | ||
\fi | ||
|
||
\begin{document} | ||
|
||
%% BOOK COVER | ||
\clearpage | ||
%% temporary titles | ||
% command to provide stretchy vertical space in proportion | ||
\newcommand\nbvspace[1][3]{\vspace*{\stretch{#1}}} | ||
% allow some slack to avoid under/overfull boxes | ||
\newcommand\nbstretchyspace{\spaceskip0.5em plus 0.25em minus 0.25em} | ||
% To improve spacing on titlepages | ||
\newcommand{\nbtitlestretch}{\spaceskip0.6em} | ||
\pagestyle{empty} | ||
% Set background color of the cover | ||
\pagecolor[RGB]{252,250,246} | ||
\begin{center} | ||
\bfseries | ||
\nbvspace[2] | ||
\Huge | ||
{\nbtitlestretch\huge | ||
CATEGORY THEORY FOR PROGRAMMERS} | ||
|
||
\nbvspace[1] | ||
\small BY\\ | ||
\Large BARTOSZ MILEWSKI\\[0.5em] | ||
|
||
\nbvspace[2] | ||
\includegraphics[width=\textwidth]{../images/F73874609A.png} | ||
|
||
\nbvspace[3] | ||
\large | ||
2017 | ||
\nbvspace[1] | ||
\end{center} | ||
|
||
\clearpage | ||
\pagecolor{white} | ||
|
||
\pagestyle{empty} | ||
|
||
\nbvspace[1] | ||
\begin{center} | ||
\Huge | ||
{\nbtitlestretch\huge | ||
Category Theory for Programmers} | ||
\end{center} | ||
\nbvspace[3] | ||
|
||
\clearpage | ||
|
||
\nbvspace[1] | ||
\small | ||
Copyright © Bartosz Milewski, 2017\\ | ||
Originally appeared as a series of posts on "Bartosz Milewski's Programming Cafe"\\ | ||
Released as an E-book by Michele Guerini Rocco using Pandoc and \XeTeX | ||
|
||
\clearpage | ||
\pagestyle{plain} | ||
\setcounter{page}{1} | ||
|
||
$for(include-before)$ | ||
$include-before$ | ||
$endfor$ | ||
$if(toc)$ | ||
{ | ||
\hypersetup{linkcolor=$if(toccolor)$$toccolor$$else$black$endif$} | ||
\setcounter{tocdepth}{$toc-depth$} | ||
\tableofcontents | ||
} | ||
$endif$ | ||
$if(lot)$ | ||
\listoftables | ||
$endif$ | ||
$if(lof)$ | ||
\listoffigures | ||
$endif$ | ||
$body$ | ||
|
||
$if(natbib)$ | ||
$if(bibliography)$ | ||
$if(biblio-title)$ | ||
$if(book-class)$ | ||
\renewcommand\bibname{$biblio-title$} | ||
$else$ | ||
\renewcommand\refname{$biblio-title$} | ||
$endif$ | ||
$endif$ | ||
\bibliography{$for(bibliography)$$bibliography$$sep$,$endfor$} | ||
|
||
$endif$ | ||
$endif$ | ||
$if(biblatex)$ | ||
\printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$ | ||
|
||
$endif$ | ||
$for(include-after)$ | ||
$include-after$ | ||
|
||
$endfor$ | ||
\end{document} |