如果我编译下一个代码,则会出现以下错误。
! 程序包 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}
...它对西班牙语、意大利语和少数其他拉丁文字很有效。