%
% forksand-it-manual.tex
% Main LaTeX document for formatting forksand-it-manual
%
% Fork Sand IT Manual
%
% Copyright (C) 2018, Fork Sand, Inc.
% Copyright (C) 2017, Jeff Moe
%
% Document template:
% Copyright (C) 2018, Fork Sand, Inc.
% Copyright (C) 2011, 2012, 2013, 2014, 2015, 2016, 2017 Aleph Objects, Inc.
% Copyright (C) 2009, 2010 Jeff Moe
%
% This document is licensed under the Creative Commons Attribution 4.0
% International Public License (CC BY-SA 4.0) by Fork Sand, Inc.
%

%%% XXX NOTE
%%% Glossaries and indices are broken:
%%% https://sharelatex.tenderapp.com/help/discussions/questions/19378-glossaries-indices-and-speed
%%% XXX NOTE

% LaTeX Docs:
% http://en.wikibooks.org/wiki/Category:LaTeX

% LaTeX Memoir Class
% Docs: /usr/share/doc/texlive-doc/latex/memoir/memman.pdf
\special{pdf:minorversion 5}
%\pdfminorversion=6          %   Make pdf include minor version tolerant
%\pdfinclusioncopyfonts=1    %   Make pdf include minor version tolerant
\documentclass[twoside,10pt,openright,final,english,table]{memoir}

