当我使用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}