删除命令前的空格

删除命令前的空格

当使用法语 guillemets 与 TeX4HT 时,生成的符号后面/前面没有像应有的那样有不间断空格,从而导致 HTML 中出现错误的换行。

我尝试重置\og\fg使用babel.4ht文件,但什么都做不了。到目前为止,我找到的唯一解决方案如下:

我使用以下命令定义了新\Og命令\Fg

\ifluatex
  \newcommand{\Og}{\og}
  \newcommand{\Fg}{\fg{}}
\else
  \newcommand{\Og}{\HCode{« }}
  \newcommand{\Fg}{\HCode{ »}}
\fi

同时还有一个sedhack 来删除之前的空格 

sed -i "s@ *  *@\ @g" $HTML

我想删除它并在文件中正确执行.4ht。我该怎么做?

编辑:

\Og/ hack\Fg实际上对我来说是可以接受的,但 sed 不行,所以我修改了这个问题的标题:如何删除命令前的空格?

答案1

您可以使用以下\unskip方法删除之前不需要的空间 

\documentclass{article}

\usepackage[frenchb]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\begin{document}
some text \og and more text \fg\ and again some text    
\end{document}

您可以在自定义配置文件中或者在以下位置重新\og定义:\fgfrenchb.4ht

hello.cfg

\Preamble{xhtml}
\AtBeginDocument{
  \def\og{\HCode{« }}
  \def\fg{\unskip\HCode{ »}}
}
\begin{document}
  \EndPreamble

编译

htlatex filename "hello,charset=utf-8" " -cunihtf -utf8"

结果:

<p class="noindent" >some text &laquo;&nbsp;and more text&nbsp;&raquo; and again some text
</p>

相关内容