텍스트 시작 위치는 글꼴 크기에 따라 다중 콜 환경에서 크게 달라집니다. 큰 글꼴 크기를 선택하면 텍스트가 맨 위에 닿습니다. 하지만 작은 글꼴 크기를 선택하면 텍스트가 매우 낮게 표시됩니다. 이것은 매우 일방적으로 보입니다. 어떻게 해결하나요?
\documentclass[12pt]{article}
\usepackage{multicol}
\setlength{\columnseprule}{0.4pt}
\newcommand{\m}{\begin{multicols}{2}
\noindent
this is a test\\
this is a test\\
this is a test\\
this is a test
\end{multicols}}
\begin{document}
\Huge\m
\normalsize\m
\tiny\m
\end{document}
답변1
작성된 사용 사례는 multicol
단일 열 대신 여러 열이 생성되는 것을 제외하고 일반적으로 발생하는 페이지 생성을 모방하는 것입니다. 즉, 각 열의 상단은 환경 \topskip
의 첫 번째 줄을 배치하는 데 사용됩니다 multicols
.
\topskip
일반적으로 문서 전체에서 변경되지 않는 레지스터입니다(글꼴 크기가 문서 내의 일부 위치에서 변경되더라도). 이는 페이지의 첫 번째 줄이 "보통" 동일한 위치에 있도록 수행됩니다. 의 값은 \topskip
일반적으로 클래스에 의해 정의됩니다. 즉, 12pt
클래스에 대한 옵션으로 지정하면 기본 글꼴 크기는 12포인트가 되고 는 와 같이 \topskip
12포인트가 됩니다 .\baselineskip
14.4pt
귀하의 사용 사례에서는 이것이 조금 이상하게 보일 수 있지만 제가 말했듯이 패키지는 환경 전체가 다른 글꼴 크기로 되어 있는 이 사용 사례에 맞게 작성되지 않았습니다. 첫 번째 열의 첫 번째 줄은 두 번째 열의 일반 글꼴을 사용하면 multicol
올바르게 표시되지만 \topskip
글꼴 크기를 변경하면 다소 고르지 않게 보입니다.
또한 페이지 나누기는 비동기 작업이므로 \topskip
TeX가 더 일찍 또는 나중에 나누기로 결정함에 따라 텍스트 내의 글꼴 크기 명령에 의한 변경이 잘못된 위치에서 발생할 수 있습니다.
따라서 사용 사례에 맞는 한 가지 방법은 활성 \topskip
시간에 따라 변경하는 것입니다 multicols
. 환경이 변경되면 이전 topskip 값이 복원되도록 환경 내부에서 이를 수행할 수 있습니다. 예:
\documentclass[12pt]{article}
\usepackage{multicol}
\setlength{\columnseprule}{0.4pt}
\newcommand{\m}[1]{\begin{multicols}{2}
#1\setlength\topskip{.7\baselineskip}% set font and \topskip
\noindent
this is a test\\
this is a test\\
this is a test\\
this is a test
\end{multicols}}
\begin{document}
\m{\Huge}
\m{\normalsize}
\m{\tiny}
\end{document}
이제 글꼴과 topskip 값은 env 본문 중에만 변경되며 다음과 같은 출력을 얻게 됩니다.
물론 70%로 만드는 대신 \baselineskip
명시적인 값이나 다른 분수를 제공할 수도 있습니다. 60% 미만이면 캐릭터가 이미 그 정도를 차지하기 때문에 아무 것도 하지 않습니다.
답변2
\topskip이 어디서 왔는지는 모르겠지만 글꼴 크기에 관계없이 기본값은 12pt입니다. .6\baselineskip보다 작은 값은 아무런 효과가 없는 것 같습니다. 값이 클수록 위쪽이 더 높아집니다.
\documentclass[12pt]{article}
\usepackage{multicol}
\setlength{\columnseprule}{.4pt}%
\newcommand{\m}{\topskip=.6\baselineskip
\begin{multicols}{2}
\noindent
this is a test\\
this is a test\\
this is a test\\
this is a test
\end{multicols}}
\begin{document}
\noindent
\Huge\m
\normalsize\m
\tiny\m
\end{document}