出现错误,提示 utf8 和 listing 不兼容

出现错误,提示 utf8 和 listing 不兼容

如果我编译下一个代码,则会出现以下错误。

! 程序包 inputenc 错误:Unicode 字符 \u8:�\expandafter\lst@FillFixed@\fi 未设置为用于 LaTeX。

请参阅 inputenc 包文档以了解解释。输入 H 可立即获得帮助。...

l.6 ...%% sI 反过来说,这是解决方案(Vector Nulo)?

然后当我注释“\usepackage[utf8]{inputenc}”时,代码可以编译,但我需要 utf8 包。我该如何修复它?

\documentclass[12pt,a4paper]{article}

\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{pgf,tikz}

\usetikzlibrary{arrows}
\usepackage{float}
\usepackage{verbatim}




\usepackage{listings}



\usepackage[framed,numbered,autolinebreaks,useliterate]{mcode}

\usepackage{hyperref}
\usepackage{txfonts,pxfonts}


\begin{document}    



\section*{Matlab Code}
\begin{lstlisting}
clc, clear
syms k1 k2 y m
A= [0 1 0 1;-1*(k1+k2)/m 0 k2/m 0; 0 0 0 1; k2/m 0 0 -(k1+k2)/m];
cero=zeros(4);  
determinante=det(A); %% Determinante de A
Sol=A\cero;%% sI A tiene inversa  esta es la solución(Vector Nulo)
% El unico punto de equilibrio es el punto 0
detervalprop= det(A-y*eye(4))
[V,D]=eig(A)
f=subs(D(1),m,1)
%figure
%ezsurf(f)
%figure
%subplot(2,1,2)
h=ezplot(f)
set(h, 'Color', 'r')
\end{lstlisting}



\end{document}

答案1

如果您可以接受将escape重音字符转换为 LaTeX。

来自listings手册第 15 页:

类似地,如果您在列表中使用 UTF-8 扩展字符,则必须将它们放在 LaTeX 的转义字符内。

注意:我之所以发表评论是mcode因为 MikTeX 没有找到它。

\documentclass[12pt,a4paper]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[spanish]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{pgf,tikz}
\usetikzlibrary{arrows}
\usepackage{float}
\usepackage{verbatim}

\usepackage{listings}

%\usepackage[framed,numbered,autolinebreaks,useliterate]{mcode}

\usepackage{hyperref}
\usepackage{txfonts,pxfonts}


\begin{document}    

\section*{Matlab Code}

\begin{lstlisting}[escapechar=&]
clc, clear
syms k1 k2 y m
A= [0 1 0 1;-1*(k1+k2)/m 0 k2/m 0; 0 0 0 1; k2/m 0 0 -(k1+k2)/m];
cero=zeros(4);  
determinante=det(A); %% Determinante de A
Sol=A\cero;%% si A tiene inversa  esta es la soluci&ó&n (Vector Nulo)
% El &ú&nico punto de equilibrio es el punto 0
detervalprop= det(A-y*eye(4))
[V,D]=eig(A)
f=subs(D(1),m,1)
%figure
%ezsurf(f)
%figure
%subplot(2,1,2)
h=ezplot(f)
set(h, 'Color', 'r')
\end{lstlisting}

\end{document}

在此处输入图片描述

答案2

我的设置通常lstlisting包括:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{listings}

\lstset{
    inputencoding = utf8,  % Input encoding
    extendedchars = true,  % Extended ASCII
    texcl         = true,  % Activate LaTeX commands in comments
    mathescape    = true   % Mathematical expressions between $
    captionpos    = b,     % Caption position
    literate      =        % Support additional characters
      {á}{{\'a}}1  {é}{{\'e}}1  {í}{{\'i}}1 {ó}{{\'o}}1  {ú}{{\'u}}1
      {Á}{{\'A}}1  {É}{{\'E}}1  {Í}{{\'I}}1 {Ó}{{\'O}}1  {Ú}{{\'U}}1
      {à}{{\`a}}1  {è}{{\`e}}1  {ì}{{\`i}}1 {ò}{{\`o}}1  {ù}{{\`u}}1
      {À}{{\`A}}1  {È}{{\'E}}1  {Ì}{{\`I}}1 {Ò}{{\`O}}1  {Ù}{{\`U}}1
      {ä}{{\"a}}1  {ë}{{\"e}}1  {ï}{{\"i}}1 {ö}{{\"o}}1  {ü}{{\"u}}1
      {Ä}{{\"A}}1  {Ë}{{\"E}}1  {Ï}{{\"I}}1 {Ö}{{\"O}}1  {Ü}{{\"U}}1
      {â}{{\^a}}1  {ê}{{\^e}}1  {î}{{\^i}}1 {ô}{{\^o}}1  {û}{{\^u}}1
      {Â}{{\^A}}1  {Ê}{{\^E}}1  {Î}{{\^I}}1 {Ô}{{\^O}}1  {Û}{{\^U}}1
      {œ}{{\oe}}1  {Œ}{{\OE}}1  {æ}{{\ae}}1 {Æ}{{\AE}}1  {ß}{{\ss}}1
      {ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1  {å}{{\r a}}1 {Å}{{\r A}}1
      {ñ}{{\~n}}1  {Ñ}{{\~N}}1  {¿}{{?`}}1  {¡}{{!`}}1
      % ¿ and ¡ are not correctly displayed if inconsolata font is used
      % together with the lstlisting environment. Consider typing code in
      % external files and using \lstinputlisting to display them instead.      
  }

\begin{document}

\begin{lstlisting}[language=C]
/* 
    comentarios en español
    código base
*/
a = a + 1
\end{lstlisting}


\end{document}

...它对西班牙语、意大利语和少数其他拉丁文字很有效。

在此处输入图片描述

相关内容