/[geocaml]/geocaml/xsl/xml2tex.xsl
ViewVC logotype

Diff of /geocaml/xsl/xml2tex.xsl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1.1.1 by adoniec, Tue Aug 20 12:31:10 2002 UTC revision 1.2 by gmariano, Sat Sep 6 21:30:21 2003 UTC
# Line 1  Line 1 
1  <?xml version = "1.0" encoding="ISO-8859-1"?>  <!-- $Id$ -->
2    
3    <!--
4         Feuille de style XSL pour convertir .geo.xml en .tex
5         Utilisation du fichiers de macros pstricks pst-eucl.sty
6         http://www.tug.org/applications/PSTricks/
7         http://dominique.rodriguez.9online.fr/pstr-eucl/
8     -->
9    
10  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
11    
12  <xsl:output method="text" omit-xml-declaration="yes"/>  <xsl:output method="text" omit-xml-declaration="yes"/>
13    
14  <xsl:template match="figure">  <xsl:template match="figure">
15          <xsl:text>\documentclass{article}</xsl:text>    <xsl:text>\documentclass{article}</xsl:text>
16          <xsl:text>\usepackage{pst-eucl}</xsl:text>    <xsl:text>\usepackage{pst-eucl}</xsl:text>
17          <xsl:text>\usepackage{pst-plot}</xsl:text>    <xsl:text>\usepackage{pst-plot}</xsl:text>
18          <xsl:text>\begin{document}</xsl:text>    <xsl:text>\begin{document}</xsl:text>
19          <xsl:text>\begin{pspicture}(10,10)</xsl:text>    <xsl:text>\begin{pspicture}(10,10)</xsl:text>
20          <xsl:apply-templates/>    <xsl:apply-templates/>
21          <xsl:text>\end{pspicture}</xsl:text>    <xsl:text>\end{pspicture}</xsl:text>
22          <xsl:text>\end{document}</xsl:text>    <xsl:text>\end{document}</xsl:text>
23  </xsl:template>  </xsl:template>
24    
25  <xsl:template match="point">  <xsl:template match="point">
26          <xsl:choose>    <xsl:choose>
27          <xsl:when test="string(./@coordinates)">      <xsl:when test="string(./@coordinates)">
28                  <xsl:text>\pstGeonode[linecolor=</xsl:text>        <xsl:text>\pstGeonode[linecolor=</xsl:text>
29                  <xsl:value-of select="./@color"/>        <xsl:value-of select="./@color"/>
30                  <xsl:text>]</xsl:text>        <xsl:text>]</xsl:text>
31                  <xsl:value-of select="./@coordinates"/>        <xsl:value-of select="./@coordinates"/>
32                  <xsl:text>{</xsl:text>        <xsl:text>{</xsl:text>
33                  <xsl:value-of select="./@name"/>        <xsl:value-of select="./@name"/>
34                  <xsl:text>}</xsl:text>        <xsl:text>}</xsl:text>
35          </xsl:when>      </xsl:when>
36          <xsl:otherwise>      <xsl:otherwise>
37                  <!--xsl:value-of select="./@name"/-->        <!--xsl:value-of select="./@name"/-->
38          </xsl:otherwise>      </xsl:otherwise>
39          </xsl:choose>    </xsl:choose>
40  </xsl:template>  </xsl:template>
41    
42  <xsl:template match="segment">  <xsl:template match="segment">
43          <xsl:apply-templates select="child::*[position()=1]"/>    <xsl:apply-templates select="child::*[position()=1]"/>
44          <xsl:apply-templates select="child::*[position()=2]"/>    <xsl:apply-templates select="child::*[position()=2]"/>
45          <xsl:text>\pstLineAB[linecolor=</xsl:text>    <xsl:text>\pstLineAB[linecolor=</xsl:text>
46          <xsl:value-of select="./@color"/>    <xsl:value-of select="./@color"/>
47          <xsl:text>]{</xsl:text>    <xsl:text>]{</xsl:text>
48          <xsl:value-of select="./@pointA"/>    <xsl:value-of select="./@pointA"/>
49          <xsl:text>}{</xsl:text>    <xsl:text>}{</xsl:text>
50          <xsl:value-of select="./@pointB"/>    <xsl:value-of select="./@pointB"/>
51          <xsl:text>}</xsl:text>    <xsl:text>}</xsl:text>
52  </xsl:template>  </xsl:template>
53    
54  <xsl:template match="line">  <xsl:template match="line">
55          <xsl:apply-templates select="child::*[position()=1]"/>    <xsl:apply-templates select="child::*[position()=1]"/>
56          <xsl:apply-templates select="child::*[position()=2]"/>    <xsl:apply-templates select="child::*[position()=2]"/>
57          <xsl:text>\pstLineAB[nodesep=-2,linecolor=</xsl:text>    <xsl:text>\pstLineAB[nodesep=-2,linecolor=</xsl:text>
58          <xsl:value-of select="./@color"/>    <xsl:value-of select="./@color"/>
59          <xsl:text>]{</xsl:text>    <xsl:text>]{</xsl:text>
60          <xsl:value-of select="./@pointA"/>    <xsl:value-of select="./@pointA"/>
61          <xsl:text>}{</xsl:text>    <xsl:text>}{</xsl:text>
62          <xsl:value-of select="./@pointB"/>    <xsl:value-of select="./@pointB"/>
63          <xsl:text>}</xsl:text>    <xsl:text>}</xsl:text>
64  </xsl:template>  </xsl:template>
65    
66  <xsl:template match="middle">  <xsl:template match="middle">
67          <xsl:apply-templates select="child::*[position()=1]"/>    <xsl:apply-templates select="child::*[position()=1]"/>
68          <xsl:apply-templates select="child::*[position()=2]"/>    <xsl:apply-templates select="child::*[position()=2]"/>
69          <xsl:text>\pstMiddleAB[linecolor=</xsl:text>    <xsl:text>\pstMiddleAB[linecolor=</xsl:text>
70          <xsl:value-of select="./@color"/>    <xsl:value-of select="./@color"/>
71          <xsl:if test="substring(string(./@name),1,2)='p_'">    <xsl:if test="substring(string(./@name),1,2)='p_'">
72                  <xsl:text>,PointName=none</xsl:text>      <xsl:text>,PointName=none</xsl:text>
73          </xsl:if>    </xsl:if>
74          <xsl:text>]{</xsl:text>    <xsl:text>]{</xsl:text>
75          <xsl:value-of select="child::*[position()=1]/@name"/>    <xsl:value-of select="child::*[position()=1]/@name"/>
76          <xsl:text>}{</xsl:text>    <xsl:text>}{</xsl:text>
77          <xsl:value-of select="child::*[position()=2]/@name"/>    <xsl:value-of select="child::*[position()=2]/@name"/>
78          <xsl:text>}{</xsl:text>    <xsl:text>}{</xsl:text>
79          <xsl:value-of select="./@name"/>    <xsl:value-of select="./@name"/>
80          <xsl:text>}</xsl:text>    <xsl:text>}</xsl:text>
81  </xsl:template>  </xsl:template>
82    
83  <xsl:template match="circle">  <xsl:template match="circle">
84          <xsl:apply-templates select="child::*[position()=1]"/>    <xsl:apply-templates select="child::*[position()=1]"/>
85          <xsl:apply-templates select="child::*[position()=2]"/>    <xsl:apply-templates select="child::*[position()=2]"/>
86          <xsl:text>\pstCircleOA[linecolor=</xsl:text>    <xsl:text>\pstCircleOA[linecolor=</xsl:text>
87          <xsl:value-of select="./@color"/>    <xsl:value-of select="./@color"/>
88          <xsl:text>]{</xsl:text>    <xsl:text>]{</xsl:text>
89          <xsl:value-of select="./@pointA"/>    <xsl:value-of select="./@pointA"/>
90          <xsl:text>}{</xsl:text>    <xsl:text>}{</xsl:text>
91          <xsl:value-of select="./@pointB"/>    <xsl:value-of select="./@pointB"/>
92          <xsl:text>}</xsl:text>    <xsl:text>}</xsl:text>
93  </xsl:template>  </xsl:template>
94    
95  <xsl:template match="inter_circle_line">  <xsl:template match="inter_circle_line">
96          <xsl:apply-templates select="child::*[position()=1]"/>    <xsl:apply-templates select="child::*[position()=1]"/>
97          <xsl:apply-templates select="child::*[position()=2]"/>    <xsl:apply-templates select="child::*[position()=2]"/>
98          <xsl:text>\pstInterLC[linecolor=</xsl:text>    <xsl:text>\pstInterLC[linecolor=</xsl:text>
99          <xsl:value-of select="./@color"/>    <xsl:value-of select="./@color"/>
100          <xsl:if test="substring(string(./@name1),1,2)='p_'">    <xsl:if test="substring(string(./@name1),1,2)='p_'">
101                  <xsl:text>,PointName=none</xsl:text>      <xsl:text>,PointName=none</xsl:text>
102          </xsl:if>    </xsl:if>
103          <xsl:text>]{</xsl:text>    <xsl:text>]{</xsl:text>
104          <xsl:value-of select="child::*[position()=2]/@pointA"/>    <xsl:value-of select="child::*[position()=2]/@pointA"/>
105          <xsl:text>}{</xsl:text>    <xsl:text>}{</xsl:text>
106          <xsl:value-of select="child::*[position()=2]/@pointB"/>    <xsl:value-of select="child::*[position()=2]/@pointB"/>
107          <xsl:text>}{</xsl:text>    <xsl:text>}{</xsl:text>
108          <xsl:value-of select="child::*[position()=1]/@pointA"/>    <xsl:value-of select="child::*[position()=1]/@pointA"/>
109          <xsl:text>}{</xsl:text>    <xsl:text>}{</xsl:text>
110          <xsl:value-of select="child::*[position()=1]/@pointB"/>    <xsl:value-of select="child::*[position()=1]/@pointB"/>
111          <xsl:text>}{</xsl:text>    <xsl:text>}{</xsl:text>
112          <xsl:value-of select="./@name1"/>    <xsl:value-of select="./@name1"/>
113          <xsl:text>}{</xsl:text>    <xsl:text>}{</xsl:text>
114          <xsl:value-of select="./@name2"/>    <xsl:value-of select="./@name2"/>
115          <xsl:text>}</xsl:text>    <xsl:text>}</xsl:text>
116  </xsl:template>  </xsl:template>
117    
118  <xsl:template match="inter_circle_circle">  <xsl:template match="inter_circle_circle">
119          <xsl:apply-templates select="child::*[position()=1]"/>    <xsl:apply-templates select="child::*[position()=1]"/>
120          <xsl:apply-templates select="child::*[position()=2]"/>    <xsl:apply-templates select="child::*[position()=2]"/>
121          <xsl:text>\pstInterCC[linecolor=</xsl:text>    <xsl:text>\pstInterCC[linecolor=</xsl:text>
122          <xsl:value-of select="./@color"/>    <xsl:value-of select="./@color"/>
123          <xsl:if test="substring(string(./@name1),1,2)='p_'">    <xsl:if test="substring(string(./@name1),1,2)='p_'">
124                  <xsl:text>,PointName=none</xsl:text>      <xsl:text>,PointName=none</xsl:text>
125          </xsl:if>    </xsl:if>
126          <xsl:text>]{</xsl:text>    <xsl:text>]{</xsl:text>
127          <xsl:value-of select="child::*[position()=2]/@pointA"/>    <xsl:value-of select="child::*[position()=2]/@pointA"/>
128          <xsl:text>}{</xsl:text>    <xsl:text>}{</xsl:text>
129          <xsl:value-of select="child::*[position()=2]/@pointB"/>    <xsl:value-of select="child::*[position()=2]/@pointB"/>
130          <xsl:text>}{</xsl:text>    <xsl:text>}{</xsl:text>
131          <xsl:value-of select="child::*[position()=1]/@pointA"/>    <xsl:value-of select="child::*[position()=1]/@pointA"/>
132          <xsl:text>}{</xsl:text>    <xsl:text>}{</xsl:text>
133          <xsl:value-of select="child::*[position()=1]/@pointB"/>    <xsl:value-of select="child::*[position()=1]/@pointB"/>
134          <xsl:text>}{</xsl:text>    <xsl:text>}{</xsl:text>
135          <xsl:value-of select="./@name1"/>    <xsl:value-of select="./@name1"/>
136          <xsl:text>}{</xsl:text>    <xsl:text>}{</xsl:text>
137          <xsl:value-of select="./@name2"/>    <xsl:value-of select="./@name2"/>
138          <xsl:text>}</xsl:text>    <xsl:text>}</xsl:text>
139  </xsl:template>  </xsl:template>
140    
141  <xsl:template match="inter_line_line">  <xsl:template match="inter_line_line">
142          <xsl:apply-templates select="child::*[position()=1]"/>    <xsl:apply-templates select="child::*[position()=1]"/>
143          <xsl:apply-templates select="child::*[position()=2]"/>    <xsl:apply-templates select="child::*[position()=2]"/>
144          <xsl:text>\pstInterLL[linecolor=</xsl:text>    <xsl:text>\pstInterLL[linecolor=</xsl:text>
145          <xsl:value-of select="./@color"/>    <xsl:value-of select="./@color"/>
146          <xsl:if test="substring(string(./@name),1,2)='p_'">    <xsl:if test="substring(string(./@name),1,2)='p_'">
147                  <xsl:text>,PointName=none</xsl:text>      <xsl:text>,PointName=none</xsl:text>
148          </xsl:if>    </xsl:if>
149          <xsl:text>]{</xsl:text>    <xsl:text>]{</xsl:text>
150          <xsl:value-of select="child::*[position()=2]/@pointA"/>    <xsl:value-of select="child::*[position()=2]/@pointA"/>
151          <xsl:text>}{</xsl:text>    <xsl:text>}{</xsl:text>
152          <xsl:value-of select="child::*[position()=2]/@pointB"/>    <xsl:value-of select="child::*[position()=2]/@pointB"/>
153          <xsl:text>}{</xsl:text>    <xsl:text>}{</xsl:text>
154          <xsl:value-of select="child::*[position()=1]/@pointA"/>    <xsl:value-of select="child::*[position()=1]/@pointA"/>
155          <xsl:text>}{</xsl:text>    <xsl:text>}{</xsl:text>
156          <xsl:value-of select="child::*[position()=1]/@pointB"/>    <xsl:value-of select="child::*[position()=1]/@pointB"/>
157          <xsl:text>}{</xsl:text>    <xsl:text>}{</xsl:text>
158          <xsl:value-of select="./@name"/>    <xsl:value-of select="./@name"/>
159          <xsl:text>}</xsl:text>    <xsl:text>}</xsl:text>
160  </xsl:template>  </xsl:template>
161    
162  <xsl:template match="point_on_circle">  <xsl:template match="point_on_circle">
163          <xsl:text>\pstCurvAbsNode{</xsl:text>    <xsl:text>\pstCurvAbsNode{</xsl:text>
164          <xsl:value-of select="child::*[position()=1]/@pointA"/>    <xsl:value-of select="child::*[position()=1]/@pointA"/>
165          <xsl:text>}{</xsl:text>    <xsl:text>}{</xsl:text>
166          <xsl:value-of select="child::*[position()=1]/@pointB"/>    <xsl:value-of select="child::*[position()=1]/@pointB"/>
167          <xsl:text>}{</xsl:text>    <xsl:text>}{</xsl:text>
168          <xsl:value-of select="./@name"/>    <xsl:value-of select="./@name"/>
169          <xsl:text>}{\pstDistVal{5}}</xsl:text>    <xsl:text>}{\pstDistVal{5}}</xsl:text>
170  </xsl:template>  </xsl:template>
171    
172  </xsl:stylesheet>  </xsl:stylesheet>

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26