Auflisten der automatischen Einrückung der benutzerdefinierten Sprache

Auflisten der automatischen Einrückung der benutzerdefinierten Sprache

Mithilfe der Auflistung wird eine benutzerdefinierte Sprache definiert und die automatische Einrückung festgelegt. Das MWE führt die Einrückung nicht durch

\documentclass{book}

\usepackage[formats]{listings}
\usepackage{xcolor}

% Define Language
\lstdefinelanguage{sofl}
{
    breaklines=true,
    tabsize=2,
    sensitive=false, % keywords are not case-sensitive
    morecomment=[l]{//}, % l is for line comment
    morecomment=[s]{/*}{*/}, % s is for start and end delimiter
    morestring=[b]", % defines that strings are enclosed in double quotes
    morekeywords={begin,end}
}
\lstdefineformat{sofl}%
{%
    \{=\newline\string\newline\indent,%
    \}=[;]\newline\noindent\string\newline,%
    \};=\newline\noindent\string\newline,%
    ;=[\ ]\string\space
}%
\lstnewenvironment{sofl} {
    \lstset{format=sofl}
    \lstset{language=sofl}
} {}

\begin{document}

\begin{sofl}
flow_b ->   
begin
if
flow_e = False;
f(data_b) ->
begin           
flow_d = True; 
data_d = data_b;
end
not f(data_b) ->
begin           
flow_d = True; 
data_d = data_b;
end
fo
end
\end{sofl}
\end{document}

Wenn Sie das Beispiel aktualisieren, um dieses Fragment zu verwenden

\lstdefineformat{sofl}%
{%
    begin=\newline\string\newline\indent,%
    end=[;]\newline\noindent\string\newline,%
    end;=\newline\noindent\string\newline,%
    ;=[\ ]\string\space
}%

der Compiler gibt den Fehler aus Extra \fi. \begin{sofl}.

verwandte Informationen