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.