ニコニコ大百科モバイル

7/2(月)よりスマホまたはPCでアクセスした場合、各デバイス向けのサイトへ自動で転送致します


インデント


ヨミ: インデント
掲示板をミル!
4カキコ!

インデントとは、テキストの一部で行頭の位置をずらすことである。

本項ではほぼ同じ意味の「字下げ」についても解説する。


概要


日本語英語横書きにするとき、特に定がなければ文章は一番左から書き始める。そしてその文章が長くなって改行が発生したら、当然次の行も一番左から始まる。

それに対して、行頭を一定量右にずらすことをインデント(indent)と言う。アラビア文字のように右から左に書く文字体系なら左にずらし、縦書きなら下にずらす。たとえばこの段落は右に2文字分インデントされている。インデントを加えることによって、その部分が立つ。そこに様々な意味を込めたり、テキストを見やすくするために使われる。

状況によっては、インデントされた範囲の中にさらにインデントが加わることがある。この段落はさらに2文字インデントされている。これには文章の階層構造を分かりやすくする意味がある。

ただし、意味もなくインデントしまくってもかえって分かりにくいだけなので使いどころには工夫が必要だ。

ところで同じ「インデント」でも、最初の行だけをずらして残りはそのままにする形式をす場合もある。この段落は先頭の行だけ一文字インデントされている。「インデント」という言葉が出てきたら、段落全体のインデントか行頭のみのインデントなのかに注意しなければならない。

例を挙げよう。ニコニコ大百科の編集画面にはインデントを増やすインデントを増やす、[画像を見る]インデントを減らすボタンがある。これを押すとどうなるかというと、選択した範囲で文章全体が右に3文字くらいインデントされる仕様となっている(csspadding-leftプロパティ30px前後になる)。これに対して、htmlを直接いじって編集するとcsstext-indent というプロパティ定できるようになっている。こちらは定した幅の分、最初の行だけを右にずらす仕様である(こちらを参照されたし)。

また、日本語では字下げという言葉もあるが、こちらも両方の意味で使われることがあるので注意したい。文字が下にずれるのは縦書きの場合だけだが、横書きでも普通に字下げという用を用いる。なお国語事典などの用例では、「字下げ」は活字や原稿用の場合に使い、「インデント」はワープロソフトの機だとしているものが多いが、巷には逆の用例もいくらでもある。

最初の行だけをずらすという意味での「インデント」には、逆に最初の行だけはそのままで二行以降を右にずらすというパターンがある。これを「ぶら下がり」または「ぶら下がりインデント」と呼んだりする。この段落は二行以降が右に一文字ずれたぶら下がりインデントとなっている。

行頭のみの字下げやぶら下がりインデントは段落の開始を立たせるために使われる。これに対して段落全体を下げるインデントは、引用に使うことが多い。

印伝(いんでん、印)とは、印伝革の略であり、鹿の皮をなめしたものをいう。 細かいしぼが多くあり、肌合いがよい。なめした革に染色を施し漆で模様を描いたもので、袋物などに用いられる。(Wikipedia - 印伝[外部] より 引用

もっともニコニコ大百科では編集画面で文章の引用をすると自動的に

印伝(いんでん、印)とは、印伝革の略であり、鹿の皮をなめしたものをいう。 細かいしぼが多くあり、肌合いがよい。なめした革に染色を施し漆で模様を描いたもので、袋物などに用いられる。(Wikipedia - 印伝[外部] より 引用

といった感じでインデントに加えてで囲んだりしてくれる。

 
`

プログラミングにおけるインデント


プログラムはしばしば複雑な階層構造になる。そのためインデントを入れないとものすごく読みづらいソースコードができてしまう。以下はC言語FizzBuzz問題を解くプログラムだが、インデントがないとちょっと構造が分かりにくい。

#include <stdio.h>
int main(void) {
int i;
for (i = 1; i <= 100; i++) {
if (i % 15 == 0)
printf("FizzBuzz\n");
else if (i % 3 == 0)
printf("Fizz\n"); else if (i % 5 == 0) printf("Buzz\n"); else printf("%d\n", i); } return 0; }

ここでブロックごとに4文字分のインデントを加えてあげると以下のように見やすくなる。

#include <stdio.h>
int main(void) {
    int i;
    for (i = 1; i <= 100; i++) {
        if (i % 15 == 0)
            printf("FizzBuzz\n");
        else if (i % 3 == 0)
            printf("Fizz\n");
else if (i % 5 == 0) printf("Buzz\n"); else printf("%d\n", i); } return 0; }

なおインデントは何文字にするかとか、スペースを使うかタブを使うかといった議論宗教戦争に繋がりかねないのでうかつに始めてはならない。

ニコニコ大百科の記述に使われるHTMLも階層構造を多用する言だが、編集時になぜかインデントが強制的に削除されてしまうのでソースが非常に見づらくなる。そのため複雑なリストテーブルhtmlで直接編集するときは何らかの工夫か根性が必要となる。

大抵のプログラミング言語では括弧によってブロックの階層構造を決定するため、インデントは人間ソースコード読みやすくするために入れるものでしかない。しかし、中には括弧してインデントによってブロックを決定する言も存在する。典的なのがPythonで、同じFizzBuzz問題は次のようになる。

for i in range(1, 101):
    if i % 15 == 0:
        print 'FizzBuzz'
    elif i % 3 == 0:
        print 'Fizz'
    elif i % 5 == 0:
        print 'Buzz'
    else:
        print i

こちらはインデントを取ってしまうとコードとして成立せず、コンパイルできない。他にはF#Haskellなどがインデントで階層を決定する言である。


関連動画



■sm3150257[ニコ動]


関連商品


■az4766130235
■az477414293X


関連項目(インデント入り)



最終更新日: 18/02/20 07:42
タグ検索 パソコン版を見る


[0]TOP
ニコニコ動画モバイル
運営元:ドワンゴ