猫野詩梨帳

かわいいはかしこい

古典ギリシア語初歩メモ(17 課 〜 21 課)

↓の続き.このメモは練習問題の正答ではないので,必ず↓の記事を先に読むこと.

cylomw.hatenablog.com

17 課

17-1. あらゆる大地は著名な男たちの墓である.

17-2. 大きい都市は大きい荒野である.

17-3. あらゆるそれら(人々?)が黒い武器を持っていた.

εἶχον は ἔχω の impf.pl.3.

17-4. 恐ろしいものは多いが,人間より恐ろしいものは何もない.

17-5. 哀れな母親達が速い船の中にとどまるだろう.

μενοῦσιν は例によって μένω(とどまる,待つ)の fut.pl.3. (§81)

17-6. 腹の快楽は,あらゆるよいことの始めであり,そして根である.

定冠詞のついている ἡ ... ἡδονή が主語であると考えられる.

17-7. 当時,9人のアルコーンたちが政治事の多くのことを行っていた.

17-8. 文献学者カリマコスは,大きい本は大きい悪に等しいと言っていた.

[ἔλεγεν] (← λέγω) [τὸ μὲγα βιβλίον](対格) [εἶναι](不定詞)〜.ἴσος:(与格)に等しい

17-9. 人は各々の仕事において一方ではより劣っており,他方ではより優れている:人々の誰自身も全てに於いて賢くはない.

注にあるように ἔργον ἕκαστον, ἅπαντα はいずれも限定の対格(〜において)(§58).αὐτὸς をどう訳すかよくわからなかったが,属格 ἀνθρώπων が οὐδεὶς を修飾していることを表すためにあるのかもしれない.

17-10. というのも,主は六日間のうちに,天と大地と海と,それらの中のすべてのものをつくり,そして第七の日の間は休息したからである:それ故に,主は第七の日を祝福し,それを神聖なものとした.

πάντα τὰ ἐν αὐτοῖς は τὰ が名詞「もの」として用いられていると考え (練習3の注4),「それらの中の全てのもの(を)」とした.このように前置詞節が定冠詞によって「〜もの」と名詞化されることがよくあるらしい(例:τὰ ἐν τῇ νήσῳ 島の中にあるもの).κατέπαυσε は καταπαύω(やめさせる,終わらせる)の 1aor.sg.3 (κατα-έ-παυσε)(§35) で,注にあるようにここでは「休息した」の意.ἡμέρᾳ(マクロン省略)は期間の対格 (§46.1).

18 課

18-1. 恩人には感謝を返さねばならない.

18-2. 不運は人々をより賢くさせる.

σωφρονεστέρους は σώφρων の比較級の (m.?) pl.acc. である.語幹が -ον, -οο で終わるような形容詞など(-ων, -ον 型形容詞など → §75.3)は -εστερος, -εστατος のような語尾の比較級・最上級になるらしい.例:εὐδαίμων(語幹 εὐδαίμον-) → εὐδαιμονέστερος, εὐδαιμονέστατος

18-3. 我々は保証を与えることととることを欲している.

λαβεῖν (2aor.inf.) ← λαμβάνω

18-4. ソクラテスは履物なしで長い時間立った.

18-5. 父なるゼウスは,パトロクロスに一方をば与え,他方をば拒んだ.

注を参照すること.

18-6. アテーナイ人たちには,その場所で立って戦争をすることが良いと思われた.

δοκέω [与格] [不定詞]:〜には……と思われる,……が良いと思われる(非人称構文)

18-7. なぜ橋のそばで見張りたちを立ち上がらせなかったのか.

τί には「なぜ」の意味もあるので注意.ἀνεστήσατε (1aor.pl.2.) ← ἀνίστημι (ἀνα-ἵστημι)

18-8. 当時,ミーレートスを除いて,イオーニア地方の諸都市はキューロス側になびいた.

18-9. 私の考えでは,親しい男を裏切らない者は誰でも,人々の中でも神々の中でも大きな名誉を持つ.

ἔν τε ← ἐν τέ (§48.2, §50.6)

18-10-1. ある詩人は言う.神々は,動物たちを作った時,ある贈り物を各々に分配した.

διένειμαν (1aor.pl.3.; §35, §38.3) ← διανέμω

18-10-2. 雄牛たちには角を与えた.

18-10-3. 馬たちには蹄を,鳥たちには翼を,そして他の者たちには(それぞれ)そのようなとある他のものを(与えた).

18-10-4. 人間たちにはそのようなものを何も与えなかったが,男たちには男らしさを,女たちには美しさを与えた.

18-10-5. それ故に,女は全てのものの中で最も強い.

「〜の中で最も」の属格 (cf. 練習 13-9)

18-10-6. というのも,男たちは男らしさによって全てのものを征服するが,女たちは美しさによって男たちを征服するからである.

手段の与格(……で,……によって §14.3).νῑκῶσι (νῑκάουσι) ← νῑκάω(勝つ,征服する)

それ故に〜,というのも〜 (δὶα τοῦτο/ταῦτα...γάρ/ὅτι...) 構文は練習 15-10 でも出てきた.

19 課

19-1. 我々はただちに家へ立ち去る.

ἐπί + 属格 は「〜の上に」「〜の時に」などであるが,注にあるようにここでは ἐπ' οἴκου: 家へ.ἄπιμεν (pl.1.) ← ἄπειμι(立ち去る ἀπο-ειμι)

19-2. 君は魚を放たねばならぬ.

19-3. 唯一,時間(のみ)が正しい男を示す.

μόνος は χρόνος を修飾している.英語でも,形容詞 alone が名詞を修飾して「ただ〜のみが……」という(副詞のような)意味になることがあるので,それと同じようなものだと考えられる.Time alone reveals the just man.

19-4. 君はチーズを革袋の中へしまった.

ἀπέθηκας (2aor.sg.2.) ← ἀποτίθημι(片付ける,しまう)

19-5. 彼は若者たちに知恵の愛を鼓吹していた.

ἐνετίθει (impf.sg.3.) ← ἐντίθημι(中に入れる,鼓吹する)

19-6. すべての牛たちは川の中へ行っていた.

ᾖσαν (impf.pl.3.) ← εἶμι (§93)

19-7. ゆえに彼は手の中から剣を地面に落とした.

ἧκε (2aor.sg.3.) ← ἵημι (放つ,投げる,落とす §92)

19-8. よいものの中から悪いものをつくることは,悪いものの中からよいものをつくることより容易である.

θεῖναι (2aor.inf.) ← τίθημι (置く,つくる,制定する,……にする §92)

19-9. 父ピリッポスはここで 12 歳の子供を埋葬した.多くの希望ニーコテレースを(埋葬した).

πατὴρ = Φίλιππος, τὴν πολλὴν ἐλπίδα = Νῑκοτέλην. 注にあるように,ἀπέθηκε (2aor.sg.3.) ← ἀποτίθημι はここでは「埋葬した」の意.

19-10-1. クセルクセースがギリシアへ進軍していた時,スパルタ人はテルモピュライの中で入り口を見張っていた.

19-10-2. 戦いの前に,味方のある人が言った.「夷狄たちが矢を射かけるときはいつでも,その大量の矢が原因で太陽を隠してしまう.それほど多くのそれらの数が存在する.」

注にあるように,ἀφιῶσι は ἀφίημι の接続法 (subjunctive) 能動相現在3人称複数形で,ここでは現在の一般的な仮定「もし〜ならば……である」を表す (§116.2).ここでは ἐπήν を伴って,「〜のときはいつでも……である」と訳すことができる.

19-10-3. そしてディエーネケースという名のスパルタ人が言った.「おお,異邦人よ.君は我々にあらゆるよいことを告げる.というのも,もしメーディアー人たちが影の下に太陽を隠すならば,戦いは太陽の中ではないだろうからである.」

ὀνόματι は限定の与格と考え,「名前に於いてディエーネケースである」→「ディエーネケースという名の」と訳した.ἔσται (fut.sg.3. §138) ← εἰμί

原文によると,この「異邦人」=「味方のある人」はトラキス人(Τρηχίνιος, Τραχίνιος, Τραχίς)となっているようである.敵の夷狄(ペルシア人=メーディアー人)ではない.「戦いは太陽の中(下)ではない」とは,つまり日陰で戦えるということだが,「敵(ペルシア人)の撃ってくる矢が多い? いや結構結構,涼しい日陰で戦えるではないか」みたいな感じ?

20 課

20-1. 死から逃げている人々は,(死を)追っている.

限定詞としての分詞(§100)と考えた.φεύγω [対格(危険など)]から逃げる.

20-2. 心を一つにすることによって,我々は強くいられるであろう.

手段の分詞 (§101.4).μενοῦμεν は例によって μένω(とどまる,待つ)の fut.pl.1. (§81).ここでは形容詞 ἰσχῡροί(強い,激しい)を補語として「強いままでいる(だろう)」と訳した.

20-3. 学んだことを信頼せねばならない.

μαθοῦσιν (2aor.part.n.pl.dat.) ← μανθάνω(学ぶ;第二アオリスト ἔμαθον).分詞が名詞扱いされており (§100),「学んだこと」.アオリスト分詞なので「学ぶ」ではなく「学んだ」と過去形に訳した (§102).また,πιστεύω が与格をとることに注意.

