横跨页面的水平线,页边距不对称

横跨页面的水平线,页边距不对称

我想绘制一条横跨整个页面的水平线。以前我一直使用这个答案,但我发现它在边距不对称的页面上无法正常工作(例如2in左边和1in右边,或反之亦然)。

我确实想出了一种在所有常见情况下都有效的方法,但它有点丑陋:

\noindent\hspace*{-\paperwidth}\makebox[\linewidth]{\rule{4\paperwidth}{2pt}}

你有什么建议吗?

下面是一个可供玩的 MWE。

\documentclass{article}
\usepackage[left=2in,right=1in]{geometry}
% \usepackage[left=1in,right=2in]{geometry}
% \usepackage[left=1in,right=1in]{geometry}

\begin{document}

\noindent\makebox[\linewidth]{\rule{\paperwidth}{2pt}}
% \noindent\hspace*{-\paperwidth}\makebox[\linewidth]{\rule{4\paperwidth}{2pt}}

\end{document}

答案1

此解决方案使用 TikZ。记得运行两次。

\documentclass[10pt,a4paper]{article}
\usepackage[left=2in, right=1in]{geometry}
\usepackage{lipsum}
\usepackage{tikz}
\begin{document}

\lipsum[1]

\begin{tikzpicture}[remember picture, overlay]
  \coordinate (baseline) at (0,{0.5\ht\strutbox-0.5\dp\strutbox});
  \draw (current page.west |- baseline) -- (current page.east |- baseline);
\end{tikzpicture}

\lipsum[1]
\end{document}

答案2

在此处输入图片描述

\documentclass[10pt,a4paper]{article}

\usepackage[left=2in, right=1in]{geometry}
\usepackage{lipsum}
\begin{document}

    \newcommand{\dividepage}{%
        \par\noindent
        \makebox[\linewidth]{\raisebox{.2\baselineskip}{\makebox[2\paperwidth]{\hrulefill}}}%
        \par
    }

        \lipsum[1]
        
        \dividepage
        
        \lipsum[1]
\end{document}

相关内容