życie zabija powoli :)

 

13

stycznia

2010

Prosty makefile dla LaTeX

Make, jak wiadomo, potrafi zautomatyzować wiele operacji związanych głównie z kompilowaniem oprogramowania. Ale nie tylko. Make (z pewnymi zgrzytami) można wykorzystać do budowania dokumentacji LaTeX.

Cały problem polega na specyfice make, które rekompiluje projekt w oparciu o daty modyfikacja jego składowych (gdy są nowsze niż końcowy plik). No i trochę na specyfice LaTeX, które generuje mnóstwo plików pomocniczych nie będących bezpośrednio zależnościami.

Bez owijania w bawełnę:

OPTS=-recorder -file-line-error -halt-on-error -interaction=errorstopmode -shell-escape 
PDFLATEX=@nice -n 19 pdflatex

default: all

clean:
        @rm -vf *.toc *.idx *.out *.aux *.ind *.ilg *.pdf *~ *.log *.fls *.rtf *.dvi
        @echo "CLEAN"

%.pdf : %.tex 
        ${PDFLATEX} ${OPTS} $< 
        ${INDEX} $* 
        @echo "pass2" 
        ${PDFLATEX} ${OPTS} $< 
        @echo "pass3"
        ${PDFLATEX} ${OPTS} $< 

moje_testy: plik1.pdf plik2.pdf

dokumentacja: dokumentacja.pdf testy.pdf

all: dokumentacja moje_testy

Jak się tego używa? Po pierwsze musimy ustalić jak nazywa się nasz plik dokumentacji. Dajmy na to że jest to plik.tex. pdflatex zrobi z niego plik.pdf. Robimy do pliku wpis

plik : plik.pdf

i ... w sumie tyle :] Teraz wystarczy tylko

make plik

i tworzy się dokumentacja.

Resztą zajmie się regułka zapisana w liniach

%.pdf : %.tex 
${PDFLATEX} ${OPTS} $<
${INDEX} $*
@echo "pass2"
${PDFLATEX} ${OPTS} $<
@echo "pass3"
${PDFLATEX} ${OPTS} $<


Która robi kolejno :

Dlaczego trzy razy pdflatex ? Jest to konieczne w sytuacji gdy używamy tabelek w dokumentacji oraz indeksu (generowanego przez makeindex z pliku utworzonego po pierwszym przebiegu pdflatex), konieczne jest kilka przebiegów pdflatex.

Aby sobie oszczędzić dodatkowe 0.5 sekundy wysiłku można zmodyfikować linijkę :

all: plik

co poskutkuje tym, że po wpisaniu samego make (bez parametrów) zrobi nam "plik.pdf" .

 
 

25

kwietnia

2009

Jak zacząć z latex?

Na początek jak zrobić minimalny poprawny dokument:

otwieramy edytor tekstowy i piszemy co następuje


\documentclass{minimal}
\begin{document}
\end{document}

Na tym etapie nieistotne jest w czym napisaliśmy ten plik. Ale wkrótce będzie to ważne. Zapisujemy plik jako np dokument.tex

Na początek możemy spróbować skompilować dokumentację, poleceniem

pdflatex dokument.tex

, lub jeżeli mamy jakiś edytor z obsługą LaTeX, szukająć w menu polecenia „PdfLatex”.


Powinien wygenerować się nam pusty dokument w formacie pdf.

Jeżeli nie – nasza instalacja texlive/miktex jest niekompletna.

Dopiszmy teraz między linie \begin i \end dowolną treść, najlepiej z polskimi znaczkami.


\documentclass{minimal}
\begin{document}
Zażółć gęślą jaźń
\end{document}



Tutaj pojawia się problem – latex może nie zgadnąć w jakim kodowaniu podaliśmy mu tekst. Po wygenerowaniu w pliku pdf mogą być „krzaki” zamiast polskich znaków ( jeżeli nie było, masz farta, ale przed problemem daleko nie uciekniesz ;-) ) .

Dlatego też dopiszmy do pliku, pod pierwszą linią następujące polecenia :

\usepackage[cp1250]{inputenc}
\usepackage[T1]{fontenc}

, lub

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}


Wpisy te ustalają wejściowe kodowanie cp1250 (używane domyślnie w windows), lub utf8 (domyślne na większości nowoczesnych dystrybucji linuksa). Wtedy pdflatex wie z jakim kodowaniem ma do czynienia.

W razie wątpliwości – Jeżeli piszesz pod windows w notatniku, lub innym windowsowym edytorze który nie pozwala wybrać kodowania przy zapisie – spróbuj dodać wpis z cp1250. W przeciwnym razie zapisuj pliki w kodowaniu utf8 i używaj utf8.

Drugi wpis ustala kodowanie czcionki która zostanie wykorzystana w pliku pdf, na ogół wystarcza podanie T1, dla większości europejskich języków.

Oczywiście kodowań jest więcej, ale te dwa są najczęściej spotykane (w okolicach Polski).


Wygenerujmy plik pdf jeszcze raz. Łatwo zauważyć że wizualnie nie wygląda zbyt imponująco. To dlatego że użyliśmy stylu minimal aby ograniczyć ilość komend (na początek)


Jako pracę domową, proponuję zrobić kilka plików, i sprawdzić jak ilość pustych linii w tekście wpływa na jego układ na końcowym dokumencie pdf.

ps. Kolejny wpis juz wkrótce.

 
 

06

kwietnia

2009

Pandoc – narzedzie do konwersji plików tekstowych

