多列之前和之后的水平线

多列之前和之后的水平线

我正在尝试制作一个部分模仿 macOS 的 Calendar.app“列表”打印格式的输出的文档,它看起来像这样:

模型文档顶部的屏幕截图

我感兴趣的部分是将列分隔线与水平线连接起来。页面底部也发生了类似的情况。

(请注意,虽然这看起来有点像表格,但在我的应用程序中,每个标题下会有不同数量的文本。)

这是我迄今为止的尝试:

\documentclass[12pt]{article}
\usepackage[vmargin=0.5in, hmargin=0.25in, footskip=0.25in]{geometry}
\usepackage{microtype}
\usepackage{multicolrule}
    \SetMCRule{width=0.4pt, line-style=solid, extend-fill, extend-top=1ex}
    %\setlength{\multicolsep}{0pt}
\usepackage{lastpage}
\usepackage{fancyhdr}
    \fancyhead[L,C,R]{}
    \renewcommand{\headrulewidth}{0pt}
    \fancyfoot[L,C]{}
    \fancyfoot[R]{\footnotesize Page \thepage/\pageref{LastPage}}
    \renewcommand{\footrulewidth}{0.4pt}
    \pagestyle{fancy}

\renewcommand{\familydefault}{\sfdefault}
\setlength{\parindent}{0pt}

\begin{document}
{\LARGE\bfseries Header}

%\rule[-2.5pt]{\textwidth}{0.4pt}
\rule{\textwidth}{0.4pt}

\begin{multicols*}{2}
    {\Large\bfseries Section Head}\\\smallskip
    \textbf{Some details}\\
    \textbf{Location:} Other, less important details\\
    more less important details\\\smallskip

    \textbf{Some details}\\
    \textbf{Location:} Other, less important details\\
    more less important details\\\smallskip
    \hspace{\fill}\rule{0.95\columnwidth}{0.4pt}\hspace{\fill}

    {\Large\bfseries Second Section}\\\smallskip
    etc.
\end{multicols*}
\end{document}

我使用了multicolrule的选项extend-fill将 colseprule 移到页面底部,并使用其extend-top选项为初始文本留出一些喘息空间。

我曾经\rule在页面顶部创建规则,并且尝试使用不同的拖拽值来使线条相交,但是当我开始在它们之间进行二进制搜索时1pt5pt我认为这种方法太脆弱了。

对于底部规则,我尝试使用fancyhdr的脚规则,但不幸的是,除了宽度之外,它没有提供任何配置挂钩。我尝试重新定义排版规则的命令,但再次发现自己采取了我在顶部规则中拒绝的脆弱方法。

有没有更好的方法来实现这一点?

答案1

您可以使用custom-line选项来multicolrule绘制水平规则和垂直规则。这需要使用tikz

\documentclass[12pt]{article}
\usepackage[vmargin=0.5in, hmargin=0.25in, footskip=0.25in]{geometry}
\usepackage{microtype}
\usepackage[tikz]{multicolrule}
\usetikzlibrary{calc}
\usepackage{lastpage}
\usepackage{fancyhdr}
\fancyhead[L,C,R]{}
\renewcommand{\headrulewidth}{0pt}
\fancyfoot[L,C]{}
\fancyfoot[R]{\footnotesize Page \thepage/\pageref{LastPage}}
\pagestyle{fancy}

\renewcommand{\familydefault}{\sfdefault}
\setlength{\parindent}{0pt}

\SetMCRule{width=0.4pt, extend-top=2pt, extend-bot=-2pt, custom-line={
    \coordinate (TOPLEFT) at ($(TOP)-(\columnwidth+.5\columnsep,\columnseprule)$);
    \coordinate (TOPRIGHT) at ($(TOP)+(\columnwidth+.5\columnsep,-\columnseprule)$);
    \coordinate (BOTLEFT) at ($(BOT)-(\columnwidth+.5\columnsep,-\columnseprule)$);
    \coordinate (BOTRIGHT) at ($(BOT)+(\columnwidth+.5\columnsep,\columnseprule)$);
   \draw[line width=\columnseprule] (TOPLEFT) -- (TOPRIGHT)
   (TOP) -- (BOT) (BOTLEFT) -- (BOTRIGHT);}}

\begin{document}
  {\LARGE\bfseries Header}

\begin{multicols*}{2}
    {\Large\bfseries Section Head}\\\smallskip
    \textbf{Some details}\\
    \textbf{Location:} Other, less important details\\
    more less important details\\\smallskip

    \textbf{Some details}\\
    \textbf{Location:} Other, less important details\\
    more less important details\\\smallskip
    \hspace{\fill}\rule{0.95\columnwidth}{0.4pt}\hspace{\fill}

    {\Large\bfseries Second Section}\\\smallskip
    etc.
  \end{multicols*}
\end{document}

结果:

在此处输入图片描述

相关内容