Создать локальное дерево texmf в MiKTeX

Создать локальное дерево texmf в MiKTeX

В TeX Live есть предопределенные TEXMFLOCALдля администратора и пользователя, но в MiKTeX локальное дерево по умолчанию не установлено, хотя оно полезно, см.TEXMFHOMEtexmfНазначение локальных деревьев 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.

  • Теперь, используя графический интерфейс:

    1. В меню «Пуск» перейдите к записи MiKTeX и откройте настройки — если вы действуете как администратор, то, соответственно, «Настройки (Администратор)», конечно. Откроется окно «Параметры MiKTeX».

    2. Перейдите на вкладку «Корни». Нажмите «Добавить» и выберите c:\localtexmf\. Если имеется более одного локального каталога, можно выбрать порядок поиска с помощью кнопок «Вверх» и «Вниз».

    3. Теперь почти самая важная часть: перейдите на вкладку «Общие» и нажмите там «Обновить 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.

  • Теперь, используя графический интерфейс:
  1. Перейдите в Пуск → MiKTeX → Консоль MiKTeX.
  2. Нажмите «Настройки» (на левой панели) → вкладка «Каталоги» → кнопка «+» → выберите путь.
  3. «Задачи» (пункт меню) → «Обновить базу данных имен файлов».
  • В противном случае, используя командную строку (как администратор всегда добавляйте переключатель --admin):

    Выполнить initexmf --register-root=c:\localtexmf, а затем initexmf --update-fndb(короче: initexmf -u).

Обратите внимание, что initexmf --register-root=<path>, <path>должен быть абсолютным путем. Поэтому он должен начинаться с c:\или что-то в этом роде.

(На каждом шаге вы можете добавить переключатель, --verboseчтобы получить больше информации о том, что происходит.)

Связанный контент