我发现了有趣的问题。在我的 tex4ht 配置文件中,有这样一行
\catcode`\:=11 \catcode`\@=11
它一直在那里。我认为这是为了解决由此产生的一个问题回答。或者我可能从其他地方感染了它。我现在不记得了。它从来没有造成过问题,除了现在。
但我刚刚发现 htlatex 在一张 tikz 图片上失败了。这是 MWE
\documentclass[12pt]{article}
\ifdefined\HCode
\def\pgfsysdriver{pgfsys-tex4ht.def}
\fi
\usepackage{tikz}
\usetikzlibrary{arrows,calc,decorations.markings,math}
\begin{document}
\begin{tikzpicture}
\draw let \n1={2} in (0,0) -- (30:\n1);
\end{tikzpicture}
\end{document}
仅就上述例子而言,极坐标。如果我使用普通坐标,则不会出现错误:
\begin{tikzpicture}
\draw let \n1={2} in (0,0) -- (1,\n1);
\end{tikzpicture}
极坐标示例使用 pdflatex 编译良好。但使用 htlatex 时会出现此错误
htlatex foo.tex "nma"
和错误
(/usr/local/texlive/2014/texmf-dist/tex/generic/tex4ht/html4.4ht)
(/usr/local/texlive/2014/texmf-dist/tex/generic/tex4ht/html4-math.4ht))
(./foo.aux))
! Package pgf Error: No shape named 30:2 is known.
See the pgf package documentation for explanation.
Type H <return> for immediate help.
l.11 \draw let \n1={2} in (0,0) -- (30:\n1)
;
? x
上面使用的 nma.cfg 文件只有这个catcode
命令:(我的 .cfg 文件大得多,但我将其缩小到这一行)这是用于重现错误的 nma.cfg 文件。
\Preamble{ext=htm,charset="utf-8",p-width,pic-align}
\catcode`\:=11 \catcode`\@=11
\begin{document}
\EndPreamble
如果不使用.cfg文件,htlatex编译极坐标示例ok并生成图像
htlatex foo.tex
我想我最终会catcode
从我的 .cfg 文件中删除这一行,因为我现在不知道它为什么在那里,并且希望不会出现其他问题。
但我想知道是否有人知道为什么会发生这种情况。这可能表明其他地方存在更严重的问题,这就是我发布此帖子的原因。
我也刚刚更新到了最新的 TL 2014。以下是供参考的文件列表
*File List*
article.cls 2014/09/29 v1.4h Standard LaTeX document class
size12.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
tex4ht.sty
tikz.sty 2013/12/13 v3.0.0 (rcs-revision 1.142)
pgf.sty 2013/12/18 v3.0.0 (rcs-revision 1.14)
pgfrcs.sty 2013/12/20 v3.0.0 (rcs-revision 1.28)
everyshi.sty 2001/05/15 v3.00 EveryShipout Package (MS)
pgfrcs.code.tex
pgfcore.sty 2010/04/11 v3.0.0 (rcs-revision 1.7)
graphicx.sty 2014/10/28 v1.0g Enhanced LaTeX Graphics (DPC,SPQR)
keyval.sty 2014/10/28 v1.15 key=value parser (DPC)
graphics.sty 2014/10/28 v1.0p Standard LaTeX Graphics (DPC,SPQR)
trig.sty 1999/03/16 v1.09 sin cos tan (DPC)
graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live
graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live
dvips.def 2014/10/14 v3.0j Driver-dependent file (DPC,SPQR)
dvips.def 2014/10/14 v3.0j Driver-dependent file (DPC,SPQR)
pgfsys.sty 2013/11/30 v3.0.0 (rcs-revision 1.47)
pgfsys.code.tex
pgf.cfg 2008/05/14 (rcs-revision 1.7)
pgfsys-tex4ht.def 2013/08/06 (rcs-revision 1.25)
pgfsys-common-svg.def 2013/08/28 (rcs-revision 1.24)
xcolor.sty 2007/01/21 v2.11 LaTeX color extensions (UK)
color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive
color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive
pgfsyssoftpath.code.tex 2013/09/09 (rcs-revision 1.9)
pgfsyssoftpath.code.tex 2013/09/09 (rcs-revision 1.9)
pgfsysprotocol.code.tex 2006/10/16 (rcs-revision 1.4)
pgfsysprotocol.code.tex 2006/10/16 (rcs-revision 1.4)
pgfcore.code.tex
pgfcorepoints.code.tex 2013/10/07 (rcs-revision 1.27)
pgfcorepathconstruct.code.tex 2013/10/07 (rcs-revision 1.29)
pgfcorepathusage.code.tex 2013/12/13 (rcs-revision 1.23)
pgfcorescopes.code.tex 2013/10/09 (rcs-revision 1.44)
pgfcoregraphicstate.code.tex 2013/09/19 (rcs-revision 1.11)
pgfcoretransformations.code.tex 2013/10/10 (rcs-revision 1.17)
pgfcorequick.code.tex 2008/10/09 (rcs-revision 1.3)
pgfcoreobjects.code.tex 2006/10/11 (rcs-revision 1.2)
pgfcorepathprocessing.code.tex 2013/09/09 (rcs-revision 1.9)
pgfcorearrows.code.tex 2013/11/07 (rcs-revision 1.40)
pgfcoreshade.code.tex 2013/07/15 (rcs-revision 1.15)
pgfcoreimage.code.tex 2013/07/15 (rcs-revision 1.18)
pgfcoreexternal.code.tex 2013/07/15 (rcs-revision 1.20)
pgfcorelayers.code.tex 2013/07/18 (rcs-revision 1.7)
pgfcoretransparency.code.tex 2013/09/30 (rcs-revision 1.5)
pgfcorepatterns.code.tex 2013/11/07 (rcs-revision 1.5)
pgfmoduleshapes.code.tex 2013/10/31 (rcs-revision 1.34)
pgfmoduleplot.code.tex 2013/07/31 (rcs-revision 1.12)
pgfcomp-version-0-65.sty 2007/07/03 v3.0.0 (rcs-revision 1.7)
pgfcomp-version-1-18.sty 2007/07/23 v3.0.0 (rcs-revision 1.1)
pgffor.sty 2013/12/13 v3.0.0 (rcs-revision 1.25)
pgfkeys.sty
pgfkeys.code.tex
pgfmath.sty
pgfmath.code.tex
pgffor.code.tex
tikz.code.tex
pgflibraryplothandlers.code.tex 2013/08/31 v3.0.0 (rcs-revision 1.20)
pgfmodulematrix.code.tex 2013/09/17 (rcs-revision 1.8)
tikzlibrarytopaths.code.tex 2008/06/17 v3.0.0 (rcs-revision 1.2)
tikzlibraryarrows.code.tex 2008/01/09 v3.0.0 (rcs-revision 1.1)
pgflibraryarrows.code.tex 2013/09/23 v3.0.0 (rcs-revision 1.16)
tikzlibrarycalc.code.tex 2013/07/15 v3.0.0 (rcs-revision 1.9)
***********
答案1
冒号是 TikZ 中的语法字符,如果类别代码发生变化,则 TikZ 极坐标解析器将不再看到冒号。也许在极坐标语句之前tikzpicture
通过, 恢复类别代码会有所帮助。\catcode`\:=12
例子:
\documentclass[12pt]{article}
\ifdefined\HCode
\def\pgfsysdriver{pgfsys-tex4ht.def}
\fi
\usepackage{tikz}
\usetikzlibrary{arrows,calc,decorations.markings,math}
\begin{document}
\begin{tikzpicture}
\catcode`\:=12
\draw let \n1={2} in (0,0) -- (30:\n1);
\end{tikzpicture}
\end{document}