Podczas tworzenia prezentacji w LaTeXu przy użyciu rozszerzenia Beamer prędzej czy później trzeba będzie wybrać jej odpowiedni wygląd. W przypadku Beamera do dyspozycji mamy:

  • zestawy tematów – 29
  • zestawy kolorów – 17
  • zestawy czcionek – 6

Istnieje strona Beamer Theme Matrix, gdzie można obejrzeć jak wygląda każdy z tych tematów, ale najlepiej sprawdzić to na własnej prezentacji. Można to zrobić ręcznie, modyfikując odpowiednie parametry w prezentacji, ale roboty z tym trochę jest. Druga możliwość to utworzenie skryptu, który wygeneruje dla nas prezentację w wybranych formatach.

Utworzenie prezentacji przy użyciu zdefiniowanych styli

Jestem z natury leniwym człowiekiem, więc prościej było napisać krótki skrypt, który w razie potrzeby zapisze mi prezentację w każdym dostępnym formacie, a ja będę mógł wybrać sobie ten, który mi najbardziej pasuje. Skrypt generujący prezentację we wszystkich dostępnych tematach:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/bash

# theme list
#THEMES="AnnArbor Antibes Bergen Berkeley Berlin Boadilla boxes CambridgeUS Copenhagen Darmstadt default Dresden Frankfurt Goettingen Hannover Ilmenau JuanLesPins Luebeck Madrid Malmoe Marburg Montpellier PaloAlto Pittsburgh Rochester Singapore Szeged Warsaw"

THEMES=`ls /usr/share/texmf/tex/latex/beamer/themes/theme/ | grep "^beam" | cut -d . -f 1  | sed "s/beamertheme//" | tr '\n' ' '`

TEX_FILE="subversion-jak_dziala-prezentacja"
OUTPUT_DIR="out"

for THEME in $THEMES
do
        INPUT_FILE="$TEX_FILE.tex"
        OUTPUT_FILE="$TEX_FILE-theme-$THEME.tex"

        cp $INPUT_FILE $OUTPUT_FILE
        sed -i "s/^\\\usetheme.*/\\\usetheme{$THEME}/" $OUTPUT_FILE

        pdflatex -output-directory=out $OUTPUT_FILE
        pdflatex -output-directory=out $OUTPUT_FILE

        rm $OUTPUT_FILE
done;

Krótkie wyjaśnienie tego co się w nim dzieje:

  • THEMES=`ls ....
    Utworzenie listy dostępnych tematów, należy zwrócić przede wszystkim uwagę na to, czy istnieje zdefiniowana ścieżka do ich definicji, w moim przypadku katalogu /usr/share/texmf/tex/latex/beamer/themes/theme/. Można także usunąć tę linię i odkomentować linię 4, która zawiera listę predefiniowanych tematów.
  • TEX_FILE="subversion-jak_dziala-prezentacja"
    Nazwa pliku TeX, który zawiera definicję prezentacji. Nazwa powinna być podana bez rozszerzenia.
  • OUTPUT_DIR="out"
    Katalog na dane tymczasowe i wynikowe pliki PDF.
  • cp $INPUT_FILE $OUTPUT_FILE
    Utworzenie kopii aktualnej prezentacji, po inną nazwą , która zawiera m.in. nazwę przetwarzanego tematu.
  • sed -i "s/^\\\usetheme.*/\\\usetheme{$THEME}/" $OUTPUT_FILE
    Podmiana w zawartości pliku nazwy użytego tematu. Ważne! W danej prezentacji należy określić temat przy użyciu \usetheme. Jeżeli parametr ten nie zostanie zdefiniowany to skrypt nie zadziała poprawnie.
  • pdflatex -output-directory=out $OUTPUT_FILE
    Wygenerowanie prezentacji z wybraną prezentacją. Polecenie wywołane dwukrotnie, przy pierwszym przebiegu tworzy spis treści.
  • rm $OUTPUT_FILE
    Usunięcie zbędnego już pliku tymczasowego z prezentacją.

Utworzenie prezentacji przy użyciu dostępnych kolorów

Skrypt ten przypomina bardzo poprzedni, więc omówię tylko różnice pomiędzy nimi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/bash

# colors list
#COLORS="albatross beaver beetle crane default dolphin dove fly lily orchid rose seagull seahorse sidebartab structure whale wolverine"

COLORS=`ls /usr/share/texmf/tex/latex/beamer/themes/color/ | grep "^beamer" | cut -d . -f 1 | sed "s/beamercolortheme//" | tr '\n' ' '`

TEX_FILE="subversion-jak_dziala-prezentacja"
OUTPUT_DIR="out"

for COLOR in $COLORS
do
        INPUT_FILE="$TEX_FILE.tex"
        OUTPUT_FILE="$TEX_FILE-color-$COLOR.tex"

        cp $INPUT_FILE $OUTPUT_FILE
        sed -i "s/^\\\\usecolortheme.*/\\\\usecolortheme{$COLOR}/" $OUTPUT_FILE

        pdflatex -output-directory=out $OUTPUT_FILE
        pdflatex -output-directory=out $OUTPUT_FILE

        rm $OUTPUT_FILE
done;
  • COLORS=`ls ....
    Zdefiniowanie zmiennej zawierającej listę dostępnych motywów kolorystycznych. Można odkomentować linię 4 a tę usunąć, jeżeli ścieżka dostępu się nie zgadza.
  • sed -i "s/^\\\\usecolortheme.*/\\\\usecolortheme{$COLOR}/" $OUTPUT_FILE
    Podmiana polecenia \usecolortheme. Polecenie to musi istnieć w pliku z prezentacją, inaczej nic nie zadziała.

Utworzenie prezentacji przy użyciu dostępnych czcionek

Ostatnim skryptem będzie ten, który generuje prezentację dla wybranych czcionek:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/bash

# theme list
#FONTS="default professionalfonts serif structurebold structureitalicserif structuresmallcapsserif"

FONTS=`ls /usr/share/texmf/tex/latex/beamer/themes/font/ | grep '^beamerfonttheme' | cut -d . -f 1 | sed "s/beamerfonttheme//" | tr '\n' ' '`

TEX_FILE="subversion-jak_dziala-prezentacja"
OUTPUT_DIR="out"

for FONT in $FONTS
do
        INPUT_FILE="$TEX_FILE.tex"
        OUTPUT_FILE="$TEX_FILE-font-$FONT.tex"

        cp $INPUT_FILE $OUTPUT_FILE
        sed -i "s/^\\\usefonttheme.*/\\\usefonttheme{$FONT}/" $OUTPUT_FILE

        pdflatex -output-directory=out $OUTPUT_FILE
        pdflatex -output-directory=out $OUTPUT_FILE

        rm $OUTPUT_FILE
done;

Różnice jak powyżej, w linii 6 definicja dostępnych formatów czcionek. A w linii 17 zmiana wartości na aktualnie wybraną czcionkę.

Skrypty te powinny pomóc w wyborze odpowiedniego tematu dla prezentacji, co powinno ułatwić zarówno jej tworzenie jak i późniejszy odbiór.

Źródła

Tags: , , ,