LaTeX, dot i pisanie inżynierki

19 III 2009, 17:32

Kontynuując chwalebną tradycję publikowania źródeł latexowych swojej pracy na blogu, oto tarball ze źródłami do mojej.

Jakby ktoś potrzebował porównać oryginalne wersje niektórych plików ze zmodyfikowanymi, to można zassać całe repozytorium w mercurialu wpisując:

hg clone http://ep09.pld-linux.org/~mmazur/inz

Update: zapomniałem dodać, że buduje się toto za pierwszym razem przy pomocy make first, a później już po prostu make.

Natomiast finalny PDF wygląda tak. Czytania odradzam, nic ciekawego tam nie ma. Gdybym nie musiał, to bym czegoś takiego nie pisał.

Za to jakby ktoś chciał, to tutaj garść porad odnośnie technicznej strony klepania takiej pracy:

1. dot to jest bardzo bardzo przydatna rzecz. Prawie wszystkie obrazki wyprodukowałem bardzo szybko właśnie używając dota. Polecam screenshoty. No i moje obrazki.

2. Scribus się nie nadaje do malowania obrazków :)

3. Politechnika Opolska oczywiście nie udostępnia własnego loga w formacie wektorowym, bo po co. Na szczęście skalowanie odpowiednio dużego PNG jest całkiem sprawne i na finalnym wydruku wygląda ładnie.

4. Jeśli twoja uczelnia udostępnia styl do latexa w którym należy pisać prace, to go używaj. Jeśli nie, to się poważnie zastanów, czy warto. O ile "typowe" rzeczy są łatwe do osiągnięcia, jeśli styl je obsługuje, to już z niektórymi musiałem się tak masakrycznie nahakować... To widać po źródłach -- są najeżone jakimiś obejściami i modyfikacjami. Serio, wygląda to wybitnie paskudnie, a nie zależy mi na tyle, żeby próbować któreś z tych modyfikacji czyścić i później gdzieś mergować.

4a. Politechnika Opolska oczywiście nie udostępnia własnego stylu, bo po co.

Jeszcze raz: jeśli będziesz próbował walczyć z domyślnymi stylami, to zrobi się nieprzyjemnie. Przykłady drastyczne:

1. Żeby mieć tytuły dla tabelek wyrównywane do lewej, a tytuły dla obrazków wycentrowane, zrobiłem dwie komendy: \centercaption i \leftcaption, które zmieniają zmienną \leftcapalign na 0 albo 1 i zależnie od tego funkcja generująca podpisy (\@makecaption) zachowuje się tak, albo inaczej. Oryginalnie chciałem, żeby funkcja \@makecaption zachowywała się odpowiednio zależnie od kontekstu, ale nie znam na tyle składni texa, więc skończyło się na tym, że muszę dodać linijkę przed każdą tabelką i obrazkiem.

2. Do powyższego: żeby przy wyrównaniu do lewej mi równało do szerokości tabelki, a nie do marginesu, wygooglałem, żeby używać \ttabbox i \ffigbox przy definiowaniu tabelek i obrazków (paczka floatrow). Problem: one zwiększają countery do spisu treści o jeden, nie wiem po jaką cholerę, więc muszę najpierw rozpocząć tabelkę \begin{table}, później zmniejszyć na powrót counter dla tabelek \addtocounter{table}{-1} i dopiero wsadzić zasadniczą tabelkę do \ttabbox. Oczywiście nad tym wszystkim \leftcaption.

3. Używam \begin{lstlisting} do listingowania kodu (paczka listings). Tyle, że nie wiem, jak temu zmniejszyć czcionkę, więc przed każdym takim listowaniem jest \small, a po jest \normalsize.

3a. Do listowania konfiga takiego np. mysql-a, gdzie średnik jest komentarzem, ustawiam język na lispa, po czym po listingu wracam do domyślnej składni -- unix shella (listowałem głównie różnej maści konfigi z hashowanymi komentarzami).

3a. Powyższa komenda niektóre spacje robi z podkreślnikami. Olałem, nie chciało mi się kombinować jak to wyłączyć. I tak nikt tego nie będzie czytał.

Oczywiście nie mówię, że tego nie dałoby się zrobić czyściej, ale to nie jest konkurs na ładne źródła w latexu, więc jak zaczynało działać, to przestawałem w tym dalej grzebać. Ale są też przykłady łatwych rzeczy:

1. Żeby mieć numery tabel od 1 do N, zamiast w formacie X.N, gdzie X to numer rozdziału, wystarczy dać \counterwithout{table}{chapter} z paczki chngcntr

2. Żeby mieć captiony dla tabel na górze, wystarczy dać \floatsetup[table]{position=top} z paczki floatrow.

3. Paczka tocloft daje dużą kontrolę nad spisami treści. Ja głównie używałem \cftsetindents do zmiany wcięć w spisach tabel i figur, bo domyślnie są takie, jak dla chapterów, co przy numeracji 1..N zamiast X.N wygląda niezbyt ładnie.

4. \begin{adjustwidth} z paczki changepage pozwoliło mi na bardzo proste zwiększenie marginesów bocznych tylko i wyłącznie dla jednej tabelki, która była trochę szersza niż marginesy pozwalały. Domyślnie była przyklejona do lewego marginesu i wystawała za prawy (tak jak się robi z za szerokim tekstem), a ja chciałem ją mieć całkowicie wycentrowaną. No i się udało.