Dzisiaj przypadkiem odkryłem programik o nazwie pandoc. Potrafi on konwertować pliki z różnych formatów między sobą, np latex, markdown, html, „goły” txt, w praktycznie każdej kombinacji.


Szczególnie ciekawa jest możliwość łatwego skonwertowania gołego tekstu do latex lub, coraz bardziej mnie interesującego formatu Markdown.


Link do strony projektu – KLIK. Z tego co widzę programik jest dostępny w AUR archlinuksa, być może dla innych dystrybucji też się znajdzie.


Niestety takie konwertery na ogół wykładają się na „ambitniejszych” konstrukcjach w LaTeX (jak niektóre stosowane u mnie), więc przydatne będą dla ludzi piszących prostszą dokumentację lub krótkie notki. Programik na pewno przyda się początkującym użytkownikom Markdown lub LaTeX, oraz tym którzy nigdy nie pamiętają jak się pisze podstawowy nagłówek dokumentu (ja też nigdy nie pamiętam).

Zakładam tu, że pandoc jest w miarę stabilny na prostych plikach, bo przetestowałem tylko kilka prostych przykładów.

 
 

30

października

2008

LaTeX, part0 – zanim cokolwiek zacznę.

Zanim mialem zaczac pisac o uzywaniu systemu skladu tekstu LaTeX, (pare tekstow juz sie szykuje do zamieszczenia) walczylem z jednym skomplikowanym problemem z uzywaniem tej dokumenacji. W koncu udalo mi sie go zwalczyc i moge zaczac opisywac co do tej pory udalo mi sie poznac na temat tego systemu.
Na poczatek proponuje siasc przy jakims komputerze z dostepem do sieci i zaopatrzyc sie w odpowiednie oprogramowanie :


Linux : texlive (obowiazkowo, praktycznie kazda popularna dystrybucja oferuje pakiety texlive w swoim zestawie) + edytor texmaker lub kile lub vim (sam lub z dodatkiem vim-latex aka latexsuite) lub inny wygodny edytor tekstu.


Windows : MikTeX (wystarczy zainstalowac Net Installer jezeli ma sie staly dostep do sieci – dodatkowe elementy systemu beda dodawane gdy beda potrzebne. W przeciwnym razie proponuje sciagnac sobie kompletna instalacje texilve na cd/dvd). Jako edytor polecam lED, notepad++ tez sie nadaje. Generalnie co komu pasuje, nawet i zwykly notatnik z windows moze byc :]


Stosuje LaTeX do generowania dokumentow w formacie PDF i na tym bede sie skupiac w opisach. Niektore zastosowane rozwiazania nie dzialaja przy generowaniu dokumentow w innym formacie.


Tak czy siak, dokladniejszy opis instalacji przedstawie za pare dni, gdyby ktos mial klopoty. Na razie tylko naswietlenie wymaganego oprogramowania do pracy.

 
 

25

marca

2008

texnik

Tak sobie myślę że chyba zacznę skrobać w osobnej kategorii o LaTeX, bo ostatnio dużo się uczę w tej kwestii. Tak więc zacznę od założenia stosownej kategorii na ten temat i będę coś o tym skrobać, jak czas i lenistwo pozwoli.

 
 

25

marca

2008

texmfind

Głównym problemem gentoo jest to że nie można ustalić jakie pliki będzie zawierać pakiet po zbudowaniu i instalacji, wszystko zależy bowiem od mnóstwa czynników.


Paczki texlive są pod tym względem stosunkowo jednolite, w związku z czym stworzono narzędzie o nazwie texmfind dzięki któremu można namierzyć pakiet który zawiera ten jeden poszukiwany moduł TeX’a który akurat jest nam potrzebny. Sam pamiętam ile szukałem pakietu texlive zawierającego fancyhdr czy isodateo. Nawet w ubuntu było to prostsze, bo tam można przeszukiwać także nie zainstalowane pakiety (wiadomo – urok binarek).


Oczywiście na upartego można było korzystać z mpm do instalacji pakietów TeX z repozytoriów MikTeX, ale tymi pakietami portage/paludis nie zarządza i możemy zrobić sobie śmietnik.


Powinno być w portage, opis : klik

 
 

Miniblog

14 września 2011, 22:19:53 | klucz ssh na gitorious |

Od niedawna przyłapałem się na tym że na gitorious.org przestał działać mój klucz ssh. Próba ponownej instalacji klucza powodowała jego odrzucanie ( " ssh key invalid " ).

Problem polega na tym ze zamiast user@host na końcu klucza trzeba wpisać swój email jaki podaliśmy przy rejestracji w gitorious.org. Być może problem nie dotyczy wszystkich, ale u mnie było to jedyne działające rozwiązanie.

04 lipca 2011, 12:48:34 | Tunelowanie esx po ssh |

Szybka notatka na przyszłość; aby wbić się na serwer ESX za pomocą vSphere poprzez tunel SSH, trzeba przeforwardować porty 443, 902, 903 oraz dodać wpis do hosts postaci

127.0.0.1 esxhost

bez tego nie pójdzie. Posiadanie wpisu określającego 127.0.0.1 jako "localhost" też z jakiegoś powodu nie wystarcza i dostaje się tajemnicze informacje o nieprawidłowym hoście, braku łączności itp.

02 sierpnia 2010, 20:12:02 | [mini] nietypowy problem CUPS |

ERRDOS - ERRbadaccess 
(Invalid open mode.) opening 
remote spool Test Page

W takiej sytuacji należy w windows w wlaściwościach drukarki odznaczyć "drukuj bezpośrednio na drukarkę". Dziwne, ale zostawię to sobie tutaj na przyszłość.