У меня есть документ, использующий пользовательскую среду в пакете листингов. Поэтому у меня есть встроенный код, как здесь
\begin{tawny}
(println "hello")
\end{tawny}
Мой план — использовать какой-нибудь подсветчик синтаксиса Javascript для отображения этого. Поэтому я добавил это в свой файл cf.cfg.
\Preamble{html}
\ConfigureEnv{tawny}
{\HCode{<stuff>}}
{\HCode{</stuff>}}{}{}
\begin{document}
\EndPreamble
Очевидно, я хочу позже изменить на что-то разумное. Однако на данный момент это, похоже, не влияет на рендеринг {tawny} окружения. Что-то не так с моим cf.cfg?
решение1
Итак, у меня есть ответ. Во-первых, конфигурация должна идти до раздела \begin{document} в cf.cfg. А во-вторых, мне нужно отключить листинги для HTML, иначе я получу свою разметку И все остальное.
Итак, минимальный small.tex
\documentclass{article}
\ifx \HCode\Undef
\usepackage{listings}
\lstnewenvironment{tawny}{\lstset{language=lisp}}{}
\else
\newenvironment{tawny}%
{}%
{}%
\fi
\begin{document}
\begin{tawny}
(println "hello")
\end{tawny}
\end{document}
Минимальный cf.cfg
\Preamble{html}
\ConfigureEnv{tawny}
{\HCode{<stuff>}}
{\HCode{</stuff>}}{}{}
\begin{document}
\EndPreamble
Который после
htlatex small cf
производит
<!--l. 14--><p class="noindent" ><stuff>(println ”hello”)</stuff>
Разумеется, я намерен заменить «stuff» на что-то полезное, чтобы заставить работать подсветку исходного кода.
Я бы предпочел не использовать неразрывные пробелы, но с этим можно смириться.