2024年1月3日

2024年、新年のご挨拶:新しい生活を始めました。


一日に白米三合と

味噌とたっぷりの野菜をたべ

三田で体の不自由な方の日常の

お手伝いをさせていただき

有野で書籍を組ませていただく

有馬郡に収まる

そういう暮らしを始めています

二〇二四年一月

森 窮狸 


2023年8月2日

一太郎文書の縦中横が、書き出したテキストで欠落する要因


Word文書を一太郎で開いて作った一太郎文書から「名前を付けて保存」などでプレーンテキストに書きだすと、縦中横となっていた数字がテキストでは欠落する。

これを回避するには、一太郎上で縦中横をいったん全解除してからテキストに書きだすとよい。


以下は、これについての探求の記録である。

縦書きでは洋数字を縦中横にすることが多いが、一太郎文書から書き出したテキストで縦中横になっている箇所のいくつかで数字が欠落することがあった。

この事故が起こった文書は、複数の著者が分担執筆したものを一つの一太郎文書にまとめたものだった。縦中横の欠落はある著者の担当部分に集中していた。しかし、その著者の担当部分でも欠落していない縦中横があった。

一太郎の編集画面上では欠落する縦中横と欠落しない縦中横の見分けはつかないが、この著者の担当部分だけ、段落スタイルが「標準(Word文書)」になっていることに気付いた。この著者だけWordで執筆したと思われる。

そこで、縦中横を含む文書をWordで作り、それを、
  • 一太郎で開いたもの
これに
  • Word上でコピーして一太郎上にペーストしたもの
  • 一太郎で新たに入力したもの
を付け加えた新たな一太郎文書(下のスクリーンショット)を作成した。


これから書き出したテキストが最初のスクリーンショットである。つまり;
  • Word文書を一太郎で開いて作成した文書の縦中横は欠落する。
  • Word文書からコピー&ペーストした部分の縦中横は欠落しない。
  • 一太郎上で加筆した部分の縦中横も欠落しない。
ということになる。

2023年7月23日

中国語の句読点


中国語の句読点が面白い。台湾の縦組ではコロンとセミコロンは立てるんだな。


小学館『中日・日中辞典』の付録「文章記号の使い方」によると:
分号 fēnhào  セミコロン
①複文中で並列された節の間のポーズに用いる.
②因果関係や逆接関係など,時には並列でない節のポーズにも用いる.
③列挙した各項の間に用いる.
冒号 màohào  コロン
①呼びかけ語の後ろに用いて,次の文を提起する.
②“说”“想”“证明”“例如”などの後ろに用いて,次の文を提起する.
③総括的な語の後ろに用いて,以下でさらに細かく提示する.
④解説が必要な語の後ろに用いて,説明を引き出す.
⑤総括的な語の前に用いて,上述の内容の総括をする.
このセミコロンの用法はうらやましい。日本語には読点(、)しかなくて、どこまでが節なのか不明瞭だし、そのために文意もあいまいになっていることがある。

ところで、
逗号 dòuhào  カンマ
文中のポーズに用いる.(文内部の主語と述語の間,動詞と目的語の間,連用修飾語の後ろ,前置された熟語の後ろ,後置された連用修飾語や連体修飾語の前など) 
顿号 dùnhào  読点
文中で並列された語句の間に用いる.
となっている。中国語での「逗号(,)」の用法は、日本語での「読点(、)」にあたるのだから、中国語の「顿号(、)」にこのように「読点」と訳すのは困るな(辞書本体の「顿号」項でも「読点」としている)。

中国語での「顿号(、)」の用法は日本語での「中黒(・)」なのだから訳語としては「並列点」ぐらいがいいのでは。


写真は『胡適文選』の1979年、(台湾の)遠東図書公司版。『胡適文選』は、汲古書院の『胡適 政治・学問論集』(本文組版は窮狸校正所)を編訳された佐藤公彦先生による翻訳が平凡社東洋文庫に入っている。

2023年5月13日

註番号をずらす

新たな註が挿入されたり既存の註が削除されたりすると、註番号をずらさなければならない。このスクリプトは合印をルビとして配置している場合にその作業をするものである。なお、合印が付けた親文字には「註合印」という文字スタイルをあてている。開始箇所、終了箇所と増減値は必要に応じて書き換える。

