更新的问题
dvisvgm 生成的 svg 在放置在 html 文档中时似乎会相互影响。
例如,它看起来应该是这样的: https://jsfiddle.net/y8nq7xnz/1/
另一方面,当我将上面的 svg 移动到另一个 svg 下方时,结果就变得混乱了: https://jsfiddle.net/ubq3n30c/3/
问题:哪些部分有问题?我该怎么做才能避免这种情况再次发生?我考虑将 svg 存储到文件中而不使用内联 svg,但这是我最不喜欢的选项。
感谢您的任何想法。
老问题
前几天我注意到一个非常奇怪的错误。对于我的网站,我想包含由 dvisvgm 渲染的 Latex-SVG。生成的 svg 看起来很好,除非它在 html 中的某些位置。例如:
在 body 标签的正下方,svg 看起来很好。
相比之下:
该图像在页面的其他位置看起来非常糟糕。
我首先怀疑的是 css,但事实并非如此,因为当我在应用了相同样式的区域内移动 svg 时也会发生“正确/错误切换”。
您可以在以下位置找到 svghttps://jsfiddle.net/ubq3n30c/。在 jsfiddle 中它看起来也很好,在我插入它的每个其他页面中也是如此。只是我的页面似乎在某些位置给 latex-svg 带来了困难……
知道这是啥吗?
答案1
我最终没有直接嵌入 svg,而是通过图像标签嵌入,如下所示(在 javascript 中):
mySvg = '<img src="data:image/svg+xml;utf8,' + mySvg + '">';
这只回答了“我能做什么才能避免这种情况再次发生”的问题,但没有回答“哪些部分存在冲突”。这个我还是不知道。
答案2
我猜问题出在路径 ID 冲突。由于两个 SVG 文件使用相同的 ID,因此当它们组合在单个 HTML 文件中时,它们不再是唯一的。因此,您可能需要对 SVG 文件进行后处理,并在 ID 中添加某种文件标记,例如和,g0-111-0
而g0-111-1
不是仅g0-111
在两个 SVG 中使用。