As per Mico's answer to using bold italic text inside listings, there is no boldfaced mono spaced font in the Computer Modern font family, so you need to use a font that has a bold mono spaced font.
Borrowing from this earlier question on
XML syntax highlighting,
here is an example:
Known Issues:
I am not sure why the very first non-comment <
was not being highlighted.
Matthias's suggested that this behavior can be overcome by using an escapechar
and replacing the first <
with !\color{red}{<}!
where !
is the escapechar
. This has been incorporated into the solution below.
Code:
\documentclass[border=2pt]{standalone}
\usepackage{xcolor}
\usepackage{listings}
\usepackage{pxfonts}
\lstset{
basicstyle=\ttfamily,
columns=fullflexible,
showstringspaces=false,
commentstyle=\color{gray}\upshape,
breaklines=true,
}
\lstdefinelanguage{XML}{
morestring=[b][\color{brown}]",
morestring=[s][\color{red}\bfseries]{>}{<},
morecomment=[s]{<?}{?>},
stringstyle=\color{black},
identifierstyle=\color{blue},
keywordstyle=\color{cyan},
escapechar=!,
morekeywords={name,use,xmlns,version,type}% list your attributes here,
}
\begin{document}
\begin{lstlisting}[language=XML]
<?xml version="1.0" encoding="utf-8"?>
!\color{red}\bfseries<!xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="points">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="point">
<xs:complexType>
<xs:attribute name="x" type="xs:unsignedShort" use="required" />
<xs:attribute name="y" type="xs:unsignedShort" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
\end{lstlisting}
\end{document}
Alternate Solution:
Using the solution form ttfamily with bfseries or how to enable bold in fixed width font you can use the courier font with
\renewcommand{\ttdefault}{pcr}
but I personally find these results no so satisfying:
Code:
Same as above but delete \usepackage{pxfonts}
and add:
\renewcommand{\ttdefault}{pcr}
Best Answer
As shown at page 28 of the manual, adding the option
to the
\lstset{}
command would make what you ask.Keep in mind to always read the packages documentation on your machine before posting.