在 LaTex 表环境中重复调用 Python 函数

问题描述 投票:0回答:1

我是一名英语老师,对于我的在线课程,我用 LaTeX 准备了一份 PDF,其中包含新的词汇、语法和其他注释。现在我通常自己写单词的含义,但是,为了更精确,我尝试使用 sage 包使用 Python 进行 API 调用来获取我作为输入输入的单词的含义。不幸的是,它没有按预期工作,当我编译 PDF 时,出现的是 ??,而不是单词的含义。

该函数在Python中工作,它会返回含义,似乎LaTeX无法读取字符。 这是有问题的代码:

\documentclass{article}

\usepackage{tabularx}


\begin{document}

    \begin{sagesilent}
        import requests

        def define(word):
            url = f"https://api.dictionaryapi.dev/api/v2/entries/en/{word}"

            try:
                response = requests.get(url)
                data = response.json()

                if response.status_code == 200:
                    # Extracting definition from the API response
                    definition = data[0]['meanings'][0]['definitions'][0]['definition']
                    return definition
                else:
                    return f"Failed to fetch definition. Status code: {response.status_code}"

            except requests.RequestException as e:
                return f"Error: {e}"
}
    \end{sagesilent}


\input{title}

\section{Vocabulary}\label{sec:vocabulary}

\begin{tabularx}{\textwidth}{l|X}
    \toprule
    Word  & Definition \\ \midrule
    request & \sage{define(request)}
    \bottomrule
\end{tabularx}

\end{document}

我尝试过在这里搜索,也使用过ChatGPT,可惜没有成功。

python latex sage
1个回答
0
投票

尝试

sage{define('request')}
— 您需要将传递给 Python 函数的参数加上引号
define

(我对你的 LaTeX 代码有各种各样的其他问题:它需要

\usepackage{sagetex}
,它可能需要
\usepackage{amsmath}
,它失败是因为我没有文件
title.tex
,等等)

© www.soinside.com 2019 - 2024. All rights reserved.