Gentoo Logo

TeX Live 2008 w Gentoo

Spis treści:

1.  Odinstalowanie

Wstęp

W poniższym akapicie zostało założone, że użytkownik posiada zainstalowany pakiet >=app-text/tetex-3 . Opis odnosi się również do osób posiadających app-text/texlive-2005. W idealnym świecie powinno być to tak proste jak zwyczajne odinstalowanie pakietu, ale, na nieszczęście, nie jest.

Zapisywanie starej konfiguracji

Jeśli użytkownik zmodyfikował konfigurację tetexa poprzez edycję plików w /etc/texmf, to powinny one zostać gdzieś zapisane.

Listing 1.1: Zapisywanie starych plików konfiguracyjnych

$ cp -rf /etc/texmf ~/tetex-texmf

Usuwanie tetexa

Teraz możliwe jest bezpieczne usunięcie pakietu tetex:

Listing 1.2: Usuwanie tetexa

# emerge -C tetex

Zostały zgłoszone dziwne błędy pojawiające się w przypadku, gdy w /etc/texmf pozostały osierocone pliki konfiguracyjne. W celu przeprowadzenia bezpiecznej i czystej instalacji, zaleca się zatem usunięcie pliku /etc/texmf/texmf.d/00texmf.cnf:

Listing 1.3: Usuwanie /etc/texmf

# rm /etc/texmf/texmf.d/00texmf.cnf

Uwaga: Jeśli stare pliki konfiguracyjne zostały zapisane w bezpiecznym miejscu, użytkownik nie straci swoich ustawień.

Z powodu, że tetex korzystający z texlinks jest poza zasięgiem menadżera pakietów, zwykłe odinstalowanie pakietu pozostawi po sobie osierocone dowiązania symboliczne.

Listing 1.4: Osierocone dowiązanie tetexa

$ ls -l /usr/bin/pdftex
lrwxrwxrwx 1 root root 7 2007-07-09 07:34 /usr/bin/pdftex -> pdfetex

Oczywiście pdfetex został usunięty wraz z pakietem tetex, więc dowiązanie do tego pliku jest martwy. Może on zostać bezpiecznie usunięty. Polecenie find może pomóc w odnalezieniu martwych dowiązań, potrafi nawet je interaktywnie usunąć.

Listing 1.5: Usuwanie martwych dowiązań

# find /usr/bin -type l ! -xtype f ! -xtype d -ok rm -f {} \;

< rm ... /usr/bin/pdflatex > ? y
< rm ... /usr/bin/amstex > ? y
< rm ... /usr/bin/pdftex > ? y
< rm ... /usr/bin/eplain > ? y
< rm ... /usr/bin/jadetex > ? y
< rm ... /usr/bin/lambda > ? y
< rm ... /usr/bin/pdfamstex > ? y
< rm ... /usr/bin/elatex > ? y
< rm ... /usr/bin/lamed > ? y
< rm ... /usr/bin/pdfjadetex > ? y
< rm ... /usr/bin/latex > ? y

Są to pliki pozostałe po starej instalacji dystrybucji tetex.

Poza zasięgiem menadżera pakietów, tetex korzystał również z fmutil do generowania plików formatów. W TeX Live 2008 pliki te budowane są podczas kompilacji pakietów, które to pliki formatów zostaną zainstalowane w /var/lib/texmf. Oznacza to, że koniecznym jest sprawdzenie, czy nie pozostały tam osierocone pliki formatów"

Listing 1.6: Usuwanie osieroconych plików formatów

# rm -rf /var/lib/texmf/web2c

2.  Instalowanie TeX Live 2008

Po przejściu wymienionych wyżej kroków instalacja TeX Live 2008 powinna być bezproblemowa.

Listing 2.1: Instalacja TeX Live 2008

# emerge texlive

W teorii powinno pójść gładko i wszystko powinno się zainstalować poprawnie. W którymś momencie instalacji użytkownik może chcieć zmienić flagi USE, by zainstalować dodatkowe pakiety TeX-a, ale można to zrobić później. app-text/texlive jest tylko meta-ebuildem, który pociąga za sobą instalację normalnych pakietów w zależności od ustawionych flag USE.

Niemniej jednak, możliwe są problemy z zależnościami, błędy podczas instalacji pakietów i tym podobne. W takim przypadku należy zgłosić błąd na https://bugs.gentoo.org. Podczas zgłaszania błędu, należy załączyć przynajmniej wynik polecenia texconfig conf (ze względu na to, że niektóre zmienne środowiskowe mogą być istotne, uruchomionego przez tego samego użytkownika, któremu nie udało się zainstalować pakietu). Wynik tego polecenia z zasady będzie wymagany.

