\textwidth
我正在制作双面文章布局,其中脚注由上下两行包围,在没有脚注的页面上,一条 h 线横跨\textwidth
正文底部。但页脚本身应该\textwidth
横跨\marginparwidth
我尝试过花式高清在页脚和文本主体之间的边界上创建一条线,但在偶数页上,页脚规则挂在错误的一侧:
在奇数页上它看起来应该像这样:
以下是 MWE:
\documentclass[a4paper,12pt,
twoside,%
]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{geometry}
\geometry{%
inner=2cm,
outer=4cm,
top=2.5cm,
bottom=2.5cm,
marginparwidth=3cm,
}
\setlength\parindent{0pt}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyfoot[EL,OR]{\textbf{\thepage}}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0.5pt}
\addtolength{\headwidth}{\marginparwidth}
\renewcommand\footrule{\hrule width\textwidth}
\fancypagestyle{plain}{}
\usepackage[%
hang,%
%marginal,%
bottom%
]{footmisc}
\setlength{\footnotemargin}{0.5cm} %Abstand zwischen textkörper und FN bei hang-option
%\setlength{\footnotesep}{0.35cm} %Abstand zwischen FN
\setlength{\skip\footins}{0,5cm} %Abstand zwischen FN-Nummer und FN-Text
\renewcommand{\footnoterule}{\rule{\textwidth}{0.5pt}{\vspace*{2mm}}}
\usepackage{blindtext}
\begin{document}
\blindtext[3]\footnote{text}
\blindtext[3]\footnote{text}
\blindtext[4]
\end{document}
这重要部分布局通常是页面上文本主体底部的水平规则和 和 没有脚注。
我想一些更专业的 TeX 用户可以提供解决方案。
编辑:
如果有人有另一种解决方案花式高清,我也很高兴。只要它看起来像第二张图片,并提供一个跨越文本宽度的页脚和marginparwidth(显示页码的位置)。
2. 编辑:
不幸的是,我用来设置 Latex 布局样式的测试页面每页都有脚注。但是布局要求在没有脚注的页面上,文本主体底部也有一个 hrule。因此,@cabohah 的出色解决方案不符合我的需求,因为只有在调用脚注命令时才会出现较低的规则。抱歉造成混淆。是否有可能放置hrule
每一页正文的底部,无论是否有脚注?还根据这一要求更新了上面的初始问题。
谢谢!祝一切顺利!
答案1
您不需要尝试将脚注下方的规则添加到页脚,而是可以修补脚注的输出:
\documentclass[a4paper,12pt,twoside,]{article}
\usepackage[T1]{fontenc}
%\usepackage[utf8]{inputenc}% not needed with LaTeX 2018/04/01 or newer
\usepackage{geometry}
\geometry{%
inner=2cm,
outer=4cm,
top=2.5cm,
bottom=2.5cm,
marginparwidth=3cm,
}
\usepackage{parskip}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyfoot[EL,OR]{\textbf{\thepage}}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\addtolength{\headwidth}{\marginparwidth}
\fancypagestyle{plain}{}
\usepackage[hang,bottom]{footmisc}
\setlength{\footnotemargin}{0.5cm} %Abstand zwischen textkörper und FN bei hang-option
%\setlength{\footnotesep}{0.35cm} %Abstand zwischen FN
\setlength{\skip\footins}{0,5cm} %Abstand zwischen FN-Nummer und FN-Text
\makeatletter
\renewcommand\footnoterule{\kern-3\p@
\hrule \@width \textwidth \kern 2.6\p@} % the \hrule is .4pt high and now it has the width of the text area
\makeatother
\usepackage{xpatch}
% NOTE: The following code depends on usage of package footmisc!
\makeatletter
\xpatchcmd{\@outputbox@appendfootnotes}{%
\unvbox \footins
}{%
\unvbox \footins
\secondfootnoterule
}{}{\PAtchFailure}
\newcommand*{\secondfootnoterule}{\hrule \@width \textwidth \kern -0.4\p@}
\makeatother
\usepackage{blindtext}
\begin{document}
\blindtext[3]\footnote{text}
\blindtext[3]\footnote{text}
\blindtext[4]
\end{document}
对于那些不使用的人,这里有一个类似的解决方案footmisc
:
\documentclass[a4paper,12pt,twoside,]{article}
\usepackage[T1]{fontenc}
%\usepackage[utf8]{inputenc}% not needed with LaTeX 2018/04/01 or newer
\usepackage{geometry}
\geometry{%
inner=2cm,
outer=4cm,
top=2.5cm,
bottom=2.5cm,
marginparwidth=3cm,
}
\usepackage{parskip}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyfoot[EL,OR]{\textbf{\thepage}}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\addtolength{\headwidth}{\marginparwidth}
\fancypagestyle{plain}{}
\usepackage{xpatch}
% NOTE: The following code depends on NOT using package footmisc!
\makeatletter
\xpatchcmd{\@makecol}{%
\unvbox \footins
}{%
\unvbox \footins
\secondfootnoterule
}{}{\PAtchFailure}
\renewcommand\footnoterule{\kern-3\p@\hrule \@width \textwidth \kern 2.6\p@} % the \hrule is .4pt high and has the width of the text area
\newcommand*{\secondfootnoterule}{\hrule \@width \textwidth \kern -0.4\p@}
\makeatother
\usepackage{blindtext}
\begin{document}
\blindtext[3]\footnote{text}
\blindtext[3]\footnote{text}
\blindtext[4]
\end{document}
由于问题改变而进行编辑,变成了一个完全不同的问题
如果您只是要求在页脚上方添加一条分隔线,该分隔线应仅跨越文本区域的宽度,尽管页码应与列的外边缘对齐\marginpar
,最简单的解决方案是使用包scrlayer-scrpage
。它不仅可以设置与页脚宽度无关的行长,还可以将所有分隔线对齐为居中、内对齐或外对齐。所以
\documentclass[a4paper,12pt,twoside]{article}
\usepackage[T1]{fontenc}
%\usepackage[utf8]{inputenc}% not needed with LaTeX 2018/04/01 or newer
\usepackage{geometry}
\geometry{%
inner=2cm,
outer=4cm,
top=2.5cm,
bottom=2.5cm,
marginparwidth=3cm,
}
\usepackage{parskip}
\usepackage[footwidth=textwithmarginpar,footsepline=0.4pt:text,ilines]{scrlayer-scrpage}
\clearpairofpagestyles
\ofoot*{\pagemark}
\usepackage{blindtext}
\begin{document}
\blinddocument
\end{document}
足以获得:
如果您想要粗体页码,可以使用\addtokomafont{pagefoot}{\bfseries}
。
如果由于某种原因您无法使用scrlayer-scrpage
,则不扩展\headwidth
而是将分页移至外边距将是一个建议,而无需重新定义\footrule
:
\documentclass[a4paper,12pt,twoside,]{article}
\usepackage[T1]{fontenc}
%\usepackage[utf8]{inputenc}% not needed with LaTeX 2018/04/01 or newer
\usepackage{geometry}
\geometry{%
inner=2cm,
outer=4cm,
top=2.5cm,
bottom=2.5cm,
marginparwidth=3cm,
}
\usepackage{parskip}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyfoot[EL]{\makebox[0pt][r]{\makebox[\dimexpr\marginparwidth+\marginparsep\relax][l]{\textbf{\thepage}}}}
\fancyfoot[OR]{\makebox[0pt][l]{\makebox[\dimexpr\marginparwidth+\marginparsep\relax][r]{\textbf{\thepage}}}}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0.4pt}
\fancypagestyle{plain}{}
\usepackage{blindtext}
\begin{document}
\Blinddocument
\end{document}