From 735aeda93a8fa03eaf2b688cc0a7adcc10b7885a Mon Sep 17 00:00:00 2001 From: Samuel ORTION Date: Sat, 31 Dec 2022 19:36:49 +0100 Subject: [PATCH] Initial commit - Prepare to answer some of the exercises --- tex/.gitignore | 301 ++++++++++++ tex/.latexmkrc | 1 + tex/Makefile | 20 + tex/TheLuaChameleonBook.cls | 737 ++++++++++++++++++++++++++++++ tex/background.pdf | Bin 0 -> 25190 bytes tex/bibliography.bib | 0 tex/clean.sh | 6 + tex/content/chapters/include.tex | 18 + tex/content/chapters/part01/0.tex | 0 tex/content/chapters/part01/1.tex | 0 tex/content/conclusion.tex | 0 tex/content/introduction.tex | 8 + tex/definitions.tex | 0 tex/indexstyle.ist | 4 + tex/main.ist | 31 ++ tex/main.pdf | Bin 0 -> 60635 bytes tex/main.tex | 203 ++++++++ tex/meta.tex | 0 tex/preamble.tex | 0 19 files changed, 1329 insertions(+) create mode 100755 tex/.gitignore create mode 100755 tex/.latexmkrc create mode 100755 tex/Makefile create mode 100755 tex/TheLuaChameleonBook.cls create mode 100755 tex/background.pdf create mode 100755 tex/bibliography.bib create mode 100755 tex/clean.sh create mode 100755 tex/content/chapters/include.tex create mode 100755 tex/content/chapters/part01/0.tex create mode 100755 tex/content/chapters/part01/1.tex create mode 100755 tex/content/conclusion.tex create mode 100755 tex/content/introduction.tex create mode 100644 tex/definitions.tex create mode 100755 tex/indexstyle.ist create mode 100755 tex/main.ist create mode 100755 tex/main.pdf create mode 100755 tex/main.tex create mode 100755 tex/meta.tex create mode 100755 tex/preamble.tex diff --git a/tex/.gitignore b/tex/.gitignore new file mode 100755 index 0000000..e964244 --- /dev/null +++ b/tex/.gitignore @@ -0,0 +1,301 @@ +## Core latex/pdflatex auxiliary files: +*.aux +*.lof +*.log +*.lot +*.fls +*.out +*.toc +*.fmt +*.fot +*.cb +*.cb2 +.*.lb + +## Intermediate documents: +*.dvi +*.xdv +*-converted-to.* +# these rules might exclude image files for figures etc. +# *.ps +# *.eps +# *.pdf + +## Generated if empty string is given at "Please type another file name for output:" +.pdf + +## Bibliography auxiliary files (bibtex/biblatex/biber): +*.bbl +*.bcf +*.blg +*-blx.aux +*-blx.bib +*.run.xml + +## Build tool auxiliary files: +*.fdb_latexmk +*.synctex +*.synctex(busy) +*.synctex.gz +*.synctex.gz(busy) +*.pdfsync + +## Build tool directories for auxiliary files +# latexrun +latex.out/ + +## Auxiliary and intermediate files from other packages: +# algorithms +*.alg +*.loa + +# achemso +acs-*.bib + +# amsthm +*.thm + +# beamer +*.nav +*.pre +*.snm +*.vrb + +# changes +*.soc + +# comment +*.cut + +# cprotect +*.cpt + +# elsarticle (documentclass of Elsevier journals) +*.spl + +# endnotes +*.ent + +# fixme +*.lox + +# feynmf/feynmp +*.mf +*.mp +*.t[1-9] +*.t[1-9][0-9] +*.tfm + +#(r)(e)ledmac/(r)(e)ledpar +*.end +*.?end +*.[1-9] +*.[1-9][0-9] +*.[1-9][0-9][0-9] +*.[1-9]R +*.[1-9][0-9]R +*.[1-9][0-9][0-9]R +*.eledsec[1-9] +*.eledsec[1-9]R +*.eledsec[1-9][0-9] +*.eledsec[1-9][0-9]R +*.eledsec[1-9][0-9][0-9] +*.eledsec[1-9][0-9][0-9]R + +# glossaries +*.acn +*.acr +*.glg +*.glo +*.gls +*.glsdefs +*.lzo +*.lzs +*.slg +*.slo +*.sls + +# uncomment this for glossaries-extra (will ignore makeindex's style files!) +# *.ist + +# gnuplot +*.gnuplot +*.table + +# gnuplottex +*-gnuplottex-* + +# gregoriotex +*.gaux +*.glog +*.gtex + +# htlatex +*.4ct +*.4tc +*.idv +*.lg +*.trc +*.xref + +# hyperref +*.brf + +# knitr +*-concordance.tex +# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files +# *.tikz +*-tikzDictionary + +# listings +*.lol + +# luatexja-ruby +*.ltjruby + +# makeidx +*.idx +*.ilg +*.ind + +# minitoc +*.maf +*.mlf +*.mlt +*.mtc[0-9]* +*.slf[0-9]* +*.slt[0-9]* +*.stc[0-9]* + +# minted +_minted* +*.pyg + +# morewrites +*.mw + +# newpax +*.newpax + +# nomencl +*.nlg +*.nlo +*.nls + +# pax +*.pax + +# pdfpcnotes +*.pdfpc + +# sagetex +*.sagetex.sage +*.sagetex.py +*.sagetex.scmd + +# scrwfile +*.wrt + +# svg +svg-inkscape/ + +# sympy +*.sout +*.sympy +sympy-plots-for-*.tex/ + +# pdfcomment +*.upa +*.upb + +# pythontex +*.pytxcode +pythontex-files-*/ + +# tcolorbox +*.listing + +# thmtools +*.loe + +# TikZ & PGF +*.dpth +*.md5 +*.auxlock + +# titletoc +*.ptc + +# todonotes +*.tdo + +# vhistory +*.hst +*.ver + +# easy-todo +*.lod + +# xcolor +*.xcp + +# xmpincl +*.xmpi + +# xindy +*.xdy + +# xypic precompiled matrices and outlines +*.xyc +*.xyd + +# endfloat +*.ttt +*.fff + +# Latexian +TSWLatexianTemp* + +## Editors: +# WinEdt +*.bak +*.sav + +# Texpad +.texpadtmp + +# LyX +*.lyx~ + +# Kile +*.backup + +# gummi +.*.swp + +# KBibTeX +*~[0-9]* + +# TeXnicCenter +*.tps + +# auto folder when using emacs and auctex +./auto/* +*.el + +# expex forward references with \gathertags +*-tags.tex + +# standalone packages +*.sta + +# Makeindex log files +*.lpz + +# xwatermark package +*.xwm + +# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib +# option is specified. Footnotes are the stored in a file with suffix Notes.bib. +# Uncomment the next line to have this generated file ignored. +#*Notes.bib diff --git a/tex/.latexmkrc b/tex/.latexmkrc new file mode 100755 index 0000000..630d01c --- /dev/null +++ b/tex/.latexmkrc @@ -0,0 +1 @@ +$pdflatex = 'lualatex -shell-escape -synctex=1 -interaction=nonstopmode'; \ No newline at end of file diff --git a/tex/Makefile b/tex/Makefile new file mode 100755 index 0000000..fc2b97f --- /dev/null +++ b/tex/Makefile @@ -0,0 +1,20 @@ +SOURCE=main +TARGET=book + +TEXC=lualatex + +all: $(SOURCE).pdf + +%.pdf: %.tex + lualatex $< + biber $(SOURCE) + makeindex main.idx -s indexstyle.ist + makeglossaries $(SOURCE) + lualatex $< + lualatex $< + +publish: + cp $(SOURCE).pdf ../doc/$(TARGET).pdf + +clean: + ./clean.sh \ No newline at end of file diff --git a/tex/TheLuaChameleonBook.cls b/tex/TheLuaChameleonBook.cls new file mode 100755 index 0000000..0a35738 --- /dev/null +++ b/tex/TheLuaChameleonBook.cls @@ -0,0 +1,737 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% The LuaLaTeX Chameleon Book Class +% LaTeX Class +% Version 0.0.2 (2022-12-05) +% +% Authors: +% Samuel ORTION +% +% License: +% MIT +% +% +% This class originates from: Legrand Book Template +% by https://www.LaTeXTemplates.com +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%---------------------------------------------------------------------------------------- +% CLASS CONFIGURATION +%---------------------------------------------------------------------------------------- + +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{LegrandOrangeBook}[2022/01/26 The Legrand Orange Book Class v3.0] + +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}} % Pass through any options to the base class +\ProcessOptions\relax % Process given options + +\LoadClass{book} % Load the base class + +%---------------------------------------------------------------------------------------- +% REQUIRED PACKAGES AND CONFIGURATIONS +%---------------------------------------------------------------------------------------- + +\usepackage{graphicx} % Required for including pictures +\graphicspath{{media/images/}} % Specifies the directory where pictures are stored + +\usepackage{float} % Allows more precisely positioning floats e.g. \begin{figure}[H] + +\usepackage{wrapfig} % Allows wrapping text around figures + +\usepackage{caption} % Allows customizing captions + +\usepackage{subcaption} % Allows subcaptions + +\usepackage[usenames, svgnames, table]{xcolor} % Required for defining and using custom colors + +\usepackage{calc} % For simpler calculations - used for spacing the index letter headings correctly + +\usepackage{changepage} % Required for temporarily indenting text blocks + +\usepackage[toc]{appendix} % Required for the appendices chapters + +\usepackage{glossaries} + +\usepackage{etoolbox} % Required for conditional logic and easily changing commands + +%---------------------------------------------------------------------------------------- +% MARGINS +%---------------------------------------------------------------------------------------- + +\usepackage{geometry} % Required for adjusting page dimensions and margins + +\geometry{ + top=3cm, % Top margin + bottom=2.5cm, % Bottom margin + inner=3cm, % Inner margin (left on odd pages, right on even or left in oneside mode) + outer=3cm, % Outer margin (right on odd pages, left on even or right in oneside mode) + headsep=10pt, % Space from the top margin to the baseline of the header + headheight=0.5cm, % Header height + footskip=1.4cm, % Space from the bottom margin to the baseline of the footer + columnsep=1cm, % Horizontal space between columns when in two column mode + %showframe, % Uncomment to show how the type block is set on the page +} + +%---------------------------------------------------------------------------------------- +% FONTS +%---------------------------------------------------------------------------------------- + +\usepackage{fontspec} +\usepackage{ulem} + +%---------------------------------------------------------------------------------------- +% HEADERS AND FOOTERS +%---------------------------------------------------------------------------------------- + +\usepackage{fancyhdr} % Required for customizing headers and footers +\pagestyle{fancy} % Enable the custom headers and footers + +\renewcommand{\headrulewidth}{0.5pt} % Top horizontal rule thickness + +\renewcommand{\chaptermark}[1]{\markboth{\sffamily\normalsize\bfseries\chaptername\ \thechapter.~#1}{}} % Redefine the styling of the current chapter name in the header +\renewcommand{\sectionmark}[1]{\markright{\sffamily\normalsize\thesection~#1}{}} % Redefine the styling of the current section name in the header + +\fancyhf{} % Clear default headers and footers + +\fancyhead[LE, RO]{\sffamily\thepage} % Header for left even pages and right odd pages + +\fancyhead[LO]{\rightmark} % Header for left odd pages + +\fancyhead[RE]{\leftmark} % Header for right even pages + +\fancypagestyle{plain}{ % Style for when a plain pagestyle is specified + \fancyhead{} % Clear headers + \renewcommand{\headrulewidth}{0pt} % Remove header rule +} + +\usepackage{emptypage} % This package removes headers and footers on empty pages between chapters + +%---------------------------------------------------------------------------------------- +% SECTION STYLING +%---------------------------------------------------------------------------------------- + +\setcounter{secnumdepth}{3} % Number sections down to subsubsections, a value of 2 will number to subsections only and 1 to sections only + +\usepackage[ + explicit, % Specify section names explicitly in \titleformat with #1 + newparttoc, % Required for writing the part toc entry number in a standard way (overriding default LaTeX behavior) so the titletoc package can style it +]{titlesec} % Required for modifying sections + +%------------------------------------------- + +% Command to create and output the parts pages +\newcommand{\outputpartpage}[2]{ + \begin{tikzpicture}[remember picture, overlay] + \node[anchor=center, rectangle, fill=primarycolor!20, inner sep=0pt, minimum height=\paperheight, minimum width=\paperwidth] at (current page.center) {}; % Background color + \node[anchor=north west, inner sep=0pt, xshift=\Gm@lmargin, yshift=-\Gm@tmargin] at (current page.north west) {\fontsize{220pt}{220pt}\selectfont\sffamily\bfseries\textcolor{primarycolor!40}{#1}}; % Part number + \node[anchor=north east, inner sep=0pt, xshift=-\Gm@rmargin, yshift=-\Gm@tmargin] at (current page.north east) {\fontsize{30pt}{30pt}\selectfont\sffamily\bfseries\textcolor{primarycolor}{\strut #2}}; % Part title + \node[anchor=south east, inner sep=0pt, xshift=-\Gm@rmargin, yshift=\Gm@bmargin] at (current page.south east) { % Mini table of contents + \parbox[t][][t]{8.5cm}{ % Width of box holding the mini ToC + \printcontents[part]{l}{0}{\setcounter{tocdepth}{1}} % Display the mini table of contents showing chapters and sections, change tocdepth to 2 to also show subsections or 0 to only show chapters + } + }; + \end{tikzpicture} +} + +\titleformat + {\part} % Section type being modified + [block] % Shape type, can be: hang, block, display, runin, leftmargin, rightmargin, drop, wrap, frame + {\startcontents[part]\outputpartpage{\thepart}{#1}} % Format of the whole section + {} % Format of the section label + {0em} % Space between the title and label + {} % Code before the label + [] % Code after the label + +%------------------------------------------- + +% Command to store the current chapter image to use for all future chapters, can be changed any time in the document and can be empty +\newcommand{\thechapterimage}{} +\newcommand{\chapterimage}[1]{\renewcommand{\thechapterimage}{#1}} + +% Command to store the current whitespace above the chapter title box for all future chapters, can be changed at any time in the document +\newcommand{\thechapterspaceabove}{} +\newcommand{\chapterspaceabove}[1]{\renewcommand{\thechapterspaceabove}{#1}} + +% Command to store the current whitespace below the chapter title box for all future chapters, can be changed at any time in the document +\newcommand{\thechapterspacebelow}{} +\newcommand{\chapterspacebelow}[1]{\renewcommand{\thechapterspacebelow}{#1}} + +% Command to output the chapter title with optional background image +\newcommand{\outputchaptertitle}[2]{ + \begin{tikzpicture}[remember picture,overlay] + % If a chapter image has been specified + \expandafter\ifstrequal\expandafter{\thechapterimage}{}{}{ + % Output the chapter image + \node[ + anchor=north west, % Anchor point on the image + inner sep=0pt, % Inner padding + ] at (current page.north west) {\includegraphics[width=\paperwidth]{\thechapterimage}}; + } + % Box with the chapter title + \draw[anchor=west] (current page.north west) node [ + anchor=north west, % Anchor point of the chapter box + xshift=\Gm@lmargin, % Horizontal distance from the left side of the page + yshift=-\thechapterspaceabove, % Vertical distance from the top of the page + line width=2pt, % Border line thickness + rounded corners=10pt, % Rounded corners amount + draw=primarycolor, % Border line color + fill=black!5, % Box background color + fill opacity=0.6, % Background transparency + text opacity=1, % Text transparency + inner ysep=12.5pt, % Inner vertical padding + inner xsep=20pt, % Inner horizontal padding + align=flush left, % Text alignment inside box + text width=1.2\linewidth, % Box width (wider than page to go off the right side) + font=\huge\sffamily\bfseries, % Font styling for chapter title + ] {\parbox{0.85\linewidth}{\strut\raggedright\expandafter\ifstrequal\expandafter{#1}{}{}{#1. }#2\vspace{-3pt}}}; % Chapter title in a fixed width box for wrapping + \end{tikzpicture} +} + +% Numbered chapters +\titleformat + {\chapter} % Section type being modified + [block] % Shape type, can be: hang, block, display, runin, leftmargin, rightmargin, drop, wrap, frame + {\outputchaptertitle{\thechapter}{#1}} % Format of the whole section + {} % Format of the section label + {0cm} % Space between the title and label + {} % Code before the label + [] % Code after the label + +% Unnumbered chapters +\titleformat + {name=\chapter, numberless} % Section type being modified + [block] % Shape type, can be: hang, block, display, runin, leftmargin, rightmargin, drop, wrap, frame + {\outputchaptertitle{}{#1}} % Format of the whole section + {} % Format of the section label + {0cm} % Space between the title and label + {} % Code before the label + [] % Code after the label + +\titlespacing*{\chapter}{0pt}{0pt}{\thechapterspacebelow} % Spacing around section titles, the order is: left, before and after + +%------------------------------------------- + +\titleformat + {\section} % Section type being modified + [block] % Shape type, can be: hang, block, display, runin, leftmargin, rightmargin, drop, wrap, frame + {\bfseries\sffamily\Large} % Format of the whole section + {\llap{\textcolor{primarycolor}{\thesection}\hspace{1em}}#1} % Format of the section label + {0cm} % Space between the title and label + {} % Code before the label + [] % Code after the label + +\titleformat + {name=\section, numberless} % Section type being modified + [block] % Shape type, can be: hang, block, display, runin, leftmargin, rightmargin, drop, wrap, frame + {\bfseries\sffamily\Large} % Format of the whole section + {#1} % Format of the section label + {0cm} % Space between the title and label + {} % Code before the label + [] % Code after the label + +\titlespacing*{\section}{0pt}{12pt}{6pt} % Spacing around section titles, the order is: left, before and after + +%------------------------------------------- + +\titleformat + {\subsection} % Section type being modified + [block] % Shape type, can be: hang, block, display, runin, leftmargin, rightmargin, drop, wrap, frame + {\bfseries\sffamily\large} % Format of the whole section + {\llap{\textcolor{primarycolor}{\thesubsection}\hspace{1em}}#1} % Format of the section label + {0cm} % Space between the title and label + {} % Code before the label + [] % Code after the label + +\titleformat + {name=\subsection, numberless} % Section type being modified + [block] % Shape type, can be: hang, block, display, runin, leftmargin, rightmargin, drop, wrap, frame + {\bfseries\sffamily\large} % Format of the whole section + {#1} % Format of the section label + {0cm} % Space between the title and label + {} % Code before the label + [] % Code after the label + +\titlespacing*{\subsection}{0pt}{12pt}{4pt} % Spacing around section titles, the order is: left, before and after + +%------------------------------------------- + +\titleformat + {\subsubsection} % Section type being modified + [block] % Shape type, can be: hang, block, display, runin, leftmargin, rightmargin, drop, wrap, frame + {\bfseries\sffamily} % Format of the whole section + {\llap{{\thesubsubsection}\hspace{1em}}#1} % Format of the section label + {0cm} % Space between the title and label + {} % Code before the label + [] % Code after the label + +\titleformat + {name=\subsubsection, numberless} % Section type being modified + [block] % Shape type, can be: hang, block, display, runin, leftmargin, rightmargin, drop, wrap, frame + {\bfseries\sffamily} % Format of the whole section + {#1} % Format of the section label + {0cm} % Space between the title and label + {} % Code before the label + [] % Code after the label + +\titlespacing*{\subsubsection}{0pt}{8pt}{4pt} % Spacing around section titles, the order is: left, before and after + +%------------------------------------------- + +\titleformat + {\paragraph} % Section type being modified + [runin] % Shape type, can be: hang, block, display, runin, leftmargin, rightmargin, drop, wrap, frame + {\bfseries\sffamily} % Format of the whole section + {} % Format of the section label + {0cm} % Space between the title and label + {#1} % Code before the label + [] % Code after the label + +\titlespacing*{\paragraph}{0pt}{0pt}{6pt} % Spacing around section titles, the order is: left, before and after + +%---------------------------------------------------------------------------------------- +% TABLE OF CONTENTS +%---------------------------------------------------------------------------------------- + +\usepackage{titletoc} % Required for manipulating the table of contents + +\setcounter{tocdepth}{2} % Display down to subsections in the table of contents + +\contentsmargin{0cm} % Removes the default right margin + +%------------------------------------------------ + +% Styling of numbered parts in the table of contents +\newcommand{\tocentrypartnumbered}[1]{% + \setlength\fboxsep{0pt}% Remove box padding + \contentslabel[% + % Part number box + \colorbox{primarycolor!20}{% Background color + \strut\parbox[c][.7cm]{1.1cm}{% Box size + \color{primarycolor!70}\Large\sffamily\bfseries\centering\thecontentslabel% Part number + }% + }% + \hspace{4pt}% + % Part title box + \colorbox{primarycolor!40}{% Background color + \strut\parbox[c][.7cm]{\linewidth-1.25cm}{% Box size + \centering\Large\sffamily #1% Part title + }% + }% + ]{1.25cm} +} + +% Styling of unnumbered parts in the table of contents +\newcommand{\tocentrypartunnumbered}[1]{% + \setlength\fboxsep{0pt}% Remove box padding + \contentslabel[% + % Part title box + \colorbox{primarycolor!40}{% Background color + \strut\parbox[c][.7cm]{\linewidth}{% Box size + \centering\Large\sffamily #1% Part title + }% + }% + ]{1.25cm} +} + +\titlecontents{part} % Section type being modified + [1.25cm] % Left indentation + {\addvspace{20pt}\Large\sffamily\bfseries\hypersetup{linkcolor=black}} % Before code + {\tocentrypartnumbered} % Formatting of numbered sections of this type + {\tocentrypartunnumbered} % Formatting of numberless sections of this type + {} % Formatting of the filler to the right of the heading and the page number + [] % After code + +%------------------------------------------------ + +\titlecontents{chapter} % Section type being modified + [1.25cm] % Left indentation + {\addvspace{12pt}\large\sffamily\bfseries\hypersetup{linkcolor=primarycolor}} % Before code + {\color{primarycolor}\contentslabel[\Large\thecontentslabel]{1.25cm}} % Formatting of numbered sections of this type + {} % Formatting of numberless sections of this type + {\color{primarycolor!60}\normalsize\;\titlerule*[6pt]{.}\;\color{primarycolor}\thecontentspage} % Formatting of the filler to the right of the heading and the page number + [] % After code + +%------------------------------------------------ + +\titlecontents{section} % Section type being modified + [1.25cm] % Left indentation + {\addvspace{3pt}\sffamily\bfseries} % Before code + {\contentslabel[\thecontentslabel]{1.25cm}} % Formatting of numbered sections of this type + {} % Formatting of numberless sections of this type + {~{\normalfont\titlerule*[6pt]{.}}~\thecontentspage} % Formatting of the filler to the right of the heading and the page number + [] % After code + +%------------------------------------------------ + +\titlecontents{subsection} % Section type being modified + [1.25cm] % Left indentation + {\addvspace{1pt}\sffamily\small} % Before code + {\contentslabel[\thecontentslabel]{1.25cm}} % Formatting of numbered sections of this type + {} % Formatting of numberless sections of this type + {~\titlerule*[6pt]{.}~\thecontentspage} % Formatting of the filler to the right of the heading and the page number + [] % After code + +%------------------------------------------------ + +\titlecontents{subsubsection} % Section type being modified + [1.75cm] % Left indentation + {\sffamily\small} % Before code + {\contentslabel[\thecontentslabel]{1.75cm}} % Formatting of numbered sections of this type + {} % Formatting of numberless sections of this type + {~\titlerule*[6pt]{.}~\thecontentspage} % Formatting of the filler to the right of the heading and the page number + [] % After code + +%------------------------------------------------ + +% List of figures entries +\titlecontents{figure} % Section type being modified + [0cm] % Left indentation + {\addvspace{2pt}\sffamily\small} % Before code + {\thecontentslabel\hspace*{1em}} % Formatting of numbered sections of this type + {} % Formatting of numberless sections of this type + {~\titlerule*[6pt]{.}~\thecontentspage} % Formatting of the filler to the right of the heading and the page number + [] % After code + +%------------------------------------------------ + +% List of tables entries +\titlecontents{table} % Section type being modified + [0cm] % Left indentation + {\addvspace{2pt}\sffamily\small} % Before code + {\thecontentslabel\hspace*{1em}} % Formatting of numbered sections of this type + {} % Formatting of numberless sections of this type + {~\titlerule*[6pt]{.}~\thecontentspage} % Formatting of the filler to the right of the heading and the page number + [] % After code + +%------------------------------------------------ + +\titlecontents{lchapter} % Chapter headings on part pages + [0cm] % Left indentation + {\addvspace{12pt}\large\sffamily\bfseries\hypersetup{linkcolor=primarycolor}} % Before code + {\color{primarycolor}\contentslabel[\Large\thecontentslabel]{1.25cm}} % Formatting of numbered sections of this type + {\color{primarycolor}} % Formatting of numberless sections of this type + {~\color{primarycolor!60}\normalsize\titlerule*[6pt]{.}~\color{primarycolor}\thecontentspage} % Formatting of the filler to the right of the heading and the page number + +%------------------------------------------------ + +\titlecontents{lsection} % Section headings on part pages + [0cm] % Left indentation + {\sffamily\small} % Before code + {\contentslabel[\thecontentslabel]{1.25cm}} % Formatting of numbered sections of this type + {} % Formatting of numberless sections of this type + {~{\normalfont\titlerule*[6pt]{.}}~\thecontentspage} % Formatting of the filler to the right of the heading and the page number + +%------------------------------------------------ + +\titlecontents{lsubsection} % Subsection headings on part pages + [0cm] % Left indentation + {\sffamily\footnotesize} % Before code + {\contentslabel[\thecontentslabel]{1.25cm}\hspace{0.5cm}} % Formatting of numbered sections of this type + {} % Formatting of numberless sections of this type + {~{\normalfont\titlerule*[6pt]{.}}~\thecontentspage} % Formatting of the filler to the right of the heading and the page number + +%---------------------------------------------------------------------------------------- +% BIBLIOGRAPHY +%---------------------------------------------------------------------------------------- + +\usepackage[ + backend=biber, % Use the biber engine for compiling the bibliography + bibstyle=numeric, % Main bibliography style + citestyle=numeric, % In-text citation style + sorting=nyt, % Sort references in the bibliography by name, then year, then title + sortcites=true, % If multiple citekeys are passed to a citation command, sort them in the citation + abbreviate=false, % Suppress abbreviations such as "Ed." for Editor + backref=true, % List the page where references were cited in the bibliography + defernumbers=true, +]{biblatex} + +\defbibheading{bibempty}{} % Suppress default bibliography headings + +%---------------------------------------------------------------------------------------- +% INDEX +%---------------------------------------------------------------------------------------- + +\usepackage{makeidx} % Required to make an index + +\makeindex % Tells LaTeX to create the files required for indexing + +% Modify the command to output the index to output the correctly styled Index name to the page headers +\patchcmd{\theindex} + {\MakeUppercase\indexname} % Find + {\sffamily\normalsize\bfseries\indexname} % Replace + {} + {} + +%---------------------------------------------------------------------------------------- +% TABLES +%---------------------------------------------------------------------------------------- + +\usepackage{array} % Required for manipulating table elements + +\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}} % Define a new right-aligned paragraph column type +\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}} % Define a new left-aligned (no justification) paragraph column type +\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}} % Define a new centered paragraph column type + +\usepackage{booktabs} % Required for high quality horizontal rules in tables + +%---------------------------------------------------------------------------------------- +% LISTS +%---------------------------------------------------------------------------------------- + +\usepackage{enumitem} % Required for list customization + +\setlist{nolistsep, noitemsep} % Customize spacing inside and outside lists + +\renewcommand{\labelenumi}{\arabic{enumi}.} % Customize the first level numbered list characters +\renewcommand{\labelenumii}{\alph{enumii}.} % Customize the second level numbered list characters +\renewcommand{\labelenumiii}{\roman{enumiii}.} % Customize the third level numbered list characters + +%------------------------------------------------ + +\renewcommand{\labelitemi}{\raisebox{-2pt}{\Large \textbullet}} % Customize the first level bullet point character +\renewcommand{\labelitemii}{--} % Customize the second level bullet point character +\renewcommand{\labelitemiii}{$\circ$} % Customize the third level bullet point character + +%---------------------------------------------------------------------------------------- +% LINKS +%---------------------------------------------------------------------------------------- + +\usepackage{hyperref} + +\hypersetup{ + colorlinks=true, % Whether to color links (a thin box is output around links if this is false) + %hidelinks, % Hide the default boxes around links + urlcolor=primarycolor, % Color for \url and \href links + linkcolor=black, % Color for \ref/\nameref links + citecolor=primarycolor, % Color for reference citations like \cite{} + hyperindex=true, % Adds links from the page numbers in the index to the relevant page + linktoc=all, % Link from section names and page numbers in the table of contents +} + +%---------------------------------------------------------------------------------------- +% BOOKMARKS +%---------------------------------------------------------------------------------------- + +\usepackage{bookmark} % Required for customizing PDF bookmarks + +\bookmarksetup{ + open, % Open all bookmark drawers automatically + numbered, % Add section numbers to bookmarks + addtohook={% + \ifnum\bookmarkget{level}=-1 % Customize part bookmarks + \bookmarksetup{color=primarycolor, bold}% Bold and colored + \fi + \ifnum\bookmarkget{level}=0 % Customize chapter bookmarks + \bookmarksetup{bold}% Bold + \fi + } +} + +%---------------------------------------------------------------------------------------- +% TITLE PAGE +%---------------------------------------------------------------------------------------- + +\renewcommand{\titlepage}[2]{ + \thispagestyle{empty} % Suppress headers and footers on the title page + + \begin{tikzpicture}[remember picture, overlay] + \node [inner sep=0pt] at (current page.center) {#1}; % Background image + \node [anchor=center, inner sep=1.25cm, rectangle, fill=primarycolor!30!white, fill opacity=0.6, text opacity=1, minimum height=0.2\paperheight, minimum width=\paperwidth, text width=0.8\paperwidth] at (current page.center) {#2}; % Title highlight box with title(s) and author(s) + \end{tikzpicture} + + \newpage +} + +%---------------------------------------------------------------------------------------- +% THEOREM STYLES +%---------------------------------------------------------------------------------------- + +\usepackage{amsmath, amsfonts, amssymb, amsthm} % For math equations, theorems, symbols, etc + +\renewcommand{\qedsymbol}{$\blacksquare$} % Redefine the QED symbol to be a filled square vs. the default unfilled square + +%------------------------------------------------ + +% Orange theorem number and optional black title with padding above and below +\newtheoremstyle{primarycolornum} % Theorem style name + {6pt} % Space above + {6pt} % Space below + {\normalfont} % Body font + {} % Indent amount + {} % Theorem head font + {} % Punctuation after theorem head + {0.25em} % Space after theorem head + {\small\sffamily\bfseries\color{primarycolor}\thmname{#1}~\thmnumber{\@ifnotempty{#1}{}\@upn{#2}} % Theorem text (e.g. Theorem 2.1) + \thmnote{\the\thm@notefont\sffamily\bfseries\color{black}---~#3.\hspace{0.25em}}} % Optional theorem note + +%------------------------------------------------ + +% Orange theorem number and optional black title with no padding above and below +\newtheoremstyle{primarycolornumbox} % Theorem style name + {0pt} % Space above + {0pt} % Space below + {\normalfont} % Body font + {} % Indent amount + {} % Theorem head font + {} % Punctuation after theorem head + {0.25em} % Space after theorem head + {\small\sffamily\bfseries\color{primarycolor}\thmname{#1}~\thmnumber{\@ifnotempty{#1}{}\@upn{#2}} % Theorem text (e.g. Theorem 2.1) + \thmnote{\the\thm@notefont\sffamily\bfseries\color{black}---~#3.\hspace{0.25em}}} % Optional theorem note + +%------------------------------------------------ + +% Black theorem number and optional black title no padding above and below +\newtheoremstyle{blacknumex} % Theorem style name + {6pt} % Space above + {6pt} % Space below + {\normalfont} % Body font + {} % Indent amount + {} % Theorem head font + {} % Punctuation after theorem head + {0.25em} % Space after theorem head + {\small\sffamily\bfseries{\raisebox{1.25pt}{\tiny\ensuremath{\blacksquare}}}~\thmname{#1}~\thmnumber{\@ifnotempty{#1}{}\@upn{#2}} % Theorem text (e.g. Theorem 2.1) + \thmnote{\the\thm@notefont\sffamily\bfseries---~#3.\hspace{0.25em}}} % Optional theorem note + +%------------------------------------------------ + +% Black theorem number and optional black title padding above and below +\newtheoremstyle{blacknumbox} % Theorem style name + {0pt} % Space above + {0pt} % Space below + {\normalfont} % Body font + {} % Indent amount + {} % Theorem head font + {} % Punctuation after theorem head + {0.25em} % Space after theorem head + {\small\sffamily\bfseries\thmname{#1}~\thmnumber{\@ifnotempty{#1}{}\@upn{#2}} % Theorem text (e.g. Theorem 2.1) + \thmnote{\the\thm@notefont\sffamily\bfseries---~#3.\hspace{0.25em}}} % Optional theorem note + +%------------------------------------------------ + +% Set the theorem style for each type of theorem-like environment by placing it under the theorem style you would like to use for it + +% Orange theorem number and optional black title with padding above and below +\theoremstyle{primarycolornum} +\newtheorem{proposition}{Proposition}[chapter] % Propositions, the first argument is the theorem name, the second the theorem title used before the number and the third optional argument is whether to number under chapters (e.g. 2.1) or sections (e.g. 2.1.1) + +% Orange theorem number and optional black title with no padding above and below +\theoremstyle{primarycolornumbox} +\newtheorem{theoremeT}{Theorem}[chapter] % Theorems, the first argument is the theorem name, the second the theorem title used before the number and the third optional argument is whether to number under chapters (e.g. 2.1) or sections (e.g. 2.1.1) +\newtheorem{problem}{Problem}[chapter] % Problems, the first argument is the theorem name, the second the theorem title used before the number and the third optional argument is whether to number under chapters (e.g. 2.1) or sections (e.g. 2.1.1) +\newtheorem{exerciseT}{Exercise}[chapter] % Exercises, the first argument is the theorem name, the second the theorem title used before the number and the third optional argument is whether to number under chapters (e.g. 2.1) or sections (e.g. 2.1.1) + +% Black theorem number and optional black title no padding above and below +\theoremstyle{blacknumex} +\newtheorem{exampleT}{Example}[chapter] % Examples, the first argument is the theorem name, the second the theorem title used before the number and the third optional argument is whether to number under chapters (e.g. 2.1) or sections (e.g. 2.1.1) +\newtheorem{notation}{Notation}[chapter] % Notations, the first argument is the theorem name, the second the theorem title used before the number and the third optional argument is whether to number under chapters (e.g. 2.1) or sections (e.g. 2.1.1) +\newtheorem{vocabulary}{Vocabulary}[chapter] % Vocabularies, the first argument is the theorem name, the second the theorem title used before the number and the third optional argument is whether to number under chapters (e.g. 2.1) or sections (e.g. 2.1.1) + +% Black theorem number and optional black title with padding above and below +\theoremstyle{blacknumbox} +\newtheorem{definitionT}{Definition}[chapter] % Definitions, the first argument is the theorem name, the second the theorem title used before the number and the third optional argument is whether to number under chapters (e.g. 2.1) or sections (e.g. 2.1.1) +\newtheorem{corollaryT}{Corollary}[chapter] % Corollaries, the first argument is the theorem name, the second the theorem title used before the number and the third optional argument is whether to number under chapters (e.g. 2.1) or sections (e.g. 2.1.1) + +%---------------------------------------------------------------------------------------- +% COLORED THEOREM BOXES +%---------------------------------------------------------------------------------------- + +\RequirePackage[framemethod=default]{mdframed} % Required for creating colored boxes used for theorems, definitions, exercises and corollaries + +% Theorem box +\newmdenv[ + skipabove=7pt, % Whitespace above box + skipbelow=7pt, % Whitespace below box + backgroundcolor=black!5, % Background color + linecolor=primarycolor, % Border color + innerleftmargin=5pt, % Inside left margin width + innerrightmargin=5pt, % Inside right margin width + innertopmargin=5pt, % Inside top margin height + innerbottommargin=5pt, % Inside bottom margin height + leftmargin=0cm, % Outside left margin width + rightmargin=0cm % Outside right margin width +]{tBox} + +% Exercise box +\newmdenv[ + skipabove=7pt, % Whitespace above box + skipbelow=7pt, % Whitespace below box + rightline=false, % Right line visible + leftline=true, % Left line visible + topline=false, % Top line visible + bottomline=false, % Bottom line visible + linecolor=primarycolor, % Line color + linewidth=4pt, % Line width + backgroundcolor=primarycolor!10, % Background color + innerleftmargin=5pt, % Inside left margin width + innerrightmargin=5pt, % Inside right margin width + innertopmargin=5pt, % Inside top margin height + innerbottommargin=5pt, % Inside bottom margin height + leftmargin=0cm, % Outside left margin width + rightmargin=0cm % Outside right margin width +]{eBox} + +% Definition box +\newmdenv[ + skipabove=7pt, % Whitespace above box + skipbelow=7pt, % Whitespace below box + rightline=false, % Right line visible + leftline=true, % Left line visible + topline=false, % Top line visible + bottomline=false, % Bottom line visible + linecolor=primarycolor, % Border color + linewidth=4pt, % Border width + innerleftmargin=5pt, % Inside left margin width + innerrightmargin=5pt, % Inside right margin width + innertopmargin=0pt, % Inside top margin height + innerbottommargin=0pt, % Inside bottom margin height + leftmargin=0cm, % Outside left margin width + rightmargin=0cm % Outside right margin width +]{dBox} + +% Corollary box +\newmdenv[ + skipabove=7pt, % Whitespace above box + skipbelow=7pt, % Whitespace below box + rightline=false, % Right line visible + leftline=true, % Left line visible + topline=false, % Top line visible + bottomline=false, % Bottom line visible + linecolor=gray, % Line color + linewidth=4pt, % Line width + backgroundcolor=black!5, % Background color + innerleftmargin=5pt, % Inside left margin width + innerrightmargin=5pt, % Inside right margin width + innertopmargin=5pt, % Inside top margin height + innerbottommargin=5pt, % Inside bottom margin height + leftmargin=0cm, % Outside left margin width + rightmargin=0cm % Outside right margin width +]{cBox} + +% Creates an environment for each type of theorem and assigns it a theorem text style from the THEOREM STYLES block above and a colored box from above +\newenvironment{theorem}{\begin{tBox}\begin{theoremeT}}{\end{theoremeT}\end{tBox}} +\newenvironment{exercise}{\begin{eBox}\begin{exerciseT}}{\hfill{\color{primarycolor}\tiny\ensuremath{\blacksquare}}\end{exerciseT}\end{eBox}} +\newenvironment{definition}{\begin{dBox}\begin{definitionT}}{\end{definitionT}\end{dBox}} +\newenvironment{example}{\begin{exampleT}}{\hfill{\tiny\ensuremath{\blacksquare}}\end{exampleT}} +\newenvironment{corollary}{\begin{cBox}\begin{corollaryT}}{\end{corollaryT}\end{cBox}} + +%---------------------------------------------------------------------------------------- +% REMARK ENVIRONMENT +%---------------------------------------------------------------------------------------- + +\newenvironment{remark}{% + \par\small % Reduce font size for remarks + \vspace{4pt} % Vertical whitespace + \begin{adjustwidth}{35pt}{25pt} % Left and right padding + \hspace{-2.5pt}% + \begin{tikzpicture}[overlay] + \node[draw=primarycolor!60,line width=1pt,circle,fill=primarycolor!25,font=\sffamily\bfseries,inner sep=3pt,outer sep=0pt] at (-15pt,0pt){\textcolor{primarycolor}{R}}; % Orange R in a circle + \end{tikzpicture} + \advance\baselineskip -1pt% Reduce line spacing +}{% + \end{adjustwidth} +} + +%---------------------------------------------------------------------------------------- +% LOAD PACKAGES THAT CLASH WITH OTHER PACKAGES +%---------------------------------------------------------------------------------------- + +\usepackage{tikz} % Required for drawing custom shapes and positioning elements absolutely on the page diff --git a/tex/background.pdf b/tex/background.pdf new file mode 100755 index 0000000000000000000000000000000000000000..c901d7184f2d674a7c3d2658125400500949161c GIT binary patch literal 25190 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 P?g5{^bg3`;>*@asgZpCQ literal 0 HcmV?d00001 diff --git a/tex/bibliography.bib b/tex/bibliography.bib new file mode 100755 index 0000000..e69de29 diff --git a/tex/clean.sh b/tex/clean.sh new file mode 100755 index 0000000..939b83d --- /dev/null +++ b/tex/clean.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +JUNK="*.aux *.bbl *.bcf *.blg *.log *.out *.run.xml *.toc *.lof *.lot *.fls *.fdb_latexmk *.synctex* *.ptc *.ind *.ilg *.idx *.glo *.glsdefs *.glg *.gls" +for item in $JUNK; do + find . -name "$item" -exec rm {} \; +done \ No newline at end of file diff --git a/tex/content/chapters/include.tex b/tex/content/chapters/include.tex new file mode 100755 index 0000000..224a891 --- /dev/null +++ b/tex/content/chapters/include.tex @@ -0,0 +1,18 @@ +%---------------------------------------- +% CHAPTERS +%---------------------------------------- + +\newcommand{\includechapters}[2]{% + \foreach \i in {0, ..., #2} {% + \edef\FileName{content/chapters/#1/\i}% The % here are necessary to eliminate any + \IfFileExists{\FileName}{% spurious spaces that may get inserted + \input{\FileName}% at these points + } + } +} + + +\includechapters{part01}{2} + + +\includechapters{part02}{2} \ No newline at end of file diff --git a/tex/content/chapters/part01/0.tex b/tex/content/chapters/part01/0.tex new file mode 100755 index 0000000..e69de29 diff --git a/tex/content/chapters/part01/1.tex b/tex/content/chapters/part01/1.tex new file mode 100755 index 0000000..e69de29 diff --git a/tex/content/conclusion.tex b/tex/content/conclusion.tex new file mode 100755 index 0000000..e69de29 diff --git a/tex/content/introduction.tex b/tex/content/introduction.tex new file mode 100755 index 0000000..4ecda9a --- /dev/null +++ b/tex/content/introduction.tex @@ -0,0 +1,8 @@ +\chapter{Introduction} + +Here we go + +\part{Hello, world} + + +\section{What did you expect ?} \ No newline at end of file diff --git a/tex/definitions.tex b/tex/definitions.tex new file mode 100644 index 0000000..e69de29 diff --git a/tex/indexstyle.ist b/tex/indexstyle.ist new file mode 100755 index 0000000..bde0c94 --- /dev/null +++ b/tex/indexstyle.ist @@ -0,0 +1,4 @@ +delim_0 "\\dotfill\ " % Filler between section heading and page number +delim_1 "\\dotfill\ " % Filler between subsection heading and page number +headings_flag 1 +heading_prefix "\\nopagebreak\n\\vspace*{0.1cm}\\tikz\\node at (0pt,0pt) [draw=none, fill=ocre!50, line width=1pt, inner sep=5pt]{\\parbox{0.993\\linewidth-2\\fboxsep-2\\fboxrule-2pt}{\\centering\\large\\sffamily\\bfseries\\textcolor{white}{" heading_suffix "}}};\\vspace*{0.2cm}\\nopagebreak\n" % Styling of index letter headings \ No newline at end of file diff --git a/tex/main.ist b/tex/main.ist new file mode 100755 index 0000000..069525b --- /dev/null +++ b/tex/main.ist @@ -0,0 +1,31 @@ +% makeindex style file created by the glossaries package +% for document 'main' on 2022-12-31 +actual '?' +encap '|' +level '!' +quote '"' +keyword "\\glossaryentry" +preamble "\\glossarysection[\\glossarytoctitle]{\\glossarytitle}\\glossarypreamble\n\\begin{theglossary}\\glossaryheader\n" +postamble "\%\n\\end{theglossary}\\glossarypostamble\n" +group_skip "\\glsgroupskip\n" +item_0 "\%\n" +item_1 "\%\n" +item_2 "\%\n" +item_01 "\%\n" +item_x1 "\\relax \\glsresetentrylist\n" +item_12 "\%\n" +item_x2 "\\relax \\glsresetentrylist\n" +delim_0 "\{\\glossaryentrynumbers\{\\relax " +delim_1 "\{\\glossaryentrynumbers\{\\relax " +delim_2 "\{\\glossaryentrynumbers\{\\relax " +delim_t "\}\}" +delim_n "\\delimN " +delim_r "\\delimR " +headings_flag 1 +heading_prefix "\\glsgroupheading\{" +heading_suffix "\}\\relax \\glsresetentrylist " +symhead_positive "glssymbols" +numhead_positive "glsnumbers" +page_compositor "." +suffix_2p "" +suffix_3p "" diff --git a/tex/main.pdf b/tex/main.pdf new file mode 100755 index 0000000000000000000000000000000000000000..add47c560ad9c8a10b30248da2eb60737a763b6f GIT binary patch literal 60635 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 T*4Vs)0^B^<3=A@Ave^Fz1g>+x literal 0 HcmV?d00001 diff --git a/tex/main.tex b/tex/main.tex new file mode 100755 index 0000000..2ac95d3 --- /dev/null +++ b/tex/main.tex @@ -0,0 +1,203 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% The LuaLaTeX Chameleon Book Template +% LaTeX Template +% Version 0.0.0 (2022-12-05) +% +% Authors: +% Samuel ORTION +% Compiling this template: +% This template uses biber for its bibliography and makeindex for its index. +% When you first open the template, compile it from the command line with the +% commands below to make sure your LaTeX distribution is configured correctly: +% +% 1) lualatex main +% 2) makeindex main.idx -s indexstyle.ist +% 3) biber main +% 3) makeglossaries main +% 4) lualatex main +% 5) lualatex main +% +% License: +% MIT +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% PREAMBLE +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\documentclass[ + 11pt, + fleqn, + a4paper +]{TheLuaChameleonBook} + +% Book PDF metadata +\hypersetup{ + pdftitle={The Art of Computer Programming Vol. 1 - Some Exercises}, + pdfauthor={Samuel ORTION}, + pdfsubject={An Attempt to solve some of the exercises from the Book of Donald E. KNUTH}, + pdfkeywords={computer science, mathematics, algorithmics}, + pdfcreator={LaTeX}, +} + +\definecolor{primarycolor}{RGB}{0, 128, 0} + +\addbibresource{sample.bib} % Bibliography file +\makeglossaries +\makeindex + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% DOCUMENT +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{document} + +%------------------------------------------------------------------------------ +% TITLE PAGE +%------------------------------------------------------------------------------ + + +\titlepage % Output the title page + {\includegraphics[width=\paperwidth]{background.pdf}} % Code to output the background image, which should be the same dimensions as the paper to fill the page entirely; leave empty for no background image + { % Title(s) and author(s) + \centering\sffamily % Font styling + {\Huge\bfseries Exploring the Physical Manifestation of Humanity's Subconscious Desires\par} % Book title + \vspace{16pt} % Vertical whitespace + {\LARGE A Practical Guide\par} % Subtitle + \vspace{24pt} % Vertical whitespace + {\huge\bfseries Goro Akechi\par} % Author name + } + + + +%---------------------------------------------------------------------------------------- +% COPYRIGHT PAGE +%---------------------------------------------------------------------------------------- + +\thispagestyle{empty} % Suppress headers and footers on this page + +~\vfill % Push the text down to the bottom of the page + +\noindent Copyright \copyright\ 2022 Samuel \textsc{Ortion}\\ % Copyright notice + +\noindent \textsc{Published by \texttt{Chameleon Press}}\\ % Publisher + +\noindent \texttt{\href{https://samuel.ortion.fr/}{samuel.ortion.fr}}\\ % URL + +\noindent Licensed under the Creative Commons Attribution-NonCommercial 4.0 License. +% You may not use this file except in compliance with the License. You may obtain a copy of the License at \url{https://creativecommons.org/licenses/by-nc-sa/4.0}. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \textsc{``as is'' basis, without warranties or conditions of any kind}, either express or implied. See the License for the specific language governing permissions and limitations under the License.\\ % License information, replace this with your own license (if any) + +% \noindent \textit{First printing, October 2022} % Printing/edition date + +%---------------------------------------------------------------------------------------- +% TABLE OF CONTENTS +%---------------------------------------------------------------------------------------- + +\pagestyle{empty} % Disable headers and footers for the following pages + +% \tableofcontents % Output the table of contents + +% \listoffigures % Output the list of figures, comment or remove this command if not required + +% \listoftables % Output the list of tables, comment or remove this command if not required + +\pagestyle{fancy} % Enable default headers and footers again + +\cleardoublepage % Start the following content on a new page + +%---------------------------------------------------------------------------------------- +% CONTENT +%---------------------------------------------------------------------------------------- +% \chapterimage{orange2.jpg} % Chapter heading image +\chapterspaceabove{6.75cm} % Whitespace from the top of the page to the chapter title on chapter pages +\chapterspacebelow{7.25cm} % Amount of vertical whitespace from the top margin to the start of the text on chapter pages + +%---------------------------------------- +% INTRODUCTION +%---------------------------------------- +\part*{Introduction} +\input{content/introduction.tex} + +%---------------------------------------- +% CHAPTERS +%---------------------------------------- + +\input{content/chapters/include.tex} + +%---------------------------------------- +% CONCLUSION +%---------------------------------------- + +\part*{Conclusion} +\input{content/conclusion.tex} + +%---------------------------------------------------------------------------------------- + +\stopcontents[part] % Manually stop the 'part' table of contents here so the previous Part page table of contents doesn't list the following chapters + +%---------------------------------------------------------------------------------------- +% BIBLIOGRAPHY +%---------------------------------------------------------------------------------------- + +\chapterimage{} % Chapter heading image +\chapterspaceabove{2.5cm} % Whitespace from the top of the page to the chapter title on chapter pages +\chapterspacebelow{2cm} % Amount of vertical whitespace from the top margin to the start of the text on chapter pages + +%------------------------------------------------ + +\chapter*{Bibliography} +\markboth{\sffamily\normalsize\bfseries Bibliography}{\sffamily\normalsize\bfseries Bibliography} % Set the page headers to display a Bibliography chapter name +\addcontentsline{toc}{chapter}{\textcolor{primarycolor}{Bibliography}} % Add a Bibliography heading to the table of contents + +\section*{Articles} +\addcontentsline{toc}{section}{Articles} % Add the Articles subheading to the table of contents + +\printbibliography[heading=bibempty, type=article] % Output article bibliography entries + +\section*{Books} +\addcontentsline{toc}{section}{Books} % Add the Books subheading to the table of contents + +\printbibliography[heading=bibempty, type=book] % Output book bibliography entries + +%---------------------------------------------------------------------------------------- +% INDEX +%---------------------------------------------------------------------------------------- + +\cleardoublepage % Make sure the index starts on an odd (right side) page +\phantomsection +\addcontentsline{toc}{chapter}{\textcolor{primarycolor}{Index}} % Add an Index heading to the table of contents +\printindex % Output the index + +\tableofcontents + +%---------------------------------------------------------------------------------------- +% GLOSSARY +%---------------------------------------------------------------------------------------- +\printglossaries % Output the glossary + +%---------------------------------------------------------------------------------------- +% APPENDICES +%---------------------------------------------------------------------------------------- + +%\chapterimage{.jpg} % Chapter heading image +\chapterspaceabove{6.75cm} % Whitespace from the top of the page to the chapter title on chapter pages +\chapterspacebelow{7.25cm} % Amount of vertical whitespace from the top margin to the start of the text on chapter pages + +\begin{appendices} + +\renewcommand{\chaptername}{Appendix} % Change the chapter name to Appendix, i.e. "Appendix A: Title", instead of "Chapter A: Title" in the headers + +%------------------------------------------------ + + +%------------------------------------------------ + + +%------------------------------------------------ + +\end{appendices} + + +\printglossary +\end{document} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file diff --git a/tex/meta.tex b/tex/meta.tex new file mode 100755 index 0000000..e69de29 diff --git a/tex/preamble.tex b/tex/preamble.tex new file mode 100755 index 0000000..e69de29