有没有办法在 LaTeX 中正确显示 JSX?

有没有办法在 LaTeX 中正确显示 JSX?

我有这个简单的 jsx 代码示例。我该如何更改设置以使代码片段的缩进正确?顺便说一句,如果有人有一个不错的链接或列表示例,支持 golang 等较新语言的语法高亮,请告诉我!

\usepackage{listings}
\usepackage{xcolor} 
\definecolor{hellgelb}{rgb}{1,1,0.9}
\lstset{
  float=hbp,
  basicstyle=\ttfamily\color{black}\small\smaller,
  identifierstyle=\color{black},
  keywordstyle=\color{black},
  stringstyle=\color{black},
  commentstyle=\color{black},
  columns=false,
  tabsize=2,
  frame=single,
  extendedchars=true,
  showspaces=false,
  showstringspaces=false,
  numbers=left,
  numberstyle=\tiny,
  breaklines=true,
  backgroundcolor=\color{hellgelb},
  breakautoindent=false
}

在此处输入图片描述

答案1

就像问题评论中所建议的那样,有一个JSX 词法分析器可以提供帮助,如果你使用铸造

为了使用 minted,您需要安装一个附加包(通常称为 pygments 或 python-pygments)。

要安装 JSX 词法分析器,您需要以管理员身份运行:

pip install jsx-lexer

此后,“jsx”语言应该可以被 minted 识别:

\documentclass{article}

\usepackage{minted}

\begin{document}

\begin{listing}[H]
  \centering
  \begin{minted}{jsx}
class HelloMessage extends React.Component {
  render() {
    return (
      <div>
        Hello {this.props.name}
      </div>
    );
  }
}

ReactDOM.render(
  <HelloMessage name="Taylor" />,
  document.getElementById('hello-example')
);
  \end{minted}

  \caption{Example of JSX code}
\end{listing}

\end{document}

请记住,您需要传递-shell-escape标志pdflatex才能使用 minted。

结果应该是这样的:

Latex 中的 JSX 代码示例

相关内容