summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/leipzig/leipzig.dtx
blob: 4dfb3a4970e5258758b6e9379588af0143a0eade (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
% \iffalse meta-comment
% !TEX program = pdfLaTeX
%
%<*internal>
\iffalse
%</internal>
%<*readme>
The leipzig package indexes and prints all linguistic gloss abbreviations used in a document. It provides a set of macros for standard glossing abbreviations, with options to redefine these or to create new ones. For full indexing capabilities, leipzig should be used in conjunction with the glossaries package. Notes for installation are included in the package documentation. 

To install, run 

    (pdf)latex leipzig.dtx 

to extract files. Further instructions are included in the package documentation. 

To typeset the documentation, run 

    pdflatex leipzig.dtx 
    makeglossaries leipzig 
    pdflatex leipzig.dtx 
    pdflatex leipzig.dtx 
%</readme>
%<*internal>
\fi
\def\nameofplainTeX{plain}
\ifx\fmtname\nameofplainTeX\else
  \expandafter\begingroup
\fi
%</internal>
%<*install>
\input docstrip.tex
\keepsilent
\askforoverwritefalse
\preamble
----------------------------------------------------------------
leipzig --- A package to typeset and index linguistic gloss abbreviations.
E-mail: natalie.a.weber@gmail.com
Released under the LaTeX Project Public License v1.3c or later
See http://www.latex-project.org/lppl.txt
----------------------------------------------------------------

Copyright (C) 2017 by Natalie Weber <natalie.a.weber@gmail.com>

This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
of this license or (at your option) any later version.
The latest version of this license is in

  http://www.latex-project.org/lppl.txt

and version 1.3 or later is part of all distributions of LaTeX
version 2005/12/01 or later.

This work has the LPPL maintenance status `maintained'.

The Current Maintainer of this work is Natalie Weber.

This work consists of the file leipzig.dtx, 
and the derived files
                                README.md,
                                leipzig.ins,
                                leipzig.tex,
                                leipzig.sty, and
                                leipzig.pdf

\endpreamble
\postamble

Copyright (C) 2017 by Natalie Weber <natalie.a.weber@gmail.com>

This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
of this license or (at your option) any later version.
The latest version of this license is in

  http://www.latex-project.org/lppl.txt

and version 1.3 or later is part of all distributions of LaTeX
version 2005/12/01 or later.
\endpostamble
\usedir{tex/latex/leipzig}
\generate{\file{\jobname.sty}{\from{\jobname.dtx}{package}}}
\generate{\file{\jobname.tex}{\from{\jobname.dtx}{abbrvs}}}
%</install>
%<install>\endbatchfile
%<*internal>
\nopreamble\nopostamble
\usedir{source/latex/leipzig}
\generate{
  \file{\jobname.ins}{\from{\jobname.dtx}{install}}
}
\nopreamble\nopostamble
\usedir{doc/latex/leipzig}
\generate{
  \file{README.md}{\from{\jobname.dtx}{readme}}
}
\ifx\fmtname\nameofplainTeX
  \expandafter\endbatchfile
\else
  \expandafter\endgroup
\fi
%</internal>
%<*driver>
\ProvidesFile{leipzig.dtx}%
%</driver>
%<package>\NeedsTeXFormat{LaTeX2e}[1996/10/24]%
%<package>\ProvidesPackage{leipzig}%
%<*package>
    [2019/06/09 v2.2 Leipzig package for linguistic abbreviations]%
%\AtBeginDocument{%
%  \MakeShortVerb{\|}
%  \DeleteShortVerb{"}}
%</package>
%<*driver>
\documentclass[11pt]{ltxdoc}%
\usepackage{paralist}%
\usepackage{url}%
\urlstyle{same}%
\usepackage[T1]{fontenc}%
\usepackage{tipa}%
\usepackage{expex}% to typeset examples
\usepackage{booktabs}% for nice tabular
\bibliographystyle{apa}
\usepackage[nottoc,notlof,notlot]{tocbibind} % Put the bibliography in the ToC
\usepackage{hyperref}
\usepackage{xcolor}
\definecolor{dark-red}{rgb}{0.4,0.15,0.15}
\definecolor{dark-blue}{rgb}{0.15,0.15,0.4}
\definecolor{medium-blue}{rgb}{0,0,0.5}
\hypersetup{
    colorlinks, linkcolor={dark-red},
    citecolor={dark-blue}, urlcolor={medium-blue} }
\usepackage[acronyms]{\jobname}
\newglossary{bantu}{bns}{bno}{Bantu}
%\newglossary{gglo}{gls}{glo}{Change history}
%\newglossary{gind}{ind}{idx}{Index}
\makeglossaries
\newacronym{igt}{IGT}{interlinear gloss text}
\newleipzig[type=bantu,name={c\#},description={class marker (\# = class number)}]{class}{c}{class marker}
\newcommand{\Cl}[1]{{\Class}{\small #1}}
\newleipzig{inc}{inc}{inclusive}%
\newleipzig{verbz}{vb}{verbalizer}%
\newcommand{\Fdui}{{\First}{\Du}.{\Inc}}%
\newcommand{\refp}[1]{(\protect\ref{#1})}%
\def\leipzig{\textsf{leipzig}}
\def\glossaries{\textsf{glossaries}}
\EnableCrossrefs
%\DisableCrossrefs
%\OnlyDescription
\CodelineIndex
\PageIndex
\RecordChanges
% \iffalse meta-comment
% makeindex -s gglo.ist -o leipzig.gls leipzig.glo
% makeindex -s gind.ist -o leipzig.ind leipzig.idx
% \fi

\begin{document}%
  \DocInput{\jobname.dtx}%
\end{document}%
%</driver>
% \fi
%
%\CheckSum{855}
%
% \CharacterTable
% {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%  Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%  Digits        \0\1\2\3\4\5\6\7\8\9
%  Exclamation   \!     Double quote  \"     Hash (number) \#
%  Dollar        \$     Percent       \%     Ampersand     \&
%  Acute accent  \'     Left paren    \(     Right paren   \)
%  Asterisk      \*     Plus          \+     Comma         \,
%  Minus         \-     Point         \.     Solidus       \/
%  Colon         \:     Semicolon     \;     Less than     \<
%  Equals        \=     Greater than  \>     Question mark \?
%  Commercial at \@     Left bracket  \[     Backslash     \\
%  Right bracket \]     Circumflex    \^     Underscore    \_
%  Grave accent  \`     Left brace    \{     Vertical bar  \|
%  Right brace   \}     Tilde         \~}
%
%
% \DoNotIndex{\@@getoptionalarg,\@@next,\@bracketcheck,\@currsize,\@firstoftwo}
% \DoNotIndex{\@secondoftwo,\@futurenonspacelet,\@getoptionalarg,\@optionaltemp}
% \DoNotIndex{\@gsingle,\@ifnextchar,\@ifpackageloaded,\@ifundefined,\@ne,\z@}
% \DoNotIndex{\@nexttoken,\@normalsize,\@optionalarg,\@optionalnext,\@gobble,\p@}
% \DoNotIndex{\@selfnt,\@stepone,\@steptwo,\@stepthree,\@stoken,\@undefined,\\}
% \DoNotIndex{\active,\addvspace,\advance,\afterassignment,\baselineskip}
% \DoNotIndex{\baselinestretch,\begingroup\bgroup,\box,\catcode,\copy,\csname}
% \DoNotIndex{\CurrentOption,\DeclareOption,\def,\detokenize,\egroup,\else,\empty}
% \DoNotIndex{\endcsname\endgraf\endgroup,\PackageOptions,\eplain,\expandafter}
% \DoNotIndex{\expandonce,\fi,\fill,\finalhyphendemerits,\futurelet,\gdef,\global}
% \DoNotIndex{\gobble,\gobblespaces,\hbox,\hskip,\hspace,\ht,\hyphenpenalty}
% \DoNotIndex{\identity,\ifdim,\ifmmode,\ifnum,\ifx,\ifvoid,\ignorespacesafterend}
% \DoNotIndex{\ignorespaces,\itemindent,\itshape,\labelsep,\labelwidth,\lastbox}
% \DoNotIndex{\leavevmode,\leftskip,\let,\lineskip,\llap,\long,\MessageBreak}
% \DoNotIndex{\more,\name,\NAMEskip,\NAMEstyle,\newbox,\newcount,\newenvironment}
% \DoNotIndex{\newif,\newskip,\nobreak,\noexpand,\nolinebreak,\normalsize,\rm}
% \DoNotIndex{\PackageError,\PackageWarning,\par,\parfillskip,\parindent,\rlap}
% \DoNotIndex{\ProcessOptions,\providecommand,\quad,\raggedright,\relax,\rmfamily}
% \DoNotIndex{\rightskip,\scantokens,\scshape,\selectfont,\setbox,\sim,\space}
% \DoNotIndex{\strut,\textup,\the,\tlist@if@empty@nTF,\tolerance,\unhbox,\unskip}
% \DoNotIndex{\unvbox,\upshape,\vbox,\vskip,\vtop,\wd,\z@,\z@skip,\endgraf} 
% \DoNotIndex{{\,},\@car,\@cdr,\@gobbletwo,\@ifpackagelater,\@nil} 
% \DoNotIndex{\Acc,\Du,\Fdu,\Fpl,\Fsg,\Sdu,\Sg,\Spl,\Ssg,\Third,\Tdu,\Tpl,\Tsg,\First,\Second} 
% \DoNotIndex{\vspace,\uppercase,\translatelet,\tempa,\tempb,\textsc,\string,\setlength,\settowidth}
% \DoNotIndex{\romannumeral,\RequirePackage,\renewenvironment,\renewcommand\mbox,\makebox,\makeatother,\makeatletter,\linebreak,\PassOptionsToPackage,\raggedcolumns,\ifstrempty,\input} 
% \DoNotIndex{}
% \DoNotIndex{}
% \DoNotIndex{}
% \DoNotIndex{}
% \DoNotIndex{}
%
% \GetFileInfo{\jobname.sty}
%
%\title{\leipzig{} package documentation\thanks{This document corresponds to \leipzig{}~\fileversion, dated~\filedate.}}
% \author{Natalie Weber\\\texttt{natalie.a.weber@gmail.com}}
% \date{\filedate}
%
% \maketitle
%\begin{abstract}
%\noindent The \leipzig{} package indexes and prints all linguistic gloss abbreviations used in a document. It provides a set of macros for standard glossing abbreviations, with options to redefine these or to create new ones. \leipzig{} interfaces with the \glossaries{} package for added functionality.
%\end{abstract}
%
%\section*{Basic Usage}
%Authors define gloss abbreviations which can be used in a document. (A standard set of abbreviations is pre-defined by \leipzig{}.) These are accessed via `shortcut' macros that take no argument such as |\Nom{}| or |{\Nom}| (short for nominative), which is typeset as {\Nom}. 
%
%The abbreviations are indexed in a glossary which can then be printed in an inline or block format using \cs{printglossaries} or \cs{printglosses}. To print an inline glossary, e.g.\ in a footnote, use the schema in~\refp{schema:inline}.

%\ex\label{schema:inline}|\documentclass{article}|\linebreak
%
%|\usepackage{leipzig}|
%
%|\makeglossaries|\linebreak
%
%|\begin{document}|
%
%|  Use at least one macro like|
%
%|  {\Nom}.\footnote{\printglossaries} % or \printglosses|
%
%|\end{document}|\xe
%
%The default output looks like the following. (The occasional space before a comma or period is \emph{not} normal behavior, and is due to some clash with the \textsf{doc} class used to typeset the package documentation.)
%\begin{center}\vspace{-\baselineskip}\framebox{\begin{minipage}[t]{\textwidth}%
%Use at least one macro like {\Nom}.\footnote{\printglosses[type=\leipzigtype,style=inline]}%
%\end{minipage}}\end{center}
%
%To print a block glossary, e.g.\ in a manuscript, use package option \hbox{[block]} or \hbox{[mcolblock]}, as in~\refp{schema:leipzigmcolalttree}. The option \hbox{[mcolblock]} is like \hbox{[block]} but prints in a \texttt{multicol} environment (default number of columns~=~2). 
%
%\ex\label{schema:leipzigmcolalttree}|\documentclass{article}|
%
%|\usepackage{multicol}|\linebreak
%
%|\usepackage[mcolblock]{leipzig} % or option: [block]|
%
%|\makeglossaries|\linebreak
%
%|\begin{document}|
%
%|  Use at least one macro like {\Nom}.|
%
%|  \printglossaries % or \printglosses|
%
%|\end{document}|\xe
%
%The default output looks like the following. 
%\begin{center}\vspace{-\baselineskip}\framebox{\begin{minipage}[t]{\textwidth}%
%Use at least one macro like {\Nom}.
%\printglosses[style=leipzigmcolalttree,type=\leipzigtype]
%\end{minipage}}\end{center}
%
% Block glossary names print in either a chapter header (for classes like \textsf{book} where |\chapter| is defined) and in a section header otherwise, but this default behavior can be changed via the [section] package option.
%
% \clearpage\tableofcontents
%
%\changes{v1.0}{2013/05/26}{First released version}
%\changes{v0.6}{2012/07/30}{Changed A, P, and S macros to \cs{Aarg}, \cs{Parg}, and \cs{Sarg}, at the suggestion of Benct Philip Jonsson.}
%\changes{v0.5}{2012/05/26}{First documented version (alpha).}
%

%\section{Setup}\label{sec:install}%
%
%\subsection{Installation}
%Download the \leipzig{} package from CTAN and save it somewhere where \LaTeX{} can find it (usually in \$TEXMFHOME/tex/latex/leipzig/). 
%
%\leipzig{} will automatically load the \glossaries{} package unless you use the \hbox{[noglossaries]} package option. You will need \glossaries{} v3.02 (2012/05/21) or later, because version 3.02 comes bundled with the \textsf{glossary-inline} package, which \leipzig{} relies on for its inline glossary style. 
%
%\iffalse The \glossaries{} package requires v2.5f (2006/11/18) or later of the \textsf{xkeyval} package. This may be a newer version than the version which came bundled with your distribution, so you should download the newest version of \textsf{xkeyval} from CTAN too. \fi
% 
%If you do not already have {\glossaries}, then download it and save it somewhere \LaTeX{} can find it. Run \texttt{latex glossaries.ins} to generate the style files, if need be. Be sure to run \texttt{texhash} or \texttt{maketexlsr} in terminal after installing both packages. To test whether {\glossaries} was installed correctly, you can use the minimal example file \texttt{minimalgls.tex} that comes bundled in the {\glossaries} package. In terminal or the command shell, run:
%
%\begin{center}\begin{verbatim}pdflatex minimalgls.tex
%makeglossaries minimalgls
%pdflatex minimalgls.tex\end{verbatim}\end{center}
%
%\noindent\framebox[\textwidth]{\noindent\vbox{\textbf{Notes:}\begin{compactitem}
%\item \texttt{makeglossaries} takes a filename with \emph{no} \texttt{.tex} extension.
%\end{compactitem}}}
%\smallskip
%
%\texttt{makeglossaries} is a perl script which comes bundled with \glossaries{} and which does some smart business of determining whether to build the glossaries using \texttt{makeindex} or \texttt{xindy}. If your system doesn't recognise the command \texttt{perl} then it's likely you don't have Perl installed. Although it is possible to run \texttt{makeindex} directly instead, this creates more work on your part in setting various parameters, and some options in \glossaries{} may be unavailable. I highly recommend that you download \texttt{perl} and use \texttt{makeglossaries}. For Windows, I recommend \href{Strawberry Perl}{http://strawberryperl.com/}. 
%
% If you use TeXWorks or the like for text editing, you can add \texttt{makeglossaries} as a menu option instead of running the script in terminal. See \href{http://tex.stackexchange.com/questions/13152/how-to-makeglossaries-with-texworks}{http://tex.stackexchange.com/questions/13152/how-to-makeglossaries-with-texworks}.
%
%If you have any trouble installing \glossaries{}, refer to the installation instructions in \texttt{glossaries-user.pdf}. If you are daunted by the size of the manual, try starting off with the (much shorter!) guide for beginners (\texttt{glossariesbegin.pdf}).
%
%\subsection{Document structure with \glossaries{}}
%There are \textbf{five} main parts to any document that utilizes \glossaries{}. If you are missing any of these, then your glossaries will not print. 
%
%\begin{description}
%	\item [1.~Load the package] If you use \textsf{hyperref}, you should load \textsf{hyperref} \emph{before} {\leipzig}, contrary to the normal practice of loading \textsf{hyperref} last. (It's because \leipzig{} loads \glossaries{}, which must be loaded after \textsf{hyperref}.)
%
%\begin{verbatim}\documentclass{article}
%\usepackage{hyperref}
%\usepackage{leipzig}% leipzig loads glossaries\end{verbatim}
%
%	\item [2.~Generate the glossaries] Any new glossaries must be defined before |\makeglossaries|. No glossaries are created without this line!
%
%\begin{verbatim}\makeglossaries\end{verbatim}
%
%	\item [3.~Define glossary entries] Best practice is to define new terms in the preamble after |\makeglossaries|.
%
%\begin{verbatim}\newleipzig{verbz}{vbz}{verbalizer}\end{verbatim}
%
%	\item [4.~Use the glossary entries] somewhere in your document.
%
%\begin{verbatim}\begin{document}
% Use {\Verbz} or {\Nom}. %{\Nom} pre-defined by leipzig\end{verbatim}
%
%	\item [5.~Print the glossaries] |\printglossaries| will print all defined glossaries. |\printglosses| is provided by \leipzig{} and will just print the glossary that holds the gloss abbreviations.
%
%\begin{verbatim}\printglossaries % or \printglosses
%\end{document}\end{verbatim}
%\end{description}
%
%\noindent Once you have those five elements, don't forget to run these commands. (The last run of \texttt{pdflatex} typesets the table of contents, if there is one.)
%
%\begin{center}\begin{verbatim}pdflatex minimalgls.tex
%makeglossaries minimalgls
%pdflatex minimalgls.tex
%pdflatex minimalgls.tex\end{verbatim}\end{center}
%
%\section{Package options}\label{sec:options}%
%
%\begin{itemize}
%\item \textbf{[glossaries]} (default) \leipzig{} will load \glossaries{} if it exists (as well as the bundled packages \textsf{glossary-inline}, \textsf{glossary-tree}, \textsf{glossary-mcols}).  
%\item \textbf{[noglossaries]} Prevents \glossaries{} from being loaded. This option basically reduces the package to a list of shortcut macros like |{\Acc}| which expand to |\textsc{acc}|, plus a method to create new shortcut macros, plus a switch to control the font. 
%\item \textbf{[nostandards]} The set of standard pre-defined glosses from the Leipzig Glossing Rules \cite{bic08} can be used but will be prevented from printing in the glossary. 
%\item \textbf{[inline]} (default) The glossary containing the gloss abbreviations will be typeset in an inline style. (It uses the \texttt{inline} style, which \leipzig{} has modified from the \texttt{inline} style in \textsf{glossary-inline.sty}.)
%\item \textbf{[block]} The glossary containing the gloss abbreviations will be typeset in a block style. (It uses the \texttt{leipzigalttree} (alias: \texttt{block}) style, which \leipzig{} has modified from the \texttt{alttree} style in \textsf{glossary-tree.sty}.) 
%\item \textbf{[mcolblock]} The glossary containing the gloss abbreviations will be typeset in a multicolumn block format. (It uses the \texttt{leipzigmcolalttree} (alias: \texttt{mcolblock}) style, which \leipzig{} has modified from the \texttt{mcolalttree} style in \textsf{glossary-mcols.sty}.)
%\item \textbf{[leipzignohyper]} (default) Abbreviations created with \cs{newleipzig} will not have hyperlinks to the glossary.
%\item \textbf{[leipzighyper]} Abbreviations created with \cs{newleipzig} will have hyperlinks to the glossary.
%\item \textbf{[glosses]} By default, gloss abbreviations are put into the main glossary. Use this option to separate out gloss abbreviations into a separate glossary (type=leipzig). An alias option \hbox{[leipzig]} is also provided.
%\end{itemize}
%
%The \leipzig{} package passes all unknown options to \glossaries{}, so you can use any of the \glossaries{} package options as well. Some useful ones are:
%
%\begin{itemize}
%\item \textbf{[nostyles]} Prevents {\glossaries} from loading several pre-defined glossary styles. If you are only using the styles that are defined in \leipzig{}, then you can safely use \hbox{[nostyles]}. If you use this option but still want to use one of \glossaries{}' pre-defined glossary styles, you will have to load the package that contains that style before setting the style, e.g.\
%
%\begin{verbatim}\usepackage[nostyles]{leipzig}
%\usepackage{glossary-long}
%\setglossarystyle{long}
%\makeglossaries\end{verbatim}
%
%\item \textbf{[indexonlyfirst]} - If you have many interlinear glossed examples in your paper, compiling may be slow because every instance of a glossary entry must be written to the glossary.  This option causes only the first usage to be written to the glossary. This option affects all glossary entries--not just gloss abbreviations.
%\item \textbf{[acronym]} or \textbf{[acronyms]} Separates acronyms from the main glossary. The acronyms glossary can be printed with |\printacronyms|.
%\item \textbf{[symbols]} Creates a new `Symbols' glossary which can be printed using |\printsymbols|. 
%\item \textbf{[toc]} Adds glossaries to the table of contents.
%\item \textbf{[section=\meta{value}]} By default, glossaries begin with a chapter header if you are using a documentclass that defines chapters, else with a section header. You can set this explicitly. If you use section without a value, it means section=section. You can also reset the section type in the document with \cs{setglossarysection}. (Glossaries using the \texttt{inline} styles never begin with a section header.) 
%\item \textbf{[nonumberlist]} By default, gloss entries will be followed by a number list that links back to the pages the gloss entries were used on. You can suppress this for all glossaries by using this option.
%\end{itemize}
%
%\section{Core functionality}
% The elements discussed in this section work regardless of whether you have loaded \glossaries{} or not.
%\subsection{Defining gloss abbreviations}\label{sec:basic}%
%
%The main part of the package provides a method to define new gloss abbreviations and shortcut macros to print the short forms of the abbreviations. These functions work regardless of whether \glossaries{} is loaded or not.
% 
%\DescribeMacro{\newleipzig}%
%\DescribeMacro{\renewleipzig}%
%Gloss abbrevations are defined (or re-defined) with \cs{newleipzig} and \cs{renewleipzig}, respectively.  For best results, gloss abbreviations should be defined in the preamble after \cs{makeglossaries} and before |\begin{document}|. (The code for \cs{renewleipzig} is courtesy \TeX{}.SX user \textsf{egreg}.)
%
%\ex \cs{newleipzig}\texttt{ {} }   \oarg{options} \marg{label} \marg{short} \marg{long}\xe
%\ex~\cs{renewleipzig} \oarg{options} \marg{label} \marg{short} \marg{long}\xe
%
% When \glossaries{} is loaded, \cs{newleipzig} defines a new glossary entry using |\newacronym[type=\leipzigtype]|, where \cs{leipzigtype} expands to the glossary that houses the gloss abbreviations (default is \texttt{main}) . 
%
%\begin{itemize}
%	\item The optional argument \meta{options} is a key=value list which is passed to \cs{newacronym} after \hbox{|[type=\leipzigtype]|}. It is ignored if \glossaries{} is not loaded. A list of recognized keys is in chapter~4 of the \glossaries{} documentation. 
%
%	\item \meta{label} must be a unique label with which to identify the entry. It cannot contain any nonexpandable commands or active characters, nor can it contain numbers. The reason for this restriction is that \leipzig{} uses the label to construct a shortcut macro, so the label must be able to expand to a valid control sequence name.
%
%	\item \meta{short} is the short form of the abbreviation. This needs to be lowercase so that |\textsc{}| will work. (You cannot make capital letters into smallcaps with |\textsc{}|.) 
%
%	\item \meta{long} is the long version of the acronym. I recommend also typing this argument in lowercase letters, and using the \glossaries{} package to format the glossary such that the first letter of all long forms are consistently uppercase or lowercase. You may need to specify hyphenation explicitly in the long form using |\-|.
%\end{itemize}
%
%To redefine a macro, use \cs{renewleipzig} with the \meta{label} of the abbreviation you want to redefine. The \meta{short} and \meta{long} arguments should be the new forms that you want to change to. 
%
%\DescribeMacro{\Label}%
%\cs{newleipzig} creates a shortcut macro by capitalizing the first letter of \meta{label} to form \cs{Label}. This format was chosen because it is short and mnemonic, it stands out visually when editing \glspl{igt} in your .tex file,  and uppercase macros are less likely to be defined than lowercase ones. Shortcut macros take no arguments and gobble a following space, so they require braces; you can type either |\Label{}| or |{\Label}|.\footnote{If you want to be able to type \cs{Label} without braces, you will need to load the \textsf{xparse} package. \leipzig{} does not load \textsf{xparse} because there are some issues with it, and it remains wholly untested with \leipzig{}. See David Carlisle's explanation: \url{http://tex.stackexchange.com/questions/86565/drawbacks-of-xspace}.} 
%
%Shortcut macros print the short form of the abbreviation. If \glossaries{} is loaded, they essentially expand to either |\acrshort{|\meta{label}|}| or |\acrshort*{|\meta{label}|}|, depending on whether they include a link to the glossary or not. If \glossaries{} is not loaded,  the macros print the short form of the abbreviation in |\leipzigfont|, which is initialized to |\textsc|. Here is a simple example:
%
%\pex\label{ex:verbz}|\newleipzig{verbz}{vbz}{ver\-ba\-liz\-er}|
%\a creates the shortcut: |\Verbz{}| or |{\Verbz}|
%\a which expands to: \Verbz{} 
%\xe
%
%\subsection{Pre-defined abbreviations}
%The {\leipzig} package pre-defines (in \textsf{leipzig.tex}) the gloss abbreviations from the appendix to the Leipzig Glossing Rules \cite{bic08}. These are pre-defined to save the end-user time, and also to encourage standardization within the field. (However, they can be re-defined using \cs{renewleipzig} and the same label that they were originally defined with.)
%
%Whenever possible, the label for the pre-defined abbreviations is the same as the short form. Hence, the shortcut macros are a capitalized version of the short form; i.e.\ |\Cop{}| will typeset \Cop{}, |\Ins{}| will typeset \Ins{}, etc. Exceptions to this rule are given in \autoref{tab:unexpected}. In these cases the label and short form differ because the shortcut macro that would have otherwise been created was either already defined in \LaTeX{} or would have begun with a number. (Macro names in \LaTeX{} cannot begin with a number.)
%
%
%\begin{table}[tb]\centering
% \caption{Unexpected macro names}\label{tab:unexpected}%
%\begin{tabular}[t]{llll}\toprule
% Shortcut & Label & Short & Long\\\midrule
% |\Aarg{}| & aarg & \sc a & agent\\%\iffalse v0.6\fi
% |\Parg{}| & parg & \sc p & patient\\ %\iffalse v0.6\fi
% |\Sarg{}| & sarg & \sc s & argument of intransitive verb\\ %\iffalse v0.6\fi
% |\First{}| & first & \sc 1 & first person\\
% |\Second{}| & second & \sc 2 & second person\\
% |\Third{}| & third & \sc 3 & third person\\\bottomrule
% \end{tabular}
%\end{table}
%
%The package also defines macros for common person-number combinations, like \Fsg{} and \Tpl{}. Abbreviations for first person begin with `F' (not `1'), abbreviations for second person begin with `S' (not `2'), and abbreviations for third person begin with `T' (not `3'). These abbreviations are shown in Table~\refp{persons}.
%
%\begin{table}[tb]\centering
% \caption{Abbreviations for persons and number}\label{persons}%
%\begin{tabular}[t]{ll@{\qquad}ll@{\qquad}ll}\toprule
% |\Fsg{}| & \sc 1sg & |\Ssg{}| & \sc 2sg & |\Tsg{}| & \sc 3sg\\
% |\Fdu{}| & \sc 1du & |\Sdu{}| & \sc 2du & |\Tdu{}| & \sc 3du\\
% |\Fpl{}| & \sc 1pl & |\Spl{}| & \sc 2pl & |\Tpl{}| & \sc 3pl\\
% \bottomrule\end{tabular}
%\end{table}
%
%\makeatletter\leipzigdonotindextrue
%The macros that print the person and number abbreviations were defined using \cs{newcommand}, not \cs{newleipzig}, as in~\refp{ex:fusional}. The reason is that each glossary entry should correspond to one component of a fusional gloss, not the entire fusional gloss itself. That way a glossary will have entries like {\First}, {\Second}, {\Third}, {\Sg}, {\Du}, {\Pl}, etc., but \emph{not} {\Fsg}, {\Fdu}, {\Fpl}, {\Ssg}, {\Sdu}, etc.
%
%\pex\label{ex:fusional}\a|\newleipzig{first}{1}{first person} % {\First} prints 1|
%\a|\newleipzig{sg}{sg}{singular}|\texttt{ {} {} {} {} {} }| % {\Sg} prints| {\Sg}
%\a|\newcommand{\Fsg}{{\First}{\Sg}}|\texttt{ {} {} }| % {\Fsg} prints| {\Fsg}\xe
%
%This strategy can be used for any fusional gloss. I usually use a command name that begins with a capital letter like the shortcut macros. 
%\leipzigdonotindexfalse\makeatother
%
%\iffalse
%As an example, \Fdui{} is a combination of abbreviations for first person, dual number, and inclusivity. Abbreviations for first person (|\First{}|) and dual number (|\Du{}|) are already defined in \texttt{leipzig.tex}, so \Inc{} is the only part which still needs to be defined. It is generally useful to then create a shortcut macro (with |\newcommand|) for the fusional gloss which will call the abbreviations of the various parts. 
%
%\ex|\newleipzig{inc}{inc}{inclusive}|\newline
%|\newcommand{\Fdui}{{\Fdu}.{\Inc}}%|\newline
%\ldots the |\Fdui{}| morpheme\ldots |%| Prints \Fdui{}.\xe
%\fi
%
%\subsection{Font and display}
%\DescribeMacro{\leipzigfont}
%The short form of the abbreviation is typeset using \cs{leipzigfont}, which takes the short form as its only argument. This is initialized to expand to |\textsc{#1}|, but you can always re-define it. For instance, to print all short forms in an uppercase italic font, use:
%
%\ex|\renewcommand{\leipzigfont}[1]{\textit{\MakeUppercase{#1}}}|\xe
%
%\renewcommand{\leipzigfont}[1]{{\textit{\MakeUppercase{#1}}}}%
%This can occur anywhere in your document and it affects the short forms of any following abbreviations, e.g.\ further instances of |{\Verbz}| from~\refp{ex:verbz} will expand to \Verbz{}.
%\renewcommand{\leipzigfont}[1]{\textsc{#1}}% 
%
%Note that the name of each glossary entry in the glossary will also be printed using the final redefinition of \cs{leipzigfont}. You can redefine \cs{glsnamefont} to control how glossary names are displayed. See \autoref{printglossary} for more information on glossary display.
%
%\section{Abbreviation display with \glossaries{}}\label{sec:moredisplay}
%
%If \glossaries{} is loaded, there are many more options for display refinement. 
%
%\subsection{Acronym style}
%
%\cs{newleipzig} is built on \cs{newacronym} from the \glossaries{} package. The \glossaries{} package allows you to set an acronym display style. This is a global setting, and it affects all acronyms that are defined using \cs{newacronym} (not only gloss abbreviations). 
%
%\DescribeMacro{\setacronymstyle}\leipzig{} sets a custom acronym style called \texttt{long-lpz-short} that is identical to the \texttt{long-short} style defined in \glossaries{}, except that the short form of the abbreviation is printed using \cs{firstleipzigfont} (on first use) and \cs{leipzigfont} (on subsequent uses). It is set in the package using:
%
%\ex|\setacronymstyle{long-lpz-short}|\xe
%
%You can use the same command in the preamble to set a different acronym style. However, this style will affect all acronyms, even if they are not gloss abbreviations. See the \glossaries{} user manual for details. 
%
%\DescribeMacro{\gls}Using |\gls{|\meta{label}|}| instead of |\Label| will display the abbreviation according to the acronym style, which may be useful in-text when discussing particular grammatical glosses. The following example uses the abbreviation defined in~\refp{ex:verbz}. 
%
%\pex\a|\gls{verbz} prints:| \gls{verbz} |% first time use|
%\a|\gls{verbz} prints:| \gls{verbz} |% subsequent uses|
%\xe
%
%\DescribeMacro{\firstleipzigfont}
%The command \cs{firstleipzigfont} controls how the short form is displayed the first time it is displayed using \cs{gls} or other \cs{gls}-like commands. It is initialized to \cs{leipzigfont}, but can be changed in the preamble. For example, the command in~\refp{ex:firstlpzfont} will make the short form in the first usage be displayed in bold and \cs{leipzigfont}.
%
%\glsreset{verbz}\bgroup\renewcommand{\firstleipzigfont}[1]{\textbf{\leipzigfont{#1}}}%
%\pex\label{ex:firstlpzfont}|\renewcommand{\firstleipzigfont}[1]{|%
%
%|    \textbf{\leipzigfont{#1}}}|
%\a|\gls{verbz} prints:| \gls{verbz} |% first time use|
%\a|\gls{verbz} prints:| \gls{verbz} |% subsequent uses|
%\xe\egroup
%
%\DescribeMacro{\glsreset(all)}
%\DescribeMacro{\glsunset(all)}|\gls{}| and other |\gls|-like commands access and modify the first use flag, which determines if the abbreviation has been used before or not. To reset the first use flag so that the next use of  |\gls| will diplay the abbreviation as if on first use, use |\glsreset{|\meta{label}|}| for an individual abbreviation, or |\glsresetall| to reset all abbreviations. There are also analogous |\glsunset{|\meta{label}|}|  and |\glsunsetall| commands, which cause |\gls| to never use the first use display. See chapter~14 of the \glossaries{} user documentation.
%
%Besides |\gls|, there are other acronym-specific macros to print components of the acronym without modifying the first use flag. These can take the same optional arguments as other |\glstext|-like commands. A few examples are shown in \autoref{tab:acrabbrv}; see Chapter~13 of the \glossaries{} documentation for more options. 
%
%
%\begin{table}[tbp]
%  \centering
%  \caption{Short, long, and full acronym formats}
%  \label{tab:acrabbrv}
%  \begin{tabular}[t]{ll}\toprule
%Command & Prints\\\midrule
%|\acrshort{verbz}| & \acrshort{verbz} \\
%|\Acrshort{verbz}| & \Acrshort{verbz}\\
%|\ACRshort{verbz}| & \ACRshort{verbz}\\
%|\acrlong{verbz}| & \acrlong{verbz}\\
%|\Acrlong{verbz}| & \Acrlong{verbz}\\
%|\ACRlong{verbz}| & \ACRlong{verbz}\\
%|\acrfull{verbz}| & \acrfull{verbz}\\
%|\Acrfull{verbz}| & \Acrfull{verbz}\\
%|\ACRfull{verbz}| & \ACRfull{verbz}\\
%  \bottomrule\end{tabular}
%\end{table}
%
%Any modifications to \cs{firstleipzigfont} will affect any of the \cs{acrfull}-type macros; \cs{acrshort}-type macros will be unaffected. The shortcut macros like |{\Verbz}| are based on |\acrshort|, so \cs{firstleipzigfont} will not affect them.
%
%\subsection{Hyperlinks to the glossary}
%
%If you load the \textsf{hyperref} or \textsf{html} packages prior to loading the \glossaries{} package, the |\gls|-like and |\glstext|-like commands will automatically have hyperlinks to the relevant glossary entry, unless the \texttt{hyper} option has been switched off. There are many ways to affect the \texttt{hyper} option.
%
%\begin{center}\framebox[\textwidth]{\noindent\vbox{\textbf{Note:} if you use \textsf{hyperref}, then \leipzig{} must be loaded \emph{after} \textsf{hyperref}.}}\end{center}
%
%\DescribeMacro{\glsdisablehyper}
%\DescribeMacro{\glsenablehyper}
% To disable or enable all hyperlinks to glossaries, use \cs{glsdisablehyper} or \cs{glsenablehyper}. The effect can be localised by placing the commands within a group. 
%
%\DescribeMacro{[nohypertypes]}
%To disable hyperlinks only for certain glossaries, use the package option (from \glossaries{}) \hbox{[nohypertypes]}. This is a key that takes a list of comma-separated glossary names as a value. Make sure you enclose the value in braces if it contains any commas. The values must be fully expanded, so something like \hbox{|[nohypertypes=\leipzigtype]|} \emph{won't} work. Instead use \hbox{|[nohypertypes=main]|} if the \hbox{[glosses]} option has not been used, or \hbox{|[nohypertypes=leipzig]|} if the \hbox{[glosses]} option has been used. Instead of or in addition to the package option \hbox{[nohypertypes]}, you can also use |\GlsDeclareNoHyperList{|\meta{list}|}|.
%
%\DescribeMacro{[nohyperfirst]}
%To disable hyperlinks only on the first use, use the package options (from \glossaries{})  \hbox{[nohyperfirst]}. This is a key that take a list of comma-separated glossary names as a value. Make sure you enclose the value in braces if it contains any commas.  
%
%\DescribeMacro{\gls*}
%\DescribeMacro{\gls+}
%The |\gls|-like and |\glstext|-like commands all take a first optional argument that is a comma-separated list of \meta{key}=\meta{value} options, including \texttt{hyper=false} and \texttt{hyper=true}. They also have a star-variant (e.g.\ |\gls*|) which uses \texttt{hyper=false}, and a plus-variant (e.g.\ |\gls+|) which uses \texttt{hyper=true}. These optional arguments override global settings unless the hyperlinks have been suppressed using \cs{glsdisablehyper}.
%
%\DescribeMacro{\leipzighypertrue}
%\DescribeMacro{\leipzighyperfalse}
%Regardless of the global settings you use for hyperlinks in |\gls|-like or |\glstext|-like entries, the shortcut macros like |\Label| are defined by default to not link to the glossary. Use the package option \hbox{[leipzighyper]} to make shortcut macros link to the glossary. You can also switch hyperlinks on and off for particular glosses by using |\leipzighypertrue| or |\leipzighyperfalse| in the preamble \emph{before} you define the abbreviation with \cs{newleipzig}. 
%
%\subsection{Explicitly formatting individual abbreviations}\label{sec:format}%
%
%Occasionally a subset of grammatical glosses should be typeset in some font other than smallcaps (or whatever |\leipzigfont| has been (re)defined to). For instance, when number and gender markers are frequent, some authors use non-capitalized shortened forms like 1s instead of 1\textsc{sg} for first singular person. The optional argument to \cs{(re)newleipzig} can be used to set the short form explicitly with a font. (The repeated entries in the glossary are, again, \emph{not} normal, and is probably due to some clash with the \textsf{doc} program used to typeset the documentation.)

%\iffalse meta-comment NW: singular prints twice in this dictionary?\fi
%
%\pex\label{ex:singular}|\renewleipzig[short={\glstextup{s}}]{sg}{s}{singular}|
%\makeatletter\leipzigdonotindextrue
%\renewleipzig[short={\glstextup{s}}]{sg}{s}{singular}%
%\a|{\Sg} prints:| {\Sg}
%\a|{\Fsg} prints:| {\Fsg}
%\a Glossary looks like: \bgroup\renewcommand{\glossarypreamble}{}\printglosses\egroup
%\renewleipzig{sg}{sg}{singular}%
%\leipzigdonotindexfalse\makeatother\xe
%
%The definition in~\refp{ex:singular} sets the short form of the singular abbreviation to a lowercase upright s. All short forms are printed in \cs{leipzigfont}, which is initialized to \cs{textsc}. The \glossaries{}-internal \cs{glstextup} is used to cancel the effect of that \cs{textsc}. This defaults to \cs{textulc}, if defined, otherwise \cs{textup}. This will affect any command which calls |{\Sg}|, such as the definition for first singular person in |{\Fsg}| (\autoref{persons}). Setting the short form explicitly will also determine how the abbreviation is displayed in the glossary, because the glossary prints the \texttt{name} field of the glossary entry, which defaults to be the same as the \texttt{short} field.
%
%The optional argument to \cs{re(new)leipzig} can also be used to explicitly set the name and description of a gloss abbreviation, which is useful if these should have a different form than the short and long form in the text. For example, say that you are glossing a Bantu language and you want to identify class markers in the \glspl{igt} with \Cl{1}, \Cl{2}, \Cl{3}, etc. Furthermore, you want the glossary to display \Cl{\#}, so that it is clear that {\Class} is always followed by a number. Then you could set the fields as in~\refp{ex:bantu1}.
%
%\ex\label{ex:bantu1}|\newleipzig[%|
%
%|  name={c\#},%|
%
%|  description={class marker (\# = class number)}|%
%
%|]{class}{c}{class marker}|\xe
%
%This defines an abbreviation macro |{\Class}|, which prints the short form {\Class}. The short (\acrshort{class}) and long (\acrlong{class}) forms are called in-text via commands like |\acrfull|,\footnote{If you specify the name field, then \textbackslash\texttt{gls} will no longer print the long and short forms. Use \textbackslash\texttt{acrfull} instead.} but the glossary entry will be printed with the name (\glsname{class}) and description (\glsdesc{class}) fields. An example is shown in~\refp{ex:bantu2}.
%
%\ex\label{ex:bantu2}|Use \acrfull{class} or {\Class} in|
%
%|  document.\footnote{\printglossaries} % or \printglosses|\xe
%
%The default output looks like the following. 
%
%\glsreset{class}
%\begin{center}\vspace{-\baselineskip}\framebox{\begin{minipage}[t]{\textwidth}%
%Use \acrfull{class} or {\Class} in document.\footnote{\printglosses[type=bantu,style=inline]}%
%\end{minipage}}\end{center}
%
%\section{Displaying the glossary}\label{printglossary}%
%
%\iffalse \cs{makeglossaries} goes in the preamble after defining new glossaries (if any) and before defining new glossary entries, and one of \cs{printglossaries} or \cs{printglosses} . This command creates a customised style file (with extension .ist for use with \texttt{makeindex}, or .xdy for use with \texttt{xindy}) and ensures that glossary entries are written to the appropriate output files. If you omit \cs{makeglossaries} none of the glossary files will be created. 
%
%To build the glossary, you need to pdf\LaTeX{} the document once, so that \glossaries{} can index all abbreviations used and write them to an external file. Then run |makeglossaries| FILENAME (no extension) to build the glossary, pdf\LaTeX{} again to print the glossary. (Run pdf\LaTeX{} a second time if you have a Table of Contents.) 
%\fi
%
%\DescribeMacro{\printglossaries}%
%\DescribeMacro{\printglosses}%
%To display the glossaries, put \cs{printglossaries} (or the \leipzig{}-defined \cs{printglosses}) in your document where you would like the glossaries to display. \cs{printglossaries} prints all glossaries in the order they were defined, while \cs{printglosses} prints only the \cs{leipzigtype} glossary. 

%\subsection{Glossary style} 
%The style of the \cs{leipzigtype} glossary can be controlled in two ways. 
%
%\DescribeMacro{[mcolblock]}
%\DescribeMacro{[block]}
%\DescribeMacro{[inline]}
%The simplest is to use one of three \leipzig{} package options: \hbox{[mcolblock]} sets the \texttt{leipzigmcolalttree} style, \hbox{[block]} sets the \texttt{leipzigalttree} style, and \hbox{[inline]} sets the \texttt{inline} style. (The \texttt{inline} style is used by default if no options are specified.) Using a package option ensures that the |\leipzigtype| glossary will display using the intended style regardless of whether you use |\printglossaries| or |\printglosses|.
%
%You can also specify the style in an optional argument to |\printglosses| (or any of the |\printglossary| commands). For example, the code in~\refp{ex:glossesblock} will print just the |\leipzigtype| glossary and will use the block style. If you want to use your own style defined via \cs{newglossarystyle}, then you \emph{must} use this method.
%
%\ex\label{ex:glossesblock}|\printglosses[style=block] % same as [style=leipzigalttree]|\xe
%
%If you have multiple glossaries (e.g.\ glossaries other than gloss abbreviations), the style of the other glossaries is controlled in the ``normal'' fashion for the \glossaries{} package: either use \cs{setglossarystyle} before \cs{makeglossaries}, or you can use the package option \hbox{[style=\meta{style}]}. The latter option only works for styles that are pre-loaded by \glossaries{}. See \autoref{sec:multiple} for more information on defining multiple glossaries.
%
%\subsection{Display options for all styles}
%\DescribeMacro{\leipzigname}
%To change the name of the glossary that houses the gloss abbreviations, redefine \cs{leipzigname}. It defaults to `Abbreviations', as below. 
%
%\ex|\renewcommand{\leipzigname}{Abbreviations}|\xe%
%
%The \cs{leipzigname} is used in |\glossarysection|, which is called just before the glossary itself. (Note that |\glossarysection| is redefined to print nothing in the \texttt{inline} style.)
%
%\DescribeMacro{\glossarypreamble}
%Information can be added to the start of the glossary (after the glossary name and before the main body of the glossary) by redefining \cs{glossarypreamble}. For example:
%
%\ex|\renewcommand{\glossarypreamble}{%|
%
%|  Abbreviations are as follows:}|\xe
%
%\DescribeMacro{\glossarypostamble}
%There is an analogous command which prints at the end of each glossary called \cs{glossarypostamble}.
%
%\DescribeMacro{\ifleipzigdesccapitalize} By default the description for gloss abbreviations in the glossary is not capitalized. It will print with whatever case you used to define it. If you would like to instead force-capitalize the descriptions, put \cs{leipzigdesccapitalizetrue} in your preamble. This will only affect glossaries that are displayed with the styles \texttt{inline}, \texttt{block} (\texttt{leipzigalttree}), or \texttt{mcolblock} (\texttt{leipzigmcolalttree}).
%
%\DescribeMacro{\ifleipzignonumbers} By default abbreviations in the \cs{leipzigtype} glossary will not have a list of page numbers with links back to the pages where the abbreviation was used. If you would like this feature, put \cs{leipzignonumberstrue} in your preamble. This will only affect the \cs{leipzigtype} glossary.
%
%\DescribeMacro{\ifglsnogroupskip} By default there is no vertical space between groups of abbreviations, where each group is the set of gloss abbreviations that begin with the same letter.   (Note that this conditional is set to true for  any other defined glossary.) To print a vertical space between groups of abbreviations, put \cs{glsnogroupskiptrue} in your preamble. This will affect all glossaries.
%
%\DescribeMacro{\ifglsnopostdot} By default there is no final period at the end of descriptions in the \cs{leipzigtype} glossary. To print final periods, put \cs{glsnopostdotfalse} in your preamble. This will affect all glossaries.
%
%\subsection{Options to modify pre-defined styles}
%\subsubsection{Inline glossaries}
%\leipzig{} loads the \texttt{glossary-inline} package, which comes bundled with \glossaries{}. This package defines an inline glossary style, which \leipzig{} then redefines to look like a style often used in linguistics papers. This style is set by default when you load \leipzig{}, or by using the \hbox{[inline]} package option. 
%
%\DescribeMacro{\glossarysection}
% Note that \texttt{inline} defines \cs{glossarysection} to print nothing. Therefore, if you set this style for all glossaries by using |\setglossarystyle|\linebreak[1]|{inline}|, then no glossaries will have a glossary section header.
%      
%\begin{verbatim}\renewcommand*{\glossarysection}[2][]{}\end{verbatim}
%
%\DescribeMacro{\glossaryheader}
%\DescribeMacro{\glsgroupheading}
%\DescribeMacro{\glsgroupskip}%
%These commands control what to print at the beginning of the the glossary, what to print at the beginning of a group, and how much space to print between groups. Groups divide a glossary into groups, e.g.\ based on the first letter of the acronym (all `A's grouped together, all `B's grouped together, etc.) It is not generally desired for gloss abbreviations unless the list is very long. These three commands are all initialized to do nothing:
%
%\begin{verbatim}\renewcommand*{\glossaryheader}{}
%\renewcommand*{\glsgroupheading}[1]{}
%\renewcommand*{\glsgroupskip}{}\end{verbatim}
%
%\DescribeMacro{\glsinlineseparator}
%\DescribeMacro{\glsinlinesubseparator}
%Each full glossary entry is separated by a comma and a space, regardless of whether that entry is a a subentry (linked to a parent entry) or not. \cs{glsinlineseparator} controls the separator between (parent) entries, and \cs{glsinlinesubseparator} controls the separator between child entries. The defaults are as follows: 
%
%\begin{verbatim}\renewcommand*{\glsinlineseparator}{,\space}
%\renewcommand*{\glsinlinesubseparator}{,\space}\end{verbatim}
%
%\DescribeMacro{\glsinlineparentchildseparator}
%\DescribeMacro{\glsinlinepostchild}
%\indent A set of child entries may be linked to a parent entry by setting \hbox{|[parent=|\meta{label}|]|} in the optional argument given to \cs{(re)newleipzig}. The child or children entries will be grouped together and follow the parent entry. For the inline glossary style, the parent and first child are separated by \cs{glsinlineparentchildseparator} and the last child is followed by \cs{glsinlinepostchild}. The defaults are: 
%
%\begin{verbatim}\renewcommand*{\glsinlineparentchildseparator}{:\space}%
%\renewcommand*{\glsinlinepostchild}{}%\end{verbatim}
%
%\DescribeMacro{\glspostinline}
%The entire inline glossary is concluded with \cs{glspostinline}. This is initialized to print a period and a space. Default: 
%
%\begin{verbatim}\renewcommand*{\glspostinline}{.\space}\end{verbatim}
%
%\DescribeMacro{\glsinlinedescformat}
%\DescribeMacro{\glsinlinesubdescformat}
%\DescribeMacro{\glsinlineemptydescformat}
%Short and long forms of abbreviations are separated by \cs{glsinlinedescformat}. The default is to print an equals sign with small spaces on either side, and to encourage linebreaks \emph{after} the equals sign so that new lines do not begin with an equals sign. The short and long forms of child entries are separated by \cs{glsinlinesubdescformat}, which is defined the same as \cs{glsinlinedescformat}. Finally, \cs{glsinlineemptydescformat} controls what happens if there is no description at all. Defaults:
%
%\begin{verbatim}\renewcommand*{\glsinlinedescformat}[3]{\,=\,\linebreak[1]##1}
%\renewcommand*{\glsinlinesubdescformat}[3]{\,=\,\linebreak[1]##1}
%\renewcommand*{\glsinlineemptydescformat}[2]{}\end{verbatim}
%
%\DescribeMacro{\glsinlinenameformat}
%\DescribeMacro{\glsinlinesubnameformat}
%The name of entries and subentries prints without extra formatting, which means it will print using \cs{leipzigfont}. You could change this behavior by redefining \cs{glsinlinenameformat} and \cs{glsinlinesubnameformat}.
%
%\begin{verbatim}\renewcommand*{\glsinlinenameformat}[2]{\glstarget{##1}{##2}}
%\renewcommand*{\glsinlinesubnameformat}[2]{\glstarget{##1}{##2}\end{verbatim}
%
%\subsubsection{Block glossaries}\label{sec:block}
%
%\leipzig{} defines the styles \texttt{leipzigaltree} and \texttt{leipzigmcolaltree} for block glossaries. These names are cumbersome, so the aliases \texttt{block} and \texttt{mcolblock} are also provided. These two styles are based on \texttt{alttree} and \texttt{mcolalttree}, from the \textsf{glossary-tree} and \textsf{glossary-mcols} packages, respectively,  both of which come bundled with \glossaries{}. They are identical except that \texttt{leipzigmcolalttree} sets the glossary in a \texttt{multicol} environment. These styles can be easily set for the \cs{leipzigtype} glossary by using the \hbox{[block]} or \hbox{[mcolblock] }package options, or by setting the style for individual glossaries, e.g.:
%
%\ex|\printglosses{(mcol)block}|\xe
%
%\DescribeMacro{\glsmcols}
%The number of columns for \texttt{leipzigmcolalttree} is two by default, but this can be changed by redefining \cs{glsmcols}. (Note that \textsf{multicol} will not accept a number less than two.)
%
%\ex|\renewcommand*{\glsmcols}{2}|\xe
%
%\DescribeMacro{\glsfindwidesttoplevelname}
%\DescribeMacro{\glssetwidest}\indent The indentation for the description at each level is as wide as the widest abbreviation defined in \leipzig{}, which happens to be \textsc{compl}. You can set it explicitly by redefining \cs{glssetwidest} in the preamble. This command sets the indentation to the width of the text in its argument.
%
%\ex|\glssetwidest{xxxxxx}|\xe
%
%Alternatively, you can calculate the widest abbreviation name by passing a list of glossary names to \cs{glsfindwidesttoplevelname}. If the optional argument is omitted, all glossaries are assumed.
%
%\pex\a|\glsfindwidesttoplevelname % or|
%\a|\glsfindwidesttoplevelname[main,leipzig]|\xe
%
%\DescribeMacro{\glspostnamespace}
%The glossary names are followed by \cs{glspostnamespace}, which is initialized to \cs{space} but can be redefined.
%
%\ex|\renewcommand*{\glspostnamespace}{\space}|\xe
%
%\DescribeMacro{\glstreenamefmt}The abbreviation name in the glossary prints without extra formatting, which means it will print using \cs{leipzigfont}. You could change this behavior by redefining \cs{glstreenamefmt}.
%
%\ex|\renewcommand*{\glstreenamefmt}[1]{##1}|\xe
%
%\section{Multiple glossaries}\label{sec:multiple}
%
%\noindent\framebox[\textwidth]{\noindent\vbox{\noindent{} See \autoref{app:multiple} for an example of a book-like document with multiple glossaries.}}
%\smallskip
%
%By default, gloss abbreviations are put into the \texttt{main} glossary. (Actually they are put into the  \cs{glsdefaulttype} glossary, which is usually set to \texttt{main}.) The \hbox{[glosses]} option creates a new glossary named \texttt{leipzig}, via:
%
%\begin{verbatim}\newglossary[lpz]{leipzig}{lzs}{lzo}{\leipzigname}\end{verbatim}
%
%In addition, \cs{leipzigtype} is redefined to \texttt{leipzig}. Since all entries defined via \cs{newleipzig} have |type=|\cs{leipzigtype}, they will be printed in the \texttt{leipzig} glossary instead of \texttt{main}.
%
%\DescribeMacro{\newglossary}You can create as many glossaries as you would like before \cs{makeglossaries}, either by using certain \glossaries{} package options like \hbox{[acronyms]} and \hbox{[symbols]}, or by using \cs{newglossary} directly. (See Chapter~12 of the \glossaries{} user manual.)
%
%\DescribeMacro{\printglossaries}
%\DescribeMacro{\printglossary}
%\cs{printglossaries} will print all glossaries in the order they were defined.  If you want to print the glossaries in a different order, or if you would like to assign different styles to each, you should use \cs{printglossary} for each glossary and set the style explicitly using the optional argument.
%
%\ex|\printglossary|\oarg{options}\xe
%
%For example, |\printglossary[type=main,style=list]| would print the \texttt{main} glossary using the \texttt{list} style defined by \glossaries{}. (If no type is given, then |\printglossary| will print the \texttt{main} glossary.)
%
%Recall that \cs{printglosses} is defined as |\printglossary[type=\leipzigtype]| and is also defined to print with the style specified by \leipzig{} package options. If you want a different style, you can specify that in the optional argument to \cs{printglosses}:
%
%\ex|\printglosses[style=list]|\xe
%
%You can reset the glossary preamble between each call of |\printglossary| or |\printglosses|. 
%
%\DescribeMacro{[style=\meta{options}]}The \hbox{[style=\meta{options}]} option in \glossaries{} is set to define the style for all glossaries \emph{except} the \cs{leipzigtype} glossary. If you truly want to set one style for all glossaries, you will need to use  \cs{setglossarystyle} before \cs{makeglossaries}. A linguistics paper might have several different glossaries of abbreviations, so if you wanted to print all of them using the \texttt{leipzigalttree} style, you could do the following:
%
%\iffalse
%\ex|\usepackage[nomain,acronyms,symbols,glosses]{leipzig}|
%
%|% package options create three glossaries:| 
%
%|  % Acronyms, Symbols, and Abbreviations|\newline
%
%|\setglossarystyle{leipzigalttree}|
%
%|\makeglossaries|\newline
%
%|\newacronym{acr}{acr}{sample acronym}|
%
%|\newglossaryentry[type=symbol]{pwd}{name={$\omega$},description={prosodic word}}|
%
%\xe
%\fi
%
%\ex|\usepackage{leipzig}|
%
%|\setglossarystyle{leipzigalttree}|
%
%|\makeglossaries|\xe
%
%
%\noindent\framebox[\textwidth]{\noindent\vbox{\textbf{Note:} if you use this method to set \texttt{inline} as the style for every glossary, then no glossary will have a section header.}}
%
%\iffalse Examples of how to use acronyms and symbols options to create new glossaries.\fi
%
%\section{FAQ}
%
%\begin{description}
%\item[Q:] Why don't the abbreviations display in smallcaps?
%\item[A:] Did you define abbreviations using ALL CAPS for the short form? The short form is displayed in \cs{leipzigfont}, which uses |\textsc|, but |\textsc| cannot make smallcaps out of capital letters: |\textsc{abc}| produces \textsc{abc}, but |\textsc{ABC}| produces \textsc{ABC}. Solution: change the \cs{newleipzig} definitions to use lowercase letters in the second argument.
%\item[A:] Not all font families contain a smallcaps font. For instance, only some version of Times New Roman contain a smallcaps font; the versions on Windows XP and Mac OS X do not. Solution: try changing the smallcaps font, or at least using |\usepackage[T1]{fontenc}| in your preamble.
%\end{description} 
%
% \begin{thebibliography}{9}
% \bibitem{bic08} Bickel, Balthasar, Bernard Comrie, and Martin Haspelmath. (2008). ``The Leipzig Glossing Rules. Conventions for Interlinear Morpheme by Morpheme Glosses.'' Revised version of February 2008. Department of Linguistics, Max Plank Institute for Evolutionary Anthropology. Retreived 30 June 2012: \url{http://www.eva.mpg.de/lingua/resources/glossing-rules.php}.
% \end{thebibliography}
%\clearpage
%\appendix
%\section{Pre-defined abbreviations}\label{abbrvlist}%
% \begin{longtable}{lll}\toprule
% Command & Short & Long\\\midrule
% \verb+\First{}+ & \sc 1 & first person\\
% \verb+\Second{}+ & \sc 2 & second person\\
% \verb+\Third{}+ & \sc 3 & third person\\
% \verb+\Abl{}+ & \sc abl & ablative\\
% \verb+\Abs{}+ & \sc abs & absolutive\\
% \verb+\Acc{}+ & \sc acc & accusative\\
% \verb+\Adj{}+ & \sc adj & adjective\\
% \verb+\Adv{}+ & \sc adv & adverbial\\
% \verb+\Aarg{}+ & \sc a & agent\\
% \verb+\Agr{}+ & \sc agr & agreement\\
% \verb+\All{}+ & \sc all & allative\\
% \verb+\Antip{}+ & \sc antip & antipassive\\
% \verb+\Appl{}+ & \sc appl & applicative\\
% \verb+\Art{}+ & \sc art & article\\
% \verb+\Aux{}+ & \sc aux & auxiliary\\
% \verb+\Ben{}+ & \sc ben & benefactive\\
% \verb+\Caus{}+ & \sc caus & causative\\
% \verb+\Clf{}+ & \sc clf & classifier\\
% \verb+\Com{}+ & \sc com & comitative\\
% \verb+\Comp{}+ & \sc comp & complementizer\\
% \verb+\Compl{}+ & \sc compl & completive\\
% \verb+\Cond{}+ & \sc cond & conditional\\
% \verb+\Cop{}+ & \sc cop & copula\\
% \verb+\Cvb{}+ & \sc cvb & converb\\
% \verb+\Dat{}+ & \sc dat & dative\\
% \verb+\Decl{}+ & \sc decl & declarative\\
% \verb+\Defn{}+ & \sc def & definite\\
% \verb+\Dem{}+ & \sc dem & demonstrative\\
% \verb+\Det{}+ & \sc det & determiner\\
% \verb+\Dist{}+ & \sc dist & distal\\
% \verb+\Distr{}+ & \sc distr & distributive\\
% \verb+\Du{}+ & \sc du & dual\\
% \verb+\Dur{}+ & \sc dur & durative\\
% \verb+\Erg{}+ & \sc erg & ergative\\
% \verb+\Excl{}+ & \sc excl & exclusive\\
% \verb+\F{}+ & \sc f & feminine\\
% \verb+\Foc{}+ & \sc foc & focus\\
% \verb+\Fut{}+ & \sc fut & future\\
% \verb+\Gen{}+ & \sc gen & genitive\\
% \verb+\Imp{}+ & \sc imp & imperative\\
% \verb+\Incl{}+ & \sc incl & inclusive\\
% \verb+\Ind{}+ & \sc ind & indicative\\
% \verb+\Indf{}+ & \sc indf & indefinite\\
% \verb+\Inf{}+ & \sc inf & infinitive\\
% \verb+\Ins{}+ & \sc ins & instrumental\\
% \verb+\Intr{}+ & \sc intr & intransitive\\
% \verb+\Impf{}+ & \sc impf & imperfective\\
% \verb+\Irr{}+ & \sc irr & irrealis\\
% \verb+\Loc{}+ & \sc loc & locative\\
% \verb+\M{}+ & \sc m & masculine\\
% \verb+\N{}+ & \sc n & neuter\\
% \verb+\Neg{}+ & \sc neg & negative\\
% \verb+\Nmlz{}+ & \sc nmlz & nominalizer\\   
% \verb+\Nom{}+ & \sc nom & nominative\\      
% \verb+\Obj{}+ & \sc obj & object\\          
% \verb+\Obl{}+ & \sc obl & oblique\\         
% \verb+\Pass{}+ & \sc pass & passive\\       
% \verb+\Parg{}+ & \sc p & patient\\           
% \verb+\Pfv{}+ & \sc pfv & perfective\\      
% \verb+\Pl{}+ & \sc pl & plural\\            
% \verb+\Poss{}+ & \sc poss & possessive\\    
% \verb+\Pred{}+ & \sc pred & predicative\\   
% \verb+\Prf{}+ & \sc prf & perfect\\         
% \verb+\Prs{}+ & \sc prs & present\\         
% \verb+\Prog{}+ & \sc prog & progressive\\   
% \verb+\Proh{}+ & \sc proh & prohibitive\\   
% \verb+\Prox{}+ & \sc prox & proximal\\      
% \verb+\Pst{}+ & \sc pst & past\\            
% \verb+\Ptcp{}+ & \sc ptcp & participle\\    
% \verb+\Purp{}+ & \sc purp & purposive\\     
% \verb+\Q{}+ & \sc q & question particle\\   
% \verb+\Quot{}+ & \sc quot & quotative\\     
% \verb+\Recp{}+ & \sc recp & reciprocal\\    
% \verb+\Refl{}+ & \sc refl & reflexive\\     
% \verb+\Rel{}+ & \sc rel & relative\\        
% \verb+\Res{}+ & \sc res & resultative\\     
% \verb+\Sbj{}+ & \sc sbj & subject\\         
% \verb+\Subj{}+ & \sc subj & subjunctive\\   
% \verb+\Sg{}+ & \sc sg & singular\\          
% \verb+\Sarg{}+ & \sc s & argument of intransitive argument\\  
% \verb+\Top{}+ & \sc top & topic\\           
% \verb+\Tr{}+ & \sc tr & transitive\\        
% \verb+\Voc{}+ & \sc voc & vocative\\\bottomrule   
% \end{longtable}
%
%\section{Example of multiple glossaries}\label{app:multiple}%
% 
%\begin{verbatim}\documentclass{book}%
%
%\usepackage[mcolblock,% style for gloss abbreviations
%     symbols,%          creates glossary of symbols
%     glosses,%          creates glossary of gloss abbreviations
%     acronyms,%         creates glossary of acronyms that 
%                                  % are not symbols or glosses
%]{leipzig}
%
% % Glossaries other than \leipzigtype use this style:
%\setglossarystyle{block}
%
% % Change default name of \leipzigtype:
%\renewcommand{\leipzigname}{Grammatical glosses}
%
%\makeglossaries
%
% % Define some entries.
%
% % These will go into the acronym glossary.
% \newacronym{acr1}{BPS}{Bare Phrase Structure}
% \newacronym{acr2}{OT}{Optimality Theory}
%
% % These will go into the main glossary.
% \newglossaryentry{gls1}{name={Richness of the Base},%
%      description={This is a description of Richness of the Base}}
% \newglossaryentry{gls2}{name={Emergence of the Unmarked},%
%      description={This is a description of the 
%          Emergence of the Unmarked}}
%
% % These will go into the symbols glossary.
% \newacronym[type=symbols,%
%    symbol=\textiota{},%
%    sort={iota}]{iphrase}{IPh}{intonational phrase}%
%
% \newacronym[type=symbols,%
%    symbol=\textphi{},%
%    sort={phi}]{pphrase}{PPh}{phonological phrase}%
%
% \newacronym[type=symbols,%
%    symbol=\textomega{},%
%    sort={omega}]{pword}{PWd}{prosodic word}%
%
%\glsaddall % if you want to see what the output looks like
%
%\begin{document}
%
% % The main glossary will print after its own chapter heading, 
% %    because we didn't change the [section] option.
% % We will print the main glossary in yet a third style:
% \printglosses[style=list]
%
% % Now we will print all of the remaining glossaries as 
% %      individual sections together in one chapter.
% \chapter*{Abbreviations}
% \setglossarysection{section}
%
% \printglosses % prints using mcolblock style
% \printacronyms % prints using block style
% \printsymbols % prints using block style
%
%\end{document}
%\end{verbatim}
%
%\StopEventually{^^A
%  \iffalse\PrintChanges\PrintIndex\fi
%}
%
%\section{The Code}
% \iffalse
%<*package>
% \fi
% \subsection{Global conditionals and definitions}
% \begin{macro}{\ifleipzig@glossaries}
% \begin{macro}{\ifleipzig@noglossaries}
% Some booleans to determine whether the \glossaries{} package is loaded or not. The default is to load \glossaries{}. 
%
%    \begin{macrocode}
\newif\ifleipzig@glossaries\leipzig@glossariestrue
\newif\ifleipzig@noglossaries\leipzig@noglossariesfalse
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \begin{macro}{\leipzig@sepglossestrue}
% Boolean to determine whether to typeset glosses in a separate glossary. Default is false, because we assume that the most common use case is to have only one glossary, in which case glosses can go in the main glossary.
%
%    \begin{macrocode}
\newif\ifleipzig@sepglosses\leipzig@sepglossesfalse
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\ifleipzig@nostandards}
% \begin{macro}{\ifleipzigdonotindex}
% These two booleans prevent the set of standard set of abbreviations defined in the Leipzig Glossing Rules from being indexed or printed in the glossary. Users are still able to use the shortcut macros defined with the package, like |\Acc{}|. Default is to include standards in the glossary. \cs{leipzigdonotindex} can be used by authors to prevent particular abbreviations from being indexed.
%
%    \begin{macrocode}
\newif\ifleipzig@nostandards\leipzig@nostandardsfalse
\newif\ifleipzigdonotindex\leipzigdonotindexfalse
%    \end{macrocode}
% \end{macro}
% \end{macro}
%\begin{macro}{\@leipzig@default@style}
%\changes{2.0}{2017/04/08}{new}
% \cs{@leipzig@default@style} holds the style that will be used in the definition for \cs{printglossary[type=\leipzigtype]}. We default to an inline style because this is the most common use case. This can be reset by the package options \hbox{[block]}, \hbox{[mcolblock]},  and \hbox{[inline]} (same as default).
%
%    \begin{macrocode}
\newcommand*{\@leipzig@default@style}{inline}
%    \end{macrocode}
% \end{macro}
%\begin{macro}{\ifleipzighyper}
%Boolean switch to make abbreviations link to the glossary. Default is false. 
%
%    \begin{macrocode}
\newif\ifleipzighyper\leipzighyperfalse
\newif\ifleipzignonumbers\leipzignonumberstrue
%    \end{macrocode}
%\end{macro}
%\begin{macro}{\leipzigfont}
% Some user hooks to change how abbreviations are displayed in-text 
% on first and subsequent uses. These default to smallcaps. \cs{leipzigfont} works regardless of whether \glossaries{} is loaded or not.
%
%    \begin{macrocode}
\newcommand{\leipzigfont}[1]{\textsc{#1}}%
%    \end{macrocode}
%\end{macro}
% \subsection{Package options}
% \begin{macro}{[glossaries]}
%\changes{v2.0}{2017/04/05}{option now loads the glossaries package instead of merely setting a boolean and issuing a warning.}
% \begin{macro}{[noglossaries]}
%\changes{v2.0}{2017/04/05}{option now prevents leipzig from loading glossaries package.}
%Option \hbox{[glossaries]} will load the \glossaries{} package, if it exists (default behaviour). The package option \hbox{[noglossaries]} prevents \leipzig{} from loading \glossaries{}; if \glossaries{} was loaded before \leipzig{} then some of that package's functionality will still exist. 
%
%    \begin{macrocode}
\DeclareOption{glossaries}{\leipzig@glossariestrue}
\DeclareOption{noglossaries}{%
  \leipzig@glossariesfalse
  \leipzig@noglossariestrue
}%
%    \end{macrocode}
%\end{macro}
%\end{macro}
%\begin{macro}{[glosses]}
%\begin{macro}{[leipzig]}
% These options create a new glossary named \texttt{leipzig} and redefines \cs{leipzigtype} to \texttt{leipzig}. 
%
%    \begin{macrocode}
\DeclareOption{glosses}{\leipzig@sepglossestrue}
\DeclareOption{leipzig}{\leipzig@sepglossestrue}
%    \end{macrocode}
%\end{macro}
%\end{macro}
% \begin{macro}{[nostandards]}
% This option prevents the set of standard abbreviations from being indexed in a glossary.  
% 
%    \begin{macrocode}
\DeclareOption{nostandards}{\leipzig@nostandardstrue}
%    \end{macrocode}
%\end{macro}
% \begin{macro}{[block]}
%\changes{2.0}{2017/04/08}{new}
% \begin{macro}{[mcolblock]}
%\changes{2.0}{2017/04/08}{new}
% \begin{macro}{[inline]}
%\changes{2.0}{2017/04/08}{new}
% \leipzig{} defines three glossary styles which can be used, which can be set via these package options. The \cs{leipzigtype} glossary will display using this style, regardless of whether \cs{printglossaries} or \cs{printglosses} is used.
%
%    \begin{macrocode}
\DeclareOption{block}{%
  \renewcommand*{\@leipzig@default@style}{leipzigalttree}%
}%
\DeclareOption{mcolblock}{%
  \renewcommand*{\@leipzig@default@style}{leipzigmcolalttree}%
}%
\DeclareOption{inline}{%
  \renewcommand*{\@leipzig@default@style}{inline}%
}%
%    \end{macrocode}
%\end{macro}
%\end{macro}
%\end{macro}
%\begin{macro}{[leipzighyper]}
%\begin{macro}{[leipzignohyper]}
% Two package options to control whether gloss abbreviations are hyperlinked to the glossary. Default is false.
%
%    \begin{macrocode}
\DeclareOption{leipzighyper}{\leipzighypertrue}
\DeclareOption{leipzignohyper}{\leipzighyperfalse}
%    \end{macrocode}
%\end{macro}
%\end{macro}
% Pass all options to the {\glossaries} package and end.
%
%    \begin{macrocode}
\DeclareOption*{%
    \PassOptionsToPackage{\CurrentOption}{glossaries}%
}%
\ProcessOptions\relax
%    \end{macrocode}
%\subsection{Global settings used with \glossaries{}}
% Unless the \hbox{[noglossaries]} option was declared, determine if  {\glossaries}  was loaded; if not, then load \glossaries{}, \textsf{glossary-inline}, \textsf{glossary-tree}, and \textsf{glossary-mcols}, if they exist. If \glossaries{} cannot be found, throw an error.
%
%    \begin{macrocode}
\ifleipzig@noglossaries\relax
\else
  \ifleipzig@glossaries
    \@ifpackageloaded{glossaries}%
      {\relax}%
      {\IfFileExists{glossaries.sty}{%
        \RequirePackage{glossaries}%
        }%
        {\PackageError{leipzig}%
          {glossaries.sty not found.}%
          {Install glossaries.sty or use [noglossaries] option.}%
        }%
        \IfFileExists{glossary-tree.sty}{%
          \RequirePackage{glossary-tree}%
        }%
        {\PackageWarning{leipzig}%
          {glossary-tree.sty not found.}%
          {Install glossary-tree.sty to use leipzigalttree style.}%
        }%
        \IfFileExists{glossary-mcols.sty}{%
          \RequirePackage{glossary-mcols}%
        }%
        {\PackageWarning{leipzig}%
          {glossary-mcols.sty not found.}%
          {Install glossary-mcols.sty to use leipzigmcolalttree style.}%
        }%
        \IfFileExists{glossary-inline.sty}{%
          \RequirePackage{glossary-inline}%
        }%
        {\PackageWarning{leipzig}%
          {glossary-inline.sty not found.}%
          {Install glossary-inline.sty to use inline style.}%
        }%
      }%
  \fi
\fi
%    \end{macrocode}
% From here on out we use |\@ifpackageloaded{glossaries}|, whichis true either if someone used the \hbox{[glossaries]} option, or if they used \hbox{[noglossaries]} but loaded \glossaries{} before \leipzig{}. Possibly unexpected behavior, but this command avoids nested conditionals, which are problematic.
%
%\begin{macro}{\leipzigtype}
% If \glossaries{} was loaded, define some stub macros and conditionals. All glossary entries created with \cs{newleipzig} have type=\cs{leipzigtype}. It is initialized here to \cs{glsdefaulttype}, so that gloss abbreviations are put into the main glossary. The \hbox{[glosses]} package option redefines it to expand to \texttt{leipzig}. 
%
%\begin{macro}{\leipzigname}
%The name of the \cs{leipzigtype} glossary is initialized to `Abbreviations'. This prints in the section header before the glossary, if there is one.
%
%    \begin{macrocode}
\@ifpackageloaded{glossaries}{%
  \newcommand*{\leipzigtype}{\glsdefaulttype}%
  \newcommand{\leipzigname}{Abbreviations}%
%    \end{macrocode}
% \end{macro}
% \end{macro}
%\begin{macro}{\printglosses}
%\begin{macro}{\printleipzig}
%\changes{2.0}{2017/04/08}{new}
% \cs{printglosses} will print the \cs{leipzigtype} glossary. The macro \cs{printleipzig} is provided as an alias.
%
%    \begin{macrocode}
  \providecommand*{\printglosses}[1][]{}%
  \providecommand*{\printleipzig}[1][]{}%
%    \end{macrocode}
% \end{macro}
% \end{macro}
%\begin{macro}{\firstleipzigfont}
%This controls how the short form is formatted on first use.
%
%    \begin{macrocode}
  \newcommand{\firstleipzigfont}[1]{\leipzigfont{#1}}%
%    \end{macrocode}
%\end{macro}
%\begin{macro}{\ifleipzigdesccapitalize}
%Switch to capitalize the description of the abbreviation in the glossary. Default is false. 
%
%    \begin{macrocode}
  \newif\ifleipzigdesccapitalize\leipzigdesccapitalizefalse
%    \end{macrocode}
%\begin{macro}{\leipzig@glossentrydesc}
%\cs{leipzig@glossentrydesc} replaces original \cs{glossentrydesc} in the glossary styles \texttt{leipzigalttree}, \texttt{leipzigmcolalttree}, and \texttt{inline}. If the author has used \cs{leipzigdesccapitalizetue}, then we redefine \cs{leipzig@glossentrydesc} to use \cs{Glossentrydesc}. This throws an error if the description is simply \cs{nopostdesc}, so we stick with \cs{glossentrydesc} in that case.
%
%    \begin{macrocode}
  \newcommand*{\leipzig@glossentrydesc}[1]{%
    \ifleipzigdesccapitalize
      \expandafter\ifx#1\nopostdesc
        \glossentrydesc{#1}%
      \else\Glossentrydesc{#1}%
      \fi
    \else
      \glossentrydesc{#1}%
    \fi
  }%
%    \end{macrocode}
%\end{macro}
%\end{macro}
%\begin{macro}{\glspostnamespace}
%This is used in the \texttt{leipzigalttree} and \texttt{leipzigmcolalttree} styles. In \glossaries{} the space after a glossary entry name was hard-coded as \cs{space}, but authors might want this to be more flexible.
%
%    \begin{macrocode}
  \newcommand*{\glspostnamespace}{\space}%
%    \end{macrocode}
%\end{macro}
% End if \glossaries{} was loaded.
%
%    \begin{macrocode}
}{}%
%    \end{macrocode}
% If an author needs more than one glossary, the package option \hbox{[glosses]} will create a new glossary called \texttt{leipzig} with name \cs{leipzigname} (default: `Abbreviations') and will switch \cs{leipzigtype} to point to there.
%
%    \begin{macrocode}
\@ifpackageloaded{glossaries}{%
  \ifleipzig@sepglosses
    \newglossary[lpz]{leipzig}{lzs}{lzo}{\leipzigname}%
    \renewcommand*{\leipzigtype}{leipzig}%
%    \end{macrocode}
% Define hook to set the toc title when \textsf{translator} is in use.
%
%    \begin{macrocode}
    \newcommand*{\gls@tr@set@leipzig@toctitle}{%
      \translatelet{\glossarytoctitle}{Abbreviations}%
    }%
%    \end{macrocode}
% Otherwise, gloss abbreviations will sit in the \texttt{main} glossary, because we initialized \cs{leipzigtype} to \cs{glsdefaulttype} (usually `main'). We want the main glossary name to always expand to whatever the user defines \cs{leipzigname} as. This is the most likely expected behavior from the user's end, because if a linguistics document has a glossary at all, it is likely to be a list of gloss abbreviations. Therefore, we \cs{renewcommand} the \cs{glossaryname} to return \cs{leipzigname}.
%
%    \begin{macrocode}
  \else
    \renewcommand*{\glossaryname}{\leipzigname}
  \fi
%    \end{macrocode}
%\subsection{Formatting abbreviations}
%Declare the \cs{leipzigtype} glossary as an acronym list.
%
%    \begin{macrocode}
  \DeclareAcronymList{\leipzigtype}%
%    \end{macrocode}	
%\begin{macro}{long-lpz-short}
% We create a new acronym style, modeled off of the \glossaries{} code for the 
% \texttt{long-sc-short} style. It copies the \texttt{long-short} style, but changes 
% the font of the short form to be \cs{leipzigfont}.\footnote{Unfortunately, all abbreviations will use this style, even if they are not gloss abbreviations. The \textsf{glossaries-extra} provides a way to set a different style for each category of abbrevations.} The short form will be used both in running text and in the  glossary. (This default can be overridden by setting the short forms explicitly via options to \cs{newglossaryentry} or \cs{newleipzig}.)
%
%    \begin{macrocode}
    \newacronymstyle{long-lpz-short}%
    {% 
      \GlsUseAcrEntryDispStyle{long-short}%
    }%
    {% 
      \GlsUseAcrStyleDefs{long-short}%
      \renewcommand{\acronymfont}[1]{\leipzigfont{##1}}%
      \renewcommand{\firstacronymfont}[1]{\firstleipzigfont{##1}}%
      \renewcommand*{\acrpluralsuffix}{\glstextup{\glspluralsuffix}}%
    }%
%    \end{macrocode}
% Set acronym style. (Must be set after \cs{DeclareAcronymList}).
%
%    \begin{macrocode}
   \setacronymstyle{long-lpz-short}
%    \end{macrocode}
%\end{macro}
% Several redefinitions need to happen at the beginning of the document, to take into account any changes in the preamble.
%
%    \begin{macrocode}
\AtBeginDocument{%
%    \end{macrocode}
%
% If \glossaries{} option \hbox{[nostyles]} has been used, then \cs{@glossary@default@style} is set to \cs{relax} and no glossary style is set! This is a problem if the author has at least one glossary besides \cs{leipzigtype}, so we set the glossary style to \cs{@leipzig@default@style} as a last resort. \cs{@leipzig@default@style} is initialized to \texttt{inline} but could have been redefined by the user via the package options \hbox{[block]}, \hbox{[mcolblock]}, and \hbox{[inline]}.
%
%    \begin{macrocode}
  \if\@glossary@default@style\relax 
    \setglossarystyle{\@leipzig@default@style}%
  \fi
%    \end{macrocode}
%\begin{macro}{\printglosses}
%\begin{macro}{\printleipzig}
% Provide shortcut \cs{printglosses} (and alias \cs{printleipzig}) to print abbreviations in the appropriate style. We wait until \cs{AtBeginDocument} in case the author has changed the style in the preamble. 
%
% \cs{printglosses} basically expands to |\printglossary[type=\leipzigtype]|. If \cs{@leipzig@default@style} is defined, we also set a style. If the author used \cs{leipzignonumbersfalse}, then we also include a number list.
%
%    \begin{macrocode}
  \ifx\@leipzig@default@style\relax
    \renewcommand*{\printglosses}[1][]{%
      \printglossary[type=\leipzigtype,#1]%
    }%
  \else
    \ifleipzignonumbers
      \renewcommand*{\printglosses}[1][]{%
        \printglossary[type=\leipzigtype,%
          style=\@leipzig@default@style,%
          nonumberlist,#1]
      }%
    \else
      \renewcommand*{\printglosses}[1][]{%
        \printglossary[type=\leipzigtype,%
          style=\@leipzig@default@style,#1]
      }%
    \fi
  \fi
  \let\printleipzig\printglosses
%    \end{macrocode}
%\end{macro}
%\end{macro}
% We also redefine \cs{printglossaries} so that when the \cs{leipzigtype} glossary is printed, it uses \cs{printglosses} with the correct style specifications instead of \cs{printglossary}.
%
%    \begin{macrocode}
  \renewcommand*{\printglossaries}{%
%    \end{macrocode}
% \cs{forallglossaries} defines the first argument (\cs{@@glo@type}) as the name of the current glossary in the loop. 
%
%    \begin{macrocode}
    \forallglossaries{\@@glo@type}{%
%    \end{macrocode}
% If \cs{@@glo@type} and \cs{leipzigtype} expand to the same thing, then we use \cs{printglosses}. We have to fully expand both macros before comparison. 
%
%    \begin{macrocode}
      \edef\tempa{\@@glo@type}%
      \edef\tempb{\leipzigtype}%
      \ifx\tempa\tempb%
        \printglosses%
      \else
        \printglossary[type=\@@glo@type]%
      \fi%
%    \end{macrocode}
% End \cs{forallglossaries}.
%
%    \begin{macrocode}
    }% 
%    \end{macrocode}
% End \cs{printglossaries} redefinition.
%
%    \begin{macrocode}
  }% 
%    \end{macrocode}
% End \cs{AtBeginDocument}.
%
%    \begin{macrocode}
}%
%    \end{macrocode}
% End |\@ifpackageloaded{glossaries}| true text. If not, \cs{relax}.
%
%    \begin{macrocode}
}%
{\relax}%
%    \end{macrocode}
%\subsection{Glossary styles}
%Set some defaults for the \cs{leipzigtype} glossary. These can be overridden by the author.
%
%    \begin{macrocode}
\@ifpackageloaded{glossaries}{%
  \forallglossaries[\leipzigtype]{\@@glo@type}{%
    \glsnogroupskiptrue
    \glsnopostdottrue
  }%
}{\relax}% 
%    \end{macrocode}
% The {\leipzig} package pre-defines three styles. 
%
%\subsubsection{leipzigalttree style}
%    \begin{macrocode}
\@ifpackageloaded{glossary-tree}{%
%    \end{macrocode}
%\begin{macro}{leipzigalttree}
%If the \textsf{glossary-tree} package is loaded, then define a new block glossary style, \texttt{leipzigalttree}, modified from the \texttt{alttree} style with only minimal changes.
%
%    \begin{macrocode}
  \newglossarystyle{leipzigalttree}{%
    \setglossarystyle{alttree}%
      \renewenvironment{theglossary}%
      {\def\@gls@prevlevel{-1}%
      \mbox{}\par
      }% 
      {\par}%
%    \end{macrocode}
% Removed default bolding from \cs{glstreenamefmt}. That way, the short form prints with the default formatting imposed by the \texttt{long-lpz-short} acronym style. This defaults to \cs{leipzigfont}, unless the author used the \texttt{short} key in the gloss entry definition.
%
%    \begin{macrocode}
    \renewcommand*{\glstreenamefmt}[1]{##1}
%    \end{macrocode}
%  The definitions for \cs{glossentry} and \cs{subglossentry} are identical to \texttt{alttree}, except that I made the space after the widest name adjustable with \cs{glspostnamespace}, which defaults to \cs{space}. I also printed the description using \cs{leipzig@glossentrydesc}, which defaults to \cs{glossentrydesc}, but will be redefined to use \cs{Glossentrydesc} if \cs{leipzigdesccapitalize} is set to true by the author. 
%
%    \begin{macrocode}
    \renewcommand{\glossentry}[2]{%
      \ifnum\@gls@prevlevel=0\relax
      \else
         \settowidth{\glstreeindent}{%
           \glstreenamefmt{\@glswidestname\glspostnamespace}%
         }%
      \fi
      \hangindent\glstreeindent
      \parindent\glstreeindent
      \makebox[0pt][r]{%
        \glstreenamebox{\glstreeindent}{%
          \glsentryitem{##1}\glstreenamefmt{%
            \glstarget{##1}{\glossentryname{##1}}%
          }%
        }%
      }%
      \ifglshassymbol{##1}{(\glossentrysymbol{##1})\space}{}%
      \leipzig@glossentrydesc{##1}\glspostdescription\space ##2\par 
      \def\@gls@prevlevel{0}%
    }%
    \renewcommand{\subglossentry}[3]{%
      \ifnum##1=1\relax
        \glssubentryitem{##2}%
      \fi
      \ifnum\@gls@prevlevel=##1\relax
      \else
        \@ifundefined{@glswidestname\romannumeral##1}{%
          \settowidth{\gls@tmplen}{%
            \glstreenamefmt{\@glswidestname\glspostnamespace}}%
          }{%
          \settowidth{\gls@tmplen}{\glstreenamefmt{%
            \csname @glswidestname\romannumeral##1\endcsname
            \glspostnamespace}}%
          }%
        \ifnum\@gls@prevlevel<##1\relax
           \setlength\glstreeindent\gls@tmplen
           \addtolength\glstreeindent\parindent
           \parindent\glstreeindent
        \else
           \@ifundefined{@glswidestname\romannumeral\@gls@prevlevel}{%
             \settowidth{\glstreeindent}{\glstreenamefmt{%
                \@glswidestname\glspostnamespace}}}{%
             \settowidth{\glstreeindent}{\glstreenamefmt{%
                \csname @glswidestname\romannumeral\@gls@prevlevel
                   \endcsname\glspostnamespace}}}%
           \addtolength\parindent{-\glstreeindent}%
           \setlength\glstreeindent\parindent
        \fi
      \fi
      \hangindent\glstreeindent
      \makebox[0pt][r]{\glstreenamebox{\gls@tmplen}{%
        \glstreenamefmt{\glstarget{##2}{\glossentryname{##2}}}}}%
      \ifglshassymbol{##2}{(\glossentrysymbol{##2})\space}{}%
      \leipzig@glossentrydesc{##2}\glspostdescription\space ##3\par
      \def\@gls@prevlevel{##1}%
    }%
  }%
%    \end{macrocode}
%The style name \texttt{leipzigalttree} is hard to remember. We will create an alias \texttt{block}. This is easier to remember and matches the analogous package option that sets this style, but it runs the risk of being so common that some other package (or \glossaries{} itself) overwrites it.
%    \begin{macrocode}
  \newglossarystyle{block}{%
    \setglossarystyle{leipzigalttree}%
  }%
%    \end{macrocode}
%End |\@ifpackageloaded{glossaries}|. Else, \cs{relax}.
%
%    \begin{macrocode}
}% 
{\relax}%
%    \end{macrocode}
%\end{macro}
%\subsubsection{leipzigmcolalttree style}
%\begin{macro}{leipzigmcolalttree}
% The \texttt{leipzigmcolalttree} style technically only requires \textsf{glossary-tree} to be loaded. We also require \textsf{glossary-mcols}; this anticipates future updates where \leipzig{} might redefine several more \texttt{mcol*} styles.
%
%    \begin{macrocode}
\@ifpackageloaded{glossary-tree}{%
  \@ifpackageloaded{glossary-mcols}{%
    \newglossarystyle{leipzigmcolalttree}{%
      \setglossarystyle{leipzigalttree}%
      \renewenvironment{theglossary}%
      {%
        \begin{multicols}{\glsmcols}%
%    \end{macrocode}
% I added \cs{raggedcolumns}. Otherwise if one column has fewer entries than the others, the space between entries in that column is increased so that the bottoms of both columns are equal, which ruins the tabular-look.
%
%    \begin{macrocode}
        \raggedcolumns
        \def\@gls@prevlevel{-1}%
        \mbox{}\par
%    \end{macrocode}
% I hardcoded a negative \cs{vspace} because the glossary was beginning with a blank line that \cs{removelastskip} would not remove.
%
%    \begin{macrocode}
      \vspace{-\baselineskip}%
      }%
      {\par 
      \end{multicols}}%
    }%
%    \end{macrocode}
%The style name \texttt{leipzigmcolalttree} is hard to remember. We will create an alias \texttt{mcolblock}. This is easier to remember and matches the analogous package option that sets this style, but it runs the risk of being so common that some other package (or \glossaries{} itself) overwrites it.
%    \begin{macrocode}
  \newglossarystyle{mcolblock}{%
    \setglossarystyle{leipzigmcolalttree}%
  }%
%    \end{macrocode}
% End if \textsf{glossary-mcols} and \textsf{glossary-tree} loaded.
%
%    \begin{macrocode}
  }%
  {\relax}% 
}% 
{\relax}% 
%    \end{macrocode}
%\end{macro}
%\subsubsection{inline style}
%\begin{macro}{inline}
%If the \textsf{glossary-inline} package is loaded, then redefine the existing \texttt{inline} glossary style.
%    \begin{macrocode}
\@ifpackageloaded{glossary-inline}{% if glossary-inline loaded
%    \end{macrocode}
%We need the functionality of \cs{renewglossarystyle}, so define it if it is undefined.
%    \begin{macrocode}
  \providecommand{\renewglossarystyle}[2]{%
    \ifcsundef{@glsstyle@#1}%
    {%
      \PackageError{glossaries}{Glossary style `#1' isn't already defined}{}%
    }%
    {%
      \csdef{@glsstyle@#1}{#2}%
    }%
  }
%    \end{macrocode}
% The first version of \textsf{glossary-inline} is from \glossaries{} v3.02. There were major additions in 3.03 though, so we include a slightly different version of \texttt{inline} for systems with \glossaries{} v3.03+ (2012/05/22 or later).
%
%    \begin{macrocode}
  \@ifpackagelater{glossaries}{2012/05/22}{%
  \renewglossarystyle{inline}{%
    \renewenvironment{theglossary}%
      {%
        \def\gls@inlinesep{}%
        \def\gls@inlinesubsep{}%
        \def\gls@inlinepostchild{}%
      }%
      {\glspostinline}%
   \renewcommand*{\glossaryheader}{}%
   \renewcommand*{\glsgroupheading}[1]{}%
%    \end{macrocode}
% The gloss and subgloss format are changed to replace \cs{glossentrydesc} with \cs{leipzig@glossentrydesc}. 
%
%    \begin{macrocode}
    \renewcommand{\glossentry}[2]{%
      \glsinlinedopostchild
      \gls@inlinesep
      \glsentryitem{##1}%
      \glsinlinenameformat{##1}{%
        \glossentryname{##1}%
      }%
     \ifglsdescsuppressed{##1}%
     {%
        \glsinlineemptydescformat
        {%
           \glossentrysymbol{##1}%
        }%
        {%
          ##2%
        }%
      }%
      {%
        \ifglshasdesc{##1}%
        {\glsinlinedescformat{\leipzig@glossentrydesc{##1}}{\glossentrysymbol{##1}}{##2}}%
        {\glsinlineemptydescformat{\glossentrysymbol{##1}}{##2}}%
      }%
      \ifglshaschildren{##1}%
      {%
         \glsresetsubentrycounter
         \glsinlineparentchildseparator
         \def\gls@inlinesubsep{}%
         \def\gls@inlinepostchild{\glsinlinepostchild}%
      }%
      {}%
      \def\gls@inlinesep{\glsinlineseparator}%
    }%
    \renewcommand{\subglossentry}[3]{%
      \gls@inlinesubsep%
      \glsinlinesubnameformat{##2}{%
         \glossentryname{##2}}%
      \glssubentryitem{##2}%
      \glsinlinesubdescformat{\leipzig@glossentrydesc{##2}}{\glossentrysymbol{##2}}{##3}%
      \def\gls@inlinesubsep{\glsinlinesubseparator}%
    }%
%    \end{macrocode}
%We also change some of the default settings.
%
%    \begin{macrocode}
    \renewcommand*{\glsgroupskip}{}%
    \renewcommand*{\glsinlineseparator}{,\space}% original: ;\space
    \renewcommand*{\glsinlinesubseparator}{,\space}%
    \renewcommand*{\glsinlineparentchildseparator}{:\space}%
    \renewcommand*{\glsinlinepostchild}{}%
    \renewcommand*{\glspostinline}{.\space}% original: \glspostdescription\space
    \renewcommand*{\glsinlinenameformat}[2]{\glstarget{##1}{##2}}%
    \renewcommand*{\glsinlinedescformat}[3]{%
      \,=\,\linebreak[1]##1}% original: \space#1
    \renewcommand*{\glsinlineemptydescformat}[2]{}%
    \renewcommand*{\glsinlinesubnameformat}[2]{%
      \glstarget{##1}{##2}}%original: \glstarget{#1}{}
    \renewcommand*{\glsinlinesubdescformat}[3]{%
      \,=\,\linebreak[1]##1}%original: #1
%    \end{macrocode}
% We redefine \cs{glossarysection} \emph{within} the glossary style definition. This means that any glossary that uses this style will \emph{not} have a section header. Other glossaries will not be affected unless the author uses |\setglossarystyle{inline}| before \cs{makeglossaries}. 
%
%    \begin{macrocode}
    \renewcommand*{\glossarysection}[2][\@gls@title]{}% no section header
    }%
  }%
%    \end{macrocode}
% For systems with \glossaries{} v3.02, \leipzig{} added a separator between the long and short forms with \cs{glsinlineshortlongseparator}. (This functionality was added in \glossaries{} v3.03 with \cs{glsinline(sub)descformat}.
%
%    \begin{macrocode}
  {%
    \renewglossarystyle{inline}{%
      \renewenvironment{theglossary}%
        {%
          \def\gls@inlinesep{}%
          \def\gls@inlinesubsep{}%
          \def\gls@inlineshortlongsep{%
              \glsinlineshortlongseparator}% added this v1.0
        }%
        {\glspostinline}%
      \renewcommand*{\glossaryheader}{}%
      \renewcommand*{\glsgroupheading}[1]{}%
      \renewcommand*{\glossaryentryfield}[5]{%
        \gls@inlinesep
        \glsentryitem{##1}\glstarget{##1}{##2}%
        \def\glo@desc{##3}%
        \def\@no@post@desc{\nopostdesc}%
        \ifx\glo@desc\@no@post@desc
        \else
          \ifstrempty{##3}{}{\gls@inlineshortlongsep##3}%
        \fi
        \ifglshaschildren{##1}%
        {%
           \glsresetsubentrycounter
           \glsinlineparentchildseparator
           \def\gls@inlinesubsep{}%
        }%
        {}%
        \def\gls@inlinesep{\glsinlineseparator}%
      }%
      \renewcommand*{\glossarysubentryfield}[6]{%
        \gls@inlinesubsep%
        \glstarget{##2}{}%
        \glssubentryitem{##2}##4%
        \def\gls@inlinesubsep{\glsinlinesubseparator}%
      }%
    \renewcommand*{\glsgroupskip}{}%
    \newcommand*{\glsinlineshortlongseparator}{%
      \,=\,\linebreak[1]}% added this v1.0
    \renewcommand*{\glsinlineseparator}{,\space}% original: ;\space
    \renewcommand*{\glsinlinesubseparator}{,\space}%
    \renewcommand*{\glsinlineparentchildseparator}{:\space}%
    \renewcommand*{\glspostinline}{.\space}% changed from .
   % \renewcommand{\glsnamefont}[1]{\textsc{##1}}% removed v2.0
    \renewcommand*{\glossarysection}[2][\@gls@title]{}% added v1.0
    }% 
  }% 
%    \end{macrocode}
% Else, if \textsf{glossary-inline} is not loaded, \cs{relax}.
%
%    \begin{macrocode}
}{\relax}%
%    \end{macrocode}
%\end{macro}
%\subsection{Creating gloss abbreviations}
%\begin{macro}{\newleipzig}
% Define \cs{newleipzig} to do the right thing whether \glossaries{}  is loaded or~not.
%
%    \begin{macrocode}
\@ifpackageloaded{glossaries}{%
%    \end{macrocode}
%If \glossaries{} is loaded, \cs{newleipzig} calls \cs{newacronym} with type \cs{leipzigtype}. It then calls \cs{@newleipzig}, which creates a shortcut macro.
%
%    \begin{macrocode}
  \newcommand{\newleipzig}[4][]{%
    \bgroup
    {\newacronym[type=\leipzigtype,#1]{#2}{#3}{#4}}%
    \@newleipzig#2\@nil%
  }%
%    \end{macrocode}
% \cs{newleipzig} passes the glossary label (parameter \#2) to \cs{@newleipzig}, which actually reads in the first token of the label separately than the remainder of the label. 
%
%    \begin{macrocode}
  \def\@newleipzig#1#2\@nil{%
%    \end{macrocode}
% A globally-defined macro is created from the label after capitalizing the first token. If the |\leipzigdonotindex| boolean is toggled true, then this macro is defined to print the short form of the abbreviation in \cs{leipzigfont}, which is initialized to smallcaps. 
%
%    \begin{macrocode}
    \ifleipzigdonotindex
      \uppercase{\expandafter\gdef\csname #1}#2\endcsname{%
        \leipzigfont{\glsentryshort{#1#2}}%
      }%
%    \end{macrocode}
%If \cs{leipzigdonotindex} is false, then the macro is defined to call \cs{acrshort} or \cs{acrshort*}, depending on whether the abbreviation should include a hyperlink to the glossary or not. 
%
% Note that \cs{glsentryshort} and \cs{acrshort} both display the short form of the acronym. Neither changes the first use flag. The only differences are that \cs{acrshort} indexes the acronym for use in the glossary and is formatted according to the short form of the acronym style \texttt{long-lpz-short}, but \cs{glsentryshort} does not index the acronym nor format the text. 
%
%    \begin{macrocode}
    \else
      \ifleipzighyper
        \uppercase{\expandafter\gdef\csname #1}#2\endcsname{%
        \acrshort{#1#2}%
      }%
      \else
        \uppercase{\expandafter\gdef\csname #1}#2\endcsname{%
          \acrshort*{#1#2}%
        }%
      \fi
    \fi  
    \egroup
%    \end{macrocode}
% End |\def\@newleipzig|.
%
%    \begin{macrocode}
    }% 
%    \end{macrocode}
% \begin{macro}{\renewleipzig}
% This macro is provided to allow authors to change previously-defined gloss abbreviations, such as the pre-defined abbreviations that come bundled with \leipzig{}. This command is courtesy egreg, from \url{http://tex.stackexchange.com/questions/277292/redefining-existing-abbreviations-for-leipzig-sty}.
%
%    \begin{macrocode}
\newcommand{\renewleipzig}[2][]{%
  \if@leipzig@defined{#2}
    {%
     \renew@leipzig{#1}{#2}%
    }%
    {%
     \PackageError{leipzig}
       {Abbreviation `#2' undefined}
       {No `#2` abbreviation is defined, use \string\newleipzig}%
     \@gobbletwo
    }%
}
\def\if@leipzig@defined#1{%
  \uppercase\expandafter{\expandafter\ifcsname\@car#1\@nil}\@cdr#1\@nil\endcsname
    \expandafter\@firstoftwo
  \else
    \expandafter\@secondoftwo
  \fi
}
\def\renew@leipzig#1#2{%
  \ifcsname glo@\glsdetoklabel{#2}@name\endcsname
    \csundef{glo@\glsdetoklabel{#2}@name}
  \fi
  \if\relax\detokenize{#2}\relax
    \expandafter\@firstoftwo
  \else
    \expandafter\@secondoftwo
  \fi
  {\newleipzig{#2}}{\newleipzig[#1]{#2}}%
}%
}%
%    \end{macrocode}
% \end{macro}
%If \glossaries{} not loaded, then the code for \cs{newleipzig} and \cs{renewleipzig} is much shorter.
%    \begin{macrocode}
{% 
  \newcommand{\newleipzig}[4][]{\@newleipzig(#3)#2\@nil}%
  \newcommand{\renewleipzig}[4][]{%
    \if@leipzig@defined{#2}
      {%
       \@newleipzig(#3)#2\@nil%
      }%
      {%
       \PackageError{leipzig}
         {Abbreviation `#2' undefined}
         {No `#2` abbreviation is defined, use \string\newleipzig}%
       \@gobbletwo
      }%
  }
%    \end{macrocode}
%\changes{2.2}{2019/06/09}{Added definition of \cs{if@leipzig@defined} here. This fixes an error that occurred if \cs{renewcommand} was used with package option [noglossaries].}
%    \begin{macrocode}
  \def\if@leipzig@defined#1{%
    \uppercase\expandafter{\expandafter\ifcsname\@car#1\@nil}\@cdr#1\@nil\endcsname
      \expandafter\@firstoftwo
    \else
      \expandafter\@secondoftwo
    \fi
  }
  \def\@newleipzig(#1)#2#3\@nil{%
    \uppercase{\expandafter\gdef\csname #2}#3\endcsname{\leipzigfont{#1}}
  }%
}
%    \end{macrocode}
%\end{macro}
% Load the list of standard abbreviations. 
%
%    \begin{macrocode}
\@ifpackageloaded{glossaries}{%
%    \end{macrocode}
% If the \hbox{[nostandards]} option was used, then do not index the abbreviations in leipzig.tex.
%
%    \begin{macrocode}
  \ifleipzig@nostandards\leipzigdonotindextrue\fi
  \loadglsentries{leipzig.tex}%
%    \end{macrocode}
% Calculate the widest name based on this set of pre-defined abbreviations. It is probably vaguely accurate; if the author needs to, they can always redefine this in the preamble. 
%
%    \begin{macrocode}
  \glsfindwidesttoplevelname[\leipzigtype]%
%    \end{macrocode}
% Turn indexing back on if it was off.
%
%    \begin{macrocode}
  \leipzigdonotindexfalse
  }%
  {\input{leipzig.tex}}%
%    \end{macrocode}
% \iffalse
%</package>
% \fi
% \iffalse
%<*abbrvs>
% \fi
%\subsection{leipzig.tex}
% The following is the list of pre-defined standards which are stripped and 
% written to leipzig.tex. 
%    \begin{macrocode}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%  This is a simple list of newcommands which create shortcuts for   	%%
%%  standard linguistic glosses (see the Leipzig Glossing rules,      	%%
%%  http://www.eva.mpg.de/lingua/resources/glossing-rules.php         %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%  Format of examples: %
%
%  All leipzig gloss macros are of the form {\Label}
%
% where Label is a capitalized version of the gloss label, which is the first 
% argument passed to \newleipzig. In most cases, the label has been chosen 
% to match the abbreviations suggested in the Leipzig glossing rules.
%
% That is, \Acc{} and {\Acc} will print \textsc{acc}, etc.
%
% In a few cases, the label does not match the abbreviation, because the
% macro that would have been created is already defined in LaTeX.

\newleipzig{abl}{abl}{ab\-la\-tive}			%ablative
\newleipzig{abs}{abs}{ab\-so\-lu\-tive}		%absolutive
\newleipzig{acc}{acc}{ac\-cusa\-tive}		%accusative
\newleipzig{adj}{adj}{ad\-jec\-tive}			%adjective
\newleipzig{adv}{adv}{ad\-ver\-bial}		%adverb(ial)
\newleipzig{aarg}{a}{agent}			%agent-like argument of 
									%canonical transitive verb
\newleipzig{agr}{agr}{agreement}		%agreement
\newleipzig{all}{all}{al\-la\-tive}			%allative
\newleipzig{antip}{antip}{anti\-pas\-sive}		%antipassive
\newleipzig{appl}{appl}{ap\-plica\-tive}		%applicative
\newleipzig{art}{art}{article}			%article
\newleipzig{aux}{aux}{aux\-il\-iary}			%auxiliary
\newleipzig{ben}{ben}{bene\-fac\-tive}		%benefactive
\newleipzig{caus}{caus}{causative}		%causative
\newleipzig{clf}{clf}{clas\-si\-fi\-er}			%classifier
\newleipzig{com}{com}{comi\-ta\-tive}		%comitative
\newleipzig{comp}{comp}{com\-ple\-men\-ti\-zer}	%complementizer
\newleipzig{compl}{compl}{com\-ple\-tive}	%completive
\newleipzig{cond}{cond}{con\-di\-tion\-al}		%conditional
\newleipzig{cop}{cop}{cop\-u\-la}		%copula
\newleipzig{cvb}{cvb}{con\-verb}		%converb
\newleipzig{dat}{dat}{da\-tive}		%dative
\newleipzig{decl}{decl}{declarative}    	%declarative
\newleipzig{def}{def}{definite}         		%definite
\newleipzig{dem}{dem}{demonstrative}    	%demonstrative
\newleipzig{det}{det}{determiner}       	%determiner
\newleipzig{dist}{dist}{dis\-tal}         		%distal
\newleipzig{distr}{distr}{dis\-tri\-bu\-tive} 		%distributive
\newleipzig{du}{du}{dual}               		%dual
\newleipzig{dur}{dur}{dur\-ative}         		%durative
\newleipzig{erg}{erg}{erg\-ative}         		%ergative
\newleipzig{excl}{excl}{ex\-clu\-sive}      		%exclusive
\newleipzig{f}{f}{feminine}             		%feminine
\newleipzig{foc}{foc}{focus}            		%focus
\newleipzig{fut}{fut}{future}           		%future
\newleipzig{gen}{gen}{gen\-i\-tive}         		%genitive
\newleipzig{imp}{imp}{imperative}       	%imperative
\newleipzig{incl}{incl}{inclusive}      		%inclusive
\newleipzig{ind}{ind}{indicative}       		%indicative
\newleipzig{indf}{indf}{indefinite}     		%indefinite
\newleipzig{inf}{inf}{in\-fini\-tive}       		%infinitive
\newleipzig{ins}{ins}{instrumental}     	%instrumental
\newleipzig{intr}{intr}{in\-tran\-si\-tive}   		%intransitive
\newleipzig{ipfv}{ipfv}{im\-per\-fec\-tive}   		%imperfective
\newleipzig{irr}{irr}{ir\-real\-is}         		%irrealis
\newleipzig{loc}{loc}{loc\-ative}         		%locative
\newleipzig{m}{m}{masculine}            	%masculine
\newleipzig{n}{n}{neuter}               		%neuter
\newleipzig{neg}{neg}{negative}         	%negation, negative
\newleipzig{nmlz}{nmlz}{nom\-i\-nal\-iz\-er}   	%nominalizer/nominalization
\newleipzig{nom}{nom}{nom\-in\-ative}       	%nominative
\newleipzig{obj}{obj}{object}           		%object
\newleipzig{obl}{obl}{ob\-lique}          		%oblique
\newleipzig{pass}{pass}{passive}       		%passive
\newleipzig{parg}{p}{patient}           		%patient
\newleipzig{pfv}{pfv}{per\-fec\-tive}       		%perfective
\newleipzig{pl}{pl}{plural}             		%plural
\newleipzig{poss}{poss}{possessive}     	%possessive
\newleipzig{pred}{pred}{pred\-i\-ca\-tive}    	%predicative
\newleipzig{prf}{prf}{perfect}          		%perfect
\newleipzig{prs}{prs}{present}          		%present
\newleipzig{prog}{prog}{progressive}    	%progressive
\newleipzig{proh}{proh}{prohibitive}    	%prohibitive
\newleipzig{prox}{prox}{prox\-i\-mal}       	%proximal/proximate
\newleipzig{pst}{pst}{past}             		%past
\newleipzig{ptcp}{ptcp}{participle}     		%participle
\newleipzig{purp}{purp}{pur\-po\-sive}      	%purposive
\newleipzig{q}{q}{question particle}    	%question particle/marker
\newleipzig{quot}{quot}{quot\-ative}      	%quotative
\newleipzig{recp}{recp}{recip\-ro\-cal}     	%reciprocal
\newleipzig{refl}{refl}{reflexive}      		%reflexive
\newleipzig{rel}{rel}{relative}         		%relative
\newleipzig{res}{res}{re\-sul\-ta\-tive}      		%resultative
\newleipzig{sbj}{sbj}{subject}          		%subject
\newleipzig{subj}{subj}{sub\-junc\-tive}    	%subjunctive
\newleipzig{sg}{sg}{singular}           		%singular
\newleipzig{sarg}{s}{argument of intransitive verb}  
                                        %single argument of intransitive verb
\newleipzig{top}{top}{topic}            		%topic
\newleipzig{tr}{tr}{tran\-si\-tive}         		%transitive
\newleipzig{voc}{voc}{voc\-ative}         		%vocative

%%  Define short versions of person + number:
\newleipzig{first}{1}{first person}%
\newleipzig{second}{2}{second person}%
\newleipzig{third}{3}{third person}%

\newcommand{\Fsg}{{\First}{\Sg}}%
\newcommand{\Fdu}{{\First}{\Du}}%
\newcommand{\Fpl}{{\First}{\Pl}}%
\newcommand{\Ssg}{{\Second}{\Sg}}%
\newcommand{\Sdu}{{\Second}{\Du}}%
\newcommand{\Spl}{{\Second}{\Pl}}%
\newcommand{\Tsg}{{\Third}{\Sg}}%
\newcommand{\Tdu}{{\Third}{\Du}}%
\newcommand{\Tpl}{{\Third}{\Pl}}%

%    \end{macrocode}
% \iffalse
%</abbrvs>
% \fi
% \Finale
\endinput

%\subsubsection{leipzigsuper style}
% Modeled on super style.
%
%    \begin{macrocode}
\@ifpackageloaded{glossaries}{%
\RequirePackage{supertabular}
\@ifundefined{glsdescwidth}{%
  \newlength\glsdescwidth
  \setlength{\glsdescwidth}{0.6\hsize}
}{}
\@ifundefined{glspagelistwidth}{%
  \newlength\glspagelistwidth
  \setlength{\glspagelistwidth}{0.1\hsize}
}{}
%    \end{macrocode}
% Super original had |\begin{supertabular}{lp{\glsdescwidth}}|. I added the |@{}| on either 
% side, so it doesn't indent.
%
% |\glossentrystretch| is defined by leipzig. Provide a hook to increase space between entries.
%
%|\leipzigdesccapitalizefalse| does nothing
%
%    \begin{macrocode}
\newcommand{\leipzig@glossentrydesc}[1]{\glossentrydesc{#1}}%
\ifleipzigdesccapitalize
  \renewcommand{\leipzig@glossentrydesc}[1]{\Glossentrydesc{#1}}%
\fi
\newglossarystyle{leipzigsuper}{%
  \renewcommand{\arraystretch}{\glossentrystretch}%
  \renewenvironment{theglossary}%
    {\tablehead{}\tabletail{}%
    \begin{supertabular}{@{} lp{\glsdescwidth} @{}}}%
    {\end{supertabular}}%
  \renewcommand*{\glossaryheader}{}% at the start of each entry
  \renewcommand*{\glsgroupheading}[1]{}% at the start of each group
  \renewcommand{\glossentry}[2]{%
    \glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
    \leipzig@glossentrydesc{##1}%
    \glspostdescription%
    %\space ##2% no number list
    \tabularnewline
  }%
%    \end{macrocode}
% The normal super style suppresses the name of subentries, but we probably do 
% not want that.
%    \begin{macrocode}
  \renewcommand{\subglossentry}[3]{%
     \glsentryitem{##2}\glstarget{##2}{\glossentryname{##2}} & 
    \leipzig@glossentrydesc{##2}%
     \glspostdescription%
     %\space##3% no number list
     \tabularnewline
  }%
  \glsnogroupskiptrue
  \ifglsnogroupskip 
    \renewcommand*{\glsgroupskip}{}%
  \else
    \renewcommand*{\glsgroupskip}{& \tabularnewline}%
  \fi
  \renewcommand*{\glspostdescription}{}%
  \renewcommand*{\glsnamefont}[1]{##1}% don't print in bold
  \renewcommand{\glossentrystretch}{1.3}%
  \leipzigdesccapitalizetrue
  \setglossarypreamble[\leipzigtype]{}%
}%
}{}% if glossaries not loaded, do nothing
%    \end{macrocode}