LaTeX/Print version
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".
Se acordă permisiunea de a copia, distribui și/sau modifica acest document în condițiile Licenței GNU pentru Documentație Liberă (GNU Free Documentation License), Versiunea 1.2 sau oricărei versiuni mai noi publicată de Free Software Foundation; fără nicio Secțiune Invariantă (Invariant Sections), niciun Text pentru Coperta I (Front-Cover Texts) și niciun Text pentru Coperta IV (Back-Cover Texts). O copie a acestei licențe este în secțiunea intitulată "GNU Free Documentation License".
Cuprins
- Capitole
- Noțiuni elementare
- Elemente de bază
- Structura unui document
- Erori și avertismente
- Crearea unui titlu
- Gestiunea bibliografiei
- Tabele
- Formatare
- Formatare avansată
- Fonturi
- Aranjarea în pagină
- Matematică
- Matematică avansată
- Teoreme
- Etichete și referințe
- Indexare
- Glosar
- Algoritmi și pseudocod
- Scrisori
- Importarea de imagini
- Crearea de imagini
- Elemente flotante, figuri și note
- Prezentare
- Hyperlinkuri
- Culori
- Pachete
- Subiecte avansate
- Pentru profesori
- LaTeX personalizat
- Fișiere multiple
- Realizarea în colaborare de documente LaTeX
- Sfaturi și trucuri
- Ghid general
- Exportarea sub alte formate
- Internaționalizare
- Accente și caractere speciale
- Anexe
- Instalare
- Macrouri utile pentru măsurare
- Comenzi utile pentru dimensiuni
- Documente selective LaTeX
- Mai multe despre bibliografie
- Index
- Glosar de comenzi
- Linkuri
- Autori
- GNU Free Documentation License
Introducere
Ce este TeX?
TeX (X sau chi se pronunță ca în cuvântul scoțian loch) este un limbaj de markup și de programare low-level creat de Donald Knuth pentru redactarea atractivă și consistentă a documentelor. Numele său provine de la cuvântul grecesc "τεχνολογία" (technologìa), care se traduce prin "tehnologie" în română; prima sa silabă este "τεχ", similar cu TeX din alfabetul latin. După alte surse, numele provine de la cuvântul grecesc "τέχνη" (techni), care înseamnă artă sau meșteșug în română. În al doilea caz, prima silabă este tot "τεχ".
Knuth a început sǎ scrie programul de redactare TeX în 1977 pentru a explora potențialul echipamentelor de tipǎrire digitală care începea să se infiltreze în domeniul editurilor de la vremea aceea, mai ales în speranța că va putea inversa tendința deteriorării calității tipografice, care a văzut că-i afecta propriile cărți și articole.
TeX este un limbaj de programare, în sensul că suportă conceptul if-else, poți face calcule cu el (care se realizează la compilarea documentului), etc., însă este foarte greu să faci altceva în afara redactării. Controlul fin pe care TeX îl oferă îl face foarte puternic, însă de asemenea dificil și solicită mult timp. TeX este renumit pentru că este extrem de stabil, pentru că rulează pe multe tipuri diferite de calculatoare și pentru faptul că practic nu are erori de programare.
În zilele noastre, când realizează documente în limbajul TeX, practic nimeni nu folosește TeX simplu. În schimb, se folosesc diferite distribuții TeX, cum este LaTeX, pentru a economisi timp, pentru a automatiza anumite sarcini și pentru a reduce numărul de erori introduse de utilizatori.
Ce este LaTeX?
LaTeX (pronounțat fie "Lah-tech", fie "Lay-tech") este un pachet macro bazat pe TeX creat de Leslie Lamport. Scopul său este să simplifice redactarea TeX, mai ales pentru documente ce conțin formule matematice.
Mulți autori de mai târziu au contribuit cu extensii, numite pachete sau stiluri, la LaTeX. Unele dintre acestea sunt încorporate în majoritatea distribuțiilor software TeX/LaTeX; altele se pot găsi în arhivele de la Comprehensive TeX Archive Network (CTAN).
De vreme ce LaTeX conține un grup de comenzi TeX, procesarea documentelor LaTeX este în esență programare. Creezi un fișier text în markup-ul LaTeX. Macroul LaTeX îl citește pentru a produce documentul final.
În mod evident, această abordare are câteva dezavantaje în comparație cu un program WYSIWYG (What You See Is What You Get - Ceea ce vezi pe ecran va fi tipărit exact la fel la imprimantă) de genul Openoffice.org Writer sau Microsoft Word.
În LaTeX:
- Nu vezi (de obicei) versiunea finală a documentului când îl editezi.
- În general, trebuie să știi comenzile necesare pentru markup-ul LaTeX.
- Câteodată e greu să obții un anumit aspect pentru document.
Pe de altă parte, abordarea LaTeX are unele avantaje:
- Fișierele sursă ale documentelor pot fi citite cu orice editor de texte și înțelese, spre deosebire de formatele binare și XML complexe utilizate de programele WYSIWYG.
- Te poți concentra doar pe structura și conținutul documentului, fără să fii prins de aspecte superficiale legate de afișare.
- Nu trebuie să ajustezi manual fonturi, dimensiunea textului, înălțimea liniilor sau aranjarea textului pentru lizibilitate, deoarece LaTeX se ocupă de aceste aspecte în mod automat.
- În LaTeX, structura documentului este vizibilă utilizatorului, și poate fi copiată cu ușurință în alt document. În aplicații WYSIWYG, deseori nu este clar cum s-a realizat o anumită formatare, și ar putea fi imposibil să fie copiată direct pentru a fi utilizată în alt document.
- Aranjarea în pagină, fonturile, tabelele și așa mai departe sunt consistente pentru întregul document.
- Formulele matematice sunt ușor de redactat.
- Se generează ușor indecși, note de subsol, citate și referințe.
- Ești nevoit să-ți structurezi corect documentele.
Abordarea tipică LaTeX poate fi denumită WYSIWYM, adică What You See Is What You Mean — Vezi ceea ce vrei să spui: nu poți vedea versiunea finală în vreme ce tipărești. În schimb, vezi structura logică a documentului. LaTeX se ocupă de formatare pentru tine.
Documentul LaTeX este un fișier text simplu ce cuprinde conținutul documentului, cu markup adițional. Când fișierul sursă este procesat de pachetul macro, poate produce documente în mai multe formate. LaTeX suportă nativ DVI și PDF, însă cu alte programe poți crea ușor PostScript, PNG, JPG, etc.
Programe necesare
Vei avea nevoie cel puțin de o distribuție TeX, un editor de texte bun și un program de vizualizare pentru DVI sau PDF.
Instalarea unei distribuții
Distribuțiile recomandate pentru fiecare dintre sistemele de operare majore sunt:
Windows
Ambele distribuții Windows au programe de instalare facile care se îngrijesc de setarea mediului și descărcarea pachetelor.
- TeX Live poate fi obținut de la pagina de download.
- MiKTeX poate fi descărcat aici.
Linux
- Ubuntu are o versiune din 2009 a TeX Live în depozitele de software, așa că puteți folosi: sudo apt-get install texlive. Aici e un script pentru automatizarea instalării TeX Live 2010 în Ubuntu.
- Fedora are doar o versiune din 2007 a TeX Live, însă din fericire se găsește un bun depozit software aici pe care îl poți folosi pentru a instala direct ultima versiune: yum install texlive (și oricare dintre pachetele texlive-scheme-).
Dacă distribuția ta nu are pachetele TeX Live, poți pune o dorință în sistemul de gestiune a problemelor de programare (bug tracking system). În cazul cel mai rău, va trebui să descarci TeX Live singur și să rulezi programul de instalare manual. Nu este greu, însă va trebui să faci mai multe alegeri decât atunci când îl instalezi cu un manager de pachete (package manager).
Mac OS
Descarcă MacTeX.mpkg.zip de pe MacTeX page, dezarhivează-l și urmează instrucțiunile. E foarte ușor.
Obținerea unui editor de texte
Îți mai trebuie un editor de texte ca să scrii cod LaTeX, cum este un editor simplu de text de genul Notepad sau Notepad++. Un editor LaTeX dedicat va fi mai util datorită autocompletării și afișării erorilor.
TeXworks
TeXworks este un editor TeX dedicat inclus în MiKTeX și TeX Live. A fost dezvoltat în ideea că o interfață simplă este mai bună decât una plină de facilități, și astfel să facă mai ușor pentru începătorii LaTeX să obțină ce vor: să-și scrie documentele. TeXworks a fost dezvoltat inițial întocmai pentru că un profesor de matematică a dorit ca studenții să aibă o experiență inițială mai bună cu LaTeX.
Poți instala TeXworks cu managerul de pachete al distribuției Linux pe care o folosești sau să-l selectezi ca opțiune la instalarea în Windows sau Mac.
Kile
Kile este un editor LaTeX KDE portabil (cross platform), ce oferă o interfață grafică deosebită pentru a edita mai multe tipuri de documente și a le compila cu diverse compilatoare TeX. Kile se bazează pe editorul Kate, are o bară cu instrumente ușor accesibilă pentru simboluri, un program de vizualizare pentru structura documentului, o consolă și opțiuni implicite ușor de personalizat. Kile poate rula în orice sistem de operare cu KDE.
TeXmaker
TeXmaker este un editor portabil, foarte asemănător cu Kile în ce privește facilitățile oferite și interfața cu utilizatorul. În plus, are propriul program de vizualizare pentru PDF.
TeXnicCenter
TeXnicCenter este un editor LaTeX gratuit și open source popular pentru Windows. Are o interfață cu utilizatorul similară cu TeXmaker și Kile.
BaKoMa TeX
BaKoMa TeX este un editor LaTeX pentru Windows cu facilități de genul WYSIWYG. Realizează compilarea codului sursă LaTeX, pe care îl actualizează constant pentru a vedea schimbările produse documentelor aproape în timp real.
LyX
LyX este un editor LaTeX pentru Windows, Linux și Mac OS. Conține editoare pentru formule și tabele și afișează indicii vizuale ale documentului final pe ecran, permițând utilizatorilor să scrie documente LaTeX fără să aibă în grijă sintaxa folosită.
TeXShop
TeXShop este un editor LaTeX în genul TeXworks pentru Mac OS.
gedit-latex-plugin
Gedit cu gedit-latex-plugin merită de asemenea să fie încercat de utilizatorii GNOME. Gedit este o aplicație portabilă pentru Windows, Mac și Linux.
Gummi
Gummi este un editor LaTeX pentru Linux, care compilează rezultatul de ieșire al comenzii pdflatex în timp real și îl prezintă în partea dreaptă a ecranului.
Programe de vizualizare
În sfârșit, îți trebuie un program de redare pentru fișierele de ieșire LaTeX. Dacă folosești un compilator de genul pdflatex, poți vizualiza rezultatul cu programul preferat de redare PDF (Adobe Reader, Okular, Evince, Sumatra, Foxit).
Practic toate distribuțiile LaTeX au un program de redare DVI pentru a vedea rezultatul implicit al comenzii latex, și de asemenea programe utilitare cum este dvi2pdf pentru a converti automat rezultatul în format PDF.
Aplicații în cadrul unei distribuții
Acestea sunt programele principale pe care le puteți găsi în orice distribuție (La)TeX:
- tex: compilatorul cel mai simplu, primește ca input un fișier TeX și creează un DVI
- pdftex: primește un fișier TeX, însă creează un PDF
- latex: cel mai folosit: primește ca input un fișier LaTeX și creează un DVI
- pdflatex: dintr-un fișier LaTeX creează un PDF
- dvips: transformă un DVI în PostScript
- dvipdf: transformă un DVI în PDF
- dvipdfm: versiune îmbunătățită a celei dinainte
Când LaTeX a apărut, singurul format pe care putea să-l creeze era DVI; mai târziu, pdflatex a adăugat formatul PDF. pdflatex și dvipdfm pot amândouă să creeze fișiere PDF. pdflatex folosește caracteristici noi ale PDF-urilor, cum sunt hyperlinkurile, care nu se regăsesc în DVI. Trecerea prin formatul intermediar DVI impune limitările acestuia. Pe de altă parte, unele pachete — cum este PSTricks — se bazează pe procesul transformării în DVI, și de aceea nu merg cu pdflatex. Unele pachete includ informații în DVI ce nu apar la vizualizarea DVI, ci doar la transformarea DVI într-un alt format, mai nou.
În mod normal, ați scrie documentele puțin diferit în funcție de compilatorul folosit (latex sau pdflatex). Însă, după cum vom vedea mai târziu, se poate adăuga un fel de nivel de abstractizare pentru a ascunde detaliile compilatorului folosit, în vreme ce compilatorul face el însuși transformarea.
Notați faptul că, de vreme ce LaTeX este doar o colecție de macrouri pentru TeX, dacă compilați un document TeX simplu cu un compilator LaTeX (cum este pdflatex), va merge, în vreme ce opusul nu este adevărat: dacă încercați să compilați un fișier sursă LaTeX cu un compilator de TeX veți obține multe erori.
Diagrama următoare prezintă relațiile dintre codul sursă (La)TeX și toate formatele ce pot fi create pe baza lui:
Textul scris cu roșu din căsuțe reprezintă formatele de fișiere, textul cu albastru de pe săgeți reprezintă comenzile pe care trebuie să le folosiți, iar textul scris mărunt, cu verde închis, de sub căsuțe reprezintă formatele de imagine suportate. De fiecare dată când treceți printr-o transformare (de-a lungul unei săgeți), pierdeți ceva informații, lucru care poate diminua calitatea documentului. De aceea, pentru a obține cea mai bună calitate a rezultatului, trebuie să alegeți calea cea mai scurtă către formatul țintă. Acesta este probabil și modul cel mai convenabil pentru a genera fișierul de ieșire în formatul dorit. Pornind de la codul sursă LaTeX, calea cea mai bună de urmat ar fi să folosiți comanda latex pentru output DVI și pdflatex pentru PDF, transformând în PostScript numai când trebuie să tipăriți documentul.
Cele mai multe dintre programele necesare ar trebui să fie deja în distribuția LaTeX pe care o folosiți; celelalte vin cu Ghostscript, care este un program gratuit și multi-platform la rândul lui.
Capitolul Exportarea sub alte formate spune mai multe despre ce puteți obține din sursa LaTeX.
Capitole
Noțiuni elementare
Elemente de bază
Clase de documente
Prima informație de care LaTeX are nevoie când procesează un fișier de intrare este tipul de document pe care autorul vrea să-l creeze. Acesta se specifică cu comanda \documentclass
:
\documentclass[opțiuni]{clasă}
Aici clasa specifică tipul de document ce va fi creat. Distribuția LaTeX oferă clase adiționale pentru alte tipuri de documente, inclusiv scrisori și slide-uri. Parametrul pentru opțiuni personalizează comportamentul clasei de documente. Opțiunile trebuiesc separate prin virgulă.
Exemplu: un fișier de intrare pentru un document LaTeX ar putea începe cu linia
\documentclass[11pt,twoside,a4paper]{article}
care instruiește sistemul LaTeX să formateze documentul ca pe un articol cu un font de bază de 11 puncte și să producă un layout potrivit pentru tipărirea dublă față (double sided) pe o foaie A4.
Iată câteva clase de documente ce pot fi folosite în LaTeX:
article | pentru articole în jurnale științifice, prezentări, scurte rapoarte, documentație pentru programe, invitații, ... |
proc | o clasă pentru proceduri bazate pe clasa articol. |
minimal | este cât de mică posibil. Nu face decât să seteze dimensiunea paginii și un font de bază. Se folosește în principal pentru depanare (debugging). |
report | pentru rapoarte mai lungi ce conțin mai multe capitole, cărți mai mici, teze, ... |
book | pentru cărți |
slides | for slide-uri. Clasa folosește litere mari sans serif. |
memoir | pentru a schimba în mod semnificativ documentul de ieșire. Se bazează pe clasa book, însă puteți crea orice tip de document cu ea [1] |
letter | pentru scrisori. |
beamer | pentru prezentări (vezi LaTeX/Prezentare). |
Opțiunile cele mai întâlnite pentru clasele standard de documente sunt prezentate în tabelul următor:
10pt, 11pt, 12pt | Setează dimensiunea fontului de bază pentru document. Dacă nu se specifică nicio opțiune, valoarea implicită este 10pt. |
a4paper, letterpaper,... | Definește mărimea hârtiei. Valoarea implicită este letterpaper; Totuși, multe distribuții europene de TeX sunt presetate pentru A4, nu Letter, iar acest lucru se aplică și tuturor distribuțiilor LaTeX. Însă, în afară de asta, puteți specifica și a5paper, b5paper, executivepaper, legalpaper. |
fleqn | Afișează formulele matematice aliniate la stânga și nu centrat. |
leqno | Numerotarea formulelor se afișează în partea stângă și nu la dreapta. |
titlepage, notitlepage | Specifică dacă după titlul documentului trebuie să înceapă sau nu o pagină nouă. Clasa articol (article) nu începe o pagină nouă în mod implicit, în vreme ce raport (report) și carte (book) încep o pagină nouă. |
onecolumn, twocolumn | Instruiește sistemul LaTeX să formateze documentul într-o coloană sau două coloane. |
twoside, oneside | Specifică dacă documentul generat va fi cu față simplă sau cu față dublă. Clasele article și report generează output cu față simplă, iar clasa book cu față dublă implicit. Notați că această opțiune privește numai stilul documentului. Opțiunea twoside nu spune imprimantei că trebuie să tipărească cu față dublă un document. |
landscape | Schimbă așezarea în pagină a documentului pentru tipărire în modul landscape. |
openright, openany | Face capitolele să înceapă la pagini impare, respectiv la pagina următoare. Această opțiune nu merge cu clasa article, care nu are capitole. Clasa report pornește implicit capitolele pe următoarea pagină disponibilă, iar clasa book implicit la paginile impare. |
draft | Determină sistemul LaTeX să indice problemele legate de împărțirea în silabe și alinierea stânga-dreapta (justify) cu un pătrat mic în marginea din dreapta a liniei respective, astfel încât acestea să poată fi localizate rapid de utilizator. De asemenea suprimă includerea imaginilor, prezentând numai un cadru în locul acestora. |
Spre exemplu, dacă vreți ca un raport să fie generat cu 12pt pe o pagină A4, însă să fie tipărit cu față simplă în modul draft, veți folosi:
\documentclass[12pt,a4paper,oneside,draft]{report}
Utilizarea de pachete
Pe măsură ce scrieți documentul, veți constata probabil că sunt unele probleme mai complicate pe care LaTeX-ul de bază nu le poate rezolva. Dacă vreți să includeți imagini, text colorat sau cod sursă dintr-un alt fișier, trebuie să augmentați facilitățile oferite de LaTeX. Astfel de îmbunătățiri se accesează prin intermediul unor pachete. Pachetele sunt activate cu comanda
\usepackage[opțiuni]{pachet}
unde pachet este numele pachetului, iar opțiuni este o listă de cuvinte cheie ce activează facilități speciale ale pachetului. Unele pachete fac parte din distribuția de bază LaTeX. Altele sunt oferite separat.
Distribuțiile TeX moderne au un mare număr de pachete pre-instalate. Dacă lucrați pe un sistem Unix, folosiți comanda texdoc
pentru a accesa documentația legată de pachete. Pentru mai multe informații, vezi capitolul Pachete.
Tipuri de fișiere întâlnite
Când lucrați cu LaTeX, vă veți trezi în mijlocul unui labirint de fișiere cu diverse extensii și probabil fără nici un indiciu. Lista următoare explică tipurile cele mai întâlnite de astfel de fișiere:
.aux | Un tip de fișier ce transportă informații de la un compilator la următorul. Între altele, fișierul cu extensia .aux se folosește la stocarea informațiilor asociate cu referințele. |
.bbl | Fișier de tip bibliografic generat de BiBTeX și folosit de LaTeX |
.bib | Fișier tip bază de date bibliografică |
.blg | Fișier jurnal (log) de tip BiBTeX. |
.bst | Fișier pentru stiluri tip BiBTeX. |
.cls | Fișierele de tipul clasă definesc felul în care va arăta documentul. Acestea sunt selectate cu comanda \documentclass .
|
.dtx | Fișiere TeX cu documentație . Acesta este principalul format de distribuție pentru fișierele de stiluri LaTeX. Dacă procesați un fișier .dtx, obțineți cod macro documentat din pachetul LaTeX conținut în fișierul .dtx. |
.ins | Programul de instalare pentru fișierele conținute în fișierul corespunzător .dtx. Dacă descărcați un pachet LaTeX din rețea, în mod normal veți obține un fișier .dtx și un fișier .ins. Rulați comanda de compilare LaTeX având ca argument fișierul .ins pentru a dezarhiva fișierul .dtx. |
.fd | Fișier de descriere a fontului ce transmite sistemului LaTeX informații despre fonturile noi. |
.dvi | Fișier independent de dispozitiv (Device Independent). Acesta este rezultul principal obținut de LaTeX în urma compilării cu comanda latex . Puteți vedea conținutul acestuia cu un program de previzualizare pentru DVI sau puteți să-l listați cu comanda dvips sau folosind o aplicație similară.
|
Format portabil de document (Portable Document Format). Acesta este rezultul principal obținut de LaTeX în urma compilării cu comanda pdflatex . Puteți vedea sau lista conținutul acestuia cu orice program de vizualizare pentru PDF.
| |
.log | Oferă detalii amănunțite despre ce s-a întâmplat în timpul ultimei compilări. |
.toc | Păstrează toate antetele de secțiuni. Este citit la următoarea compilare și este folosit la producerea cuprinsului. |
.lof | La fel ca .toc, însă pentru lista de figuri. |
.lot | La fel, dar pentru lista de tabele. |
.idx | Dacă documentul conține un index, LaTeX păstrează toate cuvintele din index în acest fișier. Procesați acest fișier cu comanda makeindex .
|
.ind | Fișierul .idx procesat, gata de a fi inclus în document la următoarea compilare. |
.ilg | Fișier jurnal ce descrie efectele comenzii makeindex .
|
.sty | Pachet macro LaTeX. Acesta este un fișier pe care îl puteți încărca în documentul LaTeX cu ajutorul comenzii \usepackage .
|
.tex | Fișier de intrare LaTeX sau TeX. Poate fi compilat cu comanda latex .
|
Proiecte mari
Când lucrați la documente mari, poate veți dori să le împărțiți în mai multe fișiere mai mici. LaTeX are 3 comenzi pentru a insera un fișier în altul la construirea documentului final.
Cea mai simplă este comanda \input
:
\input{numefișier}
\input
inserează conținutul altui fișier, denumit numefișier.tex; observați că extensia .tex lipsește. \input
este doar o metodă simplă, automată de copiere a codului sursă din numefișier.tex.
Cealaltă comandă principală de incluziune este \include
:
\include{numefișier}
Comanda \include
este diferită de \input
prin aceea că la documentul final se adaugă rezultatul compilării în locul comenzilor din fișierele incluse. De aceea, la fiecare comandă \include
, se creează o nouă pagină, care o face potrivită pentru entități mai mari, cum sunt capitolele dintr-o carte.
Documentele foarte mari (care includ de obicei multe fișiere) necesită foarte mult timp pentru compilare și cei mai mulți utilizatori găsesc convenabil să-și testeze ultimele schimbări incluzând numai fișierele la care au lucrat. Un mod de a realiza acest lucru este comentarea liniilor ce conțin comanda \include
din ierarhia de incluziuni:
% \include{numefișier1} \include{numefișier2} \include{numefișier3} % \include{numefișier4}
În cazul de față, utilizatorul vrea să includă numai numefișier2.tex și numefișier3.tex. Dacă ierarhia de incluziuni este complexă, comentarea comenzilor poate favoriza apariția unor erori: numeroaterea paginilor se va schimba, și orice referințe interne nu vor mai funcționa. O alternativă mai bună ar fi păstrarea comenzilor de incluziune și folosirea în preambul a comenzii \includeonly
:
\includeonly{numefișier2,numefișier3}
În felul acesta, vor fi executate numai comenzile \include
pentru fișierele specificate, iar incluziunea va fi gestionată în document într-un singur loc. Notați faptul că nu trebuie să existe spații între numele de fișiere și virgule.
Alegerea unor nume potrivite de fișiere
Nu folosiți niciodată, cu niciun prilej, nume de directoare (foldere) sau de fișiere ce conțin spații. Deși sistemul de operare pe care-l folosiți probabil că le suportă, unele nu o fac, iar acest lucru nu poate crea decât probleme cu TeX. Dați nume de fișiere cât de scurte sau de lungi vreți, dar evitați cu strictețe spațiile. Folosiți numai litere mici și fără accente (a-z), cifre 0-9, cratimă (-) și punct (.), (similar convențiilor pentru o denumire de resursă Web, URL): acest lucru vă va permite să faceți referire mai ușor la fișierele TeX de pe Web și vă va face fișierele mai portabile. Unele sisteme de operare nu fac distincție între literele mari și mici, altele da. De aceea este mai bine să nu le amestecați.
Munca în echipă
Vezi capitolul Realizarea în colaborare de documente LaTeX.
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
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
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
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
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
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
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
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
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
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
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
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.
Erori și avertismente
Crearea unui titlu
Există mai multe situații în care ați dori să creați un titlu într-un format aleator în locul formatului implicit din LaTeX. Pentru documente mai mici, cum sunt articolele simple, outputul comenzii \maketitle
este în general adecvat, însă documentele mai mari (cum sunt cărțile și rapoartele) deseori necesită o formatare mai complexă. Deși se poate schimba outputul comenzii \maketitle
, e o procedură complicată chiar și pentru schimbări minore aduse titlului. În astfel de cazuri, este deseori mai bine să creați titlul de la zero, iar această secțiune vă va învăța cum să faceți asta.
Pagini standard de titlu
Multe clase de documente asigură o pagină de titlu. Utilizatorul trebuie să specifice manual din titlu folosind aceste comenzi plasate la începutul documentului:
\title{Triangulația datelor din titlu în manieră Gaussiană
neliniară prin intermediul seriilor $\rho$}
\date{31 Octombrie 475}
\author{John Doe\\ Departmentul de magie, Universitatea Richard Miles
\and Richard Row, Academia \LaTeX\}
În general data se exclude din titlul paginii folosind comanda \date{}
fără a furniza o dată anume. Omiterea acestei comenzi are ca rezultat implicit introducerea datei curente (cu comanda \today
) în fișierul sursă.
Pentru a forma o pagină de titlu, folosiți comanda
\maketitle
Aceasta ar trebui să urmeze comenzilor menționate mai devreme (care pot fi situate și de multe ori sunt înainte de begin{document}
, în preambul). În cazul celor mai multe stiluri de documente, această comandă va forma o pagină separată de titlu, în vreme ce stilul de document article va plasa titlul la începutul primei pagini. Notați că mediul abstract (rezumat) ar trebui să preceadă comanda \maketitle
în documentele AMS.
Notele de subsol din pagina de titlu pot fi specificate cu comanda \thanks
. Spre exemplu, puteți adăuga
\author{John Doe\thanks{Finanțat cu o bursă de la NASA \#42}}
Comanda \thanks
poate fi folosită și în cadrul comenzii \title
.
Depinde de clasa de documente ce comenzi pot fi folosite în pagina de titlu generată de comanda \maketitle
. Spre exemplu, pachetul amsart folosește comenzi ca \address
, \dedicatory
, \email
și altele în pagina de titlu, în timp ce alte clase pot folosi numai comanda \title
.
Pagini personalizate de titlu
Crearea titlului
În mod normal, avantajul utilizării LaTeX în locul programelor tradiționale de procesare de cuvinte este că LaTeX îți permite să te concentrezi asupra conținutului, ocupându-se el de ajustarea marginilor, alinierea în pagină și de alte probleme legate de redactare. Pe de altă parte, dacă vrei să scrii propriul format pentru titlu, e exact pe dos: trebuie să ai grijă de fiecare lucru — de data asta LaTeX nu va face nimic ca să te ajute. Poate fi dificil să creezi propriul format de titlu de vreme ce LaTeX nu a fost făcut să fie interactiv în modul grafic în ce privește ajustarea aranjării în pagină. Procesul este similar cu lucrul direct cu cod HTML, cu excepția faptului că de fiecare dată când vrei să vezi rezultatul, trebuie să recompilezi sursa. Deși acest lucru pare să fie un inconvenient major, avantajul este că odată ce noul format de titlu a fost scris, poate servi drept model pentru toate celelalte documente care folosesc același format de titlu. Cu alte cuvinte, îndată ce aveți un layout care vă place, îl puteți folosi în orice alte documente ați dori să aveți acel layout fără să fie necesare ajustări adiționale.
Primul pas: deoarece veți lucra doar la prima pagină a documentului și va trebui să compilați foarte des, nu trebuie să compilați tot documentul de fiecare dată, e de ajuns să vă uitați la prima pagină. De aceea vom crea mai întâi un document de formă pentru a pregăti titlul și apoi îl vom include pur și simplu în documentul principal deja existent pe care îl scriem. Să numim documentul cu titlul titlu_test.tex și să scriem în el următoarea secvență de cod:
\documentclass[12pt,a4paper]{report}
\usepackage{graphicx}
\newcommand{\HRule}{\rule{\linewidth}{0.5mm}}
\begin{document}
\input{./titlu.tex}
\end{document}
Acesta urmează a fi compilat cu comanda pdflatex
pentru a crea un PDF. Este un document foarte simplu, însă țineți cont că are aceleași setări ca și documentul pe care-l scrieți, astfel că includerea titlului în document nu va schimba rezultatul. În acest caz (vezi prima linie) mărimea fontului este fixată la 12pt, iar mărimea paginii la A4. Pachetul graphicx este inclus pentru a putea insera o imagine în titlu. Apoi definim o comandă numită \HRule
; tot ce va face aceasta va fi să insereze o linie orizontală de lungime egală cu pagina și de grosime 0,5 mm. Dacă vreți, puteți să-i schimbați setările în definiție. În cele din urmă, documentul efectiv începe și nu face decât să includă fișierul titlu.tex, care trebuie să fie în același director cu fișierul nostru de testare titlu_test.tex.
Acum creați fișierul titlu_test.tex și scrieți în el:
\begin{titlepage}
\end{titlepage}
Toate lucrurile pe care vreți să le puneți în titlu trebuie să fie înăuntrul secvenței determinate de mediul titlepage
. Acum, dacă compilați titlu_test.tex, veți vedea cum arată noul titlu în fișierul titlu_test.pdf. Iată ce trebuie să știți ca să scrieți titlul:
- Aliniere
- dacă vreți să centrați un text folosiți
\begin{center} ... \end{center}
. Dacă vreți să-l aliniați altfel, folosiți mediulflushleft
pentru aliniere la stânga șiflushright
pentru aliniere la dreapta. - Imagini
- comanda pentru includerea de imagini este următoarea (exemplul este pentru un logo mic, însă puteți introduce orice imagine de orice dimensiune):
\includegraphics[width=0.15\textwidth]{./logo}
Nu scrieți \begin{figure}
așa cum faceți de obicei întrucât nu vreți ca figura să fie mobilă, vreți doar să o fixați în locul specificat. Când scrieți setările pentru imagine, rețineți că sistemul TeX o consideră doar o căsuță mai mare.
- Mărimea textului
- Dacă vreți să modificați dimensiunea unui text, puneți-l între acolade {așa}, și atunci puteți folosi următoarele comenzi (în ordinea descrescătoare a mărimii):
\Huge
,\huge
,\LARGE
,\Large
,\large
,\small
,\footnotesize
,\scriptsize
,\tiny
. De exemplu:
|
\normalsize
se folosește pentru a scrie text la dimensiunea implicită (normală) a documentului.- Linii noi
- puteți forța începutul unei linii noi prin
\\
. Dacă vreți să adăugați mai mult spațiu vertical, nu trebuie să folosiți mai multe comenzi pentru a insera linii noi, doar menționați dimensiunea spațiului vertical dorit. Spre exemplu,\\[1cm]
va pune un spațiu vertical de 1cm între linia curentă și următoarea. - Data
- puteți introduce data curentă cu comanda
\today
. Dacă nu vreți să introduceți nici o dată, nu trebuie să scrieți nimic în șirul de caractere pentru comanda\date{}
. - Umplerea paginii
- comanda
\vfill
adaugă spațiu vertical până la umplerea paginii. Dacă dați această comandă în interiorul paginii, tot textul ce îi urmează va fi scris la capătul paginii curente.
Un exemplu concret
Toate aceste sfaturi poate că v-au creat confuzie. Așadar, iată un exemplu concret de aplicare a acestora.
După cum vedeți, codul arată mai urât decât sursa LaTeX standard întrucât trebuie să formatați și outputul (în locul sistemului LaTeX). Dacă vă apucați să schimbați aspectul fontului, codul va fi mai puțin limpede, însă puteți face asta: este doar pentru titlu, iar codul acesta complicat va fi izolat de restul documentului într-un fișier separat titlu.tex.
Integrarea paginii titlu
Presupunând că pagina titlu este acum conținută într-un fișier numit titlu.tex, acesta trebuie plasat în același director cu documentul principal. Pentru a-l putea integra, trebuie să scrieți comanda de includere \input{./title.tex}
la începutul documentului. Nu uitați să adăugați și comenzile \usepackage{graphicx}
și \newcommand{\HRule}{\rule{\linewidth}{0.5mm}}
în preambulul secțiunii.
De exemplu, prima secțiune a documentului ar arăta în felul următor:
...
\usepackage{graphicx}
\newcommand{\HRule}{\rule{\linewidth}{0.5mm}}
\begin{document}
\input{./title.tex}
\tableofcontents
...
Gestiunea bibliografiei
Pentru orice lucrare academică/de cercetare, încorporarea referințelor într-un document este o sarcină importantă. Din fericire, LaTeX oferă o varietate de facilități care fac tratarea referințelor mult mai simplă, între care menționăm suportul nativ pentru citarea referințelor. Cu toate acestea, o soluție mult mai flexibilă este oferită de programul auxiliar BibTeX (care deseori face parte din distribuția standard LaTeX.)
BibTeX facilitează stocarea tuturor referințelor într-o bază de date externă sub forma unui fișier text. Această bază de date poate fi legată la orice document LaTeX, și se pot da citate legate de orice referință conținută în fișier. Acest lucru este adesea mai convenabil decât includerea manuală a referințelor la sfârșitul fiecărui document scris. Există acum o sursă bibliografică centralizată ce poate fi legată la oricâte documente dorim (scrie o dată, citește de mai multe ori!). Desigur, bibliografiile pot fi împărțite în oricât de multe fișiere doriți, astfel că poate să existe un fișier care să conțină referințe legate de Relativitatea generală și altul referitor la Mecanica cuantică. Când scrieți o lucrare despre Gravitatea cuantică (GC), care încearcă să lege aceste două teorii, ambele fișiere pot fi legate la document, pe lângă referințele specifice GC.
Sistem implementat intern
Dacă scrieți doar unul sau două documente și nu aveți de gând să scrieți mai mult referitor la același subiect vreme îndelungată, poate că nu vreți să pierdeți timpul cu crearea unei baze de date cu referințe pe care nu le veți folosi nicicând. În acest caz, ar trebui să vă gândiți să folosiți numai suportul bibliografic de bază pe care îl pune la dispoziție LaTeX.
LaTeX oferă un mediu numit thebibliography
, pe care îl folosiți acolo unde vreți să apară bibliografia, lucru care înseamnă de obicei la sfârșitul documentului, chiar înainte de comanda \end{document}
. Iată aici un exemplu concret:
\begin{thebibliography}{9} \bibitem{lamport94} Leslie Lamport, \emph{\LaTeX: A Document Preparation System}. Addison Wesley, Massachusetts, 2nd Edition, 1994. \end{thebibliography}
Bine, dar ce înseamnă toate astea? Primul lucru de notat este mediul bibliografic. thebibliography
este un cuvânt cheie pe care LaTeX îl recunoaște, astfel că tot ce e cuprins între etichetele de început și de sfârșit ale mediului sunt informații pentru bibliografie. Argumentul opțional pe care l-am furnizat după declarația de început a mediului ({9}) spune sistemului LaTeX ce lățime va avea în documentul de ieșire eticheta unui articol (spre exemplu, câte cifre maxim va putea avea numărul unei referințe). Notați că acesta nu este totuși un parametru literal, adică numărul 9 în cazul nostru, ci o lățime de text (un caracter). Prin urmare, transmit efectiv sistemului LaTeX că voi avea nevoie numai de un caracter pentru etichetele referințelor, ceea ce înseamnă nu mai mult de 9 referințe numerice în total. Dacă vreți mai mult de 9 referințe, introduceți un număr cu mai multe cifre, de exemplu '99', care permite cel mult 99 de referințe.
Urmează intrarea cu referința efectivă. Aceasta este precedată de comanda \bibitem{cheia de citare}
. Cheia de citare trebuie să fie un identificator unic pentru acea referință particulară, și este deseori un grup de litere și cifre sau alte simboluri (fără virgulă) ușor de reținut. Eu folosesc de obicei numele de familie al autorului, urmat de ultimele două cifre ale anului apariției cărții (aici lamport94). Dacă autorul a scris mai mult de o carte sau articol într-un an dat și sunt amândouă citate ca referințe, atunci adaug literele 'a', 'b', etc. Însă puteți să alegeți orice variantă vă convine. Tot ce urmează cheii este referința însăși. Trebuie s-o scrieți așa cum vreți să apară în document. Am pus părțile componente ale referinței, cum sunt autorul, titlul, etc., pe linii diferite pentru lizibilitate. Aceste capete de linie sunt ignorate de LaTeX. Vreau ca titlul să fie scris cu caractere italice, așa că am folosit comanda \emph{}
pentru asta.
Citate
E foarte ușor să citezi un document dat. Acolo unde vreți să apară citatul scrieți: \cite{cheia de citare}
, unde cheia de citare este aceea a articolului bibliografic (bibitem) pe care vreți să-l citați. Când LaTeX procesează documentul, citatul va fi legat de o referință bibliografică și înlocuit cu numărul acesteia. Avantajul este aici, încă o dată, faptul că LaTeX face el aceste înlocuiri. Dacă aceste înlocuiri trebuiau făcute manual, atunci adăugarea sau înlăturarea unei referințe ar fi fost o muncă foarte grea, deoarece ar fi trebuit să renumerotați manual toate citatele.
În locul editoarelor WYSIWYG (What You See Is What You Get - ceea ce este afișat pe ecran va fi tipărit exact la fel la imprimantă), puteți folosi sisteme cu formatare manuală a textului de genul \TeX{} sau \LaTeX{} \cite{lamport94}.
Referințe mai specifice
Câteodată veți dori poate să faceți o referință la o anumită pagină, figură sau teoremă dintr-un text. Pentru aceasta puteți folosi argumentele comenzii \cite
:
\cite[p. 215]{citatul01}
Argumentul "p. 215" va fi afișat între aceleași paranteze drepte.
Citate multiple
Când aveți nevoie să dați mai multe citate odată, puteți folosi o singură comandă \cite{}
. Citatele sunt separate prin virgulă. Iată un exemplu:
\cite{citatul01,citatul02,citatul03}
Rezultatul va fi că citatele vor fi afișate între aceleași paranteze drepte.
Nici un citat
Dacă vreți ca o referință să apară numai în bibliografie, însă nu de unde se face trimiterea în textul documentului, atunci puteți folosi comanda \nocite{}
ca în exemplul următor:
Lamport a arătat în 1995 ceva... \nocite{lamport95}.
O versiune specială a comenzii, \nocite{*}
, include toate intrările din baza de date, fie că sunt făcute trimiteri la ele în document sau nu.
Natbib
Utilizând suportul standard pentru bibliografie din LaTeX, veți observa că fiecare referință este numerotată și fiecare citat corespunde numerelor. Stilul numeric al citatelor este foarte întâlnit în lucrările științifice. În alte discipline, stilul autor-an, de exemplu, (Roberts, 2003), de genul Harvard, este preferat, și de fapt devine tot mai răspândit în publicațiile științifice. Nu vom argumenta aici în favoarea unui stil sau a altuia, însă puteți obține un astfel de output folosind pachetul natbib. De fapt, acesta poate înlocui comenzile de citare ale sistemului LaTeX, deoarece Natbib permite utilizatorului să facă ușor trecerea de la sistemul Harvard la cel numeric și invers.
Primul lucru pe care trebuie să-l faceți este la includeți pachetul natbib în preambul:
\usepackage{natbib}
Comanda de citare | Output |
---|---|
\citet{goossens93} | Goossens et al. (1993) |
\citep{goossens93} | (Goossens et al., 1993) |
\citet*{goossens93} | Goossens, Mittlebach și Samarin (1993) |
\citep*{goossens93} | (Goossens, Mittlebach și Samarin, 1993) |
\citeauthor{goossens93} | Goossens et al. |
\citeauthor*{goossens93} | Goossens, Mittlebach și Samarin |
\citeyear{goossens93} | 1993 |
\citeyearpar{goossens93} | (1993) |
\citealt{goossens93} | Goossens et al. 1993 |
\citealp{goossens93} | Goossens et al., 1993 |
De asemenea, trebuie să modificați fișierul ce conține stilul bibliograiei, astfel că va trebui să înlocuiți linia corespunzătoare de la sfârșitul fișierului cu: \bibliographystyle{plainnat}
. Odată ce ați făcut asta, nu trebuie decât să modificați comenzile existente de citare \cite
din document pentru a afișa tipul de citat pe care îl doriți.
Comenzile principale adaugă t de la 'textual' sau p de la 'parenteze', la comanda \cite
de bază. Observați de asemenea cum Natbib implicit comprimă referințele cu 3 sau mai mulți autori la forma mai concisă primul nume et al. Adăugând un asterisc (*), puteți suprascrie acest comportament implicit și lista toți autorii pentru acel citat. Natbib suportă și alte comenzi specializate, care sunt afișate în acest tabel.
Ultimele lucruri pe care vreau să le spun despre Natbib se referă la personalizarea stilului de citare. Comanda \bibpunct
poate înlocui valorile implicite și schimba anumite setări. Spre exemplu, am scris următoarele în preambul:
\bibpunct{(}{)}{;}{a}{,}{,}
Comanda necesită 6 parametri obligatorii.
Stil | Sursă | Descriere |
---|---|---|
plainnat | În pachetul de bază | versiune compatibilă natbib pentru plain |
abbrvnat | În pachetul de bază | versiune compatibilă natbib pentru abbrv |
unsrtnat | În pachetul de bază | versiune compatibilă natbib pentru unsrt |
apsrev | pagina REVTeX 4 | stil compatibil natbib cu revistele Physical Review |
rmpaps | pagina REVTeX 4 | stil compatibil natbib cu revistele Review of Modern Physics |
IEEEtranN | intrare în catalogul TeX | stil compatibil natbib cu publicațiile IEEE |
achemso | intrare în catalogul TeX | stil compatibil natbib cu revistele American Chemical Society |
rsc | intrare în catalogul TeX | stil compatibil natbib cu revistele Royal Society of Chemistry |
- Simbolul pentru paranteza deschisă '('.
- Simbolul pentru paranteza închisă ')'.
- Simbolul care apare între citatele multiple ';'.
- Al patrulea argumnet este o literă:
- n - stil numeric.
- s - stil numeric tip exponent (superscript).
- orice altă literă - stilul autor-an.
- Semnul de punctuație ce va apare între autor și anul publicării (numai pentru cazul cu paranteze).
- Semnul de punctuație folosit între ani, la citatele multiple când există un autor comun, de exemplu, (Chomsky 1956, 1957). Dacă vreți să introduceți un spațiu suplimentar, trebuie să scrieți
{,~}
.
După cum vedeți, acest pachet este foarte flexibil, mai ales pentru că puteți trece de la un stil de citare la altul prin modificarea unui singur parametru. Uitați-vă peste manualul Natbib, este un document scurt și puteți învăța mai multe despre utilizarea natbib.
BibTeX
Am introdus mai devreme ideea de a scrie referințele la sfârșitul documentului, iar apoi de a folosi comanda \cite
pentru a le cita în textul documentului. În acest tutorial, vreau să vă prezint o metodă mai bună, mai flexibilă. De aceea vreau să vă vorbesc acum despre utilizarea BibTeX.
O bază de date BibTeX este stocată sub forma unui fișier cu extensia .bib. Este un fișier text, astfel că poate fi vizualizat și editat cu ușurință. Structura fișierului este și ea foarte simplă. Iată un exemplu de articol BibTeX:
@article{greenwade93, author = "George D. Greenwade", title = "The {C}omprehensive {T}ex {A}rchive {N}etwork ({CTAN})", year = "1993", journal = "TUGBoat", volume = "14", number = "3", pages = "342--351" }
Fiecare intrare începe cu declarația tipului referinței, sub forma @type
. BibTeX cunoaște practic toate tipurile la care vă puteți gândi, între care mai întâlnite sunt: book (carte), article (articol), iar pentru lucrările prezentate la conferințe, inproceedings. În exemplul de față, am făcut referire la un articol dintr-o revistă.
După tip, trebuie să fie o acoladă de deschidere '{
', care semnifică începutul atributelor referinței. Primul urmează imediat după acoladă, care este cheia de citare. Această cheie trebuie să fie unică pentru toate intrările din bibliografie. Acest identificator este acela pe care-l veți folosi în document pentru a face trimiteri la referință. Depinde de tine cum vei eticheta fiecare referință, însă există un standard general ce specifică folosirea numelui de familie al autorului, urmat de anul publicării lucrării. Asta este și schema folosită în tutorialul de față.
Apoi, e clar că ce urmează sunt câmpurile și datele relevante pentru acea referință particulară. Denumirile câmpurilor din stânga sunt cuvinte cheie BibTeX. Ele sunt urmate de un semn de egalitate (=) după care se specifică valoarea acelui câmp. BibTeX se așteaptă să marcați explicit începutul și sfârșitul fiecărei valori. Eu folosesc ghilimele ("), cu toate astea, puteți folosi și acolade ('{', '}'). Însă după cum veți vedea în curând, acoladele au alte roluri, în cadrul atributelor, așa că prefer să nu le folosesc în acest scop deoarece pot să genereze confuzie. O excepție notabilă este când vreți să utilizați caractere cu umlaut (ü, ö, etc), de vreme ce notația acestora este în formatul \"{o}
, iar ghilimelele folosite aici vor închide câmpul reprezentând valoarea atributului respectiv, determinând apariția unei erori în analiza referinței de către sistemul LaTeX.
Rețineți că fiecare atribut trebuie să fie urmat de o virgulă pentru a-l delimita de următorul. Nu trebuie să puneți virgulă după ultimul atribut, deoarece acolada de închidere va spune sistemului BibTeX că nu mai sunt atribute pentru această intrare, deși nu este greșit dacă puneți virgulă și aici.
Poate dura ceva timp până învățați care sunt tipurile de referințe și ce câmpuri are fiecare (și care dintre acestea sunt obligatorii și care opționale, etc). Așadar, uitați-vă peste aceste tipuri de referințe și peste aceste câmpuri de referințe pentru descrierile tuturor acestor câmpuri. Poate ar fi bine să salvați sau să tipăriți aceste pagini ca să vă fie la îndemână când aveți nevoie de ele.
Autori
BibTeX poate fi foarte inteligent în ce privește gestionarea numelor autorilor. Poate accepta nume sub forma prenume nume de familie sau nume de familie, prenume. Eu personal o folosesc pe prima, însă rețineți că ordinea în care le introduceți (sau orice date din cadrul unei intrări în privința asta) este personalizabilă astfel încât BibTeX pote manipula intrările și apoi genera ieșirile în forma pe care o doriți. Dacă utilizați formatul prenume nume de familie, trebuie să fiți atenți la câteva nume speciale, spre exemplu când numele de familie este compus, ca în cazul "John von Neumann". În această formă, BibTeX presupune că ultimul cuvânt este numele de familie, și tot ce este înainte constituie prenumele, inclusiv orice particulă intermediară. De aceea trebuie să transmiteți explicit în cazul acesta sistemului BibTeX să țină 'von' și 'Neumann' împreună. Acest lucru este ușor de realizat cu ajutorul acoladelor. Astfel, acest nume trebuie scris sub forma "John {von Neumann}". O atare situație este ușor de evitat dacă scrieți numele sub forma nume de familie, prenume, de vreme ce acestea sunt separate de virgulă.
În al doilea rând, trebuie să vedem cum spunem sistemului BibTeX că o referință are mai mulți autori. Acest lucru este foarte ușor de făcut, punând cuvântul cheie and între oricare doi autori succesivi, ca în exemplul următor:
@book{goossens93, author = "Michel Goossens and Frank Mittlebach and Alexander Samarin", title = "The LaTeX Companion", year = "1993", publisher = "Addison-Wesley", address = "Reading, Massachusetts" }
Cartea de față are 3 autori, oricare doi fiind separați după cum s-a descris mai devreme. Desigur, când BibTeX procesează aceste date și formează rezultatul, va rămâne un singur 'and' între penultimul și ultimul autor, însă în fișierul .bib, trebuie să fie toate aceste and-uri pentru a putea separa fiecare autor în parte.
Formate standard
- @article
- Un articol (article) dintr-un ziar sau o revistă.
- Câmpuri obligatorii: autor (author), titlu (title), revistă (journal), an (year).
- Câmpuri opționale: volum (volume), număr (number), pagini (pages), lună (month), notă (note).
@article{Xarticle, author = "", title = "", journal = "", %volume = "", %number = "", %pages = "", year = "XXXX", %month = "", %note = "", }
- @book
- Carte (book) publicată
- Câmpuri obligatorii: autor/editor, titlu, editură (publisher), an.
- Câmpuri opționale: volum/număr, serie (series), adresă (address), ediție (edition), lună, notă.
@book{Xbook, author = "", title = "", publisher = "", %volume = "", %number = "", %series = "", %address = "", %edition = "", year = "XXXX", %month = "", %note = "", }
- @booklet
- O lucrare legată fără editură sau sponsor.
- Câmpuri obligatorii: titlu.
- Câmpuri opționale: autor, modul de publicare (howpublished), adresă, lună, an, notă.
@booklet{Xbooklet, %author = "", title = "", %howpublished = "", %address = "", year = "XXXX", %month = "", %note = "", }
- @conference
- La fel cu inproceedings
- Câmpuri obligatorii: autor/editor, titlu, titlul cărții (booktitle), an.
- Câmpuri opționale: editor, volum/număr, serie, pagini, adresă, lună, organizație (organization), editură, notă.
@conference{Xconference, author = "", title = "", booktitle = "", %editor = "", %volume = "", %number = "", %series = "", %pages = "", %address = "", year = "XXXX", %month = "", %publisher= "", %note = "", }
- @inbook
- Secțiune a unei cărți
- Câmpuri obligatorii: autor/editor, titlu, capitol (chapter) și/sau pagini, editură, an.
- Câmpuri opționale: volum/număr, serie, tip (type), adresă, ediție, lună, notă.
- @incollection
- O secțiune a unei cărți ce are un titlu propriu.
- Câmpuri obligatorii: autor, titlu, titlul cărții, editură, an.
- Câmpuri opționale: editor, volum/număr, serie, tip, capitol, pagini, adresă, ediție, lună, notă.
- @inproceedings
- Articol în cadrul pregătirilor unei conferințe.
- Câmpuri obligatorii: autor, titlu, titlul cărții, an.
- Câmpuri opționale: editor, volum/număr, series, pagini, adresă, lună, organizație, editură, notă.
- @manual
- Manual tehnic
- Câmpuri obligatorii: titlu.
- Câmpuri opționale: autor, organizație, adresă, ediție, lună, an, notă.
- @mastersthesis
- Teză de master (Master's thesis)
- Câmpuri obligatorii: autor, titlu, școală (school), an.
- Câmpuri opționale: tip, adresă, lună, notă.
@mastersthesis{Xthesis, author = "", title = "", school = "", %type = "", %address = "", year = "XXXX", %month = "", %note = "", }
- @misc
- Format util pentru alte tipuri de publicații
- Câmpuri obligatorii: nici unul
- Câmpuri opționale: autor, titlu, modul de publicare, lună, an, notă.
@misc{Xmisc, %author = "", %title = "", %howpublished = "", %year = "XXXX", %month = "", %note = "", }
- @phdthesis
- Teză de doctorat (Ph.D. thesis)
- Câmpuri obligatorii: autor, titlu, an, școală.
- Câmpuri opționale: adresă, lună, cuvinte cheie (keywords), notă.
- @proceedings
- Pregătirile unei conferințe
- Câmpuri obligatorii: titlu, an.
- Câmpuri opționale: editor, volum/număr, serie, adresă, lună, organizație, editură, notă.
- @techreport
- Raport tehnic (technical report) al unei instituții educaționale, comerciale sau de standardizare.
- Câmpuri obligatorii: autor, titlu, instituție (institution), an.
- Câmpuri opționale: tip, număr, adresă, lună, notă.
@techreport{Xtreport, author = "", title = "", institution = "", %type = "", %number = "", %address = "", year = "XXXX", %month = "", %note = "", }
- @unpublished
- Articol, carte, teză, etc., nepublicate.
- Câmpuri obligatorii: autor, titlu, notă.
- Câmpuri opționale: lună, an.
Formate nestandardizate
- @patent
- @colecție (collection)
- @electronic
Păstrarea literelor mari
Dacă BibTeX nu a fost configurat în așa fel încât să păstreze toate literele mari din titluri, pot apare probleme, mai ales dacă faceți trimiteri la substantive proprii, sau acronime. Pentru a instrui BibTeX să păstreze literele mari, folosiți acolade în jurul literei, (sau literelor, pentru un acronim) în chestiune și totul va fi bine! Sau puteți pune întregul titlu între acolade:
title = "{Compania LaTeX}"
Câteva exemple adiționale
Urmează câteva exemple adiționale de intrări bibliografice. Primul prezintă un caz în care sunt mai mulți autori, ale căror nume sunt în formatul Nume de familie, Prenume, iar al doilea tratează cazul incollection.
@article{AbedonHymanThomas2003, author = "Abedon, S. T. and Hyman, P. and Thomas, C.", year = "2003", title = "Examinarea experimentală a evoluției bacteriofage în perioada latentă ca răspuns la disponibilitatea bacterială", journal = "Microbiologie aplicată și de mediu", volume = "69", pages = "7499--7506" } @incollection{Abedon1994, author = "Abedon, S. T.", title = "Descompunerea și interacțiunea dintre bacteriofagele libere și celulele infectate", pages = "397--405", booktitle = "Biologia moleculară a celulelor bacteriofage T4", editor = "Karam, Jim D. Karam and Drake, John W. and Kreuzer, Kenneth N. and Mosig, Gisela and Hall, Dwight and Eiserling, Frederick A. and Black, Lindsay W. and Kutter, Elizabeth and Carlson, Karin and Miller, Eric S. and Spicer, Eleanor", publisher = "Editura ASM, Washington DC", year = "1994" }
Dacă trebuie să citați un site web, puteți folosi @misc:
@misc{website:fermentas-lambda, author = "Fermentas SRL", title = "Lambda-fage: fișă de descriere \& restricții", month = "Noiembrie", year = 2008, howpublished = "\url{http://www.fermentas.com/techinfo/nucleicacids/maplambda.htm}" }
Câmpul 'notă' este nimerit dacă trebuie să adăugați informații nestructurate, spre exemplu, faptul că numărul corespunzător al revistei urmează să apară:
@article{găurile-negre, author="Iepuraș, I.", title="Găurile negre și legătura lor cu ascunderea ouălor", journal="Fizică teoretică de Paște", publisher="Ouă SRL", year="2010", note="(urmează să apară)" }
Folosirea fișierului .bib de către documentul curent LaTeX
De fapt acest lucru nu e foarte dificil. La sfârșitul fișierului LaTeX (adică după conținut, dar înainte de \end{document}
), trebuie să scrieți următoarele comenzi:
\bibliographystyle{plain} \bibliography{fișier_1,fișier_2,...,fișier_n} % Observați că nu sunt spații între virgule și următoarele fișiere ''bib''.
Stilurile bibliografice sunt fișiere recunoscute de BibTeX și care îi spun cum să formateze informațiile păstrate în fișierul .bib când este procesat pentru a produce documentul final. Așadar prima comandă afșată mai sus declară fișierul de stil ce va fi folosit. Fișierul de stil este în cazul de față plain.bst (care vine ca standard cu BibTeX). Nu trebuie să adăugați extensia .bst când folosiți această comandă, deoarece se adaugă automat. În ciuda numelui său, stilul simplu (plain) face o treabă foarte bună (uitați-vă la outputul acestui tutorial ca să înțelegeți ce vreau să spun).
A doua comandă este cea care specifică de fapt fișierul .bib pe care vreți să-l folosiți. Fișierele menționate aici se numesc fișier_1.bib, fișier_2.bib, . . ., fișier_n.bib, însă încă o dată, nu includeți extensia fișierului. Pe moment, fișierul .bib este în același director cu documentul LaTeX. Totuși, dacă fișierul .bib este în altă parte (lucru care are sens dacă intenționați să mențineți o bază de date centralizată de referințe pentru toate lucrările pe care vreți să le scrieți), trebuie să specificați și calea către fișier, de exemplu \bibliography{/unde/va/fișier}
.
Acum că LaTeX și BibTeX știu unde să caute fișierele corespunzătoare, citarea referințelor este un lucru trivial. \cite{cheia de citare}
este comanda care vă trebuie, cu observația că această cheie trebuie să corespundă exact unei singure intrări în fișierul .bib. Dacă vreți să citați mai mult de o referință în același timp, procedați în felul următor: \cite{cheia_1, cheia_2, ..., cheia_N}
.
De ce nu generează LaTeX niciun rezultat?
BibTeX face mai complexă procesarea sursei pentru a obține rezultatul dorit. Acest lucru este în mare măsură ascuns utilizatorului, însă din cauza complexității trimiterilor din fișierul sursă LaTeX la intrările din baza de date dintr-un alt fișier, trebuie să compilați sursa de mai multe ori, până când vor fi rezolvate toate referințele din document. Iată comenzile pe care trebuie să le dați:
latex codul_sursă_latex
(nu are nevoie de extensia .tex)bibtex codul_sursă_latex
(nu folosiți extensia .tex)latex codul_sursă_latex
(nu necesită extensia .tex)latex codul_sursă_latex
(nu necesită extensia .tex)
După prima comandă, veți vedea erori de genul:
LaTeX Warning: Citation `lamport94' on page 1 undefined on input line 21. ... LaTeX Warning: There were undefined references.
Pasul următor este rularea comenzii bibtex pentru aceeași sursă LaTeX (și nu asupra fișierului .bib) pentru a defini toate referințele din document. Ar trebui să vedeți un output de genul:
This is BibTeX, Version 0.99c (Web2C 7.3.1) The top-level auxiliary file: codul_sursă_latex.aux The style file: plain.bst Database file #1: fișier.bib
Al treilea pas, care constă în invocarea comenzii de compilare LaTeX a doua oară, va da erori precum "LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.". Nu vă alarmați, e aproape gata. După cum puteți ghici, tot ce trebuie să faceți e să urmați instrucțiunile și să rulați comanda de compilare LaTeX a treia oară, care va genera documentul după cum era de așteptat, fără alte probleme.
Dacă vreți să generați un PDF în loc de DVI, puteți folosi comanda pdflatex în locul comenzii latex:
pdflatex codul_sursă_latex
(nu are nevoie de extensia .tex)bibtex codul_sursă_latex
(nu folosiți extensia .tex)pdflatex codul_sursă_latex
(nu necesită extensia .tex)pdflatex codul_sursă_latex
(nu necesită extensia .tex)
Notați că dacă editați sursa cu programul vim și încercați să folosiți modul de rulare de comenzi și shortcut-ul pentru fișierul curent (%) pentru a procesa documentul, ca în exemplul de mai jos:
:! pdflatex %
:! bibtex %
veți obține o eroare de genul:
I couldn't open file name 'fișierul_curent.tex.aux'
S-ar părea că extensia fișierului este inclusă automat când se execută comanda pentru fișierul curent (%). Pentru a procesa documentul cu vim, trebuie să furnizați explicit numele fișierului fără extensie ca să meargă comanda bibtex, ca în exemplul următor:
:! pdflatex %
:! bibtex codul_sursă_latex
(fără extensie, după cum s-a precizat mai devreme):! pdflatex %
:! pdflatex %
Stiluri de bibliografie
Puteți vedea mai jos 3 stiluri de bibliografie disponibile în LaTeX:
Pentru a numerota referințele în ordinea apariției lor în locul ordinii alfabetice implicite, folosiți ieeetr :
\bibliographystyle{ieeetr}
Găsiți mai multe exemple la pagina http://www.cs.stir.ac.uk/~kjt/software/latex/showbst.html.
Cum includeți URL-uri în bibliografie
După cum ați observat, nu este niciun câmp pentru URL-uri. O posibilitate ar fi să includeți adresele de Internet în câmpul howpublished pentru @misc sau în câmpul note pentru @techreport, @article, @book:
howpublished = "\url{http://www.example.com}"
Uitați-vă peste utilizarea comenzii \url
pentru a asigura afișarea corespunzătoare a URL-urilor.
O altă modalitate ar fi să utilizați câmpul special url și să faceți stilul bibliografiei să-l recunoască:
url = "http://www.example.com"
Trebuie să folosiți \usepackage{url}
în primul caz și \usepackage{hyperref}
în al doilea.
Stilurile oferite de Natbib (vezi mai jos) au acest câmp, alte stiluri pot fi modificate cu ajutorul programului urlbst. Acesta poate face modificări la 3 stiluri standard (plain, abbrv și alpha).
Dacă vreți să știți mai multe despre includerea URL-urilor în bibliografie, visitați FAQ of UK List of TeX.
Modificarea aspectului bibliografiei
Unul din principalele avantaje ale BibTeX, mai ales pentru oamenii care scriu multe lucrări de cercetare, este abilitatea de a modifica bibliografia pentru a o adapta la cerințele unei anumite publicații. Veți vedea că diverse publicații au tendința să-și formeze propriul stil de formatare a referințelor, la care autorii trebuie să se conformeze dacă vor să-și publice manuscrisele. De fapt, revistele cunoscute și organizatorii de conferințe deseori au propriul stil de bibliografie (un fișier .bst) pentru utilizatorii BibTeX, care face toată munca grea în locul vostru.
Lucrul acesta poate fi realizat datorită naturii bazei de date bibliografice (a fișierului .bib), în care toate informațiile despre referințe se păstrează într-un format structurat, însă fără informații despre stil. Aceasta este o temă comună în LaTeX în general, prin care se încearcă pe cât de mult posibil să se separe conținutul de prezentare.
Un fișier cu stilul bibliografic (.bst) va spune sistemului LaTeX cum să formateze fiecare atribut, în ce ordine să le aranjeze, ce semne de punctuație să folosească între atribute, etc. Din păcate, crearea manuală a unui astfel de stil nu este o sarcină ușoară. De aceea vom folosi programul makebst (cunoscut și sub numele de custom-bib — bibliografie personalizată).
Makebst poate fi folosit pentru a genera automat un fișier .bst conform specificațiilor date. Este foarte simplu, și vă cere de fapt să răspundeți la o serie de întrebări legate de preferințele pe care le aveți. La sfârșit, va genera un fișier de stil corespunzător.
Acest program ar trebui să facă parte din distribuția LaTeX pe care o aveți instalată (altfel, puteți să-l luați de pe net) și este foarte simplu de pornit. În terminal, scrieți:
latex makebst
LaTeX va găsi fișierul relevant și va începe procesul de chestionare. Va trebui să răspundeți la o serie de întrebări (deși, notați că răspunsurile implicite sunt destul de bune), ceea ce înseamnă că ar fi greu să prezentăm un exemplu în acest tutorial. Cu toate acestea, este relativ simplu. Iar dacă vă trebuie mai multe îndrumări, puteți consulta manualul disponibil. Vă recomand să-l încercați și să vedeți ce rezultate obțineți când procesați un document LaTeX cu noul fișier de stil.
Dacă folosiți un fișier separat .bst, este important ca LaTeX să-l poată găsi! Așadar, aveți grijă să fie în același director cu fișierul sursă LaTeX, în afară de cazul în care folosiți unul dintre fișierele standard de stil (cum sunt plain sau plainnat, care fac parte din distribuția LaTeX — acestea vor fi găsite automat în directoarele de instalare. De asemenea, asigurați-vă că ați furnizat numele fișierului .bst ca argument al comenzii \bibliographystyle{stil}
(însă fără extensia .bst).
Adaptarea aspectului bibliografiei la specificul local
Când scrieți documente în altă limbă decât engleza, veți dori poate să adaptați aspectul bibliografiei la limba în care scrieți. Asta vizează cuvinte ca editori, și sau în, ca și un aspect tipografic corespunzător. Puteți folosi pachetul babelbib în cazul acesta. Spre exemplu, ca să scrieți bibliografia în germană, adăugați următoarele comenzi în preambul:
\usepackage[fixlanguage]{babelbib} \selectbiblanguage{german}
Altfel, puteți seta fiecare intrare din bibliografie potrivit limbii documentului citat:
\usepackage{babelbib}
Limba specifică unei intrări din bibliografie se specifică sub forma unui câmp adițional la intrarea BibTeX:
@article{mueller08, % ... language = {german} }
Pentru ca a putea utiliza pachetul babelbib, trebuie să folosiți un stil bibliografic suportat de acesta — babplain, babplai3, babalpha, babunsrt, bababbrv sau bababbr3:
\bibliographystyle{babplain} \bibliography{fișier_bibtex}
Obținerea datelor bibliografice
Multe baze de date online oferă date bibliografice în format BibTeX, făcând mai ușoară munca de creare a propriei baze de date. De exemplu, Google Scholar oferă opțiunea de a returna un rezultat formatat în mod corespunzător, însă trebuie pornită de la Preferințe.
Rețineți faptul că bazele de date bibliografice sunt deseori produsul mai multor generații de procesare automată, astfel încât codul BibTex rezultat poate prezenta o serie de erori minore, mai ales în cazul intrărilor mai vechi.
Programe utile
Vezi și Comparație între programele de gestiune a referințelor .
- Mendeley este un program academic gratuit pentru gestionarea de PDF-uri, care poate administra o bibliografie în Open Office și citi BibTeX.
- Zotero este un program gratuit și open-source de gestiune a referințelor integrat ca plugin pentru Firefox, capabil să importe și să exporte fișiere bib.
- Referencer este o aplicație Gnome pentru organizarea documentelor și referințelor, care poate genera un fișier bibliografic BibTeX.
- Citavi este un program comercial (cu o versiune gratuită limitată) care chiar caută în biblioteci de date după citate și păstrează toate cunoștințele într-o bază de date. Aceasta poate fi exportată sub diverse formate. Merge cu MS Word și Open Office Writer. Mai mult, există plugin-uri pentru browsere și pentru Acrobat Reader, care includ automat referințe la proiecte.
- JabRef este un mic program Java care permite editarea facilă a fișierelor BibTeX și altor baze de date bibliografice, ocupându-se de cele mai multe detalii pentru voi.
- Bibliographer este un editor pentru bazele de date BibTeX proiectat să fie ușor de folosit. Între trăsăturile sale se includ legarea fișierelor de intrările bibliografice cu suport pentru indexare și căutarea în baza de date. Interfața permite o navigare facilă a bibliografiei, un dublu clic pe o înregistrare deschizând fișierul bibliografic corespunzător.
- cb2Bib este un program ce permite extragerea rapidă de informații neformatate, sau de referințe bibliografice nestandardizate din alerte de email, pagini Web și fișiere PDF.
- KBibTeX este un editor de BibTeX pentru KDE pentru a edita bibliografiile folosite de LaTeX. Între facilitățile oferite se numără măști pentru datele de intrare, demararea interogațiilor web (de exemplu Google sau PubMed) și exportarea sub formă de PDF, PostScript, RTF și XML/HTML. Deoarece KBibTeX folosește tehnologia KParts din KDE, KBibTeX poate fi încorporat în Kile sau Konqueror.
- KBib este încă un editor de BibTeX pentru KDE. Prezintă facilități similare, și o interfață puțin diferită. Acestea includ generarea de referințe BibTeX din fișiere PDF, text, DOI, arXiv și ID-uri PubMed. Se oferă de asemenea suport pentru interogări Web către Google Scholar, PubMer, arXiv și un număr de alte servicii.
- Bibwiki este o pagină specială pentru ca MediaWiki să gestioneze bibliografii BibTeX. Oferă de asemenea un mod simplu de a importa și exporta articole de bibliografie.
- BibDesk este un program de gestiune a referințelor bibliografice pentru Mac OS X. Prezintă o interfață foarte ușor de folosit și oferă un număr de facilități precum directoare inteligente bazate pe cuvinte cheie și afișaj tex.
- CiteULike este un serviciu online gratuit pentru organizarea lucrărilor academice. Poate exporta citatele în format BibTeX și poate lua date BibTeX de pe multe site-uri web cunoscute.
- Bibtex este un plugin DokuWiki ce permite includerea de citate formatate bibtex în pagini DokuWiki și le afișează în format APA. Notă: acest plugin este vulnerabil la un atac XSS. http://www.dokuwiki.org/plugin:bibtex
- BibSonomy — un sistem gratuit de stocare a adreselor de documente (social bookmark) și de gestiune a publicațiilor bazat pe BibTeX.
- Synapsen — Hypertextual Card Index / Reference Manager (program de gestiune a referințelor) cu suport special pentru BiBTeX / biblatex, scris în Java.
Rezumat
Deși nu durează mult să învățați să lucrați cu BibTeX, pe termen lung, se va dovedi un mod eficient de a vă gestiona referințele. Puteți găsi pe site-uri Web fișiere .bib ce conțin propriile publicații ale unor autori, sau opere relevante dintr-un anumit domeniu, etc. Sau în acele baze de date bibliografice online, de dimensiuni foarte mari, găsiți deseori versiuni BibTeX de publicații, pe care le puteți copia ușor într-un fișier .bib!
Păstrarea tuturor referințelor într-un singur loc se poate dovedi un mare avantaj. Iar păstrarea lor într-o formă structurată, lucru ce permite obținerea unui output personalizat, este încă un avantaj. Se găsesc o mulțime de programe gratuite care vă pot încărca fișierele .bib, care permit vizualizarea acestora într-o manieră mai eficientă, ca și sortarea lor și controlul erorilor.
Bibliografia în tabla de materii
Dacă scrieți o carte (book) sau redactați un raport (report), veți insera probabil bibliografia folosind comenzi de genul:
\begin{thebibliography}{99} \bibitem{bib:o_carte} ceva informații \bibitem{bib:un_articol} alte informații \end{thebibliography}
Aceste comenzi vor crea un output sub formă de capitole, afișând în mod corespunzător toate referințele. Deși arată ca un capitol, nu va fi tratat ca atare, prin urmare nu va apare în Cuprinsul de la începutul documentului. Dacă vreți ca bibliografia să apară în Cuprins, adăugați următoarele două linii înainte de mediul thebibliography:
\clearpage \addcontentsline{toc}{chapter}{Bibliografie}
(SAU dacă scrieți un articol)
Prima comandă termină paragraful sau pagina curentă. Dacă scrieți o carte (book), folosiți comanda \cleardoublepage pentru ca bibliografia să înceapă la următoarea pagină impară. A doua comandă va adăuga o linie la Tabla de materii (prima opțiune, toc), va fi ca cele create de capitole (a doua opțiune, chapter), iar al treilea argument va fi afișat pe linia corespunzătoare în Cuprins. Dacă importați bibliografia dintr-un fișier bib separat, adăugați aceste comenzi între liniile \bibliographystyle și \bibliography.
Mediul thebibliography va scrie automat textul Bibliography în document la începutul bibliografiei, însă la cuprins va apare textul ales în comanda de mai sus (al treilea argument). Puteți face să apară același text și în document, folosind comanda
\renewcommand\refname{Bibliografie}
în preambul (\bibname
pentru carte sau raport).
Dacă utilizați pachetul hyperref, trebuie să folosiți și comanda \phantomsection
pentru a permite un hyperlink din Cuprins către bibliografie.
\clearpage \phantomsection \addcontentsline{toc}{chapter}{Bibliography}
Acest truc este deosebit de util când trebuie să inserați bibliografia în Cuprins, însă merge pentru orice. Când LaTeX întâlnește codul de mai sus, va înregistra informațiile după cum s-a descris mai sus și numărul paginii curente, inserând o linie nouă în pagina de Cuprins.
Adăugați bibliografia la Cuprins ca articol numerotat
Dacă vreți ca bibliografia să fie o secțiune sau un capitol numerotate, veți aplica probabil metoda următoare:
\cleardoublepage % această comandă este necesară dacă scrieți o carte, pentru
% ca bibliografia să înceapă pe o pagină nouă corespunzătoare
% folosiți \clearpage pentru articol sau "oneside" pentru carte
\renewcommand*{\refname}{} % la Cuprins nu va apare un titlu al bibliografiei,
\section{Bibliografie} % astfel că puteți pune un titlu normal de secțiune
% înainte de intrările bibliografice
\begin{thebibliography}{99}
...
\end{thebibliography}
O altă soluție, chiar mai ușoară, este să folosiți \section
în cadrul blocului \renewcommand
:
\renewcommand{\refname}{\section{Surse}} % "Surse" este titlul secțiunii
\begin{thebibliography}{99}
...
\end{thebibliography}
Puteți folosi \renewcommand*{\refname}{\vspace*{-12mm}}
pentru a înlătura spațiul suplimentar introdus de comanda \refname
.
- Notă: Folosiți
\bibname
în loc de\refname
pentru clasele carte și raport.
Tabele
În lucrările academice, tabelele sunt întâlnite la tot pasul, fiind deseori folosite pentru rezumarea rezultatelor din cercetare. Este bine deci să învățați să lucrați cu tabele, dacă vreți produceți lucrări de calitate.
Totuși, dacă există un domeniu din LaTeX cel mai puțin intuitiv, atunci acesta este. Tabelele simple nu necesită un efort prea mare, însă veți observa curând că orice lucru mai avansat poate solicita eforturi substanțiale. Așadar, vom începe cu lucrurile simple și vom înainta pas cu pas.
Soluție alternativă: S-ar putea să economisiți foarte mult timp convertind tabele din foile de calcul OpenOffice cu ajutorul unor plugin-uri open source, vezi de exemplu http://calc2latex.sourceforge.net/.
Mediul tabular
Mediul tabular
poate fi folosit pentru redactarea de tabele cu linii orizontale și verticale opționale. LaTeX determină automat lățimea coloanelor.
Prima linie a mediului are forma:
\begin{tabular}[poz]{specificații tabel}
Argumentul cu specificațiile tabelului spune sistemului LaTeX ce aliniere să folosească pentru fiecare coloană și liniile verticale pe care trebuie să le insereze.
Nu trebuie specificat numărul de coloane, deoarece acesta este dedus din numărul de argumente furnizate. Puteți de asemenea să adăugați aici și linii verticale între coloane. Puteți folosi următoarele simboluri pentru a descrie coloanele tabelului (unele necesită includerea pachetului array):
l | coloană aliniată la stânga |
c | coloană centrată |
r | coloană aliniată la dreapta |
p{lățime} | coloană paragraf cu textul aliniat vertical sus |
m{lățime} | coloană paragraf cu textul aliniat vertical la mijloc (necesită pachetul array) |
b{lățime} | coloană paragraf cu textul aliniat vertical jos (necesită pachetul array) |
| | linie verticală |
|| | linie verticală dublă |
Implicit, dacă textul unei coloane este prea lat pentru pagină, LaTeX nu-l va împărți automat pe mai multe linii. Cu ajutorul parametrul p{lățime}
, puteți defini un tip special de coloană, care va cuprinde textul ca într-un paragraf normal. Puteți pasa lățimea folosind orice unitate suportată de LaTeX, cum ar fi pt, px, mm sau cm, sau comenzi pentru lungime, cum este \textwidth
. Găsiți o listă completă în anexe Macrouri utile pentru măsurare.
Parametrul opțional poz poate fi folosit pentru a specifica poziția verticală a tabelului față de poziția textului înconjurător. În cele mai multe cazuri, nu veți avea nevoie de această opțiune. Devine relevantă numai dacă tabelul nu face parte el însuși dintr-un paragraf. Puteți folosi următoarele litere pentru opțiune:
b | jos (bottom) |
c | centru (implicit) |
t | sus (top) |
În prima linie ați scris câte coloane vreți, alinierea lor și liniile verticale care le separă. În cadrul textului controlat de acest mediu, trebuie să scrieți textul pe care-l doriți, separând coloanele și introducând manual linii noi (pentru a trece la rândul următor). Trebuie să folosiți următoarele comenzi:
& | separator de coloane |
\\ | începe un rând nou (puteți specifica un spațiu adițional după \\ , folosind paranteze drepte, spre exemplu \\[6pt] )
|
\hline | linie orizontală |
\cline{i-j} | linie orizontală parțială începând cu coloana i și terminând cu coloana j |
Notați faptul că spațiul alb inserat între aceste comenzi depinde doar de preferințele utilizatorului. Eu personal adaug spații între comenzi ca să fac codul mai ușor de citit.
Exemple de bază
Acest exemplu arată cum se poate crea un tabel simplu în LaTeX. Este un tabel cu 3 linii și 3 coloane, însă fără nicio linie orizontală care să separe rândurile.
|
Incluzând câteva linii verticale, obținem:
|
Pentru a adăuga linii orizontale înainte și după tabel, procedăm în felul următor:
|
Și în cele din urmă, pentru a adăuga linii între toate rândurile, ca și pentru a centra textul din tabel (observați utilizarea mediului centru (center) — evident, rezultatul centrării textului nu este evident în cazul acestui exemplu simplu):
|
|
Specificarea coloanelor cu >{\comandă}
și <{\comandă}
Cu ajutorul pachetului array puteți modifica specificațiile coloanelor. Acest lucru se face prin intermediul argumentului mediului tabular folosind >{\comandă}
pentru comenzile executate chiar înainte de fiecare coloană și <{\comandă}
pentru comenzile executate imediat după fiecare coloană.
Spre exemplu, pentru a obține o coloană în modul matematic, scrieți: \begin{tabular}{>{$}c<{$}}
.
Un alt exemplu este schimbarea fontului: \begin{tabular}{>{\small}c}
pentru a afișa coloana într-un font mai mic.
Argumentul specificațiilor >
și <
trebuie să fie corect echilibrat în ceea ce privește caracterele {
și }
. Asta înseamnă că >{\bfseries}
este valid, în vreme ce >{\textbf}
nu va merge, iar >{\textbf{}
nu este valid. Dacă aveți nevoie să folosiți textul tabelului ca argument (spre exemplu, utilizând comanda \textbf
pentru a produce text aldin), trebuie să folosiți comenzile \bgroup
și \egroup
: >{\textbf\bgroup}c<{\egroup}
produce efectul dorit. Acest procedeu se poate aplica numai pentru câteva comenzi de bază din LaTeX. Pentru alte comenzi, cum este \underline
pentru a scrie text subliniat, trebuie să păstrați temporar textul din coloană într-o căsuță cu ajutorul comenzii lrbox
. Mai întâi, trebuie să definiți o astfel de căsuță cu comanda \newsavebox{\boxname}
, iar apoi puteți defini:
>{\begin{lrbox}{\boxname}}% l% <{\end{lrbox}% \underline{\unhbox\boxname}}% }
Astfel, se salveză textul într-o căsuță, iar apoi se ia din căsuță cu comanda \unhbox
(în felul acesta se distruge căsuța; dacă mai e necesară, folosiți în schimb comanda\unhcopy
) și se pasează comenzii \underline
. (Pentru LaTeX2e, ar fi bine să folosiți \usebox{\boxname}
în loc de \unhbox\boxname
.)
Același truc realizat cu \raisebox
în loc de \underline
poate forța toate liniile dintr-un tabel să aibă aceeași înălțime, în locul înălțimii naturale variate ce poate apare, spre exemplu, când în text sunt termeni matematici sau exponenți.
Iată un exemplu ce prezintă utilizarea p{...}
și >{\centering}
:
\begin{tabular}{>{\centering}p{3.5cm}>{\centering}p{3.5cm}} Geometrie & Algebră \tabularnewline \hline Puncte & Adunare \tabularnewline Sfere & Înmulțire \end{tabular}
Notați utilizarea comenzii \tabularnewline
în locul \\
pentru a evita apariția unei erori Misplaced \noalign
.
Împărțirea pe linii a textului din tabele
Algoritmii LaTeX pentru formatarea tabelelor au câteva deficiențe. Una dintre ele este faptul că nu vor împărți automat pe linii textul de pe coloane, chiar dacă se depășește lățimea paginii. Pentru coloane despre care știți că vor conține text ce va trebui aranjat pe coloane de o lățime dată, se recomandă să folosiți atributul p și să specificați lățimea dorită a coloanei (deși s-ar putea să fie nevoie să faceți câteva încercări până când veți obține rezultatul dorit). Folosiți atributul m pentru ca liniile de text din coloane să fie aliniate în mijlocul căsuței ce conține textul (numărul maxim de linii pe care va fi aranjat textul de pe fiecare coloană va determina înălțimea acestor căsuțe) și b pentru alinierea în partea inferioară a acesteia.
Iată un exemplu concret. Codul ce urmează creează două tabele cu același conținut; singura diferență este că ultima coloană a celui de-al doilea tabel are o lățime definită de 5 centimetri, în vreme ce pentru primul tabel nu are fixată o dimensiune. Compilând acest cod:
\documentclass{article} \usepackage[utf8x]{inputenc} % pentru caractere românești \usepackage{array} % pentru \extrarowheight \begin{document} \setlength{\extrarowheight}{2pt} % adaugă spațiu vertical suplimentar liniilor din tabele Fără specificarea lățimii pentru ultima coloană: \begin{center} \begin{tabular}{ | l | l | l | l |} \hline Ziua & Temp Min & Temp Max & Rezumat \\[2pt] \hline Luni & 11C & 22C & Zi senină cu mult soare. Totuși, briza puternică va reduce temperatura. \\[2px] \hline Marți & 9C & 19C & Noros cu ploaie, de-a lungul multor regiuni nordice. Timp frumos în cea mai mare parte a Scoției și Irlandei de Nord, însă ploaia va ajunge în nordul extrem. \\[0.5mm] \hline Miercuri & 10C & 21C & Dimineața va continua să plouă. Vremea se va îmbunătăți la începutul după-amiezii și va continua să se îmbunătățească de-a lungul serii. \\[0.5mm] \hline \end{tabular} \end{center} Cu lățimea specificată: \begin{center} \begin{tabular}{ | l | l | l | p{5cm} |} \hline Ziua & Temp Min & Temp Max & Rezumat \\[2pt] \hline Luni & 11C & 22C & Zi senină cu mult soare. Totuși, briza puternică va reduce temperatura. \\[2px] \hline Marți & 9C & 19C & Noros cu ploaie, de-a lungul multor regiuni nordice. Timp frumos în cea mai mare parte a Scoției și Irlandei de Nord, însă ploaia va ajunge în nordul extrem. \\[0.5mm] \hline Miercuri & 10C & 21C & Dimineața va continua să plouă. Vremea se va îmbunătăți la începutul după-amiezii și va continua să se îmbunătățească de-a lungul serii. \\[0.5mm] \hline \end{tabular} \end{center} \end{document}
Veți obține următorul rezultat:
Observați că primul tabel este decupat: outputul depășește lățimea paginii.
Alinierea stânga-dreapta a textului în tabele
În rare ocazii, ar putea fi necesar să măriți fiecare linie dintr-un tabel până la lățimea naturală a celei mai lungi linii, spre exemplu când același text trebuie afișat în două limbi diferite, iar utilizatorul vrea să le prezinte unul lângă celălalt, cu liniile sincronizate. Un mediu tabelar ajută la împărțirea textului pe linii, însă nu aliniază textul stânga-dreapta, ceea ce lasă margini drepte neregulate. Pachetul eqparbox include comanda \eqmakebox
, care este la fel ca \makebox
, doar că, în locul unui argument width, ia o etichetă. În timpul compilării, ține evidența tuturor căsuțelor \eqmakebox
cu aceeași etichetă, memorând lățimea maximă a textului, astfel încât să poată mări toate căsuțele până la această valoare. În combinație cu pachetul array, puteți defini un specificator de coloană ce aliniază la stânga-dreapta textul de pe toate liniile: (Vezi documentația pachetului eqparbox pentru mai multe detalii.)
\newsavebox{\tstretchbox} \newcolumntype{S}[1]{% >{\begin{lrbox}{\tstretchbox}}% l% <{\end{lrbox}% \eqmakebox[#1][s]{\unhcopy\tstretchbox}}% }
Alte medii în tabele
Dacă folosiți anumite medii LaTeX în celulele tabelelor, cum ar fi verbatim or enumerate
\begin{tabular}{| c | c |} \hline \begin{verbatim} cod \end{verbatim} & descriere \\ \hline \end{tabular}
puteți întâlni erori de genul
! LaTeX Error: Something's wrong--perhaps a missing \item.
Pentru a rezolva această problemă, schimbați specificatorul coloanei la paragraf (p, m sau b).
\begin{tabular}{| m{5cm} | c |}
Definirea mai multor coloane odată
Puteți defini mai multe coloane identice odată cu ajutorul sintaxei *{num}{str}
.
Acest lucru este deosebit de util când tabelul are multe coloane.
Iată un tabel cu 6 coloane centrate, flancate de o singură coloană de fiecare parte:
|
@-expresii
Separatorul de coloană poate fi specificat cu construcția @{...}
.
În mod tipic, aceasta ia ca argument un text, iar când se anexează la o coloană, va insera automat acest text în fiecare celulă de pe coloană înainte de datele efective pentru acea celulă. Această comandă șterge spațiul dintre coloane și îl înlocuiește cu ce se găsește între acolade. Pentru a adăuga spațiu, folosiți @{\hspace{lățime}}
.
Evident, aceste explicații nu sunt foarte clare, astfel că vor fi necesare câteva exemple pentru clarificare. Câteodată, e de dorit ca în tabelele științifice numerele să fie aliniate după punctul zecimal. Puteți face asta în felul următor:
|
|
Notați că abordarea de mai sus nu va merge bine dacă antetul coloanei este mai lung decât oricare dintre numere. Pentru a centra coloana după punctul zecimal, folosiți pachetul dcolumn, care oferă un nou specificator de coloană pentru datele flotante.
Suprimarea spațiilor realizată de @-expresii le face foarte utile pentru manipularea spațiului orizontal dintre coloane. Dat fiind un tabel de bază, variind specificațiile coloanelor, obținem:
\begin{tabular}{|l|l|} \hline date & date \\ \hline date & date \\ \hline \end{tabular}
{|l|l|} | |
{|@{}l|l@{}|} | |
{|@{}l@{}|l@{}|} | |
{|@{}l@{}|@{}l@{}|} |
Întinderea liniilor și coloanelor
Pentru a încheia acest tutorial, vom lucra puțin la generarea de tabele mai complexe. Deloc surprinzător, comenzile necesare trebuie incluse în datele din tabel.
Linii care se întind pe mai multe coloane
Comanda pentru asta arată în felul următor: \multicolumn{număr_coloane}{aliniere}{conținut}
. număr_coloane este numărul de coloane succesive care vor fi îmbinate pentru a fi reprezentate ca o singură coloană; aliniere este l, c, r sau o opțiune de genul p{5.0cm}
. Iar conținut reprezintă pur și simplu datele efective care vor fi conținute în celulă. Iată un exemplu simplu:
|
Coloane care se întind pe mai multe linii
Primul lucru pe care trebuie să-l faci este să adaugi \usepackage{multirow}
în preambul. Asta oferă comanda necesară pentru a întinde o celulă pe mai multe linii: \multirow{număr_linii}{lățime}{conținut}
. Sensul argumentelor este destul de ușor de dedus (*
pentru lățime înseamnă lățimea naturală a conținutului).
|
Lucrul principal de notat când folosiți comanda \multirow
este că trebuie inserată o intrare nulă pentru fiecare celulă corespunzătoare de pe fiecare linie succesivă de înlocuit.
Dacă nu sunt date pentru o celulă, nu tipăriți nimic, însă tot vă trebuie "&" pentru a le separa de datele coloanei următoare. Cititorul atent trebuie să fi dedus deja că pentru un tabel cu coloane, trebuie să fie întotdeauna "&" pe fiecare linie. Singura excepție este când folosiți \multicolumn și \multirow pentru a crea celule care se întind pe mai multe coloane sau linii.
Celule care se întind în ambele direcții simultan
Iată un exemplu ceva mai complex despre celule care se întind în ambele direcții simultan, cu marginile trasate corect:
|
Comanda \multicolumn{1}{|c|}{...}
este folosită numai pentru a trasa margini verticale la stânga și la dreapta celulei. Chiar și atunci când este combinată cu \multirow{2}{*}{...}
, tot trasează margini verticale ce se întind numai de-a lungul primei linii. Pentru a trasa linii verticale care se întind pe mai multe linii, folosim comanda \multicolumn{1}{|c|}{...}
care trebuie să includă liniile unite de comanda multirow. Notați faptul că nu puteți folosi direct \hline
pentru a trasa linii orizontale, întrucât nu vrem ca linia să fie trasată peste textul ce se întinde de-a lungul mai multor linii. Folosim în schimb comanda \cline{2-6}
pentru a nu trasa linia de-a lungul primei coloane, ce conține textul "Puteri".
Iată încă un exemplu ce exploatează aceleași idei pentru a realiza binecunoscuta dublă dihotomie "2x2":
|
Redimensionarea tabelelor
Comanda \resizebox{lățime}{înălțime}{obiect}
poate fi folosită cu tabular
pentru a specifica înălțimea și lățimea unui tabel. Exemplul următor arată cum se poate redimensiona un tabel la 8cm lățime, menținând rata inițială lățime/înălțime.
\resizebox{8cm}{!} { \begin{tabular}... \end{tabular} }
Ca o alternativă, puteți folosi \scalebox{rată}{obiect}
în același fel, însă cu rate în loc de dimensiuni fixe:
\scalebox{0.7}{ \begin{tabular}... \end{tabular} }
Atât \resizebox
, cât și \scalebox
necesită pachetul graphicx.
Pentru a redimensiona spațiul dintre coloane (LaTeX va alege implicit coloane foarte strânse), puteți modifica separarea coloanelor: \setlength{\tabcolsep}{5pt}
.
Valoarea implicită este 6pt.
Tabele cu text scris pe lateral
Tabelele pot fi aranjate pe lateral într-un document cu ajutorul pachetului rotating și a mediului sidewaystable
care să includă tabelul. (NOTĂ: cele mai multe programe de vizualizare pentru DVI nu suportă afișarea textului rotit. Convertiți documentul într-un PDF ca să vedeți rezultatul. Cele mai multe, dacă nu toate, programele de vizualizare a PDF-urilor suportă textul rotit.)
\usepackage{rotating} \begin{sidewaystable} \begin{tabular} ... \end{tabular} \end{sidewaystable}
Pentru a roti textul înăuntrul tabelului:
\usepackage{rotating} \begin{tabular}{...} \begin{sideways} text rotit ... \end{sideways} \end{tabular}
Când doriți să așezați tabelul rotit în exact același loc în care apare în fișierul sursă (.tex), puteți folosi pachetul rotfloat. Atunci puteți folosi \begin{sidewaystable}[H]
la fel ca pentru orice alt tabel. Opțiunea 'H' nu poate fi folosită fără acest pachet.
Culori de bază alternate în tabele
Pachetul xcolor oferă comenzile necesare pentru a realiza tabele cu culori de bază alternate, când sunt încărcate cu opțiunea table
.
Comanda \rowcolors{<începutul liniei>}{<culoare impară>}{<culoare pară>}
trebuie specificată chiar înainte de a începe mediul tabular
.
|
Comanda \hiderowcolors
dezactivează colorarea liniei specificate.
Colorarea poate fi reactivată în interiorul tabelului cu comanda \showrowcolors
.
Colorarea celulelor individuale
La fel ca mai sus, colorarea celulelor individuale folosește pachetul xcolor.
\usepackage[table]{xcolor} \cellcolor[gray]{0.9} % gri deschis (''gray'' este aici schema de colorare alb-negru) \cellcolor{red} % roșu
Linii verticale parțiale
Adăugarea unei linii verticale parțiale unei celule individuale:
|
Înlăturarea unei părți a unei linii verticale dintr-o celulă anume:
|
Mediul table - atașarea de legende, etc
Deși mediul tabular
poate crea tabele complexe, nu acoperă tot ce puteți face cu tabelele. Spre exemplu, poate veți dori o legendă pentru un tabel. Din acest motiv, dar și din altele, ar trebui să plasați mediul tabular
într-un mediu table
:
\begin{table} \caption{Activitate la temperatura maximă} \begin{tabular}{| r | r || c | c | c |} ... \end{tabular} \end{table}
De ce există aceste două medii diferite? Gândiți-vă în felul următor: mediul tabular
se ocupă cu aranjarea elementelor într-o structură tabelară, în vreme ce mediul table
reprezintă un tabel la un nivel mai conceptual. Asta explică de ce nu mediul tabular
, ci table
este cel care oferă posibilitatea de a atașa legende (întrucât legenda nu se afișează în structura tabelară).
Mediul table
prezintă multe similarități cu mediul figure
, în ce privește tratarea elementelor "flotante", etc.
Spre exemplu, poate specifica plasarea pe pagină cu opțiunea [placement]
, valorile valide sunt orice combinație de (ordinea nu este importantă):
h | unde este declarat tabelul (aici — here) |
t | la începutul (top) paginii |
b | la sfârșitul (bottom) paginii |
p | pe o pagină dedicată de elemente flotante |
! | suprascrie restricțiile flotante implicite. Spre exemplu, dimensiunea maximă permisă unui element flotant b este în mod normal foarte mică; dacă vreți o dimensiune mai mare, aveți nevoie și de parametrul !. |
Valoarea implicită este [tbp]. Dacă vreți să plasați un tabel în locul în care este declarat, nu scrieți doar [h]; dacă tabelul nu încape (întrucât textul este aproape de sfârșitul paginii, să zicem), va fi mutat pe o pagină dedicată cu elemente flotante (ca în cazul unui element flotant p), care poate fi la ceva distanță în document. O regulă general recomandată este să folosiți întotdeauna htbp până la sfârșitul documentului, stadiu în care parametrii flotanți finali pot fi mai bine rafinați.
Mediul table
este de asemenea util când vreți să aveți o listă de tabele la începutul sau la sfârșitul documentului, cu ajutorul comenzii \listoftables
; aceasta permite realizarea de referințe la tabel în felul următor:
Puteți face referire la table~\ref{tabelul_meu} pentru a vedea un exemplu. ... \begin{table} \begin{tabular} ... \end{tabular} \caption{Un exemplu de tabel} \label{tabelul_meu} \end{table}
Mediul tabular* - controlarea lățimii unui tabel
Acesta este în fapt o ușoară extensie a versiunii originale tabular, deși necesită un argument în plus (înainte de descrierile coloanelor) pentru a specifica lățimea preferată a tabelului.
|
Totuși, asta s-ar putea să nu arate exact așa după cum era de așteptat. Coloanele tot mai sunt la lățimea lor naturală (îndeajuns de mari cât să cuprindă conținutul), în vreme ce liniile sunt îndeajuns de mari pe cât de lat a fost specificat tabelul. Dacă nu vă place acest comportament implicit, trebuie de asemenea să inserați manual încă un spațiu pentru o coloană. LaTeX are rubber lengths, care, spre deosebire de altele, nu sunt fixate (lungimi flexibile). LaTeX poate decide dinamic cât de mari ar trebui să fie aceste lungimi. Spre exemplu:
\begin{tabular*}{0.75\textwidth}{@{\extracolsep{\fill}} | c | c | c | r | } \hline eticheta 1 & eticheta 2 & eticheta 3 & eticheta 4 \\ \hline articolul 1 & articolul 2 & articolul 3 & articolul 4 \\ \hline \end{tabular*}
Observați construcția @{...}
adăugată la începutul descrierii coloanei. În cadrul acesteia se găsește comanda \extracolsep
, care necesită ă lățime. Puteam folosi o lățime fixă. Cu toate acestea, utilizând o lungime flexibilă, cum este \fill
, coloanele sunt spațiate automat în mod egal.
Pachetul tabularx - extinderea coloanelor
Acest pachet oferă un mediu tabelar numit tabularx, similar cu tabular*, cu excepția faptului că are un nou specificator de coloană, X. Coloana(ele) specificat(e) cu acest specificator vor fi extinse pentru a aduce tabelul la lățimea specificată, simplificând în mare măsură crearea tabelelor.
|
Conținutul căsuțelor este tratat la fel ca pentru o coloană tip paragraf p, cu excepția faptului că lățimea se calculează automat. Dacă folosiți pachetul array, puteți aplica orice comandă >{\cmd} sau <{\cmd} pentru a realiza comportamentul dorit (precum \centering sau \raggedright\arraybackslash), după cum a fost descris mai devreme.
O altă opțiune este folosirea \newcolumntype pentru a formata coloanele într-un mod specific. Aceasta definește un nou specificator pentru coloane, de exemplu, R. În exemplul următor, coloanele a doua și a patra sunt ajustate într-un mod diferit (\raggedleft):
|
Tabularx poate fi folosit cu linii care se întind pe mai multe coloane, cu ajutorul comenzii \multicolumn. Cele două coloane centrale sunt tratate ca una singură, folosind opțiunea X@{}. Notați că lățimea liniei formate de comanda \multicolumn (care în exemplul nostru este 2) ar trebui să fie egală cu lățimea coloanelor unite (în exemplul de față 1+1):
|
Imagini centrate vertical
Inserarea de imagini pe o linie a unui tabel le va alinia în partea superioară a celulei. Utilizând pachetul array, această problemă poate fi rezolvată. Definirea unui nou tip de coloană (newcolumntype) va menține imaginea centrată vertical.
\newcolumntype{V}{>{\centering\arraybackslash} m{.4\linewidth} }
|
Sau folosiți o căsuță în modul paragraf (parbox) pentru a centra imaginea.
\parbox[c]{1em}{\includegraphics{imagine.png}}
|
Tabele profesionale
Multe tabele din cărțile și revistele profesionale prezintă tabele simple, care au un spațiu corespunzător înainte și după linii, și care nu folosesc aproape niciodată linii verticale. Multe exemple de tabele LaTeX (inclusiv cele din acest wikimanual) prezintă utilizarea liniilor simple (orizontale: "\hline
și verticale: "|
") și duble ("\hline\hline
", respectiv "||
"), considerate nenecesare și care distrag atenția în cazul unui format profesional pentru publicații. Pachetul booktabs poate oferi cu ușurință acest profesionalism în tabelele LaTeX, iar documentația aferentă vă pune la dispoziție un ghid pentru a înțelege ce înseamnă un tabel "reușit".
Pe scurt, pachetul folosește \toprule
pentru linia ce marchează începutul tabelului, \midrule
pentru liniile ce apar în interiorul tabelului și \bottomrule
pentru linia ce marchează sfârșitul tabelului. Asta asigură faptul că lățimea liniei și spațierea sunt acceptabile. În plus, puteți folosi \cmidrule
în locul \cline
pentru linii care marchează un număr specificat de coloane. Exemplul următor compară implementările uzuale din LaTeX (cu și fără pachetul array) cu booktabs:
Poate veți avea nevoie de note de subsol sub un tabel (și nu la sfârșitul paginii) și de o legendă (sau titlu) așezate la o distanță corespunzătoare deasupra tabelului. Aceste lucruri se pot realiza folosind pachetul ctable. Acesta oferă opțiunea inserării unui scurt titlu în lista de tabele, în locul titlului sau legendei efective (care pot fi foarte lungi sau nepotrivite pentru lista de tabele). Pachetul ctable utilizează pachetul booktabs.
Adăugarea de spațiu deasupra și sub liniile create de comenzile \hline și \cline
Un mod alternativ de a ajusta spațierea liniilor este să adăugăm \noalign{\smallskip}
înainte și/sau după comenzile \hline
și \cline{i-j}
:
LaTeX uzual
|
Puteți de asemenea să specificați explicit un spațiu după terminatorul de linie:
|
Tabele cu mărimi diferite de fonturi
Puteți modifica mărimea implicită a fontului pentru un tabel folosiți pur și simplu o comandă care setează mărimea fontului (aici: \footnotesize
) după declarația \begin{table}...
:
\begin{table}[h]\footnotesize \caption{Rezultate la temperatura maximă} \begin{tabular}{| r | r || c | c | c |} ... \end{tabular} \end{table}
Mărimea fontului pentru titlul sau legenda tabelului nu este afectată.
Pentru a controla mărimea fontului pentru legendă, vezi Stiluri de titluri.
Vreți ceva mai complicat?
Uitați-vă peste următoarele pachete:
- hhline: controlați liniile orizontale
- array: definiți mai ușor coloanele
- colortbl: faceți tabele mai colorate
- supertabular: pentru tabele care se întind pe mai multe pagini
- longtable: similar cu supertabular
- Notă: notele de subsol nu merg cum trebuie într-un mediu tabelar obișnuit, însă situația se schimbă într-un mediu longtable
- xtab: încă un pachet pentru tabele care trebuie să se întindă pe mai multe pagini
- tabulary: tabular* modificat, permițând setarea lățimii coloanelor pentru înălțimi egale
- arydshln: creează linii orizontale și verticale punctate
- ctable: permite afișarea notelor de subsol sub tabel și a titlului sau legendei spațiate corespunzător deasupra tabelului (încorporează pachetul booktabs)
- slashbox: creează tabele 2D, prima celulă conținând o descriere pentru ambele axe
Rezumat
Aici se încheie discuția noastră despre elementele de bază privind tabelele. Experimentarea conduce repede la stăpânirea cunoștințelor. Sintaxa tabelelor din LaTeX poate arăta destul de neîngrijit, iar exemplele noi pot crea confuzie. Însă din fericire, am acoperit destul de multe aspecte aici, suficient pentru a crea orice tabele doriți. Deloc surprinzător, LaTeX e mult mai complex de atât, așadar așteptați-vă la un tutorial următor cu trăsături mai avansate în viitorul apropiat.
Formatare
Termenul de formatare este destul de amplu, însă în cazul de față trebuie să fie, deoarece această secțiune vă va ghida prin diversele tehnici de formatare a textului, paragrafelor și paginilor. Formatarea tinde să se refere în cea mai mare măsură la lucruri legate de aspect, afișaj, lista de subiecte posibile fiind destul de eclectică: stilul de text, font, dimensiune; alinierea paragrafelor, spațierea dintre linii, indentarea; tipuri speciale de paragrafe; structuri de tip listă; note de subsol, note de margine, etc.
Mare parte a tehnicilor de formatare sunt necesare pentru a diferenția anumite elemente de restul textului. Este deseori necesar să scoateți în evidență cuvinte cheie sau anumite expresii. O listă numerotată sau cu marcatori este de asemenea folosită ca un mod clar și concis de a comunica o problemă importantă. Notele de subsol oferă informații sau clarificări suplimentare fără a întrerupe fluxul principal de text. Așadar, din aceste motive, formatarea este foarte importantă. Totuși, este de asemenea foarte ușor să abuzați de aceste facilități, iar un document prea bine stilizat poate arăta mai rău și fi mai greu de înțeles decât unul fără nicio înfloritură.
Formatarea textului
Împărțirea în silabe
LaTeX împarte cuvintele în silabe oricând este necesar. Dacă algoritmul de împărțire în silabe nu găsește punctele corecte de împărțire în silabe, puteți remedia situația folosind următoarele comenzi pentru a comunica sistemului TeX excepția. Comanda
|
face cuvintele din argument să fie despărțite în silabe numai în punctele marcate de "-". Argumentul comenzii ar trebui să conțină numai cuvinte formate din litere, sau mai degrabă caractere ce sunt considerate litere de către LaTeX. Se știe că algoritmul de împărțire în silabe nu găsește toate punctele corecte de împărțire în silabe pentru numeroase cuvinte din vocabular. Un fișier cu excepțiile cunoscute din limba engleză este publicat periodic în revista TUGboat. (Vezi o listă recentă din 2008: http://www.tug.org/TUGboat/Articles/tb29-2/tb92hyf.pdf)
Indiciile de împărțire în silabe sunt păstrate în memorie pentru limba care este activă când se întâlnește comanda de împărțire în silabe. Asta înseamnă că dacă plasați o comandă de împărțire în silabe în preambulul documentului, va influența împărțirea în silabe pentru limba implicită. Dacă plasați comanda după \begin{document}
și folosiți un pachet pentru limba națională de genul babel, atunci indiciile de împărțire în silabe vor fi active pentru limba activată prin intermediul pachetului. Exemplul următor permite cuvintelor "silabisire" și "Silabisire" să fie împărțite în silabe, dar previne orice împărțire în silabe pentru "FORTRAN", "Fortran" și "fortran". În argument nu sunt permise caractere speciale sau simboluri:
|
Comanda \-
inserează o cratimă în locul potrivit într-un cuvânt. Acesta devine de asemenea singurul punct de împărțire în silabe permis pentru acel cuvânt. Comanda \-
este deosebit de utilă pentru cuvinte ce conțin caractere speciale (spre exemplu, cuvinte cu diacritice), întrucât LaTeX nu împarte automat în silabe cuvinte ce conțin caractere speciale.
|
|
Acest lucru este greu de gestionat pentru multe cuvinte ce conțin o cratimă, de genul "propriu-zis", "după-amiaza". O soluție posibilă ar fi folosirea comenzii \hyp
din pachetul hyphenat. Această comandă pune o cratimă și permite împărțirea automată în silabe a cuvintelor rezultate din cuvântul compus. Vom scrie atunci:
|
Mai multe cuvinte pot fi ținute împreună pe o linie cu comanda
|
Această comandă face ca argumentul să fie ținut împreună în orice circumstanțe. De exemplu:
|
Comanda \fbox
este similară cu \mbox
, dar în plus conținutul va fi încadrat într-o căsuță vizibilă.
Pentru a evita complet împărțirea în silabe, penalizarea pentru împărțirea în silabe poate fi setată la o valoare extremă:
|
Câteodată poate veți dori să schimbați măsura în care LaTeX împarte în silabe modificând valoarea \tolerance=1000
și \hyphenpenalty=1000
.
Trebuie să experimentați cu aceste valori pentru a obține efectul dorit. O toleranță redusă nu va tolera spații inegale între cuvinte, astfel că împărțirea în silabe se va realiza mai des decât cu o toleranță înaltă.
Citate
Latex tratează ghilimelele duble stângi și drepte ca entități diferite. Pentru ghilimelele simple, ' ` ' (pe tastaturile americane, acest simbol se găsește pe tasta cu tilda, în general lângă cheia ' 1 ') reprezintă ghilimelele simple de deschidere, iar ' ' ' ghilimelele simple de închidere. Pentru a obține ghilimele duble, pur și simplu dublați simbolurile, iar Latex le va interpreta în mod corespunzător. (Deși, puteți folosi " pentru ghilimele duble drepte). Pe tastaturile englezești, ' ` ' este la stânga tastei ' 1 ' , pe care se află și ' ¬ ', iar câteodată ' ¦ ' sau ' | '. Tasta apostrof (' ' ') este la dreapta tastei ' :/; ', pe care se mai află simbolul ' @ '.
|
|
|
|
|
|
|
|
|
|
|
Ghilimelele simple drepte sunt folosite de asemenea ca apostrof în Latex.
Pentru ghilimele stângi așezate în partea inferioară și pentru stilul de citare european, trebuie să folosiți tipul de font T1
:
|
Diacritice
Puteți să adăugați diacritice la litere scriind un metacaracter diacritic înaintea literei respective. Iată o listă a metacaracterelor diacritice.
Pentru a așeza un diacritic pe un 'i' sau 'j', punctul deasupra acestei litere trebuie înlăturat. Acest lucru se realizează scriind \i
și \j
. Dacă vreți să vă scrieți toate documentele într-o limbă străină și trebuie să folosiți anumite diacritice de mai multe ori, atunci cu ajutorul configurației corecte, puteți scrie aceste caractere direct în documente.
Recent, XeTeX a inclus posibilitatea de a scrie caractere Unicod direct în fișierul sursă .tex. Dacă folosiți XeLaTeX, puteți folosi direct orice diacritice Unicod combinate.
Pentru mai multe informații, vezi capitolul despre Internaționalizare.
Spațiu între cuvinte și fraze
Pentru a obține o margine dreaptă aranjată în output, LaTeX inserează spații de mărimi diferite între cuvinte. Implicit, inserează de asemenea mai mult spațiu la sfârșitul unei fraze. Cu toate acestea, spațiul suplimentar adăugat la sfârșitul frazelor este considerat în general demodat din punct de vedere tipografic în engleza scrisă. (Practica aceasta se întâlnește în design-ul din secolul al XIX-lea și în stilurile de redactare din secolul al XX-lea.) Cele mai multe programe moderne de redactare de text tratează spațiul de la sfârșitul frazei la fel ca spațiul dintre cuvinte. (Vezi, spre exemplu, Elementele stilului tipografic de Bringhurst.) Spațiul adițional de după punctele ce marchează sfârșitul unei fraze pot fi dezactivate cu comanda
\frenchspacing
care spune LaTeX să nu insereze mai mult spațiu după un punct decât după orice alt caracter. Spațierea franțuzească poate fi oprită mai târziu în document prin comanda \nonfrenchspacing
.
Dacă un autor dorește să continue spațierea de tip vechi de la sfârșitul frazei, trebuie să aibă grijă că semnele de punctuație nu sunt interpretate greșit ca sfârșit de frază. TeX presupune că frazele se termină cu puncte, semne de întrebare sau de exclamare. Chiar dacă o literă mare este urmată de punct, acesta nu este interpretat ca sfârșit de frază, deoarece punctele de după litere mari apar în mod normal în abrevieri. Orice excepție de la aceste prezumții trebuie să fie specificată de autor. Un backslash în fața unui spațiu generează un spațiu ce nu va fi mărit. Un caracter tilda ' ~
' generează un spațiu care nu poate fi mărit și în plus împiedică apariția unui sfârșit de linie. Comanda ' \@
' în fața unui punct specifică faptul că acest punct termină o frază chiar și atunci când urmează după o literă mare. (Dacă folosiți \frenchspacing
, niciuna dintre aceste excepții nu trebuie specificată.)
Margini nealiniate și spații între cuvinte
Unele cuvinte foarte lungi, numere și URL-uri nu pot fi împărțite în silabe în mod corespunzător și trec dincolo de marginea din dreapta. O soluție la această problemă este folosirea mediului sloppypar, care spune LaTeX să ajusteze mai puțin strict spațierea dintre cuvinte. Drept urmare, unele spații dintre cuvinte pot fi puțin prea mari, însă cuvintele lungi vor fi plasate cum trebuie.
Ligaturi
Unele combinații de litere sunt afișate nu doar separat, ci și prin afișarea de simboluri speciale (ca "ff"), numite ligaturi.
Ligaturile pot fi interzise prin inserarea {}
sau, dacă asta nu merge, {\kern0pt}
, între cele două litere în chestiune. Acest lucru ar putea fi necesar pentru cuvinte compuse din două cuvinte. Iată un exemplu:
|
Unele programe nu reușesc să caute cuvinte în documente ce conțin ligaturi (căutarea "finally"
nu va găsi cuvântul "finally"
). Dacă doriți, pentru mai multă accesibilitate, pentru a dezactiva complet ligaturile pentru întregul document, puteți folosi \DisableLigatures
din pachetul microtype:
\usepackage{microtype}
\DisableLigatures{encoding = *, family = *}
Notați că va dezactiva doar ligaturile de genul --, ---, etc.
Dacă folosiți XeLaTeX și fonturi OpenType, pachetul fontspec permite dezactivarea ligaturilor standard și activarea ligaturilor fancy swash.
Caractere slash
În mod normal, un caracter /
în LaTeX nu permite caracterele următoare să fie "separate" pe liniile următoare, ceea ce creează erori "overfull" în output (în care literele se întind dincolo de marginea din dreapta). Cuvintele care folosesc caractere slash, cum ar fi "input/output" ar trebui scrise sub forma "input\slash output
", care permite liniei să se "împartă" după caracterul slash (dacă este necesar). Utilizarea caracterului /
în LaTeX ar trebui restrânsă la unități, ca în cazul "mm/year
", care nu ar trebui separate pe mai multe linii.
Evidențierea textului
Pentru a scoate în evidență un cuvânt sau o expresie, modul cel mai simplu este comanda \emph{text}
.
|
Fonturi
- Vezi și capitolul Fonturi.
În LaTeX, sunt multe căi prin care puteți specifica și controla fonturi, iar această secțiune este menită numai să servească ca scurtă introducere a acestui subiect.
Stiluri de fonturi
Există 3 familii principale de fonturi: roman (de exemplu, Times), sans serif (cum este Arial) și monospace (ca, de exemplu, Courier). Puteți de asemenea să specificați stiluri precum italic și bold.
Tabelul următor prezintă comenzile de care aveți nevoie pentru a accesa stilurile tipice de fonturi:
Comandă LaTeX | Echivalent cu | Stilul de output | Remărci |
---|---|---|---|
\textnormal{…}
|
{\normalfont …}
|
familia de fonturi implicită pentru document | acesta este fontul implicit sau normal |
\emph{…}
|
{\em …}
|
emphasis | caractere italice |
\textrm{…}
|
{\rmfamily …}
|
familia de fonturi roman | |
\textsf{…}
|
{\sffamily …}
|
familia de fonturi sans serif | |
\texttt{…}
|
{\ttfamily …}
|
familia de fonturi teletype | acesta este un font de mărime fixă sau monospace |
\textup{…}
|
{\upshape …}
|
forme verticale | la fel ca typeface normal |
\textit{…}
|
{\itshape …}
|
forme italice | |
\textsl{…}
|
{\slshape …}
|
forme oblice | versiune oblică a tipului normal typeface (similar cu, dar ușor diferit de, italice) |
\textsc{…}
|
{\scshape …}
|
litere mari cu font de dimensiune redusă | |
\uppercase{…}
|
litere mari | Și \lowercase . Sunt câteva capcane, totuși; vezi aici.
| |
\textbf{…}
|
{\bfseries …}
|
bold | |
\textmd{…}
|
{\mdseries …}
|
grosime medie | font între dimensiunea normală și aldină |
Poate ați observat absența underline. Deși acesta este disponibil prin intermediul comenzii \underline{...}
, textul subliniat în felul acesta nu va fi împărțit în silabe în mod corespunzător. Această funcționalitate trebuie adăugată cu pachetul ulem. Scrieți \usepackage{ulem}
în preambul. Implicit, asta suprascrie comanda \emph
, generând text subliniat și nu italic. Puțin probabil că veți dori așa ceva, astfel că este de dorit să împiedicați pachetul ulem să preia controlul asupra comenzii \emph
, chemând comanda underline dacă și când aveți nevoie.
- Pentru a reface formatarea
em
uzuală, adăugați\normalem
imediat după începutul mediului document. Altfel, adăugați această opțiune când includeți pachetul ulem:\usepackage[normalem]{ulem}
. - Pentru text subliniat, scrieți
\uline{...}
. - Pentru text subliniat cu o linie ondulată, puteți utiliza comanda
\uwave{...}
. - Pentru text tăiat de o linie (strike-out), folosiți comanda
\sout{...}
.
Modificarea dimensiunii caracterelor
Pentru a aplica mărimi diferite de fonturi, urmați comenzile din acest tabel:
Notați că definițiile mărimii fonturilor sunt setate de clasa document. În funcție de stilul de document, mărimea efectivă a fontului poate diferi de cele listate mai devreme. Și nu orice clasă de documente are mărimi unice pentru toate cele 10 comenzi de dimensionare a caracterelor.
mărime | 10pt (implicit) | 11pt | 12pt |
---|---|---|---|
\tiny | 6.80565 | 7.33325 | 7.33325 |
\scriptsize | 7.97224 | 8.50012 | 8.50012 |
\footnotesize | 8.50012 | 9.24994 | 10.00002 |
\small | 9.24994 | 10.00002 | 10.95003 |
\normalsize | 10.00002 | 10.95003 | 11.74988 |
\large | 11.74988 | 11.74988 | 14.09984 |
\Large | 14.09984 | 14.09984 | 15.84985 |
\LARGE | 15.84985 | 15.84985 | 19.02350 |
\huge | 19.02350 | 19.02350 | 22.82086 |
\Huge | 22.82086 | 22.82086 | 22.82086 |
mărime | 10pt (implicit) | 11pt | 12pt |
---|---|---|---|
\tiny | 7.33325 | 7.97224 | 8.50012 |
\scriptsize | 7.97224 | 8.50012 | 9.24994 |
\footnotesize | 8.50012 | 9.24994 | 10.00002 |
\small | 9.24994 | 10.00002 | 10.95003 |
\normalsize | 10.00002 | 10.95003 | 11.74988 |
\large | 10.95003 | 11.74988 | 14.09984 |
\Large | 11.74988 | 14.09984 | 15.84985 |
\LARGE | 14.09984 | 15.84985 | 19.02350 |
\huge | 15.84985 | 19.02350 | 22.82086 |
\Huge | 19.02350 | 22.82086 | 22.82086 |
mărime | |
---|---|
\tiny | 17.27505 |
\scriptsize | 20.73755 |
\footnotesize | 20.73755 |
\small | 20.73755 |
\normalsize | 24.88382 |
\large | 29.86258 |
\Large | 35.82510 |
\LARGE | 43.00012 |
\huge | 51.60014 |
\Huge | 51.60014 |
mărime | 10pt (implicit) | 11pt | 12pt |
---|---|---|---|
\tiny | 5.31258 | 6.37509 | 6.37509 |
\scriptsize | 7.43760 | 8.50012 | 8.50012 |
\footnotesize | 8.50012 | 9.24994 | 10.00002 |
\small | 9.24994 | 10.00002 | 10.95003 |
\normalsize | 10.00002 | 10.95003 | 11.74988 |
\large | 11.74988 | 11.74988 | 14.09984 |
\Large | 14.09984 | 14.09984 | 16.24988 |
\LARGE | 16.24988 | 16.24988 | 19.50362 |
\huge | 19.50362 | 19.50362 | 23.39682 |
\Huge | 23.39682 | 23.39682 | 23.39682 |
Ca o notă tehnică, punctele din TeX se bazează pe mărimea standard americană a punctului, pentru care 1 pt este aproximativ 0.351366666666667 mm. Mărimea standard a punctului în cele mai multe programe moderne de calculator (cunoscută sub denumirea de desktop publishing point sau PostScript point) conform căreia 1 pt este aproximativ 0.352777777777778 mm, în vreme ce conform standardului european (Didot point) 1 pt este aproximativ 0.375971510382829 mm. (Vezi: Punctul tipografic.)
Chiar dacă puteți schimba ușor outputul fonturilor cu ajutorul acestor comenzi, e mai bine să nu folosiți explicit comenzi de genul acesta, întrucât sunt în opoziție cu ideea de bază din LaTeX, care constă în separarea aspectului logic și vizual ale documentului. Asta înseamnă că dacă folosiți aceeași comandă pentru schimbarea fontului în mai multe locuri pentru a afișa un tip special de informații, ar trebui să utilizați \newcommand
pentru a defini un "wrapper" logic pentru comanda de schimbare a fontului.
|
Nu intrați în această cameră, este ocupată de mașini de origine și cu scop necunoscute. |
Această abordare are avantajul că puteți decide mai târziu dacă vreți să folosiți o anume reprezentare vizuală a pericolului alta decât \textbf
, fără a trebui să căutați prin document, identificând toate aparițiile \textbf
și determinând pentru fiecare dacă este folosit pentru a indica un pericol sau pentru alt motiv.
Exponent și indice în modul text
Pentru a scrie la exponent în modul text, puteți folosi comanda \textsuperscript{}
. Asta vă permite, spre exemplu, să scrieți "6th" sub forma "6th":
Michelangelo s-a născut la 6 Martie (March 6\textsuperscript{th}), 1475.
Principala utilizare a indicilor în mediul text este tipărirea formulelor chimice. În acest sens, un pachet foarte recomandat este mhchem. Acest pachet este ușor de utilizat și merge cu fonturile implicite de text (în locul fonturilor matematice). Pentru a insera o formulă chimică, utilizați comanda \ce{}
cu formula echivalentă în modul text, spre exemplu:
|
Scrierea indicilor în modul text nu este suportată numai de LaTeX; totuși, mai multe pachete permit utilizarea comenzii \textsubscript{}
. Spre exemplu, bpchem, KOMA-Script2 și fixltx2e suportă toate această comandă. Dintre acestea, fixltx2e este poate opțiunea aproape universală de vreme ce este distribuit cu LaTeX și nu necesită niciun pachet adițional pentru a fi implementat.
|
Dacă nu încărcați un pachet ce suportă comanda \textsubscript{}
, trebuie să folosiți modul matematic. Acest lucru este ușor de realizat în modul text punând codul între simboluri $
. În modul matematic scrierea de indici se realizează cu ajutorul unui underscore: _{}
.
Spre exemplu, formula pentru apă se scrie în felul următor:
|
|
Notați că în modul matematic textul va apare într-un font potrivit pentru variabilele matematice. În modul matematic, pentru a genera text în stilul "roman", spre exemplu, folosiți comanda \mathrm
:
|
Notați folosirea comenzii \<spațiu> pentru a insera un spațiu în modul matematic.
În mod similar, puteți scrie exponenți în felul următor:
|
Cifre în modul text (numere "în stilul vechi")
Mulți tipografi preferă să folosească cifre poziționate la înălțimea literelor mici, atunci când sunt amestecate cu literele mari, când apar în tabele sau în ecuații, folosind cifre în modul text în altă parte. LaTeX permite această utilizare prin intermediul comenzii \oldstylenums{}
:
\oldstylenums{1234567890}
|
Unele fonturi nu au cifre în modul text încorporate; pachetul textcomp încearcă să remedieze asta generând efectiv cifre în modul text în baza fontului curent selectat. Scrieți \usepackage{textcomp}
în preambul. textcomp vă permite de asemenea să folosiți puncte zecimale, $, etc., în \oldstylenums{}
.
O utilizare comună pentru cifrele în modul text este pentru numerele secțiunilor, paragrafelor și paginilor. Acestea pot fi setate să folosească cifre în modul text scriind ceva cod în preambul:
\usepackage{textcomp}
% Includeți totul în \AtBeginDocument{}
\AtBeginDocument
{
% Faceți \section{} să folosească cifre în modul text
\let\myTheSection\thesection
\renewcommand{\thesection}{\oldstylenums{\myTheSection}}
% Faceți \paragraph{} să folosească cifre în modul text
\let\myTheParagraph\theparagraph
\renewcommand{\theparagraph}{\oldstylenums{\myTheParagraph}}
% Faceți ca numerele de pagini să fie în modul text
\let\myThePage\thepage
\renewcommand{\thepage}{\oldstylenums{\myThePage}}
}
Dacă veți folosi comenzi adiționale pentru secțiuni sau paragrafe, puteți să adaptați codul de mai înainte pentru a le include și pe acestea.
Simboluri și caractere speciale
Cratime și alte liniuțe
LaTeX cunoaște patru tipuri de liniuțe: cratimă (-), en dash (–), em dash (—), sau minus (−). Puteți accesa trei dintre ele cu numere diferite de liniuțe consecutive. Al patrulea semn nu este de fapt o liniuță, ci semnul matematic minus:
|
Denumirile acestor liniuțe sunt: '-'(-) cratimă , '--'(–) en-dash , '---'(—) em-dash și ''(−) minus. Ele au scopuri diferite:
Utilizați macrocomanda \hyp{}
din pachetul hyphenat în loc de cratimă dacă vreți să despărțiți cuvinte compuse pe mai multe linii în LaTeX.
Simbolul Euro €
Când scrieți ceva legat de bani azi, aveți nevoie de semnul Euro. Aveți mai multe opțiuni. Dacă fonturile pe care le utilizați au un simbol pentru Euro și vreți să-l folosiți, mai întâi trebuie să includeți pachetul textcomp în preambul:
\usepackage{textcomp}
,
apoi puteți insera simbolul Euro cu comanda \texteuro
. Dacă vreți să folosiți versiunea oficială a simbolul Euro, atunci trebuie să includeți pachetul eurosym cu opțiunea official
în preambul:
\usepackage[official]{eurosym}
,
apoi puteți să inserați acest simbol cu comanda \euro
. În cele din urmă, dacă vreți un simbol Euro care să se potrivească cu stilul curent de font (de exemplu, bold, italic, etc.), însă fontul curent nu oferă acest simbol, puteți din nou să includeți pachetul eurosym, însă de data aceasta cu altă opțiune:
\usepackage[gen]{eurosym}
și din nou puteți insera simbolul Euro cu comanda \euro
.
Puncte de suspensie (…)
O secvență de trei puncte este cunoscută sub denumirea de puncte de suspensie, folosită în general pentru a indica un text omis. Pe o mașină de scris, o virgulă sau un punct ia același spațiu ca orice altă literă. La tipărirea cărților, în tipografii sau în programele de redactare de text, aceste caractere ocupă numai puțin spațiu și sunt așezate foarte aproape de litera precedentă. De aceea, nu puteți introduce punctele de suspensie tipărind pur și simplu trei puncte, întrucât spațierea dintre ele ar fi prea mică. În schimb, există o comandă specială pentru aceste trei puncte — \ldots
:
|
Șiruri de caractere predefinite
Sunt câteva comenzi foarte simple în LaTeX pentru afișarea unor șiruri de caractere speciale, predefinite:
Alte simboluri
Latex dispune de foarte multe simboluri. Majoritatea acestora sunt în domeniul matematic, iar capitolele ulterioare vă vor spune cum să le accesați. Pentru simbolurile uzuale, utilizați următoarele comenzi:
Nemenționată în tabelul de mai sus, tilda (~) se folosește în codul LaTeX pentru a produce spațiu non-separabil. Pentru a afișa semnul tilda, scrieți-l în cadrul unui text verbatim sau scrieți \~{}
.
Desigur, puteți folosi și fontul Postscript ZipfDingbats din pachetul pifont. Scrieți în preambul: \usepackage{pifont}
, iar apoi folosiți comanda \ding{number}
pentru a afișa simbolul corespunzător. Iată un tabel cu simbolurile disponibile:
Formatarea paragrafelor
Modificarea formatării paragrafelor nu este deseori necesară, mai ales în cazul publicațiilor academice. Totuși, este bine de știut cum se formatează textul în elemente flotante, sau alte tipuri mai exotice de documente.
Alinierea paragrafelor
Paragrafele din Latex sunt de obicei aliniate stânga-dreapta (justified). Dacă vreți, dintr-un motiv anume, să modificați alinierea implicită a unui paragraf, aveți la dispoziție trei medii și comenzi Latex echivalente.
Aliniere | Mediu | Comandă |
---|---|---|
Aliniat la stânga | flushleft | \raggedright |
Aliniat la dreapta | flushright | \raggedleft |
Centrat | center | \centering |
Tot textul dintre \begin
și \end
în mediul specificat va fi aliniat în mod corespunzător. Comenzile listate mai sus sunt menite a fi utilizate în alte medii. Spre exemplu, pentru coloanele p
(paragraf) în mediul tabular
.
Indentarea paragrafelor
Implicit, primul paragraf după un antet urmează standardul anglo-american fără indentare. Indentarea paragrafelor următoare este determinată de un parametru denumit \parindent
. Lungimea implicită pe care o are această constantă este setată de clasa documentului folosit. Puteți modifica indentarea implicită a paragrafelor cu ajutorul comenzii \setlength
:
\setlength{\parindent}{1cm}
Asta va seta indentarea implicită a paragrafelor la 1cm.
Aveți grijă, totuși, dacă decideți să setați indentarea la zero, întrucât asta înseamnă că veți avea nevoie de un spațiu vertical între paragrafe pentru a le delimita. Spațiul dintre paragrafe este controlat de parametrul \parskip
, care poate fi modificat la fel ca mai devreme. Totuși, acest parametru este utilizat și în altă parte, cum ar fi listele, ceea ce înseamnă că puteți face ca diverse părți ale documentului să arate neîngrijit schimbând aceste setări. Dacă nu vreți să aveți indentare, dar cu un spațiu între paragrafe, folosiți pachetul parskip, care face asta, dar și ajustări ale spațierii listelor și altor structuri care folosesc spațierea paragrafelor, astfel încât acestea să nu fie prea diferite. Adăugați la preambul:
\usepackage{parskip}
Pentru a indenta liniile succesive ale unui paragraf, utilizați comanda TeX \hangindent
. (Comportamentul implicit constă în aplicarea indentării liniilor după prima linie, care se poate schimba cu comanda \hangafter
.) Iată un exemplu:
\hangindent=0.7cm Acest paragraf are o indentare suplimentară la stânga (vizibilă începând cu linia a doua a paragrafului).
Comenzile TeX \leftskip
și \rightskip
adaugă spațiu adițional la stânga și la dreapta fiecărei linii, permițând formatarea paragrafelor următoare astfel încât să difere de marginile generale ale documentului. Acest spațiu se adaugă la indentarea adăugată de \parindent
și \hangindent
.
Pentru a schimba indentarea ultimei linii dintr-un paragraf, folosiți comanda TeX \parfillskip
.
Spațiul alb din LaTeX poate fi făcut flexibil (ceea ce Lamport numește lungimi flexibile — rubber lengths). Asta înseamnă că valori de genul \parskip
pot avea o dimensiune implicită plus o anume extindere minus o anume contracție. Acest lucru este util pe paginile din documente complexe, în care nu orice pagină poate avea un număr exact de linii, astfel că este utilă o anumită ajustare a spațiului vertical. Specificați asta printr-o comandă \setlength
cum este:
\setlength{\parskip}{1cm plus4mm minus3mm}
Spațierea liniilor
Pentru a schimba spațiile dintre linii în tot documentul, utilizați comanda \linespread
, explicată în secțiunea Spațiere din capitolul LaTeX personalizat.
Pentru a modifica spațierea liniilor în medii specifice, urmați pașii următori:
- Adăugați
\usepackage{setspace}
în preambulul documentului. - Acest pachet oferă posibilitatea de a folosi următoarele medii în document:
doublespace
- toate liniile sunt separate de spații duble.onehalfspace
- spațierea liniilor este la față de spațierea normală.singlespace
- spațiere normală a liniilor.
După ce declarați pachetul în preambul, utilizarea uneia dintre comenzile \singlespacing
, \doublespacing
, sau \onehalfspacing
va specifica spațierea liniilor pentru toate secțiunile și paragrafele până la folosirea altei comenzi similare.
Vezi secțiunea Liste personalizate de mai jos pentru a afla cum puteți schimba spațierea liniilor în liste.
Paragrafe speciale
Vezi secțiunea Paragrafe speciale din capitolul Formatare avansată.
Structuri de liste
Listele apar deseori în documente, mai ales în cele academice, după cum scopul lor este adesea să prezinte informații într-un mod clar și concis. Structurile de liste din LaTeX sunt pur și simplu medii de trei tipuri: itemize
, enumerate
și description
.
Toate listele urmează formatul de bază:
\begin{tipul_listei}
\item Primul item
\item Al doilea item
\item Al treilea etc \ldots
\end{tipul_listei}
Toate aceste trei tipuri de liste pot avea mai multe paragrafe per item: scrieți pur și simplu paragrafele următoare așa cum le-ați scrie în mod normal, cu o linie liberă între ele. Atâta vreme cât sunt conținute în mediul de listare, vor fi indentate automat pentru a se alinia item-ului corespunzător.
Itemize
Acest mediu este pentru o listă standard cu marcatori:
|
Enumerate
Mediul enumerate este pentru listele numerotate, în care, în mod implicit, fiecare item este numerotat secvențial.
|
Description
Mediul description este puțin diferit. Puteți specifica eticheta pentru item ca argument opțional (deși opțional, ar părea ciudat să nu-l includeți!). Este ideal pentru o serie de definiții, ca în cazul unui glosar.
|
Câteodată s-ar putea să doriți o descriere în care textul să înceapă pe o linie nouă. Acest lucru nu se poate face pur și simplu cu \\
. Trucul constă în utilizarea comenzii \hfill
.
|
Liste compacte
După cum probabil ați observat, în clasele standard de documente LaTeX, spațierea verticală dintre itemi, ca și spațiul de deasupra și de după liste, sunt mai mari decât la paragrafe: poate părea nepotrivit dacă descrierile sunt prea scurte. Dacă vreți liste mai compacte, folosiți pachetul mdwlist (inclus în grupul mdwtools), care oferă versiuni compacte, "stelate" ale mediilor prezentate mai devreme, cu alte cuvinte, itemize*
, enumerate*
și description*
. Funcționează exact la fel, însă outputul este mai compact.
Ca o alternativă, puteți utiliza clasa de documente memoir, cu comanda \tightlists.
Liste imbricate
Latex vă va permite să inserați o listă într-un item dintr-o altă listă (până la un nivel de imbricare de 4 -- dacă vă trebuie un nivel de imbricare mai mare, folosiți pachetul easylist). Pur și simplu începeți mediul corespunzător în locul dorit în lista curentă. Latex va genera automat tipul de numerotare și indentarea corespunzătoare.
|
Liste personalizate
Vezi secțiunea Liste personalizate din capitolul Formatare avansată.
Liste inline
Vezi secțiunea Liste inline din capitolul Formatare avansată.
Note de subsol
Notele de subsol sunt un mod foarte util de a oferi informații suplimentare cititorului. De obicei, reprezintă informații neesențiale care pot fi așezate la sfârșitul paginii. Asta păstrează corpul principal al textului concis.
Notele de subsol sunt ușor de folosit. Comanda de care aveți nevoie este: \footnote{text}
. Nu lăsați niciun spațiu între comandă și cuvântul în dreptul căruia vreți să apară marcatorul notei de subsol, altfel Latex va procesa acel spațiu, iar rezultatul nu va arăta după cum era de așteptat.
|
Latex se va ocupa de redactarea notelor de subsol la sfârșitul paginii. Fiecare notă de subsol este numerotată secvențial — proces care, după cum probabil ați ghicit deja, este realizat automat.
Puteți modifica marcajul notelor de subsol. Implicit, acestea sunt numerotate secvențial (cu cifre arabe). Totuși, fără a intra în prea multe detalii legate de mecanismele interne ale sistemului LaTeX acum, puteți schimba acest tip de marcaj cu ajutorul următoarei comenzi (care trebuie plasată la începutul documentului, sau măcar înainte de prima comandă ce generează o notă de subsol).
\renewcommand{\thefootnote}{\arabic{footnote}}
|
Cifre arabe, cum sunt 1, 2, 3... |
\renewcommand{\thefootnote}{\roman{footnote}}
|
Cifre romane (mici), ca i, ii, iii... |
\renewcommand{\thefootnote}{\Roman{footnote}}
|
Cifre romane (mari), precum I, II, III... |
\renewcommand{\thefootnote}{\alph{footnote}}
|
Litere mici, cum sunt a, b, c... |
\renewcommand{\thefootnote}{\Alph{footnote}}
|
Litere mari, cum ar fi A, B, C... |
\renewcommand{\thefootnote}{\fnsymbol{footnote}}
|
O secvență de 9 simboluri (încercați să vedeți cum merge!) |
Pachetul footmisc oferă multe posibilități de modificare a aspectului notelor de subsol. Acesta poate oferi, spre exemplu, un font diferit pentru notele de subsol.
Probleme și soluții uzuale
- Notele de subsol din păcate nu merg cu tabelele, întrucât se consideră a fi o practică proastă. Puteți depăși această limitare prin mai multe tehnici: puteți utiliza comanda
\footnotemark[123]
în tabel și\footnotetext[123]{Salut, lume!}
undeva pe pagină. Sau, puteți adăuga\usepackage{footnote}
și\makesavenoteenv{tabular}
la preambul, iar apoi puneți mediul table într-un mediu savenotes, după\begin{savenotes}
. Notați că ultima variantă nu merge cu pachetele color și colortbl. Vezi această pagină FAQ pentru alte abordări.
- Notele de subsol nu merg într-un mediu minipage (de fapt, mai multe medii nu oferă suport pentru notele de subsol). Comanda
\makesavenoteenv{nume_mediu}
a pachetului footnote ar putea rezolva această problemă pentru cele mai multe medii. Mediul minipage include propriile note de subsol, independent de cele ale documentului. Pachetul mpfnmark permite o mai mare flexibilitate în gestionarea acestor două seturi de note de subsol.
- Dacă textul din nota de subsol este foarte lung, LaTeX poate împărți nota de subsol pe mai multe pagini. Puteți împiedica asta mărind penalitatea din LaTeX pentru o asemenea operație. Pentru a realiza acest lucru, inserați linia următoare în preambulul documentului:
\interfootnotelinepenalty=10000
- Pentru a face mai multe referințe la aceeași notă de subsol, puteți folosi următoarea sintaxă:
Textul ce are o notă de subsol\footnote{Aceasta este nota de subsol} arată așa. Mai târziu, textul ce face o referință la aceeași notă de subsol\footnotemark[\value{footnote}] utilizează cealaltă comandă.
- Dacă vă trebuie suport din pachetul hyperref, folosiți în schimb:
Textul ce are o notă de subsol\footnote{Aceasta este nota de subsol}\addtocounter{footnote}{-1}\addtocounter{Hfootnote}{-1} arată așa. Mai târziu, textul ce face o referință la aceeași notă de subsol\footnotemark utilizează cealaltă comandă.
- Notați că aceste abordări nu merg dacă sunt alte note de subsol între prima referință și oricare dintre "duplicate".
Note de margine
Notele de margine sunt utile în timpul procesului de editare pentru a schimba comentarii între autori. Pentru a insera o notă de margine, folosiți comanda \marginpar{text ce va apare în notă}
. Pentru formatul de pagină (layout) one-sided (simplex), textul va fi așezat în marginea dreaptă, începând cu linia unde nota este definită. Pentru formatul de pagină față-verso (two-sided) (duplex), textul va fi plasat în marginea exterioară, iar în cazul formatului cu două coloane (two-column) va fi așezat în marginea cea mai apropiată.
Pentru a schimba marginea implicită, folosiți comanda \reversemarginpar
și atunci notele de margine vor fi atunci plasate în partea opusă, care ar trebui să fie marginea interioară pentru formatul de pagină față-verso.
Dacă textul transmis ca argument al comenzii marginpar depinde de marginea în care este așezat (să zicem că include o săgeată îndreptată către text sau se referă la o direcție, ca în "după cum se vede la stânga..."), puteți utiliza \marginpar[left text]{text așezat la dreapta}
pentru a specifica variantele.
Pentru a insera o notă de margine într-o zonă pe care \marginpar
nu o poate gestiona, cum ar fi notele de subsol sau ecuațiile, folosiți pachetul marginnote.
Vezi și pachetul mparhack.
Această pagină foloseşte materiale din cartea lui Andy Roberts, Getting to grips with Latex, cu permisiunea autorului.
Formatare avansată
Paragrafe speciale
Dacă ați citit cea mai mare parte sau toate capitolele de până acum, cel mai probabil ați întâlnit formatele din paragrafele următoare. Deși le-ați mai văzut, are sens să le re-introducem aici, pentru a completa informațiile din acest domeniu.
Text verbatim
Sunt mai multe moduri în care puteți introduce text care nu va fi interpretat de compilator. Dacă folosiți mediul verbatim
, tot ce este între comenzile begin și end este procesat așa cum este. Toate spațiile și liniile noi sunt reproduse așa cum sunt, iar textul este afișat într-un font corespunzător de mărime fixă. Orice comandă LaTeX va fi ignorată și tratată ca simplu text. Această situație este ideală pentru codul sursă. Acest mediu a fost folosit într-un exemplu în capitolul dinainte. Iată un exemplu:
|
Notă: îndată ce am intrat în mediul verbatim
, singura comandă ce va fi recunoscută este \end{verbatim}
. Oricare alta va fi afișată, literă cu literă (verbatim)! Dacă asta e o problemă, folosiți în schimb pachetul alltt, ce oferă un mediu cu același nume:
|
Amintiți-vă să adăugați \usepackage{alltt}
în preambulul documentului ca să-l puteți folosi!
În mediul alltt
, puteți folosi comanda \normalfont
pentru a reveni la fontul normal.
Pentru a scrie ecuații în mediul alltt
, puteți folosi \(
și \)
pentru a le include, în locul caracterului $
.
Când folosiți \textbf{}
în mediul alltt
, notați că fontul standard nu are tipul TT aldin. Fonturile txtt au tipul aldin: adăugați pur și simplu \renewcommand{\ttdefault}{txtt}
după \usepackage{alltt}
.
Dacă vreți numai să introduceți o expresie scurtă în modul verbatim, nu trebuie să folosiți mediul verbatim ca atare, ci doar comanda \verb
:
\verb+my text+
Primul caracter ce urmează \verb
este delimitatorul: aici am folosit "+", însă puteți folosi orice caracter, cu excepția "*" și a spațiului; \verb
va afișa literă cu literă tot textul după primul delimitator și până la următorul. Spre exemplu, codul:
\verb|\textbf{Salut, prietene!}|
va afișa \textbf{Salut, prietene!}
, ignorând efectul pe care \textbf
ar trebui să-l aibă asupra textului.
Pentru mai mult control asupra formatării, totuși, puteți încerca pachetul fancyvrb, care oferă un mediu Verbatim
(notați litera mare "V"). Acesta permite trasarea unei linii care să încadreze textul verbatim, modificarea mărimii fontului și chiar efecte tipografice în mediul Verbatim
. Poate fi folosit de asemenea în conjuncție cu pachetul fancybox și poate adăuga referințe la numere de linii (utile pentru grupuri de date sau de cod), putând chiar să includă fișiere externe întregi.
Tipărirea de URL-uri
Oricare dintre pachetele hyperref și url oferă comanda \url
, care afișează în mod corespunzător URL-uri, spre exemplu:
Mergi la \url{http://www.uni.edu/~numele-meu/cel-mai-bun-website.html}
pentru a vedea site-ul meu Web.
va afișa acest URL exact așa cum este scris (similar cu comanda \verb
), însă comanda \url
împarte de asemenea în silabe fără a pune o cratimă (în dreptul semnelor de punctuație). Aceasta a fost proiectată pentru URL-uri Web, astfel că le înțelege sintaxa și nu va împărți niciodată în silabe un cuvânt fără semne de punctuație, ci doar în dreptul caracterelor slash și a punctului. Țineți minte, totuși, că spațiile sunt interzise în URL-uri, astfel încât folosirea de spații în argumente \url
ar putea să nu dea rezultatul dorit, la fel ca utilizarea de caractere invalide pentru URL-uri.
Când utilizați această comandă cu ajutorul pachetului hyperref, puteți accesa URL-ul în documentul PDF rezultat, în vreme ce cu pachetul url, argumentul comenzii \url
nu va fi legat de adresa de Web. De asemenea, când folosiți pachetul hyperref, pentru a înlătura chenarul (linia dreptunghiulară) din jurul URL-ului, inserați pdfborder = {0 0 0 0}
în comanda \hypersetup{}
sau includeți pachetul cu opțiunea pdfborder = {0 0 0 0}
:
\usepackage[pdfborder={0 0 0 0}]{hyperref}
Mediul listing
Este o extensie a mediului verbatim pusă la dispoziție de pachetul moreverb. Funcționalitatea suplimentară pe care o oferă constă în adăugarea de numere de linii în text cu ajutorul comenzii: \begin{listing}[pas]{prima linie}
. Argumentul obligatoriu prima linie specifică pe ce linie ar trebui să înceapă numărătoarea. Argumentul opțional pas este diferența dintre numerele liniilor consecutive considerate (valoarea implicită este 1, ceea ce înseamnă că fiecare linie va fi numărată).
Pentru a utiliza acest mediu, amintiți-vă să adăugați \usepackage{moreverb}
la preambulul documentului.
Pachetul listings
Cu ajutorul pachetului listings puteți adăuga text neformatat ca în cazul comenzii \begin{verbatim}, însă scopul său principal este includerea de cod sursă din orice limbaj de programare în document. Dacă vreți să includeți pseudocod sau algoritmi, ar fi bine să vă uitați și peste capitolul Algoritmi și pseudocod.
Pentru a utiliza pachetul, trebuie să-l încărcați în preambul:
\usepackage{listings}
Pachetul listings suportă evidențierea cuvintelor cheie, a tipurilor de date, etc. din majoritatea limbajelor de programare și este foarte flexibil. Dacă vreți doar să scrieți cod în document, pachetul vă pune la dispoziție mediul lstlisting:
\begin{lstlisting}
Scrieți codul aici...
\end{lstlisting}
O altă posibilitate, care este foarte utilă dacă ați creat un program ce cuprinde mai multe fișiere și încă îl mai editați, este să importați cod direct din fișierul sursă. În felul acesta, dacă modificați sursa, trebuie doar să recompilați codul LaTeX și documentul final va fi actualizat. Comanda este:
\lstinputlisting{fișier_sursă.py}
În acest exemplu avem un fișier sursă Python, însă nu contează: puteți include orice fișier, însă trebuie să scrieți numele complet al fișierului (cu tot cu extensie). Acesta va fi considerat text simplu și va fi evidențiat potrivit setărilor curente, ceea ce înseamnă că nu recunoaște singur limbajul de programare. Puteți specifica limbajul când includeți fișierul în felul următor:
\lstinputlisting[language=Python]{fișier_sursă.py}
Acest pachet oferă suport pentru următoarele limbaje de programare:
ABAP | IDL | Plasm |
ACSL | inform | POV |
Ada | Java | Prolog |
Algol | JVMIS | Promela |
Ant | ksh | Python |
Assembler2 | Lisp | R |
Awk | Logo | Reduce |
bash | make | Rexx |
Basic2 | Mathematica1 | RSL |
C | Matlab | Ruby |
C++ | Mercury | S |
Caml | MetaPost | SAS |
Clean | Miranda | Scilab |
Cobol | Mizar | sh |
Comal | ML | SHELXL |
csh | Modula-2 | Simula |
Delphi | MuPAD | SQL |
Eiffel | NASTRAN | tcl |
Elan | Oberon-2 | TeX |
erlang | OCL | VBScript |
Euphoria | Octave | Verilog |
Fortran | Oz | VHDL |
GCL | Pascal | VRML |
Gnuplot | Perl | XML |
Haskell | PHP | XSLT |
HTML | PL/I |
În cazul unora dintre acestea, se oferă suport pentru mai multe dialecte. Pentru mai multe informații, consultați documentația inclusă în pachet (ar trebui să aibă numele listings.dvi sau listings.pdf).
Note
1 — Suportă codul din Mathematica numai dacă scrieți în plain text format. Nu puteți include fișiere *.NB cu \lstinputlisting{...} ca în cazul oricărui alt limbaj de programare, însă Mathematica poate exporta sub formă de sursă LaTeX stilizată.
2 — Este obligatoriu să specificați dialectul pentru unele limbaje (spre exemplu, language={[x86masm]Assembler}).
Puteți modifica mai mulți parametri ce influențează modul de afișare a codului. Puteți pune codul următor oriunde în document (nu contează dacă este înainte sau după \begin{document}), după cum vă este mai la îndemână. Comentariile explică fiecare comandă în parte.
\lstset{ %
language=Octave, % alegeți limbajul pentru cod
basicstyle=\footnotesize, % mărimea fonturilor utilizate pentru cod
numbers=left, % unde să scrie numerele de linii
numberstyle=\footnotesize, % mărimea fonturilor folosite pentru numerele de linii
stepnumber=2, % diferența dintre numerele de linii consecutive
% dacă este 1, fiecare linie va fi numerotată
numbersep=5pt, % cât de departe sunt numerele de linii față de cod culoarea
backgroundcolor=\color{white}, % fundalului; vă trebuie \usepackage{color} în preambul
showspaces=false, % evidențiază spațiile cu underscore
showstringspaces=false, % subliniază spațiile din șirurile de caractere
showtabs=false, % arată tab-urile din șirurile de caractere cu underscore
frame=single, % adaugă un cadru (chenar) în jurul codului
tabsize=2, % setează dimensiunea implicită pentru tab la 2 spații
captionpos=b, % setează poziția titlurilor sub figuri sau tabele
breaklines=true, % setează separarea automată a liniilor
breakatwhitespace=false, % se trece la linia nouă dacă sunt spații libere?
title=\lstname, % arată numele fișierelor incluse cu \lstinputlisting;
% încearcă să scrie o notă sau legendă în loc de titlu
escapeinside={\%*}{*)}, % dacă vreți să adăugați un comentariu în cod
morekeywords={*,...} % dacă vreți să mai adăugați cuvinte cheie la setul existent
}
Linia escapeinside necesită o explicație suplimentară. Vă trebuie dacă vreți să adăugați ceva text în cod, care să nu fie afișat. Notați că, implicit, comentariile ce țin de limbajul de programare vor fi afișate; comanda escapeinside={A}{B} definește comentarii doar pentru pachetul listings. Întregul cod dintre șirurile de caractere "A" și "B" va fi ignorat. În exemplul anterior, comentariile pentru Octave încep cu %, și urmează a fi afișate în documentul final dacă nu încep cu %*, însă trebuie să vă amintiți să "închideți" comentariul cu altă steluță "*".
Dacă adăugați paragraful dinainte, puteți folosi comanda următoare pentru a modifica setările codului:
\lstset{language=C,caption=Text descriptiv,label=EtichetăDescriptivă}
Găsiți mai multe informații în PDF-ul lui Carsten Heinz și Brooks Moses.
Detalii și documentație pentru pachetul listings puteți găsi pe site-ul CTAN.
Pentru un scurt exemplu, vezi codul de aici.
Comentarii ce se întind pe mai multe linii
După cum ați văzut, singurul mod în care LaTeX vă permite să adăugați comentarii este folosind caracterul special %
, care va transforma în comentariu restul liniei. Această abordare necesită mult timp pentru implementare dacă vreți să inserați comentarii foarte mari sau vreți să comentați o parte a documentului, la care veți reveni mai târziu. Cu ajutorul pachetului verbatim, scris în preambul ca de obicei:
|
puteți folosi un mediu numit comment, care va comenta tot ce cuprinde. Iată un exemplu:
|
Acesta este încă un exemplu de includere a comentariilor în document. |
Notați că asta nu va merge în medii complexe, cum este math, de exemplu. Poate vă întrebați, de ce ar trebui să includ un pachet numit verbatim pentru a avea posibilitatea de a adăuga comentarii? Răspunsul este imediat: textul comentat nu este interpretat de compilator la fel ca textul verbatim, diferența fiind că textul verbatim este introdus în document, iar comentariul nu.
Ca o alternativă, puteți defini o comandă \comentariu{}
, adăugând în preambulul documentului:
|
Apoi, pentru a comenta un text, utilizați această comandă:
|
|
Pachetul rotating
Pachetul rotating vă oferă posibilitatea de a roti orice obiect cu un unghi arbitrar. Îndată ce l-ați încărcat cu comanda standard în preambul:
\usepackage{rotating}
puteți folosi trei medii noi:
\begin{sideways}
rotește întregul argument cu 90 de grade în sens trigonometric (invers acelor de ceasornic). Mai mult:
\begin{turn}{30}
va roti argumentul cu 30 de grade. Puteți da orice unghi ca argument, fie că este pozitiv sau negativ. Acesta va lăsa spațiul necesar pentru a evita orice suprapunere de text.
\begin{rotate}{30}
este la fel ca turn, însă nu adaugă spațiu suplimentar.
Dacă vreți ca un element flotant să fie întors cu 90 de grade în sens trigonometric astfel încât să se rotească și titlul sau legenda în mod corespunzător, puteți folosi
\begin{sidewaysfigure}
sau
\begin{sidewaystable}
Notați, totuși, că figurile sau tabelele rezultate vor fi așezate pe o pagină separată.
Notă: Multe programe de vizualizare pentru DVI nu permit afișarea textului și tabelelor rotite. Textul va fi afișat normal. Trebuie să convertiți fișierul DVI în PDF și să-l vizualizați cu un program pentru PDF-uri pentru a vedea efectele de rotire. Aveți grijă totuși că tipărirea acelor fișiere PDF ar putea roti pagina respectivă din nou în aceeași direcție în unele situații. Acest comportament poate fi influențat de configurările programului de conversie dvi2pdf. Uitați-vă peste manual pentru mai multe informații.
Acest pachet este inclus în grupul 'texlive-latex-recommended' din Ubuntu.
Citarea de text
LaTeX oferă mai multe medii pentru citarea de text, cu mici diferențe și menite pentru tipuri diferite de citate. Toate sunt indentate la una dintre margini, la care puteți adăuga propriile marcaje pentru citate dacă vreți. Mediile oferite sunt:
quote
- pentru un citat scurt, sau o serie de citate mici, separate de linii libere.
quotation
- pentru citate mai lungi, de un paragraf sau mai multe, întrucât indentează prima linie a fiecărui paragraf.
verse
- pentru citate în care liniile libere sunt importante, ca în cazul poeziei. În cadrul acestui mediu, noi strofe sunt create cu o linie liberă, iar liniile noi dintr-o strofă sunt indicate cu ajutorul comenzii pentru o linie nouă,
\\
. Dacă o linie ia mai mult spațiu pe o pagină decât mărimea normală a unei linii, atunci toate liniile următoare sunt indentate până când sunt separate explicit cu comanda\\
.
Rezumate
În publicațiile științifice, se obișnuiește să se înceapă cu un rezumat care oferă cititorului o privire de ansamblu asupra conținutului. LaTeX pune la dispoziție mediul abstract
în acest scop. Poate fi accesat în clasele de documente article
și report
; nu este disponibil în clasa book
, însă este foarte ușor să creezi versiunea proprie dacă vrei.
Liste personalizate
Personalizarea LaTeX depășește domeniul începătorilor. Deși nu este greu de realizat, deoarece începătorii sunt deja încărcați cu o mulțime de comenzi și medii pe care trebuie să le învețe, trecerea la subiecte mai avansate poate genera confuzie.
Totuși, de vreme ce acest tutorial privește formatarea, voi prezenta totuși un scurt ghid legat de personalizarea listelor. Puteți trece peste această secțiune!
Modificarea spațierii liniilor în liste
În mediile de listare, puteți redefini unele variabile de lungime în LaTeX, spre exemplu:
\begin{itemize} \setlength{\itemsep}{1pt} \setlength{\parskip}{0pt} \setlength{\parsep}{0pt} \item Primul item \item Al doilea item \end{itemize}
Altfel, pentru a crea un aspect unificat în document, puteți defini propriul mediu de enumerare:
\newenvironment{enumerare} {\begin{enumerate} \setlength{\itemsep}{1pt} \setlength{\parskip}{0pt} \setlength{\parsep}{0pt}} {\end{enumerate}}
Modificarea listelor numerotate
Lucrul pe care utilizatorii vor să-l schimbe cel mai des la listele numerotate sunt contoarele. De aceea, pentru a merge mai departe, este necesară o scurtă introducere în domeniul contoarelor din LaTeX. Pentru orice lucru pe care LaTeX îl numără automat, cum ar fi antetele secțiunilor, figurile și listele cu marcatori, există un contor asociat cu el care controlează numerotarea.
Sunt patru contoare individuale asociate cu listele cu marcatori, fiecare reprezentând unul din cele patru niveluri posibile de imbricare, numite: enumi
, enumii
, enumiii
și enumiv
. Pentru a reseta oricare dintre aceste contoare în mijlocul unei enumerări simple, folosiți \setcounter
. Contorul este incrementat de comanda \item
înainte de a fi afișat. Spre exemplu, pentru a reseta enumi
, scrieți:
\begin{enumerate}
\setcounter{enumi}{4}
\item Al cincilea element
\end{enumerate}
care va fi afișat sub forma:
5. Al cincilea element
Fiecare contor are de asemenea un format implicit care îi dictează cum este afișat oricând LaTeX are nevoie să-l afișeze. Astfel de formate sunt specificate cu ajutorul unor comenzi LaTeX interne:
Comandă | Exemplu |
---|---|
\arabic | 1, 2, 3 ... |
\alph | a, b, c ... |
\Alph | A, B, C ... |
\roman | i, ii, iii ... |
\Roman | I, II, III ... |
\fnsymbol | Făcut pentru note de subsol (vezi mai jos), însă afișează o secvență de simboluri. |
Fiecare entitate pentru un contor păstrează diverse informații despre acesta. Pentru a ajunge la elementul numerotat, folosiți comanda \the
urmată imediat (adică fără spațiu) de numele contorului, de exemplu, \theenumi
. Aceasta este deseori denumită reprezentarea unui contor.
Pentru a modifica formatarea la un nivel dat:
\renewcommand{\reprezentare}{\formatul_comenzii{contor}}
Versiunea generică nu este clară, astfel încât câteva exemple vor clarifica lucrurile:
% Redefiniți primul nivel
\renewcommand{\theenumi}{\Roman{enumi}}
\renewcommand{\labelenumi}{\theenumi}
% Redefiniți al doilea nivel
\renewcommand{\theenumii}{\Alph{enumii}}
\renewcommand{\labelenumii}{\theenumii}
Metoda utilizată mai sus mai întâi modifică în mod explicit formatul folosit de contor. Totuși, elementul ce controlează eticheta (label) trebuie actualizat pentru a reflecta schimbarea, lucru pe care-l face a doua linie. Un alt mod de a obține acest rezultat ar fi:
\renewcommand{\labelenumi}{\Roman{enumi}}
Asta pur și simplu redefinește aspectul etichetei, ceea ce e de ajuns, presupunând că nu aveți de gând să transmiteți referințe la un item specific din listă, caz în care referința va fi afișată în formatul anterior. Această problemă nu apare în primul exemplu.
Notați că puteți adăuga și alte simboluri, cum ar fi parantezele și punctele, înainte și după contor. Spre exemplu, pentru a crea o listă indexată de litere mici cu paranteze înainte și după litere, puteți da următoarea comandă:
\renewcommand{\labelenumi}{(\alph{enumi})}
Modificarea listelor cu marcatori
Listele cu marcatori nu sunt atât de complexe întrucât nu trebuie să numere. De aceea, pentru a le personaliza, pur și simplu modificați etichetele. Acest lucru se poate face manual pentru fiecare intrare cu comanda \item[etichetă nouă]
, de exemplu \item[$\star$]
.
Etichetele listelor cu marcatori se accesează prin intermediul comenzilor \labelitemi
, \labelitemii
, \labelitemiii
și \labelitemiv
, respectiv pentru cele patru niveluri.
Putem să modificăm aceste etichete în felul următor:
\renewcommand{\labelitemi}{\textgreater}
Exemplul de mai sus ar seta etichetele pentru primul nivel la un simbol "mai mare decât" (>). Desigur, simbolurile textuale din Latex nu sunt foarte atrăgătoare. Puteți folosi unul dintre simbolurile ZapfDingbat, descrise în secțiunea Alte simboluri din capitolul Formatare. Sau puteți utiliza un simbol matematic:
\renewcommand{\labelitemi}{$\star$}
Puteți crea o listă cu marcatori, fără spații verticale între itemi consecutivi, în felul următor:
\begin{itemize}
\setlength{\itemsep}{0cm}
\setlength{\parskip}{0cm}
\item Primul item din listă
\item Itemul următor
\end{itemize}
Detalii ale personalizării listelor
Notați că este necesar ca \renewcommand
să apară după instrucțiunea \begin{document}
, astfel încât schimbările realizate să fie luate în considerare. Acest lucru este necesar atât pentru liste numerotate, cât și pentru cele cu marcatori.
Liste inline
Listele inline sunt un caz special întrucât necesită utilizarea pachetului paralist, care oferă mediul inparaenum
(cu o specificație opțională de formatare în paranteze drepte):
|
Pentru a schimba stilurile contoarelor, simbolurile A, a, I, i, și 1 pot fi utilizate în argumentul opțional pentru a produce contoare cu unul din stilurile \Alph
, \alph
, \Roman
, \roman
și \arabic
. Spre exemplu:
\begin{inparaenum}[(i)]
produce etichetele (i), (ii), (iii) ...
Această pagină foloseşte materiale din cartea lui Andy Roberts, Getting to grips with Latex, cu permisiunea autorului.
Fonturi
Pentru a putea selecta alt font decât fontul implicit din LaTeX, trebuie să includeți câteva comenzi în preambulul documentului.
Spre exemplu:
\usepackage[T1]{fontenc}
\usepackage[light,math]{iwona}
Important: notați că asta merge numai pentru fonturi ce sunt deja instalate în LaTeX. Dacă aveți un font ttf sau ceva asemănător, va trebui să-l convertiți și să-l faceți disponibil sistemului LaTeX. Vezi secțiunea de legături externe de la sfârșitul capitolului pentru câteva resurse utile în acest sens.
Exemplu
Iată un exemplu găsit pe grupul de discuție Google latexlovers. Exemplul demonstrează cum puteți selecta diferite fonturi într-un document simplu.
\documentclass{book}
\begin{document}
% fontul implicit (\familydefault = \rmdefault = Computer Modern Roman)
Lorem ipsum dolor sit amet, consectitur adipiscing elit.
\renewcommand*\rmdefault{ppl}\normalfont\upshape
Lorem ipsum dolor sit amet, consectitur adipiscing elit. % fontul Palatino
\renewcommand*\rmdefault{iwona}\normalfont\upshape
Lorem ipsum dolor sit amet, consectitur adipiscing elit. % fontul Iwona
\end{document}
Output:
XeTeX
Dacă utilizați motorul XeTeX și pachetul fontspec, veți putea folosi orice font instalat pe calculator fără eforturi suplimentare. XeTeX permite de asemenea utilizarea tehnologiei OpenType a fonturilor moderne, spre exemplu prin specificarea de simboluri alternative și versiuni de dimensiuni optice (simboluri care arată bine dacă sunt mărite foarte mult, spre exemplu, au marginile netede). XeTeX folosește Unicode în mod implicit, lucru ce poate fi util în chestiuni legate de fonturi.
Pentru a utiliza fonturile, încărcați pachetul fontspec în preambul și stabiliți fontul:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Arial}
\begin{document}
Lorem ipsum...
\end{document}
Apoi compilați documentul cu XeLateX sau LuaLaTeX. Notați că puteți genera numai fișiere .pdf și vă trebuie o versiune destul de nouă de TeX (TeX Live 2009 ar trebui să meargă cu XeTeX și Tex Live 2010 cu LuaTeX).
Site-uri utile
- Catalogul de fonturi LaTeX
- Comenzi LaTeX pentru fonturi
- Cum puteți schimba fonturile în LaTeX
- Înțelegeți universul fonturilor TEX și stăpâniți bazele fontinst
- Instalarea facilă de fonturi "Pentru proiectele unicat, puteți s-o luați pe scurtătură cu instalarea de fonturi (cu fontinst) și să sfârșiți prin a avea un set minim de fișiere și o instalare TEX mai curată. Acest articol vă arată cum și de ce"
Fonturi TrueType (ttf)
- Ghid pentru instalarea manuală pas cu pas de fonturi ttf pentru PdfTeX
- Un script bash pentru instalarea unei familii de fonturi în LaTeX (MikTeX / TeXLive)
- LaTeX și fonturile TrueType
- Fonturile True Type în LaTeX pentru Linux + MiKTeX 2.5
- Script de instalare pentru fonturile Truetype Unicode în LaTeX pentru Windows + MikTeX
- Folosiți fonturile TrueType cu TeX (LaTeX) și pdfTeX (pdfLaTeX) (pentru MikTeX)
Aranjarea în pagină
Latex și clasa documentului în mod normal se vor îngriji de formatul paginii în locul vostru. Pentru publicațiile academice, acest subiect nu vă va ajuta prea mult, deoarece editorii vor să păstreze controlul prezentării. Totuși, pentru propriile documente, probabil veți dori să schimbați o serie de setări: margini, orientarea paginii și coloanele, pentru a numi doar câteva. Scopul tutorialului de față este să vă arate cum puteți configura paginile.
Dimensiunile paginii
O pagină în Latex este definită de o mulțime de parametri interni. Fiecare parametru corespunde lungimii unui element al paginii, spre exemplu, \paperheight
este înălțimea fizică a paginii. Iată o diagramă ce prezintă toate variabilele ce definesc o pagină:
|
|
Nu iese imediat în evidență — întrucât nu cauzează probleme serioase — faptul că dimensiunea implicită a paginii pentru toate clasele standard de documente este US letter. Aceasta este mai scurtă cu 18 mm (aproximativ 3/4 inch), și puțin mai lată, cu 8 mm (cam 1/4 inch), decât A4 (care este standardul în aproape tot restul lumii). După cum ziceam, nu e o problemă așa de mare, iar cele mai multe imprimante vor tipări pagina fără probleme. Totuși, puteți specifica dimensiuni alternative.
\documentclass[a4paper]{article}
Exemplul de mai sus ilustrează folosirea argumentelor opționale pentru comanda \documentclass, care va modifica dimensiunile paginii în mod corespunzător. Clasele standard de documente care fac parte din Latex sunt făcute în așa fel încât să fie destul de generice, de aceea aveți flexibilitatea de a specifica dimensiunea paginii. Alte clase pot avea opțiuni diferite (sau niciuna). În mod normal, clasele terțe au ceva documentație care să prezinte aceste opțiuni.
Cititorii obișnuiți cu un program de procesare de cuvinte de genul 'Word' se întreabă probabil de ce textul este înconjurat de atât de mult spațiu liber. E un bun motiv, care se reduce la lizibilitate. Deschideți o carte și alegeți câteva linii la întâmplare. Numărați caracterele de pe o linie. Pun pariu că media este în jur de 66. Unele studii au arătat că e mai ușor să citești text când sunt 60-70 caractere pe o linie — și s-ar părea că 66 este numărul optim. De aceea, marginile paginii sunt setate în așa fel încât să asigure o cât mai bună lizibilitate. De asemenea, se lasă de obicei ceva spațiu liber în marginea interioară a paginilor pentru cazul în care documentul va fi legat.
Dacă vreți să schimbați marginile documentului, puteți proceda în mai multe feluri:
- Folosiți pachetul fullpage pentru margini standardizate ceva mai mici (cam cu un inch):
\usepackage{fullpage}
Pentru un efect și mai mare, folosiți opțiunea cm
(în jur de 1,5cm):
\usepackage[cm]{fullpage}
- Utilizați pachetul a4wide pentru un document cu pagini A4 și margini ceva mai mici.
- Folosiți pachetul geometry. Acest pachet vă permite să specificați cele 4 margini fără a fi necesar să rețineți comenzile particulare pentru modificarea dimensiunilor paginii. Se poate implementa în felul următor:
\usepackage[top=tlength, bottom=blength, left=llength, right=rlength]{geometry}
- Editați variabilele individuale ce controlează dimensiunile paginii descrise mai sus cu ajutorul comenzilor
\addtolength
și\setlength
. Spre exemplu:
\oddsidemargin=-1cm
\setlength{\textwidth}{6.5in}
\addtolength{\voffset}{-5pt}
În plus, sunt mai multe pachete menite să rezolve problema modificării dimensiunilor paginii, care suprascriu valorile implicite ale clasei de documente. Unul din pachetele cele mai versatile în ce privește formatul paginii este pachetul geometry. Spre exemplu, pentru a seta dimensiunea paginii, adăugați următoarele la preambul:
\usepackage[a4paper]{geometry}
Pachetul geometry are multe dimensiuni predefinite de pagini, cum este a4paper
sau:
a0paper
, a1paper
, ..., a6paper
, b0paper
, b1paper
, ..., b6paper
, letterpaper
, legalpaper
, executivepaper
.
Pentru a modifica în mod explicit dimensiunile paginii cu ajutorul pachetului geometry, puteți folosi opțiunile 'paperwidth' și 'paperheight'. De exemplu:
\usepackage[margin=1in, paperwidth=5.5in, paperheight=8.5in]{geometry}
Probleme legate de mărimea paginii
Dacă intenționați să obțineți un PDF la sfârșit, sunt în esență trei căi posibile:
TeX => PDF
TeX => DVI => PDF
TeX => DVI => PS => PDF
În general pentru acestea se folosesc următoarele comenzi:
pdflatex nume_fișier
latex nume_fișier dvipdf nume_fișier
latex nume_fișier dvips nume_fișier -o nume_fișier.ps ps2pdf nume_fișier.ps nume_fișier.pdf
Ținând cont de toate versiunile Ghostscript disponibile, modul cel mai sigur de a obține întotdeauna dimensiunea corespunzătoare a paginii la sfârșit este să adăugați
\documentclass[...,a4paper,...]{...}
\special{papersize=210mm,297mm}
la fișierul sursă 'tex', -t a4
după comanda 'dvips' și -sPAPERSIZE=a4
după 'ps2pdf'.
Pentru ca 'pdflatex' să meargă cum trebuie, puteți folosi pachetul geometry.
Dacă vreți în schimb US Letter, înlocuiți "210mm,297mm" cu "8.5in,11in", iar "a4" cu "letter".
Orientarea paginii
Când vorbiți despre schimbarea orientării paginii, asta înseamnă de obicei trecerea la modul landscape, de vreme ce portrait este valoarea implicită. Vă voi prezenta două stiluri puțin diferite de schimbare a orientării.
Primul este pentru situațiile în care vreți ca documentul să fie landscape încă de la început. Aveți la dispoziție diverse pachete pentru a face asta, însă preferatul meu este geometry. Tot ce trebuie să faceți este să includeți pachetul, cu opțiunea landscape:
\usepackage[landscape]{geometry}
Deși, dacă intenționați să utilizați pachetul geometry pentru a seta dimensiunile paginii, nu scrieți de două ori comanda \usepackage
; puneți toate opțiunile laolaltă, separate prin virgulă:
\usepackage[a4paper,landscape]{geometry}
A doua metodă se folosește când scrieți un document în modul portrait, dar aveți un conținut, ca o diagramă mai mare sau un tabel ce ar fi afișate mai bine pe o pagină în formatul landscape. Totuși, încă vreți ca header-ul și footer-ul să apară în același loc ca pe celelalte pagini.
Pachetul lscape este menit exact în acest scop. Oferă un mediu landscape
, orice lucru din el fiind în esență rotit. Nu se schimbă nicio dimensiune efectivă a paginii. Această abordare este mai aplicabilă la cărți sau rapoarte decât la publicațiile academice tipice. Folosind pdflscape în loc de lscape când generați un document PDF, pagina va părea rotită când este vizualizat: singura pagină care este în formatul landscape va fi rotită, în vreme ce restul documentului va rămâne cu orientarea portrait.
De asemenea, pentru a face un tabel să apară corect pe o pagină landscape, plasați mediul tabular
într-un mediu table
, care este la rândul lui în cadrul unui mediu landscape
, adică ar trebui să arate cam așa:
\begin{landscape}
\begin{table}
\centering % opțional, probabil arată mai bine centrat pe pagină
\begin{tabular}{....}
.......
\end{tabular}
\end{table}
\end{landscape}
Stiluri de pagini
Stilurile de pagini din Latex nu se referă la dimensiunile paginii, ci la header-ul și footer-ul curente ale unui document. Aceste headere conțin în mod tipic titlul documentului, numele sau numerele de capitol sau secțiune și numerele paginilor.
Stiluri standard de pagini
Posibilitățile de modificare a antetelor în plain LaTeX sunt în fapt destul de limitate. Aveți la dispoziție două comenzi: \pagestyle{stil}
, care va aplica stilul specificat la pagina curentă și la toate paginile următoare, și \thispagestyle{stil}
, care va afecta numai pagina curentă. Stilurile posibile sunt:
empty | Fără header și footer |
plain | Fără header, însă footer-ul conține numărul paginii în centru. |
headings | Fără footer, iar header-ul afișează informații legate de clasa documentului (cum ar fi numele secțiunii) și numărul paginii în partea superioară la dreapta. |
myheadings | Numărul paginii este în colțul drept superior și puteți controla restul header-ului. |
Cu myheadings, comenzile \markright
(în clasele standard de documente: carte, raport și articol) și \markboth
(numai pentru clasa carte) sunt folosite pentru a controla antetele. Următoarele comenzi plasate la începutul unui articol vor seta header-ul tuturor paginilor la "John Smith" în partea superioară la stânga, "Stiluri de pagini" centrat sus și numărul paginii în colțul dreapta sus:
\pagestyle{myheadings}
\markright{John Smith\hfill Stiluri de pagini\hfill}
O problemă de rezolvat este că principalele comenzi de împărțire în secțiuni (\part
, \chapter
sau \maketitle
) specifică un stil plain al paginii: \thispagestyle{plain}
. Așadar, dacă vreți să suprimați toate stilurile prin inserarea \pagestyle{empty}
la începutul documentului, atunci comanda de stil pentru fiecare secțiune va suprascrie regula inițială, numai pentru acele pagini. Pentru a obține rezultatul dorit, puteți scrie după noile comenzi de împărțire în secțiuni \thispagestyle{empty}
. Totuși, nu puteți regla comanda \part în felul acesta, întrucât setează stilul paginii, dar de asemenea trece la pagina următoare, astfel încât \thispagestyle{}
nu se poate aplica la acea pagină. O altă abordare este să scrieți pur și simplu \usepackage{nopageno}
în preambul. Acest pachet va face ca \pagestyle{plain}
să aibă același efect ca și \pagestyle{empty}
, suprimând efectiv numerotarea paginilor când este folosită.
Personalizarea cu fancyhdr
Pentru a obține un control mai bun asupra antetelor, puteți folosi pachetul fancyhdr scris de Piet van Oostrum. Acesta oferă mai multe comenzi ce vă permit personalizarea liniilor header și footer ale documentului. Pentru un ghid mai cuprinzător, autorul pachetului a scris această documentație.
O problemă delicată legată de personalizarea liniilor header și footer este să includeți în ele lucruri de genul denumirilor de secțiuni sau de capitole. LaTeX realizează acest lucru printr-o abordare în două stadii. În definiția header-ului și footer-ului, folosiți comenzile \rightmark
și \leftmark
pentru a reprezenta antetele secțiunii, respectiv capitolului curente. Valorile generate de aceste două comenzi sunt suprascrise oricând se procesează o comandă care generează un capitol sau o secțiune nouă. Pentru mai multă flexibilitate, comanda \chapter
și comenzile asemănătoare nu redefinesc valorile generate de \rightmark
și \leftmark
. Mai sunt câteva comenzi (\chaptermark
, \sectionmark
, sau \subsectionmark
) responsabile for redefinirea valorilor \rightmark
și \leftmark
.
Dacă vreți să schimbați aspectul denumirii capitolului în linia header-ului, trebuie doar să "reînnoiți" comanda \chaptermark
.
Pentru început, adăugați următoarele linii la preambul:
\usepackage{fancyhdr}
\setlength{\headheight}{15.2pt}
\pagestyle{fancy}
A doua linie va preveni un avertisment LaTeX. Atât header-ul, cât și footer-ul cuprind trei elemente fiecare, în funcție de poziția orizontală (stângă, centrală sau dreaptă). Pentru a seta aceste valori, aveți la dispoziție următoarele comenzi:
\lhead[lh-even]{lh-odd} | \lfoot[lf-even]{lf-odd} |
\chead[ch-even]{ch-odd} | \cfoot[cf-even]{cf-odd} |
\rhead[rh-even]{rh-odd} | \rfoot[rf-even]{rf-odd} |
Din fericire, comportamentul comenzilor de mai sus este destul de intuitiv: dacă conțin cuvântul head, afectează header-ul etc, și evident, l, c și r înseamnă stâng (left), central, respectiv drept (right). Documentele pot fi ori cu o față (one-sided), ori față-verso (two-sided). Articolele sunt implicit cu o față, cărțile față-verso. Documentele față-verso fac deosebire între fața (pagina) stângă (pară) și dreaptă (impară), în vreme ce documentele cu o față nu fac asemenea diferențieri.
Atenție: dacă dați un text foarte mare în două "părți" diferite numai pentru footer sau numai pentru header, ați putea să vedeți text suprapus. Puteți folosi ca argumente câteva comenzi speciale:
\thepage | numărul paginii curente |
\leftmark | numele capitolului curent afișat sub forma "CAPITOLUL 3. ACESTA E TITLUL CAPITOLULUI" |
\rightmark | numele secțiunii curente afișate sub forma "1.6. ACESTA ESTE TITLUL SECȚIUNII" |
\thesection | numărul secțiunii curente |
Notați că \leftmark
și \rightmark
scriu numele cu litere mari, indiferent care era formatarea textului. Dacă vreți să afișați numele efectiv al capitolului fără a-l scrie cu litere mari, utilizați următoarele comenzi:
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{#1}{}}
Acum \leftmark
și \rightmark
vor afișa numele de capitol și secțiune, fără număr și fără să afecteze formatarea. Mai mult, cu comenzile următoare puteți defini grosimea liniilor decorative atât pentru header, cât și pentru footer:
\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0pt}
Prima linie este pentru header, a doua pentru footer. Setarea la valoarea zero înseamnă că nu va fi afișată nicio linie.
Iată un exemplu:
\fancyhf{}
\lhead{Andrew Roberts}
\rhead{\today}
\rfoot{\thepage}
Este deseori necesar să anulați orice valori implicite sau o definiție de stil anterioară, lucru pe care îl face prima linie din exemplul de mai sus. Comenzile sunt o interfață alternativă la personalizarea header-ului/footer-ului oferită de fancyhdr, și astfel, dacă nu îi dați niciun argument, se presupune că vreți să resetați toate valorile implicite.
Rezultatul acestor comenzi va pune numele în colțul stâng superior, data curentă în colțul drept de sus și numărul paginii curente în partea inferioară a paginii la dreapta. Chiar dacă documentul era față-verso, deoarece nu a fost furnizat niciun text opțional pentru paginile pare, stilul rezultat va fi folosit pentru toate paginile.
Această abordare are o deficiență serioasă: unele pagini, cum este pagina titlu sau paginile de la începutul fiecărui capitol nu au header sau footer, însă cu codul prezentat mai devreme fiecare pagină va avea același aspect. Există un mod de a rezolva această problemă: folosiți stilul fancyplain. Astfel, utilizați comanda \fancyplain{...}{...}
în \lhead{...}
etc.
Când LaTeX vrea să creeze o pagină cu un stil liber (empty), va insera primul argument al fancyplain
, în toate celelalte cazuri va folosi al doilea argument. Așadar, o versiune îmbunătățită a codului dinainte ar fi:
\pagestyle{fancyplain}
\fancyhf{}
\lhead{\fancyplain{}{Andrew Roberts}}
\rhead{\fancyplain{}{\today}}
\rfoot{\fancyplain{}{\thepage}}
Are același comportament ca și codul anterior, însă veți obține pagini fără header și footer pentru titlu și la începutul capitolelor.
În cazul paginilor față-verso, se obișnuiește să oglindiți stilul paginilor opuse, aveți tendința să gândiți în termeni de interior și exterior. Așadar, același exemplu ca cel de mai sus pentru paginile față-verso ar fi:
\lhead[Andrew Roberts]{}
\rhead[]{Andrew Roberts}
\lhead[]{\today}
\rhead[\today]{}
\lfoot[\thepage]{}
\rfoot[]{\thepage}
Asta spune efectiv că numele este în partea superioară exterioară, data curentă este în partea superioară interioară, iar numărul paginii curente este în partea de jos exterioară. Puteți utiliza și aici comanda fancyplain
pentru documentele față-verso.
Ca exemplu, iată codul complet al unei configurații de bază pe care o puteți utiliza pentru un document real:
\usepackage{fancyhdr}
\setlength{\headheight}{15pt}
\pagestyle{fancyplain}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\lhead{\fancyplain{}{\thepage}}
\chead{}
\rhead{\fancyplain{}{\textit{\leftmark}}}
\lfoot{}
\cfoot{}
\rfoot{}
Notă: Dacă vreți să folosiți clasa articol față-verso (two-side), folosiți \documentclass[twoside]{article}
.
O altă abordare cu fancyhdr
Dacă vreți stiluri diferite pentru paginile pare și impare, mai este o cale, tot cu ajutorul fancyhdr. Începeți din nou cu:
\fancyhf{}
Această comandă va șterge configurația curentă de antete, astfel încât puteți implementa alta. Acum puteți crea ce vreți cu ajutorul comenzii \fancyhead
pentru header și \fancyfoot pentru footer. Acestea merg la fel, așa că o vom explica numai pe prima. Sintaxa este:
\fancyhead[selectori]{output dorit}
Selectorii sunt următorii:
E | pagină pară (even) |
O | pagină impară (odd) |
L | partea stângă (left) |
C | centrat |
R | partea dreaptă (right) |
astfel încât CE se va referi la centrul paginilor pare, iar RO la partea dreaptă a paginilor impare. Aceiași selectori se folosesc pentru \fancyfoot
. Puteți utiliza mai mulți selectori separați prin virgulă. Iată un exemplu:
\fancyhead[CE]{Numele autorului}
\fancyhead[CO]{\today}
\fancyfoot[LE,RO]{\thepage}
Asta va afișa numele autorului în centrul header-ului pe paginile pare, data curentă în centrul header-ului pe paginile impare și numărul paginii curente în partea stângă pe paginile pare și în dreapta footer-ului pe paginile impare.
În cele urmă, pentru ca paginile de la începutul oricărui capitol să fie cu adevărat plain, puteți redefini stilul plain, spre exemplu, pentru a beneficia de o astfel de pagină când doriți. Comanda de utilizat aici este \fancypagestyle{plain}{...}
, iar argumentul poate conține toate comenzile explicate mai devreme. Un exemplu în acest sens este următorul:
\fancypagestyle{plain}{ %
\fancyhf{} % înlătură toate valorile implicite
\renewcommand{\headrulewidth}{0pt} % înlătură
\renewcommand{\footrulewidth}{0pt}} % și liniile
În sfârșit, iată codul complet al unui stil posibil pe care l-ați putea folosi pentru un document față-verso:
\usepackage{fancyhdr}
\setlength{\headheight}{15pt}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{#1}{}}
\fancyhf{}
\fancyhead[LE,RO]{\thepage}
\fancyhead[RE]{\textit{\nouppercase{\leftmark}}}
\fancyhead[LO]{\textit{\nouppercase{\rightmark}}}
\fancypagestyle{plain}{ %
\fancyhf{} % înlătură toate valorile implicite
\renewcommand{\headrulewidth}{0pt} % înlătură
\renewcommand{\footrulewidth}{0pt}} % și liniile
Pagina n din m
Unora le place să pună numărul paginii curente în contextul documentului. LaTeX oferă acces numai la numărul paginii curente. Totuși, puteți folosi pachetul lastpage pentru a afla numărul total de pagini, în felul următor:
\usepackage{lastpage}
...
\cfoot{\thepage\ din \pageref{LastPage}}
Notați literele mari. De asemenea, adăugați un backslash după comanda \thepage
pentru a asigura un spațiu adecvat între numărul paginii și 'din'. Și rețineți, când utilizați referințe, că trebuie să rulați comanda de compilare LaTeX încă o dată pentru a rezolva toate referințele.
Pagini cu mai multe coloane
Se obișnuiește ca articolele și documentele pregătitoare ale conferințelor să fie formatate cu două coloane de text. Cu toate acestea, astfel de publicații au adesea propriile clase de documente, care implementează automat acest format, fără a fi nevoie de o formatare explicită adițională. Este foarte ușor să formatezi o pagină în felul acesta. Dacă utilizați o clasă standard de documente LaTeX, atunci puteți pasa pur și simplu argumentul opțional twocolumn clasei de documente: \documentclass[twocolumn]{article}
, lucru care va da efectul dorit.
Deși acest artificiu va da rezultatul dorit în 9 situații din 10, este binecunoscut faptul că această abordare are multe limitări și că pachetul multicol este mult mai util pentru gestionarea coloanelor multiple. Această abordare prezintă mai multe avantaje:
- Poate oferi suport pentru cel mult 10 coloane.
- Implementează un mediu multicols, prin intermediul căruia puteți specifica numărul de coloane într-un document.
- În plus, acest mediu poate fi inclus în alte medii, cum este
figure
. Multicol
generează coloane echilibrate, adică de lățime aproximativ egală.- Puteți modifica liniile verticale dintre coloane.
- Mediile coloanele pot fi ușor adaptate local sau global.
Acest mediu nu oferă suport complet pentru elementele flotante. Merge cum trebuie numai dacă folosiți formele stelate ale comenzilor pentru aceste elemente (de exemplu, \begin{figure*}
), ceea ce face elementele flotante să se extindă de-a lungul tuturor coloanelor. Acest lucru nu este deosebit de problematic, deoarece elementele flotante de aceeași dimensiune pot fi prea mici pentru o coloană, și probabil că ați dori să le extindeți oricum.
Pentru a crea un layout tipic pentru două coloane:
\begin{multicols}{2}
foarte mult text
\end{multicols}
Parametrul \columnseprule
păstrează lățimea liniilor verticale. Implicit, liniile sunt omise dacă acest parametru este setat la 0pt. Dați următoarea comandă înainte de a începe acest mediu:
\setlength{\columnseprule}{1pt}
Aceasta va trasa o linie subțire de 1pt lățime. O linie groasă nu ar arăta prea bine, cu toate acestea, aveți libertatea să specificați orice lățime doriți. De asemenea, pentru a schimba spațiul orizontal între coloane (valoarea implicită este setată la 10pt, care este destul de mică), trebuie să modificați parametrul \columnsep
:
\setlength{\columnsep}{20pt}
Formatarea manuală a paginii
Ar putea să fie cazuri, mai ales în documentele foarte lungi, cum sunt cărțile, în care Latex nu va formata cum trebuie sfârșitul paginilor. Ar putea fi necesar, de aceea, să faceți această formatare manual. Desigur, ar trebui să faceți asta chiar la sfârșitul documentului, după ce ați terminat de scris tot conținutul. Latex oferă următoarele comenzi:
\newline | Întrerupe linia în dreptul comenzii. |
\\ | Întrerupe linia în dreptul comenzii, este o versiune mai scurtă a comenzii dinainte, însă face același lucru |
\\* | Întrerupe linia în dreptul comenzii și în plus împiedică trecerea la pagina următoare după întreruperea forțată a liniei curente |
\linebreak[număr] | Întrerupe linia în dreptul comenzii. Numărul furnizat ca argument reprezintă prioritatea comenzii în intervalul de la 0 (comanda va fi ignorată) la 4 (execută comanda oricum). LaTeX va încerca să producă cele mai bune întreruperi de linii posibile, răspunzând standardelor sale înalte. Dacă nu poate, va decide dacă va include sau nu capătul de linie în funcție de prioritatea specificată. |
\newpage | Sfârșește pagina curentă și începe una nouă. |
\pagebreak[număr] | Sfârșește pagina curentă în dreptul comenzii. Argumentul opțional număr setează prioritatea într-un interval de la 0 la 4. |
\nopagebreak[număr] | Împiedică întreruperea paginii în dreptul comenzii. Argumentul opțional număr setează prioritatea într-un interval de la 0 la 4. |
\clearpage | Sfârșește pagina curentă și afișează orice elemente flotante în rezultat. |
Văduve și orfani
În cărțile publicate nu este de dorit să aveți o singură linie la începutul sau la sfârșitul unei pagini. Astfel de situații sunt denumite 'văduve' (widows) și 'orfani' (orphans). În mod normal, se pot întâlni astfel de probleme în documentele LaTeX. Puteți încerca să le rezolvați prin formatare manuală, însă există și o soluție automată.
LaTeX are un parametru pentru 'penalitate' în ce privește văduvele și orfanii ('club lines' în terminologia LaTeX). În cazul unei penalități mai mari, LaTeX va încerca mai mult să evite văduvele și orfanii. Puteți încerca să măriți aceste penalități punând următoarele comenzi în preambulul documentului:
\widowpenalty=300
\clubpenalty=300
Dacă asta nu vă ajută, puteți încerca să măriți aceste valori și mai mult, până la un maxim de 10000. Totuși, nu este recomandat să setați acești parametri la o valoare prea mare, deoarece o valoare de 10000 interzice văduvele și orfanii, ceea ce ar putea avea drept urmare un comportament ciudat.
Este bine de asemenea să setați spațiul dintre paragrafe:
\setlength{\parskip}{3ex plus 2ex minus 2ex}
Rezumat
Acest tutorial este destul de scurt, în mare parte datorită faptului că utilizatorii LaTeX se concentrează asupra conținutului, lăsând în seama sistemului LaTeX (și/sau altor publicații care au dezvoltat clase de documente) să decidă asupra celei mai bune prezentări. Pasul următor pentru a obține mai mult control asupra formatului paginii este reprezentat de realizarea propriei clase de documente. Din păcate, nu este o sarcină ușoară, și este în general mai bine să fie lăsată pe seama profesioniștilor!
Această pagină foloseşte materiale din cartea lui Andy Roberts, Getting to grips with Latex, cu permisiunea autorului.
Matematică
Una din forțele cele mai motivatoare pentru Donald Knuth când a început să dezvolte sistemul TeX inițial a fost să creeze ceva care să permită construcția simplă a formulelor matematice și să arate bine în documentul final. Faptul că el a reușit a fost cel mai probabil motivul pentru care TeX (și mai târziu, LaTeX) a devenit atât de popular în comunitatea științifică. Indiferent de trecutul acestora, redactarea formulelor matematice este unul din punctele forte ale sistemului LaTeX. Este de asemenea un subiect vast datorită omniprezenței notațiilor matematice.
Dacă scrieți un document care necesită numai câteva formule matematice simple, atunci puteți folosi în general plain LaTeX: vă va pune la dispoziție cele mai multe instrumente de care aveți nevoie. Totuși, dacă scrieți un document științific ce conține formule numeroase și complicate, se recomandă să folosiți pachetul amsmath sau mathtools (care include automat pachetul amsmath), care introduc mai multe comenzi noi, ce oferă mai multe facilități decât plain LaTeX. Pentru a include aceste pachete, scrieți:
|
sau
|
în preambulul documentului.
Mediile matematice
LaTeX trebuie să știe dinainte că textul ce urmează conține elemente matematice. Asta deoarece LaTeX formatează notațiile matematice diferit de textul normal. De aceea, în acest scop au fost dezvoltate medii speciale. Ele pot fi împărțite în două categorii în funcție de modul lor de prezentare:
- text — formulele din modul text sunt afișate in-line, adică în corpul de text în care sunt declarate. Spre exemplu, pot spune că a + a = 2a în cadrul acestei fraze.
- displayed — formulele în modul de afișare (displayed) sunt separate de corpul principal de text.
Întrucât formulele matematice necesită medii speciale, există evident nume corespunzătoare de medii folosite în modul obișnuit. Spre deosebire de cele mai multe alte medii, totuși, oferă câteva scurtături utile pentru a declara formulele. Tabelul următor rezumă toate acestea:
Tip | Mediu | Scurtătură LaTeX | Scurtătură TeX |
---|---|---|---|
Text | \begin{math}...\end{math}
|
\(...\)
|
$...$
|
Displayed | \begin{displaymath}...\end{displaymath} sau
|
\[...\]
|
$$...$$
|
Notă: Utilizarea $$...$$
ar trebui evitată, întrucât poate cauza probleme, mai ales în cazul macrocomenzilor AMS-LaTeX. În plus, dacă apare vreo problemă, s-ar putea ca mesajele de eroare să nu vă fie de niciun ajutor.
Mai există un mediu ce poate fi folosit pentru tipul displayed: equation. Diferența dintre acesta și displaymath este că equation adaugă numere secvențiale la ecuații.
Dacă tipărești textul în mod normal, se spune că ești în modul text, în timp ce dacă scrii în unul din mediile matematice, se zice că ești în modul matematic, care prezintă câteva diferențe în comparație cu modul text:
- Cele mai multe spații și capete de linie nu au nicio semnificație specială, de vreme ce toate spațiile fie sunt derivate logic din expresii matematice, fie trebuiesc specificate cu comenzi speciale precum
\quad
- Liniile libere nu sunt permise. Numai un paragraf per formulă.
- Fiecare literă este considerată numele unei variabile și va fi tipărită ca atare. Dacă vreți să tipăriți text normal într-o formulă (font și spațiere normale), atunci trebuie să introduceți textul folosind comenzi specifice.
Inserarea de cod matematic scris în modul "displayed" în blocuri de text
Pentru ca unii operatori, cum sunt \lim
sau \sum
, să fie afișați corect într-un mediu matematic (ca $......$
), poate fi convenabil câteodată să adăugați comanda \displaystyle
în interiorul mediului. Dacă faceți asta, linia s-ar putea să devină mai înaltă, însă va face ca exponenții și indecșii să fie afișați corect pentru unii operatori matematici.
Simboluri
Matematica are o mulțime de simboluri! Dacă există un aspect dificil legat de matematica implementată în LaTeX, acesta este să încercați să rețineți comenzile matematice. Sunt desigur un set de simboluri ce pot fi accesate direct de la tastatură:
+ - = ! / ( ) [ ] < > | ' :
Pe lângă cele listate mai sus, trebuie să dați comenzi specifice pentru a genera simbolurile dorite. Și mai sunt o mulțime de litere din greaca veche, simboluri pentru mulțimi și relaționale, săgeți, operatori binari, etc. Spre exemplu:
|
|
Din fericire, există un program ce poate simplifica în mare măsură căutarea comenzii pentru un simbol specific. Uitați-vă peste Detexify în secțiunea legături externe de mai jos. De asemenea, programele cu interfață grafică pentru LaTeX, cum sunt TexMaker sau Kile, au meniuri și butoane care permit utilizatorului să găsească ușor simbolurile căutate.
Litere din greaca veche
În matematică se folosesc deseori litere din greaca veche, iar acestea sunt foarte ușor de tipărit în modul matematic. Tot ce trebuie să faceți este să scrieți explicit denumirea literei grecești respective în engleză după un backslash: dacă prima literă a denumirii este mică, veți obține litera grecească mică, iar dacă prima (și numai prima) literă este mare, veți obține litera grecească mare. Notați că unele litere grecești mari arată ca cele latinești, așa că nu sunt puse la dispoziție de LaTeX (spre exemplu, Alpha și Beta mari sunt pur și simplu "A", respectiv "B"). Epsilon, theta, phi, pi, rho și sigma mici au două versiuni diferite în LaTeX. Varianta alternativă are "var" înaintea denumirii literei:
|
|
Operatori
Un operator este o funcție scrisă sub forma unui cuvânt, spre exemplu: funcții trigonometrice (sin, cos, tan), logaritmi și funcții exponențiale (log, exp). LaTeX are multe dintre acestea definite sub formă de comenzi:
|
|
Pentru anumiți operatori de genul limitelor, indicele este așezat sub operator:
|
|
Pentru operatorul modular sunt două comenzi: \bmod
și \pmod
:
|
|
|
|
Pentru a utiliza operatori care nu sunt predefiniți, de genul argmax, vezi Operatori personalizați.
Puteri și indici
Puterile și indicii sunt echivalente cu conceptele similare din modul text. Semnul de omisiune (^
) se folosește pentru a scrie sub formă de exponent, iar semnul de subliniere (_
) are rolul de a scrie ca indice. Dacă se ridică la putere sau se scrie sub formă de indice mai mult de un caracter, acestea ar trebui grupate cu ajutorul unor acolade: ({
și }
).
|
|
Un underscore (_
) poate fi utilizat cu o bară verticală () pentru a denota evaluarea cu ajutorul unei notații de indici în matematică:
|
|
Fracții și binomi
Puteți crea o fracție în LaTeX cu ajutorul comenzii \frac{numărător}{numitor}
. De asemenea, coeficientul binomial (choose function) poate fi scris cu ajutorul comenzii \binom
[1]:
|
|
Puteți folosi de asemenea comanda \choose
fără pachetul amsmath:
|
|
Puteți scrie fracții în cadrul altor fracții:
|
|
Notați că atunci când apare în cadrul altei fracții, sau încorporată în text, , o fracție este în mod vizibil mai mică decât în formatul matematic de afișare (displayed). Comenzile \tfrac
și \dfrac
[1] forțează utilizarea stilurilor respective (în mod similar, comenzile \tbinom
și \dbinom
fac același lucru pentru coeficienții binomiali).
Un alt mod de a scrie fracții constă în utilizarea comenzii \over
fără pachetului amsmath:
|
|
Pentru fracții relativ simple, poate fi mai estetic să folosiți puteri și indici:
|
|
Dacă îi folosiți în tot documentul, se recomandă utilizarea pachetului xfrac.
Acest pachet oferă comanda \sfrac
pentru a crea fracții înclinate. Utilizare:
|
Altfel, pachetul nicefrac oferă comanda \nicefrac
, a cărei utilizare este similară cu \sfrac
.
Fracții continue
Fracțiile continue ar trebui să fie scrise cu ajutorul comenzii \cfrac
[1]:
|
|
Rădăcini
Comanda \sqrt
creează un radical în jurul unei expresii. Aceasta acceptă un argument opțional specificat în paranteze drepte ([
și ]
) pentru a schimba gradul radicalului:
|
|
|
|
Unii oameni preferă să scrie radicalul ca "închizându-se" peste conținut. Această metodă scoate în evidență ce este sub radical. Acest stil de redactare în mod normal nu este folosit când scrieți la calculator, dar dacă încă mai vreți să schimbați formatul radicalului, LaTeX vă oferă această posibilitate. Adăugați pur și simplu codul următor în preambulul documentului:
|
Acest cod TeX mai întâi redenumește comanda \sqrt
ca fiind \oldsqrt
, apoi redefinește \sqrt
în funcție de comanda veche, adăugând ceva în plus. Noul radical poate fi văzut în imaginea din dreapta, în comparație cu cel vechi. Din păcate acest cod nu merge cu un grad superior al rădăcinii: dacă încercați să scrieți sub forma \sqrt[b]{a}
după ce ați adăugat codul de mai sus, veți obține un rezultat greșit ([b] înăuntrul radicalului). Cu alte cuvinte, puteți redefini radicalul în felul acesta numai dacă nu aveți de gând să folosiți argumentul opțional al comenzii în întregul document.
Sume și integrale
Comenzile \sum
și \int
inserează simbolurile pentru sumă, respectiv integrală, cu limite specificate de semnul de omisiune (^
) și underscore (_
):
|
|
|
|
Sunt multe alte comenzi "mari" ce operează într-o manieră similară:
\sum |
\prod |
\coprod |
|||||
\bigoplus |
\bigotimes |
\bigodot |
|||||
\bigcup |
\bigcap |
\biguplus |
|||||
\bigsqcup |
\bigvee |
\bigwedge |
|||||
\int |
\oint |
\iint [1] |
|||||
\iiint [1] |
\iiiint [1] |
\idotsint [1] |
Pentru mai multe simboluri legate de integrale, inclusiv cele care nu sunt incluse de fontul implicit Computer Modern, încercați pachetul esint.
Comanda \substack
[1] permite utilizarea \\
pentru a scrie limitele pe mai multe linii:
|
|
Dacă vreți ca limitele unei integrale să fie specificate deasupra și sub simbolul integralei (ca în cazul sumei), folosiți comanda \limits
:
|
|
Totuși, dacă vreți ca acest stil să se aplice la TOATE integralele din document, este de preferat să specificați opțiunea intlimits la încărcarea pachetului amsmath:
|
Exponenții și indicii folosiți în alte contexte, ca și alți parametri din pachetul amsmath legați de aceștia sunt descriși în capitolul Matematică avansată.
Pentru integrale mai mari, puteți utiliza declarații personale, sau puteți folosi pachetul bigints[2].
Paranteze drepte, acolade și delimitatori
În capitolul Matematică avansată se descrie cum puteți folosi acolade în ecuații ce se întind pe mai multe linii.
Utilizarea delimitatorilor de genul parantezelor drepte capătă o importanță deosebită când aveți de-a face cu ecuații ceva mai complicate. Fără ei, formulele pot deveni ambigue. De asemenea, tipuri speciale de structuri matematice, cum sunt matricile, se bazează în mod tipic pe delimitatori pentru a fi cuprinse într-un tot unitar.
LaTeX vă pune la dispoziție o serie de delimitatori:
|
|
Determinarea automată a dimensiunilor
Foarte des componentele formulelor matematice vor avea dimensiuni diferite, caz în care delimitatorii ce înconjoară expresiile ar trebui să varieze în mod corespunzător. Acest lucru se poate face automat cu ajutorul comenzilor \left
și \right
. Oricare dintre delimitatorii menționați mai devreme poate fi folosit în combinație cu acestea:
|
|
Dacă este nevoie doar de un delimitator într-o parte a unei expresii, atunci în partea cealaltă trebuie să folosiți un delimitator invizibil, denotat de un punct, după cum se vede în exemplul următor:
|
|
Determinarea manuală a dimensiunilor
În anumite cazuri, dimensiunea produsă automat de comenzile \left
și \right
poate să nu fie cea dorită, sau poate vreți pur și simplu un control mai fin asupra mărimii delimitatorilor. În cazul acesta, puteți utiliza modificatorii \big
, \Big
, \bigg
și \Bigg
:
|
|
Matrici și vectori
O matrice simplă poate fi creată cu ajutorul mediului matrix[1]: la fel ca pentru alte structuri tabelare, intrările sunt specificate de linii, coloanele fiind separate cu un ampersand (&
), trecerea la o linie nouă făcându-se cu un dublu backslash (\\
)
|
|
Pentru a specifica alinierea coloanelor în tabel, folosiți versiunea stelată[3]:
|
|
Alinierea implicită este c, însă poate fi orice tip de coloană valid în mediul array.
Totuși, matricile sunt de obicei încadrate de delimitatori de un anume tip, și deși puteți folosi comenzile \left și \right, există multe alte medii predefinite ce includ automat delimitatori:
Mediu | Delimitator | Note |
---|---|---|
pmatrix[1] | implicit centrează coloanele | |
pmatrix*[3] | permite specificarea alinierii coloanelor în parametrul opțional | |
bmatrix[1] | implicit centrează coloanele | |
bmatrix*[3] | permite specificarea alinierii coloanelor în parametrul opțional | |
Bmatrix[1] | implicit centrează coloanele | |
Bmatrix*[3] | permite specificarea alinierii coloanelor în parametrul opțional | |
vmatrix[1] | implicit centrează coloanele | |
vmatrix*[3] | permite specificarea alinierii coloanelor în parametrul opțional | |
Vmatrix[1] | implicit centrează coloanele | |
Vmatrix*[3] | permite specificarea alinierii coloanelor în parametrul opțional |
Când scrieți matrici de dimensiuni arbitrare, se obișnuiește să folosiți triplete de puncte (puncte de suspensie) orizontale, verticale și diagonale pentru a umple anumite coloane și linii. Acestea pot fi specificate cu ajutorul comenzilor \cdots
, \vdots
, respectiv \ddots
:
|
|
În unele cazuri, poate veți dori să aveți un control mai fin asupra alinierii la nivel de coloană, sau să inserați linii între coloane sau rânduri. Puteți face asta cu ajutorul mediului array, care este în esență o versiune în modul matematic a mediului tabular și care necesită specificarea în avans a coloanelor:
|
|
Poate ați observat că mediile din clasa matriceală AMS nu lasă destul spațiu vertical când se folosesc împreună cu fracții, ducând la rezultate similare cu:
Pentru a rezolva această problemă, adăugați un spațiu vertical adițional cu parametrul opțional al comenzii \\
:
|
|
Dacă vă trebuie "margini" sau "indecși" la matrice, plain TeX oferă macroul \bordermatrix
:
|
Matrici inserate în text
Pentru a insera o matrice mică și a nu spori spațierea liniei ce o conține, folosiți mediul smallmatrix:
|
Adăugarea de text în ecuații
Mediul matematic diferă de mediul text prin reprezentarea textului. Iată un exemplu în care încercăm să reprezentăm text în mediul matematic:
|
|
Sunt două probleme demne de menționat aici: nu sunt spații între cuvinte sau numere, iar literele sunt scrise cu caractere italice și mai spațiate decât ar fi normal. Ambele probleme sunt simple artefacte ale modului matematic, care apar în orice expresie matematică: spațiile sunt ignorate (LaTeX spațiază codul matematic potrivit cu propriile sale reguli) și fiecare caracter este un element separat (astfel că nu sunt așezate așa de apropiat ca în modul text).
Sunt mai multe moduri în care putem adăuga text în mod corespunzător în mediul matematic. Soluția cea mai întâlnită este să scrieți textul ca argument al comenzii \text{...}
[1] (o comandă similară este \mbox{...}
, deși aceasta generează probleme cu indicii și are un nume mai puțin descriptiv). Haideți să vedem ce se întâmplă când adaptăm codul ecuației de mai sus în acest fel:
|
|
Textul arată mai bine. Cu toate acestea, nu sunt spații între numere și cuvinte. Din păcate, trebuie să adăugați astfel de spații manual. Sunt mai multe căi prin care puteți adăuga spații între elementele matematice, însă de dragul simplității puteți adăuga literal caracterul spațiu în corpul de \text
afectat (chiar înainte de text):
|
|
Text formatat
Comanda \text
este acceptabilă în cele mai multe situații. Totuși, există o alternativă care oferă ceva mai multă flexibilitate. Poate vă aduceți aminte de comenzile de formatare a fonturilor, cum sunt \textrm
, \textit
, \textbf
, etc. Aceste comenzi formatează argumentul în mod corespunzător, spre exemplu, \textbf{text aldin}
dă text aldin. Ele sunt la fel de valide într-un mediu matematic pentru a include text. Avantajul suplimentar aici este că vă permit un control mai bun asupra formatării fontului comparativ cu textul standard obținut cu comanda \text
.
|
|
Formatarea simbolurilor matematice
Deci putem formata text, ce ziceți de formatarea matematicii? Sunt mai multe comenzi de formatare foarte similare cu cele pentru fonturi folosite mai devreme, cu excepția faptului că sunt menite specific pentru textul din modul matematic[4]:
Comandă LaTeX | Exemplu | Descriere | Utilizare |
---|---|---|---|
\mathnormal{…}
|
fontul matematic implicit | cele mai multe notații matematice | |
\mathrm{…}
|
fontul implicit sau normal, neînclinat | unități de măsură, funcții cu o lungime de un cuvânt | |
\mathit{…}
|
font italic | ||
\mathbf{…}
|
font aldin | vectori | |
\mathsf{…}
|
Sans-serif | ||
\mathtt{…}
|
ABCDEFabcdef123456 | Font Monospace (cu lățime fixă) | |
\mathcal{…}
|
Caligrafic (numai cu litere mari) | Folosit adesea pentru scheme și categorii | |
\mathfrak{…} [5]
|
Fraktur | Font aproape standard pentru algebre Lie | |
\mathbb{…} [4]
|
Blackboard bold | Folosit pentru a denota mulțimi speciale (de exemplu, numere reale) | |
\mathscr{…} [6]
|
Script |
Comenzile de formatare matematică pot include întreaga ecuație, și nu doar elementele de text: ele formatează numai litere, numere și literele grecești mari, ignorând restul sintaxei matematice.
Pentru a îngroșa literele grecești mici sau alte simboluri, folosiți comanda \boldsymbol
[1]; aceasta merge numai dacă există o versiune aldină (bold) a simbolului din fontul curent. Ca ultimă soluție, există comanda \pmb
[1] (poor mans bold): tipărește mai multe versiuni ale caracterului, puțin diferite unele de altele:
|
|
Pentru a modifica mărimea fonturilor în modul matematic, vezi Modificarea dimensiunii fontului.
Accente
Ce faceți când ați terminat simbolurile și fonturile? Pasul următor constă în a folosi accente:
a' |
a'' |
a''' |
a'''' |
||||||||||
\hat{a} |
\bar{a} |
\overline{aaa} |
\check{a} |
\tilde{a} |
|||||||||
\grave{a} |
\acute{a} |
\breve{a} |
\vec{a} |
||||||||||
\dot{a} |
\ddot{a} |
\dddot{a} [1] |
\ddddot{a} [1] |
||||||||||
\not{a} |
\mathring{a} |
\widehat{AAA} |
\widetilde{AAA} |
Semnele plus și minus
LaTeX conferă semnelor + și − două semnificații posibile. Cea mai întâlnită este de operator binar. Când două elemente matematice apar în ambele părți ale semnului, se presupune că este operator binar, și, ca atare, alocă un anumit spațiu în fiecare parte a semnului. Cealaltă semnificație este de desemnare a semnului unui număr (pozitiv sau negativ). În acest sens, în matematică se folosește mai mult semnul − (pentru a desemna numere negative), întrucât un număr se presupune că este pozitiv dacă nu are semn. Semnul unui număr trebuie în mod normal să apară lângă număr (fără spațiu). Dacă puneți un semn + sau − fără nimic înaintea lui, dar vreți totuși să fie tratat ca un operator binar, puteți adăuga un caracter invizibil înaintea operatorului cu ajutorul {}
. Acest lucru poate fi util dacă scrieți formule care se întind pe mai multe linii, iar o linie nouă ar putea începe cu = sau +, spre exemplu, și atunci puteți rezolva unele probleme de aliniere prin adăugarea caracterului invizibil acolo unde este necesar.
Controlarea spațierii orizontale
LaTeX este evident destul de bun la formatarea matematicii — acesta a fost unul din scopurile principale ale sistemului Tex de bază pe care l-a extins LaTeX. Totuși, nu este întotdeauna foarte bun la interpretarea cu precizie a formulele matematice. Trebuie să facă anumite prezumții în cazul expresiilor ambigue. Rezultatul tinde să fie o spațiere orizontală puțin inestetică. În asemenea situații, outputul este încă satisfăcător, și totuși, orice perfecționist va dori fără îndoială să-și ajusteze formulele pentru a asigura o spațiere corectă. Aceste ajustări sunt în general de mare finețe.
Sunt și alte situații în care LaTeX dă un output corespunzător, însă doriți să mai adăugați ceva spațiu, poate pentru a adăuga un anume tip de comentariu. Spre exemplu, în exemplul următor, este preferabil să vă asigurați că există destul spațiu între elementele matematice și text.
|
|
(Notați că acest exemplu poate fi exprimat mai elegant cu ajutorul mediului cases oferit de pachetul amsmath, care este descris în capitolul Matematică avansată).
LaTeX are două comenzi ce pot fi folosite oriunde în document (nu doar într-un mediu matematic) pentru a insera un anumit spațiu orizontal. Acestea sunt \quad
și \qquad
.
Un \quad
este un spațiu egal cu dimensiunea fontului curent. Astfel, dacă utilizați un font de 11pt, atunci spațiul furnizat de comanda \quad
va fi tot de 11pt (orizontal, desigur). Comanda \qquad
dă dublul acestei valori. După cum puteți vedea în codul din exemplul anterior, am folosit spații \quad
pentru a separa elementele matematice de text.
Bine, să revenim la ajustarea de finețe menționată la începutul documentului. Un exemplu bun l-ar constitui afișarea integralei nedefinite de y în funcție de x:
Dacă vreți să încercați asta în LaTeX, puteți scrie:
|
|
Totuși, asta nu dă rezultatul corect. LaTeX nu ține cont de spațiul liber lăsat în cod pentru a semnifica faptul că y și dx sunt entități independente. În schimb, LaTeX le grupează laolaltă. Comanda \quad
ar adăuga prea mult spațiu aici — în asemenea situații ne trebuie spații spații mai mici, oferite de LaTeX prin intermediul următoarelor comenzi:
Comandă | Descriere | Dimensiune |
---|---|---|
\,
|
spațiu mic | 3/18 dintr-un quad |
\:
|
spațiu mediu | 4/18 dintr-un quad |
\;
|
spațiu mare | 5/18 dintr-un quad |
\!
|
spațiu negativ | -3/18 dintr-un quad |
Notă: puteți folosi mai multe comenzi împreună sau aceeași comandă de mai multe ori în același loc pentru a obține mai mult spațiu, dacă este necesar.
Așadar, pentru a rectifica problema curentă:
|
|
|
|
|
|
Spațiul negativ poate părea nepotrivit, totuși, n-ar fi acolo dacă nu ar avea vreun rost! Considerați exemplul următor:
|
|
Expresia matriceală pentru reprezentarea coeficienților binomiali de mai sus are prea mult spațiu între paranteze și conținut. Această situație poate fi ușor corectată prin adăugarea de spații negative după paranteza stângă și înainte de paranteza dreaptă:
|
|
În orice caz, adăugarea manuală de spații ar trebui evitată oricând este posibil: face codul sursă mai complex și este împotriva principiilor de bază ale abordării What You See is What You Mean — Vezi ceea ce vrei să spui, specifică LaTeX. Calea cea mai bună de urmat constă în definirea unor comenzi care să aibă spațierea dorită. Apoi, când folosiți aceste comenzi, nu mai trebuie să adăugați nici un spațiu. Mai târziu, dacă vă răzgândiți în legătură cu lungimea spațiului orizontal, puteți ușor să-l schimbați, modificând comanda definită mai înainte. Să zicem că vreți ca d-ul din dx-ul unei integrale să fie scris cu font roman și să fie la o distanță mică de restul textului. Dacă vreți să scrieți o integrală cum este \int x \; \mathrm{d} x
, atunci puteți defini o comandă de genul:
|
în preambulul documentului. Am ales numele \dd
pur și simplu pentru că amintește de "d"-ul pe care îl scriem și pentru că este ușor de tipărit. Astfel, codul pentru integrală devine \int x \dd x
. Acum, oricând trebuie să scrieți o integrală, este de ajuns să utilizați comanda \dd
în loc să scrieți "d", și toate integralele vor avea același stil. Dacă vă răzgândiți, trebuie doar să modificați definiția din preambul, și toate integralele vor fi modificate în mod corespunzător.
Matematică avansată: pachetul AMS Math
Pachetul de matematică de la AMS — Societatea Americană de Matematică (American Mathematical Society) oferă foarte multe facilități, ce creează un nivel mai înalt de abstractizare față de limbajul matematic LaTeX; dacă îl folosiți, vă va face viața mai ușoară. Unele comenzi amsmath vor face alte comenzi plain LaTeX să pară învechite: pentru a păstra consistența în documentul final, ar fi bine să utilizați comenzi amsmath oricând este posibil. Dacă faceți așa, veți obține un output elegant fără să vă faceți griji în legătură cu alinierea sau alte detalii, codul sursă rămânând accesibil. Dacă vreți să utilizați acest pachet, trebuie să adăugați în preambul:
|
Text și puncte în formule
amsmath definește de asemenea comanda \dots
, care este o generalizare a comenzii existente \ldots
. Puteți folosi \dots
atât în modul text, cât și în modul matematic, iar LaTeX va înlocui comanda cu trei puncte "…", însă va decide în funcție de context dacă va pune punctele jos (\ldots
) sau centrat (\cdots
).
Puncte
LaTeX vă pune la dispoziție mai multe comenzi pentru a insera puncte în formule. Acest lucru se poate dovedi deosebit de util dacă trebuie să tipăriți niște matrici mari și să omiteți unele elemente. Mai întâi de toate, iată principalele comenzi din LaTeX legate de puncte:
Cod | Output | Comentariu |
---|---|---|
\dots |
Puncte generice, de folosit în text (și în afara formulelor). Gestionează automat spațiile libere de dinainte și de după puncte potrivit contextului; este o comandă de nivel mai înalt. | |
\ldots |
Outputul este similar cu cel anterior, însă nu se gestionează automat spațiul liber; funcționează la un nivel mai scăzut. | |
\cdots |
Aceste puncte sunt centrate față de înălțimea literelor. Mai există și operatorul binar de înmulțire, \cdot, menționat mai jos. | |
\vdots |
Puncte verticale | |
\ddots |
Puncte diagonale | |
\iddots |
Puncte diagonale inverse[7] | |
\hdotsfor{n} |
De folosit în matrici — creează o linie de puncte ce se întind n coloane. |
În locul \ldots
și \cdots
, ar trebui să folosiți comenzi orientate semantic. Acestea fac posibilă adaptarea documentului la diferite convenții în mod dinamic, în caz (spre exemplu) că trebuie să-l remiteți unei publicații care insistă pe urmarea unor tradiții în această privință. Tratamentul implicit pentru diversele tipuri urmează convențiile Societății Americane de Matematică (American Mathematical Society).
Cod | Output | Comentariu |
---|---|---|
\dotsc |
Pentru "puncte cu virgule". | |
\dotsb |
Pentru "puncte cu operatori/relații binare". | |
\dotsm |
Pentru "puncte de înmulțire". | |
\dotsi |
Pentru "puncte cu integrale". | |
\dotso |
Pentru "alte puncte" (nici una din categoriile de mai sus). |
Listă de simboluri matematice
Toate simbolurile matematice predefinite din pachetul \TeX\ sunt listate mai jos. Mai multe simboluri sunt disponibile din alte pachete.
Simbol | Script | Simbol | Script | Simbol | Script | Simbol | Script | Simbol | Script |
---|---|---|---|---|---|---|---|---|---|
\leq | \geq | \equiv | \models | \prec | |||||
\succ | \sim | \perp | \preceq | \succeq | |||||
\simeq | \mid | \ll | \gg | \asymp | |||||
\parallel | \subset | \supset | \approx | \bowtie | |||||
\subseteq | \supseteq | \cong | \sqsubset | \sqsupset | |||||
\neq | \smile | \sqsubseteq | \sqsupseteq | \doteq | |||||
\frown | \in | \ni | \propto | = | |||||
\vdash | \dashv | < | > |
Simbol | Script |
---|---|
și | \Alpha și \alpha |
și | \Beta și \beta |
și | \Gamma și \gamma |
și | \Delta și \delta |
, and | \Epsilon, \epsilon și \varepsilon |
și | \Zeta și \zeta |
și | \Eta și \eta |
, and | \Theta, \theta și \vartheta |
și | \Iota și \iota |
și | \Kappa și \kappa |
și | \Lambda și \lambda |
și | \Mu și \mu |
și | \Nu și \nu |
și | \Xi și \xi |
, și | \Pi, \pi and \varpi |
, și | \Rho, \rho și \varrho |
, și | \Sigma, \sigma și \varsigma |
și | \Tau și \tau |
și | \Upsilon și \upsilon |
, și | \Phi, \phi și \varphi |
și | \Chi și \chi |
și | \Psi și \psi |
și | \Omega și \omega |
Simbol | Script | Simbol | Script | Simbol | Script | Simbol | Script |
---|---|---|---|---|---|---|---|
\pm | \cap | \diamond | \oplus | ||||
\mp | \cup | \bigtriangleup | \ominus | ||||
\times | \uplus | \bigtriangledown | \otimes | ||||
\div | \sqcap | \triangleleft | \oslash | ||||
\ast | \sqcup | \triangleright | \odot | ||||
\star | \vee | \bigcirc | \circ | ||||
\wedge | \dagger | \bullet | \setminus | ||||
\ddagger | \cdot | \wr | \amalg |
Simbol | Script |
---|---|
\exists | |
\forall | |
\neg | |
și | \in și \notin |
\ni | |
\land | |
\lor | |
\rightarrow | |
\implies | |
\iff | |
\top | |
\bot | |
și | \emptyset și \varnothing |
Simbol | Script |
---|---|
\partial | |
\infty | |
\nabla | |
\hbar | |
\Box | |
\aleph | |
\ell | |
\imath | |
\jmath | |
\Re | |
\Im |
Simbol | Script | Simbol | Script | Simbol | Script | Simbol | Script |
---|---|---|---|---|---|---|---|
\sin | \cos | \tan | \cot | ||||
\arcsin | \arccos | \arctan | \arccot | ||||
\sinh | \conh | \tanh | \coth | ||||
\sec | \csc |
Rezumat
După cum începeți să vedeți, redactarea matematicii în LaTeX poate genera probleme deosebite câteodată. Cu toate acestea, întrucât LaTeX oferă așa mult control, puteți obține documente matematice de calitate cu un efort relativ redus (îndată ce aveți puțină practică, evident!). Am putea să continuăm vă analizăm la infinit matematica din LaTeX, întrucât acest subiect pare să nu aibă limite. Totuși, după ce veți fi citit acest tutorial, ar trebui să vă descurcați destul de bine.
Note
- ↑ 1,00 1,01 1,02 1,03 1,04 1,05 1,06 1,07 1,08 1,09 1,10 1,11 1,12 1,13 1,14 1,15 1,16 1,17 1,18 1,19 necesită pachetul amsmath
- ↑ http://hdl.handle.net/2268/6219
- ↑ 3,0 3,1 3,2 3,3 3,4 3,5 necesită pachetul mathtools Eroare la citare: Etichetă
<ref>
invalidă; numele "mathtools" este definit de mai multe ori cu conținut diferit - ↑ 4,0 4,1 necesită pachetul amsfonts
- ↑ necesită unul din pachetele amsfonts sau amssymb
- ↑ necesită pachetul mathrsfs
- ↑ necesită pachetul mathdots
Lecturi suplimentare
- meta:Help:Displaying a formula: Wikimedia folosește un subset de comenzi LaTeX.b
x2d\
Legături externe
- Simboluri matematice în LaTeX
- Detexify: aplet pentru căutarea simbolurilor LaTeX prin scrierea lor
- Documentația amsmath, ftp://ftp.ams.org/pub/tex/doc/amsmath/amsldoc.pdf
- LaTeX — Camera studentului
- Lista cuprinzătoare de simboluri LaTeX
Matematică avansată
Această pagină prezintă trăsături mai avansate ale matematicii din LaTeX. În particular, folosește în mare măsură pachetul amsmath oferit de Societatea Americană de Matematică (American Mathematical Society).
Numerotarea ecuațiilor
Mediul equation
numerotează automat ecuațiile.
|
|
Puteți utiliza de asemenea comenzile \label
și \ref
pentru a eticheta, respectiv a face referințe la ecuații. Sau puteți folosi comanda \eqref
, însă aceasta necesită pachetul amsmath. Iată un exemplu ce vă arată cum puteți stabili referințe cu ajutorul comenzii \ref
(are ca rezultat pentru ecuația 1), iar apoi cum să folosiți \eqref
din pachetul amsmath (are ca rezultat pentru ecuația 1):
|
|
|
|
Notă: Pentru afișarea caracterelor românești trebuie să includeți un pachet pentru acestea, cum ar fi inputenc cu opțiunea pentru UTF:
\usepackage[utf8x]{inputenc}
Pentru mai multe informații, vezi capitolul Etichete și referințe.
Pentru ca enumerarea să urmeze tiparul secțiunii sau subsecțiunii curente, trebuie să folosiți pachetul amsmath sau documente din clasa AMS. Apoi scrieți
|
în preambul pentru ca enumerarea să corespundă nivelului secțiunii sau
|
pentru ca enumerarea să se adapteze nivelului subsecțiunii.
|
|
Dacă stilul folosit pune puncte după numere, comanda \numberwithin{equation}{subsection}
în preambul va face ca numărul ecuației din exemplul de mai sus să fie afișat în felul următor: (1.1.1).
Pentru numerotarea la nivelul secțiunii, puteți folosi și comanda
|
Numerotarea la nivelul subsecțiunii cu comanda
|
este echivalentă cu versiunea din exemplul anterior, cu condiția ca această comandă să fie în preambul sau înaintea oricăror ecuații.
Notă: Puteți folosi aceste ultime comenzi pentru a schimba numerotarea ecuațiilor în interiorul documentului.
Numerotarea ecuațiilor subordonate
Pentru a numerota ecuațiile subordonate într-un mediu de ecuații numerotate, plasați partea documentului ce le conține într-un mediu subequations:
|
|
Nu uitați că pentru afișarea caracterelor românești trebuie să includeți un pachet pentru acestea, cum ar fi inputenc cu opțiunea pentru UTF:
\usepackage[utf8x]{inputenc}
Formule matematice în modul de afișare aliniate vertical
O problemă des întâlnită cu mediile de afișare (displaymath și equation) este lipsa abilității de a se întinde pe mai multe linii. Deși puteți defini liniile individual, acestea nu vor fi aliniate.
Deasupra și dedesubt
Comenzile \overset
și \underset
[1] scriu simboluri deasupra și dedesubtul expresiilor.
Fără AMS în TeX, același rezultat al \overset
poate fi obținut cu \stackrel
.
Acest lucru poate fi deosebit de util pentru a crea noi relații binare:
|
|
sau pentru a prezenta utilizarea legii lui L'Hôpital:
|
|
Este convenabil să definim un nou operator ce va seta semnul de egalitate cu H și fracția:
|
pentru a reduce exemplul de mai sus la:
|
Dacă vreți să scrieți comentarii în anumite părți ale unei ecuații, comenzile \overbrace
și \underbrace
pot fi mai utile, cu toate acestea, ele au o sintaxă diferită:
|
|
Câteodată comentariile sunt mai lungi decât formula comentată, ceea ce poate genera probleme de spațiere. Acestea nu sunt înlăturate cu comanda \mathclap
[2]:
|
Ca o alternativă, pentru a folosi paranteze drepte în loc de acolade, utilizați comenzile \underbracket
și \overbracket
[2]:
|
Argumentele opționale setează grosimea liniei, respectiv înălțimea parantezei drepte:
|
Comenzile \xleftarrow
și \xrightarrow
[1] produc săgeți care se extind pe toată lungimea textului. Din nou, sintaxa este diferită: argumentul opțional (scris cu ajutorul [
și ]
) specifică partea de sub săgeată, iar argumentul obligatoriu (între {
și }
) specifică partea de deasupra săgeții.
|
|
Pentru săgeți mai extensibile, trebuie să utilizați pachetul mathtools:
|
Pentru cârlige:
|
align și align*
Mediile align și align*[1] sunt folosite pentru aranjarea ecuațiilor pe mai multe linii. La fel ca în cazul matricilor și tabelelor, \\
specifică o linie nouă, iar &
se folosește pentru a indica punctul în care liniile ar trebui aliniate.
Mediul align* se folosește la fel ca displaymath sau equation*:
|
|
Pentru a forța numerotarea unei linii specifice, utilizați comanda \tag{...}
înainte de capătul de linie.
Mediul align este similar, însă numerotează automat fiecare linie, la fel ca mediul equation. Se poate face referire la liniile individuale plasând o comandă \label{...}
înainte de capătul de linie. Puteți folosi una din comenzile \nonumber
sau \notag
pentru a suprima numărul unei linii date:
|
|
Notați că am adăugat o anume indentare la a doua linie. De asemenea, trebuie să inserăm acolade {} înainte de semnul + întrucât altfel LaTeX nu va crea spațierea corectă după +. Motivul pentru asta este că fără acolade, LaTeX interpretează semnul + ca pe un operator unar, în locul operatorul binar, după cum este de așteptat.
Acolade care se întind pe mai multe linii
Mai multe caractere &
pe o singură linie vor specifica mai multe coloane, fiecare dintre ele fiind aliniată corespunzător. Dacă vreți ca o acoladă să continue pe linia următoare, faceți următoarele:
|
|
Dimensiunile celor două acolade devin egale și corespund mărimii tipice a simbolurilor dintre ele prin comenzile \left\{
și \right\}
. Însă deoarece aceste două comenzi apar pe linii diferite, trebuie să le echilibrăm cu comenzile \right.
și \left.
. (În mod normal acestea nu sunt necesare dacă formula este pe o singură linie.) Ca o alternativă, puteți controla manual dimensiunea acoladelor cu ajutorul comenzilor \big
, \Big
, \bigg
, \Bigg
.
Pentru a potrivi automat mărimea celor două acolade pentru o ecuație înaltă, utilizați comanda \vphantom
:
|
|
Mediul cases
Mediul cases[1] permite scrierea de funcții pe ramuri:
|
|
La fel ca mai înainte, nu trebuie să aveți grijă de definiția sau alinierea coloanelor, LaTeX va face asta automat.
Din păcate, setează mediul matematic intern la stilul text, ducând la un astfel de rezultat:
Pentru a forța stilul de afișare pentru ecuații în cadrul acestei construcții, utilizați mediul dcases[2]:
|
|
Deseori a doua coloană constă mai ales din text normal. Pentru a o seta la fontul roman normal al documentului, folosiți mediul dcases*[2]:
|
|
Alte medii
Deși mediile align și align* sunt cele mai utile, sunt multe alte medii ce pot fi și ele de interes:
Mediu | Descriere | Note |
---|---|---|
eqnarray și eqnarray* | Similar cu align și align* | Nerecomandat deoarece spațierea este inconsistentă |
multline și multline*[1] | Prima linie este aliniată la stânga, ultima linie este aliniată la dreapta | Numărul ecuației este aliniat vertical cu prima linie, nefiind centrat ca în cazul altor medii. |
gather și gather*[1] | Ecuații consecutive fără aliniere | |
flalign și flalign*[1] | Similar cu align, însă aliniază la stânga prima coloană a ecuației și la dreapta ultima coloană | |
alignat și alignat*[1] | Ia un argument ce specifică numărul de coloane. Permite controlul explicit al spațiului orizontal dintre ecuații | Puteți calcula numărul de coloane numărând caracterele & de pe o linie, la care adăugați 1, iar rezultatul îl împărțiți la 2
|
Sunt și câteva medii ce nu reprezintă medii matematice prin ele însele, dat care pot fi utilizate pentru a construi structuri mai elaborate:
Mediu matematic | Descriere | Note |
---|---|---|
gathered[1] | Permite strângerea laolaltă a mai multor ecuații, care urmează să fie așezate una sub alta și care vor primi un singur număr de ecuație | |
split[1] | Similar cu align*, însă folosit într-un alt mediu matematic de afișare | |
aligned[1] | Similar cu align, însă folosit într-un alt mediu matematic de afișare | |
alignedat[1] | Similar cu alignat, și la fel ca el, ia un argument adițional ce specifică numărul de coloane de setat pentru ecuații |
Spre exemplu:
|
|
|
|
Ecuații indentate
Pentru a indenta o ecuație, puteți seta parametrul fleqn în clasa documentului, iar apoi să specificați o anumită valoare pentru variabila \mathindent
:
|
Sfârșitul de pagină în medii matematice
Pentru a sugera sistemului LaTeX să treacă la pagina următoare într-unul din mediile amsmath, puteți folosi comanda \displaybreak
înaintea unui capăt de linie. La fel ca în cazul \pagebreak
, \displaybreak
poate lua un argument opțional între 0 și 4, care denotă nivelul de dezirabilitate de a trece la pagina următoare în acea situație dată. Valoarea 0 înseamnă "se permite trecerea la pagina următoare aici", 4 forțează sfârșitul de pagină. Nici un argument înseamnă valoarea 4.
Ca o alternativă, puteți activa sfârșitul de linie automat în mediile matematice cu comanda\allowdisplaybreaks
. Și aceasta are un argument opțional, care denotă în ce măsură se permite trecerea la pagina următoare în ecuații. În mod similar, 1 înseamnă "se permite sfârșitul de pagină, însă în general se evită", iar 4 înseamnă "treci la pagina următoare când dorești". Puteți împiedica sfârșitul paginii după o linie dată cu ajutorul comenzii \\*
.
LaTeX va insera un sfârșit de pagină într-o ecuație lungă (cu mediul align, de exemplu) dacă adaugă ceva text în plus cu comanda \intertext{text}
, fără alte comenzi.
Un caz specific de utilizare poate arăta în felul următor:
|
Ecuații cuprinse într-un cadru
Pentru o singură ecuație, cu eticheta în afara căsuței, utilizați comanda \boxed{}
:
|
Dacă vreți ca întreaga linie sau mai multe ecuații să fie încadrate, folosiți un mediu minipage într-o căsuță \fbox{}
:
|
Operatori personalizați
Deși LaTeX pune la dispoziție mulți operatori de uz comun, câteodată veți avea nevoie să creați unul nou, spre exemplu pentru a scrie operatorul argmax. Comenzile \operatorname
și \operatorname*
[1] afișează astfel de operatori, versiunea cu stea *
setează opțiunea cu underscore dedesubt, ca pentru operatorul \lim
:
|
|
Totuși, dacă operatorul este des folosit, este de preferat ca noul operator să fie încorporat în sistemul LaTeX, pentru documentul curent. Comenzile \DeclareMathOperator
și \DeclareMathOperator*
[1] sunt specificate în preambulul documentului:
|
Asta definește o nouă comandă, ce poate fi folosită în corpul documentului:
|
|
Formatare avansată
Limite
Există anumite setări implicite pentru plasarea indicilor și exponenților. Spre exemplu, limitele pentru operatorul lim se așează de obicei sub simbol, în felul următor:
|
|
Pentru a modifica acest comportament implicit, utilizați operatorul \nolimits
:
|
|
Un operator lim în text (în cadrul $...$
) va plasa limitele pe lateral. Dacă vreți ca argumentul comenzii _
să fie plasat sub limită, folosiți comanda \limits
, plasată imediat după operator:
|
|
În mod asemănător, puteți așeza indicii care de obicei sunt plasați lateral:
|
|
deasupra și dedesubtul unui simbol:
|
|
Pentru a seta așezarea implicită laterală pentru toate cazurile unui simbol de însumare (în modul de afișare), adăugați opțiunea nosumlimits pachetului amsmath. Pentru a schimba așezarea implicită a limitelor intervalului pentru integrale adăugați parametrul intlimits la opțiuni și nonamelimits pentru a modifica plasarea implicită pentru operatorii named, de genul det, min, lim, etc.
Indici și exponenți
Deși puteți așeza caractere pe poziție de indici sau de exponenți în cazul simbolurilor de genul sumelor cu comanda prezentată mai devreme \nolimits
:
|
|
este imposibil să le îmbinați cu utilizarea tipică a acestor simboluri:
|
|
Pentru a adăuga atât apostroful, cât și limita la un simbol, trebuie să utilizați comanda \sideset
:
|
|
Este foarte flexibilă, spre example, poate pune litere în fiecare colț al simbolului sumei:
|
|
Dacă vreți să faceți asta pentru un simbol arbitrar, puteți folosi comanda \fourIdx
din pachetul fouridx:
|
Indici pe mai multe linii
Pentru a produce indici care se pot întinde pe mai multe linii, utilizați comanda \substack
:
|
|
Text în modul matematic de afișare aliniat
Pentru a adăuga explicații scurte în mediile matematice, folosiți comanda \intertext
:
|
Notați că utilizarea acestei comenzi nu schimbă alinierea, așa cum ar face mai multe medii align intercalate.
Modificarea dimensiunii fontului
Se pot ivi unele situații în care să preferați un control mai mare asupra dimensiunii fontului pentru formule matematice. Spre exemplu, mediile matematice în modul text —$...$
sau \(...\)
— afișează implicit o fracție simplă (\frac
) în felul următor: . Într-o asemenea situație, ar fi de preferat ca fracția să fie mai mare, ca în modul de afișare —$$...$$
sau \[...\]
, dar să-și păstreze poziția pe linia curentă: .
O abordare simplă constă în utilizarea unor dimensiuni predefinite pentru elementele matematice:
Comandă | Descriere |
---|---|
\displaystyle
|
Dimensiunea ecuațiilor în modul de afișare |
\textstyle
|
Dimensiunea ecuațiilor în modul text |
\scriptstyle
|
Mărimea primului indice sau exponent |
\scriptscriptstyle
|
Mărimea indicelui sau exponentului următor |
Un exemplu clasic în acest sens îl constituie fracțiile continue (deși e mai bine să folosiți comanda \cfrac
[1] descrisă în capitolul Matematică):
|
|
După cum vedeți, pe măsură ce fracțiile continuă, devin mai mici (aici au atins limita \scriptstyle
). Dacă vreți ca dimensiunea să rămână consistentă, puteți declara stilul de afișare pentru fiecare fracție în parte:
|
|
O altă abordare constă în utilizarea comenzii \DeclareMathSizes
pentru a selecta dimensiunile preferate. Puteți redefini doar dimensiunile \displaystyle
, \textstyle
, \scriptstyle
. Un posibil dezavantaj este că această comandă setează valorile globale, întrucât poate fi folosită numai în preambulul documentului.
Totuși, este foarte ușor de folosit: \DeclareMathSizes{df}{da}{dt}{ds}
, unde df înseamnă dimensiunea implicită a fontului (pentru documentul curent), da este dimensiunea în modul de afișare (\displaystyle
), dt dimensiunea în modul text (\textstyle
), iar ds dimensiunea corespunzătoare modului \scriptstyle
. Valorile furnizate se consideră a fi date în puncte (pt).
Notă: modificările valorilor globale au loc numai dacă valoarea primului argument corespunde dimensiunii textului din documentul curent. Se obișnuiește de aceea ca în preambul să fie mai multe declarații de genul acesta, în eventualitatea că se va modifica dimensiunea fontului implicit. Spre exemplu:
|
Note
- ↑ 1,00 1,01 1,02 1,03 1,04 1,05 1,06 1,07 1,08 1,09 1,10 1,11 1,12 1,13 1,14 necesită pachetul amsmath
- ↑ 2,0 2,1 2,2 2,3 necesită pachetul mathtools
Teoreme
Prin "teoremă" înțelegem orice tip de enunț etichetat pe care vrem să-l vedem ca fiind separat de restul textului și care să aibă numere secvențiale. Această abordare se folosește în mod obișnuit pentru teoreme matematice, însă poate fi utilizată pentru orice. LaTeX oferă o comandă care facilitează definirea oricărui enunț în genul unei teoreme.
Teoreme de bază
Mai întâi, includeți pachetul amsthm:
\usepackage{amsthm}
Modul cel mai ușor de a defini o teoremă este să scrieți:
\newtheorem{nume}{Output generat}
în preambul. Primul argument este numele pe care îl veți folosi în document pentru a face referire la teoremă, iar al doilea argument este outputul generat de LaTeX la fiecare utilizare a teoremei. Spre exemplu:
\newtheorem{o-def}{Definiție}
va defini mediul def
; dacă îl folosiți în felul următor:
\begin{o-def}
Iată o definiție nouă
\end{o-def}
va arăta așa:
Definiție 1. Iată o definiție nouă
separată prin linii libere de restul textului.
Numerotarea teoremelor
Adesea numerele teoremelor sunt determinate de secțiune, spre exemplu "Theorem 2.3" se referă la a treia teoremă din a doua secțiune a documentului. În cazul de față, specificați teorema după cum urmează:
\newtheorem{nume}{Output generat}[numără după]
unde numără după specifică nivelul de împărțire în secțiuni (secțiunea/subsecțiunea/etc.) la care numerotarea are loc.
Implicit, fiecare teoremă are propriul contor. Totuși, se obișnuiește ca tipuri similare de teoreme (de exemplu, teoreme, leme și corolarii) să folosească în comun un contor. În acest caz, definiți teoremele următoare astfel:
\newtheorem{nume}[contor]{Output generat}
unde contor este numele contorului de utilizat. De obicei, acesta va fi numele teoremei principale.
Puteți de asemenea să creați un mediu pentru teoreme care nu este numerotat cu ajutorul comenzii newtheorem*
[1]. Spre exemplu,
\newtheorem*{o-def}{Definiție}
definește mediul o-def
, care va genera definiții fără numerotare.
Demonstrații
Mediul proof[1] poate fi folosit pentru a adăuga demonstrația unei teoreme. Utilizarea de bază este:
\begin{proof}
Demonstrația mea
\end{proof}
Nu face decât să adauge Proof cu caractere italice la începutul textului dat ca argument și un pătrat gol pe dinăuntru, simbolul (Q.E.D, cunoscut și sub denumirea de lespede (tombstone)) la sfârșit. Dacă scrieți în altă limbă decât engleza, folosiți pachetul babel cu argumentul corespunzător și cuvântul Proof afișat va fi tradus în această limbă; oricum, în codul sursă, numele mediului rămâne proof
.
Dacă vreți să denumiți explicit demonstrația, includeți numele în paranteze drepte:
\begin{proof}[Demonstrația unei teoreme importante]
Iată demonstrația mea importantă
\end{proof}
Dacă ultima linie a demonstrației este în modul matematic de afișare, atunci simbolul Q.E.D. va apare pe o linie liberă următoare. Pentru a pune simbolul Q.E.D. la sfârșitul ultimei linii, folosiți comanda \qedhere
:
\begin{proof}
Iată demonstrația mea:
\[
a^2 + b^2 = c^2 \qedhere
\]
\end{proof}
Metoda de mai sus nu merge cu mediul deprecated (care nu mai este în uz, urmând a fi eliminat într-o versiune viitoare de LaTeX) eqnarray*. Iată o posibilă soluție:
\begin{proof}
Iată demonstrația mea:
\begin{eqnarray*}
a^2 + b^2 = c^2
\end{eqnarray*}
\vspace{-1.4cm}\[\qedhere\]
\end{proof}
Pentru a folosi un alt simbol Q.E.D., redefiniți comanda \qedsymbol. Pentru a ascunde apariția simbolului Q.E.D., redefiniți-l să nu fie nimic:
\renewcommand{\qedsymbol}{}
Stiluri de teoreme
Acestea adaugă posibilitatea de a schimba outputul mediilor definite de \newtheorem
cu ajutorul comenzii \theoremstyle
[1] în preambul:
\theoremstyle{denumire_stil}
Argumentul este stilul pe care vreți să-l folosiți. Toate teoremele definite mai târziu vor folosi acest stil. Iată o listă cu stilurile predefinite:
denumire_stil | Descriere |
---|---|
plain | Folosit pentru teoreme, leme, propoziții, etc. (stilul implicit) |
definition | Utilizat pentru definiții și exemple |
remark | Folosit pentru remarce și note |
Stiluri personalizate
Pentru a defini propriul stil, folosiți comanda \newtheoremstyle
[1]:
\newtheoremstyle{denumire stil}% numele stilului folosit
{spațiu înainte}% spațiu liber deasupra teoremei, de exemplu: 3pt
{spațiu după}% spațiu liber sub teoremă, de exemplu: 3pt
{font corp}% fontul din corpul teoremei
{indentare}% implicit fără indentare
{font antet}% fontul pentru antet
{punctuație după antet}% punctuația dintre antet și corp
{spațiu după antet}% spațiu după antetul teoremei; " " = spațiu normal dintre cuvinte
{antet}% antet specificat manual
(Orice argumente lăsate libere vor lua valorile implicite). Iată un exemplu de specificații pentru antet:
{\thmname{\textbf{#1}}\thmnumber{ \textbf{#2}}\thmnote{ (#3)}}
Exemplul complet:
\documentclass[a4paper,12pt]{article}
\usepackage[utf8x]{inputenc} % pentru caractere Unicode
\usepackage{amsthm}
\usepackage[pdfborder={0 0 0},colorlinks=true,linkcolor=blue]{hyperref}
\newtheoremstyle{plain}
{3pt} % spațiu liber înaintea teoremei
{3pt} % spațiu liber după teoremă
{\itshape} % fontul din corpul teoremei
{\parindent} % indentare
{\rmfamily} % fontul pentru antet
{:} % punctuația dintre antet și corp
{.5em} % spațiu după antetul teoremei
{\thmname{\textbf{#1}}\thmnumber{ \textbf{#2}}\thmnote{ (#3)}} % antet
\newtheorem{defn}{Definiția}
\begin{document}
\begin{defn}[Topologie]
\href{http://ro.wikipedia.org/wiki/Topologie}{Topologia} este o ramură a matematicii,
mai precis o extensie a geometriei care studiază deformările spațiului prin
transformări continue.
\end{defn}
\end{document}
(Argumentul definiției, în cazul de față Topologie, este întotdeauna opțional, însă nu va apare implicit, dacă nu-l specificați ca mai sus în specificația antetului).
Output:
Conflicte
Mediul pentru teoreme (theorem) intră în conflict cu alte medii, spre exemplu cu wrapfigure. O soluție posibilă constă în redefinirea teoremei, spre exemplu în modul următor:
% Ajustează spațiile verticale din LaTeX
\def\smallskip{\vskip\smallskipamount}
\def\medskip{\vskip\medskipamount}
\def\bigskip{\vskip\bigskipamount}
% Teoremă cu aspect personalizat
\newcounter{thm}[section]
\renewcommand{\thethm}{\thesection.\arabic{thm}}
\def\claim#1{\par\medskip\noindent\refstepcounter{thm}\hbox{\bf
\arabic{chapter}.\arabic{section}.\arabic{thm}. #1.}
\it\ % \ignorespaces
}
\def\endclaim{\par\medskip}
\newenvironment{thm}{\claim}{\endclaim}
În acest caz, teorema arată în felul următor:
\documentclass[a4paper,12pt]{book}
\usepackage[utf8x]{inputenc} % pentru caractere Unicode
...
\renewcommand{\chaptername}{Capitolul}
\begin{document}
\chapter{Matematică}
\section{Teoreme}
\begin{thm}{Teoremă de probabilitate}\label{prob}
Lasă să se întâmple.
Apoi vei afla.
\end{thm}
\end{document} |
|
Note
Legături externe
- Documentația amsthm, ftp://ftp.ams.org/pub/tex/doc/amscls/amsthdoc.pdf
Etichete și referințe
Indexare
O trăsătură utilă în multe cărți, indexul este o listă alfabetică de cuvinte și expresii cu numerele paginilor din carte unde se găsesc. LaTeX suportă crearea de indici cu ajutorul pachetului makeidx și programul makeindex
, denumit în unele sisteme makeidx
.
Utilizarea makeidx
Pentru a activa indexarea în LaTeX, trebuie mai întâi să încărcați pachetul makeidx în preambul:
|
și să activați comenzile speciale de indexare punând comanda
|
în preambulul fișierului de intrare. Aceste lucruri trebuie făcute în preambul, întrucât în felul acesta permit sistemului LaTeX să creeze fișierele necesare pentru indexare. Pentru a spune LaTeX ce să indexeze, utilizați comanda
|
unde cheie este intrarea din index, care nu apare în documentul final. Introduceți comenzile de indexare în locul din text către care vreți să se facă trimitere în index, identificat prin cheie. Spre exemplu, textul
|
poate fi rescris sub forma
|
pentru a crea o intrare numită 'serie Fourier' cu o referință la pagina țintă. Mai multe utilizări ale comenzii \index cu aceeași cheie pe pagini diferite vor adăuga aceste pagini țintă la aceeași intrare în index.
Pentru a afișa indexul în document, folosiți comanda
|
Se obișnuiește ca aceasta să se plaseze la sfârșitul documentului. Formatul implicit al indexului este cu două coloane.
Pachetul showidx care face parte din sistemul LaTeX afișează toate intrările din index în partea stângă a textului. Acest lucru este foarte util pentru corectarea unui document și verificarea indexului.
Compilarea indexului
Când fișierul de intrare este procesat de LaTeX, fiecare comandă \index
scrie o intrare corespunzătoare în index, împreună cu numărul paginii curente, într-un fișier special. Fișierul are același nume ca și fișierul de intrare LaTeX, însă cu altă extensie (.idx
). Acest fișier .idx
poate fi apoi procesat cu programul makeindex
. Scrieți în linia de comandă:
makeindex nume_fișier
Notați că nume_fișier se scrie fără extensie: programul va căuta fișierul nume_fișier.idx. Puteți pasa direct fișierul nume_fișier.idx programului ca argument. Programul makeindex
generează un index sortat cu același nume de bază, însă de data aceasta cu extensia .ind
. Dacă fișierul de intrare LaTeX este procesat din nou, acest index sortat este inclus în document în punctul unde LaTeX întâlnește comanda \printindex
.
Indexul creat de LaTeX cu opțiunile implicite poate să nu arate așa cum doriți. Puteți personaliza aspectul indexului cu un set de fișiere de stil ce însoțesc programul makeindex
, aflate de obicei undeva în structura de directoare a sistemului TeX, în general în subdirectorul makeindex
. Pentru a transmite makeindex să folosească un anumit fișier de stil, rulați programul cu opțiunea:
makeindex -s <fișier de stil> nume_fișier
Dacă folosiți un program cu grafică pentru a compila fișierele sursă LaTeX și cu indexul, s-ar putea să trebuiască să setați opțiunile acestuia. Iată câteva sfaturi legate de configurație pentru programele tipice:
Setările MakeIndex în WinEdit
Să zicem că vreți să adaugați un fișier de stil pentru index numit simplu_idx.ist
- Texify/PDFTexify: Options→Execution Modes→Accessories→PDFTeXify, adăugați la Switches:
--mkidx-option="-s simplu_idx.ist"
- Doar MakeIndex: Options->Execution Modes→Accessories→MakeIndex, adăugați în linia de comandă:
-s simplu_idx.ist
Indexare complexă
Iată câteva exemple de intrări \index
:
Exemplu | Intrare în index | Comentariu |
---|---|---|
\index{Salut}
|
Salut, 1 | Intrare simplă |
\index{Salut!Petre}
|
Petre, 3 | Subelement al intrării 'Salut' |
\index{Sam@\textsl{Sam}}
|
Sam, 2 | Intrare formatată |
\index{Lin@\textbf{Lin}}
|
Lin, 7 | La fel ca mai sus |
\index{Jenny|textbf}
|
Jenny, 3 | Număr formatat al paginii |
\index{Joe|textit}
|
Joe, 5 | Tot ca mai sus |
\index{ecole@\'ecole}
|
école, 4 | Accente |
\index{Petre|see{Salut}}
|
Petre, see Salut | Trimiteri |
\index{Jen|seealso{Jenny}}
|
Jen, see also Jenny | Ca mai sus |
Subelemente ale intrărilor
Dacă o anumită intrare are subsecțiuni, acestea pot fi marcate cu !
. Spre exemplu,
|
creează o intrare în index, unde 'cp850' face parte din categoria 'input' (care face parte la rândul ei din categoria 'codificări'). Acestea sunt denumite subsubintrări și subintrări în terminologia makeidx.
Controlul sortării
Pentru a determina cum urmează să se sorteze indexul după o cheie, plasați o valoare ce va fi folosită pentru sortare înaintea cheii, cu @
ca separator. Acest lucru este util dacă există un mod de formatare sau matematic, așa că un exemplu ar putea fi
|
astfel încât intrarea din index va arăta în felul următor: '', dar va fi sortată ca 'F'.
Schimbarea stilului pentru numărul paginii
Pentru a schimba formatarea numărului unei pagini, adăugați un |
și numele unei comenzi ce realizează formatarea. Această comandă ar trebui să accepte doar un argument.
Spre exemplu, dacă la pagina 3 a unei cărți scrieți 'buldogi' și comanda
|
iar la pagina 10 din aceeași carte vreți să afișați secțiunea principală despre buldogi cu un număr aldin al numărului paginii, dați comanda
|
Asta va apare în index sub forma
buldog, 3, 10
Dacă utilizați programul texindy
în loc de makeindex
, intrările clasificate vor fi și ele sortate, astfel încât toate intrările aldine vor fi așezate înaintea tuturor celorlalte în mod implicit.
Pagini multiple
Pentru a face o indexare pe mai multe pagini, adăugați |(
și |)
la sfârșitul comenzii \index
, ca în
|
Intrarea din index pentru subelementul 'Istorie' va fi intervalul paginilor dintre cele două comenzi \index
.
Utilizarea unor caractere speciale
Pentru a plasa valori cu !
, @
, sau |
în comanda \index
, trebuie să citați aceste caractere folosind ghilimele (") și puteți afișa " doar citând ghilimelele: o cheie pentru " ar fi \index{""}
.
Această regulă nu merge pentru \", astfel că pentru a pune ä în index, încă mai puteți folosi \index{a@\"{a}}
.
Avertismente
Comanda \index
poate afecta aranjarea în pagină dacă nu este folosită cu atenție. Iată un exemplu:
|
Un cuvânt . Spre deosebire de cuvânt. Notați poziția punctului ce marchează sfârșitul frazei. |
Listă de abrevieri
Puteți face o listă de abrevieri cu ajutorul pachetului nomencl. Ar putea să vă intereseze și pachetul glossaries descris în capitolul Glosar.
Pentru a activa trăsătura de clasificare (nomenclature) din LaTeX, scrieți în preambul:
|
Dați comanda \nomenclature[prefix]{simbol}{descriere}
pentru fiecare simbol pe care vreți să-l includeți în lista de clasificări. Locul cel mai bun pentru această comandă este imediat după ce introduceți simbolul prima dată. Scrieți \printnomenclature
în locul în care vreți să apară lista de clasificări.
Rulați comanda de compilare LaTeX de două ori, apoi
makeindex nume_fișier.nlo -s nomencl.ist -o nume_fișier.nls
iar apoi rulați comanda LaTeX încă o dată.
Indecși multipli
Dacă vă trebuie mai mulți indecși, puteți utiliza pachetul multind.
Acest pachet oferă aceleași comenzi ca și makeidx, însă acum trebuie de asemenea să pasați un nume ca prim argument al fiecărei comenzi.
|
Adăugarea indexului la Cuprins
Implicit, indexul nu este afișat la Cuprins, așadar trebuie să-l adăugați manual.
Pentru a adăuga indexul sub forma unui capitol, folosiți această comandă:
|
Dacă utilizați clasa carte (book), probabil veți dori ca indexul să înceapă pe o pagină impară. Pentru a obține acest efect, folosiți comanda \cleardoublepage
.
Indecși internaționali
Dacă vreți să sortați intrările ce au caractere internaționale (cum sunt ő, ą, ó, ç, etc.), veți observa că sortarea "nu este tocmai potrivită". În cele mai multe cazuri, caracterele sunt tratate ca niște caractere speciale și sfârșesc prin a fi în același grup cu @, ¶ sau µ. În cele mai multe limbi ce folosesc alfabetul Latin, acest comportament nu este cel corect.
Generarea indexului
Din păcate, versiunile curente ale xindy
și hyperref sunt incompatibile. Când utilizați modificatorii textbf sau textit, texindy
va tipări un mesaj de eroare:unknown cross-reference-class `hyperindexformat'! (ignored)
și va adăuga paginile la index. O soluție posibilă este descrisă pe pagina de discuție.
Pentru a genera un fișier cu un index internațional, trebuie să folosiți texindy
în locul makeindex
.
xindy este un sistem de indexare mult mai extensibil și mai robust decât makeindex
.
Spre exemplu, nu trebuie să scrieți:
|
pentru a obține intrarea Lin după LAN și înainte de LZA, în schimb, e suficient să scrieți
|
Însă ce e mult mai important, poate sorta în mod corespunzător fișierele de indexare în numeroase limbi, nu doar engleză.
Din păcate, generarea de indecși gata de utilizat de către sistemul LaTeX cu ajutorul xindy
este ceva mai complicat decât cu makeindex
.
Mai întâi, trebuie să știm în ce tip de codificare (encoding) a fost salvat fișierul .tex. În cele mai multe cazuri, acesta va fi UTF-8 sau ISO-8859-1, deși dacă locuiți, spre exemplu, în Polonia, ar putea fi ISO-8859-2 sau CP-1250. Verificați parametrul pachetului inputenc.
Apoi, trebuie să știm care limbă este predominant utilizată în document. xindy poate sorta nativ indecși în albaneză, olandeză, ebraică, latină, norvegiană, slovacă, bielorusă, engleză, georgiană, maghiară, letonă, poloneză, slovenă, vietnameză, bulgară, esperanto, germană, islandeză, lituaniană, portugheză, spaniolă, croată, estonă, greacă, italiană, română, sorabă, suedeză, cehă, finlandeză, romă, klingoniană, macedoneană, rusă, turcă, daneză, franceză, hausă, curdă, mongolă, sârbă și ucraineană.
Nu știu dacă alte limbi au probleme similare, însă cu limba poloneză, facă fișierul .tex
este salvat în formatul UTF-8, fișierul .ind
produs de texindy va fi codificat cu ISO-8859-2 dacă utilizați doar opțiunea -L polish
.
Deși nu este o problemă pentru intrări ce conțin litere poloneze, de vreme ce LaTeX codifică intern toate literele în plain ASCII, constituie o problemă pentru literele cu accente de la începutul cuvintelor. La crearea de noi grupuri de intrări în index, dacă aveți, spre exemplu, o intrare "średnia", veți obține un "Ś" codificat în ISO-8859-2 în fișierul de ieșire .ind
.
LaTeX nu agreează ca o parte a fișierului să fie scrisă în UTF-8 și altă parte în IS-8859-2.
Soluția evidentă (adăugarea -C utf8
) nu merge, texindy
se oprește cu eroarea
ERROR: Could not find file "tex/inputenc/utf8.xdy"
Pentru a rezolva această problemă, trebuie să încărcați stilul de definiție pentru antete cu -M switch
:
-M lang/polish/utf8
La sfârșit trebuie să rulăm o comandă de genul:
texindy -L polish -M lang/polish/utf8 nume_fișier.idx
xindy în Kile
Pentru a utiliza programul texindy
în locul makeindex
în Kile, trebuie fie să redefiniți programul ajutător MakeIndex în Settings → Configure Kile... → Tools → Build, fie să definiți noul program și să redefiniți alte programe auxiliare să-l folosească.
Definiția xindy
ar trebui să arate cam așa:
General: Comandă: texindy Opțiuni: -L polish -M lang/polish/utf8 -I latex '%S.idx' Avansat: Tip: Run Outside of Kile Clasă: Compile Extensia sursei: idx Extensia fișierului de ieșire: ind Fișierul de ieșire: <empty> Director relativ: <empty> Stare: Editor Menu: Adaugă program auxiliar la meniul Build: Compile Icoană: imaginea preferată
Glosar
Multe documente tehnice folosesc termeni sau acronime necunoscuți populației generale. Se obișnuiește să adăugați glosare în care explicați aceste cuvinte.
Pachetul glossaries a fost creat pentru a ajuta utilizatorii să întocmească glosare. Oferă suport pentru mai multe glosare în același document, acronime și simboluri.
Înlocuiește pachetul glossary și poate fi folosit în locul pachetului nomencl.
Utilizarea pachetului glossaries
Pentru a activa utilizarea pachetului glossaries, trebuie să-l încărcați, scriind în preambulul documentului:
|
Dacă veți folosi programul xindy (recomandat) în locul makeindex, trebuie să specificați opțiunea xindy:
|
Pentru ca glosarul să apară în Cuprins, trebuie să adăugați și opțiunea toc:
|
Indexul glosarului nu va fi generat până când nu adăugați următoarea comandă în preambulul documentului:
|
Notați că linkurile din glosarul generat nu vor fi "accesabile" decât dacă includeți acest pachet "după" hyperref.
Definirea intrărilor din glosar
Pentru a utiliza o intrare din glosar trebuie mai întâi s-o definiți. Sunt mai multe moduri în care puteți defini o intrare, în funcție de ce definiți și cum urmează să fie folosită intrarea.
Notați că o intrare definită nu va fi inclusă în glosarul afișat decât dacă este utilizată în document.
Acest lucru vă permite să creați un glosar de termeni generali pe care puteți să-l includeți cu comanda \include
în toate documentele.
Definirea de termeni
Pentru a defini un termen în glosar, folosiți macrocomanda \newglossaryentry
:
|
Eticheta reprezintă un identificator unic pentru o intrare din glosar, iar setările sunt perechi cheie=valoare separate prin virgulă, utilizate la definirea unei intrări.
Spre exemplu, pentru a defini o intrare denumită calculator:
|
Exemplul de mai sus definește o intrare cu aceeași etichetă și denumire. Acestea pot să difere, ca în exemplul următor:
|
Când definiți termeni, trebuie să vă amintiți că vor fi sortați cu makeindex sau xindy.
Deși xindy are încorporate mai multe cunoștințe despre LaTeX, omite macrocomenzi din LaTeX, cum este (\"{\i}
), sortând astfel incorect exemplul de mai sus sub forma nave.
makeindex nu va merge mult mai bine, întrucât nu înțelege macrourile TeX, astfel că va interpreta cuvântul exact după cum a fost definit, punându-l în clasa simbolurilor, înaintea cuvintelor ce încep cu naa.
De aceea trebuie să extindem exemplul nostru pentru a specifica cum să sortăm cuvântul ce reprezintă denumirea intrării în index:
|
Puteți să specificați și forme de plural, dacă acestea nu se formează adăugând "s" (vom învăța cum să le utilizăm în secțiunea următoare):
|
Definirea de simboluri
Intrările definite pot fi și simboluri:
|
Puteți de asemenea să definiți atât un nume, cât și un simbol:
|
Notați că nu toate stilurile de glosare afișează simbolurile definite. Pentru a afișa număr real
ca trimitere la intrarea din glosar nr real
, trebuie să includeți în preambulul documentului:
|
Definirea de acronime
Acronimele definite pot fi puse în liste separate dacă folosiți opțiunea acronym pentru pachetul glossaries:
|
Pentru a defini un nou acronim, utilizați macroul \newacronym
:
|
unde eticheta identifică în mod unic acronimul, abrevierea este forma prescurtată a acronimului, iar textul reprezintă forma extinsă a acronimului. Spre exemplu:
|
Utilizarea termenilor definiți
După ce ați definit un termen, puteți să-l folosiți într-un document. Sunt mai multe comenzi ce se pot aplica la termenii din glosar.
Referințe generale
O referință generală se folosește cu comanda \gls
.
Dacă, spre exemplu, aveți intrări în glosar definite ca mai sus, puteți să le folosiți în felul următor:
|
Oamenii naivi (Naïve people) nu au auzit de sisteme de operare alternative pentru calculator: Linuces, BSD și GNU/Hurd. |
Descrierea comenzilor utilizate în exemplul de mai sus:
|
Această comandă tipărește termenul asociat cu eticheta pasată ca argument. Dacă ați încărcat pachetul hyperref înainte de glossaries, va lega de asemenea termenul de intrarea din glosar.
|
Această comandă afișează pluralul termenului definit, altfel are același efect ca și gls
.
|
Această comandă afișează forma de singular a termenului, primul caracter fiind scris cu literă mare.
|
Această comandă scrie forma de plural, primul caracter al termenului fiind scris cu literă mare.
Trimiterile la acronime
Acronimele se comportă puțin diferit de ceilalți termeni din glosar.
La început, utilizarea comenzii \gls
va afișa textul întreg, urmat de abrevierea între paranteze.
|
Logical Volume Manager (LVM) |
Utilizările ulterioare vor afișa numai forma prescurtată.
|
LVM |
Pentru a reseta prima utilizare a acronimului, folosiți comanda:
|
sau, dacă vreți să resetați prima utilizare pentru toate acronimele:
|
Afișarea glosarului
Pentru a afișa lista sortată de termeni, trebuie să dați comanda:
|
în locul în care vreți să fie afișate glosarul și lista de acronime în document.
Apoi trebuie să urmați trei pași:
- Compilați codul sursă LaTeX, generând în felul acesta fișierele utilizate de makeglossaries.
- Realizați indexarea/sortarea. Modul recomandat constă în utilizarea makeglossaries (un script ce rulează programele xindy sau makeindex în funcție de opțiunile setate pentru document, cu setările corecte de codificare și limbaj):
makeglossaries fișier
- Compilați din nou fișierul LaTeX pentru a obține documentul cu intrările din glosar.
Dacă intrările folosite sunt legate de altele (unele intrări sunt legate de alte intrări prin intermediul comenzii \gls
), va trebui să treceți prin punctele 1 și 2 de două ori, cinci pași în total: 1, 2, 1, 2, 3.
Referințe
- Documentația glossaries, http://tug.ctan.org/tex-archive/macros/latex/contrib/glossaries/
- Using LaTeX to Write a PhD Thesis, Nicola L.C. Talbot, http://theoval.cmp.uea.ac.uk/~nlct/latex/thesis/node25.html
Algoritmi și pseudocod
Scrisori
Câteodată lucrurile simple dau mai multă bătaie de cap. Totuși, nu trebuie neapărat să fie așa datorită existenței unor formate evoluate, user-friendly. Din fericire, LaTeX facilitează redactarea scrisorilor, cu un efort minim.
Clasa letter
Pentru a întocmi scrisori, folosiți clasa standard de documente letter.
Puteți pune mai multe scrisori într-un fișier LaTeX — începeți fiecare scrisoare cu \begin{letter}{recipient} și încheiați-o cu \end{letter}. Puteți lăsa recipientul liber. Fiecare scrisoare constă din patru părți:
- partea introductivă (ca \opening{Stimate Domnule, sau Stimată Doamnă,} sau \opening{Dragă Kate,}
- corpul principal — scris ca de obicei în LaTeX
- încheierea (de exemplu \closing{Cu stimă,}
- LaTeX va lăsa ceva spațiu după încheiere pentru semnătura scrisă de mână; apoi va pune prenumele și numele de familie, dacă le-ați declarat.
- elemente adiționale: post scriptum, cine va primi o copie a scrisorii (cc — carbon copy) și o listă a documentelor asociate (enclosures).
Dacă vreți să vă apară în scrisoare numele, adresa și numărul de telefon, trebuie să le declarați înainte sub formă de semnătură, adresă și telefon.
Scrisoarea rezultată va arăta în felul următor:
Iată codul pentru acest exemplu:
\documentclass[a4paper,12pt]{letter}
\usepackage[utf8x]{inputenc} % pentru caractere Unicode
\signature{Joe Bloggs}
\address{21 Bridge Street \\ Smallville \\ Dunwich DU3 4WE}
\begin{document}
\begin{letter}{Director \\ Doe \& Co \\ 35 Anthony Road
\\ Newport \\ Ipswich IP3 5RT}
\opening{Stimate Domnule sau Doamnă,}
Vă scriu în legătură cu proiectul Wikipedia (http://www.wikipedia.org/), un efort
de a construi o enciclopedie multilingvă completă într-o manieră în întregime
deschisă, pentru a cere permisiunea de a vă utiliza materialul cu copyright.
% Comanda \ldots produce puncte într-o manieră ce nu va afecta
% redactarea documentului.
\ldots
Acestea fiind spuse, permiteți-mi să vă reiterez că materialul va fi folosit
în scopul nobil de a oferi o colecție gratuită de cunoștințe pentru toată lumea;
evident, doar dacă sunteți de acord. Dacă așa stau lucrurile, puteți vă rog să
completați formularul atașat și să mi-l trimiteți înapoi? Vom aprecia foarte mult
lucrul acesta.
Vă mulțumesc pentru timpul și considerația acordate.
Aștept cu nerăbdare răspunsul dvs.
\closing{Cu stimă,}
\ps{P.S. Puteți găsi textul întreg al licenței GFDL la adresa
http://www.gnu.org/copyleft/fdl.html.}
\encl{Formular de acordare a permisiunii pentru copyright}
\end{letter}
\end{document}
Plicuri
Iată un plic relativ simplu, ce folosește pachetul geometry întrucât simplifică în mare măsură sarcina de rearanjare a elementelor de pe pagină (și a paginii înseși).
% envelope.tex
\documentclass[a4paper,12pt]{letter}
\usepackage[utf8x]{inputenc} % pentru caractere Unicode
\usepackage[left=1in,top=0.15in,papersize={4.125in,9.5in},landscape,twoside=false]{geometry}
\setlength\parskip{0pt}
\pagestyle{empty}
\begin{document}
DIN PARTEA-NUME
DIN PARTEA-ADRESĂ
DIN PARTEA-ORAȘ,ȚARĂ
\vspace{1.0in}\large
\setlength\parindent{3.6in}
CĂTRE-NUME
CĂTRE-ADRESĂ
CĂTRE-ORAȘ,ȚARĂ
\end{document}
Acest format va avea grijă de spațiere, însă nu de modul efectiv în care va fi tipărit documentul, care depinde în cele din urmă de programul folosit la tipărire și de imprimantă. La urma urmei, imprimante diferite au mecanisme diferite de stocare și prelucrare a datelor pentru plicuri sau coperți. Puteți folosi următoarele comenzi pentru a tipări un document:
$ pdflatex plic.tex $ pdf2ps plic.pdf $ lpr -o landscape plic.ps
Sau puteți folosi direct comanda latex pentru output DVI.
Pe prima linie, comanda dvips convertește fișierul .dvi produs de latex într-un .ps (PostScript). Pe a doua linie, fișierul PostScript este trimis imprimantei.
$ latex plic.tex && dvips -t unknown -T 9.5in,4.125in plic.dvi $ lpr -o landscape plic.ps
După cum veți constata, comanda pdflatex creează un fișier cu dimensiunile corecte ale paginii, spre deosebire de dvips, în ciuda celor spuse de manualul pachetului geometry. Totuși, acest lucru nu va merge decât dacă setările imprimantei pe care o folosiți sunt ajustate la stilul corect al paginii. Aceste setări depind de filtrul imprimantei și de prezența driverelor CUPS, dacă țineți morțiș să listați cu comanda lpr.
Plicuri cu fereastră
O alternativă la afișarea separată a adreselor de pe plicuri constă în utilizarea clasei letter din pachetul KOMA. Aceasta oferă suport pentru trăsături adiționale, de genul paginilor îndoite și plasarea corectă a adresei în cazul plicurilor cu fereastră. Cu clasa de documente scrlttr2 din pachetul KOMA, codul scrisorii de mai devreme devine:
% koma_plic.tex
\documentclass[a4paper,12pt]{scrlttr2}
\usepackage{lmodern}
\usepackage[utf8x]{inputenc} % pentru caractere Unicode
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{url}
\setkomavar{fromname}{Joe Bloggs}
\setkomavar{fromaddress}{21 Bridge Street \\ Smallville \\ Dunwich DU3 4WE}
\setkomavar{fromphone}{0123 45679}
\begin{document}
\begin{letter}{Director \\ Doe \& Co \\ 35 Anthony Road
\\ Newport \\ Ipswich IP3 5RT}
\KOMAoptions{fromphone=true,fromfax=false}
\setkomavar{subject}{Wikipedia}
\setkomavar{customer}{2342}
\opening{Stimate Domnule sau Doamnă,}
Vă scriu în legătură cu proiectul Wikipedia (\url{http://www.wikipedia.org/}),
un efort de a construi o enciclopedie multilingvă completă într-o manieră
în întregime deschisă, pentru a cere permisiunea de a vă utiliza materialul
cu copyright.
% Comanda \ldots produce puncte într-o manieră ce nu va afecta
% redactarea documentului.
\ldots
Acestea fiind spuse, permiteți-mi să vă reiterez că materialul va fi folosit
în scopul nobil de a oferi o colecție gratuită de cunoștințe pentru toată lumea;
evident, doar dacă sunteți de acord. Dacă așa stau lucrurile, puteți vă rog să
completați formularul atașat și să mi-l trimiteți înapoi? Vom aprecia foarte mult
lucrul acesta.
Vă mulțumesc pentru timpul și considerația acordate.
Aștept cu nerăbdare răspunsul dvs.
\closing{Cu stimă,}
\ps{P.S. Puteți găsi textul întreg al licenței GFDL la adresa
\url{http://www.gnu.org/copyleft/fdl.html}.}
\encl{Formular de acordare a permisiunii pentru copyright}
\end{letter}
\end{document}
Rezultatul este generat prin intermediul comenzii
$ pdflatex koma_plic
Plierea paginilor fișierului koma_plic.pdf potrivit liniilor de pliere va face ca rezultatul standardizat să poată fi cuprins în formatele DIN C6/5, DL, C4, C5 sau C6.
Pe lângă valorile implicite, pachetul KOMA include definiții de formate predefinite pentru diverse standarde de scrisori suedeze și japoneze.
Referință: comenzile letter.cls
Comandă | Descriere |
---|---|
\name{} | |
\signature{} | |
\address{} | |
\location{} | |
\telephone{} | |
\makelabels | |
\stopbreaks | |
\startbreaks | |
\opening{} | |
\closing{} | |
\cc{} | Începe o căsuță parbox introdusă cu comanda \ccname: |
\encl{} | Începe o căsuță parbox introdusă cu comanda \enclname: |
\ps | Începe un nou paragraf, în mod normal la încheierea scrisorii |
\stopletter | (empty) |
\returnaddress | (empty) |
\startlabels | |
\mlabel{}{} | |
\descriptionlabel{} | |
\ccname | "cc" |
\enclname | "encl" |
\pagename | "Pagină" |
\headtoname | "Către" |
\today | Dată în format long |
Mediu | Descriere |
---|---|
letter{} | Vezi articolul principal |
description | |
verse | |
quotation | |
quote |
Surse
Importarea de imagini
Strict vorbind, LaTeX nu poate gestiona imaginile direct: pentru a introduce elemente grafice în documente, LaTeX creează o căsuță cu aceeași dimensiune ca imaginea pe care vreți s-o includeți și încorporează imaginea, fără a face alte procesări. Asta înseamnă că va trebui să aveți grijă ca imaginile să fie în formatul corespunzător pentru a putea fi incluse. Asta nu e o problemă prea mare întrucât LaTeX suportă cele mai cunoscute formate de imagini.
Pachetul graphicx
După cum am spus mai devreme, LaTeX nu poate gestiona imaginile direct, așadar vom folosi facilități adiționale: trebuie să încărcăm pachetul graphicx în preambulul documentului:
\usepackage{graphicx}
Acest pachet acceptă ca argument driverul extern de utilizat pentru gestionarea imaginilor; totuși, ultima versiune a acestui pachet se ocupă de toate aspectele, schimbând driverul în funcție de compilatorul folosit, astfel că nu trebuie să vă ocupați personal de aceste lucruri. Și totuși, presupunând că vreți să înțelegeți mai bine cum merge, iată opțiunile posibile pe care le puteți pasa pachetului:
- dvips (implicit dacă compilați cu comanda latex), dacă faceți compilarea cu latex pentru a obține un DVI și vreți să vizualizați documentul cu un program pentru DVI sau PS.
- dvipdfm, dacă compilați cu latex pentru a obține un DVI, pe care intenționați apoi să-l convertiți într-un PDF cu comanda dvipdfm, putând vizualiza documentul cu orice program pentru PDF.
- pdftex (implicit dacă realizați compilarea cu pdflatex), dacă compilați cu pdftex pentru a obține un PDF pe care îl puteți vedea cu un program de vizualizare pentru PDF-uri.
Din nou, nu trebuie să pasați nicio opțiune pachetului, întrucât setările implicite sunt destul de bune în cele mai multe cazuri.
În multe privințe, importarea imaginilor în document folosind sistemul LaTeX este destul de simplă, îndată ce aveți imaginile în formatul corespunzător! De aceea, mă tem că pentru cei mai mulți utilizatori, efortul cel mai mare va fi convertirea fișierelor grafice. În continuare vom vedea ce formate pot avea imaginile pe care le puteți include, iar apoi vom vedea cum puteți face asta.
Opțiunile documentului
Pachetele graphics și graphicx recunosc opțiunile "draft" și "final" date în comanda \documentclass[...]{...}
la începutul fișierului. Opțiunea "draft" va împiedica includerea imaginii în fișierul de ieșire și va înlocui conținutul cu numele fișierului ce conține imaginea. Opțiunea "final" va face ca imaginea să fie inclusă în fișierul de ieșire. Valoarea implicită este "draft".
Formate suportate de imagini
După cum am explicat mai devreme, formatele de imagini pe care le vom putea folosi depind de driverul utilizat de graphicx, însă, de vreme ce driverul este ales în mod automat în funcție de compilator, formatele permise de imagini vor depinde de compilatorul folosit.
Compilarea cu latex
Singurul format pe care îl puteți include când compilați cu comanda latex este Encapsulated PostScript (EPS).
Formatul EPS a fost definit de firma Adobe Systems pentru a facilita importarea de către aplicații a elementelor grafice bazate pe formatul PostScript în documente. Deoarece un fișier EPS declară dimensiunea imaginii, facilitează sistemelor de genul LaTeX aranjarea textului și graficii. EPS este un format vectorial — asta înseamnă că poate avea o calitate foarte mare dacă este creat în mod corespunzător cu programe de grafică vectorială. Putem stoca de asemenea imagini bit-map în format EPS, însă vor necesita foarte mult spațiu pe disc.
Multe pachete cu programe grafice au abilitatea de a salva imagini în format EPS (extensia e în mod normal .eps). Iată câteva exemple de programe ce pot genera fișiere EPS:
- Tipărirea sub forma unui fișier EPS:
- În Windows, PDFCreator este un program open source ce poate crea atât fișiere PDF, cât și EPS. Instalează o imprimantă virtuală care poate fi accesată din alte programe ce au o intrare "print..." în meniu (practic orice program).
- Crearea și convertirea elementelor de grafică vectorială:
- Programele comerciale de grafică vectorială, de genul Adobe Illustrator, CorelDRAW și FreeHand pot citi și scrie fișiere EPS. Totuși, aceste produse sunt limitate la platformele Windows și Mac OS.
- Inkscape poate salva fișiere în formatul vectorial EPS și rulează pe platforme multiple. Inkscape nu poate deschide fișiere EPS direct; totuși, cu programul utilitar epstopdf puteți converti EPS în PDF, iar Inkscape poate importa PDF-uri. Începând cu versiunea 0.48, Inkscape are o opțiune specială de output PDF+LaTeX (și EPS/PS). Vezi site-ul Inkscape.
- Dia este un program utilitar cross platform pentru diagrame, ce poate exporta EPS-uri.
- Crearea și convertirea elementelor grafice bazate doar pe raster în EPS:
- GIMP are o interfață grafică și este multi-platform.
- Pentru linia de comandă:
- Sam2p (
convert
) sau - ImageMagick (
convert
) sau - GraphicsMagick (
gm convert
).
- Sam2p (
- Aceste trei programe operează cam la fel, și pot face conversii între cele mai multe formate grafice. Sam2p este totuși cel mai recent dintre ele și pare să ofere cea mai bună calitate, dar și să dea cele mai mici fișiere de ieșire.
- imgtops. Un mic program utilitar pentru grafică.
- Crearea de reprezentări grafice vectoriale de calitate pentru publicații:
- Gnuplot, ce produce grafică științifică din 1986.
- R, figuri statistice și științifice.
- Generic Mapping Tools (GMT), care generează hărți și o serie de reprezentări grafice foarte personalizabile.
- Gnumeric, ce generează foi de calcul, poate exporta SVG, EPS, PDF.
- matplotlib, bibliotecă pentru reprezentări grafice, scrisă în Python, ce poate exporta în formate PDF și EPS.
Trebuie să apelați la câteva trucuri pentru a putea importa alte formate decât EPS în documentele DVI, însă acestea sunt foarte complicate. Pe de altă parte, convertirea oricărei imagini în format EPS este foarte simplă, astfel că nu are rost să le luăm în considerare aici.
Compilarea cu pdflatex
Dacă compilați cu pdflatex
pentru a produce un PDF, aveți mai multe opțiuni. Nu puteți insera fișiere EPS. Puteți insera:
- JPG, folosit foarte mult pe Internet, camere digitale, etc. Reprezintă cea are bună alegere dacă vreți să inserați fotografii.
- PNG, un format foarte comun (chiar dacă nu în așa măsură ca JPG); este un format fără pierderi la dezarhivare (lossless) și reprezintă cea mai bună alegere pentru diagrame (dacă nu ați reușit să generați o versiune vectorială) și instantanee ale ecranului ('screenshots').
- PDF, foarte mult folosit pentru documente, însă poate fi utilizat și pentru a stoca imagini. Suportă atât imagini vectoriale, cât și imagini bit-map, însă nu se recomandă pentru ultimele, de vreme ce JPG sau PNG oferă același rezultat folosind mai puțin spațiu pe disc.
- Formate vectoriale, ce pot fi folosite cu Inkscape. Există instrucțiuni legate de cum puteți salva imaginile vectoriale în format PDF înțeles de LaTeX și puteți face sistemul LaTeX să gestioneze automat stilurile și dimensiunile textului din imagini.
JPG și PNG sunt suportate de orice program de procesare de imagini, astfel că puteți să folosiți formatul preferat. Dacă vreți să creați PDF-uri vectoriale de calitate înaltă pe care să le încorporați în documentul final PDF, puteți utiliza programul Inkscape: acesta oferă suport pentru numeroase formate vectoriale, astfel că poate face conversii dintr-un format în altul. De asemenea, puteți crea imaginile direct cu Inkscape. Dacă vreți să realizați reprezentări grafice matematice, Gnuplot poate salva datele în orice format.
Notați că fișierele EPS nu pot fi folosite cu comanda pdflatex, totuși pot fi convertite în format PDF cu ajutorul programului utilitar epstopdf, inclus în majoritatea distribuțiilor LaTeX. Acesta poate fi chemată automat de LaTeX folosind pachetul epstopdf. În Windows, puteți converti mai multe fișiere scriind următoarea linie într-un fișier batch (un fișier text cu extensia .BAT) situat în același director cu imaginile:
for %%f in (*.eps) do epstopdf %%f
și care poate fi rulat din linia de comandă. Dacă epstopdf produce pagini întregi, în care sunt incluse undeva imaginile, utilizați
$ epstopdf --gsopt=-dEPSCrop foo.eps
sau încercați programul utilitar ps2pdf
$ ps2pdf -dEPSCrop foo.eps
pentru a obține documentul final PDF.
Imaginile pot fi salvate în diverse formate în scopuri diferite. Spre exemplu, un director poate conține un fișier "diagram.pdf" pentru tipărirea la rezoluție înaltă, în timp ce "diagram.png" poate fi folosit pentru previzualizarea pe monitor. Puteți specifica imaginea de utilizat de programul pdflatex
prin intermediul următoarei comenzi plasate în preambulul documentului:
\DeclareGraphicsExtensions{.pdf,.png,.jpg}
care specifică fișierele ce vor fi incluse în document, dacă există fișiere cu același nume de bază, însă cu extensii diferite.
Includerea imaginilor
Acum că am văzut ce formate putem include și cum putem gestiona aceste formate, este timpul să învățăm cum le putem include în document. După ce ați încărcat pachetul graphicx în preambul, puteți include imagini cu comanda \includegraphics, a cărei sintaxă se prezintă după cum urmează:
\includegraphics[atr1=val1, atr2=val2, ..., atr_n=val_n]{nume_imagine}
După cum sper că știți deja, argumentele din paranteze drepte sunt opționale, în vreme ce argumentele din acolade sunt obligatorii. Argumentul din acolade este numele imaginii. Scrieți fișierul cu imaginea fără extensie. În felul acesta, compilatorul LaTeX va căuta formatele suportate de imagini din acel director și-l va alege pe cel mai bun (EPS dacă outputul este DVI; JPEG, PNG sau PDF dacă outputul este PDF). Varietatea atributelor posibile ce pot fi setate este destul de mare, astfel că le descriem în continuare numai pe cele mai cunoscute:
width=xx | Specifică lățimea dorită a imaginii importate la xx. | Notă: raportul dintre lățime și înălțime se va menține numai dacă specificați doar una dintre dimensiuni. |
height=xx | Specifică înălțimea dorită a imaginii importate la xx. | |
keepaspectratio | Acesta poate fi setat la valorile adevărat (true) sau fals (false). La valoarea adevărat, va redimensiona imaginea după lățime și înălțime, însă nu va distorsiona imaginea, astfel că nu se vor depăși nici lățimea, nici înălțimea. | |
scale=xx | Redimensionează imaginea cu factorul de scară dorit. De exemplu, 0,5 va reduce la jumătate dimensiunile imaginii, în vreme ce o valoare de 2 le va dubla. | |
angle=xx | Această opțiune poate roti imaginea cu xx grade (în sens trigonometric, invers acelor de ceasornic). | |
trim=l b r t | Această opțiune va decupa imaginea importată după l la stânga (left), b din partea inferioară (bottom), r de la dreapta (right) și t din partea superioară (top), unde l, b, r și t sunt lungimi. | |
clip | Pentru ca opțiunea trim să meargă, trebuie să setați clip=true. | |
page=x | Dacă fișierul ce conține imaginea este un PDF cu mai multe pagini, acest parametru vă permite să utilizați o altă pagină decât prima. |
Pentru a folosi mai mult decât o opțiune la un moment dat, separați opțiunile prin virgule. Ordinea opțiunilor contează. Spre exemplu, mai întâi ar trebui să rotiți imaginea (cu un unghi), iar apoi să-i specificați lățimea.
Imaginile incluse vor fi inserate doar acolo unde scrieți codul, iar compilatorul le va trata ca pe niște "căsuțe mari". După cum vom vedea într-un capitol ulterior, asta va genera un output de slabă calitate, astfel că ar fi mai bine să plasați imaginile în obiectele flotante.
Exemple
OK, a venit timpul să vedeți graphicx în acțiune. Iată câteva exemple:
\includegraphics{chick}
Această comandă importă pur și simplu imaginea, fără altă procesare suplimentară. Totuși, este foarte mare (așadar n-o voi afișa aici!). Deci, să-i reducem dimensiunile:
\includegraphics[scale=0.5]{chick} |
Dimensiunile imaginii au fost reduse la jumătate. Dacă vreți să fiți mai specifici și să dați lungimi efective dimensiunilor imaginii, puteți proceda în felul următor:
\includegraphics[width=2.5cm]{chick} |
Puteți specifica scara și în raport cu lățimea liniei din mediul local (\linewidth
), cu lățimea textului de pe o pagină (\textwidth
) sau cu înălțimea textului de pe pagină (\textheight
) (iamginile nu sunt afișate):
\includegraphics[width=0.5\linewidth]{chick}
\includegraphics[width=0.75\textwidth]{chick}
\includegraphics[height=0.75\textheight]{chick}
Pentru a face o rotație (am redus de asemenea dimensiunile imaginii):
\includegraphics[scale=0.5, angle=180]{chick} |
Și în sfârșit, iată un exemplu de decupare a imaginii dacă vreți să evidențiați o anumită zonă a acesteia:
% ordinea parametrilor opțiunii de decupare (''trim''): stânga jos dreapta sus
\includegraphics[trim = 10mm 80mm 20mm 5mm, clip, width=3cm]{chick} |
Observați prezența opțiunii clip
, fără de care nu se poate efectua operația de decupare.
După cum probabil ați observat, denumirea fișierului ce conține imaginea este dată întotdeauna fără extensie: LaTeX va avea grijă să obțină versiunea corespunzătoare din directorul curent. Considerați situația următoare: ați adăugat câteva imagini în format JPG documentului și l-ați compilat cu succes pentru a obține un format de ieșire PDF. Acum îl compilați pentru a obține un DVI, rulați comanda latex și obțineți o mulțime de erori... întrucât ați uitat să includeți în director versiunile EPS ale imaginilor pe care vreți să le inserați. La începutul acestei cărți, am spus că aceeași sursă LaTeX poate fi compilată atât în format DVI, cât și PDF fără nicio modificare. Acest lucru este adevărat, atâta vreme cât nu utilizați anumite pachete, iar graphicx este unul dintre acestea. În orice caz, încă puteți folosi ambele compilatoare și cu documente ce includ imagini, atâta timp cât vă amintiți să furnizați imaginile în ambele formate (EPS și unul dintre JPG, PNG și PDF).
Margini
Puteți crea margini în jurul unei imagini în LaTeX cu ajutorul comenzii fbox
:
\setlength\fboxsep{0pt}
\setlength\fboxrule{0.5pt}
\fbox{\includegraphics{chick}}
Puteți controla spațiul liber dintre margini și imagine cu comanda \setlength\fboxsep{0pt}
, în cazul de față valoarea 0pt înseamnă lipsa unui asemenea spațiu liber, astfel încât marginile vor fi plasate strâns în jurul imaginii. Puteți controla grosimea marginilor cu comanda \setlength\fboxrule{0.5pt}
.
Stocarea imaginilor
Există o cale să transmiteți sistemului LaTeX unde să caute după imagini: spre exemplu, poate fi util să stocați imaginile într-un singur loc pentru a putea fi utilizate în mai multe documente. Răspunsul îl constituie comanda \graphicspath, care are un argument ce dă calea unui director adițional în care vreți ca sistemul LaTeX să caute imagini când un fișier folosește comanda \includegraphics. Iată câteva exemple (/ de la sfârșit este necesar):
\graphicspath{{c:\imagini~1\camera}}
\graphicspath{{c:/imagini~1/camera/}} *
\graphicspath{{/var/lib/imagini/}}
\graphicspath{{./imagini/}}
\graphicspath{{dir_imagini/}{alt_dir/}{al_treilea_folder/}}
\graphicspath{{imagini//}}
* merge în Windows XP.
Vă rugăm consultați http://www.ctan.org/tex-archive/macros/latex/required/graphics/grfguide.pdf. Ultima comandă caută recursiv fișierele datorită semnului dublu slash "//". În exemplul prezentat, aveți un director numit "imagini" în același director cu fișierul .tex principal (adresă relativă). În maniera aceasta, puteți crea un arbore de directoare în cadrul acestuia ce ar putea de exemplu să faciliteze sortarea/găsirea/editarea unui număr mare de fișiere ce conțin imagini. Rețineți că această abordare poate acapara foarte multe resurse.
După cum ați observat, în primul exemplu am utilizat o formă "sigură" (MS-DOS) a unui folder de imagini din Windows, întrucât, după cum știți, e o idee proastă să folosiți nume de directoare ce conțin spații. Utilizând căi absolute, \graphicspath face fișierele mai puțin portabile, în timp ce dacă folosiți căi relative (ca în ultimul exemplu), nu ar trebui să aveți vreo problemă de portabilitate, însă rețineți să nu utilizați spații în denumirile de fișiere. Ca o alternativă, dacă utilizați comanda pdflatex pentru compilare, puteți folosi pachetul grffile, care vă va permite să utilizați spații în denumirile fișierelor.
Imagini ca figuri
Există multe scenarii în care ați putea dori să însoțiți o imagine cu un titlu sau o legendă și poate cu niște referințe. Acest lucru se poate face cu ajutorul mediului figure. Codul următor prezintă minimul necesar pentru a utiliza o imagine ca pe o figură.
\begin{figure}[htb]
\includegraphics{imagine.png}
\end{figure}
Codul de mai sus este relativ simplu și nu oferă multă funcționalitate. Codul ce urmează prezintă o utilizare mai extinsă a mediului figure, care este aproape universal utilizat, oferind un titlu sau o legendă și o etichetă, centrând imaginea și reducând dimensiunile la 80% din lățimea textului.
\begin{figure}[htb]
\begin{center}
\leavevmode
\includegraphics[width=0.8\textwidth]{imagine.png}
\end{center}
\caption{O imagine incredibilă}
\label{fig:imagine_incredibilă}
\end{figure}
Mediul figure nu se folosește exclusiv pentru imagini. Puteți găsi mai multe informații despre acest mediu și utilizarea sa în capitolul Elemente flotante, figuri și note.
Text în jurul imaginilor
Text poate de asemenea să fie pus în jurul imaginilor. (Acest lucru este deosebit de util dacă includeți imagini înalte.)
% secțiune de import
\usepackage{wrapfig}
% secțiune de conținut
\begin{wrapfigure}{r}{8cm} % "l" pentru stânga (''left'') sau
% "r" pentru dreapta (''right'') paginii, 8cm este lățimea figurii
\centering
\includegraphics[height=80mm]{imagine.jpg}
\caption{Titlul imaginii}
\label{img}
\end{wrapfigure}
Includerea de pagini întregi din PDF-uri
Există un pachet special pentru asta: pdfpages. Acesta permite inserarea de pagini întregi așa cum sunt și a mai multor pagini pe o pagină din documentul de ieșire (de exemplu, 2x3). Vezi mai multe informații în această documentație.
Crearea de elemente grafice vectoriale
TikZ/PGF
Mai multe informații introductive despre TikZ puteți găsi în capitolul Crearea de imagini.
Puteți realiza direct imagini cu comenzi TeX, folosind pachetul tikz: http://ftp.dante.de/tex-archive/help/Catalogue/entries/pgf.html Acesta include foarte multă documentație și numeroase exemple.
% Necesită includerea \usepackage{tikz} în preambul
\begin{figure}
\centering
\begin{tikzpicture}
\draw[thick,rounded corners=8pt]
(0,0) -- (0,2) -- (1,3.25) -- (2,2) -- (2,0) -- (0,2) -- (2,2) -- (0,0) -- (2,0);
\end{tikzpicture}
\caption{Titlul figurii}
\label{fig:test}
\end{figure}
Puteți găsi o colecție amplă de exemple la adresa: http://www.texample.net/tikz/
Puteți găsi pachete bazate pe TikZ (de exemplu pentru trasarea circuitelor electrice) la această adresă: http://ftp.dante.de/tex-archive/help/Catalogue/bytopic.html#pgftikzsection
Xfig
Puteți realiza grafică vectorială cu ajutorul programului Xfig (vezi capitolul Instalare), care poate fi exportată în formate potrivite pentru LaTeX. În Xfig, îndată ce ați salvat imaginea sub forma unui fișier test.fig, trebuie să-l exportați cu ajutorul meniului File > Export din fereastra principală a Xfig, iar apoi să selectați "Combined PS/Latex (both parts)" din lista de limbaje. Dacă nu schimbați alte setări, în același director cu test.fig vor fi create două alte fișiere, și anume: test.pstex_t și test.pstex. Puteți plasa atunci figura într-un document LaTeX:
\begin{figure}
\centering
\input{./xfig/test.pstex_t}
\caption{Titlul figurii}
\label{fig:test}
\end{figure}
ipe
Editorul extensibil de imagini Ipe este un program gratuit pentru grafică vectorială ce creează figuri în formate PDF și EPS. Spre deosebire de Xfig, Ipe reprezintă fonturile LaTeX la dimensiunea lor corectă pe ecran, ceea ce facilitează plasarea de etichete textuale la locul potrivit. Ipe are de asemenea numeroase moduri de apucare (snapping) — spre exemplu, apucare de puncte, linii sau intersecții), folosite pentru construcții geometrice.
Inkscape
Încă un program pentru crearea de grafică vectorială, disponibil la adresa http://www.inkscape.org/. Merge cu fișiere Scalable Vector Graphics (SVG), deși poate exporta în multe alte formate, ce pot fi incluse în fișiere LaTeX, de genul EPS și PDF. Începând cu versiunea 0.48, există opțiunea de output combinat PDF/EPS/PS+LaTeX, ca în cazul programului XFig.
Editarea imaginilor EPS
După cum a fost descris mai sus, puteți importa conținut grafic în LaTeX din programe externe sub formă de fișiere EPS. Însă câteodată veți dori să editați sau să retușați aceste fișiere grafice. Un fișier EPS poate fi editat cu orice editor de texte, de vreme ce este scris în format ASCII. Într-un editor de texte, puteți realiza operații simple, de genul înlocuirii șirurilor de caractere sau mutării și copierii acestora, însă orice lucru mai complex este greu de realizat.
Pentru a edita cum trebuie un fișier EPS, îl puteți converti într-un format editabil cu ajutorul programului pstoedit. Spre exemplu, pentru a obține un fișier editabil din formatul Xfig, dați următoarea comandă:
$ pstoedit -f fig input.eps output.fig
Iar pentru a obține un fișier SVG pentru Inkscape, scrieți în terminal:
$ pstoedit -f plot-svg input.eps output.svg
Câteodată programul pstoedit nu reușește să creeze formatul țintă (spre exemplu, când fișierul EPS conține informații ce pot fi decupate). O cale mai robustă de editare a fișierelor EPS constă în convertirea mai întâi a fișierului în PDF, urmată de importarea PDF-ului rezultat în Inkscape. Inkscape folosește biblioteca numită Cairo, care face o transformare de calitate ridicată a figurii EPS inițiale:
$ epstopdf input.eps
$ inkscape input.pdf
Când toate cele de mai sus eșuează, puteți simplifica fișierul EPS înainte de a încerca alte conversii, cu ajutorul programului eps2eps (vezi și secțiunea următoare):
$ eps2eps input.eps input-e2.eps
Asta va converti toate fonturile în formate dinainte de generarea imaginilor, lucru care este de dorit când propuneți manuscrise pentru publicare. Totuși, ca dezavantaj, fonturile NU sunt convertite în linii, ci în hărți de biți, ceea ce reduce calitatea fonturilor.
Convertirea EPS color în tonuri de gri
Câteodată figurile EPS color trebuie convertite în figuri alb-negru sau cu tonuri de gri (grayscale) pentru a corespunde cerințelor de publicare. Asta se poate face cu programele eps2eps din pachetul Ghostscript și pscol:
$ eps2eps input.eps input-e2.eps
$ pscol -0gray input-e2.eps input-gray.eps
Crearea de imagini
În capitolul anterior, ați învățat că puteți importa sau lega elemente grafice în LaTeX, cum ar fi imaginile create în alt program sau luate din altă parte. În capitolul de față, veți învăța să creați sau să includeți imagini direct într-un document LaTeX. Elementele grafice sunt marcate folosind comenzi similare celor pentru tipărirea de text aldin sau pentru formulele matematice, după cum se vede în exemplul următor:
\begin{displaymath}
\xymatrix{ \bullet \ar[r] \ar@{.>}[r] & \bullet }
\end{displaymath}
Sunt mai multe pachete care oferă suport pentru crearea de imagini direct în LaTeX, între care menționăm picture, xy-Pic și PGF/TikZ, descrise în secțiunile următoare.
Rezumat
Mediul picture permite realizarea de imagini direct în LaTeX. Pe de o parte, există restricții foarte severe, de vreme ce pantele segmentelor de linii, ca și razele cercurilor sunt limitate la intervale reduse de valori. Pe de altă parte, mediul picture din LaTeX2e oferă comanda \qbezier, cu "q" de la quadratic (pătratic). Multe curbe utilizate frecvent, de genul cercurilor, elipselor și catenelor pot fi aproximate în mod satisfăcător cu ajutorul curbelor pătratice Bézier, deși asta poate necesita un efort matematic deosebit. Dacă folosiți un limbaj de programare ca Java să generați grupuri \qbezier de fișiere de intrare LaTeX, mediul picture devine foarte versat.
Deși realizarea imaginilor direct în LaTeX are serioase limitări și este deseori greoaie, există totuși motive pentru a prefera această abordare. Documentele produse în felul acesta sunt "mici" în ce privește dimensiunea fizică în octeți și nu au alte fișiere grafice asociate.
Pachete de genul epic, eepic sau pstricks îmbunătățesc mediul picture inițial și sporesc în mare măsură facilitățile grafice oferite de LaTeX.
Deși primele două pachete doar îmbunătățesc mediul picture, pachetul pstricks are propriul mediu grafic, pspicture. Avantajul oferit de pstricks constă în faptul că acest pachet folosește din plin posibilitățile PostScript. Din păcate, prezintă o deficiență serioasă: nu merge cu pdflatex. Ca atare, pentru a genera un PDF dintr-o sursă TeX trebuie să faceți transformările TeX→DVI→PDF, pierzând hyperlinkurile, metadatele și trăsăturile microtipografice păstrate de pdflatex. În plus, numeroase pachete au fost scrise pentru scopuri specifice. Unul dintre ele este xy-pic, descris la sfârșitul acestui capitol. Foarte multe dintre aceste pachete sunt descrise detaliat în cartea The LaTeX Graphics Companion (a nu se confunda cu The LaTeX Companion).
Poate programul grafic cel mai util pentru LaTeX este MetaPost, perechea programului METAFONT al lui Donald E. Knuth. MetaPost are limbajul de programare matematică foarte sofisticat și cuprinzător METAFONT. Spre deosebire de METAFONT însă, care generează hărți de biți, MetaPost generează fișiere încapsulate PostScript, care pot fi importate în LaTeX. Pentru o introducere, vezi A User's Manual for MetaPost. Puteți găsi o dezbatere foarte amplă a strategiilor LaTeX și TEX legate de grafică (și fonturi) în lucrarea TEX Unbound.
Ultimul dar evident nu cel din urmă este sistemul PGF/TikZ. În vreme ce sistemele anterioare (picture, epic, pstricks sau metapost) se axează pe cum se desenează, TikZ pune accentul în principal pe ce se desenează. Se poate spune că TikZ este pentru grafica din LaTeX ceea ce LaTeX este pentru redactarea digitală de documente. Se recomandă să-l folosiți dacă distribuția LaTeX îl include.
Mediul picture
Comenzi de bază
În orice distribuție LaTeX aveți la dispoziție un mediu picture, fără a trebui să încărcați un pachet extern. Acest mediu este creat cu una din următoarele două comenzi:
\begin{picture}(x, y) ... \end{picture}
sau
\begin{picture}(x, y)(x0, y0) ... \end{picture}
Numerele x, y, x0, y0 sunt valori (lungimi) în unități de \unitlength, care se poate reseta oricând (însă nu într-un mediu picture) cu o comandă de genul
\setlength{\unitlength}{1.2cm}
Valoarea implicită a \unitlength este 1pt. Prima pereche opțională, , face rezervarea, în cadrul documentului, a spațiului dreptunghiular pentru imagini. A doua pereche opțională, , atribuie coordonate arbitrare colțului stâng inferior al dreptunghiului rezervat.
Cele mai multe comenzi de desenare au una din formele:
\put(x, y){obiect}
sau
\multiput(x, y)(dx, dy){n}{obiect}
Curbele Bézier reprezintă o excepție. Acestea sunt trasate cu comanda:
\qbezier(x1, y1)(x2, y2)(x3, y3)
Segmente de linii
Puteți trasa segmente de linii cu comanda:
\put(x, y){\line(x1, y1){lungime}}
Comanda \line are două argumente:
- un vector pentru direcție și
- o lungime.
Componentele vectorului de direcție se limitează la întregii (−6, −5, ... , 5, 6) și trebuie să fie prime între ele (singurul divizor comun 1). Figura de mai jos ilustrează toate cele 25 valori posibile din primul cvadrant. Lungimea depinde de \unitlength. Argumentul de lungime reprezintă coordonata verticală în cazul unui segment de linie verticală, și coordonata orizontală în toate celelalte cazuri.
Săgeți
Puteți trasa săgeți cu comanda
\put(x, y){\vector(x1, y1){lungime}}
Pentru săgeți, componentele vectorului de direcție sunt chiar și mai restrânse decât pentru segmentele de linii, și anume la întregii (−4, −3, ... , 3, 4). Componentele trebuie să fie de asemenea prime între ele (niciun alt divizor comun în afara lui 1). Notați efectul comenzii \thicklines asupra celor două săgeți orientate în direcția stânga sus.
Cercuri
Comanda
\put(x, y){\circle{diametru}}
desenează un cerc cu centrul (x, y) și diametrul (nu raza) specificat de diametru. Mediul picture permite diametre numai până la aproximativ 14mm, și chiar și sub această limită, nu toate diametrele sunt posibile. Comanda \circle* produce discuri (cercuri pline). La fel ca în cazul segmentelor de linii, probabil va trebui să apelați la pachete adiționale, cum sunt eepic sau pstricks.
Mai aveți o posibilitate în mediul picture. Dacă nu vă dați la o parte de la realizarea calculelor necesare (sau dacă le lăsați în seama unui program), puteți realiza cercuri și elipse arbitrar de mari trasând curbe Bézier pătratice (câte o curbă pentru un sfert de cerc, de exemplu). Vezi Grafica în LaTeX2e pentru exemple și fișiere sursă Java.
Text și formule
După cum arată exemplul următor, puteți scrie text și formule în acest mediu cu comanda \put în modul obișnuit:
\multiput și \linethickness
Comanda
\multiput(x, y)(dx, dy ){n}{obiect}
are 4 argumente: punctul de pornire, vectorul de translație de la un obiect la următorul, numărul de obiecte și obiectul de desenat. Comanda \linethickness se aplică la segmente orizontale și verticale de linii, însă nu la segmente oblice de linii, nici la cercuri. Se aplică, totuși, la curbe pătratice Bézier!
Ovale
Comanda
\put(x, y){\oval(l, î)}
sau
\put(x, y){\oval(l, î)[poziție]}
produce un oval centrat în (x, y) de lățime l și înălțime î. Parametrii opționali de poziție t, b, l, r se referă la partea de sus ("top"), partea de jos ("bottom"), stângă ("left") și dreaptă ("right") și pot fi combinați, după cum ilustrează exemplul. Puteți controla grosimea liniei cu două tipuri de comenzi: \linethickness{lungime} pe de o parte și \thinlines și \thicklines pe de alta. În vreme ce \linethickness{lungime} se aplică numai la linii orizontale și verticale (și la curbe pătratice Bézier), \thinlines și \thicklines se aplică și la segmente oblice de linii, ca și la cercuri și ovale.
Utilizarea mai multor căsuțe predefinite pentru imagini
O căsuță pentru imagini poate fi declarată cu comanda
\newsavebox{nume}
apoi definită cu
\savebox{nume}(lățime,înălțime)[poziție]{conținut}
și în cele din urmă trasată oricât de des doriți cu
\put(x, y){\usebox{nume}}
Parametrul opțional de poziție are efectul de a defini "punctul de susținere" pentru căsuța salvată (savebox). În exemplul de mai jos este setată la "bl", lucru care așază punctul de susținere în colțul stâng inferior al căsuței generate. Ceilalți specificatori de poziție sunt partea superioară (top) și dreaptă (right).
Argumentul nume se referă la o structură de stocare LaTeX și de aceea este de natura unei comenzi (ceea ce explică caracterele backslash din exemplul de față). Imaginile cuprinse în căsuțe pot fi imbricate (incluse una în alta): în exemplul nostru, \foldera se folosește în definiția \folderb. Trebuia să utilizăm comanda \oval aici întrucât comanda \line nu merge dacă segmentul este mai mic de aproximativ 3 mm.
Curbe pătratice Bézier
Comanda
\qbezier(x1, y1)(x, y)(x2, y2)
trasează o curbă pătratică Bézier, unde , sunt capetele intervalului, iar punctul de control intermediar. Pantele corespunzătoare, și , se pot obține din ecuațiile
Vezi Grafica în LaTeX2e pentru un program Java care generează linia de comandă \qbezier necesară.
După cum arată acest exemplu, împărțirea unui cerc în 4 curbe pătratice Bézier nu este suficientă. Aveți nevoie de cel puțin 8. Figura prezintă din nou efectul comenzii \linethickness asupra liniilor orizontale și verticale, precum și al comenzilor \thinlines și \thicklines asupra segmentelor oblice de linii. Exemplul de mai sus evidențiază de asemenea că ambele tipuri de comenzi afectează curbele pătratice Bézier, fiecare comandă suprascriind (anulând) pe cele dinainte.
Catene
În această figură, fiecare jumătate simetrică a catenei este aproximată printr-o curbă pătratică Bézier. Jumătatea dreaptă a curbei se termină în punctul (2, 2.7622), panta având aici valoarea m = 3.6269. Folosind din nou ecuațiile de la curbele Bézier, putem calcula punctele intermediare de control. Acestea sunt (1.2384, 0) și (−1.2384, 0). Cruciulițele indică punctele catenei reale. Eroarea abia se observă, fiind mai mică de un procent. Acest exemplu evidențiază folosirea argumentului opțional al comenzii \begin{picture}. Imaginea este definită în coordonate "matematice" convenabile, în timp prin comanda
\begin{picture}(4.3,3.6)(-2.5,-0.25)
colțul stâng inferior (marcat de discul negru) primește coordonatele (−2.5,−0.25).
Trasarea graficelor
Punctele de control ale celor două curbe Bézier au fost calculate cu formulele menționate mai sus la secțiunea Curbe pătratice Bézier. Ramura pozitivă este determinată de , și , . Din nou, imaginea este definită în coordonate matematice convenabile, iar colțul stâng inferior primește coordonatele matematice (−3,−2) (discul negru).
Mediul picture și gnuplot
Pachetul de reprezentare grafică științifică gnuplot are posibilitatea de a genera direct datele într-un mediu LaTeX picture. Este deseori mult mai convenabil să faceți graficul direct în LaTeX, deoarece asta vă scutește de gestionarea potențial problematică a fișierelor PostScript. Reprezentarea grafică de date științifice (sau, într-adevăr, figuri matematice) în felul acesta vă oferă un control mult mai mare, și desigur facilități de redactare, decât vă oferă alte mijloace (de genul PostScript). Puteți adăuga apoi astfel de imagini la un document cu o comandă \include{}.
Notă: gnuplot este un program de calculator foarte util ce oferă o serie de comenzi. O descriere exhaustivă a gnuplot depășește sfera acestei cărți.
Xy-pic
xy este un pachet special pentru trasarea de diagrame. Pentru a-l folosi, adăugați linia următoare la preambulul documentului:
\usepackage[all]{xy}
unde "all" (tot) semnifică faptul că vreți să încărcați un set standard amplu de funcții din Xy-pic, potrivite pentru dezvoltarea tipurilor de diagrame discutate aici.
Diagramele Xy-pic se reprezintă în cea mai mare parte pe o pânză matriceală, în care fiecare element al diagramei este așezat într-un slot din matrice:
\begin{displaymath}
\xymatrix{A & B \\
C & D }
\end{displaymath} |
Comanda \xymatrix trebuie folosită în modul matematic. Aici, am specificat două linii și două coloane. Pentru a face din această matrice o diagramă, adăugăm săgeți orientate cu ajutorul comenzii \ar.
\begin{displaymath}
\xymatrix{ A \ar[r] & B \ar[d] \\
D \ar[u] & C \ar[l] }
\end{displaymath} |
Comanda pentru săgeată (arrow) este așezată în celula de origine pentru săgeată. Argumentele sunt reprezentate de direcția pe care ar trebui s-o urmeze săgeata: sus (up), jos (down), dreapta (right) și stânga (left).
\begin{displaymath}
\xymatrix{
A \ar[d] \ar[dr] \ar[r] & B \\
D & C }
\end{displaymath} |
Pentru a trasa diagonale, folosiți mai mult de o direcție. De fapt, puteți repeta direcțiile pentru a face săgeți mai mari.
\begin{displaymath}
\xymatrix{
A \ar[d] \ar[dr] \ar[drr] & & \\
B & C & D }
\end{displaymath} |
Puteți trasa diagrame și mai interesante prin adăugarea unor etichete săgeților. Pentru a face asta, folosiți operatorii obișnuiți de scriere la exponent și la indice.
\begin{displaymath}
\xymatrix{
A \ar[r]^f \ar[d]_g & B \ar[d]^{g'} \\
D \ar[r]_{f'} & C }
\end{displaymath} |
După cum am arătat, utilizați acești operatori ca în modul matematic. Singura diferență este aceea că la exponent înseamnă "deasupra săgeții", iar la indice înseamnă "sub săgeată". Există și un al treilea operator, bara verticală: | Aceasta face ca textul să fie așezat în interiorul săgeții.
\begin{displaymath}
\xymatrix{
A \ar[r]|f \ar[d]|g & B \ar[d]|{g'} \\
D \ar[r]|{f'} & C }
\end{displaymath} |
Pentru a desena o săgeată cu o gaură în ea, scrieți \ar[...]|\hole. În unele situații, este important să faceți deosebire între diferite tipuri de săgeți. Puteți face asta etichetându-le, sau schimbându-le înfățișarea:
Observați diferența dintre următoarele două diagrame:
\begin{displaymath}
\xymatrix{ \bullet \ar[r] \ar@{.>}[r] & \bullet }
\end{displaymath} |
|
\begin{displaymath}
\xymatrix{
\bullet \ar@/^/[r]
\ar@/_/@{.>}[r] &
\bullet }
\end{displaymath} |
Modificatorii dintre slash-uri definesc modul de trasare a curbelor. Xy-pic oferă multe căi prin care puteți influența trasarea curbelor; pentru mai multe informații, vezi documentația Xy-pic.
Dacă vreți o introducere mai cuprinzătoare, consultați pagina Xy-pic, ce conține linkuri către multe alte tutoriale, ca și documentație de referință.
PGF/TikZ
O soluție foarte bună și poate cea mai bună o constituie PGF/TikZ. TikZ poate produce imagini portabile în formate PDF și PostScript. Puteți realiza imaginile direct cu comenzi TeX folosind pachetul tikz. Acesta este însoțit de o foarte bună documentație și numeroase exemple.
\usepackage{tikz} % în preambul
...
\begin{figure}
\centering
\begin{tikzpicture}
\draw[thick,rounded corners=8pt]
(0,0) -- (0,2) -- (1,3.25) -- (2,2) -- (2,0) -- (0,2) -- (2,2) -- (0,0) -- (2,0);
\end{tikzpicture}
\caption{Titlul figurii}
\label{fig:test}
\end{figure}
Găsiți foarte multe exemple aici: http://www.texample.net/tikz/
Puteți găsi și alte pachete bazate pe TikZ (spre exemplu, pentru trasarea de circuite electrice) aici: http://ftp.dante.de/tex-archive/help/Catalogue/bytopic.html#pgftikzsection
Alternative
În multe cazuri, mai ales pentru diagrame mai avansate, poate fi mai ușor să faceți graficul folosind programe externe de grafică vectorială, iar apoi să importați fișierul în document (vezi LaTeX/Importarea de imagini). Cu toate acestea, cele mai multe programe nu oferă suport pentru fonturile și notațiile matematice din LaTeX, ceea ce poate duce la realizarea unor imagini urâte și inconsistente. Sunt mai multe soluții la această problemă.
Soluția cea mai simplă constă în folosirea mediului picture, după care puteți utiliza comanda "put" pentru a insera un fișier grafic în imagine, alături de orice alt element LaTeX dorit. Spre exemplu:
\setlength{\unitlength}{0.8cm}
\begin{picture}(6,5)
\put(3.5,0.4){$\displaystyle
s:=\frac{a+b+c}{2}$}
\put(1,1){\includegraphics[width=2cm,height=2cm]{imagine.eps}}
\end{picture} |
O altă soluție o constituie utilizarea textext, un plug-in pentru Inkscape, care permite inserarea de mici obiecte LaTeX în imagini .svg. Aceste imagini pot fi apoi salvate în format .eps (sau .pdf) și importate după aceea în documentul LaTeX propriu-zis.
Încă o soluție este oferită de lpic, care permite realizarea de adnotări TeX la imaginile importate.
Elemente flotante, figuri și note
LaTeX/Elemente flotante, figuri și note
Prezentare
LaTeX poate fi folosit pentru crearea de prezentări. Sunt mai multe modalități de a face asta, între care menționăm clasa de documente Beamer.
Clasa de documente Beamer
Clasa de documente Beamer face parte din cele mai multe distribuții LaTeX, însă o puteți găsi și la CTAN. Dacă folosiți MikTeX, tot ce trebuie să faceți este să creați un document nou de tip Beamer, iar LaTeX va descărca automat toate pachetele necesare. Documentația explică foarte detaliat facilitățile oferite de această clasă de documente. Puteți să vă uitați și peste articolul PracTex Beamer by example[1]
Exemplu introductiv
Pachetele din clasa beamer sunt încărcate prin crearea unui document de acest tip:
\documentclass{beamer}
Puteți specifica apoi informațiile obișnuite din preambul. Dacă compilați cu XeTeX, ar fi bine să folosiți
\documentclass[xetex,mathserif,serif]{beamer}
În cadrul documentului propriu-zis, mai multe medii frame specifică conținutul de pe fiecare slide. Comanda frametitle specifică titlul fiecărui slide (Vezi imaginea):
\begin{document}
\begin{frame}
\frametitle{Acesta este primul slide}
% Conținutul slide-ului
\end{frame}
\begin{frame}
\frametitle{Acesta este al doilea slide}
\framesubtitle{Ceva mai multe informații despre asta}
% Alt conținut
\end{frame}
% etc
\end{document}
|
Mediile uzuale (itemize, enumerate, equation, etc.) pot fi folosite ca de obicei.
În frame-uri, puteți folosi medii de genul block, theorem, proof, ... De asemenea, \maketitle poate crea pagina titlu, dacă setați titlul (title) și autorul (author).
Notă: În loc de \begin{frame}…\end{frame}, puteți folosi \frame{…}.
Dacă faceți compilarea cu pdfLaTeX, puteți folosi Adobe Reader în modul fullscreen. Dacă vreți să navigați în cadrul prezentării, puteți folosi linkurile aproape invizibile din colțul drept de jos fără să părăsiți modul fullscreen.
Structura documentului
Pagina titlu și informații
Oferiți informații despre autori, titluri și date în preambul:
\title[Criza] % (opțional, numai pentru titlurile lungi)
{Economia crizei financiare}
\subtitle{Mărturii din India}
\author[Author, Anders] % (opțional, pentru mai mulți autori)
{F.~Author\inst{1} \and S.~Anders\inst{2}}
\institute[Universitäten Hier und Dort] % (opțional)
{
\inst{1}
Institut für Informatik\\
Universität Hier
\and
\inst{2}
Institut für theoretische Philosophie\\
Universität Dort
}
\date[KPT 2003] % (opțional)
{Konferenz über Präsentationstechniken, 2004}
\subject{Informatik}
În document, adăugați pagina titlu:
\frame{\titlepage}
|
Cuprins
Puteți afișa Cuprinsul și evidenția secțiunea/subsecțiunea curente în felul următor:
\begin{frame}
\frametitle{Cuprins}
\tableofcontents[currentsection]
\end{frame}
Puteți afișa automat Cuprinsul la începutul fiecărei secțiuni adăugând în preambul linia următoare:
\AtBeginSection[]
{
\begin{frame}
\frametitle{Cuprins}\tableofcontents[currentsection]
\end{frame}
}
Puteți face același lucru pentru subsecțiuni:
\AtBeginSubsection[]
{
\begin{frame}<beamer>
\frametitle{Gliederung}
\tableofcontents[currentsection,currentsubsection]
\end{frame}
}
Referințe (Beamer)
\documentclass[a4paper,12pt]{beamer}
\usepackage[utf8x]{inputenc}
\usepackage{default}
\begin{document}
\begin{frame}[allowframebreaks]
\frametitle<presentation>{Weiterführende Literatur}
\begin{thebibliography}{10}
\beamertemplatebookbibitems
\bibitem{Autor1990}
A.~Author.
\newblock {\em Einfhrung in das Repräsentationswesen}.
\newblock Klein-Verlag, 1990.
\beamertemplatearticlebibitems
\bibitem{Jemand2000}
S.~Jemand.
\newblock On this and that.
\newblock {\em Journal of This and That}, 2(1):50--100, 2000.
\end{thebibliography}
\end{frame}
\end{document}
|
Stil
Teme
Prima soluție constă în utilizarea unei teme implicite de genul Warsaw (Varșovia), Berlin, etc. A doua soluție este să specificați culori, teme interioare și teme exterioare.
Soluția implicită
Adăugați la preambul linia următoare:
\usetheme{Warsaw}
pentru a utiliza tema "Warsaw" (Varșovia). Beamer are mai multe teme, multe dintre ele fiind numite după orașe (spre exemplu, Barcelona, Madrid, Berlin, etc.). Temele de culori, ce au în mod tipic nume de animale, pot fi specificate cu:
\usecolortheme{beaver} % castor
Această Matrice de teme conține diverse combinații de teme și culori incluse în clasa de documente Beamer. Pentru mai multe opțiuni de personalizare, uitați-vă peste documentația oficială ce face parte din distribuția Beamer instalată pe calculator, cu precădere partea 'Schimbă aspectul' (Change the way it looks).
Iată lista tuturor temelor: Antibes, Bergen, Berkeley, Berlin, Boadilla, Copenhagen, Darmstadt, Dresden, Frankfurt, Goettingen, Hannover, Ilmenau, JuanLesPins, Luebeck, Madrid, Malmoe, Marburg, Montpellier, PaloAlto, Pittsburgh, Rochester, Singapore, Szeged, Warsaw, boxes (căsuțe), default (implicit).
Soluția personalizată
Mai întâi specificați tema exterioară (outertheme). Aceasta definește antetul și ultima linie a fiecărui slide.
\useoutertheme{infolines}
Iată lista tuturor temelor exterioare disponibile:
- infolines
- miniframes
- shadow
- sidebar
- smoothbars
- smoothtree
- split
- tree
Adăugați apoi tema interioară (innertheme):
\useinnertheme{rectangles}
Iată lista tuturor temelor interioare disponibile:
- rectangles
- circles
- inmargin
- rounded
Puteți defini culoarea fiecărui element:
\setbeamercolor{structure}{bg=black, fg=green}
\setbeamercolor{normal text}{bg=black,fg=yellow}
\setbeamercolor{alerted text}{fg=orange}
\setbeamercolor{background canvas}{bg=white}
\setbeamercolor{frametitle}{fg=brown}
\setbeamercolor{title}{fg=brown}
\setbeamercolor{titlelike}{fg=brown}
\setbeamercolor{title}{fg=brown}
\setbeamercolor{section in sidebar}{fg=brown}
\setbeamercolor{section in sidebar shaded}{fg= grey}
\setbeamercolor{subsection in sidebar}{fg=brown}
\setbeamercolor{subsection in sidebar shaded}{fg= grey}
\setbeamercolor{sidebar}{bg=red}
Rețineți că puteți defini propriile culori:
\definecolor{ciocolată}{RGB}{33,33,33}
Puteți de asemenea să definiți stilul blocurilor:
\setbeamertemplate{blocks}[shadow=false]
\setbeamertemplate{background canvas}[vertical shading][bottom=white,top=structure.fg!25]
Puteți chiar să suprimați bara de navigare, lucru care nu este foarte util:
\beamertemplatenavigationsymbolsempty
Fonturi
Setările implicite pentru clasa de documente Beamer utilizează un grup diferit de fonturi matematice decât ar fi de așteptat de la crearea unui simplu articol matematic. O soluție rapidă ar fi:
\usefonttheme[onlymath]{serif}
Puteți să schimbați și fonturile pentru elemente particulare. Dacă vreți să aveți un titlu al prezentării așa cum este el oferit de comanda \frame{\titlepage}, însă cu un font 'serif' în locul fontului 'sanserif' implicit, folosiți:
\setbeamerfont{title}{family=\rm}
Puteți face un pas mai departe dacă utilizați fonturi OpenType cu Xe(La)TeX și specificați un font 'serif' cu o dimensiune mai mare și un număr proporțional de simboluri alternative în stilul vechi:
\setbeamerfont{title}{family=\rm\addfontfeatures{Scale=1.18, Numbers={Lining, Proportional}}}
Opțiuni pentru frame-uri
Puteți folosi opțiunea plain (simplu). Câteodată trebuie să includeți o figură sau un tabel mai mari și nu vreți antetul sau partea de jos de la slide-uri. În cazul acesta, utilizați opțiunea plain:
\frame[plain]
{
...
}
Dacă vreți să includeți foarte mult text pe un slide, folosiți opțiunea shrink (micșorează).
\frame[shrink]
{
...
}
Text animat
Puteți utiliza pur și simplu declarația \pause:
\begin{frame}
\frametitle{Un fundal}
Începem discuția noastră cu câteva concepte.
\pause
Primul concept pe care-l introducem se bazează
pe o teză a lui Erd\H{o}s.
\end{frame}
Pentru text animat, spre exemplu în mediul itemize, puteți scrie:
\begin{frame}
\begin{itemize}
\item Acesta este afișat întotdeauna
\item<1-> Prima dată
\item<2-> A doua oară
\item<1-> Tot prima dată
\item\only<1-> Afișat doar prima dată
\end{itemize}
\end{frame}
Sau:
\begin{frame}
\frametitle{`Concepte ascunse de ordin superior?'}
\begin{itemize}[<+->]
\item Adevărurile aritmeticii, care sunt independente de
axiomele lui Peano într-un anume sens `{conțin} ele însele
în esență concepte absolute {\color{blue}{ascunse, de ordin
superior}}'???
\item `Adevăruri din aritmetică ce \ldots
\item Ceea ce întărește versiunea tezei lui Isaacson.
\end{itemize}
\end{frame}
Notați că opțiunea 'handout' din '\documentclass' suprimă toate animațiile.
\documentclass[11pt,handout]{beamer}
Coloane și blocuri
Aveți două medii la îndemână pentru structurarea unui slide: "blocurile", care împart slide-ul (orizontal) în secțiuni cu antete, și "coloanele", care împart un slide (vertical) în coloane.
Coloane
Exemplu:
\begin{frame}
\begin{columns}[c] % opțiunea "c" specifică
% alinierea verticală centrată
\column{.5\textwidth} % coloană desemnată
% printr-o comandă
Conținutul primei coloane
\column{.5\textwidth}
Conținut separat \\ pe două linii
\end{columns}
\end{frame} |
\begin{frame}
\begin{columns}[t] % conținutul este aliniat
% vertical în partea superioară
\begin{column}[T]{5cm} % fiecare coloană
% poate fi propriul mediu
Conținutul primei coloane \\ separat pe
două linii
\end{column}
\begin{column}[T]{5cm} % alternativă de
% aliniere în partea superioară,
% mai bună pentru imagini
\includegraphics[height=3cm]{pinguin.png}
\end{column}
\end{columns}
\end{frame} |
Blocuri
Cuprinderea textului în mediul block creează un bloc de text distinct, cu antet. Asta vă permite să distingeți ușor, vizual, părțile unui slide. Sunt trei tipuri de bază de blocuri. Formatul acestora depinde de tema utilizată.
Exemplu:
\begin{frame}
\begin{block}{Acesta este un bloc simplu}
Aceasta este o informație importantă
\end{block}
\begin{alertblock}{Acesta este un bloc de alertă}
Aceasta este o alarmă importantă
\end{alertblock}
\begin{exampleblock}
{Acesta este un bloc pentru exemplificare}
Acesta este un exemplu
\end{exampleblock}
\end{frame} |
Opțiuni PDF
Puteți specifica opțiunile implicite pentru PDF-ul generat.
\hypersetup{pdfstartview={FitH}} % Implicit, documentul generat
% în format PDF are lățimea ecranului.
Clasa de documente Powerdot
Pachetele pentru clasa powerdot le puteți găsi la adresa CTAN. Documentația aferentă oferă mai multe explicații.
Pachetele din clasa powerdot sunt încărcate prin crearea unui document de acest tip:
\documentclass{powerdot}
Puteți specifica apoi informațiile obișnuite din preambul.
În cadrul documentului propriu-zis, mediile slide specifică pentru fiecare slide conținutul acestuia.
\begin{document}
\begin{slide}{Acesta este primul slide}
% Conținutul slide-ului
\end{slide}
\begin{slide}{Acesta este al doilea slide}
% Alt conținut
\end{slide}
% etc
\end{document}
Referințe
- ↑ Andrew Mertz şi William Slough: Beamer by Example
Linkuri
- Wikipedia:Beamer (LaTeX)
- Ghid de utilizare Beamer (pdf) de la CTAN
- Tutorial pentru realizarea unei prezentări cu ajutorul clasei de documente Beamer
- Clasa de documente Powerdot (pdf) de la CTAN
- Realizarea de prezentări LaTeX Beamer
Hyperlinkuri
LaTeX permite scrierea de hyperlinkuri în document, lucru util când formatul rezultat este PDF, iar hyperlinkurile pot fi urmate. Se poate face asta cu pachetul hyperref.
Hyperref
Pachetul hyperref oferă sistemului LaTeX abilitatea de a crea hyperlinkuri în document. Merge cu programul de compilare pdflatex, dar și cu comanda standard "latex" utilizată cu dvips și ghostscript sau dvipdfm pentru a genera un fișier PDF. Dacă încărcați acest pachet, veți avea posibilitatea de a include linkuri externe interactive și atunci toate referințele interne vor fi transformate în hyperlinkuri. Compilatorul pdflatex face posibilă crearea de fișiere PDF direct din sursa LaTeX. Formatul PDF suportă mai multe trăsături decât DVI. În particular, PDF suportă hyperlinkuri, iar singurul mod de a le introduce în LaTeX este cu ajutorul pachetului hyperref. Mai mult, un PDF poate conține și alte informații despre document, cum ar fi titlul, autorul, etc., elemente pe care le puteți edita prin intermediul aceluiași pachet.
Utilizare
Utilizarea de bază cu setările standard este destul de simplă. Includeți pachetul în preambul, după ce ați inclus toate celelalte pachete, însă înaintea altor setări:
\usepackage{hyperref}
Asta va transforma automat toate referințele interne în hyperlinkuri. Nu va afecta modul în care scrieți documentele: continuați să utilizați sistemul standard \label/\ref; cu hyperref, aceste "conexiuni" vor deveni linkuri și le veți putea selecta pentru a ajunge la paginile spre care indică. Mai mult, Cuprinsul, listele de figuri și tabele, precum și indexul vor fi constituite din hyperlinkuri, la rândul lor.
Pachetul oferă trei comenzi utile pentru a insera linkuri ce indică în afara documentului:
- \hyperref[nume_etichetă]{text pentru link}: acesta va avea același efect ca \ref{nume_etichetă}, însă va face din textul pentru link un link ce poate fi selectat. Cele două comenzi pot fi combinate, ca în exemplul următor:
\hyperref[lema_principală]{lema \ref*{lema_principală}}
Notați caracterul * de după \ref pentru a evita hyperlinkurile imbricate.
Dacă lema etichetată "lema_principală" avea numărul 4.1.1, atunci textul generat ar fi "lema 4.1.1" cu hyperlinkul după cum era de așteptat.
- \url{URL}: va afișa URL-ul cu un font mono-space și, dacă îl selectați, se va deschide browserul la acel URL.
- \href{URL}{descriere}: va afișa șirul de caractere "descriere" cu fontul standard al documentului, iar dacă îl selectați, browserul va fi deschis la "URL". Iată un exemplu:
\url{http://www.wikibooks.org} \href{http://www.wikibooks.org}{Adresa wikibooks}
Ambele indică spre aceeași pagină Web, însă în primul caz, se va afișa URL-ul, în vreme ce în al doilea, URL-ul va fi ascuns, afișând în schimb descrierea dorită. Notați că, dacă tipăriți sau vizualizați documentul final, linkul păstrat de \href nu va apare nicăieri în document. Puteți folosi căi relative pentru a indica spre documente apropiate de locul documentului curent; pentru a face asta, utilizați notația standard de tip UNIX (./ este directorul curent, ../ este directorul părinte, etc.).
O cale posibilă de a insera emailuri este:
\href{mailto:adresă@wikibooks.org}{adresă@wikibooks.org}
Asta vă va afișa adresa de email (astfel că oamenii o pot afla chiar dacă documentul este tipărit), însă, dacă cititorul selectează linkul din documentul în format electronic, vă poate trimite ușor un email. Ori, pentru a încorpora abilitățile de formatare și separare a liniilor oferite de pachetul url în textul afișat, puteți folosi [1].
\href{mailto:adresă@wikibooks.org}{\nolinkurl{adresă@wikibooks.org}}
Când utilizați acest format, notați că această comandă, \nolinkurl, este instabilă, iar dacă hyperlinkul se găsește într-un argument flexibil, trebuie să fie precedată de o comandă \protect.
Personalizare
Configurările standard ar trebui să fie suficiente pentru majoritatea utilizatorilor, dar dacă vreți să schimbați ceva, puteți face asta cu ușurință. Sunt mai multe variabile pe care le puteți schimba și sunt două metode prin care le puteți transmite pachetului. Puteți pasa opțiunile ca argumente ale pachetului la încărcarea acestuia în preambul (aceasta este versiunea standard folosită de pachete), sau puteți folosi comanda \hypersetup:
\hypersetup{opțiunea1 [, ...]}
Puteți transmite câte opțiuni doriți, separate prin virgulă. Opțiunile trebuie să fie sub forma:
nume_variabilă=valoare_nouă
Trebuie să utilizați exact același format dacă transmiteți opțiunile pachetului la încărcare:
\usepackage[opțiunea1, opțiunea2]{hyperref}
Iată o listă a variabilelor pe care le puteți modifica (pentru lista completă, vezi documentația oficială). Valorile implicite sunt scrise cu font normal:
Variabilă | Valori | Comentariu |
---|---|---|
bookmarks | =true,false | Arată sau ascunde bara cu marcaje (bookmarks) când se afișează documentul final |
unicode | =false,true | Permite utilizarea caracterelor ne-latinești în marcajele Acrobat |
pdfborder | ={text} | Configurează stilul marginii din jurul unui link; de exemplu, {0 0 0} înseamnă nicio margine |
pdftoolbar | =true,false | Arată sau ascunde bara de instrumente a Acrobat |
pdfmenubar | =true,false | Arată sau ascunde meniul Acrobat |
pdffitwindow | =true,false | Redimensionează fereastra documentului pentru a se adapta la mărimea documentului |
pdfstartview | ={FitH},{FitV},etc[2]. | Ajustează lățimea paginii la mărimea ferestrei |
pdftitle | ={text} | Definește titlul ce va fi afișat în fereastra "Document Info" a Acrobat |
pdfauthor | ={text} | Numele autorului documentului PDF, merge la fel ca opțiunea dinainte |
pdfsubject | ={text} | Subiectul documentului, la fel ca mai devreme |
pdfcreator | ={text} | Creatorul documentului, ca mai sus |
pdfproducer | ={text} | Producătorul documentului, ca opțiunea de mai înainte |
pdfkeywords | ={text} | Lista de cuvinte cheie, separate de paranteze drepte, ca în exemplul de mai jos |
pdfnewwindow | (=true,false) | Stabilește dacă linkurile externe vor fi deschise într-o fereastră nouă |
pagebackref | (=false,true) | Activează referințele anterioare în bibliografie. Trebuie specificată în declarația \usepackage{}. |
colorlinks | (=false,true) | Înconjoară linkurile cu niște cadre colorate (false) sau colorează textul linkurilor (true). Culoarea acestor linkuri poate fi configurată cu următoarele opțiuni (se prezintă culorile implicite): |
linkcolor | =red (roșu) | Culoarea linkurilor interne (la secțiuni, pagini, etc.) |
linktoc | =none,section,page,all | Stabilește ce parte a unei intrări din Cuprins va deveni un link |
citecolor | =green (verde) | Culoarea linkurilor de citare (la bibliografie) |
filecolor | =magenta | Culoarea linkurilor la fișiere |
urlcolor | =cyan | Culoarea linkurilor la URL-uri (email, Web) |
linkbordercolor | ={1 0 0} | Culoarea cadrului din jurul linkurilor interne (dacă colorlinks=false) |
citebordercolor | ={0 1 0} | Culoarea cadrului din jurul citărilor |
Pentru a accelera procesul de personalizare, iată o listă cu unele variabile și valorile lor implicite. Copiați-o în document și faceți modificările dorite. Alături de variabile, găsiți o scurtă explicație a semnificației lor:
\hypersetup
{
bookmarks=true, % arată bara cu marcaje
unicode=false, % caractere ne-latinești în marcajele Acrobat
pdftoolbar=true, % arată bara cu instrumente a Acrobat
pdfmenubar=true, % arată meniul Acrobat
pdffitwindow=false, % fereastra se ajustează la mărimea paginii când se deschide
pdfstartview={FitH}, % ajustează lățimea paginii la fereastră
pdftitle={Titlu}, % titlu
pdfauthor={Autor}, % autor
pdfsubject={Subiect}, % subiectul documentului
pdfcreator={Creator}, % creatorul documentului
pdfproducer={Producător}, % producătorul documentului
pdfkeywords={cheia1} {cheia2}, % lista de cuvinte cheie
pdfnewwindow=true, % linkurile se deschid într-o fereastră nouă
colorlinks=false, % false: linkuri în căsuțe colorate; true: linkuri colorate
linkcolor=red, % culoarea linkurilor interne
citecolor=green, % culoarea linkurilor la bibliografie
filecolor=magenta, % culoarea linkurilor la fișiere
urlcolor=cyan % culoarea linkurilor externe
}
Dacă nu vreți să modificați atâtea opțiuni, iată niște exemple utile mai restrânse. Când creați PDF-uri destinate pentru tipărire, linkurile colorate nu sunt o idee bună dacă listați alb-negru întrucât vor fi printate cu gri, fiind greu de citit. Puteți folosi în schimb cadre colorate, care nu vor fi tipărite:
\usepackage{hyperref}
\hypersetup{colorlinks=false}
Sau puteți face linkurile negre:
\usepackage{hyperref}
\hypersetup
{
colorlinks,
citecolor=black,
filecolor=black,
linkcolor=black,
urlcolor=black
}
Dacă vreți doar să includeți informații pentru secțiunea Document Info a fișierului PDF, dar și să activați referințele anterioare în bibliografie:
\usepackage[pdfauthor={Nume autor},
pdftitle={Titlu document},
pagebackref=true,
pdftex]{hyperref}
Implicit, URL-urile sunt afișate cu fonturi mono-spațiate. Dacă nu vă place aspectul lor și vreți să fie afișate cu același font ca și restul textului, utilizați comanda:
\urlstyle{same}
Probleme cu linkurile și ecuațiile
Apar mesaje de genul:
! pdfTeX warning (ext4): destination with the same identifier (name{equation.1.7.7.30}) has been already used, duplicate ignored
când faceți așa ceva:
\begin{eqnarray}a=b\nonumber\end{eqnarray}
Eroarea dispare, dacă scrieți:
\begin{eqnarray*}a=b\end{eqnarray*}
Aveți grijă că numărul liniei afișat poate fi complet diferit de numărul liniei pe care apare eroarea.
Probleme cu linkurile și paginile
Mesaje de genul:
! pdfTeX warning (ext4): destination with the same identifier (name{page.1}) has been already used, duplicate ignored
apar când un contor este reinițializat, spre exemplu prin utilizarea comenzii \mainmatter oferită de clasa de documente carte (book). Aceasta resetează contorul numărului de pagină la 1 înaintea primului capitol al cărții. Dar deoarece prefața are și ea o pagină numerotată cu 1, toate linkurile către „pagina 1” nu ar mai fi unice, prin urmare avertismentul "duplicate has been ignored" (pagina duplicat a fost ignorată). Soluția pentru contor constă în a pune plainpages=false la opțiunile pachetului hyperref. Asta nu ajută din păcate decât la numerotarea paginilor. O soluție și mai radicală ar fi setarea opțiunii hypertexnames=false, însă asta va face să nu mai meargă linkurile la pagini din index.
Cea mai bună soluție ar fi să dați fiecărei pagini un nume unic folosind comanda \pagenumbering:
\pagenumbering{alph} % a, b, c, ... ... pagina titlu, alte antete similare ... \pagenumbering{roman} % i, ii, iii, iv, ... \setcounter{page}{1} ... Cuprinsul, tabelul cu figuri, ... \pagenumbering{arabic} % 1, 2, 3, 4, ... \setcounter{page}{1} ... începutul subiectului de bază (Capitolul 1) ...
O altă soluție constă în utilizarea \pagenumbering{alph} înaintea comenzii \maketitle, lucru care va da paginii titlu eticheta page.a (pentru cărți). Deoarece numerotarea paginilor nu este încă activată, nu va schimba cu nimic outputul.
Modificând modul de numerotare a paginilor de fiecare dată când resetați contorul, fiecare pagină primește un nume unic. În acest caz, paginile vor fi numerotate a, b, c, i, ii, iii, iv, v, 1, 2, 3, 4, 5, ...
Dacă nu vreți să fie vizibile anumite numere de pagini (spre exemplu, înainte de începerea capitolelor), folosiți comenzile \pagestyle{empty} ... \pagestyle{plain}. Trebuie să rețineți că deși numerele paginilor nu sunt vizibile, fiecare pagină va avea un nume unic.
Aceeași problemă poate să apară și cu pachetele de algoritmi: întrucât fiecare algoritm folosește aceeași schemă de numerotare a liniilor, identificatorii de linii pentru al doilea algoritm și următorii vor fi duplicați ai primului.
Problema apare și în cazul identificatorilor de ecuații dacă utilizați comanda \nonumber pe fiecare linie a unui mediu eqnarray. În cazul acesta, folosiți mai bine formele stelate, de exemplu begin{eqnarray*} ... end{eqnarray*} (care dă o ecuație nenumerotată), înlăturând comenzile de acum nenecesare \nonumber.
Probleme cu semnele de carte
Textul afișat de semnele de carte (bookmarks) nu arată întotdeauna după cum ar fi de așteptat. Întrucât acestea sunt "doar text", pentru ele sunt disponibile mult mai puține caractere decât pentru textul normal din LaTeX. Pachetul hyperref ar trebui să detecteze astfel de probleme și să emită un avertisment:
Package hyperref Warning: Token not allowed in a PDFDocEncoded string:
Puteți rezolva acum această problemă oferind un text pentru bookmark, care înlocuiește textul ce a dat avertismentul:
\texorpdfstring{Text TeX}{Text bookmark}
Expresiile matematice sunt un candidat principal pentru acest tip de problemă:
\section{\texorpdfstring{$E=mc^2$}{E=mc2}}
Comanda de mai sus înlocuiește $E=mc^2$ cu E=mc2 pentru semnele de carte. Schimbarea culorilor nu dă rezultatul așteptat cu bookmark-uri:
\section{\textcolor{red}{Roșu !}}
produce "redRoșu!". Comanda \textcolor este ignorată, însă argumentul ei (red) este afișat.
Dacă utilizați:
\section{\texorpdfstring{\textcolor{red}{Roșu !}}{Roșu\ !}}
veți obține rezultatul dorit.
Dacă scrieți documentul cu caractere Unicode și utilizați opțiunea unicode pentru pachetul hyperref, puteți folosi caractere Unicode în semnele de carte. Asta vă va da o bază mult mai mare de selecție pentru caracterele de folosit cu comanda \texorpdfstring.
Probleme cu tabelele și figurile
Linkurile create de pachetul hyperref indică spre eticheta creată în mediul flotant, care, după cum a fost descris mai devreme, trebuie setată întotdeauna după notă sau titlu. Deoarece titlul este așezat de obicei sub o figură sau un tabel, figura sau tabelul în sine nu vor fi vizibile la selectarea linkului[3]. Puteți rezolva această problemă cu ajutorul pachetului hypcap [2]:
\usepackage[all]{hypcap}
Aveți grijă să includeți acest pachet după hyperref, care altfel ar trebui încărcat ultimul.
Dacă utilizați pachetul wrapfig menționat în secțiunea "Text în jurul figurilor" din capitolul "Elemente flotante, figuri și note", sau alte pachete similare ce definesc propriile medii, va trebui să includeți manual comanda \capstart
în acele medii:
\begin{wrapfigure}{R}{0.5\textwidth}
\capstart
\begin{center}
\includegraphics[width=0.48\textwidth]{nume_fișier}
\end{center}
\caption{\label{nume_etichetă}o figură}
\end{wrapfigure}
Probleme cu notele și titlurile lungi cu \listoffigures
Există o problemă legată de utilizarea comenzii \listoffigures
cu pachetul hyperref în cazul notelor și titlurilor lungi. Asta se întâmplă când notele (sau titlurile) sunt mai lungi decât lățimea paginii (cam 7-9 cuvinte, în funcție de configurările curente). Pentru a rezolva această problemă, trebuie să folosiți opțiunea breaklinks la includerea pachetului în preambul:
\usepackage[breaklinks]{hyperref}
Asta va face ca linkurile din \listoffigures
să se împartă în mod corespunzător pe mai multe linii.
Probleme cu fișierele .toc, .lof și alte fișiere similare existente
Când includeți pachetul hyperref, se schimbă formatul unora dintre fișierele auxiliare generate de LaTeX. Puteți întâlni prin urmare erori de genul ! Argument of \Hy@setref@link has an extra }.
când formatați documentul pentru prima oară cu hyperref, iar aceste fișiere deja există. Soluția la această problemă ar fi să ștergeți toate fișierele pe care le folosește LaTeX pentru referințe și să recompilați documentul.
Referințe
- ↑ Link pentru email cu pachetele hyperref şi url, Grupul de utilizatori comp.text.tex.
- ↑ Alte valori posibile sunt definite în manualul hyperref
- ↑ http://www.ctan.org/tex-archive/macros/latex/contrib/hyperref/README
Culori
Pachetul color oferă suport pentru adăugarea de culori în textul din document. Cu ajutorul acestui pachet, puteți seta culoarea textului, sau fundalului din pagină. Puteți folosi una din culorile predefinite, cum sunt alb (white), roșu (red), sau galben (yellow), sau puteți defini propriile culori, la care le dați un nume.
Adăugarea pachetului color
Pentru a putea utiliza aceste culori, trebuie să includeți pachetul color în preambul:
\usepackage{color}
Text colorat
Modul cel mai simplu de a scrie text colorat este:
\textcolor{culoarea declarată}{text}
unde culoarea declarată este o culoare definită înainte prin comanda \definecolor
.
Un alt mod ar fi prin comanda
{\color{culoarea declarată} text}
care va schimba culoarea standard a textului în culoarea dorită. Are efect până la sfârșitul grupului TeX curent, determinat de acolade. Spre exemplu:
\emph{ceva text negru, \color{red} urmat de un fragment de text roșu}, și din nou negru.
Diferența dintre \textcolor
și \color
este aceeași ca între \texttt
și \ttfamily
, puteți folosi versiunea preferată.
Puteți schimba culoarea de fond pentru toată pagina prin comanda:
\pagecolor{culoarea declarată}
Fundal colorat pentru text
\colorbox{culoarea declarată}{text}
Dacă vreți să schimbați culoarea fundalului, dar și a textului, scrieți:
\colorbox{culoarea-declarată1}{\color{culoarea-declarată2} text}
Există și comanda \fcolorbox pentru a colora cadrul din jurul textului într-o altă culoare:
\fcolorbox{culoarea-declarată1}{culoarea-declarată2}{\color{culoarea-declarată3} text}
Aici culoarea-declarată1 este a căsuței, culoarea-declarată2 este în interiorul căsuței și în jurul textului, iar textul are culoarea-declarată3.
Cele 68 culori standard cunoscute de dvips
Includeți pachetul cu opțiunile usenames și dvipsnames.
\usepackage[usenames,dvipsnames]{color}
Apricot | Aquamarine | Bittersweet | Black |
Blue | BlueGreen | BlueViolet | BrickRed |
Brown | BurntOrange | CadetBlue | CarnationPink |
Cerulean | CornflowerBlue | Cyan | Dandelion |
DarkOrchid | Emerald | ForestGreen | Fuchsia |
Goldenrod | Gray | Green | GreenYellow |
JungleGreen | Lavender | LimeGreen | Magenta |
Mahogany | Maroon | Melon | MidnightBlue |
Mulberry | NavyBlue | OliveGreen | Orange |
OrangeRed | Orchid | Peach | Periwinkle |
PineGreen | Plum | ProcessBlue | Purple |
RawSienna | Red | RedOrange | RedViolet |
Rhodamine | RoyalBlue | RoyalPurple | RubineRed |
Salmon | SeaGreen | Sepia | SkyBlue |
SpringGreen | Tan | TealBlue | Thistle |
Turquoise | Violet | VioletRed | White |
WildStrawberry | Yellow | YellowGreen | YellowOrange |
Definirea de culori noi
Când setați culori pentru text, puteți folosi una din culorile predefinite: alb (white), negru (black), roșu (red), verde (green), albastru (blue), turcoaz (cyan), magenta și galben (yellow). Când acestea nu sunt de ajuns, puteți defini culori noi.
Locul de definire
Definiți culorile în preambulul documentului. (Motivul: să puteți face deja referire la ele în preambul, spre exemplu, ca argument al altui pachet ce poate lua argumente culori, cum este pachetul listings).
Metoda de definire
Pentru a defini o culoare nouă, urmați exemplul următor, care definește culoarea portocaliu (orange), setând roșu la valoarea maximă, verdele la jumătate (0.5), iar albastru la minimum:
\definecolor{orange}{rgb}{1,0.5,0}
Puteți folosi literele mici rgb și alege valori între 0 și 1 sau literele mari RGB și atunci alegeți valori între 0 și 255. Codul următor ar trebui să dea rezultate similare cu secvența de cod anterioară.
\definecolor{orange}{RGB}{255,127,0}
Notă: Când navigați pe Web, puteți obține codul hexazecimal pentru fiecare culoare de pe paginile Web vizitate folosind extensia colorzilla a Firefox.
La începutul documentului, culorile sunt definite după schema următoare:
\definecolor{''nume''}{''model''}{''specificații-culoare''}
unde:
- nume este denumirea culorii; puteți să-i dați ce nume vreți
- model este felul în care descrieți culoarea, putând fi gray, rgb, RGB sau cmyk.
- specificații-culoare reprezintă descrierea culorii
Modele de culori
Puteți folosi următoarele modele pentru a descrie culorile:
Model | Descriere | Specificația culorii | Exemplu |
---|---|---|---|
gray | Nuanțe de gri. | Doar un număr între 0 (negru) și 1 (alb), astfel că 0.95 va fi un gri foarte deschis, iar 0.30 gri închis | \definecolor{light-gray}{gray}{0.95} |
rgb | Roșu, verde, albastru | Trei numere sub forma roșu,verde,albastru; cantitatea fiecărei culori este reprezentată de un număr între 0 și 1 | \definecolor{orange}{rgb}{1,0.5,0} |
RGB | Roșu, verde, albastru | Trei numere sub forma roșu,verde,albastru; the cantitatea fiecărei culori este reprezentată de un număr între 0 și 255 | \definecolor{orange}{RGB}{255,127,0} |
cmyk | Turcoaz, magenta, galben, negru | Patru numere sub forma turcoaz,magenta,galben,negru; cantitatea fiecărei culori este reprezentată de un număr între 0 și 1 | \definecolor{orange}{cmyk}{0,0.5,1,0} |
Configurări avansate de culori
Pachetul xcolor oferă versiuni extinse ale comenzilor pentru culori descrise mai devreme. Puteți defini nuanțe ale culorilor în felul următor:
|
Prima nuanță are 20% albastru, a doua este un amestec de 20% albastru și 80% negru, iar ultima este un amestec de 20% albastru, 30% negru și 50% verde.
Printre alte facilități incluse se numără: suport pentru modelul de culori HSB, notații de genul HTML, suport pentru colorare specială directă în tabele și altele.
Surse
Pachete
Pachetele oferă facilități suplimentare sistemului LaTeX de bază. Zeci de astfel de pachete sunt instalate odată cu LaTeX și pot fi folosite imediat ce sunt incluse în documente. Ele ar trebui să fie situate pe disc în subdirectoare ale texmf/tex/latex denumite în funcție de numele pachetului. Pentru a afla ce alte pachete sunt disponibile și ce facilități oferă, accesați pagina de căutare CTAN, care include un link către catalogul cuprinzător de pachete al lui Graham Williams.
Un pachet este un fișier sau o colecție de fișiere ce conțin comenzi LaTeX suplimentare și opțiuni de configurare care activează noi facilități sau le modifică pe cele existente. Fișierele ce conțin pachete instalate au terminația .sty (pot fi și fișiere auxiliare). Când încercați să scrieți un document ce necesită un pachet care nu este instalat deja, LaTeX vă va avertiza cu un mesaj de eroare că acesta lipsește. Puteți atunci să faceți download la pachet și să-l instalați urmând instrucțiunile din secțiunea Instalarea de pachete adiționale. Puteți de asemenea să luați de pe net versiuni mai noi ale pachetelor (atât pentru pachetele instalate odată cu LaTeX, cât și pentru cele pe care le-ați adăugat mai târziu). Nu există o limită pentru numărul de pachete pe care le puteți instala pe calculator (în afara de limitele fizice ale capacității discului!), însă există probabil o limită pentru numărul de pachete incluse într-un document, deși acest lucru depinde de mărimea pachetelor. În practică, se întâmplă să includeți uneori zeci de pachete într-un singur document.
Utilizarea unui pachet existent
Pentru a folosi un pachet de instalat, inserați o comandă \usepackage în preambulul documentului cu numele pachetului între acolade:
\usepackage{nume_pachet}
Spre exemplu, pentru a utiliza pachetul color, care vă permite să folosiți culori existente și să definiți unele noi, scrieți ceva de genul:
\documentclass[11pt,a4paper,oneside]{report}
\usepackage{color}
\begin{document}
...
\end{document}
Puteți include mai multe pachete cu o singură comandă \usepackage, separând numele pachetelor cu virgule:
\usepackage{pachetul1,pachetul2,pachetul3}
Puteți de asemenea să aveți mai multe comenzi \usepackage într-un singur fișier. Unele pachete permit utilizarea de setări opționale, menționate între paranteze drepte. Dacă folosiți astfel de opțiuni, trebuie ca la includerea unui pachet să folosiți o comandă separată \usepackage, ca în exemplul de mai jos pentru pachetele geometry și inputenc:
\documentclass[11pt,a4paper,oneside]{report}
\usepackage{pslatex,palatino,avant,graphicx,color}
\usepackage[margin=2cm]{geometry}
\usepackage[utf8x]{inputenc}
\begin{document}
\title{\color{red}Lecții practice de redactare în LaTeX}
\author{\color{blue}Peter Flynn\\ Silmaril Consultants}
\date{\color{green}Ianuarie 2011}
\maketitle
\end{document}
Multe pachete pot avea specificații adiționale de formatare accesibile prin intermediul unor argumente opționale, furnizate între paranteze drepte. Consultați documentația pachetului respectiv pentru a afla opțiunile existente. Puteți da mai multe opțiuni deodată, separate prin virgule:
\usepackage[opțiunea1,opțiunea2,opțiunea3]{''denumire_pachet''}
Documentația pachetelor
Pentru a afla ce comenzi oferă un pachet (și astfel cum să-l folosiți), trebuie să citiți documentația. În subdirectorul texmf/doc din directorul de instalare LaTeX se găsesc directoare pline de fișiere .dvi sau .pdf, câte unul pentru fiecare pachet instalat. Acest loc depinde de distribuția sistemului LaTeX, însă se găsește în mod tipic în:
Distribuție | Cale |
---|---|
MiKTeX | C:\Program Files\MiKTeX 2.7\doc\latex |
teTeX | /usr/share/texmf-tetex/doc/latex |
texlive | /usr/share/texmf-texlive/doc/latex |
În general, cele mai multe pachete sunt în subdirectorul latex, deși alte pachete (cum sunt BibTeX și pachetele pentru fonturi) se găsesc în alte subdirectoare din doc. Directoarele cu documentația au același nume cu pachetul (spre exemplu, amsmath), care includ în general unul sau mai multe documente relevante într-o serie de formate (dvi, txt, pdf, etc.). Documentele au în general același nume ca pachetul, însă sunt unele excepții (spre exemplu, documentația pentru amsmath poate fi în fișierul latex/amsmath/amsdoc.dvi pentru unele distribuții). Dacă nu ați instalat și documentația odată cu sistemul LaTeX, puteți lua fișierele DVI sau PDF respective de pe site-ul CTAN. Înainte de a utiliza un pachet, ar fi bine să citiți cu atenție documentația, mai ales subsecțiunea intitulată de obicei "User Interface" (Interfața cu utilizatorul), care descrie comenzile puse la dispoziția de acel pachet. Nu puteți să ghiciți pur și simplu și să sperați că va merge: trebuie să vă convingeți că este așa.
Instalarea de pachete adiționale
Cele mai multe distribuții LaTeX au o serie de pachete de stiluri pre-instalate, însă puteți găsi multe altele pe net. Cel mai bun loc să căutați pachete pentru stiluri pe Internet este CTAN (http://www.ctan.org/). Îndată ce ați identificat un pachet de care aveți nevoie și pe care nu-l aveți deja (sau îl aveți, dar vă trebuie o versiune mai nouă), folosiți indexurile de pe orice server CTAN pentru a găsi pachetul necesar și directorul de unde puteți să-l luați.
Dacă sunteți pe un sistem Linux (cum este Debian), puteți instala pachetele prin intermediul unui manager de pachete (de genul Synaptic).
Descărcarea de pachete
Trebuie să luați întotdeauna două fișiere, unul cu extensia .dtx și celălalt cu extensia .ins. Primul este un fișier DOCTeX, care combină programul pentru pachet și documentația acestuia într-un singur fișier. Al doilea este scriptul de instalare (mult mai mic). Trebuie să faceți download întotdeauna la ambele fișiere. Dacă cele două fișiere nu sunt acolo, poate să însemne unul din următoarele două lucruri:
- Fie pachetul face parte dintr-un grup mult mai mare, pe care în mod normal nu ar trebui să-l aduceți la zi decât dacă schimbați versiunea de LaTeX;
- fie este unul din puținele și neobișnuitele pachete care încă mai sunt furnizate sub forma unui singur fișier .sty menit pentru versiunea de acum învechită de LaTeX 2.09.
Descărcați ambele fișiere într-un director temporar. Deseori veți găsi un fișier readme.txt cu o scurtă descriere a pachetului. Evident, ar fi bine să citiți mai întâi acest fișier.
Instalarea unui pachet
Trebuie să urmați patru pași pentru a instala un pachet în LaTeX:
1. Extrageți fișierele. Rulați comanda de compilare LaTeX pentru fișierul .ins. Asta înseamnă să deschideți fișierul în editorul de texte folosit pentru LaTeX și să-l procesați ca pe orice alt document LaTeX (ceea ce și este), sau, dacă preferați, să rulați în terminal în directorul temporar comanda latex urmată de numele fișierului cu extensia .ins. Asta va extrage toate fișierele necesare din fișierul .dtx (de aceea trebuie să fie amândouă în directorul temporar). Notați undeva denumirile fișierelor create dacă sunt foarte multe (citiți fișierul jurnal generat (log file) dacă vreți să revedeți numele acestora).
2. Creați documentația. Rulați comanda de compilare LaTeX pentru fișierul .dtx. S-ar putea să fie necesar să rulați comanda latex de două sau mai multe ori, pentru a rezolva referințele (la fel ca în cazul oricărui alt document LaTeX). În felul acesta veți obține un fișier .dvi de documentație, care explică la ce folosește pachetul și cum îl puteți utiliza. Dacă vreți să creați un PDF, rulați comanda pdflatex. Dacă ați obținut un fișier .idx, asta înseamnă că documentul conține și un index. Dacă vreți să generați indexul în mod corespunzător, urmați pașii descriși în capitolul Indexare. Câteodată va fi creat un fișier .glo (glosar). Rulați atunci comanda următoare:
makeindex -s gglo.ist -o name.gls name.glo
3. Instalați fișierele. Pe măsură ce listați documentația, mutați sau copiați fișierele create la pasul 1 din directorul temporar în locul sau locurile potrivite din structura de directoare unde este instalat sistemul TeX pe calculator — întotdeauna ierarhia 'locală' de directoare, a) pentru a împiedica noul pachet să suprascrie accidental fișierele din directoarele TeX de bază; și b) ca să împiedicați suprascrierea fișierelor nou instalate când actualizați versiunea de TeX.
Expresia "locul potrivit" generează câteodată confuzie, mai ales dacă versiunea TeX pe care o aveți instalată este veche sau nu este în conformitate cu Structura de Directoare TeX (TeX Directory Structure sau TDS). Pentru un sistem conform cu TDS, acesta este fie a) pentru pachetele LaTeX, un subdirector cu nume corespunzător din texmf-local/tex/latex/ în /usr/share/ (sau texmf/tex/latex/ în /usr/local/share/); sau b) un subdirector cu nume corespunzător din texmf-local/ în /usr/share/ (sau texmf/ în /usr/local/share/) pentru fișiere de stil de genul BibTeX, care nu sunt doar pentru LaTeX, ci pentru orice sistem TeX. "Cu nume corespunzător" înseamnă o denumire descriptivă și semnificativă pentru pachet (și probabil scurtă). Pentru un pachet cu numele paralist, spre exemplu, aș denumi directorul paralist. Deseori aveți de mutat un singur fișier .sty, însă în cazul pachetelor complexe, pot fi mai multe, și s-ar putea să fie necesar să le mutați în locuri diferite. Spre exemplu, noile pachete BibTeX sau pentru fonturi vor avea în mod tipic mai multe fișiere de instalat. De aceea e bine să creați un subdirector pentru pachet în loc să puneți fișierele laolaltă în același director. Dacă aveți fișiere de configurare sau de alt tip, citiți documentația să vedeți dacă trebuie mutate într-un loc anume.
De exemplu, pentru MiKTeX 2.7 sau o versiune ulterioară (în Windows), directorul de instalare este în Program Files/MiKTeX 2.7 (numele exact al folderului variază cu versiunea MiKTeX instalată). Potrivit tabelului de mai jos, mutați fișierele în subdirectoarele corespunzătoare din structura de directoare a MiKTeX (creați directoare noi, dacă este cazul).
Tip | Director (în texmf-local/) | Descriere |
---|---|---|
.cls | tex/latex/base | Fișier cu clasa de documente |
.sty | tex/latex/denumire_pachet | Fișier de stil: conținutul normal al pachetului |
.bst | bibtex/bst/denumire_pachet | Fișier de stil BibTeX |
.mf | fonts/source/public/denumire_font | Descriere pentru fonturile METAFONT |
.fd | tex/latex/mfnfss | Fișiere de definire pentru fonturile METAFONT |
.fd | tex/latex/psnfss | Fișiere de definire pentru fonturile PostScript de tipul 1 |
.pfb | /fonts/type1/grup_font/denumire_font | Descriere pentru fonturile PostScript de tipul 1 |
.afm | /fonts/afm/grup_font/denumire_font | Dimensiuni pentru fonturile Adobe de tipul 1 |
.tfm | /fonts/tfm/grup_font/denumire_font | Dimensiuni TeX pentru fonturile METAFONT de tipul 1 |
.vf | /fonts/vf/grup_font/denumire_font | Fonturi virtuale TeX |
.dvi | /doc | Documentația pachetului în format DVI |
/doc | Documentația pachetului în format PDF | |
altele | tex/latex/denumire_pachet | Alte tipuri de fișiere, dacă nu se precizează altfel |
4. Actualizați indexul. La final, rulați programul TeX de indexare pentru a actualiza baza de date cu pachetele. Acest program face parte din orice versiune modernă de TeX, denumirea sa variind în funcție de distribuția LaTeX pe care o folosiți (citiți documentația LaTeX pentru a afla):
- teTeX, TeX Live, fpTeX: texhash
- web2c: mktexlsr
- MiKTeX: initexmf --update-fndb (sau folosiți interfața grafică)
- MiKTeX 2.7 sau versiuni mai noi, instalate pe Widows XP sau versiuni mai noi de Windows: Start -> All Programs -> MiKTeX -> Settings. În meniul Settings alegeți primul tab și dați clic pe butonul Refresh FNDB (MiKTeX va căuta în directorul Program Files și va actualiza lista cu denumirile de fișiere din baza de date — File Name DataBase). După aceea, verificați apăsând tasta 'OK'.
Ultimul pas este absolut esențial. Fără el nimic nu va merge.
Motivul pentru care acest proces nu a fost automatizat peste tot este că încă mai sunt mii de sisteme TeX în uz neconforme cu TDS, cum ar fi versiunile instalate pe sistemele UNIX partajate (fără MMU) și pe unele sisteme Microsoft Windows, astfel că nu este posibil pentru un program de instalare să ghicească unde să pună fișierele: trebuie să faceți lucrul acesta manual. Sunt și alte sisteme pe care administratorul, utilizatorul, sau cel care s-a ocupat de instalarea TeX a ales să nu respecte structura de directoare TDS recomandată, sau nu a putut face asta din motive de politică sau securitate (ca în cazul unui sistem partajat unde nu se poate scrie într-un director protejat). Motivul pentru directorul texmf-local (denumit texmf.local pe unele sisteme sau texmf dacă este situat în /usr/local/share/) este să ofere un loc pentru modificări locale sau actualizări personale, mai ales dacă sunteți un utilizator pe un sistem partajat sau gestionat de un administrator (Unix, Linux, VMS, Windows NT/2000/XP, etc.), unde nu aveți dreptul de a scrie în structura principală de directoare TeX. Puteți avea de asemenea un subdirector personal texmf în propriul director de logare. Versiunea TeX instalată trebuie configurată în așa fel încât să caute mai întâi în aceste directoare, astfel ca orice actualizări ale pachetelor standard să fie găsite acolo înaintea copiilor suprascrise din directorul texmf de bază. Toate versiunile TeX moderne ar trebui să aibă acest comportament implicit, dar dacă nu este așa, puteți edita manual fișierul de configurare texmf/web2c/texmf.cnf.
Pachete individuale
Iată o listă (incompletă) de pachete utile pe care le puteți utiliza pentru tot felul de documente. Fiecare pachet are o scurtă descriere lângă el și, acolo unde se poate, un link către o secțiune care descrie acel pachet în detaliu. Toate (dacă nu se specifică altfel) trebuie incluse în distribuția LaTeX cu denumirea nume_pachet.sty. Pentru mai multe informații, vezi documentația pachetului respectiv, după cum se descrie în secțiunea precedentă. Lista este în ordine alfabetică.
amsmath | Conține extensiile avansate de matematică pentru LaTeX. Documentația completă ar trebui să facă parte din distribuția LaTeX instalată; fișierul se cheamă amsdoc sau amsmath, și poate fi DVI sau PDF. Pentru mai multe informații, vezi capitolul despre Matematică. |
amssymb | Adaugă simboluri noi de folosit în modul matematic. |
amsthm | Introduce mediul proof și comanda theoremstyle. Pentru mai multe informații, vezi capitolul Teoreme. |
array | Extinde posibilitățile LaTeX de gestiune a tabelelor, rezolvând unele probleme și adăugând noi facilități. Cu ajutorul acestui pachet, puteți crea tabele foarte complicate și personalizate. Pentru mai multe informații, vezi capitolul Tabele. |
babel | Oferă facilitățile de internaționalizare din LaTeX. Trebuie încărcat în orice document, și trebuie să-i dați ca opțiune limba principală în care veți scrie documentul. Pentru mai multe informații, vezi capitolul despre Internaționalizare. |
bm | Permite utilizarea de litere grecești aldine în modul matematic cu ajutorul comenzii \bm{...}. Acest pachet anulează facilitățile furnizate de pachetul amsbsy. |
boxedminipage | Introduce mediul boxedminipage, care merge exact ca minipage, însă adaugă un cadru în jurul lui. |
caption | Permite adaptarea aspectului și așezării notelor pentru figuri, tabele, etc. |
cancel | Oferă comenzi pentru tăierea expresiilor matematice. Sintaxa este următoarea:
\cancel{x} sau \cancelto{0}{x} |
changepage | Pentru a schimba ușor marginile paginilor. Sintaxa este următoarea:
\changepage{textheight}{textwidth}%
{evensidemargin}{oddsidemargin}%
{columnsep}{topmargin}%
{headheight}{headsep}%
{footskip} Toate argumentele pot fi atât numere pozitive, cât și negative; ele vor fi adăugate (păstrând semnul) la variabila corespunzătoare. |
cite | Ajută la gestionarea citatelor. |
color | Oferă suport pentru textul colorat. Pentru mai multe informații, vezi capitolul Culori. |
easylist | Adaugă suport pentru liste imbricate la niveluri arbitrare (folosite pentru a evidenția elementele). |
esint | Adaugă simboluri adiționale pentru integrale, cum ar fi integralele cu radicali, integrale în sensul acelor de ceasornic pentru mulțimi, etc. |
eucal | Alte simboluri matematice |
fancyhdr | Ajută la modificarea antetului și notelor de subsol pentru orice pagină din document. Este descris în capitolul despre Aranjarea în pagină. |
fontenc | Ajută la alegerea fontului folosit pentru textul din output. S-ar putea să vă trebuiască dacă scrieți documente în altă limbă decât engleza. Vezi capitolul despre Internaționalizare. |
geometry | Pentru a modifica ușor marginile documentului și dimensiunea paginii |
glossaries | Ajută la crearea de glosare și liste de acronime. Pentru mai multe informații, vezi capitolul Glosar. |
graphicx | Pentru imaginile externe |
hyperref | Oferă LaTeX the posibilitatea de a gestiona linkurile din cadrul documentului sau către orice URL când creați PDF-uri. Pentru mai multe informații, vezi capitolul Hyperlinkuri. |
indentfirst | Imediat ce este încărcat, începutul oricăror capitol și secțiune se indentează automat cu indentarea comună pentru paragrafe. |
inputenc | Vă ajută să alegeți codificarea textului de intrare (codul sursă). S-ar putea să fie necesar când scrieți documente într-o altă limbă decât engleza. Vezi capitolul despre Internaționalizare. |
latexsym | Alte simboluri matematice |
listings | Puteți insera cod de programare în document. Suportă numeroase limbaje, iar outputul poate fi adaptat. Pentru mai multe informații, vezi secțiunea Pachetul listings din capitolul Formatare avansată. |
mathrsfs | Alte simboluri matematice |
natbib | Oferă opțiuni și stiluri adiționale pentru citate. |
pdfpages | Simplifică inserarea de documente externe PDF sau PS cu mai multe pagini. |
rotating | Permite rotirea oricărui tip de obiect. Este deosebit de util la rotirea tabelelor. Pentru mai multe informații, vezi secțiunea Pachetul rotating din capitolul Formatare avansată. |
setspace | Vă permite să modificați spațierea liniilor. Spre exemplu, oferă comanda \doublespacing pentru spațiere dublă (la două rânduri). Pentru mai multe informații, vezi secțiunea Spațierea liniilor din capitolul LaTeX personalizat. |
showkeys | Este foarte util pentru orice document. Dacă vreți să faceți trimiteri la o imagine sau la o formulă, trebuie să le dați un nume cu ajutorul comenzii \label{...}, la care faceți apoi referire cu comanda \ref{...}. Când compilați documentul, acestea vor fi înlocuite numai cu numere, și nu puteți ști ce etichetă ați folosit decât dacă vă uitați peste codul sursă. Dacă ați încărcat pachetul showkeys, veți vedea eticheta lângă sau deasupra numărului corespunzător din versiunea compilată. Un exemplu de referință la o secțiune este . În felul acesta, puteți urmări cu ușurință etichetele pe care le-ați adăugat sau folosit, previzualizând documentul (DVI sau PDF). Chiar înainte de versiunea finală, înlăturați pachetul (ștergeți linia de includere corespunzătoare din preambul). |
showidx | Afișează toate intrările din index în marginea stângă a textului. Acest lucru este foarte util pentru corectarea unui document și verificarea indexului. Pentru mai multe informații, vezi capitolul Indexare. |
subfiles | Documentele "părinte" și "copil" pot fi compilate în același timp fără a modifica documentul "copil". Pentru mai multe informații, vezi secțiunea Pachetul subfiles din capitolul Fișiere multiple. |
subfig | Permite definirea de mai multe elemente flotante (figuri, tabele) într-un singur mediu, dând titluri și etichete individuale de forma 1a, 1b. |
syntonly | Dacă adăugați codul următor în preambul:
\usepackage{syntonly}
\syntaxonly LaTeX trece rapid prin document verificând numai sintaxa și modul de utilizare a comenzilor, însă nu produce niciun document de ieșire (DVI sau PDF). Deoarece LaTeX rulează mai repede în modul acesta, puteți economisi mult timp. Dacă vreți să generați output, comentați pur și simplu linia a doua. |
textcomp | Oferă simboluri adiționale, spre exemplu, săgeți ca \textrightarrow, simboluri pentru monede naționale (\texteuro,...), lucruri de genul \textcelsius și multe altele. |
theorem | Puteți schimba stilul teoremelor nou definite. Pentru mai multe informații, vezi capitolul Teoreme. |
todonotes | Vă permite să inserați note legate de sintaxă \todo{Adaugă detalii.} |
siunitx | Vă ajută la formatarea corectă a unităților de măsură internaționale (SI-units). Spre exemplu, \SI{12}{\mega\herz}. Produce automat spațierea corectă între numărul dat și unitatea respectivă. Notați că și celelalte unități de măsură sunt setate, cum ar fi dB, rad, ... |
ulem | Permite sublinierea textului (cu linii drepte sau ondulate). Găsiți câteva exemple în capitolul Formatare. |
url | Definește comanda \url{...}. URL-urile conțin deseori caractere speciale cum sunt _ și &. Pentru a le putea scrie, trebuie să dați comanda corespunzătoare pentru ele în LaTeX, prin inserarea unui backslash, însă dacă folosiți comanda \url{...}, nu trebuie să eludați niciun caracter special, iar comanda va asigura formatarea corespunzătoare. Dacă folosiți pachetul hyperref, nu trebuie să mai încărcați și pachetul url, întrucât hyperref oferă deja comanda \url{...}. |
verbatim | Îmbunătățește mediul verbatim, rezolvând unele probleme de programare. Mai mult, oferă mediul comment, care vă permite să adăugați comentarii de mai multe linii sau să comentați părți mari de cod. |
wrapfig | Ajută la inserarea de imagini înconjurate de text. Am discutat despre el în capitolul Elemente flotante, figuri și note. |
xypic | Se folosește la crearea de arbori, grafuri, diagrame (comutative), și altele asemenea. |
Crearea de pachete
Vezi
- LaTeX/LaTeX personalizat#Crearea propriilor pachete
- LaTeX/Subiecte avansate#Crearea propriilor pachete
Resurse externe
Modul cel mai bun de a căuta pachete LaTeX a fost deja menționat: CTAN: Căutare. Resurse adiționale de la Catalogul TeX Online:
- Catalogul alfabetic
- Cu scurte descrieri
- Catalogul pe subiecte, în care pachete sunt sortate sistematic
- Ierarhic, ce oglindește ierarhia de directoare CTAN
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
Î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
LaTeX 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
Comanda \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.
Pentru profesori
Introducere
LaTeX are facilități specifice pentru profesori. Prezentăm în continuare clasa de documente exam (examen)[1], utilă pentru proiectarea examenelor și pentru realizarea de exerciții cu soluții. Dacă sunteți interesați, puteți să vă uitați și peste pachetul probsoln[2] sau peste clasa de documente mathexm[3].
Clasa de documente exam
Puteți folosi această clasă de documente pentru a proiecta exercițiile pentru examene, alături de soluțiile acestora și eventual de punctajul obținut de elevi sau studenți (opțiuni specificate în preambulul documentului).
Preambul
În preambul puteți specifica liniile următoare:
|
Puteți înlocui primele 3 linii (necomentate) cu următoarea:
|
Document
- Mediul exam este inclus în mediul questions (întrebări).
- Comanda \question introduce o nouă întrebare.
- Numărul de puncte este specificat în paranteze drepte.
- Soluția este dată de mediul solution. Este afișată doar dacă specificați în preambul comanda \printanswers sau opțiunea answers la definirea clasei de documente cu \documentclass.
Iată un exemplu:
\begin{questions} % Încep întrebările (mediul questions)
\question[2] Care este soluția? % Întrebare nouă de 2 puncte
\begin{solution} % Soluția la întrebarea dinainte
{\color{CuloareSol} Iată soluția...}
\end{solution}
\question[5] Ce părere aveți?
\begin{solution}
{\color{CuloareSol} Aceasta este părerea mea...}
\end{solution}
\end{questions}
Puteți să specificați un cod LaTeX dacă răspunsurile sunt afișate și altul în caz contrar, cu ajutorul comenzii \ifprintanswers:
\ifprintanswers
Numai dacă răspunsurile sunt afișate
\else
Numai dacă răspunsurile nu sunt afișate
\fi
Macrocomanda \numquestions dă numărul total de întrebări. Macrocomanda \numpoints dă numărul total de puncte.
\begin{minipage}{.8\textwidth}
Acest examen cuprinde \numquestions\ probleme. Numărul total de puncte este \numpoints.
\end{minipage}
Backslashul de după \numquestion adaugă un spațiu (comanda '\ '), necesar aici întrucât comanda de afișare a numărului de întrebări șterge spațiul următor (la fel procedează și comanda \numpoints).
Referințe
- ↑ examdoc — utilizarea clasei de documente exam
- ↑ probsoln creează foi de probleme opţional şi cu soluţii
- ↑ http://mat140.bham.ac.uk/~richard/programming/tex/exams/msexdoc.pdf
LaTeX personalizat
Documentele produse cu comenzile pe care le-ați învățat până acum vor arăta acceptabil pentru multă lume. Deși nu au un aspect deosebit de atrăgător, respectă toate regulile consacrate de redactare de calitate, ceea ce le va face ușor de citit și cu un aspect plăcut. Totuși, sunt cazuri în care LaTeX nu oferă o comandă sau un mediu, sau nu produce un output care să răspundă cerințelor impuse.
În acest capitol, voi încerca să vă ofer câteva indicii despre trucuri noi în LaTeX și cum puteți realiza un output care să arate diferit de versiunea implicită LaTeX.
Comenzi noi
Pentru a adăuga propriile comenzi, utilizați comanda
\newcommand{nume}[nr_arg]{definiție}
În esență, această comandă necesită doi parametri: numele comenzii pe care vreți s-o creați și definiția comenzii. Parametrul nr_arg din paranteze drepte este opțional și specifică numărul de argumente pe care le va lua noua comandă (maxim 9). Dacă lipsește, numărul implicit este 0, adică nu sunt permise argumente.
Următoarele două exemple vă vor ajuta să înțelegeți cum funcționează. Primul exemplu definește o comandă nouă denumită \manl ce afișează mesajul "Manualul LaTeX". O astfel de comandă poate fi utilă dacă trebuie să scrii titlul acestui manual de nenumărate ori.
\newcommand{\manl}{Manualul \LaTeX}
Acesta este ‘‘\manl'' \ldots{} ‘‘\manl'' |
Acesta este “Manualul LaTeX” … “Manualul LaTeX” |
Exemplul următor vă arată cum să definiți o nouă comandă ce ia un argument. Eticheta #1 va fi înlocuită de argumentul specificat. Dacă vreți să folosiți mai multe argumente, scrieți #2 și așa mai departe, numărul de argumente fiind specificat între paranteze drepte.
\newcommand{\manlsus}[1] {Acesta este manualul LaTeX susținut de #1}
\newcommand{\manldoi}[2] {Acesta este manualul LaTeX susținut de #1 #2}
% în document:
\begin{itemize}
\item \manlsus{Wikimedia}
\item \manlsus{o mulțime de utilizatori!}
\item \manldoi{Ion}{Popescu}
\end{itemize} |
|
Notă: scrieți \manldoi, nu \manl2 (eroare la compilare)
LaTeX nu vă permite să creați o comandă nouă care va suprascrie una existentă. Pentru asta există o comandă specială: \renewcommand. Această comandă folosește aceeași sintaxă ca și \newcommand.
În unele situații ați putea opta și pentru comanda \providecommand. Aceasta merge la fel ca \newcommand, însă în cazul în care comanda este deja definită, LaTeX o va ignora fără vă emită nici un avertisment.
Cu LaTeX2e, puteți de asemenea să adăugați un parametru implicit unei comenzi, cu ajutorul sintaxei de mai jos:
\newcommand{nume}[nr][implicit]{definiție}
Dacă parametrul implicit al noii comenzi (\newcommand) este prezent, atunci primul dintre argumentele specificate (în număr de nr) este opțional și are valoarea implicită dată de parametrul implicit; dacă acest parametru lipsește, atunci toate argumentele sunt obligatorii.
\newcommand{\manldoi}[2][Wikimedia]{Acesta este Wikimanualul despre LaTeX sprijinit de {#1} și {#2}!}
% în corpul documentului:
\begin{itemize}
\item \manldoi{Ion Popescu}
\item \manldoi[o mulțime de utilizatori]{Ion Popescu}
\end{itemize} |
|
NOTĂ: când comanda se folosește cu primul parametru specificat în mod explicit, acesta este scris între paranteze drepte ( "[o mulțime de utilizatori]" ).
Medii Noi
La fel ca în cazul comenzii \newcommand, există o comandă pentru a crea propriile medii. Comanda \newenvironment folosește următoarea sintaxă:
\newenvironment{nume}[nr]{înainte}{după}
Din nou comanda \newenvironment poate avea un argument opțional. Materialul specificat în argumentul înainte este procesat înaintea textului din cadrul mediului. Materialul din argumentul după este procesat când se întâlnește comanda \end{nume}.
Argumentul nr se folosește la fel ca în cazul comenzii \newcommand. LaTeX are grijă ca să nu puteți defini un mediu care deja există. Dacă veți dori vreodată să modificați un mediu existent, puteți folosi comanda \renewenvironment. Aceasta folosește aceeași sintaxă ca și \newenvironment.
Exemplul de mai jos ilustrează utilizarea comenzii \newenvironment:
\newenvironment{rege}
{\rule{1ex}{1ex}\hspace{\stretch{1}}}
{\hspace{\stretch{1}}\rule{1ex}{1ex}}
\begin{rege}
Umilii mei subiecți \ldots
\end{rege} |
Spațiu suplimentar
Când creați un mediu nou vă puteți lovi ușor de spațiile suplimentare ce apar și care pot avea efecte foarte neplăcute, spre exemplu când vreți să creați un mediu pentru titlu ce suprimă propria indentare, ca și pe cea a paragrafului următor. Comanda \ignorespaces din blocul de început al mediului îl va face să ignore orice spațiu întâlnit după executarea blocului de început. Blocul de la sfârșit este ceva mai problematic deoarece la sfârșitul mediului are loc o procesare specială. Prin intermediul comenzii \ignorespacesafterend, LaTeX va da o comandă \ignorespaces după realizarea procesării speciale de la ‘final’.
\newenvironment{simplu}%
{\noindent}%
{\par\noindent}
\begin{simplu}
Vezi spațiul\\din stânga.
\end{simplu}
La fel\\aici. |
Vezi spațiul din stânga. La fel aici. |
\newenvironment{corect}%
{\noindent\ignorespaces}%
{\par\noindent%
\ignorespacesafterend}
\begin{corect}
Niciun spațiu\\la stânga.
\end{corect}
La fel\\aici. |
Niciun spațiu la stânga. La fel aici. |
De asemenea, dacă încă mai aveți probleme cu spațiul suplimentar ce se adaugă la sfârșitul mediului când folosiți \input pentru sursele externe, aveți grijă să nu lăsați niciun spațiu între începutul, locul de importare a sursei externe, și sfârșitul mediului, spre exemplu:
\begin{corect}\input{fișier.tex}\end{corect}
LaTeX în linia de comandă
Dacă lucrați pe un sistem de operare de tipul Unix, s-ar putea să folosiți fișiere Makefile sau alt tip de script pentru a vă crea proiectele LaTeX. În acest sens v-ar putea interesa să realizați versiuni diferite ale aceluiași document lansând LaTeX cu parametri în linia de comandă. Puteți adăuga următoarea structură la începutul documentului:
\usepackage{ifthen}
\ifthenelse{\equal{\blackandwhite}{true}}{
% modul "black and white" (alb și negru); fă ceva..
}{
% modul "color"; fă ceva diferit..
}
Acum puteți lansa LaTeX din terminal în felul următor:
latex '\newcommand{\blackandwhite}{true}\input{test.tex}'
Mai întâi se definește comanda \blackandwhite și apoi se citește fișierul cu comanda \input. Dacă setați \blackandwhite să fie 'false', atunci se va produce versiunea color a documentului.
Crearea propriului pachet
Dacă definiți o mulțime de medii și comenzi noi, preambulul documentului dvs. va deveni foarte mare. În această situație, este o idee bună să creați un pachet LaTeX care să conțină toate aceste definiții de medii și comenzi. Puteți folosi apoi comanda \usepackage pentru a face pachetul disponibil în document. Scrierea unui pachet în esență constă în copierea conținutului preambulului documentului într-un fișier separat cu extensia .sty.
Este foarte simplu, urmați pașii următori:
- creați un fișier text simplu pe care îl denumiți pachetulmeu.sty (sau orice alt nume vreți) și îl deschideți cu un editor de text
- chiar la începutul fișierului text scrieți
\ProvidesPackage{pachetulmeu}
- notă: trebuie să scrieți același nume ca denumirea fișierului fără extensie. Această comandă transmite sistemului LaTeX denumirea pachetului și permite sistemului să afișeze un mesaj de eroare corespunzător dacă încercați să includeți pachetul de două ori.
- scrieți ce vreți în fișierul text, folosind toate comenzile LaTeX pe care le știți. În mod normal ar trebui să definiți comenzi noi sau să importați alte pachete.
- importați noul pachet cu binecunoscuta comandă
\usepackage{pachetulmeu}
- sau
\RequirePackage{pachetulmeu}
Fișierul pachetulmeu.sty și fișierul sursă LaTeX (cu extensia .tex) pe care îl compilați trebuie să fie în același director. O să fie la fel ca și cum ați fi scris pachetul chiar în document.
Crearea propriului stil
Puteți de asemenea să creați propriul fișier de stil. Procesul este similar cu crearea propriului pachet. Puteți încărca propriul fișier de stil în preambulul documentului cu ajutorul comenzii:
\documentclass{stilulmeu}
Denumirea fișierului de stil este atunci stilulmeu.cls. Acest fisier poate fi deschis cu orice editor de text. Prima linie a acestui fișier trebuie să aibă următorul conținut:
\ProvidesClass{stilulmeu}
Din nou, în fișierele de stil puteți importa alte fișiere sau pachete cu comanda \RequirePackage.
Spațiere
Spațierea liniilor
Dacă vreți să folosiți spații mai mari între linii într-un document, puteți să schimbați valoarea spațiului implicit dintre linii cu ajutorul comenzii
\linespread{factor}
în preambulul documentului. Folosiți \linespread{1.3} pentru spațierea la "un rând și jumătate" și \linespread{1.6} pentru spațierea "dublă" (la două linii). În mod implicit liniile au spațiere normală, astfel că factorul implicit de spațiere a liniilor este 1.
Pachetul setspace permite un control mai precis al spațierii liniilor. Pentru a seta spațierea liniilor la "un rând și jumătate" în tot documentul, însă nu și acolo unde nu este necesar (spre exemplu în note de subsol, titluri), procedați în felul următor:
\usepackage{setspace}
%\singlespacing
\onehalfspacing
%\doublespacing
%\setstretch{1.1}
Pentru a schimba spațierea liniilor în anumite locuri din document, pachetul setspace vă pune la dispoziție mediile singlespace, onehalfspace, doublespace și spacing:
Formatarea paragrafelor
În LaTeX, formatarea paragrafelor este determinată de doi parametri. Cu o definiție de genul:
\setlength{\parindent}{0pt}
\setlength{\parskip}{1ex plus 0.5ex minus 0.2ex}
în preambulul documentului, puteți schimba formatul paragrafelor. Aceste două comenzi măresc spațiul dintre două paragrafe în timp ce indentarea paragrafelor este setată pe zero.
Părțile plus și minus ale lungimii de mai sus transmit sistemului TeX că poate să comprime sau să extindă spațiul dintre paragrafe cu valoarea specificată, dacă este necesar să încadreze în mod corespunzător paragrafele în pagină. În Europa continentală, paragrafele sunt adesea separate cu ceva spațiu, dar nu sunt indentate. Însă aveți grijă că formatarea paragrafelor influențează și formatul cuprinsului. Liniile cuprinsului sunt și ele mai spațiate acum. Pentru a evita asta, puteți muta cele două comenzi din preambul undeva după comanda \tableofcontents în document. Puteți să vă gândiți dacă vreți să folosiți facilitatea de spațiere a paragrafelor sau nu. Cele mai multe cărți de specialitate indentează paragrafele, însă nu folosesc spații adiționale între paragrafe.
Dacă vreți să indentați un paragraf care nu e deja indentat, puteți folosi comanda
\indent
la începutul paragrafului. Evident, asta va avea efect doar dacă \parindent nu este setat pe zero. Dacă vreți să indentați începutul fiecărei secțiuni, puteți folosi pachetul indentfirst, vezi capitolul LaTeX/Pachete pentru mai multe detalii.
Pentru a crea un paragraf neindentat, puteți folosi comanda
\noindent
chiar la începutul paragrafului. Acest lucru ar putea fi foarte util cănd începeți un document cu text și nu cu o comandă de secționare (care marchează începutul unei secțiuni).
Spațiu orizontal
LaTeX determină automat spațiile dintre cuvinte și fraze. Pentru a adăuga spațiu orizontal, folosiți comanda:
\hspace{lungime}
Dacă vreți să păstrați un spațiu chiar dacă este la începutul sau la sfârșitul unei linii, folosiți comanda \hspace* în loc de \hspace. Lungimea în cazul cel mai simplu este doar un număr și o unitate de măsură, de exemplu \hspace{1.5 cm}. Pentru o listă cu toate unitățile de măsură, vezi anexa Macrouri utile pentru măsurare.
Comanda:
\stretch{n}
generează un spațiu special de ajustare (rubber space). Acesta se extinde pentru a ocupa tot spațiul disponibil de pe o linie. Dacă folosiți două comenzi \hspace{\stretch{n}} pe aceeași linie, acestea vor determina extinderea spațiului în funcție de factorul de extindere (stretch factor).
x\hspace{\stretch{1}}
x\hspace{\stretch{3}} x |
x x x |
Spațiu vertical
Spațiul dintre paragrafe, secțiuni, subsecțiuni, etc., este determinat automat de sistemul LaTeX. Spațierea implicită a paragrafelor poate fi modificată plasând următoarea comandă în preambulul documentului:
\parskip 7.2pt
Dacă este necesar, puteți adăuga spațiu vertical adițional între două paragrafe cu comanda:
\vspace{lungime}
Această comandă ar trebui utilizată în mod normal între două linii goale (fără text). Dacă vreți ca acest spațiu vertical să rămână chiar și la începutul sau la sfârșitul unei pagini, utilizați versiunea stelată a comenzii, și anume \vspace* în loc de \vspace. Puteți folosi comenzile \stretch împreună cu \pagebreak pentru a aranja text pe ultima linie a paginii saU pentru a centra text vertical pe o pagină.
Puteți adăuga spațiu adițional între două linii ale aceluiași paragraf sau într-un tabel cu comanda
\\[lungime]
Dacă vreți să adăugați spațiu la începutul unui document, fără a scrie nimic înainte, puteți folosi
{ \phantom{.} \vspace{lungime} }
Este important să folosiți comanda \phantom și acolade, altfel sistemul LaTeX va da o eroare.
Fișiere multiple
Realizarea în colaborare de documente LaTeX
LaTeX/Realizarea în colaborare de documente LaTeX
Sfaturi și trucuri
Ghid general
Exportarea sub alte formate
LaTeX/Exportarea sub alte formate
Internaționalizare
LaTeX has to be configured and used appropriately when it is used to write documents in languages other than English. This has to address three main areas:
- LaTeX needs to know how to hyphenate the language(s) to be used.
- The user needs to use language-specific typographic rules. In French for example, there is a mandatory space before each colon character (:).
- The input of special characters, especially for languages using an input system (Arab, Chinese, Japanese, Korean).
It is convenient to be able to insert language-specific special characters directly from the keyboard instead of using cumbersome coding (for example, by typing ä instead of \"{a}). This can be done by configuring input encoding properly. We will not tackle this issue here: see the Special Characters chapter.
Some languages require special fonts with the proper font encoding set. See Font encoding.
Some of the methods described in this chapter may be useful when dealing with non-English author names in bibliographies.
Here is a collection of suggestions about writing a LaTeX document in a language other than English. If you have experience in a language not listed below, please add some notes about it.
Prerequisites
Most non-english language will need to input special characters very often. For a convenient writing you will need to set the input encoding and the font encoding properly.
The following configuration is optimal for many languages (most latin languages). Make sure your document is saved using the UTF-8 encoding.
\usepackage[utf8]{inputenc} \usepackage[T1]{fontenc}
For more details check Font encoding and Special Characters.
Babel
The Format:LaTeX/Package package by Johannes Braams and Javier Bezos will take care of everything (with XeTeX and LuaTeX you should consider Format:LaTeX/Package). You can load it in your preamble, providing as an argument name of the language you want to use (usually its English name, but not always):
\usepackage[language]{babel}
You should place it soon after the \documentclass
command, so that all the other packages you load afterwards will know the language you are using. Babel will automatically activate the appropriate hyphenation rules for the language you choose. If your LaTeX format does not support hyphenation in the language of your choice, babel will still work but will disable hyphenation, which has quite a negative effect on the appearance of the typeset document. Babel also specifies new commands for some languages, which simplify the input of special characters. See the sections about languages below for more information.
If you call babel with multiple languages:
\usepackage[languageA,languageB]{babel}
then the last language in the option list will be active (i.e. languageB), and you can use the command
\selectlanguage{languageA}
to change the active language. You can also add short pieces of text in another language using the command
\foreignlanguage{languageB}{Text in another language}
Babel also offers various environments for entering larger pieces of text in another language:
\begin{otherlanguage}{languageB} Text in language B. This environment switches all language-related definitions, like the language specific names for figures, tables etc. to the other language. \end{otherlanguage}
The starred version of this environment typesets the main text according to the rules of the other language, but keeps the language specific string for ancillary things like figures, in the main language of the document. The environment hyphenrules switches only the hyphenation patterns used; it can also be used to disallow hyphenation by using the language name 'nohyphenation' (but note selectlanguage* is preferred).
The babel manual provides much more information on these and many other options.
Multilingual versions
It is possible in LaTeX to typeset the content of one document in several languages and to choose upon compilation which language to output. This might be convenient to keep a consistent sectioning and formatting across the different languages. It is also useful if you make use of multiple proper nouns and other untranslated content. Using the commands above in multilingual documents can be cumbersome, and therefore Format:LaTeX/Package provides a way to define shorter names. With Format:LaTeX/Usage You can write: Format:LaTeX/Usage
Alternative choice using iflang
The current language can also be tested by using the Format:LaTeX/Package package by Heiko Oberdiek (the built-in feature from the babel package is not reliable). Here comes a simple example:
\IfLanguageName{ngerman}{Hallo}{Hello}
This allows to easily distinguish between two languages without the need of defining own commands. The babel language is changed by setting
\selectlanguage{english}
Specific languages
Arabic script
For languages which use the Arabic script, including Arabic, Persian, Urdu, Pashto, Kurdish, Uyghur, etc., add the following code to your preamble:
Format:LaTeX/Usage You can input text in either romanized characters or native Arabic script encodings. Use any of the following commands and environments to enter in text:
See the ArabTeX Wikipedia article for further details.
You may also use the Format:LaTeX/Package package within Babel to typeset Arabic and Persian
You may also copy and paste from PDF files produced with Arabi thanks to the support of the Format:LaTeX/Package package. You may use Arabi with LyX, or with tex4ht to produce HTML.
Armenian
The Armenian script uses its own characters, which will require you to install a text editor that supports Unicode and will allow you to enter UTF-8 text, such as Texmaker or WinEdt. These text editors should then be configured to compile using XeLaTeX.
Once the text editor is set up to compile with XeLaTeX, the Format:LaTeX/Package package can be used to write in Armenian:
or
The Sylfaen font lacks italic and bold, but DejaVu Serif supports them.
See Armenian Wikibooks for further details, especially on how to configure the Unicode supporting text editors to compile with XeLaTeX.
Cyrillic script
Version 3.7h of Format:LaTeX/Package includes support for the T2* encodings and for typesetting Bulgarian, Russian and Ukrainian texts using Cyrillic letters[1]. Support for Cyrillic is based on standard LaTeX mechanisms plus the Format:LaTeX/Package and Format:LaTeX/Package packages. AMS-LaTeX packages should be loaded before Format:LaTeX/Package and Format:LaTeX/Package. If you are going to use Cyrillics in mathmode, you also need to load Format:LaTeX/Package package before Format:LaTeX/Package:
Generally, Format:LaTeX/Package will automatically choose the default font encoding, for the above three languages this is T2A. However, documents are not restricted to a single font encoding. For multilingual documents using Cyrillic and Latin-based languages it makes sense to include Latin font encoding explicitly. Babel will take care of switching to the appropriate font encoding when a different language is selected within the document.
On modern operating systems it is beneficial to use Unicode (Format:LaTeX/Parameter or Format:LaTeX/Parameter) instead of KOI8-RU (Format:LaTeX/Parameter) as an input encoding for Cyrillic text.
In addition to enabling hyphenations, translating automatically generated text strings, and activating some language specific typographic rules (like \frenchspacing
), Format:LaTeX/Package provides some commands allowing typesetting according to the standards of Bulgarian, Russian, or Ukrainian languages.
For all three languages, language specific punctuation is provided: the Cyrillic dash for the text (it is little narrower than Latin dash and surrounded by tiny spaces), a dash for direct speech, quotes, and commands to facilitate hyphenation:
Key combination | Action |
---|---|
"| |
No ligature at this position. |
"- |
Explicit hyphen sign, allowing hyphenation in the rest of the word. |
"--- |
Cyrillic emdash in plain text. |
"--~ |
Cyrillic emdash in compound names (surnames). |
"--* |
Cyrillic emdash for denoting direct speech. |
"" |
Similar to "-, but it produces no hyphen sign (used for compound words with hyphen, e.g. x-""y or some other signs as “disable/enable”).
|
"~ |
Compound word mark without a breakpoint. |
"= |
Compound word mark with a breakpoint, allowing hyphenation in the composing words. |
", |
Thinspace for initials with a breakpoint in a following surname. |
"‘ |
German opening double quote (,,). |
"’ |
German closing double quote (“). |
"< |
French opening double quote (<<). |
"> |
French closing double quote (>>). |
The Russian and Ukrainian options of Format:LaTeX/Package define the commands
Format:LaTeX/Usage
which act like \Alph
and \alph
(commands for turning counters into letters, e.g. a, b, c...
), but produce capital and small letters of Russian or Ukrainian alphabets (whichever is the active language of the document).
The Bulgarian option of Format:LaTeX/Package provides the commands
Format:LaTeX/Usage
which make \Alph
and \alph
produce letters of either Bulgarian or Latin (English) alphabets. The default behaviour of \Alph
and \alph
for the Bulgarian language option is to produce letters from the Bulgarian alphabet.
See the Bulgarian translation of "The Not So Short Introduction to LaTeX" [2] for a method to type Cyrillic letters directly from the keyboard using a different distribution.
Chinese
One possible Chinese support is made available thanks to the Format:LaTeX/Package package collection. If you are using a package manager or a portage tree, the CJK collection is usually in a separate package because of its size (mainly due to fonts).
Make sure your document is saved using the UTF-8 character encoding. See Special Characters for more details. Put the parts where you want to write chinese characters in a Format:LaTeX/Environment environment.
The last argument specifies the font. It must fit the desired language, since fonts are different for Chinese, Japanese and Korean. Possible choices for Chinese include:
- gbsn (简体宋体, simplified Chinese)
- gkai (简体楷体, simplified Chinese)
- bsmi (繁体细上海宋体, traditional Chinese)
- bkai (繁体标楷体, traditional Chinese)
Czech
Czech is fine using
Format:LaTeX/Usage
UTF-8 allows you to have „czech quotation marks“ directly in your text. Otherwise, there are macros \clqq and \crqq to produce left and right quote. You can place quotated text inside \uv
.
Finnish
Finnish language hyphenation is enabled with: Format:LaTeX/Usage This will also automatically change document language (section names, etc.) to Finnish.
French
You can load French language support with the following command:
There are multiple options for typesetting French documents, depending on the flavor of French: Format:LaTeX/Parameter, Format:LaTeX/Parameter, and Format:LaTeX/Parameter for Parisian French, and Format:LaTeX/Parameter and Format:LaTeX/Parameter for new-world French. If you do not know or do not really care, we would recommend using frenchb
.
All enable French hyphenation, if you have configured your LaTeX system accordingly. All of these also change all automatic text into French: \chapter
prints Chapitre, \today
prints the current date in French and so on. A set of new commands also becomes available, which allows you to write French input files more easily. Check out the following table for inspiration:
input code | rendered output |
---|---|
\og guillemets \fg{} | « guillemets » |
M\up{me}, D\up{r} | Mme, Dr |
1\ier{}, 1\iere{}, 1\ieres{} | 1er, 1re, 1res |
2\ieme{} 4\iemes{} | 2e 4es |
\No 1, \no 2 | N° 1, n° 2 |
20~\degres C, 45\degres | 20 °C, 45° |
M. \bsc{Durand} | M. Durand |
\nombre{1234,56789} | 1 234,567 89 |
You may want to typeset guillemets and other French characters directly if your keyboard have them. Running Xorg (*BSD and GNU/Linux), you may want to use the oss variant which features some nice shortcuts, like
Key combination | Character |
---|---|
Alt Gr + w | « |
Alt Gr + x | » |
Alt Gr + Shift + é | É |
Alt Gr + Shift + è | È |
Alt Gr + Shift + ç | Ç |
You will need the T1 font encoding for guillemets to print properly.
For the degree character you will get an error like
! Package inputenc Error: Unicode char \u8:° not set up for use with LaTeX.
The Format:LaTeX/Package package will fix it for you.
The great advantage of Babel for French is that it will handle some elements of French typography for you, especially non-breaking spaces before all two-parts punctuation marks. So now you can write:
The non-breaking space before the euro symbol is still necessary because currency symbols and other units or not supported in general (that's not specific to French).
You can use the Format:LaTeX/Package package along Babel. It will let you print numbers the French way. Format:LaTeX/Example
You will also notice that the layout of lists changes when switching to the French language. This is customizable using the \frenchbsetup
command. For more information on what the Format:LaTeX/Parameter option of Format:LaTeX/Package does and how you can customize its behavior, run LaTeX on file frenchb.dtx and read the produced file frenchb.pdf or frenchb.dvi. You can get the PDF version on CTAN.
German
You can load German language support using either one of the two following commands.
For traditional ("old") German orthography use Format:LaTeX/Usage
or for reform ("new") German orthography use
This enables German hyphenation, if you have configured your LaTeX system accordingly. It also changes all automatic text into German, e.g. “Chapter” becomes “Kapitel”. A set of new commands also becomes available, which allows you to write German input files more quickly even when you don't use the inputenc package. Check out the table below for inspiration. With inputenc, all this becomes moot, but your text also is locked in a particular encoding world.
"A "O "U | Ä Ö Ü |
"a "o "u "s | ä ö ü ß |
"` or \glqq | „ |
"' or \grqq | “ |
\glq \grq | |
"< or \flqq | « |
"> or \frqq | » |
\flq \frq | ‹ › |
\dq | " |
In German books you sometimes find French quotation marks («guillemets»). German typesetters, however, use them differently. A quote in a German book would look like »this«. In the German speaking part of Switzerland, typesetters use «guillemets» the same way the French do. A major problem arises from the use of commands like \flq
: If you use the OT1 font encoding (which is the default) the guillemets will look like the math symbol "", which turns a typesetter's stomach. T1 encoded fonts, on the other hand, do contain the required symbols. So if you are using this type of quote, make sure you use the T1 encoding.
Decimal numbers usually have to be written like 0{,}5 (not just 0,5). Packages like ziffer enable input like 0,5.
Greek
This is the preamble you need to write in the Greek language. Note the particular input encoding.
This preamble enables hyphenation and changes all automatic text to Greek. A set of new commands also becomes available, which allows you to write Greek input files more easily. In order to temporarily switch to English and vice versa, one can use the commands \textlatin{english text}
and \textgreek{greek text}
that both take one argument which is then typeset using the requested font encoding. Otherwise you can use the command \selectlanguage{...}
described in a previous section. Use \euro
for the Euro symbol.
Hungarian
Use the following lines: Format:LaTeX/Usage
More information in hungarian.
Icelandic and Faroese
The following lines can be added to write Icelandic text:
This changes text like Part into Hluti. It makes additional commands available:
"` or \glqq | „ |
\grqq | “ |
\TH | Þ |
\th | þ |
\DH | Ð |
\dh | ð |
To make special characters such as Þ and Æ become available just add:
The default LATEX font encoding is OT1, but it contains only the 128 characters. The T1 encoding contains letters and punctuation characters for most of the European languages using Latin script.
Italian
Italian is well supported by LaTeX. Just add Format:LaTeX/Usage at the beginning of your document and the output of all the commands will be translated properly.
Japanese
There is a variant of TeX intended for Japanese named pTeX, which supports vertical typesetting.
Another possible way to write in japanese is to use Lualatex and the luatex-ja package. An example from the Luatexja documentation : Format:LaTeX/Usage
You can also use capabilities provided by the Fontspec package and those provided by Luatexja-fontspec to declare the font you want to use in your paper. Let us take an example : Format:LaTeX/Usage Use UTF-8 as your encoding. In case you don't know how to do this, take a look at Texmaker, a LaTeX editor which use UTF-8 by default.
Another (but old) possible Japanese support is made available thanks to the Format:LaTeX/Package package collection. If you are using a package manager or a portage tree, the CJK collection is usually in a separate package because of its size (mainly due to fonts).
Make sure your document is saved using the UTF-8 character encoding. See Special Characters for more details. Put the parts where you want to write japanese characters in a Format:LaTeX/Environment environment. Format:LaTeX/Usage The last argument specifies the font. It must fit the desired language, since fonts are different for Chinese, Japanese and Korean. Format:LaTeX/Parameter is an example for Japanese.
Korean
The two most widely used encodings for Korean text files are EUC-KR and its upward compatible extension used in Korean MS-Windows, CP949/Windows-949/UHC. In these encodings each US-ASCII character represents its normal ASCII character similar to other ASCII compatible encodings such as ISO-8859-x, EUC-JP, Big5, or Shift_JIS. On the other hand, Hangul syllables, Hanjas (Chinese characters as used in Korea), Hangul Jamos, Hiraganas, Katakanas, Greek and Cyrillic characters and other symbols and letters drawn from KS X 1001 are represented by two consecutive octets. The first has its MSB set. Until the mid-1990's, it took a considerable amount of time and effort to set up a Korean-capable environment under a non-localized (non-Korean) operating system. You can skim through the now much-outdated http://jshin.net/faq to get a glimpse of what it was like to use Korean under non-Korean OS in mid-1990's.
TeX and LaTeX were originally written for scripts with no more than 256 characters in their alphabet. To make them work for languages with considerably more characters such as Korean or Chinese, a subfont mechanism was developed. It divides a single CJK font with thousands or tens of thousands of glyphs into a set of subfonts with 256 glyphs each.
For Korean, there are three widely used packages.
- HLATEX by UN Koaunghi
- hLATEXp by CHA Jaechoon
- the CJK package by Werner Lemberg
HLATEX and hLATEXp are specific to Korean and provide Korean localization on top of the font support. They both can process Korean input text files encoded in EUC-KR. HLATEX can even process input files encoded in CP949/Windows-949/UHC and UTF-8 when used along with Λ, Ω.
The CJK package is not specific to Korean. It can process input files in UTF-8 as well as in various CJK encodings including EUC-KR and CP949/Windows-949/UHC, it can be used to typeset documents with multilingual content (especially Chinese, Japanese and Korean). The CJK package has no Korean localization such as the one offered by HLATEX and it does not come with as many special Korean fonts as HLATEX.
The ultimate purpose of using typesetting programs like TeX and LaTeX is to get documents typeset in an aesthetically satisfying way. Arguably the most important element in typesetting is a set of welldesigned fonts. The HLATEX distribution includes UHC PostScript fonts of 10 different families and Munhwabu fonts (TrueType) of 5 different families. The CJK package works with a set of fonts used by earlier versions of HLATEX and it can use Bitstream's cyberbit True-Type font.
To use the HLATEX package for typesetting your Korean text, put the following declaration into the preamble of your document: Format:LaTeX/Usage This command turns the Korean localization on. The headings of chapters, sections, subsections, table of content and table of figures are all translated into Korean and the formatting of the document is changed to follow Korean conventions. The package also provides automatic particle selection. In Korean, there are pairs of post-fix particles grammatically equivalent but different in form. Which of any given pair is correct depends on whether the preceding syllable ends with a vowel or a consonant. (It is a bit more complex than this, but this should give you a good picture.) Native Korean speakers have no problem picking the right particle, but it cannot be determined which particle to use for references and other automatic text that will change while you edit the document. It takes a painstaking effort to place appropriate particles manually every time you add/remove references or simply shuffle parts of your document around. HLATEX relieves its users from this boring and error-prone process.
In case you don't need Korean localization features but just want to typeset Korean text, you can put the following line in the preamble, instead. Format:LaTeX/Usage For more details on typesetting Korean with HLATEX, refer to the HLATEX Guide. Check out the web site of the Korean TeX User Group (KTUG).
Persian script
For Persian language, there is a dedicated package called XePersian which uses XeLaTeX as the typesetting engine. Just add the following code to your preamble:
Moreover, Arabic script can be used to type Persian as illustrated in the corresponding section.
Polish
If you plan to use Polish in your UTF-8 encoded document, use the following code Format:LaTeX/Usage
The above code merely allows to use Polish letters and translates the automatic text to Polish, so that "chapter" becomes "rozdział". There are a few additional things one must remember about.
Connectives
Polish has many single letter connectives: "a", "o", "w", "i", "u", "z", etc., grammar and typography rules don't allow for them to end a printed line. To ensure that LaTeX won't set them as last letter in the line, you have to use non breakable space:
Numerals
According to Polish grammar rules, you have to put dots after numerals in chapter, section, subsection, etc. headers.
This is achieved by redefining few LaTeX macros.
For books: Format:LaTeX/Usage
For articles: Format:LaTeX/Usage
Alternatively you can use dedicated document classes:
- the Format:LaTeX/Environment class instead of Format:LaTeX/Environment,
- Format:LaTeX/Environment instead of Format:LaTeX/Environment
- and Format:LaTeX/Environment instead of Format:LaTeX/Environment.
Those classes have much more European typography settings but do not require the use of Polish babel settings or character encoding.
Simple usage: Format:LaTeX/Usage
Full documentation for those classes is available at http://web.archive.org/web/20040609034031/http://www.ci.pwr.wroc.pl/~pmazur/LaTeX/mwclsdoc.pdf (Polish).
Indentation
It may be customary (depending on publisher) to indent the first paragraph in sections and chapters: Format:LaTeX/Usage
Hyphenation and typography
It's much more frowned upon to set pages with hyphenation between pages than it is customary in American typesetting.
To adjust penalties for hyphenation spanning pages, use this command: Format:LaTeX/Usage
To adjust penalties for leaving widows and orphans (clubs in TeX nomenclature) use those commands: Format:LaTeX/Usage
Commas in math
According to Polish typography rules, fractional parts of numbers should be delimited by a comma, not a dot. To make LaTeX not insert additional space in math mode after a comma (unless there is a space after the comma), use the Format:LaTeX/Package package.
Unfortunately, it is partially incompatible with the Format:LaTeX/Package package. One needs to either use dots in columns with numerical data in the source file and make Format:LaTeX/Package switch them to commas for display or define the column as follows: Format:LaTeX/Usage
The alternative is to use the Format:LaTeX/Package package, but it is much less convenient.
Further information
Refer the Słownik Ortograficzny (in Polish) for additional information on Polish grammar and typography rules.
Good extract is available at Zasady Typograficzne Składania Tekstu (in Polish).
Portuguese
Add the following code to your preamble:
You can substitute the language for brazilian portuguese by choosing Format:LaTeX/Parameter.
Slovak
Basic settings are fine when left the same as Czech, but Slovak needs special signs for 'ď', 'ť', 'ľ'. To be able to type them from keyboard use the following settings: Format:LaTeX/Usage
Spanish
Include the appropriate Babel option: Format:LaTeX/Usage
The trick is that Spanish has several options and commands to control the layout. The options may be loaded either at the call to Babel, or before, by defining the command \spanishoptions
. Therefore, the following commands are roughly equivalent:
On average, the former syntax should be preferred, as the latter is a deviation from standard Babel behavior, and thus may break other programs (LyX, latex2rtf) interacting with LaTeX.
Spanish also defines shorthands for the dot and << >> so that they are used as logical markup: the former is used as decimal marker in math mode, and the output is typically either a comma or a dot; the latter is used for quoted text, and the output is typically either «» or “”. This allows different typographical conventions with the same input, as preferences may be quite different from, say, Spain and Mexico.
Two particularly useful options are Format:LaTeX/Parameter: some packages and classes are known to collide with Spanish in the way they handle active characters, and these options disable the internal workings of Spanish to allow you to overcome these common pitfalls. Moreover, these options may simplify the way LyX customizes some features of the Spanish layout from inside the GUI.
The options Format:LaTeX/Parameter provide support for local custom in Mexico: the former using decimal dot, as customary, and the latter allowing decimal comma, as required by the Mexican Official Norm (NOM) of the Department of Economy for labels in foods and goods. More localizations are in the making.
The other commands modify the spanish layout after loading Babel. Two particularly useful commands are \spanishoperators
and \spanishdeactivate
.
The macro \spanishoperators{<list of operators>}{
contains a list of spanish mathematical operators, and may be redefined at will. For instance, the command
Format:LaTeX/Usage
only defines Format:LaTeX/Parameter, overriding all other definitions; the command \let\spanishoperators\relax
disables them all. This command supports accented or spaced operators: the \acute{<letter>}
command puts an accent, and the \,
command adds a small space.
For instance, the following operators are defined by default.
Finally, the macro \spanishdeactivate{<list of characters>}
disables some active characters, to keep you out of trouble if they are redefined by other packages. The candidates for deactivation are the set {<>."'}. Please, beware that some option preempt the availability of some active characters. In particular, you should not combine the Format:LaTeX/Parameter option with \spanishdeactivate{<>}
, or the Format:LaTeX/Parameter with \spanishdeactivate{<>."}
.
Please check the documentation for Babel or spanish.dtx for further details.
Tibetan
One option to use Tibetan script in LaTeX is to add Format:LaTeX/Usage to your preamble and use a slightly modified Wylie transliteration for input. Refer to the excellent package documentation for details. More information can be found on [3]
References
- ↑ The Not So Short Introduction to LaTeX, 2.5.6 Support for Cyrillic, Maksym Polyakov
- ↑ The Not So Short Introduction to LaTeX, Bulgarian translation
Accente
În wordpress cu LaTex, am reușit să scriu anumite diacritice astfel: litera â [math]\hat{a}[/math] litera ă [math]\breve{a}[/math] sau [math]check{a}[/math] litera ș , atenție merge cu \text ... [math]\text{\c{s}}[/math] litera Ș [math]\text{\c{S}}[/math] (inspirat de exemplu din http://www.artofproblemsolving.com/Wiki/index.php/LaTeX:Symbols#Accents dar cu precizările de mai sus și verificări) Litera î , nu încă.
Anexe
Instalare
Macrouri utile pentru măsurare
Units
First, we introduce the LaTeX measurement units. All LaTeX units are two-word abbreviations. You can choose from a variety of units. Here are the most common ones.[1]
Abbreviation | Definition | Value in points (pt) |
---|---|---|
pt | a point is 1/72.27 inch, that means about 0.0138 inch or 0.3515 mm. 1pt is the default length. | 1 |
mm | a millimeter | 2.84 |
cm | a centimeter | 28.4 |
in | inch | 72.27 |
ex | roughly the height of an 'x' in the current font | undefined, depends on the font used |
em | roughly the width of an 'M' (uppercase) in the current font | undefined, depends on the font used |
And here are some less common units.[2]
Abbreviation | Definition | Value in points (pt) |
---|---|---|
bp | a big point is 1/72 inch, that means about 0.0139 inch or 0.3527 mm. | 1.00375 |
pc | pica | 12 |
dd | didôt (1157 didôt = 1238 points) | 1.07 |
cc | cîcero (12 didôt) | 12.84 |
sp | scaled point (65536sp per point) | 0.000015 |
Comenzi utile pentru dimensiuni
LaTeX/Comenzi utile pentru dimensiuni
Documente selective LaTeX
LaTeX/Documente selective LaTeX
Mai multe despre bibliografie
LaTeX/Mai multe despre bibliografie
Index
Glosar de comenzi
Linkuri
Autori
GNU Free Documentation License
- This is an unofficial translation of the GNU Free Documentation License into Romanian. It was not published by the Free Software Foundation, and does not legally state the distribution terms for documentation that uses the GNU FDL -- only the original English text of the GNU FDL does that. However, we hope that this translation will help Romanian speakers understand the GNU FDL better.
- Aceasta este o traducere neoficială a Licenței GNU pentru Documentație liberă (GNU Free Documentation Licence) în limba română. Această traducere nu a fost publicată de Free Software Foundation și nu specifică în mod legal termenii de distribuire a documentelor care folosesc GNU FDL - numai textul original în limba engleză al GNU FDL face acest lucru. Sperăm totuși ca această traducere să ajute vorbitorii de limbă română să înțeleagă mai bine GNU FDL. Textul original în engleză al licenței poate fi găsit la http://www.gnu.org/copyleft/fdl.html
Licența GNU pentru Documentație liberă (GNU Free Documentation Licence)
versiunea 1.2 din noiembrie 2002.
Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Oricine poate copia și distribui copii identice ale acestui document, dar modificarea lui nu este permisă.
0. PREAMBUL
Scopul acestei Licențe este de a conferi unui set de instrucțiuni, manual școlar sau altui document folositor "libertate", înțeleasă în sensul următor: asigură tuturor libertatea de a copia și redistribui textul, cu sau fără modificări, în scopuri comerciale și necomerciale. Ca scop secundar, această Licență rezervă pentru autor și editor dreptul de a fi creditați pentru munca lor și de a nu fi responsabili pentru modificările efectuate de alții.
Acestă Licență conferă un fel de "stânguri de autor" ("copyleft"), ceea ce înseamnă că lucrările derivate trebuie să fie și ele libere în sensul de mai sus. Această Licență este inspirată de Licența Publică Generală GNU (GNU General Public License, GNU GPL), care este o licență similară concepută pentru a acoperi softul liber.
Această Licență a fost scrisă pentru a acoperi manuale pentru soft liber, pentru că softul liber necesită documentație liberă: un program trebuie însoțit de manuale care oferă aceeași libertate în folosire ca și softul. Acestă Licență nu este limitată la manuale pentru soft și poate fi folosită pentru a acoperi orice lucrare, indiferent de subiect sau de modul de publicare. Această Licență este recomandată în principal pentru lucrări care servesc drept referință sau au fost scrise în scop de instruire.
1. APLICABILITATE ȘI DEFINIȚII
Această Licență se aplică oricărui manual sau lucrări, în orice mediu, care conține o notă inclusă de către deținătorul dreptului de autor ce permite distribuția sub acoperirea acestei Licențe. Această notă conferă dreptul universal (world-wide), fără indemnizație și nelimitat ca durată de a folosi această lucrare în condițiile descrise de această Licență. Termenul "Documentul" folosit mai jos se referă la manualul sau lucrearea acoperită de Licență. Orice membru al publicului este un beneficiar al acestei Licențe și va fi desemnat prin termenul "Dvs." sau prin folosirea persoanei a doua. Se consideră în mod automat că ați acceptat termenii acestei Licențe dacă copiați, modificați sau distribuiți Documentul într-un mod ce necesită permisiunea autorului în conformitate cu legea drepturilor de autor.
O "Versiune Modificată" a Documentului este orice lucrare conținând Documentul sau o porțiune din Document, copiată identic sau cu modificări și/sau tradusă într-o altă limbă.
O "Secțiune Secundară" este o anexă cu titlu, sau o secțiune menționată în cuprins care are ca scop exclusiv descrierea relației editorilor sau a autorilor Documentului cu subiectul Documentului (sau cu subiecte legate de acesta) și care nu conține subiecte incluse în mod direct în subiectul Documentului. (Așadar, dacă Documentul este în parte manual de matematică, o Secțiune Secundară nu poate conține explicații matematice.) Relația poate fi o conexiune istorică cu subiectul sau cu problemele înrudite cu subiectul, sau puncte de vedere legale, comerciale, filozofice, etice sau politice legate de acesta.
"Secțiunile Invariante" sunt anumite Secțiuni Secundare ale căror titluri sunt specificate ca fiind titluri de Secțiuni Invariante din Document în nota ce permite distribuția Documentului sub acoperirea acestei Licențe. Dacă o secțiune nu este conformă cu definiția de mai sus a unei Secțiuni Secundare ea nu poate fi desemnată drept Secțiune Invariantă. Documentul poate să nu conțină nici o Secțiune Invariantă. Dacă Documentul nu specifică nici o Secțiune Invariantă se consideră că nu există nici una.
"Textele De Copertă" sunt pasaje scurte de text care sunt listate ca Texte Pentru Coperta I (coperta din față) și Texte Pentru Coperta IV (coperta din spate) în nota ce permite distribuția Documentului sub acoperirea acestei Licențe. Un Text Pentru Coperta I poate avea cel mult 5 cuvinte, iar un Text Pentru Coperta IV poate avea cel mult 25 de cuvinte.
O copie "Transparentă" a Documentului este o copie în format electronic, reprezentată într-un format a cărui specificație este disponibilă publicului, care este ușor de modificat folosind un editor de text generic sau (pentru imagini compuse din pixeli) un editor grafic generic sau (pentru desene) un editor larg răspândit de grafică vectorială, și care poate fi folosit de către programe de formatare de text sau de către programe de conversie în alte formate care pot fi folosite ca intrare de către programe de formatare a textului. O copie făcută într-un format de fișier Transparent dar care prin prezența sau absența anumitor elemente specifice formatului descurajează sau împiedică modificările ulterioare nu este o copie Transparentă. Un format grafic - o imagine - nu este un format Transparent dacă este folosit pentru a reprezenta o cantitate substanțială de text. O copie care nu este "Transparentă" este "Opacă".
Exemple de formate compatibile cu copiile Transparente includ: text ASCII fără marcare, format de intrare Texinfo, format de intrare LaTeX, SGML și XML folosind un DTD public, HTML simplu și standard, fișiere PostScript și PDF modificabile. Exemple de formate Transparente pentru imagine includ PNG, XCF și JPG. Formatele Opace includ formate de text ce pot fi citite și editate doar de procesoare de text particulare (proprietary), SGML și XML pentru care DTD-ul și/sau uneltele de procesare nu sunt disponibile, HTML generat automat, documente PostScript și PDF produse de diverse procesoare de text exclusiv în scopul printării/afișării.
"Pagina de Titlu" înseamnă, pentru o carte tipărită, pagina cu titlul și paginile următoare necesare pentru a tipări lizibil materialul care trebuie tipărit conform acestei Licențe pe Pagina de Titlu. Pentru lucrări care nu au o pagină cu titlu propriu-zisă "Pagina de Titlu" este textul aflat lângă principala apariție a titlului lucrării, precedând începutul corpului Documentului.
O secțiune "Numită XYZ" este o secțiune din Document al cărei titlu este fie XYZ sau conține XYZ în paranteze după textul care traduce XYZ în altă limbă. (Aici XYZ înlocuiește nume specifice ce vor fi menționate mai jos, ca de exemplu "Mulțumiri", "Dedicații", "Giruri" (Endorsement) și "Istorie".) A "Păstra Titlul" unei astfel de secțiuni atunci când modificați Documentul înseamnă că aceasta rămâne "Numită XYZ" conform acestei definiții.
Documentul poate include Limitări de Responsabilitate (Warranty Disclaimers) atașate notificării care afirmă că această Licență se aplică Documentului. Aceste Limitări de Responsabilitate se consideră a fi incluse pentru referință în această Licență: orice alte implicații pe care aceste Limitări de Responsabilitate le-ar putea avea sunt nule și nu au nici un efect asupra înțelesului acestei Licențe.
2. COPII IDENTICE
Puteți copia și distribui Documentul pe orice mediu, comercial sau necomercial, atâta timp cât această Licență, notificările de drepturi de autor și notificarea de licență care spune că această Licență se aplică acestui Document sunt reproduse în toate copiile, și atâta timp cât nu adăugați nici un fel de altă condiție în afară de cele prezente în această Licență. Nu aveți dreptul să luați măsuri tehnice de a obstrucționa sau controla citirea sau recopierea copiilor pe care le faceți sau le distribuiți. Aveți totuși dreptul să acceptați compensații în schimbul copiilor. Dacă distribuiți un număr suficient de mare de copii trebuie să respectați și condițiile din secțiunea 3.
Aveți de asemenea dreptul să împrumutați copii în aceleași condiții ca cele de mai sus, și aveți dreptul să afișați copii.
3. COPIEREA ÎN CANTITĂȚI MARI
Dacă publicați copii tipărite (sau copii în medii care folosesc de obicei coperți tipărite) ale Documentului, în număr mai mare de 100 și dacă notificarea de licență a Documentului cere Texte de Copertă, trebuie să includeți copiile pe coperți care să conțină, clar și lizibil, toate aceste Texte de Copertă: Textele Pentru Coperta I pe coperta I și Texte Pentru Coperta IV pe coperta IV. Ambele coperți trebuie de asemenea să vă identifice în mod clar și lizibil ca editor al respectivelor copii. Coperta I trebuie să prezinte titlul în întregime, cu toate cuvintele din titlu la fel de vizibile și proeminente. Puteți adăuga alte materiale pe copertă în plus. Copierea cu modificările limitate la coperți, atâta timp cât satisfac aceste condiții, pot fi tratate în toate celelalte aspecte ca și copii identice.
Dacă textele necesare pentru oricare dintre coperți sunt prea voluminoase pentru a încăpea în mod lizibil, trebuie să le includeți pe primele în ordinea originală (atâtea câte încap în mod rezonabil) pe coperta efectivă și să continuați cu restul pe pagini adiacente.
Dacă publicați sau distribuiți copii Opace ale documentului în număr mai mare de 100, trebuie ori să includeți câte o copie Transparentă în format electronic împreună cu fiecare copie Opacă, sau să specificați în sau împreună cu fiecare copie Opacă o locație de rețea electronică la care publicul general care folosește rețeaua să aibă acces pentru a descărca, folosind un protocol standard public, copii complete Transparente ale documentului, fără adăugarea oricărui material adițional. Dacă folosiți a doua opțiune trebuie să faceți demersuri rezonabil de prudente ca atunci când începeți distribuirea copiilor Opace să vă asigurați că această copie Transparentă va rămâne accesibilă în acest fel la locația respectivă timp de cel puțin un an după distribuția ultimei copii Opace (în mod direct sau prin agenți sau distribuitori) a acelei ediții pentru public.
Se cere, dar nu în mod necesar, să contactați autorii Documentului cu o perioadă bună înainte de a distribui orice cantitate mare de copii, pentru a le da ocazia să vă pună la dispoziție o versiune actualizată a Documentului.
4. MODIFICĂRI
Puteți copia și distribui o Versiune Modificată a Documentului în condițiile secțiunilor 2 și 3 de mai sus, cu condiția de a acoperi Versiunea Modificată sub exact această Licență, cu Versiunea Modificată ținând locul Documentului, astfel licențiind distribuirea și modificările Versiunii Modificate oricui intră în posesia unei copii ale acesteia. În plus, trebuie să faceți următoarele lucruri în Versiunea Modificată:
- A. Folosiți în Pagina de Titlu (și pe coperți, dacă există) un titlu diferit de cel al Documentului, și de versiunile sale anterioare (care trebuie, dacă există, să fie listate în secțiunea de Istorie a Documentului). Puteți folosi același titlu ca o versiune anterioară dacă editorul original al acelei copii vă dă permisiunea.
- B. Listați pe Pagina de Titlu, ca autori, una sau mai multe dintre persoanele sau entitățile responsabile în calitate de autori pentru modificările Versiunii Modificate, împreună cu cel puțin cinci dintre autorii principali ai Documentului (toți autorii principali, dacă are mai puțin de cinci), în afară de cazul că aceștia vă eliberează de această obligație.
- C. Includeți pe Pagina de Titlu numele editorului Versiunii Modificate în calitate de editor.
- D. Păstrați toate notificările de drepturi de autor ale Documentului.
- E. Adăugați o notificare de drepturi de autori relevantă pentru modificările Dvs. adiacent celorlalte notificări de drepturi de autor.
- F. Includeți, imediat după notificările de drepturi de autor, o notificare de licență dând permisiune publică de a folosi Versiunea Modificată în condițiile acestei Licențe, sub forma prezentată în Apendicele de mai jos.
- G. Păstrați în acea notificare de licență lista integrală a Secțiunilor Invariante și Textele de Copertă necesare date în notificarea de licență a Documentului.
- H. Includeți o copie nealterată a acestei Licențe.
- I. Păstrați secțiunea Numită "Istorie", Păstrați-i Titlul și adăugați-i un element care să indice măcar titlul, anul, noii autori și editorul Versiunii Modificate așa cum este dat pe Pagina de Titlu. Dacă nu există o secțiune Numită "Istorie" în Document, creați una în care indicați titlul, anul, autorii și editorul Documentului așa cum este dat pe Pagina de Titlu al acestuia și apoi adăugați un element care să descrie Versiunea Modificată așa cum a fost cerut în fraza precedentă.
- J. Păstrați locația de rețea, dacă există, dată în Document pentru acces public la o copie Transparentă a Documentului, cât și locațiile de rețea date în Document pentru versiunile mai vechi pe care s-a bazat acesta. Acestea pot fi incluse în secțiunea Numită "Istorie". Puteți omite locația de rețea a unei lucrări care a fost publicată cu cel puțin patru ani înainte de Documentul în sine, sau dacă editorul original al versiunii la care se referă vă dă permisiunea.
- K. Pentru orice secțiune Numită "Mulțumiri" sau "Dedicații" Păstrați Titlul secțiunii și păstrați în secțiunile respective toată substanța și tonul mulțumirilor și dedicațiilor fiecărui contribuitor.
- L. Păstrați toate Secțiunile Invariante ale Documentului, nealterate ca text și ca titluri. Numerotarea secțiunilor sau echivalentul numerotării nu sunt considerate ca făcând parte din titlurile secțiunilor.
- M. Ștergeți orice secțiune Numită "Giruri". O astfel de secțiune nu poate fi inclusă în Versiunea Modificată.
- N. Nu modificați titlul nici unei secțiuni existente pentru a fi Numită "Giruri" sau pentru a intra în conflict cu vreo Secțiune Invariantă.
- O. Păstrați toate Limitările de Responsabilitate.
Dacă Versiunea Modificată include secțiuni noi incluse în titlu sau anexe care se califică drept Secțiuni Secundare și nu conțin material copiat din Document, aveți dreptul la alegerea Dvs. să numiți unele sau toate acestea ca fiind secțiuni invariante. Pentru a face aceasta, adăugați-le titlurile la lista de Secțiuni Invariante în notificarea de licență a Versiunii Modificate. Aceste titluri trebuie să fie distincte față de toate celelalte titlurile de secțiune.
Puteți adăuga o secțiune Numită "Giruri" doar dacă aceasta conține numai girurile a diverse entități asupra Versiunii Modificate - de exemplu recenzii sau faptul că textul a fost aprobat de o organizație ca fiind o definiție autoritară a unui standard.
Puteți adăuga un pasaj de cel mult cinci cuvinte ca Text Pentru Coperta I și un pasaj de cel mult 25 de cuvinte ca Text Pentru Coperta IV la sfârșitul Textelor De Copertă în Versiunea Modificată. Numai un singur pasaj poate fi adăugat la Textul Pentru Coperta I și unul la Textul Pentru Coperta IV de către (sau prin aranjament cu) orice entitate. Dacă Documentul conține deja texte de copertă pentru coperta respectivă, adăugat în prealabil de Dvs. sau prin aranjament cu aceeași entitate în numele căreia acționați, atunci nu puteți adăuga un altul, însă puteți să-l înlocuiți pe cel vechi numai cu permisiunea explicită a editorului anterior care l-a adăugat pe cel vechi.
Autorul (autorii) și editorul (editorii) Documentului nu vă dau prin această Licență permisiunea de a le folosi numele pentru publicitate sau pentru a pretinde sau implica vreo girare a oricărei Versiuni Modificate.
5. COMBINAREA DOCUMENTELOR
Puteți combina Documentul cu alte documente acoperite de această Licență sub termenii definiți în secțiunea 4 de mai sus pentru versiuni modificate, cu condiția să includeți în versiunea combinată toate Secțiunile Invariante ale tuturor documentelor originale, nemodificate, și să le listați pe toate ca Secțiuni Invariante ale versiunii combinate în notificarea de licență, cât și să păstrați toate Limitările de Responsabilitate.
Versiunea modificată nu trebuie să conțină decât o singură copie a acestei Licențe, iar duplicatele identice ale Secțiunilor Invariante pot fi înlocuite cu o singură copie. Dacă există Secțiuni Invariante cu nume identice și conținut diferit, schimbați-le numele adăugând la sfârșitul titlului, în paranteză, ori numele autorului sau al editorului original al acelei secțiuni dacă acesta este cunoscut, ori un număr unic. Faceți aceleași modificări respective titlurilor secțiunilor în lista de Secțiuni Invariante din notificarea de licență a versiunii combinate.
În versiunea combinată trebuie să combinați și toate secțiunile Numite "Istorie" din diversele documente originale, creând o secțiune unică Numită "Istorie"; la fel trebuie să combinați și toate secțiunile Numite "Mulțumiri" cât și cele Numite "Dedicații". Trebuie să ștergeți toate secțiunile Numite "Giruri".
6. COLECȚII DE DOCUMENTE
Puteți crea o colecție formată din Document și alte documente acoperite de această Licență și să înlocuiți copiile individuale ale acestei Licențe din diversele documente cu o singură copie care să fie inclusă în colecție cu condiția să urmați regulile acestei Licențe pentru copii identice pentru fiecare document în toate celelalte privințe.
Puteți să extrageți un document dintr-o astfel de colecție și să-l distribuiți individual sub această Licență cu condiția de a include o copie a acestei Licențe în documentul extras și să urmați condițiile acestei Licențe în toate celelalte privințe în legătură cu copiile identice ale acelui document.
7. AGREGAREA CU LUCRĂRI INDEPENDENTE
O compilație a Documentului sau a unui derivat al său cu orice document sau lucrare separată independentă, în sau pe un volum de stocare sau distribuire se numește "agregat" dacă drepturile de autor rezultate în urma compilării nu sunt folosite pentru a limita drepturile legale ale utilizatorilor compilației mai mult decât permit lucrările individuale. Când Documentul este inclus într-un agregat, această Licență nu se aplică celorlalte lucrări din agregat care nu sunt ele însele rezultate derivate ale Documentului.
Dacă cerințele legate de Textele de Copertă din secțiunea 3 se aplică acestor copii ale Documentului, atunci dacă Documentul este mai puțin de jumătate din întregul agregat atunci Textele de Copertă ale Documentului pot fi puse pe coperți care să separe Documentul în cadrul agregatului, sau pe un echivalent electronic al acestora, dacă Documentul se prezintă în format electronic. Altfel ele trebuie să apară pe coperțile tipărite care îmbracă întreg agregatul.
8. TRADUCERE
Traducerea este considerată o formă de modificare, drept care puteți distribui traduceri ale Documentului sub cerințele secțiunii 4. Înlocuirea Secțiunilor Invariante cu traduceri ale acestora necesită permisiune specială din partea celor care dețin drepturile de autor, însă puteți include traduceri ale unora dintre sau tuturor Secțiunilor Invariante împreună cu variantele originale ale acestora. Puteți include o traducere a acestei Licențe cât și toate notificările de licență din Document, cât și Limitările de Responsabilitate atâta timp cât includeți și versiunea originală în engleză a acestei Licențe, plus versiunile originale ale respectivelor notificări de licență și limitări de responsabilitate. În cazul apariției oricăror discrepanțe între versiunea tradusă și versiunea originală a acestei Licențe, a vreunei notificări de licență sau a vreunei limitări de responsabilitate, versiunea originală are prioritate.
Dacă vreo secțiune din Document este Numită "Mulțumiri", "Dedicații" sau "Istorie" cerința (din secțiunea 4) de a-i Păstra Titlul (secțiunea 1) va necesita în mod normal schimbarea titlului în sine.
9. REZILIERE
Nu puteți copia, modifica, sublicenția sau distribui Documentul decât în condițiile specificate explicit în această Licență. Orice copiere, modificare sau redistribuire a Documentului în vreo altă condiție este nulă și vă va anula în mod automat drepturile conferite de această Licență. Pe de altă parte, terților cărora le veți fi transmis copii sau drepturi în conformitate cu această Licență nu li se vor anula aceste drepturi atâta timp cât i se conformează.
10. VERSIUNI VIITOARE ALE ACESTEI LICENȚE
Fundația Free Software (Free Software Foundation) poate publica versiuni noi, revizuite ale acestei Licențe (GNU Free Documentation License) din timp în timp. Aceste noi versiuni vor păstra spiritul acestei versiuni dar pot diferi în privința detaliilor, cu scopul de a se adresa unor noi probleme reale sau potențiale. Vezi http://www.gnu.org/copyleft/.
Fiecărei versiuni ale acestei Licențe îi este asociat un număr de versiune distinct. Dacă Documentul specifică un anumit număr de versiune "sau orice versiune ulterioară" al acestei Licențe, aveți de ales între a vă conforma termenilor și condițiilor ori ale versiunii specificate explicit sau ale oricărei variante ulterioare publicate (nu ca variantă preliminară) de către Free Software Foundation. Dacă Documentul nu specifică un număr de versiune al acestei Licențe atunci puteți alege orice versiune publicată (nu ca variantă preliminară) de către Free Software Foundation.