## Graphicx

Główną funkcją pakietu jest dołączenie plików graficznych w różnych formatach (w przypadku plików nie zawierających deklaracji rozmiaru, należy go wyspecyfikować).

Pakiet korzysta z pakietów `graphics` (jest jego rozszerzeniem) i `keyval`, tak więc opisuję polecenia obu pakietów (jeżeli ładujemy pakiet `graphicx`, wszystkie one są dostępne).

### Opcje określające możliwości driverów

Opcja | Opis | możliwości
--- | --- | ---
`dvips` | .dvi przetwarzany przez `dvips` T.Rokickiego | wszystko
`xdvi` |  | wszystko
`dvipdf` | S.Lasenko | wszystko
`dvipdfm` |  | wszystko
`pdftex` | pdftex | wszystko
`dvipsone` | Y & Y | wszystko
`dviwindo` | jw | wszystko
`emtex` | sterowniki emtexa | tylko dołączanie plików (bez skalowania)
`dviwin` | H.Sendoukas | tylko dołączanie plików
`oztex` | A.Trevorrow | dołączanie plików, obroty, kolory
`textures` | Blue Sky | ???
`pctexps` | PCTEX | dołączanie plików, obroty, kolory
`pctexwin` | PCTEX | dołączanie plików, obroty, kolory
`pctexhp` | PCTEX | dołączanie plików
`pctex32` | PCTEX | wszystko
`truetex` | Kinch | dołączanie plików (ograniczone kolory)
`tcidvi` | Kinch | ???
`vtex` | ???? | ???

### Pozostałe opcje

Opcja | Opis
--- | ---
`debugshow` | ???
`draft` | nie jest wstawiana grafika, (wstawiana jest nazwa pliku) rezerwowane jest jedynie miejsce
`final` | wyłącza opcję `draft`
`hiderotate` | jeżeli driver nie obsługuje funkcji obrotu tekstu, a w tekście będą użyte takie funkcje nie będzie sygnalizowany błąd, ale tekst, który ma być obrócony nie będzie widoczny
`hiresbb` | rezerwuje na rysunek miejsce o wymiarach określonych przez `%%HiResBoundingBox`, a nie określonych przez `%%BoundingBox`
`hidescale` | jeżeli driver nie obsługuje funkcji skalowania tekstu, a w tekście będą użyte takie funkcje nie będzie sygnalizowany błąd, ale tekst, który ma być skalowany nie będzie widoczny
`unknownkeysallowed` | opcja dla pakietu `keyval`
`unknownkeyserror` | opcja dla pakietu `keyval`

### Polecenia

polecenie | opis
--- | ---

`\includegraphics[parametry]{nazwa pliku}`

parametry dodatkowe określają dodatkowe operacje na dołączanej grafice (np. obrót, skalowanie) lub określają brakujące dane (np. rozmiar); wartości parametrów określamy w następujący sposób:
`nazwa=wartość`
kolejne definicje parametrów oddzielamy przecinkiem;

`height=długość`
  wysokość obszaru zajmowanego przez grafikę -- rysunek zostanie przeskalowany do zadanego rozmiaru
`width=długość`
  szerokość obszaru zajmowanego przez grafikę -- rysunek zostanie przeskalowany do zadanego rozmiaru (jeżeli podamy tylko jeden wymiar pozostały zostanie przeskalowany tak, aby zachować proporcje)
`keepaspectratio=długość`
  jeżeli są określone oba rozmiary (wysokość i szerokość), rysunek zostanie przeskalowany tak, aby nie przekroczyć żadnego z nich
