LuaLaTeX und Listings funktionieren nicht, während XeLaTex einwandfrei funktioniert

LuaLaTeX und Listings funktionieren nicht, während XeLaTex einwandfrei funktioniert

Ich versuche, von XeLaTeX auf LuaLaTeX umzusteigen. Ich habe einige Listings mit speziellen Trennzeichen (einem Unterstrich). Das folgende MWE wird unter XeLaTeX einwandfrei kompiliert, gibt aber unter LuaLaTeX den folgenden Fehler aus:

Fehlermeldung:

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

MWE:

%!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}

Zusätzliche Information:

  1. Ich verwende MacTeX 2014.
  2. Ich habe versucht, das Paket zu verwenden underscore, aber das hat nicht geholfen.
  3. Ich habe versucht, das Trennzeichen zu ändern, aber das hat auch nicht geholfen.

Antwort1

Das Problem ist der \underbarBefehl in deiner moredelimEinstellung: Dabei unicode-mathhandelt es sich um einen mathematischen Befehl. Du könntest z. B. das ulemPaket verwenden und \ulinestattdessen:

\usepackage{ulem}
...

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

verwandte Informationen