latex缩进与对齐_科学网—Latex算法排版,不同行缩进不同 - 张鹏的博文

本文介绍了如何在LaTeX中实现特定的算法排版要求,包括算法行号左对齐、右边界自动换行、悬挂缩进以及跨页显示。通过设置环境和调整参数,实现了类似Word的悬挂缩进效果,并避免了algorithm2e和clrscode宏包的局限性。代码示例和最终排版效果一并展示。
摘要由CSDN通过智能技术生成

想在latex中以这样的版式描述算法:

1 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|

xxxxxxxxxxxxxxxxxxxxxxx/

2 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/

3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/

4     xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/

5     xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|

xxxxxxxxxxxxxxxxxx/

6     xxxxxxxxxxxxxxx/

7 xxxxxxxxxxxxx/

8 xxxxxxxxx/

说明:

1)“算法行”指带标号的行,“文本行”指行文产生的行,如上段算法描述中有8个算法行,11个文本行。

2)“|”表示右边界(自动换行),“/”表示硬回车(手动换行)。

(将上述算法版式复制到记事本中,可发现右边界实际上都是垂直对齐的。)

要求:

1)算法不浮动,能够跨页;

2)每个算法行的行号都在最左端,垂直对齐,连续编号;

3)每个算法行到达右边界(用“|”表示)后,自动换行;且该算法行的后续文本行均向右缩进若干(比如2个字符)距离,其版式类似于Word中的“悬挂缩进”;参见第1、第5算法行;

4)每产生一次嵌套,嵌套的算法行除标号外,均整体向右缩进若干(比如4个字符)距离;参见第4、第5、第6算法行。

说明:为什么没有使用algorithm2e和clrscode宏包。

1)algorithm2e产生的算法像图片和表格一样,是浮动的;

2)algorithm2e产生的算法不能跨页;

3)algorithm2e产生的算法,处理超长行时能自动换行,但不能实现悬挂缩进;

4)clrscode产生的算法风格很好很独特,但个人还是喜欢在for、while、if之后有end的算法书写方式;

5)clrscode产生的算法不能处理超长行;

6)clrscode产生的算法不能跨页。

在bbs.ctex.org上发帖询问,经过LeoLiu的帮助,终于实现所要求的算法版式。原帖见http://bbs.ctex.org/forum.php?mod=viewthread&tid=62650。下面贴出代码及排版效果图,与大家共享。

\documentclass{article}

% Thanks to LeoLiu at http://www.ctex.org.

\newcounter{algleo}

\newlength{\lefttab}

\newlength{\numberoffset}

\setlength{\numberoffset}{-

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值