我想包含 Lua 脚本文件中的一些代码。它包含一些注释,其中包括一些 latex 样式的不完整公式...
Latex 想要发挥它的魔力并尝试插入 $ 和其他东西,但我无法告诉它什么都不做。
\documentclass[12pt,paper=a4,]{scrreprt}
\usepackage{listings}
\lstdefinestyle{mystyle}{%
inputencoding=utf8,
extendedchars=true, % i have some special chars...
mathescape=false, % i do not like fancy formulas
escapeinside={}, % i do not like to escape something
escapechar={}, % so i have no char defined
texcl=false % and i do not wanna make fancy comments too..
}
\lstset{style=mystyle}
\lstset{literate=% % if i add those characters here i got less errors of not recognized characters
{λ}{{\lambda}}1
{µ}{{\micro}}1
{^}{{\^{}}}1
{²}{{\^{2}}}1
}
\usepackage{listingsutf8}
\begin{document}
\begin{lstlisting}[language={[5.3]Lua}]
-- n^2-1=6.255+\frac{2.316λ^2}{λ^2-0.6263^2}+\frac{2.765λ^2}{λ^2-32.935^2}
\end{lstlisting}
\end{document}
我希望 Latex 只输出那些字符。无需格式化,无需特殊...只需输出它。
错误为:缺少$插入、额外的},或在数学模式下忘记了$无效命令......
使用 verbatim 环境的相同代码运行“完美”,但它无法解决我的问题,因为这只是一个巨大的脚本文件的注释。我喜欢语法突出显示其余部分。
答案1
您收到的错误(但未完整显示)是
! Missing $ inserted.
<inserted text>
$
l.24 -- n^2-1=6.255+\frac{2.316λ
^2}{λ^2-0.6263^2}+\frac{2.765λ^2}{λ...
换行符准确地显示了 TeX 到达的位置。您定义了 λ 来执行数学命令,\lambda
因此出现错误。
\documentclass[12pt,paper=a4,]{scrreprt}
\usepackage{listings}
\lstdefinestyle{mystyle}{%
inputencoding=utf8,
extendedchars=true, % i have some special chars...
mathescape=false, % i do not like fancy formulas
escapeinside={}, % i do not like to escape something
escapechar={}, % so i have no char defined
texcl=false % and i do not wanna make fancy comments too..
}
\lstset{style=mystyle}
\lstset{literate=% % if i add those characters here i got less errors of not recognized characters
{λ}{{$\lambda$}}1
{µ}{{$\micro$}}1
{^}{{\textasciicircum}}1
{²}{{\textasciicircum{2}}}1
}
\usepackage{listingsutf8}
\begin{document}
\begin{lstlisting}[language={[5.3]Lua}]
-- n^2-1=6.255+\frac{2.316λ^2}{λ^2-0.6263^2}+\frac{2.765λ^2}{λ^2-32.935^2}
\end{lstlisting}
\end{document}
答案2
LaTeX 之所以插入,是$
因为它识别出您正试图以数学模式书写,但这是错误的。因此,它会尝试为您纠正错误。下面是一个示例,说明了如何在数学模式下进行操作,以及您在第一次编辑中提出的主要问题:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{natbib}
\usepackage{graphicx}
\title{}
\author{}
\usepackage{amsmath}
\usepackage{siunitx}
\begin{document}
\SI{1.55}{\micro\metre}
more text goes here
Foo is great, and uses:
$\epsilon_r= n^{2}-\kappa^{2}$
Bar is better, using the expression:
$\frac{2.316\lambda^{2}}{\lambda^{2}-0.6263^{2}}$
\end{document}
输出以下内容:
关于您更新的当前代码:
\documentclass[12pt, paper=a4]{scrreprt}
\usepackage{listings}
\lstdefinestyle{mystyle}{%
inputencoding=utf8,
extendedchars=true, % i have some special chars...
mathescape=false, % i do not like fancy formulas
escapeinside={}, % i do not like to escape something
escapechar={}, % so i have no char defined
texcl=false % and i do not wanna make fancy comments too..
}
\lstset{style=mystyle}
\lstset{literate=% % if i add those characters here i got less errors of not recognized characters
{λ}{{$\lambda$}}1
{µ}{{$\micro$}}1
{^}{{\textasciicircum}}1
{²}{{\textasciicircum{2}}}1
}
\usepackage{listingsutf8}
\begin{document}
\begin{lstlisting}[language={[5.3]Lua}]
n^2-1=6.255+\frac{2.316λ^2}{λ^2-0.6263^2}+
\frac{2.765λ^2}{λ^2-32.935^2}
\end{lstlisting}
\end{document}
使用 LuaLaTeX,并在第二个分数之前加一个换行符,输出如下:
据我所知,除非你写了类似的东西,否则不可能使用数学模式之外的东西:
this circle \( \circ \) is followed by the lambda symbol \( \lambda \)
第一个例子中的输出变成: