`lstset` 中的 `backgroundcolor` 不起作用

`lstset` 中的 `backgroundcolor` 不起作用

当我使用backgroundcolor中的选项时lstset,我得到的只是列表上方的一条彩色线:

\lstset{%
    language=Matlab,
    backgroundcolor=\color{blue}
}

并在文件中:

\L{\inputencoding{cp1255}
\begin{lstlisting}[basicstyle={\footnotesize\ttfamily}]
>> x(6)
ans =
 9
\end{lstlisting}
\inputencoding{utf8x}}

结果:

在此处输入图片描述

我该如何修复此问题?

我正在使用 LyX,因此我不确定这里哪些代码行是至关重要的。


编辑:这是 LyX 生成的完整示例源,经过编辑以制作 MWE(输出与上图相同):

\documentclass[hebrew]{article}
\usepackage[T1]{fontenc}
\usepackage[cp1255]{inputenc}
\usepackage{babel}
\usepackage{listings}
\usepackage{color}

\lstset{%
    language=Matlab,
    backgroundcolor=\color{blue}
}

\begin{document}
\L{
\begin{lstlisting}[basicstyle={\footnotesize\ttfamily}]
>> x(6)
ans =
     9
\end{lstlisting}
}
\end{document}

答案1

Amir,看起来老式的 cp1255/babel 不太可靠。下面是一个使用 xetex 的示例。也许你可以从它开始,然后反向研究 cp1255 和 babel。

\documentclass{article}
\usepackage{listings}
\usepackage{xcolor}
\usepackage{polyglossia}
\setmainlanguage{hebrew}
\setmainlanguage{english}

\lstset{language=Matlab,backgroundcolor=\color{blue}}
\setmainfont{Comic Sans MS}

\newfontfamily\hebrewfont[Script=Hebrew]{Ezra SIL}
   \newfontfamily\listingsfont[
            Extension=.otf,
            UprightFont=*-Regular,
            BoldFont=*-Bold,
            ItalicFont=*-Italic,
            BoldItalicFont=*-BoldItalic,
]{UMTypewriter}

\begin{document}

\let\ttfamily=\listingsfont

\begin{lstlisting}[basicstyle={\footnotesize\ttfamily}]
>> x(6)
ans =
     9
\end{lstlisting}

\LR{
\begin{lstlisting}[basicstyle={\footnotesize\ttfamily}]
>> x(6)
ans =
     9
\end{lstlisting}
}

\lstdefinestyle{numbered}{
    backgroundcolor=\color{blue!20},
    numbers=right,
    stepnumber=1,
    numbersep=-6pt,
    xleftmargin=3ex,
    xrightmargin=3ex,
    numberblanklines=false,
    numberstyle=\tiny\bf,
    frame=trBL,
}
\begin{lstlisting}[style=numbered]
>> x(6)
ans =
     9
\end{lstlisting}
\end{document}

输出

相关内容