Mam pewien pomysł na usprawnienie pracy z LaTeX-em na moim Maku, niestety nie do końca potrafię go zrealizować! Może ktoś z Was będzie miał jakieś rozwiązanie. Jak znajdę więcej czasu to może i sama coś znajdę, ale teraz właściwie powinnam pisać pracę domową ;)

Wygląda to tak, że można w TeXShopie ustawić używanie zewnętrznego edytora. Czyli kompilację wykonuje się w TeXShopie, wyświetlanie pdf-a również, a sama edycja w jakimś innym programie, np. Smultronie (mój obecnie ulubiony edytor, niestety najnowsza wersja 3.0 nie nadaje się do użytku z powodu ogromnej ilości bugów[*]). Edytor dostarczany z TeXShopem jest raczej marny.
Niestety wymaga to dużej ilości kliknięć, żeby zachować plik w Smultronie, przełączyć okno do TeXShopa i uruchomić kompilowanie.
Z tego, co mi wiadomo, TeXShop zawiera jakieś przygotowane AppleSkrypty, ale nie wiem, jak się do nich dobrać.
Myślałam też, żeby wykorzystać tzw. Folder Actions, niestety nie ma dla nich opcji wykonania skryptu, gdy np. pewien określony plik zmieni się (np. będzie miał nową datę), a tylko przy dodawaniu, usuwaniu plików.

Idealnym rozwiązaniem byłoby: <jabłko> + S w Moim Ulubionym Edytorze wywoływałoby odpowiedni skrypt, np. latex/bibtex/latex/latex, po czym okienko podglądu by się odświeżało, na tej stronie, która była ostatnio otwarta. W przypadku błędu otwierałaby się również konsola z outputem

Jestem pewna, że to rozwiązanie jest możliwe i jestem pewna, że jest nawet więcej dróg, żeby je osiągnąć (np. kompilować można z TeXShopa albo wywołując polecenie shellowe

Następnym punktem do rozważenia jest, jak to zrobić, żeby działał pdfsync. Nigdy nie używałam tego narzędzia wcześniej, ale skoro istnieje, czemu by nie! Czasem może być przydatne. Służy do przełączanie między źródłem a podglądem, przy czym przeskakuje się zawsze do miejsca, które wskaże kursor. Podobno jest jakiś problem tutaj z TeXShopem/zewnętrznym edytorem.

Oczywiście musiałaby istnieć możliwość dopasowania, czy ma to być [pdf|xe|]latex.

[*] np. numery linii pojawiły mi się od końca do początku i... w lustrzanym odbiciu!


Update [13:00]

Obecny stan wiedzy:
z TextWranglerem się da tak:

tell application "TextWrangler"
        set fileName to (file of text window 1) as text
end tell
set unixname to POSIX path of fileName
set oldDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to "/"
-- pull the path out as a string and strip off the filename
set pathText to unixname
set pathList to (text items of pathText)
set docName to last item of pathList
set AppleScript's text item delimiters to oldDelimiters
tell application "TextWrangler"
        save text document docName
end tell
tell application "TeXShop"
        activate
        open fileName
end tell
tell document docName of application "TeXShop"
        activate
        typesetinteractive
end tell

Skrypt powoduje, że w TeXShopie otwiera się aktualnie edytowany w TextWranglerze plik, kompiluje się i odświeża/otwiera podgląd. Tylko niech mi ktoś jeszcze powie, jak ten skrypt wywołać przy zapisywaniu pliku to już będę szczęśliwa. Niech będzie i TextWrangler, choć może zadziała i z Smultronem. Aha, skrypt oryginalnie odnosił się do BBEdita, którego nie posiadam, ale to są dwie wersje tego samego edytora, jeśli się nie mylę (jedna platna druga nie), więc nie ma problemu.

Update [13:19]

Znalazłam ciekawą funkcję w TextWranglerze: dowiązanie skryptu do dowolnego elementu Menu. Działa to tak, że skrypt musi być nazwany jak element menu, np. File•Save (• rozdziela poziomy) i zapisany w katalogu ~/Library/Application Support/TextWrangler/Menu Scripts. Można wykonać skrypt przed i/lub po wykonaniu funkcji z Menu.

Mój skrypt wygląda następująco:

on menuselect(menuName, itemName)
        return false
end menuselect

on postmenuselect(menuName, itemName)
        tell application "TextWrangler"
                set fileName to (file of text window 1) as text
        end tell
        set unixname to POSIX path of fileName
        set oldDelimiters to AppleScript's text item delimiters
        set AppleScript's text item delimiters to "/"
        -- pull the path out as a string and strip off the filename
        set pathText to unixname
        set pathList to (text items of pathText)
        set docName to last item of pathList
        set AppleScript's text item delimiters to oldDelimiters
        tell application "TextWrangler"
                save text document docName
        end tell
        tell application "TeXShop"
                activate
                open fileName
        end tell
        tell document docName of application "TeXShop"
                activate
                typesetinteractive
        end tell
end postmenuselect

i działa dokładnie tak, jak sobie wymarzyłam: po zapisaniu pliku włącza się odpowiedni engine techowy i otwiera się/odświeża się podgląd w TeXShopie. Proste i genialne!

Wygląda na to, że na razie rezygnuję z pięknego i prostegu Smultrona. Chyba, że ktoś mi powie, jak zrobić w nim to samo.

Dwa programy obok siebie.

Dawno nie było o Ubuntu

9 komentarzy

Jechałam dziś metrem na koncert. W berlińskim metrze są zainstalowane takie telewizorki, w których lecą wiadomości (bez głosu, tylko obraz), reklamy itp. Dzisiaj patrzę i oczom nie wierzę: reklama Ubuntu! Tekst w stylu: „Ubuntu to bezpłatny system operacyjny. Wejdź na stronę ... i zamów bezpłatnie CD”. Wbiło mnie w ziemię. Super, że reklamują Ubuntu, i to jeszcze w takim miejscu jak metro!

Dzięki mojemu Tacie[1] mam swoją [sub]domenkę i miejsce na serwerze. Pod adresem http://joanna-ludmila.typograf.pl typoagrafka.eu można w tej chwili znaleźć świeżo przetłumaczoną wersję mojej dotychczasowej oficjalnej strony na serwerze uczelnianym, ciut odmienionej (zdjęcie!). Wersja niemiecka również jest dostępna.

Z biegiem czasu zamierzam rozbudować mocniej tą stronkę, na razie musi wystarczyć to, co jest. Większość plików do ściągnięcia jest po niemiecku, ale kompilować się powinny bez problemu, jeśli ktoś tylko chce przetestować LaTeX-a.

Wrzucam ten wpis we wszystkie kategorie, których aktualnie dotyczy moja strona, żeby łatwiej mogli do niej dotrzeć potencjalni zainteresowani. – Już teraz można z niej ściągnąć różne moje prezentacje zrobione w LaTeX-u wraz ze źródłami.

[1] Domenka typoagrafka to prezent urodzinowy!

←Wcześniejsze wpisy Nowsze wpisy →

www.flickr.com
typoagrafka's photos More of typoagrafka's photos