読みやすい文章を組み立てる3つの法則

 

こんにちは。
デザイナーのLQヒロシです。

 

以前、読みやすい(分かりやすい)文章書くためのちょっとしたコツをご紹介しました。「かかる言葉と受ける言葉をなるべく近づける」というものです。単語間での修飾・被修飾関係を正しく配置しようというものでした。

 

今回はその第二回。より踏み込んで、読みやすい文章の組み立て方を考えてみようというものになります。例によってこちらの本を参考にしております。

新装版 日本語の作文技術

新装版 日本語の作文技術 本多勝一(著)

 

 

前回の内容はこちらからご覧いただけます。

読みやすい文章を書く、ちょっとしたコツ

 

読みやすい文章には組み立てる順番がある

 

(1)節を先に、句をあとにする

(2)長い修飾語ほど先に、短いほどあとにする

(3)重要な内容ほど先にする

 

これが3つの法則です。

「節」や「句」といった馴染みの薄いワードがでてきましたので、まずはこちらから説明していきます。

 

・「節」:1個以上の述語を含む文のかたまり
・「句」:述語を含まない文の最小単位(フレーズ)

これらの語法は、言語学者によって定義が異なるようですが、本記事は本多勝一氏の定義する用法に沿って進めていきます。

それでは(1)はどういうことになるのでしょうか。

(1)節を先に、句をあとにする

 (例1 ※P70抜粋)

 

この3つの言葉をひとつにまとめて、「紙」という名詞にかかる文を作るときの組み合わせを考えてみます。

 

A. 白い横線の引かれた厚手の紙
B. 厚手の横線の引かれた白い紙
C. 白い厚手の横線の引かれた紙
D. 横線の引かれた白い厚手の紙
E. 横線の引かれた厚手の白い紙
F. 厚手の白い横線の引かれた紙

 

ABは、「白い横線」または「横線が厚手」であるかのように捉えられる恐れがある。CFも「厚手の横線」「白い横線」にかかるような違和感があり、理解するのに時間がかかる。DEなら誤解なく読むことができる。

 

では、DEの違いはどこにあるのでしょうか。

 

それは「横線の引かれた」(節)が先にあり、「白い」「厚手の」(句)があとにあること。ABを見れば、「横線の引かれた」という節が、「白い」または「厚手の」という句のあとにくると、修飾は節の中の先の方の名詞「横線」だけにかかってしまうことがお分かりいただけるかと思います。

(2)長い修飾語ほど先に、短いほどあとにする

 

(1)の例では節がひとつだけでしたが、複数ある場合にどう組み立てるかを考えてみます。


 (例2 ※P74)


これに次のような修飾語をつけて語順を組み合わせてみます。

 (例3 ※P75、76)

 

① Aが私がふるえるほど大嫌いなBを私の親友のCに紹介した。
② Aが私の親友のCに私がふるえるほど大嫌いなBを紹介した。
③ 私がふるえるほど大嫌いなBAが私の親友のCに紹介した。
④ 私がふるえるほど大嫌いなBを私の親友のCAが紹介した。
⑤ 私の親友のCAが私がふるえるほど大嫌いなBを紹介した。
⑥ 私の親友のCに私がふるえるほど大嫌いなBAが紹介した。

 

この中で④が最も自然でわかりやすい文章であることがお分かりいただけると思います。

 

私がふるえるほど大嫌いなBを私の親友のCAが紹介した。

 

図解にしてみると以下のようになります。

 

 

「日本語の作文の技術」では、複数の例を挙げ、類似性をより事細かに検証しています。興味があればご一読いただくことをオススメします。著書では以下のように結ばれています。

 

