标题中的递增和 \hrulefill 问题

标题中的递增和 \hrulefill 问题

我遇到了两个问题,但我认为它们可能相关。下面是 MWE。我正在使用 LuaLaTeX 进行编译。

这里有两个问题。首先,我有一个计数器宏,它以 1 为增量。当我将该计数器宏放在标题中时,它会以一些奇怪的数字递增。(我的实际文档以 3 为增量,但下面的 MWE 以 4 为增量。我不知道为什么。)

其次,我正在使用该vwcol包,但有一个\hrulefill命令似乎超出了页面的边缘。见下图。

因此,从根本上来说,我认为我对标头的工作方式存在根本性的误解。如有任何澄清,我将不胜感激。

\documentclass[10pt]{article}
\usepackage{lipsum}
\usepackage{vwcol}
\usepackage{geometry} % to change the page dimensions
    \geometry{a4paper} % or letterpaper (US) or a5paper or....
    \geometry{margin=1.0in}
\usepackage{fontspec}
    \setmainfont{Verdana}

\newcommand{\makeheader}[3]{
    \begin{vwcol}[widths={0.55,0.45}, sep=.8cm, justify=flush,rule=0pt] 
    \textbf{School} - \textbf{Stats 101}\\[0.01in]
    \textbf{#1}\\[0.01in]
    \textbf{#2}\\[0.01in]
    \\
    \textbf{Name \hrulefill}\\[0.01in]
    \textbf{Date \underline{#3} Block \hrulefill}\\[0.01in]
    \end{vwcol}
    \smallskip\hrule\bigskip 
}


\newcounter{wsnum}
\newcommand{\wscounter}{\stepcounter{wsnum}\#\thewsnum\,}
\newcounter{wsappliednum}
\newcommand{\wsappcounter}{\stepcounter{wsappliednum}\#\thewsappliednum\,}


\begin{document}
\makeheader{First Page}{Unit 1, Ch 1, WS \wscounter}{23-26 Aug 2019}
\wsappcounter \lipsum[1]

\newpage
\makeheader{Second Page}{Unit 1, Ch 2, WS \wscounter}{23-26 Aug 2019}
\wsappcounter\lipsum[2]


\newpage
\makeheader{Third Page}{Unit 1, Ch 3, WS \wscounter}{23-26 Aug 2019}
\wsappcounter\lipsum[3]

\end{document}

最小工作示例图像

答案1

其实,这两个问题的根源都是vwcol。在文献的第一页,作者写道:“由于处理这样的事情很困难,除了文本是允许的(可以自由尝试,但要自己决定)。”为了将文本放入不等的列中,必须多次操作文本——每次计数器都会增加,从而产生意想不到的结果。错误的格式(错误的规则)源于相同的复杂处理。

这两个问题的答案是使用两种\parbox构造:

\documentclass[10pt]{article}
\usepackage{lipsum}
\usepackage{vwcol}
\usepackage{geometry} % to change the page dimensions
    \geometry{a4paper} % or letterpaper (US) or a5paper or....
    \geometry{margin=1.0in}
\usepackage{fontspec}
    %\setmainfont{Verdana}

\newcommand{\makeheader}[3]{%
    \noindent
    \parbox{0.55\textwidth}{%
    \textbf{School} - \textbf{Stats 101}\\[0.01in]
    \textbf{#1}\\[0.01in]
    \textbf{#2}\\[0.01in]
    }%
    \parbox{0.45\textwidth}
    {\textbf{Name \hrulefill}\\[0.01in]
    \textbf{Date \underline{#3} Block \hrulefill}\\[0.01in]
    \smallskip}
    \hrule
    \bigskip
}


\newcounter{wsnum}
\newcommand{\wscounter}{\stepcounter{wsnum}\#\thewsnum\,}
\newcounter{wsappliednum}
\newcommand{\wsappcounter}{\stepcounter{wsappliednum}\#\thewsappliednum\,}


\begin{document}
\makeheader{First Page}{Unit 1, Ch 1, WS \wscounter}{23-26 Aug 2019}
\wsappcounter \lipsum[1]

\newpage
\makeheader{Second Page}{Unit 1, Ch 2, WS \wscounter}{23-26 Aug 2019}
\wsappcounter\lipsum[2]


\newpage
\makeheader{Third Page}{Unit 1, Ch 3, WS \wscounter}{23-26 Aug 2019}
\wsappcounter\lipsum[3]

\end{document}

在此处输入图片描述在此处输入图片描述 在此处输入图片描述

答案2

也许自动标题会更实用?

\documentclass[10pt]{article}
\usepackage{lipsum}
\usepackage{vwcol}
\usepackage{geometry} % to change the page dimensions
    \geometry{a4paper} % or letterpaper (US) or a5paper or....
    \geometry{margin=1.0in}
\usepackage{fontspec}
    \setmainfont{Verdana}

\newcommand{\makeheader}[3]{%
    \stepcounter{wsnum}
    \def\mypage{#1}
    \def\myunit{#2 \#\thewsnum}
    \def\mydate{#3}
}


\newcounter{wsnum}
\newcommand{\wscounter}{\stepcounter{wsnum}\#\thewsnum}

\usepackage{fancyhdr}

\pagestyle{fancy}
\fancyhead{
    \begin{minipage}[t]{.5\textwidth}%
        \textbf{School} - \textbf{Stats 101}\\[0.01in]
        \textbf{\mypage}\\[0.01in]
        \textbf{\myunit}
    \end{minipage}%
    \begin{minipage}[t]{.5\textwidth}% 
        \textbf{Name }\hrulefill\\[0.01in]
    \textbf{Date }\underline{\mydate} \textbf{Block }\hrulefill\\[0.01in]
    \mbox{}\\
  \end{minipage}%
}

\setlength{\headheight}{2.5cm}

\begin{document}

\makeheader{First Page}{Unit 1, Ch 1, WS}{23-26 Aug 2019}
\noindent\lipsum[1]

\newpage
\makeheader{Second Page}{Unit 1, Ch 2, WS}{23-26 Aug 2019}
\noindent\lipsum[2]

\newpage
\makeheader{Third Page}{Unit 1, Ch 3, WS}{23-26 Aug 2019}
\noindent\lipsum[3]

\end{document}

在此处输入图片描述

相关内容