algorithm2e
我正在以修改的方式使用算法环境,并减小了宽度(遵循解决方案这里),请参阅下文的 MWE。
这会产生一个溢出的盒子,我想将其删除。我该如何实现?
\documentclass{article}
\usepackage{lipsum}
\usepackage{etoolbox}
\usepackage[ruled]{algorithm2e}
\SetCustomAlgoRuledWidth{0.6\textwidth}
\makeatletter
\patchcmd{\@algocf@start}{%
\begin{lrbox}{\algocf@algobox}%
}{%
\rule{0.2\textwidth}{\z@}%
\begin{lrbox}{\algocf@algobox}%
\begin{minipage}{0.6\textwidth}%
}{}{}
\patchcmd{\@algocf@finish}{%
\end{lrbox}%
}{%
\end{minipage}%
\end{lrbox}%
}{}{}
\makeatother
\begin{document}
\lipsum[1]
\begin{algorithm}[h]
\caption{NaiveSelect}\label{algo:naive-option}
Some alg step \;
\end{algorithm}
\lipsum[2]
\end{document}
日志文件显示Overfull \hbox (276.00105pt too wide) in paragraph at lines 24--27
。
答案1
您需要修复\algowidth
。
\documentclass{article}
\usepackage{lipsum}
\usepackage{etoolbox}
\usepackage[ruled]{algorithm2e}
\AtBeginDocument{%
\SetCustomAlgoRuledWidth{0.6\textwidth}%
\setlength{\algowidth}{0.8\textwidth}%
}
\makeatletter
\patchcmd{\@algocf@start}
{\begin{lrbox}{\algocf@algobox}}
{%
\hspace*{0.2\textwidth}%
\begin{lrbox}{\algocf@algobox}%
\begin{minipage}{0.6\textwidth}%
}
{}{}
\patchcmd{\@algocf@finish}
{\end{lrbox}}
{\end{minipage}\end{lrbox}}
{}{}
\makeatother
\begin{document}
\lipsum[1]
\begin{algorithm}[h]
\caption{NaiveSelect}\label{algo:naive-option}
Some alg step \;
\end{algorithm}
\lipsum[2]
\end{document}
在开始文档时就已经确定了的值\textwidth
,因此最好在那里设置依赖于它的参数。
使用\hspace*{0.2\textwidth}
比规则更简单。