~ubuntu-branches/debian/sid/tex4ht/sid

« back to all changes in this revision

Viewing changes to lit/tex4ht-javahelp-xtpipes.tex

  • Committer: Bazaar Package Importer
  • Author(s): Kapil Hari Paranjape
  • Date: 2008-09-12 10:32:36 UTC
  • mfrom: (1.3.2 upstream) (3.1.9 intrepid)
  • Revision ID: james.westby@ubuntu.com-20080912103236-tgw2q5g6f5hp2pnm
Tags: 20080701-2
* debian/patches/add_manpage.diff: Modified the man page
  to recommend that "mk4ht" be used for conversions other than
  from TeX/LaTeX to HTML. This is in response to #495768.
* debian/control: Replaced "sun-java5-jre" with "openjdk-6-jre-headless"
  in the "Suggests" field for "tex4ht-common". The latter java runtime
  seems to work with "xtpipes.jar" and the former is non-free.
  (Closes: #486482)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
% htlatex tex4ht-javahelp-xtpipes "xhtml,next,3" "" "-d./"
 
2
 
 
3
\documentclass{article}
 
4
    \Configure{ProTex}{log,<<<>>>,title,list,`,[[]]}
 
5
    \usepackage{url}
 
6
\begin{document}
 
7
 
 
8
 
 
9
%%%%%%%%%%%%%%%%%%%%% definitions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
10
 
 
11
\newcount\tmpcnt  \tmpcnt\time  \divide\tmpcnt  60
 
12
\edef\temp{\the\tmpcnt}
 
13
\multiply\tmpcnt  -60 \advance\tmpcnt  \time
 
14
 
 
15
\edef\version{\the\year-\ifnum \month<10 0\fi
 
16
  \the\month-\ifnum \day<10 0\fi\the\day
 
17
   -\ifnum \temp<10 0\fi \temp
 
18
   :\ifnum \tmpcnt<10 0\fi\the\tmpcnt}
 
19
 
 
20
\def\CopyYear.#1.{%
 
21
   \ifnum #1=\year #1\space\space\space\space\space\space
 
22
    \else          #1--\the\year\fi
 
23
}
 
24
 
 
25
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
26
 
 
27
 
 
28
 
 
29
 
 
30
 
 
31
%%%%%%%%%%%%%%%%%%
 
32
\part{Post Processing for Html Output Mode}
 
33
%%%%%%%%%%%%%%%%%%
 
34
 
 
35
 
 
36
%%%%%%%%%%%%%%%%%%
 
37
\section{Outline}
 
38
%%%%%%%%%%%%%%%%%%
 
39
 
 
40
\AtEndDocument{\OutputCodE\<javahelp.4xt\>}
 
41
 
 
42
\Needs{"xmllint --valid --noout javahelp.4xt"} 
 
43
 
 
44
\<javahelp.4xt\><<<
 
45
<?xml version="1.0" encoding="UTF-8" ?>
 
46
<!DOCTYPE xtpipes SYSTEM "xtpipes.dtd" >
 
47
<xtpipes preamble="yes" signature="javahelp.4xt (`version)">
 
48
   <sax content-handler="xtpipes.util.ScriptsManager" 
 
49
        lexical-handler="xtpipes.util.ScriptsManagerLH" >
 
50
     `<tabular script`>
 
51
     `<longtable script`>
 
52
     `<email scriptNO`>
 
53
     `<empty html element scriptNO`>
 
54
   </sax>
 
55
</xtpipes>
 
56
>>>
 
57
 
 
58
 
59
 
 
60
 
 
61
 
 
62
 
 
63
%%%%%%%%%%%%%%%%%%
 
64
\section{email script}
 
65
%%%%%%%%%%%%%%%%%%
 
66
 
 
67
\<email script\><<<
 
68
<script element="span::email" >
 
69
   `<set htm email links`>
 
70
</script> 
 
71
>>>
 
72
 
 
73
   <set name="email" >
 
74
      `<open xslt script`>
 
75
      `<email templates`>
 
76
      `<close xslt script`>
 
77
   </set>
 
78
   <xslt name="." xml="." xsl="email" />
 
79
 
 
80
 
 
81
\<email templates\><<<
 
82
<xsl:template match=" text()[contains(.,'@')] " >
 
83
<span class="set-emails">
 
84
      <xsl:copy>
 
85
      </xsl:copy> 
 
86
</span>     
 
87
</xsl:template> 
 
88
>>>
 
89
 
 
90
 
 
91
\<set htm email links\><<<
 
92
<sax name="." xml="." content-handler="tex4ht.XhtmlEmails" />
 
93
>>>
 
94
 
 
95
 
 
96
 
 
97
 
 
98
\<java licence\><<<
 
99
(`version)
 
100
>>>
 
101
 
 
102
 
103
% \AtEndDocument{ 
 
104
%    \OutputCodE\<XhtmlEmails.java\> 
 
105
% } 
 
106
% \Needs{"
 
107
%     javac -classpath /home/4/gurari/tex4ht.dir/texmf/tex4ht/bin/tex4ht.jar
 
108
%           XhtmlEmails.java
 
109
%           -d /home/4/gurari/xtpipes.dir/. 
 
110
% "} 
 
111
 
 
112
\<XhtmlEmails.java\><<< 
 
113
package tex4ht;
 
114
/*
 
115
XhtmlEmails.java `<java licence`>
 
116
*/
 
117
import xtpipes.XtpipesUni;
 
118
import org.xml.sax.*;
 
119
import org.xml.sax.helpers.DefaultHandler;
 
120
import java.io.*;
 
121
import java.lang.reflect.*;
 
122
import java.util.HashMap;
 
123
 
 
124
public class XhtmlEmails extends DefaultHandler {
 
125
        PrintWriter out = null;
 
126
        String data = "";
 
127
  public XhtmlEmails(PrintWriter out, 
 
128
                       HashMap<String,Object> scripts,
 
129
                       Method method, PrintWriter log, boolean trace) {
 
130
    this.out = out;
 
131
  }
 
132
  public void characters(char[] ch, int start, int length) {
 
133
    data += new String(ch, start, length);
 
134
 
 
135
//XtpipesUni.toUni(ch, start, length, "<>&");
 
136
  }
 
137
 
 
138
  public void startElement(String ns, String sName,
 
139
                                      String qName,
 
140
                                      Attributes atts) {
 
141
      String s = "<" + qName + "\n";
 
142
      for (int i = 0; i < atts.getLength(); i++) {
 
143
        String name = atts.getQName(i);
 
144
        s += (" " + name + "=\"" 
 
145
            + XtpipesUni.toUni(atts.getValue(i), "<>&\"")
 
146
            + "\"");
 
147
      } 
 
148
      s += ">";
 
149
      `<process email data`>
 
150
      out.print(XtpipesUni.toUni(data, "&") + s);
 
151
      data = "";
 
152
  }
 
153
  public void endElement(String ns, String sName, String qName) {
 
154
      String s = "</" + qName + ">";
 
155
      `<process email data`>
 
156
      out.print( XtpipesUni.toUni(data, "&") + s);
 
157
      data = "";
 
158
  }  
 
159
 
 
160
}
 
161
>>>
 
162
 
 
163
 
 
164
\<process email data\><<<
 
165
while( data.indexOf('@') >0 ){
 
166
  `<clean prefix`>
 
167
  `<clean postfix`>
 
168
}
 
169
data = XtpipesUni.toUni(data, "<>&");
 
170
>>>
 
171
 
 
172
 
 
173
 
 
174
 
 
175
\<clean prefix\><<<
 
176
String [] pre = data.split(
 
177
                   "[`<email name`>]*@"
 
178
                   , 2);
 
179
if( pre[0].endsWith("}") ){
 
180
  if( pre[0].indexOf("{") != -1 ){
 
181
     pre[0] = pre[0].substring( 0, pre[0].lastIndexOf("{") );        
 
182
} }
 
183
int len = pre[0] . length();
 
184
if( len > 0 ){
 
185
   out.print( XtpipesUni.toUni(pre[0], "<>&") );
 
186
   data = data.substring(len);
 
187
}
 
188
>>>
 
189
 
 
190
\<clean postfix\><<<
 
191
String [] post = data.split(
 
192
                   "@[`<email name`>]*"
 
193
                   , 2);
 
194
if( post[1] . length() > 0 ){
 
195
  data = data.substring(0, data.length() - post[1] . length());
 
196
}
 
197
`<set a link to email`>
 
198
data = post[1];
 
199
>>>
 
200
 
 
201
 
 
202
\<set a link to email\><<<
 
203
if( data.indexOf("{") == -1 ){
 
204
   out.print(
 
205
      "<a href=\"mailto:" + XtpipesUni.toUni(data, "&") + "\">"
 
206
      + XtpipesUni.toUni(data, "<>&")
 
207
      + "</a>"
 
208
   );
 
209
} else {
 
210
  int idx = data.indexOf('@');
 
211
  String ext = data.substring(idx);
 
212
  data = data.substring(0,idx);
 
213
  `<clean group prefix`>
 
214
}
 
215
>>>
 
216
 
 
217
 
 
218
 
 
219
\<clean group prefix\><<<
 
220
while( true ){
 
221
   pre = data.split(
 
222
                "[`<email name`>]+"
 
223
                , 2);    
 
224
   if( pre.length < 2 ){
 
225
      out.print( XtpipesUni.toUni(data + ext, "<>&") );
 
226
      data = "";
 
227
      break;
 
228
   }
 
229
   len = pre[0] . length();
 
230
   if( len > 0 ){
 
231
      out.print( XtpipesUni.toUni(pre[0], "<>&") );
 
232
      data = data.substring(len);
 
233
   }
 
234
   data = data.substring(0, data.length() - pre[1].length());   
 
235
   out.print(
 
236
      "<a href=\"mailto:" + XtpipesUni.toUni(data + ext, "&") + "\">"
 
237
      + XtpipesUni.toUni(data, "<>&")
 
238
      + "</a>"
 
239
   );
 
240
   data = pre[1];
 
241
}
 
242
>>>
 
243
 
 
244
\<email name\><<<
 
245
\\p{javaLowerCase}\\p{javaUpperCase}\\d\\-_\\./&>>>
 
246
 
 
247
 
 
248
\url{http://tools.ietf.org/html/rfc2368}
 
249
 
 
250
\begin{verbatim}
 
251
Alice Smith" <alice@somewhere.com>
 
252
{alice, bob}@somewhere.com
 
253
alice@somewhere.com, bob@somewhere.com
 
254
\end{verbatim}
 
255
 
 
256
%%%%%%%%%%%%%%%%%%
 
257
\section{Long Tables}
 
258
%%%%%%%%%%%%%%%%%%
 
259
 
 
260
 
 
261
 
 
262
\<longtable script\><<<
 
263
<script element="table::longtable" >
 
264
   <set name="longtbl" >
 
265
      `<open xslt script`>
 
266
      `<longtable templates`>
 
267
      `<close xslt script`>
 
268
   </set>
 
269
   <xslt name="." xml="." xsl="longtbl" />
 
270
</script> 
 
271
>>>
 
272
 
 
273
 
 
274
\<longtable templates\><<<
 
275
<xsl:template match=" table[ @class='longtable' ]
 
276
                    / tr[ (normalize-space(.)='') ] " >
 
277
   <xsl:if test=" normalize-space(following-sibling::*) != '' ">
 
278
      <xsl:copy>
 
279
         <xsl:apply-templates select="*|@*|text()|comment()" />
 
280
      </xsl:copy>      
 
281
   </xsl:if>
 
282
</xsl:template> 
 
283
>>>
 
284
 
 
285
 
 
286
 
 
287
 
 
288
%%%%%%%%%%%%%%%%%%
 
289
\section{Tabular}
 
290
%%%%%%%%%%%%%%%%%%
 
291
 
 
292
 
 
293
 
 
294
\<tabular script\><<<
 
295
<script element="table::tabular" >
 
296
   <set name="tabular" >
 
297
      `<open xslt script`>
 
298
      `<tabular templates`>
 
299
      `<close xslt script`>
 
300
   </set>
 
301
   <xslt name="." xml="." xsl="tabular" />
 
302
</script> 
 
303
>>>
 
304
 
 
305
 
 
306
\<tabular templates\><<<
 
307
<xsl:template match=" table[ @class='tabular' ]
 
308
                    / tr[ (normalize-space(.)='') ] " >
 
309
 
 
310
<xsl:message terminate="no">
 
311
OK 1
 
312
</xsl:message>
 
313
 
 
314
   <xsl:if test=" normalize-space(following-sibling::*) != '' ">
 
315
      <xsl:copy>
 
316
         <xsl:apply-templates select="*|@*|text()|comment()" />
 
317
<xsl:message terminate="no">
 
318
OK 2
 
319
</xsl:message>
 
320
      </xsl:copy>      
 
321
   </xsl:if>
 
322
</xsl:template> 
 
323
>>>
 
324
 
 
325
 
 
326
 
 
327
 
 
328
 
 
329
\<tabular templates\><<<
 
330
<xsl:template match=" tr[ (normalize-space(.)='') 
 
331
                          and
 
332
                          (parent::table[ @class='tabular' ])
 
333
                        ] " >
 
334
 
 
335
<xsl:message terminate="no">
 
336
OK 1
 
337
</xsl:message>
 
338
 
 
339
   <xsl:if test=" normalize-space(following-sibling::*) != '' ">
 
340
      <xsl:copy>
 
341
         <xsl:apply-templates select="*|@*|text()|comment()" />
 
342
<xsl:message terminate="no">
 
343
OK 2
 
344
</xsl:message>
 
345
      </xsl:copy>      
 
346
   </xsl:if>
 
347
</xsl:template> 
 
348
>>>
 
349
 
 
350
 
 
351
%%%%%%%%%%%%%%%%%%
 
352
\section{Empty HTML Element Script}
 
353
%%%%%%%%%%%%%%%%%%
 
354
 
 
355
\<empty html element script\><<<
 
356
<script element="meta" >
 
357
   <set name="meta" >
 
358
      `<open xslt script`>
 
359
      <xsl:template match="meta" >
 
360
         <xsl:text disable-output-escaping="yes">&lt;meta</xsl:text>
 
361
             <xsl:apply-templates select="@*" mode="attrs" />
 
362
         <xsl:text disable-output-escaping="yes">/&gt;</xsl:text>
 
363
      </xsl:template> 
 
364
      `<copy attributes`>
 
365
      `<close xslt script`>
 
366
   </set>
 
367
   <xslt name="." xml="." xsl="meta" />
 
368
</script> 
 
369
>>>
 
370
 
 
371
 
 
372
\<empty html element script\><<< 
 
373
<script element="area" > 
 
374
   <set name="area" > 
 
375
      `<open xslt script`> 
 
376
      <xsl:template match="area" > 
 
377
         <xsl:text disable-output-escaping="yes">&lt;area</xsl:text> 
 
378
             <xsl:apply-templates select="@*" mode="attrs" /> 
 
379
         <xsl:text disable-output-escaping="yes">/&gt;</xsl:text> 
 
380
      </xsl:template>  
 
381
      `<copy attributes`> 
 
382
      `<close xslt script`> 
 
383
   </set> 
 
384
   <xslt name="." xml="." xsl="area" /> 
 
385
</script>  
 
386
>>> 
 
387
 
 
388
 
 
389
 
 
390
 
 
391
\<empty html element script\><<< 
 
392
<script element="base" > 
 
393
   <set name="base" > 
 
394
      `<open xslt script`> 
 
395
      <xsl:template match="base" > 
 
396
         <xsl:text disable-output-escaping="yes">&lt;base</xsl:text> 
 
397
             <xsl:apply-templates select="@*" mode="attrs" /> 
 
398
         <xsl:text disable-output-escaping="yes">/&gt;</xsl:text> 
 
399
      </xsl:template>  
 
400
      `<copy attributes`> 
 
401
      `<close xslt script`> 
 
402
   </set> 
 
403
   <xslt name="." xml="." xsl="base" /> 
 
404
</script>  
 
405
>>> 
 
406
 
 
407
 
 
408
 
 
409
 
 
410
 \<empty html element script\><<< 
 
411
<script element="basefont" > 
 
412
   <set name="basefont" > 
 
413
      `<open xslt script`> 
 
414
      <xsl:template match="basefont" > 
 
415
         <xsl:text disable-output-escaping="yes">&lt;basefont</xsl:text> 
 
416
             <xsl:apply-templates select="@*" mode="attrs" /> 
 
417
         <xsl:text disable-output-escaping="yes">/&gt;</xsl:text> 
 
418
      </xsl:template>  
 
419
      `<copy attributes`> 
 
420
      `<close xslt script`> 
 
421
   </set> 
 
422
   <xslt name="." xml="." xsl="basefont" /> 
 
423
</script>  
 
424
>>> 
 
425
 
 
426
 
 
427
 
 
428
 
 
429
 \<empty html element script\><<< 
 
430
<script element="br" > 
 
431
   <set name="br" > 
 
432
      `<open xslt script`> 
 
433
      <xsl:template match="br" > 
 
434
         <xsl:text disable-output-escaping="yes">&lt;br</xsl:text> 
 
435
             <xsl:apply-templates select="@*" mode="attrs" /> 
 
436
         <xsl:text disable-output-escaping="yes">/&gt;</xsl:text> 
 
437
      </xsl:template>  
 
438
      `<copy attributes`> 
 
439
      `<close xslt script`> 
 
440
   </set> 
 
441
   <xslt name="." xml="." xsl="br" /> 
 
442
</script>  
 
443
>>> 
 
444
 
 
445
 
 
446
 
 
447
 
 
448
 \<empty html element script\><<< 
 
449
<script element="col" > 
 
450
   <set name="col" > 
 
451
      `<open xslt script`> 
 
452
      <xsl:template match="col" > 
 
453
         <xsl:text disable-output-escaping="yes">&lt;col</xsl:text> 
 
454
             <xsl:apply-templates select="@*" mode="attrs" /> 
 
455
         <xsl:text disable-output-escaping="yes">/&gt;</xsl:text> 
 
456
      </xsl:template>  
 
457
      `<copy attributes`> 
 
458
      `<close xslt script`> 
 
459
   </set> 
 
460
   <xslt name="." xml="." xsl="col" /> 
 
461
</script>  
 
462
>>> 
 
463
 
 
464
 
 
465
 
 
466
 
 
467
 \<empty html element script\><<< 
 
468
<script element="frame" > 
 
469
   <set name="frame" > 
 
470
      `<open xslt script`> 
 
471
      <xsl:template match="frame" > 
 
472
         <xsl:text disable-output-escaping="yes">&lt;frame</xsl:text> 
 
473
             <xsl:apply-templates select="@*" mode="attrs" /> 
 
474
         <xsl:text disable-output-escaping="yes">/&gt;</xsl:text> 
 
475
      </xsl:template>  
 
476
      `<copy attributes`> 
 
477
      `<close xslt script`> 
 
478
   </set> 
 
479
   <xslt name="." xml="." xsl="frame" /> 
 
480
</script>  
 
481
>>> 
 
482
 
 
483
 
 
484
 
 
485
 
 
486
 \<empty html element script\><<< 
 
487
<script element="hr" > 
 
488
   <set name="hr" > 
 
489
      `<open xslt script`> 
 
490
      <xsl:template match="hr" > 
 
491
         <xsl:text disable-output-escaping="yes">&lt;hr</xsl:text> 
 
492
             <xsl:apply-templates select="@*" mode="attrs" /> 
 
493
         <xsl:text disable-output-escaping="yes">/&gt;</xsl:text> 
 
494
      </xsl:template>  
 
495
      `<copy attributes`> 
 
496
      `<close xslt script`> 
 
497
   </set> 
 
498
   <xslt name="." xml="." xsl="hr" /> 
 
499
</script>  
 
500
>>> 
 
501
 
 
502
 
 
503
 
 
504
 
 
505
 \<empty html element script\><<< 
 
506
<script element="img" > 
 
507
   <set name="img" > 
 
508
      `<open xslt script`> 
 
509
      <xsl:template match="img" > 
 
510
         <xsl:text disable-output-escaping="yes">&lt;img</xsl:text> 
 
511
             <xsl:apply-templates select="@*" mode="attrs" /> 
 
512
         <xsl:text disable-output-escaping="yes">/&gt;</xsl:text> 
 
513
      </xsl:template>  
 
514
      `<copy attributes`> 
 
515
      `<close xslt script`> 
 
516
   </set> 
 
517
   <xslt name="." xml="." xsl="img" /> 
 
518
</script>  
 
519
>>> 
 
520
 
 
521
 
 
522
 
 
523
 
 
524
 \<empty html element script\><<< 
 
525
<script element="input" > 
 
526
   <set name="input" > 
 
527
      `<open xslt script`> 
 
528
      <xsl:template match="input" > 
 
529
         <xsl:text disable-output-escaping="yes">&lt;input</xsl:text> 
 
530
             <xsl:apply-templates select="@*" mode="attrs" /> 
 
531
         <xsl:text disable-output-escaping="yes">/&gt;</xsl:text> 
 
532
      </xsl:template>  
 
533
      `<copy attributes`> 
 
534
      `<close xslt script`> 
 
535
   </set> 
 
536
   <xslt name="." xml="." xsl="input" /> 
 
537
</script>  
 
538
>>> 
 
539
 
 
540
 
 
541
 
 
542
 
 
543
 \<empty html element script\><<< 
 
544
<script element="isindex" > 
 
545
   <set name="isindex" > 
 
546
      `<open xslt script`> 
 
547
      <xsl:template match="isindex" > 
 
548
         <xsl:text disable-output-escaping="yes">&lt;isindex</xsl:text> 
 
549
             <xsl:apply-templates select="@*" mode="attrs" /> 
 
550
         <xsl:text disable-output-escaping="yes">/&gt;</xsl:text> 
 
551
      </xsl:template>  
 
552
      `<copy attributes`> 
 
553
      `<close xslt script`> 
 
554
   </set> 
 
555
   <xslt name="." xml="." xsl="isindex" /> 
 
556
</script>  
 
557
>>> 
 
558
 
 
559
 
 
560
 
 
561
 
 
562
 \<empty html element script\><<< 
 
563
<script element="link" > 
 
564
   <set name="link" > 
 
565
      `<open xslt script`> 
 
566
      <xsl:template match="link" > 
 
567
         <xsl:text disable-output-escaping="yes">&lt;link</xsl:text> 
 
568
             <xsl:apply-templates select="@*" mode="attrs" /> 
 
569
         <xsl:text disable-output-escaping="yes">/&gt;</xsl:text> 
 
570
      </xsl:template>  
 
571
      `<copy attributes`> 
 
572
      `<close xslt script`> 
 
573
   </set> 
 
574
   <xslt name="." xml="." xsl="link" /> 
 
575
</script>  
 
576
>>> 
 
577
 
 
578
 
 
579
 
 
580
 
 
581
 \<empty html element script\><<< 
 
582
<script element="param" > 
 
583
   <set name="param" > 
 
584
      `<open xslt script`> 
 
585
      <xsl:template match="param" > 
 
586
         <xsl:text disable-output-escaping="yes">&lt;param</xsl:text> 
 
587
             <xsl:apply-templates select="@*" mode="attrs" /> 
 
588
         <xsl:text disable-output-escaping="yes">/&gt;</xsl:text> 
 
589
      </xsl:template>  
 
590
      `<copy attributes`> 
 
591
      `<close xslt script`> 
 
592
   </set> 
 
593
   <xslt name="." xml="." xsl="param" /> 
 
594
</script>  
 
595
>>> 
 
596
 
 
597
 
 
598
 
 
599
 
 
600
 
 
601
 
 
602
 
 
603
 
 
604
 
 
605
 
 
606
\<copy attributes\><<<
 
607
<xsl:template match="@*" mode="attrs" >
 
608
   <xsl:text> </xsl:text>
 
609
   <xsl:value-of select="name()" />
 
610
   <xsl:text>="</xsl:text>
 
611
   <xsl:value-of select="." />
 
612
   <xsl:text>"</xsl:text>
 
613
</xsl:template>
 
614
>>>
 
615
 
 
616
 
 
617
 
 
618
 
 
619
%%%%%%%%%%%%%%%%%%
 
620
\section{Shared}
 
621
%%%%%%%%%%%%%%%%%%
 
622
 
 
623
 
 
624
 
 
625
\<open xslt script\><<<
 
626
<![CDATA[ 
 
627
   <xsl:stylesheet version="1.0"
 
628
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 
629
   >
 
630
      <xsl:output omit-xml-declaration = "yes" method="xml" />
 
631
>>>
 
632
 
 
633
\<close xslt script\><<<
 
634
      <xsl:template match="*|@*|text()|comment()" >
 
635
        <xsl:copy>
 
636
          <xsl:apply-templates select="*|@*|text()|comment()" />
 
637
        </xsl:copy>
 
638
      </xsl:template>
 
639
   </xsl:stylesheet> 
 
640
]]>
 
641
>>>
 
642
 
 
643
 
 
644
 
 
645
 
 
646
 
 
647
\AtEndDocument{\Needs{%
 
648
    "cd /home/4/gurari/xtpipes.dir
 
649
     ;  
 
650
     jar cf tex4ht.jar *
 
651
     ;
 
652
     mv tex4ht.jar /home/4/gurari/tex4ht.dir/texmf/tex4ht/bin/. 
 
653
     ;
 
654
     cp /home/4/gurari/xtpipes.dir/xtpipes/lib/* 
 
655
        /home/4/gurari/tex4ht.dir/texmf/tex4ht/xtpipes/.
 
656
"}}
 
657
 
 
658
 
 
659
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
660
\end{document}
 
661
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
662
 
 
663
 
 
664