So markieren Sie den XML-Code in Latex umseitig
Ich habe einige der hier genannten Antworten befolgt, um den XML-Inhalt in meinem Latex hervorzuheben, und versucht, die besten Dinge aus verschiedenen Antworten zu kombinieren, aber aus irgendeinem Grund wird in meinem XML nichts hervorgehoben? Kann mir bitte jemand helfen, wie ich XML-Inhalte in meinem Latex ansprechend gestalten kann? Ich habe die folgende Antwort versucht:https://tex.stackexchange.com/a/11134/226278
Mein XML ist ziemlich groß und umfasst 2-3 Seiten, aber jetzt wird es in einem Frame mit Zeilennummer angezeigt, sieht also gut aus, aber keines der Tags oder Zeichenfolgen wird hervorgehoben, außer einigen Zeichenfolgen im XML-Header. Ich möchte die Tags und Zeichenfolgen in ihnen hervorheben, damit es schöner aussieht.
\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}
Zum Beispiel ist dies meine XML-Beispieldatei, die ich hervorheben und im Bilderordner präsentieren möchte:
<?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>
Antworten
Nachdem Sie zwei Dinge in Ihrem MWE korrigiert haben (Hinzufügen \documentclass{article}, \begin{document}und \end{document}), schien außer der ersten Zeile Ihres Textes nichts hervorgehoben zu sein.
Dies liegt daran, dass alles in einer Farbe (Kastanienbraun) definiert wurde, während die Kommentare (definiert durch <? ?>) unterschiedlich waren.
Durch Ändern der kastanienbraunen Farbe wurde nicht alles hervorgehoben. Dafür müssen Sie Inserate sagen , durch das Hinzufügen im Text suchen *in dem 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}
Wie für die Frage in den Kommentaren. \lstsetist die Einstellungsdefinition. Sie teilen dem Paket mit, welche Sprache Sie verwenden und welche Schlüsselwörter hervorgehoben werden.
Sie können den Code dann mithilfe der lstlistingUmgebung eingeben oder (wie zuvor) aus der Datei eingeben\lstinputlisting
Die Verwendung lstlistingwird als bessere Vorgehensweise angesehen, wenn Sie hier eine Frage stellen, da wir so den gesamten Code sehen können, ohne zwischen Dateien wechseln zu müssen . Hier ist ein Beispiel für eine MWE mit dem Code inlstlisting
\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}