editionOpenAcess: qqts.xsl

File qqts.xsl, 15.9 KB (added by Klaus Thoden, 11 years ago)

XSL stylesheet for Chinese text

Line 
1<?xml version="1.0"?>
2<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
3                xmlns:xs="http://www.w3.org/2001/XMLSchema"
4                xmlns:xlink="http://www.w3.org/1999/xlink"
5                xmlns:qqts="http://www.mpiwg.de"
6                exclude-result-prefixes="xs qqts"
7                version="2.0">
8  <!--
9       This script has the Yuanxi Qiqi Tushuo Luzui as input and tries
10       to produce an EOA version of it. The structure of the
11       underlying XML is rather simple.
12  -->
13
14  <xsl:output method="text" encoding="UTF-8"/>
15
16  <!-- output the whole document with doing nearly nothing ... -->
17  <xsl:template match="@*|node()">
18    <xsl:copy>
19      <xsl:apply-templates select="@*|node()"/>
20    </xsl:copy>
21  </xsl:template>
22
23  <!-- ... but leave out the header -->
24  <xsl:template match="info"/>
25
26  <!-- these paragraphs are section headings -->
27  <xsl:template match="p[@type='head']">
28    <xsl:text>\EOAsection{</xsl:text>
29    <xsl:apply-templates />
30    <xsl:text>}</xsl:text>
31  </xsl:template>
32
33  <!-- these are normal paragraphs -->
34  <xsl:template match="p[@type='main']">
35    <xsl:text>&#x000a;%% paragraph&#x000a;&#x000a;</xsl:text>
36    <xsl:apply-templates />
37  </xsl:template>
38
39  <!-- should these notes really be turned into footnotes? -->
40  <xsl:template match="note">
41    <xsl:text>\EOAfn{</xsl:text>
42    <xsl:apply-templates />
43    <xsl:text>}</xsl:text>
44  </xsl:template>
45
46  <!-- there are some characters inserted as images. Luckily, there is
47       a macro for that, as well-->
48  <xsl:template match="char">
49    <xsl:text>\EOAinline{.</xsl:text>
50    <xsl:value-of select="substring-after(@xlink:href,'http://141.14.236.86/docuserver/images/arch2/schreck')"/>
51    <xsl:text>}</xsl:text>
52    <xsl:apply-templates />
53  </xsl:template>
54
55  <!-- the table is also rather a link to figures -->
56  <xsl:template match="table">
57    <xsl:text>\EOAfigure{.</xsl:text>
58    <xsl:value-of select="substring-after(@xlink:href,'http://archimedes/docuserver/images/arch2/schreck')"/>
59    <xsl:text>}{}{</xsl:text>
60    <xsl:value-of select="@id"/>
61    <xsl:text>}{}{}</xsl:text>
62    <xsl:apply-templates />
63  </xsl:template>
64
65  <!-- there are four chapters in the book -->
66  <xsl:template match="chap">
67    <xsl:text>&#x000a;</xsl:text>
68    <xsl:text>\EOAchapter{}{}</xsl:text>
69    <xsl:text>\EOAlabel{</xsl:text>
70    <xsl:value-of select="@id"/>
71    <xsl:text>}</xsl:text>
72    <xsl:text>\EOAref{</xsl:text>
73    <xsl:value-of select="concat(@id,'-en')"/>
74    <xsl:text>}</xsl:text>
75    <xsl:apply-templates />
76  </xsl:template>
77
78  <!-- we will retain only the labels of the semantic units -->
79  <xsl:template match="s">
80    <xsl:text>\EOAlabel{</xsl:text>
81    <xsl:value-of select="@id"/>
82    <xsl:text>}</xsl:text>
83    <xsl:text>\EOAref{</xsl:text>
84    <xsl:value-of select="concat(@id,'-en')"/>
85    <xsl:text>}</xsl:text>
86    <xsl:apply-templates />
87  </xsl:template>
88
89  <!-- linebreaks the Latex way -->
90  <xsl:template match="lb">
91    <xsl:text>\\&#x000a;</xsl:text>
92  </xsl:template>
93
94  <!-- pagebreaks: they need to be synched to the facsimile filenames -->
95  <xsl:template match="pb">
96    <xsl:text>&#x000a;\EOAnewpage\EOAlabel{pb</xsl:text>
97    <xsl:variable name="oldPageID" select="@xlink:href"/>
98    <xsl:value-of select="substring-after(substring-before(@xlink:href,'.jpg'),'X03/01/')"/>
99    <xsl:text>}\EOApageref{</xsl:text>
100    <xsl:value-of select="substring-before(qqts:getPage($oldPageID),'.jpg')"/>
101    <xsl:text>}&#x000a;</xsl:text>
102  </xsl:template>
103
104  <xsl:function name="qqts:getPage" as="xs:string">
105    <xsl:param name="oldPage" as="xs:string"/>
106    <xsl:variable name="oldNames" as="xs:string*" select="'X03/01/001.jpg','X03/01/002.jpg','X03/01/003.jpg','X03/01/004.jpg','X03/01/005.jpg','X03/01/006.jpg','X03/01/007.jpg','X03/01/008.jpg','X03/01/009.jpg','X03/01/010.jpg','X03/01/011.jpg','X03/01/012.jpg','X03/01/013.jpg','X03/01/014.jpg','X03/01/015.jpg','X03/01/016.jpg','X03/01/017.jpg','X03/01/018.jpg','X03/01/019.jpg','X03/01/020.jpg','X03/01/021.jpg','X03/01/022.jpg','X03/01/023.jpg','X03/01/024.jpg','X03/01/025.jpg','X03/01/026.jpg','X03/01/027.jpg','X03/01/028.jpg','X03/01/029.jpg','X03/01/030.jpg','X03/01/031.jpg','X03/01/032.jpg','X03/01/033.jpg','X03/01/034.jpg','X03/01/035.jpg','X03/01/036.jpg','X03/01/037.jpg','X03/01/038.jpg','X03/01/039.jpg','X03/01/040.jpg','X03/01/041.jpg','X03/01/042.jpg','X03/01/043.jpg','X03/01/044.jpg','X03/01/045.jpg','X03/01/046.jpg','X03/01/047.jpg','X03/01/048.jpg','X03/01/049.jpg','X03/01/050.jpg','X03/01/051.jpg','X03/01/052.jpg','X03/01/053.jpg','X03/01/054.jpg','X03/01/055.jpg','X03/01/056.jpg','X03/01/057.jpg','X03/01/058.jpg','X03/01/059.jpg','X03/01/060.jpg','X03/01/061.jpg','X03/01/062.jpg','X03/01/063.jpg','X03/01/064.jpg','X03/01/065.jpg','X03/01/066.jpg','X03/01/067.jpg','X03/01/068.jpg','X03/01/069.jpg','X03/01/070.jpg','X03/01/071.jpg','X03/01/072.jpg','X03/01/073.jpg','X03/01/074.jpg','X03/01/075.jpg','X03/01/076.jpg','X03/01/077.jpg','X03/01/078.jpg','X03/01/079.jpg','X03/01/080.jpg','X03/01/081.jpg','X03/01/082.jpg','X03/01/083.jpg','X03/01/084.jpg','X03/01/085.jpg','X03/01/086.jpg','X03/01/087.jpg','X03/01/088.jpg','X03/01/089.jpg','X03/01/090.jpg','X03/01/091.jpg','X03/01/092.jpg','X03/01/093.jpg','X03/01/094.jpg','X03/01/095.jpg','X03/01/096.jpg','X03/01/097.jpg','X03/01/098.jpg','X03/01/099.jpg','X03/01/100.jpg','X03/01/101.jpg','X03/01/102.jpg','X03/01/103.jpg','X03/01/104.jpg','X03/01/105.jpg','X03/01/106.jpg','X03/01/107.jpg','X03/01/108.jpg','X03/01/109.jpg','X03/01/110.jpg','X03/01/111.jpg','X03/01/112.jpg','X03/01/113.jpg','X03/01/114.jpg','X03/01/115.jpg','X03/01/116.jpg','X03/01/117.jpg','X03/01/118.jpg','X03/01/119.jpg','X03/01/120.jpg','X03/01/121.jpg','X03/01/122.jpg','X03/01/123.jpg','X03/01/124.jpg','X03/01/125.jpg','X03/01/126.jpg','X03/01/127.jpg','X03/01/128.jpg','X03/01/129.jpg','X03/01/130.jpg','X03/01/131.jpg','X03/01/132.jpg','X03/01/133.jpg','X03/01/134.jpg','X03/01/135.jpg','X03/01/136.jpg','X03/01/137.jpg','X03/01/138.jpg','X03/01/139.jpg','X03/01/140.jpg','X03/01/141.jpg','X03/01/142.jpg','X03/01/143.jpg','X03/01/144.jpg','X03/01/145.jpg','X03/01/146.jpg','X03/01/147.jpg','X03/01/148.jpg','X03/01/149.jpg','X03/01/150.jpg','X03/01/151.jpg','X03/01/152.jpg','X03/01/153.jpg','X03/01/154.jpg','X03/01/155.jpg','X03/01/156.jpg','X03/01/157.jpg','X03/01/158.jpg','X03/01/159.jpg','X03/01/160.jpg','X03/01/161.jpg','X03/01/162.jpg','X03/01/163.jpg','X03/01/164.jpg','X03/01/165.jpg','X03/01/166.jpg','X03/01/167.jpg','X03/01/168.jpg','X03/01/169.jpg','X03/01/170.jpg','X03/01/171.jpg','X03/01/172.jpg','X03/01/173.jpg','X03/01/174.jpg','X03/01/175.jpg','X03/01/176.jpg','X03/01/177.jpg','X03/01/178.jpg','X03/01/179.jpg','X03/01/180.jpg','X03/01/181.jpg','X03/01/182.jpg','X03/01/183.jpg','X03/01/184.jpg','X03/01/185.jpg','X03/01/186.jpg','X03/01/187.jpg','X03/01/188.jpg','X03/01/189.jpg','X03/01/190.jpg','X03/01/191.jpg','X03/01/192.jpg','X03/01/193.jpg','X03/01/194.jpg','X03/01/195.jpg','X03/01/196.jpg','X03/01/197.jpg','X03/01/198.jpg','X03/01/199.jpg','X03/01/200.jpg','X03/01/201.jpg','X03/01/202.jpg','X03/01/203.jpg','X03/01/204.jpg','X03/01/205.jpg','X03/01/206.jpg','X03/01/207.jpg','X03/01/208.jpg','X03/01/209.jpg','X03/01/210.jpg','X03/01/211.jpg','X03/01/212.jpg','X03/01/213.jpg','X03/01/214.jpg','X03/01/215.jpg','X03/01/216.jpg','X03/01/217.jpg','X03/01/218.jpg','X03/01/219.jpg','X03/01/220.jpg','X03/01/221.jpg','X03/01/222.jpg','X03/01/223.jpg','X03/01/224.jpg','X03/01/225.jpg','X03/01/226.jpg','X03/01/227.jpg','X03/01/228.jpg','X03/01/229.jpg','X03/01/230.jpg','X03/01/231.jpg','X03/01/232.jpg','X03/01/233.jpg','X03/01/234.jpg','X03/01/235.jpg','X03/01/236.jpg','X03/01/237.jpg','X03/01/238.jpg','X03/01/239.jpg','X03/01/240.jpg','X03/01/241.jpg','X03/01/242.jpg','X03/01/243.jpg','X03/01/244.jpg','X03/01/245.jpg','X03/01/246.jpg','X03/01/247.jpg','X03/01/248.jpg','X03/01/249.jpg','X03/01/250.jpg','X03/01/251.jpg','X03/01/252.jpg','X03/01/253.jpg','X03/01/254.jpg','X03/01/255.jpg','X03/01/256.jpg','X03/01/257.jpg','X03/01/258.jpg','X03/01/259.jpg','X03/01/260.jpg','X03/01/261.jpg','X03/01/262.jpg','X03/01/263.jpg','X03/01/264.jpg','X03/01/265.jpg','X03/01/266.jpg','X03/01/267.jpg','X03/01/268.jpg','X03/01/269.jpg','X03/01/270.jpg','X03/01/271.jpg','X03/01/272.jpg','X03/01/273.jpg','X03/01/274.jpg','X03/01/275.jpg','X03/01/276.jpg','X03/01/277.jpg','X03/01/278.jpg','X03/01/279.jpg','X03/01/280.jpg','X03/01/281.jpg','X03/01/282.jpg','X03/01/283.jpg','X03/01/284.jpg','X03/01/285.jpg','X03/01/286.jpg','X03/01/287.jpg','X03/01/288.jpg','X03/01/289.jpg','X03/01/290.jpg','X03/01/291.jpg','X03/01/292.jpg','X03/01/293.jpg','X03/01/294.jpg','X03/01/295.jpg','X03/01/296.jpg','X03/01/297.jpg','X03/01/298.jpg','X03/01/299.jpg','X03/01/300.jpg','X03/01/301.jpg','X03/01/302.jpg','X03/01/303.jpg','X03/01/304.jpg','X03/01/305.jpg','X03/01/306.jpg','X03/01/307.jpg','X03/01/308.jpg','X03/01/309.jpg','X03/01/310.jpg','X03/01/311.jpg','X03/01/312.jpg','X03/01/313.jpg','X03/01/314.jpg','X03/01/315.jpg','X03/01/316.jpg','X03/01/317.jpg','X03/01/318.jpg','X03/01/319.jpg','X03/01/320.jpg','X03/01/321.jpg','X03/01/322.jpg','X03/01/323.jpg','X03/01/324.jpg','X03/01/325.jpg','X03/01/326.jpg','X03/01/327.jpg','X03/01/328.jpg','X03/01/329.jpg','X03/01/330.jpg','X03/01/331.jpg','X03/01/332.jpg','X03/01/333.jpg','X03/01/334.jpg','X03/01/335.jpg','X03/01/336.jpg','X03/01/337.jpg','X03/01/338.jpg','X03/01/339.jpg','X03/01/340.jpg','X03/01/341.jpg','X03/01/342.jpg','X03/01/343.jpg','X03/01/344.jpg','X03/01/345.jpg','X03/01/346.jpg','X03/01/347.jpg','X03/01/348.jpg','X03/01/349.jpg','X03/01/350.jpg','X03/01/351.jpg','X03/01/352.jpg','X03/01/353.jpg','X03/01/354.jpg','X03/01/355.jpg','X03/01/356.jpg','X03/01/357.jpg','X03/01/358.jpg','X03/01/359.jpg','X03/01/360.jpg','X03/01/361.jpg','X03/01/362.jpg','X03/01/363.jpg','X03/01/364.jpg','X03/01/365.jpg','X03/01/366.jpg','X03/01/367.jpg','X03/01/368.jpg','X03/01/369.jpg','X03/01/370.jpg','X03/01/371.jpg','X03/01/372.jpg','X03/01/373.jpg','X03/01/374.jpg','X03/01/375.jpg','X03/01/376.jpg','X03/01/377.jpg','X03/01/378.jpg','X03/01/379.jpg','X03/01/380.jpg','X03/01/381.jpg','X03/01/382.jpg','X03/01/383.jpg','X03/01/384.jpg','X03/01/385.jpg','X03/01/386.jpg','X03/01/387.jpg','X03/01/388.jpg','X03/01/389.jpg','X03/01/390.jpg','X03/01/391.jpg','X03/01/392.jpg','X03/01/393.jpg','X03/01/394.jpg','X03/01/395.jpg','X03/01/396.jpg','X03/01/397.jpg','X03/01/398.jpg','X03/01/399.jpg','X03/01/400.jpg','X03/01/401.jpg','X03/01/402.jpg','X03/01/403.jpg','X03/01/404.jpg'"/>
107
108    <xsl:variable name="newNames" as="xs:string*"
109                  select="'10001b.jpg','10002a.jpg','10002b.jpg','10003a.jpg','10003b.jpg','10004a.jpg','10004b.jpg','10005a.jpg','10005b.jpg','10006a.jpg','10006b.jpg','10007a.jpg','10007b.jpg','10008a.jpg','10008b.jpg','10009a.jpg','10009b.jpg','10010a.jpg','10010b.jpg','10011a.jpg','10011b.jpg','10012a.jpg','10012b.jpg','10013a.jpg','10013b.jpg','10014a.jpg','10014b.jpg','10015a.jpg','10015b.jpg','10016A.jpg','10016B.jpg','10017A.jpg','10017B.jpg','10018A.jpg','10018B.jpg','10019A.jpg','10019B.jpg','10020A.jpg','10020B.jpg','10021A.jpg','10021B.jpg','10022A.jpg','10022B.jpg','10023A.jpg','10023B.jpg','10024A.jpg','10024B.jpg','10025A.jpg','10025B.jpg','10026A.jpg','10026B.jpg','10027A.jpg','10027B.jpg','10028A.jpg','10028B.jpg','10029A.jpg','10029B.jpg','10030A.jpg','10030B.jpg','10031a.jpg','10031b.jpg','10032a.jpg','10032b.jpg','10033a.jpg','10033b.jpg','10034a.jpg','10034b.jpg','10035a.jpg','10035b.jpg','10036a.jpg','10036b.jpg','10037a.jpg','10037b.jpg','10038a.jpg','10038b.jpg','10039a.jpg','10039b.jpg','10040a.jpg','10040b.jpg','10041a.jpg','10041b.jpg','10041a.jpg','10041b.jpg','10042a.jpg','10042b.jpg','10043a.jpg','10043b.jpg','10044a.jpg','10044b.jpg','10045a.jpg','10045b.jpg','10046a.jpg','10046b.jpg','10047a.jpg','10047b.jpg','10048a.jpg','10048b.jpg','10049a.jpg','10049b.jpg','10050a.jpg','10050b.jpg','10051a.jpg','10051b.jpg','10052a.jpg','10052b.jpg','10053a.jpg','10053b.jpg','10054a.jpg','10054b.jpg','10055a.jpg','10055b.jpg','10056a.jpg','10056b.jpg','10057a.jpg','10057b.jpg','10058a.jpg','10058b.jpg','10059a.jpg','10059b.jpg','10060a.jpg','10060b.jpg','10061a.jpg','10061b.jpg','10062a.jpg','10062b.jpg','10063a.jpg','10063b.jpg','10064a.jpg','10064b.jpg','10065a.jpg','10065b.jpg','10066a.jpg','10066b.jpg','10067a.jpg','10067b.jpg','10068a.jpg','10068b.jpg','10069a.jpg','10069b.jpg','10070a.jpg','10070b.jpg','10071a.jpg','10071b.jpg','10072a.jpg','10072b.jpg','10073a.jpg','10073b.jpg','10074a.jpg','10074b.jpg','10075a.jpg','10075b.jpg','10076a.jpg','10076b.jpg','10077a.jpg','10077b.jpg','10078a.jpg','10078b.jpg','20001a.jpg','20001b.jpg','20002a.jpg','20002b.jpg','20003a.jpg','20003b.jpg','20004a.jpg','20004b.jpg','20005a.jpg','20005b.jpg','20006a.jpg','20006b.jpg','20007a.jpg','20007b.jpg','20008a.jpg','20008b.jpg','20009a.jpg','20009b.jpg','20010a.jpg','20010b.jpg','20011a.jpg','20011b.jpg','20012a.jpg','20012b.jpg','20013a.jpg','20013b.jpg','20014a.jpg','20014b.jpg','20015a.jpg','20015b.jpg','20016a.jpg','20016b.jpg','20017a.jpg','20017b.jpg','20018a.jpg','20018b.jpg','20019a.jpg','20019b.jpg','20020a.jpg','20020b.jpg','20021a.jpg','20021b.jpg','20022a.jpg','20022b.jpg','20023a.jpg','20023b.jpg','20024a.jpg','20024b.jpg','20025a.jpg','20025b.jpg','20026a.jpg','20026b.jpg','20027a.jpg','20027b.jpg','20028a.jpg','20028b.jpg','20029a.jpg','20029b.jpg','20030a.jpg','20030b.jpg','20031a.jpg','20031b.jpg','20032a.jpg','20032b.jpg','20033a.jpg','20033b.jpg','20034a.jpg','20034b.jpg','20035a.jpg','20035b.jpg','20036a.jpg','20036b.jpg','20037a.jpg','20037b.jpg','20038a.jpg','20038b.jpg','20039a.jpg','20039b.jpg','20040a.jpg','20040b.jpg','30001A.jpg','30002B.jpg','30003A.jpg','30003B.jpg','30004A.jpg','30004B.jpg','30005A.jpg','30005B.jpg','30006A.jpg','30006B.jpg','30007A.jpg','30007B.jpg','30008A.jpg','30008B.jpg','30009A.jpg','30009B.jpg','30010A.jpg','30010B.jpg','30011a.jpg','30011b.jpg','30012a.jpg','30012b.jpg','30013a.jpg','30013b.jpg','30014a.jpg','30014b.jpg','30015a.jpg','30015b.jpg','30016a.jpg','30016b.jpg','30017a.jpg','30017b.jpg','30018a.jpg','30018b.jpg','30019a.jpg','30019b.jpg','30020a.jpg','30020b.jpg','30021a.jpg','30021b.jpg','30022a.jpg','30022b.jpg','30023a.jpg','30023b.jpg','30024a.jpg','30024b.jpg','30025a.jpg','30025b.jpg','30026a.jpg','30026b.jpg','30027a.jpg','30027b.jpg','30028a.jpg','30028b.jpg','30029a.jpg','30029b.jpg','30030a.jpg','30030b.jpg','30031a.jpg','30031b.jpg','30032a.jpg','30032b.jpg','30033a.jpg','30033b.jpg','30034a.jpg','30034b.jpg','30035a.jpg','30035b.jpg','30036a.jpg','30036b.jpg','30037a.jpg','30037b.jpg','30038a.jpg','30038b.jpg','30039a.jpg','30039b.jpg','30040a.jpg','30040b.jpg','30041a.jpg','30041b.jpg','30042a.jpg','30042b.jpg','30043a.jpg','30043b.jpg','30044a.jpg','30044b.jpg','30045a.jpg','30045b.jpg','30046a.jpg','30046b.jpg','30047a.jpg','30047b.jpg','30048a.jpg','30048b.jpg','30049a.jpg','30049b.jpg','30050a.jpg','30050b.jpg','30051a.jpg','30051b.jpg','30052a.jpg','30052b.jpg','30053a.jpg','30053b.jpg','30054a.jpg','30054b.jpg','30055a.jpg','30055b.jpg','30056a.jpg','30056b.jpg','30057a.jpg','30057b.jpg','30058a.jpg','30058b.jpg','30059a.jpg','30059b.jpg','30060a.jpg','30060b.jpg','40001a.jpg','40001b.jpg','40002a.jpg','40002b.jpg','40003a.jpg','40003b.jpg','40004a.jpg','40004b.jpg','40005a.jpg','40005b.jpg','40006a.jpg','40006b.jpg','40007a.jpg','40007b.jpg','40008a.jpg','40008b.jpg','40009a.jpg','40009b.jpg','40010a.jpg','40010b.jpg','40011a.jpg','40011b.jpg','40012a.jpg','40012b.jpg','40013a.jpg','40013b.jpg','40014a.jpg','40014b.jpg','40015a.jpg','40015b.jpg','40016a.jpg','40016b.jpg','40017a.jpg','40017b.jpg','40018a.jpg','40018b.jpg','40019a.jpg','40019b.jpg','40020a.jpg','40020b.jpg','40021a.jpg','40021b.jpg','40022a.jpg','40022b.jpg','40023a.jpg','40023b.jpg','40024a.jpg','40024b.jpg','40025a.jpg'"/>
110
111    <xsl:variable name="index" select="if (count(index-of($oldNames,
112                                       $oldPage)) gt 0) then subsequence(index-of($oldNames, $oldPage),
113                                       1,1) else 0"/>
114
115    <xsl:value-of select="if ($index gt 0) then
116                          string(subsequence($newNames, $index, 1))
117                          else ''"/>
118  </xsl:function>
119</xsl:stylesheet>