Python 3.4-3.7 support;
[librarian.git] / librarian / pdf / wl.cls
index a802e20..88bef12 100644 (file)
@@ -12,6 +12,7 @@
 % a4paper,... - paper size as required by LaTeX
 % nowlfont - don't use customized WL font
 
 % a4paper,... - paper size as required by LaTeX
 % nowlfont - don't use customized WL font
 
+\RequirePackage{fixltx2e}
 \RequirePackage{setspace}
 \RequirePackage{type1cm}
 \DeclareOption{13pt}{%
 \RequirePackage{setspace}
 \RequirePackage{type1cm}
 \DeclareOption{13pt}{%
 }%
 }%
 }
 }%
 }%
 }
+\DeclareOption{16pt}{%
+\AtEndOfClass{%
+% font size definitions, similar to ones in /usr/share/texmf-texlive/tex/latex/base/
+\renewcommand\normalsize{%
+   \@setfontsize\normalsize{16pt}{18pt}%
+   \abovedisplayskip 15\p@ \@plus3\p@ \@minus7\p@
+   \abovedisplayshortskip \z@ \@plus3.5\p@
+   \belowdisplayshortskip 8\p@ \@plus4\p@ \@minus3\p@
+   \belowdisplayskip \abovedisplayskip
+   \let\@listi\@listI}\normalsize%
+\renewcommand\footnotesize{%
+   \@setfontsize\footnotesize\@xpt\@xiipt
+   \abovedisplayskip 12\p@ \@plus2\p@ \@minus5\p@
+   \abovedisplayshortskip \z@ \@plus3.5\p@
+   \belowdisplayshortskip 7\p@ \@plus3.5\p@ \@minus3\p@
+   \def\@listi{\leftmargin\leftmargini
+               \topsep 7\p@ \@plus2.5\p@ \@minus2.5\p@
+               \parsep 3.5\p@ \@plus2.5\p@ \@minus\p@
+               \itemsep \parsep}%
+   \belowdisplayskip \abovedisplayskip
+}%
+}%
+}
+
+\newif\iflargefont
+\largefontfalse
+
+\DeclareOption{26pt}{%
+\largefonttrue
+\AtEndOfClass{%
+% font size definitions, similar to ones in /usr/share/texmf-texlive/tex/latex/base/
+\renewcommand\normalsize{%
+   \@setfontsize\normalsize{26pt}{31pt}%
+   \abovedisplayskip 14\p@ \@plus6\p@ \@minus14\p@
+   \abovedisplayshortskip \z@ \@plus6\p@
+   \belowdisplayshortskip 13\p@ \@plus7\p@ \@minus6\p@
+   \belowdisplayskip \abovedisplayskip
+   \let\@listi\@listI}\normalsize%
+   \setlength{\parindent}{1.5em}%
+\renewcommand\footnotesize{%
+   \@setfontsize\footnotesize{15pt}{20pt}
+   \abovedisplayskip 20\p@ \@plus4\p@ \@minus10\p@
+   \abovedisplayshortskip \z@ \@plus6\p@
+   \belowdisplayshortskip 12\p@ \@plus6\p@ \@minus6\p@
+   \def\@listi{\leftmargin\leftmargini
+               \topsep 12\p@ \@plus4\p@ \@minus4\p@
+               \parsep 6\p@ \@plus4\p@ \@minus\p@
+               \itemsep \parsep}%
+   \belowdisplayskip \abovedisplayskip
+}%
+\renewcommand\LARGE{\@setfontsize\LARGE{41pt}{50pt}}%
+\renewcommand\huge{\@setfontsize\huge{49pt}{60pt}}%
+}%
+}
+
+%  not supported on texlive version on jessie, and has weird side effects in some readers
+%% \XeTeXgenerateactualtext=1
 
 %% \DeclareOption{14pt}{\renewcommand{\normalsize}{\AtEndOfClass{\fontsize{14}{17}\selectfont}}}
 
 
 %% \DeclareOption{14pt}{\renewcommand{\normalsize}{\AtEndOfClass{\fontsize{14}{17}\selectfont}}}
 
 \newif\ifenablewlfont \enablewlfonttrue
 \DeclareOption{nowlfont}{\enablewlfontfalse}
 
 \newif\ifenablewlfont \enablewlfonttrue
 \DeclareOption{nowlfont}{\enablewlfontfalse}
 
