
프레젠테이션에서 3D 보기를 전환하고 싶습니다. 나는 movie15 패키지에서 다음 명령으로 가능하다는 것을 읽었습니다. (movie15.pdf 16페이지의 주사위 예)
\movieref[3Dviewindex=N]{dice}{Click here}
하지만 이 경우 마우스로 버튼을 클릭해야 합니다. 명령을 키에 바인딩하거나 키를 통해 버튼을 호출하거나 이를 \pause ? 명령과 결합하는 것이 가능합니다.
문안 인사,
웅대함.
답변1
우선 movie15
더 이상 사용하지 마세요. 패키지는 media9
이를 교체하기 위한 것입니다.
우리는 PDF 기능을 사용할 수 있습니다.하위 페이지 탐색GoTo3DView
액션을 바인딩하려면왼쪽 <-- 오른쪽 -->키보드 키 누르기 이벤트. 전체 작업 순서를 실행한 후에만 리더는 다음/이전 문서 페이지로 이동합니다.
이 기능에는전체 화면방법.
아래 코드는 \ThreeDPresSteps
쉼표로 구분된 {<3D label>,<number of views>}
쌍 목록을 인수로 사용하는 명령을 정의합니다. (단일 경우에도 쌍 주위의 버팀대는 필수입니다.)
\ThreeDPresSteps{...}
beamer
3D 개체가 포함된 프레임 의 코드 앞에 사용됩니다 . 명령에 의해 참조되는 3D 개체의 보기는 보기 파일에 지정된 순서와 <3D label>
명령 인수의 s 순서로 진행됩니다 .
오직왼쪽 및 오른쪽 화살표키를 사용하면 페이지 내 프레젠테이션 단계 사이를 양방향으로 탐색할 수 있습니다. 다른 화살표와 PgUp/PgDn 키는 정방향(Linux의 경우 AR-9)으로만 이동합니다.
...
% initialise 3D presentation steps for the next frame
\ThreeDPresSteps{{3DobjA,7},{3DobjB,5}}
\begin{frame}{...}
\includemedia[label=3DobjA,3Dviews=3DviewsA.txt,...]{...}{...}
\includemedia[label=3DobjB,3Dviews=3DviewsB.txt,...]{...}{...}
\end{frame}
% clear 3D presentation steps before next frame
\ThreeDPresStepsReset
...
최소한의 예두 개의 3D 개체(2 xdice.u3d
) 비머 프레임에서:
\documentclass{beamer}
\usepackage{media9}[2015/11/02]
%write file with 7 predefined 3D views
\usepackage{filecontents}
\begin{filecontents*}{3Dviews.txt}
VIEW=Front
ROO=27
END
VIEW=Back
ROO=27
C2C=0 1 0
END
VIEW=Left
ROO=27
C2C=-1 0 0
END
VIEW=Right
ROO=27
C2C=1 0 0
END
VIEW=Top
ROO=27
C2C=0 0 1
END
VIEW=Bottom
ROO=27
C2C=0 0 -1
END
VIEW=Fish Eye at Centre
AAC=130
END
\end{filecontents*}
\ExplSyntaxOn
\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% command to build presentation steps for navigating through 3D views
% Argument: comma separated list of {label,number of views} pairs
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand\ThreeDPresSteps[1]{
\tl_set:Nn\l_initactn_tl{}
\clist_map_inline:nn{#1}{\tl_if_exist:cT{ann@\clist_item:nn{##1}{1}}{
\pbs_pdfobj:nnn{}{dict}{ %init. actions for all 3D objects -> goto 1st view
/S/GoTo3DView/V~0/TA~\use:c{ann@\clist_item:nn{##1}{1}}
}
\tl_put_right:Nx\l_initactn_tl{~\pbs_pdflastobj:}
}}
\pbs_pdfobj:nnn{}{dict}{} %reserve pdf obj for the `Next' nav. node
\tl_set:Nx\l_nextnode_tl{\pbs_pdflastobj:}
%primary nav. node, initialise all 3D objects in the page
\pbs_pdfobj:nnn{}{dict}{
/NA<</S/Named/N/NOP/Next[\l_initactn_tl]>>/Next~\l_nextnode_tl
}
\tl_set:Nn\l_prevactn_tl{}\tl_set:Nx\l_prevnode_tl{/Prev~\pbs_pdflastobj:}
\tl_set_eq:NN\l_currnode_tl\l_nextnode_tl
%register primary navigation node of this page
\sys_if_output_pdf:TF{
\edef\pdfpageattrsave{\the\pdfpageattr}
\tl_set:Nx\l_temp_tl{\pdfpageattrsave/PresSteps~\pbs_pdflastobj:}
\immediate\pdfpageattr\exp_after:wN{\l_temp_tl}
}{
\bool_if:NTF\g_pbs_dvipdfmx_bool{ %dvipdfmx/XeTeX
\special{pdf:put~@thispage <</PresSteps~\pbs_pdflastobj:>>~}
}{
\special{ps:~
mark~{ThisPage}~<</PresSteps~\pbs_pdflastobj:>>/PUT~pdfmark~
}
}
}
%build doubly linked list of navigation nodes
\clist_map_inline:nn{#1}{
\tl_if_exist:cT{ann@\clist_item:nn{##1}{1}}{
\int_step_inline:nnnn{1}{1}{\int_eval:n{\clist_item:nn{##1}{2}-1}}{
\pbs_pdfobj:nnn{}{dict}{} %reserve pdf obj for the `Next' nav. node
\tl_set:Nx\l_nextnode_tl{\pbs_pdflastobj:}
\pbs_pdfobj:nnn{\l_currnode_tl}{dict}{ %current navigation node
\l_prevactn_tl\l_prevnode_tl
/NA<</S/GoTo3DView/V/N/TA~\use:c{ann@\clist_item:nn{##1}{1}}>>
/Next~\l_nextnode_tl
}
\tl_set:Nx\l_prevactn_tl{
/PA<</S/GoTo3DView/V/P/TA~\use:c{ann@\clist_item:nn{##1}{1}}>>}
\tl_set:Nx\l_prevnode_tl{/Prev~\pbs_pdflastobj:}
\tl_set_eq:NN\l_currnode_tl\l_nextnode_tl
}
}
}
%final navigation node
\pbs_pdfobj:nnn{\l_currnode_tl}{dict}{\l_prevactn_tl\l_prevnode_tl}
}
\newcommand\ThreeDPresStepsReset{ %cmd for resetting pres. steps
\bool_if:nT{
\sys_if_output_pdf_p: && \cs_if_exist_p:N\pdfpageattrsave}{
\immediate\pdfpageattr\exp_after:wN{\pdfpageattrsave}}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\makeatother
\ExplSyntaxOff
\begin{document}
\begin{frame}{Intro}
Put the Reader into \Acrobatmenu{FullScreen}{\color{blue}Full Screen Mode} first!
\end{frame}
% initialise 3D presentation steps for the next frame
\ThreeDPresSteps{{diceA,7},{diceB,7}}
\begin{frame}{Go forth and back through 3D views using $\leftarrow$ and $\rightarrow$}
\centering
\includemedia[
label=diceA,
width=0.3\textheight,height=0.3\textheight,
activate=pageopen,deactivate=pageclose,
3Dviews=3Dviews.txt,
]{}{dice.U3D}
\includemedia[
label=diceB,
width=0.3\textheight,height=0.3\textheight,
activate=pageopen,deactivate=pageclose,
3Dviews=3Dviews.txt,
]{}{dice.U3D}
\end{frame}
% clear 3D presentation steps
\ThreeDPresStepsReset
\begin{frame}{The End}
\dots
\end{frame}
\end{document}