将较长的单词分成几行以适合框(inputminted?)

将较长的单词分成几行以适合框(inputminted?)

我想将长字符串(在 json 文件中标记为 url)放入框内,而不会溢出。据我所知,breaklines选项仅在字符串由分隔的单词组成时才有用。像 url 场景中那样的较长单词怎么办?在示例中,我如何将 url 拆分成更多行,以便将它们放入页面中或最好放入框内?

\documentclass{article}

\usepackage{floatrow}
\usepackage[newfloat]{minted}%
\newenvironment{code}{\captionsetup{type=listing}}{}
\SetupFloatingEnvironment{listing}{name=Data Format}

\begin{document}

    \begin{listing}[H]    
        \inputminted[frame=lines,
                       framesep=2mm,
                       fontsize=\footnotesize,
                       linenos=true,
                       breaklines=true,
                       xleftmargin=21pt,
                       tabsize=1]{json}{code/test.json} 
        \label{list:bbbbbbbbbb}
    \end{listing}

\end{document}

测试文件示例内容:( test.json)

{  
    "cID"               : 1,
    "test"              : "aaaaaaaaaaaaaaaa          bbbbbbbbbbbbbbbbbbb ccccccccccccccccccccccccccc",
    "url"               : "http://www.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccccccccccc.com"
}

它会导致 url 字段溢出: 在此处输入图片描述

答案1

您还可以添加选项breakanywhere=true(默认值为false,这就是它不会立即激活的原因)。请参阅fvextra包文档中的第 15 页及后续内容(与 的作者相同minted,并minted在后台使用此包)。

此选项也可以全局设置。您可能还对命令和类似命令感兴趣\breakanywheresymbolpre(请参阅文档)。

这是解决方案:

\documentclass{article}

\usepackage{floatrow}
\usepackage[newfloat]{minted}%
\newenvironment{code}{\captionsetup{type=listing}}{}
\SetupFloatingEnvironment{listing}{name=Data Format}

\begin{document}

    \begin{listing}[H]    
        \inputminted[frame=lines,
                       framesep=2mm,
                       fontsize=\footnotesize,
                       linenos=true,
                       breaklines=true,
                       breakanywhere=true,
                       xleftmargin=21pt,
                       tabsize=1]{json}{code/test.json} 
        \label{list:bbbbbbbbbb}
    \end{listing}

\end{document}

相关内容