如何在逐字环境中启用连字?

如何在逐字环境中启用连字?

我有启用连字符的 Fira Code作为我的默认单色字体使用fontspec,但这似乎对verbatimlstlisting环境没有任何影响。

为什么这些上下文不同,我该如何修复它以使这些连字符在任何地方都可用?

\documentclass{article}

\usepackage{fontspec}
\setmonofont[Contextuals={Alternate}]{FiraCode}

\usepackage{listings}
\lstset{basicstyle=\ttfamily}

\begin{document}

\section{tt}

{\tt ->}

\section{verb}

\verb|->|

\section{verbatim}

\begin{verbatim}
->
\end{verbatim}

\section{lstlisting}

\begin{lstlisting}
->
\end{lstlisting}

\end{document}

使用 lualatex 渲染:

答案1

LaTeX通过 主动抑制逐字上下文中的-和连字。您可以更改/清空此列表,但请注意,它也会影响其他组合。 listings 的工作方式不同。在这里您可以使用 literate 选项。>\verbatim@nolig@list

\documentclass{article}
\usepackage{fontspec}
\setmonofont{FiraCode-Regular.otf}[Contextuals={Alternate}]
\usepackage{listings}
\lstset{basicstyle=\ttfamily,
        literate={->}{\texttt{->}}{1}}
\begin{document}
{\ttfamily ->  -- >>}


\verb|-> -- >>|

\makeatletter
\def\verbatim@nolig@list{}%
\makeatother
\verb|-> -- >>|

\begin{lstlisting}
-> -- >>
\end{lstlisting}
\end{document}

在此处输入图片描述

相关内容