`totalheight=długość`
  całkowita wysokość (głębokość + wysokość obszaru zajmowanego przez grafikę -- rysunek zostanie przeskalowany do zadanego rozmiaru -- istotne przy obrotach
`angle=wartość`
  kąt (w stopniach; wartość dodatnia oznacza obrót w kierunku przeciwnym do ruchu wskazówek zegara) obrotu rysunku; (stopień przeskalowania zależy od kolejności definicji paramatrów rozmiaru i obrotu)
`scale=wartość`
  współczynnik przeskalowania grafiki
`origin=wartość`
  patrz opis `\rotatebox`
`clip`
  powoduje obcięcie wszystkiego co ,,wystaje'' poza zadane wymiary obiektu (`Boundingbox`)
`bb=wartość wartość wartość wartość`
  określa wymiary rysunku -- współrzędne lewego dolnego i prawego górnego rogu obszaru. Definicja jest niezbędna jeśli w samym rysunku nie ma takiej informacji.
`viewport=wartość wartość wartość wartość`
  parametr pozwala na wycięcie z dołączanej grafiki zadanego prostokąta, określonego przez lewy dolny i prawy górny róg
`trim=wartość wartość wartość wartość`
  funkcja podobna jak wyżej opisana, ale wartości określają wielkość odcięcia z lewej strony,, z dołu, z góry i prawej strony rysunku
`draft`
  zamiast wstawienia rysunku pojawi się nazwa pliku (zostanie zarezerwowane prawidłowe miejsce na rysunek
`hiresbb`
  patrz opis analogicznej opcji pakietu
`type=typ`
  określa rodzaj grafiki, normalnie rodzaj ten jest określony przez rozszerzenie nazwy pliku
`ext=typ`
  określa rozszerzenie nazwy; używane razem z parametrem `type`
`read=plik`
  określa nazwę pliku zawierającego definicję rozmiaru; używane razem z parametrem `type`
`command=polecenie systemowe`
  określa nazwę polecenia, które dokona konwersji pliku do postaci akceptowalnej; używane razem z parametrem `type`

`\rotatebox[parametry]{kąt}{tekst}`

podstawowy argument makroinstrukcji (`tekst`) jest obracany o zadany kąt (wartość dodatnia oznacza obrót w kierunku przeciwnym do obrotu wskazówek zegara); parametry mogą definiować dodatkowe własności w postaci:

`origin=specyfikacja`
  specyfikacja określa punkt obrotu
    `l` -- lewy brzeg,
    `r` -- prawy brzeg,
    `c` -- środek (w poziomie),
    `t` -- górny brzeg,
    `b` -- dolny brzeg,
    `B` -- podstawa linii;
  i stanowi go para określająca położenie punktu w pionie i poziomie; np: `origin=bc`
`x=wartość,y=wartość`
  wartość określa współrzędne punktu obrotu (odpowiednio w poziomie i pionie w zadanych jednostkach miary)
`units=wartość`
  stosunek wartość do 360 stopni określa mnożnik kąta obrotu (np.: `units=-360` spowoduje że dodatnia wartość kąta będzie oznaczała obrót zgodnie z kierunkiem obrotu wskazówek zegara)

`\scalebox{przeskalowanie w poziomie}[przeskalowanie w pionie]{tekst}` | przeskalowuje pudełko zawierające tekst o zadane współczynniki; jeżeli parametr przeskalowanie w pionie nie jest określony zostanie użyty ten sam współczynnik co w poziomie (zostaną zachowane proporcje).
`\resizebox*{szerokość}{wysokość}{tekst}` | przeskalowuje pudełko zawierające tekst do zadanych wymiarów (wersja ,,gwiazdkowa'' za podstawę skalowania bierze całkowitą wysokość pudełka (`totalheigh` -- razem z głębokością), a nie tylko wysokość (`height`)). Określenie dowolnej z wartości jako `!` powoduje, że pozostała wartość zostanie obliczona, tak aby zachować proporcje.
`\resizebox{szerokość}{wysokość}{tekst}`

`\DeclareGraphicsExtensions{lista rozszerzeń}`

lista rozszerzen stanowi listę dopuszczalnych rozszerzeń nazw plików zawierających grafikę (elementy listy muszą być rozdzielone przecinkiem); np. `\DeclareGraphicsExtensions{.bmp,.eps}` jeżeli w katalogu bieżącym są dwa pliki o tej samej nazwie lecz różnym rozszerzeniu nazwy o pobraniu właściwego pliku decyduje kolejność na liście; deklaracja ma znaczenie jedynie wtedy, kiedy specyfikujemy nazwy plików bez rozszerzenia i nie wpływa na akceptowalność danego formatu przez program interpretujący plik `.dvi`

`\graphicspath{lista katalogów}` | lista katalogów określa listę katalogów (oddzieloną przecinkami), w których poszukiwane są pliki zawierające grafikę

`\DeclareGraphicsRule{ext}{typ}{zbiór}{polecenie}`

polecenie umożliwia ładowania grafiki w innej postaci niż przewiduje to driver -- określa ono akcję (np. konwersję, rozkompresowanie) którą należy podjąć, aby była ona zrozumiała dla drivera (zadeklarowany program konwersji musi produkować wyniki na `stdout`).
ext określa rozszerzenie nazwy pliku zawierającego grafikę, typ określa typ grafiki, zbiór -- zbiór zawierający definicję rozmiaru grafiki (właściwy zbiór zawierający zakodowaną grafikę jest interpretowany przez driver, a nie przez TeX-a, który potrzebuje zarezerwować na nią miejsce)
np:
`%%BoundingBox: 0 0 596 842`
polecenie określa jaki program należy wywołać, aby doprowadzić zbiór do grafiki postaci akceptowalnej przez driver
np. `\DeclareGraphicsRule{.ps.arj}{eps}{.ps.bb}{arj -x #1}`

Włodzimierz Macewicz

Ostatnie zmiany: 05.05.2014.