Plastex 可以将 LaTeX 渲染成漂亮的 HTML... 但有一个问题是,表格中每个单元格的内容都被 HTML 标签包围
p> content </p
即使它已经在一个
td > </td
像这样
<td ><p> content </p></td>
这会在“内容”上方和下方添加很多填充,使表格看起来很糟糕。
参考书目也发生了类似的事情。
有人知道在 Plastex 的 python 代码、ccs 样式表等中要修改什么才能防止它添加不必要的 p 标签吗?
=== 数学方程 ===
乳胶
\documentclass{book}
\begin{document}
\begin{tabular}{|c|c|}\hline
content & content\\\hline
content & content\\\hline
content & content\\\hline
\end{tabular}
\end{document}
Plastex 输出
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
<title></title>
</head>
<body>
<div> <table cellspacing="0" class="tabular">
<tr>
<td style="border-top-style:solid; border-left:1px solid black; border-right:1px solid black; border-top-color:black; border-top-width:1px; text-align:center"><p>content </p></td>
<td style="border-top-style:solid; text-align:center; border-top-color:black; border-top-width:1px; border-right:1px solid black"><p> content</p> </td>
</tr><tr>
<td style="border-top-style:solid; border-left:1px solid black; border-right:1px solid black; border-top-color:black; border-top-width:1px; text-align:center"><p>content </p></td>
<td style="border-top-style:solid; text-align:center; border-top-color:black; border-top-width:1px; border-right:1px solid black"><p> content</p></td>
</tr><tr>
<td style="border-top-style:solid; border-bottom-style:solid; border-bottom-width:1px; border-left:1px solid black; border-right:1px solid black; border-top-color:black; border-top-width:1px; border-bottom-color:black; text-align:center"><p>content </p></td>
<td style="border-top-style:solid; border-bottom-style:solid; border-bottom-width:1px; border-bottom-color:black; border-right:1px solid black; border-top-color:black; border-top-width:1px; text-align:center"><p> content</p></td>
</tr>
</table> </div>
</body>
</html>
如果您在浏览器中显示 HTML,您会看到表格的每个单元格都有 3 行,因此它们很粗。相反,如果您通过 LaTeX 运行 LaTeX 代码,则每个单元格只有 1 行,表格很紧凑,这是理所当然的。
问题在于,Plastex 用 HTML p 标签包裹每个单元格的内容,即使内容已经在 td 标签内。p 标签是多余的。
Plastex 代码源是 Python 并且可用,但它很广泛,我不知道在哪里可以找到。
答案1
我所知道的关于 Plastex 的一切都是 Tim Arnold 和 Kevin Smith 的功劳。没有他们,我什么都不知道。Echeban。
根据 Kevin 的(不太喜欢的)建议,我在 bibitem 类中将 forceParse 设置为 false:
class bibitem(List.item):
args = '[ label ] key:str'
# Echeban
forcePars = False
# End Echeban
forceParse = True -> 强制在节点的子节点集上使用 <p> 标记。用外行人的话来说,这意味着,例如,一旦收集了 \item 的所有内容,它就会被封闭在 <p> 标记中。这样做是为了保留原始 \item 的段落。但 \bibitem 始终是一个段落,将其封闭在 <p> 中会在每个 \bibitem 之前和之后添加一个空格,这看起来不太对劲,尤其是在 ePub 上。所以,我决定通过设置 forceParse = False 来删除该空格,这会产生不添加 <p> 标记的效果。它有效!
现在我必须从表格单元格内容中删除 <p>。否则表格会变得太宽,看起来不像纸上那么好看。