我有这个简单的 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。
结果应该是这样的: