我试图找到以下问题的解决方案几天了:
使用Inkscape重新打开:您无法编辑文本,它会正确显示,但当您转到下一行(使用鼠标或键盘向下箭头)时,光标会停留在第一行。
这是一个令人讨厌的错误,在Inkscape中运行了一段时间,对网络版没有帮助。
但是有解决方案...请参阅以下线程以手动(在vim中)替换所有tspans: Vim search replace regex + incremental function
请参阅下面的答案以更正svg代码,以便让Inkscape文件恢复正常工作状态!!!
答案 0 :(得分:0)
Sed非常有用,可以批量修正您的文件:
cd /home/user/my/svg/files
sed -i.bak 's|<svg|<svg\nxmlns:xlink="http://www.w3.org/1999/xlink"\nxmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"|g' *.svg
这将在当前文件夹中的所有svg文件上运行,并且:
创建一个.bak
文件,您可以将其重命名为svg以获取原始文件(但我强烈主张复制您的工作文件夹,以避免在摆弄sed时出现可怕的错误)< / p>
使用换行符添加正确的命名空间(\n
)
然后:
sed -i.2.bak 's|<tspan|<tspan sodipodi:role="line" |g' *.svg
这会将sodipodi:role="line"
附加到当前文件夹中的所有tspan标记,并创建file.2.bak
个备份。
答案 1 :(得分:0)
SVG文件目前不支持多行文字。 Inkscape使用自定义XML属性来跟踪哪个文本跨度是该文本块的一部分。
当您保存为优化的SVG时,Inkscape将删除其所有自定义XML属性并写入一个vanilla SVG文件。因此,对一个文本块的意义消失了。