//このスクリプトは新たな註を挿入したり、既存の註を削除したりする前に実行すること

//註番号の範囲
var fromNum = 210; //ここから 
var endNum = 399; //ここまで
var gap = 1; //増減値
var refNum ; //註番号
var cSty = app.activeDocument.characterStyles.item("註合印");

//処理範囲
//var range = app.activeDocument; //置換範囲はドキュメント全体
var range = app.selection[0].parentStory; //置換範囲は文字キャレットのある親ストーリー
//var range = app.selection[0]; //置換範囲は選択範囲のみ

//正規表現検索・置換の初期化
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;

//註合印のついた箇所を検索
app.findGrepPreferences.appliedCharacterStyle = cSty;
var foundStr = range.findGrep();
for (i = fromNum; i <= endNum; i++ ) {
	//全角パーレンを取って註番号を得る
	refNum = foundStr[i].rubyString.replace(/[()]/g, "");
	//増減値を加える
	refNum = String(parseInt(refNum) + parseInt(gap));
	//全角パーレンで囲んで合印にする
	foundStr[i].rubyString = "(" + refNum + ")";
}

//正規表現検索・置換の初期化
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;

alert("完了");

2023年1月16日

一太郎はunicodeの漢文用記号を使ってくれない


きのう、漢文の返り点はunicodeのKanbun(漢文用記号)ブロック(U+3190〜U+319F)に登録されているものを使ってくれたら組版が楽になるのに、という話をしたけど、きょう驚愕の事実に気がついた。

一太郎である。一太郎には漢文入力用のパネルがあるが、そこで返り点として入力されるのが、上記の漢文用記号ではなく、普通の文字(たとえば㆑点は片仮名のレ、㆗点は漢字の中)なのだ。歴史のあるワードプロセッサーなのでunicodeのなかった古代からの遺制なのだろうか。



已矣乎……

2023年1月15日

漢文用記号


unicodeには「Kanbun(漢文用記号)」というブロック(U+3190〜U+319F)に「㆐㆑㆒㆓㆔㆕㆖㆗㆘㆙㆚㆛㆜㆝㆞㆟」が登録されている。原稿を書くときこの漢文用記号を使ってもらうと、組版作業がとても楽。これを普通の文字で代用すると、合符と㆑点以外は文章そのもので使われてる字と区別できず、確認に手間をとるのだ(㆑点を片仮名のレで代用する人もいるけど、それは一括置換で済む)。

漢文用記号は変換候補には出てこないだろうから、「ごうふ:㆐」「れてん:㆑」「かえりいち:㆒」……というぐあいに変換辞書へ登録しておくといいかも。

Shift_JISの時代は文字数が限られていて、代用したり、外字を作ったり、いろいろ苦労したけど、そんな苦労を反映してunicodeは便利になっている。しかし、それがあまり知られておらず、組版の効率を下げてしまっているのが残念。

2023年1月13日

注合印を組んでいく

MS-Word(.docx)からプレーンテキストで書き出すと、注の合印(注番号)が本文の行中にはだかで挿入される。縦組みにするので、この注合印(注番号)をパーレンで囲み、対象文字列の右側行間に置く。この作業をInDesign上で半自動化するスクリプト。


合印は括弧類には付けないので、選択箇所の1文字目にルビとして合印を組む。なお、合印の体裁は親文字の文字スタイル(「注合印」という名前)で付けている。

このスクリプトにキーボードショートカットを付けて(私はCtrl+Cmd+iにしている)て、「.[」』)]?\d+」を検索(私は正規表現検索の「次を検索」のショートカットをCtrl+nにしている)すれば、「Ctrl+n Ctrl+Cmd+i」の繰り返しで次々と合印を組んでいける。

コード;
var cSty = app.activeDocument.characterStyles.item("注合印");
var sel = app.activeDocument.selection;
//注番号の前に区切り「_」を入れて、番号をパーレンで囲む。
var selStr = sel[0].contents.replace(/(\d+)/, "_($1)"); 
//区切りの前後で文字列を分ける。
var selAry = selStr.split("_"); 
//前半部分を対象にする。
var selCha = sel[0].characters;
//後半部分(注番号)を前半部分の1文字目にルビとして付ける。
selCha.itemByRange(0,0).rubyString = selAry[1];
selCha.itemByRange(0,0).rubyFlag = true;
//1文字目に文字スタイル「注合印」を適用する。
selCha.itemByRange(0,0).applyCharacterStyle(cSty);
//後半部分(注番号)を消去する。
selCha.itemByRange(selAry[0].length,-1).contents= "";

