设置距左行 7 毫米的边距,无内部行号

设置距左行 7 毫米的边距,无内部行号

我正在尝试在伪代码上设置距左侧 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

坏消息是你不能放入allttminipage但是,由于它是作为列表实现的,因此你可以将其与其他列表嵌套。我没有创建新列表来实现所需的缩进,而是使用了环境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}

演示

相关内容