Настройка texmf в Linux

При изучении пакета для tex [[http://www.ctan.org/tex-archive/macros/latex/contrib/curve]] натолкнулся на проблему установки собранного пакета в [TEXMF] директорию, она была мне попросту неизвестна. Городить огород с собственноручно придуманными путями тоже не очень хотелось, но решение нашлось и оно оказалось достаточно простым.

Во-первых, необходимо воспользоваться утилитой //kpsepath//, которая идёт в комплекте с основной поставкой tex. Для удобства, я воспользовался командой //tr//, о которой рассказывал в [[http://blog.arkoniak.com/?p=221|Разделение строки на составляющие в шелле]]

{{{ lang=bash line=1
> kpsepath tex | tr “:” “\n”
/home/skoffer/.texlive/texmf-config/tex/kpsewhich//
/home/skoffer/.texlive/texmf-var/tex/kpsewhich//
/home/skoffer/texmf/tex/kpsewhich//
!!//etc/texmf/tex/kpsewhich//
!!//var/lib/texmf/tex/kpsewhich//
!!/usr/share/../local/share/texmf/tex/kpsewhich//
!!/usr/share/texmf-site/tex/kpsewhich//
!!/usr/share/texmf-dist/tex/kpsewhich//
/home/skoffer/.texlive/texmf-config/tex/generic//
/home/skoffer/.texlive/texmf-var/tex/generic//
/home/skoffer/texmf/tex/generic//
!!//etc/texmf/tex/generic//
!!//var/lib/texmf/tex/generic//
!!/usr/share/../local/share/texmf/tex/generic//
!!/usr/share/texmf-site/tex/generic//
!!/usr/share/texmf-dist/tex/generic//
/home/skoffer/.texlive/texmf-config/tex///
/home/skoffer/.texlive/texmf-var/tex///
/home/skoffer/texmf/tex///
!!//etc/texmf/tex///
!!//var/lib/texmf/tex///
!!/usr/share/../local/share/texmf/tex///
!!/usr/share/texmf-site/tex///
!!/usr/share/texmf-dist/tex///
}}}

Этот достаточно длинный список и есть список путей, по которым //tex// ищет пакеты. Часть из них являются системными, часть – локальными. Многократные “/” на конце не случайны и означают, что поиск будет происходить на соответствующей глубине от корневого пути. Дело в том, что стандартный пакет устроен следующим образом
{{{
[TEXMF]/tex/latex//.cls
[TEXMF]/doc/latex//.pdf
etc…
}}}

Соответственно, если есть желание поставить пакет в “/usr/share/texmf-site”, то в конечном итоге пакет будет скопирован в
{{{
/usr/share/texmf-site/tex/latex//.cls
/usr/share/texmf-site/doc/latex//.pdf
etc…
}}}

Собственно говоря на этом и всё. Выбираем любой понравившийся путь из //kpsepath//, создаем при необходимости директории и копируем файлы пакета. После этого надо обновить хэш командой
{{{ lang=bash line=1
texhash
}}}

И маленькое замечание. В случае Gentoo, директория usr/share/texmf/// будет замещаться при обновлении пакета, поэтому туда лучше ничего не устанавливать.

Tagged , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *