我有一张有两列的表格。左列是文本,右列是图像。我希望行与顶部对齐。这样文本和图像就从同一水平开始。 根据这个答案我发现我可以使用adjustbox
包来做到这一点。
上述解决方案有效,但仅在使用 pdflatex 时有效。在同一个 tex 文件上使用 htlatex 时,HTML 仍显示行未对齐。似乎 htlatex 不支持adjustbox
。如果是这样,有人知道如何做到这一点,以便 HTML 和 pdf 看起来相同吗?
这是乳胶文件:
\documentclass[]{article}
\usepackage{graphicx}
\usepackage{longtable}
\usepackage{adjustbox}
\begin{document}
\begin{longtable}{|p{3in}|p{3in}|}
\\\hline
text text text text
&
\adjustbox{valign=t}{\includegraphics[scale=0.6]{mma_e1}}
\\\hline
\end{longtable}
\end{document}
使用的命令是
pdflatex foo.tex
htlatex foo.tex
Linux 上的 Texlive 2012。
这是生成的 PDF 和 HTML 的屏幕截图。你可以看到它们是不一样的
笔记:longtable
由于表格有好几页长,我需要使用。使用tabular
或tabularx
与其他东西一起m{}
居中对齐将不起作用,尽管 htlatex 似乎可以使用此选项。longtable
不支持m{}
行对齐,否则我可以使用此选项。
附录 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="index.tex">
<meta name="date" content="2013-05-17 01:15:00">
<link rel="stylesheet" type="text/css" href="index.css">
</head><body
>
<a
id="x1-2r1"></a> <!--l. 8--><div class="longtable"> <table id="TBL-1" class="longtable"
cellspacing="0" cellpadding="0" rules="groups"
><colgroup id="TBL-1-1g"><col
id="TBL-1-1"></colgroup><colgroup id="TBL-1-2g"><col
id="TBL-1-2"></colgroup>
<tr
style="vertical-align:baseline;" id="TBL-1-1-"><td style="white-space:wrap; text-align:left;" id="TBL-1-1-1"
class="td11">
<!--l. 8--><p class="noindent" > </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-1-2-"><td style="white-space:wrap; text-align:left;" id="TBL-1-2-1"
class="td11">
<!--l. 9--><p class="noindent" >text text text text </td><td style="white-space:wrap; text-align:left;" id="TBL-1-2-2"
class="td11">
<!--l. 11--><p class="noindent" >
<img
src="index0x.png" alt="PIC" class="graphics" width="180.67683pt" height="180.67683pt" ><!--tex4ht:graphics
name="index0x.png" src="mma_e1.eps"
--> </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-1-3-"><td style="white-space:wrap; text-align:left;" id="TBL-1-3-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-1-4-"><td style="white-space:wrap; text-align:left;" id="TBL-1-4-1"
class="td11"> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-1-5-"><td style="white-space:wrap; text-align:left;" id="TBL-1-5-1"
class="td11">
<!--l. 13--><p class="noindent" > </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-1-6-"><td style="white-space:wrap; text-align:left;" id="TBL-1-6-1"
class="td11">
<!--l. 13--><p class="noindent" > </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-1-7-"><td style="white-space:wrap; text-align:left;" id="TBL-1-7-1"
class="td11"> </td><td style="white-space:wrap; text-align:left;" id="TBL-1-7-2"
class="td11"></td></tr>
</table></div>
</body></html>
答案1
我找到了解决方案。所以我把它发布在这里,希望将来有人会觉得它有用。
需要添加\Css
以控制表行的垂直对齐方式。htlatex 默认使用<tr style="vertical-align:baseline;"
HTML 中的默认设置。
添加\Css{td {vertical-align:middle;}}
到 htlatex 配置文件可以修复此问题。
(请注意,它td
在上面,而不是tr
)。以下是网页的屏幕截图
以上内容\Css
添加到 htlatex 配置文件的此处:
\Preamble{ext=htm,xhtml,charset="utf-8",p-width,pic-align}
\begin{document}
\EndPreamble
\Css{td {vertical-align: middle;}} %add here