如何说服 fancyvrb 发出过多警告?

如何说服 fancyvrb 发出过多警告?

以下文件

\documentclass{article}
\usepackage{fancyvrb}
\begin{document}
\hsize=1cm
\begin{Verbatim}
foo bar foo bar foo bar foo bar foo bar
\end{Verbatim}
\end{document}

不是发出警告。但我想要查看某物是否比其应有的大小大。我该怎么办?

(Verbatim 环境是由 pygmentize 生成的,因此我更喜欢不涉及更改它的解决方案。)

答案1

你可以做

\RecustomVerbatimEnvironment{Verbatim}{BVerbatim}{}

至少在测试期间。但是, 的一些选项Verbatim不适用于BVerbatim

答案2

这是一个非常晚的答案,只是为了帮助未来的读者。

fancyvrb使用类似于 的东西\hbox to \linewidth{<content of a line>\hss}来打印每一行。正是\hss禁止了过满的\hbox消息。将 更改为\hss\hfil即删除可收缩性但保留可拉伸性可能会有所帮助。

\documentclass{article}
\usepackage{fancyvrb}
\usepackage{lipsum}

\makeatletter
\def\FV@ListProcessLine#1{%
  \hbox to \hsize{%
    \kern\leftmargin
    \hbox to \linewidth{%
      \FV@LeftListNumber
      \FV@LeftListFrame
      \FancyVerbFormatLine{#1}\hfil % change \hss to \hfil
      \FV@RightListFrame
      \FV@RightListNumber}%
    \hss}}
\makeatother

\begin{document}

\newlength{\xhsize}
\settowidth{\xhsize}{\texttt{foo bar foo bar foo bar foo bar foo bar}}

\hsize=\xhsize

No overfull hbox
\begin{Verbatim}
foo bar foo bar foo bar foo bar foo bar
\end{Verbatim}

\hsize=\xhsize
\advance\hsize -10pt

Overfull hbox 10pt
\begin{Verbatim}
foo bar foo bar foo bar foo bar foo bar
\end{Verbatim}
\end{document}

相关内容