.^
我注意到 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
<?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 配置的其他项目listings
,matlab-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}
结果: