Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

[LaTeX] Przycinanie PDF-a i jego podgląd, czyli PDFCrop w Kile

Przed przeczytaniem tego wpisu warto chyba przeczytać wpis Przycinanie dokumentu w pdf-ie, bo tam już o samym PDFCrop nieco pisałem.

tl;dr

Jeśli nie chce Ci się czytać długiego wstępu, przejdź do nagłówka "Wstęp krótki".
Jeśli nie interesuje Cię wywód o rozwiązaniu niedziałającym, omiń "Pierwsze podejście" i przejdź do nagłówka "Rozwiązanie problemu".
Jeśli nic Cię nie interesuje, naciśnij czerwoną słuchawkę.

Wstęp długi

Ostatnio skończyłem pisać artykuł naukowy w LaTeX-u, w edytorze Kile (gdzie Kile znaczyło kiedyś "Kile Isn't LaTeX Editor" :P). Był to pierwszy dłuższy dokument, który robiłem na komputerze z dużym monitorem. Zamiast przełączać się z Kile'a na wynikowy PDF (w programie Okular) i z powrotem, otworzyłem sobie Kile z lewej, Okular z podglądem z prawej i działałem. Było jednak pewne "ale"... Otóż szablon, w którym pisałem ów artykuł, miał ustawione bardzo szerokie marginesy (to częste w przypadku czasopism matematycznych, ale skąd się to bierze - nie wiem, może i wygodniej, jak nie jest tak szeroko, jak w przypadku podań itp.). Tak szerokie marginesy powodują, że litery na ekranie są mniejsze, niżby mogły być. A chciałem, aby czytało mi się wygodniej.

r   e   k   l   a   m   a

Mogłem włączyć w Okularze opcję "Obetnij marginesy", ale nie lubię jej mieć włączonej na stałe, ani za każdym razem włączać i wyłączać. Zwłaszcza, że raz ona działa, a raz nie.
Mogłem zainstalować Acrobat Readera, zmienić ustawienia Kile i mieć podgląd wyniku w programie Adobe, który ma opcję "Fit Visible". Ale nie ma on automatycznego odświeżania pliku (a przynajmniej nie widzę żeby miał). Poza tym, zostaje problem szerokich marginesów u góry i u dołu strony, co też chciałem wyeliminować.
Mogłem jeszcze zmienić na siłę rozmiar marginesów w samym kodzie latechowym, ale to spowodowałoby zmianę układu tekstu i (co gorsze) matematycznych krzaków na stronie, przez co potem musiałbym się użerać z formatowaniem całego bałaganu z powrotem w domyślnych marginesach.

Stwierdziłem, że najlepiej użyć do tego celu wspomnianego PDFCrop, którego i tak często używam i o którym pomyślałem jako o pierwszym. Poza tym, kliknięcie opcji w programie to rozwiązanie niegodne prawdziwego zawodowca. Więcej, odpalanie "pdfcrop artykuł.pdf" w konsoli po każdej kompilacji pliku LaTeX-a też mnie nie zadowalało - za dużo trwa. Fachowo trzeba sobie było to zautomatyzować. A do tego Kile nadaje się wyśmienicie!

Wstęp krótki

Chodzi o to, żeby tak skonfigurować edytor latechowy Kile, żeby na wynikowym PDF-ie uruchamiał jeszcze PDFCrop, żeby w podglądzie mieć obcięte marginesy przy tym samym układzie zawartości na stronie.

Pierwsze podejście

W ustawieniach Kile'a, w dziale Tools jest sekcja Build. Są w niej różnorakie narzędzia operujące na plikach: konwertery, kompilatory, przeglądarki itp., oraz sekwencje powyższych.

Potrzebowałem trzech nowych narzędzi:
1. samego PDFCrop,
2. sekwencji: Kompilacja -> Przycięcie
3. podglądu przyciętego PDF-a (do odpalenia jednokrotnego, na początku pracy).

Drugie jest banalne: złożenie dwóch/czterech klocków - to wiedziałem na starcie.
W trakcie prac nad pierwszym, trzecie (zanim zacząłem o nim myśleć) okazało się równie łatwe, co drugie.
A pierwsze? Też banał - pomyślałem. I bardzo mocno się myliłem!

