Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
% \iffalse
%% ---------------------------------------------------------------------
%% Author: Max Planck Institute for the History of Science
%% (with contributions from le-tex publishing services)
%% Maintainer: Max Planck Institute for the History of Science
%%
%% This file is part of the eoa package for preparing
%% volumes to be published in the Edition Open Access series.
%%
%% Copyright 2019 Max Planck Institute for the History of Science
%%
%% ---------------------------------------------------------------------
% This file contains the documentations and source code for the
% eoa class for use with LaTeX2e. See the file 'README'
% for a list of all the files as well as directions for the
% installation of this package.
% ---------------------------------------------------------------------
%
%<*driver>
\ProvidesFile{eoa.dtx}
%</driver>
%<class>\NeedsTeXFormat{LaTeX2e}[2018/12/01]
%<class>\ProvidesClass{eoa}
%<*class>
[2019/11/28 v1.0 EOA publications]
%</class>
%<*driver>
\documentclass[a4paper]{ltxdoc}%
\topmargin\dimexpr-1in+10mm\relax
\advance\textheight36mm
\oddsidemargin0pt
\frenchspacing
\emergencystretch1em
\parindent0pt
\parskip\medskipamount
\makeatletter
\def\@listi{\leftmargin\leftmargini
\parsep\z@
\topsep\z@
\itemsep\z@}
\let\@listI\@listi
\@listi
\def\@listii{\leftmargin\leftmarginii
\labelwidth\leftmarginii
\advance\labelwidth-\labelsep
\parsep\z@
\topsep\z@
\itemsep\z@}
\clubpenalty\@M
\widowpenalty\@M
\def\@oddfoot{\reset@font\hfil\rlap{\hb@xt@\dimexpr\evensidemargin-\oddsidemargin{\hss\thepage}}}
\def\ps@plain{}
\let\ps@titlepage=\ps@plain
\makeatother
\def\hack#1{#1}
\setcounter{secnumdepth}{3}%
\setcounter{tocdepth}{3}%
\usepackage[T1]{fontenc}%
\usepackage{tgheros}%
\usepackage[breaklinks,colorlinks]{hyperref}%
\DisableCrossrefs%
%%\OnlyDescription%
\usepackage{color}%
\begin{document}
\DocInput{eoa.dtx}
\end{document}
%</driver>
%\fi
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
% Digits \0\1\2\3\4\5\6\7\8\9
% Exclamation \! Double quote \" Hash (number) \#
% Dollar \$ Percent \% Ampersand \&
% Acute accent \' Left paren \( Right paren \)
% Asterisk \* Plus \+ Comma \,
% Minus \- Point \. Solidus \/
% Colon \: Semicolon \; Less than \<
% Equals \= Greater than \> Question mark \?
% Commercial at \@ Left bracket \[ Backslash \\
% Right bracket \] Circumflex \^ Underscore \_
% Grave accent \` Left brace \{ Vertical bar \|
% Right brace \} Tilde \~}
%
% \GetFileInfo{eoa.dtx}
%
% \title{The \texttt{eoa} Class\,\thanks{This class file is based on \texttt{pre\_eoa.tex} by
% the Max Planck Institute for the History of Science; it was re-engineered by le-tex publishing
% services, Leipzig.\hfil\break%
% \hspace*{1.8em}This file has version number \fileversion, last revised \filedate.}}%
% \author{Edition Open Access}%
% \date{Printed \today}
% \maketitle
% \tableofcontents
%
% \section{Introduction}
%
% ...
%
% \section{Usage}
%
% Class options:
% \begin{itemize}
% \item The option |series| knows the values: |sources|, |studies|, |proceedings|, and |textbooks|.
% \item KOMA's option |bibliography=leveldown| should be used to format bibliographies on a
% per-chapter level. Usually, this option is chosen for anthologies.
% \item The option |biblatexstyle| knows the values: |eoa-numeric| (default) and |eoa-authoryear|.
% \end{itemize}
%
% ...
%
% \vskip\baselineskip
% \noindent Happy {\TeX}ing!\hfill Edition Open Access
%
% \StopEventually
%
% \section{Implementation}
%
% \subsection{Extensions for XeTeX}
%
% Some fixes concerning XeTeX and the n-dash
% \begin{macrocode}
%<*class>
\ifx\XeTeXcharclass\@undefined\else
\XeTeXinterchartokenstate=1
\XeTeXcharclass`\–=150
\XeTeXinterchartoks 150 0 = {\kern0em }
\fi
% \end{macrocode}
%
% \subsection{Extensions for newer luaTeX}
%
% \begin{macrocode}
\ifx\directlua\undefined\else\ifnum\luatexversion>84\relax
\IfFileExists{luatex85.sty}{\RequirePackage{luatex85}}{}
\fi\fi
% \end{macrocode}
%
% \subsection{Configuring TeX}
%
% Give more space per line, makes hyphenation better
% \begin{macrocode}
\AtEndOfClass{\emergencystretch3em}
% \end{macrocode}
%
% \subsection{Adapting \texttt{latex.ltx}}
%
% Providing |\@removefromreset| for older versions of the latex kernel:
% \begin{macrocode}
\@ifl@t@r\fmtversion{2018-11-30}{}{%
\def\@removefromreset#1#2{%
\@ifundefined{c@#2}\relax
{\begingroup
\expandafter\let\csname c@#1\endcsname\@removefromreset
\def\@elt##1{%
\expandafter\ifx\csname c@##1\endcsname\@removefromreset
\else
\noexpand\@elt{##1}%
\fi}%
\expandafter\xdef\csname cl@#2\endcsname
{\csname cl@#2\endcsname}%
\endgroup}}}
% \end{macrocode}
%
% No orphans and no widows in page breaking:
% \begin{macrocode}
\clubpenalty\@M
\widowpenalty\@M
\displaywidowpenalty\@M
% \end{macrocode}
%
% Increasing the scriptstyle size under |\footnotesize| a bit:
% \begin{macrocode}
\DeclareMathSizes{8}{6.5}{6}{5}
% \end{macrocode}
%
% \subsection{Loading \texttt{scrbook.cls}}
%
% The following scrbook-options are not available for \texttt{eoa.cls}:
% \begin{macrocode}
\RequirePackage{scrkbase}
\let\@classname\@currname
\def\option@not@supported@error{%
\ClassError{\@classname}
{Option "\CurrentOption" not supported}
{The option "\CurrentOption" from scrbook.cls is not supported by \@classname.cls.}}
\DeclareOption{a4paper}{\option@not@supported@error}
\DeclareOption{a5paper}{\option@not@supported@error}
\DeclareOption{b5paper}{\option@not@supported@error}
\DeclareOption{letterpaper}{\option@not@supported@error}
\DeclareOption{legalpaper}{\option@not@supported@error}
\DeclareOption{executivepaper}{\option@not@supported@error}
\DeclareOption{landscape}{\option@not@supported@error}
\DeclareOption{portrait}{\option@not@supported@error}
\DeclareOption{10pt}{\option@not@supported@error}
\DeclareOption{11pt}{\option@not@supported@error}
\DeclareOption{12pt}{\option@not@supported@error}
\DeclareOption{oneside}{\option@not@supported@error}
\DeclareOption{twoside}{\option@not@supported@error}
\DeclareOption{titlepage}{\option@not@supported@error}
\DeclareOption{notitlepage}{\option@not@supported@error}
\DeclareOption{onecolumn}{\option@not@supported@error}
\DeclareOption{twocolumn}{\option@not@supported@error}
\DeclareOption{DIV}{\option@not@supported@error}
\DeclareOption{BCOR}{\option@not@supported@error}
% \end{macrocode}
% And these options are still available: |draft|, |final|, |leqno|, |fleqn|, |openbib|, |bibstyle|,
% \dots.\\
% Note that the options |twoside|, |onecolumn|, |11pt|, |headings=openright|,
% |numbers=autoendperiod|, |parskip=false|, |headings=big| and |final| will be preset by
% |scrbook.cls|.
%
% A new option to select the EOA series:
% \begin{macrocode}
\KOMA@key{series}{%
\KOMA@set@ncmdkey{series}{@tempa}{%
{sources}{0},%
{studies}{1},%
{proceedings}{2},%
{textbooks}{3}%
}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed
\KOMA@kav@xreplacevalue{.eoa.cls}{series}{#1}%
\ifcase \@tempa\relax
\let\@series=o
\or
\let\@series=s
\or
\let\@series=p
\or
\let\@series=t
\fi
\fi}
% \end{macrocode}
%
% A new option to pass the EOA bibliography style from |\documentclass| to the \texttt{biblatex} package:
% \begin{macrocode}
\KOMA@key{biblatexstyle}{%
\KOMA@set@ncmdkey{biblatexstyle}{@tempa}{%
{eoa-numeric}{0},%
{eoa-authoryear}{1}%
}{#1}%
\ifx\FamilyKeyState\FamilyKeyStateProcessed
\KOMA@kav@xreplacevalue{.eoa.cls}{biblatexstyle}{#1}%
\ifcase \@tempa\relax
\let\@biblatexstyle=n
\or
\let\@biblatexstyle=a
\fi
\fi}
% \end{macrocode}
%
% Passing KOMA options, option execution, processing, and checking:
% \begin{macrocode}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrbook}}
\KOMAExecuteOptions{biblatexstyle=eoa-numeric}
\KOMAProcessOptions\relax
\ifx\@series\@undefined
\ClassError{\@classname}
{Wrong or no series given}
{The option "series" must be provided with one of the values:\MessageBreak
"sources", "studies", "proceedings" or "textbooks".}
\else
\ifx\@series o
\LoadClass[12pt]{scrbook}
\else
\LoadClass[10pt]{scrbook}
\fi
\fi
\ifx\@biblatexstyle n
\PassOptionsToPackage{style=eoa-numeric}{biblatex}
\else
\PassOptionsToPackage{style=eoa-authoryear}{biblatex}
\fi
% \end{macrocode}
%
% \subsection{Adapting \texttt{scrsize10.clo} / \texttt{scrsize12.clo}}
%
% \begin{macrocode}
\def\large{\@setfontsize\large\@xiipt{13.75}}
% \end{macrocode}
%
% \subsection{Adapting \texttt{scrbook.cls}}
%
% |\raggedbottom| switches off flushing pages:
% \begin{macrocode}
\raggedbottom
% \end{macrocode}
%
% for historical reasons:
% \begin{macrocode}
\topmargin\z@%0.36087\p@
\headheight12\p@
\headsep21\p@%18\p@
\textheight538\p@
\footskip42\p@
\textwidth373.44246\p@
% \end{macrocode}
%
% Formatting the headings:
% \begin{macrocode}
\KOMAoption{headings}{small}
\def\partheadstartvskip{\null\vskip\dimexpr-\baselineskip+2\p@}
\let\raggedpart\raggedleft
\def\thepart{\@arabic\c@part}
\def\partformat{\partname~\thepart:}
\def\partheadmidvskip{\space}
\KOMAoptions{chapterprefix}
\def\chapterheadstartvskip{\vspace*{-3.5\p@}}
\def\chapterheadmidvskip{\par\nobreak}
\def\chapterheadendvskip{\vskip6.5\baselineskip}
\def\sectionformat{\thesection\quad}
\def\subsectionformat{\thesubsection\quad}
\def\subsubsectionformat{\thesubsubsection\quad}
\setkomafont{part}{\normalfont\rmfamily\bfseries}
\setkomafont{partprefix}{\normalfont\rmfamily\bfseries}
\setkomafont{chapter}{\normalfont\rmfamily\large\bfseries}
\setkomafont{section}{\normalfont\rmfamily\bfseries}
\setkomafont{subsection}{\normalfont\rmfamily\bfseries}
\setkomafont{subsubsection}{\normalfont\rmfamily\bfseries}
% \end{macrocode}
%
% New command for author statement in headings:
% \begin{macrocode}
\newcommand\EOAauthor[1]{\hfill\null\@@par\textnormal{\textit{#1}}}
% \end{macrocode}
%
% Formatting the table of contents:
% \begin{macrocode}
\renewcommand\@pnumwidth{2em}
\def\@dotsep{2}
\def\@pnumwidth{1.55em}
\KOMAoption{toc}{numberline,flat,left,chapterentrywithdots}
\def\addparttocentry#1#2{%
\expandafter\addcontentsline
\expandafter{\ext@toc}{part}{\if!#1!\else\partname\space#1:\space\fi#2}}
\setkomafont{partentry}{\rmfamily\bfseries}
\setkomafont{chapterentry}{\rmfamily\bfseries}
\renewcommand*\set@l@number[1]{%
\settowidth{\@tempdima}{#1\hskip1.75em}%
\ifdim\@tempdima >\@l@number
\xdef\@l@number{\the\@tempdima}%
\fi%
\ifdim\@tempdima >\last@l@number \else
\setlength{\@tempdima}{\last@l@number}%
\fi}
\setkomafont{partentrypagenumber}{\mdseries}
\setkomafont{chapterentrypagenumber}{\mdseries}
% \end{macrocode}
%
% Configuring page styles:
% \begin{macrocode}
\def\chaptermarkformat{\thechapter.\space}
\setkomafont{pageheadfoot}{\normalfont\footnotesize}
\renewcommand*\ps@plain{%
\let\@oddhead\@empty
\let\@evenhead\@oddhead
\let\@oddfoot\@empty
\let\@evenfoot\@oddfoot}%
\renewcommand*\ps@headings{\let\@mkboth\markboth
\renewcommand*\@evenhead{%
\set@tempdima@hw\hss\hb@xt@ \@tempdima{\vbox{%
\hb@xt@ \@tempdima{{\headfont\pagemark\hfil\strut\leftmark}}%
\if@hsl \vskip 1.5\p@ \hrule \fi}}}%
\renewcommand*\@oddhead{%
\set@tempdima@hw\hb@xt@ \@tempdima{\vbox{%
\hb@xt@ \@tempdima{{\headfont\strut\rightmark\hfil\pagemark
\if@twoside\else\hfil\fi}}%
\if@hsl \vskip 1.5\p@ \hrule \fi}}\hss}%
\renewcommand*\@evenfoot{}%
\renewcommand*\@oddfoot{}%
\renewcommand*\chaptermark[1]{%
\if@twoside\markboth
{\MakeMarkcase{\Ifnumbered{chapter}{%
\if@mainmatter
\chaptermarkformat
\fi
}{}##1}}%
{\MakeMarkcase{\Ifnumbered{chapter}{%
\if@mainmatter
\chaptermarkformat
\fi
}{}##1}}%
\else
\markright
{\MakeMarkcase{\Ifnumbered{chapter}{%
\if@mainmatter
\chaptermarkformat
\fi
}{}##1}}%
\fi}%
\renewcommand*\sectionmark[1]{}%
}%
\pagestyle{headings}
\let\cleardoublepage\cleardoubleemptypage
% \end{macrocode}
%
% Depth of table of contents. If value = 0, |\listoffigures| will output nothing:
% \begin{macrocode}
\setcounter{tocdepth}{1}
% \end{macrocode}
%
% Silencing KOMA a bit, here: concerning the float package:
% \begin{macrocode}
\let\scr@float@addtolists@warning\relax
% \end{macrocode}
%
% \subsection{Providing and adapting packages}
%
% \subsubsection{Packages for general usage, already required by \texttt{eoa.cls}}
%
% Testing the operating system in use
% \begin{macrocode}
\usepackage{ifplatform}
% \end{macrocode}
%
% Basic packages used for if-else
% \begin{macrocode}
\usepackage{xifthen}
\newboolean{isxml}
\setboolean{isxml}{false}
% \end{macrocode}
%
% \subsubsection{Page layout}
%
% Definition of page dimensions depending on series:
% \begin{macrocode}
\usepackage[includehead]{geometry}
\ifx\@series o
\geometry{a4paper,inner=30mm,outer=30mm,top=14mm,bottom=20mm}
\else
\ifx\@series s
\geometry{paperwidth=170mm,paperheight=240mm,inner=22mm,outer=20mm,top=14mm,bottom=20mm}
\else%p or t
\geometry{paperwidth=148mm,paperheight=210mm,inner=20mm,outer=15mm,top=13mm,bottom=15mm}
\fi
\fi
% \end{macrocode}
%
% \subsubsection{Standard formula mark-up}
%
% \begin{macrocode}
\usepackage{amsmath}
% \end{macrocode}
%
% \subsubsection{Fonts}
%
% Activating the \texttt{fontspec} package for various fonts\\
% (Note that with luaotfload it might be easier to load fonts by name than from local folders, so in
% case of doubt copy them to |$TEXMFDIST| or to |.texlive20??|. On the other hand, with XeTeX it
% is easer to load fonts by file name.):
% \begin{macrocode}
\edef\@origparindent{\the\parindent}
\usepackage[no-math]{fontspec}
\ifx\XeTeXcharclass\@undefined
\parindent\@origparindent
\setmainfont{Times New Roman}[%
SmallCapsFont={TeX Gyre Termes},
SmallCapsFeatures={Letters=SmallCaps}]
\else
\setmainfont{Times New Roman}
\newfontfamily\tgtermes{TeX Gyre Termes}
\begingroup
\tgtermes
\DeclareFontShape{\f@encoding}{\rmdefault}{m}{sc}{%
<-> ssub * \f@family/m/sc}{}
\DeclareFontShape{\f@encoding}{\rmdefault}{bx}{sc}{%
<-> ssub * \f@family/bx/sc}{}
\endgroup
\fi
\let\germanfont\rmfamily
\let\englishfont\rmfamily
\let\italianfont\rmfamily
\let\frenchfont\rmfamily
\let\greekfont\rmfamily
\DeclareTextFontCommand{\EOAgreek}{\greekfont}
\let\russianfont\rmfamily
\DeclareTextFontCommand{\EOArussian}{\russianfont}
\let\hebrewfont\rmfamily
% \DeclareTextFontCommand{\EOAhebrew}{\hebrewfont}
\newfontfamily\churchslavonicfont{Bukyvede Light}
\DeclareTextFontCommand{\EOAchurchslavonic}{\churchslavonicfont}
\newfontfamily\EOAmfont{XITS Math}
\DeclareTextFontCommand{\EOAmathfont}{\EOAmfont}
% \end{macrocode}
%
% Those fonts are being used in Berlin only, no need for Windows:
% \begin{macrocode}
\ifwindows
\else
\newfontfamily\Courier{Courier}[%
ItalicFont=Courier Oblique,
BoldFont=Courier Bold,
BoldItalicFont=Courier Bold Oblique]
\newfontfamily\Helvetica{Helvetica}[%
ItalicFont=Helvetica Oblique,
BoldFont=Helvetica Bold,
BoldItalicFont=Helvetica Bold Oblique,
FontFace={l}{m}{Helvetica Light},
FontFace={l}{m}{Helvetica Light Oblique}]
\fi
% \end{macrocode}
%
% Activate Unicode-Support
% \begin{macrocode}
\ifx\XeTeXcharclass\@undefined\else
\usepackage{xunicode}
\usepackage[no-sscript]{xltxtra}
\fi
% \end{macrocode}
%
% Definition of fonts for Chinese based on OS
% \begin{macrocode}
\ifwindows
\newfontfamily\zhfont{DFKai-SB}
\newfontfamily\zhpunctfont{DFKai-SB}
\else
\newfontfamily\zhfont{Noto Serif CJK SC}
\newfontfamily\zhpunctfont{Noto Serif CJK SC}
\fi
\let\chinesefont\zhfont
\DeclareTextFontCommand{\textchinese}{\chinesefont}
% \end{macrocode}
%
% The \texttt{zhspacing} package makes typesetting Chinese much better
% \begin{macrocode}
\ifx\XeTeXcharclass\@undefined\else
\usepackage{zhspacing}
\zhspacing
\XeTeXcharclass`“=6
\XeTeXcharclass`”=6
\XeTeXcharclass`‘=6
\XeTeXcharclass`’=6
\XeTeXcharclass`’=6
\XeTeXcharclass`…=6
\fi
% \end{macrocode}
% so, assigning explicit character classes for CJK ambiguous characters
%
% amsfonts and similar produce broken PDF X/4 - we need unicode-math
% and use the font XITS-Math (https://github.com/khaledhosny/xits-math)
% \begin{macrocode}
\usepackage[bold-style=TeX,math-style=TeX]{unicode-math}
\setmathfont[active-frac=small]{XITS Math}
\ifx\XeTeXcharclass\@undefined
\setmathfont[version=bold]{XITS Math}
\else
\setmathfont[version=bold,FakeBold=1.5]{XITS Math}
\fi
% \end{macrocode}
%
% \subsubsection{Letter spacing}
%
% \begin{macrocode}
% \end{macrocode}
%
% \subsubsection{Quotation facilities}
%
% \begin{macrocode}
\usepackage[autostyle]{csquotes}
% \end{macrocode}
%
% \subsubsection{Lists}
%
% Formatting lists:
% \begin{macrocode}
\usepackage{paralist}
\pltopsep\medskipamount
% \end{macrocode}
%
% Environment for lists, if optional argument is given, it starts at another number
% \begin{macrocode}
\newenvironment{EOAlist}[1][]
{\begin{compactenum}
\ifthenelse{\equal{#1}{}}{}{\setcounter{enumi}{#1-1}}}
{\end{compactenum}}
% \end{macrocode}
%
% Descriptions:
% \begin{macrocode}
\renewcommand\descriptionlabel[1]{\hspace{\labelsep}\emph{#1}}
% \end{macrocode}
%
% \subsubsection{Footnotes}
%
% Formatting footnotes:
% \begin{macrocode}
\usepackage[flushmargin]{footmisc}
\setlength{\footnotemargin}{2.4mm}
% \end{macrocode}
%
% \begin{macrocode}
\usepackage{bigfoot}
\footnotewidowpenalty=\@M
\footnoteclubpenalty=\@M
\usepackage{alphalph}
\DeclareNewFootnote{arabic}[arabic]
\DeclareNewFootnote{alph}[alph]
\renewcommand\thefootnotealph{\emph{\alphalph{\value{footnotealph}}}}
% \end{macrocode}
%allow for more than 26 alpha-numbered footnotes per chapter
%(aa,ab,ac,...)
%
% \subsubsection{Mathematical mark-up}
%
% \begin{macrocode}
\usepackage{braket}
\usepackage{slashed}
% \end{macrocode}
%
% \subsubsection{Chemical mark-up}
%
% \begin{macrocode}
\usepackage[version=3]{mhchem}
% \end{macrocode}
%
% \subsubsection{Color}
%
% \begin{macrocode}
\usepackage{color}
% \end{macrocode}
%
% \subsubsection{Language settings}
%
% The \texttt{polyglossia} package is being used instead of \texttt{babel}.
% \begin{macrocode}
\usepackage{polyglossia}
\addto\captionsgerman{\def\figurename{Abb.}}
% \end{macrocode}
%
% \subsubsection{Breakable boxes}
%
% \begin{macrocode}
\usepackage{framed}
\definecolor{shadecolor}{gray}{0.9}
% \end{macrocode}
%
% \subsubsection{Theorem-like environments}
%
% \begin{macrocode}
\usepackage{amsthm}
% \end{macrocode}
%
% \subsubsection{Graphics}
%
% Including graphics:
% \begin{macrocode}
\usepackage{graphicx}
% \end{macrocode}
%
% A macro for inline figures |\EOAinline{File}|:
% \begin{macrocode}
\newcommand\EOAinline[1]{\includegraphics[height=0.85em,keepaspectratio]{#1}}
% \end{macrocode}
%
% \subsubsection{Tabulars}
%
% Standard tabular packages and three new column types (flush left, centered, and flush right -- all
% with width statement):
% \begin{macrocode}
\usepackage{array}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}}
\usepackage{multirow}
\usepackage{tabularx}
\usepackage{longtable}
\usepackage{booktabs}
\setlength\lightrulewidth{1.2pt}
% \end{macrocode}
% so, middle rule should be thicker, therefore redefining |\lightrulewidth| for |\midrule|
%
% \subsubsection{Float objects}
%
% The \texttt{caption} package:
% \begin{macrocode}
\usepackage[singlelinecheck=false,font=small,format=hang,justification=raggedright]{caption}
% \end{macrocode}
%
% The \texttt{pdflscape} package:\\
% (or try the \texttt{rotating} package)
% \begin{macrocode}
\usepackage{pdflscape}
% \end{macrocode}
%
% The \texttt{float} provides the |H| float specifier:
% \begin{macrocode}
\usepackage{float}
% \end{macrocode}
%
% \begin{macrocode}
\usepackage[innercaption]{sidecap}
% \end{macrocode}
%
% The \texttt{footnote} package is needed to typeset footnotes in captions:
% \begin{macrocode}
\usepackage{footnote}
\makesavenoteenv[figure*]{figure}
\makesavenoteenv[SCfigure*]{SCfigure}
% \end{macrocode}
%
% For hyperimage: increment counter of figures
% https://tex.stackexchange.com/questions/474807/how-can-i-access-and-store-the-current-value-of-a-counter/474955\#474949
% \begin{macrocode}
\newcounter{hionlycounter}
\newcommand\hionlyfigid[1]{%
\setcounter{hionlycounter}{\value{figure}}%
% \setcounter{hionlycounter}{\value{counterA}}%
% \stepcounter{hionlycounter}%
% the following must be \edef or \protected@edef if you have
% more material that would fail in \edef such as \textbf
\expandafter\edef\csname data:#1\endcsname{%
\noexpand{\arabic{hionlycounter}}}}
\newcommand\hionlyfignumber[1]{\csname data:#1\endcsname}
% \end{macrocode}
%
% Macro for non numbered Figure: |\EOAfigurenonumber{File}{Width}{Position}|
% \begin{macrocode}
\newcommand\EOAfigurenonumber[3]{%
\begin{figure*}[#3]%
\centering
\includegraphics[width=0.#2\textwidth]{#1}%
\end{figure*}}
% \end{macrocode}
%
% Macro for figure: |\EOAfigure[shortCaption]{File}{Caption}{Label}{Width}{Position}|
% \begin{macrocode}
\def\EOAfigure{\@ifnextchar[{\@figoption}{\@figoption[x]}}
\def\@figoption[#1]#2#3#4#5#6{%
\begin{figure*}[#6]%
\centering
\includegraphics[width=0.#5\textwidth]{#2}%
\if#1x\relax
\caption{#3}%
\else
\caption[#1]{#3}%
\fi
\label{#4}%
\end{figure*}}
% \end{macrocode}
%
% Macro for figure width caption beside:\hfill\break
% |\EOAsidecaptionfigure[shortCaption]{File}{Caption}{Label}{Width}{Position}|
% \begin{macrocode}
\def\EOAsidecaptionfigure{\@ifnextchar[{\@sidecapoption}{\@sidecapoption[x]}}
\def\@sidecapoption[#1]#2#3#4#5#6{%
\begin{SCfigure*}[][#6]
\centering
\includegraphics[width=0.#5\textwidth]{#2}%
\if#1x\relax
\caption{#3}%
\else
\caption[#1]{#3}%
\fi
\label{#4}%
\end{SCfigure*}}
% \end{macrocode}
%
% Macro for landscape figure: |\EOAfigure[shortCaption]{File}{Caption}{Label}{Width}|
% \begin{macrocode}
\def\EOAlsfigure{\@ifnextchar[{\@lsfigoption}{\@lsfigoption[x]}}
\def\@lsfigoption[#1]#2#3#4#5{%
\begin{landscape}%
\vbox{%
\centering
\includegraphics[width=0.#5\hsize]{#2}%
\captionsetup{hypcap=false}%
\if#1x\relax
\captionof{figure}{#3}%
\else
\captionof{figure}[#1]{#3}%
\fi
\label{#3}}%
\end{landscape}}
% \end{macrocode}
%
% Macro for facsimile: |\EOAfacsimile{File}{Label}|\\
% |\EOAfacsimile[pb0049]{facsim/0049.jpg}{facsimile0049}{First facsimile page extended}|
% \begin{macrocode}
\def\EOAfacsimile{\@ifnextchar[{\@backref}{\@backref[x]}}
\def\@backref[#1]#2#3#4{%
\markboth{#4}{#4}%
\begin{figure}[H]
\centering
\label{#3}%
\includegraphics[width=0.9\textwidth]{#2}%
\if#1x\relax\else
\captionsetup{font=footnotesize}%
\caption*{See transcription on page \pageref{#1}.}%
\fi
\end{figure}%
\clearpage}
% \end{macrocode}
%
%Tables:
% \begin{macrocode}
\newcommand\EOAtablehead[2][1]{#2\\\midrule}
\def\str@nonumber{nonumber}
\def\str@blank{blank}
\newenvironment{EOAtable}[5][1]
{\def\@tempa{#3}\ifx\@tempa\str@nonumber% if the caption is equal to 'no number', then omit caption and label
\let\tmpEOAtablecaption\relax
\let\tmpEOAtablelable\relax
\else% if the caption is not equal to 'no number', then use caption and label
\def\tmpEOAtablecaption{\caption{#3}}%
\def\tmpEOAtablelable{\label{#4}}%
\fi
\begin{table}[#5]
\centering
\tmpEOAtablecaption
\tmpEOAtablelable
\def\@tempa{#1}\ifx\@tempa\str@blank%if the optional parameter is "blank" then omit borders
\let\tmpEOAtablebottomborder\@empty
\begin{tabular}{#2}%
\else% if the optional parameter is not "blank" or missing then enable borders
\let\tmpEOAtablebottomborder\bottomrule
\begin{tabular}{#2}%
\toprule
\fi}
{\tmpEOAtablebottomborder
\end{tabular}
\end{table}}
% \end{macrocode}
%
% \subsubsection{Bibliography}
%
% \begin{macrocode}
\usepackage[backend=biber,mincitenames=1,maxcitenames=3,maxbibnames=100,%
dateabbrev=false,urldate=long]{biblatex}%
% \end{macrocode}
%
% Settings depending on the refsection level and on the \texttt{biblatex} style:
% \begin{macrocode}
\ifbib@leveldown
\ExecuteBibliographyOptions{refsection=chapter}
\else
\ExecuteBibliographyOptions{autolang=hyphen,datecirca=true}
\ifx\@biblatexstyle a
\ExecuteBibliographyOptions{dateuncertain=true,dateera=christian}
\fi
\fi
% \end{macrocode}
%
% Formatting the bibliographies:
% \begin{macrocode}
\defbibheading{none}[]{}
\def\blx@default@theheading{none}
\renewcommand*\bibfont{\footnotesize}
% \end{macrocode}
%
% \subsubsection{Index}
%
% Using the \texttt{imakeidx} package.\\
% set |noautomatic=true| to disable generation of |.ind| file (in case you made manual changes there)
% \begin{macrocode}
\usepackage{imakeidx}
\makeindex[name=keywords,title=Subject Index,options=-s texfiles/eoa.ist, noautomatic=false]
\makeindex[name=persons,title=Name Index,options=-s texfiles/eoa.ist, noautomatic=false]
\makeindex[name=locations,title=Index of Locations,options=-s texfiles/eoa.ist]
% \end{macrocode}
%
% Some abbreviations:
% \begin{macrocode}
\newcommand\EOAindex[1]{\index[keywords]{#1}}
\newcommand\EOAindexperson[1]{\index[persons]{#1}}
\newcommand\EOAindexlocation[1]{\index[locations]{#1}}
% \end{macrocode}
%
% \subsubsection{URLs and Hyper-linking}
%
% For tagging URLs:
% \begin{macrocode}
\usepackage{url}
\urlstyle{rm}
% \end{macrocode}
%
% Hyper-linking:
% \begin{macrocode}
\usepackage[colorlinks=false,
%% urlcolor=SteelBlue4,
%% linkcolor=DarkSlateGrey,
pdfusetitle,
pdfdisplaydoctitle=true,
pdfstartpage={1}, %what page to start at
pdfstartview={FitH}, %% zoom to pagewidth
]{hyperref}
\ifHy@draft\else
\pdfstringdefDisableCommands{%
\let\unskip\relax
\let\hfill\relax
\let\null\relax
\let\@@par\relax}
\fi
% \end{macrocode}
%
% \subsection{Further mark-up for EOA}
%
% \subsubsection{New Environment for bilingual double-sided transcription}
%
% \begin{macrocode}
\let\@EOAtranscriptionheader\@empty
\def\EOAtranscriptionheader#1{\def\@EOAtranscriptionheader{#1}}
\newenvironment{EOAtranscription}[2]
{\clearpage
\if@twoside\ifodd\c@page\hbox{}\thispagestyle{empty}\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi
\def\@EOAtranscriptionheader{%
\noindent
\makebox[\textwidth][c]{\footnotesize\MakeUppercase{#2}}\vspace*{0.5cm}\\}%
\expandafter\def\expandafter\newpage\expandafter{\newpage\@EOAtranscriptionheader}%
\noindent\makebox[\textwidth][c]{\footnotesize\MakeUppercase{#1}}\vspace*{0.5cm}\\}
{\par
\ifdim\prevdepth>\z@
\vskip -%
\ifdim\prevdepth>\maxdepth
\maxdepth
\else
\prevdepth
\fi
\fi
\vfil
\penalty-\@M}
% \end{macrocode}
%
%\subsubsection{Letter}
%
% (Work in Progress)
% \begin{macrocode}
\newcommand\EOAletterhead[4]{%
\begin{framed}
\noindent
\emph{#1}\\
\emph{#2}\\
\emph{#3}, \emph{#4}
\end{framed}}
\let\kopf\@firstofone
\let\kurz\@firstofone
%</class>
% \end{macrocode}
%
% \subsection{The accompanying biblatex styles}
%
% \subsubsection{The bibliography styles}
%
% The numeric style:
% \begin{macrocode}
%<*bbxn>
\ProvidesFile{eoa-numeric.bbx}[2019/10/18 v0.5 EOA publications]
\RequireBibliographyStyle{numeric-comp}
\ExecuteBibliographyOptions{sorting=none,autolang=hyphen}
%</bbxn>
% \end{macrocode}
%
% The author-year style:
% \begin{macrocode}
%<*bbxa>
\ProvidesFile{eoa-authoryear.bbx}[2019/10/18 v0.5 EOA publications]
\RequireBibliographyStyle{authoryear}
%</bbxa>
% \end{macrocode}
%
% Adaptions for both styles:\\
% Remove pp from references
% \begin{macrocode}
%<*bbxn|bbxa>
\DeclareFieldFormat{postnote}{#1}
% \end{macrocode}
%
% Remove quotation marks from certain titles
% \begin{macrocode}
\DeclareFieldFormat[thesis]{title}{\mkbibemph{#1}}
\DeclareFieldFormat[article]{title}{#1}
\DeclareFieldFormat[incollection]{title}{#1}
\DeclareFieldFormat[inproceedings]{title}{#1}
\DeclareFieldFormat[inbook]{title}{\mkbibemph{#1}}
\DeclareFieldFormat{title}{\mkbibemph{#1}}
% \end{macrocode}
%
% Remove pp from bibliography at all
% \begin{macrocode}
\DeclareFieldFormat{pages}{#1}%
% Remove parentheses around urldate
\DeclareFieldFormat{urldate}{\bibstring{urlseen}\space#1}
\renewbibmacro*{url+urldate}{%
\usebibmacro{url}\addcomma\addspace%
\usebibmacro{urldate}%
}
% \end{macrocode}
%
% make namedash longer
% https://tex.stackexchange.com/questions/239369/modify-the-dash-in-biblatex-ibid
% \begin{macrocode}
\setlength\bibhang{3.5em}
\renewcommand*\bibnamedash{%
\ifdimless{\leftmargin}{0.75em}
{\mbox{\textemdash\space}}
{\makebox[\leftmargin][l]{%
\ifdimless{\leftmargin}{1.25em}
{\textendash}
{\rule[0.2em]{4em}{0.05em}}}}}
% \end{macrocode}
%
% Remove "In:" from articles
% \begin{macrocode}
\renewbibmacro{in:}{%
\ifentrytype{article}{}{%
\printtext{\bibstring{in}\intitlepunct}}}
% \end{macrocode}
%
% Delete Vol. as prefix
% \begin{macrocode}
\DeclareFieldFormat*{volume}{#1}
% \end{macrocode}
%
% Use : for pages of an article, use . for the rest
% \begin{macrocode}
\renewcommand*\bibpagespunct{%
\ifentrytype{article}%
{%
\iffieldundef{Number}%
{\addcolon\hspace{0pt}}%
{}%
}%
{,\space}}
% \end{macrocode}
%
% Group Volume and Issue in {Brackets}
% \begin{macrocode}
\renewbibmacro*{journal+issuetitle}{%
\usebibmacro{journal}%
\setunit*{\addspace}%
\iffieldundef{series}
{}
{\newunit
\printfield{series}%
\setunit{\addspace}}%
\printfield{volume}%
\iffieldundef{number}
{}
{\printtext[parens]{\printfield{number}}}%
\setunit{\addcomma\space}%
\printfield{eid}%
\setunit{\addspace}%
\usebibmacro{issue+date}%
\setunit{\addcolon\space}%
\usebibmacro{issue}%
\newunit}
%</bbxn|bbxa>
% \end{macrocode}
%
% \subsubsection{The citation styles}
%
% The numeric style:
% \begin{macrocode}
%<*cbxn>
\ProvidesFile{eoa-numeric.cbx}[2019/10/18 v0.5 EOA publications]
\RequireCitationStyle{numeric-comp}
%</cbxn>
% \end{macrocode}
%
% The author-year style:
% \begin{macrocode}
%<*cbxa>
\ProvidesFile{eoa-authoryear.cbx}[2019/10/18 v0.5 EOA publications]
\RequireCitationStyle{authoryear}
% \end{macrocode}
%
% origdate, thanks to https://tex.stackexchange.com/questions/134644/how-to-get-automatically-origdate-with-the-date-in-a-citation
% \begin{macrocode}
\DeclareFieldFormat{origdate}{\mkbibbrackets{#1}}
\renewbibmacro*{cite:labeldate+extradate}{%
\iffieldundef{origyear}
{}
{\printorigdate
\setunit{\addspace}}%
\iffieldundef{labelyear}
{}
{\printtext[bibhyperref]{\printlabeldateextra}}}
\DeclareCiteCommand{\citeorigyear}
{\boolfalse{citetracker}%
\boolfalse{pagetracker}%
\usebibmacro{prenote}}
{\printfield{origyear}}
{\multicitedelim}
{\usebibmacro{postnote}}
\renewbibmacro*{date+extradate}{%
\iffieldundef{origyear}
{}
{\printorigdate
\setunit{\addspace}}%
\iffieldundef{labelyear}
{}
{\printtext[parens]{%
\iflabeldateisdate
{\printdateextra}
{\printlabeldateextra}}}}
%</cbxa>
% \end{macrocode}
%
% Adaptions for both styles:\\
% \begin{macrocode}
%<*cbxn|cbxa>
\DeclareFieldFormat{shorthand}{\textbf{#1}}
%</cbxn|cbxa>
% \end{macrocode}
%
% \subsection{The style files for index generation}
%
% \subsubsection{For the \texttt{Makeindex} program}
% \begin{macrocode}
%<*ist>
headings_flag 1
heading_prefix "\\par\\penalty-50\\textbf{"
heading_suffix "}\\\\\*\~\\\\\*"
symhead_positive "Symbols"
symhead_negative "symbols"
numhead_positive "Numbers"
numhead_negative "numbers"
delim_0 ",\~"
%</ist>
% \end{macrocode}
%
% \subsubsection{For the \texttt{Xindy} program}
% \begin{macrocode}
%<*xdy>
;; $Id: .xdy,v 1.0 2012/12/05 11:23:17 eoa Exp $ -*- Lisp -*-
;; ------------------------------------------------------------
;;
;; Xindy-Style, for index processing according to the eoa class.
;;
(markup-locclass-list :open ",~" :sep ", ")
;;
%</xdy>
% \end{macrocode}
% \Finale
\endinput