Pokazywanie postów oznaczonych etykietą latex. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą latex. Pokaż wszystkie posty

środa, 7 maja 2008

Dodanie nowej klasy .cls do Lyx'a

Jeśli ktoś nie pamięta opisywałem jakiś czas temu program Lyx, służący do generowania dokumentów latexowych przy pomocy edytora bardzo zbliżonego do tego do czego zdążył nas przyzwyczaić Word czy OpenOffice Word Processor.
Dziś pokaże jak w prosty sposób dodać nową klasę latexową do programu. Wszystko w sumie zaczęło się od tego, że nie podobało mi się jak formatowana była moja praca magisterska. Zastosowałem standardową klasę book i moja praca, po wygenerowaniu pdf'a, wyglądała mniej więcej tak:


Niezadowolony wynikami poszperałem trochę sieć i znalazłem stronę, na której autor (Cezary Sobaniec) udostępnił na niej ciekawą klasę csthesis, która jak sama nazwa wskazuje przygotowana była do tworzenia informatycznych prac magisterskich.

A więc teraz pytanie jak taką klasę zainstalować? Coż przepis jest krótki:

  1. ściągnąć plik z klasą, w moim przypadku csthesis.cls i zapisać go w defaultowym katalogu latex'a (w moim przypadku był to katalog /usr/share/texmf/tex/latex/, jesli masz Ubuntu i instalowałeś Latexa przez apt-get to Twój katalog znajduje się właśnie pod tą ścieżką. Jeśli masz Windowsa, cóż radź sobie sam :). Nie wiem gdzie tam poinstalowany jest twój latex :) )
  2. ściągnąć plik z layoutem, w moim przypadku csthesis.layout i zapisać go w podkatalogu lyx'a - layouts. W moim przypadku ścieżka prowadziła do ~/lyx/layouts/
  3. w linii komend uruchomić komendę ‘texhash’
  4. przejść do lyxa, wybierać Tools > Reconfigure, po czym zrestartować program
I to tyle! Wystarczy aby cieszyć się nową klasą, która oczywiście do wyboru jest w Document->Settings->Document class. Po zmianie klasy w mojej pracy magisterskiej z book na csthesis, wygenerowany pdf wygląda teraz tak:



I nie wiem jak dla Was, ale dla mnie wygląda to o wiele lepiej.

Na końcu chciałem poruszyć jeszcze jedną sprawę. Jeśli posiadacie tylko plik z klasą (.cls), utworzenie podstawowego layout jest rzeczą szalenie prostą. Najłatwiej utworzyć nowy dokument tekstowy, wkleić poniższy tekst (zastępując xxx nazwą waszej klasy latexowej) i zapisać jako xxx.layout:

--- xxx.layout
#% Do not delete the line below; configure depends on this
# \DeclareLaTeXClass[xxx]{article (xxx)}

# Input general definitions
Input stdclass.inc

I to wszystko już na dziś. Mam nadzieję, że kogoś zainteresowałem już wcześniej programem lyx. Jeśli tak, dzisiejszy post powinien być przydatny. A teraz wracam już do mojej pracy magisterskiej, odliczanie wciąż trwa...

23 days left...

środa, 23 kwietnia 2008

Lyx czyli LaTeX inaczej



Jest taki projekt, który przyszło mi zacząć kodować jakoś rok temu. Projekt nawet interesujący, nie mały, choć też przesadnie nie duży (obecnie już ponad dwanaście tysięcy linii kodu i wciąż rośnie), ale wyróżnia go coś od innych projektów informatycznych, z którymi zetknąłem się wcześniej.

Mianowicie:

  • gdy go zacząłem był dla mnie inspiracją, powodował ogólne poczucie samospełnienia zawodowego
  • teraz bywają dni, że ledwo mogę na niego patrzeć
  • mimo, że siedzę nad nim prawie codziennie, nikt mi za niego nie zapłaci
  • dokumentacja jest nietypowa i balansuje na pograniczu pseudonaukowych wywodów a laniu wody
