我正在使用 tex4ht 配置文件这里保持数学不变。但是,我在诸如 \text{A} 之类的命令后得到了一个虚假的空格,而这些命令被编译为 \text {A}。如何摆脱这样的空格?这是一个 MWE:
.tex
%Minimal example about extra spurious space
\documentclass[12pt]{article}
\usepackage[latin9]{inputenc}
\usepackage{amsthm}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{hyperref}
\usepackage[english]{babel}
\begin{document}
Next, some weird font stuff: $\mathbb{A}$, $\mathrm{A}$, $\text{A}$.
\end{document}
配置文件
\Preamble{xhtml,-css,NoFonts}
\newtoks\eqtoks
\def\AltMath#1${\eqtoks{$#1$}%
\HCode{\the\eqtoks}$}
\Configure{$}{}{}{\expandafter\AltMath}
\begin{document}
\EndPreamble
输出:
<?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.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)" />
<!-- html,xhtml,-css,NoFonts -->
<meta name="src" content="test.tex" />
<meta name="date" content="2018-05-01 11:27:00" />
</head><body
>
<!--l. 11--><p class="noindent" >Next, some weird font stuff: $\mathbb {A}$, $\mathrm {A}$, $\text {A}$. </p>
</body></html>
答案1
空格是 TeX 自己插入的,所以不太容易去掉。我们可以使用该l3regex
包来删除左括号前的空格。
\RequirePackage{l3regex}
\Preamble{xhtml,-css,NoFonts}
\newtoks\eqtoks
\ExplSyntaxOn
\cs_new_protected:Npn \alteqtoks #1
{
\tl_set:Nx \l_tmpa_tl {\detokenize{#1}}
% delete spaces before left brackets
\regex_replace_all:nnN { \x{20} \x{7B} } { \x{7B} } \l_tmpa_tl
\tl_set:Nx \l_tmpb_tl{ \l_tmpa_tl }
\HCode{\l_tmpb_tl}
}
\ExplSyntaxOff
\def\AltMath#1${\alteqtoks{$#1$}$}%
% \def\AltMath#1${\eqtoks{$#1$}%
% \HCode{\the\eqtoks}$}
\Configure{$}{}{}{\expandafter\AltMath}
\begin{document}
\EndPreamble
它使用该l3regex
包删除括号前的虚假空格。它产生以下结果:
<body
>
<!--l. 13--><p class="noindent" >Next, some weird font stuff: $\mathbb{A}$, $\mathrm{A}$, $\text{A}$. $a = b + c$ </p>
</body>