2017-12-12 10 views
0

MathJaxを使用してレンダリングされる数式を含むHTMLファイルを作成しようとしています。しかし、Googleのフォント(私の場合はLusitana)を使用すると、数式のサイズが間違っています。コンピュータやその他のGoogleフォントにインストールされている通常のフォントを使用すると、正しく表示されます。私は本当にLusitanaを使いたいです - これを動作させる方法はありますか?MathJax:特定のGoogleフォントを使用すると、式のサイズが正しく設定されない

編集1:私のプラットフォームはUbuntu 16.04、Chrome 62です。この問題はFirefoxでは発生しません。ここで

は、以下のソースのレンダリングはフォントルシタナでどのように見えるかです:問題を生成https://imgur.com/a/OiBmr

HTMLソースは次のとおりです。

<html> 
<head> 
<style> 
@import url('https://fonts.googleapis.com/css?family=Open+Sans'); 
@import url('https://fonts.googleapis.com/css?family=Lato'); 
@import url('https://fonts.googleapis.com/css?family=Lusitana'); 

body { 
    font-family: "Lusitana", Garamond, Baskerville, "Times New Roman", serif; 
    /* font-family: "Open Sans", Garamond, Baskerville, "Times New Roman", serif; */ 
} 

p { 
    font-size: 20px; 
} 
     </style> 
     <script type="text/javascript"> 
window.MathJax = { 
    tex2jax: { 
     inlineMath: [ ['$','$'], ["\\(","\\)"] ], 
     processEscapes: true 
    }, 
}; 
     </script> 
     <script type="text/javascript" async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-MML-AM_CHTML"> 
     </script> 
    </head> 
    <body> 
     <p> 
     The roots of a quadratic equation, $ax^2 + bx + c = 0$ are given by, $$x = \dfrac{-b \pm \sqrt{b^2 - 4ac}}{2a}$$ The expression $\sqrt{b^2 - 4ac}$ is called the discriminant of the equation. If its value is $0$, then the roots are equal, otherwise the roots are distinct. Furthermore, if the discriminant is positive, the roots are real, and if negative, the roots are complex. 
     </p> 
    </body> 
</html> 

答えて

1

これはルシタナが悪いのメタデータを持つためです。 [この投稿](:https://groups.google.com/d/msg/mathjax-users/v3W-daBz87k/xjxFFdfQBQAJをこれが役立つかもしれません):から

MathJaxは、周囲のフォントの元の高さにMathJaxフォントの元の高さに一致するように試みることによってスケーリング係数を決定します。周囲のフォントの高さが正しく設定されている場合にのみ動作します。すべてのフリーフォント、特にすべてのGoogleウェブフォントではありませんが、適切な高さを持っています。 「Crimson Text」はそのようなフォントの1つです。これを確認するには、クリムゾンテキスト(あなたも、それがMathJaxを行うには何も持っていないことを確認するために、完全にMathJaxを削除することができます)でフォーマット段落に

<span style="display:inline-block; width:1ex; height:1ex; background-color:red"></span> 

を追加します。テキストの横にある非常に小さな赤いボックスが表示されます(フォントの「x」の高さにする必要がある場合)。

だから、MathJaxは "x"が赤いボックスの高さになるようにフォントを拡大しようとします。しかし、MathJaxには、使用する縮尺を制限する設定パラメータがあり、これは50%であるため、元のサイズのちょうど半分にフォントが表示されます。

考えられる解決策の1つは、MathJaxに周囲のフォントとの一致を試みないように指示することです。あなたmatchFontHeightを設定することではないこと:様々な出力レンダラーのための構成で偽:

MathJax.Hub.Config({ 
    "HTML-CSS": {matchFontHeight: false}, 
    SVG: {matchFontHeight: false}, 
    CommonHTML: {matchFontHeight: false} 
}); 

これは小さななってからフォントを維持しますが、数学はのフォントの高さと一致していない意味するかもしれませんテキストの残りの部分だけでなく、可能性もあります。また、あなたは95%(またはものは何でも動作します)のようなものにするために最小フォントのスケールを変更できます。

MathJax.Hub.Config({ 
    "HTML-CSS": {minScaleAdjust: 95}, 
    SVG: {minScaleAdjust: 95}, 
    CommonHTML: {minScaleAdjust: 95} 
}); 

たものの一つが、トリックをしない場合を参照してください。

試験。

@import url('https://fonts.googleapis.com/css?family=Open+Sans'); 
 
@import url('https://fonts.googleapis.com/css?family=Lato'); 
 
@import url('https://fonts.googleapis.com/css?family=Lusitana'); 
 

 
.lusitana { 
 
    font-family: "Lusitana", Garamond, Baskerville, "Times New Roman", serif; 
 
} 
 
.opensans { 
 
    font-family: "Open Sans", Garamond, Baskerville, "Times New Roman", serif; 
 
} 
 

 
p { 
 
    font-size: 20px; 
 
}
\t <p class="lusitana">Lusitana: <span style="display:inline-block; width:1ex; height:1ex; background-color:red"></span></p> 
 
    <p class="opensans">OpenSans: <span style="display:inline-block; width:1ex; height:1ex; background-color:red"></span></p>

関連する問題