/usr/share/texlive/texmf-dist/tex/generic/midnight/gloss.tex is in texlive-generic-extra 2013.20140215-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 | \ifx\GLOSS\relax\endinput\else\let\GLOSS=\relax\fi % \input only once
%
% gloss.tex: Macros for vertically aligning words in consecutive sentences.
% version: 1.0 release: 26 November 1990
%
% copyright (c) 1991 Marcel R. van der Goot
% You can use these macros to typeset documents. You may
% distribute this file freely, provided that you also distribute
% the accompanying documentation.
% You may make changes to this file, or extract portions
% of it for inclusion in other files, provided that
% (1) you change the name of the file;
% (2) you give proper credit and include copyright
% information where applicable;
% (3) explain how an unchanged version can be obtained; and
% (4) document the usage of your macros/changes (if usage
% of your macros is not worth documenting, they must not
% be worth using).
% You are not allowed to use the name ``Midnight Macros'' for
% any changed files.
% The above rules for making changes do not apply where it
% is explicitly noted in this file that something can be changed
% to conform to your local installation.
%
% USAGE:
% See the file gloss.doc
%
% original: csvax.cs.caltech.edu [131.215.131.131] in pub/tex
% (use anonymous ftp). Also in various archives.
%
% I wrote these macros after reading a request for something like this
% from Robert Malouf (SUNY Buffalo) on usenet in comp.text.tex.
%
% Caltech, Pasadena --- Marcel van der Goot
% marcel@cs.caltech.edu
% Caltech 256--80
% Pasadena, CA 91125
% (818) 356--4603
%
% update history:
% version 1.0: This one.
% release 9 Nov 1990: used % instead of \endlinechar (no functional
% changes involved).
% release 26 Nov 1990: This one.
% version 8 Nov 1990: Same as this, but with less readable documentation.
% version 7 Nov 1990: Used the names \fontone and \fonttwo instead of
% \eachwordone and \eachwordtwo.
% version 6 Nov 1990: Could not easily typeset a '+', handled
% linespacing incorrectly.
%%%%%% CODE: (you don't need to read this to use the macros)
\newbox\lineone % boxes with words from first line
\newbox\linetwo
\newbox\wordone % a word from the first line (hbox)
\newbox\wordtwo
\newbox\gline % the constructed double line (hbox)
\newskip\glossglue % extra glue between glossed pairs
\glossglue = 0pt plus 2pt minus 1pt % allow stretch/shrink between words
\newif\ifnotdone
\let\eachwordone=\it
\let\eachwordtwo=\rm
\def\lastword#1#2#3% #1 = \each, #2 = line box, #3 = word box
{\setbox#2=\vbox{\unvbox#2%
\global\setbox#3=\lastbox
}%
\ifvoid#3\global\setbox#3=\hbox{#1\strut{} }\fi
% extra space following \strut in case #1 needs a space
}
\def\testdone
{\ifdim\ht\lineone=0pt
\ifdim\ht\linetwo=0pt \notdonefalse % tricky space after pt
\else\notdonetrue
\fi
\else\notdonetrue
\fi
}
{\catcode`\^^M=12 \endlinechar=-1 % 12 = other
\gdef\getwords(#1,#2)#3 #4^^M% #1=linebox, #2=\each, #3=1st word, #4=remainder
{\setbox#1=\vbox{\hbox{#2\strut#3 }% adds space
\unvbox#1%
}%
\def\more{#4}%
\ifx\more\empty\let\more=\donewords
\else\let\more=\getwords
\fi
\more(#1,#2)#4^^M%
}
\gdef\donewords(#1,#2)^^M{}%
\gdef\twosent#1^^M#2^^M% #1 = first line, #2 = second line
{\getwords(\lineone,\eachwordone)#1 ^^M%
\getwords(\linetwo,\eachwordtwo)#2 ^^M%
\loop\lastword{\eachwordone}{\lineone}{\wordone}%
\lastword{\eachwordtwo}{\linetwo}{\wordtwo}%
\global\setbox\gline=\hbox{\unhbox\gline
\hskip\glossglue
\vbox{\box\wordone
\nointerlineskip
\box\wordtwo
}%
}%
\testdone
\ifnotdone
\repeat
\egroup % matches \bgroup in \gloss
}
} % restore \catcode`\^^M
\def\gloss
{\bgroup
\catcode`\^^M=12
\twosent
}
|