Я пытаюсь использовать vim / nvim в качестве текстового редактора в (длинном) .tex-файле, содержащем и пакет minted
, и dsfont
. Вот пример:
% !TeX document-id = {f2e9e8a7-1386-4a73-9989-55350ce6c529}
% !TeX TXS-program:compile = txs:///xelatex/[--shell-escape]
%\documentclass[a4paper, 12pt]{book}
\documentclass{scrreprt}
%\usepackage{fontspec}
%\usepackage{pmboxdraw}
\usepackage{amssymb, amsmath, float, framed, geometry, listings, lmodern, mathtools,multirow,parskip, paralist,pgfplots, ragged2e,setspace,tcolorbox, threeparttable, upquote, url, tikz, enumitem}
\usepackage{bbm}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{xurl}
\usepackage{minted}
\usepackage{dsfont}
\usepackage{multirow}
\usepackage{tabto}
\usepackage{tabu}
\usepackage[english]{babel}
\usepackage{newtxmath}
\usetikzlibrary{positioning}
\usepackage{xcolor}
\definecolor{mypink1}{RGB}{0, 170, 0}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\fancyhf{}
\pagestyle{fancy}
\rfoot{Page \thepage}
\usepackage[LGR]{fontenc}
\usepackage[T1]{fontenc}
\usepackage[colorlinks]{hyperref}
\hypersetup{
colorlinks,
linkcolor=blue,
filecolor=magenta,
citecolor=mypink1,
urlcolor=cyan,
}
\geometry{
a4paper,
total={170mm,257mm},
left=20mm,
top=20mm,
}
\usepackage{caption}
%\usepackage{calrsfs}
%\DeclareMathAlphabet{\pazocal}{OMS}{zplm}{m}{n}
\begin{document}
blabla
\begin{minted}{Python}
print(“Hello world”)
\end{minted}
\end{document}
Я могу скомпилировать документ с помощью Texstudio и pdflatex в терминале без проблем. Однако попытка просмотреть его с помощью :LLPStartPreview
дает мне Failed to compile
сообщение и следующее сообщение в .log
файле:
l.13 \usepackage
{dsfont}
Pass the -shell-escape flag to LaTeX. Refer to the minted.sty documentation for
more information.
Я просмотрел документ Minted, но не смог найти решение проблемы. Что я делаю не так?
Редактировать1
После проверкиэтот другой ответ, я также попытался заменить строку
% !TeX TXS-program:compile = txs:///xelatex/[--shell-escape]
к
% !TeX TXS-program:compile = txs:///pdflatex/[--shell-escape]
и
% !TeX TXS-program:pdflatex = pdflatex -synctex=1 -interaction=nonstopmode --shell-escape %.tex
но это не решило проблему
Редактировать 2
Я пытаюсь вставить (в .vimrc
файл)
let g:vimtex_compiler_latexmk.options += ['-shell-escape']
let g:vimtex_compiler_method = 'latexmk'
и
let g:vimtex_compiler_latexmk.options += ['-shell-escape']
let g:vimtex_compiler_method = 'latexmk'
но это не решило проблему
Редактировать 3
Я попытался (последовательно) добавить следующую команду в .vimrc
файл, но это не решило проблему:
let g:livepreview_engine = 'evince' . [-shell-escape]
let g:livepreview_engine = 'evince' . ['-shell-escape']
let g:livepreview_engine = 'evince' . '[-shell-escape]'
let g:livepreview_engine =. ' -shell-escape'
Редактировать 4
Я также пытался добавить следующую строку в свой файл, но .vimrc
безуспешно
let g:livepreview_engine = 'pdflatex' . '[-shell-escape]'
Проблема не возникла, когда я использовал :LLPStartPreview
следующий код: (где следующие строки были закомментированы):
...
\usepackage{minted}
...
\begin{minted}{Python}
print(“Hello world”)
\end{minted}
% !TeX document-id = {f2e9e8a7-1386-4a73-9989-55350ce6c529}
% !TeX TXS-program:pdflatex = pdflatex -synctex=1 -interaction=nonstopmode --shell-escape %.tex
%\documentclass[a4paper, 12pt]{book}
\documentclass{scrreprt}
%\usepackage{fontspec}
%\usepackage{pmboxdraw}
\usepackage{amssymb, amsmath, float, framed, geometry, listings, lmodern, mathtools,multirow,parskip, paralist,pgfplots, ragged2e,setspace,tcolorbox, threeparttable, upquote, url, tikz, enumitem}
\usepackage{bbm}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{xurl}
%\usepackage{minted}
\usepackage{dsfont}
\usepackage{multirow}
\usepackage{tabto}
\usepackage{tabu}
\usepackage[english]{babel}
\usepackage{newtxmath}
\usetikzlibrary{positioning}
\usepackage{xcolor}
\definecolor{mypink1}{RGB}{0, 170, 0}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\fancyhf{}
\pagestyle{fancy}
\rfoot{Page \thepage}
\usepackage[LGR]{fontenc}
\usepackage[T1]{fontenc}
\usepackage[colorlinks]{hyperref}
\hypersetup{
colorlinks,
linkcolor=blue,
filecolor=magenta,
citecolor=mypink1,
urlcolor=cyan,
}
\geometry{
a4paper,
total={170mm,257mm},
left=20mm,
top=20mm,
}
\usepackage{caption}
%\usepackage{calrsfs}
%\DeclareMathAlphabet{\pazocal}{OMS}{zplm}{m}{n}
\begin{document}
blabla
%\begin{minted}{Python}
% print(“Hello world”)
%\end{minted}
\end{document}
решение1
РЕДАКТИРОВАТЬ:ПослеГенеральный директор указал на одно из моих главных заблуждений.похоже, что нужно изменить не маршрут компиляции, vimtex
а маршрут vim-latex-live-preview
. Согласно README, компиляцию можно контролировать, установив g:livepreview_engine
. Чтобы добавить -shell-escape
к нему опцию, можно сделать следующее:
:let g:livepreview_engine .= ' -shell-escape'
К сожалению, я им не пользуюсь vim-latex-live-preview
и не могу это проверить.
Оригинальный ответ
Примечание:Я не использую vimtex
лично, поэтому не могу проверить, действительно ли работает следующее. Но я включаю способ, которым можно найти необходимую для всего этого информацию, и думаю, что это должно работать (это то, что я бы попробовал).
vimtex
насколько мне известно, это не TeXstudio и он не анализирует магические комментарии TeXstudio.
Если в vim
(или nvim
для чего это стоит) вы можете получить помощь по большинству вещей, набрав :help <thing>
и нажав Enter. В частности, вы можете получить помощь по vimtex
теме, набрав :help vimtex
. Там вы найдете информацию об используемом методе компиляции и о том, как его настроить. (Для тех, у кого не установлено vimtex
, файл справки можно найтиздесь)
По умолчанию vimtex
использует latexmk
. Вы должны/можете изменить переданные параметры, latexmk
изменив g:vimtex_compiler_latexmk
словарь, а точнее, изменив options
поле этого словаря. Для этого вы можете ввести следующее в обычном режиме:
:let g:vimtex_compiler_latexmk.options += ['-shell-escape']
Нажмите Enter. Теперь для текущего сеанса vim вы скомпилируете с -shell-escape
allowed и minted
должно сработать.
В качестве альтернативы вы также можете настроить vimtex
использование другого маршрута компиляции. vimtex
поддерживает:
latexmk
latexrun
tectonic
arara
Вы можете выбрать один из них, установив его g:vimtex_compiler_method
следующим образом (в примере используется arara
):
:let g:vimtex_compiler_method = 'arara'
В примере выше используется, arara
потому что вы можете настроить arara
с помощью магических комментариев, но я не эксперт ни в arara
том, ни в другом, поэтому либо поищите информацию об этом, либо обратитесь к егокрасивая документация.