使用 beamer fontspec 和 alltt 进行缩进

使用 beamer fontspec 和 alltt 进行缩进

以下文档破坏了 alltt 第二行的缩进(管道符/竖线符未出现在上一行的等号下)。

\documentclass[14pt]{beamer}

\usepackage{fontspec}
\setmainfont{Hoefler Text}
\renewcommand\ttdefault{lmtt}
\usepackage{alltt}
\begin{document}

\begin{frame}[fragile]{Title}
This is some preliminary text

\begin{alltt}
  Hol_datatype`ord = End of num
                   | Plus of ord \(\times\) num \(\times\) ord`
\end{alltt}
\end{frame}

\end{document}

如果我没有将 beamer 选项缩放到 14pt,或者如果我不使用 fontspec,问题就会消失。我确实想使用 fontspec,但很乐意考虑使用其他方法来缩放演示文稿中的所有内容

答案1

Latin Modern Mono 字体设置了单词间距的可伸缩性和可收缩性,我认为这是错误的。由于第二行相对于行宽过长,TeX 尝试使用单词间距可收缩性来压缩它,并且成功了,因为这个组件不为零。

纠正起来很简单:

\documentclass[14pt]{beamer}

\usepackage{fontspec}
\setmainfont{Hoefler Text}
\setmonofont[WordSpace={1,0,0}]{Latin Modern Mono}
\usepackage{alltt}

\begin{document}

\begin{frame}[fragile]
\frametitle{Title}
This is some preliminary text

\begin{alltt}
  Hol_datatype`ord = End of num
                   | Plus of ord \(\times\) num \(\times\) ord`
\end{alltt}
\end{frame}

\end{document}

在此处输入图片描述

该键WordSpace以三个数字作为值,这三个数字分别是默认字间间距、字间间距拉伸和收缩所乘的因子。

相关内容