+\newif\ifshowtoc \showtoctrue
+\DeclareOption{notoc}{\showtocfalse}
+
+%\newif\ifsansfont \sansfontfalse
+%\DeclareOption{sansfont}{\sansfonttrue}
+
+\newif\ifmargins \marginstrue
+\DeclareOption{nomargins}{\marginsfalse}
+
 \DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}}
 \ProcessOptions\relax
 \LoadClass[a4paper,oneside]{book}
 \DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}}
 \ProcessOptions\relax
 \LoadClass[a4paper,oneside]{book}
 \usepackage{scalefnt}
 \usepackage[colorlinks=true,linkcolor=black,setpagesize=false,urlcolor=black,xetex]{hyperref}
 
 \usepackage{scalefnt}
 \usepackage[colorlinks=true,linkcolor=black,setpagesize=false,urlcolor=black,xetex]{hyperref}
 
+%\ifsansfont
+%\renewcommand{\familydefault}{\sfdefault}
+%\fi
+
+\newfontfamily\alien[
+SmallCapsFeatures = {Letters={SmallCaps,UppercaseSmallCaps}},
+Numbers=OldStyle,
+Scale=0.85,
+LetterSpace=-1.0
+] {DejaVu Serif}
+
 \ifenablewlfont
 \setmainfont [
 %ExternalLocation,
 \ifenablewlfont
 \setmainfont [
 %ExternalLocation,
@@ -96,13 +174,27 @@ Scale=1.04,
 LetterSpace=-1.0
 ] {JunicodeWL}
 
 LetterSpace=-1.0
 ] {JunicodeWL}
 
