我是 LaTeX 新手,有一个奇怪的任务。我需要在另外两个之间写一行。想想这样:
foo boo doo(1)
you soup pope(3)
doo boo foo(2)
但问题是,我不能在 (1) 和 (2) 之间添加新行。换句话说,(3) 必须位于两者之间。我该怎么做呢?
答案1
如果我正确理解了你的问题,那么你的答案是:raisebox
在 中使用llap
。工作示例:
\documentclass{minimal}
\begin{document}
\noindent foo boo doo(1)\llap{\raisebox{-2\baselineskip}[0pt][0pt]{doo boo foo(2)}}
\noindent you soup pope(3)
\noindent\phantom{doo boo foo(2)}
\noindent Lorem ipsum dolor sit amet, invitamus me missam ne velocitate renovasti dolorum.
\end{document}
答案2
您可以使用minibox
如下简单的环境:
\documentclass[border=2pt]{standalone}
\begin{document}
\begin{minipage}{0.3\linewidth}
foo boo doo(1)\\%[0.5cm]
doo boo foo(2)
\end{minipage}
\begin{minipage}{0.3\linewidth}
you soup pope(3)
\end{minipage}
\end{document}
得出的结果是:
如果删除%
注释字符,则会%[0.5cm]
得到:
如果内容恰好在表格中,您可以调整解决方案表格:我可以将列移动行高一半吗?产生类似的结果:
\documentclass[border=2pt]{standalone}
\usepackage{collcell}
\newcommand*{\movedown}[1]{\smash{\raisebox{-1ex}{#1}}}%
\newcolumntype{M}{>{\collectcell\movedown}r<{\endcollectcell}}% (M for Middle)
\begin{document}
\begin{tabular}{@{}lM}
foo boo doo(1) & you soup pope(3)\\
doo boo foo(2)\\
\end{tabular}
\end{document}
只是@{}
用于消除左边的列间距。
答案3
像这样吗?
\noindent
foo boo doo\\
doo boo foo\\
\raisebox{1.7\baselineskip}[0pt]{\hspace{8em}you soup pope}