#java #math #tex
#java #математика #текс
Вопрос:
Я должен отобразить некоторые математические уравнения в приложении Java. Я скачал JEuclid, но понятия не имею, как им пользоваться, и, похоже, не могу найти ни одного хорошего руководства. Я должен отображать дроби в виде
(P R * sqrt(D))/Q
На данный момент я использую jTextArea
, и результат в основном
P: число, R: число, D: число, Q: число
Как можно представить эту дробь с помощью JEuclid? В latex я бы сделал
frac{...}{...}
но как это сделать с JEuclid?
Заранее большое вам спасибо!
Ответ №1:
Вот Java-программа для преобразования MathML в image:
import java.io.File;
import java.io.IOException;
import net.sourceforge.jeuclid.MutableLayoutContext;
import net.sourceforge.jeuclid.context.LayoutContextImpl;
import net.sourceforge.jeuclid.context.Parameter;
import net.sourceforge.jeuclid.converter.Converter;
public class MathMLToImage{
public static void main(String[] args) throws IOException {
Converter converter = Converter.getInstance();
File inputFile = new File("D:\TEMP\mathml.xml");
File outputFile = new File("D:\TEMP\image.jpg");
//params to mention the size of image
MutableLayoutContext params = new LayoutContextImpl(
LayoutContextImpl.getDefaultLayoutContext());
params.setParameter(Parameter.MATHSIZE, 50f);
converter.convert(inputFile, outputFile , "image/jpeg", params);
}
}
Вы можете использовать этот вывод изображения для отображения в вашем приложении.
Ответ №2:
Как я понимаю (из чтения веб-сайта), JEuclid — это программа, которая преобразует существующий MathML в графику. Таким образом, вам придется записать свои входные данные в MathML либо в текстовой форме, либо с помощью некоторого XML API, а затем передать это в JEuclid.
Для вашего примера это будет выглядеть примерно так (адаптировано по примеру в Википедии):
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mi>x</mi>
<mo>=</mo>
<mfrac>
<mrow>
<mi>P</mi>
<mo> </mo>
<mn>R</mn>
<mo><!-- amp;InvisibleTimes; --></mo>
<msqrt>
<mi>Q</mi>
</msqrt>
</mrow>
<mrow>
<mn>Q</mn>
</mrow>
</mfrac>
</mrow>
</math>
Вот скриншот этого документа MathML в JEuclids MathViewer:
Комментарии:
1. JEuclid также может напрямую отображать MathML в виде изображения, не требуя промежуточного файла изображения.