PythonTeXによる試験問題の自動作成を目指して--pycode内でのTeXコマンドについて--

PythonTeXによる試験問題の自動作成を目指して--pycode内でのTeXコマンドについて--

- t iida の投稿
返信数: 1
PythonTeXを試験問題を作成するために使っております.まだ未完成ですが,2次関数をLaTeX内で自動作成することを目指しています.下のほうにpycodeをコピーしておきます.もっと良い方法があればよかったのですが,現在の私の力量ではこれが限界でした.さてpycodeに関しての質問です.

1つ目:下にある
print('\\begin{align*}')
---
print('\\end{align*}')
だと改行されてしまうので, これを改行しないようにしたいのです.
そこで, \begin{align*}を$に置き換えてみたのですがエラーが発生してしまいました.改行しないようにするにはどうしたらよいでしょうか?

2つ目:下から2行目がright = ()になっていますが,本当は四角の枠を入れたいと考えています.そこで, \fbox{~\COUNT~}などのTeXコマンドを入力したのですがエラーが発生してしまいました.そこでpycode内でTeXコマンドを機能させるにはどのようにしたらよいのでしょうか?

なお,2次関数の平方完成に関する計算問題を考えていたのでenumerate環境内を想定しております.以上です.どうぞご協力をお願いいたします.

--------------pycode----------------

\begin{pycode}

import random

import fractions

import os

os.getcwd()


from sympy import sympify

from sympy import Symbol

from sympy import *

from sympy import latex

from fractions import Fraction

from sympy import init_session


coeff1a1 = random.randrange(-5,6,2)

coeff1b1 = random.randrange(-5,6,1)

coeff1c1 = random.randrange(-5,6,1)


coeff1a2 = random.randrange(1,10,1)

coeff1b2 = random.randrange(1,10,1)

coeff1c2 = random.randrange(1,10,1)


x = Symbol('x')

expr1 = coeff1a1*x*x+x*coeff1b1+coeff1c1


print('\\begin{align*}')

for func in [sin(x)]:

left = expr1

right = ()

eq = latex(left) + '=' + latex(right) + '\\\\'

print(eq.replace('d', '\\rmd '))

print('\\end{align*}')

\end{pycode}

----------------------------------------

t iida への返信

Re: PythonTeXによる試験問題の自動作成を目指して--pycode内でのTeXコマンドについて--

- t iida の投稿
自己解決しました.何かの参考になるかもしれないので, 一応, pycodeをコピーしておきます.\py{heihou()}を数式モード内で使えば目的が達成されるようです.


----pycode---
\begin{pycode}
import random
import fractions

from sympy import sympify
from sympy import Symbol
from sympy import *
from sympy import latex
from fractions import Fraction
from sympy import init_session
def heihou():
cefa1 = random.randrange(-5,6,2)
cefb1 = random.randrange(-5,6,1)
cefc1 = random.randrange(-5,6,1)

cefa2 = random.randrange(1,10,1)
cefb2 = random.randrange(1,10,1)
cefc2 = random.randrange(1,10,1)

x = Symbol('x')
expr1 = x*x*Fraction(cefa1,cefa2)+x*Fraction(cefb1,cefb2)+Fraction(cefc1,cefc2)
return latex(expr1)
\end{pycode}
---