我使用 Scientific Word (SW) 来生成 Latex,然后我使用 Latex2html (l2h) 处理 Latex 输出以生成 HTML,因为 l2h 对 HTML 的支持比 SW 更好(目录、将页面分成子页面等...)
SW 支持该软件包hyperref
,但 l2h 不支持。
因此,当使用 SW 添加超链接时,生成的代码如下所示:
\documentclass{article}%
\usepackage{html}
\usepackage{hyperref}%
\begin{document}
\href{http://www.yahoo.com}{yahoo}
\end{document}
以上内容无法由 l2h 直接处理。要使用 l2h 处理此内容,请执行以下行
\href{http://www.yahoo.com}{yahoo}
需要更改为 l2h 将处理的一个,即
\htmladdnormallink{yahoo}{http://www.yahoo.com}
因此我认为需要做的就是制作renewcommand
或类似的东西(我不是 Latex 专家)。所以我会写
\documentclass{article}%
\usepackage{html}
\usepackage{hyperref}%
\begin{htmlonly}
write something here to make \href{a}{b} below mean \htmladdnormallink{b}{a}
\end{htmlonly}
\begin{document}
\href{http://www.yahoo.com}{yahoo}
\end{document}
我不知道上述内容是否有意义或可能。没有这个,我每次都必须找到一种方法来解析乳胶文件并将每个文件更改为\href
(\htmladdnormallink
也许我可以学习sed
或类似的方式来做到这一点。但如果有一种方法可以用乳胶宏来做,那就更好了。
问题是:如果上述操作可行,那么在顶部添加此命令的正确语法是什么?
供参考
为了完成,这是最终设置,以便链接在 SW 和 l2h 中都能工作
\documentclass{article}%
\usepackage{html} % for L2H
\usepackage{hyperref}% for latex
\begin{document}
\begin{htmlonly}
\def\href#1#2{\htmladdnormallink{#2}{#1}} %for L2H only
\end{htmlonly}
\href{http://www.yahoo.com}{yahoo}
\end{document}
答案1
请尝试以下操作:
\documentclass{article}%
\usepackage{ifpdf}
\usepackage{html}
\usepackage{hyperref}%
\begin{document}
\ifpdf\else
\def\href#1#2{\htmladdnormallink{#2}{#1}}
\fi
\href{http://www.yahoo.com}{yahoo}
\end{document}
您\ifpdf\else ... \fi
可以定义仅在运行 pdflatex 以外的任何程序时使用的代码。