当我使用该包插入数学代码时listing
,我发现它将 at 识别为字母而不是运算符。
这就导致,例如当输入时N@Table[10,5]
,LaTeX 编译器不会认为N
和Table
是关键字,但会检查N@Table
并得出结论,这不是一个关键字。
否则我应该告诉 mathematica“在周围插入一个空格@
”,但我也不知道如何做到这一点。
代碼:
\documentclass[a4paper,10pt]{article}
\usepackage{listings}
\begin{document}
\begin{lstlisting}[language=Mathematica,frame=single]
N@Table
N @ Table
\end{lstlisting}
\end{document}
答案1
现在我解决了这个问题。这深深地隐藏在文档内部。
这里可以使用一个名为的选项alsoother
。(请注意倒数第二行。)我的完整代码:
\lstdefinestyle{mma}{
% backgroundcolor=\color{white}, % choose the background color; you must add \usepackage{color} or \usepackage{xcolor}; should come as last argument
% basicstyle=\footnotesize, % the size of the fonts that are used for the code
% breakatwhitespace=false, % sets if automatic breaks should only happen at whitespace
% breaklines=true, % sets automatic line breaking
% captionpos=b, % sets the caption-position to bottom
commentstyle=\itshape\color{green!60!black}, % comment style
% deletekeywords={...}, % if you want to delete keywords from the given language
escapeinside={`!}{!`)}, % if you want to add LaTeX within your code
% extendedchars=true, % lets you use non-ASCII characters; for 8-bits encodings only, does not work with UTF-8
% firstnumber=1000, % start line enumeration with line 1000
frame=l, % adds a frame around the code
% keepspaces=true, % keeps spaces in text, useful for keeping indentation of code (possibly needs columns=flexible)
keywordstyle=\bfseries\color{blue}, % keyword style
language=Mathematica, % the language of the code
morekeywords={Echo,FileNameJoin,Log10}, % if you want to add more keywords to the set
numbers=left, % where to put the line-numbers; possible values are (none, left, right)
numbersep=5pt, % how far the line-numbers are from the code
numberstyle=\tiny\color{gray}, % the style that is used for the line-numbers
rulecolor=\color{black}, % if not set, the frame-color may be changed on line-breaks within not-black text (e.g. comments (green here))
% showspaces=false, % show spaces everywhere adding particular underscores; it overrides 'showstringspaces'
% showstringspaces=false, % underline spaces within strings only
% showtabs=false, % show tabs within strings adding particular underscores
% stepnumber=2, % the step between two line-numbers. If it's 1, each line will be numbered
stringstyle=\color{purple!40!black}, % string literal style
tabsize=2, % sets default tabsize to 2 spaces
% title=\lstname % show the filename of files included with \lstinputlisting; also try caption instead of title
alsoother={@,_}, % Page 46 of document, make these into other (= operator)
}