2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Как добавить "левый" пакет
Сообщение11.05.2014, 15:22 
Заслуженный участник
Аватара пользователя


31/01/14
11305
Hogtown
Выясняется, что даже вполне грамотные пользователи, которые знают как можно сделать многие вещи в ТеХ, не знают как можно подключить "левый" пакет, т.е. либо пакет который не входит в distribution или пакет, который в него входит, но имеется другая версия этого пакета и ее надо использовать. Поскольку я не слишком знаком с Windows и MikTeX я опишу только UNIX (включая Mac OS X) и следовательно только TeXLive (для Mac OS X рекомендуется MacTeX который является улучшенной адаптацией TL применительно к Mac OS X).

ТеХ устанавливается в UNIX в

Код:
/usr/local/texlive


который выглядит примерно так:

Код:
drwxr-xr-x  20 root  wheel  680 17 Apr 04:23 2013
drwxr-xr-x  20 root  wheel  680 11 May 04:56 2014
drwxr-xr-x  11 root  wheel  374 11 May 06:21 texmf-local


У Вас могут быть другие годы. 2013 и 2014 отвечают distributions (можно иметь несколько, но использовать в данный конкретный момент можно только одно. Какое? Смотрим /usr/local/texlive/2013/bin/ видим там x86_64-linux и /usr/local/texlive/2013/bin/x86_64-linux должен быть в Вашем path: т.е. на запрос в терминале
$which latex
ответ д.б.
/usr/local/texlive/2013/bin/x86_64-linux/latex

Ни мы ни системный администратор 2013 или 2014 трогать не должны, там распоряжается tlmgr (вообще-то он распоряжается в действующем 2013 (или в пререлизе 2014); он сам -- сидит в /usr/local/texlive/2013/bin/x86_64-linux/ (на самом деле там link
../../texmf-dist/scripts/texlive/tlmgr.pl но это неважно)

А вот /usr/local/texlive/texmf-local он для системщика. Смотрим, что там:

Код:
drwxr-xr-x.  4 texlive math  4096 Aug 12  2013 bibtex
drwxr-xr-x.  6 texlive math  4096 Aug 12  2013 doc
drwxr-xr-x.  3 texlive math  4096 Aug 12  2013 dvips
drwxr-xr-x. 10 texlive math  4096 Aug 12  2013 fonts
-rw-r--r--   1 texlive math 15595 Apr 24 11:17 ls-R
drwxr-xr-x.  3 texlive math  4096 Aug 12  2013 metapost
drwxr-xr-x.  5 texlive math  4096 Jan 25  2012 src
drwxr-xr-x.  5 texlive math  4096 Aug 12  2013 tex
drwxr-xr-x.  2 texlive math  4096 Aug 12  2013 tlpkg
drwxr-xr-x.  2 texlive math  4096 Aug 12  2013 web2c

и вот в tex/latex он засунет пакет, а в doc/latex документацию, а в src для порядка всякие dtx и ins файлы. Действовать он будет культурно: в каждой из указанных директорий он создаст поддиректорию mypac где mypac название пакета, и туда сложит подходящие файлы.

После этого он прогонит texhash (on же mktexlsr). И все!

Ну, а как же отдельный пользователь? А точно также: у себя в домашней директории ~ он создаст поддиректорию texmf , в ней tex и doc, в каждой из них latex, и в них он установит пакеты и документацию соответственно. texhash гнать не надо.
В MacTeX texmf надо создавать в ~/Library, а не в ~

Допустим что у Вас есть

Код:
\usepackage{crazy}

(такой вызов может исходить также из другого пакета или даже документкласса)

Тогда латех сначала ищет его (crazy) в "пользовательском дереве" ~/texmf, потом в "локальном дереве", и только потом в общем. Поэтому если в пользовательском дереве застряла древняя версия какого-либо пакета, использоваться будет она. То же касается и локального дерева. Т.ч. время от времени проверяйте: не следует ли обновить левый пакет -- или вообще удалить его.

Да, конечно, всегда можно уронить пакет в папку. где лежит tex файл, над которым Вы работаете, и тогда будет загружаться именно эта версия, но это делать следует только если этот пакет или версию пакета Вы используете только сейчас.

Dixi! ВСЕ! Про Windows пусть пишет, кто знает

 Профиль  
                  
 
 Re: Как добавить "левый" пакет
Сообщение11.05.2014, 17:58 


29/09/06
4552
Red_Herring в сообщении #861742 писал(а):
т.е. на запрос в терминале
$which latex
ответ д.б.
/usr/local/texlive/2013/bin/x86_64-linux/latex

А у меня ответ /usr/bin/latex. А устанавливал всё Synaptic (ubuntu 12.04 LTS).

 Профиль  
                  
 
 Re: Как добавить "левый" пакет
Сообщение11.05.2014, 18:50 
Заслуженный участник
Аватара пользователя


31/01/14
11305
Hogtown
Алексей К. в сообщении #861826 писал(а):
Red_Herring в сообщении #861742 писал(а):
т.е. на запрос в терминале
$which latex
ответ д.б.
/usr/local/texlive/2013/bin/x86_64-linux/latex

А у меня ответ /usr/bin/latex. А устанавливал всё Synaptic (ubuntu 12.04 LTS).


Правильно, это случается когда TeX от поставщика (Ubuntu, Fedor, RHEL, др). (на самом деле, он построен на основе TeXLive за один из прошедших годов; в свое время был еще teТeХ но в 2006 он закончился). У нас в Департаменте то же самое, но поскольку этот TeX не обновляется, то наши системщики устанавливают TeXLive — раз в год—и время от времени обновляют пакеты с помощью tlmgr. Я думаю, что так лучше (в течение ряда лет, хоть я и не сисадмин и даже не ИТ, этим занимался я; RHEL вообще страшно консервативен и поэтому считается "надежным"). Любители старины могут использовать ТеХ от поставщика. Тут главное—какой path у пользователя. Тот tex который в path первый и будет использоваться.

Кстати, в терминале запустив pdflatex --version узнаете много интересного.

Но кто Вы такой? Если не системный администратор то где texmf-local Вас интересовать не должно (в том смысле, что на его содержимое Вы не повлияете). (Но если Вам интересно, то он, скорее всего в /usr/local/share/texmf-local). Вы у себя в ~/texmf полный хозяин, а пакет ищется в первую очередь там (на самом деле в "нулевую" очередь пакет ищется в ".").

 Профиль  
                  
 
 Re: Как добавить "левый" пакет
Сообщение11.05.2014, 19:34 


29/09/06
4552
Red_Herring в сообщении #861867 писал(а):
Кстати, в терминале запустив pdflatex --version узнаете много интересного.

Red_Herring,
ну просто ничего интересного не узнал: :-)
Код:
ak@HOME:~/SharedFolderVM/KKK$ pdflatex --version
pdfTeX 3.1415926-1.40.10-2.2 (TeX Live 2009/Debian)
kpathsea version 5.0.0
Copyright 2009 Peter Breitenlohner (eTeX)/Han The Thanh (pdfTeX).
There is NO warranty.  Redistribution of this software is
covered by the terms of both the pdfTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the pdfTeX source.
Primary author of pdfTeX: Peter Breitenlohner (eTeX)/Han The Thanh (pdfTeX).
Compiled with libpng 1.2.46; using libpng 1.2.46
Compiled with zlib 1.2.3.4; using zlib 1.2.3.4
Compiled with poppler version 0.18.2

Завтра буду угощать коллег обедом (ну типа раз в месяц примерно угощаю, вместо столовки)... Ни один из пятерых не нажмёт --version, чтобы узнать, --- щавель прошлогодний, или уже свежий, сколько хлеба в котлетах, добавлял ли яйца в фарш. Им до лампочки, будет ли соус к спагетти из лечо-консервов, или из живых паслёновых (+лук поджарю, ясен пень). Лишь бы реально вкусно.

Примерно так же и я с Латехом взаимодействую, лет 20... или 25... неужели 30?

(Оффтоп)

Когда я жил в общаге, на обеды забегал и Васька Малышев. Ну, Вы, наверное, знаете, кто такой.

 Профиль  
                  
 
 Re: Как добавить "левый" пакет
Сообщение11.05.2014, 19:59 
Заслуженный участник
Аватара пользователя


31/01/14
11305
Hogtown
Алексей К. в сообщении #861890 писал(а):
ну просто ничего интересного не узнал

и один из пятерых не нажмёт --version, чтобы узнать, --- щавель прошлогодний, или уже свежий, сколько хлеба в котлетах, добавлял ли яйца в фарш


Вот если кого пронесет, то тогда и заинтересуется… У меня несколько месяцев назад был случай: у меня компилируется, а на arXiv нет. Undefined macro. Выяснилось: у меня более поздний (2013 против 2011) и полный puenc.def и пока я не ввел отсутствующие макро, то на arXiv не компилировался.

Другой, более серьезный прокол: когда gnuplot обновился, он перестал слушаться pgf/tikz и пришлось устанавливать бету pgf/tikz.

Кстати, TL приходит с большим количеством исполняемых файлов, вроде бы не ТеХнических. Например asy или dvisvgm или kpsewhich.

Старый tex=> старые пакеты (если Вы вручную их не обновляли) и меньше их (если Вы вручную их не добавляли) => старые баги (и отсутствие новых)

 Профиль  
                  
 
 Re: Как добавить "левый" пакет
Сообщение20.12.2015, 23:39 


13/07/14
257
Код:
kpsewhich --var-value=TEXMFHOME
из TeXLive позволяет узнать, где есть или надо создавать ~/texmf.

Вот небезызвестный pscyr простым копированием не поставить. Как в принципе и любой другой пакет, который связан со шрифтами. Нужно обновлять базу данных шрифтов (updmap-sys, если не ошибаюсь), но после этого возникает сообщение, что с этого момента приётся каждый раз при обновлении выполнять такую процедуру.
Получится ли после удаления такого пакета из ~/texmf вернуть всё как было?

 Профиль  
                  
 
 Re: Как добавить "левый" пакет
Сообщение20.12.2015, 23:54 
Заслуженный участник
Аватара пользователя


31/01/14
11305
Hogtown
updmap-sys это если у Вас шрифт "для всех" т.е. либо в /usr/local/texlive/2015/texmf-dist/fonts (и т.д.) либо в /usr/local/texlive/texmf-local/fonts

Для ~/texmf работает udmap

NAME
updmap − manage TeX font maps, per-user
updmap-sys − manage TeX font maps, system-wide


Код:
% texdoc updmap

 Профиль  
                  
 
 Re: Как добавить "левый" пакет
Сообщение21.12.2015, 00:44 


13/07/14
257
О! Там написано
Цитата:
As a consequence, once updmap has been run, even a single time, running updmap−sys no longer has any effect.
А updmap−sys запускается каждый раз после апдейта через tlmgr. Получается, что однажды поставив левый юзерский пакет, связанный со шрифтами, каждое обновление для верности придётся проводить updmap.

 Профиль  
                  
 
 Re: Как добавить "левый" пакет
Сообщение21.12.2015, 00:59 
Заслуженный участник
Аватара пользователя


31/01/14
11305
Hogtown
Если я правильно помню, то установив pk шрифты в юзерскую директорию я смог их использовать без udpmap

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group