[tex4ht] [bug #435] tex4ht: Creates invalid html document when using \AtBeginDocument

Michal Hoftich michal.h21 at gmail.com
Wed Aug 14 10:06:40 CEST 2019


Follow-up Comment #1, bug #435 (project tex4ht):

The `\AtBeginDocument` command is usually used to redefine macros and
initialize stuff. This use works. What is the issue in this case is that it
includes a text in the document. As tex4ht outputs the HTML header at this
moment as well, it happens that the text goes  before HTML.

I don't think we can fix that easily, as we want the code usually executed in
`\AtBeginDocument` to be executed before any output is written. In this
particular case, I would advice to edit the document:

-----------
\documentclass[english]{minimal}
\usepackage[utf8]{inputenc}

\newcommand\outputatbegin[1]{#1}

\makeatletter
\AtBeginDocument{\outputatbegin{\@title}}
\makeatother
\title{Minimal example}
\begin{document}
Test body.
\end{document}
------------

The `\outputbegin` command can then be redefined for tex4ht in a custom config
file:

-------------
\Preamble{xhtml}
\renewcommand\outputatbegin[1]{\Configure{@BODY}{#1}}
\begin{document}
\EndPreamble
-------------

The redefinition uses the `\Configure{@BODY}` command that will output the
text after the `<body>` tag.




    _______________________________________________________

Reply to this item at:

  <http://puszcza.gnu.org.ua/bugs/?435>

_______________________________________________
  Message sent via/by Puszcza
  http://puszcza.gnu.org.ua/



More information about the tex4ht mailing list