我每次编译文件时都会使用 python 创建一个随机问题
输入{|python3 0.py}
它的内容类似于
import random
a = random.randint(1,9)
b = random.choice(["a","b","c"])
c = random.randint(1,9)
d = random.choice(["a","b","c"])
print(r"$\begin{bmatrix}%d &%s\%d %s\end{bmatrix}$" % (a, b, c, d) )
我曾尝试使用 python-tex 做类似的事情,但是在导入模块时,效果并不顺利。
我的问题更多是关于 Python 的。我更喜欢使用 f 字符串而不是 % 格式,但在 LaTeX 中,很多时候我必须使用花括号,而且我不知道如何区分 f 字符串中的格式 {} 和普通 {}。有没有更好的方法来做到这一点?
答案1
下面是使用pyluatex
包(使用 LuaLaTeX 和 运行--shell-escape
)。
为了在 -string 中获得花括号f
,您必须使用其中两个。
\documentclass{article}
\usepackage{amsmath}
\usepackage{pyluatex}
\begin{python}
import random
a = random.randint(1, 9)
b = random.choice(["a", "b", "c"])
c = random.randint(1, 9)
d = random.choice(["a", "b", "c"])
def print_matrix():
return rf'\begin{{bmatrix}} {a} & {b} \\ {c} & {d} \end{{bmatrix}}'
\end{python}
\begin{document}
\[
\begin{bmatrix}
\py{a} & \py{b} \\
\py{c} & \py{d}
\end{bmatrix}
\]
\[
\py{print_matrix()}
\]
\end{document}