tabularx环境中的自动换行

tabularx环境中的自动换行

我正在尝试获取一个可以自动插入换行符的表格,以便一些非常长的文本可以放在单元格中,而不是像现在这样溢出到边距。我尝试使用 \makecell,但没有成功。

我也尝试过用 \ \ 手动断线(即使这不是理想的解决方案),但同样没有效果。

这是一个复杂的表格,因为它包含一些组合单元格。

这是我的尝试:

\usepackage{multirow}
\usepackage{tabularx}

\begin{document}

\begin{table}[htbp]
    \centering
\begin{tabularx}{\textwidth}{|l|l|X|}
\hline
     Allele & Guide RNA & Repair template \\
     \hline
     \hline
     allele1 & GuideRNA#1 & ATTATCCATGGAACGTTCACCGTATTGTTCATCTTCAGcTGaCAACTTATATCGATTCTCGCGAATCTTCCACTTGC\\
     \hline
     allele2 & \begin{tabular}{@{}l@{}}
                   GuideRNA2.1 \\
                   GuideRNA2.2\\
                 \end{tabular} & AATATTATACAAACgTCGAATATTGTACaTTGTCGATATTGTCGAACATATATTAATCCATATGTATATCTTCCTGAT\\
    \hline
     allele3 & \begin{tabular}{@{}l@{}}
                   GuideRNA3.1 \\
                   GuideRNA3.2 \\
                 \end{tabular} & GACACTCGAAGAGAAGCTTCCGCAATATGTATGCTTTCAGTCAACACTACTCTATACCTCGAGCAAGGGTGATCGTCGTATTCGAGTACATACAATGTGCCTT\\
    \hline
    allele4 & GuideRNA4 & AACGTTCACCGTATTGTTCATCTTCAGTTGGCAACTTATATCGATTCTCGaGAATCTTCCAtTgGCaTTCTACCACATTTACACATACGCCAAACGCCCAGTGATGTCTGGACCAGG\\
     \hline
\end{tabularx}
\end{table}
\end{center}

\end{document}

但它看起来是这样的:[1

理想情况下,它看起来像这样(在 Word 中制作):

在此处输入图片描述

答案1

最后一列中的字符串不是人类语言的“单词”,因此 TeX 的默认连字算法不会合理地将其换行。我建议您使用宏\seqsplit(由序列分割包)来强制自动插入合适的换行符。

我还想鼓励您通过摆脱所有垂直规则并采用更少但间距适当的水平规则,使用表格的宏,使表格看起来更加开放。书签包裹。

在此处输入图片描述

\documentclass{article}
\usepackage{tabularx,seqsplit}
\renewcommand\tabularxcolumn[1]{m{#1}}
\usepackage{booktabs}

\begin{document}
\begin{table}[htbp]
\begin{tabularx}{\textwidth}{@{} llX @{}}
\toprule
Allele & Guide RNA & Repair template \\
\midrule
allele1 & GuideRNA1 & 
\seqsplit{ATTATCCATGGAACGTTCACCGTATTGTTCATCTTCAGcTGaCAACTTATATCGATTCTCGCGAATCTTCCACTTGC}\\
\addlinespace
allele2 & \begin{tabular}{@{}l@{}}
             GuideRNA2.1 \\
             GuideRNA2.2\\
          \end{tabular} & 
\seqsplit{AATATTATACAAACgTCGAATATTGTACaTTGTCGATATTGTCGAACATATATTAATCCATATGTATATCTTCCTGAT}\\
\addlinespace
allele3 & \begin{tabular}{@{}l@{}}
            GuideRNA3.1 \\
            GuideRNA3.2 \\
          \end{tabular} & 
\seqsplit{GACACTCGAAGAGAAGCTTCCGCAATATGTATGCTTTCAGTCAACACTACTCTATACCTCGAGCAAGGGTGATCGTCGTATTCGAGTACATACAATGTGCCTT}\\
\addlinespace
allele4 & GuideRNA4 & 
\seqsplit{AACGTTCACCGTATTGTTCATCTTCAGTTGGCAACTTATATCGATTCTCGaGAATCTTCCAtTgGCaTTCTACCACATTTACACATACGCCAAACGCCCAGTGATGTCTGGACCAGG}\\
\bottomrule
\end{tabularx}
\end{table}
\end{document}

相关内容