问题
似乎该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
都已正确终止。