我有一个小宏,我用它来帮助我建立一些链接。下面是这个问题的一个非常简化的版本。一些链接#
在 URL 中有。所以我不得不#
使用\#
。
在生成的 PDF 中,此方法可以正常工作。但是当我编译为 HTML 时, 之前的破折号仍然#
存在,因此在 tex4ht 生成的 HTML 中,URL 无效。
如果我不逃避,#
那么乳胶就会抱怨。
我使用的实际 URL 是 https://groups.google.com/forum/#!forum/fricas-devel
这是 MWE,由 pdflatex 输出,由 make4ht 输出
\documentclass[11pt]{article}
\usepackage{hyperref}
\newcommand{\addEntry}[1]
{%
\url{#1}
}%
\begin{document}
Here is a link to a computer algebra FriCAS google news group:
\addEntry{https://groups.google.com/forum/\#!forum/fricas-devel}
\end{document}
PDF 中的结果如下
以下是结果make4ht foo.tex
(生成的 HTML 页面的屏幕截图)
您会看到 卡\
在那里。这意味着当我点击链接时,它不起作用。当我点击它时,浏览器会将链接更改为
https://groups.google.com/forum//#!forum/fricas-devel
//
因此,当只需要一个时却出现了多余的内容/
,因此我每次都必须手动/
从 URL 中删除一个才能使其正常工作。
以下是 make4ht 生成的原始 HTML
<?xml version="1.0" encoding="iso-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
<head><title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)" />
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)" />
<!-- xhtml,html -->
<meta name="src" content="foo.tex" />
<link rel="stylesheet" type="text/css" href="foo.css" />
</head><body
>
<!--l. 11--><p class="noindent" >Here is a link to a computer algebra FriCAS google news group:
</p><!--l. 13--><p class="indent" > <a
href="https://groups.google.com/forum/\#!forum/fricas-devel" class="url" ><span
class="cmtt-10x-x-109">https://groups.google.com/forum/\#!forum/fricas-devel</span></a> </p>
</body></html>
我正在使用 texlive 2016
make4ht -version
make4ht version 0.1b
which make4ht
/usr/local/texlive/2016/texmf-dist/scripts/make4ht/make4ht
如何修复此问题,以便 tex4ht 不会保留\
PDF 中的链接?
答案1
我认为最好的解决方案是允许将未转义的#
字符作为参数插入到自定义宏中:
\documentclass[11pt]{article}
\usepackage{hyperref}
\newcommand{\addEntry}[1]
{%
\expandafter\url\expandafter{\detokenize{#1}}%
}%
\begin{document}
Here is a link to a computer algebra FriCAS google news group:
\addEntry{https://groups.google.com/forum/#!forum/fricas-devel}
\end{document}
这与pdflatex
和都有效tex4ht
:
答案2
您的问题有一个解决方案,但我无法将其构建到 中。解决方案\addEntry
是(本地)更改:\catcode
#
\documentclass[11pt]{article}
\usepackage{hyperref}
\newcommand{\addEntry}[1]
{%
\url{#1}
}%
\begin{document}
Here is a link to a computer algebra FriCAS google news group:
\begingroup
\catcode`\#=11
\addEntry{https://groups.google.com/forum/#!forum/fricas-devel}
\endgroup
\end{document}