ケースによって他のさまざまな要因がからんでくる。しかしこの原則は、物理的な単なる「長さ」だけの問題であるにもかかわらず、文のわかりやすさ・自然さを決めるための最も重要な基礎となすものといえよう(※P82

 

(3)重要な内容ほど先にする

 

節が複数あり、さらにその節の長さが同じ(対等)である場合はどうするのか?これが最後の法則になります。

 

① 初夏の雨がもえる若葉に豊かな潤いを与えた。
② 初夏の雨が豊かな潤いをもえる若葉に与えた。
③ もえる若葉に初夏の雨が豊かな潤いを与えた。
④ もえる若葉に豊かな潤いを初夏の雨が与えた。
⑤ 豊かな潤いを初夏の雨がもえる若葉に与えた。
⑥ 豊かな潤いをもえる若葉に初夏の雨が与えた。

(例4 P78

 

「初夏の雨が」「豊かな潤いを」「もえる若葉に」も節の長さが同じなので、どれが分かりやすいかを決めるのが難しくなります。著書を参照してみると

 

「初夏の雨」が全体の中で占める意味が最も重く、大きな状況をとらえている。しかし「豊かな潤い」は、「初夏の雨」という状況の中での小さな状況であり、「もえる若葉」のさまざまなありようの中の、ひとつのあらわれ方にすぎない。(※P88

 

という考察があり、最良の語順は以下になります。

 

初夏の雨がもえる若葉に豊かな潤いを与えた。

 

まとめ

 

第一の法則「節を先に、句をあとにする」

第二の法則 「長い修飾語ほど先に、短いほどあとにする」

第三の法則 「重要な内容ほど先にする」
(大状況から小状況へ、重大なものから重大でないものへ)

 

以上、ざっと進めてきました;
ボリュームがあるので説明が不十分なところもあるかと思いますが、そこは本多氏の著書をご覧いただければと思います。いずれの法則も「かかる言葉と受ける言葉をなるべく近づける」ための方法なのかなと考えることができそうです。

 

上記の法則を意識することで文章がより分かりやすくなることが、何となくでもご理解いただければ幸いです。

 

男はやっぱり肉がすき

こんにちわ。
リエです。
先日毎年恒例のお花見BBQを大阪城公園でしました。
↓昨年の様子はこちら↓

お花見BBQをしました


 
候補日が2日あり迷っていたのですが、お天気と予約の関係で早い方の日に決めました。
その時はまだ桜はそんなに咲いてないかな〜と話していました。
ところが今年は全国的に桜の開花が早く、お花見当日はすでに満開で葉桜になりつつあるという状態。
遅い日だと確実に間に合わなかったので、この判断は大正解でした!
 
今年から大阪城公園のBBQエリアは全面有料化したので、わたしたちはお堀横のゾーンを予約しました。
テーマは和というこうことで、どんな感じなんだろうと思っていたのですが、たしかに和でした(*_*)
 
この日はお天気にも恵まれ、まさしくお花見日和でした❀
食材と飲み物をたくさん買い込みBBQスタート。
※食材と飲み物の持ち込みはOKでした。
 
それではBBQの様子を写真にてお楽しみください。
 

大阪城が見える絶好のロケーション\(^o^)/
 

厚切りベーコンにテンションが上がる男たち。
 

焼きリンゴが最高の焼き加減すぎて写真を取りまくる。
 
花粉症のメンバーはとてもつらそうでしたが、やはり外でみんなと食べるご飯は美味しいですね〜(*´∀`)♡
 
食べることに夢中であんまり桜を見ませんでした。。
やはりわたしは花より団子です・ω・
 
我が社のメンズ達もやはりがnikuが好きって感じでした。
 
桜よ、また来年会う日まで(^_^)/~

CSS変数(CSSカスタムプロパティ)を使ってみよう!

CSSで変数が使えると話題になってから久しいですが、いつの間にか対応ブラウザが増えてきました。

IE11が未対応なので使いづらいのですが、そろそろ、CSS変数(CSSカスタムプロパティ)に目を通しておいたほうがいいかもしれませんね!

CSS変数(CSSカスタムプロパティ)の基本的な使い方

:root {
    --base-color: #ffff00;
}

.content {
    color: var(--base-color);
}

上の例のように変数の先頭に「–」(ハイフン2つ)を付けます。
これで、変数の定義がされます。

「:root」内に変数を定義することで、cssを読み込んだ全ての要素で変数が使えるようになります。

 

変数を呼び出す時には、var()関数を使います。
「color: var(–base-color);」のように、指定した変数を()の中に入れるだけです。

See the Pen css 変数(1) by naoto saito (@code_ns) on CodePen.

テキストが青色になりました。
基本的な使い方はとてもシンプルですね!

CSS変数とメディアクエリ

変数のみなら、Sassでもいい気がするのですが、動的に値が変わるのもcss変数を書くメリットです。

下記の例は、幅400pxで2カラムと4カラムを切り換えています。
(別ウィンドウで確認してください。)

See the Pen CSS 変数(2) by naoto saito (@code_ns) on CodePen.

JSでの操作

Sassと違い、CSS変数であれば、JavaScriptで値を取得したり、変更したりできます。
下記の例では青色に指定したテキストをJavaScriptで変数を変更し赤色に変更しています。

See the Pen CSS 変数(3) by naoto saito (@code_ns) on CodePen.

 

この例だとテキストの色を1箇所変えるだけなので、メリットは感じられないかもしれませんが、次のように変更箇所が何箇所も出てくる場合に便利さを感じられるかもしれません。
(Choose a theme colorの右のボックスで色の変更)

See the Pen Theming a site with CSS Custom Properties by Chris Coyier (@chriscoyier) on CodePen.

 

このように、もしIE11で使えるようになったら、CSSの管理やJavaScriptとの連携が、さらに簡単になりそうです。

 

神山しずくプロジェクト – SHIZQ再び

こんにちわ。
リエです。
 
先日徳島県神山町へお伺いしましたが、なぜ神山町を訪問したかと言いますと、こちらのブログでご紹介しましたSHIZQさんへお伺いするためでした。

 
ちなみに弊社のメンバーは全員、SHIZQ鶴コップを使わせていただいております♡

スプラウトへ入社してくれてありがとう


 
SHIZQさんは、神山町の山や川を守るため、「木を使う」活動を始められて、その中で神山町の杉の新たな活用法を考え、杉の製品が生まれました。
それがSHIZQ製品です。
製品はウェブストアとお店で買うことができます。
お店は古民家を改築したおしゃれな佇まいです。

 
お伺いした時に、新メンバーのコップを選んできました。

 
ウェブストアで購入し、どんな模様のものが届くかワクワクするのも楽しいですが、実際に手にとって選べるのもとても楽しいです♪
でも一つ一つ表情が違うので、悩む悩む・・・。
これだ!というものを選び、会社に連れて帰ってきました(*´∀`)
新メンバーへの贈呈式(と言うほどそんなたいそうなものではないです)の様子はまた別ブログで書きたいと思います。
 
そして今回の訪問のもうひとつの目的である、昨年10月にオープンしました、SHIZQさんの木工所「SHIZQ LAB.」も見学させていただきました。

 
このLABで、SHIZQさんの製品は生まれます。
中は、木を切るための機械やろくろなど、たくさんの機械が置かれていました。
数ある杉の中から、選定されたSHIZQ製品になる杉たちも保管されています。
製品の工程作業や、杉の選定のお話しなどを聞き、たくさんの人の手が加わってSHIZQ製品は生まれるのだなと感慨深い気持ちになりました。
使っているSHIZQコップをより大事にしたいと思います。
 
SHIZQ様、本当にありがとうございました!
 
神山しずくプロジェクト
http://shizq.jp/
 
オフィシャルウェブストア
https://shizq.stores.jp/
 
〜SHIZQ GalleryShop情報〜
オープン時間:10〜18時
定休日:月曜
(小さなショップのため、事前にご連絡を頂けるとたいへん助かります)
場所:徳島県名西郡神山町神領本上角90 (キネトスコープ社に併設)
TEL:088-636-7292
FAX:088-636-7293
MAIL:info@shizq.jp
クレジットカードもご利用いただけます。
(VISA・Master Card・AMERICAN EXPRESS)

JuliaBoxではじめるJulia言語

Juliaとは

Juliaは2009年に開発の始まった比較的新しいプログラミング言語です。
Julia がどんな言語で何を目指しているのかについては、開発初期に書かれた「なぜ僕らはJuliaを作ったか」という文章が志高くてたいへん素晴らしいです。
たとえばこんな感じ。

僕らが欲しい言語はこんな感じだ。まず、ゆるいライセンスのオープンソースで、Cの速度とRubyの動的さが欲しい。Lispのような真のマクロが使える同図象性のある言語で、Matlabのように分かりやすい数学の記述をしたい。Pythonのように汎用的に使いたいし、Rの統計処理、Perlの文字列処理、Matlabの線形代数計算も要る。シェルのように簡単にいくつかのパーツをつなぎ合わせたい。チョー簡単に習えて、超上級ハッカーも満足する言語。インタラクティブに使えて、かつコンパイルできる言語が欲しい。

そしてネット上での評判を見る限りでは実際そのような言語になりつつあるようです。曰く、簡潔で書きやすく実行速度も速い。
中でも目立つのは数学系の方々による賞賛の声です。曰く、数式を直感的に扱えてパッケージもそこそこ揃っていて可視化も容易、そしてなにより高速。

現時点のバージョンは0.6.2で活発に開発が進められています。逆に活発過ぎて仕様が安定しないという面もあるようですが。

JuliaBox ですぐにはじめる

Julia を実際に使ってみる場合、もちろん自分のローカルな環境にインストールしても構いませんが、前述の通り開発が活発なため最新を追っかけるのはなかなか大変です。また、環境によってはインストールが難しい場合もあるようです。

そこで、入門の間はJuliaBoxを使うことにします。
JuliaBox はブラウザで利用できる Julia のインタラクティブな実行環境を提供してくれます。その時々の最新版を利用できます。
Jupyter Notebook と統合されているため、データ分析などのようにコードを書きつつ記録を残すような作業に非常に便利です。もちろんコードの断片を実行しながらJuliaを勉強するのにも使えます。

Google,GitHub,LinkedIn のアカウントを持っていれば JuliaBox はすぐに使い始められます。
ログインしてみるとチュートリアルのドキュメント群が既に用意されています。

チュートリアルに含まれるコードはその場で実行して結果を見ることができます。

グラフ描くのも簡単です。

また、練習問題を解くコードをその場で書いて実行することもできます。
自分で書いたコードを保持した状態でドキュメントを更新することができるので、まさに自分のノートを作っていく感覚でチュートリアルを進めて行けます。

JuliaでFizzBuzz

ある程度までチュートリアルを進めたところで、Hello World よりもうちょっと手の込んだものということで FizzBuzz を作ってみました。
といっても、チュートリアルの制御構造の節で FizzBuzz のコード(if..elseを使った普通の解き方)が出てきます。また、FizzBuzz でちょろっとググったら関数型らしい解法も見てしまったので、それとも違う解き方を考えないといけなくなってしまいました。
そこで作ったのが以下のコード。


function fizzbuzz(n)
    all = Dict(i => string(i) for i in 1:n)
    fizz =Dict(i => "fizz" for i in filter(x->x%3==0, 1:n))
    buzz = Dict(i => "buzz" for i in filter(x->x%5==0, 1:n))
    fizzbuzz = Dict(i => "fizzbuzz" for i in filter(x -> x % 3 == 0 && x % 5 == 0, 1:n))
    merge(merge(merge(all,fizz),buzz),fizzbuzz)
end

function print_fizzbuzz(fizzbuzz)
    for key in sort(collect(keys(fizzbuzz)))
        println("$key => $(fizzbuzz[key])")
    end
end

Dictionary を merge するときに重複するキーがあれば後の方の値が使われることは merge のドキュメントで確認しています。


n が大きくなると破綻するのでダメなコードではあります。マクロを使った遅延シーケンスのパッケージがあるようなので、それを使っての改良は今後の課題としたいと思います。