Zmiany w szablonie prezentacji (zgodnym z…)

Na początku czerwca wziąłem udział w organizowanym przez Politechnikę Wrocławską, w ramach programu Innowacyjna Uczelnia — Innowacyjny Nauczyciel, kursie „LaTeX tworzenie profesjonalnej prezentacji”. Zajęcia prowadził Konrad Kluwak z Wydziału Elektroniki.

Szesnastogodzinny kurs oceniam pozytywnie — wydaje mi się, że może być rzeczywistą podstawą (dla zmotywowanego uczestnika) do rozpoczęcia przygody z LaTeXem.

Przy okazji kursu — za zgodą prowadzącego — opowiedziałem o beamerowym szablonie i o alternatywnej metodzie tworzenia prezentacji w języku Markdown konwertowanej do PDF z użyciem programu pandoc i LaTeXa/beamera. Opisywałem to już gdzie indziej i tam dostępne są slajdy.

Spotkanie było też okazją do usłyszenia paru uwag na temat szablonu i przedyskutowania możliwych udoskonaleń. Jeżeli chodzi o zgłoszone uwagi to:

  1. Zbyt „agresywny” kolor spisu treści (Agendy).
  2. Kwestia numerowania stron/slajdów.

Kolor spisu treści

Niestety jest jakiś poważny błąd w szablonie kolorów i przed zakończeniem sesji nie ma szans na przepisanie/przekonstruowanie go na nowo. Ale zmiany zostaną wprowadzone na początku wakacji.

Numerowanie stron/slajdów

Po pierwsze zauważyłem niesympatyczny błąd powodujący, że niektóre strony nie były numerowane.

Nie bardzo wiadomo co przyjąć za podstawę numerowania. Możliwości są, w zasadzie, tylko dwie:

  1. numer strony z pliku PDF (było tak dotychczas),
  2. numer slajdu (czyli numer kolejnego obiektu wstawianego środowiskiem frame).

W tym drugim przypadku, ze względu na to, że jeden slajd może być stworzony z kilku warstw, mamy do czynienia z sytuacją, że zawartość na ekranie się zmienia, ale nie zmienia się numer.

Parametrem sterującym wyświetlaniem numerów jest pagenumber. Może on przyjmować następujące wartości:

  • gdy opcja pagenumber nie występuje — nie będzie żadnej numeracji;
  • pagenumber=false — bez numeracji;
  • pagenumber=true — numerowane będą strony pliku PDF;
  • pagenumber=page — numerowane będą strony pliku PDF;
  • pagenumber=frame — numerowane będą slajdy;
  • pagenumber=slide — numerowane będą slajdy (ze względu na nieporozumienia językowe).

Standardowo slajd tytułowy nie jest numerowany.

Uaktualniona wersja szablonu, wraz ze zmienioną dokumentacją dostępna jest tam gdzie zwykle:

Sposób instalacji opisany w dokumentacji. Wystarczy nadpisać wszystkie pliki.

Kompresja plików PDF

Bardzo często, po dodaniu ilustracji, plik PDF puchnie do ogromnych rozmiarów. Przygotowując publikację do druku staramy się aby jakość ilustracji była jak najlepsza i czasami przesadzamy z tym.
Osobną sprawą jest przygotowanie ilustracji w takiej rozdzielczości, aby drukarz (albo redakcja nie narzekali). Nie będziemy zajmować się tym teraz.
Program Adobe Acrobat (w wersji pro) pozwala zapisać plik w wersji „zoptymalizowanej”. Opis tej funkcjonalności można znaleźć na stronach Adobe.
Co jednak zrobić gdy nie mamy dostępu do tego (płatnego) programu?
Program ghostscript oferuje zbliżoną funkcjonalność.
Podstawowe polecenie do optymalizacji wygląda tak:

Kluczowa opcja to -dPDFSETTINGS=/printer która stara się działać podobnie jak odpowiednie ustawienie w Adobe Acrobat. Inne wartości jakie może ona przyjmować to:

  • /prepress — najwyższa jakość, 300 dpi,
  • /printer — wysoka jakość, optymalizowane do wydruku, 300 dpi,
  • /ebook — niska jakość, 150 dpi,
  • /screen — do czytania na ekranie, ilustracje są skalowane do 72 dpi (co nie zawsze daje dobre efekty)
  • /default — ustawienia domyślne.

Wykonany test pozwolił skompresować plik o wielkości 5 M do:

  • 244 K /screen
  • 276 K /ebook
  • 632 K /prepress
  • 704 K /print
  • 788 K /default

W przypadku plików PDF tworzonych przez narzędzia TeXowe warto skorzystać z programu pdfimages znajdującego się w linuksowym pakiecie poppler-utils. W przypadku Windows (nie testowałem) program znajduje się w paczce pakietu XpdfReader. Program nie tylko pozwala na wyodrębnienie ilustracji zawartych w pliku PDF (nie każdą ilustrację i nie z każdego pliku da się w ten sposób wyodrębnić) ale, w szczególności, program pozwala odpytać o wszystkie ilustracje znajdujące się w pliku PDF:

Dowiemy się w jakiej rozdzielczości są ilustracje. Po kompresji okaże się co z nimi zrobił ghostscript.
W opisywanym wcześniej przykładzie było sporo plików graficznych w rozdzielczości 945 dpi. Po kompresji zostały one odpowiednio zmniejszone (do 300 dpi) w przypadku /printer.
Wadą tak zrealizowanej kompresji jest to, że wszystkie „klikalne odsyłacze” w pliku PDF przestają być klikalne. I nie tyle jest to wina LaTeXa/ghostscripta ile raczej sposobu traktowania różnych obiektów podczas kompresji. Aby odnośniki pozostały klikalne — należy (nad)użyć opcji pdfa pakietu hyperref:

Odsyłacze będą działały.