草庐IT

Latex:目录和标题

季夏月 2023-04-18 原文

0、基本概念介绍

  • 标题一般有三个部分组成:标签+间隔+标题文字

       标签label即序号,例如“1. 这是一个标题”中的“1.”就是label

  • 章节分为以下几个层级
    • -1 part
    • 0 chapter
    • 1 section
    • 2 subsection
    • 3 subsubsection
    • 4 paragraph
    • 5 subparagraph

     不同的文章类型,包含不同的层级。article最高层级为section

1、设置目录的格式

package: titletoc

command: titlecontents

\titlecontents{标题名}[左间距]{标题格式}{标题标志}{无序号标题}{指引线与页码}[下间距]

  • 标题名 设置所需修改的某一层次标题格式的标题名,如chapter、section等层次标题名,或是table和figure图表标题名
  • 左间距 可选参数,不能省略
  • 标题格式 设置标题的整体格式,如字体、字体尺寸、与上一个标题的垂直距离等。该参数可空置。
  • 标题标志 设置标题标志的格式,如序号格式、序号宽度、序号与标题内容之间的间距等。该参数不能空置, 否则标题将无标题标志。
  • 无序号标题 设置无序号标题的格式, 如字体、字体尺寸等。 该参数可以空置
  • 指引线与页码 设置标题与页码之间的指引线样式以及页码的格式, 该参数如果空置,标题将无指引线和页码。
  • 下间距 可选参数, 用于设置标题排版后还需要执行的命令, 例如与下个标题的垂直间距等。该参数常被省略。

参考:LaTeX目录定制——titlecontents - 简书 (jianshu.com)

Example:

\tableofcontents
\titlecontents{subsection}{3em}{}%                 %3em设置subsection 与section 文字开始的水平距离
              {\contentslabel{3.25em}}%            %3.25em设置的是序号label和标题文字之间的距离
              {}%
              {\titlerule*[0.5pc]{.}\contentspage}{} %设置的是显示页数的格式为"..........8"

2、设置标题的格式

package: titlesec

command: titleforamt

\titleformat{command}[shape]{format}{label}{sep}{before}[after]

  • command 是要重新定义的各种标题命令,比如 \part,\chapter,\section,\s section,\s s section,\paragraph,\subparagraph等;
  • shape 是用来设定段落形状的,可选的参数有hang、block、display等,详见 titlesec 文档;
  • format 用于定义标题外观,比如使标题居中、字体加粗等;
  • label 用于定义定义标题的标签,就是标题内容前面的标号;label中使用thesection, thechapter等表示默认的序号。[用于修改编号格式]
  • sep 定义标题的标签与标题内容之间的间隔距离;
  • before 用于在标题内容前再加些内容;
  • after 用于在标题内容后再加些内容。

Example:

\titleformat{\chapter}{\centering\Huge\bfseries}{第\,\thechapter\,章}{1em}{}

format参数将章标题设置为居中(\centering)显示、字号为 \Huge,字体被加粗显示\bfseries ; label 参数将标题的标签设置为 “第 xxx 章”格式;sep 参数设置标签与标题内容之间以一个字(1em)的宽度为间隔。

当采用该方式设置标题格式时,所有层级均需要设置,否则latex会出现错误

参考链接:LaTeX使用titlesec宏包改变章节编号形式的方法 - 阿拉果 - 博客园 (cnblogs.com)

3、设置目录和标题的层级

3.1 设置目录的层级

\setcounter{tocdepth}{数字}

例如当数字设置为2时,3级及其以下的层级不会显示

3.2 设置标题计数的层级

\setcounter{secnumdepth}{数字}

当数字设置为2时,3级以及3级一下的层级不会显示编号,目录中也不会显示编号

 4、设置文档标题均不显示序号

  • 方案一【failed】

\setcounter{secnumdepth}{0}

该方式虽然可以去除全文(正文标题,目录,书签)的编号,但是会出现点击目录和书签无法跳转的情况。猜想该命令设置后不显示编号的章节,实际上应该是已经将这些标题不作为一个节点计数了,而不是简单隐藏了编号,所以目录和书签无法定位。

但是在实际操作过程中也有部分章节可以跳转,观察后发现这些章节的前一个章节中一般都有图表或是列表,不太明白原理。

  • 方案二

对目录,正文标题、书签分别设置不显示编号。

  • 目录:{标题标志}和{无序号标志}都置空
  • 正文标题:label置空,before置0
  • 书签:bookmarksnumbered置false

Example:

\tableofcontents
\titlecontents{subsection}{1em}{}%                
              {}%          
              {}%
              {\titlerule*[0.5pc]{.}\contentspage}{} %设置的是显示页数的格式为"..........8"

​
\titleformat{\chapter}{\centering\Huge\bfseries}{}{0em}{}

​

Appendix-Example:

设置章节无编号,且上方有一条分割线

\titleformat{\chapter}{color{green}\titlerule[2pt] \color{black} \centering\Huge\bfseries}{}{0em}{}

