我该如何设置此模板以使长代码不超出页面范围?

我该如何设置此模板以使长代码不超出页面范围?

我实际上问的是同样的问题 这里:https://tex.stackexchange.com/questions/87646/problem-formatting-java-code-in-my-latex-document-overshooting-the-page

然而,我尝试使用给我的解决方案(对于我使用的示例确实有效)但似乎对我想要使用的包不起作用(下面的示例)。

我已经查看了 texdoc 文件中的标题和浮点数,但也没有找到有关如何执行此操作的任何信息。

\usepackage{float}
\usepackage{caption}
\begin{document}
\floatstyle{ruled}
\newfloat{program}{thp}{lop}
\floatname{program}{Program}
\begin{program}
\begin{verbatim}

   if(args.length>0){
       while(expression){

                BufferedReader xReader=new BufferedReader(new FileReader(IOUtil.fileName(args[0])));


               `BufferedReader yReader=new BufferedReader(new FileReader(IOUtil.fileName(args[1]))); } }`



\end{verbatim}
\caption{}
\end{program}
\end{document}

答案1

在此处输入图片描述

这将重新定义逐字空间以允许中断:

\documentclass{article}
\usepackage{float}
\usepackage{caption}
\begin{document}
\floatstyle{ruled}
\newfloat{program}{thp}{lop}
\floatname{program}{Program}
\begin{program}

\makeatletter
\def\@xobeysp{\ \hfil\penalty\z@\hfilneg}
\begin{verbatim}

   if(args.length>0){
       while(expression){

                BufferedReader xReader=new BufferedReader(new FileReader(IOUtil.fileName(args[0])));


               `BufferedReader yReader=new BufferedReader(new FileReader(IOUtil.fileName(args[1]))); } }`



\end{verbatim}
\caption{}
\end{program}
\end{document}

相关内容