20-4. 愛するものたちの怒りは少しの間(だけ)力がある.

φιλούντων は名詞扱いされた分詞 (§100).ὀλίγον χρόνον は期間の対格で,「少しの間(だけ)」(§46.1).

20-5. というのも,多くの生まれのよいものたちは悪い(下劣だ)からである.

分詞 ὄντες (§97) が名詞扱いされ,「〜であるものたち」.

20-6. 妻を娶らない男は悪いものを持たない.

20-7. キュプリス(アプロディーテー)はクニドスの中のキュプリス(の彫像)を見た時に言った,「ああ,ああ,プラークシテレースはどこで裸の私を見たのか.」

Κύπρις は単数主格がアクセントのない -ις に終わる子音幹名詞なので,単数対格が Κύπριν となる(§57.2).εἶπεν (2aor.sg.3.) ← λέγω(言う).ἰδοῦσα (2aor.part.f.sg.nom.) ← ἰδών (2aor.part.n.sg.nom.) ← εἶδον (2aor.sg.1.) ← ὁράω(見る)

20-8. 人間はあらゆるものの尺度である.存在する者たちの(尺度)は,存在するということであり,存在しない者たちの(尺度)は,存在しないということである.

ὄντων が複数属格であるため,名詞の属格「存在する者たちの」として χρημάτων と同じように μέτρον を修飾している(省略されている)と考え,このような訳にしてみた.一般には「人間は万物の尺度である.あるものについてはあるということの,あらぬものについてはあらぬということの.」などと訳されるようである.前半を引用する者は多いが,後半についてはみな良くわかっていないのか引用しない.私もよくわからないので,誰か解説してください.

20-9. ソークラテースは若者たちを堕落させ,都市の信じている神々ではなく他の新しい神霊たちを信じているので,不正を働いている(悪いことをしている)のだ,と彼は言う.

φησίν(← φημί)対格 + 不定詞 の構文 (§41).彼は,ソークラテース(対格)が不正を働いている(不定詞)と言っている.ちなみに,ここで「彼」とは,ソクラテスを告発した詩人のメレトス.διαφθείροντα, νομίζοντα は理由の分詞とした.これらの分詞の主語にあたる部分は Σωκράτη (m.sg.acc.) なので,分詞も性数格を一致させて m.sg.acc. となっている.θεοὺς οὓς ἡ πόλις νομίζει「都市の信じている神々」(οὓς は関係代名詞の m.pl.acc.).οὐ νομίζοντα, δὲ ... とあるので,この「都市の信じている神々」を信じずに,……を信じている,と訳した(最後に νομίζοντα が省略されていると考えてもよい).

20-10. 生きることは悪だと言った人に向かって,犬儒派ディオゲネースは言った,「生きること(が悪であるの)ではない,」「悪く生きること(が悪なの)だ.」

εἰπόντα (2aor.part.m.sg.acc.), εἶπεν (2aor.sg.3.) ← λέγω(言う).ここで εἰπόντα は名詞扱いされたアオリスト分詞で,「(〜と)言った人」と訳した.その人が言ったことの中身は対格+不定詞構文で κακὸν εἶναι τὸ ζῆν「生きることは悪である」.ζῆν (inf. この動詞は特別の母音融合を行う;練習14の単語リスト参照) ← ζάω(生きる).中性なのでわかりにくいが τὸ ζῆν も κακὸν も対格であると考えられる.

21 課

21-1. 私は,人は死すべきだ(死を免れない)ということを知っている.

分詞を用いた間接話法.注にあるように,οἶδα (2perf.sg.1.) は「(私は)知っている」.この動詞には現在形がなく,(第二)完了形が現在の意味で用いられる (§166).

21-2. もしぶどう酒がもはや存在しないのならば,キュプリス(アプロディーテー)は存在しない.

分詞 ὄντος (← εἰμί) の主語 οἴνου(ぶどう酒)は主文「キュプリスは存在しない」に現れていないため,独立的用法の分詞(属格)である.

原文はこの後ろに οὐδ᾽ ἄλλο τερπνὸν οὐδὲν ἀνθρώποις ἔτι「そして人々にとって他の楽しいものはもはや決して(存在しない)」と続く(τερπνὸν ← τερπνός 楽しい;οὐδ᾽...οὐδὲν は二重否定ではなく否定の強調,cf. 練習 13-5 の注).よって,ここの「キュプリス」とは愛や肉欲(の楽しみ)を示しているのかもしれない.

21-3. 彼はその時確かに,他のあらゆる者たちに知られずに涙を流していた.

λανθάνω [対格]に知られずに[分詞]する(§110.2 例文の2つめ)

21-4. スパルタ人の多くの軍隊がたまたまコリントス地峡まで進出したわけではなかった.

ここでは「少数の軍隊が(たまたま)進出した」という意味にとってよいと思われる.ἔτυχε (2aor.sg.3.) ← τυγχάνω (§110.2)

21-5. 彼らは,(ペリクレースが)彼らを(自分たちを)戦争するよう説得したという理由でペリクレースを責めていた.

ἐν αἰτίᾳ ἔχω(責める;マクロン省略),εἶχον (impf.sg.1., pl.3.) ← ἔχω.説得したのはペリクレースなので,πείσαντα (1aor.part.m.sg.acc.) (← πείθω 説得する) は Περικλέᾱ (m.sg.acc.) と性数格が一致している.σφᾶς は三人称代名詞の pl.acc. で「彼らを」だが,アッティカ方言の散文では三人称代名詞は間接再帰の場合のほかはあまり用いられない (§83.2).即ち間接再帰代名詞として用いられる.間接再帰代名詞はそれが用いられている文の主語と同じものを指す (§142.2) ため,ここでは文の主語の「(ペリクレースを責めていた)彼ら」=「(ペリクレースに説得された)彼ら」である.わかりやすくするために「彼らを」を「自分たちを」と訳しても良い.

21-6. 神が与えるならば,嫉妬は何の力をも持たず,与えないならば,苦労は何の力(価値)をも持たない.

独立的用法の分詞の属格 (§108.1)

21-7. (アキレウスは)後世の記憶の中へ(残る)ホメーロスの伝令を手に入れていたため,アレクサンドロス大王アキレウスを幸福であると考えた.

ἔτυχε (2aor.sg.3.) ← τυγχάνω [属格]と出くわす,手に入れる.アキレウスホメーロスの叙情詩「イーリアス」(主人公はアキレウス)によってその活躍が後世に残されているということ?

21-8. 多くの者たちが戦争の中で仲間や家の者を助けて傷を負って死に,そして健康な,助けなかった者たちは,(そう)せねばならなかったけれども,立ち去ったのか?

ἔλαβον (2aor.pl.3.) ← λαμβάνω(取る),ここでは(傷を)負う,という意味であると考えられる.ἀπέθανον (2aor.pl.3.) ← ἀποθνῄσκω(死ぬ).ἀπῆλθον (2aor.pl.3.) ← ἀπέρχομαι(立ち去る;変化は ἔρχομαι を参照).1つめの βοηθήσαντες (1aor.part.m.pl.nom.) は状況説明の分詞,2つめは名詞扱いされた分詞「(仲間や家のものを)助けなかった者たち」と考えた.δέον は注にあるように非人称動詞の δεῖ(ねばならぬ)の現在分詞である.δεῖ は普通不定詞をとるため,「立ち去らねばならぬ」とは考えにくいが,よくわからない.

21-9. キオス人と他の同盟者たちは,それらのことと,リューサンドロスを艦隊(の指揮者)に要求するということを(使節が)言うため,ラケダイモーンに使節を送った.

ἔπεμψαν (1aor.pl.3.) ← πέμπω(送る).ἐροῦντας (part.m.pl.acc.) ← ἐρέω(言う,の未来).ここでは目的を表す未来分詞 (§101.6) で,「言う」のは πρέσβεις (m.pl.acc. 使節) なので性数格がそれに一致している.言う内容は ταῦτα(n.pl.acc.) 「それらのこと」と,αἰτήσοντας (part.m.pl.acc. ← αἰτέω)「要求すること」(§110.3).要求している主語,すなわち「誰が」要求しているのかというと使節であり,リューサンドロスではない.これは分詞が m.pl.acc. で πρέσβεις (m.pl.acc.) と性数格が一致していることからわかる.よって,リューサンドロスを艦隊の指揮者として求めているということになる(注も参照).

21-10. ゼウスとアポローンは弓術について争っていた.アポローンが弓矢を張って放った時,ゼウスはアポローンが弓で射った(その距離)ほど大きいぶんを1跨ぎで歩いた.

ἤριζον (impf.pl.3.) ← ἐρίζω(争う).τόξον (n. 弓;何故か語彙集にない?).ἀφέντος (2aor.part.m.sg.gen.) ← ἀφίημι(放つ),この変化については ἵημι の第二アオリスト分詞 εἵς, εἷσα, ἕν の変化を参照 (§106, §105).διέβη は注にあるように διαβαίνω(渡る)の 2aor.pl.3.,この動詞は μι 動詞型の変化をする第二アオリストを持つ (§187).

古典ギリシア語初歩メモ

