Estoy intentando definir una interfaz similar a un clic de nuevo idioma, pero no puedo entender cómo usar el delimitador para que coincida con mi mensaje.
Quiero aplicar tres estilos diferentes al texto. En el siguiente ejemplo, he subrayado cada carácter con un ~
, -
o =
para indicar a qué grupo de estilos deben pertenecer.
# configure terminal
~ ==================
(config)# json notification host a
--------~ ========================
(something-something)# url http://10.99.10.1:8000/path
---------------------~ ===============================
He estado experimentando con esto:
\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}
Pero no se destaca #
como palabra clave.
Respuesta1
Se requiere un poco de piratería; vea abajo.
\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}