1 % -*- coding: utf-8 -*-
2 \NeedsTeXFormat{LaTeX2e}
3 \ProvidesClass{wl}[2011/11/28 wolnelektury.pl book style]
7 % nofootnotes - disable generation of footnotes
8 % nothemes - disable generation of themes
9 % defaultleading - default leading
10 % onehalfleading - leading of 1.5 (interlinia)
11 % doubleleading - double leading (interlinia)
12 % a4paper,... - paper size as required by LaTeX
13 % nowlfont - don't use customized WL font
15 \RequirePackage{fixltx2e}
16 \RequirePackage{setspace}
17 \RequirePackage{type1cm}
18 \DeclareOption{13pt}{%
20 % font size definitions, similar to ones in /usr/share/texmf-texlive/tex/latex/base/
21 \renewcommand\normalsize{%
22 \@setfontsize\normalsize{13pt}{14.5pt}%
23 \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@
24 \abovedisplayshortskip \z@ \@plus3\p@
25 \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
26 \belowdisplayskip \abovedisplayskip
27 \let\@listi\@listI}\normalsize%
28 \renewcommand\footnotesize{%
29 \@setfontsize\footnotesize\@xpt\@xiipt
30 \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
31 \abovedisplayshortskip \z@ \@plus3\p@
32 \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
33 \def\@listi{\leftmargin\leftmargini
34 \topsep 6\p@ \@plus2\p@ \@minus2\p@
35 \parsep 3\p@ \@plus2\p@ \@minus\p@
37 \belowdisplayskip \abovedisplayskip
41 \DeclareOption{16pt}{%
43 % font size definitions, similar to ones in /usr/share/texmf-texlive/tex/latex/base/
44 \renewcommand\normalsize{%
45 \@setfontsize\normalsize{16pt}{18pt}%
46 \abovedisplayskip 15\p@ \@plus3\p@ \@minus7\p@
47 \abovedisplayshortskip \z@ \@plus3.5\p@
48 \belowdisplayshortskip 8\p@ \@plus4\p@ \@minus3\p@
49 \belowdisplayskip \abovedisplayskip
50 \let\@listi\@listI}\normalsize%
51 \renewcommand\footnotesize{%
52 \@setfontsize\footnotesize\@xpt\@xiipt
53 \abovedisplayskip 12\p@ \@plus2\p@ \@minus5\p@
54 \abovedisplayshortskip \z@ \@plus3.5\p@
55 \belowdisplayshortskip 7\p@ \@plus3.5\p@ \@minus3\p@
56 \def\@listi{\leftmargin\leftmargini
57 \topsep 7\p@ \@plus2.5\p@ \@minus2.5\p@
58 \parsep 3.5\p@ \@plus2.5\p@ \@minus\p@
60 \belowdisplayskip \abovedisplayskip
68 \DeclareOption{26pt}{%
71 % font size definitions, similar to ones in /usr/share/texmf-texlive/tex/latex/base/
72 \renewcommand\normalsize{%
73 \@setfontsize\normalsize{26pt}{31pt}%
74 \abovedisplayskip 14\p@ \@plus6\p@ \@minus14\p@
75 \abovedisplayshortskip \z@ \@plus6\p@
76 \belowdisplayshortskip 13\p@ \@plus7\p@ \@minus6\p@
77 \belowdisplayskip \abovedisplayskip
78 \let\@listi\@listI}\normalsize%
79 \setlength{\parindent}{1.5em}%
80 \renewcommand\footnotesize{%
81 \@setfontsize\footnotesize{15pt}{20pt}
82 \abovedisplayskip 20\p@ \@plus4\p@ \@minus10\p@
83 \abovedisplayshortskip \z@ \@plus6\p@
84 \belowdisplayshortskip 12\p@ \@plus6\p@ \@minus6\p@
85 \def\@listi{\leftmargin\leftmargini
86 \topsep 12\p@ \@plus4\p@ \@minus4\p@
87 \parsep 6\p@ \@plus4\p@ \@minus\p@
89 \belowdisplayskip \abovedisplayskip
91 \renewcommand\LARGE{\@setfontsize\LARGE{41pt}{50pt}}%
92 \renewcommand\huge{\@setfontsize\huge{49pt}{60pt}}%
96 \XeTeXgenerateactualtext=1
98 %% \DeclareOption{14pt}{\renewcommand{\normalsize}{\AtEndOfClass{\fontsize{14}{17}\selectfont}}}
100 \DeclareOption{defaultleading}{}
101 \DeclareOption{doubleleading}{\AtBeginDocument{\doublespacing}}%\setlength{\leading}{1em plus 0.5ex minus 0.2ex}}
102 \DeclareOption{onehalfleading}{\AtBeginDocument{\onehalfspacing}}%\setlength{\leading}{1em plus 0.5ex minus 0.2ex}}
104 %% 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.
105 \DeclareOption{a5paper}{%
106 \setlength{\paperheight}{210mm}%
107 \setlength{\paperwidth}{148mm}}
110 \newif\ifshowfootnotes \showfootnotestrue
111 \DeclareOption{nofootnotes}{\showfootnotesfalse}
113 \newif\ifshowthemes \showthemestrue
114 \DeclareOption{nothemes}{\showthemesfalse}
116 \newif\ifenablewlfont \enablewlfonttrue
117 \DeclareOption{nowlfont}{\enablewlfontfalse}
119 \newif\ifshowtoc \showtoctrue
120 \DeclareOption{notoc}{\showtocfalse}
122 \newif\ifsansfont \sansfontfalse
123 \DeclareOption{sansfont}{\sansfonttrue}
125 \newif\ifmargins \marginstrue
126 \DeclareOption{nomargins}{\marginsfalse}
128 \DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}}
129 \ProcessOptions\relax
130 \LoadClass[a4paper,oneside]{book}
135 \usepackage[MeX]{polski}
137 \usepackage[xetex]{graphicx}
138 \usepackage{fontspec}
139 \usepackage{xunicode}
142 \usepackage{longtable}
144 \usepackage{unicode-math}
145 \setmathfont{Latin Modern Math}
147 \usepackage[overload]{textcase}
148 \usepackage{scalefnt}
149 \usepackage[colorlinks=true,linkcolor=black,setpagesize=false,urlcolor=black,xetex]{hyperref}
152 \renewcommand{\familydefault}{\sfdefault}
155 \newfontfamily\alien[
156 SmallCapsFeatures = {Letters={SmallCaps,UppercaseSmallCaps}},
165 UprightFont = JunicodeWL-Regular,
166 ItalicFont = JunicodeWL-Italic,
167 BoldFont = JunicodeWL-Regular,
168 BoldItalicFont = JunicodeWL-Italic,
169 SmallCapsFont = JunicodeWL-Regular,
170 SmallCapsFeatures = {Letters={SmallCaps,UppercaseSmallCaps}},
177 %UprightFont = NotoSerif-Regular,
178 %ItalicFont = NotoSerif-Italic,
179 %BoldFont = NotoSerif-Regular,
180 %BoldItalicFont = NotoSerif-Italic,
181 %SmallCapsFont = NotoSerif-Regular,
182 %SmallCapsFeatures = {Letters={SmallCaps,UppercaseSmallCaps}},
188 UprightFont = NotoSansDisplay-Regular,
189 ItalicFont = NotoSansDisplay-Italic,
190 BoldFont = NotoSansDisplay-Regular,
191 BoldItalicFont = NotoSansDisplay-Italic,
192 SmallCapsFont = NotoSansDisplay-Regular,
193 SmallCapsFeatures = {Letters={SmallCaps,UppercaseSmallCaps}},
198 \defaultfontfeatures{
200 {Size={-10.5}, FakeStretch=1.02, LetterSpace=2.0 },
201 {Size={10.5-12}, FakeStretch=2.00, LetterSpace=0.0 },
202 {Size={12-}, FakeStretch=0.98, LetterSpace=-2.0 }
206 \renewcommand{\textsc}[1]{%
209 {Size={-10.5}, Scale=1.2, FakeStretch=1.02, LetterSpace=8.0 },
210 {Size={10.5-12}, Scale=1.2, FakeStretch=1.02, LetterSpace=8.0 },
211 {Size={12-}, FakeStretch=1.0, LetterSpace=8.0 }
213 Letters={SmallCaps,UppercaseSmallCaps}
219 %{\Itshape JunicodeWL-Italic.ttf }
220 %{\bfseries Junicode-Bold.ttf }
221 %{\bfseries\itshape Junicode-BoldItalic.ttf }
224 \usepackage{fancyhdr}
225 \usepackage{marginnote}
230 % bottom figure below footnotes
235 \definecolor{theme}{gray}{.3}
238 \setlength{\marginparsep}{2em}
239 \setlength{\marginparwidth}{8.5em}
240 \setlength{\oddsidemargin}{0pt}
241 \setlength{\voffset}{0pt}
242 \setlength{\topmargin}{0pt}
243 \setlength{\headheight}{0pt}
244 \setlength{\headsep}{0pt}
245 \setlength{\textheight}{24cm}
247 \addtolength{\oddsidemargin}{-.875in}
248 \addtolength{\evensidemargin}{-.875in}
249 \addtolength{\textwidth}{1.75in}
251 \addtolength{\topmargin}{-.875in}
252 \addtolength{\textheight}{1.5in}
257 \renewcommand{\headrulewidth}{0pt}
258 \renewcommand{\footrulewidth}{0pt}
259 \lfoot{{\footnotesize \textsc{\@author} \emph{\@title}}}
261 \rfoot{{\footnotesize \thepage}}
267 % see http://osdir.com/ml/tex.xetex/2005-10/msg00003.html
268 \newsavebox{\ximagebox}\newlength{\ximageheight}
269 \newsavebox{\xglyphbox}\newlength{\xglyphheight}
270 \newcommand{\xbox}[1]
271 {\savebox{\ximagebox}{#1}\settoheight{\ximageheight}{\usebox {\ximagebox}}%
272 \savebox{\xglyphbox}{\char32}\settoheight{\xglyphheight}{\usebox {\xglyphbox}}%
273 \raisebox{\ximageheight}[0pt][0pt]{%\raisebox{-\xglyphheight}[0pt] [0pt]{%
274 \makebox[0pt][l]{\usebox{\xglyphbox}}}%}%
276 \raisebox{0pt}[0pt][0pt]{\makebox[0pt][r]{\usebox{\xglyphbox}}}}
278 \newcommand{\makecover}[2]{
282 \thispagestyle{empty}
283 \newlength{\PictHOffset}
284 \newlength{\PictVOffset}
285 \setlength{\PictHOffset}{1in}
286 \addtolength{\PictHOffset}{\hoffset}
287 \addtolength{\PictHOffset}{\oddsidemargin}
289 \setlength{\PictVOffset}{1in}
290 \addtolength{\PictVOffset}{\voffset}
291 \addtolength{\PictVOffset}{\topmargin}
292 \addtolength{\PictVOffset}{\headheight}
293 \addtolength{\PictVOffset}{\headsep}
294 \addtolength{\PictVOffset}{\topskip}
295 \addtolength{\PictVOffset}{-\pdfpageheight}
297 \noindent\hspace*{-\PictHOffset}%
298 \raisebox{\PictVOffset}[0pt][0pt]{\makebox[0pt][l]{%
299 \includegraphics[height=\pdfpageheight,width=\pdfpagewidth]{cover.png}}}
302 \setlength{\pdfpagewidth}{210mm}
303 \setlength{\pdfpageheight}{297mm}
307 \renewcommand{\maketitle}{
309 \thispagestyle{empty}
313 \noindent \begin{minipage}[t]{.35\textwidth}\vspace{0pt}
314 \href{http://www.wolnelektury.pl}{\xbox{\includegraphics[width=\textwidth]{wl-logo.png}}}
316 \begin{minipage}[t]{.65\textwidth}\vspace{0pt}
318 \ifflaglessadvertising
320 \href{\bookurl}{Ta lektura}, podobnie jak tysiące innych, jest dostępna on-line na stronie
321 \href{http://www.wolnelektury.pl/}{wolnelektury.pl}.
330 Utwór opracowany został w ramach projektu \href{http://www.wolnelektury.pl/}{Wolne Lektury}
331 przez \href{http://nowoczesnapolska.org.pl}{fundację Nowoczesna Polska}.
334 \noindent \rule{\linewidth}{0.4pt}
341 \newcommand{\editorialsection}{
346 \noindent \rule{\linewidth}{0.4pt}
358 Źródło: \href{\bookurl}{\bookurl}
386 \emph{Wesprzyj Wolne Lektury!}
388 Wolne Lektury to projekt fundacji Nowoczesna Polska – organizacji
389 pożytku publicznego działającej na rzecz wolności korzystania
392 Co roku do domeny publicznej przechodzi twórczość kolejnych autorów.
393 Dzięki Twojemu wsparciu będziemy je mogli udostępnić wszystkim bezpłatnie.
396 \emph{Jak możesz pomóc?}
398 Przekaż 1\% podatku na rozwój Wolnych Lektur:
399 Fundacja Nowoczesna Polska, KRS 0000070056.
401 Pomóż uwolnić konkretną książkę, wspierając
402 \href{http://www.wolnelektury.pl/wesprzyj/}{zbiórkę na stronie wolnelektury.pl}.
404 Przekaż darowiznę na konto:
405 \href{http://nowoczesnapolska.org.pl/pomoz-nam/wesprzyj-nas/}{szczegóły na stronie Fundacji}.
413 \newcommand{\typosubsubsection}[1]{%
415 {\textsc{\scalefont{2}#1}}
421 \newcommand{\typosubsection}[1]{%
424 {Size={-10}, Scale=1.2, FakeStretch=1.00, LetterSpace=8.0 },
425 {Size={10.5-12}, Scale=1.2, FakeStretch=1.00, LetterSpace=8.0 },
426 {Size={12-}, FakeStretch=2.0, LetterSpace=8.0 }
431 \MakeUppercase{\scalefont{2}#1}
437 \newcommand{\typosection}[1]{%
439 {\addfontfeature{FakeStretch=0.96, LetterSpace=-4.0}\emph{\scalefont{4}#1}}
441 {\addfontfeature{FakeStretch=0.96, LetterSpace=-4.0}\emph{\scalefont{2}#1}}
443 %{\addfontfeature{Scale=2.0, FakeStretch=0.98, LetterSpace=-2.0}\emph{#1}}
447 \DeclareRobustCommand\authortoctext[1]{%
448 {\addvspace{10pt}\nopagebreak\leftskip0em\relax
449 \rightskip \@tocrmarg\relax
450 \noindent\itshape#1\par}}
452 \newcommand\authortoc[1]{%
453 \gdef\chapterauthor{#1}%
454 \addtocontents{toc}{\authortoctext{#1}}}
457 \newcommand{\tytul}[1]{%
462 \newcommand{\nazwapodutworu}[2]{%
464 \section*{\typosection{#1}}%
465 \addcontentsline{toc}{section}{#2}%
468 \newcommand{\nazwanadpodutworu}[2]{%
470 \nazwapodutworu{#1}{#2}%
474 \newcommand{\autorutworu}[1]{%
475 \subsection*{\typosubsection{#1}}%
478 \newcommand{\autorpodutworu}[1]{%
480 \subsection*{\typosubsection{#1}}%
484 \newcommand{\dzielonadrzedne}[1]{%
485 \subsection*{\typosubsubsection{#1}}%
488 \newcommand{\nazwautworu}[1]{%
490 \section*{\typosection{#1}}%
493 \newcommand{\podtytul}[1]{%
494 \subsection*{\typosubsubsection{#1}}%
497 \newcommand{\translator}[1]{%
498 \subsection*{\typosubsubsection{tłum. #1}}%
502 \newcommand{\powiesc}[1]{#1}
503 \newcommand{\opowiadanie}[1]{#1}
504 \newcommand{\lirykal}[1]{#1}
505 \newcommand{\lirykalp}[1]{#1}
506 \newcommand{\dramatwierszowanyl}[1]{#1}
507 \newcommand{\dramatwierszowanylp}[1]{#1}
508 \newcommand{\dramatwspolczesny}[1]{#1}
510 \newcommand{\nota}[1]{%
511 \par{\raggedleft \emph{#1}}%
515 \newcommand{\dedykacja}[1]{%
523 \newlength{\fboxhsep}
524 \newlength{\fboxvsep}
526 \newlength{\fboxtoprule}
527 \newlength{\fboxbottomrule}
528 \newlength{\fboxleftrule}
529 \newlength{\fboxrightrule}
532 \setlength{\fboxhsep}{5\fboxsep}
533 \setlength{\fboxvsep}{20\fboxsep}
536 \setlength{\fboxtoprule}{\fboxrule}
537 \setlength{\fboxleftrule}{\fboxrule}
538 \setlength{\fboxrightrule}{\fboxrule}
539 \setlength{\fboxbottomrule}{\fboxrule}
543 \def\@frameb@xother#1{%
544 \@tempdima\fboxtoprule
545 \advance\@tempdima\fboxvsep
546 \advance\@tempdima\dp\@tempboxa
548 \lower\@tempdima\hbox{%
550 \hrule\@height\fboxtoprule
552 \vrule\@width\fboxleftrule
559 \vrule\@width\fboxrightrule}%
560 \hrule\@height\fboxbottomrule}%
566 \long\def\fboxother#1{%
568 \setbox\@tempboxa\hbox{%
570 \kern\fboxhsep{#1}\kern\fboxhsep
572 \@frameb@xother\relax}
574 \newcommand{\myfbox}[3]{%
576 \setlength{\fboxhsep}{#1}
577 \setlength{\fboxvsep}{#2}
583 \newcommand{\ramka}[1]{%
585 \edef\myindent{\the\parindent}%
586 \noindent\myfbox{1em}{1em}{%
587 \parbox{\dimexpr \textwidth - 2\fboxhsep - 2\fboxrule\relax}{%
588 \setlength{\parindent}{\myindent}%
594 \newcommand{\dlugicytat}[1]{%
600 \newcommand{\poezjacyt}[1]{%
605 \newcommand{\motto}[1]{%
610 \newcommand{\listaosob}[2]{%
617 \newcommand{\nagloweklisty}[1]{%
618 \typosubsubsection{#1}%
621 \newcommand{\listaosoba}[1]{%
625 \newcommand{\kwestia}[1]{%
629 \newcommand{\naglowekakt}[2]{%
631 \subsection*{\typosubsection{\huge #1}}%
632 \addcontentsline{toc}{subsection}{#2}%
635 \newcommand{\naglowekczesc}[2]{%
637 \subsection*{\typosubsection{\huge #1}}%
638 \addcontentsline{toc}{subsection}{#2}%
641 \newcommand{\srodtytul}[1]{%
642 \subsection*{\typosubsection{#1}}%
645 \newcommand{\naglowekscena}[2]{%
646 \subsubsection*{\typosubsubsection{\LARGE #1}}%
647 \addcontentsline{toc}{subsubsection}{#2}%
650 \newcommand{\naglowekrozdzial}[2]{%
651 \subsubsection*{\typosubsubsection{\LARGE #1}}%
652 \addcontentsline{toc}{subsubsection}{#2}%
656 \newcommand{\naglowekosoba}[1]{%
658 \par{\textsc{\MakeLowercase{#1}}}\nopagebreak%
660 \newcommand{\naglowekpodrozdzial}[1]{%
661 \vspace{5ex}\par{#1}\nopagebreak%
664 \newcommand{\miejsceczas}[1]{%
667 \newcommand{\didaskalia}[1]{%
673 \definecolor{gray}{RGB}{200,200,200}
675 \newlength{\parnumwidth}
676 \setlength{\parnumwidth}{3em}
678 \leavevmode\refstepcounter{parnum}\reversemarginpar%
679 \marginnote{\textcolor{gray}{\small{\theparnum}}}%
682 \leavevmode\refstepcounter{parnum}\reversemarginpar%
683 \ifnum\intcalcMod{\value{parnum}}{5}=0%
684 \marginnote{\textcolor{gray}{\small{\theparnum}}}%
685 \fi\reversemarginpar}
689 \newcommand{\akap}[1]{%
692 \newcommand{\akapdialog}[1]{%
695 \newcommand{\akapcd}[1]{%
699 \newcommand{\mottopodpis}[1]{%
707 \newcommand{\strofa}[1]{%
708 \par{\noindent{\ignorespaces#1\vspace{1em}}}%
711 \newcommand{\wers}[1]{\Nw#1}
713 \newcommand{\wersakap}[1]{%
716 \newcommand{\werscd}[1]{%
719 \newcommand{\werswciety}[2][1em]{%
722 \newcommand{\wersdoprawej}[1]{%
723 \Nw\hspace*{\fill}#1%
727 \newcommand{\pa}[1]{\NoCaseChange{\footnote{#1 [przypis autorski]}}}
728 \newcommand{\pe}[1]{\NoCaseChange{\footnote{#1 [przypis edytorski]}}}
729 \newcommand{\pr}[1]{\NoCaseChange{\footnote{#1 [przypis redakcyjny]}}}
730 \newcommand{\pt}[1]{\NoCaseChange{\footnote{#1 [przypis tłumacza]}}}
732 \newcommand{\pa}[1]{}
733 \newcommand{\pe}[1]{}
734 \newcommand{\pr}[1]{}
735 \newcommand{\pt}[1]{}
738 \newcommand{\mat}[1]{$#1$}
740 \newcommand{\didasktekst}[1]{%
743 \newcommand{\slowoobce}[1]{%
746 \newcommand{\tytuldziela}[1]{%
749 \newcommand{\wyroznienie}[1]{%
752 \newcommand{\indeksdolny}[1]{%
755 \newcommand{\wiekszeodstepy}[1]{%
756 \spaceskip 3\fontdimen2\font plus 3\fontdimen3\font minus 3\fontdimen4\font \relax%
758 \spaceskip \fontdimen2\font plus \fontdimen3\font minus \fontdimen4\font \relax%
761 \newcommand{\osoba}[1]{%
762 {\scshape \MakeLowercase{#1}}%
765 \newcommand{\sekcjaswiatlo}{%
769 \newcommand{\sekcjaasterysk}{%
776 \newcommand{\separatorlinia}{%
782 \newcommand{\motyw}[2][0]{%
787 \vspace{-#1\baselineskip}%
788 \raggedright{\hspace{0pt}%
789 \footnotesize{\color{theme}{#2}}}%
790 \vspace{\baselineskip}%
795 \newcommand{\ilustr}[2]{%
797 \par{\noindent\includegraphics[width=\linewidth]{#1}}%