Это дополнительный вопрос к(не только) beamer: Автоматически прикреплять графические файлы (к выходному PDF-файлу), которые используются в команде \includegraphicsпрекрасно ответилДэвид Карлайл.
1-й блок вопросов
Например, я хотел бы прикрепить текстовый файл с тем же именем файла (и тем же местом назначения), что и у изображения, содержащего источник.
Было бы идеально, если бы это можно было сделать «терпимым к отсутствующим файлам» (прикреплять текстовый файл только в том случае, если он доступен).
Вот псевдокод для этого:
\includegraphics[width=0.5\textwidth]{example-image.png}
\textattachfile{example-image.png}{}
% If possible
\textattachfile{example-image.txt}{} % <-- Text file containing the source for example.
2-й блок вопросов
- Есть ли способ добавить в
\includegraphics
команду дополнительную опцию, напримерmyAttach=false
, чтобы можно было отключить прикрепление определенных изображений? - По умолчанию (опция не указана) следует прикрепить изображение и текстовый файл.
Вот псевдокод для этого:
\includegraphics[width=0.5\textwidth, myAttach = false]{example-image.png}
% If "myAttach = false" is not mentioned
\textattachfile{example-image.png}{}
% If possible AND if "myAttach = false" is not mentioned
\textattachfile{example-image.txt}{} % <-- Text file containing the source for example.
MWE на данный момент (результат предыдущего вопроса)
\documentclass{beamer}
\usepackage{graphicx}
\usepackage{attachfile}
\makeatletter
\let\saved@Gin@setfile\Gin@setfile
\def\Gin@setfile#1#2#3{%
\saved@Gin@setfile{#1}{#2}{#3}%
\textattachfile{#3}{}}
\makeatother
\begin{document}
% For example image, see https://tex.stackexchange.com/questions/231738
\begin{frame}[c]
\frametitle{Frame With Image}
\centering
\includegraphics[width=0.5\textwidth]{example-image.png}
\textattachfile{example-image.png}{}
\end{frame}
\end{document}
решение1
что-то вроде
\documentclass{beamer}
\usepackage{graphicx}
\usepackage{attachfile}
\makeatletter
\let\saved@Gin@setfile\Gin@setfile
\def\Gin@setfile#1#2#3{%
\saved@Gin@setfile{#1}{#2}{#3}%
\ifGin@attach
\textattachfile{#3}{}%
{\def\Gin@ext{.txt}%
\IfFileExists{#3}{%
\textattachfile{#3}{}%
}{\PackageWarning{graphicx}{no #3 to attach}}%
}%
\fi
}
\newif\ifGin@attach\Gin@attachtrue
\define@key{Gin}{attach}[true]{%
\lowercase{\Gin@boolkey{#1}}{attach}}
\makeatother
\begin{document}
% For example image, see http://tex.stackexchange.com/questions/231738
\begin{frame}[c]
\frametitle{Frame With Image}
\centering
\includegraphics[width=0.3\textwidth]{example-image.png}
\includegraphics[width=0.3\textwidth]{example-image-a.png}
\includegraphics[width=0.3\textwidth,attach=false]{example-image-b.png}
\end{frame}
\end{document}
(Пример, где example-image-a.txt
был доступен только .)