Były jeszcze jakieś drobiazgi, ale to można znaleźć w samych źródłach, zwłaszcza, że jest historia commitów i można porównać oryginalny plik mwrep.cls (czyli klasa, jakiej używałem, zamiast standardowego reporta) z modyfikowanym.

A, właśnie, licencja tego stylu bodajże zabrania modyfikowania go, więc jest tylko w formie informacyjnej, nie do dystrybucji. Jeśli ktoś by chciał rozpowszechniać tę klasę z moimi zmianami, to bodajże trzeba zmienić nazwę. Wersja tego pliku dostępna bezpośrednio przez www ma o-r na uprawnieniach, żeby google nie zindeksowało, więc można pooglądać tylko tą z mercuriala, albo tarballa.

Update: problem z numerowaniem tabel/obrazków wynikał z tego, że używałem od paru lat już obsolete teTeXa, zamiast TeX Live'a. Nie zdziwiłbym się, gdyby i inne rzeczy dało się znacznie czyściej zrobić, gdybym nie zaczął od używania staroci.

Z życia przyszłego inżyniera

19 III 2009, 12:09

Zaręczyłem się. Był błyszczący się pierścionek, panorama Opola dookoła, ona powiedziała tak, a pan ochroniarz powiedział, żeby się zmywać z dachu, bo tu jeszcze nie wolno wchodzić.

W wieku 24 lat zacząłem łysieć. :( Co jest o tyle smutne, że przez większość życia miałem na głowie za dużo włosów, to teraz będę miał za mało.

Mój główny chlebodawca właśnie wszedł w stan przedzawałowy. Niedaleko widać potencjalnego inwestora z defibrylatorem, ale nikt nie wie, czy zdąży. Na razie koniec tej naciąganej metafory, za kilka dni napiszę coś więcej.

Dzisiaj w końcu oddałem całą papierologię wymaganą do tego, żeby mi termin obrony wyznaczyli. To jest główny powód dlaczego tu było cicho -- pisania miałem po dziurki w nosie.

Kilka spostrzeżeń:

1. Przerost formy nad treścią przy pisaniu takich rzeczy jest po prostu epicki. Może się za jakiś czas zbiorę do opisania wszystkich idiotyzmów z tym związanych, teraz mi się nie chce tego w jakąś spójną całość składać. Ja się nie dziwię, że większość studentów na dwustopniowych studiach po napisaniu inżynierki pewnie nawet nie rozważa później podjęcia studiów magisterskich. Ja też nie rozważam. Może za kilka lat, jak już zdążę zapomnieć jakim gównem jest wyższa edukacja (a na (nie)szczęście mam krótką pamięć do takich rzeczy), to się jeszcze raz zastanowię.

2. Nigdy nie próbuj wybiegać przed stado w jakikolwiek sposób, bo stado cię dogoni i przykładnie ukarze. Promotorka zasugerowała mi, żeby pisać pracę po angielsku, a że nie robiło mi to większej różnicy w jakim języku piszę, a ją (promotorkę) lubię i wiem, że jej by to lepiej w papierach wyglądało, to się zgodziłem. Ponieważ to jest Niewidzialny Uniwersytet w Pćmciu Dolnym, nikt takich rzeczy wcześniej nie próbował, więc dopiero post factum się okazało, że za karę muszę jeszcze dopisać streszczenie w języku ojczystym (wymóg formalny). Owo streszczenie mam zamiar napisać całkowicie na odwal się, bo i tak tego nikt nigdy czytał nie będzie, ale gdybym wiedział od razu, to bym po prostu pracę napisał po polsku i teraz sobie czytał książkę, czy coś. Znowu -- nie chce mi się w tym momencie rozwodzić nad idiotyzmem pisania takiego czegoś.

3. Strona mojego wydziału twierdzi, że wynikową pracę należy oddać w formatach DOC i PDF. Ponieważ pisałem w Latexu, więc nie za bardzo było z czego doca zrobić. Więc użyłem pdftohtml, a wynikową sieczkę wkleiłem do OpenOffica. No i mam doca. A jak się ktoś będzie czepiał, to zasugeruję, żeby się poszedł gonić. Ale to mi raczej nie grozi, bo nikt tego już czytał w tej postaci nie będzie, a systemowi antyplagiatowemu raczej nie robi różnicy jak to wygląda. Uczelnia techniczna psia ich mać :/

Koniec końców jest na razie 3:0 dla Politechniki Opolskiej:

1. Wygrałem ogólnopolską olimpiadę z języka angielskiego, to się polibuda może chwalić. Ja z tego miałem wycieczkę, z której nie skorzystałem, zestaw fajnych słowników, z których nigdy nie skorzystam, zestaw noży ozdobnych, które leżą w którejś szafie i zestaw kosmetyków, które chyba zużyłem. Za drugie miejsce bym dostał wieżę audio :/

2. Jakieś pół roku później studia, które oryginalnie miały być magisterskimi, zamieniły się w inżynierskie.

3. A teraz polibuda dostanie pracę inżynierską po angielsku, którą nie omieszka się chwalić przed przeróżnymi komisjami, ja za to mam więcej roboty.

W momencie w którym otrzymam swój dyplom inżyniera będzie 3:1. I mam nadzieję, że tej instytucji nigdy w życiu już na oczy oglądać nie będę musiał.

Więcej -- a żeby cholera zbankrutowali, zostali zlikwidowani, albo po prostu rozlecieli się w drobny mak z chwilą, gdy wsiądę do samochodu i odjadę. Grrrrr.

No to spadam do pisania...

« prev | next »