We wcześniejszych wpisach przedstawiłem w jaki sposób utworzyć szkielet prezentacji w LaTeXu. Teraz czas na utworzenie właściwych slajdów. Od razu uprzedzę, znajdą się tu tylko same podstawowe informacje, akurat to co było mi potrzebne do utworzenia prezentacji o Subversion.

Konstrukcja slajdu

Slajdy w klasie Beamer są zawarte między dwoma tagami: \begin{frame} oraz \end{frame}. Tylko to co zostanie umieszczone pomiędzy nimi zostanie wzięte pod uwagę i na tej podstawie zostaną wygenerowane slajdy.

Generalnie wynikiem pojedynczej ramki (frame) jest utworzenie pojedynczego slajdu w pliku PDF. Nie zawsze jednak tak będzie, istnieją polecenia, których użycie spowoduje wygenerowanie większej ilości slajdów.

I tak wygląda podstawowy slajd:

Przykładowy slajd w LaTeXu

Jego definicja:

237
238
239
240
241
242
243
244
245
246
247
248
249
250
\begin{frame}[c]{Kiedy blokowanie jest potrzebne}
  Model kopiuj -- modyfikuj -- scal sprawdza się bardzo
  dobrze przy założeniu, że mamy do czynienia z plikami
  tekstowymi, które są łatwe w zarządzaniu i sprawdzaniu
  co się zmieniło.

  \pause

  W przypadku pracy z plikami binarnymi, których nie da się
  łatwy czy też nawet automatyczny sposób scalić, przydatne
  może być blokowanie plików przed rozpoczęciem ich
  modyfikacji.

\end{frame
}

Slajd ten jest zbudowany w nastepujący sposób:

  • \begin{frame} – rozpoczęcie slajdu
  • [c] – mówi, że zawartość slajdu ma zostać wycentrowana na środku, można też użyć [t] mówiącego, że zawartość slajdu ma zostać wyrównana do góry
  • {Kiedy blokowanie jest potrzebne} – tytuł slajdu, można także umieścić podtytuł w kolejnym nawiasie klamrowym, do dyspozycji są także dwa polecenie: \frametitle oraz \framesubtitle, które pozwalają na ich ustawienie wewnątrz slajdu
  • zawartość slajdu, w tym przypadku po prostu akapit tekstu, poszczególne akapity muszą być rozdzielone przynajmniej dwoma znakami końca linii (jeden znak końca linii pozwala na dzielenie długiej linii w pliku źródłowym, ale przez LaTeX będzie on zastąpiony znakiem spacji)
  • \pause – powoduje, że zostanie zatrzymane wyświetlenie slajdu w momencie napotkania znaczka, w praktyce w tym przypadku spowoduje wygenerowanie dwóch stron w pliku PDF: pierwsza będzie zawierała tylko pierwszy akapit, druga oba
  • \end{frame} – koniec slajdu

Wypunktowania na slajdach

Jednym z najczęściej używanych elementów prezentacji są różnego rodzaju wypunktowania. W przypadku tworzenia prezentacji mamy można zdefiniować ich trzy rodzaje:

  • lista
  • numerowane
  • użycie definicji do numerowania

Lista wartości

Przykładowy wygląd listy wartości:

LaTeX - lista wartości

LaTeX - lista wartości

I kod który odpowiada za wygenerowanie tej strony:

73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
\begin{frame}{Czym jest repozytorium}
    \begin{itemize}
        \item scentralizowany system współdzielenia danych
        \item operacje jakie można wykonać na repozytorium:
        \begin{itemize}
            \item dodawanie plików
            \item usuwanie plików
            \item zmiany nazwy pliku
            \item przeniesienie pliku do innego katalogu
            \item zmiana właściwości
        \end{itemize}
        \item historia zmian
        \item odczyt danych przez klienta
    \end{itemize}
\end{frame
}

Nowe elementy, które się pojawiły:

  • \begin{itemize} – rozpoczęcie listy numerowanej
  • \item – nowy element listy
  • \end{itemize} – koniec listy numerowanej

Jak widać, listy można także zagnieżdżać poprzez ponowne rozpoczęcie definicji listy numerowanej. Jeżeli z jakiś powodów chcemy wyświetlić część elementów listy, lub wyświetlać je po kolei, to zawsze można w odpowiednim miejscu dodać polecenie \pause.

Lista numerowana

Tworzenie list numerowanych wygląda praktycznie tak samo jak tworzenie zwykłej listy (zmienia się tylko jej typ). Tak wygląda slajd w wybranym temacie:

LaTeX - lista numerowana

LaTeX - lista numerowana

I kod odpowiedzialny za jego wygenrowanie:

129
130
131
132
133
134
135
136
137
138
\begin{frame}{Zablokuj -- zmodyfikuj -- odblokuj}{Schemat działania}
    \begin{itemize}
        \item sposób działania:
        \begin{enumerate}
            \item zablokuj plik
            \item zmodyfikuj plik
            \item odblokuj plik
        \end{enumerate}
    \end{itemize}
\end{frame
}

Elementy nowe:

  • \begin{enumerate} – rozpoczęcie listy numerowanej
  • \item – kolejny element listy
  • \end{enumerate} – zakończenie listy numerowanej

Listy z wartościami definiowanymi

Można także stworzyć listę, w której będzie się podawało definicję, która jest opisywana:

LaTeX - lista definiowanych wartości

LaTeX - lista definiowanych wartości

Kod, który definiuje tę stronę:

