tex4ht 使用 mcode 包时会对一些 Matlab 代码进行打乱

tex4ht 使用 mcode 包时会对一些 Matlab 代码进行打乱

.^我注意到 tex4ht 无法生成正确的代码来排版 Matlab 代码列表。它与 Matlab 代码中的代码不一样,并且会在其位置生成奇怪的字符。

平均能量损失

\documentclass[12pt]{article}%
\usepackage{amsmath,mathtools}
\usepackage[framed,autolinebreaks]{mcode}%
\begin{document}
\begin{lstlisting}
a.^2;
\end{lstlisting}
\end{document}

编译使用

make4ht --lua -u foo.tex "htm"

这是生成的 HTML

Mathematica 图形

<?xml version="1.0" encoding="utf-8" ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->  
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head><title></title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)" /> 
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)" /> 
<!-- xhtml,htm,charset=utf-8,html --> 
<meta name="src" content="foo.tex" /> 
<meta name="date" content="2016-01-29 00:44:00" /> 
<link rel="stylesheet" type="text/css" href="foo.css" /> 
</head><body> 
<!--l. 7-->
<div class="lstlisting" id="listing-1"><span class="label"><a 
 id="x1-2r1"></a></span><span 
class="pcrr8r-">a.</span><span 
class="pcrr8r-">Ȉ2;</span>   
</div> 
</body></html> 

我无法使用\usepackage[T1]{fontenc}它来修复这个问题,因为当我\usepackage[T1]{fontenc}以前在其他地方使用 tex4ht 时,它导致了许多其他问题,所以我停止使用它。我现在不记得问题是什么了,但与 HTML 外观的一些问题有关。当我停止使用\usepackage[T1]{fontenc}时,它修复了 HTML。但现在我发现我需要它与 mcode 一起使用。

问题是:是否有可能在不使用?的情况下解决上述问题\usepackage[T1]{fontenc}?或者必须使用\usepackage[T1]{fontenc}

我始终将--lua-u选项与 make4ht 一起使用。

-l,--lua  Use lualatex for document compilation
-u,--utf8  For output documents in utf8 encoding

使用 TL 2015。

文件列表:

*File List*
 article.cls    2014/09/29 v1.4h Standard LaTeX document class
  size12.clo    2014/09/29 v1.4h Standard LaTeX file (size option)
  tex4ht.sty    
 fontenc.sty
   t1enc.def    2005/09/27 v1.99g Standard LaTeX file
   t1enc.def    2005/09/27 v1.99g Standard LaTeX file
 amsmath.sty    2013/01/14 v2.14 AMS math features
 amstext.sty    2000/06/29 v2.01
  amsgen.sty    1999/11/30 v2.0
  amsgen.sty    1999/11/30 v2.0
  amsbsy.sty    1999/11/29 v1.2d
  amsopn.sty    1999/12/14 v2.01 operator names
mathtools.sty    2015/11/12 v1.18 mathematical typesetting tools
  keyval.sty    2014/10/28 v1.15 key=value parser (DPC)
    calc.sty    2014/10/28 v4.3 Infix arithmetic (KKT,FJ)
 mhsetup.sty    2010/01/21 v1.2a programming setup (MH)
   mcode.sty    2014/03/06 2.5
  xcolor.sty    2007/01/21 v2.11 LaTeX color extensions (UK)
   color.cfg    2007/01/18 v1.5 color configuration of teTeX/TeXLive
   color.cfg    2007/01/18 v1.5 color configuration of teTeX/TeXLive
   dvips.def    2014/10/14 v3.0j Driver-dependent file (DPC,SPQR)
   dvips.def    2014/10/14 v3.0j Driver-dependent file (DPC,SPQR)
listings.sty    2015/06/04 1.6 (Carsten Heinz)
 lstmisc.sty    2015/06/04 1.6 (Carsten Heinz)
 lstmisc.sty    2015/06/04 1.6 (Carsten Heinz)
listings.cfg    2015/06/04 1.6 listings configuration
listings.cfg    2015/06/04 1.6 listings configuration
textcomp.sty    2005/09/27 v1.99g Standard LaTeX package
  ts1enc.def    2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file
  ts1enc.def    2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file
   t1pcr.fd    2001/06/04 font definitions for T1/pcr.
   t1pcr.fd    2001/06/04 font definitions for T1/pcr.
  ts1cmr.fd    2014/09/29 v2.5h Standard LaTeX font definitions
  ts1cmr.fd    2014/09/29 v2.5h Standard LaTeX font definitions
graphicx.sty    2014/10/28 v1.0g Enhanced LaTeX Graphics (DPC,SPQR)
graphics.sty    2014/10/28 v1.0p Standard LaTeX Graphics (DPC,SPQR)
    trig.sty    1999/03/16 v1.09 sin cos tan (DPC)
graphics.cfg    2010/04/23 v1.9 graphics configuration of TeX Live
graphics.cfg    2010/04/23 v1.9 graphics configuration of TeX Live

答案1

fontenc软件包不应该导致出现问题tex4ht,尽管最好将其与一起使用inputenc(或luainputenc在 LuaLaTeX 的情况下)。如果您能找到任何失败的示例并报告它,那就太好了。

该代码编译良好:

\documentclass[12pt]{article}%
\usepackage[T1]{fontenc}
\usepackage[utf8]{luainputenc}
\usepackage{amsmath,mathtools}
\usepackage[framed,autolinebreaks]{mcode}%
\begin{document}
\begin{lstlisting}
a.^2;
\end{lstlisting}

\end{document}

我必须下载mcode包,因为它不包含在 TeX Live 中。它似乎只是listings包的配置。奇怪的是,如果我只使用listings带有Matlab语言的原始版本,即使没有,文件也会正确编译fontenc。您还可以使用为 提供 Matlab 配置的其他项目listingsmatlab-prettifier

\documentclass[12pt]{article}%
\usepackage{amsmath,mathtools}
\usepackage{matlab-prettifier}
\begin{document}
\begin{lstlisting}[language=Matlab,style=Matlab-editor]
a.^2;
\end{lstlisting}
\end{document}

结果:

在此处输入图片描述

相关内容