1

When I am inserting mathematica codes with the package listing, I find that it recognize at as a letter rather than an operator.

This comes into a result that, for example when typing N@Table[10,5], the latex complier won't think that N and Table are keywords, but will check N@Table and conclude that this is not a keyword.

Otherwise I should tell mathematica "Insert a space arround @", but I do not know how to do this, either.

Codes:

\documentclass[a4paper,10pt]{article}
\usepackage{listings}
\begin{document}
\begin{lstlisting}[language=Mathematica,frame=single]
N@Table
N @ Table
\end{lstlisting}
\end{document}

result: enter image description here Expected result: both N and Table in the first line are in bold face.

2
  • 1
    Without seeing you code, giving correct suggestion is not possible, please post the MWE of your code... – MadyYuvi Sep 28 '20 at 4:47
  • 1
    @MadyYuvi Sorry. I have added the minimum working code now. – CY Qian Oct 4 '20 at 9:38
1

Now I solve this question. This is hidden deeeeeeply inside the document.

An option named alsoother can be used here. (Note the last but two line.) My Full code:

\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)
}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.