如果字符串大小大于某个值,则剪切电子邮件

如果字符串大小大于某个值,则剪切电子邮件

我有一个用 Python 脚本生成的很长的文档。文档的很大一部分使用了longtable电子邮件地址:

\begin{longtable}{p{0.3\linewidth}p{0.3\linewidth}p{0.3\linewidth}}
 value & [email protected] & text \\
\end{longtable}

有时电子邮件地址真的很长,在这种情况下,我想在 @ 后“剪切”电子邮件:

\begin{longtable}{p{0.3\linewidth}p{0.3\linewidth}p{0.3\linewidth}}
 value & johnveryveryverylongname@\newline doe.com & text \\
\end{longtable}

我如何测试字符串长度并将\newline其放在后面@

答案1

有可能collcell

\documentclass{article}
\usepackage{longtable}
\usepackage{collcell}

\newcommand{\cutlongemail}[1]{%
  \sbox0{#1}%
  \ifdim\wd0 > \linewidth
    \docutlongemail#1\relax
  \else
    #1%
  \fi
}
\def\docutlongemail#1@#2\relax{#1@\newline#2}

\begin{document}

\begin{longtable}{
  p{0.3\linewidth}
  >{\collectcell\cutlongemail}p{0.3\linewidth}<{\endcollectcell}
  p{0.3\linewidth}
}
value & [email protected] & text \\
value & [email protected] & text \\
\end{longtable}

\end{document}

在此处输入图片描述

相关内容