\usepackage[table]{xcolor}
\usepackage{etoolbox}
\makeatletter
\def\gnewcommand{\g@star@or@long\gnew@command}
\def\grenewcommand{\g@star@or@long\grenew@command}
\def\g@star@or@long#1{% 
  \@ifstar{\let\l@ngrel@x\global#1}{\def\l@ngrel@x{\long\global}#1}}
\def\gnew@command#1{\@testopt{\@gnewcommand#1}0}
\def\@gnewcommand#1[#2]{%
  \kernel@ifnextchar [{\@gxargdef#1[#2]}%
                {\@argdef#1[#2]}}
\let\@gxargdef\@xargdef
\patchcmd{\@gxargdef}{\def}{\gdef}{}{}
\let\grenew@command\renew@command
\patchcmd{\grenew@command}{\new@command}{\gnew@command}{}{}
\makeatother

\usepackage{tikz}
\usetikzlibrary{shadows,shapes,arrows,chains,calc,decorations.pathmorphing,patterns,trees,positioning,automata,fit}
% This breaks things, but would be great to use
%\usepackage{tikz-qtree,tikz-qtree-compat}
\usepackage{rotating}
\usepackage{forest}

\usetikzlibrary{arrows,shapes}
\usetikzlibrary{positioning,calendar,er}
\usetikzlibrary{decorations.markings}
\usetikzlibrary{shapes.geometric}

% Source code highlighting
\usepackage{mdframed} % /usr/share/doc/texlive-doc/latex/mdframed/mdframed.pdf
\usepackage{minted}   % /usr/share/doc/texlive-doc/latex/minted/minted.pdf
\setminted{autogobble, breaklines, breakanywhere, breakautoindent, funcnamehighlighting,style=manni,fontsize=\scriptsize}
% fontsize
\setmintedinline{breaklines, breakanywhere}
\surroundwithmdframed{minted}
\mdfsetup{roundcorner=10pt,
linewidth=3pt,
linecolor=ao-light-blue,
backgroundcolor=white,
leftmargin=1cm,rightmargin=1cm
}

\usepackage{longtable}
\usepackage{tabu}
\usepackage{smartdiagram}
\usesmartdiagramlibrary{additions}
\usepackage{comment}  % /usr/share/doc/texlive-doc/latex/comment/comment.pdf
\usepackage{pdfpages} % Be able to include pdf
\usepackage{pict2e} 
\usepackage{graphicx} % /usr/share/doc/texlive-doc/latex/graphics/graphicx.pdf
%\usepackage{epstopdf} % /usr/share/doc/texlive-doc/latex/oberdiek/epstopdf.pdf
% http://www.tug.org/applications/hyperref/manual.html
% /usr/share/doc/texlive-doc/latex/hyperref/hyperref.pdf
\usepackage[colorlinks=true,linkcolor=ao-dark-orange,urlcolor=ao-dark-orange]{hyperref}
%\usepackage{url} % /usr/share/doc/texlive-doc/latex/url/url.pdf % Use hyperref.
\graphicspath{{./resources/}{./resources/images/}{./resources/drawings/}}

\makeindex
\makeglossary

\usepackage{color} % Docs: /usr/share/doc/texlive-latex-base-doc/latex/graphics/grfguide.pdf
\usepackage{colortbl}
%\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}

%%% PREAMBLE FONTS %%%
% For XeTeX
% http://www.ctan.org/pkg/fontspec
% http://mirrors.ctan.org/macros/latex/contrib/fontspec/fontspec.pdf
\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX} % To support LaTeX quoting style
\setmainfont{lmroman12}[
    Extension=.otf ,
    UprightFont = *-regular ,
    SmallCapsFont = *-regular ,
    BoldFont = *-bold ,
    BoldItalicFont = *-bold ,
    BoldSlantedFont = *-italic ,
    ItalicFont  = *-italic ,
    SlantedFont = *-italic
    %,
    %SmallCapsFeatures = {Letters=SmallCaps}
    ,
    SlantedFeatures = {FakeSlant,Colour=FF0000}
]


\usepackage[normalem]{ulem} % underline

\usepackage{floatpag} % Full page figures without page numbers.

%%% END PREAMBLE FONTS %%%

%%% PAGE, STOCK, AND MARGIN SIZE %%%
% "Crown Quarto/Crown 4vo" at Lulu and Lightning Source 
% 7.44 x  9.68"   18.90 x 24.58cm
%\setstocksize{24.58cm}{18.90cm} % { height }{ width }
% US Letter
% 8.50 x 11.00"   21.59 x 27.94cm
%\setstocksize{27.94cm}{21.59cm} % { height }{ width }
% A4
% 8.27 x 11.70"   21.00 x 29.70cm
%\setstocksize{29.70cm}{21.00cm} % { height }{ width }
% Lulu Largest Hardcover, 24-800 pages
% 8.25 x 10.75"   20.96 x 27.31cm
\setstocksize{27.31cm}{20.96cm} % { height }{ width }

\settrimmedsize{\stockheight}{\stockwidth}{*}

%\settypeblocksize{ height }{ width }{ ratio }
% "Crown Quarto/Crown 4vo" at Lulu and Lightning Source 
%\settypeblocksize{19.0cm}{*}{*}
% US Letter
%\settypeblocksize{23.0cm}{*}{*}
% A4
%\settypeblocksize{24.0cm}{*}{*}
% Lulu Largest Hardcover, 24-800 pages
\settypeblocksize{22.0cm}{*}{*}

%\setlrmarginsandblock{ spine }{ edge }{ ratio }
% make the spine have more space than outer edge
% "Crown Quarto/Crown 4vo" at Lulu and Lightning Source 
%\setlrmarginsandblock{*}{2.5cm}{1.2}
% US Letter
%\setlrmarginsandblock{*}{2.0cm}{1.4}
% A4
%\setlrmarginsandblock{*}{2.0cm}{1.4}
% Lulu Largest Hardcover, 24-800 pages
\setlrmarginsandblock{*}{2.0cm}{1.4}

% \setulmargins{ upper }{ lower }{ ratio }
\setulmargins{2.0cm}{*}{*}

% \setheadfoot{ headheight }{ footskip }
\setheadfoot{12pt}{2cm}

\checkandfixthelayout[fixed]
%%% END PAGE, STOCK, AND MARGIN SIZE %%%

\setcounter{secnumdepth}{3}
\setcounter{tocdepth}{3}
\setsecnumdepth{subsection}

\usepackage[english]{babel}
\usepackage{datetime} % Docs: /usr/share/doc/texlive-doc/latex/datetime/datetime.pdf
\usepackage{ucs}

%%% PDFLATEX %%%
\usepackage{etex}

%%% Not all features are used in XeTeX
\usepackage[protrusion,babel,final]{microtype}
%%% Conflicts with package fontspec
%\usepackage[utf8x]{inputenc}

% Docs: /usr/share/doc/texlive-humanities-doc/latex/ledmac/ledmac.pdf
%\usepackage{eledmac}

%\usepackage{jebba}

%%% forksand-it-manual PAGE STYLE %%%
\makepagestyle{aocstyle}
\pagestyle{aocstyle}
\makeevenhead{aocstyle}{}{\hspace{2em}\itshape\small\leftmark}{}
\makeoddhead{aocstyle}{}{\scshape\small\rightmark}{}
\makeevenfoot{aocstyle}{}{\hspace{2em}\thepage}{}
\makeoddfoot{aocstyle}{}{\thepage}{}
%%% END forksand-it-manual PAGE STYLE %%%

%%% forksand-it-manual SKI CHAPTER STYLE %%%
\makechapterstyle{aocski}{%
  \renewcommand*{\printchaptername}{}	% Clear out the chapter name (e.g. capítulo)
  \renewcommand*{\printchapternum}{}	% Clear out the chapter number
  \renewcommand*{\chaptitlefont}{\fontspec{lmroman12-regular.otf}\fontsize{20pt}{3em}\selectfont}	% Set chapter title font
  \renewcommand*{\printchaptertitle}[1]{%
     \hrule\vskip\onelineskip \centering \chaptitlefont{##1}\par}
  % Set chapter title font
  \renewcommand*{\afterchaptertitle}{\vskip\onelineskip \hrule\vskip
     \afterchapskip}
}
%%% END forksand-it-manual SKI CHAPTER STYLE %%%

%%% FORMATTING... %%%
\midsloppy
\setlength{\emergencystretch}{3em}
\tolerance=5000
\hyphenpenalty=500
\setlength{\topskip}{1.6\topskip}
\checkandfixthelayout
\raggedbottom
\widowpenalty=10000
\clubpenalty=10000
%%% END FORMATTING... %%%

%%% FOOTNOTES %%%
% no horizontal rule before footnotes:
\let\oldfootnoterule\footnoterule
\renewcommand*{\footnoterule}{}
\setlength{\footmarkwidth}{3.5em}
%%% END FOOTNOTES %%%

%%% COLORS %%%
\definecolor{ao-purple}{cmyk}{0.50,0.60,0.00,0.43}  % ???
%\definecolor{ao-purple}{cmyk}{0.85 0.90 0.00 0.05} % ???
\definecolor{ao-dark-blue}{cmyk}{0.83 0.24 0.00 0.12}
\definecolor{ao-light-blue}{cmyk}{0.41 0.15 0.00 0.09}
\definecolor{ao-light-orange}{cmyk}{0.00 0.40 0.88 0.03}
\definecolor{ao-dark-orange}{cmyk}{0.00 0.51 0.83 0.11}
\definecolor{ao-gold}{cmyk}{0.00 0.18 0.75 0.00}
\definecolor{ao-greyblack}{cmyk}{0.00 0.11 0.09 0.86}
\definecolor{ao-white}{cmyk}{0.00 0.00 0.00 0.00}
\definecolor{ao-black}{cmyk}{1.00 1.00 1.00 1.00}
\definecolor{lulzbot-green}{cmyk}{0.11 0.00 0.78 0.15}
\definecolor{secondary-brown}{HTML}{F3E2C3} %     HEX # F3E2C3    R:243 G:226 B:195   C:0 M:7 Y:20 K:5
\definecolor{primary-blue}{HTML}{A1F4FF} %     HEX # A1F4FF    R:161 G:244 B:255  C:37 M:4 Y:0 K:0
\definecolor{primary-brown}{HTML}{B07E3B} %     HEX # B07E3B    R:176 G:126 B:56    C:0 M:28 Y:68 K:31
\definecolor{nonbrand-dark-blue}{HTML}{184B6D} %     HEX # 184B6D    R:19 G:70 B:109    C:0 M:28 Y:68 K:31
%%% END COLORS %%%


%%% DEBUG %%%
%\showoutput
%\typeoutlayout
%\typeoutstandardlayout
%%% END DEBUG %%%

%%% END OF PREAMBLE %%%

\begin{document}
%%% Global pdf include directives 
\includepdfset{pages=-,noautoscale}

%%% BEGIN FRONT MATTER %%%
\frontmatter

% Set page numbers to lowercase roman numerals, and reset the count to 1 (no *)
\pagenumbering{roman}

%%% TITLE PAGE %%%
% We want the title to be on the right hand page.
% If we pad a page, it gives us two with openright
\include{Title}
%%% END TITLE PAGE

%%% COPYRIGHT PAGE %%%
\include{Copyright}
%%% END COPYRIGHT PAGE %%%

% Set page numbering to arabic, but don't reset numbering (*)
\pagenumbering*{arabic}

%%% TABLE OF CONTENTS %%%
{
\fontspec{lmroman12-regular.otf}[
    BoldFont = lmroman12-regular.otf
]
\maxtocdepth{subsection}
\settocdepth{subsection}
%\setsecnumdepth{subsection}
% space between dots
\renewcommand{\cftchapterdotsep}{15}
% dot symbol (default is period)
\renewcommand{\cftdot}{\textperiodcentered}	% centered period
% Set space between each entry in ToC
\setlength{\cftbeforechapterskip}{5pt}
\tableofcontents*}
%%% END TABLE OF CONTENTS %%%

%%% LIST OF FIGURES %%%
\renewcommand*{\lofheadstart}{\vspace{1cm}}
\clearpage
\listoffigures*
%%% END LIST OF FIGURES %%%

%%% LIST OF LISTINGS %%%
%\renewcommand*{\lofheadstart}{\vspace{1cm}}
%\clearpage
%\listoflistings
%%% END LIST OF LISTINGS %%%

%%% CHAPTER STYLE %%%
\chapterstyle{aocski} % defined in preamble
\def\topblockvspace{0.11}
%%% END CHAPTER STYLE %%%

%%% INVISIBLE CHAPTERS %%%
\newcommand{\invisiblechapter}[1]{%
  \par\refstepcounter{chapter}% Increase section counter
  \sectionmark{#1}% Add section mark (header)
  \addcontentsline{toc}{chapter}{\protect\numberline{\thechapter}#1}% Add chapter to ToC
  % Add more content here, if needed.
}
%%% END INVISIBLE CHAPTERS %%%

%%% CHAPTER CONFIG %%%
\newcommand{\chapterheader}{Fork Sand IT Manual}
% See \chapterconf below for examples of how this is used.
% value 1 is file to include
% value 2 is title of chapter
% value 3 is sub title of chapter
\newcommand{\chapterconf}[3]{
    \includepdf[width=210mm%
        ,%
        picturecommand*={%
            \put(200,650){%
                \invisiblechapter{{#2}\qquad\qquad{#3}}%
            }%
            \color[rgb]{0.631,0.957,1}%     HEX # A1F4FF    R:161 G:244 B:255   C:37 M:4 Y:0 K:0
            \linethickness{30mm}
            \put( 100,378){\line(1,0){397.50793}}
            \color[rgb]{0.361,0.922,1}%     HEX # 5CEBFF    R:92 G:235 B:255    C:64 M:8 Y:0 K:0
            \put(   0,378){\line(1,0){100}}
            \put( 497.50793,378){\line(1,0){100}}
            \color[rgb]{0,0.2,0.2}
            \linethickness{0.3mm}
            \put(   0,420){\line(1,0){597.50793}}
            \put(   0,336){\line(1,0){597.50793}}
            \put(120,395){\begin{minipage}{357.50793pt}\centering \Huge{#2}\end{minipage}}
            \put(120,355){\begin{minipage}{357.50793pt}\centering \Huge{#3}\end{minipage}}
            \color[rgb]{0,0,0}
        }%
        ]{LetterheadPDF.pdf}
    \thispagestyle{empty}
    \markboth{#2}{\chapterheader}
{\include{#1}}
}
%%% END CHAPTER CONFIG %%%

%%% FRONTMATTER CHAPTERS %%%

% Format:
% \chapterconf{Name of file to include}{Title of Chapter}
\chapterconf{Introduction}{Introduction}{Fork Sand IT Manual}
%%% END FRONTMATTER CHAPTERS %%%

%%% END FRONTMATTER %%%

%%% BEGIN MAINMATTER %%%
\mainmatter*

%% MAINMATTER CHAPTERS %%%
% Default chapter font

% Format:
% \chapterconf{Name of file to include}{Title of Chapter}{Subtitle}
% Comment out a line to not render that chapter
\chapterconf{Hardware}{Hardware}{Metal and Chips}
\chapterconf{Network}{Network}{Switch}
\chapterconf{Switches}{Network Switches}{Free Switches (none found)}
\chapterconf{Clouds}{Clouds}{Software as a Surveillance State}
\chapterconf{Distros}{Distributions}{Free Software Distributions}
\chapterconf{Software-daemons}{Server Software}{Server Software Daemons}
\chapterconf{Firewalls}{Firewalls}{Firewalls}
\chapterconf{Firewall-opnsense}{OPNSense Firewall}{Use OPNSense}
\chapterconf{Proxmox}{Proxmox}{Virtual Machines}
\chapterconf{Ansible}{Ansible}{Cluster Administration}
\chapterconf{DNS}{Domain Name Service (DNS)}{Who Names You?}
\chapterconf{NTP}{Network Time Protocol}{A Hole in Time}
\chapterconf{Firmware}{Firmware}{Embedded Software}
\chapterconf{History}{History}{Evolution History}
%%% Appendix %%%
%\part{Appendix} % XXX
\appendix
\chapterconf{Source}{Free Software}{Free Software and Configurations}

%% END MAINMATTER CHAPTERS %%%

%%% END MAINMATTER %%%

%%% BEGIN BACKMATTER %%%
\backmatter

%%% INDEX %%%
\clearpage
\printindex
%%% END INDEX %%%

%%% GLOSSARY %%%
\renewcommand{\memgloterm}[1]{\textbf{#1}}
\renewcommand{\memglodesc}[1]{\textit{#1}}
\renewcommand{\memglonum}[1]{}

\clearpage
\printglossary
%%% END GLOSSARY %%%

%%% CONTACT %%%
\chapterconf{Contact}{Contact}{Phone, Email, Web, Location}
%%% END CONTACT %%%


%%% COLOPHON %%%
%%% skip a couple pages
\pagebreak{}
\thispagestyle{empty}
\begingroup 
\vfill\null 
\endgroup
\pagebreak{}
\thispagestyle{empty}
{\include{Colophon}}
%%% END COLOPHON %%%

%%% END BACKMATTER %%%

\end{document}

