スペースと“ウェーブ”シンボルの違い(チルダ/ “〜”)?

タイトルとして、~

コンパイル後に違いは見られません。

MWE:

\documentclass[a4paper]{article} \usepackage[english]{babel} \usepackage[utf8]{inputenc} \usepackage{amsmath} \usepackage{graphicx} \usepackage[colorinlistoftodos]{todonotes} \title{Your Paper} \author{You} \date{\today} \begin{document} \maketitle I am cool. I~am~cool. \end{document} 

コメント

  • 行末に違いが表示されます。 ~は壊れないスペースですが、スペースは壊れない'です。
  • "私はかっこいいです" …それは'かなり大胆なステートメントです:p
  • スペースも制御します。'は、\the....カウンター出力コマンドの後に頻繁に使用されます。
  • テキストモードの場合~ = \nobreakspace
  • @yo 'では、この質問を削除する必要がありますか?

回答

違いは最後にわかります行の。スペースは壊れやすく、~は壊れないスペースです。

\documentclass[a4paper]{article} \usepackage[english]{babel} \usepackage[utf8]{inputenc} \usepackage{amsmath} \usepackage{graphicx} \usepackage[colorinlistoftodos]{todonotes} \title{Your Paper} \author{You} \date{\today} \begin{document} \maketitle \hspace*{0.9\textwidth}I am cool. \hspace*{0.9\textwidth}I~am~cool. \end{document} 

ここに画像の説明を入力

I amとは2行目で接着されています。

回答

~アクティブな文字です。つまり、\mboxなどのマクロと同じです。その機能は次のように記述されます。定義。

\nobreakspace{} 

したがって、~と入力することは、\nobreakspace{}

\nobreakspaceは何をしますか?ここにあります:

\leavevmode\nobreak\ 

(最後のバックスラッシュの後にスペースが続きます)。したがって、すでに段落内にある場合は、段落が開始されるか、何も実行されません(\leavevmode);次に、\nobreakが発行され、そのポイント(\nobreak)での改行が禁止され、通常の単語間スペースが挿入されます。

したがって入力するとき

no~break 

2つの単語の間にスペースがありますが、。


\nobreakspaceの後に{}があるのはなぜですか。キャプションにno~breakがある場合、.auxファイルに展開バージョンが表示されます

no\nobreakspace {}break 

~の後のスペースが必要なまれなケースに対処するために、中括弧が導入されました。それらがないと、no~ break

no\nobreakspace break 

と書き込み、.aux fileの場合、スペースは無視されます。中かっこを使用すると

no\nobreakspace {} break 

が書き込まれ、追加のスペースは無視されません。


1つ入力するとどうなりますか<出力にdivid = "7f2302bf54">

がありますか? 2つのスペースが追加されますが、スペースは破棄可能なアイテムが前にない場合にのみ実行可能な改行ポイントであるため、それらで改行することはできません。 \nobreakspace

\leavevmode\penalty 10000 \ 

になり、ペナルティはスペースのように破棄できるため、\ も次のスペースも改行に使用できません。

逆の場合no ~break 2つのスペースが出力されますが、ブレークポイントが可能になりました最初のスペースで(そして、それが取られた場合、両方がペナルティとともに消えます)。

コメント

  • いい説明。 +1と言ってもいいですか?
  • no~ breakについて話しますが、no ~breakについては話しません。特に、このケースは、スペースの代わりに改行を使用して行ごとに文字制限を使用する場合に発生する可能性があります。この場合はどうなりますか?
  • @RomainPicotほぼ同じですが、ブレークが発生しない場合は2つのスペースがありますが、ブレークは可能です(no~ break)ではありません)。
  • @egreg精度に感謝します;-)
  • @RomainPicotプロンプトに感謝して最後のメモを追加しました。

回答

これは、iv id = “の~の定義です。 c17027f25f “>

\catcode `\~=13 \def~{\nobreakspace{}} 

\nobreakspace

\DeclareRobustCommand{\nobreakspace}{% \leavevmode\nobreak\ } 

したがって、アクティブな文字~は、行に分割できないスペースに相当します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です