LaTeX (carte)/Subiecte avansate
Iată câteva subiecte care nu sunt neapărat necesare pentru a scrie un document corespunzător, însă care vă pot ușura munca și vă pot oferi posibilitatea de a modifica unele aspecte de detaliu ale editării cu LaTeX.
Adăugați propriile contoare
modificareÎn LaTeX este foarte ușor să creați contoare noi și chiar contoare care se resetează automat când este crescut un altul (gândiți-vă la exemplul unei subsecțiuni într-o secțiune). Cu comanda
\newcounter{Numele contorului}
puteți crea un contor nou care este setat automat la zero. Dacă vreți ca un contor să fie resetat la zero de fiecare dată când este crescut un alt contor specificat, utilizați comanda:
\newcounter{Numele contorului}[Numele celuilalt contor]
Pentru a mări un contor, folosiți
\stepcounter{Numele contorului}
sau
\refstepcounter{Numele contorului} % folosit pentru etichete și referințe
sau
\addtocounter{Numele contorului}{număr}
Aici numărul poate fi și negativ. Pentru resetare automată, folosiți \stepcounter
.
Puteți afla cu ușurință valorile contoarelor, spre exemplu cu ajutorul comenzii:
\arabic{Numele contorului}
În loc de \arabic
puteți utiliza \alph
, \Alph
, \roman
sau \Roman
.
Iată un exemplu pentru a recrea ceva similar unui contor pentru secțiune și subsecțiune ce există deja în LaTeX:
\newcounter{sect}
\newcounter{subsect}[sect]
\addtocounter{sect}{2} % adaugă 2 la primul contor
\addtocounter{sect}{10} % adaugă 10 la primul contor
%
\arabic{sect}.\arabic{subsect} % 12.0 bla bla
bla bla
\stepcounter{sect} % crește primul contor
\arabic{sect}.\arabic{subsect} % 13.0 bla bla
bla bla
\stepcounter{subsect} % crește al doilea contor
\arabic{sect}.\arabic{subsect} % 13.1 bla bla
bla bla
\addtocounter{subsect}{25} % crește al doilea contor
\arabic{sect}.\arabic{subsect} % 13.26 bla bla și mai mult bla bla
bla bla și mai mult bla bla
Căsuțe
modificareLaTeX construiește paginile cu ajutorul unor căsuțe. La început, fiecare literă este o căsuță mică, care este apoi lipită de celelalte litere pentru a forma cuvinte. Acestea sunt din nou alipite altor cuvinte, însă cu un adeziv special, care este elastic astfel încât o serie de cuvinte pot fi apropiate sau îndepărtate în așa măsură încât să umple exact o linie a paginii.
Evident, aceasta este o descriere foarte simplistă a ceea ce se întâmplă în realitate, însă ideea e că TeX operează cu adezivi și căsuțe. Literele nu sunt singurele lucruri ce pot fi căsuțe. Puteți pune practic orice într-o căsuță, inclusiv alte căsuțe. Fiecare căsuță va fi apoi tratată de LaTeX ca și cum ar fi o singură literă.
Ultimele capitole au tratat deja cu unele căsuțe, deși nu au fost descrise ca atare. Mediul tabular și comanda \includegraphics
, spre exemplu, produc amândouă o căsuță. Asta înseamnă că puteți aranja ușor două tabele sau imagini una lângă alta. Trebuie doar să aveți grijă că lățimea lor combinată nu depășește \textwidth
.
Puteți de asemenea să includeți un paragraf oarecare într-o căsuță cu comanda
\parbox[poziție]{lățime}{text}
sau cu mediul
\begin{minipage}[poziție]{lățime} text \end{minipage}
Parametrul poziție poate fi c, t sau b pentru a controla alinierea verticală a căsuței față de textul înconjurător. Lățimea specifică lățimea căsuței. Diferența principală dintre minipage și \parbox este că nu puteți folosi toate comenzile și mediile într-o căsuță parbox, în vreme ce aproape tot ce puteți face în LaTeX este permis într-un mediu minipage.
În vreme ce \parbox include un paragraf întreg, separând liniile și restul pe verticală, există și o clasă de comenzi ce creează căsuțe și care operează numai cu material aliniat orizontal. Deja știm una dintre acestea: \mbox. Aceasta pur și simplu include mai multe căsuțe într-una singură, și poate fi utilizată pentru a împiedica sistemul LaTeX să separe două cuvinte. De vreme ce puteți pune căsuțe în alte căsuțe, aceste comenzi ce pun laolaltă căsuțe orizontale vă oferă foarte multă flexibilitate.
\makebox[lățime][poziție]{text}
Lățimea definește lățimea căsuței rezultate așa cum este ea văzută din afară (Asta înseamnă că poate fi mai mică decât materialul din căsuță. Puteți chiar să setați lățimea la 0pt astfel încât textul din căsuță să fie tipărit fără a influența căsuțele înconjurătoare). În afara expresiilor de lungime, puteți folosi și \width, \height, \depth, și \totalheight ca parametru pentru lățime. Acestea sunt determinate pe baza valorilor obținute din măsurarea textului tipărit. Parametrul poziție poate lua valoarea: center (centru), left (stânga), right (dreapta) sau spread (ajustează spațiile din text ca să umple căsuța).
Comanda \framebox merge exact la fel ca \makebox, însă desenează un cadru în jurul textului.
Exemplul următor prezintă câteva lucruri pe care le puteți face cu comenzile \makebox și \framebox:
\framebox
{
\begin{minipage}{0.5\textwidth}
\makebox[\textwidth]
{c e n t r a l}\par
\makebox[\textwidth][s]
{r ă s p â n d i t}\par % spread
\framebox[1.1\width]{Text încadrat
într-un chenar!}\par
\framebox[0.8\width][r]{Păcat, sunt un
text prea lat}\par%aliniat la dreapta
\framebox[1cm][l]{Nu contează, și
eu sunt la fel} % aliniat la stânga
Poți să citești asta?
\end{minipage}
}
|
Acum că putem controla ce e scris pe orizontală, pasul următor este să facem asta și pe verticală. Nicio problemă pentru LaTeX. Comanda
\raisebox{ridicare}[deasupra-nivelului-textului][sub-nivelul-textului]{text}
vă permite să definiți proprietățile verticale ale unei căsuțe. Parametrul ridicare specifică în ce măsură căsuța va fi ridicată (pentru o valoare pozitivă) sau coborâtă (pentru o valoare negativă) față de nivelul textului înconjurător. Puteți folosi comenzile \width, \height, \depth și \totalheight pentru primii trei parametri, pentru a determina mărimea căsuței textului:
\framebox
{
\begin{minipage}{0.5\textwidth}
\raisebox{0pt}[0pt][0pt]{\Large
\textbf{Aaaa\raisebox{-0.3ex}{a}
\raisebox{-0.7ex}{aa}
\raisebox{-1.2ex}{r}
\raisebox{-2.2ex}{g}
\raisebox{-4.5ex}{h}}}
a strigat el, dar nici măcar cel
din spatele lui nu a observat că
i s-a întâmplat ceva îngrozitor.
\end{minipage}
}
|
O alternativă la aceste abordări este utilizarea mediului framed (va trebui să includeți pachetul framed pentru a-l putea folosi). Acesta oferă o cale ușoară pentru a include un paragraf într-o căsuță cu margini vizibile (chenar) într-un document:
\begin{framed}
\noindent Acesta este un mod facil de a
încadra text într-un chenar în document!
\end{framed}
|
Linii și bare
modificareComanda \rule în mod normal produce o căsuță neagră simplă:
\rule[ridicare]{lățime}{înălțime}
Parametrul ridicare specifică în ce măsură căsuța va fi ridicată (pentru o valoare pozitivă) sau coborâtă (pentru o valoare negativă) față de nivelul textului înconjurător. Iată un exemplu:
\rule{3mm}{.1pt}%
\rule[-1mm]{5mm}{1cm}%
\rule{3mm}{.1pt}%
\rule[1mm]{1cm}{5mm}%
\rule{3mm}{.1pt}
|
Aceste comenzi sunt utile pentru trasarea de linii verticale și orizontale.
Un caz special este o linie fără lățime (0 pt), dar cu o înălțime pozitivă precizată (bară verticală). Se folosește pentru a garanta că un element de pe o pagină are o anumită înălțime minimă. Puteți să utilizați acest element într-un mediu tabelar ca să vă asigurați că un rând are o înălțime minimă specificată.
Puteți folosi pachetul microtype pentru a elimina despărțirea în silabe (modificând spațiile dintre litere și cuvinte), ligaturile (vezi capitolul Formatare, secțiunea Ligaturi) și pentru alte aspecte microtipografice. Pentru mai multe informații, vezi documentația pachetului.