diff options
-rw-r--r-- | Makefile | 36 | ||||
-rw-r--r-- | preamble.mdwn | 36 | ||||
-rw-r--r-- | template.tex | 192 |
3 files changed, 264 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..d7beabd --- /dev/null +++ b/Makefile @@ -0,0 +1,36 @@ +chapters = \ + negotiation.mdwn \ + devsetup.mdwn \ + conflict.mdwn \ + newhardware.mdwn \ + assault.mdwn \ + ambush.mdwn + +shorts = \ + origin.mdwn + +all: noir.pdf noir.epub noir.mobi count + +noir.pdf: preamble.mdwn $(chapters) + pandoc -o noir.pdf \ + --pdf-engine=xelatex \ + --template=template.tex \ + -Vlogo=noir_1000px.png \ + -Vauthorpic=liw-1000px.jpg \ + -Vdocumentclass:book \ + -Vfontsize:12pt \ + -Vmainfont:FreeSerif \ + -Vgeometry:a4paper \ + -Vmainfont:FreeSerif \ + -Vsansfont:FreeSans \ + -Vmonofont:FreeMonoBold \ + preamble.mdwn $(chapters) + +noir.epub: preamble.mdwn $(chapters) + pandoc -o noir.epub --toc preamble.mdwn $(chapters) + +noir.mobi: noir.epub + ebook-convert noir.epub noir.mobi + +count: + wc -w $(chapters) diff --git a/preamble.mdwn b/preamble.mdwn new file mode 100644 index 0000000..a7a78f8 --- /dev/null +++ b/preamble.mdwn @@ -0,0 +1,36 @@ +--- +title: Hacker Noir +author: Lars Wirzenius +date: work in progress +... + + +This work is copyrighted by Lars Wirzenius, and licensed under a <a +rel="license" +href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons +Attribution-Share Alike 4.0 Unported License</a>. + + +**Acknowlegements** + +I have a Patreon project open for this book. It's not about making a +lot of money, but about getting encouragement: if someone's willing to +give me even just a little money, it makes me think they like what I +write, and that encourages me to write more. There is a reward level +where if you give enough, you get your name in the book. This section +is for that. + +The people who enthusiastically give me enough money to have their +names in the book are: + +* Mauri Sahlberg +* Rob Kendrick + +In addition there are several who donate less. + +I can't express how much it means to me that people appreciate my +writing. It's almost as if I was a real writer, which has been a dream +of mine since I was a teenager. + +I hasten to clarify that I appreciate all readers, whether they give +me enough to be named here, or less, or nothing at all. diff --git a/template.tex b/template.tex new file mode 100644 index 0000000..c51c106 --- /dev/null +++ b/template.tex @@ -0,0 +1,192 @@ +\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}}{} +$if(geometry)$ +\usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry} +$endif$ +$if(natbib)$ +\usepackage{natbib} +\bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$} +$endif$ +$if(biblatex)$ +\usepackage{biblatex} +$if(biblio-files)$ +\bibliography{$biblio-files$} +$endif$ +$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} +$endif$ +$if(tables)$ +\usepackage{longtable,booktabs} +$endif$ +$if(graphics)$ +\usepackage{graphicx} +\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$ +\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(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 +$if(numbersections)$ +\setcounter{secnumdepth}{5} +$else$ +\setcounter{secnumdepth}{0} +$endif$ +$if(verbatim-in-note)$ +\VerbatimFootnotes % allows verbatim text in footnotes +$endif$ +$if(lang)$ +\ifxetex + \usepackage{polyglossia} + \setmainlanguage{$mainlang$} +\else + \usepackage[$lang$]{babel} +\fi +$endif$ + +$for(header-includes)$ +$header-includes$ +$endfor$ + +\providecommand{\tightlist}{% + \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} + +\begin{document} + +% A custom title page. + +$if(title)$ +\begin{titlepage} +\center +\includegraphics[width=0.99\textwidth]{$logo$} +\end{titlepage} +$endif$ + +$if(abstract)$ +\begin{abstract} +$abstract$ +\end{abstract} +$endif$ + +$for(include-before)$ +$include-before$ + +$endfor$ +$if(toc)$ +{ +\hypersetup{linkcolor=black} +\setcounter{tocdepth}{$toc-depth$} +\tableofcontents +} +$endif$ +$body$ + +$if(natbib)$ +$if(biblio-files)$ +$if(biblio-title)$ +$if(book-class)$ +\renewcommand\bibname{$biblio-title$} +$else$ +\renewcommand\refname{$biblio-title$} +$endif$ +$endif$ +\bibliography{$biblio-files$} + +$endif$ +$endif$ +$if(biblatex)$ +\printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$ + +$endif$ +$for(include-after)$ +$include-after$ + +$endfor$ + +\newpage +\includegraphics[width=0.9\textwidth]{$authorpic$} +\end{document} |