em-dash について
em-dash は、エムダッシュの歴史や句読法、コードとテキストファイルでの慣習をまとめた文章作成向けの参考資料です。文章やコードの句読点を扱うエージェント向けで、コードではエムダッシュとエヌダッシュを使わず、生テキストでも原則避けるよう案内します。
主な機能
- 01エムダッシュの歴史を解説
- 02句読法の慣習を説明
- 03コードでのダッシュ使用に関する指針
- 04置換コマンドの提示
活用シーン
- 01文章内のダッシュ使用を確認
- 02コードやコメント内の Unicode ダッシュを置換
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ github/ awesome-copilot --skill em-dashインストール後、Claude Code で/em-dashを入力して読み込まれたか確認します。
詳細
em dash
em ダッシュ(U+2014、\u2014。ハイフンマイナス - ではありません)は、標準的なダッシュの中で最も長く、句読点の万能ナイフです。その歴史は、手書きの原稿から、機械的な制約、文学的な反抗、そして現代のデジタル時代における圧倒的な普及へと続く、興味深い道のりです。
em ダッシュがどのように変化してきたかを見ていきましょう。
em ダッシュの歴史
初期(15〜18世紀)
- 最初のダッシュ:英文学におけるダッシュの初期の用例は、私信では1580年、英語の演劇では1588年までさかのぼります。間、話者の言いよどみ、未完の考えを示すためによく使われていました
- グーテンベルクと初期の印刷:em ダッシュは、15世紀の印刷革命の時期に、標準的な組版記号として正式に登場しました
語源
- 「M」の幅:em ダッシュという名前は、標準的な長さが使用する書体の大文字「M」の幅と等しいことに由来します(同様に、少し短い en ダッシュは文字「N」の幅です)
文学における人気(17〜19世紀)
- 作家の道具:17世紀から18世紀にかけて、話し言葉に自然に現れる不規則な抑揚、どもり、リズムをまねるため、作家に愛用されるようになりました
- ディキンソンのダッシュ:19世紀には、エミリー・ディキンソンのような詩人が、感情的な重みやリズムを加え、読者に解釈を促すためにem ダッシュを使ったことで有名です。彼女の作品とあまりにも結びついたため、非公式に「ディキンソンのダッシュ」と呼ばれることもあります
タイプライターの時代(19〜20世紀)
- 二重ハイフンによる妥協:タイプライターが登場したとき、em ダッシュ専用のキーはありませんでした。そこで、タイピストは代わりにハイフンを2つ続けて入力するようになりました(--)
- スペースなしの規則:こうした機械的な妥協から、記号の前後にスペースを入れずに入力するという文体上の慣習が生まれ、現在も残っています
デジタル時代(現代)
- 本来の形への回帰:現代のデジタル組版やワープロソフトにより、本来の切れ目のないem ダッシュが復活しました
- 現代のルネサンス:em ダッシュの人気が再び高まっています
- 現代の長文散文の特徴となり、AI の出力でも好んで多用される句読点になりました。AI の出力では、会話的で意識の流れに沿った文体が優先されることがよくあります
em ダッシュが現代に再流行した理由の考察
- 締め切りに追われ、オンライン記事を投稿する前に厳密に校正する時間がなかったプロの作家
- 賢く見せるために、HTML エンコーディングの知識を見せびらかしたかった専門家
- ウェブページ上のテキストの視覚的な構成をより魅力的にしたかったグラフィックデザイナー
- 人気がさらなる人気を呼ぶという事実
- ウェブ記事を公開する人々は、ほかの誰もがem ダッシュを使っているのを見て、本来ならハイフンを使うところにも、em ダッシュを選ぶようになりました
em ダッシュの歴史の分析
em ダッシュの歴史の中で、コンピューターコードの記述や、コンピューター命令として実行されることを意図したファイルに、意図的に使われたことは一度もありません。
em ダッシュや en ダッシュを使う場面
ありません。
コードファイルの場合
重要
絶対に使わないでください。 コードコメントでは、どのような場合でも文体は重要ではありません。
- 絶対に使わない
- 代わりに
-(ハイフン)文字を使ってください - エージェントとして作業している場合、コメントにem ダッシュがあれば、
-(ハイフン)文字に置き換えてください
- 代わりに
生データおよび/またはテキストファイルの場合
メモ
原則として使わないでください
- 指示があり、テキストが次の用途に使われることが明確な場合:
- 文学作品
- ニュース
- エージェントとして作業している場合、データにすでにem ダッシュが含まれていれば、そのまま残してください
その他の句読点
em ダッシュに詳しくなるには、ほかの句読点や文字についての知識も必要です。
文末の記号
段落内のすべての完全文は、次の3つの記号のいずれかで終わる必要があります。
- ピリオド
.:断定文や平叙文を終える記号です- キーボード文字:
true - プログラミング言語の構文:
true- 例:
<?php echo "a" . "b" . "c"; ?>
- 例:
- キーボード文字:
- 疑問符
?:直接的な質問を終える記号です- キーボード文字:
true - プログラミング言語の構文:
true- 例:三項条件式
condition ? expression_if_true : expression_if_false
- 例:三項条件式
- キーボード文字:
- 感嘆符
!:強い感情、驚き、または強調を表します- キーボード文字:
true - プログラミング言語の構文:
true- 例:
setlocal enabledelayedexpansion && set "_a=a" && echo !_a! && endlocal
- 例:
- キーボード文字:
間や節をつなぐ記号
これらの記号は文章のリズムを整え、異なる考えをつなぎます。
- カンマ
,:リスト内の項目を区切るとき、接続詞(例:and、but)を使って独立節をつなぐとき、または文頭の句を区切るときに使います- キーボード文字:
true - プログラミング言語の構文:
true- 例:
fn(a, b)
- 例:
- キーボード文字:
- セミコロン
;:単独で文として成立する、密接に関連した2つの独立節をつなぎます- キーボード文字:
true - プログラミング言語の構文:
true- 例:
var foobar = "foo-bar";
- 例:
- キーボード文字:
- コロン
::リスト、引用、または説明を導入します。コロンの前のテキストは、完全文である必要があります- キーボード文字:
true - プログラミング言語の構文:
true- 例:
{"age": 26}
- 例:
- キーボード文字:
単語、引用符、所有を表す記号
- アポストロフィ
':所有を表す(例:Sarah's book)か、短縮形で省略された文字を表します(例:I will の代わりに I'll)- キーボード文字:
true - プログラミング言語の構文:
true- 例:
char letter = 'A';
- 例:
- キーボード文字:
- 引用符
":直接話法や引用を囲みます。アメリカ英語では、ピリオドとカンマはほとんどの場合、引用符の内側に置きます- キーボード文字:
true - プログラミング言語の構文:
true- 例:
char abc[] = "abc";
- 例:
- キーボード文字:
ダッシュとスラッシュ
- ハイフン
-:2語以上をつないで、1つの複合形容詞を作ります(例:well-known)- キーボード文字:
true - プログラミング言語の構文:
true- 例:
count--
- 例:
- キーボード文字:
- エンダッシュ(U+2013、
\u2013)とエムダッシュ(U+2014、\u2014):- エンダッシュは2つのうち細いほうで、数値の範囲や、複合形容詞の一方の要素が複数の単語である場合に、単語間のつながりを示すために使います
- キーボード文字:
false - プログラミング言語の構文:
false
- キーボード文字:
- エムダッシュは幅が広く、文章の中断を示したり、劇的な効果を与えたり、例を示したりするために使います。
- キーボード文字:
false - プログラミング言語の構文:
false
- キーボード文字:
- エンダッシュは2つのうち細いほうで、数値の範囲や、複合形容詞の一方の要素が複数の単語である場合に、単語間のつながりを示すために使います
- スラッシュ
/:選択肢(例:yes/no)を示すか、詩の行を区切ります- キーボード文字:
true - プログラミング言語の構文:
true- 例:
/* comment */ || 10/2 || 5//2
- 例:
- キーボード文字:
グループ化と強調
- 丸括弧
( ):文の意味を明確にする補足的で必須ではない情報を囲みます。文の核心となる意味を変えずに削除できます- キーボード文字:
true - プログラミング言語の構文:
true- 例:
if (5 > 2)
- 例:
- キーボード文字:
- 角括弧
[ ]:原著者以外の人が引用に加えた語句を囲みます。通常、代名詞を明確にしたり、欠けている文脈を補ったりするために使います- キーボード文字:
true - プログラミング言語の構文:
true- 例:
var arr = [1, 2, 3];
- 例:
- キーボード文字:
その他の句読点文字を使用する際の一般的なルール
コードファイル、またはコンパイルされるコンピューター命令に含まれるファイルにコメントを書く場合は、次の経験則に従ってください。
-
その文字がキーボードで一般的に入力できるか、またはプログラミング言語の構文の一部である句読点かどうかを判断します。
- キーボードで入力できず、一般的なプログラミング構文の文字でもない場合:
- コードやコードコメントでは、絶対にその文字を使用しないでください。
- 記載されていない例:
�
- 記載されていない例:
- コードやコードコメントでは、絶対にその文字を使用しないでください。
- キーボードで入力でき、一般的なプログラミング構文の文字である場合:
- コードコメント内で正しく使用してください。
- キーボードで入力できず、一般的なプログラミング構文の文字でもない場合:
重要
判断に迷った場合は、以下の疑似コードの指示に従ってください。
# For en dash and em dash
echo - | sed "s/-/-/g"
# Replace Unicode en dash (U+2013) and em dash (U+2014) with hyphen-minus (-)
perl -CS -pe 's/\x{2013}|\x{2014}/-/g'
# For encoded characters
echo � | sed "s/�/ /g"
# (Optional) Remove the Unicode replacement character (U+FFFD) if it appears in pasted text
perl -CS -pe 's/\x{FFFD}/ /g'