预览 METAPOST 生成的 SVG

预览 METAPOST 生成的 SVG

在 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:-)快捷方式。

在此处输入图片描述

答案3

在 METAPOST 列表上询问建议:

盖奇

不幸的是它不适用于 Windows。

但寻找替代方案却导致:

https://nomacs.org/

看起来效果很好。

相关内容