最近,水谷智洋『古典ギリシア語初歩』(岩波書店,1990) をテキストとして古典ギリシア語について勉強している.この本には練習問題がついているが,解答がない.

インターネットで検索すると解答を作成しているブログなどがあるのだが,11 課までしか公開されていないようだ.そこで,同じく古典ギリシア語を勉強している者たちのために,12 課以降の「私の」解答をここにメモしておこうと思う.

ここに記すのは模範解答ではないことに注意されたい.私の古典ギリシア語力はたったの5である.しかし,12 課まで絶望せず*1学んできた者たちならば,この「初学者の解答の発表」の扱いについて,ここで詳しく説明せずともわかるであろう.明らかな間違いなどあれば(あると思うので)指摘してもらえると助かる.

なおここに記すのは主に日本語訳(のみ)である.格や文の構造をどう解釈したかわかりやすいよう,なるべく「直訳」している(気がする).個人的にわかりにくかった部分については,「どう読んだか」を注釈としてつけている.

環境によってはマクロン(長音記号)と共に気息記号やアクセントがついた文字を表示できない可能性があるため,マクロンと共に気息記号やアクセントがつく場合はマクロンを省略し,その旨記す.

index

略語

略語 意味
m. masculīnum 男性
f. fēminīnum 女性
n. neutrum 中性
sg. singulāris 単数
du. duālis 双数,両数
pl. plūrālis 複数
nom. nōminātīvus 主格
gen. genitīvus, genetīvus 属格
dat. datīvus 与格
acc. accūsātīvus 対格
voc. vocātīvus 呼格
pr. praesēns 現在
fut. futūrum 未来
1fut. I. futūrum (受動相)第1未来
2fut. II. futūrum (受動相)第2未来
impf. imperfectum 未完了過去
1aor. I. aoristum 第1アオリスト
2aor. II. aoristum 第2アオリスト
perf. perfectum 完了
1perf. I. perfectum 第1完了
2perf. II. perfectum 第2完了
plup. plūsquamperfectum 過去完了
1plup. I. plūsquamperfectum 第1過去完了
2plup. II. plūsquamperfectum 第2過去完了
fut.perf. futūrum perfectum 未来完了
ind. indicātīvus 直説法
subj. subiunctīvus 接続法
opt. optātīvus 希求法
imp. imperātīvus 命令法
inf. īnfīnītīvus 不定詞
part. participium 分詞
act. āctīvum 能動相
mid. medium 中動相
pass. passīvum 受動相
mp. medium / passīvum 中・受動相
Ciesko Martin CIESKO『古典ギリシア語文典』(白水社,2016)

12 課

12-1. 友人とは何か? 他の私(自身)である.

τί (n) は「何」,τίς (m, f) は「誰」

12-2. 他のものは他の人々を喜ばす.

ἀρέσκω は与格をとる.コメントで指摘のあるとおり,中性複数の主語は単数の動詞で受けるのが普通(第3課練習問題注釈 8).ἄλλα は中性なので物,ἄλλος は男性なので人(者).

12-3. あるものはそれを言い,あるものはそれを行った.

12-4. アポローンは彼に,どの神々に犠牲をささげねばならぬのか答えた.

αὐτῷ は3人称代名詞の与格として用いられている.また οἷς はここでは疑問代名詞として用いられていると考えられる(θεοῖς οἷς: どの神々に)(§64.3).ἔδει は未完了過去だが,開始されようとしている動作または状態を述べているものと考えられる (§40).

12-5. 同じ原因の中から常に同じ結果が生じるということはない.

ταὐτά = τὰ αὐτά

12-6. この若者たちは,あの女を信用することを欲しない(信用したがらない).

コメントで指摘のあるとおり,οἱ νέοι は「若者たち」であると考えられる.

12-7. それらの後,詩人自身があの奴隷に,竪琴を彼女の家の中へ運ぶことを命じた.

κελεύω :[対格(もしくは与)] に [不定詞] することを命じる

12-8. 我々の各々(の人)には,賢いところに於いて良く,無学であるところに於いて悪い.

限定の対格 (§58).ταῦτα(それに於いて)… ἅπερ(のところ) σοφός((我々の各々の人が)賢い) -> (我々の各々の人が)賢いところに於いては. 主語は「我々の各々の人」(Each of us) であり,「人」が省略されているか,ἕκαστος が代名詞的に使われているかのどちらかだと考えられる.

12-9. 親自身の子どもたちには,しばしば,(親と)同じ性格はない.

所有の与格 (§55)

12-10-1. ドラコーンは,いつかのアテーナイ市の市民であって,アテーナイ人たちが,彼が新しい法を書くことを欲していたほどに,賢く正しかった.

ἤθελον は ἐθέλω(欲する)の未完了過去.不定詞 γράφειν(書く)の主語は αὐτὸν(不定詞の主語は対格 → §41)

12-10-2. しかし彼が書いた法は耐え難いものであった.

関係代名詞 οὓς は,性数は先行詞 οἱ νόμοι に一致し,格は ἔγραψεν (γράφω の 1aor.sg.3.) の要求する対格となる (§65)

12-10-3. というのも,あの法の中には1つの罰(として),死があったからである.

12-10-4. ゆえにアテーナイ人達は,ドラコーンの法は人のものではなく竜(ドラゴン)のものだと言っていた.

13 課

13-1. 恋(愛)より甘いものはない.

οὐδὲν (n) はより甘い (n),恋(m, 属格 → §73.2)より.οὐδὲίς, οὐδὲμία, οὐδὲν(m f 誰も……ない,n 何も……ない)

13-2. ピンダロスは,水は最良であると言う.

ピンダロス says that…

13-3. しかし技術は必然よりずっと弱い.

§74 で ὀλίῳ(← ὀλίγος 少ない)が「わずかだけ」の意で用いられていることから考えると,μακρῷ (← μακρός 長い) は「かなり,ずっと,たいそう」くらいの意味であると思われる.

13-4. 犬は男たちに対して最も親しい.

13-5. そして財産が友人より美しいということも決してない.

注にあるように,οὐκ…οὐδὲν は単に否定を強めているだけ.

13-6. 父親より母親の方が 10 年(歳)若いと彼は言っていた.

ἔφη 対格 不定詞 (§41)

13-7. 我々は,自分の(過失)より,他人の過失を,より容易に目の中に持つ.

ῥᾷον は副詞の比較級であると考えられる (§72)

13-8. 都市は,できるだけ最も速く,最も良く,最も美しい国制をとることによって,最も幸福に時をすごすだろう.

τάχιστα(最も速く), ἄριστα(最もよく), εὐδαιμονέστατα(最も幸福に) はすべて副詞の最上級と考えられる.ὡς は最上級とともに「できるだけ……」.λαβοῦσα は注にあるように λαμβάνω(取る)の第2アオリスト分詞であり,ここでは手段「……することによって」と解釈した (§101.4).

13-9. アポローン神託デルポイの中にあった:ソポクレースは賢く,さらにエウリーピデースはより賢く,さらにソークラテースは全ての男たちの中で最も賢い.

属格には「〜のうちの,〜の中の」という用法があり(部分の属格),最上級と共にも使われる (Ciesko 9§3.2).

13-10-1. プロメーテウスは最初に確かに人間たちを,そして野獣たちを作った.

13-10-2. 次に,(人間より)より多くの野獣たちが存在することを見たため,あるものたちを人間たち(の中)へ変えた.

ὁρῶν は注にあるように「見る」の現在分詞であり,ここでは理由「……なので」と解釈した (§101.2).分詞の時間は文脈によって判断されるとある (§102) ので,ここでは「変えた」ことより「見る」ことが前であると考えた(大過去的な;日本語では単に「見たため」となるが).ἤλλαξε は ἀλλάττω, -ξω(変える,交換する)の 1aor.sg.3.

13-10-3. そしてそれゆえに,(一方)人間(たち)の身体を持つが,(他方)野獣(たち)の魂を持つものたちがいまだ存在している.

διὰ δὲ τοῦτο ἔτι εἰσὶν(そしてそれゆえに,いまだ「それら」が存在している)οἳ(関係代名詞:「それら」とはどういうものか)…

14 課

14-1. 時間は明らかでないことを明らかにする.

14-2. 一羽の燕が春を作るわけではない.

正しい「古代ギリシアの諺*2

14-3. 神々が愛する者は若くして死ぬ.

注にあるとおり,関係代名詞 ὅν の先行詞が省略されている.

14-4. というのも彼は最良であると思われること(を欲しているの)ではなく,最良であることを欲しているからである.

οὐ…ἀλλά… (not…but…)(第4課練習問題注釈 8)

14-5. ローマ人たちはシケリアーをローマの蔵と呼んでいた.

καλέω A B(A を B と呼ぶ)ではおそらく A も B も対格をとる.

14-6. ネストールの舌から,言葉がちょうど蜜のように流れ出ていた.

ἀπορρέω(流れ出る)の未完了過去 (sg.1.) は ἀπέρρεον (ἀπο-ε-ρρέω)(§34.1, §35), 3人称で ἀπέρρει (ἀπέρρε-ε)

14-7. よい友人が一人でさえもない者は,生きる価値がない.

全文の主語は不定関係代名詞 ὅτῳ(……する者は誰でも),所有の与格 (§55).

