有时候你需要自制一份课件PPT或者手写笔记的关键词索引,用来开卷考试查阅PPT或者复习查阅笔记时能快速定位查阅内容位置,这时你可能想要一个按字母顺序排序的列表来帮助构建需要的索引。

LaTeX自身的index本身并不支持这样的功能,修改起来也颇为麻烦,这里使用datatool包,创建一个数据库,然后添加条目,最后排序输出。

创建list数据库:

 DTLifdbexists{list}{DTLcleardb{list}}{DTLnewdb{list}}

定义添加行的命令sortitem

newcommand{sortitem}[2]{%DTLnewrow{list}%DTLnewdbentry{list}{label}{#1}%DTLnewdbentry{list}{description}{#2}%
}

定义条目输出命令showlist ,这里使用列表输出,用到了

纸鸢:段尾右对齐指定语句​zhuanlan.zhihu.com

中定义的myright 命令来右对齐标记(页码或者其他),以及DTLforeach命令来遍历数据库中的条目

newcommandshowlist{begin{itemize}DTLforeach*{list}{theLabel=label,theDesc=description}{%item {sffamilybfseriestheLabel}myright{theDesc}}%end{itemize}%
}

最后定义sortedlist环境来收集条目,录入数据库

newenvironment{sortedlist}{%DTLifdbexists{list}{DTLcleardb{list}}{DTLnewdb{list}}%
}{%setlengthcolumnseprule{0.4pt}begin{paracol}{2}section*{Original order}showlistDTLsort{label}{list}%switchcolumnsection*{Alphabetical order}showlistend{paracol}
}

测试一下

begin{sortedlist}sortitem{software engineering difficulties}{1-3}sortitem{requirements analysis}{1-8}sortitem{design and architecture}{0-1}sortitem{architecture-centric design}{0-2}sortitem{non-functional properties and design}{0-3}
end{sortedlist}

输出正常

完整代码:

documentclass[a4paper,12pt]{article}
usepackage{datatool}
usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry}
usepackage{paracol}
usepackage{enumitem}defmyright#1{%{unskipnobreakhfilpenalty50hskip1emhbox{}nobreakhfil{itshape #1}parfillskip=0pt finalhyphendemerits=0 par}}newcommand{sortitem}[2]{%DTLnewrow{list}%DTLnewdbentry{list}{label}{#1}%DTLnewdbentry{list}{description}{#2}%
}newcommandshowlist{begin{itemize}DTLforeach*{list}{theLabel=label,theDesc=description}{%item {sffamilybfseriestheLabel}myright{theDesc}}%end{itemize}%
}newenvironment{sortedlist}{%DTLifdbexists{list}{DTLcleardb{list}}{DTLnewdb{list}}%
}{%setlengthcolumnseprule{0.4pt}begin{paracol}{2}section*{Original order}showlistDTLsort{label}{list}%switchcolumnsection*{Alphabetical order}showlistend{paracol}
}begin{document}
begin{sortedlist}sortitem{software engineering difficulties}{1-3}sortitem{requirements analysis}{1-8}sortitem{design and architecture}{0-1}sortitem{architecture-centric design}{0-2}sortitem{non-functional properties and design}{0-3}
end{sortedlist}
end{document}

