summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile36
-rw-r--r--preamble.mdwn36
-rw-r--r--template.tex192
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}