如何在列表环境中添加破折号?

如何在列表环境中添加破折号?

我正在为一段代码编写文档。其中定义了一个包含破折号的字符串,我想引用它来展示已定义对象的示例。

问题是破折号,我无法在列表环境中设置它。下面的 MWE 显示了我迄今为止尝试过的方法。输入“---”只会打印三个连字符,\emdash{}不会打印任何内容,从而退出列表环境打印破折号,但它会给字符串格式带来麻烦:空格字符没有按应有的方式显示(如示例 1 中所示)。

所以问题归结为:如何在列表环境中设置破折号,如果这是不可能的,我该如何以不改变周围字符串的方式退出列表环境?

这是MWE:

\documentclass{article}

\usepackage{color}
\usepackage{listings}
\usepackage[utf8]{inputenc}

\lstdefinestyle{java}{
  language          = java,
  stringstyle       = \color{red}
 }

\begin{document}

\begin{lstlisting}[style=java,escapechar=!]
pro: {
    descr1: " -- This is some text",
    descr2: " !{\color{red}---}! Here is some more text",
    descr3: " !\emdash{}! And a third version",
    descr4: " !{\color{red}—}! No. 4",
    descr5: " !{\color{red}\textemdash}! No. 5",
    descr6: " \textemdash No. 6"
}
\end{lstlisting}

\end{document}

在此处输入图片描述

答案1

使用literate

\documentclass{article}

\usepackage{color}
\usepackage{listings}
\usepackage[utf8]{inputenc}

\lstdefinestyle{java}{
  language    = java,
  stringstyle = \color{red},
  literate    ={--}{\textendash}1 {---}{\textemdash}2,
 }

\begin{document}

\begin{lstlisting}[style=java]
pro: {
    descr1: " -- This is some text",
    descr2: " --- Here is some more text",
}
\end{lstlisting}

\end{document}

在此处输入图片描述

相关内容