html列表按时间排序代码_按字母顺序排序的列表相关推荐

  1. html列表按时间排序代码_把 Linux 上的文件列表和排序玩出花来 | Linux 中国

    导读:Linux 命令可以提供文件的详细信息,也可以自定义显示的文件列表,甚至可以深入到文件系统的目录中,只要你愿意看.本文字数:5090,阅读时长大约:6分钟https://linux.cn/art ...

  2. android 字母排序,android – 按字母顺序排序列表

    我在一个应用程序上工作,我用已安装的应用程序创建一个列表,让用户选择一个.除了一件事,我一切都在工作;按字母顺序排序.这是我正在使用的代码: private List loadInstalledApp ...

  3. php 对字母排序,PHP按字母顺序排序

    在MySQL中: SELECT * FROM table ORDER BY name ASC 在PHP中: $fruits = array("lemon", "orang ...

  4. 在 JavaScript 中按字母顺序排序 - 如何在 JS 中按名称排序

    有时您可能有一个单词数组,您希望按字母顺序(从 az 开始)对每个单词进行排序.或者,您可能有一个包含用户信息(包括名称)的对象数组,例如,您希望在其中按用户名称对用户进行排序. 我们可以在 Java ...

  5. 对只含英文字母的字符串按字母顺序排序,相同的字母大写在前,小写在后

    对只含英文字母的字符串按字母顺序排序,相同的字母大写在前,小写在后 如 AxcBsYuC 排序得 ABCcxY 提示:利用map实现自定义的ascii码表.再用冒泡法排序. 在这里插入代码片 publ ...

  6. python单词按字典序输出_python按字典顺序输出单词频率_Python:如何添加频率行数并使用字典按字母顺序排序......

    我有一个项目,我必须通过sys.stdin获取每个单词的频率数量 我已经获得了这部分.第二部分是获取每个单词的行号,我觉得我已经获得了,但我不能在输出字符串中添加行号,并且我也无法找到一种按字母顺序排 ...

  7. java abc排序_Java实现按照大小写字母顺序排序的方法

    本文实例讲述了Java实现按照大小写字母顺序排序的方法.分享给大家供大家参考,具体如下: 这里排序需要得到的结果按字母顺序.如:a-----z... import java.util.*; /** * ...

  8. 将1月~n月将英文月份按字母顺序排序并输出

    从键盘输入一个数字n,从1月~n月将英文月份按字母顺序排序并输出. 若n不合法,输出"Illegal" #include<stdio.h> #include<st ...

  9. php 字母顺序排序,按字母顺序排序数组php

    因为标题建议我想在php中按字母顺序排序数组. $arr = array( 'k' => 'pig', 'e' => 'dog' ) 会成为 $arr = array( 'e' => ...

最新文章

  1. php要求输入是个数求平均值、_【227期】EXCEL求平均值的各种套路汇聚合,最后难倒70%的人...
  2. KeilKill.bat删除keil编译生成的过程文件
  3. OpenCV 加载图像、转换图像和保存图像
  4. java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext崩溃解决
  5. 有向加权图 最大弱连通分支_买入加权组合式等价对敲
  6. Visual Studio项目引用出现感叹号怎么办?
  7. 01.微服务系列介绍
  8. hash()函数的实现
  9. CPU:别再拿我当搬砖工!
  10. 批量读写变换图片(转)
  11. 设计轻松应用素材 | 免抠png和图标上哪找
  12. jQuery多选列表框插件Multiselect
  13. Nutanix推出自动化功能,助力企业保证业务连续性
  14. java xlsx怎么转换成excel格式_pdf文件怎么转换成html网页格式?用什么方法来转换?...
  15. 企业数字化转型,运营人员如何构建数字化运营能力?
  16. Win8驱动的兼容性问题
  17. c语言dp算法,通过leetcode学算法——动态规划(dp)
  18. 小米开源:站在巨人肩膀上的创新
  19. sqlserver中65535_Sql Server数据导出EXCEL 解决行数超过65535问题
  20. 使用百度API获取位置信息

热门文章

  1. hive java udf_UDF_Hive教程_田守枝Java技术博客
  2. rust拆掉墙_rust怎么拆自己的墙
  3. 项响琴C语言书籍在线浏览,电子琴 c语言程序
  4. TTYL的完整形式是什么?
  5. Java Formatter toString()方法与示例
  6. c#中将整数转化为字符串_在C#中将字符串转换为字节数组
  7. Java ObjectStreamClass getSerialVersionUID()方法(带示例)
  8. gojs 节点右键点击事件_SWMM快速建模方法(3)—建立管线上下游节点编号
  9. 谷歌tts android手机自带引擎,Android使用讯飞语记引擎实现中文TTS
  10. 小波基函数构造matlab,五种常见小波基函数及其matlab实现全解.docx