我正在尝试使用 listings 包在 LaTeX 文档中显示一些 PHP 代码。其他语言显示正常(例如 HTML),但 PHP 似乎忽略了代码中的任何字符串。其余代码显示正常,这让我很困惑。
我附上了我的文档样本和输出的屏幕截图。如果有人能帮助我,我将不胜感激!
乳胶:
\usepackage{listings}
\usepackage{courier}
\lstset{
basicstyle=\footnotesize\ttfamily,
numberstyle=\tiny,
numbersep=5pt,
tabsize=2,
extendedchars=true,
breaklines=true,
keywordstyle=\color{red},
frame=b,
stringstyle=\color{white}\ttfamily,
showspaces=false,
showtabs=false,
xleftmargin=17pt,
framexleftmargin=17pt,
framexrightmargin=5pt,
framexbottommargin=4pt,
%showstringspaces=false,
%escapeinside={}{}
}
\usepackage{caption}
\DeclareCaptionFont{white}{\color{white}}
\DeclareCaptionFormat{listing}{\colorbox[cmyk]{0.43, 0.35, 0.35,0.01}{\parbox{\textwidth}{\hspace{15pt}#1#2#3}}}
\captionsetup[lstlisting]{format=listing,labelfont=white,textfont=white, singlelinecheck=false, margin=0pt, font={bf,footnotesize}}
进而...
\lstset{language=PHP,caption=Example PHP Code,label=code:sample}
\begin{lstlisting}
public function execute_via_api($api) {
$api->require_authentication();
$total_messages_imported = $this->execute();
return $api->output(array('response'=>$total_messages_imported.' '.inflect($total_messages_imported,'message').' imported'));
} // end func: execute_via_api
\end{lstlisting}
输出:
答案1
罪魁祸首是stringstyle=\color{white}\ttfamily
。毕竟,在白色背景上看到白色文字是相当困难的:)。
只需将\color{white}
其移除或用其他颜色替换(例如\color{blue}
)即可解决问题。