列表转义序列中的引号无法正确显示

列表转义序列中的引号无法正确显示

我正在尝试使用转义序列中的 \textcolor 为列表列表中的 HTML 代码中的某些部分着色。我在另一个代码片段中使用了这种技术,一切都运行良好。出于某种原因,编译时唯一没有出现错误的情况是当我使用德语引号时,但它们无法正确显示。代码作为简明示例基本上是这样的:

\documentclass[11pt,a4paper,xcolor=dvipsnames]{report}
\usepackage[latin9]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{listings}
\usepackage[dvipsnames]{xcolor}

\lstset{basicstyle=\footnotesize\ttfamily,frame=leftline,escapechar=@}

\begin{document}
\begin{lstlisting}[language=HTML]
...
<input type="text" @\textcolor{Green}{id="`hex"'}@ /> 
... 
<input type="text" @\textcolor{Green}{id="`string"'}@ />
\end{lstlisting}
\end{document}

结果是这样的:

在此处输入图片描述

所以我需要知道为什么会发生这种情况,我该怎么办,以及我是否可以让它与英文引号一起使用?

答案1

您可以通过新命令\entextcolor(使用\foreignlanguagefrom babel)更改当前语言:

\documentclass[11pt,a4paper,xcolor=dvipsnames]{report}
\usepackage[latin9]{inputenc}
\usepackage[english,ngerman]{babel}
\usepackage{listings}
\usepackage[dvipsnames]{xcolor}

\lstset{basicstyle=\footnotesize\ttfamily,frame=leftline,escapechar=@}

\newcommand\entextcolor[2]{\foreignlanguage{english}{\textcolor{#1}{#2}}}

\begin{document}
\begin{lstlisting}[language=HTML]
...
<input type="text" @\entextcolor{Green}{id="`hex"'}@ /> 
... 
<input type="text" @\entextcolor{Green}{id="`string"'}@ />
\end{lstlisting}
\end{document}

在此处输入图片描述

相关内容