4. Rysunki, skorowidze, generowanie plików PDF
4.1. Włączanie grafiki w formacie EPS
Najprościej przygotować ilustrację w wyspecjalizowanym programie graficz-nym w rodzaju xfig, CorelDraw!, Freehand, gnuplot, itp., a później włączyć gotowy rysunek do dokumentu. Chociaż można to zrobić na wiele sposo-bów, tutaj przedstawimy jedynie sposób na dołączanie grafiki w formacie eps(Encapsulated PostScript), jako że jest to technika prosta i szeroko sto-sowana1. Do pracy z grafiką w formacie eps potrzebujemy albo drukarki wyposażonej w język Postscript, albo programu ghostscript, dostępnego na przykład pod adresem http://www.cs.wisc.edu/~ghost/. Program gho-stscript oraz ułatwiające posługiwanie się nim graficzne nakładki, takie jak:
ghostview, gv czy gsview są dostępne (pod wyżej wymienionym adresem) na wszystkie popularne platformy systemowe.
Wielu poleceń przydatnych do włączania rysunków dostarcza pakiet gra-phicx(autor: D. P. Carlisle), będący częścią zestawu o nazwie „graphics”2. Włączenie grafiki do dokumentu za jego pomocą możemy przedstawić w na-stępujący sposób:
1Użytkownicy programów typu Office, którzy w tym momencie być może po raz pierwszy usłyszeli, że istnieje coś takiego jak język Postscript i jego wariant eps, mogą być tym stwierdzeniem zdziwieni. Tak jednak jest w istocie: inne standardy obowiązuję w biurze, a inne w przemyśle poligraficznym. Więcej na temat grafiki można znaleźć w [19].
2Zestaw „graphics” jest obowiązkową (ang.required) częścią każdej dystrybucji LATEXa, można go też znaleźć w kataloguCTAN://macros/latex/required/graphics.
1. W programie graficznym zachowujemy rysunek w formacie eps3 lub konwertujemy rysunek na format eps, jeżeli dysponujemy już gotową grafiką ale w innym formacie4.
2. Dołączamy pakietgraphicx do preambuły dokumentu:
\usepackage[dvi-ps]{graphicx}
gdziedvi-ps oznacza nazwę programu do konwersji pliku wyjściowego .dvi na plik postscriptowy. Najczęściej używanym do tego celu pro-gramem jest dvips. Nazwa sterownika jest tu konieczna, gdyż brakuje standardu dotyczącego dołączania grafiki postscriptowej w dokumen-tach TEXowych. Kierując się nazwą sterownika, pakietgraphicxpotrafi do wynikowego pliku .dvi włączyć informację potrzebną do tego, by interpreter Postscriptu (w drukarce bądź w komputerze) poprawnie umieścił rysunek na wydruku.
3. Instrukcją:
\includegraphics[klucz=wartość, . . .]{plik}
włączamyplik do dokumentu. Parametr opcjonalny jest listą oddzielo-nych przecinkamikluczy, o określonych przez nas wartościach. Klucze wykorzystujemy do zmiany parametrów dołączanego rysunku, takich jak szerokość, wysokość czy kąt obrotu. W tabeli 4.1 zamieszczono najważniejsze klucze.
Tabela 4.1: Znaczenie ważniejszych kluczy polecenia\includegraphics width=w skalowanie rysunku do podanej szerokościw
height=h skalowanie rysunku do podanej wysokościh
angle=a obrót o kąta (przeciwnie do ruchu wskazówek zegara) scale=s równomierne przeskalowanie w skalis
Poniższy przykład pomoże zrozumieć całą ideę:
3Jeżeli używany przez nas program graficzny na to nie pozwala, to spróbujmy zain-stalować sterownik do drukarki postscriptowej, jak Apple Laser Writer, i drukować tym sterownikiem do pliku. Przy odrobinie szczęścia otrzymamy dokument w formacieeps. Pa-miętajmy, że plikepsmoże zawierać tylko jedną stronę. Sterowniki niektórych drukarek można jawnie ustawić do tworzenia plików wyjściowych właśnie w tym formacie.
4W wypadku grafiki obwiedniowej i rastrowej, można do tego celu użyć programu Ima-geMagick (http://www.imagemagick.org/). Dobrym programem do konwersji, ale tylko grafiki rastrowej, jest gimp (http://www.gimp.org). Do konwersji zdjęć albo innych grafik w formaciejpgwygodnym narzędziem jest jpeg2pshttp://gnuwin32.sourceforge.net/
packages/jpeg2ps.htm. Niestety konwersja plików zapisanych w promowanym przez firmę Microsoft formaciewmf/emf(MS Visio, MS Office, itp.) często daje opłakane rezultaty, ale to już jest wina wspomnianej firmy i stosowanej przez nią „strategii biznesowej”. . .
4.1. Włączanie grafiki w formacie EPS 67
\begin{figure}
%\begin{center} zamiast \begin{center} użyj lepiej
\centering % bo \centering nie wstawia dodatkowego odstępu
\includegraphics[angle=90,width=0.5\textwidth]{sowauszata.eps}
\end{figure}
W powyższym przykładzie do dokumentu jest dołączany rysunek z pliku sowauszata.eps. Rysunek najpierw obracamy o 90o w kierunku przeciw-nym do ruchu wskazówek zegara, a następnie przeskalowujemy tak, by nadać mu szerokość równą połowie szerokości szpalty. Skalowanie grafiki jest rów-nomierne z uwagi na brak klucza height. Szerokość i wysokość rysunku możemy też określić w jednostkach bezwzględnych, takich jak punkty czy centymetry. W tabeli6.5zestawiono jednostki miar w LATEXu. Więcej infor-macji na temat powyższych zagadnień znajdziemy w [2] i [22].
Z powodów opisanych w punkcie 4.7.3, zaleca się podawać nazwę dołą-czanego pliku graficznegobez rozszerzenia, to znaczy lepiej zapisać powyższe polecenie\includegraphics następująco:
\includegraphics[angle=90,width=0.5\textwidth]{sowauszata}
W takiej sytuacji LATEX będzie szukał plikusowauszatao rozszerzeniu ade-kwatnym do możliwości zadeklarowanego w poleceniu\usepackage sterow-nika. Przykładowo, jeżeligraphicx było wywołane z opcjądvips, to szukany będzie pliksowauszata.eps, jeżeli zaś użyjemy opcji pdftex, to będą szu-kane pliki o rozszerzeniach.pdf,.jpgi.png, a pierwszy znaleziony zostanie dołączony.
Rysunki najlepiej jest umieszczać w oddzielnym katalogu, będącym pod-katalogiem tego, w którym jest dokument LATEXa. Bez względu na używany system operacyjny katalogi w ścieżce dostępu należy odzielać znakiem /5:
\includegraphics[width=0.5\textwidth]{rys/sowy/sowauszata}
Czasami wewnątrz jednego otoczenia figurechcemy umieścić kilka plików graficznych. W tym celu wystarczy, że umieścimy je obok siebie i w miarę potrzeby odpowiednio przeskalujemy:
\begin{figure}
\centering
%% http://pl.wikipedia.org/wiki/Ptaki_Polski
\includegraphics[width=.3\textwidth]{sowauszata}
\includegraphics[width=.3\textwidth]{puszczykmszarny}
\includegraphics[width=.3\textwidth]{bubobubo}%puchacz
\end{figure}
W powyższym przykładzie trzy rysunki zostaną umieszczone jeden obok drugiego. Ich łączna szerokość wyniesie 3×0,3 = 0,9 szerokości kolumny
5Wszystkie uwagi dotyczące nazw plików opisane w punkcie1.8dla polecenia\include dotyczą także polecenia\includegraphics.
(\textwidth w języku LATEXa), między rysunkami wstawiony zostanie od-stęp wielkości zwykłej spacji, co wynika z zasady LATEXa, że pojedyncza zmiana wiersza jest traktowana jak odstęp. Całość zostanie wyśrodkowana w osi szpalty. Pamiętajmy, żeby do tego stosować polecenie \centering a nie otoczeniecenter, gdyż to drugie wstawia dodatkowy a zbędny odstęp pionowy.
Aby efekt końcowy na wydruku był zadowalający, rysunki powinny mieć identyczne wymiary. Inaczej, albo poszczególne obrazki będą optycznie niezgodnie (np. sowa uszata będzie 3 razy większa od puchacza), albo też poszczególne rysunki składowe będą miały różne wymiary (rysunek z sową uszatą będzie dwa razy mniejszy niż rysunek z puchaczem).
Czasami rysunki czy tabele zmieściłyby się na stronie, gdyby obrócić je o 90o. W tym celu można skorzystać z pakietu rotating. Do obracania dowolnego fragmentu tekstu, pudełka (por. punkt 6.6), tabeli itp. należy używać otoczeniarotate:
\begin{rotate}{kąt} ... \end{rotate}
Do obrócenia obiektu o kąt 90o należy użyć otoczeniasideways:
\begin{sideways} ... \end{sideways}
Do obrócenia tabeli łącznie z podpisem pod tabelą należy zastosować oto-czeniesidewaystable(uwaga: tabela jest umieszczana na osobnej stronie):
\begin{sidewaystable} ... \end{sidewaystable}
Do obrócenia rysunku łącznie z podpisem pod rysunkiem należy użyć otocze-niasidewaysfigure(uwaga: rysunek jest umieszczany na osobnej stronie):
\begin{sidewayfigure} ... \end{sidewaysfigure}