embellished-operator-002.html (19354B)
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>Embellished operators</title> 6 <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> 7 <link rel="help" href="https://w3c.github.io/mathml-core/#embellished-operators"> 8 <link rel="help" href="https://w3c.github.io/mathml-core/#definition-of-space-like-elements"> 9 <link rel="help" href="https://w3c.github.io/mathml-core/#layout-of-mrow"> 10 <meta name="assert" content="Verify definition of embellished operators"> 11 <script src="/resources/testharness.js"></script> 12 <script src="/resources/testharnessreport.js"></script> 13 <script src="/mathml/support/feature-detection.js"></script> 14 <script src="/mathml/support/box-navigation.js"></script> 15 <style> 16 /* Default spacing of operator 'X' is 0.2777777777777778em so quite different 17 from the measured/specified 0em and 1em. */ 18 math, math * { 19 font: 25px/1 Ahem; 20 } 21 mn { 22 color: black; 23 } 24 mtext.space-like { 25 color: lightblue !important; 26 } 27 .testedElement mo { 28 color: yellow !important; 29 } 30 .testedElement, .testedElement * { 31 color: blue !important; 32 background: blue !important; 33 } 34 .oof1 { 35 position: absolute; 36 } 37 .oof2 { 38 position: fixed; 39 } 40 .nobox { 41 display: none; 42 } 43 </style> 44 <script> 45 function spaceBeforeElement(element) { 46 var mnBefore = previousInFlowSibling(element); 47 return element.getBoundingClientRect().left - mnBefore.getBoundingClientRect().right; 48 } 49 50 setup({ explicit_done: true }); 51 window.addEventListener("load", runTests); 52 53 function runTests() { 54 var epsilon = 1; 55 var emToPx = 25; 56 57 ["msub", "msup", "msubsup", "munder", "mover", "munderover", 58 "mmultiscripts", "mfrac"].forEach(tag => { 59 test(function() { 60 assert_true(MathMLFeatureDetection.has_operator_spacing()); 61 var element = document.getElementsByTagName(tag)[0]; 62 assert_approx_equals(spaceBeforeElement(element), 2 * emToPx, epsilon); 63 }, `${tag} (embellished operator)`); 64 65 test(function() { 66 assert_true(MathMLFeatureDetection.has_operator_spacing()); 67 var element = document.getElementsByTagName(tag)[1]; 68 assert_approx_equals(spaceBeforeElement(element), 2 * emToPx, epsilon); 69 }, `${tag} (embellished operator, from in-flow children)`); 70 71 test(function() { 72 assert_true(MathMLFeatureDetection.has_operator_spacing()); 73 var element = document.getElementsByTagName(tag)[2]; 74 assert_approx_equals(spaceBeforeElement(element), 0, epsilon); 75 }, `${tag} (not embellished operator)`); 76 77 test(function() { 78 assert_true(MathMLFeatureDetection.has_operator_spacing()); 79 var element = document.getElementsByTagName(tag)[3]; 80 assert_approx_equals(spaceBeforeElement(element), 0, epsilon); 81 }, `${tag} (not embellished operator, from in-flow children)`); 82 }); 83 done(); 84 } 85 </script> 86 </head> 87 <body> 88 <div id="log"></div> 89 <!-- <msub>, <msup>, <msubsup>, <munder>, <mover>, <munderover>, 90 <mmultiscripts>, <mfrac> are embellished 91 operators if their first in-flow 92 child exists and is an embellished operator --> 93 <p> 94 <math> 95 <mn>X</mn> 96 <msub class="testedElement"> 97 <mo lspace="2em" rspace="0em">X</mo> 98 <mn>X</mn> 99 </msub> 100 <mn>X</mn> 101 </math> 102 </p> 103 <p> 104 <math> 105 <mn>X</mn> 106 <msup class="testedElement"> 107 <mo lspace="2em" rspace="0em">X</mo> 108 <mn>X</mn> 109 </msup> 110 <mn>X</mn> 111 </math> 112 </p> 113 <p> 114 <math> 115 <mn>X</mn> 116 <msubsup class="testedElement"> 117 <mo lspace="2em" rspace="0em">X</mo> 118 <mn>X</mn> 119 <mn>X</mn> 120 </msubsup> 121 <mn>X</mn> 122 </math> 123 </p> 124 <p> 125 <math> 126 <mn>X</mn> 127 <munder class="testedElement"> 128 <mo lspace="2em" rspace="0em">X</mo> 129 <mn>X</mn> 130 </munder> 131 <mn>X</mn> 132 </math> 133 </p> 134 <p> 135 <math> 136 <mn>X</mn> 137 <mover class="testedElement"> 138 <mo lspace="2em" rspace="0em">X</mo> 139 <mn>X</mn> 140 </mover> 141 <mn>X</mn> 142 </math> 143 </p> 144 <p> 145 <math> 146 <mn>X</mn> 147 <munderover class="testedElement"> 148 <mo lspace="2em" rspace="0em">X</mo> 149 <mn>X</mn> 150 </munderover> 151 <mn>X</mn> 152 </math> 153 </p> 154 <p> 155 <math> 156 <mn>X</mn> 157 <mmultiscripts class="testedElement"> 158 <mo lspace="2em" rspace="0em">X</mo> 159 <mn>X</mn> 160 <mn>X</mn> 161 <mn>X</mn> 162 <mn>X</mn> 163 </mmultiscripts> 164 <mn>X</mn> 165 </math> 166 </p> 167 <p> 168 <math> 169 <mn>X</mn> 170 <mfrac class="testedElement"> 171 <mo lspace="2em" rspace="0em">X</mo> 172 <mn>X</mn> 173 </mfrac> 174 <mn>X</mn> 175 </math> 176 </p> 177 178 <!-- Only in-flow children affect determination of embellished operators. --> 179 <p> 180 <math> 181 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 182 <mn>X</mn> 183 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 184 <msub class="testedElement"> 185 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 186 <mo lspace="2em" rspace="0em">X</mo> 187 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 188 <mn>X</mn> 189 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 190 </msub> 191 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 192 <mn>X</mn> 193 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 194 </math> 195 </p> 196 <p> 197 <math> 198 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 199 <mn>X</mn> 200 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 201 <msup class="testedElement"> 202 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 203 <mo lspace="2em" rspace="0em">X</mo> 204 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 205 <mn>X</mn> 206 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 207 </msup> 208 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 209 <mn>X</mn> 210 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 211 </math> 212 </p> 213 <p> 214 <math> 215 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 216 <mn>X</mn> 217 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 218 <msubsup class="testedElement"> 219 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 220 <mo lspace="2em" rspace="0em">X</mo> 221 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 222 <mn>X</mn> 223 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 224 <mn>X</mn> 225 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 226 </msubsup> 227 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 228 <mn>X</mn> 229 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 230 </math> 231 </p> 232 <p> 233 <math> 234 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 235 <mn>X</mn> 236 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 237 <munder class="testedElement"> 238 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 239 <mo lspace="2em" rspace="0em">X</mo> 240 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 241 <mn>X</mn> 242 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 243 </munder> 244 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 245 <mn>X</mn> 246 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 247 </math> 248 </p> 249 <p> 250 <math> 251 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 252 <mn>X</mn> 253 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 254 <mover class="testedElement"> 255 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 256 <mo lspace="2em" rspace="0em">X</mo> 257 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 258 <mn>X</mn> 259 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 260 </mover> 261 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 262 <mn>X</mn> 263 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 264 </math> 265 </p> 266 <p> 267 <math> 268 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 269 <mn>X</mn> 270 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 271 <munderover class="testedElement"> 272 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 273 <mo lspace="2em" rspace="0em">X</mo> 274 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 275 <mn>X</mn> 276 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 277 </munderover> 278 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 279 <mn>X</mn> 280 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 281 </math> 282 </p> 283 <p> 284 <math> 285 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 286 <mn>X</mn> 287 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 288 <mmultiscripts class="testedElement"> 289 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 290 <mo lspace="2em" rspace="0em">X</mo> 291 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 292 <mn>X</mn> 293 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 294 <mn>X</mn> 295 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 296 <mn>X</mn> 297 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 298 <mn>X</mn> 299 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 300 </mmultiscripts> 301 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 302 <mn>X</mn> 303 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 304 </math> 305 </p> 306 <p> 307 <math> 308 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 309 <mn>X</mn> 310 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 311 <mfrac class="testedElement"> 312 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 313 <mo lspace="2em" rspace="0em">X</mo> 314 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 315 <mn>X</mn> 316 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 317 </mfrac> 318 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 319 <mn>X</mn> 320 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 321 </math> 322 </p> 323 324 <!-- <msub>, <msup>, <msubsup>, <munder>, <mover>, <munderover>, 325 <mmultiscripts>, <mfrac> are not embellished 326 operators if their first in-flow child is not an embellished operator --> 327 <p> 328 <math> 329 <mn>X</mn> 330 <msub class="testedElement"> 331 <mn>X</mn> 332 <mo lspace="2em" rspace="0em">X</mo> 333 </msub> 334 <mn>X</mn> 335 </math> 336 </p> 337 <p> 338 <math> 339 <mn>X</mn> 340 <msup class="testedElement"> 341 <mn>X</mn> 342 <mo lspace="2em" rspace="0em">X</mo> 343 </msup> 344 <mn>X</mn> 345 </math> 346 </p> 347 <p> 348 <math> 349 <mn>X</mn> 350 <msubsup class="testedElement"> 351 <mn>X</mn> 352 <mo lspace="2em" rspace="0em">X</mo> 353 <mn>X</mn> 354 </msubsup> 355 <mn>X</mn> 356 </math> 357 </p> 358 <p> 359 <math> 360 <mn>X</mn> 361 <munder class="testedElement"> 362 <mn>X</mn> 363 <mo lspace="2em" rspace="0em">X</mo> 364 </munder> 365 <mn>X</mn> 366 </math> 367 </p> 368 <p> 369 <math> 370 <mn>X</mn> 371 <mover class="testedElement"> 372 <mn>X</mn> 373 <mo lspace="2em" rspace="0em">X</mo> 374 </mover> 375 <mn>X</mn> 376 </math> 377 </p> 378 <p> 379 <math> 380 <mn>X</mn> 381 <munderover class="testedElement"> 382 <mn>X</mn> 383 <mo lspace="2em" rspace="0em">X</mo> 384 </munderover> 385 <mn>X</mn> 386 </math> 387 </p> 388 <p> 389 <math> 390 <mn>X</mn> 391 <mmultiscripts class="testedElement"> 392 <mn>X</mn> 393 <mo lspace="2em" rspace="0em">X</mo> 394 <mn>X</mn> 395 <mn>X</mn> 396 <mn>X</mn> 397 </mmultiscripts> 398 <mn>X</mn> 399 </math> 400 </p> 401 <p> 402 <math> 403 <mn>X</mn> 404 <mfrac class="testedElement"> 405 <mn>X</mn> 406 <mo lspace="2em" rspace="0em">X</mo> 407 </mfrac> 408 <mn>X</mn> 409 </math> 410 </p> 411 412 <!-- Only in-flow children affect determination of embellished operators. --> 413 <p> 414 <math> 415 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 416 <mn>X</mn> 417 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 418 <msub class="testedElement"> 419 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 420 <mn>X</mn> 421 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 422 <mo lspace="2em" rspace="0em">X</mo> 423 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 424 </msub> 425 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 426 <mn>X</mn> 427 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 428 </math> 429 </p> 430 <p> 431 <math> 432 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 433 <mn>X</mn> 434 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 435 <msup class="testedElement"> 436 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 437 <mn>X</mn> 438 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 439 <mo lspace="2em" rspace="0em">X</mo> 440 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 441 </msup> 442 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 443 <mn>X</mn> 444 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 445 </math> 446 </p> 447 <p> 448 <math> 449 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 450 <mn>X</mn> 451 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 452 <msubsup class="testedElement"> 453 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 454 <mn>X</mn> 455 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 456 <mo lspace="2em" rspace="0em">X</mo> 457 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 458 <mn>X</mn> 459 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 460 </msubsup> 461 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 462 <mn>X</mn> 463 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 464 </math> 465 </p> 466 <p> 467 <math> 468 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 469 <mn>X</mn> 470 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 471 <munder class="testedElement"> 472 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 473 <mn>X</mn> 474 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 475 <mo lspace="2em" rspace="0em">X</mo> 476 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 477 </munder> 478 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 479 <mn>X</mn> 480 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 481 </math> 482 </p> 483 <p> 484 <math> 485 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 486 <mn>X</mn> 487 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 488 <mover class="testedElement"> 489 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 490 <mn>X</mn> 491 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 492 <mo lspace="2em" rspace="0em">X</mo> 493 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 494 </mover> 495 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 496 <mn>X</mn> 497 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 498 </math> 499 </p> 500 <p> 501 <math> 502 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 503 <mn>X</mn> 504 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 505 <munderover class="testedElement"> 506 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 507 <mn>X</mn> 508 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 509 <mo lspace="2em" rspace="0em">X</mo> 510 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 511 </munderover> 512 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 513 <mn>X</mn> 514 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 515 </math> 516 </p> 517 <p> 518 <math> 519 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 520 <mn>X</mn> 521 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 522 <mmultiscripts class="testedElement"> 523 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 524 <mn>X</mn> 525 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 526 <mo lspace="2em" rspace="0em">X</mo> 527 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 528 <mn>X</mn> 529 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 530 <mn>X</mn> 531 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 532 <mn>X</mn> 533 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 534 </mmultiscripts> 535 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 536 <mn>X</mn> 537 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 538 </math> 539 </p> 540 <p> 541 <math> 542 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 543 <mn>X</mn> 544 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 545 <mfrac class="testedElement"> 546 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 547 <mn>X</mn> 548 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 549 <mo lspace="2em" rspace="0em">X</mo> 550 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 551 </mfrac> 552 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 553 <mn>X</mn> 554 <mn class="oof1">0</mn><mn class="oof2">1</mn><mn class="nobox">2</mn> 555 </math> 556 </p> 557 558 </body> 559 </html>