原答案

原答案

minted我正在嘗試在包含和包的(長).tex 檔案中使用 vim / nvim 作為文字編輯器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.

我查看了鑄造文檔,但找不到問題的解決方案我做錯了什麼?

編輯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

編輯:DG’指出了我的一個重大誤解看起來需要改變的不是編譯路線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>並按下回車鍵來獲得大多數事情的幫助。特別是,您可以vimtex透過鍵入獲得幫助:help vimtex獲得幫助。在那裡您將找到有關所使用的編譯方法以及如何自訂它的資訊。 (其他沒有vimtex安裝的可以找幫助文件這裡

預設vimtex使用latexmk.您應該/可以latexmk透過更改字典來更改傳遞給的選項g:vimtex_compiler_latexmk,更具體地說,更改options該字典的欄位。為此,您可以在正常模式下鍵入以下內容:

:let g:vimtex_compiler_latexmk.options += ['-shell-escape']

按回車鍵。現在,對於當前的 vim 會話,您將使用-shell-escapeallowed 進行編譯,並且minted應該可以解決。

或者,您也可以設定vimtex使用另一個編譯路徑。vimtex支持:

  • latexmk
  • latexrun
  • tectonic
  • arara

g:vimtex_compiler_method您可以透過像這樣的設定來選擇這些(範例使用arara):

:let g:vimtex_compiler_method = 'arara'

上面的範例之所以使用,arara是因為您可以arara使用魔術註釋進行配置,但我不是這方面的專家arara這方面的專家,所​​以要么搜索有關它的信息,要么查閱它的漂亮的文檔

相關內容