我有一个用 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}