-\newfontfamily\alien[
-SmallCapsFeatures = {Letters={SmallCaps,UppercaseSmallCaps}},
-Numbers=OldStyle,
-Scale=0.85,
-LetterSpace=-1.0
-] {DejaVu Serif}
-
+%\setmainfont [
+%UprightFont = NotoSerif-Regular,
+%ItalicFont = NotoSerif-Italic,
+%BoldFont = NotoSerif-Regular,
+%BoldItalicFont = NotoSerif-Italic,
+%SmallCapsFont = NotoSerif-Regular,
+%SmallCapsFeatures = {Letters={SmallCaps,UppercaseSmallCaps}},
+%Scale=1.04,
+%LetterSpace=-1.0
+%] {NotoSerif}
+
+%\setsansfont [
+%UprightFont = NotoSansDisplay-Regular,
+%ItalicFont = NotoSansDisplay-Italic,
+%BoldFont = NotoSansDisplay-Regular,
+%BoldItalicFont = NotoSansDisplay-Italic,
+%SmallCapsFont = NotoSansDisplay-Regular,
+%SmallCapsFeatures = {Letters={SmallCaps,UppercaseSmallCaps}},
+%Scale=1.04,
+%LetterSpace=-1.0
+%] {NotoSansDisplay}
 
 \defaultfontfeatures{
 SizeFeatures={
 
 \defaultfontfeatures{
 SizeFeatures={
@@ -143,6 +235,7 @@ Letters={SmallCaps,UppercaseSmallCaps}
 \usepackage{color}
 \definecolor{theme}{gray}{.3}
 
 \usepackage{color}
 \definecolor{theme}{gray}{.3}
 
+\ifmargins
 \setlength{\marginparsep}{2em}
 \setlength{\marginparwidth}{8.5em}
 \setlength{\oddsidemargin}{0pt}
 \setlength{\marginparsep}{2em}
 \setlength{\marginparwidth}{8.5em}
 \setlength{\oddsidemargin}{0pt}
@@ -151,6 +244,14 @@ Letters={SmallCaps,UppercaseSmallCaps}
 \setlength{\headheight}{0pt}
 \setlength{\headsep}{0pt}
 \setlength{\textheight}{24cm}
 \setlength{\headheight}{0pt}
 \setlength{\headsep}{0pt}
 \setlength{\textheight}{24cm}
+\else
+\addtolength{\oddsidemargin}{-.875in}
+\addtolength{\evensidemargin}{-.875in}
+\addtolength{\textwidth}{1.75in}
+
+\addtolength{\topmargin}{-.875in}
+\addtolength{\textheight}{1.5in}
+\fi
 
 \pagestyle{fancy}
 \fancyhf{}
 
 \pagestyle{fancy}
 \fancyhf{}
@@ -260,6 +361,8 @@ Letters={SmallCaps,UppercaseSmallCaps}
     \vspace{.6em}
     \sourceinfo
 
     \vspace{.6em}
     \sourceinfo
 
+    \publisherinfo
+
     \description
     \vspace{.6em}
 
     \description
     \vspace{.6em}
 
@@ -275,6 +378,11 @@ Letters={SmallCaps,UppercaseSmallCaps}
         \coverby
     \fi
 
         \coverby
     \fi
 
+    \ifdefined\isbn
+        \vspace{.6em}
+        \isbn
+    \fi
+
     \vspace{.6em}
     \emph{Wesprzyj Wolne Lektury!}
 
     \vspace{.6em}
     \emph{Wesprzyj Wolne Lektury!}
 
@@ -304,7 +412,11 @@ Letters={SmallCaps,UppercaseSmallCaps}
 
 
 \newcommand{\typosubsubsection}[1]{%
 
 
 \newcommand{\typosubsubsection}[1]{%
+\iflargefont
+{\textsc{\scalefont{2}#1}}
+\else
 {\textsc{#1}}
 {\textsc{#1}}
+\fi
 }
 
 \newcommand{\typosubsection}[1]{%
 }
 
 \newcommand{\typosubsection}[1]{%
@@ -312,37 +424,70 @@ Letters={SmallCaps,UppercaseSmallCaps}
 SizeFeatures={
   {Size={-10}, Scale=1.2, FakeStretch=1.00, LetterSpace=8.0 },
   {Size={10.5-12}, Scale=1.2, FakeStretch=1.00, LetterSpace=8.0 },
 SizeFeatures={
   {Size={-10}, Scale=1.2, FakeStretch=1.00, LetterSpace=8.0 },
   {Size={10.5-12}, Scale=1.2, FakeStretch=1.00, LetterSpace=8.0 },
-  {Size={12-}, FakeStretch=1.0, LetterSpace=8.0 }
+  {Size={12-}, FakeStretch=2.0, LetterSpace=8.0 }
 },
 Letters={Uppercase}
 }
 },
 Letters={Uppercase}
 }
-\MakeUppercase{#1}}
+\iflargefont
+\MakeUppercase{\scalefont{2}#1}
+\else
+\MakeUppercase{#1}
+\fi}
 }
 
 \newcommand{\typosection}[1]{%
 }
 
 \newcommand{\typosection}[1]{%
+\iflargefont
+{\addfontfeature{FakeStretch=0.96, LetterSpace=-4.0}\emph{\scalefont{4}#1}}
+\else
 {\addfontfeature{FakeStretch=0.96, LetterSpace=-4.0}\emph{\scalefont{2}#1}}
 {\addfontfeature{FakeStretch=0.96, LetterSpace=-4.0}\emph{\scalefont{2}#1}}
+\fi
 %{\addfontfeature{Scale=2.0, FakeStretch=0.98, LetterSpace=-2.0}\emph{#1}}
 }
 
 
 %{\addfontfeature{Scale=2.0, FakeStretch=0.98, LetterSpace=-2.0}\emph{#1}}
 }
 
 
+\DeclareRobustCommand\authortoctext[1]{%
+{\addvspace{10pt}\nopagebreak\leftskip0em\relax
+\rightskip \@tocrmarg\relax
+\noindent\itshape#1\par}}
+
+\newcommand\authortoc[1]{%
+  \gdef\chapterauthor{#1}%
+  \addtocontents{toc}{\authortoctext{#1}}}
+
+
 \newcommand{\tytul}[1]{%
 #1%
 \vspace{1em}%
 }
 
 \newcommand{\tytul}[1]{%
 #1%
 \vspace{1em}%
 }
 
-\newcommand{\nazwapodutworu}[1]{%
+\newcommand{\nazwapodutworu}[2]{%
+\vspace{5ex}%
 \section*{\typosection{#1}}%
 \section*{\typosection{#1}}%
+\addcontentsline{toc}{section}{#2}%
+}
+
+\newcommand{\nazwanadpodutworu}[2]{%
+\authortoc{}%
+\nazwapodutworu{#1}{#2}%
+\authortoc{}%
 }
 
 \newcommand{\autorutworu}[1]{%
 \subsection*{\typosubsection{#1}}%
 }
 
 }
 
 \newcommand{\autorutworu}[1]{%
 \subsection*{\typosubsection{#1}}%
 }
 
+\newcommand{\autorpodutworu}[1]{%
+\vspace{5ex}%
+\subsection*{\typosubsection{#1}}%
+\authortoc{#1}%
+}
+
 \newcommand{\dzielonadrzedne}[1]{%
 \subsection*{\typosubsubsection{#1}}%
 }
 
 \newcommand{\nazwautworu}[1]{%
 \newcommand{\dzielonadrzedne}[1]{%
 \subsection*{\typosubsubsection{#1}}%
 }
 
 \newcommand{\nazwautworu}[1]{%
+\vspace{5ex}%
 \section*{\typosection{#1}}%
 }
 
 \section*{\typosection{#1}}%
 }
 
@@ -364,7 +509,8 @@ Letters={Uppercase}
 \newcommand{\dramatwspolczesny}[1]{#1}
 
 \newcommand{\nota}[1]{%
 \newcommand{\dramatwspolczesny}[1]{#1}
 
 \newcommand{\nota}[1]{%
-\par{#1}%
+\par{\raggedleft \emph{#1}}%
+\vspace{5ex}%
 }
 
 \newcommand{\dedykacja}[1]{%
 }
 
 \newcommand{\dedykacja}[1]{%
@@ -375,6 +521,77 @@ Letters={Uppercase}
 \end{em}%
 }
 
 \end{em}%
 }
 
+\newlength{\fboxhsep}
+\newlength{\fboxvsep}
+
+\newlength{\fboxtoprule}
+\newlength{\fboxbottomrule}
+\newlength{\fboxleftrule}
+\newlength{\fboxrightrule}
+
+\ifshowthemes
+\setlength{\fboxhsep}{5\fboxsep}
+\setlength{\fboxvsep}{20\fboxsep}
+\fi
+
+\setlength{\fboxtoprule}{\fboxrule}
+\setlength{\fboxleftrule}{\fboxrule}
+\setlength{\fboxrightrule}{\fboxrule}
+\setlength{\fboxbottomrule}{\fboxrule}
+
+
+
+\def\@frameb@xother#1{%
+  \@tempdima\fboxtoprule
+  \advance\@tempdima\fboxvsep
+  \advance\@tempdima\dp\@tempboxa
+  \hbox{%
+    \lower\@tempdima\hbox{%
+      \vbox{%
+        \hrule\@height\fboxtoprule
+        \hbox{%
+          \vrule\@width\fboxleftrule
+          #1%
+          \vbox{%
+            \vskip\fboxvsep
+            \box\@tempboxa
+            \vskip\fboxvsep}%
+          #1%
+          \vrule\@width\fboxrightrule}%
+        \hrule\@height\fboxbottomrule}%
+    }%
+  }%
+}
+
+
+\long\def\fboxother#1{%
+  \leavevmode
+  \setbox\@tempboxa\hbox{%
+    \color@begingroup
+    \kern\fboxhsep{#1}\kern\fboxhsep
+    \color@endgroup}%
+  \@frameb@xother\relax}
+
+\newcommand{\myfbox}[3]{%
+  \begingroup
+  \setlength{\fboxhsep}{#1}
+  \setlength{\fboxvsep}{#2}
+  \fboxother{#3}
+
+  \endgroup
+}
+
+\newcommand{\ramka}[1]{%
+\par\vspace{1em}%
+\edef\myindent{\the\parindent}%
+\noindent\myfbox{1em}{1em}{%
+\parbox{\dimexpr \textwidth - 2\fboxhsep - 2\fboxrule\relax}{%
+\setlength{\parindent}{\myindent}%
+#1%
+}}%
+\vspace{1em}%
+}
+
 \newcommand{\dlugicytat}[1]{%
 \begin{quotation}%
 #1%
 \newcommand{\dlugicytat}[1]{%
 \begin{quotation}%
 #1%
@@ -403,37 +620,46 @@ Letters={Uppercase}
 }
 
 \newcommand{\listaosoba}[1]{%
 }
 
 \newcommand{\listaosoba}[1]{%
-\item{#1}%
+\item[]{#1}%
 }
 
 \newcommand{\kwestia}[1]{%
 \par{#1}%
 }
 
 }
 
 \newcommand{\kwestia}[1]{%
 \par{#1}%
 }
 
-\newcommand{\naglowekakt}[1]{%
+\newcommand{\naglowekakt}[2]{%
 \pagebreak
 \pagebreak
-\subsection*{\typosubsection{#1}}%
+\subsection*{\typosubsection{\huge #1}}%
+\addcontentsline{toc}{subsection}{#2}%
+\vspace{5ex}%
 }
 }
-\newcommand{\naglowekczesc}[1]{%
+\newcommand{\naglowekczesc}[2]{%
 \pagebreak
 \pagebreak
-\subsection*{\typosubsection{#1}}%
+\subsection*{\typosubsection{\huge #1}}%
+\addcontentsline{toc}{subsection}{#2}%
+\vspace{5ex}%
 }
 \newcommand{\srodtytul}[1]{%
 \subsection*{\typosubsection{#1}}%
 }
 
 }
 \newcommand{\srodtytul}[1]{%
 \subsection*{\typosubsection{#1}}%
 }
 
-\newcommand{\naglowekscena}[1]{%
-\subsubsection*{\typosubsubsection{#1}}%
+\newcommand{\naglowekscena}[2]{%
+\subsubsection*{\typosubsubsection{\LARGE #1}}%
+\addcontentsline{toc}{subsubsection}{#2}%
+\vspace{5ex}%
 }
 }
-\newcommand{\naglowekrozdzial}[1]{%
-\subsubsection*{\typosubsubsection{#1}}%
+\newcommand{\naglowekrozdzial}[2]{%
+\subsubsection*{\typosubsubsection{\LARGE #1}}%
+\addcontentsline{toc}{subsubsection}{#2}%
+\vspace{5ex}%
 }
 
 \newcommand{\naglowekosoba}[1]{%
 }
 
 \newcommand{\naglowekosoba}[1]{%
-\par{\textsc{#1}}\nopagebreak%
+\medskip%
+\par{\textsc{\MakeLowercase{#1}}}\nopagebreak%
 }
 \newcommand{\naglowekpodrozdzial}[1]{%
 }
 \newcommand{\naglowekpodrozdzial}[1]{%
-\par{#1}\nopagebreak%
+\vspace{5ex}\par{#1}\nopagebreak%
 }
 
 \newcommand{\miejsceczas}[1]{%
 }
 
 \newcommand{\miejsceczas}[1]{%
@@ -443,14 +669,32 @@ Letters={Uppercase}
 \par{\emph{#1}}%
 }
 
 \par{\emph{#1}}%
 }
 
+\usepackage{intcalc}
+\usepackage{color}
+\definecolor{gray}{RGB}{200,200,200}
+%\newcounter{parnum}
+\newlength{\parnumwidth}
+\setlength{\parnumwidth}{3em}
+\newcommand{\N}{%
+  \leavevmode\refstepcounter{parnum}\reversemarginpar%
+  \marginnote{\textcolor{gray}{\small{\theparnum}}}%
+  \reversemarginpar}
+\newcommand{\Nw}{%
+  \leavevmode\refstepcounter{parnum}\reversemarginpar%
+  \ifnum\intcalcMod{\value{parnum}}{5}=0%
+  \marginnote{\textcolor{gray}{\small{\theparnum}}}%
+  \fi\reversemarginpar}
+\renewcommand{\N}{}
+\renewcommand{\Nw}{}
+
 \newcommand{\akap}[1]{%
 \newcommand{\akap}[1]{%
-\par{#1}%
+\par{\N#1}%
 }
 \newcommand{\akapdialog}[1]{%
 }
 \newcommand{\akapdialog}[1]{%
-\par{#1}%
+\par{\N#1}%
 }
 \newcommand{\akapcd}[1]{%
 }
 \newcommand{\akapcd}[1]{%
-\par{#1}%
+\par{\N#1}%
 }
 
 \newcommand{\mottopodpis}[1]{%
 }
 
 \newcommand{\mottopodpis}[1]{%
@@ -465,23 +709,26 @@ Letters={Uppercase}
 \par{\noindent{\ignorespaces#1\vspace{1em}}}%
 }
 
 \par{\noindent{\ignorespaces#1\vspace{1em}}}%
 }
 
-\newcommand{\wers}[1]{#1}
+\newcommand{\wers}[1]{\Nw#1}
 
 \newcommand{\wersakap}[1]{%
 
 \newcommand{\wersakap}[1]{%
-\hspace*{1em}#1%
+\Nw\hspace*{1em}#1%
 }
 \newcommand{\werscd}[1]{%
 }
 \newcommand{\werscd}[1]{%
-\hspace*{8em}#1%
+\Nw\hspace*{8em}#1%
 }
 \newcommand{\werswciety}[2][1em]{%
 }
 \newcommand{\werswciety}[2][1em]{%
-\hspace*{#1}#2%
+\Nw\hspace*{#1}#2%
+}
+\newcommand{\wersdoprawej}[1]{%
+\Nw\hspace*{\fill}#1%
 }
 
 \ifshowfootnotes
   \newcommand{\pa}[1]{\NoCaseChange{\footnote{#1 [przypis autorski]}}}
 }
 
 \ifshowfootnotes
   \newcommand{\pa}[1]{\NoCaseChange{\footnote{#1 [przypis autorski]}}}
-  \newcommand{\pe}[1]{\NoCaseChange{\footnote{#1}}}
-  \newcommand{\pr}[1]{\NoCaseChange{\footnote{#1}}}
-  \newcommand{\pt}[1]{\NoCaseChange{\footnote{#1}}}
+  \newcommand{\pe}[1]{\NoCaseChange{\footnote{#1 [przypis edytorski]}}}
+  \newcommand{\pr}[1]{\NoCaseChange{\footnote{#1 [przypis redakcyjny]}}}
+  \newcommand{\pt}[1]{\NoCaseChange{\footnote{#1 [przypis tĹ‚umacza]}}}
 \else
   \newcommand{\pa}[1]{}
   \newcommand{\pe}[1]{}
 \else
   \newcommand{\pa}[1]{}
   \newcommand{\pe}[1]{}
@@ -503,9 +750,17 @@ Letters={Uppercase}
 \newcommand{\wyroznienie}[1]{%
 \emph{#1}%
 }
 \newcommand{\wyroznienie}[1]{%
 \emph{#1}%
 }
+\newcommand{\indeksdolny}[1]{%
+\textsubscript{#1}%
+}
+\newcommand{\wiekszeodstepy}[1]{%
+\spaceskip 3\fontdimen2\font plus 3\fontdimen3\font minus 3\fontdimen4\font \relax%
+#1%
+\spaceskip \fontdimen2\font plus \fontdimen3\font minus \fontdimen4\font \relax%
+}
 
 \newcommand{\osoba}[1]{%
 
 \newcommand{\osoba}[1]{%
-#1%
+{\scshape \MakeLowercase{#1}}%
 }
 
 \newcommand{\sekcjaswiatlo}{%
 }
 
 \newcommand{\sekcjaswiatlo}{%
@@ -538,3 +793,8 @@ Letters={Uppercase}
 \fi
 }
 
 \fi
 }
 
+\newcommand{\ilustr}[2]{%
+\vspace{1em}%
+\par{\noindent\includegraphics[width=\linewidth]{#1}}%
+\vspace{1em}
+}