我想让 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={,}
。