문장을 재구성할 방법이 없습니다. 예를 들어 문장에서 문자 "i"를 삭제하면 I'm good, 모든 것이 완벽하게 맞습니다.
그래서 여백의 모퉁이를 잘라볼까 고민했어요. 그것은 단지 하나의 특정 행에 관한 것입니다. 어떤 아이디어? 타이포그래피 법칙에 어긋나는 것 같지만...
제가 MS 사용자였을 때 이런 일이 한 번 있었는데, 그냥 공백의 크기만 변경한 적이 있었습니다.
MWE
\documentclass[12pt]{article}
\begin{document}
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Neither text reformulation nor deleting any characters is not the option (btw, is neither A nor B considered singular or plural?). Anyway, any idea????
\end{document}
이 문서는 한 페이지만 있으면 됩니다. 마지막 행(공간)을 악화시켜 여전히 네 개의 물음표를 남길 수 있도록 하고 싶습니다. 'considered'에서 문자 'i'를 삭제하면 작동하므로 약간의 치트를 찾고 있습니다.
답변1
이 답변은 전체 문서에 영향을 미치는 전역 매개변수를 재설정하는 대신 문제를 로컬(어려운 지점)에서 해결하려는 접근 방식을 취합니다.
이 답변은 마침표와 쉼표 뒤에 더 작은 공간을 우선적으로 제공하라는 barbara의 제안을 받아들이도록 개정되었습니다. 코드에 원래 솔루션을 주석으로 남겨둡니다. 해당 줄의 주석 처리를 제거하고 다시 컴파일하면 barbara의 제안에 따른 차이점을 확인할 수 있습니다. (이전에는 최고에서 최악으로, 이제는 최악에서 최고로 결과 순서를 바꾸었으므로 barbara의 의견을 읽을 때 이를 고려하십시오.)
처음에는 다르게 보일 수도 있지만 이 답변은그룹의 첫 글자만 조판하세요. 나는 모든 공백을 두 개의 s(단, 쉼표와 마침표 뒤에는 각각 하나만 ) \squeeze{}
로 변환하여 내용을 압축하는 매크로를 만듭니다 . 이를 사용하려면 단락의 끝이 인수의 끝이고 인수의 시작이 마지막 줄 어딘가에 있는지 확인하십시오. 아래에서는 압착의 시작이 정확할 필요는 없지만 일반적으로 인수에 더 많은 단어를 포함하면 압착이 더 많은 공간에 걸쳐 더 부드럽게 확산된다는 것을 보여줍니다.\hfil
\hfil
\documentclass[12pt]{article}
\def\squeeze#1{\squeezeit#1 \relax\relax}
% REVISED SOLUTION
\def\squeezeit#1 #2\relax{#1\if\relax#2\else
\findlast#1\relax\relax%
\if.\LastChar\hfil\else
\if,\LastChar\hfil\else
\hfil\hfil%
\fi
\fi
\squeezeit#2\relax\fi%
}
\def\findlast#1#2\relax{\def\LastChar{#1}\if\relax#2\else\findlast#2\relax\fi}
\parskip 1ex
% ORIGINAL SOLUTION (No \findlast and this \squeezeit below
% Uncomment old definition below, to see comparison
%\def\squeezeit#1 #2\relax{#1\if\relax#2\else{}\hfill\squeezeit#2\relax\fi}
\begin{document}
{\bfseries Goal: get 3 line expression down to two lines.}\par
Neither text reformulation nor deleting any characters is not the option
(btw, is neither A nor B considered singular or plural?). Anyway, any idea????\par
{\bfseries Marginal:}\par
Neither text reformulation nor deleting any characters is not the option
(btw, is neither A nor B considered \squeeze{singular or plural?). Anyway, any idea????}\par
{\bfseries Good:}\par
Neither text reformulation nor deleting any characters is not the option
(btw, is neither \squeeze{A nor B considered singular or plural?). Anyway, any idea????}\par
{\bfseries Better:}\par
Neither text reformulation nor deleting any characters is not the option
\squeeze{(btw, is neither A nor B considered singular or plural?). Anyway, any idea????}
\end{document}
답변2
크기를 변경할 수 있습니다.단어 간 공간. MWE를 1페이지 문서로 만드는 방법에는 최소한 세 가지가 있습니다. 추가하면
\spaceskip=0.95\fontdimen2\font plus \fontdimen3\font minus \fontdimen4\font
단어 간 공간의 자연스러운 길이가 줄어들 것입니다. 이 새로운 자연 길이를 사용하여 불량이 가장 작은 단락으로 연결되는 줄 바꿈 세트는 원래 단어 사이 공간을 사용하는 줄 바꿈 세트와 다릅니다. 이렇게 하면 페이지에 더 많은 내용을 넣을 수 있습니다.
또 다른 옵션은 추가하는 것입니다
\spaceskip=\fontdimen2\font plus \fontdimen3\font minus 1.2\fontdimen4\font
이렇게 하면 단어 간 공간이 조금 더 줄어들 수 있습니다.
잠재적으로 가장 간단한 해결책은 다음을 사용하는 것입니다.microtype
패키지.
\usepackage{microtype}
패키지는 약간 더 나은 조판으로 이어지는 모든 종류의 트릭을 가능하게 하며 이 경우 2페이지 문서를 1페이지 문서로 바꿉니다.
답변3
\hspace{-0.7mm}
'어쨌든'이라는 단어 바로 앞에 퍼팅하면 괜찮았습니다. 어떻게 생각하나요?
(즉, 마지막 행 내에서 또는 특정 단락에서 더 나은 방식으로 문제를 로컬에서 해결하고 싶다고 더 잘 언급했어야 했습니다.)
답변4
마지막 단락 앞에 \enlargethispage{50pt}
또는 별표 버전을 사용할 수 있습니다 . 그런 다음 마지막 단락 다음에 \enlargethispage*{50pt}
사용하십시오 .\newpage