
일부 LaTeX 명령은 여러 개의 선택적 인수를 허용합니다. 여기 몇 가지 예가 있어요.
\makebox[<width>][<pos>]{<text>}
\framebox[<width>][<pos>]{<text>}
\parbox[<pos>][<height>][<contentpos>]{<width>}{<text>}
\raisebox{<lift>}[<height>][<depth>]{<text>}
\begin{minipage}[<pos>][<height>][<contentpos>]{<width>} <content> \end{minipage}
(실제로는 환경)
(그러나 내 질문은 완전히 일반적인 방식으로 의미됩니다.)
선택적 인수의 적절한 하위 집합만 제공되면 왼쪽부터 채워지는 것이 직관적으로 보입니다. (<- 이 추측은 틀린 것으로 판명되었습니다!)
하지만 그 행동이 어딘가에 문서화되어 있나요? 반례를 아는 사람이 있나요?모든 명령이 실행되는 데에는 선험적인 이유가 없습니다.가지다그렇게 행동하는 것.
답변1
누락된 선택적 인수를 해석하는 일반적인 규칙은 없습니다. 예를 들어 보면 다음과 같습니다. "왼쪽에서 채우기"가 없으며 이는 의미가 없습니다.
어떤 경우에는 명령이 인용한 명령과 다르게 동작합니다. 예를 들어 인용 명령은 다음과 같은 biblatex
형식을 갖습니다.
\command[prenote][postnote]{keys}
두 번째 선택적 인수가 누락되면 첫 번째 인수가 로 해석됩니다 postnote
. 이는 프로그래머가 선택한 것입니다.
일반적인 규칙이 명시될 수 없기 때문에 이는 "반례"가 아닙니다.
언급한 네 가지 명령과 환경은 LaTeX 매뉴얼에 설명되어 있지만 확장 구문, 즉 \parbox
and 의 두 번째 및 세 번째 선택적 인수는 minipage
LaTeX Companion에만 설명되어 있습니다.
\makebox[wdth][pos]{text}
LaTeX 매뉴얼의 217 페이지에 있습니다. 두 번째 선택적 인수는 첫 번째 인수가 지정된 경우에만 의미가 있습니다. 기본값은 , 또는c
일 수도 있습니다 . 이는 "중앙", "왼쪽", "오른쪽" 및 "확산"을 의미합니다. 처음 세 개는 명시된 너비와 관련하여 재료가 배치되는 방식을 의미하므로 거의 명확합니다. 마지막은 재료의 공간이 지정된 너비를 채우기 위해 늘어나는 것을 의미합니다.l
r
s
\framebox
다음과 정확히 동일한 구문을 갖습니다.\makebox
\raisebox{raise_len}[width][depth]{text}
LaTeX 매뉴얼의 219 페이지에 있습니다. 결과 상자의 깊이를 나타내는 두 번째 선택적 인수는 첫 번째 인수가 지정된 경우에만 사용할 수 있습니다.\parbox[pos][height][inner-pos]{width}{text}
LaTeX Companion(제2판)의 866페이지에서 찾을 수 있습니다. LaTeX 매뉴얼에서는 첫 번째 선택적 인수만 언급합니다.minipage
논쟁은 정확히 같은 의미를 갖기 때문입니다 .
\parbox
and 의 선택적 인수는 무엇을 minipage
합니까?
세 번째 선택적 인수는 다른 두 인수가 앞에 오는 경우에만 제공될 수 있습니다. 두 번째는 첫 번째가 앞에 오는 경우에만 해당됩니다.
첫 번째 선택적 인수는 c
(기본값) t
또는 가 될 수 있으며 b
, 이는 결과 상자가 주변 자료에 대해 수직으로 정렬되는 방식을 나타냅니다. 정렬 은 t
상자에 있는 첫 번째 항목의 기준선을 기준으로 하며 b
마지막 항목은 사용됩니다. c
상자가 수직 중앙에 위치하며 기준선 위의 절반, 기준선 아래의 절반(거의)을 의미합니다.
두 번째 선택적 인수는 상자의 수직 치수를 나타냅니다. 다음은 예입니다. \rod
왼쪽에 기준선 표시가 붙어 있는 측정 규칙을 그립니다. \fbox
상자 확장을 표시하는 데 사용됩니다.
\documentclass{article}
\newcommand{\rod}[2]{%
\leavevmode\smash\llap{\vrule height .2pt depth .2pt width 4pt \vrule height #1 depth #2}%
}
\setlength{\fboxsep}{0pt}
\begin{document}
\rod{2cm}{0pt}
\fbox{\parbox[b][2cm]{.3\textwidth}{
Some text\\
some other text\\
again
}}
\end{document}
c
세 번째 선택적 인수에 사용할 수 있습니다 .
\parbox[b][2cm][c]{.3\textwidth}{...}
그리고 우리는 얻을 것이다
상자의 확장은 동일하며 내부 텍스트만 사용 가능한 공간의 중앙으로 이동됩니다. 세 번째 인수가 표현되지 않으면 기본적으로 첫 번째 인수와 동일합니다.
마지막 선택적 인수는 가 될 수도 있지만 s
유연한 공간이 제공되어야 합니다. 예를 들어
\parbox[b][2cm][s]{.3\textwidth}{
Some text\\[\fill]
some other text\\[\fill]
again
}
생산할 것이다
위의 경우 중 어느 경우에도 수직 치수에 관한 한 상자에 있는 마지막 항목의 깊이가 고려되지 않습니다. 두 번째 예에서 상자는 다음과 같습니다.정확히마지막 항목은 깊이가 없는 충전 접착제이기 때문에 세로 방향으로 2cm입니다.
다음은 "상단" 외부 정렬에 대한 결합된 예입니다. 이전과 유사한 고려 사항이 적용됩니다.
\documentclass{article}
\newcommand{\rod}[2]{%
\leavevmode\smash\llap{\vrule height .2pt depth .2pt width 4pt \vrule height #1 depth #2}%
}
\setlength{\fboxsep}{0pt}
\begin{document}
\rod{\ht\strutbox}{\dimexpr2cm-\ht\strutbox}
\fbox{\parbox[t][2cm]{.3\textwidth}{
\strut Some text\\
some other text\\
again
}}
\rod{0pt}{2cm}
\fbox{\parbox[t][2cm][b]{.3\textwidth}{
\strut Some text\\
some other text\\
again
}}
\rod{\ht\strutbox}{\dimexpr2cm-\ht\strutbox}
\fbox{\parbox[t][2cm][s]{.3\textwidth}{
\strut Some text\\
some other text\\[\fill]
again
}}
\end{document}