我有一个类文件,它定义了页边距和章节/节标题格式。表格、图像和页码在页边距内正确居中显示,但我的章节图块似乎居中,而没有考虑左侧的额外页边距。我是 LaTeX 新手,我没有编写类文件,所以我不知道如何解决这个问题。
下面是类文件的片段.cls
和我如何定义章节的示例。
\RequirePackage{titlesec}
\usepackage{geometry}
\geometry
{
letterpaper,
top=1in,
left=1.5in,
bottom=1in,
right=1in
}
\renewcommand\thechapter{\Roman{chapter}}
\titleformat{\chapter}[display]
{\normalfont\bfseries\centering}{\MakeUppercase{\chaptertitlename}\ \thechapter}{0pt}{\uppercase}
\titlespacing{\chapter}{0em}{0em}{1em}
使用片段:
\documentclass{class}
\begin{document}
\chapter{Evaluation}
\end{document}
我的标题如下
更新下面说明了我的问题
\documentclass{report}
\usepackage{blindtext}
\usepackage[showframe]{geometry} % <====================================
\geometry
{
letterpaper,
top=1in,
left=1.5in,
bottom=1in,
right=1in
}
\makeatletter
\renewcommand\tableofcontents{%
\section*{\huge\contentsname
\@mkboth{%
\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}
\pretolerance=10000\raggedright
\advance\hsize by -\@pnumwidth
\renewcommand{\baselinestretch}{1}\large\normalsize
\parskip\baselineskip
\@starttoc{toc}%
}
\renewcommand\listoffigures{%
\section*{\huge\listfigurename
\@mkboth{%
\MakeUppercase\listfigurename}{\MakeUppercase\listfigurename}}
\pretolerance=10000\raggedright
\advance\hsize by -\@pnumwidth
\renewcommand{\baselinestretch}{1}\large\normalsize
\parskip\baselineskip
\@starttoc{lof}%
}
\renewcommand\listoftables{%
\section*{\huge\listtablename
\@mkboth{%
\MakeUppercase\listtablename}{\MakeUppercase\listtablename}}
\pretolerance=10000\raggedright
\advance\hsize by -\@pnumwidth
\renewcommand{\baselinestretch}{1}\large\normalsize
\parskip\baselineskip
\@starttoc{lot}%
}
\makeatother
\usepackage[toc]{appendix}
\RequirePackage{titlesec}
\RequirePackage{setspace}
\doublespacing
%%% -- titlesec formatting -- %%%
\renewcommand\thechapter{\Roman{chapter}}
\titleformat{\chapter}[display]
{\normalfont\bfseries\centering}{\MakeUppercase{\chaptertitlename}\ \thechapter}{0pt}{\uppercase}
\titlespacing{\chapter}{0em}{0em}{1em}
\newcommand{\normal}[1]{\normalfont\normalsize \begin{center}#1\end{center} }
\newcommand{\frontmatter}
{
\newpage
\renewcommand{\contentsname}{\normal{TABLE OF CONTENTS} }
\tableofcontents
\addtocontents{toc}{\hspace{0em}CHAPTER\par}
\newpage
\renewcommand{\listfigurename}{\normal{\begin{center}LIST OF FIGURES\end{center} }}
\listoffigures
\newpage
\renewcommand{\listtablename}{\normal{\begin{center}LIST OF TABLES\end{center} }}
\listoftables
\newpage
\pagenumbering{arabic}
\doublespacing
}
\begin{document}
\frontmatter
\chapter{Evaluation}
\blindtext
\begin{figure}
\label{Figure 1}
\caption{Figure 1}
\end{figure}
\begin{table}
\label{Table 1}
\caption{Table 1}
\end{table}
\end{document}
注意每个列表(即目录、图片、表格)后面的内容似乎在右侧有一个额外的边距。直到最后实际内容和标题偏离中心。
答案1
好吧,我根据您给出的代码创建了一个 MWE。它反映了您的情况吗?
为了可视化打字区域和边距,我添加了[showframe]
选项geometry
。
使用以下可编译的 MWE
\documentclass{report}
\usepackage{titlesec}
\usepackage{blindtext} % <========================= to create dummy text
\usepackage[showframe]{geometry} % <====================================
\geometry{%
letterpaper,
top=1in,
left=1.5in,
bottom=1in,
right=1in
}
\renewcommand\thechapter{\Roman{chapter}}
\titleformat{\chapter}[display]
{\normalfont\bfseries\centering}{\MakeUppercase{\chaptertitlename}\ \thechapter}{0pt}{\uppercase}
\titlespacing{\chapter}{0em}{0em}{1em}
\begin{document}
\chapter{Evaluation}
\blindtext
\end{document}
我得到以下结果:
现在您可以看到(红色箭头)章节标题位于打字区域的中央......
如果我的 MWE 没有显示您的情况,请将其复制到您的计算机,将其更改为显示您的结果并将其添加到您的问题中......
编辑:
嗯,使用不完整的模板并不总是一个好主意。请仅使用您了解其功能的代码!
使用的线路
\advance\hsize by -\@pnumwidth
在您的命令中\tableofcontents
,\listoffigures
并\listoftables
更改本地\hsize
。它\hsize
通过减去\@pnumwidth
(1.5em)来更改。
这就是为什么图表列表和表格列表中的页码向右移动的原因。 而在您的文档中,您会看到向右移动,因为您的文本无法再到达右侧的打字区域:
使用以下新的 MWE (我注释了所有三个命令\advance
)
\documentclass{report}
\usepackage{blindtext}
\usepackage{graphicx}
\usepackage[showframe]{geometry}
\geometry
{
letterpaper,
top=1in,
left=1.5in,
bottom=1in,
right=1in
}
\makeatletter
\renewcommand\tableofcontents{%
\section*{\huge\contentsname
\@mkboth{\MakeUppercase\contentsname}%
{\MakeUppercase\contentsname}}
\pretolerance=10000\raggedright
% \advance\hsize by -\@pnumwidth % <==================================
\renewcommand{\baselinestretch}{1}\large\normalsize
\parskip\baselineskip
\@starttoc{toc}%
}
\renewcommand\listoffigures{%
\section*{\huge\listfigurename
\@mkboth{%
\MakeUppercase\listfigurename}{\MakeUppercase\listfigurename}}
\pretolerance=10000\raggedright
% \advance\hsize by -\@pnumwidth % <==================================
\renewcommand{\baselinestretch}{1}\large\normalsize
\parskip\baselineskip
\@starttoc{lof}%
}
\renewcommand\listoftables{%
\section*{\huge\listtablename
\@mkboth{%
\MakeUppercase\listtablename}{\MakeUppercase\listtablename}}
\pretolerance=10000\raggedright
% \advance\hsize by -\@pnumwidth % <==================================
\renewcommand{\baselinestretch}{1}\large\normalsize
\parskip\baselineskip
\@starttoc{lot}%
}
\makeatother
\usepackage[toc]{appendix}
\usepackage{titlesec}
\usepackage{setspace}
\doublespacing
%%% -- titlesec formatting -- %%%
\renewcommand\thechapter{\Roman{chapter}}
\titleformat{\chapter}[display]
{\normalfont\bfseries\centering}{\MakeUppercase{\chaptertitlename}\ \thechapter}{0pt}{\uppercase}
\titlespacing{\chapter}{0em}{0em}{1em}
\newcommand{\normal}[1]{\normalfont\normalsize \begin{center}#1\end{center} }
\newcommand{\frontmatter}
{
\newpage
\renewcommand{\contentsname}{\normal{TABLE OF CONTENTS} }
\tableofcontents
\addtocontents{toc}{\hspace{0em}CHAPTER\par}
\newpage
\renewcommand{\listfigurename}{\normal{\begin{center}LIST OF FIGURES\end{center} }}
\listoffigures
\newpage
\renewcommand{\listtablename}{\normal{\begin{center}LIST OF TABLES\end{center} }}
\listoftables
\newpage
\pagenumbering{arabic}
\doublespacing
}
\begin{document}
\frontmatter
\chapter{Evaluation}
\blindtext
\begin{figure}
\includegraphics{example-image-a}
\caption{Figure 1}\label{Figure 1}
\end{figure}
\blindtext
\begin{table}
\caption{Table 1}\label{Table 1}
\end{table}
\end{document}
您将获得通常的布局:
文本的正确布局:
只是一句:该命令\frontmatter
已经在类中定义,如book
或scrbook
(然后命令\mainmatter
和也是\backmatter
已知的)。最好使用另一个名称来达到您的目的...是
答案2
删除
\advance\hsize by -\@pnumwidth
从目录命令中可以解决问题。我不知道它为什么在那里,但它似乎不会对论文结构产生不利影响。