在撰写论文的过程中,我发现命名法中由 创建的长行longtable
总是超出序言中的长度限制geometry
。你能建议我如何解决这个问题吗?以下是相关代码。谢谢您的帮助。
\documentclass[12pt,a4paper,twoside]{report}
\usepackage{geometry}\geometry{top=3cm,bottom=3cm,left=3.7cm,right=2.5cm}
\clearpage
\chapter*{Nomenclature}
\addcontentsline{toc}{chapter}{Nomenclature}
\quad\; \textbf{\Large{Roman Letters}} \\
\begin{longtable}{p{50pt}p{400pt}}
$a$ & This is a long explanation of the symbol $a$ \\
\end{longtable}
答案1
您的 MWE 不完整(缺少\usepackage{longtable}
环境document
)。以下是小修改,可创建完整的文档来演示问题:
\documentclass[12pt,a4paper,twoside]{report}
\usepackage{longtable}
\usepackage[showframe]{geometry}
\geometry{top=3cm,bottom=3cm,left=3.7cm,right=2.5cm}
\begin{document}
\chapter*{Nomenclature}
\begin{longtable}{p{50pt}p{400pt}}
\hline
$a$ & This is a long explanation of the symbol $a$ \\
\end{longtable}
\end{document}
该showframe
选项是一个有用的调试选项,它显示页面布局,我已添加它\hline
来演示表格的整个宽度,从而显示出过满的问题:
抄本 ( .log
) 文件显示了页面尺寸。相关值为:
* \textwidth=421.10089pt
因此文本总宽度为 421.10089pt。longtable
开头为:
\begin{longtable}{p{50pt}p{400pt}}
因此第一列为 50pt,第二列为 400pt,50pt+400pt=450pt,这意味着它已经比文本宽度宽,但列之间还有空间,在本例中是 值的 4 倍\tabcolsep
。您可以通过添加来找到这个值
\showthe\tabcolsep
在 之前longtable
。这显示了成绩单中的价值:
> 6.0pt.
l.9 \showthe\tabcolsep
因此,表格的总宽度为 4 × 6pt + 450pt = 474pt。由于文本宽度为 421.10089pt,这意味着表格太宽了 52.89911pt,LaTeX 会在转录文件中告知您:
Overfull \hbox (52.89911pt too wide) in alignment at lines 9--12
因此,您必须缩小一列或两列的宽度。例如:
\begin{longtable}{p{50pt}p{347pt}}
或者,您可以使用更自动化的方法,如下所示:
\documentclass[12pt,a4paper,twoside]{report}
\usepackage{geometry}
\geometry{top=3cm,bottom=3cm,left=3.7cm,right=2.5cm}
\usepackage[symbols,record,style=alttreegroup]{glossaries-extra}
\glsxtrsetgrouptitle{roman}{Roman Letters}
\glsxtrsetgrouptitle{greek}{Greek Letters}
\glsxtrnewsymbol
[group=roman,
description={This is a long explanation of the symbol $a$}]
{a}{$a$}
\glsxtrnewsymbol
[group=roman,
description={This is a long explanation of the symbol $b$}]
{b}{$b$}
\glsxtrnewsymbol
[group=greek,
description={This is a long explanation of the symbol $\alpha$}]
{alpha}{$\alpha$}
\glsxtrnewsymbol
[group=greek,
description={This is a long explanation of the symbol $\beta$
with some filler text to make the explanation longer.}]
{beta}{$\beta$}
% set up the width available for the symbol:
\setglossarypreamble[symbols]{\glssetwidest{MMMMM}}
\begin{document}
\tableofcontents
\printunsrtglossary[type=symbols,title={Nomenclature}]
\end{document}