2023年1月1日

2023年 新年のご挨拶


明けまして おめでとうございます

旧年中はたいへんお世話になりました。屋号を掲げて組版・校正の仕事を始めて、はや十年目に入りましたが、まだまだ勉強・修練が要ります。本年も、ご指導ご鞭撻のほど、よろしくお願いいたします。

二〇二三年一月 窮狸(森卓司)
 

2022年に組版を担当した主な本(敬称略)

小松謙『詳注全訳水滸伝』、汲古書院。4月21日に第二巻、7月7日に第三巻。全13巻を年2巻ずつ発行の予定。講釈師の語りの様式をとっている原文の雰囲気を可能な限り写してある訳も魅力ですが、注が圧巻。その読みごたえのある注(脚注)を挿絵も交え、本文と同じ見開きに収めるのは、なかなかの力技です。

4月1日。岡部芳彦『日本・ウクライナ交流史1937-1953年』、神戸学院大学出版会。1915-1937年の巻に続いて担当しましたが、仕上がりを目前にしてソ連が進攻を開始。一日も早くウクライナに平和が戻ることを祈ります。

11月9日。佐藤公彦編訳『胡適政治・学問論集』、汲古書院。戦争と革命の時代、文学者・胡適がどう思考し、行動したのか。組版をしながら、その時代を追体験させてもらいました。

2021年7月12日

『はちどり』;ヨンジ先生が読んだ本

韓国映画『はちどり』を映画サークルの例会でみた。https://animoproduce.co.jp/hachidori/ 

1994年、ソウルでの物語。主人公のウニはチョンハ청하〔廳下〕書堂という漢文塾に通っている。
交友篇 相知満天下、知心能幾人、
を習う。「交友篇」という語を検索してみると『銘心宝鑑』らしい。

ところで、この塾の先生、ヨンジの本立てが写るシーンで、あれ?と思った本があったので、きのうビデオを借りてそこで止め、周りの本の背表紙を読んでみた。


左端からペン立ての近くの『中国古代書法史』までは漢文・書道の教師としてはあたりまえ。でも、その右から、
『労働価値理論研究』
『論理と批判的思考』
『性の歴史 第一巻 知への意志』(フーコー)
『政治経済学原論』
『政治経済学特講』
『監獄からの思索』
『クヌルプ——生涯の三つの物語』(ヘッセ)
『家父長制理論』
『フェミニズムと階級政体化』
『歴史唯物論の再構成』
『資本論 Ⅰ〔上〕』
『歴史唯物論研究』
『民主主義と独裁』
『富者の経済学と貧者の経済学』
『逆読み世界史』
『談論とは何か』
『??????(読めず)』
『第二の性』(ボーヴォワール)
『何をなすべきか』(チェルヌイシェフスキーか、レーニンか)

1994年で大学を長期休学しているという設定なので、わたしより10歳ほど若い人。 光州事件の時は小学生高学年あたりか。 これらの本からすると、80年代後半の民主化運動にそうとう主体的にかかわっていたと思われる。


『クヌルプ』はヘッセの小説。この版らしい。
https://ridibooks.com/books/260000041
本立てからウニがこの本を手に取り、表紙に記されている一文を親指で撫でる。


네, 모든 것이 되어야 할 대로 되었습니다.
ええ、何もかもあるべきとおりです。(高橋健二訳:新潮文庫)
ええ、すべてが、こうあるべきです。(相良守峯訳:岩波文庫)
Ja, es ist alles, wie es sein soll. (原文)https://www.gutenberg.org/files/17622/17622-0.txt

これは三番目の物語の末尾、臨終の薄れ行く意識のなかでクヌルプが神と対話し、そう答えてようやく自分の人生を肯定して最期を迎える。ウニにとってはこの一文だけでも励ましのように思えたのかもしれない。

