![文档中的 Tex4ht:当在首字母缩略词名称中使用 \small 时,出现错误“\leftmargin 与其定义不匹配”](https://linux22.com/image/237756/%E6%96%87%E6%A1%A3%E4%B8%AD%E7%9A%84%20Tex4ht%EF%BC%9A%E5%BD%93%E5%9C%A8%E9%A6%96%E5%AD%97%E6%AF%8D%E7%BC%A9%E7%95%A5%E8%AF%8D%E5%90%8D%E7%A7%B0%E4%B8%AD%E4%BD%BF%E7%94%A8%20%5Csmall%20%E6%97%B6%EF%BC%8C%E5%87%BA%E7%8E%B0%E9%94%99%E8%AF%AF%E2%80%9C%5Cleftmargin%20%E4%B8%8E%E5%85%B6%E5%AE%9A%E4%B9%89%E4%B8%8D%E5%8C%B9%E9%85%8D%E2%80%9D.png)
是否可以更改 tex4ht 中的 dvi 编译设置?我问这个问题是因为当我尝试为我的 latex 文件生成 html 时,出现了一个奇怪的错误:
! Use of \leftmargin doesn't match its definition.
[exec] \@listi ...argin \leftmargini \parsep 4\p@ \@plus
[exec] 2\p@ \@minus \p@ \topsep 8...
[exec] l.18 \begin{itemize}
[exec]
[exec] ?
[exec] ! Emergency stop.
[exec] \@listi ...argin \leftmargini \parsep 4\p@ \@plus
[exec] 2\p@ \@minus \p@ \topsep 8...
[exec] l.18 \begin{itemize}
生成 pdf 或 dvi(使用 texify.exe)时,我没有遇到类似错误
更新。我创建了一个产生错误的示例文本:
\documentclass[10pt]{book}
\usepackage{float}
\usepackage{hyperref}
\usepackage{tabularx}
\usepackage[style=altlist, %Verwendung eines Glossars
nonumberlist,
numberedsection,
acronym,
toc]{glossaries}
\newacronym{ie}{{\small IE}}{}
\newacronym{ml}{{\small ML}}{}
\makeglossaries
\begin{document}
\chapter{Example}
\glsresetall
\subsection{Fundamentals}
\gls{ie}
\begin{table}[tpb]
\begin{center}
\begin{tabularx}{\columnwidth}{|l|X|}
\hline
\textbf{Doc No} & \textbf{Text} \\ \hline
5641 & Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium \\ \hline
9382 & Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium \\ \hline
\end{tabularx}
\end{center}
\caption{AAA \label{tbl:unstr_example}}
\end{table}
\gls{ie}
\appendix
\printglossary[toctitle=Acronyms,type=\acronymtype]
\printglossary[toctitle=Glossary, type=main]
\bibliographystyle{apalike}
\bibliography{}
\clearpage
\pagestyle{empty}
\end{document}
示例文档的错误消息是(运行:htlatex test_doc.tex):
! Use of \leftmargin doesn't match its definition.
\@listi ...argin \leftmargini \parsep 4\p@ \@plus
2\p@ \@minus \p@ \topsep 8...
l.2 \begin{theglossary}
\glossaryheader
?
! Emergency stop.
\@listi ...argin \leftmargini \parsep 4\p@ \@plus
2\p@ \@minus \p@ \topsep 8...
l.2 \begin{theglossary}
\glossaryheader
如果我从首字母缩略词定义中删除,则不会出现错误\small
:\newacronym{ie}{{\small IE}}{information extraction}
答案1
这不是 tex4ht 的问题。这个简化的示例已经与 pdflatex + makeglossaries 不兼容:
\documentclass[10pt]{book}
\usepackage[style=altlist, %Verwendung eines Glossars
nonumberlist,
numberedsection,
acronym,
toc]{glossaries}
\newacronym{ie}{{\small IE}}{}
%\newacronym{ie}{{\protect\small IE}}{}
\makeglossaries
\begin{document}
\gls{ie}
\gls{ie}
\printglossary[toctitle=Acronyms,type=\acronymtype]
\end{document}
解决办法是保护命令\small
。