图片太高,无法放在第一列,但其余文本却占据了这一列的整个高度。我发现避免这个问题的唯一方法是vbox
在某个高度放置一个空白。这很难令人满意。最好的方法是什么?
\documentclass{scrartcl}
\usepackage{tikz}
\usepackage{multicol,lipsum}
\setlength{\columnsep}{24pt}
\setlength{\columnseprule}{0.4pt}
\begin{document}
\begin{multicols*}{2}
\section{Contruction with inversion}
Let us consider the circle $\mathcal{T}$ of center $T$ point common to the circles $\mathcal{A}$ and $\mathcal{B}$ and tangent to the line $(EF)$. It intercepts the two circles at 4 points which define two lines $\mathcal{L_A}$ and $\mathcal{L_B}$ perpendicular to the line $(AB)$.
Consider the inversion of center $T$ with respect to the circle $\mathcal{T}$. The circles $\mathcal{A}$ and $\mathcal{B}$ have as inverses the lines $\mathcal{L_A}$ and $\mathcal{L_B}$.
The orange circle passing through $T$ and tangent to the circle $\mathcal{T}$ and to the line $(EF)$ is therefore tangent to the line $(EF)$. This circle is therefore tangent to the lines $\mathcal{L_A}$ and $\mathcal{L_B}$ since $(EF)$ is tangent to the circles $\mathcal{A}$ and $\mathcal{B}$.
%\vbox to 10cm{}
\begin{tikzpicture}
\draw (0,0)--(7,15) (0,15)--(7,0);
\end{tikzpicture}
\lipsum[2]
\end{multicols*}
\end{document}
答案1
这会添加足够的文本来填充第一列,然后使用我的链接解决方案。
\documentclass{scrartcl}
\usepackage{tikz}
\usepackage{multicol,lipsum}
\setlength{\columnsep}{24pt}
\setlength{\columnseprule}{0.4pt}
\makeatletter
\newcommand{\split}[2]% #1 = text, #2 = insert
{\par\bgroup
\setbox0=\vbox{\strut #1\strut}% measure height
\sbox1{#2}% ditto
\dimen0=\dimexpr \pagegoal-\pagetotal-\col@number\baselineskip\relax% fudge factor
\dimen1=\pagegoal% compute height of one column
\ifnum\col@number>1\relax
\divide\dimen1 by \col@number
\fi
\advance\dimen1 by -\baselineskip% fudge factor
\loop\ifdim\dimen0>\dimen1% space left in this column
\advance\dimen0 by -\dimen1
\repeat
\dimen1=\dimexpr \ht1+\dp1+\textfloatsep\relax% space needed for insert
\ifdim\dimen1>\dimen0
\ifdim\ht0>\dimen0
\setbox2=\vsplit0 to \dimen0
\unvbox2
\noindent\box1
\vskip\textfloatsep
\unvbox0
\else% entire text will fit into column
\unvbox0
\vskip\textfloatsep% probably ignored
\noindent\box1
\vskip\textfloatsep
\fi
\else% insert will fit into column
\vskip\intextsep
\noindent\box1
\vskip\intextsep
\unvbox0
\fi
\egroup\par}
\makeatother
\begin{document}
\begin{multicols*}{2}
\section{Contruction with inversion}
Let us consider the circle $\mathcal{T}$ of center $T$ point common to the circles $\mathcal{A}$ and $\mathcal{B}$ and tangent to the line $(EF)$. It intercepts the two circles at 4 points which define two lines $\mathcal{L_A}$ and $\mathcal{L_B}$ perpendicular to the line $(AB)$.
Consider the inversion of center $T$ with respect to the circle $\mathcal{T}$. The circles $\mathcal{A}$ and $\mathcal{B}$ have as inverses the lines $\mathcal{L_A}$ and $\mathcal{L_B}$.
The orange circle passing through $T$ and tangent to the circle $\mathcal{T}$ and to the line $(EF)$ is therefore tangent to the line $(EF)$. This circle is therefore tangent to the lines $\mathcal{L_A}$ and $\mathcal{L_B}$ since $(EF)$ is tangent to the circles $\mathcal{A}$ and $\mathcal{B}$.\strut
\split{\lipsum[2-3]}{\noindent\begin{tikzpicture}
\draw (0,0)--(\columnwidth,15) (0,15)--(\columnwidth,0);
\end{tikzpicture}}
\end{multicols*}
\end{document}
如果你喜欢差距很大,你可以使用
\split{\vfill}{\noindent\begin{tikzpicture}
\draw (0,0)--(\columnwidth,15) (0,15)--(\columnwidth,0);
\end{tikzpicture}}