Вопрос или проблема
Описание
При использовании vimtex для компиляции моего документа у меня появляется ошибка:
Файл `darkmode.sty' не найден.
ошибка| Экстренная остановка.
ошибка| Произошла фатальная ошибка, PDF файл не создан!
Эта ошибка возникает с несколькими разными пакетами, такими как darkmode, circuitikz и float. Когда я запускаю latexmk из командной строки, он компилируется без проблем. В частности, следующая информация выводится для примера файла:
Прочитанные файлы Rc:
НЕТ
Latexmk: Это Latexmk, Джон Коллинз, 31 янв. 2024. Версия 4.83.
Нет существующего .aux файла, поэтому я создам простой, и потребуется запуск *latex.
Latexmk: применяется правило 'pdflatex'...
Правило 'pdflatex': Причины для повторного запуска
Категория 'другое':
Повторный запуск 'pdflatex' принудительно или ранее требовался:
Причина или флаг: 'Начальная настройка'
------------
Номер запуска 1 правила 'pdflatex'
------------
------------
Запуск 'pdflatex -recorder "temp.tex"'
------------
Это pdfTeX, Версия 3.141592653-2.6-1.40.25 (TeX Live 2023/nixos.org) (предварительно загруженный формат=pdflatex)
ограниченная \write18 разрешена.
вход в расширенный режим
(./temp.tex
LaTeX2e <2023-11-01> уровень исправления 1
Уровень программирования L3 <2024-02-20>
(/nix/store/jq3pgdrl04wbgrsxhvkglcfv0b1dsj3q-texlive-combined-2023-texmfdist/te
x/latex/base/article.cls
Класс документа: article 2023/05/17 v1.4n Стандартный класс документа LaTeX
(/nix/store/jq3pgdrl04wbgrsxhvkglcfv0b1dsj3q-texlive-combined-2023-texmfdist/te
x/latex/base/size10.clo))
(/nix/store/jq3pgdrl04wbgrsxhvkglcfv0b1dsj3q-texlive-combined-2023-texmfdist/te
x/latex/darkmode/darkmode.sty
(/nix/store/jq3pgdrl04wbgrsxhvkglcfv0b1dsj3q-texlive-combined-2023-texmfdist/te
x/latex/l3kernel/expl3.sty
(/nix/store/jq3pgdrl04wbgrsxhvkglcfv0b1dsj3q-texlive-combined-2023-texmfdist/te
x/latex/l3backend/l3backend-pdftex.def))
(/nix/store/jq3pgdrl04wbgrsxhvkglcfv0b1dsj3q-texlive-combined-2023-texmfdist/te
x/latex/l3packages/l3keys2e/l3keys2e.sty)
(/nix/store/jq3pgdrl04wbgrsxhvkglcfv0b1dsj3q-texlive-combined-2023-texmfdist/te
x/latex/xcolor/xcolor.sty
(/nix/store/jq3pgdrl04wbgrsxhvkglcfv0b1dsj3q-texlive-combined-2023-texmfdist/te
x/latex/graphics-cfg/color.cfg)
(/nix/store/jq3pgdrl04wbgrsxhvkglcfv0b1dsj3q-texlive-combined-2023-texmfdist/te
x/latex/graphics-def/pdftex.def)
(/nix/store/jq3pgdrl04wbgrsxhvkglcfv0b1dsj3q-texlive-combined-2023-texmfdist/te
x/latex/graphics/mathcolor.ltx))
(/nix/store/jq3pgdrl04wbgrsxhvkglcfv0b1dsj3q-texlive-combined-2023-texmfdist/te
x/latex/pagecolor/pagecolor.sty
(/nix/store/jq3pgdrl04wbgrsxhvkglcfv0b1dsj3q-texlive-combined-2023-texmfdist/te
x/latex/kvoptions/kvoptions.sty
(/nix/store/jq3pgdrl04wbgrsxhvkglcfv0b1dsj3q-texlive-combined-2023-texmfdist/te
x/latex/graphics/keyval.sty)
(/nix/store/jq3pgdrl04wbgrsxhvkglcfv0b1dsj3q-texlive-combined-2023-texmfdist/te
x/generic/ltxcmds/ltxcmds.sty)
(/nix/store/jq3pgdrl04wbgrsxhvkglcfv0b1dsj3q-texlive-combined-2023-texmfdist/te
x/latex/kvsetkeys/kvsetkeys.sty)))) (./temp.aux)
(/nix/store/jq3pgdrl04wbgrsxhvkglcfv0b1dsj3q-texlive-combined-2023-texmfdist/te
x/context/base/mkii/supp-pdf.mkii
[Загрузка MPS в PDF конвертер (версия 2006.09.02).]
) [1{/nix/store/43i94gavdacv9x87kjw3d11lrh05wffn-texlive-combined-2023/share/te
xmf-var/fonts/map/pdftex/updmap/pdftex.map}] (./temp.aux) )</nix/store/jq3pgdrl
04wbgrsxhvkglcfv0b1dsj3q-texlive-combined-2023-texmfdist/fonts/type1/public/ams
fonts/cm/cmr10.pfb>
Вывод записан в temp.pdf (1 страница, 16780 байт).
Транскрипт записан в temp.log.
Latexmk: Получение лог-файла 'temp.log'
Latexmk: Изучение 'temp.fls'
Latexmk: Изучение 'temp.log'
Latexmk: Лог-файл говорит, что выход в 'temp.pdf'
Latexmk: Все цели (temp.pdf) актуальны
Пример файла, о котором идет речь:
\documentclass{article}
\usepackage{darkmode}
\enabledarkmode
\begin{document}
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At
vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
\end{document}
Шаги для воспроизведения
- Откройте минимальный tex документ в neovim
- Используйте пакет darkmode (также проблема с несколькими другими пакетами)
- Запустите :VimtexCompileSS
Ожидаемое поведение
Документ компилируется без проблем, как в случае с командной строкой
Фактическое поведение
Появляется ошибка, и документ не компилируется
VimtexInfo
Информация о системе:
ОС: Linux 6.6.63
Версия Vim: NVIM v0.10.2
Имеет клиент-сервер: true
Имя сервера: /run/user/1000/nvim.29353.0
Проект VimTeX: temp
база: temp.tex
корень: /home/ea
tex: /home/ea/temp.tex
основной парсер: текущий файл проверен
класс документа: article
пакеты: darkmode expl3 keyval kvoptions kvsetkeys l3keys2e ltxcmds pagecolor xcolor
компилятор: latexmk
движок: -pdf
опции:
-verbose
-file-line-error
-synctex=1
-interaction=nonstopmode
обратный вызов: 1
непрерывный: 1
исполняемый файл: latexmk
просмотрщик: Zathura
xwin id: 0
метод qf: LaTeX logfile
Информация о системе
Я использую NixOS с home manager. У меня установлен latex в соответствии с страницей NixOS Wiki о TexLive. В частности, я установил комбинированный пакет полного набора с указанным пакетом darkmode:
let
tex = (pkgs.texlive.combine {
inherit (pkgs.texlive) scheme-full
darkmode;
});
зависимости = с pkgs; [
tex
];
в {
и
home.packages = с pkgs; [
tex
];
Ответ или решение
Ошибка "File ‘darkmode.sty’ not found, emergency stop" возникает при компиляции документа LaTeX с использованием vimtex, когда не удается найти указанный файл пакета. Эта проблема проявляется в разных пакетах, что может указывать на несколько возможных причин. Давайте подробно рассмотрим эту проблему и предложим возможные решения.
Проблема
При использовании :VimtexCompileSS
для компиляции небольшого файла LaTeX с использованием пакета darkmode
, возникает ошибка, указывающая на то, что файл darkmode.sty
не найден. В то же время компиляция с использованием latexmk
из командной строки проходит успешно и файл генерируется без каких-либо ошибок. Это может указывать на различия в конфигурации окружения между vimtex и командной строкой.
Возможные причины
-
Различия в путях к пакетам: Vimtex может не использовать тот же путь к файлам, что и latexmk, что может объяснять проблему с нахождением файла
darkmode.sty
. При этом командаlatexmk
успешно использует нужные пакеты, поскольку имеет доступ к правильной конфигурации TeX Live. -
Переменные окружения: Иногда конфигурация среды, в которой запускается vimtex, может отличаться от той, что используется в терминале. Это может быть вызвано различиями в переменных окружения PATH или других переменных, относящихся к Tex Live.
-
Установка пакетов: Возможно, пакет
darkmode
не установлен в системе Vimtex, хотя он доступен из команды, выполняемой в терминале. Это может произойти, если Vimtex использует другую версию TeX Live.
Рекомендации по устранению проблемы
-
Проверка конфигурации путей: Убедитесь, что vimtex использует правильные пути к пакетам. Проверьте, какие пути установлены в texmf и включены в переменную окружения
TEXMF
, исполнив командуkpsewhich
в терминале:kpsewhich darkmode.sty
Сделайте то же самое в vim, чтобы сравнить результаты.
-
Проверка переменных окружения: Проверьте, не отличаются ли переменные окружения, используемые vim и терминалом. В vim выполните следующую команду:
:echo $PATH
Сравните с аналогичной командой в терминале.
-
Обновление пакетов: Если проблема связана с отсутствующими пакетами, попробуйте обновить TeX Live и убедитесь, что все необходимые зависимости установлены. Это можно сделать через
nix-env
или в файле конфигурации NixOS.Пример:
let tex = (pkgs.texlive.combine { inherit (pkgs.texlive) scheme-full darkmode; }); in { home.packages = with pkgs; [ tex ]; }
-
Проверка конфигурации Vimtex: Убедитесь, что vimtex правильно настроен в файле конфигурации Vim (например,
~/.config/nvim/init.vim
или~/.vimrc
). Проверьте, не задает ли ваша конфигурация vimtex явно какие-либо ограничения, которые могли бы помешать доступу к пакетам. -
Использование альтернативных инструментов: Если проблема не решается, рассмотрите возможность использования других средств компиляции LaTeX внутри Neovim, таких как
TeXShop
илиOverleaf
, которые могут предоставить более простую интеграцию.
Заключение
Ошибка "File ‘darkmode.sty’ not found" при использовании vimtex может проявляться по ряду причин, включая неправильные пути к пакетам, переменные окружения и отсутствие необходимых пакетов. Следуя вышеприведенным рекомендациям, вы сможете устранить данную ошибку и успешно скомпилировать ваши LaTeX документы. Если проблемы продолжают возникать, желательно обратиться к документации vimtex или сообществу за дополнительной поддержкой.