새로운 언어 cli와 유사한 인터페이스를 정의하려고 하는데 구분 기호를 사용하여 프롬프트와 일치시키는 방법을 알 수 없습니다.
텍스트에 다양한 스타일을 적용하고 싶습니다. 아래 예에서는 각 문자에 ~
, -
또는 =
해당 문자가 속해야 하는 스타일 그룹을 알리기 위해 밑줄을 그었습니다.
# configure terminal
~ ==================
(config)# json notification host a
--------~ ========================
(something-something)# url http://10.99.10.1:8000/path
---------------------~ ===============================
나는 이것을 실험해 왔습니다:
\documentclass{article}
\usepackage{listings}
\lstdefinelanguage{iCli}
{
comment=[l]{\%},
basicstyle=\small,
keywords={\#},
keywordstyle=\textbf,
delim=[s][keywordstyle]{(}{\#}
}
\begin{document}
\begin{lstlisting}[language=iCli]
% This is a comment
# configure terminal
(config)# json notification host a
\end{lstlisting}
\end{document}
#
하지만 키워드로 부각되지는 않습니다.
답변1
약간의 해킹이 필요합니다. 아래를 참조하세요.
\documentclass{article}
% the following two packages are for bold typewriter font
\usepackage[T1]{fontenc}
\usepackage{beramono}
\usepackage{listings}
\usepackage{xcolor}
\lstdefinelanguage{iCli}{
comment = [l]{\%},
literate = \#{{\processhash}}1, %<-- required for bold prompt
moredelim = **[is][\processmydelims]{(}{)\#}, %<-- for highlighting (...)#
basicstyle = \ttfamily, %<-- for a nice typewriter font
}
% helper macros
\newcommand\processmydelimsend{}
\newcommand\processmydelims{%
\renewcommand\processmydelimsend{\textcolor{red}{)}\textbf{\#}\egroup}%
\bgroup\color{red}(\aftergroup\processmydelimsend%
}
\makeatletter
\newcommand\processhash{%
\ifnum\lst@mode=\lst@Pmode%
\bfseries%
\fi
\#%
}
\makeatother
\begin{document}
\begin{lstlisting}[language=iCli]
# configure terminal
(config)# json notification host a
(something-something)# url http://10.99.10.1:8000/path
\end{lstlisting}
\end{document}