Kol. WP dba żebym nie wyszedł z wprawy w temacie znajomości LaTeXa.
Jakiś czas temu zażyczył sobie znaków cięcia (zwanych także paserami). Znaki cięcia mają określać wielkość kartki papieru jako 290x205mm (prawie A4). Mają być umieszczone na stronie o nietypowych wymiarach 330x250mm.
Używając pakietu crop
można powyższe zalecenie zrealizować następująco:
\documentclass{article}
%% Inne pakiety dołączyć tutaj ...
\setlength\paperheight {290mm}\setlength\paperwidth{205mm}
\usepackage[cam,center,width=250truemm,height=330truemm,pdftex]{crop}
%%
%% Kolumna ma być wyśrodkowana na kartce (zalecenie drukarni)
%% Margines wynosi ( \paperwidth -\textwidth )/2
\oddsidemargin 18.5truemm %% dla \textwidth = 168mm
\evensidemargin\oddsidemargin
\begin{document}
...
\end{document}
No i działa. Dokument jest składany XeTeXem; używa w związku z tym pakietów polyglossia
, fontspec
, xunicode
oraz xltxtra
. Powyższe pakiety korzystają z kolei ze stada pakietów z l3kernel/l3packages bundles (fragment przyszłej, ciągle tworzonej od 20 bodajże lat, trzeciej wersji LaTeXa -- LaTeX3 project).
Po jakimś czasie okazało się, że nie działa w MikTeX 2.09. Pierwsza (tytułowa) strona jest podniesiona (względem znaków cięcia) o ok 4mm w porównaniu do wszystkich następnych.
Po dłuższym badaniu stwierdzono, że winna jest dwuwierszowa pagina górna znajdująca się na stronie tytułowej. Wydawała się niegroźna i co więcej, dokument był poprawnie kompilowany, ale tylko w dystrybucji TL 2011. Coś zmieniono w zestawie pakietów l3* (których jest dużo jak wiemy) i to te pakiety odpowiadają za błąd.
Żeby obejść problem postanowiłem składać dwuwierszową paginę w pudełko pionowe (\vbox
) o wysokości równej wysokości wiersza tekstu:
\setbox0\hbox{\PM@HeaderFont\strut} %%
\newdimen\PM@HeaderHt \PM@HeaderHt=\ht0
\def\PM@vboxToOneLine#1{\vbox to\PM@HeaderHt{#1\vss}}
%% ^^^^^^^ pudełko o wysokości wiersza tekstu ^^
%% %% ...
\fancypagestyle{plain}{%% zawartość paginy na stronie tytułowej:
\fancyhf{} %
%% ...
\fancyhead[L]{\leavevmode
\hbox{\PM@vboxToOneLine{\PM@HeaderFont pierwszy-wiersz ... \\
... drugi wiersz ...}}} %
\fancyhead[R]{\leavevmode
\hbox{\PM@vboxToOneLine{\PM@HeaderFont pierwszy-wiersz ... \\
... drugi wiersz ...}}}
%% ...
}
Teraz działa lepiej.
Nawiasem mówiąc dwuwierszowe paginy to kiepski pomysł. W szczególności fancyhdr
wyrównuje górne wiersze pagin, co oznacza, że np. kreska pod paginą będzie nie wyrównana jeżeli (przykładowo) lewa pagina jest dwuwierszowa a prawa jednowierszowa. W omawianym przypadku nie ma kreski pod paginą, dwuwierszowa pagina jest zdefiniowana wyłącznie na stronie tytułowej (której układ jest znakomicie różny od pozostałych stron) a i tak skończyło się problemem.
Brak komentarzy:
Prześlij komentarz