我试图将脚注设置为右对齐而不是对齐。但是我无法让它工作。下面是 MWE
\documentclass{article}
\usepackage{expl3}
\usepackage{xparse}
\raggedright
\ExplSyntaxOn
\makeatletter
\RenewDocumentCommand\@makefntext{+m}{
\group_begin:
\raggedright
\leavevmode\normalfont
\hbox_to_wd:nn{0pt}{\hss\@thefnmark\enspace}
#1
\group_end:
}
\makeatother
\ExplSyntaxOff
\begin{document}
A\footnote{Non eram nescius, Brute, cum, quae summis ingeniis exquisitaque
doctrina philosophi Graeco sermone tractavissent, ea Latinis litteris
mandaremus, fore ut hic noster labor in varias reprehensiones incurreret. nam
quibusdam, et iis quidem non admodum indoctis, totum hoc displicet
philosophari. quidam autem non tam id reprehendunt, si remissius agatur, sed
tantum studium tamque multam operam ponendam in eo non arbitrantur. erunt
etiam, et ii quidem eruditi Graecis litteris, contemnentes Latinas, qui se
dicant in Graecis legendis operam malle consumere. postremo aliquos futuros
suspicor, qui me ad alias litteras vocent, genus hoc scribendi, etsi sit
elegans, personae tamen et dignitatis esse negent.}
\end{document}
我正在尝试两件事,首先是将每个脚注前的数字设置为正常字体,向左突出,而不是凸起的小数字。这部分工作正常。另一部分是将文本设置为右对齐而不是对齐。但是,无论是使用\raggedright
内部\@makefntext
还是文档方式,似乎都对脚注没有任何影响。
有没有什么方法可以实现不规则的脚注设置,而无需重新定义整个\footnote
宏,或者\@footnotetext
,但只定义最里面的宏\@makefntext
?
编辑
我发现我错过了\par
之后的#1
内容,这让一切都变得不同了。我将保留这个问题,要么有人有更好的解决方案,要么其他人认为它有用,因为我没有找到任何可以回答这个问题的东西(虽然有一个memoir
)。
答案1
您需要\raggedright
在段落结束时激活。我不确定您为什么要添加组,因为原始定义中没有组。我也不确定您为什么添加\normalfont
不会改变大小的组。
为什么不只是这样呢?
\documentclass{article}
\usepackage{kantlipsum}
\usepackage{xparse}
% \raggedright
\ExplSyntaxOn
\makeatletter
\RenewDocumentCommand\@makefntext{+m}{
\raggedright
\leavevmode
\hbox_to_wd:nn{0pt}{\hss\@thefnmark\enspace}
#1
}
\makeatother
\ExplSyntaxOff
\begin{document}
\kant[1]
A\footnote{Non eram nescius, Brute, cum, quae summis ingeniis exquisitaque
doctrina philosophi Graeco sermone tractavissent, ea Latinis litteris
mandaremus, fore ut hic noster labor in varias reprehensiones incurreret. nam
quibusdam, et iis quidem non admodum indoctis, totum hoc displicet
philosophari. quidam autem non tam id reprehendunt, si remissius agatur, sed
tantum studium tamque multam operam ponendam in eo non arbitrantur. erunt
etiam, et ii quidem eruditi Graecis litteris, contemnentes Latinas, qui se
dicant in Graecis legendis operam malle consumere. postremo aliquos futuros
suspicor, qui me ad alias litteras vocent, genus hoc scribendi, etsi sit
elegans, personae tamen et dignitatis esse negent.}
\kant[2]
\end{document}
我在序言中注释了\raggedright
只是为了说明即使您只希望脚注向右对齐而正文对齐,您也可以这样做。显然,如果您希望所有内容都向右对齐,请取消注释。
xparse
等等似乎有点过了。为什么不直接
\makeatletter
\renewcommand\@makefntext[1]{%
\raggedright
\leavevmode
\rlap{\hss\@thefnmark\enspace}%
#1%
}
\makeatother
哪个功能相同?尽管不可否认的是,%
ing 很烦人。