包含的 SVG 边距错误

包含的 SVG 边距错误

我正在尝试使用该\includesvg命令包含一个 svg 文件。在 Illustrator 中打开时,svg 文件看起来如下所示,因为它包含一些数学模式文本:

在此处输入图片描述

现在,我希望图像使用屏幕截图中所示的画板作为视图框。但是,由于在 LaTeX 将其转换为数学模式文本之前,画板外面有文本,因此编译时会发生以下情况:

在此处输入图片描述

为清晰起见,我在这里将图像放在了 中\fbox。添加了额外的空白以适应未格式化的文本。是否有某种方法可以修改 svg 以将其大小限制为 Illustrator 中的画板大小?

更新:以下是针对上述问题的 MWE(.tex 和 .svg)。显然,命令理解的“大小”\includesvg是根据未格式化的文本计算的 - 我只想使用 svg 文件的宽度参数。

test.tex

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{svg}

\begin{document}

\fbox{\includesvg[width=\linewidth]{test.svg}}

\end{document}

test.svg

<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="737" height="368.5" viewBox="0 0 737 368.5" style="enable-background:new 0 0 737 368.5;" xml:space="preserve">
    <style type="text/css">
.st0{fill:#FFFFFF;stroke:#1D1D1B;stroke-miterlimit:10;}
.st2{fill:#1D1D1B;}
.st3{font-family:'MyriadPro-Regular';}
.st4{font-size:24px;}
    </style>
    <title>Title</title>
    <rect x="112.7" y="179.8" transform="matrix(0.9408 -0.3391 0.3391 0.9408 -45.3695 139.9065)" class="st0" width="530" height="40"/>
    <text transform="matrix(1 0 0 1 553.21 254.7425)" class="st2 st3 st4">$\Delta P_o = qlc_o\cdot\dot V^2$</text>
</svg>

答案1

您应该在包选项中将其设置inkscapeareapage,而不是默认设置:drawing

\usepackage[inkscapearea=page]{svg}

请注意,您必须使用此选项更改 svg 文件或删除文件夹中svg-inkscape要新导出的图像的导出文件。

相关内容