Jeśli jeszcze się nie domyśliłeś z czym przyszło mi się zmierzyć, pozwól, że oświecę (ku przestrodze) - piszę obecnie moją pracę magisterską.
Samo kodowanie nie jest aż tak straszne, gdyż program sam w sobie jest ciekawy i klepanie kodu nie dostarcza zbyt wielkich cierpień - jest nawet "przyjemne", jeśli można to tak określić. Problem pojawia się z nieszczęsnym dokumentem, który stanowić ma o 6 literkach przed moim nazwiskiem (mgr inż.). Nie będę tutaj opisywał ile wewnętrznej siły musiałem zebrać w sobie, żeby się zabrać do pisania (może innym razem), opowiem za to o ciekawym narzędziu, które pomaga mi przetrwać w tym bolesnym dla mnie okresie, jakim jest pisanie pracy magisterskiej. Mowa tu o programie Lyx.

Jeśli zrobimy mały research to okaże się, że większość książek, artykułów, publikacji i innych takich pisze się w pewnym ustandaryzowanym formacie zwanym LaTeX. Piękno latexa polega na tym, iż nie formatujemy tekstu. Idea jaka stoi za latexem jest podobna do połączenia xml z xslt. Pisząc na przykład książkę, mówię, że dany fragment tekstu to paragraf, dany fragment tekstu to tytuł rozdziału a jeszcze inny fragment to na przykład cytat. Później mam odpowiednie pliki (tak zwane klasy), które formatują nam dany tekst, przy generowaniu go do na przykład do pdfa. Jedna klasa może spowodować, że paragraf będzie miał odpowiednie wcięcia, tytuł rozdziału pogrubiony a cytat napisany będzie kursywą. Nie podoba mi się wyjściowy plik? Mogę użyć innej klasy, gdzie inaczej sformatowany będzie paragraf, tytuł rozdziału będzie na przykład podkreślony a cytat wyjustowany do prawej strony. Samego tekstu nie zmieniam, podmieniam tylko klasy go formatujące.
Dodatkowo LaTeX zadba o odpowiednie numerowanie rozdziałów i podrozdziałów, automatycznie wygeneruje nam spis treści, spis tabel i rysunków, utrzyma spójność nazewnictwa rysunków, zadba o poprawne podanie bibliografii. Po prostu ideał! A więc w czym tkwi problem? Ano w tym, że pisząc dokument w jakimkolwiek edytorze latex'owym wygląda to tak:



Niezbyt zachwycająco prawda? Kiedy zabierałem się za początki pisania mojej pracy magisterskiej, byłem w stanie odrzucić wszelkie plusy jakie niósł ze sobą latex byle tylko nie babrać się w czymś takim. I kiedy już miałem otwierać nowy dokument w openoffice coś mnie tknęło i postanowiłem na wszelki wypadek zrobić searcha pod hasłem "latex" w repozytorium programów na moim Ubuntu. Wtedy właśnie poznałem Lyx'a.

Lyx jest programem, w którym piszemy dokumenty LaTeXa (przez co możemy korzystać ze wszystkich uroków tego formatu opisanych wcześniej), ale interfejs użytkownika zbliżony jest bardzo do edytorów tekstu do jakich przyzwyczaiły nas M$ Office czy OpenOffice. Zatem mamy pełen zakres udogodnień jakie daje nam LaTeX przy praktycznym zniwelowaniu jego minusów.

Oto jak wygląda Lyx w działaniu (z kawałkiem mojej pracy magisterskiej ;) )

A tak wygląda wygenerowany pdf przy zastosowaniu klasy latexowej "article-polish":


Widać bardzo ładnie. I nie musze dbać tutaj o marginesy, spis treści, bibliografię i inne takie. Wszystko to generowane jest za mnie, automatycznie dopasowując się do zmian pojawiających się w dokumencie i tak dalej. Po prostu bajka!

Dlatego jeśli w przyszłości zamierzasz pisać pracę magisterską, książkę czy cokolwiek w tym stylu, a nie chcesz męczyć się z karkołomnym LaTeX'em, gorąco polecam program Lyx. Jest darmowy (open sourcowy o ile się nie mylę) i co najważniejsze działa na wszystkich platformach (Windows, Linux, Solaris), choć nie napisano go w Javie ;) Raz jeszcze gorąco polecam.

A teraz wybaczcie, idę pisać pracę magisterską...