在ipython笔记本中的sympy输出中使用符号作为乘法运算符

时间:2013-08-28 01:44:11

标签: python latex ipython-notebook sympy mathjax

在ipython笔记本中,我希望能够在表达式的latex / mathjax输出中为乘法运算符使用符号(\ times或\ cdot)。这可能吗?

sympy.latex()有一个选项mul_symbol,但我看不到如何使用它来更改输出单元格中的乳胶。

3 个答案:

答案 0 :(得分:2)

请尝试以下代码:

from IPython.display import display, Math
from sympy import *
x1 = var('x_1')
x2 = var('x_2')
display(Math(latex(x1*x2,mul_symbol='dot')))

您可以将dot更改为timesldot

这使得IPython使用所需的符号渲染乳胶。

如果您不希望最后一行弄乱所有代码,只需定义一个函数:

def Latex(expr):
    return display(Math(latex(expr,mul_symbol='dot')))

现在你可以使用:

Latex(x1*x2)

答案 1 :(得分:2)

init_printing()有一个参数latex_printer,因此您可以执行类似

的操作
init_printing(latex_printer=lambda *args, **kwargs: latex(*args, mul_symbol='dot', **kwargs))

答案 2 :(得分:0)

我有一个函数,我保留在库中以创建Latex打印机:

  <?php
$con = mysqli_connect('127.0.0.1', 'root', '', 'textbookdb');

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}
$fn = $_POST['fn'];
$ln = $_POST['ln'];
$email = $_POST['email'];
$state = $_POST['state'];
$school = $_POST['city'];
$pass1 = $_POST['pass1'];
$pass2 = $_POST['pass2'];

if($pass1 != $pass2){

echo("passwords don't match");      
}

echo($fn);echo(" ");echo($ln);echo(" ");echo($email);echo(" ");echo($state);echo(" ");echo($school);echo(" ");echo($pass1);echo(" ");


$query = "INSERT INTO user VALUES ('id', '$fn', `$ln`, `$email`, '$pass1' `$state`, `$school`, `userStamp`, `emailActivation`)";

 echo "<pre>Debug: $query</pre>\m";
 $result = mysqli_query($con, $query);
if ( false==$result ) {
 printf("error: %s\n", mysqli_error($con));
 }
  else {
  echo 'done.';
 }   

  ?>

然后在我的笔记本中我使用:

def makeLatexPrinter(**localsets):
    def mylatex(expr,**settings):
        settings.update(localsets)
        return latex(expr,**settings)
    return mylatex

如果init_printing(use_latex=True,latex_printer=makeLatexPrinter(mul_symbol='dot')) 通过自己传递像init_printing()这样的关键字参数,那将更加清晰。