删除 Lyx 中命名法前的空格

删除 Lyx 中命名法前的空格

我正在使用 Report 类进行论文撰写,并希望删除命名法标题前的空格。我成功地从 LyX 生成了 PDF 预览,但当我将文件导入为 LaTeX plain 时,文件却.tex没有打印出命名法部分。我不知道为什么会发生这种情况。我使用tocloft包来控制目录、图表列表和标题的间距,但我不熟悉命名法部分的命令。我已将命名法的名称更改为缩写列表。我已将 LyX 文件的输出附加到下面。

% Preview source code

%% LyX 2.1.4 created this file.  For more info, see http://www.lyx.org/.
%% Do not edit unless you really know what you are doing.
\documentclass[12pt,english]{report}
\usepackage[latin9]{inputenc}
\usepackage[a4paper]{geometry}
\geometry{verbose,tmargin=30mm,bmargin=22mm,lmargin=20mm,rmargin=30mm,headheight=3mm,headsep=12mm,footskip=10mm}
\setcounter{secnumdepth}{3}
\setcounter{tocdepth}{3}
\usepackage{nomencl}
% the following is useful when we have the old nomencl.sty package
\providecommand{\printnomenclature}{\printglossary}
\providecommand{\makenomenclature}{\makeglossary}
\makenomenclature

\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
\AtBeginDocument{\newgeometry{hmargin=4cm}}
\raggedbottom
\pagenumbering{roman}
\geometry{textheight=245mm, textwidth=160mm, footskip=10mm}
\usepackage{tocloft}
\renewcommand{\cfttoctitlefont}{\hspace*{\fill}\Huge\bfseries}
\renewcommand{\cftaftertoctitle}{\hspace*{\fill}}
\renewcommand{\cftlottitlefont}{\hspace*{\fill}\Huge\bfseries}
\renewcommand{\cftafterlottitle}{\hspace*{\fill}}
\renewcommand{\cftloftitlefont}{\hspace*{\fill}\Huge\bfseries}
\renewcommand{\cftafterloftitle}{\hspace*{\fill}}

\setlength\cftbeforetoctitleskip{-7mm}
\setlength\cftbeforeloftitleskip{-25mm}
\setlength\cftbeforelottitleskip{-4mm}

\setlength\cftaftertoctitleskip{0mm}
\setlength\cftafterloftitleskip{0mm}
\setlength\cftafterlottitleskip{0mm}

\renewcommand\nomname{List of Abbreviations}
\renewcommand{\nomname}{\makebox[\linewidth]{List of Abbreviations}}

\renewcommand\cftchapfont{\fontsize{16}{18}\selectfont}
\setlength{\cftbeforechapskip}{-8pt}
\setlength{\cftbeforesecskip}{-12pt}
\renewcommand\cftsecfont{\fontsize{14}{16}\selectfont}
\setlength{\cftbeforesecskip}{-12pt}
\renewcommand\cftsubsecfont{\fontsize{8}{12}\selectfont}
\setlength{\cftbeforesubsecskip}{-12pt}
\renewcommand\cftsubsubsecfont{\fontsize{8}{12}\selectfont}
\setlength{\cftbeforesubsubsecskip}{-12pt}

\renewcommand{\cftsecfont}{\fontseries{md}\fontsize{14}{16}\selectfont}
\renewcommand{\cftsubsecfont}{\fontseries{md}\fontsize{12}{14}\selectfont}
\renewcommand{\cftsubsubsecfont}{\fontseries{md}\fontsize{10}{12}\selectfont}

\renewcommand{\cftsecpagefont}{\fontseries{md}\fontsize{14}{16}\selectfont}
\renewcommand{\cftsubsecpagefont}{\fontseries{md}\fontsize{12}{14}\selectfont}
\renewcommand{\cftsubsubsecpagefont}{\fontseries{md}\fontsize{10}{12}\selectfont}

\usepackage{titlesec}
\titleformat{\chapter}[display]{\normalfont\LARGE\bfseries}{\chaptertitlename\ \thechapter}{15mm}{\LARGE}

\titlespacing*{\chapter}{0mm}{50mm}{15mm}
\titlespacing*{\section}{0pt}{15mm}{15mm}
\titlespacing*{\subsection}{0pt}{15mm}{15mm}
\titlespacing*{\subsubsection}{0pt}{10mm}{10mm}


\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[LE]{\thepage}
\fancyhead[RE]{Chapter\space{\thechapter,\space\space}Section\space{\thesection}}
\fancyhead[RO]{\thepage}
\fancyhead[LO]{\nouppercase\rightmark}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{#1}}

\makeatother

\usepackage{babel}
\begin{document}
\tableofcontents{}\settowidth{\nomlabelwidth}{X-Y}
\printnomenclature{}\nomenclature{X-Y}{XY}
\end{document}

答案1

打印命名法并不像在文件\printnomenclature中添加命令那么简单.tex。事实上,LyX 会完成所有后台工作,过程PDF 输出中打印的命名法。具体来说,由于其命名法使用nomencl,处理是使用makeindex

如果您打算使用 LyX 构建文档草稿,然后将其提取到.tex最终处理,则需要包含makeindex处理步骤。以下是nomencl文档(部分2.1 基础知识):

命名列表的创建与索引的创建非常相似。您需要:

  • 放入\usepackage[<options>]{nomencl}文档的序言中。

  • 放入\makenomenclature文档的序言中。

  • 对要包含在命名法列表中的每一个符号发出该\nomenclature命令。此命令的最佳位置是第一次引入符号后立即发出。

  • 将其放在\printnomenclature您想要保存命名列表的地方。

现在将您的文件放入 LaTeX。该命令\makenomenclature 将指示 LaTeX 打开<filename>.nlo与您的 LaTeX 文件相对应的命名文件,并将您的命令<filename>.tex中的信息写入此文件。\nomenclature

以上所有内容应按原样从导出的.tex文件中工作。接下来的步骤由 LyX 内部完成,但您必须将它们添加到常规流程中:

下一步是调用makeindex。您应该指示makeindex 使用<filename>.nlo作为输入文件,使用nomencl.ist作为样式文件,并将输出写入文件<filename>.nls。如何执行此操作取决于 的实现makeindex。对于大多数 Unix 实现,您应该编写类似

makeindex <filename>.nlo -s nomencl.ist -o <filename>.nls

现在,您拥有包含正确排序的命名法列表的文件。最后一步是再次<filename>.nls在主文件上调用 LaTeX 。它将输入您的文件并根据当前选项对其进行处理。就这样!<filename>.tex.nls


使用文档中的示例nomencl,以及来自的一些想法如何减少章节标题前的间距?,我们可以删除(章节)命名法上方的间距:

在此处输入图片描述

\documentclass{report}

\usepackage{nomencl}
\makenomenclature

\begin{document}

\section*{Main equations}
\begin{equation}
a=\frac{N}{A}
\end{equation}%
\nomenclature{$a$}{The number of angels per unit area}%
\nomenclature{$N$}{The number of angels per needle point}%
\nomenclature{$A$}{The area of the needle point}%
The equation $\sigma = m a$%
\nomenclature{$\sigma$}{The total mass of angels per unit area}%
\nomenclature{$m$}{The mass of one angel}
follows easily.

\printnomenclature

\begingroup
\let\oldvspace\vspace
\renewcommand{\vspace}[2]{\let\vspace\oldvspace}
\printnomenclature
\endgroup

\end{document}

在上面的例子中,我打印了两次 Nomenclature。第一次显示章节上方的默认间距,而第二次则\vspace*{50\p@}删除了空格 ( )。

相关内容