\NeedsTeXFormat{LaTeX2e} \ProvidesExplPackage{luamml-demo}{2024-08-14}{v0.1.0}{Reasonable default definitions for luamml} \sys_if_engine_luatex:F { \msg_new:nnn {luamml-demo} {pdftex-option-ignored} {Option~`#1'~is~being~ignored~in~pdfTeX~mode.} \DeclareOption*{\msg_warning:nnx {luamml-demo} {pdftex-option-ignored} {\CurrentOption}} \ProcessOptions\relax \RequirePackage{luamml-pdf-demo} \endinput } \RequirePackage{luamml}% Loading luamml is pretty much the point \RequirePackage{amsmath,array}% These are more or less expected in luamml especially for advanced constructs \AtBeginDocument{% \@ifpackageloaded{unicode-math}{}{% \RegisterFamilyMapping\symsymbols{oms}% \RegisterFamilyMapping\symletters{oml}% \RegisterFamilyMapping\symlargesymbols{omx}% } } \bool_new:N \l__luamml_demo_structelem_bool \DeclareOption{tracing}{ \tracingmathml=2 } \DeclareOption{structelem}{ \bool_set_true:N \l__luamml_demo_structelem_bool \luamml_flag_structelem: } \DeclareOption{files}{ \int_new:N \g__luamml_demo_mathml_int \luamml_set_filename:n { \immediateassignment \int_gincr:N \g__luamml_demo_mathml_int \jobname -formula- \int_use:N \g__luamml_demo_mathml_int .xml } } \DeclareOption{l3build}{ \luamml_set_filename:n { \jobname .mml } \luamml_begin_single_file: } \ProcessOptions\relax \cs_new_eq:NN \LuaMMLSetFilename \luamml_set_filename:n \cs_generate_variant:Nn \pdffile_filespec:nnn {ene} \int_new:N \g__luamml_demo_af_int \cs_new_protected:Npn \LuaMMLTagAF #1#2 { \tag_mc_end_push: \int_gincr:N \g__luamml_demo_af_int \exp_args:Ne \pdf_object_new:nn{__luamml_demo_\int_use:N \g__luamml_demo_af_int}{dict} \exp_args:Ne \tag_struct_begin:n{tag=Formula,AF=__luamml_demo_\int_use:N \g__luamml_demo_af_int,#1} \bool_if:NF \l__luamml_demo_structelem_bool { \tag_mc_begin:n{tag=Formula} } #2 \group_begin: \pdfdict_put:nnn {l_pdffile/Filespec} {AFRelationship}{/Supplement} \pdffile_filespec:ene { __luamml_demo_ \int_use:N \g__luamml_demo_af_int } { test.xml } { \luamml_get_last_mathml_stream:e{}\c_space_tl 0~R} \group_end: \bool_if:NF \l__luamml_demo_structelem_bool { \tag_mc_end: } \tag_struct_end: \tag_mc_begin_pop:n{} } \NewDocumentCommand\AnnotateFormula{ o m m }{% \IfValueTF{#1}{% \luamml_annotate:nen{#1}% }{ \luamml_annotate:en }{#2}{#3} } \cs_set_eq:NN \WriteoutFormula \luamml_pdf_write: