Я попытался включить PDF-документ и хотел бы добавить рамку с пузырьками/комментариями посередине. Вот часть моего кода (так как проект слишком длинный) (использую Beamer): В принципе, все работает нормально, но не тогда, когда я хочу их увидеть. Я хотел бы поместить их в середину каждого PDF-файла, к которому я присоединяюсь, чтобы было легче увидеть проблему. отредактировано ссылка на весь проект
\PassOptionsToPackage{many}{tcolorbox}
\documentclass{bredelebeamer}
\setbeamertemplate{caption}[numbered]{}
\usepackage[absolute,overlay]{textpos}
%%%%%%%%%%%%%%%%
\usepackage{array,colortbl,xcolor}
\usepackage{array}
\usepackage{booktabs}
%\setbeamertemplate{caption}[numbered]
\numberwithin{figure}{section}
\usepackage[export]{adjustbox}
\setbeamercovered{dynamic}
\usepackage{pgfplots}
\usetikzlibrary{positioning}
\usetikzlibrary{fit}
\usetikzlibrary{backgrounds}
\usetikzlibrary{calc}
\usetikzlibrary{shapes}
\usetikzlibrary{mindmap}
\usetikzlibrary{decorations.text}
% tikzmark command, for shading over items
%\newcommand{\tikzmark}[1]{\tikz[overlay,remember picture] \node (#1) {};}
\usepackage{lmodern}
\usepackage{tikz}
\usetikzlibrary{shapes.callouts}
\usepackage{xparse}
\tikzset{
invisible/.style={opacity=0,text opacity=0},
visible on/.style={alt=#1{}{invisible}},
alt/.code args={<#1>#2#3}{%
\alt<#1>{\pgfkeysalso{#2}}{\pgfkeysalso{#3}} % \pgfkeysalso doesn't
change the path
},
}
\NewDocumentCommand{\mycallout}{r<> O{opacity=0.8,text opacity=1} m m}{%
\tikz[remember picture, overlay]\node[align=center, fill=cyan!20, text
width=2cm,
#2,visible on=<#1>, rounded corners,
draw,rectangle callout,anchor=pointer,callout relative pointer=
{(230:1cm)}]
at (#3) {#4};
}
\newcommand{\tikzmark}[1]{\tikz[overlay,remember
picture,baseline=-0.5ex] \node (#1) {};}
% standard enumeration
\setbeamertemplate{enumerate items}{(\arabic{enumi})}
% default itemize
\setbeamertemplate{itemize items}[circle]
% transparency
\setbeamercovered{transparent=15}
% for resuming lists across frames
\newcounter{savedenum}
\newcommand*{\saveenum}{\setcounter{savedenum}{\theenumi}}
\newcommand*{\resume}{\setcounter{enumi}{\thesavedenum}}
\tikzset{
invisible/.style={opacity=0},
visible on/.style={alt=#1{}{invisible}},
alt/.code args={<#1>#2#3}{%
\alt<#1>{\pgfkeysalso{#2}}{\pgfkeysalso{#3}} % \pgfkeysalso doesn't
change the path
},
}
\title[]{efijrj iejijdfikj ldlckd,dkf}
% Titre du diaporama
\subtitle{}
% Sous-titre optionnel
\author{Majikdid Mkks}
% La commande \inst{...} Permet d'afficher l' affiliation de
l'intervenant.
% Si il y a plusieurs intervenants: Marcel Dupont\inst{1}, Roger
Durand\inst{2}
% Il suffit alors d'ajouter un autre institut sur le modèle ci-dessous.
\institute[]
{
MASTER RECHERCHE\\
Gestion \\
}
\date{\today}
%\date{18 Brumaire 2015}
% Optionnel. La date, généralement celle du jour de la conférence
\subject{Sujet de votre diaporama}
% C'est utilisé dans les métadonnes du PDF
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\section{IAL \& feature ordering}
\begin{frame}{Danhjhuiiu hhyhuui yhgyygtyt (1/2)}
\includegraphics[page=1,height=0.80\textheight,scale=0.90]
{images/file.pdf} \tikzmark{mf1}
\mycallout<1>[opacity=1,yshift=1cm]{mf1}{gvhh hhj: 2.929}
\includegraphics[page=1,height=0.90\textheight,scale=0.90]
{images/file1.pdf}\tikzmark{mf2}
\mycallout<1>[opacity=1]{mf2}{ddfb jjhg: 5}
\end{frame}
\begin{frame}{Danhjhuiiu hhyhuui yhgyygtyt(2/2)}
\includegraphics[page=1,height=0.90\textheight,scale=0.90]
{images/file3.pdf}\tikzmark{mf1}
\mycallout<1>[opacity=1]{mf1}{tftgt jjjb: 0.31}
\includegraphics[page=1,height=0.90\textheight,scale=0.90]
{images/file2.pdf}\tikzmark{mf2}
\mycallout<1>[opacity=1]{mf2} {fgh nhhjj: 1.457}
\end{frame}
\end{document}
решение1
Если вы включите изображение внутрь TikZ
узла, вы можете использовать его в качестве ссылки (с параметрами remember picture
и overlay
) для узлов выносок.
\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{shapes.callouts, calc}
\begin{document}
\begin{frame}
\centering
\begin{tikzpicture}[remember picture, overlay]
\node (a) {\includegraphics[width=.75\linewidth]{example-image-a}};
\node<2->[ellipse callout, draw=blue, fill=blue!30] at ($(a.center)!.5!(a.north east)$) (b) {Hello!};
\end{tikzpicture}
\end{frame}
\end{document}
Обновлять: Ответ на mirette
комментарий.
Ваш код правильный, и результат ожидаемый. tikzmark
создает ссылку на свою позицию, которая в вашем случае находится после includegraphics
команды, и mycallout
размещается в соответствии с этой ссылкой, которая в данном случае находится под нижним левым углом включенного рисунка.
Предлагаемое решение заменяется tikzmark
на , node
который охватывает всю страницу, после чего вы можете использовать любую позицию на странице для размещения выноски.
Поскольку mycallout
команда уже определена внутри tikzpicture
среды, лучше использовать ее за пределами tikzpicture, определенного для включенных страниц.
Следующий код показывает пример с двумя фигурами на одном кадре. Обе фигуры были распространены с использованием columns
среды beamer.
\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{shapes.callouts, calc}
\usepackage[most]{tcolorbox}
\tikzset{
invisible/.style={opacity=0,text opacity=0},
visible on/.style={alt=#1{}{invisible}},
alt/.code args={<#1>#2#3}{%
\alt<#1>{\pgfkeysalso{#2}}{\pgfkeysalso{#3}} % \pgfkeysalso doesn't
change the path
},
}
\NewDocumentCommand{\mycallout}{r<> O{opacity=0.8,text opacity=1} m m}{%
\tikz[remember picture, overlay]\node[align=center, fill=cyan!20, text
width=2cm,
#2,visible on=<#1>, rounded corners,
draw,rectangle callout,anchor=pointer,callout relative pointer=
{(230:1cm)}]
at (#3) {#4};
}
\begin{document}
\begin{frame}{Test callouts}
\begin{columns}[onlytextwidth]
\column{.5\linewidth}
\centering
\begin{tikzpicture}[remember picture, overlay]
\node (a) {\includegraphics[width=.85\linewidth, height=.7\textheight]{example-image-a}};
\end{tikzpicture}
\mycallout<1>[opacity=1,yshift=1cm]{a}{gvhh hhj: 2.929}
\column{.5\linewidth}
\centering
\begin{tikzpicture}[remember picture, overlay]
\node (b) {\includegraphics[width=.85\linewidth, height=.7\textheight]{example-image-b}};
\end{tikzpicture}
\mycallout<1>[opacity=1,yshift=1cm]{[shift={(-1cm,-2cm)}]b.center}{gvhh hhj: 2.929}
\end{columns}
\end{frame}
\end{document}