有关Latex:目录和标题的更多相关文章

  1. ruby-on-rails - active_admin 目录中的常量警告重新声明 - 2

    我正在使用active_admin,我在Rails3应用程序的应用程序中有一个目录管理,其中包含模型和页面的声明。时不时地我也有一个类,当那个类有一个常量时,就像这样:classFooBAR="bar"end然后,我在每个必须在我的Rails应用程序中重新加载一些代码的请求中收到此警告:/Users/pupeno/helloworld/app/admin/billing.rb:12:warning:alreadyinitializedconstantBAR知道发生了什么以及如何避免这些警告吗? 最佳答案 在纯Ruby中:classA

  2. ruby-on-rails - 使用 Rmagick 或 ImageMagick 在背景上放置标题 - 2

    我有一张背景图片,我想在其中添加一个文本框。我想弄清楚如何将标题放置在其顶部的正确位置。(我使用标题是因为我需要自动换行功能)。现在,我只能让文本显示在左上角,但我需要能够手动定位它的开始位置。require'RMagick'require'Pry'includeMagicktext="Loremipsumdolorsitamet"img=ImageList.new('template001.jpg')img 最佳答案 这是使用convert的ImageMagick命令行的答案。如果你想在Rmagick中使用这个方法,你必须自己移植

  3. ruby-on-rails - 如何在 Gem 中获取 Rails 应用程序的根目录 - 2

    是否可以在应用程序中包含的gem代码中知道应用程序的Rails文件系统根目录?这是gem来源的示例:moduleMyGemdefself.included(base)putsRails.root#returnnilendendActionController::Base.send:include,MyGem谢谢,抱歉我的英语不好 最佳答案 我发现解决类似问题的解决方案是使用railtie初始化程序包含我的模块。所以,在你的/lib/mygem/railtie.rbmoduleMyGemclassRailtie使用此代码,您的模块将在

  4. ruby-on-rails - 没有这样的文件或目录 - 用 Mini Magick 识别 - 2

    在我让另一个人重做我的前端UI之前,我的Rails应用程序运行平稳。我已经尝试解决此错误3天了。这是错误:Nosuchfileordirectory-identifyExtractedsource(aroundline#59):575859606162@post=Post.find(params[:id])authorize@postif@post.update_attributes(post_params)flash[:notice]="Postwasupdated."redirect_to[@topic,@post]else{"utf8"=>"✓","_method"=>"patc

  5. ruby - Sinatra 找不到 View 目录 - 2

    我正在尝试以一种更类似于普通RubyGem结构的方式构建我的Sinatra应用程序。我有以下文件树:.├──app.rb├──config.ru├──Gemfile├──Gemfile.lock├──helpers│  ├──dbconfig.rb│  ├──functions.rb│  └──init.rb├──hidden│  └──Rakefile├──lib│  ├──admin.rb│  ├──api.rb│  ├──indexer.rb│  ├──init.rb│  └──magnet.rb├──models│  ├──init.rb│  ├──invite.rb│  ├─

  6. ruby - 如何跳过 CSV 文件的第一行并将第二行作为标题 - 2

    有没有办法跳过CSV文件的第一行,让第二行作为标题?我有一个CSV文件,第一行是日期,第二行是标题,所以我需要能够在遍历它时跳过第一行。我尝试使用slice但它会将CSV转换为数组,我真的很想将其读取为CSV,以便我可以利用header。 最佳答案 根据您的数据,您可以使用另一种方法和skip_lines-option此示例跳过所有以#开头的行require'csv'CSV.parse(DATA.read,:col_sep=>';',:headers=>true,:skip_lines=>/^#/#Markcomments!)do|

  7. ruby - 如何在 ruby​​ 中复制目录结构,不包括某些文件扩展名 - 2

    我想编写一个ruby​​脚本来递归复制目录结构,但排除某些文件类型。因此,给定以下目录结构:folder1folder2file1.txtfile2.txtfile3.csfile4.htmlfolder2folder3file4.dll我想复制这个结构,但不包含.txt和.cs文件。因此,生成的目录结构应如下所示:folder1folder2file4.htmlfolder2folder3file4.dll 最佳答案 您可以使用查找模块。这是一个代码片段:require"find"ignored_extensions=[".cs"

  8. ruby-on-rails - 在 Rails 中需要整个目录树的好方法是什么? - 2

    我正在使用Rails3.2.2并希望递归加载某个目录中的所有代码。例如:[Railsroot]/lib/my_lib/my_lib.rb[Railsroot]/lib/my_lib/subdir/support_file_00.rb[Railsroot]/lib/my_lib/subdir/support_file_01.rb...基于谷歌搜索,我试过:config.autoload_paths+=["#{Rails.root.to_s}/lib/my_lib/**"]config.autoload_paths+=["#{Rails.root.to_s}/lib/my_lib/**/"

  9. ruby - 使用 File.open 从 ruby​​ 中的目录打开文件 - 2

    我是Ruby的新手,我正在尝试以如下方式打开文件:#!/usr/bin/envrubydata_file='~/path/to/file.txt'file=File.open(data_file,'r')但是我得到“没有这样的文件或目录”(该文件确实存在于该目录中)。如果我将该文件路径作为命令行参数,它会起作用,例如:#!/usr/bin/envrubyfile=File.open(ARGV[0],'r')然后从命令行运行,如:rubyscript.cgi~/path/to/file.txt关于如何让它以第一种方式工作的任何想法? 最佳答案

  10. ruby - 在 Ruby + Chef 中检查现有目录失败 - 2

    这是我在ChefRecipe中的一blockRuby:#ifdatadirdoesn'texist,moveoverthedefaultoneif!File.exist?("/vol/postgres/data")execute"mv/var/lib/postgresql/9.1/main/vol/postgres/data"end结果是:Executingmv/var/lib/postgresql/9.1/main/vol/postgres/datamv:inter-devicemovefailed:`/var/lib/postgresql/9.1/main'to`/vol/post

随机推荐