From a3c270d6e09eec0086bcb1905ad896d6ef4352f3 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 28 May 2013 22:13:27 +0000 Subject: leipzig (28may13) git-svn-id: svn://tug.org/texlive/trunk@30785 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/leipzig/leipzig.sty | 205 ++++++++++++++++++++++++ 1 file changed, 205 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/leipzig/leipzig.sty (limited to 'Master/texmf-dist/tex/latex/leipzig') 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 -- cgit v1.2.3