Java에서 LaTeX 수학 공식 및 방정식 렌더링

TeX 파일에 공식과 수학 방정식을 포함할 수 있습니다. LaTeX는 TeX 파일을 일련의 명령이 포함된 소스 문서로 사용합니다. 이러한 명령은 텍스트, 기호, 수학 표현식 및 그래픽을 포함한 문서의 형식을 지정합니다. LaTeX를 사용하지 않고 프로그래밍 방식으로 모든 종류의 방정식과 수학 공식을 작성하고 렌더링할 수 있습니다. 이 기사에서는 Java에서 LaTeX 수학 공식과 방정식을 렌더링하는 방법을 배웁니다.

이 기사에서는 다음 주제를 다룹니다.

LaTeX 수학 공식 및 방정식을 렌더링하는 Java API

LaTeX 수학 공식을 렌더링하기 위해 Aspose.TeX for Java API를 사용합니다. Math 공식을 PNG로 저장하기 위한 렌더링 옵션을 지정하기 위한 PngMathRendererOptions 클래스를 제공합니다. 마찬가지로 수학 공식을 SVG로 저장하기 위한 렌더링 옵션을 지정하기 위한 SvgMathRendererOptions 클래스도 제공합니다. 또한 수학 공식의 렌더링을 위해 MathRenderer 클래스에서 파생된 PngMathRenderer 및 SvgMathRenderer 클래스를 제공합니다. 이 클래스의 render() 메소드는 제공된 수학 공식을 렌더링합니다. 또한 API를 사용하면 TeX 파일을 PDF, XPS 또는 이미지와 같은 다양한 파일 형식으로 조판할 수 있습니다.

API의 JAR을 다운로드하거나 Maven 기반 Java 애플리케이션에서 다음 pom.xml 구성을 추가하십시오.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-tex</artifactId>
    <version>22.4</version>
    <type>jar</type>
</dependency>

Java를 사용하여 LaTeX 수학 공식을 PNG로 렌더링

다음 단계에 따라 간단한 인라인 수학 공식 또는 방정식을 렌더링할 수 있습니다.

  1. 먼저 PngMathRendererOptions 클래스의 인스턴스를 만듭니다.
  2. 그런 다음 150 DPI와 같은 이미지 해상도을 지정합니다.
  3. 그런 다음 LaTeX 문서 서문을 지정합니다.
  4. 선택적으로 Scale, TextColor, BackgroundColor 등과 같은 다양한 속성을 설정합니다.
  5. 그런 다음 수식 이미지에 대한 출력 스트림을 만듭니다.
  6. 마지막으로 render() 메서드를 호출하여 수식을 렌더링합니다. 수식 문자열, 스트림, 렌더링 옵션 및 출력 이미지 크기를 인수로 사용합니다.

다음 코드 샘플은 Java를 사용하여 프로그래밍 방식으로 수학 공식을 PNG로 렌더링하는 방법을 보여줍니다.

// 이 코드 예제는 수학 공식과 방정식을 PNG로 렌더링하는 방법을 보여줍니다.
// PNG 렌더링 옵션 만들기
PngMathRendererOptions options = new PngMathRendererOptions();

// 이미지 해상도 150dpi 지정
options.setResolution(150);

// 서문을 지정합니다.
options.setPreamble("\\usepackage{amsmath}\n"
    + "\\usepackage{amsfonts}\n"
    + "\\usepackage{amssymb}\n"
    + "\\usepackage{color}");

// 배율을 300%로 지정합니다.
options.setScale(3000);

// 전경색을 지정합니다.
options.setTextColor(Color.BLACK);

// 배경색을 지정합니다.
options.setBackgroundColor(Color.WHITE);

// 로그 파일의 출력 스트림을 지정합니다.
options.setLogStream(new ByteArrayOutputStream());

// 콘솔에 터미널 출력을 표시할지 여부를 지정합니다.
options.showTerminal(true);

// 결과 이미지의 치수가 기록될 변수입니다.
com.aspose.tex.Size2D size = new com.aspose.tex.Size2D.Float();

// 수식 이미지에 대한 출력 스트림을 만듭니다.
final OutputStream stream = new FileOutputStream("D:\\Files\\Tex\\simple-formula.png");

// PNG로 렌더링
PngMathRenderer mathRenderer = new PngMathRenderer();
mathRenderer.render("This is a sample formula $f(x) = x^2$ example.", stream, options, size);

// 다른 결과를 표시합니다.
System.out.println(options.getErrorReport());
System.out.println();
System.out.println("Size: " + size.getWidth() + "x" + size.getHeight());
Java를 사용하여 LaTeX 수학 공식을 PNG로 렌더링합니다.

Java를 사용하여 LaTeX 수학 공식을 PNG로 렌더링

