I want to use both LaTeX code snippet using LTXexample and C# code snippet using lstlisting in my book. If you see my screenshot below, lstlisting behaves well but LTXexample does not. How to prevent LTXexample from expanding its left frame rule beyond the document left margin?

My minimal code is given as follows:
\documentclass[dvips,final,dvipsnames]{book}
\usepackage[showframe=true,a4paper,margin=20mm,twoside]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xcolor}
\usepackage{showexpl}
\lstset{%
breaklines=true,%default: false
basicstyle=\ttfamily\scriptsize,
keywordstyle=\color{blue}\sffamily\bfseries,
commentstyle=\color{ForestGreen}\itshape,
stringstyle=\rmfamily,
showstringspaces=false,%default: true
backgroundcolor=\color{Yellow!25},
%---------------------------------------------------------
frame=single,%default: none
framerule=0.2pt,%expands outward
rulecolor=\color{red},
framesep=3pt,%expands outward
%---------------------------------------------------------
%make the frame fits in the text area.
%not affect LTX when numbers=none.
xleftmargin=3.2pt,%does not affect LTXexample, why? I don't know!
xrightmargin=3.2pt,%does not affect LTXexample, why? I don't know!
%----------------------------------------------------------
tabsize=2,%default: 8 only influence the lstlisting and lstinline.
explpreset={}%to remove the default setting of LTXexample.
}
\begin{document}
\chapter{Bug or Feature?}
I don't like line numbers because they will make copying the codes
no longer convenient for the readers---the readers will be forced
to do an extra job to remove the line numbers later after pasting
the copied codes to their editors. Line numbers will be useful if
the author make references to code snippet. In my book, I will not
make references. Why? Because I believe you have a good sense to
understand the context.
\section{LTXexample}
\begin{LTXexample}[pos=b,language={PSTricks}]
\LaTeXe\ is fun! But \LaTeXe\ without PSTricks looks like a soup
without salt.
\[
E\not=mc^2
\]
$E=E$ and $mc^2=mc^2$. $E$ is not equal to $mc^2$.
\end{LTXexample}
\section{lstlisting}
\begin{lstlisting}[language={[Sharp]C}]
using System;
public static class Foo
{
public static void Main()
{
Console.WriteLine("Hello Universe, I am E.T.");
}
}
\end{lstlisting}
\end{document}


\patchcmd. – yannisl Dec 04 '10 at 12:46