[ISO-8859-2] Od pewnego czasu używam systemu LaTeX do składu dokumentów. Tutaj będę sukcesywnie umieszczał rozwiązania problemów, które pojawiły się podczas mojej przygody z LaTeX-u. W przypadku pakietów opisuję jedynie te elementy, które były mi potrzebne. Zachęcam do odwiedzenia strony http://www.gust.org.pl. Wojtek Muła ********** Rozwiązania ************ 1. Podczas składu książki (\documentclass[...]{book}) pojawiają się overfulle w pionowych pudełkach (\vbox) zajmowanych przez tytuły rozdziałów i sekcji. Wygląda to na błąd w LaTeX-u, nie można nic z tym zrobić, poza ukryciem samych błędów. \vbadness = 10000 2. Centrowanie w pionie na pierwszej stronie; typowo robimy to tak: \begin{document} \vfill Tytuł publikacji \vfill ... Jednak, jak się okazuje, TeX pomija pierwsze polecenie \vfill. By temu zapobiec należy wstawić wcześniej jakiś twardy odstęp, np. \begin{document} \vspace*{0pt} \vfill % itd. 3. Wstawienie dodatkowego odstępu pionowego w tabular (tak, to jest w dokumentacji, ale ja zapominam) \begin{tabular}{...} ... & ... & ... \\ [odstęp] .... ************ Użyteczne pakiety ************* 1. Pakiet textfit \usepackage{textfit} Dostarcza dwóch poleceń \scaletoheight{wysokość}{tekst} oraz \scaletowidth{szerokość}{tekst} które tak ustawiają rozmiar [bieżącego] fontu, by podany tekst miał zadaną szerokość lub wysokość. Ale uwaga! efekty mogą różne w zależności od rozmiaru bieżącego fontu, bowiem pakiet wykorzystuje polecenie \magstep. By wycentrować tekst należy użyć poleceń \hfill, bowiem środowisko 'center' nie "działa". \hfill \scaletoheight{3cm}{Tytuł} \hfill Pakiet nie zmienia także 'baselineskip', więc zamiast \scaletoheight{3cm}{Cudowny \\ LaTeX}, należy użyć dwóch poleceń \scale... rozdzielonych poleceniem klasy \addvspace. 2. Pakiet lettrine Pakiet służy do tworzenia inicjałów, czyli dużych pierwszych liter akapitu, obejmujących kilka wierszy. Oto przykład użycia: \usepackage{lettrine} ... \lettrine[lines=3 findent=0.2em nindent 0.1em]{P}ierwsza litera Paremetry (jest ich jeszcze kilka): * lines -- ilość linii które ma objąć inicjał; * findent -- wcięcie pierwszej linii; * nindent -- wcięcie (względem findent!) następnych linii, które obejmuje inicjał. Pakiet dodatkowo składa następna literę (w tym przykładzie 'i') kapitalikami. Moim zdaniem wygląda to paskudnie. Można to zmienić redefiniując polecenie \LettrineTextFont np. \renewcommand{\LettrineTextFont}{} 3. Pakiet pslatex Pakiet ten powoduje skład tekstu przy użyciu fontów wbudowanych w Acrobat Reader, dzięki czemu pliki pdf wygenerowane przez program pdflatex wyglądają dobrze w tym programie. 4. Pakiet multicol Pakiet umożliwia składanie tekstu w kolumnach. Używałem go do składania długich wierszy. \usepackage{multicol} ... \begin{multicols}{2} % tu nie błędu, s kończy nazwę środowiska aaa \\ bbb \\ ccc \\ ddd \end{multicols} Co zostanie złożone jako aaa ccc bbb ddd 5. Pakiet lineno Pakiet ten numeruje wiersze i umożliwia wstawianie odnośników do konkretnych linii. Polecenia, które używałem to: \linenumbers -- włącza numerowanie linii \linenumbers* -- włącza numerowanie linii, oraz ustawia licznik na 1 \nolinenumbers -- wyłącza numerowanie \pagewiselinenumbers -- włącza numerowanie linii, po przejściu do nowej strony licznik linii jest ustawiany na 1. Oto przykład: \usepackage{lineno} ... \begin{document} To jest \linelabel{wazne} bardzo ważny tekst. % \linelabel wstawia % odnośnik ... Bardzo ważny tekst znajduje się na stronie \pageref{wazne}, w linii \ref{wazne}. % \ref wstawia numer wiersza w którym etykieta występuje \end{document} Ponieważ pakiet liczy wszystkie linii, nie bacząc czy to tytuł rozdziału, sekcji, itd. można na chwilę wyłączyć numerowanie poleceniem \nolinenumbers. Pakiet standardowo wypisuje numery linii po lewej (lub prawej) stronie tekstu. Gdy chcemy wyłącznie odwoływać do numerów linii (\linelabel, \ref) można ukryć numery redefiniując polecenie \thelinenumber, oraz stworzyć sobie odpowiednie polecenie, które na chwilę "odkryje numery": \newcommand{\refline}[1]{% % wyświetlanie numerów \renewcommand{\thelinenumber}{\arabic{linenumber}} \ref{#1} % ukrycie numerów \renewcommand{\thelinenumber}{} } \renewcommand{\thelinenumber}{} \begin{document} \linenumbers ... Bardzo ważny tekst znajduje się na stronie \pageref{wazne}, w linii \refline{wazne}. \end{document} UWAGA! Pakiet gryzie się z poleceniem \mainmatter! [eof]