summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/carlisle/dotlessj.sty
blob: c91512fb5516ffca79ed4b56676b1737ea572b08 (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
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

% dotlessj package
%%%%%%%%%%%%%%%%%
% dotless j (\j) for them that wants one.

% Copyright 1997 1998 David Carlisle
%
% This file may be distributed under the terms of the LPPL.
% See 00readme.txt for details.
%
% David Carlisle david@dcarlisle.demon.co.uk

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{dotlessj}[1998/12/09 v0.03 dotless j package (DPC)]

% 1997/09/10 v0.01  posted to c.t.t
% 1997/09/11 v0.02  added \jmath support
% 1998/12/09 v0.03  added \v\j for  Christoph Eyrich

\RequirePackage{color}

% use a coloured rule rather than clipping as it is more portable
% eg the Y&Y dviwindo previewer, and the OzTeX previewer support
% colour package (and dviwindo can print on colour to non PS devices
% such as ink jet printers).
% Disadvantages of using colour are:
% a) it shows up if the background is not white.
% b) You have to arrange that the accent is printed after the colour.
%    (Easy to arrange for text accents with LaTeX's 
%    \DeclareTextCompositeCommand, but a bit more dangerous for math
%    accents.)
\def\j@internal{%
  \setbox\tw@\hbox{\copy\z@
  \kern-.8\wd\z@
  {\color{white}%
   \vrule \@height1.1\ht\z@ \@depth -1.1\ht4 \@width \wd\z@}%
   \kern-.2\wd\z@}%
   \ht\tw@\ht4 }

%

% The \jmath definition, set up to be passed to \mathpalette
\def\jmath@#1#2{%
  {\m@th\sbox\z@{$#1j$}\sbox4{$#1\imath$}%
   \j@internal
    \box\tw@}}%

% The \jmathaccent definition, set up to be passed to \mathpalette
\def\jmath@x#1#2{%
  {\m@th\sbox\z@{$#1j$}\sbox4{$#1\imath$}%
   \j@internal
     \copy\tw@\kern-\wd\tw@#2{\kern\wd\tw@}}}%

\DeclareRobustCommand\jmathaccent[1]{{\mathpalette\jmath@x{#1}}}


\DeclareRobustCommand\jaccent[1]{%
     {\leavevmode\sbox\z@{j}%
     \hb@xt@\wd\z@{\hss\clap\j\clap{#1{}}\hss}}}%

% centered version of \rlap \llap.
\def\clap#1{\hb@xt@\z@{\hss#1\hss}}%


% If \jmath is passed to a math accent, need to intercept it and
% instead pass the accent to \jmathaccent.

\let\j@mathaccent\mathaccent

\def\mathaccent{\afterassignment\j@mathacc@\count@}

\def\j@mathacc@#1#2{%
  \ifx\jmath#2%
    \jmathaccent{\j@mathaccent\count@}%
  \else
%     #1 should be \relax, but put it back, just in case.
    \j@mathaccent\count@#1{#2}%
  \fi}
 

% delay everything as  \j and friends get defined by encoding files
% read in by, eg fontenc package.

\AtBeginDocument{%
%
\DeclareRobustCommand\j{%
  {\sbox\z@{j}\sbox4{\i}%
   \j@internal
   \leavevmode\box\tw@}}%
%
\DeclareRobustCommand\jmath{{\mathpalette\jmath@\relax}}%
%
% Could do this for all known encodings, but just do it
% for the default encoding at begin document, to avoid wasting
% too much space.
\DeclareTextCompositeCommand\'{\encodingdefault}{\j}{\jaccent\'}%
\DeclareTextCompositeCommand\`{\encodingdefault}{\j}{\jaccent\`}%
\DeclareTextCompositeCommand\"{\encodingdefault}{\j}{\jaccent\"}%
\DeclareTextCompositeCommand\^{\encodingdefault}{\j}{\jaccent\^}%
\DeclareTextCompositeCommand\~{\encodingdefault}{\j}{\jaccent\~}%
\DeclareTextCompositeCommand\.{\encodingdefault}{\j}{j}%
\DeclareTextCompositeCommand\={\encodingdefault}{\j}{\jaccent\=}%
\DeclareTextCompositeCommand\v{\encodingdefault}{\j}{\jaccent\v}}