该listings
软件包不支持YAML开箱即用。是否存在扩展了listings
YAML 支持的包?更一般地说,是否有一个好的扩展列表listings
?
答案1
这 ”铸造« 包在这里是您的好朋友。它使用 Python Pygments 作为语法高亮的后端。其中一个 Pygments 词法分析器用于 YAML。格式化 YAML 脚本的方法可能如下所示。
\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage{minted}
\begin{document}
\section{The YAML Language}
\begin{minted}[
gobble=4,
frame=single,
linenos
]{yaml}
--- !clarkevans.com/^invoice
invoice: 34843
date : 2001-01-23
bill-to: &id001
given : Chris
family : Dumars
address:
lines: |
458 Walkman Dr.
Suite #292
city : Royal Oak
state : MI
postal : 48046
ship-to: *id001
product:
- sku : BL394D
quantity : 4
description : Basketball
price : 450.00
- sku : BL4438H
quantity : 1
description : Super Hoop
price : 2392.00
tax : 251.42
total: 4443.52
comments: >
Late afternoon is best.
Backup contact is Nancy
Billsmer @ 338-4338.
\end{minted}
\end{document}
有关该软件包的详细信息和进一步的定制选项,请参阅其手动的。
答案2
灵感来自这个答案对于 JSON,我使用 listings 包实现了与 YAML 类似的样式:
\usepackage{xcolor}
\usepackage{listings}
\lstdefinestyle{yaml}{
basicstyle=\color{blue}\footnotesize,
rulecolor=\color{black},
string=[s]{'}{'},
stringstyle=\color{blue},
comment=[l]{:},
commentstyle=\color{black},
morecomment=[l]{-}
}
\begin{lstlisting}[style=yaml]
hello: world
info:
title: hello
version: world
components:
- This is a member
\end{lstlisting}
结果:
它的工作原理是将默认颜色 ( basicstyle
) 设置为蓝色,然后将其他所有内容标记为注释。例如,将分号 ( )后的comment=[l]{:}
行的其余部分 ( ) 标记为注释[l]
{:}