열거 환경에서 \ valign 명령을 사용하는 방법은 무엇입니까?
Nov 17 2020
이 질문 에서 다른 페이지의 높이를 설정하기 위해 미니 페이지의 높이를 얻는 방법은 무엇입니까? @egreg의 답변이 유용하다는 것을 알았습니다. 방법이 있습니까
- 맨 위에 정렬 할 첫 번째 열?
- 첫 번째 열과 관련하여 중앙에 놓일 tikzpicture?
\documentclass[a4paper,11pt]{article}
\usepackage{enumitem}
\usepackage{tikz}
\begin{document}
\begin{enumerate}
\item
\valign{#\cr
\hsize=0.49\linewidth
Text\newline
Text\newline
Text\newline
Text\newline
\cr
\noalign{\hfill}
\hsize=0.49\linewidth
\centering
\begin{tikzpicture}
\draw[->] (-0.75,0) -- (pi,0) node[below] {$x$};
\draw[->] (0,-0.5) -- (0,2) node[left] {$y$};
\fill (0,0) circle[radius=0.025] node[below left] {$O$};
\end{tikzpicture}
\cr
}
\item
\valign{#\cr
\hsize=0.49\linewidth
Text\newline
Text\newline
Text\newline
Text\newline
Text\newline
Text\newline
Text\newline
Text\newline
Text\newline
Text\newline
Text\newline
Text\newline
\cr
\noalign{\hfill}
\hsize=0.49\linewidth
\centering
\begin{tikzpicture}
\draw[->] (-0.75,0) -- (pi,0) node[below] {$x$};
\draw[->] (0,-0.5) -- (0,2) node[left] {$y$};
\fill (0,0) circle[radius=0.025] node[below left] {$O$};
\end{tikzpicture}
\cr
}
\end{enumerate}
\end{document}

답변
egreg Nov 18 2020 at 00:21
다음을 사용할 수 있습니다 adjustbox
.
\documentclass[a4paper,11pt]{article}
\usepackage{enumitem}
\usepackage{adjustbox}
\usepackage{tikz}
\usepackage{lipsum} % for mock text
\begin{document}
\begin{enumerate}
\item
\adjustbox{valign=t}{\valign{#\cr
\hsize=0.49\linewidth
\lipsum[4][1-2]
\cr
\noalign{\hfill}
\hsize=0.49\linewidth
\centering
\begin{tikzpicture}
\draw[->] (-0.75,0) -- (pi,0) node[below] {$x$};
\draw[->] (0,-0.5) -- (0,2) node[left] {$y$};
\fill (0,0) circle[radius=0.025] node[below left] {$O$};
\end{tikzpicture}
\cr
}}
\item
\adjustbox{valign=t}{\valign{#\cr
\hsize=0.49\linewidth
\lipsum[4][1-2] \lipsum[4][1-2]
\lipsum[4][1-2] \lipsum[4][1-2]
\lipsum[4][1-2] \lipsum[4][1-2]
\cr
\noalign{\hfill}
\hsize=0.49\linewidth
\centering
\begin{tikzpicture}
\draw[->] (-0.75,0) -- (pi,0) node[below] {$x$};
\draw[->] (0,-0.5) -- (0,2) node[left] {$y$};
\fill (0,0) circle[radius=0.025] node[below left] {$O$};
\end{tikzpicture}
\cr
}}
\end{enumerate}
\end{document}

1 Skillmon Nov 17 2020 at 23:22
다음은 왼쪽 열의 첫 번째 줄에 숫자를 정렬하는 반면 두 열은 서로 수직으로 가운데에 있습니다. 먼저 \vtop
상자 내부 를 통해 첫 번째 행의 기준선에 정렬하여 왼쪽 열을 조판합니다 . 그런 다음을 \valign
통해 이동됩니다 \raisebox
. -\height
내용을 기준선 아래로 완전히 \dp\valignalign@box
이동하고 기준선이 \vtop
단독 으로와 동일한 지점에 있도록 위로 이동합니다 .
두 열을 서로 수직으로 중앙에 배치하기 \vfil#\vfil\cr
위해 \valign
서문에 사용 합니다 . 기본적으로 동일한 코드가 두 번 사용되므로 매크로에 넣습니다.
\documentclass[a4paper,11pt]{article}
\usepackage{enumitem}
\usepackage{tikz}
\makeatletter
\newsavebox\valignalign@box
\newcommand\valignalign[4]
{%
\setbox\valignalign@box\vtop{\hsize=#1\linewidth#2\par}%
\raisebox{\dimexpr-\height+\dp\valignalign@box\relax}{%
\valign{\vfil##\vfil\cr
\hsize=#1\linewidth
\unvbox\valignalign@box
\cr
\noalign{\hfil}%
\hsize=#3\linewidth
#4%
\cr
}}%
}
\makeatother
\begin{document}
\begin{enumerate}
\item
\valignalign
{.49}
{%
Text\newline
Text\newline
Text\newline
Text\newline
}
{.49}
{%
\centering
\begin{tikzpicture}
\draw[->] (-0.75,0) -- (pi,0) node[below] {$x$};
\draw[->] (0,-0.5) -- (0,2) node[left] {$y$};
\fill (0,0) circle[radius=0.025] node[below left] {$O$};
\end{tikzpicture}%
}%
\item
\valignalign
{.49}
{%
Text\newline
Text\newline
Text\newline
Text\newline
Text\newline
Text\newline
Text\newline
Text\newline
Text\newline
Text\newline
}
{.49}
{%
\centering
\begin{tikzpicture}
\draw[->] (-0.75,0) -- (pi,0) node[below] {$x$};
\draw[->] (0,-0.5) -- (0,2) node[left] {$y$};
\fill (0,0) circle[radius=0.025] node[below left] {$O$};
\end{tikzpicture}%
}%
\end{enumerate}
\end{document}
