TeX4ht-防止 HTML 中的换行?

TeX4ht-防止 HTML 中的换行?

默认情况下,TeX4ht 会将输入中的长行文本拆分为输出 HTML 文件中的短行。有什么方法可以消除这些额外的换行符?(请注意,我试图避免在来源本身,而不是在 Web 浏览器最终显示的文档中。

例如,假设我从 TeX 源开始

\documentclass{article}
\begin{document}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ante odio, condimentum ut nunc vel, rutrum rhoncus arcu. Praesent id justo tellus. Donec ut eros sagittis, bibendum augue id, luctus nulla. Aenean commodo ultrices turpis eget cursus. Pellentesque laoreet turpis leo, gravida laoreet libero sagittis sit amet. Fusce ut suscipit purus. Donec euismod dolor sit amet risus lacinia, ut pellentesque orci posuere. Morbi rutrum, sem ut elementum elementum, urna purus faucibus felis, vel rutrum mauris risus non erat. Proin commodo felis id mi feugiat rutrum. Cras et tempor massa. Donec tempor ante sed nibh varius, quis rutrum ipsum rutrum. Integer consectetur justo fermentum libero ultrices, eu fermentum nisl tempor.
\end{document}

如果我运行htlatex,我会得到以下 HTML 作为输出:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  
  "http://www.w3.org/TR/html4/loose.dtd">  
<html > 
<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 --> 
<meta name="src" content="test.tex"> 
<meta name="date" content="2013-10-02 14:03:00"> 
<link rel="stylesheet" type="text/css" href="test.css"> 
</head><body 
>
<!--l. 3--><p class="noindent" >Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ante odio,
condimentum ut nunc vel, rutrum rhoncus arcu. Praesent id justo tellus. Donec ut
eros sagittis, bibendum augue id, luctus nulla. Aenean commodo ultrices turpis eget
cursus. Pellentesque laoreet turpis leo, gravida laoreet libero sagittis sit amet. Fusce
ut suscipit purus. Donec euismod dolor sit amet risus lacinia, ut pellentesque orci
posuere. Morbi rutrum, sem ut elementum elementum, urna purus faucibus felis, vel
rutrum mauris risus non erat. Proin commodo felis id mi feugiat rutrum. Cras et
tempor massa. Donec tempor ante sed nibh varius, quis rutrum ipsum rutrum.
Integer consectetur justo fermentum libero ultrices, eu fermentum nisl tempor.

</body></html> 

请注意,输入中的单行长行在输出中被拆分成多行短行。我希望它像以前一样只显示一行。

(顺便问一下,我为什么要关心这个问题?某些内容管理系统(例如,WordPress 的某些实例)会自动将 HTML 中的换行符解释为实际的换行符。因此,文档的最终呈现外观是错误的。有人可能会认为真正的问题在于内容管理系统中使用的 CSS,但由于各种原因(权限、向后兼容性等),修改 CSS 通常不是一个可行的选择。)

答案1

这些换行符来自转换过程中使用的 dvi 文件。您可以修改页面尺寸,这样 dvi 文件中就不会出现换行符。为此,您可以使用自定义配置文件,这样您就不必触碰 TeX 源文件。

文件mycfg.cfg

\Preamble{xhtml}
\textwidth=\maxdimen
\begin{document}
\EndPreamble

不幸的是,尺寸的最大限制,所以如果您的段落长度大于这个尺寸,它无论如何都会分成更多行。

使用以下方式编译

htlatex filename mycfg

结果:

<?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/)" /> 
<!-- html,xhtml --> 
<meta name="src" content="sample.tex" /> 
<meta name="date" content="2013-10-02 21:28:00" /> 
<link rel="stylesheet" type="text/css" href="sample.css" /> 
</head><body 
>
<!--l. 3--><p class="noindent" >Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ante odio, condimentum ut nunc vel, rutrum rhoncus arcu. Praesent id justo tellus. Donec ut eros sagittis, bibendum augue id, luctus nulla. Aenean commodo ultrices turpis eget cursus. Pellentesque laoreet turpis leo, gravida laoreet libero sagittis sit amet. Fusce ut suscipit purus. Donec euismod dolor sit amet risus lacinia, ut pellentesque orci posuere. Morbi rutrum, sem ut elementum elementum, urna purus faucibus felis, vel rutrum mauris risus non erat. Proin commodo felis id mi feugiat rutrum. Cras et tempor massa. Donec tempor ante sed nibh varius, quis rutrum ipsum rutrum. Integer consectetur justo fermentum libero ultrices, eu fermentum nisl tempor. </p> 
</body></html> 

相关内容