希腊字母周围铸有红色方框

希腊字母周围铸有红色方框

使用 Minted 时,希腊字符周围会出现一个红框 希腊字符周围出现令人厌烦的红色方框

可以禁用此行为吗?或者是否有需要在 python 词法分析器中更改特定的行?

一个最小的工作示例

\documentclass[12pt,a4paper]{article}

\usepackage{fontspec}
\setmainfont{XITS}
\setmonofont{Consolas}

\usepackage{minted}
\setminted[python]{
    linenos=true,
    breaklines=true,
    encoding=utf8,
    fontsize=\footnotesize,
    frame=lines
}
\begin{document}
\section{Some code in this section}
\begin{minted}{python}
def add(α, β):
    return α + β
\end{minted}
\end{document}

最小工作示例的输出

编辑:我正在使用 xelatex

答案1

这似乎是 Python 词法分析器中的一个错误。如果你不需要环境\fcolorbox内部minted,这里有一个 hack:

\documentclass[12pt,a4paper]{article}

\usepackage{fontspec}
\setmainfont{XITS}
\setmonofont{Source Code Pro} % I don't have Consolas

\usepackage{minted}
\setminted[python]{
    linenos=true,
    breaklines=true,
    encoding=utf8,
    fontsize=\footnotesize,
    frame=lines
}
\usepackage{etoolbox}

\makeatletter
\AtBeginEnvironment{minted}{\dontdofcolorbox}
\def\dontdofcolorbox{\renewcommand\fcolorbox[4][]{##4}}
\makeatother

\begin{document}

\section{Some code in this section}
\begin{minted}{python}
def add(α, β):
    return α + β
\end{minted}
\end{document}

\end{document}

在此处输入图片描述

以下也有补丁\inputminted

\begin{filecontents*}{\jobname.py}
def add(α, β):
    return α + β
\end{filecontents*}

\documentclass[12pt,a4paper]{article}

\usepackage{fontspec}
\setmainfont{XITS}
\setmonofont{Source Code Pro} % I don't have Consolas

\usepackage{minted}
\setminted[python]{
    linenos=true,
    breaklines=true,
    encoding=utf8,
    fontsize=\footnotesize,
    frame=lines
}
\usepackage{etoolbox,xpatch}

\makeatletter
\AtBeginEnvironment{minted}{\dontdofcolorbox}
\def\dontdofcolorbox{\renewcommand\fcolorbox[4][]{##4}}
\xpatchcmd{\inputminted}{\minted@fvset}{\minted@fvset\dontdofcolorbox}{}{}
\xpatchcmd{\mintinline}{\minted@fvset}{\minted@fvset\dontdofcolorbox}{}{} % see https://tex.stackexchange.com/a/401250/
\makeatother

\begin{document}

\section{Some code in this section}
\begin{minted}{python}
def add(α, β):
    return α + β
\end{minted}

\inputminted{python}{\jobname.py}

\end{document}

在此处输入图片描述

答案2

我建议你尝试使用不突出的铸造风格\PYG{err}

\usemintedstyle{xcode}

当然,如果你的红框是由于某些\PYG{err}

答案3

只是为了完整性,因为我还不能发表评论:

egreg 的 Answer 中的 hack 也可以应用于\mintinline命令

\xpatchcmd{\mintinline}{\minted@fvset}{\minted@fvset\dontdofcolorbox}{}{}

问候

答案4

我遇到了类似的问题,但无法禁用所有 minted 环境的错误突出显示。我想出了以下对我有用的 @egreg 修改版本。

\documentclass[12pt,a4paper]{article}

\usepackage{fontspec}
\setmainfont{XITS}
\setmonofont{Source Code Pro} % I don't have Consolas

\usepackage{minted}
\setminted[python]{
    linenos=true,
    breaklines=true,
    encoding=utf8,
    fontsize=\footnotesize,
    frame=lines
}
\usepackage{etoolbox}

\makeatletter
\AtBeginEnvironment{noerr}{\dontdofcolorbox}
\def\dontdofcolorbox{\renewcommand\fcolorbox[4][]{##4}}
\makeatother

\newenvironment{noerr}{}

\begin{document}

\section{Some code in this section}
\begin{noerr}
\begin{minted}{python}
def add(α, β):
    return α + β
\end{minted}
\end{noerr}

\end{document}

因此,我没有fcolorboxminted环境中进行替换,而是创建了一个新环境noerr,在其中fcolorbox进行了替换。这样,我既可以minted在环境中使用该环境noerr来抑制高亮,也可以在外部使用该环境来获得高亮。

我目前没有\mintinline或的对应版本\inputminted

相关内容