根据microtype
手册第 6 节(2011/02/07 版 v.2.5,第 23 页),下面的代码应该为脚注编号设置自定义突出部分。但是,\microtypecontext
设置命令后,它会完全取消脚注标记。我运行了 lualatex(beta-0.70.1-2011061410),但无论您使用的是 pdflatex 还是 xelatex,结果都是一样的。有什么想法吗?
以下是 MWE:
\documentclass{article}
\usepackage{geometry}
\geometry{a5paper,showframe}
\usepackage[protrusion=true,factor=2000]{microtype}
\makeatletter
\SetProtrusion[context=footnote]%
{font=*/*/*/*/scriptsize}% adapt if necessary; "footnotesize" corrected to "scriptsize" after Werner's note
{1={,650},%
2={,400},%
3={,400},%
4={,400},%
5={,400},%
6={,400},%
7={,500},%
8={,400},%
9={,400},%
0={,400}}
\newcommand*\new@makefnmark{\hbox{\@textsuperscript{\normalfont
\microtypecontext{protrusion=footnote}\@thefnmark}}}
\renewcommand*\@footnotemark{%
\leavevmode \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi
\new@makefnmark \ifhmode\spacefactor\@x@sf\fi \relax}
\makeatother
%\setcounter{footnote}{123}
\begin{document}
Here's some text to show the behaviour of footnote marker at%
%
\footnote{A footnote}
%
the end of a line, which disappears when the code for setting microtypecontext is used in fnmark redefinition.
\end{document}
请注意,microtype 包的版本是2.5 测试版 06它支持 xelatex 和 lualatex 的跟踪功能。
同样的问题压缩文本.tex。如有必要,我会同步它们。
更新:Robert 在 comp.text.tex 上回复了几条,并通过更新软件包(microtype beta 现在是 2.5 beta 08)解决了与此问题相关的大部分问题。唯一仍然存在的问题是,整个文档中的数字(不仅是脚注)始终是行号,含义Lowercase
和Proportional
选项将fontspec
被忽略,因此文本图形无法以正常方式使用。使用Renderer=Basic
选项fontspec
,Numbers=Lowercase
选项会应用,但Numbers=Proportional
仍然不会。
答案1
正如@Thorsten 提到的,问题在于microtype
无法正确将你的突出设置与脚注关联起来。这是因为你只通过不正确的大小指定了字体类型——\footnotesize
在本例中。pdfTeX 产生的警告是
Package microtype Warning: I cannot find a protrusion list for font
(microtype) `OT1/cmr/m/n/7' (context: `footnote'). Switching off
(microtype) protrusion for this font on input line 40.
导致:
使用
{font=*/*/*/*/scriptsize}% adapt if necessary
或者
{encoding=OT1}% You could add `,family=cmr` to be more specific
代替
{font=*/*/*/*/footnotesize}% adapt if necessary
结果是:
我在 Windows 下使用 TeXLive 2011 版本microtype
2.4。我的您突出显示的文档使用了与上述建议相同的修改。我在 lualatex 下获得了类似的结果,但我知道microtype
在 下不受支持xelatex
,并产生以下警告:
Package microtype Warning: You don't seem to be using pdftex.
(microtype) `microtype' only works with pdftex.
(microtype) Try running `pdflatex' instead of `xelatex'.