在 v1.8 中,METAPOST 允许人们创建 SVG --- 不幸的是,据我所知,没有任何 TeX / 代码编辑器具有 SVG 预览器。
成立:
https://code.google.com/archive/p/file-monitor/
但它似乎在 Windows 10 中损坏了 --- 必须切换到它的窗口并按 F5 --- 是否有该程序的更新版本,或者是否有其他简单的方法来预览 SVG?
拼凑了这个文件:
outputtemplate := "%j-%c.svg";
prologues := 3;
outputformat := "svg";
beginfig(1);
z0 = (0,0); z1 = (60,40);
z2 = (40,90); z3 = (10,70);
z4 = (30,45);
draw z0..z1..z2..z3--z4--cycle
endfig;
end
生成一个 SVG。
答案1
以下 html 文件将在浏览器窗口中预览 SVG,每秒刷新一次。我已将其硬编码以在test.svg
同一个文件夹中使用,但在实际使用中,我会以编程方式生成 html,也许通过使用下面的文件在sed -i 's|test.svg|$REALFILE| svg_preview.html'
哪里svg_preview.html
。当然,您可以在编译时(覆盖)编写 html 文件。
<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="refresh" content="1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>SVG preview Chris H</title>
<img src="test.svg">
</head>
<body>
</body>
</html>
我通过在 Inkscape 中创建 svg 来测试这一点,并且它会在我保存时更新,正如预期的那样。
一个简单的网页无法监视本地文件的变化 - 也许可以用 javascript 来完成,但我选择了一种简单的方法。
答案2
链接的查看器非常轻量,如果编译时刷新有效(我确认它对我来说无效)将类似于 TeX PDF 查看器功能,因此受到 Chris H 的回答的启发,您在大多数 TeX 编辑器配置中都具有这样的能力(那些已经在后台使用 SVG、使用 Inkscape 或其他什么的)
“查看器”的基本元素只是将 metapost 中的输出名称添加为额外 pdflatex 传递的输入名称(与 makeindex 等相同)(下面我展示了如何将其作为外部命令运行,可以将其添加到编辑器编译命令中,就像任何其他命令一样)参见
test.svg(来自问题)https://tex.stackexchange.com/a/474637/170109)
<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100">
<style>
path {
fill: none;
stroke: black;
stroke-width: 3;
}
</style>
<path d="M52.25,14c0.25,2.28-0.52,3.59-1.8,5.62c-5.76,9.14-17.9,27-39.2,39.88" />
<path d="M54.5,19.25c6.73,7.3,24.09,24.81,32.95,31.91c2.73,2.18,5.61,3.8,9.05,4.59" />
<path d="M37.36,50.16c1.64,0.34,4.04,0.36,4.98,0.25c6.79-0.79,14.29-1.91,19.66-2.4c1.56-0.14,3.25-0.39,4.66,0" />
<path d="M23,65.98c2.12,0.52,4.25,0.64,7.01,0.3c13.77-1.71,30.99-3.66,46.35-3.74c3.04-0.02,4.87,0.14,6.4,0.29" />
<path d="M47.16,66.38c0.62,1.65-0.03,2.93-0.92,4.28c-5.17,7.8-8.02,11.38-14.99,18.84c-2.11,2.25-1.5,4.18,2,3.75c7.35-0.91,28.19-5.83,40.16-7.95" />
<path d="M66.62,77.39c4.52,3.23,11,12.73,13.06,18.82" />
</svg>
平均能量损失
% !TEX TS-program = pdflatex
% !TEX encoding = UTF-8 Unicode
%%% BEGIN MWE Example
%\documentclass[12pt,a4paper]{memoir} % for a long document
%\documentclass[12pt,a4paper]{article} % for a short document
\documentclass{standalone} % for a one off
% Don't forget to read the manual: svg.pdf for options
\usepackage{svg}
\begin{document}
\includesvg{test.svg} %change the name as required
\end{document}
或者,对于喜欢冒险的人来说,可以直接从命令行运行 TeX,并让默认处理程序作为查看器进行渲染
pdflatex -shell-escape \documentclass{standalone} \usepackage{svg} \begin{document} \includesvg{test.svg} \end{document} & standalone.pdf
可以通过脚本(windows bat cmd 或 lnk)将输入文件名改进为系统参数(例如 %1)并用作 DragON-drop(Tm:-)快捷方式。