使用 f 字符串嵌入 python

使用 f 字符串嵌入 python

我每次编译文件时都会使用 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}

相关内容