add current datatool
[ach-master.git] / src / texmf / doc / latex / datatool / samples / sample-sort.tex
1 % This file is public domain
2
3 \documentclass{article}
4
5 \usepackage{datatool}
6
7 % Sample database
8
9 \DTLnewdb{data}
10
11 % Add a word to the database. (The Definition column is provided to
12 % distinguish the entries when the database is displayed. The
13 % Definition column is not used by the sort code.)
14
15 % Syntax: \newword{string}
16
17 \makeatletter
18 \newcommand*{\newword}[1]{%
19   \DTLnewrow{data}%
20   \DTLnewdbentry{data}{Word}{#1}%
21 % Convert word to its definition and add
22   {%
23     \def\thisword{#1}\@onelevel@sanitize\thisword
24     \dtlexpandnewvalue % ensure \theword gets expanded
25     \DTLnewdbentry{data}{Definition}{\thisword}%
26   }%
27 }
28 \makeatother
29
30 \newword{High Water}
31 \newword{!}
32 \newword{[}
33 \newword{~}
34 \newword{\#define}
35 \newword{High water}
36 \newword{highwater}
37 \newword{1st Street}
38 \newword{high water}
39 \newword{1st~Street}
40 \newword{10~Downing Street}
41 \newword{10~Downing Avenue}
42 \newword{10 Downing Road}
43 \newword{\#include}
44 \newword{1 (one)}
45 \newword{1\datatoolparenstart(one)}
46 \newword{10\datatoolparenstart(ten)}
47 \newword{10 (ten)}
48 \newword{42\datatoolparenstart(forty-two)}
49 \newword{42 (forty-two)}
50 \newword{100\datatoolparenstart(one hundred)}
51 \newword{100 (one hundred)}
52 \newword{4\datatoolparenstart(four)}
53 \newword{4 (four)}
54 \newword{The Ten Samurai}
55 \newword{London, Jack}
56 \newword{London}
57 \newword{10 Samurai, The}
58 \newword{10 Samurai}
59 \newword{Ten Samurai, The}
60 \newword{Ten Samurai}
61 \newword{10 Samurai\datatoolsubjectcomma The}
62 \newword{Ten Samurai\datatoolsubjectcomma The}
63 \newword{London\datatoolpersoncomma Jack}
64 \newword{London\datatoolplacecomma UK}
65 \newword{London\datatoolsubjectcomma History of}
66 \newword{Zebra}
67 \newword{zebra}
68 \newword{alpha}
69 \newword{Alpha}
70 \newword{seal}
71 \newword{sea lion}
72
73 \begin{document}
74
75 \section{Unsorted data}
76
77 \begin{tabular}{ll}
78 \bfseries Word & \bfseries Definition
79 \DTLforeach*{data}{\Word=Word,\Definition=Definition}{%
80 \\\Word & \ttfamily \Definition
81 }
82 \end{tabular}
83
84 \section{Case-Insensitive Sort}
85
86 \DTLsort*{Word}{data}
87
88 \begin{tabular}{ll}
89 \bfseries Word & \bfseries Definition
90 \DTLforeach*{data}{\Word=Word,\Definition=Definition}{%
91 \\\Word & \ttfamily \Definition
92 }
93 \end{tabular}
94
95
96 \section{Case-Sensitive Sort}
97
98 \DTLsort{Word}{data}
99
100 \begin{tabular}{ll}
101 \bfseries Word & \bfseries Definition
102 \DTLforeach*{data}{\Word=Word,\Definition=Definition}{%
103 \\\Word & \ttfamily \Definition
104 }
105 \end{tabular}
106
107 \section{Word-Order Sort}
108
109 \dtlsort{Word}{data}{\dtlwordindexcompare}
110
111 \begin{tabular}{ll}
112 \bfseries Word & \bfseries Definition
113 \DTLforeach*{data}{\Word=Word,\Definition=Definition}{%
114 \\\Word & \ttfamily \Definition
115 }
116 \end{tabular}
117
118 \end{document}