我正在写一份关于基因测序的实验报告,我必须放入一大串核苷酸序列。我其实并不打算把它放在一个特殊的框里,只是把它当作另一个只有序列的段落来添加。但当我编译它时,它变成了一场彻底的灾难,LaTeX 无法将序列拆分到下一行,导致单行文本过长,超出了限制。我还使用 texttt 以等宽字体打印它。
\texttt{
TAATAATCATATAGATTCCGTTCACCAAGGAA\textbf{ATG}TCTGGATCTCGCAAATTTTTTGTTGGGGGGAACTGGAAAATGAACGGAAGCAGAGATGACAACGATAAGTTACTTAAGTTACTCTCAGAAGCTCATTTTGATGATAACACGGAAGTTTTAATTGCTCCACCTTCAGTCTTTTTGCACGAAATTCGAAAAAGTTTGAAGAAAGAAATACACGTGGCCGCTCAAAATTGCTATAAAGTATCAAAGGGTGCATTCACCGGAGAAATCAGCCCAGCAATGATAAGAGATATTGGTTGTGATTGGGTCATACTTGGACATTCTGAGCGTAGAAACATTTTTGGTGAATCTGATGAACTTATTGCTGAAAAAGTTCAACATGCACTTGCTGAAGGTCTAAGCGTTATTGCATGTATTGGTGAAACATTATCAGAGCGTGAATCTAATAAAACAGAGGAAGTATGCGTTAGACAGTTAAAAGCTATTGCAAATAAGATTAAATCAGCTGATGAATGGAAACGAGTAGTCGTAGCATATGAACCAGTTTGGGCTATTGGAACAGGTAAAGTTGCTACACCACAACAAGCTCAAGAAGTTCATAATTTCCTTCGTAAATGGTTTAAAACGAATGCACCAAATGGAGTTGATGAAAAAATACGTATTATCTATGGTGGATCTGTAACTGCTGCCAATTGTAAAGAATTAGCTCAACAACATGATGTCGATGGATTTTTGGTTGGTGGAGCTTCATTAAAACCGGAATTCACTGAGATATGTAAAGCCAGACAACGT\textbf{TGA}ACGTTTTGTTGGTCTTCTTCTTCTTACGCTTCTAAATTTTGTCTCTTCTCATGTCAGTTACTTGCTTTTTTTGTCTTGTTTTTTTGTTTTGACAACCAAAGCATATTATAATTAGTAGTATCTTAATGTCTAATGTAAAAAAAAATATCACCACTAGTTCGAACTATTTAATTACTATCAGTCAAAAAAATAATATTTGTCAATTTAGTTCATTGTTTCATTTATCGTCCCTTCTATTTAAATTTCTTATGGCCTAAATATACCTTGAATTAATAAAAAAAAAAAA}
上次尝试导致 Latex 连字符乱码,而使用 textttt 则完全不会破坏文本。此外,我无法使文本加粗。谢谢阅读。
答案1
这个seqsplit
包就是为此而设的。在示例中,我使用了 Bera Mono 字体,因为默认的等宽字体没有粗体版本。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{beramono}
\usepackage{seqsplit}
\begin{document}
\noindent\texttt{\seqsplit{%
TAATAATCATATAGATTCCGTTCACCAAGGAA{\textbf{ATG}}TCTGGATCTCGCAAATTTTTTGTT%
GGGGGGAACTGGAAAATGAACGGAAGCAGAGATGACAACGATAAGTTACTTAAGTTACTCTCAGAAGCTC%
ATTTTGATGATAACACGGAAGTTTTAATTGCTCCACCTTCAGTCTTTTTGCACGAAATTCGAAAAAGTTT%
GAAGAAAGAAATACACGTGGCCGCTCAAAATTGCTATAAAGTATCAAAGGGTGCATTCACCGGAGAAATC%
AGCCCAGCAATGATAAGAGATATTGGTTGTGATTGGGTCATACTTGGACATTCTGAGCGTAGAAACATTT%
TTGGTGAATCTGATGAACTTATTGCTGAAAAAGTTCAACATGCACTTGCTGAAGGTCTAAGCGTTATTGC%
ATGTATTGGTGAAACATTATCAGAGCGTGAATCTAATAAAACAGAGGAAGTATGCGTTAGACAGTTAAAA%
GCTATTGCAAATAAGATTAAATCAGCTGATGAATGGAAACGAGTAGTCGTAGCATATGAACCAGTTTGGG%
CTATTGGAACAGGTAAAGTTGCTACACCACAACAAGCTCAAGAAGTTCATAATTTCCTTCGTAAATGGTT%
TAAAACGAATGCACCAAATGGAGTTGATGAAAAAATACGTATTATCTATGGTGGATCTGTAACTGCTGCC%
AATTGTAAAGAATTAGCTCAACAACATGATGTCGATGGATTTTTGGTTGGTGGAGCTTCATTAAAACCGG%
AATTCACTGAGATATGTAAAGCCAGACAACGT\textbf{TGA}ACGTTTTGTTGGTCTTCTTCTTCTTA%
CGCTTCTAAATTTTGTCTCTTCTCATGTCAGTTACTTGCTTTTTTTGTCTTGTTTTTTTGTTTTGACAAC%
CAAAGCATATTATAATTAGTAGTATCTTAATGTCTAATGTAAAAAAAAATATCACCACTAGTTCGAACTA%
TTTAATTACTATCAGTCAAAAAAATAATATTTGTCAATTTAGTTCATTGTTTCATTTATCGTCCCTTCTA%
TTTAAATTTCTTATGGCCTAAATATACCTTGAATTAATAAAAAAAAAAAA}}
\end{document}
我会改变的定义\seqsplit
:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{beramono}
\usepackage{seqsplit}
\makeatletter
\renewcommand{\seqsplit}[2][\seqsplitdefaultfont]{%
\begingroup
#1% should be a font selection command
\SQSPL@scan#2\SQSPL@end
\endgroup
}
\makeatother
\newcommand{\seqsplitdefaultfont}{\ttfamily}% or whatever you prefer as default
\begin{document}
\noindent
\seqsplit{%
TAATAATCATATAGATTCCGTTCACCAAGGAA{\textbf{ATG}}TCTGGATCTCGCAAATTTTTTGTT%
...
TTTAATTACTATCAGTCAAAAAAATAATATTTGTCAATTTAGTTCATTGTTTCATTTATCGTCCCTTCTA% TTTAAATTTCTTATGGCCTAAATATACCTTGAATTAATAAAAAAAAAAAA}
\end{document}
例如,可以通过输入以下命令来更改设置:
\seqsplit[\ttfamily\bfseries]{...}
如果在某些情况下您希望整个序列采用等宽粗体。
答案2
这个seqsplit
包就是为此而做的。这里有一些可能性的演示(可能与你真正需要的无关)。如果你不知道,你也可以看看这个dnaseq
包。我也给出了一个演示
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[showframe]{geometry}%
\usepackage{xcolor}
\usepackage{seqsplit, dnaseq}
\usepackage[default]{sourcecodepro}
% inconsolata
\begin{document}
\vspace*{1cm}
\noindent\seqsplit{\ttfamily%\ttfamily
\bgroup\itshape\bfseries TAA\egroup TAATCATATAGATTCCGTTCACCAAGGAAATGTCTGGATCTCGC{\color{red}AAA\color{black}}TTTTTTGTTGGGGGGAACTGGAAAATGAACGGAAGCAGAGATGACAACGATAAGTTACTTAAGTTACTCTCAGAAGCTCATTTTGATGATAACACGGAAGTTTTAATTGCTCCACCTTCAGTCTTTTTGCACGAAATTCGAAAAAGTTTGAAGAAAGAAATACACGTGGCCGCTCAAAATTGCTATAAAGTATCAAAGGGTGCATTCACCGGAGAAATCAGCCCAGCAATGATAAGAGATATTGGTTGTGATTGGGTCATACTTGGACATTCTGAGCGTAGAAACATTTTTGGTGAATCTGATGAACTTATTGCTGAAAAAGTTCAACATGCACTTGCTGAAGGTCTAAGCGTTATTGCATGTATTGGTGAAACATTATCAGAGCGTGAATCTAATAAAACAGAGGAAGTATGCGTTAGACAGTTAAAAGCTATTGCAAATAAGATTAAATCAGCTGATGAATGGAAACGAGTAGTCGTAGCATATGAACCAGTTTGGGCTATTGGAACAGGTAAAGTTGCTACACCACAACAAGCTCAAGAAGTTCATAATTTCCTTCGTAAATGGTTTAAAACGAATGCACCAAATGGAGTTGATGAAAAAATACGTATTATCTATGGTGGATCTGTAACTGCTGCCAATTGTAAAGAATTAGCTCAACAACATGATGTCGATGGATTTTTGGTTGGTGGAGCTTCATTAAAACCGGAATTCACTGAGATATGTAAAGCCAGACAACGT\textbf{TGA}ACGTTTTGTTGGTCTTCTTCTTCTTACGCTTCTAAATTTTGTCTCTTCTCATGTCAGTTACTTGCTTTTTTTGTCTTGTTTTTTTGTTTTGACAACCAAAGCATATTATAATTAGTAGTATCTTAATGTCTAATGTAAAAAAAAATATCACCACTAGTTCGAACTATTTAATTACTATCAGTCAAAAAAATAATATTTGTCAATTTAGTTCATTGTTTCATTTATCGTCCCTTCTATTTAAATTTCTTATGGCCTAAATATACCTTGAATTAATAAAAAAAAAAAA}
\vspace*{1cm}
\DNA ! TAATCATATAGATTCCGTTCACCAAGGAAATGTCTGGATCTCGC'{red}AAA'{white}TTTTTTGTTGGGGGGAACTGGAAAATGAACGGAAGCAGAGATGACAACGATAAGTTACTTAAGTTACTCTCAGAAGCTCATTTTGATGATAACACGGAAGTTTTAATTGCTCCACCTTCAGTCTTTTTGCACGAAATTCGAAAAAGTTTGAAGAAAGAAATACACGTGGCCGCTCAAAATTGCTATAAAGTATCAAAGGGTGCATTCACCGGAGAAATCAGCCCAGCAATGATAAGAGATATTGGTTGTGATTGGGTCATACTTGGACATTCTGAGCGTAGAAACATTTTTGGTGAATCTGATGAACTTATTGCTGAAAAAGTTCAACATGCACTTGCTGAAGGTCTAAGCGTTATTGCATGTATTGGTGAAACATTATCAGAGCGTGAATCTAATAAAACAGAGGAAGTATGCGTTAGACAGTTAAAAGCTATTGCAAATAAGATTAAATCAGCTGATGAATGGAAACGAGTAGTCGTAGCATATGAACCAGTTTGGGCTATTGGAACAGGTAAAGTTGCTACACCACAACAAGCTCAAGAAGTTCATAATTTCCTTCGTAAATGGTTTAAAACGAATGCACCAAATGGAGTTGATGAAAAAATACGTATTATCTATGGTGGATCTGTAACTGCTGCCAATTGTAAAGAATTAGCTCAACAACATGATGTCGATGGATTTTTGGTTGGTGGAGCTTCATTAAAACCGGAATTCACTGAGATATGTAAAGCCAGACAACGTTGAACGTTTTGTTGGTCTTCTTCTTCTTACGCTTCTAAATTTTGTCTCTTCTCATGTCAGTTACTTGCTTTTTTTGTCTTGTTTTTTTGTTTTGACAACCAAAGCATATTATAATTAGTAGTATCTTAATGTCTAATGTAAAAAAAAATATCACCACTAGTTCGAACTATTTAATTACTATCAGTCAAAAAAATAATATTTGTCAATTTAGTTCATTGTTTCATTTATCGTCCCTTCTATTTAAATTTCTTATGGCCTAAATATACCTTGAATTAATAAAAAAAAAAAA
!
\end{document}