1

I have install a plugin named latex for wordpress, which use mathjax to render the latex mathematical symbols.

An matrix example

$$\mathbf{P} = \left[ \begin{matrix} x\ y\ \end{matrix} \right],\mathbf{P'} = \left[ \begin{matrix} x\ y\ \end{matrix} \right],\mathbf{T} = \left[ \begin{matrix} t_{x}\ t_{y}\ \end{matrix} \right] $$

The problem is I could not break the statement into multiple lines when the statement become too long in a single line. Because wordpress would automatically insert <br> to the equation.

So I need to disable automatically generation of <br> in and only in this circumstances.

Could I do this with some extra tags?

2

1 Answer 1

0

Assuming, you're using a latex shortcode, the following should do what you've asked for:

function leave_latex_alone($content) {
    $new_content = '';
    $pattern_full = '{(\[latex\].*?\[/latex\])}is';
    $pattern_contents = '{\[latex\](.*?)\[/latex\]}is';
    $pieces = preg_split($pattern_full, $content, -1, PREG_SPLIT_DELIM_CAPTURE);

    foreach ($pieces as $piece)
        if (preg_match($pattern_contents, $piece, $matches)) $new_content .= $matches[1];
        else $new_content .= wptexturize(wpautop($piece));

    return $new_content;
}

remove_filter('the_content', 'wpautop');
remove_filter('the_content', 'wptexturize');

add_filter('the_content', 'leave_latex_alone', 99);

This is an adapted version of some code found here. However, I did not test the code.

1
  • This does not work, the latex statement would not render any more.
    – Jichao
    Apr 4, 2013 at 13:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.