それにしても、ヨンジ先生が『クヌルプ』を読んでいたのはなぜなのだろう。二つ目の物語でクヌルプがこう語っている——

「ぼくはこれまでたくさんの人と話をし、たくさんの人が演説するのを聞いた。牧師や市長や社会民主党員や自由主義者が演説するのを聞いた。しかし、心の底まで真剣で、いざとなったら自分の真理のために一身を犠牲にする人だと信頼できるような人はひとりもいなかった。」

90年代の韓国は民主化闘争も一段落し、経済成長のもと生活を謳歌する風潮が広がりはじめていたころ。ヨンジ先生もクヌルプのような体験をし、それが長期休学をしているわけなのかもしれない。


(蛇足)

書堂でヨンジ先生が教えていたのは『銘心宝鑑』(『明心宝鑑』)だけれど、板書されている章句と場面との関係もまた興味深いものだった。

(1)最初の授業の板書は

「相知満天下、知心能幾人、」(交友篇)

——この映画のテーマのような句なので字幕にも訳が出ていた。

(2)万引き直後、授業を始めようとヨンジ先生が消した板書は

「益智書云、女有四德之譽、一曰婦德、二曰婦容、三曰婦言、四曰婦工也、」(婦行篇)

——家父長制のもと女性に求められていた徳・容姿・言葉遣い・手技のことらしい。父・兄からの暴力に怯えるウニ(ジスクもそうだと後で分かりましたが)の告白と対照的になっている。

(3)ジスクが万引き事件後初めて書堂に来て、ウニとぎこちない雰囲気になっていたときに板書されていたのは

「明鏡所以察形、往者所以知今、過去事如鏡朝、未來事暗似漆、」(省心篇)

——磨かれた鏡によって形を察する。過去によって現在を知る。過去は鏡のように明らかだが、未来は漆黒の闇のようだ。——二人の和解とともに、この後の展開を暗示しているのだろうか。


2021年6月25日

Macのキーボードビューアの表示・非表示

Macのキーボードビューアの表示・非表示は、画面の四隅にマウスを寄せることでできるようになっていた。「ホーットコーナー」に何か設定しているとそちらが優先されるかもしれないけど。



2021年6月22日

約物、とくに句読点の使い方についての資料

日本語の句読点(くぎり符号)の使い方については明確なものがない。昭和21年、文部省国語調査室「くぎり符号の使ひ方〔句読法〕(案)」というのが、いちばん詳しいかも。ただしいまだに「案」なのだ。

これと「くりかへし符号の使ひ方〔をどり字法〕(案)」が『国語表記の問題』(文部省、国語シリーズ No. 56)の付録になっている。これも昭和21年刊。


『句読点活用辞典』――辞書部分はたいくつだけど、上述の資料などが転載されていて便利なのと、文筆家の句読点考のアンソロジーも入っていて、ちょっとおもしろい。


英語だとカンマの用法はかなり厳密に決まっているようで、「カンマの女王」と称される校正者がいるぐらい。

2021年6月16日

RAW写真の片づけ

写真はJPEGとRAWを同時に撮るようにしている。

JPEGをビューアで見て、目をつぶっていたり、ぶれていたり、使えそうにないものを削除していく。そして、残ったJPEGに対応するRAWを選び出すのは、POSIXのパラメーター展開を使えば簡単にできる。

JPEG334枚を252枚に絞り込んだところ。RAW82枚(=334-252)には対応するJEPGがなくなった。この82枚のRAWを削除したいけど、手作業で選び出すのはたいへん。

しかし、逆に、あるJPEGに対応するRAW(RAF)を見つけるのはファイル名についてパラメーター展開を使えば簡単。

for i in *.JPG; do mv ${i%JPG}RAF RAF/; done
${i%JPG}はi番目のJPEGファイルのファイル名からドットを残して拡張子JPGを取った文字列を表す。それにRAFをつければ、i番目のJPEGに対応するRAWのファイル名になるというわけ。見つけたRAWをサブフォルダ(RAF/)に移動する。この後、JPEGと同じフォルダにあるRAWを削除すればよい。

パラメーター展開については次の文書を参照されたし。
POSIX>Shell & Utilities>Shell Command Language>2.6.2 Parameter Expansion



2021年5月29日

