X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/57dc61cf3e34d3acd054383842be40b974e2e2cf..4e329824f40367945de11d3647396859092f5c2c:/librarian/pdf/wl.cls?ds=sidebyside diff --git a/librarian/pdf/wl.cls b/librarian/pdf/wl.cls index 415e14a..88bef12 100644 --- a/librarian/pdf/wl.cls +++ b/librarian/pdf/wl.cls @@ -6,13 +6,14 @@ % % nofootnotes - disable generation of footnotes % nothemes - disable generation of themes +% defaultleading - default leading % onehalfleading - leading of 1.5 (interlinia) % doubleleading - double leading (interlinia) % a4paper,... - paper size as required by LaTeX % nowlfont - don't use customized WL font -%\usepackage{setspace} - +\RequirePackage{fixltx2e} +\RequirePackage{setspace} \RequirePackage{type1cm} \DeclareOption{13pt}{% \AtEndOfClass{% @@ -37,12 +38,76 @@ }% }% } +\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{defaultleading}{} \DeclareOption{doubleleading}{\AtBeginDocument{\doublespacing}}%\setlength{\leading}{1em plus 0.5ex minus 0.2ex}} \DeclareOption{onehalfleading}{\AtBeginDocument{\onehalfspacing}}%\setlength{\leading}{1em plus 0.5ex minus 0.2ex}} +%% This does not really work, since dvipdfm(x) will use it's configuration in /etc/texmf/dvipdfm(x) and force a global paper size setting. +\DeclareOption{a5paper}{% + \setlength{\paperheight}{210mm}% + \setlength{\paperwidth}{148mm}} + + \newif\ifshowfootnotes \showfootnotestrue \DeclareOption{nofootnotes}{\showfootnotesfalse} @@ -52,6 +117,15 @@ \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} @@ -66,10 +140,26 @@ \usepackage{xunicode} \usepackage{xltxtra} +\usepackage{longtable} +\usepackage{tabu} +\usepackage{unicode-math} +\setmathfont{Latin Modern Math} + \usepackage[overload]{textcase} \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, @@ -84,13 +174,27 @@ Scale=1.04, 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={ @@ -119,6 +223,8 @@ Letters={SmallCaps,UppercaseSmallCaps} \pagestyle{plain} \usepackage{fancyhdr} +\usepackage{marginnote} + \makeatletter @@ -129,6 +235,7 @@ Letters={SmallCaps,UppercaseSmallCaps} \usepackage{color} \definecolor{theme}{gray}{.3} +\ifmargins \setlength{\marginparsep}{2em} \setlength{\marginparwidth}{8.5em} \setlength{\oddsidemargin}{0pt} @@ -137,6 +244,14 @@ Letters={SmallCaps,UppercaseSmallCaps} \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{} @@ -208,6 +323,11 @@ Letters={SmallCaps,UppercaseSmallCaps} \vspace{.5em} \fi + \ifdefined\thanknote + \thanknote + \vspace{.5em} + \fi + Utwór opracowany został w ramach projektu \href{http://www.wolnelektury.pl/}{Wolne Lektury} przez \href{http://nowoczesnapolska.org.pl}{fundację Nowoczesna Polska}. @@ -226,6 +346,13 @@ Letters={SmallCaps,UppercaseSmallCaps} \color{theme} \noindent \rule{\linewidth}{0.4pt} + \ifdefined\sponsors + \marginnote{% + \centering% + \sponsors% + } + \fi + \rightsinfo \vspace{.6em} @@ -234,11 +361,50 @@ Letters={SmallCaps,UppercaseSmallCaps} \vspace{.6em} \sourceinfo + \publisherinfo + \description \vspace{.6em} \editors + \ifdefined\funders + \vspace{.6em} + \funders + \fi + + \ifdefined\coverby + \vspace{.6em} + \coverby + \fi + + \ifdefined\isbn + \vspace{.6em} + \isbn + \fi + + \vspace{.6em} + \emph{Wesprzyj Wolne Lektury!} + + Wolne Lektury to projekt fundacji Nowoczesna Polska – organizacji + pożytku publicznego działającej na rzecz wolności korzystania + z dóbr kultury. + + Co roku do domeny publicznej przechodzi twórczość kolejnych autorów. + Dzięki Twojemu wsparciu będziemy je mogli udostępnić wszystkim bezpłatnie. + + \vspace{.6em} + \emph{Jak możesz pomóc?} + + 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}. + + Przekaż darowiznę na konto: + \href{http://nowoczesnapolska.org.pl/pomoz-nam/wesprzyj-nas/}{szczegóły na stronie Fundacji}. + \color{black} } \end{figure} @@ -246,7 +412,11 @@ Letters={SmallCaps,UppercaseSmallCaps} \newcommand{\typosubsubsection}[1]{% +\iflargefont +{\textsc{\scalefont{2}#1}} +\else {\textsc{#1}} +\fi } \newcommand{\typosubsection}[1]{% @@ -254,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 }, - {Size={12-}, FakeStretch=1.0, LetterSpace=8.0 } + {Size={12-}, FakeStretch=2.0, LetterSpace=8.0 } }, Letters={Uppercase} } -\MakeUppercase{#1}} +\iflargefont +\MakeUppercase{\scalefont{2}#1} +\else +\MakeUppercase{#1} +\fi} } \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}} +\fi %{\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{\nazwapodutworu}[1]{% +\newcommand{\nazwapodutworu}[2]{% +\vspace{5ex}% \section*{\typosection{#1}}% +\addcontentsline{toc}{section}{#2}% +} + +\newcommand{\nazwanadpodutworu}[2]{% +\authortoc{}% +\nazwapodutworu{#1}{#2}% +\authortoc{}% } \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]{% +\vspace{5ex}% \section*{\typosection{#1}}% } @@ -306,7 +509,8 @@ Letters={Uppercase} \newcommand{\dramatwspolczesny}[1]{#1} \newcommand{\nota}[1]{% -\par{#1}% +\par{\raggedleft \emph{#1}}% +\vspace{5ex}% } \newcommand{\dedykacja}[1]{% @@ -317,6 +521,77 @@ Letters={Uppercase} \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% @@ -345,37 +620,46 @@ Letters={Uppercase} } \newcommand{\listaosoba}[1]{% -\item{#1}% +\item[]{#1}% } \newcommand{\kwestia}[1]{% \par{#1}% } -\newcommand{\naglowekakt}[1]{% +\newcommand{\naglowekakt}[2]{% \pagebreak -\subsection*{\typosubsection{#1}}% +\subsection*{\typosubsection{\huge #1}}% +\addcontentsline{toc}{subsection}{#2}% +\vspace{5ex}% } -\newcommand{\naglowekczesc}[1]{% +\newcommand{\naglowekczesc}[2]{% \pagebreak -\subsection*{\typosubsection{#1}}% +\subsection*{\typosubsection{\huge #1}}% +\addcontentsline{toc}{subsection}{#2}% +\vspace{5ex}% } \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]{% -\par{\textsc{#1}}\nopagebreak% +\medskip% +\par{\textsc{\MakeLowercase{#1}}}\nopagebreak% } \newcommand{\naglowekpodrozdzial}[1]{% -\par{#1}\nopagebreak% +\vspace{5ex}\par{#1}\nopagebreak% } \newcommand{\miejsceczas}[1]{% @@ -385,14 +669,32 @@ Letters={Uppercase} \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]{% -\par{#1}% +\par{\N#1}% } \newcommand{\akapdialog}[1]{% -\par{#1}% +\par{\N#1}% } \newcommand{\akapcd}[1]{% -\par{#1}% +\par{\N#1}% } \newcommand{\mottopodpis}[1]{% @@ -407,23 +709,26 @@ Letters={Uppercase} \par{\noindent{\ignorespaces#1\vspace{1em}}}% } -\newcommand{\wers}[1]{#1} +\newcommand{\wers}[1]{\Nw#1} \newcommand{\wersakap}[1]{% -\hspace*{1em}#1% +\Nw\hspace*{1em}#1% } \newcommand{\werscd}[1]{% -\hspace*{8em}#1% +\Nw\hspace*{8em}#1% } \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]}}} - \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]{} @@ -445,9 +750,17 @@ Letters={Uppercase} \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]{% -#1% +{\scshape \MakeLowercase{#1}}% } \newcommand{\sekcjaswiatlo}{% @@ -480,3 +793,8 @@ Letters={Uppercase} \fi } +\newcommand{\ilustr}[2]{% +\vspace{1em}% +\par{\noindent\includegraphics[width=\linewidth]{#1}}% +\vspace{1em} +}