Java를 사용하여 복잡한 방정식 렌더링

앞에서 언급한 단계에 따라 복잡한 방정식이나 공식을 렌더링할 수 있습니다. 그러나 다음과 같이 5단계에서 수식 문자열을 설정하기만 하면 됩니다.

mathRenderer.render("\\begin{equation*}"
		+ "(1+x)^n = 1 + nx + \\frac{n(n-1)}{2!}x^{\\color{red}2}"
		+ "+ \\frac{n(n-1)(n-2)}{3!}x^{\\color{red}3}"
                + "+ \\frac{n(n-1)(n-2)(n-3)}{4!}x^{\\color{red}4}" 
                + "+ \\cdots"
                + "\\end{equation*}", stream, options, size);
Java를 사용하여 복잡한 방정식 렌더링

Java를 사용하여 복잡한 방정식 렌더링

Java를 사용하여 긴 방정식 표시

앞에서 언급한 단계를 따르면 긴 방정식을 여러 줄에 표시할 수 있습니다. 그러나 다음과 같이 5단계에서 수식 문자열을 설정하기만 하면 됩니다.

mathRenderer.render("\\begin{multline*}"
		+ "p(x) = 3x^6 + 14x^5y + 590x^4y^2 + 19x^3y^3\\\\"
		+ "- 12x^2y^4 - 12xy^5 + 2y^6 - a^3b^3"
		+ "\\end{multline*}", stream, options, size); 
Java를 사용하여 긴 방정식을 표시합니다.

Java를 사용하여 긴 방정식을 표시합니다.

Java를 사용하여 여러 방정식 정렬

앞서 언급한 단계에 따라 여러 방정식이나 공식을 한 번에 정렬하고 렌더링할 수도 있습니다. 그러나 다음과 같이 5단계에서 수식 문자열을 설정하기만 하면 됩니다.

mathRenderer.render("\\begin{align}"
		+ "f(u) & =\\sum_{j=1}^{n} x_jf(u_j)\\\\"
		+ "& =\\sum_{j=1}^{n} x_j \\sum_{i=1}^{m} a_{ij}v_i\\\\"
		+ "& =\\sum_{j=1}^{n} \\sum_{i=1}^{m} a_{ij}x_jv_i"
		+ "\\end{align}", stream, options, size);
Java를 사용하여 여러 방정식을 정렬합니다.

Java를 사용하여 여러 방정식을 정렬합니다.

Java를 사용한 그룹 및 중심 방정식

앞에서 언급한 단계에 따라 렌더링하는 동안 여러 방정식을 그룹화하고 중앙에 배치할 수 있습니다. 그러나 다음과 같이 5단계에서 수식 문자열을 설정하기만 하면 됩니다.

mathRenderer.render("\\begin{gather*}"
		+ "2x - 5y =  8 \\\\"
		+ "3x^2 + 9y =  3a + c\\\\"
		+ "(a-b) = a^2 + b^2 -2ab"
		+ "\\end{gather*}", stream, options, size);
Java를 사용한 그룹 및 중심 방정식.

Java를 사용한 그룹 및 중심 방정식.

Java를 사용하여 괄호 및 대괄호 렌더링

앞에서 언급한 단계에 따라 괄호와 대괄호를 렌더링할 수도 있습니다. 그러나 다음과 같이 5단계에서 수식 문자열을 설정하기만 하면 됩니다.

mathRenderer.render("\\begin{document}"
	     + "\["
	     + " \\left[  \\frac{ N } { \\left( \\frac{L}{p} \\right)  - (m+n) }  \\right]"
	     + "\]"
	     + "\\end{document}", stream, options, size);
Java를 사용하여 괄호와 괄호를 렌더링합니다.

Java를 사용하여 괄호와 괄호를 렌더링합니다.

Java를 사용하는 LaTeX의 행렬

마찬가지로 앞에서 언급한 단계에 따라 행렬을 렌더링할 수 있습니다. 그러나 다음과 같이 5단계에서 수식 문자열을 설정하기만 하면 됩니다.

mathRenderer.render("\\begin{document}"
	            + "\["
	            + "\\left \\{"
	            + "\\begin{tabular}{ccc}"
	            + "  1 & 4 & 7 \\\\"
	            + "  2 & 5 & 8 \\\\"
	            + "  3 & 6 & 9 "
	            + "\\end{tabular}"
	            + "\\right \\}"
	            + "\]"
	            + "\\end{document}", stream, options, size);
Java를 사용하는 LaTeX의 행렬.

Java를 사용하는 LaTeX의 행렬.

Java를 사용하여 분수 및 이항 렌더링

앞에서 언급한 단계를 따르면 분수와 이항도 렌더링할 수 있습니다. 그러나 다음과 같이 5단계에서 수식 문자열을 설정하기만 하면 됩니다.

