有没有办法(有力地)将 biblatex 脚注引用推送到边缘?
我试过
\usepackage{sidenotes}
\renewcommand*{\footnote}[1]{\sidenote{#1}}
但有时我会得到 MWE 中所示的丑陋效果:
% !TEX TS-program = xelatex
% !TEX encoding = UTF-8 Unicode
% !TeX TXS-program:bibliography = txs:///biber
\documentclass[a4paper,twoside]{scrbook}
% packages
\usepackage{blindtext}
\usepackage{hyperref}
% bib-file
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{Knu86,
author = {Knuth, Donald E.},
year = {1986},
title = {The \TeX book},
}
@BOOK{KandR,
AUTHOR = {Kernighan, Brian W. and Ritchie, Dennis M.},
TITLE = {{The C Programming Language Second Edition}},
PUBLISHER = {Prentice-Hall, Inc.},
YEAR = {1988},
}
@article{greenwade93,
author = "George D. Greenwade",
title = "The {C}omprehensive {T}ex {A}rchive {N}etwork ({CTAN})",
year = "1993",
journal = "TUGBoat",
volume = "14",
number = "3",
pages = "342--351"
}
@book{goossens93,
author = "Michel Goossens and Frank Mittelbach and Alexander Samarin",
title = "The LaTeX Companion",
year = "1993",
publisher = "Addison-Wesley",
address = "Reading, Massachusetts"
}
\end{filecontents}
% biber
\usepackage[backend=biber,bibencoding=utf8,
bibstyle=philosophy-classic,
citestyle=authortitle-icomp,
hyperref,
firstinits=true,
isbn=false,
dashed=false,
backref,
sortcites=true,
url=false,
doi=false,
dateabbrev=false,
scauthorsbib=true,
]{biblatex}
\addbibresource{\jobname}
% layout
\usepackage[a4paper,
showframe,
top=3cm,
bottom=3cm,
innermargin=2.5cm,
textwidth=336pt,
textheight=750pt,
marginparwidth=5cm,
marginparsep=1cm,
heightrounded,
]{geometry}
% footnotes to sidenote
\usepackage{sidenotes}
\renewcommand*{\footnote}[1]{\sidenote{#1}}
% doc
\begin{document}
\blindtext
\autocite{Knu86}
\autocite{Knu86}
\autocite{Knu86}
\blindtext[3]
sed elit sit amet ante lobortis sollicitudin. Praesent
blandit blandit mauris. Praesent lectus tellus, aliquet aliquam, luctus
a, egestas a, turpis. Mauris lacinia lorem sit amet ipsum. Nunc ia lorem sit amet
pis. Mauris lacinia lorem sit amet ipsum. Nunc ia lorem sit amet sit amet lorem sit
\autocite{KandR,greenwade93,goossens93}
\printbibliography
\end{document}
答案1
我不知道这是否能解决所有这些问题,但只需添加
\usepackage{marginfix}
该包至少解决了你的 MWE 中的问题。
旁注:除一些例外情况外——请参阅哪些包应该在 hyperref 之后加载而不是之前加载?——hyperref
应该是你序言中的最后一个包。
\documentclass[a4paper,twoside]{scrbook}
% packages
\usepackage{blindtext}
% bib-file
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{Knu86,
author = {Knuth, Donald E.},
year = {1986},
title = {The \TeX book},
}
@BOOK{KandR,
AUTHOR = {Kernighan, Brian W. and Ritchie, Dennis M.},
TITLE = {{The C Programming Language Second Edition}},
PUBLISHER = {Prentice-Hall, Inc.},
YEAR = {1988},
}
@article{greenwade93,
author = "George D. Greenwade",
title = "The {C}omprehensive {T}ex {A}rchive {N}etwork ({CTAN})",
year = "1993",
journal = "TUGBoat",
volume = "14",
number = "3",
pages = "342--351"
}
@book{goossens93,
author = "Michel Goossens and Frank Mittelbach and Alexander Samarin",
title = "The LaTeX Companion",
year = "1993",
publisher = "Addison-Wesley",
address = "Reading, Massachusetts"
}
\end{filecontents}
% biber
\usepackage[backend=biber,bibencoding=utf8,
bibstyle=philosophy-classic,
citestyle=authortitle-icomp,
hyperref,
firstinits=true,
isbn=false,
dashed=false,
backref,
sortcites=true,
url=false,
doi=false,
dateabbrev=false,
scauthorsbib=true,
]{biblatex}
\addbibresource{\jobname}
% layout
\usepackage[a4paper,
showframe,
top=3cm,
bottom=3cm,
innermargin=2.5cm,
textwidth=336pt,
textheight=750pt,
marginparwidth=5cm,
marginparsep=1cm,
heightrounded,
]{geometry}
% footnotes to sidenote
\usepackage{sidenotes,marginfix}
\renewcommand*{\footnote}[1]{\sidenote{#1}}
\usepackage{hyperref}
% doc
\begin{document}
\blindtext
\autocite{Knu86}
\autocite{Knu86}
\autocite{Knu86}
\blindtext[3]
sed elit sit amet ante lobortis sollicitudin. Praesent
blandit blandit mauris. Praesent lectus tellus, aliquet aliquam, luctus
a, egestas a, turpis. Mauris lacinia lorem sit amet ipsum. Nunc ia lorem sit amet
pis. Mauris lacinia lorem sit amet ipsum. Nunc ia lorem sit amet sit amet lorem sit
\autocite{KandR,greenwade93,goossens93}
\printbibliography
\end{document}