summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tagpair/tagpair.sty
blob: ba5de69bf6c17d922f55f4c41b0617b3ddeffed1 (plain)
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
\ProvidesPackage{tagpair}[2016/02/03 v1.1 Word-by-word glosses, translations,
and bibliographic attributions]

% Copyright (C) 2016 Andreas Nolda

% Author: Andreas Nolda <andreas@nolda.org>
% Version: 1.1

% 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.

% The following code is inspired by Marcel R. van der Goot's classic "gloss.tex".

\RequirePackage{varwidth}

\newsavebox{\t@g}
\newsavebox{\p@irs}

% cf. the "\narrowragged" command in the "varwidth" package
\newcommand{\narrowraggedleft}{\rightskip\z@skip%
  \leftskip\z@ plus \hsize%
  \parfillskip\z@skip}

\newenvironment{taggedline}[2][0.75]%
  {\def\linewidthfactor{#1}%
   \savebox{\t@g}{#2}%
   \ignorespaces}%
  {\unskip%
   \hfil\penalty0%
   \hskip1em%
   \hbox{}%
   \nobreak%
   \hfill%
   \begin{varwidth}[t]{\linewidthfactor\linewidth}
     \narrowraggedleft\strut\unhbox\t@g
   \end{varwidth}}

\newenvironment{pairingline}%
  {\begin{lrbox}{\p@irs}}%
  {\end{lrbox}%
   \unhbox\p@irs}

\newcommand{\pairing}[2]%
  {\vtop{\hbox{\strut\smash{#1}}%
         \hbox{\strut\smash{#2}}}}

\newcommand{\bottomline}[1]%
  {\par\nopagebreak\noindent #1}