ひまつぶし雑記帖

doncha.net制作・発行:KindleやiBooks、楽天kobo、BOOK☆WALKERで読む電子書籍

縦書き電子書籍のための縦中横

2024/2/11 [10:00:20] (日) 天気

image
青空文庫に限らず、縦書きのEPUB電子書籍を作る時に半角の英数字を縦にするための小ネタが今回のエントリ…なにを今さら、というネタで、縦書き文章で半角英数字の縦中横なんて当然。

それでもネタとして取り上げるのはビミョーに考えることがあって、たぶん、どんなことを縦中横にするのか、どうやってるのかがいろいろあるから。特にWEB経由の文章は半角英数字がてんこ盛り。全部対応するのはやってられないけど。
image
・一文字の英数字は全角の英数字にして縦表示にしたい。
・数字の3桁以上は縦中横にすると無理矢理感が強い。この場合はそのまま転がしておきたい。
↑このへんがこだわりどころ。

そのために使ってるのが以下のもの
置換する時にゴソゴソする必要があったのでメモ…「1 while〜」のあたり、たぶん5分後には忘れる

・perl

sub _tcy{
my $self = shift;
my $str = shift;

return $str if $str =~ m![0-9][0-9][0-9]+!;
$str =~ s!([a-zA-Z0-9\!\?][a-zA-Z0-9\!\?]+)!sprintf(qq{<span class="tcy">%s</span>}, $1)!eg;
return $str;
}
sub h2z{
my $self = shift;
my $str = shift;

$str =~ tr/a-zA-Z0-9\!\?/a-zA-Z0-9!?/;
return $str;
}
sub add_tag{
my $self = shift;
my $str = shift;

$str =~ s!^([a-zA-Z0-9\!\?])([^a-zA-Z0-9\!\?])!$self->h2z($1) . $2!e;
$str =~ s!([^a-zA-Z0-9\!\?])([a-zA-Z0-9\!\?])$!$1 . $self->h2z($2)!e;
1 while $str =~ s!([^a-zA-Z0-9\!\?])([a-zA-Z0-9\!\?])([^a-zA-Z0-9\!\?])!$1 . $self->h2z($2) . $3!eg;
$str =~ s!([a-zA-Z0-9\!\?][a-zA-Z0-9\!\?]+)!$self->_tcy($1)!eg;

return $str;
}


・style sheet

.tcy {
-webkit-text-combine: horizontal;
-epub-text-combine: horizontal;
}

»電子書籍制作代行についてはこちら

profile

profile

 
doncha.net
contact:
»運営者
@t2aki@tokoroten.doncha.net

ところてんx5

2024/3/2 10:18

そもそも。いまウチに転がってる弁当箱インテルMacはOSのサポートがとうに外れてるんだけど、今年2024年にいよいよintel macがサポート外になるという噂?
intel macにFreeBSDとかインストールできるのかな…。intelmacは周辺機器もお手軽に揃えられるんで...

2024/3/1 09:09

https://xml.kishou.go.jp/xmlpull.html
地道に気象庁が無難か…

2024/3/1 08:38

RSS取得するなにかを作るなら、どこかのニュースも取得するようにしよう。ついったが地震とか災害情報に役立たずになったから、気象、災害系のニュースぐらいは欲しいよなあ

検索
<<2024/3>>
     12
3456789
10111213141516
17181920212223
24252627282930
31

リンク

WINDOWS版サウンドノベル
おかえりください PC WINDOWS版サウンドノベル
『おかえりください』体験版