如何格式化 xml?

如何格式化 xml?

你好,我使用以下 LaTeX 输出 xml 格式的数据,但是每行前面没有空格。

 \documentclass{minimal}
 \usepackage{etex},
 \begin{document}
 \medskip
 {\small\noindent
 \fbox{\begin{minipage}{6cm}
 <invoke operation="a3". . .>\\
 \hspace{3mm}<Handler>\\
 \ \ \ \ \ <operation="...." . . .>\\
 \ \ <Handler>\\
 </invoke>
 \end{minipage}}
 }
 \medskip
 \end{document}

输出如下: 在此处输入图片描述

但是,我希望输出这样的格式,因为每行都有一些空格对齐。 在此处输入图片描述

有人能帮我吗?

答案1

包裹listings1可以帮到你,正如 Torbjørn T. 在评论中建议的那样。它是为排版代码而设计的。

\documentclass{article}
\usepackage{listings}
\lstset{language=XML,basicstyle=\ttfamily,breaklines=true}

\begin{document}
\begin{lstlisting}
<invoke operation="a3" ...>
  <Handler>
    <operation="..." ...>
  <Handler>
</invoke>
\end{lstlisting}
\end{document}

其呈现效果相当好。

替代方案包括内置verbatim环境,但它不能轻易换行(您必须手动中断它们,而不仅仅是设置breaklines=true)。listings还提供语法突出显示;它很容易配置,但如果您指定语言(如我上面所述),默认情况下会有非常基本的突出显示language=XML

\begin{lstlisting}
<tag /> <!-- comment --> <![CDATA[foo]]>
\end{lstlisting}

(标签不受影响、注释为斜体、CDATA 不受影响)

注意斜体comment


脚注

  1. 我与它并无任何关联;我只是喜欢它。

相关内容