3.  Konfiguracja

Wstęp

tetex-3 i TeX Live w Gentoo posiadają trzy podstawowe pliki konfiguracyjne podzielone i zarządzane przez texmf-update. Te pliki to: texmf.cnf, fmtutil.cnf, updmap.cfg i znajdują się w /etc/texmf/web2c. Nie powinno się modyfikować tych plików ręcznie, ponieważ wszystkie dokonane zmiany zostaną stracone podczas kolejnego uruchomienia texmf-update.

texmf.cnf

Plik texmf.cnf jest głównym plikiem konfiguracyjnym dla zainstalowanego TeX-a. Zawiera w sobie różne zmienne definicje, z których korzysta mnóstwo programów.

Plik texmf.cnf jest efektem połączenia plików zawartych w /etc/texmf/texmf.d. By zmienić środowisko konfiguracji TeX-a, należy modyfikować pliki znajdujące się w wyżej wymienionej lokacji. W czasie gdy powstawał ten tekst, ebuild Gentoo TeX Live instalował tam sześć plików.

Listing 3.1: Pliki zainstalowane w texmf.d

00header.cnf
05searchpaths.cnf
10standardpaths.cnf
15options.cnf
20sizes.cnf
25misc.cnf

Jest to wynik podziału odpowiednich sekcji nieznacznie zmodyfikowanego pliku texmf.cnf z DVD TeX Live 2008.

Pliki 00header.cnf, 05searchpaths.cnf, 10standardpaths.cnf i 25misc.cnf nie powinny być modyfikowane. Jeśli domyślne ustawienia powinny zostać zmienione, należy zgłosić błąd.

Ostrzeżenie: Ebuildy TeX Live nie sprawdzają czy zostały zmienione ścieżki w wymienionych plikach, więc jeśli zostały zmienione przez użytkownika, powinien on mieć pewność co robi.

Pliki 15options.cnf i 20sizes.cnf mogą być ostrożnie modyfikowane. Komentarze zawarte w wymienionych plikach powinny wyjaśniać co oznaczają konkretne opcje. Na przykład, w 20sizes.cnf jest możliwość zwiększenia pamięci TeX-a, na wypadek kompilacji zbyt obszernego dokumentu i błędów TeX capacity exceeded, sorry.

Jeśli użytkownik życzy sobie, by zainstalować nieco dodatków w pliku texmf.cnf, może stworzyć nowy plik w /etc/texmf/texmf.d, nazwany, dla przykładu, 99myadditions.cnf. Ważne, by nie nadawać wyższego priorytetu stworzonemu przez siebie plikowi niż mają główne pliki konfiguracyjne. Własne pliki powinny mieć numer wyższy niż 25.

Pakiety, które potrzebują dodać coś do pliku texmf.cnf traktowane są w ten sam sposób. Powinny więc instalować się do pliku texmf.d.

Listing 3.2: Przykładowy kod do zainstalowania pliku texmf.d

insinto /etc/texmf/texmf.d
doins 40mytexmfadditions.cnf

updmap.cfg

Plik updmap.cfg jest plikiem konfiguracyjnym używanym przez updmap (i updmap-sys), w przypadku gdy nie określono innego pliku. Odpowiada on za wskazanie różnym sterownikom wyjścia TeX-a map czcionek do zaktualizowania.

Plik updmap.cfg w /etc/texmf/web2c jest efektem połączenia plików w /etc/texmf/updmap.d. Pierwszy plik, 00updmap.cfg instalowany przez app-text/texlive-core jest rezultatem uruchomienia updmap --syncwithtrees na drzewie texmf, które instaluje (właściwie jest to imitacja tego co zrobiłoby polecenie updmap --syncwithtrees, ale to jedynie techniczny szczegół).

Różne ebuildy TeX Live podczas instalacji czcionek dodają pliki do katalogu /etc/texmf/updmap.d. Gdy konieczna jest edycja tych plików w celu wyłączenia aktualizacji niektórych czcionek, lepszym rozwiązaniem jest po prostu usunięcie odpowiedniego pakietu.

Jeśli osobny ebuild próbuje dodać nowe mapy czcionek, powinien on zainstalować je w /etc/texmf/updmap.d i pozwolić, by zarządzał nimi texmf-update.

Ostrzeżenie: Czasami można zobaczyć w niektórych ebuildach czy instrukcjach instalacji dodatkowych pakietów zawierających czcionki updmap-sys --enable Map=mymap.map. O ile możliwe jest działanie tego polecenia za pierwszym razem, wszelkie poczynione zmiany zostaną cofnięte podczas kolejnego uruchomiania texmf-update.

Dobrym pomysłem na poradzenie sobie z tym jest stworzenie pliku, który zostanie zainstalowany w /etc/texmf/updmap.d oraz instalacja go w dystrybucji TeX-a, która wspiera narzędzie texmf-update:

Listing 3.3: Jak włączyć mapę czcionki

inherit latex-package
...
src_install() {
    ...
    if latex-package_has_tetex_3; then
        insinto /etc/texmf/updmap.d
        doins myfontmapconfig.cfg
    fi
    ...
}
...
pkg_postinst() {
    latex-package_pkg_postinst
    latex-package_has_tetex_3 || updmap-sys --enable Map=mymap.map
}

pkg_postrm() {
    latex-package_pkg_postinst
    latex-package_has_tetex_3 || updmap-sys --disable Map=mymap.map
}

Pliki znajdujące się w /etc/texmf/updmap.d powinny uznawać składnię updmap:

Listing 3.4: Fragment updmap.cfg wyjaśniający składnię

Możliwe są dwa wpisy: Map i MixedMap. Obydwa mają jeden dodatkowy argument:
nazwę pliku mapy. Linie MixedMap ("mixed" oznacza, że czcionka jest osiągalna
jako bitmapa lub obrys) nie będą używane w domyślnej mapie dvips jeśli
dvipsPreferOutline jest wyłączony. Nieaktywne pliki Map powinny być zaznaczone
jako "#! " (bez nawiasów), a nie tylko przez #.

fmtutil.cnf

Plik fmtutil.cnf zawiera informację o tym, jak zbudować plik formatu i jak nim zarządzać.

Plik fmtutil.cnf jest efektem połączenia plików znajdujących się w /etc/texmf/fmtutil.d. Różne ebuildy TeX Live instalują tam pliki. Pliki te dodają wsparcie dla plików formatu i tworzą dowiązanie symboliczne do odpowiadającego im silnika.

Listing 3.5: Framgent strony man fmtutil.cnf(5) wyjaśniający składnię

Plik fmtutil.cnf zawiera konfigurację dla fmtutil(8). Każda linia zawiera nazwę
formatu (na przykład, "tex", "latex", "omega"), nazwę silnika używanego przez
dany format (na przykład, "tex", "latex", "omega"), plik wzoru (na przykład,
language.dat, language.def) i inne argumenty (nazwa pliku .ini).

Pola są oddzielone spacją, a pełne linie mogą zostać zakomentowane za pomocą
znaku "#". Pole "plik wzoru" nie może zostać użyte do zdefiniowania pliku, który
ma zostać użyty podczas budowania formatu. Przekazuje on fmtutil, który plik
jest odczytywany podczas procesu budowania i ma efekt podczas użycia opcji
--showhyphen i --byhyphen. Jeśli format nie posiada informacji jak dostosować
dzielenie wyrazów, "-" może zostać użyty do ich wskazania.

Ebuildy TeX Live, które instalują plik fmtutil.d, instalują odpowiadające im pliki formatów w /var/lib/texmf/web2c i tworzą dowiązanie od formatu do silnika.

Warto wspomnieć, że gdy zostaną dodane pliki wspierające język, texmf-update zajmuje się dodaniem ich do pliku language.dat i zregenerowaniem plików formatów, tak by te wspierały nowo zainstalowany język.

Uaktualnianie konfiguracji

Teraz, gdy proces konfiguracji TeX Live jest jasny, użytkownik powinien móc przenieść zmiany dokonane na starej dystrybucji TeX-a do konfiguracji TeX Live.

4.  Powszechne błędy

Wstęp

W poniższym rozdziale przedstawiony zostanie skrót najbardziej powszechnych błędów i wyjaśnienie co poszło nie tak.

Format został zapisany w (pdf)etex

Czasami podczas instalacji niektórych pakietów wymagających latex, można spotkać się z błędem:

Listing 4.1: Format został zapisany przez pdfetex

---! //var/lib/texmf/web2c/latex.fmt was written by pdfetex

Powyższy błąd to wynik tego, że po starej instalacji dystrybucji etex pozostały niektóre pliki wymagane przez nią. W większości przypadków oznacza to, że użytkownik nie wykonał wszystkich kroków opisanych w niniejszym dokumencie, ze szczególnym naciskiem na rozdział Odinstalowywanie.

Wciąż możliwe jest szybkie naprawienie tego bez konieczności ponownej instalacji czegokolwiek. Należy uruchomić z uprawnieniami roota:

Listing 4.2: Usuwanie starych formatów

# rm -rf /var/lib/texmf/web2c
# texmf-update

Katalog formatów nie istnieje

Podczas instalacji texlive-latex, możliwe jest wystąpienie błędu:

Listing 4.3: Katalog formatów nie istnieje

fmtutil: format directory
`/var/tmp/portage/dev-texlive/texlive-latex-2008/work/texmf-var/web2c' does not
exist.

Najbardziej prawdopodobną przyczyną wystąpienia tego błędu jest zła konfiguracja. Należy spróbować uruchomić poniższe polecenie i uzyskać rezultaty identyczne z wymienionymi:

Listing 4.4: Definicja TEXMFMAIN

$ kpsewhich --var-value=TEXMFMAIN
/usr/share/texmf

Bardzo ważne jest od kiedy fmtutil szuka mktexdir w tej lokacji. Jeśli użytkownik osiągnie inny rezultat, wtedy fmtutil nie znajdzie mktexdir i w efekcie nie uda mu się utworzyć katalogu, w którym tymczasowo przechowuje skompilowane formaty.

Nie istnieje magiczne polecenie zdolne to naprawić. Należy zatem sprawdzić czy konfiguracja jest poprawna i czy w /etc/texmf/texmf.d nie pozostały osierocone pliki. Najczęściej jest to spowodowane istnieniem starego 00texmf.cnf i w efekcie niepoprawnymi ustawieniami dla pliku texmf.cnf. Należy cofnąć się do Rozdziału "Odinstalowywanie" i pamiętać, że po usunięciu lub modyfikacji pliku w katalogu /etc/texmf/*.d trzeba uruchomić polecenie texmf-update, aby zachować zmiany na aktualnym koncie.

Brakujące pliki .tex

Podczas instalacji texlive-latex (albo dowolnego formatu posiadającego wsparcie dla podziału wyrazów babel, można spotkać się z błędem:

Listing 4.5: brakujący bghyphen.tex

===========================================
Local configuration file hyphen.cfg used
===========================================

(/var/tmp/portage/dev-texlive/texlive-latex-2008/work/texmf-dist/tex/generic/ba
bel/hyphen.cfg (/usr/share/texmf/tex/generic/hyphen/hyphen.tex)
(/usr/share/texmf/tex/generic/hyphen/ushyphmax.tex)
(/usr/share/texmf/tex/generic/hyphen/dumyhyph.tex)
(/usr/share/texmf/tex/generic/hyphen/zerohyph.tex)
(/usr/share/texmf/tex/generic/hyphen/zerohyph.tex)
(/usr/share/texmf-dist/tex/generic/xu-hyphen/xu-bahyph.tex
(/usr/share/texmf/tex/generic/hyphen/bahyph.tex))
(/usr/share/texmf-dist/tex/generic/xu-hyphen/xu-bghyphen.tex
! I can't find file `bghyphen.tex'.
l.10   \input bghyphen.tex

Please type another input file name:
! Emergency stop.
l.10   \input bghyphen.tex

No pages of output.
Transcript written on latex.log.
Error: `pdftex -ini  -jobname=latex -progname=latex
-translate-file=cp227.tcx *latex.ini' failed

W takim przypadku należy sprawdzić, który plik language.dat jest używany:

Listing 4.6: odnalezienie language.dat

$ kpsewhich language.dat
/usr/share/texmf/tex/generic/config/language.dat

Plik ten jest automatycznie wygenerowany przez texmf-update, jako efekt połączenia plików language.*.dat znajdujących się w katalogu, w którym znajduje się również language.us (dla TeX Live 2008 pliki language.*.dat pobierane są z katalogu /etc/texmf/language.dat.d/). Powinien to być katalog /usr/share/texmf/tex/generic/config/. Należy więc sprawdzić, czy nie znajdują się tam inne pliki language.*.dat, niż te zainstalowane przez ebuildy dev-texlive/texlive-lang*. Każdy plik znajdujący się w tym katalogu oznacza, że użytkownik chce włączyć wsparcie podziału wyrazów dla konkretnego języka. Jeśli nie posiada się plików wspierających podział wyrazów spowoduje to, że pliki formatów zdolne do użycia dodatkowego podziału wyrazów wsparcia nie zbudują się.



Drukuj

Zaktualizowano 15 kwietnia 2009

Podsumowanie: Przewodnik ten opisuje sposób instalacji Tex Live 2008 w Gentoo, bardziej jako swoisty opis potrzebnych elementów, w przypadku gdy już posiada się zainstalowaną dystrybucję TeX-a. (na przykład tetex czy TeX Live 2005)

Alexis Ballier
Autor

Michał Laszuk
Tłumacz

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.