【问题标题】:Latex borders are drawn too far on table乳胶边框在桌子上画得太远
【发布时间】:2023-02-09 04:57:46
【问题描述】:

我不知道为什么,但边界似乎画得太远了?我的意思是边框的顶部,也许页眉中的其他一些点和页脚太长/流过它们应该的地方(见下图)。

奇怪的边界:

\documentclass{article}
\usepackage{makecell,multirow,tabularx}
\usepackage{graphicx}
\usepackage{xcolor,colortbl}
\usepackage{booktabs}

\usepackage[includefoot,margin=0.30in,headsep=0.0in,bottom=2.3in,footskip=0.125in]{geometry}
\setlength{\headheight}{110pt}

\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0pt}

\definecolor{tamu}{HTML}{500000}
\definecolor{lightgray}{HTML}{e9e7e8}

\usepackage{nicematrix}
\usepackage{booktabs}

\fancyhead[C]{

    \begin{NiceTabularX}{\textwidth}{| l | X | l |}[rules/color=tamu,rules/width=1mm]
    \CodeBefore
        \rowlistcolors{1}{red!15}
    \Body
    
    \toprule[1mm]
    Experiment Number       &       Experiment      &   Date                            \\[5pt]
                            &                       & \qquad  / \qquad  / \qquad\qquad\qquad  \\[5pt]
    \midrule[1mm]
    Name                    &       Lab Partners    &   CRN                             \\[5pt]
                            &                       &   \\[5pt]
    \bottomrule[1mm]
    \end{NiceTabularX}

}

\fancyfoot[c]{

    \begin{NiceTabularX}{\textwidth}{| X | X | X | X |}[rules/color=tamu,rules/width=1mm]
    \CodeBefore
        \rowlistcolors{1}{red!15}
    \Body
    
    \midrule[1mm]
    Signature               & Date                              & TA                & Date          \\[6pt]
                            &\qquad\qquad  / \qquad\qquad  / \qquad\qquad   &                   & \qquad\qquad  / \qquad\qquad  / \qquad\qquad \\[5pt]
    \bottomrule[1mm]
    \end{NiceTabularX}

}

\usepackage[T1]{fontenc}    
\usepackage[most]{tcolorbox}
\usepackage{lmodern} 
\usepackage{lipsum}

\begin{document}

\begin{tcolorbox}[enhanced,fit to height=\textheight,colframe=tamu,arc=0pt,outer arc=0pt,boxrule=1mm]

\end{tcolorbox}

\end{document}

这是供参考的完整输出:

【问题讨论】:

    标签: latex


    【解决方案1】:

    您可以使用 tabularray 包而不是 nicematrix 来避免此问题:

    documentclass{article}
    usepackage{makecell,multirow,tabularx}
    usepackage{graphicx}
    usepackage{xcolor,colortbl}
    usepackage{booktabs}
    usepackage{tabularray}
    
    usepackage[includefoot,margin=0.30in,headsep=0.0in,bottom=2.3in,footskip=0.125in]{geometry}
    setlength{headheight}{110pt}
    
    usepackage{fancyhdr}
    pagestyle{fancy}
    
    enewcommand{headrulewidth}{0pt}
    
    definecolor{tamu}{HTML}{500000}
    definecolor{lightgray}{HTML}{e9e7e8}
    
    usepackage{nicematrix}
    usepackage{booktabs}
    
    ancyhead[C]{    
        egin{tblr}{
          colspec={Q[l,valign=t]XQ[2.7cm]},
          cells={red!15},
          hlines = {1mm,tamu},
          vlines = {1mm,tamu},
        }
        Experiment Number       &       Experiment      &   Date par mbox{}qquad  / qquad  / hfill   par    mbox{}                  \
        Name                    &       Lab Partners    &   CRN  par  mbox{}    par mbox{}                    \
        end{tblr}
    
    }
    
    
    
    usepackage[T1]{fontenc}    
    usepackage[most]{tcolorbox}
    usepackage{lmodern} 
    usepackage{lipsum}
    
    egin{document}
    
    egin{tcolorbox}[enhanced,fit to height=	extheight,colframe=tamu,arc=0pt,outer arc=0pt,boxrule=1mm]
    
    end{tcolorbox}
    
    end{document}
    

    【讨论】:

    • 你太棒了,再次感谢 :) 不过我确实有一个问题,你能解释一下 Date par mbox{}qquad / qquad / hfill par mbox{}CRN par mbox{} par mbox{} 的作用吗,我不习惯看到 parmbox{}hfill。另外,您如何找到存在的包/要使用的包?我之前没有听说过tblr,因为我对乳胶比较陌生,所以知道如何更好地使用包并找到它们会很好。再次感谢你 :)
    • @BrightonSikarskie 不客气! par mbox{} 位是向单元格添加新行的快速技巧。虽然 tabularray 确实有一个内置的方式来指定行的高度,但文本的垂直对齐方式与您的示例中的有点不同,所以我改用了这个 hack。如何查找包裹?体验一下,关注 ctan ctan.org/ctan-ann 上的公告,看看有什么新鲜事,github.com/samcarter/PackageOfTheDay 也可能很有趣。
    【解决方案2】:

    (我是nicematrix 的作者)。

    你看到的现象的解释有点棘手。

    我们可以说有两种规则:

    • 那些由 TeX hrulerule 原语绘制的。 LaTeX 的命令hlinebooktabs 的命令 oprulemidruleottomrule 在内部使用这些规则。

    • PGF/Tikz 制定的规则。在某些方面,这些规则不是使用 TeX 原语(special 除外)绘制的,而是使用 PDF 的语法直接在 PDF 文件中绘制的。 nicematrix 包使用 PGF/Tikz 制定规则。

    在生成的 PDF 中,这两种规则并未使用相同的语法进行准确描述。因此,PDF 查看器有时会遇到一些困难,并且您会看到问题的工件。

    在您的示例中,如果您使用 Hline 而不是 opruleottomrule,您将获得完美的输出。

    当然,你没有booktabs oprule添加的垂直间距,但是可以使用nicematrix提供的键cell-space-top-limit来调整规则和文本之间的垂直间距。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-20
      • 1970-01-01
      • 2020-01-28
      • 1970-01-01
      • 2023-02-09
      • 2014-01-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多