我想将 tikzpictures 添加到多列文本部分中。我尝试这样做:
\documentclass[]{article}
\usepackage{tikz}
\usepackage{vwcol}
\usepackage{lipsum}
\begin{document}
\begin{vwcol}[widths={0.3,0.7}, sep=.8cm, justify=flush,rule=0pt,indent=1em]
\begin{tikzpicture}
\draw (0, 0) circle(1);
\end{tikzpicture}
\lipsum[1]
\end{vwcol}
\end{document}
但柱子完全偏离了
如何才能让多个列与 TikZ 配合良好?也许还有其他多列包可以做得更好?
与评论所建议的相反,这与 lipsum 无关。任何一段文字都会出现这个问题
\documentclass[]{article}
\usepackage{tikz}
\usepackage{vwcol}
\begin{document}
\begin{vwcol}[widths={0.3,0.7}, sep=.8cm, justify=flush,rule=0pt,indent=1em]
\begin{tikzpicture}
\draw (0, 0) circle(1);
\end{tikzpicture}
Itaque aut ut non quia eos fugiat sunt ex. Voluptatem nisi aut sunt tempore nihil dolor. Rem neque molestias dolorem. Molestiae nihil explicabo aut architecto pariatur sapiente incidunt. Consequatur temporibus aliquam dolore est qui corrupti. Voluptates atque adipisci commodi incidunt rem itaque et totam.
Enim sunt et incidunt officiis. Ea est porro eos omnis ratione consequatur. Eveniet voluptatibus eligendi saepe ipsum aut rerum est. Molestias veniam nemo qui laborum rerum repellat explicabo consequatur.
\end{vwcol}
\end{document}
这里右列顶部的宽度为 0.3,底部的宽度为 0.7。
答案1
显然,它的vwcol
工作原理wrapfig
是假设每行都是\baselineskip
分开的,而当它们不分开时,它会感到困惑。通常的解决方案wrapfig
是手动使用可选参数来设置行数。我更喜欢使用\wrapspacer
,它与文本的空白行重叠。
此版本的\wrapspacer
针对 进行了修改vwcol
。具体来说,它假定它正在开始一个新段落。常规测试在 中不起作用vwcol
。
\documentclass[]{article}
\usepackage{tikz}
\usepackage{vwcol}
\usepackage{lipsum}
\newcommand{\wrapspacer}[1]% #1 = special text
{\bgroup
\sbox0{\begin{minipage}{\linewidth}\hrule height0pt
#1\hrule height0pt
\end{minipage}}%
\dimen0=\dimexpr \ht0+\dp0\relax
\loop\ifdim\dimen0>\baselineskip
\strut\vspace{-\baselineskip}\newline
\advance\dimen0 by -\baselineskip
\repeat
\noindent\strut\usebox0\par
\egroup}
\begin{document}
\begin{vwcol}[widths={0.3,0.7}, sep=.8cm, justify=flush,rule=0pt,indent=1em]
\wrapspacer{\begin{tikzpicture}
\draw (0, 0) circle(1);
\end{tikzpicture}}
\sloppy\LipsumPar{1}
\end{vwcol}
\end{document}