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

## pdfscreen

Pakiet służy do przygotowania prezentacji ekranowej. Przygotowany dokument można kompilować standardowym TeX-em (tylko w przypadku wersji przeznaczonej do druku -- p. opcja `print`) lub PDFTex-em, a programem służącym do wizualizacji ekranowej Acrobat Reader (niestety aktualny ghostscript (8.50) często sygnalizuje błąd przy próbie otwarcia takiego dokumentu). Dołączane są pakiety: `color`, `comment`, `hyperref`, `calc`, `graphics`, `shortvrb`, `amssymb`, `amsbsy`, `truncate` oraz `fancybox` (warto też dołączyć: `array`, `hhline` `dcolumn` `colortbl`).

Za pomocą tego pakietu można przygotować jednocześnie dwie wersje dokumentu: do druku i w postaci prezentacji ekranowej. Fragmenty specyficzne dla druku należy umieścić wewnątrz środowiska `print`, a dla wersji ekranowej wewnątrz środowiska `screen` (w tym wszystkie polecenia dotyczące ustawiania parametrów okna). Wybór fragmentów jest realizowany za pomocą opcji wywołania pakietu: `screen` lub `print`.

#### Lista opcji

`pdftex` | kompilacja `PDFTeX`-em
`dvips` | kompilacja standardowym TeX-em (następnie przetwarzanie `dvips`-em)
`dvipsone` | przetwarzanie standardowym TeX-em, następnie `dvipsone`
`dvipdf` | przetwarzanie standardowym TeX-em, następnie `dvipdf`
`dvipdfm` | przetwarzanie standardowym TeX-em, następnie `dvipdfm`
`dviwindo` | przetwarzanie standardowym TeX-em, następnie `dviwindo`
`ps2pdf` | przetwarzanie standardowym TeX-em, następnie `ps2pdf`
`vtex` | przetwarzanie VTeX-em
`nocfg` | zakaz wczytywania pliku `pdfscreen.cfg`, zawierającego wstępne ustawienia parametrów -- standardowo zbiór jest wczytywany (o ile istnieje). W standardowym pliku konfiguracyjnym oprócz kolorów zmieniono sposób składu nagłówków rozdziałów i podrozdziałów -- numer jest prezentowany na marginesie.
`article` | nieistotne
`amsart` | nieistotne
`book` | nieistotne
`amsbook` | nieistotne
`sidebar` | panel sterujący po lewej stronie
`panelleft`
`leftpanel`
`panelright` | panel po prawej stronie
`rightpanel`
`absconsamepage` | nieistotne
`bluelace` | ustawienie schematu kolorystyki na ,,bluelace'' (nie wiem jak to przetłumaczyć) -- opcja analizowana tylko przy użytej opcji `nocfg`
`chocolate` | ustawienie schematu kolorystyki na ,,czekoladowo'' -- opcja analizowana tylko przy użytej opcji `nocfg`
`palegreen` | ustawienie schematu kolorystyki na ,,jasno zielono'' -- opcja analizowana tylko przy użytej opcji `nocfg`
`orange` | ustawienie schematu kolorystyki na ,,żółto-brązowy'' -- opcja analizowana tylko przy użytej opcji `nocfg`
`gray` | ustawienie schematu kolorystyki na ,,szaro-niebieski'' -- opcja analizowana tylko przy użytej opcji `nocfg`
`blue` | ustawienie schematu kolorystyki na ,,niebieski'' (domyślny) -- opcja analizowana tylko przy użytej opcji `nocfg`
`nopanel` | brak panelu sterującego
`print` | nie są analizowane fragmenty dokumentu zawarte w środowisku (environment) `screen`
`screen` | nie są analizowane fragmenty dokumentu zawarte w środowisku (environment) `print`
`default` | domyślny schemat kolorystyki
`paneltoc` | na panelu kontrolnym zamiast odsyłacza do spisu treści pojawi się spis treści (jako aktywne odsyłacze, tytuły są skracane). Jeśli został zadysponowany spis treści (polecenie `\tableofcontents`) to na panelu nie pojawi się spis treści, ani odsyłacz do właściwego spisu. W spisie treści nie będzie numer stron. Jeżeli opcja nie jest podana i nie zadysponowano spisu treści, odsyłacz do spisu treści wskazuje pierwszą stronę (za stroną tytułową).
`code` | definiowane jest polecenie `\code`, analogiczne do `\verb` (wielkość pisma ustawiana jest na `small`, krój na type writer i kolor taki jak dla rozdziału (zależny od schematu kolorystycznego) oraz środowisko `decl`. Uwaga! przed załadowaniem pakietu `pdfscreen` należy załadować pakiety: `colortbl` i `array`
`sectionbreak` | powoduje przejście do nowej strony przy rozpoczęciu sekcji (rozdziału)
`english` | opis panelu w jęz. angielskim
`french` | opis panelu w jęz. francuskim
`dutch` | opis panelu w jęz. holenderskim
`czech` | opis panelu w jęz. czeskim
`norsk` | opis panelu w jęz. ???
`nynorsk` | opis panelu w jęz. ???
`slovak` | opis panelu w jęz. słowackim
`portuges` | opis panelu w jęz. portugalskim
`spanish` | opis panelu w jęz. hiszpańskim
`swedish` | opis panelu w jęz. szwedzkim
`danish` | opis panelu w jęz. duńskim
`polish` | opis panelu w jęz. polskim
`russian` | opis panelu w jęz. rosyjskim
`german` | opis panelu w jęz. niemieckim
`slovene` | opis panelu w jęz. słoweńskim
`catalan` | opis panelu w jęz. katalońskim
`american` | opis panelu w jęz. angielskim
`austrian` | opis panelu w jęz. angielskim
`brazil` | opis panelu w jęz. portugalskim
`breton` | opis panelu w jęz. angielskim
`croatian` | opis panelu w jęz. angielskim
`esperanto` | opis panelu w jęz. angielskim
`finnish` | opis panelu w jęz. angielskim
`galician` | opis panelu w jęz. angielskim
`italian` | opis panelu w jęz. angielskim
`magyar` | opis panelu w jęz. angielskim
`romanian` | opis panelu w jęz. angielskim
`turkish` | opis panelu w jęz. angielskim
`francais` | opis panelu w jęz. francuskim
`germanb` | opis panelu w jęz. niemieckim

#### Lista poleceń zdefiniowanych w pakiecie

`\screensize{wysokość}{szerokośc}` | ustalenie wysokości i szerokości obszaru roboczego (całkowitego) -- p. polecenie `\margins` i `\marginsize`. W przypadku prezentacji pełnoekranowej należy zachować proporcje zgodne z systemowymi ustawieniami ekranu. Ponieważ wielkość obrazu może być przeskalowana przez przeglądarkę, należy ustawić wymagane wartości proporcjonalnie do wielkości pisma. Przy małych wartościach ilość tekstu na stronie będzie mała, ale po powiększeniu okna przeglądarki pismo będzie duże; dla dużego okna powiększenie będzie niewielkie (lub wręcz trzeba będzie zmniejszyć okno przeglądarki) a wielkość pisma może okazać się zbyt mała.
`\margins{lewy}{prawy}{górny}{dolny}` | polecenie definiuje wielkości marginesów strony; ma charakter deklaratywny i powinno być użyte przed poleceniem `\screensize`; powoduje ono jedynie nadanie wartości parametrom (kolejno): `\marginleft`, `\marginright`, `\margintop` oraz `\marginbottom`; są one brane pod uwagę przy wyliczaniu proporcji elementów okna
`\marginsize{lewy}{prawy}{górny}{dolny}` | polecenie ustawia wielkości marginesów; powinno być użyte po poleceniu `\screensize`; wielkość lewego i prawego marginesu powinna uwzględniać szerokość panelu (o ile zadeklarowano jego obecność na ekranie).
`\emblema{plik}` | polecenie definiuje logo panelu (motyw przewodni) -- będzie nim obraz zawarty w wskazanym pliku graficznym. Uwaga! w standardowym pliku `pdfscreen.cfg` jest zdefiniowane że logo określa plik `univ.jpg`
`\shorttitle{tytuł}` | polecenie definiuje tekst pojawiający się na dole w obszarze panelu
`\urlid{URL}` | polecenie definiuje adres strony WWW (dodawany jest prefix protokołu `http://`), do której odwoła się przeglądarka po wskazaniu pola ,,Home Page'' (napis zależy od deklarowanego języka). Jeśli adres nie zostanie zdefiniowany pole to jest wskazaniem na pierwszą stronę dokumentu.
`\emailid{adres}` | polecenie definiuje adres poczty elektronicznej (dodawany jest prefix protokołu `mailto:`) -- standardowo nieużywane
`\overlay{plik}` | polecenie określa plik graficzny, który będzie tłem obszaru roboczego (bez pola panelu).
`\overlayempty` | wycofanie polecenia `\overlay`
`\changeoverlay` | polecenie powoduje, że tłem kolejnych stron będą pliki o nazwach `overlay1.jpg`, `overlay2.jpg`,... `overlay10.jpg` (w cyklu), tłem pierwszej strony będzie plik wskazany poleceniem `\overlay` (o ile polecenie zostało użyte). Użycie polecenia `\overlay` wewnątrz dokumentu, kasuje cykl i powoduje, że od tego miejsca tłem okna będzie wskazany plik.
`\paneloverlay{plik}` | polecenie określa plik graficzny, który będzie tłem panelu; grafika zostanie przeskalowana do w pionie i poziomie do wielkości panelu, a zatem jej wysokość i szerokość powinna być w odpowiednim stosunku. Standardowo rozmiary panelu są określone względem całkowitej wielkości okna określonej poleceniem `\screensize`. Szerokość wynosi standardowo 0.15 całkowitej szerokości okna (jeżeli wyniesie mniej niż 1in to szerokość zostanie określona na 1in -- parametr `\panelwidth`), a wysokością jest wysokość okna.
`\paneloverlayempty` | wycofanie polecenia `\paneloverlay`
`\topbuttons` | na górze strony pojawi się panel sterujący w postaci napisów
`\notopbuttons` | wyłączenie panela wywołanego poleceniem `\topbuttons`
`\bottombuttons` | na dole strony pojawi się panel sterujący w postaci napisów
`\nobottombuttons` | wyłączenie panela wywołanego poleceniem `\bottombuttons`
`\ClearOverlay` | kasuje wszystkie ustalenia tła (wraz z panelem)
`\AddToOverlay{definicja}` | dodaje do konstrukcji wyświetlanej na każdej stronie definicję
#### Ustalanie kolorów
`\backgroundcolor{kolor}` | ustalenie koloru tła (w przypadku użycia polecenia `\overlay` nieistotne); kolor musi być zdefiniowany; parametr `\calfactor` określa szerokość dodatkowej ramki wokół obszaru o podanym kolorze (zawęża go w stosunku do obszaru roboczego) -- ramka ma kolor tła, które można zmienić poleceniem `\pagecolor` -- pakiet color oraz [1]).
`\definecolor{panelbackground}{model}(def}` | definicja koloru tła dla panelu (p. opis pakietu color)
`\definecolor{buttondisable}{model}(def}` | kolor oznaczeń na ,,przyciskach'', które są nieaktywne
`\definecolor{buttonbackground}{model}(def}` | definicje dla koloru ,,przycisków'' na panelu
`\definecolor{buttonshadow}{model}(def}` | definicje dla koloru cienia ,,przycisków'' na panelu (wielkość cienia jest zdefiniowana na stałe w poleceniu `\addButton` i `\scrShadowButton` -- nieużywane)
`\definecolor{section0}{model}(def}` `\definecolor{section1}{model}(def}` `\definecolor{section2}{model}(def}` `\definecolor{section3}{model}(def}` `\definecolor{section4}{model}(def}` `\definecolor{section5}{model}(def}` | definicje dla koloru nagłówków prezentowanych poleceniami: `\section`, `\subsection` itp.; w takich kolorach są prezentowane są również inne elementy dokumentu np. zawartość środowiska `verbatim`
`\definecolor{tabcolor}{model}(def}` | definicja koloru tła dla środowiska `decl` (realizowanego za pomocą środowiska `tabular`; p. pakiet `colortbl` oraz [1], nazwa koloru `tabcolor` jest używana do nadania wartości zmiennej `\columncolor`)
#### Inne polecenia i parametry
`\LLX{margines}` | parametr zawiera wielkość lewego marginesu obszaru wewnętrznego (p. `\calfactor` (względem lewej krawędzi okna)
`\LLY{margines}` | parametr zawiera wielkość górnego marginesu obszaru wewnętrznego (p. `\calfactor` (względem górnej krawędzi okna)
`\def\panelfont{definicja}` | polecenie jest wywoływane przed wyprowadzaniem napisów opisujących ,,przyciski panelu'' i może służyć do definicji fontu i koloru opisu (należy skorelować wielkość fontu z wielkością ,,przycisków'')
`\buttonwidth=szerokość` | parametr określa szerokość przycisku (standardowo jako `0.7\panelwidth`)
`\calfactor=szerokość` | parametr określa szerokość ramki na obszarze roboczym (nie ma związku z wielkościami marginesów), kolorem ramki jest kolor tła całego okna (p. `\pagecolor` -- pakiet color oraz [1])
`\st{definicja}` | polecenie jest używane do określania wysokości ,,przycisku'' panelu; użyto do tego celu linii pionowej o określonej wysokości i głębokości i zerowej grubości (standardowo: `\def\st{\hbox{\vrule height10pt depth5pt width 0pt}\panelfont}`)
`\buttonbox{treść}` | polecenie definiuje ,,pseudoprzycisk'' z podanym opisem (opis otoczony ramką; bez górnego i dolnego marginesu)
`\addButton{szerokość}{opis}` | polecenie definiuje symbol ,,przycisku'' (wskazanie go nie powoduje żadnej akcji). Tłem napisu jest kolor `bottombackground`, kolor tekstu pisma (i inne atrybuty) określają makra `\Black` (definiowany jako `\color{black}`) i `\panelfont` (wywoływane przez makro `\st`, służącego do określenia wysokości i głębokości pudełka)
`\imageButton{szerokość}{wysokość}{plik}` | polecenie definiuje ,,przycisk'', którego tłem jest wskazany plik, z definicją nie wiąże się żadna akcja!. Tak naprawdę polecenie jest jedynie wywołaniem makra `\includegraphics` z parametrami `[width=szerokość, height=wysokość]{plik}`
`\pagedissolve{specyfikacja}` | polecenie definiuje sposób przejścia między stronami (tylko w trybie ,,full screen'') i specyfikacja powinna być zgodna ze specyfikacją `pdf`-a dla parametru `/Trans`; standardowo `/R /D 0` (przed pierwszym znakiem specyfikacji dostawiany jest automatycznie `/`). W specyfikacji mogą wystąpić parametry określające sposób zmiany strony:
`/R` | bez specjalnych efektów
`/Split` | kolejna strona jest nakładana na aktualną ,,od góry'' i ,,od dołu''
`/Blinds` | kolejna strona jest nakładana na aktualną ,,pasami''
`/Box` | kolejna strona jest nakładana na aktualną w formie nachodzącego prostokątu (od zewnątrz do wewnątrz)
`/Wipe` | kolejna strona jest nakładana na aktualną nachodząc od góry
`/Dissolve` | kolejna strona jest nakładana na aktualną wypełniając ją losowo nakładanymi kwadratami
`/Glitter` | podobnie jak powyżej ale jednocześnie występuje efekt nakładania strony od lewej
`/Fly` | nowa strona ,,najeżdża'' (w kierunku określonym przez parametr `/Di`)
`/Push` | nowa strona ,,najeżdża'', a poprzednia ,,odjeżdża'' (w kierunku określonym przez parametr `/Di`)
`/Cover` | nowa strona ,,najeżdża'', (w kierunku określonym przez parametr `/Di`) ale bez efektu przeźroczystości
`/Uncover` | podobnie jak `/Push`, ale bez efektu przeźroczystości
`/Fade` | ????
dodatkowe parametry sterujące zmianami
`/Di kąt` | wartość kąta (w stopniach, wartości podzielne przez 90) określają kierunek zmian dla parametrów `/Wipe` i `/Glitter`
`/M spec` | określa kierunek zmian dla parametrów `/Split` i `/Box`, spec może przyjmować wartości `/I` -- do wewnątrz i `/O` -- na zewnątrz
`/Dm spec` | określa kierunek zmian dla parametrów `/Split` i `/Blinds`, spec może przyjmować wartości `/H` -- w poziomie i `/V` -- w pionie
`/D time` | czas opóźnienia (w sec)
`\arg{tekst}` | polecenie służy do opisów wywołania makr (tekst jest prezentowany italikiem i ujmowany w nawiasy `{<>}` (tekst wraz z `<>` w kolorze czerwonym, `{}` w kolorze `section1`) (jest definiowane w przypadku użycia opcji `code`)
`\Arg{tekst}` | polecenie służy do opisów wywołania makr (tekst jest prezentowany italikiem i ujmowany w nawiasy `{}` (tekst wraz w kolorze czerwonym, `{}` w kolorze `section1`) (jest definiowane w przypadku użycia opcji `code`)
`\oarg{tekst}` | polecenie służy do opisów wywołania makr (tekst jest prezentowany italikiem i ujmowany w nawiasy `[<>]` (tekst wraz z `<>` w kolorze czerwonym, `[]` w kolorze `section1`) (jest definiowane w przypadku użycia opcji `code`)
`\Oarg{tekst}` | polecenie służy do opisów wywołania makr (tekst jest prezentowany italikiem i ujmowany w nawiasy `[]` (tekst wraz w kolorze czerwonym, `[]` w kolorze `section1`) (jest definiowane w przypadku użycia opcji `code`)
`|tekst|` | polecenia do ,,szybkiego'' przejścia w tryb `verbatim` (p. pakiet shortvrb (jest definiowane w przypadku użycia opcji `code`)
#### Środowiska
`decl` | środowisko służy do prezentowania np. kawałków kodu (jest definiowane w przypadku użycia opcji `code`); jest wystawiane na lewy margines (wielkość określona parametrem `\leftmarginii`). Jest realizowane za pomocą środowiska `tabular`, do kolorowania używane są polecenia pakietu `colortbl` (należy go dołączyć) -- tłem jest kolor `tabcolor` (polecenie `\columncolor`), a kolor ramki ustalony jest poleceniem `\arrayrulecolor` na wartość `section1`; p. [1]
`verbatim` | w środowisku uaktywniono znaki < i >; za ich pomocą można tworzyć konstrukcję do opisu parametrów `<tekst>` -- całość jest prezentowana kolorem czerwonym, a tekst italikiem. Tekst w środowisku jest prezentowany kolorem `section0` wielkości `small`, krojem `ttfamily`
`slide` | zawartość środowiska jest wstawiana do środowiska `minipage` o wielkości obszaru roboczego

[1] W.Macewicz: Latex na kolorowo. Biul. Gust, z. :19

Włodzimierz Macewicz

Ostatnie zmiany: 05.05.2014.