summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-08-17 20:25:47 +0000
committerKarl Berry <karl@freefriends.org>2023-08-17 20:25:47 +0000
commit2503a53b82f99be7edd90a292f3d86881363791d (patch)
treee71aaa02df10b331bb79bb87553b5e8c866313ba /Master/texmf-dist/tex/latex
parent4ec4d4ae52704bf74faaf86218147af84c68dd69 (diff)
expex-glossonly (17aug23)
git-svn-id: svn://tug.org/texlive/trunk@67958 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r--Master/texmf-dist/tex/latex/expex-glossonly/expex-glossonly.sty88
1 files changed, 52 insertions, 36 deletions
diff --git a/Master/texmf-dist/tex/latex/expex-glossonly/expex-glossonly.sty b/Master/texmf-dist/tex/latex/expex-glossonly/expex-glossonly.sty
index b33b6b41c06..d881bfdf24a 100644
--- a/Master/texmf-dist/tex/latex/expex-glossonly/expex-glossonly.sty
+++ b/Master/texmf-dist/tex/latex/expex-glossonly/expex-glossonly.sty
@@ -1,10 +1,10 @@
-\def\EPGL@version{0.6}
-\def\EPGL@date{2023/08/15}
+\def\EPGL@version{0.7}
+\def\EPGL@date{2023/08/17}
% expex-glossonly is a package which allows gb4e and linguex users to use the glossing macros
% of the ExPex package, while still using the standard example and subexample numbering macros of
% those respective packages.
%
-% Copyright 2016 by Alan Munn
+% Copyright 2016-2023 by Alan Munn
%
% This package may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -23,13 +23,15 @@
%
% This package is currently experimental. Use at your own risk.
%
-\ProvidesPackage{expex-glossonly}[\EPGL@date\ Compatibility package for using ExPex glosses with gb4e and linguex v. \EPGL@version ]
-\DeclareOption*{\PackageWarning{expex-glossonly}{Unknown option `\CurrentOption`}}
-\ProcessOptions
+\ProvidesPackage{expex-glossonly}[\EPGL@date\ Compatibility package for using ExPex glosses with other example packages v. \EPGL@version ]
\RequirePackage{calc}
\RequirePackage{expex}
-% First define a command to patch the ExPex main gloss command
-% Need to find out if other gloss commands need to be patched.
+\newif\ifEPGL@examplesloaded
+\@ifpackageloaded{linguex}{\PackageError{expex-glossonly}{Please load linguex using the package option!}{Please load linguex using the package option!}}{}
+\@ifpackageloaded{gb4e}{\PackageError{expex-glossonly}{Please load gb4e using the package option!}{Please load gb4e using the package option!}}{}
+\@ifpackageloaded{covington}{\PackageError{expex-glossonly}{Please load covington using the package option!}{Please load covington using the package option!}}{}
+% for now this is a separate macro in case it needs to be changed per package.
+\newcommand\EPGL@setglossmargin{\setlength{\leftskip}{\@totalleftmargin}}
\def\EPGL@patchexpexgloss{%
\let\xe\relax
\let\pex\relax
@@ -64,34 +66,48 @@
\let\everylist=\empty
\let\colorlist=\empty
}}
-% First check to see whether we are loaded first
-% Since there is some overlap in commands, gb4e and linguex must be loaded second
-\@ifpackageloaded{linguex}{\PackageError{expex-glossonly}{Please load expex-glossonly BEFORE linguex}{Please load expex-glossonly BEFORE linguex}}{}
-\@ifpackageloaded{gb4e}{\PackageError{expex-glossonly}{Please load expex-glossonly BEFORE gb4e}{Please load expex-glossonly BEFORE gb4e}}{}
-% Now only patch the command if the packages have been loaded
-% This means that the package will do no harm if loaded by itself
-\AtBeginDocument{%
-\@ifpackageloaded{linguex}{
- \def\EPGL@setglossmargin{%
- \ifnum\theExDepth=1%
- \setlength{\leftskip}{\Exindent+\Exlabelsep+\Exlabelwidth+.5em}
- \else
- \setlength{\leftskip}{\Exindent+\Exlabelsep+\Exlabelwidth+\SubExleftmargin+.5em}
- \fi}
- \EPGL@patchexpexgloss
- \PackageInfo{expex-glossonly}{Patching ExPex for use with linguex}
- \typeout{Patching ExPex for use with linguex}
+\DeclareKeys[expex-glossonly]
+{
+gb4e.code = {
+ \RequirePackage{gb4e}
+ \EPGL@examplesloadedtrue
+ \EPGL@patchexpexgloss
+ \lingset{belowglpreambleskip=-0.5ex, aboveglftskip=-0.5ex,everygla=\eachwordone}
+ \PackageInfo{expex-glossonly}{Patching ExPex for use with gb4e}
+ \typeout{Patching ExPex for use with gb4e}
+ },
+gb4e-emulate.code = {
+ \RequirePackage{gb4e-emulate}
+ \EPGL@examplesloadedtrue
+ \EPGL@patchexpexgloss
+ \lingset{belowglpreambleskip=-0.5ex, aboveglftskip=-0.5ex,everygla=\eachwordone}
+ \PackageInfo{expex-glossonly}{Patching ExPex for use with gb4e}
+ \typeout{Patching ExPex for use with gb4e}
+},
+linguex.code = {
+ \RequirePackage{linguex}
+ \EPGL@examplesloadedtrue
+ \EPGL@patchexpexgloss
+ \lingset{belowglpreambleskip=-0.5ex, aboveglftskip=-0.5ex,everygla=\eachwordone}
+ \PackageInfo{expex-glossonly}{Patching ExPex for use with linguex}
+ \typeout{Patching ExPex for use with linguex}
+},
+covington.code = {
+ \PassOptionsToPackage{covington}{#1}
+ \let\ex\relax
+ \RequirePackage{covington}
+ \EPGL@examplesloadedtrue
+ \EPGL@patchexpexgloss
+ \newcommand*{\EPGL@glosslineone}{%
+ \@ifundefined{glosslineone@global}{\glosslineone}{\glosslineone@global}}
+ \lingset{belowglpreambleskip=-0.5ex, aboveglftskip=-0.5ex,everygla=\EPGL@glosslineone}
+ \PackageInfo{expex-glossonly}{Patching ExPex for use with covington}
+ \typeout{Patching ExPex for use with covington}
}
-{\@ifpackageloaded{gb4e}{
- \def\EPGL@setglossmargin{%
- \ifnum\@xnumdepth=1%
- \setlength{\leftskip}{\leftmargin+\widthof{\@exwidth}+1em}
- \else
- \setlength{\leftskip}{\leftmargin+\labelwidth+\labelsep+1.5em}
- \fi}
- \EPGL@patchexpexgloss
- \PackageInfo{expex-glossonly}{Patching ExPex for use with gb4e}
- \typeout{Patching ExPex for use with gb4e}
-}{}}
}
+\DeclareUnknownKeyHandler[expex-glossonly]{\PackageError{expex-glossonly}{Please specify which example package you are using as a package option!}{Please specify which example package you are using as a package option!}}
+
+\ProcessKeyOptions[expex-glossonly]
+\ifEPGL@examplesloaded\else\PackageWarning{expex-glossonly}{No example package specified! Assuming ExPex}\fi
+
\endinput \ No newline at end of file