Archiwum miesiąca: czerwiec 2019
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:
- Zbyt „agresywny” kolor spisu treści (Agendy).
- 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:
- numer strony z pliku PDF (było tak dotychczas),
- 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:
- plik tar.xz,
- plik zip,
- wersja skrócona (w formacje tar.xz, bez plików źródłowych).
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:
1 |
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.6 -dPDFSETTINGS=/printer -dNOPAUSE -dQUIET -dBATCH -sOutputFile=plik_skompresowany.pdf plik.pdf |
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:
1 |
pdfimages -list plik.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:
1 |
\usepackage[pdfa]{hyperref} |
Odsyłacze będą działały.