编辑:

编辑:

我有一个类文件,它定义了页边距和章节/节标题格式。表格、图像和页码在页边距内正确居中显示,但我的章节图块似乎居中,而没有考虑左侧的额外页边距。我是 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已经在类中定义,如bookscrbook(然后命令\mainmatter和也是\backmatter已知的)。最好使用另一个名称来达到您的目的...是

答案2

删除

\advance\hsize by -\@pnumwidth

从目录命令中可以解决问题。我不知道它为什么在那里,但它似乎不会对论文结构产生不利影响。

相关内容