(1)日本語が抜ける
LuaTeX-ja では showexpl を登録すると,正しく日本語が表示されますが,
それ以外の例えば upLaTeX などでは showexpl の他に listings,jlisting
を登録するのが通例のようですが,それでも日本語が抜けてしまいます.
(jlisting.styは新たにdownloadした) ソースファイルは次の通りです.
-------------------------
\documentclass[uplatex]{jsarticle}
\usepackage{showexpl}
\usepackage{listings,jlisting}
\begin{document}
\begin{LTXexample}[frame=none,wide,width=.5\linewidth]
\begin{enumerate}
\item ああああああ
\item いいいいいい
\item うううううう
\end{enumerate}
\end{LTXexample}
\end{document}
-------------------------
ptex2pdf -l -u foo とし,結果をみると日本語が抜けていました.
ご指摘頂ければありがたいです.
(追)
\item aあああああ
\item bいいいいい
\item cううううう
のように先頭に半角英数を添えると,半角英数を含めて日本語が表示されます.
(2)\ref{}が効かない
続いて,\label / \ref を使ってみました.
-------------------------
\begin{document}
\begin{LTXexample}[frame=none,wide,width=.5\linewidth]
\begin{enumerate}
\item aああああああ
\item bいいいいいい \label{xxx}
\item cうううううう
\end{enumerate}
\end{LTXexample}
\ref{xxx}....
\end{document}
-------------------------
実行すると
LaTeX Warning: There were undefined references.
\ref するにはどのように対処すればよいでしょうか.
これは LuaTeX-ja,upLaTeXなど区別なく生じます
(2)\ref について
Stack Exchange で対応策が見つかりました.
http://tex.stackexchange.com/questions/6337/showexpl-ltxexample-and-references-inside-enumerate
LTXexample環境内で\label,\ref を使うにはそれなりの手当が必要なようです.
\begin{document}
\let\orilabel\label %-----------追加
\begin{LTXexample}[frame=none,preset=\let\label\orilabel] %preset= ---------追加
\begin{enumerate}
\item aあああああ
\item bいいいいい \label{xxx}
\item cううううう
\end{enumerate}
\ref{xxx}...
\end{LTXexample}
\end{document}
Stack Exchange で対応策が見つかりました.
http://tex.stackexchange.com/questions/6337/showexpl-ltxexample-and-references-inside-enumerate
LTXexample環境内で\label,\ref を使うにはそれなりの手当が必要なようです.
\begin{document}
\let\orilabel\label %-----------追加
\begin{LTXexample}[frame=none,preset=\let\label\orilabel] %preset= ---------追加
\begin{enumerate}
\item aあああああ
\item bいいいいい \label{xxx}
\item cううううう
\end{enumerate}
\ref{xxx}...
\end{LTXexample}
\end{document}
(1) についてですが,showexpl は一度 \jobname.tmp に LTXexample 内のコードを書き出すという
処理をするのですが,これが和文文字の塊についてはうまくいかないようです.
実際に \jobname.tmp を見ると,
\begin{enumerate}
\item
\item
\item
\end{enumerate}
と,なっているのがわかると思います.
原因は,lstmisc.sty 内で定義されている \lst@WFBegin というのが書き出し処理を
始めるマクロなのですが,この中で \lst@ProcessSpace へ変更を加えていて,
これが jlisting の \lst@ProcessSpace の再定義と衝突するためのようです.
jlisting ではオリジナルの \lst@ProcessSpace を \lst@@ProcessSpace へ退避して利用しているので,
こちらを変更するようにパッチを当てるとうまくいきそうです.
\documentclass[uplatex]{jsarticle}
\usepackage{showexpl}
\usepackage{listings,jlisting}
\usepackage{etoolbox}
\makeatletter
\catcode`\^^I=11
\patchcmd{\lst@WFBegin}{\lst@ProcessSpace}{\lst@@ProcessSpace}{}{}
\catcode`\^^I=10
\makeatother
\begin{document}
\begin{LTXexample}[frame=none,wide,width=.5\linewidth]
\begin{enumerate}
\item ああああああ
\item いいいいいい
\item うううううう
\end{enumerate}
\end{LTXexample}
\end{document}
処理をするのですが,これが和文文字の塊についてはうまくいかないようです.
実際に \jobname.tmp を見ると,
\begin{enumerate}
\item
\item
\item
\end{enumerate}
と,なっているのがわかると思います.
原因は,lstmisc.sty 内で定義されている \lst@WFBegin というのが書き出し処理を
始めるマクロなのですが,この中で \lst@ProcessSpace へ変更を加えていて,
これが jlisting の \lst@ProcessSpace の再定義と衝突するためのようです.
jlisting ではオリジナルの \lst@ProcessSpace を \lst@@ProcessSpace へ退避して利用しているので,
こちらを変更するようにパッチを当てるとうまくいきそうです.
\documentclass[uplatex]{jsarticle}
\usepackage{showexpl}
\usepackage{listings,jlisting}
\usepackage{etoolbox}
\makeatletter
\catcode`\^^I=11
\patchcmd{\lst@WFBegin}{\lst@ProcessSpace}{\lst@@ProcessSpace}{}{}
\catcode`\^^I=10
\makeatother
\begin{document}
\begin{LTXexample}[frame=none,wide,width=.5\linewidth]
\begin{enumerate}
\item ああああああ
\item いいいいいい
\item うううううう
\end{enumerate}
\end{LTXexample}
\end{document}