PSTricks 转 SVG

PSTricks 转 SVG

我想使用 pst-sigsys 包制作框图(如下所示:http://squobble.blogspot.com/2009/12/drawing-beautiful-block-diagrams-in_04.html)。我可以这样做并导出为 PDF 或 PS 等。

在网页上呈现区块的最佳方法是什么?我在考虑 SVG。我该如何实现呢?

答案1

您可以使用 LaTeX 创建 PSTricks 图片的 PostScript (PS) 版本(也称为 PGF/TikZ 图片的 PS 或 PDF 版本)。我建议使用该类standalone来生成一个只包含图片而没有任何其他材料的文件。然后在支持格式以及 SVG 输出的矢量图形编辑器中导入 PS 或 PDF。我建议Inkscape它是免费的开源软件,适用于 Linux、Mac 和 MS Windows。只需加载 PS 或 PDF 文件并选择“另存为”,然后选择“纯 SVG”输出。这些文件可以用现代浏览器查看,并包含在网站中。

Inkscape 还支持命令行参数(至少我拥有的 Linux 版本),因此您可以使用以下命令将 PSTricks 转换为 SVG:

latex file.tex
dvips file.dvi
inkscape file.ps --export-plain-svg=file.svg

注意:我使用了您链接的网站中的第一个示例作为测试。我删除了环境figure并使用了standalone类。边界框似乎存在问题。左侧和右侧的s[n]e[n]未完全包含在内。我使用border=5mm类选项修复了这个standalone问题。我不确定这是否是 PSTricks 的问题,或者可能是dvips

答案2

M. Gieseking 的dvisvgm是从 LaTeX 输入生成 SVG 的最先进的实用程序。

与 Inkscape 不同,它不需要中间的 PostScript。此外,它是 TeXLive 和 MiKTeX 的一部分。

SVG输出:

使用以下方法从 LaTeX 输入编译为 SVG:

latex 框图
latex 框图
dvisvgm --exact --font-format=woff --zoom=-1 图表

使用标签将(静态)SVG 嵌入到 HTML 中<img>

<img src="https://url/of/block-diagram.svg">

文件block-diagram.tex,取自问题中链接的页面:

\documentclass{article}
\usepackage{pst-sigsys}

\pagestyle{empty}

\begin{document}

\begin{figure}[ht]
\centering %
\begin{pspicture}[showgrid=false](0.5,-1.2)(9,1.55)
%--- Define blocks ---
\rput(0.5,0){\rnode{s}{$s[n]$}}
\dotnode[dotstyle=square*,dotscale=0.001](1.7,0){dot}
\psblock(3,.75){H1}{$H_1(z)$}
\psblock(3,-.75){H2}{$H_2(z)$}
\psblock(5.8,.75){B2}{$\hat H_2(z)$}
\psblock(5.8,-.75){B1}{$\hat H_1(z)$}
\pscircleop(7.7,0){ominus}
\rput(9,0){\rnode{e}{$e[n]$}}

%--- Connect blocks ---
\psset{style=Arrow}
\ncline[nodesepA=.15]{-}{s}{dot}
\ncangle[angleA=90,angleB=180]{dot}{H1}
\ncangle[angleA=-90,angleB=180]{dot}{H2}
\ncline{H1}{B2} \naput[npos=.5]{$x_1[n]$}
\ncline{H2}{B1} \naput[npos=.5]{$x_2[n]$}
\ncangle[angleB=90]{B2}{ominus} \naput[npos=.5]{$z_1[n]$}
\ncangle[angleB=-90]{B1}{ominus} \naput[npos=.5]{$z_2[n]$}
\ncline[nodesepB=.15]{ominus}{e}
\end{pspicture}
\end{figure}

\end{document}

相关内容