縦書きだとulem パッケージの\sout{}が中央からずれる

縦書きだとulem パッケージの\sout{}が中央からずれる

- O Kay の投稿
返信数: 0

時々縦書きの文を upLaTeX で使用しております。

将来どなたかが tsarticle を作ってくださることを期待しつつ,現在は下記の方法でしのいでいます。

https://www.overleaf.com/read/qkvrbgzqrmrv#/6866671/


さて,下記のソースで ulem パッケージの\sout{}(訂正線)コマンドを使用しますと,線が中央からずれます。


pLaTeX を改訂すべきなのか,ユーザーサイドで対処すべきかわかりませんが,日本語 TeX 開発コミュニティ様にご報告申し上げます。


なお,最近開発されたjlreqクラスでもうまくいったこともご報告申し上げます。



%%%%%%%%%%

\documentclass[uplatex]{jsarticle}

%%% この部分が jsarticle で縦書きを実現する方法(doraTeX さんのアイディア)

\makeatletter

\AtBeginDocument{\tate\adjustbaseline}

\setlength\@tempdima{\textheight}

\setlength\textheight{\textwidth}

\setlength\textwidth{\@tempdima}

\let\@temp\@evenhead

\let\@evenhead\@oddhead

\let\@oddhead\@temp

\fullwidth\textheight

\makeatother

%%%%% ↑と↓,どちらか一方を選択

%\documentclass[tate,uplatex]{jlreq}

%%%%%%%%%%


\usepackage[jis2004]{otf}

\usepackage[T1]{fontenc}

\usepackage{lmodern}

\usepackage{ulem}


\makeatletter


\renewcommand{\thesection}{%

{第}\protect\hantate{{\@arabic\c@section}}{段}%

}


\renewcommand{\section}{%

\@startsection{section}{1}{\z@}%

{\Cvs \@plus.5\Cdp \@minus.2\Cdp}%

{.5\Cvs \@plus.3\Cdp}%

{\normalfont\large\headfont\raggedright}%

}


\chardef\zenkakuSpace=\jis"2121\relax


\def\hantate#1{%

\@tfor\@tempa:=#1\do{%

\ifvmode \leavevmode \fi

\iftdir%

\zenkakuSpace\kern-1zw\relax%

\hbox to 1zw{\hss\hbox{\yoko\@tempa}\hss}\relax%

\kern-1zw\relax\zenkakuSpace%

\else%

\hbox{\@tempa}%

\fi%

}%

}


\makeatother



\begin{document}


\section{春}

春はあけぼの。やうやう白くなりゆく山際、少し明かりて、紫だちたる雲の細くたなびきたる。


\section{夏}

夏は夜。月のころはさらなり、闇もなほ、蛍の多く飛びちがひたる。また、ただ一つ二つなど、ほかにうち光て行くもをかし。雨など降るもをかし。


\section{秋}

秋は夕暮れ。夕日の差して山の端いと近うなりたるに、烏の寝所へ行くとて、三つ四つ、二つ三つなど飛び急ぐさへあはれなり。まいて雁などの連ねたるが、いと小さく見ゆるは、いとをかし。日入り果てて、風の音、虫の音など、はた言ふべきにあらず。


\section{冬}

\sout{冬は☃。雪の降る中はしゃぎつつ☃を作るは、いとをかし。}%

冬はつとめて。雪の降りたるは言ふべきにもあらず、霜のいと白きも、またさらでもいと寒きに、火など急ぎおこして、炭持て渡るも、いとつきづきし。昼になりて、ぬるくゆるびもていけば、火桶の火も、白き灰がちになりてわろし。



\appendix

\section{\texttt{$\backslash$hantate\{\}}の使い方}


\verb|\hantate{}|は,縦書き時に\verb|{}|内の半角文字を,\hantate{1}文字ずつ縦に並べます。その際,各文字は和文文字扱いされます(和文ゴーストの考え方を利用しました)ので,前後の文字に応じて,\verb|\kanjiskip|や\verb|\xkanjiskip|が入ります。引数をさらに\verb|{}|でくくれば,縦中横を実現できます。なお,文字は中央に配置されるので,\hantate{x}や\hantate{{fx}}や\hantate{{qx}}などを横に並べると,高さはそろわないことになります。


\hantate{2017}年\hantate{{12}}月\hantate{8}日に,第\hantate{888}回全日本☃大会が開催されます。数学Ⅲと数学\hantate{{III}}を学習する。鍋に二八〇\hantate{{cc}}の水を入れて約三分間踊ります。


\framebox[25zw][s]{こんにちは。ものクロの皆さん。}\par

\framebox[25zw][s]{こんにちは。\hantate{SKB{48}}の皆さん。}\par

\framebox[25zw][s]{こんにちは。\hantate{xxxx}の皆さん。}\par

\framebox[25zw][s]{こんにちは。\hantate{{(x}{jx}{fx}{qx}}の皆さん。}\par


\end{document}