铸造 escapeinside 和代码连字符

铸造 escapeinside 和代码连字符

在列表中使用时,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}我从文档中获取了这个示例lstfiracodegithub 问题

输出

相关内容