minted 中 `--` 的处理

minted 中 `--` 的处理

我正在使用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}

我看到:

lualatex 输出

而不是我所希望的,多个单独的连字符。

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}

在此处输入图片描述

相关内容