목록을 사용하여 사용자 정의 언어가 정의되고 자동 들여쓰기가 정의됩니다. MWE는 들여쓰기를 수행하지 않습니다.
\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}
이 조각을 사용하도록 예제를 업데이트하는 경우
\lstdefineformat{sofl}%
{%
begin=\newline\string\newline\indent,%
end=[;]\newline\noindent\string\newline,%
end;=\newline\noindent\string\newline,%
;=[\ ]\string\space
}%
컴파일러는 오류를 제공합니다 Extra \fi. \begin{sofl}
.