如何使省略号与无衬线字体配合使用?

如何使省略号与无衬线字体配合使用?

问题

似乎该ellipsis软件包不适用于无衬线字体。这是一个已知问题还是根本不是问题?这个问题如下这个,关于“如何改变外观\dots”?

谢谢。

MWE(最小工作示例)

\documentclass{article}
\usepackage[utf8]{inputenc}

\usepackage{ellipsis}
\setlength{\ellipsisgap}{0.05em}

\begin{document}

{\sffamily So\dots{} let's see\dots{}}

So\dots{} let's see\dots{}

\end{document}

在此处输入图片描述


编辑

根据大卫的回答,这是我的代码

\documentclass{article}
\usepackage[utf8]{inputenc}

\usepackage{ellipsis}
\setlength{\ellipsisgap}{0.05em}
{\sffamily\setlength{\ellipsisgap}{0.05em}}
{\bfseries\setlength{\ellipsisgap}{0.05em}}

\begin{document}

{\normalfont So\dots{} let's see\dots{}}

{\sffamily So\dots{} let's see\dots{}}

{\bfseries So\dots{} let's see\dots{}}

So\dots{} let's see\dots{}

\end{document}

答案1

\ellipsigap不是长度寄存器,而是一个宏!正在

\setlength{\ellipsisgap}{0.5em}

\ellipsisgap或任何其他值都是大错误。包中的定义是

\newcommand{\ellipsisgap}{\fontdimen3\font}

根据\setlength{\ellipsisgap}{0.5em}的定义\setlength

\ellipsisgap0.5em\relax

现在\ellipsisgap将扩大和任务

\fontdimen3\font0.5em\relax

将被执行!这将改变控制行间粘连拉伸分量的参数。变化如下:全球的,影响当前字体。

该命令\ellipsisgap应该更改为\renewcommand,正如文档所述(第 2 页,第 2 节中的最后一个代码示例)。

默认情况下,它提供的空间与单词间空间的拉伸分量相同。您可以使用em单位更改它以满足您的需求。在 Computer Modern 字体中,拉伸分量为 0.6em;对于罗马字体和无衬线字体也是如此。


也许包应该可以

\renewcommand{\ellipsisgap}{\fontdimen3\font\relax}

因此使用\setlength{\ellipsisgap}{...}至少会引发一个错误。

答案2

你可以这样做:

\documentclass{article}
\usepackage[utf8]{inputenc}

\usepackage{ellipsis}
\renewcommand{\ellipsisgap}{\dimexpr0.05em\relax}

\begin{document}

\textsf{So\dots{} let's see\dots{}}

So\dots{} let's see\dots{}


\LARGE

\textsf{So\dots{} let's see\dots{}}

So\dots{} let's see\dots{}

\end{document}

更新:

正如我在评论中指出的那样A (@DavidCarlisle 的相应答案现已被删除)并且 , 和这个对本问题的第三条评论所有内容都是在这个答案之后不久发布的,这\ellipsisgap不是一个跳过寄存器而是一个宏。\setlength可以对其进行操作,但会进行字体尺寸分配(自动global)。

\dimexpr现在,这\ellipsisgap是一个大小规范,可以执行类似的事情,\kern2\ellipsisgap而省略则不允许。但是\dimexpr,如果没有用处,那么\renewcommand{\ellipsisgap}{0.05em}也可以,因为事实证明,它在中的所有用途ellipsis.sty都已正确终止。

省略间隙

相关内容