Метод с использованием фильтра экспорта
В качестве примера в моем комментарии приведена реализация фильтра «конечного вывода», который помещает дополнительные данные.непосредственно перед `\ end {figure} '- не уверен, что расположение имеет значение.Однако обратите внимание, что предполагается, что дополнительный материал является фиксированной строкой:
* Code :noexport:
#+begin_src emacs-lisp
(require 'ox)
(defun my-custom-figsource (contents backend info)
(when (eq backend 'latex)
(replace-regexp-in-string "\\\\end{figure}"
"\\\\figsource{Source: \\\\cite{someone2015}}\n\\\\end{figure}" contents)))
(add-to-list 'org-export-filter-final-output-functions #'my-custom-figsource)
#+end_src
* Figure
#+LABEL: fig:myfigure
#+CAPTION:My caption
[[file:img/fig1.png]]
, которая экспортирует в следующий фрагмент TeX:
\begin{figure}[htbp]
\centering
\includegraphics[width=.9\linewidth]{img/fig1.png}
\caption{\label{fig:org6271d58}
My caption}
\figsource{Source: \cite{someone2015}}
\end{figure}
Работа с различными цитатами в \figsource
будетбудь сложнее, и я не знаю, как это сделать с макушки головы.
Метод с использованием # + ATTR_LATEX
В качестве альтернативы,Вы можете использовать атрибут :caption
в #+ATTR_LATEX
:
* Figure
#+LABEL: fig:myfigure
#+CAPTION:My caption
#+ATTR_LATEX: :caption \caption{\label{fig:myfigure}My caption}\figsource{Source: \cite{foo}}
[[file:img/fig1.png]]
При настройке метки есть некоторое дублирование, но оно локализовано и его довольно легко обслуживать, а метод позволяет использовать разныессылки на источники легко, но я не уверен, как он взаимодействует с метками, сгенерированными в режиме org.