fix 文档拆分--公式
This commit is contained in:
@@ -160,5 +160,15 @@
|
||||
<artifactId>jaxen</artifactId>
|
||||
<version>1.2.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.sourceforge.jeuclid</groupId>
|
||||
<artifactId>jeuclid-core</artifactId>
|
||||
<version>3.1.9</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi-ooxml-schemas</artifactId>
|
||||
<version>3.17</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
+14
-47
@@ -198,17 +198,17 @@ public class FileSpiltService {
|
||||
//} else
|
||||
if (child instanceof CTOMath) {
|
||||
CTOMath ctoMath = (CTOMath) child;
|
||||
stringBuilder.append(ctoMath.xmlText());
|
||||
//stringBuilder.append(ctoMath.xmlText());
|
||||
// 处理word中存在的公式成mathML格式
|
||||
//handleParagraphOMath(stringBuilder, ctoMath);
|
||||
String imageName = OmmlUtils.convertOmathToPng(ctoMath.xmlText());
|
||||
if (messageList.size() > 0) {
|
||||
addItermsConditionsMath(messageList.get(messageList.size() - 1), itemValList, stringBuilder.toString());
|
||||
addItermsMathImage(messageList.get(messageList.size() - 1), itemValList, imageName);
|
||||
}
|
||||
} else if (child instanceof CTOMathPara) {
|
||||
CTOMathPara ctoMathPara = (CTOMathPara) child;
|
||||
stringBuilder.append(ctoMathPara.xmlText());
|
||||
String imageName = OmmlUtils.convertOmathToPng(ctoMathPara.xmlText());
|
||||
if (messageList.size() > 0) {
|
||||
addItermsConditionsMath(messageList.get(messageList.size() - 1), itemValList, stringBuilder.toString());
|
||||
addItermsMathImage(messageList.get(messageList.size() - 1), itemValList, imageName);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -276,22 +276,6 @@ public class FileSpiltService {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
//if (StringUtils.isNotEmpty(p.getNumLevelText()) && p.getNumLevelText().indexOf(".") > 0) {
|
||||
// String numberParent = p.getNumLevelText().substring(0, p.getNumLevelText().lastIndexOf(".")).replaceAll("%","");
|
||||
// if (numberMap.containsKey(numberParent)) {
|
||||
// Integer numbernow = (Integer) numberMap.get(numberParent) + 1;
|
||||
// if (messageList != null && !messageList.isEmpty() && messageList.get(messageList.size() - 1).getItemNum().equals(numberParent + "." + String.valueOf(numbernow))) {
|
||||
// numberMap.put(numberParent, numbernow + 1);
|
||||
// paragraphString = numberParent + "." + String.valueOf(numbernow + 1) + paragraphString;
|
||||
// } else {
|
||||
// numberMap.put(numberParent, numbernow);
|
||||
// paragraphString = numberParent + "." + String.valueOf(numbernow) + paragraphString;
|
||||
// }
|
||||
// } else {
|
||||
// numberMap.put(numberParent, 1);
|
||||
// paragraphString = numberParent + ".1" + paragraphString;
|
||||
// }
|
||||
//}
|
||||
if (messageNumber == 0) {
|
||||
//ptest = Pattern.compile("^1\\s{0,50}范围");
|
||||
Matcher matcher = RANGE_PATTERN_1.matcher(paragraphString);
|
||||
@@ -477,32 +461,6 @@ public class FileSpiltService {
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理公式
|
||||
*
|
||||
* @param content
|
||||
* @param child
|
||||
*/
|
||||
private static void handleParagraphOMath(StringBuilder content, CTOMath child) {
|
||||
log.info(">> 开始解析段落中的CTOMath公式");
|
||||
//将word中的omml格式转换成mathML
|
||||
String mathMLFromNode = MathmlUtils.convertOMML2MML(child.xmlText());
|
||||
content.append(mathMLFromNode);
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理公式(将word中的omML格式的公式转换成mathML格式的工单)
|
||||
*
|
||||
* @param content
|
||||
* @param child
|
||||
*/
|
||||
private static void handleParagraphOMath(StringBuilder content, CTOMathPara child) {
|
||||
log.info(">> 开始解析段落中的CTOMathPara公式");
|
||||
//将word中的omml格式转换成mathML
|
||||
String mathMLFromNode = MathmlUtils.convertOMML2MML(child.xmlText());
|
||||
content.append(mathMLFromNode);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过传递过来的编号,得出下次可能出现的编号
|
||||
*
|
||||
@@ -1158,6 +1116,15 @@ public class FileSpiltService {
|
||||
return tableToHtmlStr.toString();
|
||||
}
|
||||
|
||||
// 像每个条款中依次插入每一段的内容
|
||||
private void addItermsMathImage(SarFileSplitItemsEO message, List<SarFileSplitItemsValEO> itemsValList, String imageName) {
|
||||
String path = splitUrl + imageName;
|
||||
String imgConVal = "<img class=\"wordImg\" style=\"width:100%;height:100%\" src=\"" + path + "\">";
|
||||
message.getItemsCondi().add(imgConVal);
|
||||
message.setItemContent(message.getItemContent() + imgConVal);
|
||||
itemsValList.add(getSplitItemsValObject(message.getId(), SplitFilePragraTypeEnum.IMG.getValue(), path, message.getItemsCondi().size(), null));
|
||||
}
|
||||
|
||||
// 像每个条款中依次插入每一段的内容
|
||||
private void addItermsConditionsImage(SarFileSplitItemsEO message, List<SarFileSplitItemsValEO> itemsValList, XWPFParagraph p, List<String> imageBundleList) {
|
||||
for (String pictureId : imageBundleList) {
|
||||
|
||||
+1
-1
@@ -126,7 +126,7 @@ public class SarFileSplitMenuEOServiceImpl extends ServiceImpl<SarFileSplitMenuE
|
||||
public void deleteMenu(String id){
|
||||
SarFileSplitMenuEO sarFileSplitMenuEO = dao.selectByPrimaryKey(id);
|
||||
// 水平越权
|
||||
documentSplitService.isHorizontalOverstep(sarFileSplitMenuEO.getInfoId());
|
||||
//documentSplitService.isHorizontalOverstep(sarFileSplitMenuEO.getInfoId());
|
||||
List<String> menuIds = new ArrayList<>();
|
||||
SarFileSplitMenuEO sarMenuEO = new SarFileSplitMenuEO();
|
||||
sarMenuEO.setId(id);
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
package com.jero.modules.split.util;
|
||||
|
||||
import com.jero.common.util.MinioUtil;
|
||||
import com.jero.common.util.UUIDUtils;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
public class ImageParse {
|
||||
@Value("${jero.path.uploadCos}")
|
||||
private String filePathCos;
|
||||
@Value("${jero.splitUrl}")
|
||||
private String splitUrl;
|
||||
|
||||
private int number = 0;
|
||||
// private String targetDir;
|
||||
|
||||
public ImageParse() {
|
||||
super();
|
||||
// this.targetDir = targetDir;
|
||||
}
|
||||
|
||||
public String parse(byte[] data, String extName) {
|
||||
String imageName = UUIDUtils.randomUUID10() + extName;
|
||||
|
||||
String filepathandname = filePathCos + "/" + imageName;
|
||||
MinioUtil.uploadByte(data, filepathandname);
|
||||
return imageName;
|
||||
}
|
||||
|
||||
public String parse(InputStream in, String extName) {
|
||||
if (extName.lastIndexOf(".") > -1) {
|
||||
extName = extName.substring(extName.lastIndexOf(".") + 1);
|
||||
}
|
||||
String filename = "image_" + (number++) + "." + extName;
|
||||
// File target = new File(targetDir);
|
||||
// if (!target.exists()) {
|
||||
// target.mkdirs();
|
||||
// }
|
||||
|
||||
try {
|
||||
IOUtils.copy(in, new FileOutputStream(filename));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return filename;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,113 +0,0 @@
|
||||
package com.jero.modules.split.util;
|
||||
|
||||
import javax.xml.transform.*;
|
||||
import javax.xml.transform.stream.StreamResult;
|
||||
import javax.xml.transform.stream.StreamSource;
|
||||
import java.io.InputStream;
|
||||
import java.io.StringReader;
|
||||
import java.io.StringWriter;
|
||||
|
||||
/**
|
||||
* @author liJiaRao
|
||||
* @date 2024-01-03 15:36
|
||||
*/
|
||||
public class MathmlUtils {
|
||||
/**
|
||||
* Description: xsl转换器
|
||||
*/
|
||||
public static String xslConvert(String s, String xslpath, URIResolver uriResolver) {
|
||||
TransformerFactory tFac = TransformerFactory.newInstance();
|
||||
if (uriResolver != null)
|
||||
tFac.setURIResolver(uriResolver);
|
||||
StreamSource xslSource = new StreamSource(MathmlUtils.class.getResourceAsStream(xslpath));
|
||||
StringWriter writer = new StringWriter();
|
||||
try {
|
||||
Transformer t = tFac.newTransformer(xslSource);
|
||||
Source source = new StreamSource(new StringReader(s));
|
||||
Result result = new StreamResult(writer);
|
||||
t.transform(source, result);
|
||||
} catch (TransformerException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return writer.getBuffer().toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Description: 将mathml转为latx
|
||||
* @param mml
|
||||
* @return
|
||||
*/
|
||||
public static String convertMML2Latex(String mml) {
|
||||
mml = mml.substring(mml.indexOf("?>") + 2, mml.length()); //去掉xml的头节点
|
||||
URIResolver r = new URIResolver() { //设置xls依赖文件的路径
|
||||
@Override
|
||||
public Source resolve(String href, String base) throws TransformerException {
|
||||
InputStream inputStream = MathmlUtils.class.getResourceAsStream("/conventer/mml2tex/" + href);
|
||||
return new StreamSource(inputStream);
|
||||
}
|
||||
};
|
||||
String latex = xslConvert(mml, "/conventer/mml2tex/mmltex.xsl", r);
|
||||
if (latex != null && latex.length() > 1) {
|
||||
latex = latex.substring(1, latex.length() - 1);
|
||||
}
|
||||
return latex;
|
||||
}
|
||||
|
||||
/**
|
||||
* Description: office mathml转为mml
|
||||
* @param xml
|
||||
* @return
|
||||
*/
|
||||
public static String convertOMML2MML(String xml) {
|
||||
xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n" +
|
||||
"<m:oMath xmlns:m=\"http://schemas.openxmlformats.org/officeDocument/2006/math\">\n" +
|
||||
" <m:rad>\n" +
|
||||
" <m:e>\n" +
|
||||
" <m:sup>\n" +
|
||||
" <m:e>\n" +
|
||||
" <m:r>\n" +
|
||||
" <m:t>2</m:t>\n" +
|
||||
" </m:r>\n" +
|
||||
" </m:e>\n" +
|
||||
" <m:sup>\n" +
|
||||
" <m:e>\n" +
|
||||
" <m:r>\n" +
|
||||
" <m:t>3</m:t>\n" +
|
||||
" </m:r>\n" +
|
||||
" </m:e>\n" +
|
||||
" <m:sup>\n" +
|
||||
" <m:e>\n" +
|
||||
" <m:r>\n" +
|
||||
" <m:t>4</m:t>\n" +
|
||||
" </m:r>\n" +
|
||||
" </m:e>\n" +
|
||||
" <m:sup>\n" +
|
||||
" <m:e>\n" +
|
||||
" <m:r>\n" +
|
||||
" <m:t>5</m:t>\n" +
|
||||
" </m:r>\n" +
|
||||
" </m:e>\n" +
|
||||
" <m:r>\n" +
|
||||
" <m:t>6</m:t>\n" +
|
||||
" </m:r>\n" +
|
||||
" </m:sup>\n" +
|
||||
" </m:sup>\n" +
|
||||
" </m:sup>\n" +
|
||||
" </m:sup>\n" +
|
||||
" </m:e>\n" +
|
||||
" </m:rad>\n" +
|
||||
" <m:r>\n" +
|
||||
" <m:t> + </m:t>\n" +
|
||||
" </m:r>\n" +
|
||||
" <m:rad>\n" +
|
||||
" <m:e>\n" +
|
||||
" <m:r>\n" +
|
||||
" <m:t>sin(x)</m:t>\n" +
|
||||
" </m:r>\n" +
|
||||
" </m:e>\n" +
|
||||
" </m:rad>\n" +
|
||||
"</m:oMath>\n";
|
||||
String result = xslConvert(xml, "/conventer/OMML2MML.XSL", null);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
+23
-106
@@ -1,23 +1,14 @@
|
||||
package com.jero.modules.split.util;
|
||||
|
||||
import cn.hutool.poi.word.WordUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
|
||||
import org.apache.poi.xwpf.usermodel.XWPFRun;
|
||||
import org.apache.xmlbeans.XmlCursor;
|
||||
import org.dom4j.Document;
|
||||
import org.dom4j.DocumentException;
|
||||
import org.dom4j.Element;
|
||||
import org.dom4j.Node;
|
||||
import org.dom4j.io.SAXReader;
|
||||
import org.openxmlformats.schemas.officeDocument.x2006.math.CTOMath;
|
||||
import org.openxmlformats.schemas.officeDocument.x2006.math.CTOMathPara;
|
||||
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP;
|
||||
import org.w3c.dom.Node;
|
||||
import org.w3c.dom.NodeList;
|
||||
|
||||
import javax.xml.transform.*;
|
||||
import javax.xml.transform.stream.StreamResult;
|
||||
import javax.xml.transform.stream.StreamSource;
|
||||
import java.io.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
@@ -60,6 +51,14 @@ public class ParagraphChildOrderManager {
|
||||
xmlcursor.pop();
|
||||
}
|
||||
}
|
||||
if (paragraph.getCTP().xmlText().contains("m:oMath")) {
|
||||
for (XWPFRun run : paragraph.getRuns()) {
|
||||
String xmlText = run.getCTR().xmlText();
|
||||
if (xmlText.contains("m:oMath")) {
|
||||
System.out.println(xmlText);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public List<Object> getChildList() {
|
||||
@@ -97,103 +96,21 @@ public class ParagraphChildOrderManager {
|
||||
return runsOrMathList;
|
||||
}
|
||||
}
|
||||
|
||||
public static String parseParagraph(XWPFParagraph xwpfParagraph) {
|
||||
CTP ctp = xwpfParagraph.getCTP();
|
||||
String xmlText = ctp.xmlText();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
// if (xmlText.contains("<m:oMath>")) {
|
||||
|
||||
//段落文本内容
|
||||
sb.append(xwpfParagraph.getParagraphText());
|
||||
//段落公式解析
|
||||
//得到根节点的值
|
||||
SAXReader saxReader = new SAXReader();
|
||||
//将String类型的字符串转换成XML文本对象
|
||||
Document doc = null;
|
||||
try {
|
||||
doc = saxReader.read(new ByteArrayInputStream(xmlText.getBytes()));
|
||||
} catch (DocumentException e) {
|
||||
e.printStackTrace();
|
||||
private Node getChildNode(Node node, String nodeName) {
|
||||
if (!node.hasChildNodes()) {
|
||||
return null;
|
||||
}
|
||||
Element root = doc.getRootElement();
|
||||
// 一个段落多个表达式解析
|
||||
//用xpath得到OMML节点
|
||||
List<Node> nodes = root.selectNodes("//m:oMath");
|
||||
if (nodes != null && !nodes.isEmpty()) {
|
||||
for (Node node : nodes) {
|
||||
/**
|
||||
* OMML -> MathML -> LaTex
|
||||
* Office在安装目录中提供了将OMML转为MathML的xsl工具:MML2OMML.XSL
|
||||
* MathML转LaTex使用网上找到另一个xsl工具mmltex.xsl。
|
||||
*/
|
||||
String xml = node.asXML();
|
||||
//xml转 mathml
|
||||
String mathml = convertOMML2MML(xml);
|
||||
//mathml转latx
|
||||
String latex = convertMML2Latex(mathml);
|
||||
sb.append(latex);
|
||||
log.info("latex表达式:{}",latex);
|
||||
NodeList childNodes = node.getChildNodes();
|
||||
for (int i = 0; i < childNodes.getLength(); i++) {
|
||||
Node childNode = childNodes.item(i);
|
||||
if (nodeName.equals(childNode.getNodeName())) {
|
||||
return childNode;
|
||||
}
|
||||
childNode = getChildNode(childNode, nodeName);
|
||||
if (childNode != null) {
|
||||
return childNode;
|
||||
}
|
||||
}
|
||||
log.info("公式个数:{},解析内容:{}",nodes.size(),sb.toString());
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>Description: 将mathml转为latx </p>
|
||||
* @param mml mathml字符串
|
||||
* @return
|
||||
*/
|
||||
public static String convertMML2Latex(String mml){
|
||||
mml = mml.substring(mml.indexOf("?>")+2, mml.length()); //去掉xml的头节点
|
||||
URIResolver r = new URIResolver(){ //设置xls依赖文件的路径
|
||||
@Override
|
||||
public Source resolve(String href, String base) throws TransformerException {
|
||||
File f = new File("/conventer/mml2tex/" + href);
|
||||
InputStream inputStream = WordUtil.class.getResourceAsStream("/conventer/mml2tex/" + href);
|
||||
return new StreamSource(inputStream);
|
||||
}
|
||||
};
|
||||
String latex = xslConvert(mml, "/conventer/mml2tex/mmltex.xsl", r);
|
||||
if(latex != null && latex.length() > 1){
|
||||
latex = latex.substring(1, latex.length() - 1);
|
||||
}
|
||||
return latex;
|
||||
}
|
||||
/**
|
||||
* <p>Description: office xml转为mathml </p>
|
||||
* @param xml 公式xml
|
||||
* @return
|
||||
*/
|
||||
public static String convertOMML2MML(String xml){
|
||||
// 进行转换的过程中需要借助这个文件,一般来说本机安装office就会有这个文件,找到就可以
|
||||
String result = xslConvert(xml, "/conventer/OMML2MML.XSL", null);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Description: xsl转换器</p>
|
||||
* @param s 公式xml字符串
|
||||
* @param xslpath 转换器路径
|
||||
* @param uriResolver xls依赖文件
|
||||
* @return
|
||||
*/
|
||||
public static String xslConvert(String s, String xslpath, URIResolver uriResolver){
|
||||
TransformerFactory tFac = TransformerFactory.newInstance();
|
||||
if(uriResolver != null) {
|
||||
tFac.setURIResolver(uriResolver);
|
||||
}
|
||||
StreamSource xslSource = new StreamSource(WordUtil.class.getResourceAsStream(xslpath));
|
||||
StringWriter writer = new StringWriter();
|
||||
try {
|
||||
Transformer t = tFac.newTransformer(xslSource);
|
||||
Source source = new StreamSource(new StringReader(s));
|
||||
Result result = new StreamResult(writer);
|
||||
t.transform(source, result);
|
||||
} catch (TransformerException e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
return writer.getBuffer().toString();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@@ -1,97 +0,0 @@
|
||||
README for the XSLT MathML Library
|
||||
|
||||
XSLT MathML Library is a set of XSLT stylesheets to transform
|
||||
MathML 2.0 to LaTeX.
|
||||
|
||||
For more information, see
|
||||
http://www.raleigh.ru/MathML/mmltex/index.php?lang=en
|
||||
|
||||
Manifest
|
||||
--------
|
||||
|
||||
README this file
|
||||
mmltex.xsl
|
||||
tokens.xsl
|
||||
glayout.xsl
|
||||
scripts.xsl
|
||||
tables.xsl
|
||||
entities.xsl
|
||||
cmarkup.xsl
|
||||
|
||||
Use
|
||||
---
|
||||
|
||||
There are two ways of using the library:
|
||||
|
||||
* Use a local copy of the library.
|
||||
|
||||
1. Download the distribution (see below).
|
||||
|
||||
2. Unpack the distribution, using unzip.
|
||||
|
||||
3. In your stylesheet import or include either the main
|
||||
stylesheet, mmltex.xsl, or the stylesheet module you
|
||||
wish to use, such as tokens.xsl. This example assumes
|
||||
that the distribution has been extracted into the same
|
||||
directory as your own stylesheet:
|
||||
|
||||
<xsl:import href="mmltex.xsl"/>
|
||||
|
||||
* Import or include either the main stylesheet, or the
|
||||
stylesheet module you wish to use, directly from the library
|
||||
website; http://www.raleigh.ru/MathML/mmltex/. For example:
|
||||
|
||||
<xsl:import href="http://www.raleigh.ru/MathML/mmltex/mmltex.xsl"/>
|
||||
|
||||
Obtaining The Library
|
||||
---------------------
|
||||
|
||||
The XSLT MathML Library is available for download as:
|
||||
|
||||
* Zip file: http://www.raleigh.ru/MathML/mmltex/mmltex.zip
|
||||
|
||||
Copyright
|
||||
---------
|
||||
|
||||
Copyright (C) 2001, 2002 Vasil Yaroshevich
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the ``Software''), to deal in the Software without
|
||||
restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
sell copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
Except as contained in this notice, the names of individuals
|
||||
credited with contribution to this software shall not be used in
|
||||
advertising or otherwise to promote the sale, use or other
|
||||
dealings in this Software without prior written authorization
|
||||
from the individuals in question.
|
||||
|
||||
Any stylesheet derived from this Software that is publically
|
||||
distributed will be identified with a different name and the
|
||||
version strings in any derived Software will be changed so that
|
||||
no possibility of confusion between the derived package and this
|
||||
Software will exist.
|
||||
|
||||
Warranty
|
||||
--------
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL NORMAN WALSH OR ANY OTHER
|
||||
CONTRIBUTOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
Contacting the Author
|
||||
---------------------
|
||||
|
||||
These stylesheets are maintained by Vasil Yaroshevich, <yarosh@raleigh.ru>.
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,316 +0,0 @@
|
||||
<?xml version='1.0' encoding="UTF-8"?>
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:m="http://www.w3.org/1998/Math/MathML"
|
||||
version='1.0'>
|
||||
|
||||
<!-- ====================================================================== -->
|
||||
<!-- $id: entities.xsl, 2002/22/11 Exp $
|
||||
This file is part of the XSLT MathML Library distribution.
|
||||
See ./README or http://www.raleigh.ru/MathML/mmltex for
|
||||
copyright and other information -->
|
||||
<!-- ====================================================================== -->
|
||||
|
||||
<xsl:template name="replaceEntities">
|
||||
<xsl:param name="content"/>
|
||||
<xsl:if test="string-length($content)>0">
|
||||
<xsl:choose>
|
||||
<xsl:when test="starts-with($content,'ɛ')"><xsl:value-of select="'\varepsilon '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ɛ')"/></xsl:call-template></xsl:when> <!--/varepsilon -->
|
||||
|
||||
<!-- ====================================================================== -->
|
||||
<!-- Unicode 3.2
|
||||
Greek
|
||||
Range: 0370-03FF
|
||||
http://www.unicode.org/charts/PDF/U0370.pdf -->
|
||||
<!-- ====================================================================== -->
|
||||
<xsl:when test="starts-with($content,'Γ')"><xsl:value-of select="'\Gamma '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'Γ')"/></xsl:call-template></xsl:when> <!--/Gamma capital Gamma, Greek -->
|
||||
<xsl:when test="starts-with($content,'Δ')"><xsl:value-of select="'\Delta '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'Δ')"/></xsl:call-template></xsl:when> <!--/Delta capital Delta, Greek -->
|
||||
<xsl:when test="starts-with($content,'Θ')"><xsl:value-of select="'\Theta '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'Θ')"/></xsl:call-template></xsl:when> <!--/Theta capital Theta, Greek -->
|
||||
<xsl:when test="starts-with($content,'Λ')"><xsl:value-of select="'\Lambda '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'Λ')"/></xsl:call-template></xsl:when> <!--/Lambda capital Lambda, Greek -->
|
||||
<xsl:when test="starts-with($content,'Ξ')"><xsl:value-of select="'\Xi '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'Ξ')"/></xsl:call-template></xsl:when> <!--/Xi capital Xi, Greek -->
|
||||
<xsl:when test="starts-with($content,'Π')"><xsl:value-of select="'\Pi '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'Π')"/></xsl:call-template></xsl:when> <!--/Pi capital Pi, Greek -->
|
||||
<xsl:when test="starts-with($content,'Σ')"><xsl:value-of select="'\Sigma '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'Σ')"/></xsl:call-template></xsl:when> <!--/Sigma capital Sigma, Greek -->
|
||||
<xsl:when test="starts-with($content,'Φ')"><xsl:value-of select="'\Phi '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'Φ')"/></xsl:call-template></xsl:when> <!--/Phi capital Phi, Greek -->
|
||||
<xsl:when test="starts-with($content,'Ψ')"><xsl:value-of select="'\Psi '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'Ψ')"/></xsl:call-template></xsl:when> <!--/Psi capital Psi, Greek -->
|
||||
<xsl:when test="starts-with($content,'Ω')"><xsl:value-of select="'\Omega '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'Ω')"/></xsl:call-template></xsl:when> <!--/Omega capital Omega, Greek -->
|
||||
<xsl:when test="starts-with($content,'α')"><xsl:value-of select="'\alpha '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'α')"/></xsl:call-template></xsl:when> <!--/alpha small alpha, Greek -->
|
||||
<xsl:when test="starts-with($content,'β')"><xsl:value-of select="'\beta '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'β')"/></xsl:call-template></xsl:when> <!--/beta small beta, Greek -->
|
||||
<xsl:when test="starts-with($content,'γ')"><xsl:value-of select="'\gamma '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'γ')"/></xsl:call-template></xsl:when> <!--/gamma small gamma, Greek -->
|
||||
<xsl:when test="starts-with($content,'δ')"><xsl:value-of select="'\delta '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'δ')"/></xsl:call-template></xsl:when> <!--/delta small delta, Greek -->
|
||||
<xsl:when test="starts-with($content,'ε')"><xsl:value-of select="'\epsilon '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ε')"/></xsl:call-template></xsl:when> <!--/straightepsilon, small epsilon, Greek -->
|
||||
<xsl:when test="starts-with($content,'ζ')"><xsl:value-of select="'\zeta '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ζ')"/></xsl:call-template></xsl:when> <!--/zeta small zeta, Greek -->
|
||||
<xsl:when test="starts-with($content,'η')"><xsl:value-of select="'\eta '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'η')"/></xsl:call-template></xsl:when> <!--/eta small eta, Greek -->
|
||||
<xsl:when test="starts-with($content,'θ')"><xsl:value-of select="'\theta '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'θ')"/></xsl:call-template></xsl:when> <!--/theta straight theta, small theta, Greek -->
|
||||
<xsl:when test="starts-with($content,'ι')"><xsl:value-of select="'\iota '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ι')"/></xsl:call-template></xsl:when> <!--/iota small iota, Greek -->
|
||||
<xsl:when test="starts-with($content,'κ')"><xsl:value-of select="'\kappa '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'κ')"/></xsl:call-template></xsl:when> <!--/kappa small kappa, Greek -->
|
||||
<xsl:when test="starts-with($content,'λ')"><xsl:value-of select="'\lambda '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'λ')"/></xsl:call-template></xsl:when> <!--/lambda small lambda, Greek -->
|
||||
<xsl:when test="starts-with($content,'μ')"><xsl:value-of select="'\mu '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'μ')"/></xsl:call-template></xsl:when> <!--/mu small mu, Greek -->
|
||||
<xsl:when test="starts-with($content,'ν')"><xsl:value-of select="'\nu '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ν')"/></xsl:call-template></xsl:when> <!--/nu small nu, Greek -->
|
||||
<xsl:when test="starts-with($content,'ξ')"><xsl:value-of select="'\xi '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ξ')"/></xsl:call-template></xsl:when> <!--/xi small xi, Greek -->
|
||||
<xsl:when test="starts-with($content,'π')"><xsl:value-of select="'\pi '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'π')"/></xsl:call-template></xsl:when> <!--/pi small pi, Greek -->
|
||||
<xsl:when test="starts-with($content,'ρ')"><xsl:value-of select="'\rho '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ρ')"/></xsl:call-template></xsl:when> <!--/rho small rho, Greek -->
|
||||
<xsl:when test="starts-with($content,'ς')"><xsl:value-of select="'\varsigma '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ς')"/></xsl:call-template></xsl:when> <!--/varsigma -->
|
||||
<xsl:when test="starts-with($content,'σ')"><xsl:value-of select="'\sigma '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'σ')"/></xsl:call-template></xsl:when> <!--/sigma small sigma, Greek -->
|
||||
<xsl:when test="starts-with($content,'τ')"><xsl:value-of select="'\tau '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'τ')"/></xsl:call-template></xsl:when> <!--/tau small tau, Greek -->
|
||||
<xsl:when test="starts-with($content,'υ')"><xsl:value-of select="'\upsilon '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'υ')"/></xsl:call-template></xsl:when> <!--/upsilon small upsilon, Greek -->
|
||||
<xsl:when test="starts-with($content,'φ')"><xsl:value-of select="'\phi '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'φ')"/></xsl:call-template></xsl:when> <!--/straightphi - small phi, Greek -->
|
||||
<xsl:when test="starts-with($content,'χ')"><xsl:value-of select="'\chi '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'χ')"/></xsl:call-template></xsl:when> <!--/chi small chi, Greek -->
|
||||
<xsl:when test="starts-with($content,'ψ')"><xsl:value-of select="'\psi '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ψ')"/></xsl:call-template></xsl:when> <!--/psi small psi, Greek -->
|
||||
<xsl:when test="starts-with($content,'ω')"><xsl:value-of select="'\omega '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ω')"/></xsl:call-template></xsl:when> <!--/omega small omega, Greek -->
|
||||
<xsl:when test="starts-with($content,'ϑ')"><xsl:value-of select="'\vartheta '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ϑ')"/></xsl:call-template></xsl:when> <!--/vartheta - curly or open theta -->
|
||||
<xsl:when test="starts-with($content,'ϒ')"><xsl:value-of select="'\Upsilon '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ϒ')"/></xsl:call-template></xsl:when> <!--/Upsilon capital Upsilon, Greek -->
|
||||
<xsl:when test="starts-with($content,'ϕ')"><xsl:value-of select="'\varphi '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ϕ')"/></xsl:call-template></xsl:when> <!--/varphi - curly or open phi -->
|
||||
<xsl:when test="starts-with($content,'ϖ')"><xsl:value-of select="'\varpi '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ϖ')"/></xsl:call-template></xsl:when> <!--/varpi -->
|
||||
<xsl:when test="starts-with($content,'ϰ')"><xsl:value-of select="'\varkappa '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ϰ')"/></xsl:call-template></xsl:when> <!--/varkappa -->
|
||||
<xsl:when test="starts-with($content,'ϱ')"><xsl:value-of select="'\varrho '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ϱ')"/></xsl:call-template></xsl:when> <!--/varrho -->
|
||||
|
||||
<!-- ====================================================================== -->
|
||||
<xsl:when test="starts-with($content,'​')"><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '​')"/></xsl:call-template></xsl:when> <!--short form of ⁣ -->
|
||||
<xsl:when test="starts-with($content,'…')"><xsl:value-of select="'\dots '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '…')"/></xsl:call-template></xsl:when>
|
||||
<xsl:when test="starts-with($content,'′')"><xsl:value-of select="'\prime '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '′')"/></xsl:call-template></xsl:when> <!--/prime prime or minute -->
|
||||
<xsl:when test="starts-with($content,'⁡')"><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⁡')"/></xsl:call-template></xsl:when> <!-- ApplyFunction -->
|
||||
<xsl:when test="starts-with($content,'⁢')"><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⁢')"/></xsl:call-template></xsl:when> <!-- InvisibleTimes -->
|
||||
<!-- ====================================================================== -->
|
||||
<!-- Unicode 3.2
|
||||
Letterlike Symbols
|
||||
Range: 2100-214F
|
||||
http://www.unicode.org/charts/PDF/U2100.pdf -->
|
||||
<!-- ====================================================================== -->
|
||||
<xsl:when test="starts-with($content,'ℏ︀')"><xsl:value-of select="'\hbar '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ℏ︀')"/></xsl:call-template></xsl:when> <!--/hbar - Planck's over 2pi -->
|
||||
<xsl:when test="starts-with($content,'ℏ')"><xsl:value-of select="'\hslash '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ℏ')"/></xsl:call-template></xsl:when> <!--/hslash - variant Planck's over 2pi --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'ℑ')"><xsl:value-of select="'\Im '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ℑ')"/></xsl:call-template></xsl:when> <!--/Im - imaginary -->
|
||||
<xsl:when test="starts-with($content,'ℓ')"><xsl:value-of select="'\ell '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ℓ')"/></xsl:call-template></xsl:when> <!--/ell - cursive small l -->
|
||||
<xsl:when test="starts-with($content,'℘')"><xsl:value-of select="'\wp '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '℘')"/></xsl:call-template></xsl:when> <!--/wp - Weierstrass p -->
|
||||
<xsl:when test="starts-with($content,'ℜ')"><xsl:value-of select="'\Re '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ℜ')"/></xsl:call-template></xsl:when> <!--/Re - real -->
|
||||
<xsl:when test="starts-with($content,'℧')"><xsl:value-of select="'\mho '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '℧')"/></xsl:call-template></xsl:when> <!--/mho - conductance -->
|
||||
<xsl:when test="starts-with($content,'ℵ')"><xsl:value-of select="'\aleph '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ℵ')"/></xsl:call-template></xsl:when> <!--/aleph aleph, Hebrew -->
|
||||
<xsl:when test="starts-with($content,'ℶ')"><xsl:value-of select="'\beth '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ℶ')"/></xsl:call-template></xsl:when> <!--/beth - beth, Hebrew --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'ℷ')"><xsl:value-of select="'\gimel '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ℷ')"/></xsl:call-template></xsl:when> <!--/gimel - gimel, Hebrew --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'ℸ')"><xsl:value-of select="'\daleth '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ℸ')"/></xsl:call-template></xsl:when> <!--/daleth - daleth, Hebrew --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'ⅅ')"><xsl:value-of select="'D'" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ⅅ')"/></xsl:call-template></xsl:when> <!--D for use in differentials, e.g., within integrals -->
|
||||
<xsl:when test="starts-with($content,'ⅆ')"><xsl:value-of select="'d'" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ⅆ')"/></xsl:call-template></xsl:when> <!--d for use in differentials, e.g., within integrals -->
|
||||
<xsl:when test="starts-with($content,'ⅇ')"><xsl:value-of select="'e'" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ⅇ')"/></xsl:call-template></xsl:when> <!--e use for the exponential base of the natural logarithms -->
|
||||
<xsl:when test="starts-with($content,'ⅈ')"><xsl:value-of select="'i'" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, 'ⅈ')"/></xsl:call-template></xsl:when> <!--i for use as a square root of -1 -->
|
||||
|
||||
<!-- ====================================================================== -->
|
||||
<xsl:when test="starts-with($content,'→')"><xsl:value-of select="'\to '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '→')"/></xsl:call-template></xsl:when> <!--/rightarrow /to A: =rightward arrow -->
|
||||
|
||||
<!-- ====================================================================== -->
|
||||
<!-- Unicode 3.2
|
||||
Mathematical Operators
|
||||
Range: 2200-22FF
|
||||
http://www.unicode.org/charts/PDF/U2200.pdf -->
|
||||
<!-- ====================================================================== -->
|
||||
<xsl:when test="starts-with($content,'∀')"><xsl:value-of select="'\forall '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∀')"/></xsl:call-template></xsl:when> <!--/forall for all -->
|
||||
<xsl:when test="starts-with($content,'∁')"><xsl:value-of select="'\complement '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∁')"/></xsl:call-template></xsl:when> <!--/complement - complement sign --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'∂')"><xsl:value-of select="'\partial '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∂')"/></xsl:call-template></xsl:when> <!--/partial partial differential -->
|
||||
<xsl:when test="starts-with($content,'∃')"><xsl:value-of select="'\exists '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∃')"/></xsl:call-template></xsl:when> <!--/exists at least one exists -->
|
||||
<xsl:when test="starts-with($content,'∄')"><xsl:value-of select="'\nexists '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∄')"/></xsl:call-template></xsl:when> <!--/nexists - negated exists --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'∅︀')"><xsl:value-of select="'\emptyset '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∅︀')"/></xsl:call-template></xsl:when> <!--/emptyset - zero, slash -->
|
||||
<xsl:when test="starts-with($content,'∅')"><xsl:value-of select="'\varnothing '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∅')"/></xsl:call-template></xsl:when> <!--/varnothing - circle, slash --> <!-- Required amssymb -->
|
||||
<!-- <xsl:when test="starts-with($content,'∆')"><xsl:value-of select="' '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∆')"/></xsl:call-template></xsl:when>-->
|
||||
<xsl:when test="starts-with($content,'∇')"><xsl:value-of select="'\nabla '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∇')"/></xsl:call-template></xsl:when> <!--/nabla del, Hamilton operator -->
|
||||
<xsl:when test="starts-with($content,'∈')"><xsl:value-of select="'\in '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∈')"/></xsl:call-template></xsl:when> <!--/in R: set membership -->
|
||||
<xsl:when test="starts-with($content,'∉')"><xsl:value-of select="'\notin '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∉')"/></xsl:call-template></xsl:when> <!--/notin N: negated set membership -->
|
||||
<xsl:when test="starts-with($content,'∋')"><xsl:value-of select="'\ni '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∋')"/></xsl:call-template></xsl:when> <!--/ni /owns R: contains -->
|
||||
<xsl:when test="starts-with($content,'∌')"><xsl:value-of select="'\not\ni '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∌')"/></xsl:call-template></xsl:when> <!--negated contains -->
|
||||
<xsl:when test="starts-with($content,'∏')"><xsl:value-of select="'\prod '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∏')"/></xsl:call-template></xsl:when> <!--/prod L: product operator -->
|
||||
<xsl:when test="starts-with($content,'∐')"><xsl:value-of select="'\coprod '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∐')"/></xsl:call-template></xsl:when> <!--/coprod L: coproduct operator -->
|
||||
<xsl:when test="starts-with($content,'∑')"><xsl:value-of select="'\sum '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∑')"/></xsl:call-template></xsl:when> <!--/sum L: summation operator -->
|
||||
<xsl:when test="starts-with($content,'−')"><xsl:value-of select="'-'" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '−')"/></xsl:call-template></xsl:when> <!--B: minus sign -->
|
||||
<xsl:when test="starts-with($content,'∓')"><xsl:value-of select="'\mp '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∓')"/></xsl:call-template></xsl:when> <!--/mp B: minus-or-plus sign -->
|
||||
<xsl:when test="starts-with($content,'∔')"><xsl:value-of select="'\dotplus '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∔')"/></xsl:call-template></xsl:when> <!--/dotplus B: plus sign, dot above --> <!-- Required amssymb -->
|
||||
<!-- <xsl:when test="starts-with($content,'∕')"><xsl:value-of select="' '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∕')"/></xsl:call-template></xsl:when>-->
|
||||
<xsl:when test="starts-with($content,'∖')"><xsl:value-of select="'\setminus '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∖')"/></xsl:call-template></xsl:when> <!--/setminus B: reverse solidus -->
|
||||
<xsl:when test="starts-with($content,'∗')"><xsl:value-of select="'\ast '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∗')"/></xsl:call-template></xsl:when> <!--low asterisk -->
|
||||
<xsl:when test="starts-with($content,'∘')"><xsl:value-of select="'\circ '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∘')"/></xsl:call-template></xsl:when> <!--/circ B: composite function (small circle) -->
|
||||
<xsl:when test="starts-with($content,'∙')"><xsl:value-of select="'\bullet '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∙')"/></xsl:call-template></xsl:when>
|
||||
<xsl:when test="starts-with($content,'√')"><xsl:value-of select="'\surd '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '√')"/></xsl:call-template></xsl:when> <!--/surd radical -->
|
||||
<xsl:when test="starts-with($content,'∝')"><xsl:value-of select="'\propto '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∝')"/></xsl:call-template></xsl:when> <!--/propto R: is proportional to -->
|
||||
<xsl:when test="starts-with($content,'∞')"><xsl:value-of select="'\infty '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∞')"/></xsl:call-template></xsl:when> <!--/infty infinity -->
|
||||
<!-- <xsl:when test="starts-with($content,'∟')"><xsl:value-of select="' '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∟')"/></xsl:call-template></xsl:when> right (90 degree) angle -->
|
||||
<xsl:when test="starts-with($content,'∠')"><xsl:value-of select="'\angle '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∠')"/></xsl:call-template></xsl:when> <!--/angle - angle -->
|
||||
<xsl:when test="starts-with($content,'∡')"><xsl:value-of select="'\measuredangle '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∡')"/></xsl:call-template></xsl:when> <!--/measuredangle - angle-measured --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'∢')"><xsl:value-of select="'\sphericalangle '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∢')"/></xsl:call-template></xsl:when><!--/sphericalangle angle-spherical --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'∣')"><xsl:value-of select="'\mid '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∣')"/></xsl:call-template></xsl:when> <!--/mid R: -->
|
||||
<xsl:when test="starts-with($content,'∤︀')"><xsl:value-of select="'\nshortmid '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∤︀')"/></xsl:call-template></xsl:when> <!--/nshortmid --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'∤')"><xsl:value-of select="'\nmid '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∤')"/></xsl:call-template></xsl:when> <!--/nmid --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'∥')"><xsl:value-of select="'\parallel '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∥')"/></xsl:call-template></xsl:when> <!--/parallel R: parallel -->
|
||||
<xsl:when test="starts-with($content,'∦︀')"><xsl:value-of select="'\nshortparallel '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∦︀')"/></xsl:call-template></xsl:when> <!--/nshortparallel N: not short par --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'∦')"><xsl:value-of select="'\nparallel '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∦')"/></xsl:call-template></xsl:when> <!--/nparallel N: not parallel --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'∧')"><xsl:value-of select="'\wedge '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∧')"/></xsl:call-template></xsl:when> <!--/wedge /land B: logical and -->
|
||||
<xsl:when test="starts-with($content,'∨')"><xsl:value-of select="'\vee '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∨')"/></xsl:call-template></xsl:when> <!--/vee /lor B: logical or -->
|
||||
<xsl:when test="starts-with($content,'∩')"><xsl:value-of select="'\cap '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∩')"/></xsl:call-template></xsl:when> <!--/cap B: intersection -->
|
||||
<xsl:when test="starts-with($content,'∪')"><xsl:value-of select="'\cup '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∪')"/></xsl:call-template></xsl:when> <!--/cup B: union or logical sum -->
|
||||
<xsl:when test="starts-with($content,'∫')"><xsl:value-of select="'\int '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∫')"/></xsl:call-template></xsl:when> <!--/int L: integral operator -->
|
||||
<xsl:when test="starts-with($content,'∬')"><xsl:value-of select="'\iint '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∬')"/></xsl:call-template></xsl:when> <!--double integral operator --> <!-- Required amsmath -->
|
||||
<xsl:when test="starts-with($content,'∭')"><xsl:value-of select="'\iiint '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∭')"/></xsl:call-template></xsl:when> <!--/iiint triple integral operator --> <!-- Required amsmath -->
|
||||
<xsl:when test="starts-with($content,'∮')"><xsl:value-of select="'\oint '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∮')"/></xsl:call-template></xsl:when> <!--/oint L: contour integral operator -->
|
||||
<!-- <xsl:when test="starts-with($content,'∯')"><xsl:value-of select="' '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∯')"/></xsl:call-template></xsl:when>-->
|
||||
<!-- <xsl:when test="starts-with($content,'∰')"><xsl:value-of select="' '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∰')"/></xsl:call-template></xsl:when>-->
|
||||
<!-- <xsl:when test="starts-with($content,'∱')"><xsl:value-of select="' '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∱')"/></xsl:call-template></xsl:when>-->
|
||||
<!-- <xsl:when test="starts-with($content,'∲')"><xsl:value-of select="' '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∲')"/></xsl:call-template></xsl:when>-->
|
||||
<!-- <xsl:when test="starts-with($content,'∳')"><xsl:value-of select="' '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∳')"/></xsl:call-template></xsl:when>-->
|
||||
<xsl:when test="starts-with($content,'∴')"><xsl:value-of select="'\therefore '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∴')"/></xsl:call-template></xsl:when> <!--/therefore R: therefore --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'∵')"><xsl:value-of select="'\because '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∵')"/></xsl:call-template></xsl:when> <!--/because R: because --> <!-- Required amssymb -->
|
||||
<!-- ? --> <xsl:when test="starts-with($content,'∶')"><xsl:value-of select="':'" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∶')"/></xsl:call-template></xsl:when> <!--/ratio -->
|
||||
<!-- ? --> <xsl:when test="starts-with($content,'∷')"><xsl:value-of select="'\colon\colon '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∷')"/></xsl:call-template></xsl:when> <!--/Colon, two colons -->
|
||||
<!-- ? --> <xsl:when test="starts-with($content,'∸')"><xsl:value-of select="'\dot{-}'" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∸')"/></xsl:call-template></xsl:when> <!--/dotminus B: minus sign, dot above -->
|
||||
<!-- <xsl:when test="starts-with($content,'∹')"><xsl:value-of select="' '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∹')"/></xsl:call-template></xsl:when> -->
|
||||
<!-- <xsl:when test="starts-with($content,'∺')"><xsl:value-of select="' '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∺')"/></xsl:call-template></xsl:when> minus with four dots, geometric properties -->
|
||||
<!-- <xsl:when test="starts-with($content,'∻')"><xsl:value-of select="' '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∻')"/></xsl:call-template></xsl:when> homothetic -->
|
||||
<xsl:when test="starts-with($content,'∼')"><xsl:value-of select="'\sim '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∼')"/></xsl:call-template></xsl:when> <!--/sim R: similar -->
|
||||
<xsl:when test="starts-with($content,'∽')"><xsl:value-of select="'\backsim '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∽')"/></xsl:call-template></xsl:when> <!--/backsim R: reverse similar --> <!-- Required amssymb -->
|
||||
<!-- <xsl:when test="starts-with($content,'∾')"><xsl:value-of select="' '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∾')"/></xsl:call-template></xsl:when> most positive -->
|
||||
<!-- <xsl:when test="starts-with($content,'∿')"><xsl:value-of select="' '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '∿')"/></xsl:call-template></xsl:when> ac current -->
|
||||
<xsl:when test="starts-with($content,'≀')"><xsl:value-of select="'\wr '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≀')"/></xsl:call-template></xsl:when> <!--/wr B: wreath product -->
|
||||
<xsl:when test="starts-with($content,'≁')"><xsl:value-of select="'\nsim '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≁')"/></xsl:call-template></xsl:when> <!--/nsim N: not similar --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≂')"><xsl:value-of select="'\eqsim '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≂')"/></xsl:call-template></xsl:when> <!--/esim R: equals, similar --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≃')"><xsl:value-of select="'\simeq '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≃')"/></xsl:call-template></xsl:when> <!--/simeq R: similar, equals -->
|
||||
<xsl:when test="starts-with($content,'≄')"><xsl:value-of select="'\not\simeq '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≄')"/></xsl:call-template></xsl:when> <!--/nsimeq N: not similar, equals -->
|
||||
<xsl:when test="starts-with($content,'≅')"><xsl:value-of select="'\cong '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≅')"/></xsl:call-template></xsl:when> <!--/cong R: congruent with -->
|
||||
<!-- <xsl:when test="starts-with($content,'≆')"><xsl:value-of select="' '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≆')"/></xsl:call-template></xsl:when> similar, not equals -->
|
||||
<xsl:when test="starts-with($content,'≇')"><xsl:value-of select="'\ncong '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≇')"/></xsl:call-template></xsl:when> <!--/ncong N: not congruent with --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≈')"><xsl:value-of select="'\approx '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≈')"/></xsl:call-template></xsl:when> <!--/approx R: approximate -->
|
||||
<!-- <xsl:when test="starts-with($content,'≉̸')"><xsl:value-of select="' '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≉̸')"/></xsl:call-template></xsl:when> not, vert, approximate -->
|
||||
<xsl:when test="starts-with($content,'≉')"><xsl:value-of select="'\not\approx '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≉')"/></xsl:call-template></xsl:when> <!--/napprox N: not approximate -->
|
||||
<xsl:when test="starts-with($content,'≊')"><xsl:value-of select="'\approxeq '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≊')"/></xsl:call-template></xsl:when> <!--/approxeq R: approximate, equals --> <!-- Required amssymb -->
|
||||
<!-- <xsl:when test="starts-with($content,'≋')"><xsl:value-of select="' '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≋')"/></xsl:call-template></xsl:when> approximately identical to -->
|
||||
<!-- <xsl:when test="starts-with($content,'≌')"><xsl:value-of select="' '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≌')"/></xsl:call-template></xsl:when> /backcong R: reverse congruent -->
|
||||
<xsl:when test="starts-with($content,'≍')"><xsl:value-of select="'\asymp '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≍')"/></xsl:call-template></xsl:when> <!--/asymp R: asymptotically equal to -->
|
||||
<xsl:when test="starts-with($content,'≎')"><xsl:value-of select="'\Bumpeq '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≎')"/></xsl:call-template></xsl:when> <!--/Bumpeq R: bumpy equals --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≏')"><xsl:value-of select="'\bumpeq '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≏')"/></xsl:call-template></xsl:when> <!--/bumpeq R: bumpy equals, equals --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≐')"><xsl:value-of select="'\doteq '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≐')"/></xsl:call-template></xsl:when> <!--/doteq R: equals, single dot above -->
|
||||
<xsl:when test="starts-with($content,'≑')"><xsl:value-of select="'\doteqdot '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≑')"/></xsl:call-template></xsl:when> <!--/doteqdot /Doteq R: eq, even dots --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≒')"><xsl:value-of select="'\fallingdotseq '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≒')"/></xsl:call-template></xsl:when> <!--/fallingdotseq R: eq, falling dots --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≓')"><xsl:value-of select="'\risingdotseq '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≓')"/></xsl:call-template></xsl:when> <!--/risingdotseq R: eq, rising dots --> <!-- Required amssymb -->
|
||||
<!-- <xsl:when test="starts-with($content,'≔')"><xsl:value-of select="' '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≔')"/></xsl:call-template></xsl:when> /coloneq R: colon, equals -->
|
||||
<!-- <xsl:when test="starts-with($content,'≕')"><xsl:value-of select="' '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≕')"/></xsl:call-template></xsl:when> /eqcolon R: equals, colon -->
|
||||
<xsl:when test="starts-with($content,'≖')"><xsl:value-of select="'\eqcirc '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≖')"/></xsl:call-template></xsl:when> <!--/eqcirc R: circle on equals sign --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≗')"><xsl:value-of select="'\circeq '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≗')"/></xsl:call-template></xsl:when> <!--/circeq R: circle, equals --> <!-- Required amssymb -->
|
||||
<!-- ? --> <xsl:when test="starts-with($content,'≘')"><xsl:value-of select="'\stackrel{\frown}{=}'" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≘')"/></xsl:call-template></xsl:when>
|
||||
<!-- ? --> <xsl:when test="starts-with($content,'≙')"><xsl:value-of select="'\stackrel{\wedge}{=}'" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≙')"/></xsl:call-template></xsl:when> <!--/wedgeq R: corresponds to (wedge, equals) -->
|
||||
<!-- ? --> <xsl:when test="starts-with($content,'≚')"><xsl:value-of select="'\stackrel{\vee}{=}'" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≚')"/></xsl:call-template></xsl:when> <!--logical or, equals -->
|
||||
<!-- ? --> <xsl:when test="starts-with($content,'≛')"><xsl:value-of select="'\stackrel{\star}{=}'" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≛')"/></xsl:call-template></xsl:when> <!--equal, asterisk above -->
|
||||
<xsl:when test="starts-with($content,'≜')"><xsl:value-of select="'\triangleq '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≜')"/></xsl:call-template></xsl:when> <!--/triangleq R: triangle, equals --> <!-- Required amssymb -->
|
||||
<!-- ? --> <xsl:when test="starts-with($content,'≝')"><xsl:value-of select="'\stackrel{\scriptscriptstyle\mathrm{def}}{=}'" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≝')"/></xsl:call-template></xsl:when>
|
||||
<!-- ? --> <xsl:when test="starts-with($content,'≞')"><xsl:value-of select="'\stackrel{\scriptscriptstyle\mathrm{m}}{=}'" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≞')"/></xsl:call-template></xsl:when>
|
||||
<!-- ? --> <xsl:when test="starts-with($content,'≟')"><xsl:value-of select="'\stackrel{?}{=}'" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≟')"/></xsl:call-template></xsl:when> <!--/questeq R: equal with questionmark -->
|
||||
<!-- <xsl:when test="starts-with($content,'≠︀')"><xsl:value-of select="' '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≠︀')"/></xsl:call-template></xsl:when> not equal, dot -->
|
||||
<xsl:when test="starts-with($content,'≠')"><xsl:value-of select="'\ne '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≠')"/></xsl:call-template></xsl:when> <!--/ne /neq R: not equal -->
|
||||
<!-- <xsl:when test="starts-with($content,'≡⃥')"><xsl:value-of select="' '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≡⃥')"/></xsl:call-template></xsl:when> reverse not equivalent -->
|
||||
<xsl:when test="starts-with($content,'≡')"><xsl:value-of select="'\equiv '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≡')"/></xsl:call-template></xsl:when> <!--/equiv R: identical with -->
|
||||
<xsl:when test="starts-with($content,'≢')"><xsl:value-of select="'\not\equiv '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≢')"/></xsl:call-template></xsl:when> <!--/nequiv N: not identical with -->
|
||||
<!-- <xsl:when test="starts-with($content,'≣')"><xsl:value-of select="' '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≣')"/></xsl:call-template></xsl:when> -->
|
||||
<xsl:when test="starts-with($content,'≤')"><xsl:value-of select="'\le '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≤')"/></xsl:call-template></xsl:when> <!--/leq /le R: less-than-or-equal -->
|
||||
<xsl:when test="starts-with($content,'≥')"><xsl:value-of select="'\ge '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≥')"/></xsl:call-template></xsl:when> <!--/geq /ge R: greater-than-or-equal -->
|
||||
<xsl:when test="starts-with($content,'≦')"><xsl:value-of select="'\leqq '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≦')"/></xsl:call-template></xsl:when> <!--/leqq R: less, double equals --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≧')"><xsl:value-of select="'\geqq '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≧')"/></xsl:call-template></xsl:when> <!--/geqq R: greater, double equals --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≨')"><xsl:value-of select="'\lneqq '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≨')"/></xsl:call-template></xsl:when> <!--/lneqq N: less, not double equals --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≩')"><xsl:value-of select="'\gneqq '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≩')"/></xsl:call-template></xsl:when> <!--/gneqq N: greater, not dbl equals --> <!-- Required amssymb -->
|
||||
<!-- <xsl:when test="starts-with($content,'≪̸︀')"><xsl:value-of select="' '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≪̸︀')"/></xsl:call-template></xsl:when> not much less than, variant -->
|
||||
<!-- <xsl:when test="starts-with($content,'≪̸')"><xsl:value-of select="' '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≪̸')"/></xsl:call-template></xsl:when> not, vert, much less than -->
|
||||
<xsl:when test="starts-with($content,'≪')"><xsl:value-of select="'\ll '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≪')"/></xsl:call-template></xsl:when> <!--/ll R: double less-than sign -->
|
||||
<!-- <xsl:when test="starts-with($content,'≫̸︀')"><xsl:value-of select="' '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≫̸︀')"/></xsl:call-template></xsl:when> not much greater than, variant -->
|
||||
<!-- <xsl:when test="starts-with($content,'≫̸')"><xsl:value-of select="' '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≫̸')"/></xsl:call-template></xsl:when> not, vert, much greater than -->
|
||||
<xsl:when test="starts-with($content,'≫')"><xsl:value-of select="'\gg '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≫')"/></xsl:call-template></xsl:when> <!--/gg R: dbl greater-than sign -->
|
||||
<xsl:when test="starts-with($content,'≬')"><xsl:value-of select="'\between '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≬')"/></xsl:call-template></xsl:when> <!--/between R: between --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≭')"><xsl:value-of select="'\not\asymp '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≭')"/></xsl:call-template></xsl:when>
|
||||
<xsl:when test="starts-with($content,'≮')"><xsl:value-of select="'\nless '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≮')"/></xsl:call-template></xsl:when> <!--/nless N: not less-than --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≯')"><xsl:value-of select="'\ngtr '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≯')"/></xsl:call-template></xsl:when> <!--/ngtr N: not greater-than --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≰⃥')"><xsl:value-of select="'\nleq '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≰⃥')"/></xsl:call-template></xsl:when> <!--/nleq N: not less-than-or-equal --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≰')"><xsl:value-of select="'\nleqq '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≰')"/></xsl:call-template></xsl:when> <!--/nleqq N: not less, dbl equals --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≱⃥')"><xsl:value-of select="'\ngeq '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≱⃥')"/></xsl:call-template></xsl:when> <!--/ngeq N: not greater-than-or-equal --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≱')"><xsl:value-of select="'\ngeqq '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≱')"/></xsl:call-template></xsl:when> <!--/ngeqq N: not greater, dbl equals --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≲')"><xsl:value-of select="'\lesssim '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≲')"/></xsl:call-template></xsl:when> <!--/lesssim R: less, similar --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≳')"><xsl:value-of select="'\gtrsim '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≳')"/></xsl:call-template></xsl:when> <!--/gtrsim R: greater, similar --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≴')"><xsl:value-of select="'\not\lesssim '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≴')"/></xsl:call-template></xsl:when> <!--not less, similar --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≵')"><xsl:value-of select="'\not\gtrsim '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≵')"/></xsl:call-template></xsl:when> <!--not greater, similar --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≶')"><xsl:value-of select="'\lessgtr '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≶')"/></xsl:call-template></xsl:when> <!--/lessgtr R: less, greater --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≷')"><xsl:value-of select="'\gtrless '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≷')"/></xsl:call-template></xsl:when> <!--/gtrless R: greater, less --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≸')"><xsl:value-of select="'\not\lessgtr '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≸')"/></xsl:call-template></xsl:when> <!--not less, greater --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≹')"><xsl:value-of select="'\not\gtrless '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≹')"/></xsl:call-template></xsl:when> <!--not greater, less --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≺')"><xsl:value-of select="'\prec '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≺')"/></xsl:call-template></xsl:when> <!--/prec R: precedes -->
|
||||
<xsl:when test="starts-with($content,'≻')"><xsl:value-of select="'\succ '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≻')"/></xsl:call-template></xsl:when> <!--/succ R: succeeds -->
|
||||
<xsl:when test="starts-with($content,'≼')"><xsl:value-of select="'\preccurlyeq '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≼')"/></xsl:call-template></xsl:when> <!--/preccurlyeq R: precedes, curly eq --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≽')"><xsl:value-of select="'\succcurlyeq '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≽')"/></xsl:call-template></xsl:when> <!--/succcurlyeq R: succeeds, curly eq --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≾')"><xsl:value-of select="'\precsim '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≾')"/></xsl:call-template></xsl:when> <!--/precsim R: precedes, similar --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'≿')"><xsl:value-of select="'\succsim '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '≿')"/></xsl:call-template></xsl:when> <!--/succsim R: succeeds, similar --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'⊀')"><xsl:value-of select="'\nprec '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⊀')"/></xsl:call-template></xsl:when> <!--/nprec N: not precedes --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'⊁')"><xsl:value-of select="'\nsucc '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⊁')"/></xsl:call-template></xsl:when> <!--/nsucc N: not succeeds --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'⊂')"><xsl:value-of select="'\subset '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⊂')"/></xsl:call-template></xsl:when> <!--/subset R: subset or is implied by -->
|
||||
<xsl:when test="starts-with($content,'⊃')"><xsl:value-of select="'\supset '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⊃')"/></xsl:call-template></xsl:when> <!--/supset R: superset or implies -->
|
||||
<xsl:when test="starts-with($content,'⊄')"><xsl:value-of select="'\not\subset '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⊄')"/></xsl:call-template></xsl:when> <!--not subset -->
|
||||
<xsl:when test="starts-with($content,'⊅')"><xsl:value-of select="'\not\supset '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⊅')"/></xsl:call-template></xsl:when> <!--not superset -->
|
||||
<xsl:when test="starts-with($content,'⊆')"><xsl:value-of select="'\subseteq '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⊆')"/></xsl:call-template></xsl:when> <!--/subseteq R: subset, equals -->
|
||||
<xsl:when test="starts-with($content,'⊇')"><xsl:value-of select="'\supseteq '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⊇')"/></xsl:call-template></xsl:when> <!--/supseteq R: superset, equals -->
|
||||
<xsl:when test="starts-with($content,'⊎')"><xsl:value-of select="'\uplus '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⊎')"/></xsl:call-template></xsl:when> <!--/uplus B: plus sign in union -->
|
||||
<xsl:when test="starts-with($content,'⊓')"><xsl:value-of select="'\sqcap '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⊓')"/></xsl:call-template></xsl:when> <!--/sqcap B: square intersection -->
|
||||
<xsl:when test="starts-with($content,'⊔')"><xsl:value-of select="'\bigsqcup '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⊔')"/></xsl:call-template></xsl:when> <!--/sqcup B: square union -->
|
||||
<xsl:when test="starts-with($content,'⊕')"><xsl:value-of select="'\oplus '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⊕')"/></xsl:call-template></xsl:when> <!--/oplus B: plus sign in circle -->
|
||||
<xsl:when test="starts-with($content,'⊖')"><xsl:value-of select="'\ominus '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⊖')"/></xsl:call-template></xsl:when> <!--/ominus B: minus sign in circle -->
|
||||
<xsl:when test="starts-with($content,'⊗')"><xsl:value-of select="'\otimes '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⊗')"/></xsl:call-template></xsl:when> <!--/otimes B: multiply sign in circle -->
|
||||
<xsl:when test="starts-with($content,'⊘')"><xsl:value-of select="'\oslash '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⊘')"/></xsl:call-template></xsl:when> <!--/oslash B: solidus in circle -->
|
||||
<!-- ? --> <xsl:when test="starts-with($content,'⊙')"><xsl:value-of select="'\odot '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⊙')"/></xsl:call-template></xsl:when> <!--/odot B: middle dot in circle --> <!--/bigodot L: circle dot operator -->
|
||||
<xsl:when test="starts-with($content,'⊟')"><xsl:value-of select="'\boxminus '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⊟')"/></xsl:call-template></xsl:when> <!--/boxminus B: minus sign in box --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'⊤')"><xsl:value-of select="'\top '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⊤')"/></xsl:call-template></xsl:when> <!--/top top -->
|
||||
<xsl:when test="starts-with($content,'⊥')"><xsl:value-of select="'\perp '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⊥')"/></xsl:call-template></xsl:when> <!--/perp R: perpendicular --><!--/bot bottom -->
|
||||
<xsl:when test="starts-with($content,'⊦')"><xsl:value-of select="'\vdash '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⊦')"/></xsl:call-template></xsl:when> <!--/vdash R: vertical, dash -->
|
||||
<xsl:when test="starts-with($content,'⊧')"><xsl:value-of select="'\vDash '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⊧')"/></xsl:call-template></xsl:when> <!--/vDash R: vertical, dbl dash --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'⊨')"><xsl:value-of select="'\models '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⊨')"/></xsl:call-template></xsl:when> <!--/models R: -->
|
||||
<xsl:when test="starts-with($content,'⊪')"><xsl:value-of select="'\Vvdash '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⊪')"/></xsl:call-template></xsl:when> <!--/Vvdash R: triple vertical, dash --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'⋀')"><xsl:value-of select="'\bigwedge '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⋀')"/></xsl:call-template></xsl:when> <!--/bigwedge L: logical or operator -->
|
||||
<xsl:when test="starts-with($content,'⋁')"><xsl:value-of select="'\bigvee '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⋁')"/></xsl:call-template></xsl:when> <!--/bigcap L: intersection operator -->
|
||||
<xsl:when test="starts-with($content,'⋂')"><xsl:value-of select="'\bigcap '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⋂')"/></xsl:call-template></xsl:when> <!--/bigvee L: logical and operator -->
|
||||
<xsl:when test="starts-with($content,'⋃')"><xsl:value-of select="'\bigcup '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⋃')"/></xsl:call-template></xsl:when> <!--/bigcup L: union operator -->
|
||||
<xsl:when test="starts-with($content,'⋄')"><xsl:value-of select="'\diamond '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⋄')"/></xsl:call-template></xsl:when> <!--/diamond B: open diamond -->
|
||||
<xsl:when test="starts-with($content,'⋅')"><xsl:value-of select="'\cdot '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⋅')"/></xsl:call-template></xsl:when> <!--/cdot B: small middle dot -->
|
||||
<xsl:when test="starts-with($content,'⋆')"><xsl:value-of select="'\star '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⋆')"/></xsl:call-template></xsl:when> <!--/star B: small star, filled -->
|
||||
<xsl:when test="starts-with($content,'⋇')"><xsl:value-of select="'\divideontimes '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⋇')"/></xsl:call-template></xsl:when> <!--/divideontimes B: division on times --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'⋈')"><xsl:value-of select="'\bowtie '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⋈')"/></xsl:call-template></xsl:when> <!--/bowtie R: -->
|
||||
<xsl:when test="starts-with($content,'⋍')"><xsl:value-of select="'\backsimeq '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⋍')"/></xsl:call-template></xsl:when> <!--/backsimeq R: reverse similar, eq --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'⋯')"><xsl:value-of select="'\cdots '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⋯')"/></xsl:call-template></xsl:when> <!--/cdots, three dots, centered -->
|
||||
<!-- <xsl:when test="starts-with($content,'⋰')"><xsl:value-of select="' '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⋰')"/></xsl:call-template></xsl:when> three dots, ascending -->
|
||||
<xsl:when test="starts-with($content,'⋱')"><xsl:value-of select="'\ddots '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '⋱')"/></xsl:call-template></xsl:when> <!--/ddots, three dots, descending -->
|
||||
|
||||
<!-- ====================================================================== -->
|
||||
<xsl:when test="starts-with($content,'□')"><xsl:value-of select="'\square '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '□')"/></xsl:call-template></xsl:when> <!--/square, square --> <!-- Required amssymb -->
|
||||
<xsl:when test="starts-with($content,'▪')"><xsl:value-of select="'\blacksquare '" /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '▪')"/></xsl:call-template></xsl:when> <!--/blacksquare, square, filled --> <!-- Required amssymb -->
|
||||
|
||||
<xsl:when test='starts-with($content,"'")'><xsl:value-of select='"\text{'}"' /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select='substring-after($content, "'")'/></xsl:call-template></xsl:when><!-- \text required amslatex -->
|
||||
<xsl:when test='starts-with($content,"(")'><xsl:value-of select='"\left("' /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '(')"/></xsl:call-template></xsl:when>
|
||||
<xsl:when test='starts-with($content,")")'><xsl:value-of select='"\right)"' /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, ')')"/></xsl:call-template></xsl:when>
|
||||
<xsl:when test='starts-with($content,"[")'><xsl:value-of select='"\left["' /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '[')"/></xsl:call-template></xsl:when>
|
||||
<xsl:when test='starts-with($content,"]")'><xsl:value-of select='"\right]"' /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, ']')"/></xsl:call-template></xsl:when>
|
||||
<xsl:when test='starts-with($content,"{")'><xsl:value-of select='"\left\{"' /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '{')"/></xsl:call-template></xsl:when>
|
||||
<xsl:when test='starts-with($content,"}")'><xsl:value-of select='"\right\}"' /><xsl:call-template name="replaceEntities"><xsl:with-param name="content" select="substring-after($content, '}')"/></xsl:call-template></xsl:when>
|
||||
|
||||
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="substring($content,1,1)"/>
|
||||
<xsl:call-template name="replaceEntities">
|
||||
<xsl:with-param name="content" select="substring($content, 2)"/>
|
||||
</xsl:call-template>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose></xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="replaceMtextEntities">
|
||||
<xsl:param name="content"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="contains($content,'   ')"> <!-- ThickSpace - space of width 5/18 em -->
|
||||
<xsl:call-template name="replaceMtextEntities">
|
||||
<xsl:with-param name="content" select="concat(substring-before($content,'   '),'\hspace{0.28em}',substring-after($content,'   '))"/>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:when test="contains($content,' ')"> <!-- ThinSpace - space of width 3/18 em -->
|
||||
<xsl:call-template name="replaceMtextEntities">
|
||||
<xsl:with-param name="content" select="concat(substring-before($content,' '),'\hspace{0.17em}',substring-after($content,' '))"/>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="normalize-space($content)"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
@@ -1,220 +0,0 @@
|
||||
<?xml version='1.0' encoding="UTF-8"?>
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:m="http://www.w3.org/1998/Math/MathML"
|
||||
version='1.0'>
|
||||
|
||||
<!-- ====================================================================== -->
|
||||
<!-- $id: glayout.xsl, 2002/17/05 Exp $
|
||||
This file is part of the XSLT MathML Library distribution.
|
||||
See ./README or http://www.raleigh.ru/MathML/mmltex for
|
||||
copyright and other information -->
|
||||
<!-- ====================================================================== -->
|
||||
|
||||
<xsl:template match="m:mfrac">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@bevelled='true'">
|
||||
<!-- <xsl:text>\raisebox{1ex}{</xsl:text>
|
||||
<xsl:apply-templates select="./*[1]"/>
|
||||
<xsl:text>}\!\left/ \!\raisebox{-1ex}{</xsl:text>
|
||||
<xsl:apply-templates select="./*[2]"/>
|
||||
<xsl:text>}\right.</xsl:text>-->
|
||||
</xsl:when>
|
||||
<xsl:when test="@linethickness">
|
||||
<xsl:text>\genfrac{}{}{</xsl:text>
|
||||
<xsl:choose>
|
||||
<xsl:when test="number(@linethickness)">
|
||||
<xsl:value-of select="@linethickness div 10"/>
|
||||
<xsl:text>ex</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="@linethickness='thin'">
|
||||
<xsl:text>.05ex</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="@linethickness='medium'"/>
|
||||
<xsl:when test="@linethickness='thick'">
|
||||
<xsl:text>.2ex</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="@linethickness"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:text>}{}{</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:text>\frac{</xsl:text>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:if test="@numalign='right'">
|
||||
<xsl:text>\hfill </xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:apply-templates select="./*[1]"/>
|
||||
<xsl:if test="@numalign='left'">
|
||||
<xsl:text>\hfill </xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:text>}{</xsl:text>
|
||||
<xsl:if test="@denomalign='right'">
|
||||
<xsl:text>\hfill </xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:apply-templates select="./*[2]"/>
|
||||
<xsl:if test="@denomalign='left'">
|
||||
<xsl:text>\hfill </xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="m:mroot">
|
||||
<xsl:choose>
|
||||
<xsl:when test="count(./*)=2">
|
||||
<xsl:text>\sqrt[</xsl:text>
|
||||
<xsl:apply-templates select="./*[2]"/>
|
||||
<xsl:text>]{</xsl:text>
|
||||
<xsl:apply-templates select="./*[1]"/>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<!-- number of argumnets is not 2 - code 25 -->
|
||||
<xsl:message>exception 25:</xsl:message>
|
||||
<xsl:text>\text{exception 25:}</xsl:text>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="m:msqrt">
|
||||
<xsl:text>\sqrt{</xsl:text>
|
||||
<xsl:apply-templates/>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="m:mfenced">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@open">
|
||||
<xsl:if test="translate(@open,'{}[]()|','{{{{{{{')='{'">
|
||||
<xsl:text>\left</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="@open='{' or @open='}'">
|
||||
<xsl:text>\</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:value-of select="@open"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise><xsl:text>\left(</xsl:text></xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:choose>
|
||||
<xsl:when test="count(./*)>1">
|
||||
<xsl:variable name="symbol">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@separators">
|
||||
<xsl:call-template name="startspace">
|
||||
<xsl:with-param name="symbol" select="@separators"/>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>,</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:for-each select="./*">
|
||||
<xsl:apply-templates select="."/>
|
||||
<xsl:if test="not(position()=last())">
|
||||
<xsl:choose>
|
||||
<xsl:when test="position()>string-length($symbol)">
|
||||
<xsl:value-of select="substring($symbol,string-length($symbol))"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="substring($symbol,position(),1)"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:apply-templates/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:choose>
|
||||
<xsl:when test="@close">
|
||||
<xsl:if test="translate(@open,'{}[]()|','{{{{{{{')='{'">
|
||||
<xsl:text>\right</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="@open='{' or @open='}'">
|
||||
<xsl:text>\</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:value-of select="@close"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise><xsl:text>\right)</xsl:text></xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="m:mphantom">
|
||||
<xsl:text>\phantom{</xsl:text>
|
||||
<xsl:apply-templates/>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="m:menclose">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@notation = 'actuarial'">
|
||||
<xsl:text>\overline{</xsl:text>
|
||||
<xsl:apply-templates/>
|
||||
<xsl:text>\hspace{.2em}|}</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="@notation = 'radical'">
|
||||
<xsl:text>\sqrt{</xsl:text>
|
||||
<xsl:apply-templates/>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:text>\overline{)</xsl:text>
|
||||
<xsl:apply-templates/>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="m:mrow">
|
||||
<xsl:apply-templates/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="m:mstyle">
|
||||
<xsl:if test="@background">
|
||||
<xsl:text>\colorbox[rgb]{</xsl:text>
|
||||
<xsl:call-template name="color">
|
||||
<xsl:with-param name="color" select="@background"/>
|
||||
</xsl:call-template>
|
||||
<xsl:text>}{$</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="@color">
|
||||
<xsl:text>\textcolor[rgb]{</xsl:text>
|
||||
<xsl:call-template name="color">
|
||||
<xsl:with-param name="color" select="@color"/>
|
||||
</xsl:call-template>
|
||||
<xsl:text>}{</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:apply-templates/>
|
||||
<xsl:if test="@color">
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="@background">
|
||||
<xsl:text>$}</xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
<!--
|
||||
|
||||
<xsl:template match="m:mstyle">
|
||||
<xsl:if test="@displaystyle='true'">
|
||||
<xsl:text>{\displaystyle</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="@scriptlevel=2">
|
||||
<xsl:text>{\scriptscriptstyle</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:apply-templates/>
|
||||
<xsl:if test="@scriptlevel=2">
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="@displaystyle='true'">
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
-->
|
||||
|
||||
<xsl:template match="m:merror">
|
||||
<xsl:apply-templates/>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
@@ -1,45 +0,0 @@
|
||||
<?xml version='1.0' encoding="UTF-8"?>
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:m="http://www.w3.org/1998/Math/MathML"
|
||||
version='1.0'>
|
||||
|
||||
<xsl:output method="text" indent="no" encoding="UTF-8"/>
|
||||
|
||||
<!-- ====================================================================== -->
|
||||
<!-- $id: mmltex.xsl, 2002/22/11 Exp $
|
||||
This file is part of the XSLT MathML Library distribution.
|
||||
See ./README or http://www.raleigh.ru/MathML/mmltex for
|
||||
copyright and other information -->
|
||||
<!-- ====================================================================== -->
|
||||
|
||||
<xsl:include href="tokens.xsl"/>
|
||||
<xsl:include href="glayout.xsl"/>
|
||||
<xsl:include href="scripts.xsl"/>
|
||||
<xsl:include href="tables.xsl"/>
|
||||
<xsl:include href="entities.xsl"/>
|
||||
<xsl:include href="cmarkup.xsl"/>
|
||||
|
||||
<!-- Note: variables colora (template color) and symbola (template startspace) only for Sablotron -->
|
||||
|
||||
<xsl:template name="startspace">
|
||||
<xsl:param name="symbol"/>
|
||||
<xsl:if test="contains($symbol,' ')">
|
||||
<xsl:variable name="symbola" select="concat(substring-before($symbol,' '),substring-after($symbol,' '))"/>
|
||||
<xsl:call-template name="startspace">
|
||||
<xsl:with-param name="symbol" select="$symbola"/>
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
<xsl:if test="not(contains($symbol,' '))">
|
||||
<xsl:value-of select="$symbol"/>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:strip-space elements="m:*"/>
|
||||
|
||||
<xsl:template match="m:math">
|
||||
<xsl:text>$</xsl:text>
|
||||
<xsl:apply-templates/>
|
||||
<xsl:text>$</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
@@ -1,292 +0,0 @@
|
||||
<?xml version='1.0' encoding="UTF-8"?>
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:m="http://www.w3.org/1998/Math/MathML"
|
||||
version='1.0'>
|
||||
|
||||
<!-- ====================================================================== -->
|
||||
<!-- $Id: scripts.xsl,v 1.1.1.1 2002/10/26 14:20:06 shade33 Exp $
|
||||
This file is part of the XSLT MathML Library distribution.
|
||||
See ./README or http://www.raleigh.ru/MathML/mmltex for
|
||||
copyright and other information -->
|
||||
<!-- ====================================================================== -->
|
||||
|
||||
<xsl:template match="m:munderover">
|
||||
<xsl:variable name="base">
|
||||
<xsl:call-template name="startspace">
|
||||
<xsl:with-param name="symbol" select="./*[1]"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="under">
|
||||
<xsl:call-template name="startspace">
|
||||
<xsl:with-param name="symbol" select="./*[2]"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="over">
|
||||
<xsl:call-template name="startspace">
|
||||
<xsl:with-param name="symbol" select="./*[3]"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
|
||||
<xsl:choose>
|
||||
<xsl:when test="$over='¯'"> <!-- OverBar - over bar -->
|
||||
<xsl:text>\overline{</xsl:text>
|
||||
<xsl:call-template name="munder">
|
||||
<xsl:with-param name="base" select="$base"/>
|
||||
<xsl:with-param name="under" select="$under"/>
|
||||
</xsl:call-template>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$over='︷'"> <!-- OverBrace - over brace -->
|
||||
<xsl:text>\overbrace{</xsl:text>
|
||||
<xsl:call-template name="munder">
|
||||
<xsl:with-param name="base" select="$base"/>
|
||||
<xsl:with-param name="under" select="$under"/>
|
||||
</xsl:call-template>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$under='̲'"> <!-- UnderBar - combining low line -->
|
||||
<xsl:text>\underline{</xsl:text>
|
||||
<xsl:call-template name="mover">
|
||||
<xsl:with-param name="base" select="$base"/>
|
||||
<xsl:with-param name="over" select="$over"/>
|
||||
<xsl:with-param name="pos_over" select="3"/>
|
||||
</xsl:call-template>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$under='︸'"> <!-- UnderBrace - under brace -->
|
||||
<xsl:text>\underbrace{</xsl:text>
|
||||
<xsl:call-template name="mover">
|
||||
<xsl:with-param name="base" select="$base"/>
|
||||
<xsl:with-param name="over" select="$over"/>
|
||||
<xsl:with-param name="pos_over" select="3"/>
|
||||
</xsl:call-template>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="translate($base,'∏∐⋂⋃⊔',
|
||||
'∑∑∑∑∑')='∑'">
|
||||
<!-- if $base is operator, such as
|
||||
∑ /sum L: summation operator
|
||||
∏ /prod L: product operator
|
||||
∐ /coprod L: coproduct operator
|
||||
⋂ /bigcap
|
||||
⋃ /bigcup
|
||||
⊔ /bigsqcup
|
||||
-->
|
||||
<xsl:apply-templates select="./*[1]"/>
|
||||
<xsl:text>_{</xsl:text>
|
||||
<xsl:apply-templates select="./*[2]"/>
|
||||
<xsl:text>}^{</xsl:text>
|
||||
<xsl:apply-templates select="./*[3]"/>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:text>\underset{</xsl:text>
|
||||
<xsl:apply-templates select="./*[2]"/>
|
||||
<xsl:text>}{\overset{</xsl:text>
|
||||
<xsl:apply-templates select="./*[3]"/>
|
||||
<xsl:text>}{</xsl:text>
|
||||
<xsl:apply-templates select="./*[1]"/>
|
||||
<xsl:text>}}</xsl:text>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="m:mover">
|
||||
<xsl:call-template name="mover">
|
||||
<xsl:with-param name="base">
|
||||
<xsl:call-template name="startspace">
|
||||
<xsl:with-param name="symbol" select="./*[1]"/>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
<xsl:with-param name="over">
|
||||
<xsl:call-template name="startspace">
|
||||
<xsl:with-param name="symbol" select="./*[2]"/>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="m:munder">
|
||||
<xsl:call-template name="munder">
|
||||
<xsl:with-param name="base">
|
||||
<xsl:call-template name="startspace">
|
||||
<xsl:with-param name="symbol" select="./*[1]"/>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
<xsl:with-param name="under">
|
||||
<xsl:call-template name="startspace">
|
||||
<xsl:with-param name="symbol" select="./*[2]"/>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="mover">
|
||||
<xsl:param name="base"/>
|
||||
<xsl:param name="over"/>
|
||||
<xsl:param name="pos_over" select="2"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="$over='¯'"> <!-- OverBar - over bar -->
|
||||
<xsl:text>\overline{</xsl:text>
|
||||
<xsl:apply-templates select="./*[1]"/>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$over='︷'"> <!-- OverBrace - over brace -->
|
||||
<xsl:text>\overbrace{</xsl:text>
|
||||
<xsl:apply-templates select="./*[1]"/>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="translate($base,'∏∐⋂⋃⊔',
|
||||
'∑∑∑∑∑')='∑'">
|
||||
<!-- if $base is operator, such as
|
||||
∑ /sum L: summation operator
|
||||
∏ /prod L: product operator
|
||||
∐ /coprod L: coproduct operator
|
||||
⋂ /bigcap
|
||||
⋃ /bigcup
|
||||
⊔ /bigsqcup
|
||||
-->
|
||||
<xsl:apply-templates select="./*[1]"/>
|
||||
<xsl:text>^{</xsl:text>
|
||||
<xsl:apply-templates select="./*[$pos_over]"/>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:text>\stackrel{</xsl:text>
|
||||
<xsl:apply-templates select="./*[$pos_over]"/>
|
||||
<xsl:text>}{</xsl:text>
|
||||
<xsl:apply-templates select="./*[1]"/>
|
||||
<xsl:text>}</xsl:text>
|
||||
<!--
|
||||
<xsl:text>\overset{</xsl:text>
|
||||
<xsl:apply-templates select="./*[$pos_over]"/>
|
||||
<xsl:text>}{</xsl:text>
|
||||
<xsl:apply-templates select="./*[1]"/>
|
||||
<xsl:text>}</xsl:text>-->
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="munder">
|
||||
<xsl:param name="base"/>
|
||||
<xsl:param name="under"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="$under='̲'"> <!-- UnderBar - combining low line -->
|
||||
<xsl:text>\underline{</xsl:text>
|
||||
<xsl:apply-templates select="./*[1]"/>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$under='︸'"> <!-- UnderBrace - under brace -->
|
||||
<xsl:text>\underbrace{</xsl:text>
|
||||
<xsl:apply-templates select="./*[1]"/>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="translate($base,'∏∐⋂⋃⊔',
|
||||
'∑∑∑∑∑')='∑'">
|
||||
<!-- if $base is operator, such as
|
||||
∑ /sum L: summation operator
|
||||
∏ /prod L: product operator
|
||||
∐ /coprod L: coproduct operator
|
||||
⋂ /bigcap
|
||||
⋃ /bigcup
|
||||
⊔ /bigsqcup
|
||||
-->
|
||||
<xsl:apply-templates select="./*[1]"/>
|
||||
<xsl:text>_{</xsl:text>
|
||||
<xsl:apply-templates select="./*[2]"/>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:text>\underset{</xsl:text> <!-- Required AmsMath package -->
|
||||
<xsl:apply-templates select="./*[2]"/>
|
||||
<xsl:text>}{</xsl:text>
|
||||
<xsl:apply-templates select="./*[1]"/>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="m:msubsup">
|
||||
<xsl:text>{</xsl:text>
|
||||
<xsl:apply-templates select="./*[1]"/>
|
||||
<xsl:text>}_{</xsl:text>
|
||||
<xsl:apply-templates select="./*[2]"/>
|
||||
<xsl:text>}^{</xsl:text>
|
||||
<xsl:apply-templates select="./*[3]"/>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="m:msup">
|
||||
<xsl:text>{</xsl:text>
|
||||
<xsl:apply-templates select="./*[1]"/>
|
||||
<xsl:text>}^{</xsl:text>
|
||||
<xsl:apply-templates select="./*[2]"/>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="m:msub">
|
||||
<xsl:text>{</xsl:text>
|
||||
<xsl:apply-templates select="./*[1]"/>
|
||||
<xsl:text>}_{</xsl:text>
|
||||
<xsl:apply-templates select="./*[2]"/>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="m:mmultiscripts" mode="mprescripts">
|
||||
<xsl:for-each select="m:mprescripts/following-sibling::*">
|
||||
<xsl:if test="position() mod 2 and local-name(.)!='none'">
|
||||
<xsl:text>{}_{</xsl:text>
|
||||
<xsl:apply-templates select="."/>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="not(position() mod 2) and local-name(.)!='none'">
|
||||
<xsl:text>{}^{</xsl:text>
|
||||
<xsl:apply-templates select="."/>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
<xsl:apply-templates select="./*[1]"/>
|
||||
<xsl:for-each select="m:mprescripts/preceding-sibling::*[position()!=last()]">
|
||||
<xsl:if test="position()>2 and local-name(.)!='none'">
|
||||
<xsl:text>{}</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="position() mod 2 and local-name(.)!='none'">
|
||||
<xsl:text>_{</xsl:text>
|
||||
<xsl:apply-templates select="."/>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="not(position() mod 2) and local-name(.)!='none'">
|
||||
<xsl:text>^{</xsl:text>
|
||||
<xsl:apply-templates select="."/>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="m:mmultiscripts">
|
||||
<xsl:choose>
|
||||
<xsl:when test="m:mprescripts">
|
||||
<xsl:apply-templates select="." mode="mprescripts"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:apply-templates select="./*[1]"/>
|
||||
<xsl:for-each select="*[position()>1]">
|
||||
<xsl:if test="position()>2 and local-name(.)!='none'">
|
||||
<xsl:text>{}</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="position() mod 2 and local-name(.)!='none'">
|
||||
<xsl:text>_{</xsl:text>
|
||||
<xsl:apply-templates select="."/>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="not(position() mod 2) and local-name(.)!='none'">
|
||||
<xsl:text>^{</xsl:text>
|
||||
<xsl:apply-templates select="."/>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
@@ -1,130 +0,0 @@
|
||||
<?xml version='1.0' encoding="UTF-8"?>
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:m="http://www.w3.org/1998/Math/MathML"
|
||||
version='1.0'>
|
||||
|
||||
<!-- ====================================================================== -->
|
||||
<!-- $id: tables.xsl, 2002/17/05 Exp $
|
||||
This file is part of the XSLT MathML Library distribution.
|
||||
See ./README or http://www.raleigh.ru/MathML/mmltex for
|
||||
copyright and other information -->
|
||||
<!-- ====================================================================== -->
|
||||
|
||||
<xsl:template match="m:mtd[@columnspan]">
|
||||
<xsl:text>\multicolumn{</xsl:text>
|
||||
<xsl:value-of select="@columnspan"/>
|
||||
<xsl:text>}{c}{</xsl:text>
|
||||
<xsl:apply-templates/>
|
||||
<xsl:text>}</xsl:text>
|
||||
<xsl:if test="count(following-sibling::*)>0">
|
||||
<xsl:text>& </xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
|
||||
<xsl:template match="m:mtd">
|
||||
<xsl:if test="@columnalign='right' or @columnalign='center'">
|
||||
<xsl:text>\hfill </xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:apply-templates/>
|
||||
<xsl:if test="@columnalign='left' or @columnalign='center'">
|
||||
<xsl:text>\hfill </xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="count(following-sibling::*)>0">
|
||||
<!-- this test valid for Sablotron, another form - test="not(position()=last())".
|
||||
Also for m:mtd[@columnspan] and m:mtr -->
|
||||
<xsl:text>& </xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="m:mtr">
|
||||
<xsl:apply-templates/>
|
||||
<xsl:if test="count(following-sibling::*)>0">
|
||||
<xsl:text>\\ </xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="m:mtable">
|
||||
<xsl:text>\begin{array}{</xsl:text>
|
||||
<xsl:if test="@frame='solid'">
|
||||
<xsl:text>|</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:variable name="numbercols" select="count(./m:mtr[1]/m:mtd[not(@columnspan)])+sum(./m:mtr[1]/m:mtd/@columnspan)"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="@columnalign">
|
||||
<xsl:variable name="colalign">
|
||||
<xsl:call-template name="colalign">
|
||||
<xsl:with-param name="colalign" select="@columnalign"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<xsl:choose>
|
||||
<xsl:when test="string-length($colalign) > $numbercols">
|
||||
<xsl:value-of select="substring($colalign,1,$numbercols)"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="string-length($colalign) < $numbercols">
|
||||
<xsl:value-of select="$colalign"/>
|
||||
<xsl:call-template name="generate-string">
|
||||
<xsl:with-param name="text" select="substring($colalign,string-length($colalign))"/>
|
||||
<xsl:with-param name="count" select="$numbercols - string-length($colalign)"/>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="$colalign"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:call-template name="generate-string">
|
||||
<xsl:with-param name="text" select="'c'"/>
|
||||
<xsl:with-param name="count" select="$numbercols"/>
|
||||
</xsl:call-template>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:if test="@frame='solid'">
|
||||
<xsl:text>|</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:text>}</xsl:text>
|
||||
<xsl:if test="@frame='solid'">
|
||||
<xsl:text>\hline </xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:apply-templates/>
|
||||
<xsl:if test="@frame='solid'">
|
||||
<xsl:text>\\ \hline</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:text>\end{array}</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="colalign">
|
||||
<xsl:param name="colalign"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="contains($colalign,' ')">
|
||||
<xsl:value-of select="substring($colalign,1,1)"/>
|
||||
<xsl:call-template name="colalign">
|
||||
<xsl:with-param name="colalign" select="substring-after($colalign,' ')"/>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="substring($colalign,1,1)"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="generate-string">
|
||||
<!-- template from XSLT Standard Library v1.1 -->
|
||||
<xsl:param name="text"/>
|
||||
<xsl:param name="count"/>
|
||||
|
||||
<xsl:choose>
|
||||
<xsl:when test="string-length($text) = 0 or $count <= 0"/>
|
||||
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="$text"/>
|
||||
<xsl:call-template name="generate-string">
|
||||
<xsl:with-param name="text" select="$text"/>
|
||||
<xsl:with-param name="count" select="$count - 1"/>
|
||||
</xsl:call-template>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
@@ -1,296 +0,0 @@
|
||||
<?xml version='1.0' encoding="UTF-8"?>
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:m="http://www.w3.org/1998/Math/MathML"
|
||||
version='1.0'>
|
||||
|
||||
<!-- ====================================================================== -->
|
||||
<!-- $id: tokens.xsl, 2002/22/11 Exp $
|
||||
This file is part of the XSLT MathML Library distribution.
|
||||
See ./README or http://www.raleigh.ru/MathML/mmltex for
|
||||
copyright and other information -->
|
||||
<!-- ====================================================================== -->
|
||||
|
||||
<xsl:template match="m:mi|m:mn|m:mo|m:mtext|m:ms">
|
||||
<xsl:call-template name="CommonTokenAtr"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="mi">
|
||||
<xsl:choose>
|
||||
<xsl:when test="string-length(normalize-space(.))>1 and not(@mathvariant)">
|
||||
<xsl:text>\mathrm{</xsl:text>
|
||||
<xsl:apply-templates/>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:apply-templates/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="mn">
|
||||
<xsl:apply-templates/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="mo">
|
||||
<xsl:apply-templates/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="mtext">
|
||||
<xsl:variable name="content">
|
||||
<xsl:call-template name="replaceMtextEntities">
|
||||
<xsl:with-param name="content" select="."/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<xsl:text>\text{</xsl:text>
|
||||
<xsl:value-of select="$content"/>
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="m:mspace">
|
||||
<xsl:text>\phantom{\rule</xsl:text>
|
||||
<xsl:if test="@depth">
|
||||
<xsl:text>[-</xsl:text>
|
||||
<xsl:value-of select="@depth"/>
|
||||
<xsl:text>]</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:text>{</xsl:text>
|
||||
<xsl:if test="not(@width)">
|
||||
<xsl:text>0ex</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:value-of select="@width"/>
|
||||
<xsl:text>}{</xsl:text>
|
||||
<xsl:if test="not(@height)">
|
||||
<xsl:text>0ex</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:value-of select="@height"/>
|
||||
<xsl:text>}}</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="ms">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@lquote"><xsl:value-of select="@lquote"/></xsl:when>
|
||||
<xsl:otherwise><xsl:text>"</xsl:text></xsl:otherwise>
|
||||
</xsl:choose><xsl:apply-templates/><xsl:choose>
|
||||
<xsl:when test="@rquote"><xsl:value-of select="@rquote"/></xsl:when>
|
||||
<xsl:otherwise><xsl:text>"</xsl:text></xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="CommonTokenAtr">
|
||||
<xsl:if test="@mathbackground">
|
||||
<xsl:text>\colorbox[rgb]{</xsl:text>
|
||||
<xsl:call-template name="color">
|
||||
<xsl:with-param name="color" select="@mathbackground"/>
|
||||
</xsl:call-template>
|
||||
<xsl:text>}{$</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="@color or @mathcolor"> <!-- Note: @color is deprecated in MathML 2.0 -->
|
||||
<xsl:text>\textcolor[rgb]{</xsl:text>
|
||||
<xsl:call-template name="color">
|
||||
<xsl:with-param name="color" select="@color|@mathcolor"/>
|
||||
</xsl:call-template>
|
||||
<xsl:text>}{</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="@mathvariant">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@mathvariant='normal'">
|
||||
<xsl:text>\mathrm{</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="@mathvariant='bold'">
|
||||
<xsl:text>\mathbf{</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="@mathvariant='italic'">
|
||||
<xsl:text>\mathit{</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="@mathvariant='bold-italic'"> <!-- Required definition -->
|
||||
<xsl:text>\mathbit{</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="@mathvariant='double-struck'"> <!-- Required amsfonts -->
|
||||
<xsl:text>\mathbb{</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="@mathvariant='bold-fraktur'"> <!-- Error -->
|
||||
<xsl:text>{</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="@mathvariant='script'">
|
||||
<xsl:text>\mathcal{</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="@mathvariant='bold-script'"> <!-- Error -->
|
||||
<xsl:text>\mathsc{</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="@mathvariant='fraktur'"> <!-- Required amsfonts -->
|
||||
<xsl:text>\mathfrak{</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="@mathvariant='sans-serif'">
|
||||
<xsl:text>\mathsf{</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="@mathvariant='bold-sans-serif'"> <!-- Required definition -->
|
||||
<xsl:text>\mathbsf{</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="@mathvariant='sans-serif-italic'"> <!-- Required definition -->
|
||||
<xsl:text>\mathsfit{</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="@mathvariant='sans-serif-bold-italic'"> <!-- Error -->
|
||||
<xsl:text>\mathbsfit{</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="@mathvariant='monospace'">
|
||||
<xsl:text>\mathtt{</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:text>{</xsl:text>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:if>
|
||||
<xsl:call-template name="selectTemplate"/>
|
||||
<xsl:if test="@mathvariant">
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="@color or @mathcolor">
|
||||
<xsl:text>}</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="@mathbackground">
|
||||
<xsl:text>$}</xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="selectTemplate">
|
||||
<!-- <xsl:variable name="name" select="local-name()"/>
|
||||
<xsl:call-template name="{$name}"/>-->
|
||||
<xsl:choose>
|
||||
<xsl:when test="local-name(.)='mi'">
|
||||
<xsl:call-template name="mi"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="local-name(.)='mn'">
|
||||
<xsl:call-template name="mn"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="local-name(.)='mo'">
|
||||
<xsl:call-template name="mo"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="local-name(.)='mtext'">
|
||||
<xsl:call-template name="mtext"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="local-name(.)='ms'">
|
||||
<xsl:call-template name="ms"/>
|
||||
</xsl:when>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="color">
|
||||
<!-- NB: Variables colora and valueColor{n} only for Sablotron -->
|
||||
<xsl:param name="color"/>
|
||||
<xsl:variable name="colora" select="translate($color,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="starts-with($colora,'#') and string-length($colora)=4">
|
||||
<xsl:variable name="valueColor">
|
||||
<xsl:call-template name="Hex2Decimal">
|
||||
<xsl:with-param name="arg" select="substring($colora,2,1)"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<xsl:value-of select="$valueColor div 15"/><xsl:text>,</xsl:text>
|
||||
<xsl:variable name="valueColor1">
|
||||
<xsl:call-template name="Hex2Decimal">
|
||||
<xsl:with-param name="arg" select="substring($colora,3,1)"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<xsl:value-of select="$valueColor1 div 15"/><xsl:text>,</xsl:text>
|
||||
<xsl:variable name="valueColor2">
|
||||
<xsl:call-template name="Hex2Decimal">
|
||||
<xsl:with-param name="arg" select="substring($colora,4,1)"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<xsl:value-of select="$valueColor2 div 15"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="starts-with($colora,'#') and string-length($colora)=7">
|
||||
<xsl:variable name="valueColor1">
|
||||
<xsl:call-template name="Hex2Decimal">
|
||||
<xsl:with-param name="arg" select="substring($colora,2,1)"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="valueColor2">
|
||||
<xsl:call-template name="Hex2Decimal">
|
||||
<xsl:with-param name="arg" select="substring($colora,3,1)"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<xsl:value-of select="($valueColor1*16 + $valueColor2) div 255"/><xsl:text>,</xsl:text>
|
||||
<xsl:variable name="valueColor1a">
|
||||
<xsl:call-template name="Hex2Decimal">
|
||||
<xsl:with-param name="arg" select="substring($colora,4,1)"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="valueColor2a">
|
||||
<xsl:call-template name="Hex2Decimal">
|
||||
<xsl:with-param name="arg" select="substring($colora,5,1)"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<xsl:value-of select="($valueColor1a*16 + $valueColor2a) div 255"/><xsl:text>,</xsl:text>
|
||||
<xsl:variable name="valueColor1b">
|
||||
<xsl:call-template name="Hex2Decimal">
|
||||
<xsl:with-param name="arg" select="substring($colora,6,1)"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="valueColor2b">
|
||||
<xsl:call-template name="Hex2Decimal">
|
||||
<xsl:with-param name="arg" select="substring($colora,7,1)"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<xsl:value-of select="($valueColor1b*16 + $valueColor2b) div 255"/>
|
||||
</xsl:when>
|
||||
<!-- ======================= if color specifed as an html-color-name ========================================== -->
|
||||
<xsl:when test="$colora='aqua'"><xsl:text>0,1,1</xsl:text></xsl:when>
|
||||
<xsl:when test="$colora='black'"><xsl:text>0,0,0</xsl:text></xsl:when>
|
||||
<xsl:when test="$colora='blue'"><xsl:text>0,0,1</xsl:text></xsl:when>
|
||||
<xsl:when test="$colora='fuchsia'"><xsl:text>1,0,1</xsl:text></xsl:when>
|
||||
<xsl:when test="$colora='gray'"><xsl:text>.5,.5,.5</xsl:text></xsl:when>
|
||||
<xsl:when test="$colora='green'"><xsl:text>0,.5,0</xsl:text></xsl:when>
|
||||
<xsl:when test="$colora='lime'"><xsl:text>0,1,0</xsl:text></xsl:when>
|
||||
<xsl:when test="$colora='maroon'"><xsl:text>.5,0,0</xsl:text></xsl:when>
|
||||
<xsl:when test="$colora='navy'"><xsl:text>0,0,.5</xsl:text></xsl:when>
|
||||
<xsl:when test="$colora='olive'"><xsl:text>.5,.5,0</xsl:text></xsl:when>
|
||||
<xsl:when test="$colora='purple'"><xsl:text>.5,0,.5</xsl:text></xsl:when>
|
||||
<xsl:when test="$colora='red'"><xsl:text>1,0,0</xsl:text></xsl:when>
|
||||
<xsl:when test="$colora='silver'"><xsl:text>.75,.75,.75</xsl:text></xsl:when>
|
||||
<xsl:when test="$colora='teal'"><xsl:text>0,.5,.5</xsl:text></xsl:when>
|
||||
<xsl:when test="$colora='white'"><xsl:text>1,1,1</xsl:text></xsl:when>
|
||||
<xsl:when test="$colora='yellow'"><xsl:text>1,1,0</xsl:text></xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:message>Exception at color template</xsl:message>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="Hex2Decimal">
|
||||
<xsl:param name="arg"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="$arg='f'">
|
||||
<xsl:value-of select="15"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="$arg='e'">
|
||||
<xsl:value-of select="14"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="$arg='d'">
|
||||
<xsl:value-of select="13"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="$arg='c'">
|
||||
<xsl:value-of select="12"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="$arg='b'">
|
||||
<xsl:value-of select="11"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="$arg='a'">
|
||||
<xsl:value-of select="10"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="translate($arg, '0123456789', '9999999999')='9'"> <!-- if $arg is number -->
|
||||
<xsl:value-of select="$arg"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:message>Exception at Hex2Decimal template</xsl:message>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="m:*/text()">
|
||||
<xsl:call-template name="replaceEntities">
|
||||
<xsl:with-param name="content" select="normalize-space()"/>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
Reference in New Issue
Block a user