我想插入一段文本(可以包含任何内容),它不占用垂直空间,但也与正常文本基线对齐。(我觉得这可能是重复的,但我做不到。)
\vbox to 0pt
是我能得到的最接近的,但它与框的顶部对齐,而不是文本基线。我发现这会产生额外的空间(第一行中最高字符的高度),这很烦人,也很丑陋。
目标是在问题下方插入答案,而不会干扰没有显示答案时获得的布局。任何实现此目的的方法都是可以接受的。
平均能量损失
我目前拥有的:
\documentclass[twocolumn]{article}
\usepackage{ifluatex}
\ifluatex
\usepackage{lua-visual-debug}
\fi
\usepackage{enumitem}
\setlist[enumerate]{itemsep=2cm}
\newdimen\savedparindent
\newdimen\savedparskip
\newcommand{\blap}[1]{%
\savedparindent\parindent
\savedparskip\parskip
\noindent
\leavevmode\vbox to 0pt{%
\hsize\linewidth\noindent\parbox{\linewidth}{%
\parindent\savedparindent
\parskip\savedparskip
#1}%
\vss}%
\vspace*{-\parskip}\vspace*{-\baselineskip}}
\pagestyle{empty}
\begin{document}
\begin{enumerate}
\item First item.
\blap{This should not take up any vertical space, but should align at
normal text baseline.}
\item Second item.
\end{enumerate}
\blap{This should not take up any vertical space, but should align at normal
text baseline.}
\vspace{2cm}
More text.
\newpage
\begin{enumerate}
\item First item.
\item Second item.
\end{enumerate}
\vspace{2cm}
More text.
\end{document}
答案1
我建议与一代码格式:选择TeX
代码或LaTeX
代码。以下是使用以下代码的解决方案LaTeX
:
\documentclass[twocolumn]{article}
\usepackage{ifluatex}
\ifluatex
\usepackage{lua-visual-debug}
\fi
\usepackage{enumitem}
\setlist[enumerate]{itemsep=2cm}
\newdimen\savedparindent
\newdimen\savedparskip
\newcommand{\blap}[1]{%
\savedparindent\parindent
\savedparskip\parskip
\noindent
\parbox[t][0pt]{\linewidth}{%
\parindent\savedparindent
\parskip\savedparskip
#1}%
\vspace*{-\parskip}\vspace*{-\baselineskip}}
\pagestyle{empty}
\begin{document}
\begin{enumerate}[topsep=0pt,partopsep=\parsep]
\item First item.
\blap{This should not take up any vertical space, but should align at
normal text baseline.}
\item Second item.
\end{enumerate}
\blap{This should not take up any vertical space, but should align at normal
text baseline.}
\vspace{2cm}
More text.
\newpage
\begin{enumerate}
\item First item.
\item Second item.
\end{enumerate}
\vspace{2cm}
More text.
\end{document}