summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2012-09-09 22:53:18 +0000
committerKarl Berry <karl@freefriends.org>2012-09-09 22:53:18 +0000
commitf60df969137ae2a2787ee53c1a313e7eb6b46ea1 (patch)
tree2680685801ffed8aec0f955c8f06f4ad43bc8b56
parentcdaf9391292e1cbd27960a683f9cb8cf4e9ad729 (diff)
media9 (9sep12)
git-svn-id: svn://tug.org/texlive/trunk@27631 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/media9/ChangeLog9
-rw-r--r--Master/texmf-dist/doc/latex/media9/media9.pdfbin1589265 -> 1589635 bytes
-rw-r--r--Master/texmf-dist/doc/latex/media9/media9.tex73
-rw-r--r--Master/texmf-dist/tex/latex/media9/media9.sty126
4 files changed, 95 insertions, 113 deletions
diff --git a/Master/texmf-dist/doc/latex/media9/ChangeLog b/Master/texmf-dist/doc/latex/media9/ChangeLog
index 182d3185ebc..e0b3c3f92c4 100644
--- a/Master/texmf-dist/doc/latex/media9/ChangeLog
+++ b/Master/texmf-dist/doc/latex/media9/ChangeLog
@@ -1,8 +1,15 @@
+2012-09-07
+ * v0.12
+ * new: command option `3Dpsob' and 3d views file entry `PSOB' added on
+ request of J. Bowman (Asymptote)
+ * fix: empty option list of \includemedia led to crash, improved Asymptote
+ compatibility
+
2012-08-14
* v0.11
* new: package option `bigfiles' added which defers file embedding to the
ps->pdf step; needed when latex aborts with error `TeX capacity exceeded'
- + fix: minor fixes in 3Dmenu.js and media9.sty
+ * fix: minor fixes in 3Dmenu.js and media9.sty
2012-07-31
* v0.9, v.10
diff --git a/Master/texmf-dist/doc/latex/media9/media9.pdf b/Master/texmf-dist/doc/latex/media9/media9.pdf
index ac72412c640..9005f612716 100644
--- a/Master/texmf-dist/doc/latex/media9/media9.pdf
+++ b/Master/texmf-dist/doc/latex/media9/media9.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/media9/media9.tex b/Master/texmf-dist/doc/latex/media9/media9.tex
index 4fefb902b9a..6c4e0fa6585 100644
--- a/Master/texmf-dist/doc/latex/media9/media9.tex
+++ b/Master/texmf-dist/doc/latex/media9/media9.tex
@@ -99,7 +99,7 @@ The final PDF can be viewed in current Adobe Readers on MS Windows and other pla
\section{Requirements}
\begin{trivlist}
-\makeatletter
+\makeatletter
\item l3kernel (\LaTeX{} package), version $\ge \g@mix@liiikerneldate$
\item l3packages (\LaTeX{} package), version $\ge \g@mix@liiipkgdate$
\makeatother
@@ -272,6 +272,10 @@ Prescribes an initial camera roll around the optical axis (in clockwise directio
\end{verbatim}
This option directly sets the camera-to-world transformation matrix according to the PDF specification. This is an expert option to be used \emph{instead} of the `\verb+3Dc2c+', `\verb+3Dcoo+' and `\verb+3Droll+' options. Only fixed point real numbers are accepted.
\begin{verbatim}
+3Dpsob=Min | Max | W | H
+\end{verbatim}
+Expert option which directly sets either the \verb+/PS+ entry in case of perspective projection or the \verb+/OB+ entry in case of orthographic projection to one of the four possible values. Default value is \verb+Min+.
+\begin{verbatim}
3Droo=<r>
\end{verbatim}
\verb+<r>+ is a positive fixed or floating point number specifying the radius of orbit $ROO$ of the virtual camera. Good values can be found by means of the `\verb+3Dmenu+' option.
@@ -398,19 +402,20 @@ Things like animation, lighting, background of 3D objects etc. may also be scrip
\caption{Entries in a {\tt VIEW} section.}\label{tab:views}
\begin{tabular}[t]{p{0.24\linewidth}lp{0.4\linewidth}}\hline
key & type & remarks\\\hline\hline
- COO & three numbers & centre of orbit, see option `{\tt 3Dcoo}'\\
- C2C & three numbers & centre of orbit to camera vector, see option `{\tt 3Dc2c}'\\
- ROO & number & radius of orbit, see option `{\tt 3Droo}'\\
- C2W & 12 numbers & camera-to-world transformation matrix, see option `{\tt 3Dc2w}'\\
- AAC & number & camera aperture angle, see option `{\tt 3Daac}'\\
- ORTHO & number (optional) & enables orthographic view, see option `{\tt 3Dortho}'\\
- ROLL & number & camera roll, see option `{\tt 3Droll}'\\
- BGCOLOR & three numbers & 3D scene background colour (RGB), see option `{\tt 3Dbg}'\\
- RENDERMODE & string & render mode of the 3D object, see option `{\tt 3Drender}'\\
- LIGHTS & string & lighting scheme, see option `{\tt 3Dlights}'\\
- PARTSATTRS & string & allowed values are `{\tt keep}' and `{\tt restore}'; decides on whether to restore or not original part attributes before applying new ones from this view; see option `{\tt 3Dpartsattrs}'\\
- PART\,\,(sub-sec\-tion) & string & part name as in the model tree; optional if a UTF16NAME entry is present in the sub-section opened by a PART keyword, otherwise required; see Table~\ref{tab:parts} for list of possible entries\\
- CROSSSECT~(sub-section) & -- & see Table~\ref{tab:crosss} for list of possible entries\\
+ {\tt COO} & three numbers & centre of orbit, see option `{\tt 3Dcoo}'\\
+ {\tt C2C} & three numbers & centre of orbit to camera vector, see option `{\tt 3Dc2c}'\\
+ {\tt ROO} & number & radius of orbit, see option `{\tt 3Droo}'\\
+ {\tt C2W} & 12 numbers & camera-to-world transformation matrix, see option `{\tt 3Dc2w}'\\
+ {\tt AAC} & number & camera aperture angle, see option `{\tt 3Daac}'\\
+ {\tt ORTHO} & number (optional) & enables orthographic view, see option `{\tt 3Dortho}'\\
+ {\tt PSOB} & string & expert setting, see option `{\tt 3Dpsob}'\\
+ {\tt ROLL} & number & camera roll, see option `{\tt 3Droll}'\\
+ {\tt BGCOLOR} & three numbers & 3D scene background colour (RGB), see option `{\tt 3Dbg}'\\
+ {\tt RENDERMODE} & string & render mode of the 3D object, see option `{\tt 3Drender}'\\
+ {\tt LIGHTS} & string & lighting scheme, see option `{\tt 3Dlights}'\\
+ {\tt PARTSATTRS} & string & allowed values are `{\tt keep}' and `{\tt restore}'; decides on whether to restore or not original part attributes before applying new ones from this view; see option `{\tt 3Dpartsattrs}'\\
+ {\tt PART}\,\,(sub-sec\-tion) & string & part name as in the model tree; optional if a {\tt UTF16NAME} entry is present in the sub-section opened by a {\tt PART} keyword, otherwise required; see Table~\ref{tab:parts} for list of possible entries\\
+ {\tt CROSSSECT}~(sub-section) & -- & see Table~\ref{tab:crosss} for list of possible entries\\
\hline
\end{tabular}
\end{table}
@@ -420,11 +425,11 @@ Things like animation, lighting, background of 3D objects etc. may also be scrip
\caption{Entries in a {\tt PART} sub-section.}\label{tab:parts}
\begin{tabular}[t]{llp{0.5\linewidth}}\hline
key & type & remarks\\\hline\hline
- UTF16NAME & hex string & part name in UTF-16 (aka Unicode), encoded as a hexadecimal string; optional, but useful for part names composed of non-latin characters;\\
- VISIBLE & boolean & a flag (`{\tt true}' or `{\tt false}') indicating the visibility of this part\\
- OPACITY & number & a number between 0.0 and 1.0 specifying the opacity of this part\\
- RENDERMODE & string & rendermode of this part, overrides global {\tt RENDERMODE} value in parent {\tt VIEW} section, see option `{\tt 3Drender}'\\
- TRANSFORM & 12 numbers & transformation matrix defining the part's position and scaling\\
+ {\tt UTF16NAME} & hex string & part name in UTF-16 (aka Unicode), encoded as a hexadecimal string; optional, but useful for part names composed of non-latin characters;\\
+ {\tt VISIBLE} & boolean & a flag (`{\tt true}' or `{\tt false}') indicating the visibility of this part\\
+ {\tt OPACITY} & number & a number between 0.0 and 1.0 specifying the opacity of this part\\
+ {\tt RENDERMODE} & string & rendermode of this part, overrides global {\tt RENDERMODE} value in parent {\tt VIEW} section, see option `{\tt 3Drender}'\\
+ {\tt TRANSFORM} & 12 numbers & transformation matrix defining the part's position and scaling\\
\hline
\end{tabular}
\end{table}
@@ -434,8 +439,8 @@ Things like animation, lighting, background of 3D objects etc. may also be scrip
\caption{Entries in a {\tt CROSSSECT} sub-section.}\label{tab:crosss}
\begin{tabular}[t]{llp{0.5\linewidth}}\hline
key & type & remarks\\\hline\hline
- CENTER & three numbers & central point coordinates of the section plane\\
- NORMAL & three numbers & normal vector coordinates of the section plane pointing into the cut-off region\\
+ {\tt CENTER} & three numbers & central point coordinates of the section plane\\
+ {\tt NORMAL} & three numbers & normal vector coordinates of the section plane pointing into the cut-off region\\
\hline
\end{tabular}
\end{table}
@@ -547,15 +552,15 @@ parameter & description\\\hline\hline
\centering
\begin{Verbatim}
\includemedia[
- label=some_dice, % defines JavaScript object annotRM['some_dice']
+ label=some_dice, % defines JavaScript object annotRM['some_dice']
width=0.4\linewidth,height=0.3\linewidth,
activate=pageopen,
- addresource=files/random.mp4, %two video files
- addresource=files/cube.mp4,
+ addresource=random.mp4, %two video files
+ addresource=cube.mp4,
flashvars={
- source=files/random.mp4 % same path as in addresource!
- &loop=true % loop video
- &scaleMode=letterbox % preserve aspect ratio while scaling the video
+ source=random.mp4
+ &loop=true % loop video
+ &scaleMode=letterbox % preserve aspect ratio while scaling the video
}
]{}{VPlayer.swf}
@@ -568,13 +573,13 @@ parameter & description\\\hline\hline
\PushButton[
onclick={
annotRM['some_dice'].activated=true;
- annotRM['some_dice'].callAS('setSource', 'files/random.mp4');
+ annotRM['some_dice'].callAS('setSource', 'random.mp4');
}
]{\fbox{random.mp4}}
\PushButton[
onclick={
annotRM['some_dice'].activated=true;
- annotRM['some_dice'].callAS('setSource', 'files/cube.mp4');
+ annotRM['some_dice'].callAS('setSource', 'cube.mp4');
}
]{\fbox{cube.mp4}}
\end{Verbatim}
@@ -583,18 +588,18 @@ parameter & description\\\hline\hline
label=some_dice,
width=0.6\linewidth,height=0.45\linewidth,
activate=pageopen,
- addresource=files/random.mp4,
- addresource=files/cube.mp4,
+ addresource=random.mp4,
+ addresource=cube.mp4,
flashvars={
- source=files/random.mp4
+ source=random.mp4
&loop=true
&scaleMode=letterbox
}
]{}{VPlayer.swf}\hfill}
\makebox[\linewidth]{\hfill%
\PushButton[onclick={annotRM['some_dice'].activated=true;annotRM['some_dice'].callAS('playPause');}]{\fbox{\strut Play/Pause}}
- \PushButton[onclick={annotRM['some_dice'].activated=true;annotRM['some_dice'].callAS('setSource', 'files/random.mp4');}]{\fbox{\strut random.mp4}}
- \PushButton[onclick={annotRM['some_dice'].activated=true;annotRM['some_dice'].callAS('setSource', 'files/cube.mp4');}]{\fbox{\strut cube.mp4}}
+ \PushButton[onclick={annotRM['some_dice'].activated=true;annotRM['some_dice'].callAS('setSource', 'random.mp4');}]{\fbox{\strut random.mp4}}
+ \PushButton[onclick={annotRM['some_dice'].activated=true;annotRM['some_dice'].callAS('setSource', 'cube.mp4');}]{\fbox{\strut cube.mp4}}
\hfill}
\caption{Example of playing back two different embedded MP4 video files in the same video player instance. The player, `VPlayer.swf', is also embedded in the PDF. Exposed ActionScript functions `{\tt playPause}' and `{\tt setSource}' of `VPlayer.swf' (Table~\ref{AVPlayerMethods}) are used to set-up the JavaScript actions of interactive push buttons.}\label{videoa}
\end{figure}
diff --git a/Master/texmf-dist/tex/latex/media9/media9.sty b/Master/texmf-dist/tex/latex/media9/media9.sty
index 8c6096b6285..3bb5afa0dee 100644
--- a/Master/texmf-dist/tex/latex/media9/media9.sty
+++ b/Master/texmf-dist/tex/latex/media9/media9.sty
@@ -39,8 +39,8 @@
\RequirePackage{l3keys2e}
\RequirePackage{ifpdf}
-\def\g@mix@date@tl{2012/08/14}
-\def\g@mix@version@tl{0.11}
+\def\g@mix@date@tl{2012/09/07}
+\def\g@mix@version@tl{0.12}
\def\g@mix@liiikerneldate{2012/07/16}
\def\g@mix@liiipkgdate{2012/07/16}
@@ -303,6 +303,7 @@
\tl_gset_eq:NN\g_mix_opt_bg_tl\g_mix_pkgopt_bg_tl
\tl_gset_eq:NN\g_mix_opt_ls_tl\g_mix_pkgopt_ls_tl
\tl_gset_eq:NN\g_mix_opt_rm_tl\g_mix_pkgopt_rm_tl
+ \tl_gset:Nn\g_mix_opt_psob_tl{Min}
\tl_gset:Nn\g_mix_opt_coo_tl{0~0~0}
\tl_gset:Nn\g_mix_opt_ctoc_tl{0~-1~0}
\tl_gset:Nn\g_mix_opt_ciiw_tl{}
@@ -324,6 +325,7 @@
\tl_set:Nn\l_mix_bg_tl{}
\tl_set:Nn\l_mix_ls_tl{}
\tl_set:Nn\l_mix_rm_tl{}
+ \tl_set:Nn\l_mix_psob_tl{Min}
\tl_set:Nn\l_mix_coo_tl{0~0~0}
\tl_set:Nn\l_mix_ctoc_tl{0~-1~0}
\tl_set:Nn\l_mix_ciiw_tl{}
@@ -510,7 +512,7 @@
\iow_new:N\g_mix_mstreams_stream
\iow_open:Nn\g_mix_mstreams_stream{\jobname.m9}
\iow_now:Nn\g_mix_mstreams_stream{
- 1~dict~begin~
+ 1~dict~begin
/o{mark/_objdef}bind~def/O{/type/stream/OBJ~pdfmark}bind~def
/m~systemdict/mark~get~def
/P{/ASCIIHexDecode~filter/PUT~pdfmark}bind~def
@@ -518,9 +520,9 @@
}
}
}
+
\bool_if:NT\g_mix_pkgbigfiles_bool{
- \RequirePackage{atenddvi}
- \AtEndDvi{
+ \AtEndDocument{
\iow_now:Nn\g_mix_mstreams_stream{end}
\iow_close:N\g_mix_mstreams_stream
}
@@ -969,7 +971,7 @@
\NewDocumentCommand\addmediapath{m}{\file_path_include:n{#1/}}
-\NewDocumentCommand\includemedia{omm}{%#1 options, #2 text/image #3 media file
+\NewDocumentCommand\includemedia{O{}mm}{%#1 options, #2 text/image #3 media file
\group_begin:
\leavevmode
\mix_reset:
@@ -1059,6 +1061,7 @@
\tl_set_eq:NN\l_mix_bg_tl\g_mix_opt_bg_tl
\tl_set_eq:NN\l_mix_ls_tl\g_mix_opt_ls_tl
\tl_set_eq:NN\l_mix_rm_tl\g_mix_opt_rm_tl
+ \tl_set_eq:NN\l_mix_psob_tl\g_mix_opt_psob_tl
\tl_set_eq:NN\l_mix_coo_tl\g_mix_opt_coo_tl
\tl_set_eq:NN\l_mix_ctoc_tl\g_mix_opt_ctoc_tl
\tl_set_eq:NN\l_mix_ciiw_tl\g_mix_opt_ciiw_tl
@@ -1204,34 +1207,6 @@
\group_end:
\cs_set_eq:NN\mix_uriend:\group_end:
-% macro to format a real number in tl variable
-% * to show at most 9 places after `.'
-% * trailing zeros removed
-\cs_new_protected:Nn\mix_format_num:N{
- \fp_compare:nNnF{#1}={\fp_to_int:n{#1}}{
- \tl_set:Nx#1{\exp_after:wN\mix_format_num:w#1\q_stop}
- }
-}
-\cs_new:Npn\mix_format_num:w#1.#2\q_stop{
- #1.\exp_after:wN\mix_trim_places:w#2000000000\q_stop
-}
-\cs_new:Npn\mix_trim_places:w#1#2#3#4#5#6#7#8#9\q_stop{
- \mix_trim_zeros:f{\exp_after:wN\tl_head:w#9\q_stop#8#7#6#5#4#3#2#1}
-}
-\cs_new:Nn\mix_trim_zeros:n{
- \exp_after:wN\mix_trim_zeros:w#1\q_stop
-}
-\cs_generate_variant:Nn\mix_trim_zeros:n{f}
-\cs_new:Npn\mix_trim_zeros:w#1#2\q_stop{
- \str_if_eq:nnTF{#1}{0}{
- \int_compare:nNnTF{\tl_length:n{#2}}>{\c_one}{
- \exp_after:wN\mix_trim_zeros:w#2\q_stop
- }{#2}
- }{
- \tl_reverse:n{#2}#1
- }
-}
-
%macro for building the C2W transformation matrix
\cs_new:Npn\mix_calc_ciiw:w#1~#2~#3~#4~#5~#6\q_stop{
% #1,#2,#3 centre of orbit coordinates (coo)
@@ -1316,30 +1291,18 @@
\fp_set:Nn\l_mix_transz_fp{#3 - \l_mix_roo_fp*\l_mix_viewz_fp}
%format elements of transformation matrix
- \tl_set:Nx\l_mix_leftx_tl {\fp_use:N\l_mix_leftx_fp }
- \tl_set:Nx\l_mix_lefty_tl {\fp_use:N\l_mix_lefty_fp }
- \tl_set:Nx\l_mix_leftz_tl {\fp_use:N\l_mix_leftz_fp }
- \tl_set:Nx\l_mix_upx_tl {\fp_use:N\l_mix_upx_fp }
- \tl_set:Nx\l_mix_upy_tl {\fp_use:N\l_mix_upy_fp }
- \tl_set:Nx\l_mix_upz_tl {\fp_use:N\l_mix_upz_fp }
- \tl_set:Nx\l_mix_viewx_tl {\fp_use:N\l_mix_viewx_fp }
- \tl_set:Nx\l_mix_viewy_tl {\fp_use:N\l_mix_viewy_fp }
- \tl_set:Nx\l_mix_viewz_tl {\fp_use:N\l_mix_viewz_fp }
- \tl_set:Nx\l_mix_transx_tl{\fp_use:N\l_mix_transx_fp}
- \tl_set:Nx\l_mix_transy_tl{\fp_use:N\l_mix_transy_fp}
- \tl_set:Nx\l_mix_transz_tl{\fp_use:N\l_mix_transz_fp}
- \mix_format_num:N\l_mix_leftx_tl
- \mix_format_num:N\l_mix_lefty_tl
- \mix_format_num:N\l_mix_leftz_tl
- \mix_format_num:N\l_mix_upx_tl
- \mix_format_num:N\l_mix_upy_tl
- \mix_format_num:N\l_mix_upz_tl
- \mix_format_num:N\l_mix_viewx_tl
- \mix_format_num:N\l_mix_viewy_tl
- \mix_format_num:N\l_mix_viewz_tl
- \mix_format_num:N\l_mix_transx_tl
- \mix_format_num:N\l_mix_transy_tl
- \mix_format_num:N\l_mix_transz_tl
+ \tl_set:Nx\l_mix_leftx_tl {\fp_to_decimal:n{round((\l_mix_leftx_fp),9)} }
+ \tl_set:Nx\l_mix_lefty_tl {\fp_to_decimal:n{round((\l_mix_lefty_fp),9)} }
+ \tl_set:Nx\l_mix_leftz_tl {\fp_to_decimal:n{round((\l_mix_leftz_fp),9)} }
+ \tl_set:Nx\l_mix_upx_tl {\fp_to_decimal:n{round((\l_mix_upx_fp),9)} }
+ \tl_set:Nx\l_mix_upy_tl {\fp_to_decimal:n{round((\l_mix_upy_fp),9)} }
+ \tl_set:Nx\l_mix_upz_tl {\fp_to_decimal:n{round((\l_mix_upz_fp),9)} }
+ \tl_set:Nx\l_mix_viewx_tl {\fp_to_decimal:n{round((\l_mix_viewx_fp),9)} }
+ \tl_set:Nx\l_mix_viewy_tl {\fp_to_decimal:n{round((\l_mix_viewy_fp),9)} }
+ \tl_set:Nx\l_mix_viewz_tl {\fp_to_decimal:n{round((\l_mix_viewz_fp),9)} }
+ \tl_set:Nx\l_mix_transx_tl{\fp_to_decimal:n{round((\l_mix_transx_fp),9)}}
+ \tl_set:Nx\l_mix_transy_tl{\fp_to_decimal:n{round((\l_mix_transy_fp),9)}}
+ \tl_set:Nx\l_mix_transz_tl{\fp_to_decimal:n{round((\l_mix_transz_fp),9)}}
%concat elements to matrix
\tl_set:Nx\l_mix_ciiw_tl{
@@ -1360,19 +1323,16 @@
% 3D view object
\cs_new:Nn\mix_view:n{
- \tl_set:Nx\l_mix_oscale_tl{\fp_use:N\l_mix_oscale_fp}
- \mix_format_num:N\l_mix_oscale_tl
- \tl_set:Nx\l_mix_aac_tl{\fp_use:N\l_mix_aac_fp}
- \mix_format_num:N\l_mix_aac_tl
- \tl_set:Nx\l_mix_roo_tl{\fp_use:N\l_mix_roo_fp}
- \mix_format_num:N\l_mix_roo_tl
+ \tl_set:Nx\l_mix_oscale_tl{\fp_to_decimal:n{round((\l_mix_oscale_fp),9)}}
+ \tl_set:Nx\l_mix_aac_tl{\fp_to_decimal:n{round((\l_mix_aac_fp),9)}}
+ \tl_set:Nx\l_mix_roo_tl{\fp_to_decimal:n{round((\l_mix_roo_fp),9)}}
\mix_pdfobj:nnn{}{dict}{
/MS/M
/P<<
\bool_if:NTF\l_mix_iiidortho_bool{
- /Subtype/O/OS~\l_mix_oscale_tl/OB/Min
+ /Subtype/O/OS~\l_mix_oscale_tl/OB/\l_mix_psob_tl
}{
- /Subtype/P/FOV~\l_mix_aac_tl/PS/Min
+ /Subtype/P/FOV~\l_mix_aac_tl/PS/\l_mix_psob_tl
}
>>
/C2W~[\l_mix_ciiw_tl]
@@ -1590,6 +1550,11 @@
},
3Drender .value_required:,
+ 3Dpsob .code:n = {
+ \tl_gset:Nx\g_mix_opt_psob_tl{#1}
+ },
+ 3Dpsob .value_required:,
+
3Dviews .code:n = {
\file_if_exist:nTF{#1}{
\file_add_path:nN{#1}\l_mix_temp_tl
@@ -1800,6 +1765,17 @@
},
ORTHO .default:n = {1},
+ PSOB .code:n = {
+ \int_compare:nTF{\l_mix_level_tl=\c_zero}{
+ \tl_set:Nx\l_mix_psob_tl{#1}
+ }{
+ \msg_error:nnxxxx{media9}{key~not~allowed}
+ {\g_mix_vfile_tl}{\int_use:N\l_mix_lineno_int}
+ {PSOB}{a~VIEW}
+ }
+ },
+ PSOB .value_required:,
+
ROLL .code:n = {
\int_compare:nF{\l_mix_level_tl=\c_zero}{
\msg_error:nnxxxx{media9}{key~not~allowed}
@@ -1919,8 +1895,7 @@
\seq_set_split:Nnn\l_mix_args_seq{~}{#1}
\seq_map_inline:Nn\l_mix_args_seq{
\fp_set:Nn\l_mix_tmpa_fp{##1}
- \tl_set:Nx\l_mix_tmpa_tl{\fp_use:N\l_mix_tmpa_fp}
- \mix_format_num:N\l_mix_tmpa_tl
+ \tl_set:Nx\l_mix_tmpa_tl{\fp_to_decimal:n{round((\l_mix_tmpa_fp),9)}}
\tl_put_right:Nx\l_mix_ndtrans_tl{~\l_mix_tmpa_tl}
}
},
@@ -1949,12 +1924,9 @@
}
\tl_set:Nx\l_mix_args_tl{#1\space}
\exp_after:wN\mix_parse_vect:w\l_mix_args_tl\q_stop
- \tl_set:Nx\l_mix_x_tl{\fp_use:N\l_mix_x_fp}
- \mix_format_num:N\l_mix_x_tl
- \tl_set:Nx\l_mix_y_tl{\fp_use:N\l_mix_y_fp}
- \mix_format_num:N\l_mix_y_tl
- \tl_set:Nx\l_mix_z_tl{\fp_use:N\l_mix_z_fp}
- \mix_format_num:N\l_mix_z_tl
+ \tl_set:Nx\l_mix_x_tl{\fp_to_decimal:n{round((\l_mix_x_fp),9)}}
+ \tl_set:Nx\l_mix_y_tl{\fp_to_decimal:n{round((\l_mix_y_fp),9)}}
+ \tl_set:Nx\l_mix_z_tl{\fp_to_decimal:n{round((\l_mix_z_fp),9)}}
\tl_set:Nx\l_mix_cscentre_tl{
\l_mix_x_tl\space
\l_mix_y_tl\space
@@ -1977,10 +1949,8 @@
\fp_set:Nn\l_mix_roty_fp{-\l_mix_roty_fp}
%rot angle of normal vec around Z axis
\mix_angfromxy:Nnn\l_mix_rotz_fp\l_mix_x_fp\l_mix_y_fp
- \tl_set:Nx\l_mix_roty_tl{\fp_use:N\l_mix_roty_fp}
- \mix_format_num:N\l_mix_roty_tl
- \tl_set:Nx\l_mix_rotz_tl{\fp_use:N\l_mix_rotz_fp}
- \mix_format_num:N\l_mix_rotz_tl
+ \tl_set:Nx\l_mix_roty_tl{\fp_to_decimal:n{round((\l_mix_roty_fp),9)}}
+ \tl_set:Nx\l_mix_rotz_tl{\fp_to_decimal:n{round((\l_mix_rotz_fp),9)}}
\tl_set:Nx\l_mix_csorient_tl{null~\l_mix_roty_tl\space\l_mix_rotz_tl}
},
NORMAL .value_required:,