由于对齐的原因(对于根据其包含的文本自行对齐的框),我目前使用此命令:
\newcommand{\uplowtext}[1]{
\transparent{0.}TJPtjp
\transparent{1.}#1
\transparent{0.}TJPtjp
}
通过在文本前后添加不可见的“TJPtjp”来使所有框的高度相同。但问题是,当有人从 pdf 复制/粘贴文本时:他可以看到“TJPtjp”。
如何在文本之前和之后放置一个高度为“TJPtjp”的不可见“框”,与文本对齐,而不是文本,以便它充当垂直间隔符。
答案1
LaTeX 有一个未记录但非常有用的功能:
\phantom{text}
\hphantom{text}
\vphantom{text}
会产生“幻影”;它们占据相同的空间text
,但\hphantom
只占宽度(没有高度和深度),\vphantom
只占高度和深度(没有宽度)。无论如何,不会出现任何字符,只出现它们所占的空间。
出于技术原因,您应该\leavevmode
在任何这些命令之前添加(除非您确定它们将在 LR 模式或数学模式下使用)。
所以你想要的似乎是
\newcommand{\fake}[1]{\leavevmode\hphantom{#1}}
而\fake{0.}
不是\transparent{0.)
。您的代码将变成
\newcommand{\fake}[1]{\leavevmode\hphantom{#1}}
\newcommand{\uplowtext}[1]{%
\fake{0.}TJPtjp
\fake{1.}#1
\fake{0.}TJPtjp
}