LaTeX 两列布局不会在边框之间保留文本

LaTeX two-column layout does not keep text between borders

我正在使用 \twocolumn 标签来使用 LaTeX 中的双列布局。问题是这不能正常工作,文本似乎没有固定在边界之间。不确定这个最小的例子是否有帮助,但至少你可以看到我的包含和它发生的文本。

\documentclass[12pt,a4paper, abstracton]{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage[backend=biber, sorting=none]{biblatex}
\usepackage{hyperref}
\usepackage[hyphenbreaks]{breakurl}
\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}

\begin{document}
\twocolumn
\section{Introduction}
Glutamate carboxypeptidase II (GCPII), N-acetyl-L-aspartyl-L-glutamate peptidase I (NAALADase I), NAAG peptidase or prostate-specific membrane antigen (PSMA) \dots
\end{document}

Screenshot of left column in PDF that shows the problem

为什么 LaTeX 从第一列写入第二列,我该如何解决?我想避免单独更改每一行,发生这种情况。我正在寻找一个全球解决方案。

Latex 很难找到合适的断点,因为具有多个大写字母的单词通常被认为是首字母缩略词,不应使用连字符。

可能的解决方法:

  • 在单词前用 \linebreak 强制换行。这可能会导致行中出现不需要的大 space,尤其是在行中只有一个白色 space 的情况下
  • 告诉 latex 可能的断点在哪里 long\-word (我不知道 NAALADase 中是否有任何可能的断字点)。这也可以是整个文档的全局,在您的序言中包含 \hyphenation{long-word}
  • 改写句子
  • 使用其他布局。非常短的行与非常长且牢不可破的单词相结合是一个艰难的组合

\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage[backend=biber, sorting=none]{biblatex}
\usepackage{hyperref}
\usepackage[hyphenbreaks]{breakurl}
\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}

\begin{document}
\twocolumn
\section{Introduction}
Glutamate carboxypeptidase II (GCPII), N-acetyl-L-aspartyl-L-glutamate peptidase I \linebreak (NAALADase I), NAAG peptidase or prostate-specific membrane antigen (PSMA) \dots
\end{document}

由于接受的答案的解决方法对我来说并不令人满意,所以我不断搜索并找到了更合适和快速的解决方法,在我的序言中添加了以下内容:

\setlength{\emergencystretch}{3em}

长度 3em 可以根据需要更改,只要保持尽可能低的长度以保持最佳外观即可。

更多详情here