不可见且不可选择的文本

不可见且不可选择的文本

由于对齐的原因(对于根据其包含的文本自行对齐的框),我目前使用此命令:

\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
}

相关内容