我正在尝试使用pinlabel
在 Overleaf 上标记 SVG 文件。我已包含\usepackage{pinlabel}
,并尝试遵循pinlabel
文档,但每当我更改坐标时,我的文本都不会在图像上移动。
下面是我获取图像上的文本的代码(以及正在使用的其他包):
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{svg}
\svgpath{{../imgs/}}
\usepackage{amsmath}
\usepackage{pinlabel}
\begin{figure}[ht!]
\small\hair 2pt
\pinlabel $\mathbb{R}^2$ at 0 0
\centering
\includesvg[inkscapelatex=false, width=350pt]{Figure 14}
\caption{...}
\end{figure}
我在文档中看到\labellist
在标签前包含,但每当我这样做时,我都会得到一个相当棘手的错误。我认为这可能只是 Overleaf 的问题,但我不确定。
无论我尝试什么坐标,文本都不会移动。
编辑:
应用一些建议后,我得到了奇怪的输出。如果我使用:
\usepackage{pinlabel}
\usepackage{amssymb}
\begin{figure}[ht!]
\labellist
\small\hair 2pt
\pinlabel $\mathbb{R}^2$ at 400 400
\endlabellist
\centering
\includesvg[inkscapelatex=false, width=300pt]{Figure 14}
\caption{...}
\end{figure}
如果我使用(删除inkscapelatex=false
)
\usepackage{pinlabel}
\usepackage{amssymb}
\begin{figure}[ht!]
\labellist
\small\hair 2pt
\pinlabel $\mathbb{R}^2$ at 400 400
\endlabellist
\centering
\includesvg[width=300pt]{Figure 14}
\caption{...}
\end{figure}
我明白了
(当我改变坐标时,底部的小东西不动。)
这可能是使用 SVG 文件时出现的错误吗?
答案1
您需要在宏\labellist
之前和\endlabellist
之后放置\pinlabel
(查看包装文档了解更多信息):
\documentclass{article}
\usepackage{amssymb}
\usepackage{pinlabel}
\begin{document}
\begin{figure}[ht!]
\labellist % <- !
\small\hair 2pt
\pinlabel $\mathbb{R}^2$ at 120 220
\endlabellist % <- !
\centering
\includegraphics[width=350pt]{example-image-a}
\caption{...}
\end{figure}
\end{document}
这不是 Overleaf 特有的错误,而是这个包的工作原理。如果没有\labellist
and 之前的两个宏\endlabellist
,您将得到奇怪的输出或错误,例如图片顶部的这两个小等号。
但遗憾的是,该pinlabel
软件包与该软件包不兼容svg
。您可以改用该overpic
软件包,它接受任意内容以附加标签:
\documentclass{article}
\usepackage{svg}
\usepackage{amssymb}
\usepackage{overpic}
\begin{document}
\begin{figure}[ht!]
\begin{Overpic}{\includesvg[width=300pt]{Figure 14}}
\put(30,50){$\mathbb{R}^2$}
\end{Overpic}
\caption{...}
\end{figure}
\end{document}
答案2
该包pinlabel
依赖于的原始定义,\includegraphics
但包svg
需要修补此命令才能完成 Inkscape 的调用。一个适当的解决方法是使用包svg-extract
并首先将 SVG 图像导出为 PDF 格式,然后通过包含结果\includegraphics
。
\documentclass{article}
\usepackage{svg-extract}
\usepackage{amssymb}
\usepackage{pinlabel}
\newcommand*\includeextractedsvg[2][]{%
\includesvg[exclude,extractname=#2]{#2}%
\includegraphics[#1]{svg-extract/#2}%
}
\begin{document}
\begin{figure}[ht!]
\labellist
\small\hair 2pt
\pinlabel $\mathbb{R}^2$ at 40 40
\endlabellist
\centering
\includeextractedsvg[width=300pt]{svg-example}%
\caption{...}
\end{figure}
\end{document}
之后的结果第二运行已附加。