在 MarkDown 图形块中使用 jinja2 上下文变量

在 MarkDown 图形块中使用 jinja2 上下文变量

我正在尝试使用在运行时在生成图形的 LaTeX/MarkDown 代码块中呈现的上下文变量。原则上,我希望允许将图像的动态路径包含在图形中。

这是一段有效的代码:

\begin{figure}
  \centering
     \IfFileExists{path/to/my_image.png}
     {\includegraphics[width=0.9\textwidth]{path/to/my_image.png}
     {\includegraphics[width=0.2\textwidth]{path/to/image_not_available.png}
     \caption{My caption.}
     \label{Figure.1}
\end{figure}

现在,我有一个在运行时设置的上下文变量:

Path to the image folders: {{images_folder}}

这在“普通”MarkDown 中有效,但我找不到在图形代码块中使用此变量的方法。我试过(没有成功):

 {\includegraphics[width=0.9\textwidth]{{{images_folder}}/my_image.png}

or

 {\includegraphics[width=0.9\textwidth]{'{{images_folder}}'/my_image.png}

我是否需要以某种方式逃避{{ }}构造?您能给我一些建议吗?谢谢

编辑:按照@Marijn的要求,对步骤顺序提供更多的见解:

  1. 我在处理所有数据 ETL 和上下文渲染的 Python 模块中使用 JSON 文件作为输入
  2. 一旦数据被解析并加载到字典中,就会使用所有元数据和数据初始化 RenderContext 对象,以填充生成的报告中使用的所有上下文变量。
  3. 然后,这些变量根据其特定的键从 RenderContext 字典输入到 MarkDown 模板中(即,RenderContext <key,value> 对 "number": 10 在 MarkDown 纯文本中变为 {{number}})。
  4. 我还有一个header.txt首页文件,其中有这样的条目:“标题:“这是关于{{title}}的报告”和日期:“{{date}}”
  5. 我也尝试过将其添加\graphicspath{{path/to/images}}到我的主.tex文件中,但由于某种原因,它被忽略了。
  6. 我还尝试向文件中添加.tex承载此路径的环境变量(例如,IMAGES="/absolute/path/to/images/"以下这个帖子但没有成功。不想识别新定义的命令。

如上所述,在纯 MarkDown 文本中,我可以很好地访问变量,但当涉及到图形或表格块时,我无法让它检索变量值。我还尝试过, \includegraphics[width=.....]{$images_folder$}因为我看到它在主.tex模板中实现,尝试用等来转义它\。等等。但没有成功。

使用一个 Jinja 上下文变量的纯 MarkDown 文本示例如下:

This sample was found to have a contamination of {{contamination or '\\notset'}}.

如果在 RenderContext 中找不到污染的键值对,我会用红色显示自定义的 [not_set] 文本,以让我意识到出了问题。

再次感谢您的帮助!

相关内容