Minipage 中的对齐

Minipage 中的对齐

平均能量损失

\documentclass[12pt]{article}
\usepackage[a4paper,top=1 in,bottom=1 in,left=0.7 in,right=0.7 in]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[misc]{ifsym}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{mathtools}
\usepackage{amssymb}
\allowdisplaybreaks
\usepackage{kantlipsum}
\usepackage{forest}
\usepackage{tikz,tkz-euclide,xcolor,graphicx}
\usetkzobj{all}
\usetikzlibrary{intersections}
\begin{document}
\begin{minipage}[b]{.6\textwidth}
    \begin{flalign*}
    x^2-3x-10&=0&\\
    \therefore\;\;x^2-5x+2x-10&=0&\\
    \therefore\;\;x\left(x-5\right)+2\left(x-5\right)&=0&\\
    \therefore\;\;\left(x-5\right)\left(x+2\right)&=0&\\
    \therefore\;\;\left(x-5\right)&=0\quad \text{OR}\quad \left(x+2\right)=0&\\
    \therefore\;\;x&=5\quad \text{OR}\quad x=-2&
    \end{flalign*}
\end{minipage}\hfill
\begin{minipage}[t]{0.4\textwidth}
    \begin{tikzpicture}[level distance=1.2cm,
    level 1/.style={sibling distance=1.5cm},
    level 2/.style={sibling distance=1cm}]
    \tikzstyle{every node}=[circle,draw]

    \node (Root) [black] {-10}
    child {node {-5}}
    child {node {2}};

    \end{tikzpicture}
\end{minipage}


\end{document}

问题:如何将我的 tikz 图片垂直对齐到第一个方程的同一行?

答案1

您可以将图片作为对齐的一部分。在下面的代码中,我只留下了绝对必要的包。

\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{adjustbox}
\usepackage{tikz}

\newcommand{\thf}{\therefore\quad}

\begin{document}
\begin{alignat*}{2}
     & x^2-3x-10=0
&\qquad&
  \begin{adjustbox}{valign=t,set depth=0pt}
    \begin{tikzpicture}[level distance=1.2cm,
    level 1/.style={sibling distance=1.5cm},
    level 2/.style={sibling distance=1cm}]
    \tikzstyle{every node}=[circle,draw]
    \node (Root) [black] {$-10$}
    child {node {$-5$}}
    child {node {$2$}};
    \end{tikzpicture}
  \end{adjustbox}
\\
\thf & x^2-5x+2x-10=0\\
\thf & x(x-5)+2(x-5)=0\\
\thf & (x-5)(x+2)=0\\
\thf & (x-5)=0\quad \text{or}\quad (x+2)=0\\
\thf & x=5 \quad \text{or}\quad x=-2
\end{alignat*}

\end{document}

需要注意的一些事项。

  1. 我删除了\allowdisplaybreaks一般情况下应避免的内容,除非我们处于写作阶段(此显示的中断将带来灾难性的后果)

  2. 我删除了所有内容\left\right但这并没有什么好处,甚至有些坏处

  3. 我选择根据“因此”符号进行对齐,而不是=看起来很不自然的对齐,特别是最后两行

  4. 我把\therefore命令隐藏在宏中,这样你就可以自由地更改渲染\thf,比如说,\Leftrightarrow如果你想强调每一行与前一行完全等同

诀窍是使图片的高度与一行文本一样高valign=t,但没有深度,所以 TeX 不会为它留出空间。

您可能想要增加圆的最小半径。

在此处输入图片描述

答案2

除了[b]从第一个中删除位置说明符minipage环境中删除位置说明符之外,你还应该

  • 使用aligned环境而不是flalign*环境来避免在方程组前插入垂直空格,

  • 插入\noindent在第一个之前立即minipage

  • 删除\hfill第一个小页面后的指令,并插入%在之后立即插入(注释字符)\end{minipage}

  • 对带圈的数字使用数学模式,即写入$-10$$-5$+2$

  • 删除所有\left\right尺寸说明:它们不会改变任何尺寸,但最终会插入不适当的水平空白。

在此处输入图片描述

\documentclass[12pt]{article}
\usepackage[a4paper,top=1 in,bottom=1 in,left=0.7 in,right=0.7 in]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[misc]{ifsym}
%%\usepackage{amsmath} % is loaded by 'mathtools' package
\usepackage{amsfonts}
\usepackage{mathtools}
\usepackage{amssymb}
\allowdisplaybreaks
\usepackage{kantlipsum}
\usepackage{forest}
\usepackage{tikz,tkz-euclide,xcolor,graphicx}
\usetkzobj{all}
\usetikzlibrary{intersections}
\begin{document}

\noindent  % <---  don't forget this instruction
\begin{minipage}{.6\textwidth}
    $\begin{aligned}  % <--- 'aligned' rather than 'flalign*'
    x^2-3x-10&=0\\    % omit the '&' chars at end of lines
    \therefore\;\; x^2-5x+2x-10 &=0\\
    \therefore\;\; x(x-5)+2(x-5)&=0\\
    \therefore\;\; (x-5)(x+2)   &=0\\
    \therefore\;\; (x-5)&=0\quad \text{or}\quad (x+2)=0\\
    \therefore\;\;     x&=5\quad \text{or}\quad x=-2
    \end{aligned}$
\end{minipage}%  % <--- no \hfill
\begin{minipage}[t]{0.4\textwidth}
    \begin{tikzpicture}[level distance=1.2cm,
    level 1/.style={sibling distance=1.5cm},
    level 2/.style={sibling distance=1cm}]
    \tikzstyle{every node}=[circle,draw]

    \node (Root) [black] {$-10$} % <--- math mode for circled numbers
    child {node {$-5$}}  
    child {node {$+2$}};
    \end{tikzpicture}
\end{minipage}
\end{document} 

相关内容