2016-02-21 21 views
7

Girdi:MathJax web, mobil cihazlar için yapılandırma ve yardımcı

<ins class="marked-for-jax">\[ 
1 + 2 + 3 + \ldots + n = \frac{n(n+1)}2. 
\]</ins> 

MathJax Yapılandırma:

MathJax.Hub.Config({ 
    jax: ["input/TeX", "output/HTML-CSS"], 
    extensions: ["tex2jax.js"], 
    messageStyle: "none", 
    TeX: { 
    extensions: ["AMSmath.js", "AMSsymbols.js", "noErrors.js", "noUndefined.js"] 
    } 
}); 
netlik için kısaltılmış ve biçimlendirilmiş

MathJax çıkışı,: UIWebView üzerinde

<p> 
    <ins class="marked-for-jax"> 
    <span class="MathJax_Preview" style="color: inherit;"></span> 
    <div class="MathJax_Display" style="text-align: center;"> 
     <span class="MathJax" id="MathJax-Element-2-Frame" tabindex="0" data-mathml="[mathML data here]" role="presentation" style="position: relative;"> 
     <nobr aria-hidden="true"><span class="math" id="MathJax-Span-12" role="math" style="width: 14.517em; display: inline-block;"><!--lots of nested spans here--></nobr> 
     <span class="MJX_Assistive_MathML MJX_Assistive_MathML_Block" role="presentation"><!--lots of mathML here--></span> 
     </span> 
    </div> 
    <script <!--does not impact any output. Why is it even there at all?--> type="math/tex; mode=display" id="MathJax-Element-2">1 + 2 + 3 + \ldots + n = \frac{n(n+1)}2.</script> 
    </ins> 
</p> 

Görünüm . Çıkışı iki kez gördüğümüze dikkat edin. İlki yuvalanmış olanlardan gelir; İkincisi yardımcıdan gelir. seeing double

Destekleyici olanı CSS ile çıkarırsam, gerçekten yalnızca çıkışı bir kez görürsünüz. Ancak VoiceOver kullanıcıları hiçbir şey duymaz. Alternatif olarak, yuvalanmış açıklıkları CSS ile çıkarabilirim. Bu yaklaşıma kuşkuyla yaklaşıyorum, çünkü muhtemelen iOS üzerinde çalışırken, muhtemelen tüm tarayıcılarda çalışmayacaktı. Ek olarak, çıktıyı tam olarak nasıl kullandığımı bağlı olarak, MathJax'ın şu anda ilk sırada ne yaptığının bölümlerini çıkarmasını engellemek isteyebilirim. Örneğin, bazı durumlarda, Html'yi yalnızca iOS'ta görüneceğinden emin olabileceğim bir şekilde kullanacağım. Böyle bir durumda, css ile sıyrtığım herhangi bir Html, ilk etapta olmamayı tercih ederim.

Çıktıyı hem gören hem de yardımcı kullanıcılar için anlamlı hale nasıl getirebilirim?

DÜZENLEME: Burada ilgili soru bulundu: MathJax is duplicating my equations -- why and how can I fix this?

Daha düzenleme: http://mathjax.readthedocs.org/en/latest/options/assistive-mml.html: Burada türetilen aşağıdaki CSS ile "görme çift" sorunu, kurtulabiliriz. Ama sonra yeni bir sorunum var - VoiceOver herhangi bir matematikten bahsetmiyor.

span.MJX_Assistive_MathML { 
    position:absolute!important; 
    clip: rect(1px, 1px, 1px, 1px); 
    padding: 1px 0 0 0!important; 
    border: 0!important; 
    height: 1px!important; 
    width: 1px!important; 
    overflow: hidden!important; 
    display:block!important; 
} 
+1

(ve orada belirtilen yapılandırma dosyasını - Sana AssistiveMML uzantısı kendiniz yükleme olmadığı için bir tane kullandığınız varsayılmaktadır). Yardımcı versiyonun gösterilmemesi için zaten bir stil olmalı. Belki de sayfanız CSS bunu aksatıyor. Sorunu gösteren bir jsFiddle veya codebin örneği yapabilir misiniz? Ayrıca, "ilgili soru", AssitiveMML'nin kullanıma sunulmasından önce olduğu gibi değildir. Bu büyük olasılıkla bir CSS sorunu. –

+0

Özür dilerim, bilmeceleri nasıl kamuya açıklayacağınızı anlamadım. Üzerinde çalışıyor. –

+0

Tamam, anladım. Aşağıda bağlı olarak değişen miktarlarda css ile kemanın üç versiyonu. Bunların üçü de aynı probleme sahip .https: //jsfiddle.net/verybadcat/cjajbnj8/1/ https://jsfiddle.net/verybadcat/cjajbnj8/2/ https://jsfiddle.net/verybadcat/cjajbnj8/3/ –

cevap

1

KISMİ YANIT aşağıdaki CSS koymak. Bu benim iOS/Droid çevrimdışı senaryoya özgü olduğunu unutmayın oldu. Farklı senaryoları olanlarınız için geçerli olmayabilir. Ayrıca, bazı şeyler oldukça kötü çıkıyor. Ben tam olarak mutlu değilim. Sen MathJax yükleyen komut görünmüyor

[aria-hidden="true"] { display: none; } 
İlgili konular