wl style for XeLaTeX is now a class. Accepts several parameters affecting output...
[librarian.git] / librarian / pdf / wl.cls
1 % -*- coding: utf-8 -*-
2 \NeedsTeXFormat{LaTeX2e}
3 \ProvidesClass{wl}[2011/11/28 wolnelektury.pl book style]
4
5 % PDF customizations
6 %
7 % nofootnotes - disable generation of footnotes
8 % nothemes - disable generation of themes
9 % onehalfleading - leading of 1.5 (interlinia)
10 % doubleleading - double leading (interlinia)
11 % a4paper,... - paper size as required by LaTeX
12 % nowlfont - don't use customized WL font
13
14 %\usepackage{setspace}
15
16 \RequirePackage{type1cm}
17 \DeclareOption{13pt}{%
18 \AtEndOfClass{%
19 % font size definitions, similar to ones in /usr/share/texmf-texlive/tex/latex/base/
20 \renewcommand\normalsize{%
21    \@setfontsize\normalsize{13pt}{14.5pt}%
22    \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@
23    \abovedisplayshortskip \z@ \@plus3\p@
24    \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
25    \belowdisplayskip \abovedisplayskip
26    \let\@listi\@listI}\normalsize%
27 \renewcommand\footnotesize{%
28    \@setfontsize\footnotesize\@xpt\@xiipt
29    \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
30    \abovedisplayshortskip \z@ \@plus3\p@
31    \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
32    \def\@listi{\leftmargin\leftmargini
33                \topsep 6\p@ \@plus2\p@ \@minus2\p@
34                \parsep 3\p@ \@plus2\p@ \@minus\p@
35                \itemsep \parsep}%
36    \belowdisplayskip \abovedisplayskip
37 }%
38 }%
39 }
40
41 %% \DeclareOption{14pt}{\renewcommand{\normalsize}{\AtEndOfClass{\fontsize{14}{17}\selectfont}}}
42
43 \DeclareOption{doubleleading}{\AtBeginDocument{\doublespacing}}%\setlength{\leading}{1em plus 0.5ex minus 0.2ex}}
44 \DeclareOption{onehalfleading}{\AtBeginDocument{\onehalfspacing}}%\setlength{\leading}{1em plus 0.5ex minus 0.2ex}}
45
46 \newif\ifshowfootnotes \showfootnotestrue
47 \DeclareOption{nofootnotes}{\showfootnotesfalse}
48
49 \newif\ifshowthemes \showthemestrue
50 \DeclareOption{nothemes}{\showthemesfalse}
51
52 \newif\ifenablewlfont \enablewlfonttrue
53 \DeclareOption{nowlfont}{\enablewlfontfalse}
54
55 \DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}}
56 \ProcessOptions\relax
57 \LoadClass[a4paper,oneside]{book}
58
59
60 \usepackage{trace}
61
62 \usepackage[MeX]{polski}
63
64 \usepackage[xetex]{graphicx}
65 \usepackage{fontspec}
66 \usepackage{xunicode}
67 \usepackage{xltxtra}
68
69 \usepackage[overload]{textcase}
70 \usepackage{scalefnt}
71 \usepackage[colorlinks=true,linkcolor=black,setpagesize=false,urlcolor=black,xetex]{hyperref}
72
73 \ifenablewlfont
74 \setmainfont [
75 %ExternalLocation,
76 UprightFont = JunicodeWL-Regular,
77 ItalicFont = JunicodeWL-Italic,
78 BoldFont = JunicodeWL-Regular,
79 BoldItalicFont = JunicodeWL-Italic,
80 SmallCapsFont = JunicodeWL-Regular,
81 SmallCapsFeatures = {Letters={SmallCaps,UppercaseSmallCaps}},
82 Numbers=OldStyle,
83 Scale=1.04,
84 LetterSpace=-1.0
85 ] {JunicodeWL}
86
87 \newfontfamily\alien[
88 SmallCapsFeatures = {Letters={SmallCaps,UppercaseSmallCaps}},
89 Numbers=OldStyle,
90 Scale=0.85,
91 LetterSpace=-1.0
92 ] {DejaVu Serif}
93
94
95 \defaultfontfeatures{
96 SizeFeatures={
97   {Size={-10.5}, FakeStretch=1.02, LetterSpace=2.0 },
98   {Size={10.5-12}, FakeStretch=2.00, LetterSpace=0.0 },
99   {Size={12-}, FakeStretch=0.98, LetterSpace=-2.0 }
100 }
101 }
102
103 \renewcommand{\textsc}[1]{%
104 {\addfontfeature{
105 SizeFeatures={
106   {Size={-10.5}, Scale=1.2, FakeStretch=1.02, LetterSpace=8.0 },
107   {Size={10.5-12}, Scale=1.2, FakeStretch=1.02, LetterSpace=8.0 },
108   {Size={12-}, FakeStretch=1.0, LetterSpace=8.0 }
109 },
110 Letters={SmallCaps,UppercaseSmallCaps}
111 }
112 #1}
113 }
114 \fi% enablewlfont
115
116 %{\Itshape JunicodeWL-Italic.ttf }
117 %{\bfseries Junicode-Bold.ttf }
118 %{\bfseries\itshape Junicode-BoldItalic.ttf }
119
120 \pagestyle{plain}
121 \usepackage{fancyhdr}
122
123 \makeatletter
124
125 % bottom figure below footnotes
126 \usepackage{fnpos}
127 \makeFNabove
128
129 \usepackage{color}
130 \definecolor{theme}{gray}{.3}
131
132 \setlength{\marginparsep}{2em}
133 \setlength{\marginparwidth}{8.5em}
134 \setlength{\oddsidemargin}{0pt}
135 \setlength{\voffset}{0pt}
136 \setlength{\topmargin}{0pt}
137 \setlength{\headheight}{0pt}
138 \setlength{\headsep}{0pt}
139 \setlength{\textheight}{24cm}
140
141 \pagestyle{fancy}
142 \fancyhf{}
143 \renewcommand{\headrulewidth}{0pt}
144 \renewcommand{\footrulewidth}{0pt}
145 \lfoot{{\footnotesize \textsc{\@author} \emph{\@title}}}
146 \cfoot{}
147 \rfoot{{\footnotesize \thepage}}
148
149 \clubpenalty=100000
150 \widowpenalty=100000
151
152
153 % see http://osdir.com/ml/tex.xetex/2005-10/msg00003.html
154 \newsavebox{\ximagebox}\newlength{\ximageheight}
155 \newsavebox{\xglyphbox}\newlength{\xglyphheight}
156 \newcommand{\xbox}[1]
157 {\savebox{\ximagebox}{#1}\settoheight{\ximageheight}{\usebox {\ximagebox}}%
158 \savebox{\xglyphbox}{\char32}\settoheight{\xglyphheight}{\usebox {\xglyphbox}}%
159 \raisebox{\ximageheight}[0pt][0pt]{%\raisebox{-\xglyphheight}[0pt] [0pt]{%
160 \makebox[0pt][l]{\usebox{\xglyphbox}}}%}%
161 \usebox{\ximagebox}%
162 \raisebox{0pt}[0pt][0pt]{\makebox[0pt][r]{\usebox{\xglyphbox}}}}
163
164 \newcommand{\makecover}[2]{
165         \pdfpagewidth=#1
166         \pdfpageheight=#2
167
168         \thispagestyle{empty}
169         \newlength{\PictHOffset}
170         \newlength{\PictVOffset}
171         \setlength{\PictHOffset}{1in}
172         \addtolength{\PictHOffset}{\hoffset}
173         \addtolength{\PictHOffset}{\oddsidemargin}
174
175         \setlength{\PictVOffset}{1in}
176         \addtolength{\PictVOffset}{\voffset}
177         \addtolength{\PictVOffset}{\topmargin}
178         \addtolength{\PictVOffset}{\headheight}
179         \addtolength{\PictVOffset}{\headsep}
180         \addtolength{\PictVOffset}{\topskip}
181         \addtolength{\PictVOffset}{-\pdfpageheight}
182
183         \noindent\hspace*{-\PictHOffset}%
184         \raisebox{\PictVOffset}[0pt][0pt]{\makebox[0pt][l]{%
185             \includegraphics[height=\pdfpageheight,width=\pdfpagewidth]{cover.png}}}
186         \clearpage
187
188         \setlength{\pdfpagewidth}{210mm}
189         \setlength{\pdfpageheight}{297mm}
190 }
191
192
193 \renewcommand{\maketitle}{
194     {
195     \thispagestyle{empty}
196     \footnotesize
197     \color{theme}
198
199     \noindent \begin{minipage}[t]{.35\textwidth}\vspace{0pt}
200         \href{http://www.wolnelektury.pl}{\xbox{\includegraphics[width=\textwidth]{wl-logo.png}}}
201     \end{minipage}
202     \begin{minipage}[t]{.65\textwidth}\vspace{0pt}
203
204     \ifflaglessadvertising
205     \else
206         \href{\bookurl}{Ta lektura}, podobnie jak tysiące innych, jest dostępna on-line na stronie
207         \href{http://www.wolnelektury.pl/}{wolnelektury.pl}.
208         \vspace{.5em}
209     \fi
210
211     Utwór opracowany został w ramach projektu \href{http://www.wolnelektury.pl/}{Wolne Lektury}
212     przez \href{http://nowoczesnapolska.org.pl}{fundację Nowoczesna Polska}.
213
214     \end{minipage}
215     \noindent \rule{\linewidth}{0.4pt}
216
217     \vspace{.6em}
218     \color{black}
219     }
220 }
221
222 \newcommand{\editorialsection}{
223   \begin{figure}[b!]
224   {
225     \footnotesize
226     \color{theme}
227     \noindent \rule{\linewidth}{0.4pt}
228
229     \rightsinfo
230     \vspace{.6em}
231
232     Źródło: \href{\bookurl}{\bookurl}
233
234     \vspace{.6em}
235     \sourceinfo
236
237     \description
238     \vspace{.6em}
239
240     \editors
241
242     \color{black}
243   }
244   \end{figure}
245 }
246
247
248 \newcommand{\typosubsubsection}[1]{%
249 {\textsc{#1}}
250 }
251
252 \newcommand{\typosubsection}[1]{%
253 {\addfontfeature{
254 SizeFeatures={
255   {Size={-10}, Scale=1.2, FakeStretch=1.00, LetterSpace=8.0 },
256   {Size={10.5-12}, Scale=1.2, FakeStretch=1.00, LetterSpace=8.0 },
257   {Size={12-}, FakeStretch=1.0, LetterSpace=8.0 }
258 },
259 Letters={Uppercase}
260 }
261 \MakeUppercase{#1}}
262 }
263
264 \newcommand{\typosection}[1]{%
265 {\addfontfeature{FakeStretch=0.96, LetterSpace=-4.0}\emph{\scalefont{2}#1}}
266 %{\addfontfeature{Scale=2.0, FakeStretch=0.98, LetterSpace=-2.0}\emph{#1}}
267 }
268
269
270 \newcommand{\tytul}[1]{%
271 #1%
272 \vspace{1em}%
273 }
274
275 \newcommand{\nazwapodutworu}[1]{%
276 \section*{\typosection{#1}}%
277 }
278
279 \newcommand{\autorutworu}[1]{%
280 \subsection*{\typosubsection{#1}}%
281 }
282
283 \newcommand{\dzielonadrzedne}[1]{%
284 \subsection*{\typosubsubsection{#1}}%
285 }
286
287 \newcommand{\nazwautworu}[1]{%
288 \section*{\typosection{#1}}%
289 }
290
291 \newcommand{\podtytul}[1]{%
292 \subsection*{\typosubsubsection{#1}}%
293 }
294
295 \newcommand{\translator}[1]{%
296 \subsection*{\typosubsubsection{tłum. #1}}%
297 }
298
299
300 \newcommand{\powiesc}[1]{#1}
301 \newcommand{\opowiadanie}[1]{#1}
302 \newcommand{\lirykal}[1]{#1}
303 \newcommand{\lirykalp}[1]{#1}
304 \newcommand{\dramatwierszowanyl}[1]{#1}
305 \newcommand{\dramatwierszowanylp}[1]{#1}
306 \newcommand{\dramatwspolczesny}[1]{#1}
307
308 \newcommand{\nota}[1]{%
309 \par{#1}%
310 }
311
312 \newcommand{\dedykacja}[1]{%
313 \begin{em}%
314 \begin{flushright}%
315 #1%
316 \end{flushright}%
317 \end{em}%
318 }
319
320 \newcommand{\dlugicytat}[1]{%
321 \begin{quotation}%
322 #1%
323 \end{quotation}%
324 }
325
326 \newcommand{\poezjacyt}[1]{%
327 \begin{verse}%
328 #1%
329 \end{verse}%
330 }
331 \newcommand{\motto}[1]{%
332 \begin{em}%
333 #1%
334 \end{em}%
335 }
336 \newcommand{\listaosob}[2]{%
337 \par{#1}%
338 \begin{itemize}%
339 #2%
340 \end{itemize}%
341 }
342
343 \newcommand{\nagloweklisty}[1]{%
344 \typosubsubsection{#1}%
345 }
346
347 \newcommand{\listaosoba}[1]{%
348 \item{#1}%
349 }
350
351 \newcommand{\kwestia}[1]{%
352 \par{#1}%
353 }
354
355 \newcommand{\naglowekakt}[1]{%
356 \pagebreak
357 \subsection*{\typosubsection{#1}}%
358 }
359 \newcommand{\naglowekczesc}[1]{%
360 \pagebreak
361 \subsection*{\typosubsection{#1}}%
362 }
363 \newcommand{\srodtytul}[1]{%
364 \subsection*{\typosubsection{#1}}%
365 }
366
367 \newcommand{\naglowekscena}[1]{%
368 \subsubsection*{\typosubsubsection{#1}}%
369 }
370 \newcommand{\naglowekrozdzial}[1]{%
371 \subsubsection*{\typosubsubsection{#1}}%
372 }
373
374 \newcommand{\naglowekosoba}[1]{%
375 \par{\textsc{#1}}\nopagebreak%
376 }
377 \newcommand{\naglowekpodrozdzial}[1]{%
378 \par{#1}\nopagebreak%
379 }
380
381 \newcommand{\miejsceczas}[1]{%
382 \par{\emph{#1}}%
383 }
384 \newcommand{\didaskalia}[1]{%
385 \par{\emph{#1}}%
386 }
387
388 \newcommand{\akap}[1]{%
389 \par{#1}%
390 }
391 \newcommand{\akapdialog}[1]{%
392 \par{#1}%
393 }
394 \newcommand{\akapcd}[1]{%
395 \par{#1}%
396 }
397
398 \newcommand{\mottopodpis}[1]{%
399 \begin{em}%
400 \begin{flushright}%
401 #1%
402 \end{flushright}%
403 \end{em}%
404 }
405
406 \newcommand{\strofa}[1]{%
407 \par{\noindent{\ignorespaces#1\vspace{1em}}}%
408 }
409
410 \newcommand{\wers}[1]{#1}
411
412 \newcommand{\wersakap}[1]{%
413 \hspace*{1em}#1%
414 }
415 \newcommand{\werscd}[1]{%
416 \hspace*{8em}#1%
417 }
418 \newcommand{\werswciety}[2][1em]{%
419 \hspace*{#1}#2%
420 }
421
422 \ifshowfootnotes
423   \newcommand{\pa}[1]{\NoCaseChange{\footnote{#1 [przypis autorski]}}}
424   \newcommand{\pe}[1]{\NoCaseChange{\footnote{#1}}}
425   \newcommand{\pr}[1]{\NoCaseChange{\footnote{#1}}}
426   \newcommand{\pt}[1]{\NoCaseChange{\footnote{#1}}}
427 \else
428   \newcommand{\pa}[1]{}
429   \newcommand{\pe}[1]{}
430   \newcommand{\pr}[1]{}
431   \newcommand{\pt}[1]{}
432 \fi
433
434 \newcommand{\mat}[1]{$#1$}
435
436 \newcommand{\didasktekst}[1]{%
437 \emph{#1}%
438 }
439 \newcommand{\slowoobce}[1]{%
440 \emph{#1}%
441 }
442 \newcommand{\tytuldziela}[1]{%
443 \emph{#1}%
444 }
445 \newcommand{\wyroznienie}[1]{%
446 \emph{#1}%
447 }
448
449 \newcommand{\osoba}[1]{%
450 #1%
451 }
452
453 \newcommand{\sekcjaswiatlo}{%
454 \vspace{30pt}%
455 }
456
457 \newcommand{\sekcjaasterysk}{%
458 \vspace{10pt}%
459 \begin{center}%
460 \par{*}%
461 \end{center}%
462 }
463
464 \newcommand{\separatorlinia}{%
465 \vspace{10pt}%
466 \hrule{}%
467 \vspace{10pt}%
468 }
469
470 \newcommand{\motyw}[2][0]{%
471 \ifshowthemes
472 \mbox{}%
473 \marginpar{%
474 \vspace{-8pt}%
475 \vspace{-#1\baselineskip}%
476 \raggedright{\hspace{0pt}%
477 \footnotesize{\color{theme}{#2}}}%
478 \vspace{\baselineskip}%
479 }%
480 \fi
481 }
482