summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/bibtex/bst/gloss/glsshort.bst
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/bibtex/bst/gloss/glsshort.bst')
-rw-r--r--Master/texmf-dist/bibtex/bst/gloss/glsshort.bst251
1 files changed, 251 insertions, 0 deletions
diff --git a/Master/texmf-dist/bibtex/bst/gloss/glsshort.bst b/Master/texmf-dist/bibtex/bst/gloss/glsshort.bst
new file mode 100644
index 00000000000..babd8ded93c
--- /dev/null
+++ b/Master/texmf-dist/bibtex/bst/gloss/glsshort.bst
@@ -0,0 +1,251 @@
+% (c) 1998 Jose Luis Diaz, 1999-2002 Jose Luis Diaz and Javier Bezos.
+% All Rights Reserved.
+%
+% This file is part of the gloss distribution release 1.5.2
+% -----------------------------------------------------------
+%
+% This file can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+%
+%% History of v0.1
+%% ~~~~~~~~~~~~~~~
+%% 1997/06/25 (JLDdA) Original version, by Jose Luis Diaz de Arriba (and an
+%% unindicted co-conspirator)
+%% History of v1.0
+%% ~~~~~~~~~~~~~~~
+%% 1999/07/29 (JBL) Rewritten in full. Now it warns if a required field is
+%% missing, conforms the new gloss.sty syntax, and
+%% writes headings for each letter. The heading,
+%% short, and group fiels have been added.
+%% History of v1.1-1.4
+%% ~~~~~~~~~~~~~~~~~~~
+%% 1999/10/10 (JBL) Lots of changes.
+%% History of v.1.5
+%% ~~~~~~~~~~~~~~~~
+%% 2001/08/02 (JBL) Created this file from glsplain.bst
+
+STRINGS { last.heading s t star.period}
+
+ENTRY
+ { word
+ sort-word
+ definition
+ heading
+ group
+ short
+ sort-short
+ }
+ {}
+ { ucword }
+
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+
+FUNCTION {has.period}
+{ duplicate$
+ add.period$ =
+}
+
+FUNCTION {str.length}
+{ 't :=
+ #0
+ { t empty$ not }
+ { t #2 global.max$ substring$
+ 't :=
+ #1 +
+ }
+ while$
+}
+
+
+FUNCTION {upper.first}
+{ duplicate$
+ #1 text.prefix$
+ duplicate$
+ "u" change.case$
+ 's :=
+ str.length
+ #1 + entry.max$ substring$
+ s swap$ *
+}
+
+FUNCTION {check.required}
+{ 's :=
+ duplicate$ empty$
+ { "Empty " s * " in " * cite$ * warning$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+FUNCTION {push.sortshort}
+{ sort-short empty$
+ { short field.or.null }
+ 'sort-short
+ if$
+}
+
+FUNCTION {check.alpha}
+{ duplicate$
+ purify$
+ empty$
+ { "Non alphabetical " cite$ *
+ " entry without group field" * warning$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {push.heading}
+{ heading empty$
+ { short field.or.null
+ #1 text.prefix$
+ check.alpha
+ }
+ 'heading
+ if$
+}
+
+FUNCTION {begin.entry}
+{ newline$
+ "\begin{glossitem" star.period * write$
+ "}{" write$
+ cite$ write$
+ "}{" write$
+ word write$
+ "}{" write$
+ ucword write$
+ "}{" write$
+ short field.or.null write$
+ "}" write$
+ newline$
+}
+
+FUNCTION {end.entry}
+{ "\end{glossitem" star.period "}" * * write$
+ newline$
+}
+
+FUNCTION {set.vars}
+{ short field.or.null
+ "short" check.required
+ upper.first
+ 'ucword :=
+}
+
+
+FUNCTION {glossdef}
+{ definition field.or.null
+ "definition" check.required
+ duplicate$ has.period
+ { "*" }
+ { "" }
+ if$
+ 'star.period := % definition is stored for later writing
+ begin.entry % this outputs word, ucword, and short
+ write$ % writes definition
+ end.entry
+}
+
+FUNCTION {gd}
+{ definition field.or.null
+ "definition" check.required
+ duplicate$ has.period
+ { "*" }
+ { "" }
+ if$
+ 'star.period := % definition is stored for later
+ begin.entry % this outputs word, ucword, and short
+ write$ % writes definition
+ end.entry
+}
+
+FUNCTION {default.type} { glossdef }
+
+FUNCTION {presort}
+{ set.vars
+ push.sortshort
+ group empty$
+ { purify$ "L" }
+ 'group
+ if$ % sort-short heading
+ swap$ * % heading * sort-short
+ "l" change.case$
+ 'sort.key$ :=
+}
+
+FUNCTION {begin.thegloss}
+{ "\begin{thegloss}"
+ write$
+ newline$
+ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+}
+
+FUNCTION {end.thegloss}
+{ newline$
+ "\end{thegloss}" write$
+ newline$
+}
+
+FUNCTION {call.entries}
+ { group empty$
+ 'push.heading
+ { heading empty$
+ 'skip$
+ { "Ignoring heading because there is group field in "
+ cite$ *
+ warning$
+ }
+ if$
+ group
+ }
+ if$
+ "u" change.case$
+ duplicate$
+ group empty$
+ 'skip$
+ { "$$$$$" * }
+ if$
+ duplicate$
+ last.heading =
+ { pop$ pop$ }
+ { newline$
+ 'last.heading :=
+ group empty$
+ { "\glossheading{" }
+ { "\glossgroup{" }
+ if$
+ swap$ * "}" *
+ write$
+ newline$
+ }
+ if$
+ call.type$
+ }
+
+READ
+
+ITERATE {presort}
+
+SORT
+
+EXECUTE {begin.thegloss}
+
+ITERATE {call.entries}
+
+EXECUTE {end.thegloss}
+
+