MathJax에서 어떤 방정식을 왼쪽으로 정렬하는 방법

질문:

기본적으로 MathJax 방정식은 가운데에 있지만 일부 방정식은 왼쪽으로 정렬하고 싶습니다.나는 모든 방정식을 MathJax와 왼쪽으로 정렬하는 방법을 안다.중추설정입니다. 하지만 이것은 제가 원하는 것이 아닙니다.
웹에 있는 다른 코드를 시도했습니다. 예를 들면 다음과 같습니다.
<script type="text/javascript">
  MathJax.Hub.Queue(function () {
      MathJax.Hub.Config({displayAlign:"left"});
      MathJax.Hub.Typeset(["leqn"]);
    });
 </script>
그리고 다음과 같이 id가 leqn인 div로 방정식을 둘러쌉니다.
<div id="leqn">$$e^{\pi i} - 1 = 0$$</div>
이것은 통하지 않는다. 나는 MathJax, 심지어 JS에 대해서도 잘 모른다. 내가 무엇을 잘못했는지 모른다.무슨 생각 있어요?

답안

원시적인 방법이 작용하지 않는 이유는 Math Jax가 실행한 초기 조판 과정에서 등식이 이미 조판되었고 MathJax.Hub.Typeset()에 대한 호출은 기존의 수학을 재조판하지 않고 지난번 조판 호출 이후의 새로운 수학만 조판하기 때문이다.그래서 수학은 그대로 유지되었다.
반대로 MathJax.Hub.Rerender(["leqn"])displayAlign 설정을 사용하여 수학을 다시 렌더링할 수 있습니다.
그럼에도 불구하고 Peter의 방법은 수학을 두 번 조판할 필요가 없기 때문이다.다음은 내가 그의 방법에 대해 약간 개선할 것이다.무시된 클래스에 tex2jax_ignore를 추가한 다음 두 번째 레이아웃 전에 다시 삭제할 수 있습니다leqn. 그리고 이 클래스를 가진 모든 요소에서 다시 삭제해야 합니다.코드는 다음과 같습니다.
MathJax = {
  tex2jax: {ignoreClass: "tex2jax_ignore|leqn"},
  AuthorInit: function() {
    MathJax.Hub.Register.StartupHook("End",function () {
      MathJax.Hub.Queue(function () {
        MathJax.Hub.Config({
          tex2jax: {ignoreClass: "tex2jax_ignore"},
          displayAlign: "left"
        });
        return MathJax.Hub.Typeset();
      });
    });
  }
};

(function(d, script) {
  script = d.createElement('script');
  script.type = 'text/javascript';
  script.src = 'https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML-full';
  d.getElementsByTagName('head')[0].appendChild(script);
}(document));
$$e^{\pi i} - 1 = 0$$
<span class="leqn">$$e^{\pi i} - 1 = 0$$</span>
$$e^{\pi i} - 1 = 0$$
편집: TeX input jax의 뒷필터를 사용하고 부모 요소의 클래스에 따라 기본 MathML의 indentalign 속성을 설정합니다. (ID를 사용할 수도 있지만, ID는 유일해야 한다는 것을 기억하십시오. 따라서 모든 등식에 다른 ID를 사용해야 합니다. 이것이 클래스가 더 좋은 이유입니다.)
MathJax = {
  AuthorInit: function() {
    MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
      MathJax.InputJax.TeX.postfilterHooks.Add(function (data) {
        if (data.script.parentNode.className === "leqn")
          data.math.root.indentalign = "left";
      });
    });
  }
};

(function(d, script) {
  script = d.createElement('script');
  script.type = 'text/javascript';
  script.src = 'https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML-full';
  d.getElementsByTagName('head')[0].appendChild(script);
}(document));
$$e^{\pi i} - 1 = 0$$
<span class="leqn">$$e^{\pi i} - 1 = 0$$</span>
$$e^{\pi i} - 1 = 0$$
TeX 입력 jax에 매크로를 추가할 수도 있습니다. indentalign 속성을 지정할 수 있지만, 더 많은 작업을 해야 합니다.