Listings 包无法正确显示 PHP 字符串

Listings 包无法正确显示 PHP 字符串

我正在尝试使用 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})即可解决问题。

stringstyle=\color{blue}\ttfamily

相关内容