summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/leipzig/leipzig.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/leipzig/leipzig.sty')
-rw-r--r--Master/texmf-dist/tex/latex/leipzig/leipzig.sty205
1 files changed, 205 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/leipzig/leipzig.sty b/Master/texmf-dist/tex/latex/leipzig/leipzig.sty
new file mode 100644
index 00000000000..4dd8d510df8
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/leipzig/leipzig.sty
@@ -0,0 +1,205 @@
+%%
+%% This is file `leipzig.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% leipzig.dtx (with options: `package')
+%% This is a generated file.
+%%
+%% ----------------------------------------------------------------
+%% 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) 2013 by Natalie Weber
+%%
+%% 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 files leipzig.dtx,
+%% leipzig.ins
+%% leipzig.tex
+%%
+%% and the derived files leipzig.sty and leipzig.pdf.
+%%
+\NeedsTeXFormat{LaTeX2e}[1996/10/24]%
+\ProvidesPackage{leipzig}%
+ [2013/05/26 v1.0 Leipzig package for linguistic abbreviations]%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% 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 %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\long\def\tlist@if@empty@nTF #1{%
+ \expandafter\ifx\expandafter\\\detokenize{#1}\\%
+ \expandafter\@firstoftwo%
+ \else%
+ \expandafter\@secondoftwo%
+ \fi%
+}%
+\newif\ifleipzig@glossaries\leipzig@glossariesfalse
+\newif\ifleipzig@noglossaries\leipzig@noglossariesfalse
+\newif\ifleipzig@donotindex\leipzig@donotindexfalse
+\DeclareOption{glossaries}{\leipzig@glossariestrue}
+\DeclareOption{noglossaries}{\leipzig@noglossariestrue}
+\DeclareOption{nostandards}{\leipzig@donotindextrue}
+\DeclareOption*{%
+ \PassOptionsToPackage{\CurrentOption}{glossaries}%
+}%
+\ProcessOptions\relax
+\@ifpackageloaded{glossaries}{% true text
+ \ifleipzig@noglossaries\leipzig@glossariesfalse\relax
+ \else\leipzig@glossariestrue\relax\fi
+}{% false text
+ \ifleipzig@glossaries\PackageWarning{leipzig}{%
+ glossaries package not loaded. Load glossaries
+ package at some point.}%
+ \else\leipzig@glossariesfalse\relax\fi
+}%
+\@ifpackageloaded{glossary-inline}{% renew inline
+\renewglossarystyle{inline}{%
+ \renewenvironment{theglossary}%
+ {%
+ \def\gls@inlinesep{}%
+ \def\gls@inlinesubsep{}%
+ \def\gls@inlineshortlongsep{%
+ \glsinlineshortlongseparator}% added this
+ }%
+ {\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
+\renewcommand*{\glsinlineseparator}{,\space}% changed from ;\space
+\renewcommand*{\glsinlinesubseparator}{,\space}
+\renewcommand*{\glsinlineparentchildseparator}{:\space}
+\renewcommand*{\glspostinline}{.\space}% changed from .
+\renewcommand{\glsnamefont}[1]{\textsc{#1}}% abbrv in glossary are \sc
+\renewcommand*{\glossarysection}[2][]{}% no section name
+}{\relax}% if glossary-inline not loaded
+\newcommand{\leipzigfont}[1]{\textsc{#1}}%
+\newcommand{\firstleipzigfont}[1]{\leipzigfont{#1}}%
+\ifleipzig@glossaries %if glossaries package loaded
+ \renewcommand*{\acrpluralsuffix}{\textup{\glspluralsuffix}}%
+ \newcommand{\leipzigname}{Abbreviations}
+ \newglossary{leipzig}{lzs}{lzo}{\leipzigname}
+ \newcommand{\leipzigtype}{leipzig}
+%% The following commands are based on the Custom Acronym commands in the glossaries package.
+\newcommand*{\SetLeipzigDisplayStyle}[1]{%
+ \defglsdisplay[#1]{\leipzigfont{##1}##4}%
+ \defglsdisplayfirst[#1]{\firstleipzigfont{##1}##4}%
+}
+\newcommand*{\CustomLeipzigFields}{%
+ name={\the\glsshorttok},%
+ description={\the\glslongtok},%
+ symbol={\the\glsshorttok},%
+ first={\firstleipzigfont{\the\glsshorttok}},%
+ firstplural={\firstleipzigfont{\the\glsshorttok}\noexpand\acrpluralsuffix},%
+ text={\leipzigfont{\the\glsshorttok}},%
+ plural={\leipzigfont{\the\glsshorttok}\noexpand\acrpluralsuffix}%
+}
+\newcommand*{\LeipzigAcronymDef}{%
+ \protected@edef\@do@newglossaryentry{%
+ \noexpand\newglossaryentry{\the\glslabeltok}%
+ {%
+ type=\leipzigtype,%
+ short={\leipzigfont{\the\glsshorttok}},% used in e.g. \acrshort
+ shortplural={\leipzigfont{\the\glsshorttok}\noexpand\acrpluralsuffix},%
+ long={\the\glslongtok},%
+ longplural={\the\glslongtok\noexpand\acrpluralsuffix},%
+ user1={\the\glsshorttok},%
+ user2={\the\glsshorttok\noexpand\acrpluralsuffix},%
+ user3={\the\glslongtok},%
+ user4={\the\glslongtok\noexpand\acrpluralsuffix},%
+ \CustomLeipzigFields,%
+ \the\glskeylisttok
+ }%
+ }%
+ \@do@newglossaryentry
+}
+\newcommand*{\SetLeipzigStyle}{%
+ \renewcommand{\newacronym}[4][]{%
+ \ifx\@glsacronymlists\@empty
+ \def\@glo@type{\leipzigtype}%
+ \setkeys{glossentry}{##1}%
+ \DeclareAcronymList{\@glo@type}%
+ \SetLeipzigDisplayStyle{\@glo@type}%
+ \fi
+ \glskeylisttok{##1}%
+ \glslabeltok{##2}%
+ \glsshorttok{##3}%
+ \glslongtok{##4}%
+ \newacronymhook
+ \LeipzigAcronymDef
+ }%
+%% \@for\@gls@type:=\@glsacronymlists\do{% sets style for all acronymlists?
+%%%% \SetCustomDisplayStyle{\@gls@type}%
+%% \SetLeipzigDisplayStyle{\@gls@type}%
+%% }%
+}%
+\SetLeipzigStyle
+%%Normally would have |\leipzigfont{#2}|, but I coded the leipzigfont directly into the short form. How else to do it?
+\renewcommand{\acrfullformat}[2]{#1\space(#2)}
+\newcommand{\newleipzig}[4][]{%
+ \bgroup
+ \tlist@if@empty@nTF{#1}%
+ {\newacronym[type=\leipzigtype]{#2}{#3}{#4}}%
+ {\newacronym[type=\leipzigtype,#1]{#2}{#3}{#4}}%
+ % \newacronym[type=\leipzigtype][#1]{n#2}{n#3}{Non-#4}
+ \@newleipzig(#3)#2\@nil}%
+ \def\@newleipzig(#1)#2#3\@nil{%
+ \ifleipzig@donotindex
+ \uppercase{\expandafter\gdef\csname #2}#3\endcsname{\leipzigfont{#1}}
+ \else
+ \uppercase{\expandafter\gdef\csname #2}#3\endcsname{\gls{#2#3}}
+ \fi
+ \egroup
+ }% end if glossaries loaded
+\else % if glossaries not loaded
+ \newcommand{\newleipzig}[4][]{\@newleipzig(#3)#2\@nil}%
+ \def\@newleipzig(#1)#2#3\@nil{%
+ \uppercase{\expandafter\gdef\csname #2}#3\endcsname{\leipzigfont{#1}}
+ }%
+\fi
+\input{leipzig.tex}
+\ifleipzig@donotindex\leipzig@donotindexfalse\fi