abenori / jlreq

Other
125 stars 18 forks source link

改行に伴う和文と欧文などのアキ #106

Closed Yarakashi-Kikohshi closed 2 years ago

Yarakashi-Kikohshi commented 2 years ago

改行に伴う和文と欧文などのアキ

これはバグレポートやリクエストではありません. 質問です.

和文中で以下のようなものを行を分けながら書いた場合,アキが異なる結果を受けてしまいました.

サンプルとして上から順に,

  1. 改行しないもの
  2. 和文以外のものを別行にしたもの
  3. 和文以外のものを別行にして行末に% を付けたもの

としています.

すべての画像のソース (折りたたみ)
```latex \documentclass[12pt,a5paper]{jlreq} \usepackage{luatexja} \usepackage{siunitx} \usepackage[active,tightpage]{preview} \begin{document} \begin{preview} 吾輩は猫である。名前はまだない。 吾輩は 猫 である。名前はまだない。 吾輩は% 猫% である。名前はまだない。 \end{preview} \begin{preview} 三菱UFJ銀行 三菱 UFJ 銀行 三菱% UFJ% 銀行 \end{preview} \begin{preview} 今年は2022年です! 今年は 2022 年です! 今年は% 2022% 年です! \end{preview} \begin{preview} 光速度$c$はとても速い! 光速度 $c$ はとても速い! 光速度% $c$% はとても速い! \end{preview} \begin{preview} 富士山の標高は\SI{3776}{m}です! 富士山の標高は \SI{3776}{m} です! 富士山の標高は% \SI{3776}{m}% です! \end{preview} \end{document} ```

和文

和文のみであれば,改行前後でのアキに変化はありません.(そもそもアキがない)

吾輩は猫である。名前はまだない。

吾輩は
猫
である。名前はまだない。

吾輩は%
猫%
である。名前はまだない。

solidSetting-up-image-1

和文以外のものの場合,2番目の改行して行末に% を付けていないもののアキが,他2つと異なるものとなりました.

欧文

三菱UFJ銀行

三菱
UFJ
銀行

三菱%
UFJ%
銀行

solidSetting-up-image-2

2番目だけ欧文後のアキが広い.

アラビア数字

今年は2022年です!

今年は
2022
年です!

今年は%
2022%
年です!

solidSetting-up-image-3

2番目だけアラビア数字後のアキが広い.

行内数式

光速度$c$はとても速い!

光速度
$c$
はとても速い!

光速度%
$c$%
はとても速い!

solidSetting-up-image-4

2番目だけ行内数式の後のアキが広い

siunitx を利用した単位付きの数値

富士山の標高は\SI{3776}{m}です!

富士山の標高は
\SI{3776}{m}
です!

富士山の標高は%
\SI{3776}{m}%
です!

2番目だけ数値の後のアキが広い

solidSetting-up-image-5

疑問点

これらの挙動は期待された正しい挙動ですか? また,正しい挙動の場合,どの書き方が正しい書き方になりますか?

改行に伴うアキの変化について調べてみても特に記述を見つけられなかったため,これらの挙動が期待されている正しいものなのか分かりませんでした.

abenori commented 2 years ago

これはpTeXの一般的な挙動です.以下のルールで説明できます.

これらから,

三菱UFJ銀行

三菱
UFJ
銀行

三菱%
UFJ%
銀行

の二つ目は

三菱UFJ 銀行

と同じになり,UFJの後にはスペースが入ることによりその分のアキが入り,和欧文間空白は入りません.また三つ目はコメントアウトの効果により一つ目と同じになり,UFJの前後どちらも和欧文間空白が入ります.

どれが正しい記述かは結局どの空白を入れたいかによるのですが,個人的には和欧文間空白を入れるべきだと思うのでどの場合も一つ目か三つ目(この二つは等価)で記述しています.

Yarakashi-Kikohshi commented 2 years ago

とても分かりやすい説明をありがとうございます! 和文以外を別行にする場合は行末に% を付けるように心がけていきたいと思います:smile:

Yarakashi-Kikohshi commented 2 years ago

@abenori 一度閉じてしまいましたが,もう一つだけアキに関して教えてください.

相互参照のアキ

一般的に相互参照では,\ref などの参照タイプは改行されるべきではないとされているようです. そのため,次のように運用します.

式~\ref{eq:label}

しかしながら,~ では半角スペースを挿入したときと同じだけのアキが生じてしまいます.

\begin{equation}
f(x) = ax^2+bx+c \label{eq:label}
\end{equation}

式1は

式\ref{eq:label}は

式~\ref{eq:label}は

solidSetting-up-image-7

\ref の間での改行を禁止しつつ,xkanjiskip の恩恵を受ける方法はありますか?

abenori commented 2 years ago

あ\nobreak aとすると分割を禁止しつつxkanjiskipが挿入されるようです.

Yarakashi-Kikohshi commented 2 years ago

実現出来ました. ありがとうございます!