自动调整 `\tikzpicture` 的高度以匹配 `minipage` 环境的高度

自动调整 `\tikzpicture` 的高度以匹配 `minipage` 环境的高度

有没有办法缩放tikzpicture以使两个minipage 环境具有相同的高度?

在此处输入图片描述

代码:

\documentclass[8pt]{article}
 \usepackage{tikz}
 \begin{document}

\fbox{\begin{minipage}[c]{.50\textwidth}
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla 
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla 
  \end{minipage}}\hfill%
 \fbox{\begin{minipage}[c]{.38\textwidth}
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla 

\centering  \begin{tikzpicture}{height=3cm}
 \draw (0,0) -- (2,4) node[right] {$P$};
 \end{tikzpicture}
 \end{minipage}}

 \end{document}

答案1

.4\baselineskip是一个补偿系数,用于补偿段落和 tikzpicture 之间的间距。

尺度调整

\documentclass[8pt]{article}
 \usepackage{tikz}

\newsavebox{\tempbox}
\newlength{\tempdima}
\newlength{\tempdimb}

 \begin{document}

\savebox{\tempbox}{\begin{tikzpicture}
 \draw (0,0) -- (2,4) node[right] {$P$};
 \end{tikzpicture}}% get size of tikzpicture
\tempdimb=\ht\tempbox
\savebox{\tempbox}{\begin{minipage}[c]{.38\textwidth}
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla \par
\end{minipage}}% get size of second paragraph
\tempdima=\dimexpr \ht\tempbox + \dp\tempbox + .4\baselineskip
\savebox{\tempbox}{\begin{minipage}[c]{.50\textwidth}
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla 
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla 
\end{minipage}}% compute scale factor
\tempdima=\dimexpr \ht\tempbox + \dp\tempbox - \tempdima
\pgfmathparse{\tempdima/\tempdimb}%
\let\scale=\pgfmathresult

\fbox{\usebox{\tempbox}}\hfill%
\fbox{\begin{minipage}[c]{.38\textwidth}
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla 

\centering  \begin{tikzpicture}[yscale=\scale]
 \draw (0,0) -- (2,4) node[right] {$P$};
 \end{tikzpicture}
 \end{minipage}}

 \end{document}

相关内容