나는 세 개의 미니페이지를 사용하여 테이블을 만들고 두 개의 이미지를 서로 옆에 배치했습니다. 이미지가 올바른 위치에 있지만 테이블은 훨씬 더 낮게 배치되어 보기 흉한 결과를 생성합니다. 왜 그런 일이 일어나는 걸까요? 어떻게 해결할 수 있나요?
\begin{minipage}[t]{5cm}
\begin{tabular}{|c|c|c|}
\hline
$V_{c}(Low)$ & $mV$ & $0$\\
\hline
$V_{c}(High)$ & $V$ & $5.6$\\
\hline
$T_{d}$ & $ns$ & $30$\\
\hline
$T_{r}$ & $ns$ & $30$\\
\hline
$T_{sd}$ & $ns$ & $780$\\
\hline
$T_{f}$ & $ns$ & $240$\\
\hline
$F_{max}$ & $kHz$ & $570$\\
\hline
\end{tabular}
\end{minipage}
\begin{minipage}[t]{5cm}
\includegraphics[width=\textwidth]{A1.JPG}
\end{minipage}
\begin{minipage}[t]{5cm}
\includegraphics[width=\textwidth]{A2.JPG}
\end{minipage}
답변1
코드가 작동하지 않는 이유
이는 수직 정렬이 실제로 작동하는 방식과 관련이 있습니다. 먼저 다음 코드와 그 출력을 살펴보세요.
\documentclass{article}
\usepackage{graphicx}
\begin{document}
Some text then a table \begin{tabular}{c}
1 \\2 \\ 3 \\ 4
\end{tabular}
then some more text and an image \includegraphics[width=2cm]{example-image-10x16}.
\end{document}
여기서 중요한 점은 테이블과 이미지가 주변 텍스트의 기준선을 기준으로 배치되는 방식입니다. 즉, 테이블은 tabular
수직 중앙에 있고 이미지는 기준선에 배치되므로 선 위에 고정됩니다.
이제 s에 대한 t
/ b
위치 지정자가 참조하는 것은 내가 이해하는 것처럼 minipage
실제로 의 위쪽/아래쪽 가장자리가 아니라minipage
텍스트의 첫 번째/마지막 줄 기준선에서 minipage
. 위의 이미지에서 볼 수 있듯이 테이블이 있는 minipage
경우 기준선은 테이블 중앙에 있습니다. 하지만 minipage
이미지가 있는 경우 기준선은 이미지 하단에 있습니다. 결과적으로 이미지의 하단이 테이블 중앙에 정렬됩니다.
제안 1
daleif가 제안한 대로 아래 코드에서 minipage
for the 를 제거했습니다 .tabular
입력 minipage
할 권리의 정렬을 설정하면 더 좋아 보입니다. 즉c
\begin{minipage}[c]{5cm}
기본적으로 정렬이 tabular
있습니다 .c
위쪽 정렬을 위해 tabular
및 minipage
s의 위치를 로 설정하고 이미지가 있는 s t
의 내부 위치(세 번째 선택적 인수)를 로 설정할 수 있습니다 . 즉, 당신은minipage
b
\begin{tabular}[t]{...}
테이블용과
\begin{minipage}[t][][b]{5cm}
s를 위해 minipage
.
제안 2
추가하는 경우 에 대한 \usepackage[export]{adjustbox}
선택적 인수를 사용하여 기준선을 기준으로 이미지의 수직 정렬을 변경할 수 있습니다 . 그러면 s를 완전히 버릴 수 있습니다 .valign=<t/c/b>
\includegraphics
minipage
\documentclass{article}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{siunitx}
\usepackage{booktabs}
\usepackage[export]{adjustbox}
\begin{document}
\begin{tabular}{>{$}c<{$} s S }
\toprule
V_{c}(\text{Low}) & \milli\volt & 0\\
V_{c}(\text{High}) & \volt & 5.6\\
T_{d} & \nano\s & 30\\
T_{r} & \nano\s & 30\\
T_{sd} & \nano\s & 780\\
T_{f} & \nano\s & 240\\
F_{\text{max}} & \kilo\hertz & 570\\
\bottomrule
\end{tabular}\hspace{1em}
\includegraphics[width=5cm,valign=c]{example-image-a}
\includegraphics[width=5cm,valign=c]{example-image-b}
\end{document}
테이블에 대한 몇 가지 참고 사항.
실제로 질문의 일부는 아니지만 아래 코드에 테이블을 작성하는 방법에 대한 제안을 추가했습니다. 이미지에서 결과를 볼 수 있습니다.
컬럼 사양이 로 변경되었습니다 {>{$}c<{$} s S }
. 패키지 를 로드할 때 /를 사용 하여 셀의 시작/끝에 항목을 삽입 array
할 수 있습니다 . 위의 작업을 수행하면 각 셀이 수학 모드로 설정되는 효과가 있습니다. 그러면 타이핑 시간이 절약됩니다.>{}
<{}
두 번째 열의 경우 단위는 일반적으로 이탤릭체로 작성하면 안 됩니다. 모든 수학 모드를 간단히 제거하면 훨씬 더 좋을 것입니다. 여기서는 단위 매크로를 사용하여 단위를 조판할 수 있는 s
열을 사용했습니다 .siunitx
siunitx
마지막 열은 소수점 표시의 숫자를 정렬하는 S
의 열 입니다. siunitx
이 경우 개선이 될지는 모르겠지만 팁으로 추가하고 싶다고 생각했습니다.
첫 번째 열에서는 텍스트 모드에서 '낮음', '높음', '최대'라는 단어를 설정했음을 알 수 있습니다. 이것은 대부분 관례의 문제라고 생각합니다. 하지만 변수 이름과 달리 설명하는 단어는 이탤릭체로 표시하면 안 된다고 생각합니다. 또한 수직선을 모두 제거하고 booktabs
위와 아래에 더 두꺼운 수평선( )을 추가했습니다. 테이블을 덜 어수선하게 만들어줍니다.
\documentclass{article}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{siunitx}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{>{$}c<{$} s S }
\toprule
V_{c}(\text{Low}) & \milli\volt & 0\\
V_{c}(\text{High}) & \volt & 5.6\\
T_{d} & \nano\s & 30\\
T_{r} & \nano\s & 30\\
T_{sd} & \nano\s & 780\\
T_{f} & \nano\s & 240\\
F_{\text{max}} & \kilo\hertz & 570\\
\bottomrule
\end{tabular}\hspace{1em}
\begin{minipage}[c]{5cm}
\includegraphics[width=\textwidth]{example-image-a}
\end{minipage}
\begin{minipage}[c]{5cm}
\includegraphics[width=\textwidth]{example-image-b}
\end{minipage}
\vspace{2cm}
\begin{tabular}[t]{>{$}c<{$} s S }
\toprule
V_{c}(\text{Low}) & \milli\volt & 0\\
V_{c}(\text{High}) & \volt & 5.6\\
T_{d} & \nano\s & 30\\
T_{r} & \nano\s & 30\\
T_{sd} & \nano\s & 780\\
T_{f} & \nano\s & 240\\
F_{\text{max}} & \kilo\hertz & 570\\
\bottomrule
\end{tabular}\hspace{1em}
\begin{minipage}[t][][b]{5cm}
\includegraphics[width=\textwidth]{example-image-a}
\end{minipage}
\begin{minipage}[t][][b]{5cm}
\includegraphics[width=\textwidth]{example-image-b}
\end{minipage}
\end{document}
답변2
minipages
패키지 사용 \abovebaseline
과 패키지 \belowbaseline
사용을 모두 피할 수 있습니다 stackengine
. MWE 끝에 있는 구문을 참고하세요. 이 경우에는 각 항목을 자체 스택박스에만 저장하여 중앙 출력이 필요한 경우 상자 높이를 사용하여 추가 계산이 필요했습니다. 그렇지 않으면 표시된 구문을 사용하여 열이 직접 출력되었을 수 있습니다.
\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{stackengine}
\parskip 1em
\begin{document}
\savestack{\colA}{
\begin{tabular}[b]{|c|c|c|}
\hline
$V_{c}(Low)$ & $mV$ & $0$\\
\hline
$V_{c}(High)$ & $V$ & $5.6$\\
\hline
$T_{d}$ & $ns$ & $30$\\
\hline
$T_{r}$ & $ns$ & $30$\\
\hline
$T_{sd}$ & $ns$ & $780$\\
\hline
$T_{f}$ & $ns$ & $240$\\
\hline
$F_{max}$ & $kHz$ & $570$\\
\hline
\end{tabular}}
\savestack{\colB}{\includegraphics[width=5cm,height=4cm]{A1.JPG}}
\savestack{\colC}{\includegraphics[width=5cm,height=2.5cm]{A2.JPG}}
\colA\ \abovebaseline[.5\ht\colAcontent-.5\ht\colBcontent]{\colB}\
\abovebaseline[.5\ht\colAcontent-.5\ht\colCcontent]{\colC}
\colA\ \colB\ \colC
\belowbaseline{\colA}\ \belowbaseline{\colB}\ \belowbaseline{\colC}
\end{document}
답변3
tabular
는 이미 일종의 미니페이지입니다(를 사용하는 것이 좋습니다 \begin{tabular[t]{...}
). 기본적으로 중앙에 기준선이 있으며, 주변은 단일 선(일종)처럼 동작하므로 minipage
이를 변경하지 않습니다 . tabular
이미지는 베이스에 정렬되어 있으며 그보다 더 큽니다.
패키지 를 가지고 놀고 싶을 수도 있습니다 adjustbox
. 패키지에는 물건을 정렬하는 데 유용한 기능이 많이 있습니다.
그리고 작은 부탁 하나: 복사하여 붙여넣고 편집하지 않고도 사용할 수 있는 것을 게시해 주세요. 귀하에게는 서문이 없으며, 물론 우리는 귀하의 이미지를 갖고 있지 않습니다. 이미지의 경우 \rule{length}{length}
.