我的参考书目中有一个非常糟糕的水平盒子溢出问题,这是由两行条目的第一行中的破折号引起的。消除水平盒子溢出问题的唯一解决方案是将破折号换行到第二行的开头,这样看起来没问题。
问题是,emdash 受到 microtype 凸起的影响,导致三分之一进入左边距,这在行首看起来不太好看。我可以针对这一点局部禁用凸起吗?
答案1
您可以定义一个命令,在小的 kern 后打印一个 emdash(零是不够的,但 1sp 是 TeX 中最小的非零长度并且不会被注意到):
\documentclass{article}
\usepackage{etoolbox,microtype,showframe}
\setlength{\textwidth}{7cm}
\newrobustcmd{\npemdash}{%
\mbox{\kern1sp ---}%
}
\begin{document}
Let's push the emdash to the next line\linebreak---with some text afterwards
Let's push the emdash to the next line\linebreak\npemdash with some text afterwards
Let's push the emdash to the next line\linebreak---with some text afterwards
\end{document}
您可以在任何需要的地方使用此宏,也可以在 bib 文件中使用。
答案2
可以暂时禁用microtype
,这里有一个例子:
\documentclass[12pt,oneside]{report}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[showframe]{geometry}
\usepackage[activate,verbose=true]{microtype}
\begin{document}
\begingroup
\microtypesetup{activate=false}%
\noindent Disable protrusion from microtype for just one word
\linebreak --- for example\par
\endgroup
\end{document}
如何将代码注入到正确的位置取决于您的使用情况。