Minted 软件包在使用 inconsolata 为 python 文档字符串添加三重“”时会抛出字体警告

Minted 软件包在使用 inconsolata 为 python 文档字符串添加三重“”时会抛出字体警告

对于minted代码列表,我已将字体设置为 inconsolata 并收到警告:

LaTeX Font Warning: Font shape `T1/zi4/m/it' undefined

当使用 Inconsolata 字体和 Python 文档字符串时——例如:

def foo():
    """ Docstring
    """ 
    return 0

如果不存在文档字符串,则不会发出警告。

最小示例:

\documentclass[                                                                 
    12pt,
    paper=a4
]{scrreprt}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{libertine}                                                           
\usepackage[libertine,cmintegrals,cmbraces,vvarbb]{newtxmath}
\usepackage{inconsolata}
\usepackage{minted}

\begin{document}
    Some Text. 

    \inputminted{Python}{some_code.py}
\end{document}

编辑:尽管您已解决问题,警告仍然出现。可能是因为我定义了自己的环境:

\documentclass[
    12pt,
    paper=a4
]{scrreprt}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{libertine}
\usepackage[libertine,cmintegrals,cmbraces,vvarbb]{newtxmath}
\usepackage{inconsolata}
\usepackage{minted}
\usepackage{etoolbox}
\AtBeginEnvironment{minted}{\let\itshape\relax}

\newmintedfile[Python]{python}{
    fontsize=\small,
    %bgcolor=mintedback,
    linenos=true,
    numberblanklines=true,
    numbersep=12pt,
    numbersep=5pt,
    gobble=0,
    frame=leftline,
    framerule=1pt,
    framesep=2mm,
    funcnamehighlighting=true,
    tabsize=4,
    obeytabs=false,
}

\begin{document}
    Some Text.

    \Python{test.py}

\end{document}

答案1

您无法避免该警告,因为 Python 的 Pygments 词法分析器对三重引号字符串选择了斜体。

如果我不加载inconsolata,则输出为

在此处输入图片描述

Inconsolata 字体没有斜体/倾斜形状,因此发出警告并使用直立字体。您可能应该使用具有斜体形状的等宽字体。

您可以通过选择斜体的等宽字体或提供缺失的字体替代来避免警告。

请注意,这filecontents*只是为了使示例自成一体。

\begin{filecontents*}{\jobname.py}
def foo():
    """ Docstring
    """ 
    return 0
\end{filecontents*}

\documentclass[
    12pt,
    paper=a4
]{scrreprt}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{libertine}
\usepackage[libertine,cmintegrals,cmbraces,vvarbb]{newtxmath}
\usepackage{inconsolata}
\usepackage{minted}

\makeatletter
% there's no italic/slanted for Inconsolata
\@namedef{T1/zi4/m/it}{<->ssub*zi4/m/n}
\@namedef{T1/zi4/b/it}{<->ssub*zi4/b/n}
\@namedef{T1/zi4/bx/it}{<->ssub*zi4/b/n}
\@namedef{T1/zi4/m/sl}{<->ssub*zi4/m/n}
\@namedef{T1/zi4/b/sl}{<->ssub*zi4/b/n}
\@namedef{T1/zi4/bx/sl}{<->ssub*zi4/b/n}
\makeatother

\newmintedfile[Python]{python}{
    fontsize=\small,
    %bgcolor=mintedback,
    fontfamily=tt,
    linenos=true,
    numberblanklines=true,
    numbersep=12pt,
    numbersep=5pt,
    gobble=0,
    frame=leftline,
    framerule=1pt,
    framesep=2mm,
    funcnamehighlighting=true,
    tabsize=4,
    obeytabs=false,
}

\begin{document}
Some Text.

\begin{minted}{python}
def foo():
    """ Docstring
    """
    return 0
\end{minted}

\Python{\jobname.py}


\end{document}

在此处输入图片描述

相关内容