【问题标题】:Mathjax Display Issues (Breaking Formatting In Certain Places Only)Mathjax 显示问题(仅在某些地方破坏格式)
【发布时间】:2014-09-30 20:49:35
【问题描述】:

我正在展示一些 mathjax,它通常工作正常。例如。在一个 DIV 中。但是,当我将它插入 Bootstrap Accordion 时,它会破坏所述手风琴的格式,但仅在标题中 Mathjax 似乎插入了自己的跨度,这些跨度继承了我认为导致这种情况的填充和边距等内容。

请参阅下面的代码,如果您单击页面中间的 9 个图像上的了解更多链接之一,它也在此页面 www.clevertree.co.uk 上。下面的第一位坏了,第二位很好。

            <div class="panel panel-default">

                    <div class="panel-heading">
                        <h4 class="panel-title">
                            <a class="panel-toggle collapsed" data-toggle="collapse" data-parent="#accordion_core1" href="#core1content2">
                                <span>Coordinate Geometry in the (??x,y??) Plane</span>
                            </a>
                        </h4>
                    </div><!-- /.panel-heading -->

                    <div id="core1content2" class="panel-collapse collapse">
                        <div class="panel-body">
                            <ul class="circled">
                                <li>Equation of a straight line, including the forms ??y-y_{1}=m(x-x_{1})?? and ??ax + by + c = 0??</li>
                                <li>Conditions for two straight lines to be parallel or perpendicular to each other</li>
                            </ul><!-- /.circled -->
                        </div><!-- /.panel-body -->
                    </div><!-- /.content -->

                </div><!-- /.panel -->

【问题讨论】:

  • 所以,稍微玩一下 DOM 和 CSS 检查器,看看哪些样式规则有问题。
  • 谢谢,但是有没有办法让 MathJax 忽略它继承的某些元素的样式?比如不继承内边距、边距或颜色?

标签: twitter-bootstrap accordion mathjax


【解决方案1】:

问题在于 Boostrap 在其隐藏内容上使用 display:none。由于这意味着浏览器不会布置内容,这会阻止 MathJax 正确测量宽度和高度。 See this blog post for more details.

长话短说,为了安全起见,您需要触发手风琴中内容的重新渲染。

我对 boostrap 不太熟悉,但将 boostrap docsMathJax docs 结合起来可能是一个开始。

或者,您可以配置 MathJax 预处理器(例如,the TeX one)以忽略手风琴,然后将 Rerender 替换为 Typeset(这样可以节省对该内容的一轮排版,但第二轮会更快所以这将取决于这是否值得)。

编辑例如,为您的站点修改您的配置为

 <script type="text/x-mathjax-config">
    MathJax.Hub.Config({
            tex2jax:{
                inlineMath: [['%%%%','%%%%'], ['??','??']],
                displayMath: [ ['$$','$$'], ['@@', '@@']],
                ignoreClass: "panel"
            }
     });
</script>

【讨论】:

  • 您好,感谢您的提示 - 我想我的描述有点不清楚,手风琴中的内容有效,但手风琴标题中的内容却没有。在 jsFiddle 中,如果我将内容放入标题中(例如,而不是 Collapsible Group Item #1),它可以工作,但在我的一个中,使用相同的代码,它不起作用并且布局仍然混乱。即使对所有元素都使用它,你能给我一个关于如何配置 MathJax 处理器以忽略手风琴的指南吗?我已经在页面顶部有一些 Mathjax 的配置代码?谢谢。
  • 你们有现场样品吗?另外,您使用的是哪个输入?
  • 嗨,谢谢彼得。是的,我愿意。 www.clevertree.co.uk。底部有一个称为 Core 1 的模态。如果单击 Learn More 按钮,您可以在 2nd Accordion 标题中看到一些 Mathjax(它应该显示为 (x,y) 平面中的坐标几何)。非常感谢您的帮助。
  • 嗯。不知道发生了什么。稍后我将不得不调查它。我添加了一个配置示例。
  • 谢谢彼得。该配置示例的工作原理是格式现在没有搞砸,但是面板项中根本没有呈现 Mathjax。我是否需要做更多的事情来忽略面板类继承但仍呈现实际的数学内容?谢谢。
猜你喜欢
  • 1970-01-01
  • 2013-02-26
  • 1970-01-01
  • 2016-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多