Zastaw ciekawych makroinstrukcji
Author: Włodzimierz Macewicz
Keywords: tex, latex, makroinstrukcje, pakiety makroinstrukcji, Wirtualna Akademia

## 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.