Оригинальный ответ

Оригинальный ответ

Я пытаюсь использовать 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-escapeallowed и mintedдолжно сработать.

В качестве альтернативы вы также можете настроить vimtexиспользование другого маршрута компиляции. vimtexподдерживает:

  • latexmk
  • latexrun
  • tectonic
  • arara

Вы можете выбрать один из них, установив его g:vimtex_compiler_methodследующим образом (в примере используется arara):

:let g:vimtex_compiler_method = 'arara'

В примере выше используется, araraпотому что вы можете настроить araraс помощью магических комментариев, но я не эксперт ни в araraтом, ни в другом, поэтому либо поищите информацию об этом, либо обратитесь к егокрасивая документация.

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