Po kolei: w sekcji "Build" ustawień klikamy na przycisk New... pod listą narzędzi. Prostego "czarodzieja" uzupełniamy jak na obrazku, dowolną sensowną nazwą i wzorcowym istniejącym narzędziem (bierzemy jakiekolwiek konwertujące), żeby były dostępne odpowiednie pola w ustawieniach.

Następnie ustawiamy opcje nowo powstałego narzędzia wedle kolejnego obrazka.

"Command: pdfcrop" powoduje oczywiście wykonanie polecenia "pdfcrop", a "'%S.pdf'" oznacza, że parametrem wywołania będzie nazwa bieżącego pliku .tex, z rozszerzeniem .pdf - a tak się właśnie najprościej korzysta z PDFCrop.

Odpalamy polecenie: menu Build -> Convert -> PDFCrop i...

...błąd!
Kile pisze w logu, że nie udało mu się uruchomić pdfcrop, chociaż w Output pokazuje, że próba nastąpiła. Podanie pełnej ścieżki do programu - "/usr/bin/pdfcrop" - też nic nie daje. Czemu tak jest, to ja nie wiem. Nie wnikałem, zrobiłem obejście - prosty skrypt.

Rozwiązanie problemu

W jakimś katalogu tworzymy plik o jakiejś sensownej nazwie, u mnie ~/pc.sh. Możemy to zrobić z Konsole w Kile, np.:

cd ~
touch pc.sh && kile pc.sh

Skrypt wypełniamy następującą zawartością:

#!/bin/bash
pdfcrop $1

Zapisujemy, zamykamy, nadajemy prawa wykonywania:

chmod +x pc.sh

Dla sprawdzenia możemy wykonać taką sekwencję:

q@q:~/TeX$ ls -lah pc*
-rw-rw-r-- 1 q q 30 lut 30 25:61 pc.sh
-rw-rw-r-- 1 q q  0 lut 30 25:61 pc.sh~
q@q:~/TeX$ chmod +x pc.sh
q@q:~/TeX$ ls -lah pc*
-rwxrwxr-x 1 q q 30 lut 30 25:61 pc.sh
-rw-rw-r-- 1 q q  0 lut 30 25:61 pc.sh~

Skrypt bierze jeden argument i wywołuje "pdfcrop" z tym argumentem. Z naszego punktu widzenia to nic nowego, ale dla Kile jest to duża różnica.
A dalej to prosto: albo edytujemy narzędzie PDFCrop, albo usuwamy i robimy je od nowa: w sekcji "Build" ustawień klikamy na przycisk New... pod listą narzędzi. Kreator uzupełniamy jak na obrazku:

Następnie ustawiamy opcje nowo powstałego narzędzia wedle kolejnego obrazka.

Odpalamy polecenie: menu Build -> Convert -> PDFCrop i...

...działa!

No to teraz dalsze kroki.

Sekwencja Kompilacja -> Przycięcie

Tworzymy nowe narzędzie do kompilacji, dla spójności nazw: QuickPDFCrop, na podstawie i na wzór istniejącego QuickBuild lub QuickPDF, w zależności od tego czy kompilujemy PDFLaTeX-em, czy LaTeX-em i przechodzimy przez DVI i PS. Ja byłem zmuszony do tego drugiego rozwiązania, stąd zrobiłem tak:

Narzędzie przydzieliłem dla porządku do podmenu Compile i wybrałem mu ikonę.

Podgląd

Tworzymy nowe narzędzie podglądu, dla spójności nazw: ViewPDFCrop, na podstawie i na wzór ViewPDF. Tutaj konfiguracja jest jeszcze prostsza:

Wystarczy powiedzieć, że pdfcrop domyślnie nazywa przycięty plik nazwą oryginalnego, przedłużoną o "-crop" - to odzwierciedla opcja '%S-crop.pdf'. Temu narzędziu też możemy dać ikonę.

Na zakończenie całości można jeszcze pozmieniać sobie skróty klawiszowe, aby móc szybko dostać się do stworzonych narzędzi.

Poniższe obrazki demonstrują efekt końcowy.


 

oprogramowanie porady

Komentarze