![Comentários Multiline Matlab em listagens de pacotes](https://rvso.com/image/335504/Coment%C3%A1rios%20Multiline%20Matlab%20em%20listagens%20de%20pacotes.png)
Estou usando as listagens de pacotes para incluir algum código Matlab em meu relatório. Funciona bem com comentários começando por, %
mas não reconhece comentários de múltiplas linhas %{ ... %}
:
\usepackage{listings}
\lstset{language=Matlab}
...
\begin{lstlisting}
% normal comment
MATLAB code
%{
This is
a multiline
comment
%}
function [x,y] = test(x)
\end{lstlisting}
dá
em vez de
em Matlab.
Como posso mudar \lstset
para que funcione?
Responder1
Minha recomendação seria usar o pacotematlab-prettifier
, que é baseado, listings
mas fornece recursos aprimorados para o código MATLAB acima e além daqueles fornecidos pela listings
' Matlab
definição de linguagem (incluindo suporte para comentários em bloco):
\documentclass{article}
\usepackage{matlab-prettifier}
\lstset{style=Matlab-editor}
\begin{document}
\begin{lstlisting}
% normal comment
MATLAB code
%{
This is
a multiline
comment
%}
function [x,y] = test(x)
\end{lstlisting}
\end{document}
Se, por algum motivo, você precisar usar listings
a implementação existente da Matlab
linguagem, poderá adicionar suporte para comentários em bloco definindo a morecomment
chave do pacote:
morecomment=[s]{\%\{}{\%\}}
Aqui [s]
significa que estamos procurando dois delimitadores, o primeiro para abrir um comentário em bloco e o segundo para fechá-lo. Os seguintes grupos de chaves contêm os delimitadores de abertura e fechamento para um comentário de bloco, respectivamente. Observe que tanto o sinal de porcentagem quanto as chaves de abertura/fechamento individuais devem ter barras invertidas ao definir os delimitadores de comentários.
\documentclass{article}
\usepackage{listings}
\lstset{
language=Matlab,
basicstyle=\ttfamily,
morecomment=[s]{\%\{}{\%\}},
}
\begin{document}
\begin{lstlisting}
% normal comment
MATLAB code
%{
This is
a multiline
comment
%}
function [x,y] = test(x)
\end{lstlisting}
\end{document}