
글꼴 크기에 상대적인 거리를 설정하려고합니다. 문제는 잠재적으로 글꼴 크기가 다른 환경에서 문서에서 거리가 여러 번 재사용된다는 것입니다. 각각의 경우 글꼴 크기에 대한 비율을 유지하기 위해 거리의 크기가 자동으로 조정되어야 합니다. 불행하게도 거리가 현재 글꼴 의 크기 나 크기로 저장되기 때문에 단순히 거리를 지정하는 em
것은 작동하지 않습니다. 글꼴이 변경되면 그에 따라 거리가 업데이트되지 않습니다.ex
em
ex
이 문제를 해결할 방법이 있나요? 이상적으로 솔루션은 LaTeX와 PlainTeX 모두에서 작동해야 합니다.
아래는 현재 바람직하지 않은 동작을 보여주는 M(n)WE입니다.
\documentclass[12pt]{article}
\newskip\test
\test = 1em
\begin{document}
In each row, the lines should be the same length.
\rule{0.4pt}{1em} \rule{0.4pt}{\test}
{\tiny\rule{0.4pt}{1em} \rule{0.4pt}{\test}}
{\Huge\rule{0.4pt}{1em} \rule{0.4pt}{\test}}
\end{document}
답변1
길이 레지스터가 아닌 매크로로 거리를 정의합니다.
\documentclass[12pt]{article}
\newcommand{\test}{1em}
\begin{document}
In each row, the lines should be the same length.
\rule{0.4pt}{1em} \rule{0.4pt}{\test}
{\tiny\rule{0.4pt}{1em} \rule{0.4pt}{\test}}
{\Huge\rule{0.4pt}{1em} \rule{0.4pt}{\test}}
\end{document}
답변2
호출할 때마다 규칙 길이를 재설정하는 규칙에 대한 새 명령을 정의할 수 있습니다. Plain 호환 솔루션이 요청되었기 때문에 를 사용했지만 \newskip
그 아래에 주석 처리된 LaTeX 버전을 포함합니다.
\documentclass[12pt]{article}
\newskip\ruleheight
\def\myrule{%
\ruleheight = 1em
\rule{0.4pt}{\ruleheight}%
}
% LaTeX version
%\newlength{\ruleheight}
%\newcommand{\myrule}{%
% \setlength{\ruleheight}{1em}
% \rule{0.4pt}{\ruleheight}%
%
\begin{document}
In each row, the lines should be the same length.
\rule{0.4pt}{1em} \myrule
\tiny \rule{0.4pt}{1em} \myrule
\Huge \rule{0.4pt}{1em} \myrule
\end{document}
아래쪽 세 줄에는 새 명령의 출력이 다양한 크기로 표시됩니다.