如何在Latex中包装不间断的文本?

时间:2009-06-05 21:47:05

标签: latex margin wrapping phylogeny

我需要在我的Latex文档中插入这样的文字:

((((四籽树科,pellicieraceae),蜜囊花科),凤仙花科),(fouquieriaceae,花荵科,肋果茶科,(厚皮,黄瑞)五列木科(木,大头)山茶科,(lissocarpa,柿)柿树科,山矾科,(maesaceae ,(假轮叶科,(报春花,(铁仔,朱砂)紫金牛科))),(岩梅科(parastyrax,苏合香)安息香科),山榄科,(玉蕊,古斯塔维亚)玉蕊,(((杜鹃花科,翅萼树科),(purdiaea,clethra)山柳科),(瓶子草科,((猕猴桃,水东哥属)猕猴桃,roridulaceae)))))杜鹃花目;

Latex将所有文本写入一行,然后在右边缘中删除。我不能手工使用\ linebreak,这只会在文本较长时给出较差的结果,并且考虑到要包含的所有相似文本,这将是很多工作。

有什么想法吗?

谢谢!

5 个答案:

答案 0 :(得分:7)

你的问题缺乏预期结果的定义,所以我只想猜测。

最简单的想法:只需在每个逗号后添加空格。

答案 1 :(得分:6)

您可以在文本中添加连字符提示:如果您将\-放入一个单词(例如non\-breaking),LaTeX将仅在那些位置处断开,但如果需要,将在这些位置处断开。但是你会在破发位置得到一个连字符。 另一种可能的选择可能是使用hyphenat包并将逗号定义为连字符。因为我自己从未使用过那个包,但我可能会错在这里。

答案 2 :(得分:2)

我没有尝试过,但看起来newicktree包可能对你有用。文章PHY·FI: fast and easy online creation and manipulation of phylogeny color figures和相关的web-based tool似乎也会有所帮助。


编辑:我找到了一种方法,或多或少地以一种几乎肯定无意的方式使用包来达到你想要的效果。这是LaTeX代码:

\documentclass{article}
\usepackage{url}
\begin{document}
\url{((((tetrameristaceae,pellicieraceae),marcgraviaceae),balsaminaceae),(fouquieriaceae,polemoniaceae,sladeniaceae,(ternstroemia,adinandra)pentaphylacaceae,(schima,gordonia)theaceae,(lissocarpa,diospyros)ebenaceae,symplocaceae,(maesaceae,(theophrastaceae,(primulaceae,(myrsine,ardisia)myrsinaceae))),(diapensiaceae,(parastyrax,styrax)styracaceae),sapotaceae,(barringtonia,gustavia)lecythidaceae,(((ericaceae,cyrillaceae),(purdiaea,clethra)clethraceae),(sarraceniaceae,((actinidia,saurauia)actinidiaceae,roridulaceae)))))ericales;}
\end{document}

结果如下: IMAGE http://img230.imageshack.us/img230/4705/newick.png

答案 3 :(得分:1)

这是一个快速解决方案,可以解决问题的一部分(据我所知)。它不需要对标记进行任何更改,但如果您愿意,可以插入额外的空格。

\documentclass{article}
\begin{document}
\newcommand\comma{,}
\newcommand\openbrace{(}
\newcommand\closebrace{)}
\begingroup
\catcode`\,=\active
\catcode`\(=\active
\catcode`\)=\active
\gdef\weird{%
  \begingroup
  \catcode`\,=\active
  \catcode`\(=\active
  \catcode`\)=\active
  \def,{\comma\allowbreak}%
  \def({\openbrace\allowbreak}%
  \def){\closebrace\allowbreak}%
  \processweird
}
\endgroup
\newcommand\processweird[1]{#1\endgroup}
\weird{((((tetrameristaceae,pellicieraceae),marcgraviaceae),balsaminaceae),(fouquieriaceae,polemoniaceae,sladeniaceae,(ternstroemia,adinandra)pentaphylacaceae,(schima,gordonia)theaceae,(lissocarpa,diospyros)ebenaceae,symplocaceae,(maesaceae,(theophrastaceae,(primulaceae,(myrsine,ardisia)myrsinaceae))),(diapensiaceae,(parastyrax,styrax)styracaceae),sapotaceae,(barringtonia,gustavia)lecythidaceae,(((ericaceae,cyrillaceae),(purdiaea,clethra)clethraceae),(sarraceniaceae,((actinidia,saurauia)actinidiaceae,roridulaceae)))))ericales;}
\end{document}

答案 4 :(得分:0)

据我所知,你可以在节点之间放置空格并拥有通常的换行符。您还可以通过在单词中插入\-来引入可选的连字符(带连字符)。

如果您(或任何必须批准您的工作)坚持任意休息,也许您可​​以使用seqsplit包裹。