
В TeX Live есть предопределенные TEXMFLOCAL
для администратора и пользователя, но в MiKTeX локальное дерево по умолчанию не установлено, хотя оно полезно, см.TEXMFHOME
texmf
Назначение локальных деревьев texmf. Поэтому мой вопрос:
Как создать локальное texmf
дерево в MiKTeX?
решение1
На самом деле вы можете создать более одной локальной папки TeXMF! Описание уже есть в онлайн-документации MiKTeX, см.Интеграция локальных дополнений, на момент написания статьи для последней версии MiKTeX 2.9(но включенные изображения взяты из более старой версии, по-видимому, MiKTeX 2.5, и немного отличаются, см. такжеhttp://docs.miktex.org/2.5/manual/localadditions.html). Название там — «Управляемый пользователем каталог TEXMF».(см. также дополнительное примечание в самом конце этого ответа).
В любом случае, вот альтернативное описание:
Создайте папку где-нибудь на вашем компьютере – сважное исключение. Этоне долженбыть подпапкой вашей установки MiKTeX (это работало так в старых версиях MiKTeX, но было изменено по соображениям безопасности). По возможности избегайте пробелов в пути, это потенциальный риск сбоя. Для использования с портативной версией MiKTeX папка должна находиться, конечно, на том же диске, что и установка MiKTeX, она будет сохранена как относительный путь. Здесь я буду использовать
c:\localtexmf
.Эта папка должна соответствовать требованиям TDS (см.Структура каталогов для файлов TeX); MiKTeX будет жаловаться, если нет. Что вам нужно, зависит от того, что вы хотите установить в этот каталог, по крайней мере поддерева
tex\latex
должно быть достаточно. Вы будете в безопасности, если вы имитируете структуру(соответствует требованиям TDS)Дерево MiKTEX, но двоичные файлы могут напрямую помещаться в подпапкуc:\localtexmf\bin
.Теперь, используя графический интерфейс:
В меню «Пуск» перейдите к записи MiKTeX и откройте настройки — если вы действуете как администратор, то, соответственно, «Настройки (Администратор)», конечно. Откроется окно «Параметры MiKTeX».
Перейдите на вкладку «Корни». Нажмите «Добавить» и выберите
c:\localtexmf\
. Если имеется более одного локального каталога, можно выбрать порядок поиска с помощью кнопок «Вверх» и «Вниз».Теперь почти самая важная часть: перейдите на вкладку «Общие» и нажмите там «Обновить FNDB».(FNDB = База данных имен файлов). В некоторых случаях, особенно если установлены новые шрифты, приходится нажимать еще и кнопку «Обновить форматы».
Если вы забудете этот шаг, все предыдущие шаги будут бесполезны.
В противном случае, используя командную строку (как администратор всегда добавляйте переключатель
--admin
):Выполнить
initexmf --register-root=c:\localtexmf
, а затемinitexmf --update-fndb
(короче:initexmf -u
).(На каждом шаге вы можете добавить переключатель,
--verbose
чтобы получить больше информации о том, что происходит.)Замечание:По соображениям совместимости есть также старый переключатель
--user-roots=<local-texmf-dir>
, который согласноinitexmf --help
регистрам, корневые каталоги пользователей, я предполагаю, также в административном режиме, но вhttp://docs.miktex.org/manual/initexmf.htmlоб этом больше не упоминается, так что мне остается только догадываться.В случае, если
bin
была создана подпапка для двоичных файлов, ее следует зарегистрировать в переменной окружения%PATH%
доподдерево двоичных файлов собственной установки MiKTeX, см. напримерКак управлять переменными среды в Windows XPили сторонний инструмент, такой какEnv-ManилиRapidEE. Затем вам нужно перезапустить систему, чтобы изменения вступили в силу. Проблема, которую невозможно решить: общесистемная переменная среды, установленная администратором, всегда считывается раньше, чем пользовательская. Затем, как простой пользователь, вы можете писать и использовать только пакетные файлы с собственным%PATH%
включенным.
Все созданные пользователем локальные деревья texmf можно отключить, временно удалив их из корней MiKTeX (см. дополнительное примечание в конце).
Смотрите такжеКак вручную установить пакет на MiKTeX (Windows).
Для полноты картины приведем описание того, как удалить локальное дерево TeXMF из MiKTeX, на c:\localtexmf\
примере:
GUI:
Снова перейдите на вкладку «Roots» в настройках (диалог «MiKTeX Options»), выберите каталогc:\localtexmf\
и нажмите «Remove» в нижней части окна. После этого вам нужно снова обновить FNDB и, возможно, обновить файлы формата.Командная строка (также здесь: как администратор добавьте переключатель
--admin
):
Выполнитьinitexmf --unregister-root=c:\localtexmf
, а затемinitexmf --update-fndb
. Если вы удалили шрифт, дополнительно выполнитеinitexmf --mkmaps
.--verbose
Переключатель также можно добавить.Если подпапка вам больше не нужна , необходимо очистить
bin
переменную окружения .%PATH%
После этого дерево папок
c:\localtexmf\
можно будет безопасно удалить.
Дополнительное примечание
Сначала подсказка: в командной строке вы можете ввести, echo %Variable%
например %Variable%
, %Userprofile%
. Таким образом, вы можете увидеть, к какому значению будут расширяться переменные в вашей системе.
Именно эта фраза«в MiKTeX по умолчанию не установлено локальное дерево texmf» в вопросе не соответствует действительности. MiKTeX добавляет себя несколько деревьев в %UserProfile%
и в режиме администратора также в %AllUsersProfile%
(далее наименование MiKTeX идет первым):
- «Конфигурация пользователя»:
%AppData%\MiKTeX\<version>\
- «UserData»:
%LocalAppData%\MiKTeX\<version>\
(начиная с Windows Vista) или%UserProfile%\<Local Settings>\<Application Data>\MiKTeX\<version>\
(до Windows XP строки<Local Settings>
и<Application Data>
зависят от языка) - используется только в режиме администратора«CommonConfig» и «CommonData»:
%AllUsersProfile%\MiKTeX\<version>\
(начиная с Windows Vista) или%AllUsersProfile%\<Application Data>\MiKTeX\<version>\
(до Windows XP строка<Application Data>
зависела от языка)
Фактические пути можно увидеть с помощью графического интерфейса в окне «Параметры MiKTeX» на вкладке «Корни» или с помощью интерфейса командной строки, выполнив команду initexmf --report
.
Недостатки всех этих местных деревьев: их можно менять только при установке, см.Изменение расположения автоматически установленных пакетов в MiKTeX, и их нельзя отключить (временным удалением из корней MiKTeX).
Для получения дополнительной информации см.Разница между административным и пользовательским режимом MiKTeX.
решение2
Это инструкция в новых версиях MikTeX. Цитируемые части не изменились сдругой ответ.
- Создайте папку где-нибудь на вашем компьютере – сважное исключение. Этоне долженбыть подпапкой вашей установки MiKTeX (это работало так в старых версиях MiKTeX, но было изменено по соображениям безопасности). По возможности избегайте пробелов в пути, это потенциальный риск сбоя. Для использования с портативной версией MiKTeX папка должна находиться, конечно, на том же диске, что и установка MiKTeX, она будет сохранена как относительный путь. Здесь я буду использовать
c:\localtexmf
.
В каком каталоге лучше всего хранить файлы .sty? содержит некоторые предложения о том, где разместить папку.
Эта папка должна соответствовать требованиям TDS (см.Структура каталогов для файлов TeX); MiKTeX будет жаловаться, если нет. Что вам нужно, зависит от того, что вы хотите установить в этот каталог, по крайней мере поддерева
tex\latex
должно быть достаточно. Вы будете в безопасности, если вы имитируете структуру(соответствует требованиям TDS)Дерево MiKTEX, но двоичные файлы могут напрямую помещаться в подпапкуc:\localtexmf\bin
.
- Теперь, используя графический интерфейс:
- Перейдите в Пуск → MiKTeX → Консоль MiKTeX.
- Нажмите «Настройки» (на левой панели) → вкладка «Каталоги» → кнопка «+» → выберите путь.
- «Задачи» (пункт меню) → «Обновить базу данных имен файлов».
В противном случае, используя командную строку (как администратор всегда добавляйте переключатель
--admin
):Выполнить
initexmf --register-root=c:\localtexmf
, а затемinitexmf --update-fndb
(короче:initexmf -u
).
Обратите внимание, что initexmf --register-root=<path>
, <path>
должен быть абсолютным путем. Поэтому он должен начинаться с c:\
или что-то в этом роде.
(На каждом шаге вы можете добавить переключатель,
--verbose
чтобы получить больше информации о том, что происходит.)