我尝试在我的html
文档中使用小写字母,但是tex4ht
我找到的代码仅适用于命令\textsc
。但是,我输入了所有字体更改\rmfamily\mdseries\scshape\selectfont
,因此重音字母不会变成小写字母。
我使用 make4ht -ul hello.tex 进行编译
我使用了@michal.h21 的 tex4ht 扩展,
https://github.com/michal-h21/helpers4ht
\documentclass[oneside,a4paper, 12pt]{article}
\usepackage{alternative4ht}
\altusepackage{fontspec}
\setmainfont{TeX Gyre Termes}
\altusepackage{polyglossia}
\setmainlanguage{czech}
\ifx\HCode\undefined \else
\AtBeginDocument{
\Configure{textsc}{\ifvmode\ShowPar\fi\NoFonts\HCode{<span class="sc">}}{\HCode{</span>}\EndNoFonts}
\Css{.sc{ font-variant: small-caps;}}
}\fi
\begin{document}
\section{LlAaLALALA}
small with selectfont: \rmfamily\mdseries\scshape\selectfont{Příliš žluťoučký kůň úpěl ďábelské ódy}\normalfont\\
small: \textsc{Příliš žluťoučký kůň úpěl ďábelské ódy}\\
capital: \textsc{PŘÍLIŠ ŽLUŤOUČKÝ KŮŇ ÚPĚL ĎÁBELSKÉ ÓDY}\\
\end{document}
答案1
fontenc
使用和的默认设置也可以获得相同的结果inputenc
:
\documentclass[oneside,a4paper, 12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\ifx\HCode\undefined \else
\AtBeginDocument{
\Configure{textsc}{\ifvmode\ShowPar\fi\NoFonts\HCode{<span class="sc">}}{\HCode{</span>}\EndNoFonts}
\Css{.sc{ font-variant: small-caps;}}
}\fi
\begin{document}
\section{LlAaLALALA}
small with selectfont: \rmfamily\mdseries\scshape\selectfont{Příliš žluťoučký kůň úpěl ďábelské ódy}\normalfont\\
small: \textsc{Příliš žluťoučký kůň úpěl ďábelské ódy}\\
capital: \textsc{PŘÍLIŠ ŽLUŤOUČKÝ KŮŇ ÚPĚL ĎÁBELSKÉ ÓDY}\\
\end{document}
当你查看 HTML 时:
<span
class="eccc1200-"><span
class="small-caps">P</span></span><span
class="eccc1200-">ř</span><span
class="eccc1200-">í<span
class="small-caps">l</span><span
class="small-caps">i</span></span><span
class="eccc1200-">š </span><span
具有两个不同类的 span 元素用于重音字母和非重音字母。在 dvi 文件中,记录如下:
fnt: eccc1200 at 12pt
set: 'P'
xxx: 't4ht@+&{35}x0159{59}'
set: 'x'
xxx: 't4ht@+&{35}x00ED{59}'
set: 'xli'
xxx: 't4ht@+&{35}x0161{59}'
set: 'x'
w: 4.360046pt
如您所见,eccc1200
整个文本都选择了字体,因此class=eccc1200-
应该使用。但显然在某处重新定义了小型大写字母以生成类small-caps
,而该类不适用于重音字母。这是tex4ht
dvi 处理器中的一个错误,不太可能修复,因为没有人理解它。因此,作为修复,您可以eccc1200-
通过 CSS 配置类以生成小型大写字母:
\ifx\HCode\undefined \else
\AtBeginDocument{
\Configure{textsc}{\ifvmode\ShowPar\fi\NoFonts\HCode{<span class="sc">}}{\HCode{</span>}\EndNoFonts}
\Css{.sc,.eccc1200-{ font-variant: small-caps;}}
}\fi