Я хочу разместить надстрочный и подстрочный индекс в одном месте для текста, в SVG.Это требование в математических и химических уравнениях.Кажется, в SVg нет возможности для такого требования.
Требование состоит в том, что когда верхний индекс и нижний индекс располагаются рядом с каким-либо текстом, их значение происхождения x должно быть идентичным.Эти супер и подписки могут появляться до или после текста, и требование применяется к обоим случаям.Сначала я попытался разместить их, используя элемент SVG с координатами x & y, и он работает очень хорошо (приложение 1).Однако проблема возникает при программном поиске координат x & y для каждого элемента.
Затем я попытался использовать элемент с применением dx, что также хорошо работает, но dx зависит от размера шрифта.Прежде чем пытаться реализовать собственное решение, я хотел бы знать, есть ли лучшее решение.
Я приложил код, который использовал, и примеры изображений.
Моя первая попытка.
<?xml version="1.0" encoding="UTF-8"?>
<!-- Code that works well with x & y coordinates for all elements -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"
viewBox="0 0 64 64" style="stroke-width:0;fill:black;font-size:24px;font-family:Sans-serif">
<text x="17" y="50" font-size="48px">B</text>
<text x="4" y="22">A</text>
<text x="43.59" y="22" font-size="36px">±</text>
<text x="4" y="63">Z</text>
<text x="43.59" y="63">C</text>
</svg>
Вторая попытка с рекомендуемыми элементами SVG
<?xml version="1.0" encoding="UTF-8"?>
<!-- Textbook recommended for super and subscripts, unacceptable result -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"
viewBox="0 0 128 128" style="stroke-width:0;fill:black;font-size:24px;font-family:Sans-serif">
<text x="1" y="64" font-size="24px" letter-spacing="-4">
<tspan baseline-shift="super" font-size="18px" >A</tspan>
<tspan baseline-shift="sub" font-size="18px" text-anchor="end">Z</tspan>
B
<tspan baseline-shift="super" font-size="18px" >±</tspan>
<tspan baseline-shift="sub" font-size="18px">C</tspan>
</text>
</svg>
Третья попытка с отрицательным dx для элементов tspan.
<?xml version="1.0" encoding="UTF-8"?>
<!-- Code that works well with minus values for dx of subscripts -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"
viewBox="0 0 128 128" style="stroke-width:0;fill:black;font-size:24px;font-family:Sans-serif">
<text x="1" y="64" font-size="24px" letter-spacing="-4">
<tspan baseline-shift="super" font-size="18px" >A</tspan>
<tspan baseline-shift="sub" dx="-10" font-size="18px" text-anchor="end">Z</tspan>
B
<tspan baseline-shift="super" font-size="18px" >±</tspan>
<tspan baseline-shift="sub" dx="-10" font-size="18px">C</tspan>
</text>
</svg>
Нет сообщений об ошибках.Ожидаемые и фактические результаты показаны на прилагаемых изображениях.1. Результат с координатами x & y для всех элементов SVG
2. Результат с рекомендуемыми элементами text & tspan и значениями смещения базовой линии super и sub
3. Результат с текстом и значениями tspan и минус dx для подписок& and minus dx values for subscripts">