Już od dłuższego czasu używam LaTeXa i bardzo sobie go chwalę. W sumie, myślę, że chyba nikogo kto miał przyjemność z tego narzędzia korzystać, nie trzeba przekonywać o jego licznych zaletach. W tym semestrze jeszcze częściej go używam, ze względu na sprawozdania z laboratoriów z miernictwa. Nie dbam o to jak to robią inni, ale ja sobie cenię estetykę dokumentów (trzeba się naprawdę postarać, żeby LaTeX coś złożył brzydko) i bardzo wygodne składanie wzorów matematycznych, tudzież wcale niezły system referencji. Jest jednak luka w funkcjonalności (oczywiście nie uważam, że to źle, przeciwnie) LaTeXa jaką odczułem przy okazji pisania wspomnianych sprawozdań, nie daje dobrego sposobu na generowanie wykresów. W tym miejscu z pomocą przychodzi GNU R.
GNU R stanowi bardzo dobre uzupełnienie dla LaTeXa, głównie dlatego, że i ten opiera się o napisanie paru linijek kodu na podstawie którego można wygenerować żądany wykres w jednym z kilku dostępnych formatów (między innymi svg, png). Można też po prostu wyświetlić ten wykres na ekranie. Jak dla mnie to świetna sprawa.
Prosty wykres to kwestia paru linijek, na przykład:
png(file="test.png", width=400, height=400) ib <- seq(50,300, by=50) delta <- c(5.7, 5.3, 3.68, 3.24, 3.30, 1.93) plot(ib, delta, xlab="Ib[mA]", ylab="Bład względny[%]") abline(6.45, -0.015)
W sumie wszystko właściwie widać. Określamy output (plik.png). Tworzymy dwie listy (ib i delta) które wykorzystamy jako współrzędne dla naniesionych punktów. W pierwszym przypadku użyta została funkcja seq(x,y, by=z), która zwraca tablicę elementów od x do y co z. W przypadku delta użyłem funkcji c(e1, e2, e3, ..., en), która po prostu tworzy tablicę z danych argumentów. W następnej linijce jest funkcja plot, która rysuje wykres z naniesionymi punktami, których kolejne współrzędne x są wzięte z ib, a współrzędne y z delta. Dalej znajdują się jeszcze opcjonalne wartości xlab i ylab zawierające opisy osi. Pominięto też parametr, którym można ustawić, by punkty były połączone łamaną. Na sam koniec rysuję prostą przy pomocy funkcji abline, która jest nieco nieintuicyjna ze względu na to, że przyjmuje wartość y dla x = 0 i współczynnik kierunkowy, niezależne od skali i przedziałów jakie będą przyjęte dla poszczególnych osi, ale w sumie to dobrze, że tak jest.
W wyniku przetworzenia takiego kodu otrzymamy coś takiego:

