minted 不会根据 breakfore 来断行

minted 不会根据 breakfore 来断行

我想让 minted 在“.”后换行,因此我使用breakbefore=.and,breakbytokenanywhere=true但 minted 仍然在“.”前换行,而不是在“.”后换行。我遗漏了什么?

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{minted}
\usepackage{upquote}
\setminted{fontsize=\small, breaklines=true, breakbefore=., breakafter={,}, breakbytokenanywhere=true, frame=single, numbers=left, numbersep=5pt, highlightcolor={red!20}, fontfamily=tt}
\begin{document}
\begin{minted}{python}
results = pd.DataFrame(data=results,columns=['Clusters C','Intertia']).set_index('Clusters')
\end{minted}
\end{document}

在此处输入图片描述

答案1

Marijn 的回答和评论涵盖了这里发生的大部分事情:breakbytokenanywhere可能不想要(除了之外,它还允许许多中断位置.),并且breakbefore优先级低于在空格处中断(它基于\discretionary)。

可以通过选项将空格替换为不间断空格,从而禁用空格处的断线showspaces, space=~showspaces使空格字符可见,然后space将默认的可见空格字符替换为不间断的不可见空格。

答案2

您还指定breakbytokenanywhere,这似乎优先于breakbefore。删除此设置会导致在 之前中断.

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{minted}
\usepackage{upquote}
\setminted{fontsize=\small, breaklines=true, breakbefore=., breakafter={,}, frame=single, numbers=left, numbersep=5pt, highlightcolor={red!20}, fontfamily=tt}
\begin{document}
\begin{minted}{python}
results = pd.DataFrame(data=results,columns=['Clusters','Intertia']).set_index('Clusters')
\end{minted}
\end{document}

在此处输入图片描述

还要注意,breakafter逗号是成组的,所以breakafter={,}

相关内容