% $Id: tex4ht-jats.tex 1545 2024-08-13 19:02:54Z michal_h21 $ % compile 3 times: latex tex4ht-jats % or xhlatex tex4ht-jats "html,3,sections+" % % Copyright 2009-2024 TeX Users Group % Copyright 2000-2009 Eitan M. Gurari % Released under LPPL 1.3c+. % See tex4ht-cpright.tex for license text. %%%%%%%%%%%%%%%%%% load style files %%%%%%%%%%%%%%%%%%%%%%%%%% \ifx \HTML\UnDef \def\HTML{jats} \def\CONFIG{\jobname} \def\MAKETITLE{\author{Eitan M. Gurari}} \def\next{\input mktex4ht.4ht \endinput} \expandafter\next \fi \input{common.tex} \input{tex4ht-cpright.tex} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Preamble} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \<<< % jats.4ht (|version), generated from |jobname.tex % Copyright 2022-2024 TeX Users Group | >>> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Basic information} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% JATS support in TeX4ht is based on HTML and MathML configurations. Unsupported elements will be converted using make4ht DOM filters. Filters will be used also for the document structure, as JATS wants some elements in the back (bibliography, etc.) Only basic structures will be configured by hand in this configuration file. We support the Journal Archiving and Interchange Tag Library NISO JATS Version 1.3. Documentation for tags is available at: \Link{https://jats.nlm.nih.gov/archiving/tag-library/1.3/chapter/getting-started.html}{} https://jats.nlm.nih.gov/archiving/tag-library/1.3/chapter/getting-started.html \EndLink %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Package configurations} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Basic system} \<<< \special{t4ht.xml} \Configure{ext}{xml} | | | | | | | >>> \<<< | % We must override MathML's version of basic font commands. \AtBeginDocument{% | } >>> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Classes} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \<<< | | >>> \<<< | | >>> \<<< | | | >>> Shared configurations for base LaTeX classes. \<<< | >>> Configurations that are shared only for article and report \<<< | >>> \<<< | >>> \section{Configurations for Koma Script} \<<< | | >>> \<<< | | >>> \<<< | | | >>> \<<< | >>> \<<< | >>> \<<< | >>> \section{Configurations for AMS classes} \<<< | | >>> \<<< | | | >>> \<<< | | >>> |<<< >>> \<<< | >>> \<<< | | | | | | | | >>> \section{Configurations for Memoir} \<<< | | | >>> \section{Shared class configurations} \<<< | | | | | | | | >>> \<<< | >>> \<<< | >>> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Basic system configurations} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \<<< \Configure{VERSION}{\HCode{\Hnewline}} % select JATS version \NewConfigure{DtdVersion}{1} \Configure{DtdVersion}{1.3} \def\:DTD{jats} % this is necessary to prevent html-mml from overriding DOCTYPE % \Configure{DOCTYPE}{\HCode{\Hnewline}} % XML configuratins \edef\html:xmlns{} \NewConfigure{xmlns}[2]{\concat:config\html:xmlns{xmlns:#1="#2"\Hnewline}} \Configure{xmlns}{xlink}{http://www.w3.org/1999/xlink} \Configure{xmlns}{mml}{http://www.w3.org/1998/Math/MathML} \Configure{HTML}{\HCode{
\Hnewline}}{\HCode{\Hnewline
}} \Configure{@HEAD}{} \Configure{HEAD}{\HCode{}}{\HCode{}} % Add header structure % Journal info in . It needs to be provided fully from the user configuration \NewConfigure{JournalMeta}{1} % basic article meta can be reconstructed from \title and \author % % Title needs to be placed at the correct place by DOM filter \Configure{TITLE}{\HCode{}}{\HCode{}} % You can put license and copyright info into Permissions \NewConfigure{Permissions}{1} \Configure{Permissions}{\HCode{}} \NewConfigure{ArticleMeta}{1} \Configure{ArticleMeta}{ \HCode{}% % title from \title command is placed by make4ht DOM filter. If you want more complex title, % use \Configure{TitleGroup} \a:TitleGroup% \JATS:Contributors% \a:Permissions \HCode{}% } % enable to configure contributors \def\JATS:Contributors{} \NewConfigure{Contributor}[1]{\concat:config\JATS:Contributors{#1}} \NewConfigure{TitleGroup}{1} % insert metas into document header \Configure{@HEAD}{\a:JournalMeta} \Configure{@HEAD}{\a:ArticleMeta} >>> \<<< \def\Declare:Language#1#2{% \expandafter\gdef\csname rfclang#1\endcsname{#2}% } \def\Get:Language{% \ifx\bbl@main@language\@undefined en-US% \else% \expandafter\ifdefined\csname rfclang\bbl@main@language\endcsname \csname rfclang\bbl@main@language\endcsname\fi% \fi% } \Declare:Language{UKenglish}{en} \Declare:Language{USenglish}{en} \Declare:Language{latex}{en} \Declare:Language{acadian}{fr} \Declare:Language{albanian}{sq} \Declare:Language{american}{en} \Declare:Language{amharic}{am} \Declare:Language{arabic}{ar} \Declare:Language{armenian}{hy} \Declare:Language{australian}{en} \Declare:Language{austrian}{de} \Declare:Language{basque}{eu} \Declare:Language{bengali}{bn} \Declare:Language{brazilian}{pt} \Declare:Language{brazil}{pt} \Declare:Language{breton}{br} \Declare:Language{british}{en} \Declare:Language{bulgarian}{bg} \Declare:Language{canadian}{en} \Declare:Language{canadien}{fr} \Declare:Language{catalan}{ca} \Declare:Language{croatian}{hr} \Declare:Language{czech}{cs} \Declare:Language{danish}{da} \Declare:Language{divehi}{dv} \Declare:Language{dutch}{nl} \Declare:Language{english}{en} \Declare:Language{esperanto}{eo} \Declare:Language{estonian}{et} \Declare:Language{finnish}{f\/i} \Declare:Language{francais}{fr} \Declare:Language{french}{fr} \Declare:Language{galician}{gl} \Declare:Language{germanb}{de} \Declare:Language{german}{de} \Declare:Language{greek}{el} \Declare:Language{hebrew}{he} \Declare:Language{hindi}{hi} \Declare:Language{hungarian}{hu} \Declare:Language{icelandic}{is} \Declare:Language{interlingua}{ia} \Declare:Language{irish}{ga} \Declare:Language{italian}{it} \Declare:Language{kannada}{kn} \Declare:Language{khmer}{km} \Declare:Language{korean}{ko} \Declare:Language{lao}{lo} \Declare:Language{latin}{la} \Declare:Language{latvian}{lv} \Declare:Language{lithuanian}{lt} \Declare:Language{lowersorbian}{dsb} \Declare:Language{magyar}{hu} \Declare:Language{malayalam}{ml} \Declare:Language{marathi}{mr} \Declare:Language{naustrian}{de} \Declare:Language{newzealand}{en} \Declare:Language{ngerman}{de} \Declare:Language{norsk}{no} \Declare:Language{norwegiannynorsk}{nn} \Declare:Language{nynorsk}{no} \Declare:Language{occitan}{oc} \Declare:Language{oldchurchslavonic}{cu} \Declare:Language{persian}{fa} \Declare:Language{polish}{pl} \Declare:Language{polutonikogreek}{el} \Declare:Language{portuges}{pt} \Declare:Language{portuguese}{pt} \Declare:Language{romanian}{ro} \Declare:Language{romansh}{rm} \Declare:Language{russian}{ru} \Declare:Language{samin}{se} \Declare:Language{sanskrit}{sa} \Declare:Language{scottish}{gd} \Declare:Language{serbian}{sr} \Declare:Language{serbo-croatian}{sh} \Declare:Language{slovak}{sk} \Declare:Language{slovene}{sl} \Declare:Language{slovenian}{sl} \Declare:Language{spanish}{es} \Declare:Language{swedish}{sv} \Declare:Language{tamil}{ta} \Declare:Language{telugu}{te} \Declare:Language{thai}{th} \Declare:Language{tibetan}{bo} \Declare:Language{turkish}{tr} \Declare:Language{turkmen}{tk} \Declare:Language{ukrainian}{uk} \Declare:Language{uppersorbian}{hsb} \Declare:Language{urdu}{ur} \Declare:Language{vietnamese}{vi} \Declare:Language{welsh}{cy} >>> \<<< \Configure{HtmlPar} {\EndP\HCode{|

}} {\EndP\HCode{|

}} {\Tg

}% {\Tg

}% >>> \<<< % >>> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Hyperlinks} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \<<< \Configure{Link}{xref}{rid=}{id=}{} \LinkCommand\ExternalLink{ext-link,xlink:href,id} >>> \<<< \Configure{url}% {\tmp:toks{#1}\ExternalLink[\noexpand\the\tmp:toks]{}{}{\let\UrlBigBreaks\empty \let\UrlBreaks\empty #1}\EndExternalLink} >>> \<<< >>> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Pictures} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \<<< \Configure{IMG} {\ht:special{t4ht=}% \else% \HCode{}% \PushStack\math:types{disp-formula}% \fi% }{\PopStack\math:types\:temp\HCode{}}% }% \fi >>> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Fonts} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% JATS doesn't support any attributes for fonts, so the information about font name and size is lost. \<<< \Configure{htf}{0}{+}{}{} \Configure{htf}{4}{+}{}{} \Configure{htf}{6}{+}{}{} >>> \<<< \Configure{underline} {\HCode{}\:gobble} {\HCode{}} \Configure{textsuperscript} {\HCode{}} {\HCode{}} \Configure{textsubscript} {\HCode{}} {\HCode{}} >>> The basic font commands are redefined in mathml.4ht, so we need to redefine them again \<<< \Configure{texttt} {\ifmathml\providemtextclass{\mml:class="texttt" mathvariant="monospace" }\else\Protect\HCode{}\NoFonts\fi} {\ifmathml\else\EndNoFonts\Protect\HCode{}\fi}% \Configure{textit} {\ifmathml \providemtextclass{\mml:class="textit" mathvariant="italic" }\else\Protect\HCode{}\NoFonts\fi} {\ifmathml\else\EndNoFonts\Protect\HCode{}\fi}% \Configure{textrm} {\ifmathml \providemtextclass{\mml:class="textrm" mathvariant="normal" }\else\Protect\HCode{}\NoFonts\fi} {\ifmathml\else\EndNoFonts\Protect\HCode{}\fi}% \Configure{textup} {\ifmathml \providemtextclass{\mml:class="textup" mathvariant="normal" }\else\Protect\HCode{}\NoFonts\fi} {\ifmathml\else\EndNoFonts\Protect\HCode{}\fi}% \Configure{textsl} {\ifmathml \providemtextclass{\mml:class="textsl" mathvariant="italic" }\else\Protect\HCode{}\NoFonts\fi} {\ifmathml\else\EndNoFonts\Protect\HCode{}\fi}% \Configure{textsf} {\ifmathml \providemtextclass{\mml:class="textsf" mathvariant="sans-serif" }\else\Protect\HCode{}\NoFonts\fi} {\ifmathml\else\EndNoFonts\Protect\HCode{}\fi}% \Configure{textbf} {\ifmathml \providemtextclass{\mml:class="textbf" mathvariant="bold" }\else\Protect\HCode{}\NoFonts\fi} {\ifmathml\else\EndNoFonts\Protect\HCode{}\fi}% \Configure{textsc} {\ifmathml \providemtextclass{\mml:class="textsc" mathvariant="normal" }\else\Protect\HCode{}\NoFonts\fi} {\ifmathml\else\EndNoFonts\Protect\HCode{}\fi}% \Configure{emph} {\ifmathml \providemtextclass{\mml:class="emph" mathvariant="italic" }\else\Protect\HCode{}\NoFonts\fi} {\ifmathml\else\EndNoFonts\Protect\HCode{}\fi}% >>> %%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Document structure} %%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Maketitle} %%%%%%%%%%%%%%%%%%%%%%%%%%%%% JATS expects specific elements in the document metadata. We produce some custom elements, which are expected to be removed in the make4ht post-processing. Contents of maketitle should be moved to the metadata block and removed from the document body. \<<< \Configure{maketitle} {\ifvmode \IgnorePar\fi \EndP |% \HCode{<maketitle>}} {\ifvmode \IgnorePar\fi \EndP \HCode{</maketitle>}} {\NoFonts\IgnorePar\HCode{<article-title>}\IgnorePar} {\HCode{</article-title>}\IgnoreIndent\EndNoFonts} >>> This macro is used to print zeropaded days and months in the ISO date attribute \<latex maketitle\><<< \def\date:zeropad#1{\ifnum #1<10 0\fi#1} >>> \<latex maketitle\><<< \Configure{thanks author date and} {\ifvmode \IgnorePar\fi\EndP \HCode{<aff>}} {\ifvmode \IgnorePar\fi\EndP \HCode{</aff>}} {\ifvmode \IgnorePar\fi\EndP \HCode{<contrib contrib-type="author"><name><string-name>}} {\ifvmode \IgnorePar\fi\EndP \HCode{</string-name></name></contrib>}} {\ifvmode \IgnorePar\fi\EndP \HCode{<date iso-8601-date="\the\year-\date:zeropad{\the\month}-\date:zeropad{\the\day}"><string-date>}} {\ifvmode \IgnorePar\fi\EndP \HCode{</string-date></date>}} {\HCode{</string-name></name></contrib><contrib contrib-type="author"><name><string-name>}} {\HCode{}} \Configure{thank} {\HCode{<affref rid="\the\c@footnote">}} {\HCode{</affref>}} {\HCode{<aff id="\the\c@footnote"><affmark>}} {\HCode{</affmark>}} {\HCode{</aff>}} >>> \<title for TITLE\><<< {\Configure{maketitle}{}{}{}{}% % \let\thanks|=\:gobble \def\TeX{TeX}% \def\mbox{\hbox}% \def\gobble:font##1##2{##2}\:TITLE: \no:fonts \def\footnotemark[##1]{}% \def\:hashintitle{\protect\symbol{35}} \let\#\:hashintitle \NoFonts\Tag{TITLE+}{\@title}\EndNoFonts} >>> %%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Sections} %%%%%%%%%%%%%%%%%%%%%%%%%%%%% \<latex chapters\><<< |<latex numbered chapters|> |<latex unnumbered chapters|> >>> \<latex numbered chapters\><<< \Configure{chapter} {\ifvmode\IgnorePar\fi\EndP\IgnorePar\HCode{<sec>\Hnewline}} {\ifvmode\IgnorePar\fi\EndP\IgnorePar\HCode{</sec>\Hnewline}} {\TitleMark\space\HCode{<title>}\HtmlParOff} {\HCode{}\HtmlParOn \ShowPar\par} \ConfigureMark{chapter} {\if@mainmatter \HCode{}\fi} \Configure{appendix} {\ifvmode\IgnorePar\fi\EndP\IgnorePar\HCode{\Hnewline}} {\ifvmode\IgnorePar\fi\EndP\IgnorePar\HCode{\Hnewline}} {\TitleMark\space\HCode{}\HtmlParOff} {\HCode{}\HtmlParOn \ShowPar\par} \ConfigureMark{appendix}{\HCode{}} >>> \<<< \Configure{likechapter} {\ifvmode\IgnorePar\fi\EndP\IgnorePar\HCode{\Hnewline}} {\ifvmode\IgnorePar\fi\EndP\IgnorePar\HCode{\Hnewline}} {\HCode{}\HtmlParOff} {\HCode{}\HtmlParOn \ShowPar\par} >>> \<<< | | >>> \<<< \Configure{section} {\ifvmode\IgnorePar\fi\EndP\IgnorePar\HCode{\Hnewline}} {\ifvmode\IgnorePar\fi\EndP\IgnorePar\HCode{\Hnewline}} {\TitleMark\space\HCode{}\HtmlParOff} {\HCode{}\HtmlParOn \ShowPar\par} \ConfigureMark{section} {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble \else \HCode{}\fi } \Configure{subsection} {\ifvmode\IgnorePar\fi\EndP\IgnorePar\HCode{\Hnewline}} {\ifvmode\IgnorePar\fi\EndP\IgnorePar\HCode{\Hnewline}} {\TitleMark\space\HCode{}\HtmlParOff} {\HCode{}\HtmlParOn \ShowPar\par} \ConfigureMark{subsection} {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble \else \HCode{}\fi } \Configure{subsubsection} {\ifvmode\IgnorePar\fi\EndP\IgnorePar\HCode{\Hnewline}} {\ifvmode\IgnorePar\fi\EndP\IgnorePar\HCode{\Hnewline}} {\TitleMark\space\HCode{}\HtmlParOff} {\HCode{}\HtmlParOn \ShowPar\par} \ConfigureMark{subsubsection} {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble \else \HCode{}\fi } \Configure{paragraph} {\ifvmode\IgnorePar\fi\EndP\IgnorePar\HCode{\Hnewline}} {\ifvmode\IgnorePar\fi\EndP\IgnorePar\HCode{\Hnewline}} {\HCode{}\HtmlParOff} {\HCode{}\HtmlParOn \ShowPar\par} >>> \<<< \Configure{likesection} {\ifvmode\IgnorePar\fi\EndP\IgnorePar\HCode{\Hnewline}} {\ifvmode\IgnorePar\fi\EndP\IgnorePar\HCode{\Hnewline}} {\HCode{}\HtmlParOff} {\HCode{}\HtmlParOn \ShowPar\par} \Configure{likesubsection} {\ifvmode\IgnorePar\fi\EndP\IgnorePar\HCode{\Hnewline}} {\ifvmode\IgnorePar\fi\EndP\IgnorePar\HCode{\Hnewline}} {\HCode{}\HtmlParOff} {\HCode{}\HtmlParOn \ShowPar\par} \Configure{likesubsubsection} {\ifvmode\IgnorePar\fi\EndP\IgnorePar\HCode{\Hnewline}} {\ifvmode\IgnorePar\fi\EndP\IgnorePar\HCode{\Hnewline}} {\HCode{}\HtmlParOff} {\HCode{}\HtmlParOn \ShowPar\par} \Configure{likeparagraph} {\ifvmode\IgnorePar\fi\EndP\IgnorePar\HCode{\Hnewline}} {\ifvmode\IgnorePar\fi\EndP\IgnorePar\HCode{\Hnewline}} {\HCode{}\HtmlParOff} {\HCode{}\HtmlParOn \ShowPar\par} >>> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Abstracts} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \<<< \ConfigureEnv{abstract} {\ifvmode\IgnorePar\fi\EndP\HCode{\Hnewline}} {\ifvmode\IgnorePar\fi\EndP\HCode{}\par}{}{} \Configure{abstracttitle}{\ifvmode\IgnorePar\fi\EndP\HCode{}\EndNoFonts\HtmlParOn\par} >>> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Floats} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \<<< \Configure{float} {\ifOption{refcaption}{}{\csname par\endcsname\ShowPar \leavevmode}} {\IgnorePar\EndP\HCode{}} {\ifvmode \IgnorePar \fi\EndP \HCode{}\csname par\endcsname\ShowPar} \ConfigureEnv{figure} {\IgnorePar\EndP\HCode{\Hnewline}% \bgroup \Configure{float}{\ShowPar}{}{}% } {\egroup \IgnorePar\EndP\HCode{}|\par} {}{} \Configure{caption}{\IgnorePar\EndP\HCode{}\noindent\ShowPar} {\HCode{}\HCode{}% } >>> %%%%%%%%%%%%%%%%%%% \section{Tables} %%%%%%%%%%%%%%%%%%% \<<< \ConfigureEnv{table} {\ifvmode \IgnorePar\fi \EndP \HCode{} \Configure{float}{}{}{}{} } {\ifvmode \IgnorePar\fi \EndP \HCode{}\par\ShowPar} {}{} \ConfigureEnv{tabular} {\Configure{noalign}% {\f:tabular\d:tabular \HCode{}} {\HCode{}\pend:def\TableNo{0}\c:tabular\e:tabular}% % \IgnorePar\ifvmode\else\HCode{}\fi \EndP\PushStack\Col:Marg\AllColMargins } {\PopStack\Col:Marg\AllColMargins\ShowPar \Configure{noalign}{}{}% % \ShowPar % }{}{} >>> %%%%%%%%%%%%%%%%%%%%% \section{Footnotes} %%%%%%%%%%%%%%%%%%%%% \<<< \Configure{footnotemark}{\bgroup\NoFonts\HCode{}\EndNoFonts\egroup} % suppress footnote number in footnotext, it was already used in footnotemark \Configure{footnotetext}{\NoFonts\ShowPar\setbox0=\vbox\bgroup} {\egroup\EndNoFonts\SaveEndP\par\ShowPar\normalsize}% force new paragraph and normal font size {\EndP\RecallEndP\HCode{}}% >>> %%%%%%%%%%%%%%%%%%%% \section{Quotes} %%%%%%%%%%%%%%%%%%%% \<<< \ConfigureEnv{quote} {}{} {\ifvmode\IgnorePar\fi\EndP% \HCode{}} {\IgnorePar\EndP\HCode{}\ShowPar\ShowIndent} >>> %%%%%%%%%%%%%%%%%%%% \section{Lists} %%%%%%%%%%%%%%%%%%%% List utilities, copied from the HTML configuration. We need to keep track of the \<<< \PushMacro\end:itm >>> \<<< \PopMacro\end:itm \global\let\end:itm \end:itm >>> \<<< \par\ShowPar >>> JATS list have a similar structure, so we can use a custom macro that takes just the environment name and list-type attribute: \<<< \def\ConfigJatsList#1#2{% \ConfigureList{#1}% {\ifvmode\IgnorePar\fi\EndP\EndP\HCode{}% |\global\let\end:itm=\empty} {|\EndP\HCode{}} {\end:itm\global\def\end:itm{\EndP\Tg}\DeleteMark} {\HCode{}|} } \ConfigJatsList{itemize}{bulleted} \ConfigJatsList{enumerate}{order} >>> Description lists have a little bit different structure, so we need to configure them separatelly. \<<< \ConfigureList{description}% {\ifvmode\IgnorePar\fi\EndP\HCode{}% |\global\let\end:itm=\empty} {|\EndP\HCode{}\ShowPar} {\end:itm \global\def\end:itm{\EndP\HCode{}}\HCode{}\NoFonts\HtmlParOff} {\EndNoFonts\HCode{}\HtmlParOn|} >>> We cannot create a structured bibliographic record for plain LaTeX references, so we at least mark individual entries. Entry id is set on the label element. The id comes from a child xref element that is removed by make4ht. Ideally, it should be set on ref, but we need to use label here, to catch potential entry number. \<<< \ConfigureList{thebibliography}% {\ifvmode\IgnorePar\fi \EndP \HCode{}\let\en:bib=\empty} {\en:bib \ifvmode\IgnorePar\fi \EndP \HCode{}} {\en:bib\def\en:bib{\HCode{}}% \HCode{}} >>> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Packages} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Hyperref} \<<< | >>> \<<< | >>> \section{Bibliographies} \<<< | | >>> \<<< \def\bibConfigure{% \ConfigureList{thebibliography} {\ifvmode \IgnorePar \fi \EndP \EndP \HCode{}\HtmlParOff% \immediate\write\@auxout{% \string\providecommand\string\BibFileName[2][]{} }% \immediate\write\@auxout{% \string\BibFileName[\therefsection]{\FileName}}% \PushMacro \end:itm \global \let \end:itm =\empty}% {\ifvmode \IgnorePar \fi \EndP \PopMacro \end:itm \global \let \end:itm \end:itm \EndP \HCode {}\HtmlParOn\ShowPar}% {\ifvmode \IgnorePar \fi \EndP \gHAdvance \bibN by 1 \end:itm \global \def \end:itm {\EndP \HCode{}}% \Tag{X\therefsection-\abx@field@entrykey}{bibitem-\bibN} \HCode {}}% } >>> We use BibLaTeX's formatting commands to add JATS elements around some bibliographic fields. \<<< \DeclareFieldFormat{title}{\HCode{}#1\HCode{}} \DeclareFieldFormat{booktitle}{\HCode{}#1\HCode{}} \DeclareFieldFormat{maintitle}{\HCode{}#1\HCode{}} \DeclareFieldFormat{journaltitle}{\HCode{}#1\HCode{}} \DeclareFieldFormat[article]{title}{\HCode{}#1\HCode{}} \DeclareFieldFormat[incollection]{title}{\HCode{}#1\HCode{}} \DeclareFieldFormat[inbook]{title}{\HCode{}#1\HCode{}} \DeclareFieldFormat{year}{\HCode{}#1\HCode{}} \DeclareFieldFormat{date}{\HCode{}#1\HCode{}} \DeclareFieldFormat{pages}{\HCode{}#1\HCode{}} \DeclareListFormat{publisher}{\usebibmacro{list:delim}{#1}\HCode{}#1\HCode{}\isdot\usebibmacro{list:andothers}} \DeclareListFormat{location}{\usebibmacro{list:delim}{#1}\HCode{}#1\HCode{}\isdot\usebibmacro{list:andothers}} \DeclareNameFormat{author}{% \nameparts{#1}% This command initializes commands used in the following bibmacro \HCode{}% use \usebibmacro{name:family-given}% {\namepartfamily}% {\namepartgiveni}% {\namepartprefix}% {\namepartsuffix}% \HCode{}% \usebibmacro{name:andothers}% } >>> \endinput