Jest to oczywiście kwestia gustu, ale jak dla mnie jest to rozwiązanie szybsze, wygodniejsze i łatwiejsze w modyfikacji od konkurencji, dajmy na to Microsoft Excel.
Oczywiście jest to bardzo mała cząstka możliwości tego narzędzia (szczerze mówiąc sam ledwo je poznałem ;)), można wygenerować całą masę fajnych wykresów (tu odsyłam do polecenia demo(graphics) w interpreterze GNU R, który pokaże kilka wykresów – takich już pro, nie to co ja wam zaserwowałem ;p – wraz z kodami źródłowymi). To by było na tyle, ale jednak tekst ten powstał jedynie po to by zasygnalizować, że taka zabawka istnieje i nie jest zbyt popularna, a przecież bywa dość przydatna.
Nagrywanie systemów plików złożonych z dużej ilości katalogów przy użyciu growisofs jest nieco kłopotliwe, bo jest dużo pisania, głównie przez ustawianie graft pointów. GNOME baker natomiast nie oferuje mi zbyt wielkiego pola do popisu, jeśli chodzi o konfigurację (jestem ślepy, czy naprawdę nie można wybrać, czy użyć Jolieta czy Rock Ridge?). Dlatego też, powodowany wrodzonym lenistwem, postanowiłem coś z tym zrobić.
Mianowicie napisałem prosty skrypt, który za nas załatwi graft pointy, a nawet sprawdzi, czy należy użyć opcji -Z czy -M. Powodowany wspomnianym lenistwem zmiana opcji odbywa się poprzez edycję skryptu (w przedstawionej wersji instaluje tylko rock-ridge). Składnia natomiast jest prosta. W argumentach wpisujemy nazwy katalogów(można spokojnie używać gwiazdki). Natomiast parametry "-f" i "-d" odpowiednio informują program, czy dane dalej parametry oznaczają pliki, czy katalogi(domyślnie katalogi). Jeśli podamy nazwę katalogu wśród plików, zostanie nagrana jego zawartość. Po wprowadzeniu polecenia program wydrukuje linię poleceń i poprosi o zatwierdzenie. Skrypt wymaga growisofsa i cdrdao, jest napisany dla archa (więc może być konieczność zmiany /dev/sr0 na odpowiednią dla twojego systemu ścieżkę). Kto chce, niech bierze:
#! /bin/bash
if [ -n "$1" ]
then
echo Burner, enter with names of wanted directories to burn on /dev/sr0 with rock-ridge, and with no joliet
else
isempty=`cdrdao disk-info --device /dev/sr0 | grep "CD-R empty" | grep "no"`
if [ "$isempty" == "" ]
then
echo -n "growisofs -Z=/dev/sr0 -R --graft-points " > .burnertmp
else
echo -n "growisofs -M=/dev/sr0 -R --graft-points " > .burnertmp
fi
isfile=0
for x in "$@"
do
case $x in
"-f") isfile=1 ;;
"-d") isfile=0 ;;
*) if [ "$isfile" == 1 ]
then
echo -n "\"`echo $x`\" " >> .burnertmp
else
echo -n "\"`echo $x`\"=\"`echo $x`\" " >> .burnertmp
fi ;;
esac
done
cat .burnertmp
echo
echo "Is that ok? If so press ENTER, CTRL+C to cancel"
read
chmod +x .burnertmp
./.burnertmp
rm .burnertmp
fi
Nadszedł czas na kolejną część opiewania rozwiązań niezależnych od GUI ;) W dzisiejszej notce będzie o składaniu tekstu bez interfejsu WYSIWYG( what you see is what you get), więc co za tym idzie - bez GUI przy pomocy języka LaTeX/TeX
O co w tym chodzi? To bardzo proste, mianowicie LaTeX będący z kolei nakładką na TeXa jest profesjonalnym, wolnym i wieloplatformowym systemem składu tekstu - pod tym względem takie programy jak OpenOffice.org Writer, czy MS Word to zabawki dla dzieci. Zacznijmy jednak od początku - poprawnej wymowy. Chodzi o to, że powinno się czytać Tech w z wiązku z tym, że owy zapis ma przypominać Τεχ - pierwszą sylabę słowa technologia w alfabecie greckim.
Gdy już sobie wyjaśniliśmy zupełne podstawy - przejdę do rzeczy - w czym LaTeX jest lepszy od standardowo używanych programów używanych do edycji tekstu. Według mnie największą siłą LaTeXa jest to, że my podajemy mu tekst i wskazówki, jak go obrobić, a on zajmie się resztą i po paru sekundach otrzymamy profesjonalnie złożony tekst w formacie DVI bądź PDF. Ponadto ma doskonałe wsparcie dla znaków diakrytycznych, dzięki czemu możemy pisać w każdym języku opartym o alfabet łaciński bez konieczności wklejania znaków, których nie możemy normalnie wpisać. Przykładowo, by uzyskać o-umlaut wystarczy wpisać \" o. Innym atutem LaTeXa jest sposób wstawiania wzorów matematycznych, myślę, że dużo lepiej jest napisać e=mc^{2} niż bawić się w nadawanie indeksu górnego , nie mówiąc już o długich ułamkach zwykłych( w OOo nie jest to zbyt poręczne - dużo klikania ;)).
Jeśli chodzi o wady... Mmmm... Chyba największą jest to, że trzeba się nauczyć parunastu "tagów" używanych do opisu dokumentu, moim zdaniem jest warto, bo po kompilacji otrzymujemy często taki tekst, jakiego byśmy nie stworzyli tak łatwo w Wordzie, czy OOo( tekst wygląda jak wyciągnięty z książki, więc będą złamania wyrazu na drugą stronę, itp). Może moja wiedza jest jeszcze czysto teoretyczna, bo nie miałem okazji jeszcze przetestować LaTeXa w jakimś większym tekście, ale myślę, że się nie zawiodę).