LaTeX (carte)/Structura unui document
Scopul principal al scrierii unui text este să transmită idei, informații, sau cunoștințe cititorului. Acesta va înțelege mai bine textul dacă ideile sunt bine structurate, și vor percepe această structură mult mai bine dacă forma tipografică reflectă structura logică și semantică a conținutului.
LaTeX este diferit de alte sisteme de redactare prin faptul că trebuie să-i transmiți numai structura logică și semantică a textului. Acesta derivă apoi forma tipografică a textului în funcție de "regulile" date de fișierul ce conține setările pentru clasa documentului și de diverse fișiere de stiluri. LaTeX permite utilizatorilor să-și structureze documentele cu o serie de structuri ierarhice, printre acestea numărându-se capitole, secțiuni, subsecțiuni și paragrafe.
Mediul document
[modificare]După declarația clasei documentului, textul documentului este cuprins între două comenzi ce identifică începutul și sfârșitul documentului efectiv:
\documentclass[11pt,a4paper,oneside]{report} \begin{document} ... \end{document}
Textul efectiv al documentului ar fi în locul punctelor. Motivul pentru marcarea explicită a începutului documentului este ca LaTeX să permită inserarea unor specificații suplimentare de formatare înaintea acestuia (acolo unde este linia goală în exemplul dinainte: o să ne ocupăm de asta în curând). Motivul pentru marcarea explicită a sfârșitului textului este pentru a oferi un loc în care LaTeX să fie programat să îndeplinească sarcini adiționale în mod automat la sfârșitul documentului, cum ar fi realizarea unui index.
Un efect secundar util al marcării sfârșitului textului din document este faptul că puteți scrie comentarii sau păstra ceva text temporar după \end{document}, știind că LaTeX nu va încerca niciodată să-l formateze:
... \end{document} Nu uita să iei ultimul capitol de la Dorando!
Preambul
[modificare]Preambulul (preamble) este tot ce intră de la începutul fișierului sursă LaTeX și până la comanda \begin{document}
. În mod normal conține comenzi ce afectează întregul document.
% simplu.tex - Un articol simplu pentru a ilustra structura documentului. \documentclass{article} \usepackage{mathptmx} \begin{document}
Prima linie este un comentariu (după cum se specifică prin semnul %). Comanda \documentclass
ia un argument, care în cazul de față este article (articol), întrucât acesta este tipul documentul pe care vrem să-l realizăm. Puteți să creați propriul tip de document, după cum fac deseori jurnaliștii, care oferă pur și simplu propriul fișier cu setările pentru clasa documentului, ce spune sistemului LaTeX cum să formateze conținutul. Însă pe moment clasa standard pentru articole (article) este de ajuns pentru noi. \usepackage
este o comandă importantă ce spune sistemului LaTeX să utilizeze niște macrodefiniții externe. În exemplul nostru, am specificat mathptmx
, ceea ce înseamnă că LaTeX va folosi fontul Postscript Times de tipul 1 în locul fontului implicit ComputerModern. Și în sfârșit, comanda \begin{document}
. Aceasta nu face parte în mod strict din preambul, însă o voi menționa aici oricum, de vreme ce semnifică sfârșitul preambulului, spunând că documentul începe acum.
La început de document
[modificare]La începutul celor mai multe documente se găsesc informații despre documentul propriu-zis, cum sunt titlul și data, ca și informații despre autori, precum numele, adresa, adresa de email, etc. Toate aceste tipuri de informații din LaTeX sunt denumite colectiv top matter (ce se găsește la început de document). Deși nu este specificat în mod explicit (nu există nicio comandă \topmatter
), veți întâlni probabil termenul în documentația LaTeX.
Un exemplu simplu:
|
Comenzile \title
, \author
și \date
nu au nevoie de explicații suplimentare. Scrieți titlul, numele autorului și data între acolade după comanda corespunzătoare. Titlul și autorul sunt de obicei obligatorii (cel puțin dacă vreți ca LaTeX să scrie titlul automat); dacă omiteți comanda \date
, LaTeX folosește implicit data curentă. Întotdeauna terminați partea de la începutul documentului cu comanda \maketitle
, care transmite sistemului LaTeX că aceasta s-a încheiat și că poate să formateze titlul în concordanță cu informațiile oferite și cu clasa (stilul) utilizat. Dacă omiteți comanda \maketitle
, nu va fi afișat niciun titlu (în afară de cazul în care scrieți unul explicit la începutul documentului).
Iată un exemplu mai complicat:
|
După cum vedeți, puteți folosi comenzi ca argumente ale comenzii \title
și ale altor comenzi. Backslash dublu (\\
) este comanda LaTeX pentru a forța trecerea la o linie nouă. LaTeX decide în mod normal singur unde să treacă la o linie nouă, și în general are dreptate, însă câteodată aveți nevoie de o linie mai scurtă, ca aici, și atunci trebuie să adăugați un sfârșit de linie (\\
).
Dacă sunt doi sau mai mulți autori, puteți să-i separați cu comanda \and
:
|
\maketitle
este singurul element care trebuie să fie situat după comanda \begin{document}
, celelalte pot fi situate în preambul sau în corpul documentului (după \begin{document}
).
Dacă aveți o clasă de la o firmă de publicații, sau dacă folosiți clasa article a AMS (amsart), atunci puteți folosi mai multe comenzi diferite pentru a introduce informațiile legate de autori. Adresa de email este la sfârșit, iar comanda \texttt
formatează adresa de email folosind un font mono-spațiat. Comanda implementată în LaTeX \today
va fi înlocuită cu data curentă la procesare, însă puteți să specificați ce dată vreți, în ce format doriți. Dacă nu specificați nicio dată între acolade, atunci data va fi omisă.
Folosind această abordare, puteți crea numai un output simplu, al cărui aspect este foarte greu de schimbat. Dacă vreți să creați un titlu cu mai multe facilități, consultați secțiunea Crearea unui titlu.
Rezumat
[modificare]Deoarece cele mai multe lucrări științifice au un rezumat la început, există comenzi predefinite ce spun sistemlui LaTeX care parte a conținutului constituie rezumatul. Aceasta ar trebui să apară în ordinea logică a documentului, prin urmare, după partea de la începutul documentului (top matter) cu data și autorii, însă înainte de secțiunile principale ale corpului documentului. Această comandă este disponibilă pentru clasele de documente articol (article) și raport (report), însă nu și pentru carte (book).
\documentclass{article} \begin{document} \begin{abstract} Rezumat ... ... \end{abstract} ... \end{document}
Implicit, LaTeX va folosi cuvântul "Abstract" ca titlu pentru rezumat. Dacă vreți să-l schimbați, spre exemplu în "Rezumat", adăugați linia următoare la preambul:
\renewcommand{\abstractname}{Rezumat}
Comenzi de împărțire pe secțiuni
[modificare]Comenzile pentru inserarea secțiunilor sunt foarte intuitive. Desigur, anumite comenzi sunt corespunzătoare numai pentru anumite clase de documente. Spre exemplu, o carte are capitole, însă un articol nu are. Iată o versiune modificată a câtorva comenzi de structurare utilizate în simplu.tex.
\section{Introducere} Conținutul secțiunii curente... \section{Structură} Conținutul secțiunii prezente... \subsection{Începutul documentului} Conținutul acestei subsecțiuni... \subsubsection{Informații despre articole} Conținutul subsubsecțiunii de față...
După cum puteți vedea, comenzile sunt foarte intuitive. Observați că nu trebuie să specificați numere pentru secțiuni. LaTeX le va numerota singur! De asemenea, pentru secțiuni, nu trebuie să marcați conținutul ce aparține unui bloc dat, cu ajutorul unor comenzi \begin
și \end
, de exemplu. LaTeX oferă 7 niveluri de ierarhizare pentru definirea secțiunilor:
Comandă | Nivel | Comentariu |
---|---|---|
\part{parte} | -1 | nu în scrisori |
\chapter{capitol} | 0 | numai pentru cărți și rapoarte |
\section{secțiune} | 1 | nu în scrisori |
\subsection{subsecțiune} | 2 | nu în scrisori |
\subsubsection{subsubsecțiune} | 3 | nu în scrisori |
\paragraph{paragraf} | 4 | nu în scrisori |
\subparagraph{subparagraf} | 5 | nu în scrisori |
Toate titlurile secțiunilor sunt adăugate automat cuprinsului (dacă vă hotărâți să inserați un cuprins în document). Însă dacă faceți schimbări manuale de stil antetului, spre exemplu un titlu foarte lung, sau caractere de sfârșit de linie speciale sau fonturi mai deosebite, acestea vor apare la rândul lor în Tabla de materii, lucru care cel mai probabil nu vreți să se întâmple. LaTeX vă permite să dați o versiune suplimentară opțională textului antetului, care va fi folosită numai în Cuprins și în antetele din document. Această opțiune alternativă de antet se scrie în [paranteze drepte] înainte de acolade:
\section[Efectul tranferului de personal]{O analiză a efectului revizuirii politicilor de recrutare asupra tranferului de personal la sediile filialelor}
Numerotarea secțiunilor
[modificare]Numerotarea secțiunilor este făcută în mod automat de LaTeX, așa că nu vă deranjați să realizați asta explicit, inserați numai antetul dorit între acolade.
Părțile sunt numerotate cu cifre romane (Partea I, Partea II, etc.); capitolele și secțiunile cu cifre arabe, ca documentul de față, iar anexele (care sunt doar un caz special de capitole și au aceeași structură) sunt etichetate cu litere mari (A, B, C, etc.). Puteți schimba nivelul de ierarhizare până la care merge numerotarea secțiunilor, astfel încât puteți să o opriți selectiv. Implicit se seteză la valoarea 2. Dacă doriți ca numai părțile, capitolele și secțiunile să fie numerotate, nu subsecțiunile sau subsubsecțiunile, etc., puteți schimba valoarea contorului secnumdepth cu ajutorul comenzii \setcounter
, dând un nivel de ierarhizare corespunzător din tabelul precedent. Spre exemplu, dacă vreți să fie "1":
\setcounter{secnumdepth}{1}
Un contor corelat este tocdepth, care specifică nivelul de ierarhizare pe care îl ia Cuprinsul (Table of Contents - TOC). Poate fi resetat în exact același mod ca și secnumdepth. Spre exemplu:
\setcounter{tocdepth}{3}
Pentru a obține un antet de secțiune nenumerotat și care nu intră în Cuprins, adăugați un asterisc după numele comenzii la începutul acoladei:
\subsection*{Introducere}
Toate comenzile de structurare de la \part*
la \subparagraph*
au această versiune "cu steluță" ce poate fi folosită în condiții speciale pentru a obține un antet nenumerotat atunci când conform cu setarea secnumdepth ar fi numerotat.
Dacă vreți ca secțiunea nenumerotată să fie totuși inclusă în Cuprins, folosiți comanda \addcontentsline
în felul următor:
\section*{Introducere} \addcontentsline{toc}{section}{Introducere}
Notați că dacă folosiți marcaje în document (bookmarks) pentru PDF, va trebui să adăugați o secțiune fantomă (phantom) astfel ca acel bookmark să indice corect locul din document:
\phantomsection \addcontentsline{toc}{section}{Introducere} \section*{Introduction}
Pentru capitole va trebui de asemenea să terminați pagina curentă (acest lucru va corecta și numărătoarea paginilor în Cuprins):
\cleardoublepage \phantomsection \addcontentsline{toc}{chapter}{Bibliografie} \bibliographystyle{unsrt} % unsorted - nesortat \bibliography{fișierul_meu_bib}
Valoarea de la care pornește numărătoarea secțiunilor poate fi setată cu următoarea comandă:
\setcounter{section}{4}
Secțiunea următoare acestei comenzi va fi numerotată cu 5.
Comanda \phantomsection
este definită în pachetul hyperref. Ea permite hyperref să pună un hyper marker la pagina corectă (selectarea din Cuprins a Bibliografiei vă trimite la pagina corectă la care incepe Bibliografia în document).
Anexe
[modificare]LaTeX suportă și numerotarea separată a anexelor. Macroul \appendix
poate fi folosit pentru a indica faptul că secțiunile sau capitolele următoare vor fi numerotate ca anexe.
În clasele raport sau carte, acest lucru se scrie:
\appendix \chapter{Prima Anexă}
Pentru clasa articol, folosiți:
\appendix \section{Prima Anexă}
Paragrafe
[modificare]Paragrafele de text vin după antetele secțiunilor. Pur și simplu scrieți textul și lăsați o linie liberă între paragrafe. Linia liberă înseamnă "începe un paragraf nou aici": nu înseamnă că o linie liberă va fi scrisă în documentul rezultat. Pentru formatarea indentării paragrafelor și spațierea dintre paragrafe, vezi secțiunea Formatare.
Cuprins
[modificare]Toate antetele auto-numerotate sunt incluse automat în Cuprins. Nu trebuie să adăugați un Cuprins la document, dar dacă vreți s-o faceți, adăugați comanda \tableofcontents
în locul în care vreți să apară cuprinsul în documentul de ieșire (de obicei după Rezumat).
Intrările din Cuprins sunt reordonate la fiecare nouă procesare a documentului și reproduse la procesarea următoare, astfel că trebuie să compilați fișierul LaTeX încă o dată pentru a fi siguri că toate referințele la numerele de pagini din Cuprins au fost calculate corect. Am văzut deja cum putem folosi un argument opțional la comenzile de scriere a secțiunilor pentru a adăuga text la Cuprins care diferă puțin de cel afișat în corpul documentului. Se pot adăuga de asemenea linii suplimentare la Cuprins, pentru a forța includerea antetelor secțiunilor suplimentare sau nenumerotate.
Comenzile \listoffigures
și \listoftables
merg exact la fel ca \tableofcontents
, listând automat toate tabelele și figurile. Dacă le folosiți, în mod normal le veți scrie după comanda \tableofcontents
. Comanda \tableofcontents
afișează în mod normal numai antetele secțiunilor numerotate și numai până la nivelul de ierarhizare definit de contorul tocdepth, însă puteți adăuga intrări suplimentare cu comanda \addcontentsline
. Spre exemplu, dacă folosiți un antet de secțiune nenumerotată pentru a începe un text preliminar de genul unei Prefețe sau Cuvânt înainte, puteți scrie:
\subsection*{Prefață} \addcontentsline{toc}{subsection}{Prefață}
Aceste comenzi vor formata o intrare nenumerotată în Cuprins pentru "Prefață" în stilul "subsection". Puteți folosi același mecanism pentru a adăuga linii la Lista de figuri sau la Lista de tabele, scriind lof sau lot în loc de toc.
Pentru a schimba numele Cuprinsului, trebuie să folosiți această comandă în preambulul documentului:
\renewcommand{\contentsname}{Titlu nou pentru cuprins}
Denumirile listei de figuri List of Figures (LoF) și listei de tabele List of Tables (LoT) pot fi schimbate înlocuind \contentsname
cu \listfigurename
pentru LoF și cu \listtablename
pentru LoT.
Niveluri de ierarhizare
[modificare]Cuprinsul implicit va lista antete până la nivelul de ierarhizare 3. Pentru a schimba acest nivel implicit folosiți în preambul comanda:
\setcounter{tocdepth}{4}
Asta va face cuprinsul să includă tot până la paragrafe. Nivelurile sunt definite mai sus pe această pagină (într-un tabel).
Bibliografie
[modificare]Orice lucrare bună de cercetare are o listă de referințe. Sunt două moduri prin care puteți insera referințe în LaTeX:
- le puteți include direct în document. E mai simplu, însă vă poate lua mult timp dacă scrieți mai multe lucrări cu subiecte similare astfel încât trebuie să citați des aceleași cărți.
- le puteți păstra într-un fișier BibTeX extern, iar apoi le puteți lega la document printr-o comandă și folosi stilul Bibtex pentru a le defini aspectul din document. În felul acesta puteți crea o mică bază de date a referințelor pe care le-ați putea folosi și pur și simplu să le legați la document, lăsând sistemul LaTeX să lucreze pentru voi.
Pentru a afla cum puteți adăuga o bibliografie documentului, consultați secțiunea Gestiunea bibliografiei.