我正在尝试在伪代码上设置距左侧 7 毫米的边距。我使用的是 lineno 包,我写道:
\lipsum[2-4]
\begin{alltt}{\footnotesize{\internallinenumbers
S = \(\emptyset\)
while ((not ottimo(S) ) and (C \(\ne\) \(\emptyset\)))
x = seleziona(C)
C = C – \{x\}
if (ammissibile(S U \{x\}))
S = S U \{x\}
if (ottimo(S))
return S
else
return \(\emptyset\)
}}
\end{alltt}
\lipsum[2-4]
我怎样才能将边距设置为距段落开头 7 毫米,以使其看起来与文档的其余部分没有区别?
例如:我得到此输出:
blablabla
blablabla
1 pseudocode line1
2 pseudocode line2
blablabla
blablabla
而不是这样:
blablabla
blablabla
1 pseudocode line1
2 pseudocode line2
blablabla
blablabla
要清楚的是,我希望“1”位于“nibh”正下方,而不是移动到左边
答案1
坏消息是你不能放入alltt
。minipage
但是,由于它是作为列表实现的,因此你可以将其与其他列表嵌套。我没有创建新列表来实现所需的缩进,而是使用了环境quote
。
行号(右侧)的位置由 控制\linenumbersep
。您必须猜测要将其做多宽才能对齐第一个数字。甚至\settowidth{...}{\tiny 10}
太宽了。
\documentclass{article}
\usepackage{alltt}
\usepackage{lineno}
\usepackage{lipsum}% MWE only
\usepackage{showframe}% MWE nly
\begin{document}
\lipsum[2-4]
\begin{quote}\linenumbersep=-5pt
\begin{alltt}\footnotesize\internallinenumbers
S = \(\emptyset\)
while ((not ottimo(S) ) and (C \(\ne\) \(\emptyset\)))
x = seleziona(C)
C = C – \{x\}
if (ammissibile(S U \{x\}))
S = S U \{x\}
if (ottimo(S))
return S
else
return \(\emptyset\)
\end{alltt}
\end{quote}
\lipsum[2-4]
\end{document}