我有启用连字符的 Fira Code作为我的默认单色字体使用fontspec
,但这似乎对verbatim
或lstlisting
环境没有任何影响。
为什么这些上下文不同,我该如何修复它以使这些连字符在任何地方都可用?
\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}