LaTeX beamer中如何避免项目符号后立即出现意外换行
问题成因
beamer分栏环境会压缩单栏可用行宽,长超链接文本默认没有合法断行标记时,LaTeX排版引擎为避免文本溢出列边界,会将整个超链接块整体下移到下一行,最终出现项目符号与链接文本间的多余换行。
注意:beamer文档类已内置加载hyperref包,无需手动重复引入,重复加载可能触发排版兼容问题。
修复方案
以下两种方案均可直接生效,按需选择即可:
- 方案1:临时放宽对应列的断行规则
在左侧列的内容起始位置添加\sloppy命令,允许长文本在URL的斜杠、点号等天然分隔符位置自动断行,适配窄列宽。修改后的完整可运行代码如下:
\documentclass[14pt, serif]{beamer} \begin{document} \begin{frame}{Links} \begin{columns}[T] \begin{column}{0.75\textwidth} \sloppy % 新增该行即可解决问题 \begin{itemize} \item \href{https://www.scrum.org/resources/blog/managing-risk-scrum}{scrum.org/resources/blog/managing-risk-scrum} \end{itemize} \end{column} \begin{column}{0.25\textwidth} image goes here \end{column} \end{columns} \end{frame} \end{document}
- 方案2:单独给链接启用URL断行规则
如果不想影响列内其他内容的排版严谨性,无需加\sloppy,仅需将超链接的显示文本用\nolinkurl包裹即可。该命令会保持普通文本的显示样式,同时支持URL按分隔符自动断行,对应的item行修改为:
\item \href{https://www.scrum.org/resources/blog/managing-risk-scrum}{\nolinkurl{scrum.org/resources/blog/managing-risk-scrum}}
两种方案生效后,项目符号都会与超链接文本紧邻显示在同一行,长链接会在列宽范围内自动折行,不会再出现多余换行。错误排版效果参考:
内容的提问来源于stack exchange,提问作者Robert
相关产品推荐
相关产品推荐

