使用 stix 字体的 listing 包存在问题

使用 stix 字体的 listing 包存在问题

考虑以下代码:

\documentclass{article}
\usepackage{stix}
\usepackage{listings,xcolor}
\lstdefinelanguage{test}{sensitive=true,
  morekeywords={TEST},
morecomment=[l]{--}}
\lstnewenvironment{testcode}
{\lstset{breaklines=true,language=test, basicstyle=\color{blue}\tiny}}
{}
\begin{document}
\begin{testcode}
TEST

-- Testing 8*8=64
\end{testcode}
\end{document}

编译后pdflatex输出如下:

在此处输入图片描述

如图所示,星号*并未出现在listings评论中。

如果我不使用该stix包,它可以正常工作:

在此处输入图片描述

答案1

如果你查看日志文件,你就会发现问题的根源:

Missing character: There is no * in font ts1-stixgeneral-italic!

当您尝试使用 输出斜体时,就会发生这种情况*listings这是因为listings尝试使用 替换*\textasteriskcentered不幸的是,在使用当前 stix 字体版本时,正确的变体中不存在 (STIXv1.1.0-乳胶)。一个简单的解决方法是重新定义\textasteriskcentered为数学*

\documentclass{article}
\usepackage{stix}
\renewcommand{\textasteriskcentered}{\ensuremath{*}}
\usepackage{listings}
\lstset{basicstyle=\itshape}
\begin{document}
\begin{lstlisting}
Testing 8*8=64
\end{lstlisting}
\end{document}

相关内容