我正在尝试修改 KOMA-Script 类中脚注标记的标准外观scrbook
。
该行为应该类似于 Microsoft Word 中的行为。因此,脚注编号在水平线下左对齐。并且每增加一个数量级(我的脚注编号最多为 2000),上标脚注标记的框就会扩展,以便数字保持在水平线下。
但是,下面的代码看起来不太好,因为脚注标记和后面的文本之间的空间有所不同。而且我的印象是猜测正确的 ?em 是错误的方法。在这里,我希望有 koma 标准行为(koma 脚本指南第 91 页):
脚注的第一行直接如下。
因此,现在我正在寻找一种方法,既可以实现 koma 类的对齐,又可以使脚注标记保持在水平规则之下。 (注意:我认为将标记宽度设置为最大数字的宽度对于较小的数字来说看起来很奇怪。所以这不是一个选择。)
\documentclass{scrbook}
\deffootnote
[
\ifnum\the\value{footnote}<10
0.4em
\else
\ifnum\the\value{footnote}<100
0.8em
\else
\ifnum\the\value{footnote}<1000
1.2em
\else
1.6em
\fi
\fi
\fi
]
{
\ifnum\the\value{footnote}<10
0.9em
\else
\ifnum\the\value{footnote}<100
1.3em
\else
\ifnum\the\value{footnote}<1000
1.7em
\else
2.1em
\fi
\fi
\fi
}
{1.0em}
{\makebox[
\ifnum\the\value{footnote}<10
0.4em
\else
\ifnum\the\value{footnote}<100
0.8em
\else
\ifnum\the\value{footnote}<1000
1.2em
\else
1.6em
\fi
\fi
\fi
][l]{\textsuperscript{\thefootnotemark}}}
\begin{document}
Test1\footnote{Footnote Test 1. Footnote Test 1. Footnote Test 1. Footnote Test 1. Footnote Test 1. Footnote Test 1. Footnote Test 1.}
\setcounter{footnote}{9}
Test10\footnote{Footnote Test 10. Footnote Test 10. Footnote Test 10. Footnote Test 10. Footnote Test 10. Footnote Test 10. }
\setcounter{footnote}{99}
Test100\footnote{Footnote Test 100. Footnote Test 100. Footnote Test 100. Footnote Test 100. Footnote Test 100. Footnote Test 100. }
\setcounter{footnote}{999}
Test1000\footnote{Footnote Test 1000. Footnote Test 1000. Footnote Test 1000. Footnote Test 1000. Footnote Test 1000. Footnote Test 1000. }
\end{document}
答案1
那么,你的情况中脚注在 KOMA-Script 中的正确定义是
\deffootnote{fnmarkA}{fnmarkB}{\makebox[fnmarkA][l]{\textsuperscript{\thefootnotemark}}}%
因此请将您的代码更改为
\deffootnote{%
\ifnum\the\value{footnote}<10
0.4em
\else
\ifnum\the\value{footnote}<100
0.8em
\else
\ifnum\the\value{footnote}<1000
1.2em
\else
1.6em
\fi
\fi
\fi
}
{
\ifnum\the\value{footnote}<10
0.9em
\else
\ifnum\the\value{footnote}<100
1.3em
\else
\ifnum\the\value{footnote}<1000
1.7em
\else
2.1em
\fi
\fi
\fi
}
{\makebox[
\ifnum\the\value{footnote}<10
0.4em
\else
\ifnum\the\value{footnote}<100
0.8em
\else
\ifnum\the\value{footnote}<1000
1.2em
\else
1.6em
\fi
\fi
\fi
][l]{\textsuperscript{\thefootnotemark}}}
使用以下 MWE
\documentclass{scrbook}
%\deffootnote{fnmarkA}{fnmarkB}{\makebox[fnmarkA][l]{\textsuperscript{\thefootnotemark}}}%
\deffootnote{%
\ifnum\the\value{footnote}<10
0.4em
\else
\ifnum\the\value{footnote}<100
0.8em
\else
\ifnum\the\value{footnote}<1000
1.2em
\else
1.6em
\fi
\fi
\fi
}
{
\ifnum\the\value{footnote}<10
0.9em
\else
\ifnum\the\value{footnote}<100
1.3em
\else
\ifnum\the\value{footnote}<1000
1.7em
\else
2.1em
\fi
\fi
\fi
}
{\makebox[
\ifnum\the\value{footnote}<10
0.4em
\else
\ifnum\the\value{footnote}<100
0.8em
\else
\ifnum\the\value{footnote}<1000
1.2em
\else
1.6em
\fi
\fi
\fi
][l]{\textsuperscript{\thefootnotemark}}}
\begin{document}
Test1\footnote{Footnote Test 1. Footnote Test 1. Footnote Test 1. Footnote Test 1. Footnote Test 1. Footnote Test 1. Footnote Test 1.}
\setcounter{footnote}{9}
Test10\footnote{Footnote Test 10. Footnote Test 10. Footnote Test 10. Footnote Test 10. Footnote Test 10. Footnote Test 10. }
\setcounter{footnote}{99}
Test100\footnote{Footnote Test 100. Footnote Test 100. Footnote Test 100. Footnote Test 100. Footnote Test 100. Footnote Test 100. }
\setcounter{footnote}{999}
Test1000\footnote{Footnote Test 1000. Footnote Test 1000. Footnote Test 1000. Footnote Test 1000. Footnote Test 1000. Footnote Test 1000. }
\end{document}
你得到
顺便说一句:我个人会在数字和脚注文本之间留出更多空间...如果您用德语书写,请不要在脚注数字上标...
您提到:
我觉得猜测正确的答案是错误的
嗯,这是获得您想要的唯一方法,它取决于使用的字体以及您希望在脚注编号和文本之间留出的空间......