340
341
342
343
344
345
346
347
\begin{frame}{Budowa repozytorium}
    Zalecany podział repozytorium na katalogi:
    \begin{description}[\texttt{branches}]
        \item[\texttt{trunk}] aktualna wersja danych (np. bieżący rozwój projektu)
        \item[\texttt{branches}] poszczególne odgałęzienia projektu
        \item[\texttt{tags}] oznakowane wersje
    \end{description}
\end{frame
}
  • \begin{description}[\texttt{branches}] – rozpoczęcie listy opisowej, w nawiasach [] można podać wartość najszerszego elementu, dzięki temu będzie możliwe odpowiednie ustawienie szerokości kolumny na wartości opisowe
  • \item[\texttt{trunk}] – kolejny element listy, w nawiasach [] podaje się wartość etykiety
  • \texttt{trunk} – wyświetlenie podanego tekstu (w nawiasach {}) przy użyciu czcionki o stałej szerokości znaków
  • \end{description} – koniec listy opisowej

Wstawienie grafiki

Kolejnym elementem często umieszczanym w prezentacjach są rożnego rodzaju obrazki. W prezentacji wyglądają one tak:

LaTeX - grafika na slajdzie

LaTeX - grafika na slajdzie

Kod, który generuje ten slajd:

98
99
100
101
102
103
\begin{frame}{Współdzielenie plików}{Pobranie plików z repozytorium}
    \begin{figure}[t]
        \includegraphics[height=0.62\textheight,keepaspectratio=true,clip=true,trim=0 0 0 100]{img/wsp_plik_1.png}
        \caption{Użytkownicy pobierają plik z repozytorium}
    \end{figure}
\end{frame
}

Znaczenie nowych elementów:

  • \begin{frame}{Współdzielenie plików}{Pobranie plików z repozytorium} – podanie tytułu i jednocześnie podtytułu slajdu
  • \begin{figure}[t] – oznaczenie, że będzie wstawiany obrazek, który zostanie wyrównany do góry (znacznik [t]
  • \includegraphics – wstawienie grafiki
    • height=0.62\textheight – ustawienie nowej wysokości obrazka, w tym przypadku to będzie 0,62 pomnożone przez wielkość miejsca na wprowadzenie tekstu
    • keepaspectratio=true – przy skalowania obrazka zachowaj proporcje
    • clip=true – obcięcie marginesów, należy ustawić aby działał parametr trim
    • trim=0 0 0 100 – zdefiniowanie marginesów do obcięcia
    • {img/wsp_plik_1.png} – ścieżka dostępu do grafiki
  • \caption – definicja podpisu pod obrazkiem
  • \end{figure} – koniec wstawianie obrazka

Tworzenie ramek

Można na prezentacji także umieszczać rożnego rodzaju ramki pozwalające na grupowanie informacji znajdujących się na slajdzie.

LaTeX - tworzenie ramek

LaTeX - tworzenie ramek

I kod pozwalający na wygenerowanie tego slajdu:

329
330
331
332
333
334
335
336
337
338
\begin{frame}{Utworzenie repozytorium}
    \begin{block}{Linia poleceń}
        \texttt{svnadmin create NoweRepozytorium}
    \end{block}
    \begin{block}{TortoiseSVN}
        \begin{figure}
            \includegraphics[scale=0.45,keepaspectratio=true]{img/20_tortoise_create_new_repository.png}
        \end{figure}
    \end{block}
\end{frame
}

Jak widać, za utworzenie ramki odpowiada konstrukcja \begin{block}{Linia poleceń}. Pozwala ona na zdefiniowanie ramki oraz jej tytułu.

Pojawia się także dodatkowa opcja w polecenie \includegraphics: scale=0.45. Pozwala ona na skalowanie obrazka o zadaną wielkość.

Wstawienie fragmentów kodu

Przy normalnym używaniu LaTeXa musimy uważać na obecność znaków specjalnych, które są w odpowiedni sposób przez niego interpretowane. Czasem istnieje potrzeba wstawienia fragmentu np. kodu źródłowego, który zawiera pokaźna ilość tych znaków specjalnych (np. przykład użycia jakiejś metody w LaTeXu). Przydatna wtedy jest możliwość wyłączenia interpretacji tekstu jako poleceń Tex.

LaTeX - wyłączenie interpretacji poleceń TeX

LaTeX - wyłączenie interpretacji poleceń TeX

I kod źródłowy, który pozwala na wygenerowanie powyższego slajdu:

445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
\begin{frame}[fragile]{Konflikty związane z plikami}{Zmiany w wewnątrz pliku}
    W przypadku wystąpienia tego rodzaju konfliktu w pliku
    źródłowym można znaleźć następujące linie:
   
    \begin{verbatim}
        < <<<<<< nazwa pliku
        twoje zmiany       
        =======
        kod pobrany z repozytorium
        >>>>>>> nr rewizji
    \end{verbatim}
   
    Można teraz tak zmodyfikować plik, aby najlepiej
    odzwierciedlał stan faktyczny.
\end{frame
}

Na co zwrócić uwagę:

  • \begin{frame}[fragile] – podczas definiowania slajdu należy ustawić parametr [fragile], włącza ona odpowiedni sposób interpretacji slajdu i pozwala na użycie poniższego polecenia
  • \begin{verbatim} – rozpoczęcie bloku, które ma zawierać wrażliwy tekst
  • \end{verbatim} – koniec bloku
  •  

Przykładowy projekt – prezentacja Subversion

Powyższe informacje wystarczyły mi do utworzenia prezentacji o Subversion. Poniżej link zarówno do pliku PDF z prezentacją, jak i do jej źródeł w LaTeXu:

Źródła