LaTeX, dot i pisanie inżynierki
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ę Oczywiście nad tym wszystkim \begin{table}, później zmniejszyć na powrót counter dla tabelek \addtocounter{table}{-1} i dopiero wsadzić zasadniczą tabelkę do \ttabbox.\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ć 2. Żeby mieć captiony dla tabel na górze, wystarczy dać 3. Paczka 4. 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 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.\counterwithout{table}{chapter} z paczki chngcntr
\floatsetup[table]{position=top} z paczki floatrow.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.\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.mwrep.cls (czyli klasa, jakiej używałem, zamiast standardowego reporta) z modyfikowanym.
19 III 2009 o 17:39
Popsuł Ci sie link do pracy – zapomniałeś dać http:// na początku.
19 III 2009 o 17:41
Poprawione.
A, i jeszcze o jednej rzeczy zapomniałem: robienie ładnych niebieskich linków przełącznikami do paczki pdftex.
19 III 2009 o 17:44
A co do pisania w LaTeXu. Mój wydział żadnego stylu nie udostępnia (o ile mi wiadomo), ale mimo to pisało mi się przyjemnie i nie wyobrażam sobie, że miałbym to pisać np. w OO.org.
19 III 2009 o 18:28
Dzię-ku-je-my! :-)
19 III 2009 o 19:33
Wielkie dzięki, przyda się, bo walczę aktualnie z tym samym :D
19 III 2009 o 20:05
Mariusz,
a wyobrażasz sobie siebie, z dzisiejszymi doświadczeniami, piszącego magisterkę w czymś innym niż LaTeX? Próbowałeś kiedyś zapanować nad stustronicowym tekstem z przypisami, zmieniającymi się grafikami, odwołaniami do innych stron i potężną bibliografią w kombajnie typu Open/MS/Neo/WhaverOffice? Już prościej walczyć ze stylami Politechniki.
A przy okazji, moja szkoła też chciała przeprocesować moją magisterkę plagiat.pl’em, i PDF jej wystarczył. Dziwne są wymogi twojej politechniki. Ale cóż, uczelnia techniczna ;)
l.
19 III 2009 o 20:11
@honey
Ja wyłączyłem openoffica po pierwszych pięciu minutach, bo po prostu jestem zbyt uzależniony od vima i markupowego stylu pisania czegokolwiek (oraz rzeczy typu grep), żeby być w stanie używać openoffica i styli odpalanych albo myszką, albo dziwnymi skrótami klawiaturowymi. Ale to jestem ja. Dla osób mniej zżytych z cmdlinem nie jest to już taki oczywisty wybór.
19 III 2009 o 20:11
Plagiat zdaje się „wciąga” goły tekst – nieważne skąd wyjęty. Tyle, że pani w dziekanacie może nie być dość rozgarnięta, żeby wyjąć tekst z PDFa.
Inna sprawa, że plagiat.pl nie jest żadnym „zabezpieczeniem”, bo wystarczy parę literówek, albo słynne już wstawianie znaczków pisanych cyrlicą, które wyglądają jak polskie (jest jakaś taka literka, ale ja nie znam rosyjskiego) w środek słów. Wizualnie nie do odróżnienia, a plagiat.pl głupieje.
Z drugiej jednak strony nie wyobrażam sobie zlecania pisania magisterki, czy robienie copy-paste z Internetu… To jak przyznanie się, że tak naprawdę to po studiach jest się takim samym debilem jak się było przed.
20 III 2009 o 00:40
Serio nadal nie poprawili tych błędów z Plagiata? :D Jako że pojawiła się konkurencja w postaci Plagiariusa panowie z Plagiata powinni się wreszcie streszczyć :P Ale nic to – jakie uczelnie, takie oprogramowanie.
20 III 2009 o 07:27
Przyznaję, że nie wnikałem jakoś mocno w działanie plagiat.pl, ale w ubiegłym roku moje drugie pół pisało pracę i wydaje mi się, że plagiat.pl wywalił się na literówkach. Praca była pisana w LaTeXu, zapisywana do PDF, który potem był jakimś programem eksportowany do Worda, bo się okazało, że uczelnia nic poza DOCem nie weźmie. Wspomniany program PDF->DOC zdaje mi się działał jakoś podobnie do OCR-a, ponieważ robił typowe OCRowe błędy (1 zamiast l itp.), stąd to, co trafiło na uczelnię było pełne literówek. Efekt – zdumiewająco nistki „plagiat-factor”.
Zresztą wydaje mi się, że dodanie funkcjonalności wyłapującej takie literówki wymagałoby nieco pomyślunku i wysiłku, więc pewnie ekipa plagiat.pl się do tego nie kwapi.
20 III 2009 o 10:03
@Radek: ale to bardzo proste.
Wystarczy policzyć ile razy użyty został każdy znak (bez wnikania jaki to znak) i porównać to z przeciętną częstotliwością występowania znaków w języku polskim. Np. jeśli student zamienił wszystkie literki „a” na coś co wygląda tak samo, to i tak taki znak będzie występować tak samo często (8%? dobrze pamiętam?). Dopiero z takich „prawdopodobieństw znaku” można składać litery i haszować zdania. Kilka linijek wystarczy dodać, a proste „hacki” studentek pedagogiki wykryje.
20 III 2009 o 10:51
Fakt. Swoją drogą sprytny sposób, chociaż nie wiem czy się nie wysypie na pracach lingwistycznych, albo ścisłych, gdzie różnorodność znaczków jest spora. Ja z kolei myślałem o jakimś porównywaniu ze słownikiem, na zasadzie podobnej do korekty błędów. To by rozwiązało w jakimś stopniu również problem literówek.
Ale oba rozwiązania wymagają włożenia trochę wysiłku i pomyślenia, a mam wrażenie, że ekipa plagiat.pl cały wysiłek i myślenie wkłada w to jak tu zarobić więcej kasy, a skoro klienci (czyt. uczelnie) się nie skarżą (albo skarżą, ale i tak używają plagiat.pl) to problem jest do olania.
20 III 2009 o 11:12
Nie wiem, czy uczelniom jakoś specjalnie zależy na wykrywaniu plagiatów… Zgadzam się, że dopóki nie ma konkurencji, a uczelnie i tak kupią produkt, to firma będzie siedzieć cicho. W każdym razie system można łatwo poprawić.
20 III 2009 o 11:15
Trudno mi ocenić na ile plagiaty to problem. Myślę, że cały ten system bardziej miał wykrywać kupowanie prac. Zdarzało się, że ktoś, kto pisał prace na zamówienie sprzedawał potem jedną pracę kilka razy. No i takie coś od razu zostanie przez system wykryte. Na koniec mała ciekawostka. W pracy mojej drugiej połówki znalazła się copy-pastnięta z Internetu przysięga Hipokratesa, której plagiat.pl nie zakwalifikował jako plagiat… Dziwne.
20 III 2009 o 12:00
Dzięki za link do graphviza/dota. Ujął mnie ten jego bardzo prosty system zapisu, coś czuję, że będzie mi się to przydawało w pracy do zestawiania prostych schematów algorytmów/dokumentowania „jak to działa”? Wolę zapisać relacje w postaci listy niż klikać i przeciągać rameczki (i nigdy nie przepadałem za UML-ami)
A co do latex-a, to:
sam pisałem w nim pracę (językoznawstwo) — trochę nietypowo, bo nie wykorzystałem podstawowego latechowego powera jakim są IMO wzory (niewiele wzorów w językoznawstwie), ale za to łączenie różnych alfabetów i różnych zasad przenoszenia wyrazów było banalnie proste. No i miałem chore uczelniane wymogi dotyczące objętości pracy, liczby wierszy per strona itp., a latex jest pod tym względem niesamowicie elastyczny.
Gdy dziołcha pisała magisterkę, to też próbowałem ją do .tex przekonać, ale koniec końców wylądowało to wszystko w .docx i prawdę mówiąc było to najlepsze rozwiązanie. Wszystko zależy od specyfiki pracy i wymogów formalnych.
27 VI 2009 o 15:43
Praca dyplomowa w LaTeXu (po polsku)
Na zakończenie studiów podyplomowych (o których może jeszcze kiedyś napiszę) musiałem przedłożyć pracę pisemną. Więc, w ramach kontynuowania szerszej tradycji, po raz kolejny podzielę się paczką z pełną zawartością.
Co [.[...]