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:
- Ich verwende MacTeX 2014.
- Ich habe versucht, das Paket zu verwenden
underscore
, aber das hat nicht geholfen. - Ich habe versucht, das Trennzeichen zu ändern, aber das hat auch nicht geholfen.
Antwort1
Das Problem ist der \underbar
Befehl in deiner moredelim
Einstellung: Dabei unicode-math
handelt es sich um einen mathematischen Befehl. Du könntest z. B. das ulem
Paket verwenden und \uline
stattdessen:
\usepackage{ulem}
...
`moredelim=[is][\uline]{_}{_},`