e.g. αὐτῷ εἷς φίλος ἔστιν. 彼には1人の友人がいる.

14-8. 不正を働くこととは,他の者達よりより多く持つことを求めることである.

注にあるように,τοῦτό = τὸ 以下.τῶν ἄλλων(他の者達より)は比較の属格 (§73.2).τὸ ζητεῖν ἔχειν 持つことを求めること ← ζητεῖ ἔχειν 彼は持つことを求める(対格(省略)+不定詞の構文と考えた)の不定詞を名詞化.また πλέον(← πολύς)は ἔχειν にかかる副詞と考えた.

14-9. 人間たちにとって,どんな危険が,冬の(嵐の)季節に海を船で行くことより大きいか.

τί であれば「〜より大きい危険は何か」となると考えられるが,τίς なので,形容詞的に τίς κίνδῡνος(どの危険が)とした.

14-10-1. あるアテーナイ人がいつかペリクレースに尋ねた,「おお,ペリクレースよ,」

τὶς は形容詞的に「ある〜が」としても用いられる (§53).ἠρώτησε は ἐρωτάω(尋ねる;[対格] に尋ねる)の 1aor.sg.3. (§34.2, §38.2)

14-10-2. 彼は言った,「支配者が心の中に持たねばならぬ第一のものは何か?」

δεῖ + 対格 (τὸν ἄρχοντα) + 不定詞 (ἔχειν):支配者は持たねばならぬ → ὃ δεῖ τὸν ἄρχοντα ἔχειν 支配者が持たねばならないところのもの(ὃ は関係代名詞 n.sg.acc.)

14-10-3. そして(ペリクレースが)言った,「人間であることだ.」

自分は人間以上の存在などではなく人間であるのだという心構え?

14-10-4. 「それでは第二のものは何か?」

14-10-5. 「よく,そして正しく支配しなければならぬということだ.」

14-10-6. そして最後にその男は言った,「第三のものは何か?」

14-10-7. そしてペリクレースは言った,「常に(彼が)支配するだろうということはないということだ.」

15 課

15-1. 私はアルパでありオメガ,始めであり終わりである.

ἄλφα (n. アルパ), Ὦ μέγα (n. オメガ)

15-2. おおソクラテスよ,君より賢いものは誰もいない.

比較の属格 (§73.2).

15-3. (一方)それは私を喜ばし,(他方)あれは君を喜ばす.

15-4. というのも我々の心(理性)は各々の中で神であるからである.

15-5. 我々にとって涙は苦痛や悪いものの薬である.

κακῶν は中性名詞の複数属格として扱われていると考えられる(いろいろの悪いものの).すると形容詞ではなく名詞の属格なので性・数・格を一致させる必要がない.

15-6. 私は君にそれを与える,君は私の母を尊重しているから.

15-7. 誰が君たちとともにあの国の中にとどまるだろうか.

μενοῦσιν は μένω(とどまる)の fut.pl.3. (μεν-έσ-ουσιν,§81).もし現在形ならば μένουσιν となる.融合未来は現在形と同じ形,似た形になることがあるので注意したい.また,注にあるように μεθ' ὑμῶν ← μετὰ ὑμῶν(マクロン省略)

15-8. 私に向けた君の手紙は何と長かったことか.

二番目の ἡ が何を表しているのか不明.

15-9. 君たちは,君たちの父たちから取った徳を投げ捨てるだろうか.

ἐλάβετε は λαμβάνω(取る)の 2aor.pl.2.(付録 E 参照).ところで,疑問の小辞 ἆρα(……か?)などが無くとも文末に疑問符 (;) があれば疑問文であるようだ(古くはそもそも疑問符や句読点などを使用していなかったのだが).

15-10-1. 敵共を征服したある兵士たちがラッパ手を捕まえた.

ἔλαβoν は λαμβάνω(取る)の 2aor.pl.3.(付録 E 参照).

15-10-2. そして彼らがまさに彼(ラッパ手)を殺そうとしていた時に彼が言った,「おお,男たちよ,」

15-10-3. 「私を殺すな.というのも私は君たちの誰をも殺していないからである.あなたがたは私がそのラッパ以外に何の道具(武器)も持っていないことを見ている.」

注にあるように,μή と接続法アオリストで禁止を表す (§114.3).οὐδέν は形容詞的に使われていると考えられる:οὐδὲν ὅπλον(何の道具をも……ない).ὁρᾶτε は命令法ともとれるかもしれない(私がラッパ以外に何の道具も持っていないことを見よ)(§178).

15-10-4. しかし彼らは彼(ラッパ手)に向かって言った,「それ故に,君は死ぬのが正しい.というのも,(一方)君自身は戦争をしていないが,(他方)君は他の者達を戦いへと鼓舞しているからである.」

ἀποθανεῖν は ἀποθνῄσκω(死ぬ)の第二アオリスト ἀπέθανον の不定詞不定詞では加音をとらないため ἀπο- であることに注意)(§44).第二アオリスト不定詞は一回的行為を表す(死ぬのは一回なので)(練習6の注8を参照).

16 課

16-1. 経験のないものたちにとって戦争は甘い.

16-2. その場所に甘い水の泉がある.

16-3. 彼は彼にそれらが真実であるかどうか尋ねる.

ἐρωτάω: [対格] に尋ねる

16-4. というのも好機は人々から(すると)短い尺度を持つからである.

16-5. 真実から偽りのものたちを分けることはしばしば困難である.

注にあるように,分離の属格.

16-6. 詩人ヘーシオドスは,険しい道を徳の道と呼んだ.

最初の Ἡσίοδος は ὁ ποιητὴς と同格であると考えられる.次の τρᾱχεῖαν は f.acc. なので,ὁδόν が省略されている,即ち ἐκάλει [τὴν τρᾱχεῖαν ὁδόν] [τὴς ἀρετῆς τὴν ὁδόν]([険しい道]を[徳の道]と呼んだ) と考えた.καλέω A(対格) B(対格): A を B と呼ぶ

16-7. 教育は(一方)幸運な者達にとっては飾りであるが,(他方)不幸な者達にとっては避難所である.

16-8. (一方)自然は学問なしには盲目にとどまるが,(他方)学問は自然なしには不完全にとどまる.

16-9. 足は速いが,風はより速く,心は最も速い.

…μέν…δέ…δέ は …μέν…δέ(一方は……他方は……)の3者版だと考えられる.θάττους(マクロン省略)は ταχύς(速い)の比較級の m.pl.nom の別形であることに注意(§75.1)

16-10. 人生は短く,技術は長く,好機は速く,試みは倒れやすく,判断は困難である.

*1:http://shindanmaker.com/401316 昔3回くらい出席して諦めた

*2:テキトウなことを言ったあとに(古代ギリシアの諺)などとつけるのがツイッターで流行った(いつ?)

古典ギリシア語の入力 ἐπ’ Ubuntu

Ubuntu で古典ギリシア語を入力するためのメモとか.

環境:Ubuntu 16.04, Fcitx

インプットメソッドとかについて

インプットメソッドとかについてよくわかってなかったのでこの機に少し調べた.

インプットメソッド (IM) は Windows における IME みたいなものらしい (Microsoft IME, ATOK, SKK, Mozc, Simeji とか).

IM を管理したりインターフェイスを提供している(入力と IM の間に立ってよきに計らう)のがインプットメソッドフレームワーク (IMF).

Ubuntu だと以前はデフォルトで iBus(アイバス)という IMF を使用していたが,16.04 からはデフォルトで Fcitx(ファイティクス)という IMF になったらしい.

ということで Fcitx の設定からインプットメソッドについていろいろ設定する.今回はただギリシア語キーボードを追加するだけでよい.

Fcitx の設定(入力メソッドの設定)を開くには Dash から Fcitx で検索すればよい.もしくはインジケーター(右上)にあるアイコンからも設定が開ける.

f:id:CyLomw:20161211101200j:plain

ギリシア語キーボードの追加

入力メソッドの設定から左下の + を押して“キーボード - ギリシャ語”を探し追加する.このとき“現在の言語のみ表示”のチェックを外さないと現れないので注意.

入力メソッドの切り替え

こんな感じでギリシア語キーボードに切り替えればギリシア文字が入力できる.

f:id:CyLomw:20161211102127j:plain

キーボードから入力メソッドを切り替えたい場合は,以下から入力メソッドの切換キーについて設定できる.

Fcitx の設定(入力メソッドの設定) -> “全体の設定”タブ -> 入力メソッドの切替

デフォルトはたぶん Ctrl+Shift なので,Ctrl+Shift で入力メソッドの切り替えができる

AltGr キー

古典ギリシア語の表記においては,現代ギリシア語(デモティキ)では用いられないアクセント記号や気息記号がよく用いられる.

ギリシア語キーボードからこれらの記号を入力するためには AltGr キー(オルタネートグラフィックキー)が必要らしい.

キーボードに AltGr キーがなかったり,もしくは無効化されている場合があるので,それを有効にして適当なキーに割り当てる必要がある.

まず システム設定 -> キーボード -> “ショートカット”タブ -> タイピング を開く.

f:id:CyLomw:20161211103231j:plain

そのなかに“代替文字キー”という項目がある.これが AltGr キーに相当するようなので,これに適当なキーを割り当てる.

