我想在Verbatim
环境中启用自动换行;此外我不想使用它,lstlisting
因为它不会具有完全相同的字体形状,Verbatim
并且逻辑编程中使用的一些其他特殊字符\+
不会显示相同的内容。我应该只使用Verbatim
环境,但似乎没有换行选项。fancyvrb
也不起作用,因为我们需要知道何时换行。我需要它是自动的。
答案1
这里有个小技巧。它将逐行的内容保存在允许换行的垂直框内:
\documentclass[a5paper]{article}
\usepackage[T1]{fontenc}
\usepackage{fancyvrb}
\usepackage{showframe}
\usepackage{xparse}
\ExplSyntaxOn
\box_new:N \l_fvrb_box
\tl_new:N \l_fvrb_tl
\RenewDocumentCommand \FancyVerbFormatLine { m }
{
\hbox_set:Nn \l_fvrb_box { #1 }
\dim_compare:nNnTF { \box_wd:N \l_fvrb_box }>{ \linewidth }
{%box to big
\fvrb_use_linecontents:n { #1 }
}
{%box fits
\box_use:N \l_fvrb_box
}
}
\cs_new:Npn \fvrb_use_linecontents:n #1
{
\group_begin:
\vbox_set:Nn \l_fvrb_box
{\hsize=\linewidth\parindent0pt
\advance\hsize by -2em
\hspace*{-2em}
#1
}
\hspace*{2em}\box_use:N \l_fvrb_box
\group_end:
}
\ExplSyntaxOff
\begin{document}
\begin{Verbatim}
asdsadsadsa asd a
asdsadsadsa asd asd asd sa sd sd as sdadas sa+ dsa +sa++94+4+ +4sd+as
\end{Verbatim}
\end{document}