\documentclass[a5paper,twoside,openany]{book}
\usepackage{geometry}
\usepackage{titlesec}
\usepackage{graphicx}
\usepackage{marginnote}
\usepackage{setspace}
\usepackage{fancyhdr}
\usepackage{tikzpagenodes}
\usepackage{everypage}
\usepackage[switch*,pagewise,modulo]{lineno}
\usepackage{amssymb}
\usepackage[classiclatin]{babel}
\usepackage{titletoc}


% basic page geoemtry
\geometry{
  a5paper,
  portrait,
  inner=25pt,
  outer=130pt,
  marginparwidth=85pt,
  marginparsep=20pt,
  headsep=10pt,
  top=50pt,
  bottom=80pt
}


% set default font and line spacing
\renewcommand{\rmdefault}{ptm}
\linespread{1.5}


% default "empty" style to use for front pages
\fancypagestyle{empty}{
   \fancyhf{} % clear all header and footer fields
   \renewcommand{\headrulewidth}{0pt}
   \renewcommand{\footrulewidth}{0pt}
}


% redefine \cleardoublepage so the pages created are completely empty
\makeatletter
\renewcommand{\cleardoublepage}{
  \clearpage
  \ifodd\value{page}
  \else
    \hbox{}
    \thispagestyle{empty}
    \newpage
  \fi
}
\makeatother


% title page template
\makeatletter
\renewcommand{\maketitle}{
  \begin{titlepage}
    \begin{center}
      \MakeUppercase{\LARGE\@author}
      \\ {\Huge \@title \par}
      \vspace*{\fill}
      {\LARGE\@date}
    \end{center}
  \end{titlepage}
}
\makeatother


% formatting of table-of-contents entries
\titlecontents{chapter}
  [0pt] % left margin from left page margin
  { \thispagestyle{empty}} % above-code / global formatting
  {} % numbered-entry-format
  {} % numberless-entry-format
  { % what happens after title
    \titlerule*[0.5pc]{.} % a dotted line of 1pc between-dot distances
    \contentspage % the page number
  }


% chapter title format
\titleformat{\chapter}
  [hang] % title shape
  {\large\centering} % title formatting
  {} % section label (e.g. "Chapter")
  {0pt} % distance between label and title body
  {\chappic\MakeUppercase} % code preceding title body
  [] % code succeeding title body
\titlespacing{\chapter}
  {0pt} % left margin
  {0pt} % top margin
  {\baselineskip} % bottom margin
