서양어 텍스트 설정 시 TeX은 자동으로 일반 단어 사이보다 문장 끝 마침표 뒤에 약간 더 넓은 간격을 둡니다. “이 마침표가 문장의 끝인지, 아니면 약어인지”를 판단합니다. 앞의 편지의 경우를 살펴보면 —때때로 틀릴 수도 있는 추측입니다. 이 페이지에서는 작동 방식, 잘못 실행되었을 때 이를 수정하는 두 가지 명령(\ 및 \@), 그리고 더 넓은 문장 공간을 완전히 끄는 \frenchspacing을 다룹니다.
문장 끝의 추가 공백
영어/미국식 조판 전통에서는 문장 끝의 공백이 단어 사이의 공백보다 약간 넓게 설정됩니다(비공식적으로 "이중 공백"이라고 함). LaTeX은 기본적으로 이를 따르며, 문장 종료 ., ? 또는 ! 뒤에 공백을 추가합니다. 예를 들어, 10포인트 Computer Modern에서는 단어 사이의 간격이 약 3.33pt이고, 문장 끝에 TeX이 맨 위에 약 1.11pt를 추가합니다. 문장 공간에도 더 많이 늘이고 축소되어 줄이 정렬되면 일반적인 단어 공간보다 먼저 더 넓어집니다.
내부적으로 모든 문자는 “공백 요소”를 전달합니다. 일반 문자 다음에는 일반 단어 간 값인 1000이 됩니다. ., ? 또는 ! 이후에는 3000으로 점프하며 TeX의 규칙은 공간 요소가 2000 이상이면 다음 공간에 추가 너비를 추가하는 것입니다. 이것이 더 넓은 문장 공간 뒤에 있는 메커니즘입니다. 일본어(CJK) 문자 사이의 간격은 완전히 다른 시스템에 의해 관리되므로 이 페이지의 모든 내용은 실제로 서양 텍스트에 관한 것입니다.
TeX이 문장과 약어를 추측하는 방법
그러나 모든 .이 문장으로 끝나는 경우 Mr. Smith 또는 etc.과 같은 약어의 마침표도 넓은 공간을 차지합니다. 그래서 TeX은 앞 글자의 대소문자로 추측합니다. 마침표 직전의 글자가 소문자인 경우 마침표를 문장 끝으로 처리하여 넓은 공백을 삽입합니다. 대문자 문자인 경우 약어나 이니셜을 가정하고 일반적인 단어 간 공백을 사용합니다.
해당 대문자 예외는 동일한 공간 요소를 통해 구현됩니다. 대문자에는 999(1000이 아님)의 공백 요소가 할당되므로 대문자 뒤의 마침표는 공백 요소를 3000으로 늘릴 수 없으며 추가 공백이 추가되지 않습니다. "대문자 + 마침표 = 약어"라는 경험 법칙은 대부분의 영어 산문에 적합합니다.
그러나 경험적 방법이기 때문에 두 방향으로 잘못 실행됩니다. 첫째, 문장 끝이 *아닌* 소문자 이후 마침표는 여전히 넓은 공백(Fig. 5, etc. and)을 얻습니다. 둘째, 실제로 대문자로 *끝나는* 문장은 약어로 오해되어 공간을 너무 적게 차지합니다(...in the USA.). 다음 섹션에서는 각 문제를 해결하는 방법을 보여줍니다.
오류 수정(\ 및 \@)
(1) 약어 뒤(소문자 + 마침표, 문장 끝 아님). 추가 공백을 제거하려면 마침표 뒤에 백슬래시 공백 \ 을 입력합니다. 이는 명시적이고 늘어나지 않는 일반적인 단어 간 공백을 삽입합니다. Fig.\ 5을 쓰면 Fig. 뒤에 정확히 단어 공백이 제공됩니다. 대안으로, ~은 공백을 일반 단어 간 공백으로 만들고 *여기서 줄바꿈(잘라내지 않는 공백)을 금지합니다. Mr.~Smith 또는 Fig.~5처럼 번호나 이름 옆에 약어를 유지하는 데 좋습니다.
(2) 대문자로 끝나는 문장. 약어로 착각하고 공백이 적기 때문에 마침표 바로 앞에 \@을 붙여 “이것은 문장 끝입니다.”라고 선언합니다. \@은 본질적으로 보이지 않는 소문자처럼 작동하여 다음 마침표의 공백 인수를 3000으로 복원하여 적절한 문장 공간을 복원합니다. \@은 닫는 괄호와 따옴표를 사용하므로 (\dots etc.\@)과 같은 형식에서도 작동합니다.
니모닉: 위치는 거울 이미지입니다. 끝이 없는 대문자 약어의 경우 마침표 *뒤에* \ 을 입력하세요. 문장을 *끝내는* 대문자의 경우 \@ *앞에* 넣으세요. 아래 예제를 컴파일하면 etc. 및 USA. 뒤에 공백이 올바르게 설정됩니다.
We cite Fig.\ 5 and Mr.~Smith here.
Use etc.\ and so on, mid-sentence.
The rocket was built in the USA\@. It then flew.이 모든 것은 기본값 \nonfrenchspacing(넓은 문장 간격)에서만 중요합니다. 다음 섹션에서 \frenchspacing으로 전환하면 문장 공백은 단어 공백과 동일하므로 이러한 조작의 대부분은 불필요해집니다.
와이드스페이스 끄기(\frenchspacing)
\frenchspacing 문장 끝을 포함한 모든 구두점 뒤의 공백을 단어 간 공백과 동일한 단일 균일 너비로 만듭니다. 일단 선언되면 마침표 대소문자 테스트는 더 이상 중요하지 않으며 Fig. 5 및 USA. 둘 다 자연스럽게 공백으로 나옵니다. 기본값을 복원하는 명령은 \nonfrenchspacing입니다. 일반적으로 전체 문서에 영향을 주기 위해 서문에 한 번 작성하지만 { ... } 그룹 내에 배치하면 해당 범위로 제한됩니다.
\documentclass{article}
\frenchspacing
\begin{document}
No extra space after this period. Or this one.
\end{document}"French"라는 이름은 프랑스와 일반적으로 영어권 국가 외부에서 문장 간격을 넓히지 않는다는 관례에서 유래되었습니다. 주로 일본어로 된 문서에서는 서양어 구절의 문장 간격이 고르지 않은 것을 피하기 위해 \frenchspacing을 선택하는 경우도 있습니다. 현대에서는 많은 작성자가 \@으로 개별 사례를 패치하는 대신 처음부터 \frenchspacing을 설정만 하며 이는 매우 합리적인 선택입니다. babel과 같은 언어 패키지는 선택한 언어 규칙에 맞게 문장 간격을 자동으로 조정할 수 있습니다.
| 명령 | 기능 | |
|---|---|---|
\nonfrenchspacing | 기본값입니다. 문장이 끝난 뒤 공백이 더 넓어짐 | 기본값입니다. 문장이 끝난 뒤 공백이 더 넓어짐 |
\frenchspacing | 모든 구두점 공백을 단어 간 공백과 동일하게 만듭니다. | 모든 구두점 공백을 단어 간 공백과 동일하게 만듭니다. |
\ | 명시적인 단어간 공백입니다. 약어 뒤의 잘못된 넓은 공백을 취소합니다(예: 그림\ 5). | 명시적인 단어간 공백; 약어 뒤의 잘못된 넓은 공백을 취소합니다. |
~ | 금단어 사이의 공백; 번호나 이름으로 약어를 유지합니다(예: Mr.~Smith). | 금단어 사이의 공백; 번호나 이름으로 약어를 유지합니다. |
\@ | 마침표 앞에 배치됩니다. 대문자 뒤에 문장 끝 공백을 강제 적용합니다(예: USA\@.) | 마침표 앞에 배치됩니다. 대문자 뒤에 문장 종료 공간을 강제합니다. |
문장 간격 정책을 먼저 설정하세요.
문장 간격은 장이 성장함에 따라 표류하는 세부 사항 중 하나입니다. \frenchspacing을 사용할지, 기존의 넓은 영어 문장 간격을 유지할지 처음에 결정한 후 예외적으로 \ , ~, \@을 사용합니다. 정책을 늦게 바꾸면 약어와 참조번호를 하나씩 다시 읽어야 한다.
- 일관성을 위해 서문에
\frenchspacing을 넣고 서양 산문이 포함된 일본어 문서에서는 공백을 고르지 않게 제거합니다. - 영문 표기 방식의 경우 기본값을 유지하고
Fig.\ 5,Mr.~Smith등 잘못된 약어의 경우만 수정합니다. - 분리할 수 없는 참조의 경우
~을 사용하세요.Fig.~5,Section~2및Eq.~(3)을 여러 줄로 나누면 읽기가 더 어려워집니다. - 대문자로 끝나는 문장의 경우
USA\@. Next을 작성하면 TeX이 마침표로 문장이 끝나는 것을 알 수 있습니다.