mathRenderer.render("\\begin{document}"
	            + "\["
	            + "\\binom{n}{k} = \\frac{n!}{k!(n-k)!}"
	            + "\]"
	            + "\\end{document}", stream, options, size);
Java를 사용하여 분수와 이항을 렌더링합니다.

Java를 사용하여 분수와 이항을 렌더링합니다.

Java를 사용하는 LaTeX의 수학 연산자

수학 연산자 기호는 log, cos, sin 등과 같은 다양한 수학 함수를 나타냅니다. 앞에서 언급한 단계를 따르면 LaTeX에서 삼각 함수와 로그를 렌더링할 수 있습니다. 그러나 다음과 같이 5단계에서 수식 문자열을 설정하기만 하면 됩니다.

mathRenderer.render("\\begin{document}"
	            + "\["
	            + "\\sin(a + b) = \\sin a \\cos b + \\cos b \\sin a"
	            + "\]"
	            + "\\end{document}", stream, options, size);
Java를 사용하는 LaTeX의 수학 연산자.

Java를 사용하는 LaTeX의 수학 연산자.

Java를 사용하여 SVG에서 LaTeX 수학 공식 렌더링

아래 단계에 따라 렌더링된 수학 공식이나 방정식을 SVG 이미지 형식으로 저장할 수도 있습니다.

  1. 먼저 SvgMathRendererOptions 클래스의 인스턴스를 만듭니다.
  2. 다음으로 LaTeX 문서 서문을 지정합니다.
  3. 선택적으로 Scale, TextColor, BackgroundColor 등과 같은 다양한 속성을 설정합니다.
  4. 그런 다음 수식 이미지에 대한 출력 스트림을 만듭니다.
  5. 마지막으로 render() 메서드를 호출하여 수식을 렌더링합니다. 수식 문자열, 스트림, 렌더링 옵션 및 출력 이미지 크기를 인수로 사용합니다.

다음 코드 샘플은 Java를 사용하여 SVG 이미지에서 수학 공식을 렌더링하는 방법을 보여줍니다.

// 이 코드 예제는 수학 공식과 방정식을 SVG로 렌더링하는 방법을 보여줍니다.
// SVG 렌더링 옵션 만들기
SvgMathRendererOptions options = new SvgMathRendererOptions();

// 서문을 지정합니다.
options.setPreamble("\\usepackage{amsmath}\n"
    + "\\usepackage{amsfonts}\n"
    + "\\usepackage{amssymb}\n"
    + "\\usepackage{color}");

// 배율을 300%로 지정합니다.
options.setScale(3000);

// 전경색을 지정합니다.
options.setTextColor(Color.BLACK);

// 배경색을 지정합니다.
options.setBackgroundColor(Color.WHITE);

// 로그 파일의 출력 스트림을 지정합니다.
options.setLogStream(new ByteArrayOutputStream());

// 콘솔에 터미널 출력을 표시할지 여부를 지정합니다.
options.showTerminal(true);

// 결과 이미지의 치수가 기록될 변수입니다.
com.aspose.tex.Size2D size = new com.aspose.tex.Size2D.Float();

// 수식 이미지에 대한 출력 스트림을 만듭니다.
final OutputStream stream = new FileOutputStream("D:\\Files\\Tex\\simple-math-rendering.svg");

// SVG로 렌더링
SvgMathRenderer mathRenderer = new SvgMathRenderer();
mathRenderer.render("\\begin{equation} \\label{eqn}"
    + "	E = {mc^2}"
    + "	\\end{equation}"
    + " The equation states mass equivalence relationship.", stream, options, size);

// 다른 결과를 표시합니다.
System.out.println(options.getErrorReport());
System.out.println();
System.out.println("Size: " + size.getWidth() + "x" + size.getHeight());
Java를 사용하여 SVG에서 LaTeX 수학 공식을 렌더링합니다.

Java를 사용하여 SVG에서 LaTeX 수학 공식을 렌더링합니다.

무료 라이선스 받기

평가 제한 없이 라이브러리를 사용해 보려면 무료 임시 라이센스를 얻으십시오.

결론

이 문서에서는 다음 방법을 배웠습니다.

  • Java에서 간단하고 복잡한 수학 공식과 방정식을 렌더링합니다.
  • 프로그래밍 방식으로 방정식을 정렬하고 그룹화합니다.
  • 행렬, 괄호, 대괄호, 분수 및 이항을 렌더링합니다.
  • Java를 사용하여 렌더링된 수식 이미지를 PNG 또는 SVG로 저장합니다.

또한 문서를 사용하여 Aspose.TeX for Java API에 대해 자세히 알아볼 수 있습니다. 모호한 부분이 있는 경우 포럼을 통해 언제든지 문의해 주십시오.

또한보십시오