LuaLaTeXとリストは動作しませんが、XeLaTexは正常に動作します

LuaLaTeXとリストは動作しませんが、XeLaTexは正常に動作します

XeLaTeX から LuaLaTeX に移行しようとしています。特殊な区切り文字 (アンダースコア) を含むリストがいくつかあります。次の MWE は XeLaTex では完璧にコンパイルされますが、LuaLaTeX では次のエラーが発生します。

エラーメッセージ:

./plots.tex:36: Missing $ inserted.
<inserted text> 
$
l.36 TABLE1(_ID1_
               ,DATA1)
? 
Process aborted

ムウェ:

%!TEX TS-program = lualatex
%!TEX encoding = UTF-8 Unicode
\documentclass[11pt, a4paper]{article}
\usepackage[dvipsnames,svgnames,x11names,hyperref]{xcolor}
\usepackage{unicode-math}
\usepackage{listings}
\definecolor{codegreen}{rgb}{0,0.6,0}
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
\definecolor{codepurple}{rgb}{0.58,0,0.82}
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}
\lstdefinestyle{mystyle}{
    language=SQL,
    backgroundcolor=\color{backcolour},
    commentstyle=\color{codegreen},
    keywordstyle=\color{magenta},
    numberstyle=\small\ttfamily\color{codegray},
    stringstyle=\color{codepurple},
    basicstyle=\small\ttfamily,
    breakatwhitespace=false,         
    breaklines=true,                 
    captionpos=t,                    
    keepspaces=true,                 
    numbers=left,                    
    numbersep=5pt,                  
    showspaces=false,                
    showstringspaces=false,
    showtabs=false,                  
    tabsize=4,
    moredelim=[is][\underbar]{_}{_},
    moredelim=**[is][\bfseries]{@}{@},
    escapeinside={(*@}{@*)}
}
\begin{document}
\lstset{style=mystyle}
\begin{lstlisting}[caption=Database Tables, label={lst:tables}]
TABLE1(_ID1_,DATA1)
TABLE1(_ID2_,DATA2)
TABLE3(_ID3_,DATA3)
\end{lstlisting}
\end{document}

追加情報:

  1. 私はMacTeX 2014を使用しています。
  2. パッケージを使用しようとしましたunderscoreが、役に立ちませんでした。
  3. 区切り文字を変更してみましたが、それでも効果はありませんでした。

答え1

問題は、設定\underbar内のコマンドですmoredelim:unicode-mathこれは数学コマンドです。代わりにulem、たとえばパッケージを使用できます\uline:

\usepackage{ulem}
...

`moredelim=[is][\uline]{_}{_},`

関連情報