Como destacar o código XML em latex no verso
Segui algumas respostas mencionadas aqui para destacar o conteúdo XML em meu látex e tentei combinar as melhores coisas de diferentes respostas, mas por algum motivo nada está sendo destacado em meu XML? Alguém pode me ajudar a fazer com que o conteúdo XML em meu látex pareça atraente? Tentei a seguinte resposta:https://tex.stackexchange.com/a/11134/226278
Meu XML é muito grande e se estende por 2-3 páginas, mas agora está sendo exibido em um quadro com o número da linha, então parece bom, mas nenhuma das tags ou strings está sendo destacada, exceto por algumas strings no cabeçalho XML. Gostaria de destacar as tags e strings neles para que fiquem mais bonitos.
\usepackage{listings}
\usepackage{color}
\definecolor{gray}{rgb}{0.4,0.4,0.4}
\definecolor{darkblue}{rgb}{0.0,0.0,0.6}
\definecolor{cyan}{rgb}{0.0,0.6,0.6}
\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
\geometry{a4paper}
\lstset{
language=xml,
tabsize=3,
%frame=lines,
caption=Bulk test data events for rail sector
label=code:rail1,
frame=shadowbox,
xleftmargin=20pt,
framexleftmargin=15pt,
numbers=left,
numberstyle=\tiny,
numbersep=5pt,
breaklines=true,
showstringspaces=false,
basicstyle=\footnotesize,
basicstyle=\ttfamily,
columns=fullflexible,
showstringspaces=false,
basicstyle=\ttfamily\footnotesize,
morestring=[b]",
moredelim=[s][\bfseries\color{Maroon}]{<}{\ },
moredelim=[s][\bfseries\color{Maroon}]{</}{>},
moredelim=[l][\bfseries\color{Maroon}]{/>},
moredelim=[l][\bfseries\color{Maroon}]{>},
morecomment=[s]{<?}{?>},
morecomment=[s]{<!--}{-->},
commentstyle=\color{DarkOliveGreen},
stringstyle=\color{blue},
identifierstyle=\color{red},
}
\lstinputlisting{pics/RailSector.xml}
Por exemplo, este é meu arquivo XML de amostra que desejo destacar e apresentar na pasta de fotos:
<?xml version="1.0"?>
<hello:mydocument>
<manufacturing>court</manufacturing>
<bend>grabbed</bend>
<quick>613049078</quick>
<am>
<brief>-2019050644</brief>
<judge>955087623.417459</judge>
<birds>green</birds>
<join>among</join>
<slight>
<box>loose</box>
<butter>table</butter>
<afternoon>good</afternoon>
<suddenly>rear</suddenly>
<kitchen>copper</kitchen>
<locate>802538930</locate>
</slight>
<wagon>1157100273.040341</wagon>
</am>
<this>1903268890</this>
<rule>-1380139207</rule>
</hello:mydocument>
Respostas
Depois de corrigir duas coisas em seu MWE (adicionar \documentclass{article}, \begin{document}e \end{document}), parecia que nada estava sendo destacado além da primeira linha de seu texto.
Isso ocorre porque tudo foi definido em uma cor (Marrom) enquanto os comentários (definidos por <? ?>) eram diferentes.
mudar a cor marrom não deixava tudo em destaque. Para isso, você precisa dizer às listagens para olharem no texto, adicionando *o lstset.
MWE:
\documentclass{article}
\usepackage{listings}
\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
\lstset{
language=xml,
tabsize=3,
%frame=lines,
caption=Bulk test data events for rail sector
label=code:rail1,
frame=shadowbox,
xleftmargin=20pt,
framexleftmargin=15pt,
numbers=left,
numberstyle=\tiny,
numbersep=5pt,
breaklines=true,
showstringspaces=false,
basicstyle=\footnotesize,
basicstyle=\ttfamily,
columns=fullflexible,
showstringspaces=false,
basicstyle=\ttfamily\footnotesize,
morestring=[b]",
moredelim=*[s][\bfseries\color{Maroon}]{<}{\ },
moredelim=*[s][\bfseries\color{blue}]{</}{>},
moredelim=*[l][\bfseries\color{red}]{/>},
moredelim=*[l][\bfseries\color{Maroon}]{>},
morecomment=[s]{<?}{?>},
morecomment=[s]{<!--}{-->},
commentstyle=\color{DarkOliveGreen},
stringstyle=\color{blue},
identifierstyle=\color{red},
}
\begin{document}
\lstinputlisting{RailSector.xml}
\end{document}
Quanto à pergunta nos comentários. \lstseté a definição das configurações. Você diz ao pacote qual idioma está usando e quais são os destaques das palavras-chave.
Você pode então digitar o código usando o lstlistingambiente ou inseri-lo do arquivo (como fez) usando\lstinputlisting
Usar lstlistingé considerado uma prática recomendada AO FAZER UMA PERGUNTA AQUI porque nos permite ver o código inteiro sem pular entre os arquivos. Aqui está um exemplo de MWE com o código emlstlisting
\documentclass{article}
\usepackage{listings}
\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
\lstset{
language=xml,
tabsize=3,
morestring=[b]",
moredelim=*[s][\bfseries\color{Maroon}]{<}{\ },
moredelim=*[s][\bfseries\color{blue}]{</}{>},
moredelim=*[l][\bfseries\color{red}]{/>},
moredelim=*[l][\bfseries\color{Maroon}]{>},
morecomment=[s]{<?}{?>},
morecomment=[s]{<!--}{-->},
commentstyle=\color{DarkOliveGreen},
stringstyle=\color{blue},
identifierstyle=\color{red},
}
\begin{document}
\begin{lstlisting}
<?xml version="1.0"?>
<hello:mydocument>
<manufacturing>court</manufacturing>
<bend>grabbed</bend>
<quick>613049078</quick>
<this>1903268890</this>
<rule>-1380139207</rule>
</hello:mydocument>
\end{lstlisting}
\end{document}