以下のソースでも再現しました:
\documentclass{article} \usepackage{listings,fontspec} \begin{document} \fontspec{Source Code Pro} \begin{lstlisting}[basicstyle=\fontspec{Source Code Pro}] compare_* \end{lstlisting} {\fontspec{Source Code Pro} compare\_* } \end{document}そのため,LuaTeX-ja の問題ではないと思います.
lstlistings 環境で * を表示する際には,実際には \textasteriskcentered 命令が使われています. Source Code Pro では \textasteriskcentered では下にずれて表示されてしまうようです(元々 * が中央付近にあるので). 解決策としては,\textasteriskcentered で表示されないようにすれば良いので, Higher Asterisks in lstlisting environment などがあるでしょうか.
xelatexでは確認していて、問題なかったので勘違いしていました。 仰る通り\textasteriskcenteredを以下の様なコードで使わない様にすれば解決しました。
\lstset{ basicstyle=\makeatletter\lst@CCPutMacro\lst@ProcessOther{"2A}{*}\@empty\z@\@empty\makeatother ...}おさわがせしました。
解決したようで良かったです.完了とします.
MenloやSource Code Proフォントをlstlisting内で使うと"*"が正しく表示されません。Courier NewやCourantでは大丈夫な様です。 正確には、Menloでは空白になり、Source Code Proではlstlinsting外と比べて下に表示されます。
以下で再現可能です。