合字等を漢字扱いさせたい

合字等を漢字扱いさせたい

- O Kay の投稿
返信数: 2
以下のソースのように,\maru{} の前後には \kanjiskipが入りません。
手動で入れれば当然入りますが,ソースが長く,見づらくなります。
だからといって,\maru{} の定義の中に \hspace{\kanjiskip} を入れてしまうと,
文頭に来るときや,前後に英数字が来たときに困ってしまいます。
\maru{} を漢字扱いしてくれるとありがたいのですが,そのようにさせる方法はありますでしょうか。
それとも,手動で対処するしかないでしょうか。


\documentclass[uplatex]{jsarticle}

\usepackage[uplatex,jis2004]{otf}


\textwidth7zw

\pagestyle{empty}


\DeclareRobustCommand*\maru[1]{\mbox{\ooalign{\hfil#1\hfil\cr ○}}}


\begin{document}

\noindent

あいうえおかき。


\noindent

あい\hspace{\kanjiskip}\maru{×}\hspace{\kanjiskip}えおかき。


\noindent

あい\maru{×}えおかき。


\end{document}


O Kay への返信

Re: 合字等を漢字扱いさせたい

- KUROKI Yusuke の投稿
KUROKI Yusuke への返信

Re: 合字等を漢字扱いさせたい

- O Kay の投稿
まさか,こんなパッケージがあったとは……。
pxghost.sty の \jghostguarded{} を使うのですね。
すごいです! まさしく希望通りの結果が得られました!
KUROKI 様,そして,ZR 様,どうもありがとうございました。


\documentclass[uplatex]{jsarticle}

\usepackage[uplatex,jis2004]{otf}

\usepackage{pxghost}


\textwidth7zw

\pagestyle{empty}


\DeclareRobustCommand*\oldmaru[1]{%

\mbox{\ooalign{\hfil#1\hfil\cr○}}%

}

\DeclareRobustCommand*\newmaru[1]{%

\jghostguarded{\mbox{\ooalign{\hfil#1\hfil\cr○}}}%

}


\begin{document}

\noindent

あいうえおかき。


\noindent

あい\hspace{\kanjiskip}\oldmaru{×}\hspace{\kanjiskip}えおかき。


\noindent

あい\oldmaru{×}えおかき。


\noindent

あabc\oldmaru{×}defおかき。


\noindent

\oldmaru{×}いうえおかき。


\noindent

あい\newmaru{×}えおかき。


\noindent

あabc\newmaru{×}defおかき。


\noindent

\newmaru{×}いうえおかき。


\end{document}