TeX4ht 和 PSTricks

TeX4ht 和 PSTricks

我尝试使用以下代码进行编译

mk4ht htlatex file.tex 'xhtml, charset = utf-8 pmathml' '-cunihtf-utf8-cvalidate'

公式和文字可以转录,但图形不能转录。如何解决这个问题?

\documentclass[a4paper,11pt]{article}
\usepackage{etex}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{mathtools,amsmath,amsfonts,amssymb,amsthm,mathrsfs,nccmath}
\usepackage{pstricks-add}
\usepackage[frenchb]{babel}
\begin{document}
\psset{xunit=4cm,yunit=2cm,algebraic=true,arrowscale=1.2}
\begin{pspicture}(-1.5,-3)(2.5,2.5) 
\psgrid[gridwidth=0.6pt,subgriddiv=0,gridlabels=0,gridcolor=lightgray,
xunit=0.25,yunit=0.5](-6,-6)(10,5)
\psaxes[linewidth=1pt,Dx=1,Dy=1,labels=none,ticksize=-3pt
0pt]{->} (0,0)(-1.5,-3)(2.5,2.5)
\psxTick[ticksize=-3pt](1.25){\frac{5}{4}}
\psxTick[ticksize=-3pt](0.666666666666){\frac{2}{3}}
\begin{psclip}
{\psframe[linestyle=none](-1.5,-3)(2.5,2.5)}
{\psplot[linewidth=0.8pt,plotpoints=2000]{0}{1.25}{6*x-3}}%
{\psplot[linewidth=0.8pt,plotpoints=2000]{0}{1.25}{1-(2-3*x)^2}}%
\end{psclip}
\psline[linestyle=dashed,dash=3pt 2pt]
(0,1)(0.666666666666,1)  (0.666666666666,0)
\uput[dl](0,0){O}
\uput[d](1,0){I}
\uput[l](0,1){J}
\uput[ur](1.25,-2){$\mathscr{C}_{f}$}
\uput[ur](0.75,1){$\mathscr{C}_{g}$}
\uput[d](2.42,0){$x$}
\uput[l](0,2.35){$y$}
\end{pspicture}
\end{document}

答案1

似乎用于tex4ht将图片转换为图像格式的默认转换方法与 PSTricks 和 PostScript 特殊格式存在问题。默认结果:

在此处输入图片描述

转换是通过使用某些 dvi 处理器(例如dvipng或 )处理 dvi 文件来完成的dvisvgm。默认过程是调用dvips,然后Ghostscript将 postscript 文件转换为 png。幸运的是,我们可以使用make4ht构建文件修改该过程。将以下内容保存为file.mk4(它应该具有与您的 TeX 文件相同的基本名称):

if mode == "draft" then
  Make:htlatex{}
else
  Make:htlatex{}
  Make:htlatex{}
  Make:htlatex{}
end

 Make:image("svg$",
   "dvisvgm -n -o ${output}  -p ${page} ${source}")

使用以下方式编译文档

make4ht -u file.tex "svg,pmathml"

(是的,它相当于你的mk4ht调用)。该svg选项要求用作svg转换图片的图像格式,

Make:image("svg$",
   "dvisvgm -n -o ${output}  -p ${page} ${source}")

配置图像转换本身。

结果:

在此处输入图片描述

相关内容