我想旋转表格中的文本,这在生成 pdf 文档时可以正常工作,但在使用 tex4ht 时则不行。有办法解决这个问题吗?
梅威瑟:
\documentclass{book}
\usepackage{mwe}
\begin{document}
\rotatebox{90}{text}
\end{document}
答案1
我们可以使用 CSStransform
属性和rotate()
函数来旋转 HTML 中的框。您可以尝试以下配置文件graphicx.4ht
:
% graphicx.4ht (2017-10-21-16:16), generated from tex4ht-4ht.tex
% Copyright 2003-2009 Eitan M. Gurari
% Copyright 2009-2017 TeX Users Group
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
% version 1.3c of this license or (at your option) any
% later version. The latest version of this license is in
% http://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions
% of LaTeX version 2005/12/01 or later.
%
% This work has the LPPL maintenance status "maintained".
%
% The Current Maintainer of this work
% is the TeX4ht Project <http://tug.org/tex4ht>.
%
% If you modify this program, changing the
% version identification would be appreciated.
\immediate\write-1{version 2017-10-21-16:16}
\let\Gin:esetsize\Gin@esetsize
\def\Gin@esetsize{%
\ifx \Gin@ewidth\Gin@exclamation
\let\Gin:ewidth\Gin@ewidth
\else
\setlength\tmp:dim\Gin@ewidth
\edef\Gin:ewidth{\the\tmp:dim}%
\fi
\ifx \Gin@eheight\Gin@exclamation
\let\Gin:eheight\Gin@eheight
\else
\setlength\tmp:dim\Gin@eheight
\edef\Gin:eheight{\the\tmp:dim}%
\fi
\Gin:esetsize
}
\DeclareGraphicsRule{.png}{bmp}{.xbb}{}
\DeclareGraphicsRule{.jpg}{bmp}{.xbb}{}
\DeclareGraphicsRule{.gif}{bmp}{.xbb}{}
\DeclareGraphicsRule{.pdf}{bmp}{.xbb}{}
\DeclareGraphicsRule{.svg}{bmp}{.xbb}{}
\NewConfigure{rotatebox}{2}
\pend:def\Grot@box{\a:rotatebox}
\append:def\Grot@box{\b:rotatebox}
\Configure{rotatebox}{\HCode{<span class="rotatebox" style="transform: rotate(-\Grot@angle deg);">}}{\HCode{</span>}}
\Css{.rotatebox{
display: inline-block;}}
\Hinput{graphicx}
\endinput
重要的代码如下:
\NewConfigure{rotatebox}{2}
\pend:def\Grot@box{\a:rotatebox}
\append:def\Grot@box{\b:rotatebox}
\Configure{rotatebox}{\HCode{<span class="rotatebox" style="transform: rotate(-\Grot@angle deg);">}}{\HCode{</span>}}
\Css{.rotatebox{
display: inline-block;}}
已声明新tex4ht
配置,rotatebox
并且已将配置挂钩插入命令\Grot@box
,用于绘制旋转框。然后配置挂钩以插入<span class="rotatebox">
具有style="transform: rotate(-\Grot@angle deg);"
CSS 样式的元素。此样式启用旋转。\Grot@angle
命令包含旋转角度,由于某种原因,CSS 中该角度必须为负数。
以下 TeX 代码:
\documentclass{book}
\usepackage{mwe}
\begin{document}
normal text
\rotatebox{90}{text}
\rotatebox{190}{some longer text}
normal text continues
\end{document}
在 HTML 中将以这种方式呈现:
在 PDF 中,它看起来有点不同:
问题是,当我尝试使用不同于中心的旋转点时,事情开始出错,所以我认为这是我们能得到的最好的结果。
编辑:
如果您的 Epub 阅读器不支持旋转(这恰恰证明了电子书的支持仍然很差),您可以将旋转的文本转换为图像。尝试以下配置文件:
\Preamble{xhtml,svg}
\Configure{rotatebox}{\Picture+{}}{\EndPicture}
\begin{document}
\EndPreamble
结果: