在列表中使用时,Fira Code
您将获得编程/代码连字符。此行为必须启用,通常minted
不会产生任何特殊效果。但是,如果您使用任何可能有用的分隔符字符启用escapeinside
,则代码连字符将不起作用或分隔符无法应用。
在下面的例子中,您将看到第一个文本没有 escapeinside 但有代码连字(这很好),第二个文本打开了 escapeinside(分隔符是连字的一部分,代码连字被破坏,转义有效)并且第三个文本打开了 escapeinside(分隔符无害,代码连字有效,但转义无效)。
问题:如何使用带有连字一部分的分隔符的代码连字(关闭该连字)或使用Unicode分隔符escapeinside
?
% arara: lualatex: {shell: 1}
%!TeX TS-program=arara
\documentclass{article}
\usepackage{fontspec}
\setmonofont[Contextuals={Alternate}]{Fira Code}
\usepackage{minted}
\begin{document}
\begin{minted}{java}
if(a<=b)
return null;
\end{minted}
\begin{minted}[escapeinside=||]{java}
if(a<=b)|\textbf{test}|
return null;
\end{minted}
\begin{minted}[escapeinside=µµ]{java}
if(a<=b)µ\textbf{test}µ
return null;
\end{minted}
\end{document}
答案1
你好@TeXnician 我真的不想给出一个令人满意的答案,但对你的文件做了一些小的修改
% arara: lualatex: { shell: yes }
\documentclass{article}
\usepackage{fontspec}
\setmonofont{Fira Code}[
Contextuals=Alternate % Activate the calt feature
]
\usepackage{minted}
\begin{document}
\begin{minted}{java}
if(a<=b)
return null;
\end{minted}
\begin{minted}[escapeinside=||]{java}
if(a<=b)|\textbf{test}|
return null;
\end{minted}
\begin{minted}[escapeinside=µµ]{java}
if(a<=b)µ\textbf{test}µ
return null;
\end{minted}
\end{document}
arara
请注意命令版本中花括号之间的空格4.0
以激活 shell 转义,\setmonofont{Fira Code}
我从文档中获取了这个示例lstfiracode
和github 问题。