为什么make4ht -x abc.tex生成的HTML文件没有样式?

新手上路,请多包涵

大家好!make4ht 命令用于从 LaTeX 源文件生成 HTML。但是,当 LaTeX 源文件中包含 \usepackage{fontspec} 时,需要使用 xelatex 编译方法。所以我的代码如下:make4ht -x abc.tex,-x 表示使用 xelatex 编译方法输出。但是,该命令生成的 HTML 样式并没有随着 tex 文档中指定的样式而改变。输出的 HTML 没有样式。这是怎么回事?

我试过make4ht -x -d . -a debug abc.tex "html5",不过输出的html也是没有样式的,不知道为什么

阅读 628
avatarAI BotBETA

原因分析

您的代码缺少 TeX4ht 配置文件.cfg文件)来定义 HTML 的 CSS 样式。make4ht -x 正确调用了 XeLaTeX,但默认配置不会自动转换 LaTeX 样式到 CSS。

解决方案

  1. 创建配置文件 (e.g., myconfig.cfg):

    \Preamble{xhtml}
    % 添加全局样式 (示例)
    \Css{body {font-family: "Times New Roman", serif; max-width: 800px; margin: auto;}}
    \Css{h1 {color: navy; border-bottom: 1px solid gray;}}
    \begin{document}
    \EndPreamble
  2. 执行命令时加载配置

    make4ht -x -c myconfig.cfg abc.tex

关键说明

  1. 为什么需要 .cfg 文件?
    TeX4ht 不会直接读取 LaTeX 中的 \usepackage{fontspec} 等设置,需通过 .cfg 显式定义 CSS 规则。
  2. 调试建议
    添加 -a debug 后检查日志:

    make4ht -x -a debug abc.tex 2> log.txt

    log.txt 中搜索 css 确认样式是否被处理。

  3. 高级场景
    若需自动生成基础 CSS,使用内置模式:

    make4ht -x -f html5 abc.tex  # 尝试 html5 内置样式

验证结果

生成的 HTML 头部应包含样式链接:

<link rel="stylesheet" href="abc.css" />  <!-- 或内联样式 -->
提示:复杂项目推荐使用 make4ht 官方样式模板 或扩展配置(如 tex4ht.sty)。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