我是一名英语老师,对于我的在线课程,我用 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,可惜没有成功。
尝试
sage{define('request')}
— 您需要将传递给 Python 函数的参数加上引号 define
。
(我对你的 LaTeX 代码有各种各样的其他问题:它需要
\usepackage{sagetex}
,它可能需要 \usepackage{amsmath}
,它失败是因为我没有文件 title.tex
,等等)