私のノート PC のキーボードには AltGr も右 Alt もなかったのでとりあえず Menu に割り当てた.

以降この割り当てたキーを AltGr と表記する.

記号の入力

ギリシア語キーボードにおいて次のようにすると各種記号が入力できる.ここで ; : @ [ は一般的なキーボードでそれが書いてあるキーである(キーボードについて詳しくないのでこう書いてごまかしておく).

ただし以下の表は私が実際に試してみて見つけた入力方法なので,環境によっては異なるかもしれないし,他の入力方法もあるかもしれないということに注意されたい.

記号 入力方法(この後に文字を入力)
鋭アクセント (´) ;
重アクセント (`) AltGr+:
曲アクセント (~) AltGr+@
分離記号 (¨) Shift+;
分離記号 + 鋭アクセント Shift+; ; もしくは ; Shift+;
有気記号 (ʽ) AltGr+Shift+:
無気記号 (') AltGr+Shift+;
アクセント + 気息記号 アクセントの後に気息記号を入力
長音記号 (¯) AltGr+Shift+@
短音記号 (˘) AltGr+Shift+[
下付きのイオタ (ͺ) AltGr+[

一部記号は“入力方法”を二回繰り返すと記号自体を入力する.

また,長音 / 短音記号とアクセントや気息記号を組み合わせるのは難しいようである*1

感想

めんどくせーふざけるな考えただけで入力できるようになれ.

ローマ字をかなに変換したい(願望)(Python)

ローマ字をかなに変換したいと思った.

綴りの確認

ここを参考にした.

https://support.microsoft.com/ja-jp/kb/883232

RomanKanaTable ジェネレーター

よくわからないけどジェネレーターにした.コピーのオーバーヘッドがない気がする.検索するときは頭から検索するしかないので効率が良いかはふめい.辞書でもいいかなと思ったけどかなからローマ字を検索シたい時もあるかなと思った.

from enum import Enum, IntEnum

class SpecialHiraType(Enum):
    Ignore = 0
    Kata = 1
    Special = 2

class TableIndex(IntEnum):
    Roman = 0
    Hira = 1
    Kata = 2

class RomanKanaTable(object):
    common = (
        ('a', 'あ', 'ア'),
        ('i', 'い', 'イ'),
        ('u', 'う', 'ウ'),
        ('e', 'え', 'エ'),
        ('o', 'お', 'オ'),
        ('wha', 'うぁ', 'ウァ'),
        ('whi', 'うぃ', 'ウィ'),
        ('whu', 'う', 'ウ'),
        ('whe', 'うぇ', 'ウェ'),
        ('who', 'うぉ', 'ウォ'),
        ('la', 'ぁ', 'ァ'),
        ('li', 'ぃ', 'ィ'),
        ('lu', 'ぅ', 'ゥ'),
        ('le', 'ぇ', 'ェ'),
        ('lo', 'ぉ', 'ォ'),
        ('xa', 'ぁ', 'ァ'),
        ('xi', 'ぃ', 'ィ'),
        ('xu', 'ぅ', 'ゥ'),
        ('xe', 'ぇ', 'ェ'),
        ('xo', 'ぉ', 'ォ'),
        ('ka', 'か', 'カ'),
        ('ki', 'き', 'キ'),
        ('ku', 'く', 'ク'),
        ('ke', 'け', 'ケ'),
        ('ko', 'こ', 'コ'),
        ('kya', 'きゃ', 'キャ'),
        ('kyi', 'きぃ', 'キィ'),
        ('kyu', 'きゅ', 'キュ'),
        ('kye', 'きぇ', 'キェ'),
        ('kyo', 'きょ', 'キョ'),
        ('kwa', 'くぁ', 'クァ'),
        ('ca', 'か', 'カ'),
        ('ci', 'し', 'シ'),
        ('cu', 'く', 'ク'),
        ('ce', 'せ', 'セ'),
        ('co', 'こ', 'コ'),
        ('qa', 'くぁ', 'クァ'),
        ('qi', 'くぃ', 'クィ'),
        ('qu', 'く', 'ク'),
        ('qe', 'くぇ', 'クェ'),
        ('qo', 'くぉ', 'クォ'),
        ('qya', 'くゃ', 'クャ'),
        ('qyi', 'くぃ', 'クィ'),
        ('qyu', 'くゅ', 'クュ'),
        ('qye', 'くぇ', 'クェ'),
        ('qyo', 'くょ', 'クョ'),
        ('qwa', 'くぁ', 'クァ'),
        ('qwi', 'くぃ', 'クィ'),
        ('qwu', 'くぅ', 'クゥ'),
        ('qwe', 'くぇ', 'クェ'),
        ('qwo', 'くぉ', 'クォ'),
        ('ga', 'が', 'ガ'),
        ('gi', 'ぎ', 'ギ'),
        ('gu', 'ぐ', 'グ'),
        ('ge', 'げ', 'ゲ'),
        ('go', 'こ', 'ゴ'),
        ('gya', 'ぎゃ', 'ギャ'),
        ('gyi', 'ぎぃ', 'ギィ'),
        ('gyu', 'ぎゅ', 'ギュ'),
        ('gye', 'ぎぇ', 'ギェ'),
        ('gyo', 'ぎょ', 'ギョ'),
        ('gwa', 'ぐぁ', 'グァ'),
        ('gwi', 'ぐぃ', 'グィ'),
        ('gwu', 'ぐぅ', 'グゥ'),
        ('gwe', 'ぐぇ', 'グェ'),
        ('gwo', 'ぐぉ', 'グォ'),
        ('sa', 'さ', 'サ'),
        ('si', 'し', 'シ'),
        ('su', 'す', 'ス'),
        ('se', 'せ', 'セ'),
        ('so', 'そ', 'ソ'),
        ('sya', 'しゃ', 'シャ'),
        ('syi', 'しぃ', 'シィ'),
        ('syu', 'しゅ', 'シュ'),
        ('sye', 'しぇ', 'シェ'),
        ('syo', 'しょ', 'ショ'),
        ('sha', 'しゃ', 'シャ'),
        ('shi', 'し', 'シ'),
        ('shu', 'しゅ', 'シュ'),
        ('she', 'しぇ', 'シェ'),
        ('sho', 'しょ', 'ショ'),
        ('swa', 'すぁ', 'スァ'),
        ('swi', 'すぃ', 'スィ'),
        ('swu', 'すぅ', 'スゥ'),
        ('swe', 'すぇ', 'スェ'),
        ('swo', 'すぉ', 'スォ'),
        ('za', 'ざ', 'ザ'),
        ('zi', 'じ', 'ジ'),
        ('zu', 'ず', 'ズ'),
        ('ze', 'ぜ', 'ゼ'),
        ('zo', 'ぞ', 'ゾ'),
        ('zya', 'じゃ', 'ジャ'),
        ('zyi', 'じぃ', 'ジィ'),
        ('zyu', 'じゅ', 'ジュ'),
        ('zye', 'じぇ', 'ジェ'),
        ('zyo', 'じょ', 'ジョ'),
        ('ja', 'じゃ', 'ジャ'),
        ('ji', 'じ', 'ジ'),
        ('ju', 'じゅ', 'ジュ'),
        ('je', 'じぇ', 'ジェ'),
        ('jo', 'じょ', 'ジョ'),
        ('jya', 'じゃ', 'ジャ'),
        ('jyi', 'じぃ', 'ジィ'),
        ('jyu', 'じゅ', 'ジュ'),
        ('jye', 'じぇ', 'ジェ'),
        ('jyo', 'じょ', 'ジョ'),
        ('ta', 'た', 'タ'),
        ('ti', 'ち', 'チ'),
        ('tu', 'つ', 'ツ'),
        ('te', 'て', 'テ'),
        ('to', 'と', 'ト'),
        ('tya', 'ちゃ', 'チャ'),
        ('tyi', 'ちぃ', 'チィ'),
        ('tyu', 'ちゅ', 'チュ'),
        ('tye', 'ちぇ', 'チェ'),
        ('tyo', 'ちょ', 'チョ'),
        ('cha', 'ちゃ', 'チャ'),
        ('chi', 'ち', 'チ'),
        ('chu', 'ちゅ', 'チュ'),
        ('che', 'ちぇ', 'チェ'),
        ('cho', 'ちょ', 'チョ'),
        ('cya', 'ちゃ', 'チャ'),
        ('cyi', 'ちぃ', 'チィ'),
        ('cyu', 'ちゅ', 'チュ'),
        ('cye', 'ちぇ', 'チェ'),
        ('cyo', 'ちょ', 'チョ'),
        ('tsa', 'つぁ', 'ツァ'),
        ('tsi', 'つぃ', 'ツィ'),
        ('tsu', 'つ', 'ツ'),
        ('tse', 'つぇ', 'ツェ'),
        ('tso', 'つぉ', 'ツォ'),
        ('tha', 'てゃ', 'テャ'),
        ('thi', 'てぃ', 'ティ'),
        ('thu', 'てゅ', 'テュ'),
        ('the', 'てぇ', 'テェ'),
        ('tho', 'てょ', 'テョ'),
        ('twa', 'とぁ', 'トァ'),
        ('twi', 'とぃ', 'トィ'),
        ('twu', 'とぅ', 'トゥ'),
        ('twe', 'とぇ', 'トェ'),
        ('two', 'とぉ', 'トォ'),
        ('da', 'だ', 'ダ'),
        ('di', 'ぢ', 'ヂ'),
        ('du', 'づ', 'ヅ'),
        ('de', 'で', 'デ'),
        ('do', 'ど', 'ド'),
        ('dya', 'ぢゃ', 'ヂャ'),
        ('dyi', 'ぢぃ', 'ヂィ'),
        ('dyu', 'ぢゅ', 'ヂュ'),
        ('dye', 'ぢぇ', 'ヂェ'),
        ('dyo', 'ぢょ', 'ヂョ'),
        ('dha', 'でゃ', 'デャ'),
        ('dhi', 'でぃ', 'ディ'),
        ('dhu', 'でゅ', 'デュ'),
        ('dhe', 'でぇ', 'デェ'),
        ('dho', 'でょ', 'デョ'),
        ('dwa', 'どぁ', 'ドァ'),
        ('dwi', 'どぃ', 'ドィ'),
        ('dwu', 'どぅ', 'ドゥ'),
        ('dwe', 'どぇ', 'ドェ'),
        ('dwo', 'どぉ', 'ドォ'),
        ('ltu', 'っ', 'ッ'),
        ('xtu', 'っ', 'ッ'),
        ('ltsu', 'っ', 'ッ'),
        ('na', 'な', 'ナ'),
        ('ni', 'に', 'ニ'),
        ('nu', 'ぬ', 'ヌ'),
        ('ne', 'ね', 'ネ'),
        ('no', 'の', 'ノ'),
        ('nya', 'にゃ', 'ニャ'),
        ('nyi', 'にぃ', 'ニィ'),
        ('nyu', 'にゅ', 'ニュ'),
        ('nye', 'にぇ', 'ニェ'),
        ('nyo', 'にょ', 'ニョ'),
        ('ha', 'は', 'ハ'),
        ('hi', 'ひ', 'ヒ'),
        ('hu', 'ふ', 'フ'),
        ('he', 'へ', 'ヘ'),
        ('ho', 'ほ', 'ホ'),
        ('hya', 'ひゃ', 'ヒャ'),
        ('hyi', 'ひぃ', 'ヒィ'),
        ('hyu', 'ひゅ', 'ヒュ'),
        ('hye', 'ひぇ', 'ヒェ'),
        ('hyo', 'ひょ', 'ヒョ'),
        ('fa', 'ふぁ', 'ファ'),
        ('fi', 'ふぃ', 'フィ'),
        ('fu', 'ふ', 'フ'),
        ('fe', 'ふぇ', 'フェ'),
        ('fo', 'ふぉ', 'フォ'),
        ('fwa', 'ふぁ', 'ファ'),
        ('fwi', 'ふぃ', 'フィ'),
        ('fwu', 'ふぅ', 'フゥ'),
        ('fwe', 'ふぇ', 'フェ'),
        ('fwo', 'ふぉ', 'フォ'),
        ('fya', 'ふゃ', 'フャ'),
        ('fyi', 'ふぃ', 'フィ'),
        ('fyu', 'ふゅ', 'フュ'),
        ('fye', 'ふぇ', 'フェ'),
        ('fyo', 'ふょ', 'フョ'),
        ('ba', 'ば', 'バ'),
        ('bi', 'び', 'ビ'),
        ('bu', 'ぶ', 'ブ'),
        ('be', 'べ', 'ベ'),
        ('bo', 'ぼ', 'ボ'),
        ('bya', 'びゃ', 'ビャ'),
        ('byi', 'びぃ', 'ビィ'),
        ('byu', 'びゅ', 'ビュ'),
        ('bye', 'びぇ', 'ビェ'),
        ('byo', 'びょ', 'ビョ'),
        ('pa', 'ぱ', 'パ'),
        ('pi', 'ぴ', 'ピ'),
        ('pu', 'ぷ', 'プ'),
        ('pe', 'ぺ', 'ペ'),
        ('po', 'ぽ', 'ポ'),
        ('pya', 'ぴゃ', 'ピャ'),
        ('pyi', 'ぴぃ', 'ピィ'),
        ('pyu', 'ぴゅ', 'ピュ'),
        ('pye', 'ぴぇ', 'ピェ'),
        ('pyo', 'ぴょ', 'ピョ'),
        ('ma', 'ま', 'マ'),
        ('mi', 'み', 'ミ'),
        ('mu', 'む', 'ム'),
        ('me', 'め', 'メ'),
        ('mo', 'も', 'モ'),
        ('mya', 'みゃ', 'ミャ'),
        ('myi', 'みぃ', 'ミィ'),
        ('myu', 'みゅ', 'ミュ'),
        ('mye', 'みぇ', 'ミェ'),
        ('myo', 'みょ', 'ミョ'),
        ('ya', 'や', 'ヤ'),
        ('yi', 'い', 'イ'),
        ('yu', 'ゆ', 'ユ'),
        ('ye', 'いぇ', 'イェ'),
        ('yo', 'よ', 'ヨ'),
        ('lya', 'ゃ', 'ャ'),
        ('lyi', 'ぃ', 'ィ'),
        ('lyu', 'ゅ', 'ュ'),
        ('lye', 'ぇ', 'ェ'),
        ('lyo', 'ょ', 'ョ'),
        ('xya', 'ゃ', 'ャ'),
        ('xyi', 'ぃ', 'ィ'),
        ('xyu', 'ゅ', 'ュ'),
        ('xye', 'ぇ', 'ェ'),
        ('xyo', 'ょ', 'ョ'),
        ('ra', 'ら', 'ラ'),
        ('ri', 'り', 'リ'),
        ('ru', 'る', 'ル'),
        ('re', 'れ', 'レ'),
        ('ro', 'ろ', 'ロ'),
        ('wa', 'わ', 'ワ'),
        ('wu', 'う', 'ウ'),
        ('wo', 'を', 'ヲ'),
        ('nn', 'ん', 'ン'),
        ('xn', 'ん', 'ン'),
        ("n'", 'ん', 'ン'),
        ('rya', 'りゃ', 'リャ'),
        ('ryi', 'りぃ', 'リィ'),
        ('ryu', 'りゅ', 'リュ'),
        ('rye', 'りぇ', 'リェ'),
        ('ryo', 'りょ', 'リョ'),
        ('wyi', 'ゐ', 'ヰ'),
        ('wye', 'ゑ', 'ヱ'),
        ('lwa', 'ゎ', 'ヮ')
    )

    wi_we = (
        (('wi', 'うぃ', 'ウィ'), ('we', 'うぇ', 'ウェ')),
        (('wi', 'ゐ', 'ヰ'), ('we', 'ゑ', 'ヱ'))
    )

    xk_lk = (
        (('lka', None, 'ヵ'), ('xka', None, 'ヵ'),
            ('lke', None, 'ヶ'), ('xke', None, 'ヶ')),
        (('lka', 'ヵ', 'ヵ'), ('xka', 'ヵ', 'ヵ'),
            ('lke', 'ヶ', 'ヶ'), ('xke', 'ヶ', 'ヶ')),
        (('lka', 'ゕ', 'ヵ'), ('xka', 'ゕ', 'ヵ'),
            ('lke', 'ゖ', 'ヶ'), ('xke', 'ゖ', 'ヶ'))
    )

    v_vy = (
        (
            ('va', None, 'ヴァ'),
            ('vi', None, 'ヴィ'),
            ('vu', None, 'ヴ'),
            ('ve', None, 'ヴェ'),
            ('vo', None, 'ヴォ'),
            ('vya', None, 'ヴャ'),
            ('vyi', None, 'ヴィ'),
            ('vyu', None, 'ヴュ'),
            ('vye', None, 'ヴェ'),
            ('vyo', None, 'ヴョ')
        ),
        (
            ('va', 'ヴぁ', 'ヴァ'),
            ('vi', 'ヴぃ', 'ヴィ'),
            ('vu', 'ヴ', 'ヴ'),
            ('ve', 'ヴぇ', 'ヴェ'),
            ('vo', 'ヴぉ', 'ヴォ'),
            ('vya', 'ヴゃ', 'ヴャ'),
            ('vyi', 'ヴぃ', 'ヴィ'),
            ('vyu', 'ヴゅ', 'ヴュ'),
            ('vye', 'ヴぇ', 'ヴェ'),
            ('vyo', 'ヴょ', 'ヴョ')
        ),
        (
            ('va', 'ゔぁ', 'ヴァ'),
            ('vi', 'ゔぃ', 'ヴィ'),
            ('vu', 'ゔ', 'ヴ'),
            ('ve', 'ゔぇ', 'ヴェ'),
            ('vo', 'ゔぉ', 'ヴォ'),
            ('vya', 'ゔゃ', 'ヴャ'),
            ('vyi', 'ゔぃ', 'ヴィ'),
            ('vyu', 'ゔゅ', 'ヴュ'),
            ('vye', 'ゔぇ', 'ヴェ'),
            ('vyo', 'ゔょ', 'ヴョ')
        )
    )

    n_single = ((), (('n', 'ん', 'ン'),))

    @classmethod
    def _tableList(cls, old_w, n_single, type_xk_lk, type_v_vy):
        return [
            cls.common,
            cls.wi_we[old_w],
            cls.xk_lk[type_xk_lk.value],
            cls.v_vy[type_v_vy.value],
            cls.n_single[n_single]
        ]

    def __new__(cls, old_w = False, n_single = False,
            type_xk_lk = SpecialHiraType.Kata,
            type_v_vy = SpecialHiraType.Kata):
        for table in cls._tableList(old_w, n_single, type_xk_lk, type_v_vy):
            for item in table:
                yield item

補足

引数について

  • old_w: True にすると wi が ゐ/ヰ, we が ゑ/ヱ になるぞ

  • n_single: True にすると ('n', 'ん', 'ン') が加わるぞ

  • type_xk_lk: ひらがなでの lk, xk のタイプ(下記)

  • type_v_vy: ひらがなでの v, vy のタイプ(下記)

タイプ

  • SpecialHiraType.Ignore: None にするぞ(例 'lka' -> None)

  • SpecialHiraType.Kata: カタカナにするぞ(例 'lka' -> 'ヵ')

  • SpecialHiraType.Special: 特殊文字をつかうぞ(例 'lka' -> 'ゕ')

ToDo

あとはこれをごにょごにょすればローマ字文字列をかなに変換する関数が書ける気がする.

なんとかするところ

  • n + 子音の時の処理

  • 末尾の n

  • 'tta' -> 'った' みたいな促音の入力

プログラミング習得における一番の困難はプログラミングを始めることである(古代ギリシアの諺)

プログラミングを初めてみようかなと思ったはいいが,コンパイラだの環境変数だのエディタだの IDE だのなんだの,いわゆる開発環境の構築で挫折する人は少なくないと思う.私もそうだった.

ということで突然だけど始めるのが簡単なプログラミング言語をいくつか紹介してみようと思う.ただし Windows を想定している.Windows 以外の OS 使っててプログラミングできないなんてことはないと思う.

VBA

もし Microsoft Excel を持っているのなら,Excel 附属の VBA (Visual Basic for Applications) というプログラミング言語が一番初めやすい.

Excel を立ち上げて Alt + f11 を押せば開発環境の構築は終了である.エディタもいらない.あとは標準モジュールを挿入してコードを書けば実行できる.詳しくは vba とかで検索すれば死ぬほど情報が出てくるのでここには書かないが,おそらく始めるまで 5 分もいらない.

他のプログラミング言語を勉強しようとして挫折した人は是非挑戦して欲しい.入門サイトもたくさんあるので情報には困らないと思うが,書籍もたくさん出ているようだ.

実際は Word, PowerPoint, Outlook, Access など他の Office 製品にも VBA は搭載されているのだが,日本語の情報が少ないので Excel が一番始めやすいと思う.

Python(パイソン)

Windows でもインストールが簡単.python.jpの左下のダウンロードと書かれたリンクから進んで,32 ビット PC なら "Windows x86 executable installer", 64 ビット PC なら "Windows x86-64 executable installer" をダウンロードして実行すればよい.

また標準で IDLE という簡単なエディタがついてくる.IDLE から書いたコードをすぐ実行することもできる.Python には "Battery Included" の思想があり,最初からこのような簡易エディタや幅広い標準ライブラリが附属している.

言語自体も簡単かつ強力で,Python をマスターしておけばとりあえず何にでも対応できる.あの Google でも使われている.インデントでブロックを表すのが特徴的で,プログラムが非常にすっきりとした見た目になる.逆にこれが嫌いな人もいるんだけど,個人的にはコードが読みやすくて結構好み.

気をつけなければならないのがバージョンである.現在主流なのはバージョン 3 系だが,ネット上にはいまだに古い 2 系の情報も多い.2 系と 3 系の簡単な見分け方を教えておこう.print "hello" というプログラムが動けば 2 系,エラーが出れば 3 系である(3 系では print ("Hello") と括弧が必要).2 系は早く絶滅してくれ.

また,やや日本語情報が少ないかもしれない.それでも検索すれば入門サイトはそこそこ見つかるので情報は集まると思う.書籍を購入する際には,やはりバージョンに注意.2 系にしか対応していない書籍を誤って購入してしまうと,きっと悲しい気持ちになる.

今は 3 系対応の入門書もたくさんあるみたいなので,迷ったら書店で実際に見てみたり,"python 入門書" とかで検索して調べてみるのもよい.

Haskellハスケル

これは嘘.確かに Haskell Platform というものがあって Windows でも簡単にインストールできるのだが,Haskell は如何せん言語自体が難しい.でも好きな言語だから紹介したかった.

みんな Haskell しようよ〜.おすすめ書籍はこれ.

すごいHaskellたのしく学ぼう!

この本の内容を完全に理解すれば Haskell の 8 割は理解できたことになる.でも残りの 2 割を理解しようと思ったら,仏門に入る必要がある.

まとめ

以上たった3つだったけど,要するに Python がおすすめ.ちょっと難しい言語やってみたいって人は是非 Haskell を試してみて欲しい.いろいろ試したけどだめだ〜って人は VBA から入るのがよい.

Python に(立場が)似ている言語として ruby というものもある.ほとんど使ったことないからよくわからないけど,日本人が開発した言語ということで日本語情報が多いので,もしかしたらこれも始めやすいかも.しらんけど.Python がだめだったらトライしてみるとよい.

おすすめしない言語とか

以下の言語は (Windows だと) 始めるのが難しい気がするのでおすすめしない.

C/C++:ゴミ

C#:そこまで悪くない

Java:あなたとJAVA, 今すぐダウンロード

JavaScript:うんちのげんご

PHP:便器ブラシ

Perl:よくしらん

OCamlWindows ではたいへんらしい

Lisp:情報が少ない

Fortran:学ぶ意味がない

BASIC:なめとんか?

CLISP のインストール (Windows)

Common Lisp の処理系のひとつである CLISP をインストールする方法についてのメモ (Windows).

インストール

  1. http://clisp.org/ へ行く.

  2. Get CLISP と書いてあるところの下の方に win32 というリンクがあるので,そこをクリックする.

  3. しばらくすると clisp-云々.exe みたいなのがダウンロードされるので,適当なところに保存して実行する(このファイルはインストール終了後に削除してよい).

  4. Setup Wizard が起動するので,Next とか I Agree とか Install とかを押していけばインストールされる(インストールする項目などをカスタマイズできるが,とりあえずそのままでよい).Completed と表示されたら Close で閉じてよい.

CLISP (の REPL) の起動

インストールされたことを確認するために,CLISP(の REPL*1)を起動してみる.とくにカスタマイズせずインストールしていれば,デスクトップに GNU CLISP のアイコンができているはずなので,そこから起動できる.起動すると次のような表示が出る.

  i i i i i i i       ooooo    o        ooooooo   ooooo   ooooo
  I I I I I I I      8     8   8           8     8     o  8    8
  I  \ `+' /  I      8         8           8     8        8    8
   \  `-+-'  /       8         8           8      ooooo   8oooo
    `-__|__-'        8         8           8           8  8
        |            8     o   8           8     o     8  8
  ------+------       ooooo    8oooooo  ooo8ooo   ooooo   8

Welcome to GNU CLISP 2.49 (2010-07-07) <http://clisp.cons.org/>

Copyright (c) Bruno Haible, Michael Stoll 1992, 1993
Copyright (c) Bruno Haible, Marcus Daniels 1994-1997
Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998
Copyright (c) Bruno Haible, Sam Steingold 1999-2000
Copyright (c) Sam Steingold, Bruno Haible 2001-2010

Type :h and hit Enter for context help.

[1]>

試しに [1]> の後に (+ 1 2) と入力してみよう(入力のあとは常にエンターキーを押す必要がある).

[1]> (+ 1 2)
3

CLISP を終了するには (quit) と入力する(もしくは,よくわからなくなったら×ボタンで閉じることもできる).

[2]> (quit)

コマンドプロンプトからの REPL の起動

コマンドプロンプトからも REPL は起動できる.

まずコマンドプロンプトを立ち上げる.これには幾つか方法があるが簡単なものをいくつか示す.

  • Windows 10 であれば,左下の Cortana(何でも聞いてください)に「コマンドプロンプト」と入力すれば候補に出てくる.

  • windows キー(キーボード左下の windows マークの描いてあるキー)を押しながら R キーを押して「ファイル名を指定して実行」を立ち上げ,cmd と入力して OK を押すことでもコマンドプロンプトを起動できる.

  • デスクトップや適当なフォルダ内で,Shift キーを押しながらマウスの右クリックすると「コマンド ウィンドウをここで開く(W)」というのがあるので,そこからコマンドプロンプトを起動できる.

コマンド プロンプトが立ち上がったら,そこに CLISP と入力(してエンター)することで CLISP(の REPL)が起動できる.あとは同様.

※ コマンド プロンプトから REPL を起動した場合,(quit) で REPL は終了するがコマンド プロンプト自体は終了しない. コマンド プロンプトを終了するにはそのあとに exit と入力する.

アンインストール

もし CLISP が不要になった場合は次の方法でアンインストール(削除)できる.

「コントロールパネル」 -> 「プログラムのアンインストール」 から GNU CLISP を見つけてアンインストールする.

*1:read-eval-print-loop; 対話型評価環境

tkinter.Frame

最近 tkinter を使っているのでせっかくなのでメモを残す

注意

  • python3

  • 正確な情報はもっと信頼できるところから得て下さい

Frame(フレーム)とは

中に他のウィジェットを入れることができる

ウィジェットをグループ化してきれいに配置したりできる

基本的な使い方

import tkinter as tk
root = tk.Tk()

frame = tk.Frame(root)
frame.pack()

# 中にボタンを入れてみる
button = tk.Button(frame, text = 'Button1')
button.pack()

root.mainloop()

f:id:CyLomw:20161108153647j:plain


以降,次の箇所は基本的に省略する

import tkinter as tk
root = tk.Tk()

# ここに処理

root.mainloop()

コンストラクタ (__init__)

__init__(self, master = None, cnf = {}, **kw)

master: 親ウィジェット

cnf, kw: オプション(後述)

cnf は辞書 (dict) を,kw はキーワード引数をとるらしい


例:

cnf = {'background': 'white', 'padx': 10}
frame = tk.Frame(root, cnf,
    borderwidth = 10, relief = tk.RIDGE)
frame.pack()

button = tk.Button(frame, text = 'Button1')
button.pack()

上の例では背景を白,横方向のパディング,外枠の幅とその見た目 (relief) を変更している

f:id:CyLomw:20161108125053j:plain


ちなみに cnf と kw で同じオプションを指定するとどうなるか?

cnf = {'background': 'white', 'padx': 10}
frame = tk.Frame(root, cnf, background = 'red')
frame.pack()

button = tk.Button(frame, text = 'Button1')
button.pack()

f:id:CyLomw:20161108130057j:plain

kw で設定した値になった

基本オプション

よく使うオプション

色や幅に指定できる値については後述

オプション 説明 デフォルト値
background 背景色
bg background に同じ
borderwidth 縁(ボーダー)の幅 0(縁無し)
bd borderwidth に同じ
relief 縁のスタイル(後述) FLAT
padx 水平方向パディング 0
pady 垂直方向パディング 0
width 水平方向長さ(ただし propagation の設定が必要:後述) 0
height 垂直方向長さ(ただし propagation の設定が必要:後述) 0

オプションは __init__ で設定する以外に後から設定することも可能

オプションの設定方法はなぜか複数あるので好きなものを使う

frame['bg'] = 'blue'

frame.config(bg = 'green')

frame.configure(bg = 'yellow')

# config, configure は辞書指定も可能
cnf = {'bg': 'black'}
frame.config(cnf, padx = 100)

ちなみに frame.bg = 'blue' とかはダメなので注意


オプションの取得方法も複数ある

print(frame['bg'])
print(frame.cget('bg'))

オプションの設定とかは基本的に他のウィジェットでも同じ

色について

background などへの色指定には 2 つの方法がある

方法 1. 16進トリプレット表記

16進トリプレット表記が使用できる (#FFFFFF みたいなやつ)

3 桁,6 桁,9 桁で表記できる

# rgb (12 ビットカラー: 4096 色)
frame.config(bg = '#0f0')

# rrggbb (24 ビットカラー: 16777216 色)
frame.config(bg = '#ff6347')

# rrrgggbbb (36 ビットカラー: 68719476736 色)
frame.config(bg = '#e0f1aa35c')

方法 2. 定義されている名前を使う

white, black, red, green, blue, cyan, yellow, magenta などの名前で指定することができる

これ以外にもあるみたいだけど少なくとも上にあげた 8 色については環境依存なしに使用できるみたい?

# マゼンタ
frame.config(bg = 'magenta')

単位について

borderwidth, padx, pady などに設定する値はピクセル単位である

frame = tk.Frame(root, bd = 10)
frame.pack()

button = tk.Button(frame, text = 'Button1')
button.pack()

f:id:CyLomw:20161108163917p:plain

これは bd = '10' のように文字列で指定することもできる

文字列で渡す場合,以下の単位を使うことができる

記号 単位
c センチメートル
i インチ
m ミリメートル
p ポイント(1/72 インチ)

例:

frame = tk.Frame(root, padx = '2c')

relief について

relief オプションでは縁(ボーダー)のスタイル指定ができる

当たり前だけどボーダー幅 (borderwidth) が 0 の場合は意味がない

指定できる値 どんな感じ
FLAT(デフォルト) 平ら(縁は見えず,スペースだけ)
SUNKEN フレームが押されたボタンのように沈む
RAISED フレームがボタンのように盛り上がる
GROOVE 縁が溝のように沈む
RIDGE 縁が尾根のように盛り上がる

f:id:CyLomw:20161108150808p:plain

上の図ではわかりやすいようにウィンドウ (root) の背景色を黒,フレームの背景色を白にしている (borderwidth は 5)

この他に SOLID とかもあるみたいだけど環境依存?


例:relief を RIDGE に設定する

いま import tkinter as tk とインポートしているので tk.RIDGE と書く必要があることに注意する

import tkinter as tk

root = tk.Tk()

frame = tk.Frame(root, bd = 5, relief = tk.RIDGE)
frame.pack()

# 中にラベルを入れる
label = tk.Label(frame, text = 'RIDGE BORDER')
label.pack()

root.mainloop()

f:id:CyLomw:20161108151751p:plain


また,relief の値は文字列でも指定できる

この場合は flat, sunken, raised, groove, ridge と小文字で指定する

例:

frame = tk.Frame(root, bd = 5, relief = 'ridge')

padx, pady について

フレームは中に配置したウィジェットにぴったりくっつく

パディングを設けたいときは padx, pady オプションを使用すればよいが,これは「内側の」パディングである

外側にパディングを設けたい場合は pack, grid の padx, pady オプションを使用する

import tkinter as tk

root = tk.Tk()

# ウィンドウの背景色を黒に設定
root.config(bg = 'black')

# フレームの背景色は白
frame = tk.Frame(root, bd = 5, relief = tk.RIDGE,
    bg = 'white', padx = 10)
frame.pack(pady = 10)

# フレーム内に配置するラベルの背景色は赤
tk.Label(frame, text = 'Label1', bg = 'red').pack()

root.mainloop()

f:id:CyLomw:20161108170708j:plain

上の例では内側の水平 (x) 方向と外側の垂直 (y) 方向にパディングを設けている

propagation と width, height

フレームは中に配置したウィジェットにぴったりくっつくため,フレームの大きさは中のウィジェットの大きさによって決まる

中に配置したウィジェットに関係なくフレームの大きさを制御したい場合は,propagate メソッドを用いて propagation(伝播)の設定を変更する

フレームの propagation

propagation 意味
True(デフォルト) 中のウィジェットにくっつく
False 中のウィジェットにくっつかない

propagation を False にすると,フレームの大きさは width, height オプションで指定した値になる(True の場合これらの値は無視される)

例:

frame = tk.Frame(root, bg = 'blue',
    width = '3c', height = '2c')
frame.propagate(False)
frame.pack()

button = tk.Button(frame, text = 'Button')
button.pack()

f:id:CyLomw:20161108175019j:plain

空のフレームとパディング

propagation が True(デフォルト)の場合,中に何も配置されていないフレームは大きさが 0 のためか borderwidth や padx, pady を設定しても何も表示されない

例:

frame = tk.Frame(root, bd = 5,
    relief = tk.RIDGE, padx = 10, pady = 10)
frame.pack()

# ボタンをフレーム内に設置
tk.Button(frame, text = 'Button1').pack()

f:id:CyLomw:20161108155026j:plain


frame = tk.Frame(root, bd = 5,
    relief = tk.RIDGE, padx = 10, pady = 10)
frame.pack()

# こんどはフレーム外に設置
tk.Button(root, text = 'Button1').pack()

f:id:CyLomw:20161108153647j:plain


propagation を False にし width, height を設定するとボーダーは表示されるが,padx, pady は機能しない

frame = tk.Frame(root, bd = 5,
    relief = tk.RIDGE, padx = '10c', pady = '10c',
    width = '1c', height = '1c')
frame.propagate(False)
frame.pack()

f:id:CyLomw:20161108180018j:plain


空のフレームを用いてパディングしたい場合は propagation を False にして width, height を設定すればよい

もしくは,propagation が True(デフォルト)のままでも,pack や grid で配置する際にパディングを設定するとパディングされる(フレーム外のパディングのため)

tk.Frame(root).pack(pady = '1c')
tk.Button(root, text = 'Button1').pack()

f:id:CyLomw:20161108171239j:plain

上の例ではフレームを用いてボタンの上に 1 cm * 2 = 2 cm のパディングを設けている

その他のオプション

オプション 説明 デフォルト値
class
colormap
container
cursor
highlightcolor
highlightbackground
highlightthickness
takefocus
visual

次のページに詳しい

http://effbot.org/tkinterbook/frame.htm

http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/frame.html

メソッド

Frame には固有のメソッドはない(たぶん)のでウィジェット共通のメソッドのみ(親クラスの Misc とか BaseWidget とかで定義されている)

次のページに詳しい

http://epydoc.sourceforge.net/stdlib/Tkinter.Frame-class.html

pack, grid, place など配置方法について

次のページに詳しい

http://www.shido.info/py/tkinter2.html