列表:不转义公式

列表:不转义公式

我想包含 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}

输出以下内容:

输出1

关于您更新的当前代码:

\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,并在第二个分数之前加一个换行符,输出如下:

输出2

据我所知,除非你写了类似的东西,否则不可能使用数学模式之外的东西:

this circle \( \circ \) is followed by the lambda symbol \( \lambda \)

第一个例子中的输出变成:

输出3

相关内容