我想让 LaTeX 拆分固定宽度表格内的公式。该公式是一个组理论词(类似于$a_1b_3a_5b_3^{-1}$
)。
它应该自动地将它拆分到元素之间的某个位置,以便它适合表格。我以为seqsplit
可能会成功,但在以下代码示例中:
\documentclass{article}
\usepackage{seqsplit}
\begin{document}
\begin{tabular}{p{4cm}}
\seqsplit{$a_1b_3a_5b_3^{-1}$}\\
\seqsplit{$a_1$ $b_3$ $a_5$ $b_3^{-1}$}\\
\seqsplit{abcd}
\end{tabular}
\end{document}
公式的两种变体都只会引发大量形式错误Missing { inserted \seqsplit{$a_1b_3a_5b_3^{-1}$}
,而abcd
-sample 则有效。
第二个例子实际上不会给出预期的结果,因为应该有元素之间没有空格。
有人有解决这个问题的方法吗?
答案1
答案2
您可以按单个序列输入长单词,并\hfil\allowbreak\hfilneg
在每个字母前添加。
\documentclass{article}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\longword}{m}
{
\magula_longword:n { #1 }
}
\tl_new:N \l_magula_longword_tl
\cs_new_protected:Nn \magula_longword:n
\tl_set:Nn \l_magula_longword_tl { #1 }
\regex_replace_all:nnN
{ ([a-z]) }
{ \c{hfil}\c{allowbreak}\c{hfilneg} \1 }
\l_magula_longword_tl
$\l_magula_longword_tl$
}
\ExplSyntaxOff
\begin{document}
\begin{tabular}{p{4cm}}
\longword{
a_1b_3a_5b_3^{-1}a_1b_3a_5b_3^{-1}abcd
a_1b_3a_5b_3^{-1}a_1b_3a_5b_3^{-1}
a_1b_3a_5b_3^{-1}a_1b_3a_5b_3^{-1}
a_1b_3a_5b_3^{-1}a_1b_3a_5b_3^{-1}
a_1b_3a_5b_3^{-1}a_1b_3a_5b_3^{-1}abcd
}
\end{tabular}
\end{document}