我正在使用minted
漂亮的打印控制台输出,刚刚注意到--
程序选项的双连字符(即 )变成了半连字符(即 )–
。 MWE 是:
\documentclass{memoir}
\usepackage{minted}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX}
\setmonofont{Courier}
\begin{document}
\begin{minted}{bash}
0-1--2---3
\end{minted}
\end{document}
我看到:
而不是我所希望的,多个单独的连字符。
fontspec
在制作 MWE 时,我意识到这可能与选项的交互有关Ligatures=TeX
,但我找不到可靠的方法来选择性地禁用该选项——我可以在 XeLaTeX 中执行此操作,但不能在 luaLaTeX 中执行此操作。最好只是确保单声道字体在没有 的情况下加载吗Ligatures=TeX
?
答案1
你的猜测是正确的:
\documentclass{memoir}
\usepackage{minted}
\usepackage{fontspec}
% disable the default 'Ligatures=TeX' option
\defaultfontfeatures{}
\setmonofont{Courier}
\begin{document}
\begin{minted}{bash}
0-1--2---3
\end{minted}
\end{document}
如果您希望在等宽字体的文本中使用连字,但在 中不使用minted
,请使用新的字体系列。需要进行一些小改动才能检索正确的字体系列名称。
\documentclass{memoir}
\usepackage{minted}
\usepackage{fontspec}
\setmainfont{TeX Gyre Termes}
\setmonofont{Courier}[Ligatures=TeX]
\defaultfontfeatures{}
\newfontfamily\noligsmonofamily[NFSSFamily=noligsmonofamily]{Courier}
\setminted{fontfamily=noligsmonofamily}
\begin{document}
This---has---ligatures
\texttt{This---has---ligatures}
\begin{minted}{bash}
0-1--2---3
\end{minted}
\end{document}