\newcommand{\newcontentsname}[1]{  % if we want to customize the ToC title
  \AtBeginDocument{\renewcommand{\contentsname}{#1}}
}


% build first book pages and set up formatting for chapters following
\newcommand{\bookstart}{
  \newgeometry{}
  \maketitle
  \cleardoublepage
  \tableofcontents
  \cleardoublepage
  \restoregeometry
  \linenumbers
  \AddEverypageHook{\drawmarginsep}
  \pagestyle{fancy}
}


% highly customized \chapter wrapper
\newcommand{\mychapter}[3]{ % picture, chapter title, ad capitulum
  % if picture path given, build \chappic command and \chappicheight, else empty them
  \ifx&#1& % \ifx checks if succeeding items are the same, i.e. &==& _if_ %1/picture argument is empty
    \renewcommand{\chappic}{\relax}
    \settoheight{\chappicheight}{0}
  \else
    \renewcommand{\chappic}{\vspace{-2\baselineskip}\\\includegraphics[width=\textwidth]{pics/#1}\\} % beware, carefully calibrated whitespace
    \settoheight{\chappicheight}{\chappic}
  \fi
  % header content
  \newpage % ensures markboth arguments are correct ones
  \markboth{#2}{#3}
  % call chapter with only chapter title, add subtitle below
  \chapter{#2}
  \vspace{-\baselineskip}
  \begin{center}
  \itshape{#3}
  \end{center}
  \vspace*{-\baselineskip}
  % ensure first paragraph stars non-indented
  \noindent
  \\ % necessary for unknown reason to make \noindent work
}
\newcommand{\chappic}{} % used in \titleformat to insert chapter picture before title body _if_ re_set by chapter command as non-empty
\newlength{\chappicheight} % used by marginnote positioning next to chapter picture


% marginalia formatting
\renewcommand\linenumberfont{\normalfont\small}
\let\oldmarginnote\marginnote
\renewcommand\marginnote[1]{
  \oldmarginnote{\setstretch{1} #1}
 }
\let\oldmarginpar\marginpar
\renewcommand\marginpar[1]{
  \oldmarginpar{\setstretch{1} #1}
}
% use \marginnote for marginalia on/next to the chapter pic itself
\newlength{\chapterpicnoteoffset}
\newcommand{\chapterpicnote}[2]{
  \setlength{\chapterpicnoteoffset}{\dimexpr-\chappicheight-4\baselineskip}
  \ifx&#1&
  \else
    \setlength{\chapterpicnoteoffset}{\dimexpr+\chapterpicnoteoffset+#1\baselineskip}
  \fi
  \ifodd\value{page}
    \marginnote{\\#2}[\chapterpicnoteoffset]
  \else
    \marginnote{\raggedright \\#2}[\chapterpicnoteoffset]
  \fi
}


% default chapter style
\fancypagestyle{fancy}{
  \renewcommand{\headrulewidth}{1pt}
  \fancyheadoffset[LE]{\dimexpr\marginparsep+\marginparwidth\relax}
  \fancyheadoffset[RO]{\dimexpr\marginparsep+\marginparwidth\relax}
  \fancyfootoffset[LE]{\dimexpr\marginparsep+\marginparwidth\relax}
  \fancyfootoffset[RO]{\dimexpr\marginparsep+\marginparwidth\relax}
  \fancyhf{} % clear all header and footer fields
  \fancyhead[LE]{\leftmark}
  \fancyhead[RO]{\rightmark}
  \fancyfoot[LE,RO]{\thepage} % page number
}
\renewcommand{\chaptermark}[1]{\relax} % empty automatically inserted chapter label
\assignpagestyle{\chapter}{fancy}


% draw vertical margin separator lines
\newlength{\halfmarginparsep}
\setlength{\halfmarginparsep}{\dimexpr\marginparsep / 2 \relax}
\newcommand{\drawmarginsep}{
  \begin{tikzpicture}[remember picture, overlay]
    \ifodd\value{page}
      \draw [line width=1pt] ([xshift=\halfmarginparsep]current page header area.south east) -- ([xshift=\halfmarginparsep]current page text area.south east);
    \else
      \draw [line width=1pt] ([xshift=-\halfmarginparsep]current page header area.south west) -- ([xshift=-\halfmarginparsep]current page text area.south west);
    \fi
  \end{tikzpicture}
}


% some shortcuts to make the code less obtrusive inside the texts
\newcommand{\vs}[1]{\vspace{#1\baselineskip}\\}
\newcommand{\marpic}[2]{\includegraphics[width=#1\marginparwidth]{pics/#2}\\}


\title{FABVLAE ADDENDAE}
\author{plomlompom}
\date{MMXXIII}
\newcontentsname{INDEX FABVLARVM}
\begin{document}
\bookstart
\mychapter{provrom.png}{PROVINCIAE ROMANAE}{AD CAPITVLVM I}
\chapterpicnote{}{
littera Rōmāna: V
\vs{}
litterae \emph{nōn} Rōmānae: u, U, v
\vs{}
V/v \emph{et} U/u $\leftarrow$ V
\vs{}
v = V in\\PROVINCIA (prōvincia)
\vs{}
u = V in\\CAPITVLVM (capitulum)
\vs{3}
\emph{ad} capitulum prīmum:
\vs{0.5}
\marpic{}{frpag1.png}
}
DIODŌRUS: Ubi est imperium Rōmānum?
\\ SEXTUS: In Italiā est.
\\ DIODŌRUS: Est. Sed ubi est quoque?
\\ QUĪNTUS: In Āfricā est. In Galliā quoque est!
\\ DIODŌRUS: Est. Suntne prōvinciae Rōmānae, Āfrica et Gallia?
\\ SEXTUS, QUĪNTUS: Sunt!
\\ DIODŌRUS: Num Germānia quoque prōvincia Rōmāna est?
\\ MĀRCUS: Est!
\\ DIODŌRUS: Nōn est. Germānia in Eurōpā, sed in imperiō Rōmānō nōn est. Sed magnum imperium Rōmānum est, et multae sunt prō\-vinciae Rōmānae.
\\ QUĪNTUS: Numerus magnus est! Nōnne \marginpar{nōnne = nōn-ne} Hispānia quoque prō\-vincia Rōmāna est?
\\ DIODŌRUS: Est.
\\ SEXTUS: Hispānia magna est. Multa et magna oppida in Hispāniā sunt, et fluvīi multī et magnī!
\marginpar{parva $\leftrightarrow$ magna\\pauca $\leftrightarrow$ multa}
\\ MĀRCUS: Quid? Pauca oppida in Hispāniā sunt, et fluviī parvī.
\\ DIODŌRUS: Pauca oppida in Hispāniā sunt, sed non parva. Parvī fluviī sunt, sed nōn paucī. Magnae silvae quoque in Hispāniā sunt.
\\ QUĪNTUS: Nōnne Graecia prōvincia Rōmāna est?
\\ DIODŌRUS: Est. Multae sunt īnsulae Graecae in imperiō Rōmānō.
\\ MĀRCUS: Sed parvae sunt!
\marginpar{\marpic{}{forest.png}silva, silvae}
\\ DIODŌRUS: Sunt in Graeciā īnsulae parvae, et sunt quoque īnsulae magnae.
\\ QUĪNTUS: Suntne īnsulae Graecae in ōceanō Ātlanticō?
\\ MĀRCUS: Sunt!
\marginpar{\emph{īnsula} Britannia:\vs{0.5}\marpic{0.5}{britannia-insula.png}\emph{nōn} prōvincia \\Britannia:\vs{0.5}\marpic{0.65}{britannia-provincia.png}\emph{prōvincia} Britannia\\(in īnsulā Britanniā)}
\\ SEXTUS: Nōn sunt.
\\ DIODŌRUS: Num in ōceanō Ātlanticō īnsulae Graecae sunt? Nōn sunt.
\\ QUĪNTUS: Suntne īnsulae Rōmānae in ōceanō Ātlanticō?
\\ MĀRCUS: Sunt! Quid Britannia est?
\\ DIODŌRUS: Est īnsula Britannia, et est prōvincia quoque Britannia, in īnsulā Britanniā. Sed īnsula nōn parva est. Sunt multae silvae et multī fluvii in īnsulā, sed nōn in prōvinciā. Silvae et fluviī nōn in prōvinciā nōn Rōmānī sunt. Nōnne prōvincia Britannia Rōmāna est? Est. Num īnsula Rōmāna est?
\\ SEXTUS, QUĪNTUS: Nōn est!
\\ MĀRCUS: Est!
\\ DIODŌRUS: Nōn est.

\mychapter{domina.png}{DOMINA EVROPAE}{AD CAPITVLVM II}
\chapterpicnote{3}{Ecce domina Rōma!}
Ubi sunt fīliī et fīliae Eurōpae, Āfricae, Asiaeque?
\marginpar{
\begin{tikzpicture}[x=0.25\marginparwidth,y=3\baselineskip]
    \node[align=center] (mater) at (0,2) {māter\\ancilla};
    \node[align=center] (pater) at (2,2) {pater\\nōn\\servus};
    \node[align=center] (liberi) at (1,0) {filiae ancillae,\\filiī servī};
    \draw (mater.south) -- (0,1) -- (1,1) -- (liberi.north);
    \draw (pater.south) -- (2,1) -- (1,1);
\end{tikzpicture}
\vspace{3\baselineskip}
\\
\begin{tikzpicture}[x=0.25\marginparwidth,y=3\baselineskip]
    \node[align=center] (mater) at (0,2) {māter\\nōn\\ancilla};
    \node[align=center] (pater) at (2,2) {pater\\servus};
    \node[align=center] (liberi) at (1,0) {nōn ancillae,\\nōn servī};
    \draw (mater.south) -- (0,1) -- (1,1) -- (liberi.north);
    \draw (pater.south) -- (2,1) -- (1,1);
\end{tikzpicture}
}
Sunt in Rōmā: Sunt servī, sunt ancillae familiārum Rōmānārum. Magnus numerus servōrum ancillārumque in imperiō Rōmānō est. Virī Rōmānī dominī servōrum Graecōrum Hispānicōrum Britannicōrum cēterā\-rumque prōvinciārum sunt. Rōma domina multārum magnārum prōvinciārum est. Multae fēminae et multī virī prōvinciārum Rōmae ancillae et servī familiārum Rōmānārum sunt.

Līberī Iūliī Aemiliaeque nōn sunt servī, nōn sunt ancillae. Sed multī puerī sunt servī, multae puellae sunt ancillae in imperiō Rō\-mānō. Cuius fīlius servus est? Ancillae fīlius servus est. Estne fīlius servī servus quoque?

Germānia nōn est prōvincia Rōmāna. Suntne virī Germāniae dominī? Suntne servī? Suntne fēminae Germāniae dominae? Suntne ancillae?

\mychapter{}{LIBRI LIBERORVM}{AD CAPITVLVM II}
\marginpar{librī $\neq$ līberī}
Ecce liber antīquus. Est liber Iūliae. Quis est titulus librī puellae? ``Fēminae antīquae'' est. Quot vocābula in titulō librī antīquī sunt? Duo.

Ecce liber novus. Est liber Quīntī. Quis est titulus librī puerī? ``Virī imperiī Rōmānī'' est. Quot vocābula in titulō librī novī sunt? Tria sunt. Quot syllabae in vocābulō prīmō sunt? Duae sunt.
\marginpar{\marpic{0.5}{single-book.png}ūnus liber\\ūnī librī\vs{}\marpic{0.5}{two-books.png}duo librī\\duōrum librōrum} 

Iūlia et Quīntus fīlia fīliusque sunt. Fīliae et fīliī līberī sunt. Librī Iūliae Quīntīque librī līberōrum sunt.

Quot sunt librī līberōrum? Num trēs sunt? Nōn trēs, sed duo sunt. Quot sunt librī novī? Ūnus est.

Quot sunt pāginae librōrum līberōrum? Centum sunt. Quot sunt capitula in librō Iūliae? Sex sunt. Quot sunt vocābula in librō puerī? Mīlle sunt.

Quīntus: ``Ecce liber meus magnus est!''

Iūlia: ``Liber tuus nōn magnus, sed parvus est. Liber meus magnus est.''
\marginpar{\marpic{0.5}{child.png}ūnus …?\\ūnī …?\vs{}\marpic{0.5}{children.png}duo līberī\\duōrum līberōrum}

Quīntus: ``Pāginae librī meī multae sunt. Pāginae librī tuī paucae sunt.''

Iūlia: ``Sed pāginae librī meī magnae sunt, et pāginae librī tuī parvae sunt.''

Quī sunt titulī librōrum līberōrum? Suntne Iūlia Quīntusque līberī librōrum?

\mychapter{}{NVM DOMINVS PLORAT?}{AD CAPITVLVM III}
Batiātus dominus est. Dormit.

Naevia ancilla est. Naevia cantat. Iam nōn dormit Batiātus, quia eam audit. Īrātus est, venit eamque verberat. Naevia plōrat.

Crīxus servus est. Crīxus rīdet. Batiātus eum audit, et vocat: ``Servus nōn rīdet!'' Verberat Crīxum. Crīxus plōrat. Vocat Batiātus: ``Vir nōn plōrat!'' Verberat Crīxum. Iam Crīxus nōn plōrat.

Venit Spartacus, quī quoque servus est.

Spartacus videt Naeviam Crīxumque. Interrogat Crīxum: ``Cūr plōrat Naevia? Eamne Batiātus verberat?'' Respondet Crīxus: ``Eam verberat.'' Spartacus eum interrogat: ``Cūr Crīxus nōn verberat Batiātum? Vir probus verberat virum quī fēminam verberat!'' Crīxus respondet: ``Quia servus dominum nōn verberat.'' Spartacus īrātus est.

Dormit Batiātus. Venit Spartacus. Verberat Batiātum.
\marginpar{\emph{Quod} videt Naevia:\vs{0.5}\marpic{0.9}{beating.png}}

Venit Crīxus, videt Spartacum Batiātumque. Batiātus plōrat. Vocat Crīxus: ``Vir nōn plōrat!'' Iam rīdet Crīxus. Crīxus quoque verberat Batiātum.

Venit Naevia. Ecce servus verberat dominum, et plōrat dominus! Naevia rīdet cantatque. Naevia quoque verberat Batiātum. Vocat: ``Dominus quī plōrat et quem verberat servus nōn dominus, sed servus est! Iam Spartacus Crīxusque dominī sunt, et Naevia domina est, et Batiātus servus meus est! Hahahae!''

\mychapter{}{DOMINI NOVI}{AD CAPITVLVM IV}
Crīxus: ``Batiāte, ubi est pecūnia?''

Batiātus tacet. Spartacus sūmit baculum Batiātī, Batiātumque rūrsus verberat. Is vocat: ``Batiāte!'' Batiātus nullum vocābulum respondet, sed plōrat.

Naevia: ``Ecce sacculum eius! Vidē, hīc!'' Batiātus habet sacculum, Naevia eum sūmit.

Spartacus imperat: ``In mēnsā eum pōne!'' Naevia: ``Nōn sacculus tuus, sed meus est.'' Spartacus rūrsus imperat: ``Eum pōne!'' Naevia tacet, et pāret.

Sunt nummī in sacculō. Crīxus: ``Quot nummī sunt?'' Naevia numerat: ``Sunt decem nummī!'' Sunt laetī Spartacus, Crīxus, Naeviaque, quia numerus nummōrum magnus est.

Sed sunt trēs hominēs Naevia Spartacus Crīxusque. Quem numerum nummōrum habet unus homō?
\marginpar{\marpic{0.75}{vitruvian.png}homō, hominēs}

Sūmit Spartacus prīmum nummum. ``Sūme nummum secundum, Crīxe.'' Is sūmit. ``Sūme nummum tertium, Naevia.'' Sūmit.

Sunt septem nummī in sacculō. Rūrsus ūnum sūmit Spartacus, rūrsus sūmit ūnum Crīxus, rūrsus sūmit ūnum Naevia.

Sunt quattuor nummī in sacculō. Rūrsus ūnum sūmit Spartacus, rūrsus sūmit ūnum Crīxus, rūrsus sūmit ūnum Naevia.

Est ūnus nummus cēterus in sacculō. Cuius nummus est? Tacet Spartacus, tacet Crīxus, tacet Naevia.

Rīdet Crīxus, et sūmit nummum. Īrātus est Spartacus, īrāta est Naevia. Sūmit baculum Spartacus.

Sed ecce, pōnit Crīxus nummum in Batiātō. Iam rīdet Spartacus, iam rīdet Naevia. Crīxus: ``Probus servus est Batiātus. Batiāte, probe serve – sūme nummum tuum!'' Tacet Batiātus, sed pāret.
\end{document}