註合印を入れるInDesign javascript

本文中のアンカー箇所(文字)を選んで、註番号を入力していく。

var Anker = app.activeDocument.selection[0];
var AnkerChar = Anker.contents;
var indexStr = prompt("Der Anker ist " + AnkerChar + ".\n Welche Indexnummer?", "");
if (indexStr) {
    Anker.rubyFlag = true;
    Anker.rubyString = "(" + indexStr + ")";
    var cStyle = app.activeDocument.characterStyles.item('註合印'); 
    Anker.applyCharacterStyle(cStyle);
} 

2021年5月16日

旧暦・新暦

きょうは「旅の日」だそうだ。
松尾芭蕉が「おくのほそ道」の旅に出立した元禄二年三月二十七日はグレゴリオ暦だと1689年のきょう5月16日であることに因んでのことらしい(NHK R1情報)。

九月六日=10月18日までの旅だけど、どうしてまた、これから梅雨という時期に出かけたんだろう。夏の盛りの徒も辛かろうに。

和暦と西暦変換はこちらが便利;
 https://keisan.casio.jp/menu/system/000000000230

中国のはこちらだな;
https://sinocal.sinica.edu.tw/


 

2021年5月11日

JIS90年版とJIS2004年版フォントの字形差:モリサワの資料

「字形差」資料の冒頭


現行のフォントはJIS X 0213の2004年版の字形によってる。しかし、印刷所によっては90年版以前のフォントを新組みにも使い続けている場合がある。そういったゲラを校正するとき、この資料があると便利だ。しかし、モリサワのサイトでは奥の方にあって探しづらいのでここにリンクをメモしておこう。

フォント/ 

フォントディレクトリにある、
も、なかなか役に立つハンドブックなのだ。

2021年3月5日

寺田浩晃「三途の川アウトレットパーク」

いつの間にか、一世代回ってしまった。
若者たちもなかなか良い生き方をしている。
がんばれ!

2018年9月29日

Windows10のクイックアクセスからピン止めが外せない時

〔自分用備忘録〕

Windows10 のエクスプローラーの「クイックアクセス」にピン止めしたものが外れないことがある。エクスプローラーの「オプション>全般>エクスプローラーの履歴を消去する」でも消えないことがある。私の場合、ピン止めしていたFTPサーバが不要になったので外そうとしてなかなかうまくいかなかった。

その場合は、次の2つのディレクトリの中身を削除すればよい。ただし、これらはエクスプローラーで「隠しファイルを表示」としても見えないので、コマンドプロンプトでの操作となる。全部消すと他のピン止めしたのも消える。

%APPDATA%\Microsoft\Windows\Recent\AutomaticDestinations\
%APPDATA%\Microsoft\Windows\Recent\CustomDestinations\


2018年1月1日

2018年、新年のごあいさつ

恭 賀 新 年


旧年中は一方ならぬ御高配にあずかり誠にありがとうございました
皆様のご多幸をお祈り申し上げます

さて戌年 弊社も出番です イヌ科です

もともと極東にしかおりませんでしたので学名「Nyctereutes procyonoides」―属名は〝夜の探索者〟種小名は〝アライグマのようなもの〟―のように

  • 「raccoon dog 」〔英〕(アライグマ犬)
  • 「Енотовидная собака」〔露〕(アライグマ犬)
  • 「Marderhund」〔独〕(テン犬)

など欧米の人たちからはそれぞれに身近な生き物の名を借りて呼ばれています

  • 日本では「狸」
  • 韓国でも「너구리」の리は「狸」でしょう
  • ところが中国では「貉 hé」

あれ? 「狸 lí」は〝山猫〟なのだそうです 弊社の社章 実は「九条ねこ」なのですが案外「窮狸」を正しく表しているようです

本年も何卒ご指導ご鞭撻の程よろしくお願いいたします

  共通暦二〇一八年 元旦

2017年7月29日

ちょいスクリプト:索引の種

InDesignの索引作成機能がどうも使いづらいので、語句を拾いながら、スクリプトで「ノンブル(タブ)語句」の組をファイルに書き出すようにした。

