GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Syntax-for-Strings.html ・ emacs-doc.conao3.com

2.4.8.1 文字列の構文

文字列の読み取り構文は、ダブルクォート、任意の数の文字、そしてもう一つのダブルクォートで構成されます "like this"。文字列内にダブルクォートを含めるには、その前にバックスラッシュを記述します。したがって、"\"" はダブルクォート文字を1つだけ含む文字列となります。同様に、次のようにもう一つのバックスラッシュを前に置くことで、バックスラッシュを含めることもできます。"this \\ is a single embedded backslash"。

文字列は文字の配列であるため、characters の読み取り構文を用いて文字列の文字を指定できますが、先頭の疑問符は省略します。これは、単独では意味をなさない文字を文字列定数に含める際に便利です。したがって、制御文字はバックスラッシュで始まるエスケープシーケンスとして指定できます。例えば、"foo\r" は ‘foo’ に続きキャリッジリターン文字を出力します。その他の制御文字のエスケープシーケンスについては、基本文字構文を参照してください。同様に、制御文字用の特殊な読み取り構文(制御文字構文を参照)を使用して、"foo\^Ibar" のように文字列内にタブ文字を埋め込むこともできます。また、一般エスケープ構文で説明されている非ASCII文字用のエスケープシーケンスを、"\N{LATIN SMALL LETTER A WITH GRAVE}" や "\u00e0" のように使用することも可能です(ただし、非ASCII文字に関する注意点については 文字列内の非ASCII文字を参照してください)。

文字列の読み込み構文において、改行文字は特別な扱いを受けません。ダブルクォートの間に改行を記述すれば、それは文字列内の文字となります。しかし、エスケープされた改行――すなわち ‘\’ が前置されたもの――は、文字列の一部にはなりません。つまり、Lispリーダーは文字列を読み込む際、エスケープされた改行を無視します。同様に、エスケープされたスペース ‘\ ’ も無視されます。

"It is useful to include newlines
in documentation strings,
but the newline is \
ignored if escaped."
     ⇒ "It is useful to include newlines
in documentation strings,
but the newline is ignored if escaped."