Add swappable CSS for HTML previews.
[librarian.git] / librarian / pdf / wl.cls
index 82098ec..fb1c4e5 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,
 \newfontfamily\alien[
 SmallCapsFeatures = {Letters={SmallCaps,UppercaseSmallCaps}},
 Numbers=OldStyle,
@@ -103,6 +174,28 @@ Scale=1.04,
 LetterSpace=-1.0
 ] {JunicodeWL}
 
 LetterSpace=-1.0
 ] {JunicodeWL}
 
+%\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={
   {Size={-10.5}, FakeStretch=1.02, LetterSpace=2.0 },
 \defaultfontfeatures{
 SizeFeatures={
   {Size={-10.5}, FakeStretch=1.02, LetterSpace=2.0 },
@@ -142,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}
@@ -150,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{}
@@ -276,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!}
 
@@ -292,8 +399,7 @@ Letters={SmallCaps,UppercaseSmallCaps}
     Przekaż 1\% podatku na rozwój Wolnych Lektur:
     Fundacja Nowoczesna Polska, KRS 0000070056.
 
     Przekaż 1\% podatku na rozwój Wolnych Lektur:
     Fundacja Nowoczesna Polska, KRS 0000070056.
 
-    Pomóż uwolnić konkretną książkę, wspierając
-    \href{http://www.wolnelektury.pl/wesprzyj/}{zbiórkę na stronie wolnelektury.pl}.
+    Dołącz do \href{https://wolnelektury.pl/towarzystwo/}{Towarzystwa Przyjaciół Wolnych Lektur} i pomóż nam rozwijać bibliotekę.
 
     Przekaż darowiznę na konto:
     \href{http://nowoczesnapolska.org.pl/pomoz-nam/wesprzyj-nas/}{szczegóły na stronie Fundacji}.
 
     Przekaż darowiznę na konto:
     \href{http://nowoczesnapolska.org.pl/pomoz-nam/wesprzyj-nas/}{szczegóły na stronie Fundacji}.
@@ -305,7 +411,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]{%
@@ -313,37 +423,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}}%
 }
 
@@ -365,7 +508,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]{%
@@ -376,6 +520,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%
@@ -404,34 +619,43 @@ 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]{%
 \vspace{5ex}\par{#1}\nopagebreak%
 }
 \newcommand{\naglowekpodrozdzial}[1]{%
 \vspace{5ex}\par{#1}\nopagebreak%
@@ -495,6 +719,9 @@ Letters={Uppercase}
 \newcommand{\werswciety}[2][1em]{%
 \Nw\hspace*{#1}#2%
 }
 \newcommand{\werswciety}[2][1em]{%
 \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]}}}
@@ -522,9 +749,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}{%