TeX i LaTeX - poradyTeX jest komputerowym systemem profesjonalnego składu drukarskiego. Głównym elementem systemu jest oczywiście sam program TeX, który zajmuje się przetwarzaniem instrukcji umieszczonych w tworzonym dokumencie. Podstawowy zestaw poleceń jest dość ubogi, jednak pozwala (co prawda nie zawsze w prosty sposób ...) zrobić niemalże wszystko co byśmy chcieli (w odróżnieniu od innych systemów DTP nie ogranicza on nas ...). Dużym ułatwieniem są tutaj makra, które możemy tworzyć zarówno sami, jak również skorzystać z gotowych zestawów takich LaTeX, czy ConTeXt. To było by tyle tytułem wstępu (przynajmniej jak na razie). W dalszej części przedstawię kilka użytecznych rozwiązań, które znalazłem, wymyśliłem, ... podczas pracy z dokumentami w TeX-u. Po bardziej szczegółowe omówienia odsyłam do: Katedra TeX-ologii stosowanej, Nie za krótkie wprowadzenia do systemu LaTeX 2e i innych źródeł. PodstawyDeklaracje wstępne - polskie znaczki, utf-8, ...
\documentclass[a4paper, portrait, 10pt]{article}
%lokalizacja
\usepackage{polski}
\usepackage[utf8]{inputenc}
\usepackage[OT4]{fontenc}
% geometria strony i czcionki
\usepackage{geometry} % geometria strony - marginesy, ...
\usepackage{ulem} % podkreślenia, przekreślenia, ...
% więcej http://www.ia.pw.edu.pl/~wujek/tex/latex2e/macro/ulem.html
% linki
\usepackage{hyperref} % hyperlinki także wewnętrzne
% więcej http://www.ia.pw.edu.pl/~wujek/tex/latex2e/macro/hyperref.html
\usepackage{url} % łącza internetowe
% naglowki, stopki, daty, ...
\usepackage{fancyhdr} % nagłówek i stopka
\usepackage[iso]{isodateo} % aktualna data w iso
\usepackage{lastpage} % numer ostatniej strony wstawiany przez \pageref{LastPage}
% obrazki
\usepackage{graphics} % wlaczanie grafik
\usepackage{color} % kolory
\usepackage{overpic} % napisy na obrazkach
% matematyka
\usepackage{amssymb} % podwójne literek trybu matematycznego
\geometry{verbose,a4paper,tmargin=2cm,bmargin=2cm,lmargin=2cm,rmargin=2cm}
\hypersetup{pdfauthor={Autor},pdftitle={Tytuł dokumentu},pdfpagemode=None,
colorlinks=true,linkcolor=black,urlcolor=blue}
\sloppy
łączenie formatowań, linie, odstępy, ...
nagłówek stopka i dataBardzo wygodny pakiet obsługi zawartości nagłówka oraz stopki możemy dodać poleceniem: Aby poleceniem wstawianie grafik, skalowanie obiektówAby móc umieszczać różnego rodzaju obrazki w dokumentach tworzonych w LaTeX należy na początku dokumentu dodać deklarację:
\nopagebreak\newline\centerline{
% skalujemy 90%
\scalebox{0.9}{
\includegraphics{obrazek.pdf}
}
}
W wielu wypadkach warto obrazki umieszczać w specjalnie do tego przeznaczonym środowisku -
% środowisko obrazka opływanego tekstem,
% jego położenie (r - do prawej, l - do lewej, ...) i rozmiar
\begin{floatingfigure}[r]{8cm}
% wyśrodkowanie zawartości pola obrazka
\begin{center}
% okienko skalujące:
% pierwszy argument szerokosc, drugi wysokość,
% jeden z nich może być zastąpiony ! - zachowanie proporcji obrazka
% w taki sposób możemy skalować także inne obiekty np. tekst
\resizebox{7cm}{!}{
% wstawienie obrazka
\includegraphics{obrazek.png}
}
% opis obrazka
\caption[Opcjonalny skrócony opis do spisu obrazków]{Opis}
% etykieta
\label{etykietka_obrazkaa}
\end{center}
\end{floatingfigure}
% jeżeli obrazek wstawiany wewnątrz akapitu to nie chcemy wcięcia akapitowego dla tekstu po obrazku
\noindent
napisy na grafice, kolory, itp.Gdy oprócz pakietu "graphics" postanowimy też dodać: Trochę bardziej zaawansowaneodnośniki hipertekstowePakiety włączane przez Pakiet umożliwia także dodawanie informacji dodatkowych PDF poprzez wyliczaniePakiet zachęcanie, zniechęcanie i wymuszanie podziału linni/strony/...
wcięty akapitEfekt ten można uzyskać na kilka sposobów:
własna wielkość czcionkiJeżeli nie zadowalają nas predefiniowane wielkości czcionek możemy przy pomocy instrukcji spisy treści, rozdziały, sekcje, ...Spis treści umieszczamy poprzez wstawienie Możemy także wpływać na sposób pokazywania numeracji, wyświetlania spisu treści oraz nagłówkków rozdziałów - np.:
% pozbywamy się numerów sekcji:
\renewcommand{\thesection}{}
% podobnie zadziała:
\setcounter{secnumdepth}{0 }
% chce mieć kropki .... w spisie treści między tytułem sekcji a numerem strony:
\renewcommand*\l@section{\@dottedtocline{1}{0cm}{0cm}}
% zmieniamy wielkość czcionki itp. dla section:
\renewcommand*\section{\@startsection{section}{1}{-3.0ex}{3.5ex}{3.5ex}
{\centering\normalfont\Large\bfseries}}
kolumnyDość fajne kolumny można uzyskać w następujący sposób:
\newcommand{\kolumny}[2]{
\hbox{
\vtop{
\hsize = .45\hsize
%tutaj deklarujemy zawartość kolumny w tym wypadku wyliczanie
\begin{itemize}
\hbox to 1.05\hsize{\vtop{
#1
}}
\end{itemize}
\par
}
\hskip .05\hsize
\vtop{
%\vspace{-14pt}
\hsize = .45\hsize
% tutaj wstawiamy po prostu to co jest podane przy wywołaniu
#2
\par
}
}}
celem wstawienia ich w wybrane miejsce dokumentu wpisujemy:
\kolumny{
\item pozycja 1
\item pozycja 2
}{
jakiś tekst
}
Załączam również przykładowy plik telefony.tex pokazujący jak wygląda plik tex'owy oraz robienie tabelki i parę innych rzeczy ... Dostosowywanie do własnych potrzebwłasny pakiet makrAby mieć własny pakiet należy utworzyć plik "nazwa_mojego_pakietu.sty" wewnątrz umieszczamy na początku Włąsne jak i pobrane z Sieci pakiety możemy dodać do systemu LaTeX w następujący sposób:
Alternatywną metodę (nie wymagającą praw root'a) opisuję w części o własnych klasach dokumentów. własna klasa dokumentuMożemy również utworzyć własną klasę dokumentów. W tym celu tworzymy plik "nazwa_mojej_klasy.cls", którego treść wygląda mniej więcej następująco:
% nagłówek klasy
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{nazwa_mojej_klasy}[RRRR/MM/DD v0.1.0 Opis klasy]
% przekazanie opcji do klasy bazowej (w tym przykładzie "article")
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
\PassOptionsToClass{12pt}{article}
\ProcessOptions
% załadowanie klasy bazowej
\LoadClass{article}
% pobieramy ustawienia z nagłówka dokumentu, potem możemy je wykorzystywać w różny sposób
\def\nr_oddzialu#1{\gdef\@nr_oddzialu{#1}}
% dla ustawień obowiązkowych generujemy błąd gdy nie zostały podane
\def\@nr_oddzialu{???\ClassError{nazwa_mojej_klasy}{Brak numeru oddzialu}\@ehc}
% gdy nie obowiązkowe możemy np. ustawić na wartość domyślną
% włączanie makr zamiast \usepackage używamy \RequirePackage
% deklaracje własnych komend - \newcommand \def ...
Aby udostępnić własną klasę (tak aby nie trzeba było jej umieszczać w katalogu z dokumentem) możemy np. utworzyć katalog $HOME/.tex i umieścić tam plik naszej klasy. Następnie do skryptu startowego naszej powłoki (np. $HOME/.bashrc) dodać licznikiLiczniki przydają się do automatycznej numeracji rozdziałów, paragrafów itp. Liczniki tworzymy poleceniem Poniższy przykład ilustruje sposób umieszczania automatycznych odwołań do zadanych fragmentów pliku (np. paragrafów jakiegoś regulaminu).
\makeatletter
% obsługa zapamiętywania liczników
% wlaczam plik z definicjami liczników
\input{\jobname.cou}
% otwieram do zapisu plik z baza odnośników i zapisuje nagłówek
% na końcu powinienem go zamknąć: \closeout\licznfile
\newwrite\licznfile
\openout\licznfile=\jobname.cou
\write\licznfile{\string\def\string\liczniki{}}
% instrukcja zapamiętuje licznik w pliku (jako licznik o zadanej nazwie)
% \zapamietajlicznik{nazwa_licznika_do_zapamietania}{nazwa_nowego_licznika}
% przy czym dla środowiska enumerate są to dla kolejnych poziomów: enumi enumii enumiii enumiv ...
\newcommand{\zapamietajlicznik}[2] {
\immediate\write\licznfile{\string\newcounter{#2}\string\setcounter{#2}{\arabic{#1}}}
% \string - zabezpiecza backslesh (\)
}
% nie tworze liczników przy pierwszym obiegu - zamiast nich będę wpisywał XXX
% dopiero po wczytaniu ich z pliku wstawię odpowiednie numerki
\newcommand{\alphf}[1]{\ifx \liczniki \undefined XXX \else\alph{#1}\fi}
\newcommand{\arabicf}[1]{\ifx \liczniki \undefined XXX \else\arabic{#1}\fi}
\makeatother
W miejscu do którego chcemy się odwołać umieszczamy instrukcję zapamiętania licznika - a to da trochę lepsze polskojęzyczne dokumenty ...(poniższy fragment kodu pochodzi z źródeł Nie za krótkiego wprowadzenia do systemu LaTeX 2e)
\makeatletter
%% Modyfikujemy parametry wpływające na skład i łamanie *** TP ***
%\overfullrule = 3mm % zaznacz linijki z nadmiarami czarną sztabką *** TP
\exhyphenpenalty = 999999 % słowa złożone nie przenoś na łączniku *** TP
\righthyphenmin = 3 % nie dziel xx-, ale xxx- *** TP
%\widowpenalty = 999999 % ostatnia linia akapitu nie zacznie strony *** TP
\clubpenalty = 9950 %% pierwsza linia akapitu wyjątkowo może kończyć stronę
\hfuzz = 3pt %% znaki mogą sterczeć na margines do wielkości 3pt *** TP
\tolerance 600 %% zwiększamy tolerancję ***
\pretolerance 300 %% oraz pretolerancję ***
\doublehyphendemerits = 99999 %% zniechęcamy TeX-a do dzielenia wyrazów *** TP
%% Redefinujemy wyliczenia usuwając odstępy między punktami
%% oraz przed i po wyliczeniach (bo takie są w Polsce zwyczaje)
%% za lshort2e.sty [pl]
\def\@listi{\leftmargin\leftmargini
\parsep 0\p@ \@plus1\p@ \@minus\p@
\topsep 3\p@ \@plus1\p@ \@minus\p@
\itemsep0\p@ \@plus1\p@ \@minus\p@}
\let\@listI\@listi
\makeatother
LinkiZachęcam także do zapoznania się z dwoma moimi dokumentami przygotowanymi w LaTeX: Curriculum Vitae i wizytówka .Trochę podobnych sztuczek znaleźć można też w Jacka hinty do LaTeX-a. Zachęcam także do zajrzenia do The TeX Catalogue Online, CTAN Edition. Warto również skorzystać z: LaTeX - pierwsze podejcie LTEX okiem praktykującego, LTEX na kolorowo, Włączanie grafik..., Tworzenie dokumentów PDF przy pomocy LaTeX-a, Lepszy skład polsko języczny - mwcls, Materiały do kursu LaTeXa na MIM UW, W miare krótki i praktyczny kurs LaTeX-a w e^pi minut, Katalog Donalda E. Knutha na CTAN, autora systemu TeX (m.in. źródłowy plik The TeXbook), Wprowadzenie do system składu LaTeX (polecam zwłaszcza część "LaTeX, a polskie zasady typograficzne"). | |
|
|
Copyright (c) 1999-2008, Robert Paciorek (http://www.opcode.eu.org/), BSD-type license
Redystrybucja wersji źródłowych i wynikowych, po lub bez dokonywania
modyfikacji JEST DOZWOLONA, pod warunkiem zachowania niniejszej informacji o
prawach autorskich. Autor NIE ponosi JAKIEJKOLWIEK odpowiedzialności za skutki
użytkowania tego dokumentu/programu oraz za wykorzystanie zawartych tu informacji.
This program is free software. Redistribution and use in source and binary
forms, with or without modification, ARE PERMITTED provided save this copyright
notice. This document/program is distributed WITHOUT any warranty, use at YOUR
own risk.
Dokument ten (URL: http://www.opcode.eu.org/latex)
należy do serwisu OpCode. Autorem tej strony jest Robert Paciorek,
wszelkie uwagi proszę kierować na adres e-mail serwisu: webmaster@opcode.eu.org.
Data ostatniej modyfikacji artykulu: 2009-01-06 10:25:04 (UTC) (data ta może być zafałszowana niemerytorycznymi modyfikacjami artykułu).