var curSlc = app.activeDocument.selection[0];
var curStr = curSlc.contents;
//var curNom = app.layoutWindows[0].activePage.name;
var curNom = curSlc.parentTextFrames[0].parentPage.name;
var outFile = new File("/Users/tak/Dropbox/索引/writeout.txt");
outFile.encoding = "UTF-8";
outFile.lineFeed = "Unix";
if ( outFile.open("a")) {
    outFile.writeln(curNom + "\t" + curStr) ;
    outFile.close();
//    alert (curNom + "\t" + curStr +" を追加しました。");
    } else {
    alert("書き出しファイルが開けません");
 }

索引に拾う語句をドラッグで選択して、このスクリプトを実行(ショートカットをCtrl+Opt+Cmd+iにした)。alertで書き込めたことを確認してもいいけど面倒なので、tail -f を使って書き込み具合をterminalで監視しておく方が楽。


〔2017-07-30追記〕ノンブルを取得する方法を変えた。はじめはコメントアウト部分のようにしていたが、これだと対象の語句がある頁ではなく、画面上いちばん多く見えている頁のノンブルを取得してしまい、対象語句が次頁にわたっている場合など、別の頁のノンブルを拾ってしまう。

2017年2月6日

ちょいスクリプト:12時制を24時制に書き換える

「午後4:05」→「16時5分」、「午前8時半」→「8時30分」という具合に12時制の時刻を24時制の「hh時mm分」の形式に書き換える。

ただし、「午後12時」は本来「夜中の0時」のはずだけど、「昼の12時15分」のつもりで「午後12時15分」と書く人もいるので、「午後12時」については疑問出しをするようにした。

perl

#!/usr/bin/perl
use utf8;
binmode STDOUT, ':utf8';
binmode STDERR, ':utf8';
binmode STDIN, ':utf8';

while (<>) {
        y/1234567890:/1234567890:/;
        s/(\d+):(\d+)/\1時\2分/g;
        s/(?<=時)半/30分/g;
        s/00分//g;
        s/午後0/12/g;
        s/午後10/22/g;
        s/午後11/23/g;
        s/午後12(?=時\d+分)/昼?夜?0/g;
        s/午後12(?!時\d+分)/0/g;
        s/午後1/13/g;
        s/午後2/14/g;
        s/午後3/15/g;
        s/午後4/16/g;
        s/午後5/17/g;
        s/午後6/18/g;
        s/午後7/19/g;
        s/午後8/20/g;
        s/午後9/21/g;
        s/午前(?=\d+)//g;
    print $_;
}

javascript

var mySel = app.activeDocument.selection;
var myStr = mySel[0].contents;
myStr = myStr.replace(/0/g, "0");
myStr = myStr.replace(/1/g, "1");
myStr = myStr.replace(/2/g, "2");
myStr = myStr.replace(/3/g, "3");
myStr = myStr.replace(/4/g, "4");
myStr = myStr.replace(/5/g, "5");
myStr = myStr.replace(/6/g, "6");
myStr = myStr.replace(/7/g, "7");
myStr = myStr.replace(/8/g, "8");
myStr = myStr.replace(/9/g, "9");
myStr = myStr.replace(/:/g, ":");
myStr = myStr.replace(/(\d+):(\d+)/g,  "$1"+"時"+"$2"+"分");
myStr = myStr.replace(/(?<=時)半/g, "30分");
myStr = myStr.replace(/00分/g, "");
myStr = myStr.replace(/午後0/g, "12");
myStr = myStr.replace(/午後10/g, "22");
myStr = myStr.replace(/午後11/g, "23");
myStr = myStr.replace(/午後12(?=時\d+分)/g, "昼?夜?0");
myStr = myStr.replace(/午後12(?!時\d+分)/g, "0");
myStr = myStr.replace(/午後1/g, "13");
myStr = myStr.replace(/午後2/g, "14");
myStr = myStr.replace(/午後3/g, "15");
myStr = myStr.replace(/午後4/g, "16");
myStr = myStr.replace(/午後5/g, "17");
myStr = myStr.replace(/午後6/g, "18");
myStr = myStr.replace(/午後7/g, "19");
myStr = myStr.replace(/午後8/g, "20");
myStr = myStr.replace(/午後9/g, "21");
myStr = myStr.replace(/午前(?=\d+)/g, "");
mySel[0].contents = myStr;