Я использую latex с pdftex и пытаюсь использовать шрифт Bera Mono с \mlttfamily
описанным в matlab-prettifier
документации. Однако мой сгенерированный вывод игнорирует мои \lstset
basicstyle = \mlttfamily
настройки и использует вместо этого значение по умолчанию \ttfamily
? Ниже представлено изображение моего вывода.
\documentclass[border=30pt]{standalone}
\usepackage[final]{matlab-prettifier}
\usepackage[T1]{fontenc}
\lstset{
style = Matlab-editor,
basicstyle = \mlttfamily, %\ttfamily
escapechar = ",
mlshowsectionrules = true,
}
\begin{document}
\begin{lstlisting}[style=Matlab-editor]
%% Code sections are highlighted.
% System command are supported...
!gzip sample.m
% ... as is line continuation.
A = [1, 2, 3,... % (mimicking the ouput is good)
4, 5, 6]
fid = fopen('testFile.text', 'w')
for i=1:10
fprintf(fid,'%6.2f \n', i);
end
x=1; %% this is just a comment, though
% Context-sensitive keywords get highlighted correctly...
p = properties(mydate); %(here, properties is a function)
x = linspace(0,1,101);
y = x(end:-1:1)
% ... even in nonsensical code.
]end()()(((end end)end ))))end (function end
%{
block comments are supported
%} even
runaway block comments
are
\end{lstlisting}
\end{document}
решение1
Это исправляет проблему, \lstset
определяет настройки по умолчанию для \lstlisting
и я перезаписывал эту настройку стиля ранее без изменения шрифта.
Следующий код теперь правильно меняет шрифт на Bera Mono.
\documentclass[border=30pt]{standalone}
\usepackage[final]{matlab-prettifier}
\usepackage[T1]{fontenc}
\lstset{
style = Matlab-editor,
basicstyle = \mlttfamily, %\ttfamily
escapechar = ",
mlshowsectionrules = true,
}
\begin{document}
\begin{lstlisting}
%% Code sections are highlighted.
% System command are supported...
!gzip sample.m
% ... as is line continuation.
A = [1, 2, 3,... % (mimicking the ouput is good)
4, 5, 6]
fid = fopen('testFile.text', 'w')
for i=1:10
fprintf(fid,'%6.2f \n', i);
end
x=1; %% this is just a comment, though
% Context-sensitive keywords get highlighted correctly...
p = properties(mydate); %(here, properties is a function)
x = linspace(0,1,101);
y = x(end:-1:1)
% ... even in nonsensical code.
]end()()(((end end)end ))))end (function end
%{
block comments are supported
%} even
runaway block comments
are
\end{lstlisting}
\end{document}
решение2
Теперь из обзорного описания matlab-prettier я вижу, что следующее работает.
\documentclass[border=30pt]{standalone}
\usepackage[final]{matlab-prettifier}
\usepackage[T1]{fontenc}
\begin{document}
\begin{lstlisting}[
style = Matlab-editor,
basicstyle = \mlttfamily,
]
%% Code sections are highlighted.
% System command are supported...
!gzip sample.m
% ... as is line continuation.
A = [1, 2, 3,... % (mimicking the ouput is good)
4, 5, 6]
fid = fopen('testFile.text', 'w')
for i=1:10
fprintf(fid,'%6.2f \n', i);
end
x=1; %% this is just a comment, though
% Context-sensitive keywords get highlighted correctly...
p = properties(mydate); %(here, properties is a function)
x = linspace(0,1,101);
y = x(end:-1:1)
% ... even in nonsensical code.
]end()()(((end end)end ))))end (function end
%{
block comments are supported
%} even
runaway block comments
are
\end{lstlisting}
\end{document}