scrextend

scrextend

当谈到 KOMA-Script 时,大多数人会提到它的课程scrbook,,也许scrreprtscrartclscrlttr2。但并不是每个人都知道,该软件包的一部分还包括一些包,可以与其他类一起使用比 KOMA-Script 的要多。

让我们在这里概述一下这些软件包。请为每个软件包提供一个答案(功能非常相似的软件包除外),在名称旁边包含...

  • 如果它更适合于包装相应的文档类编写器或处理文档的用户(或两者)。
  • 文档所在位置,即主 KOMA-Script 文档scrgiuen.pdf(英语)/ scrguide.pdf(德语)或单独的文档。
  • 封装特性概述。
  • 如果可能的话,举一个简短的例子。
  • 也许可以链接到使用此包的 TeX.SE 上的一些现有答案。

答案1

scrextend

该包使 KOMA-Script 类的基本功能可供其他类使用,因此延伸它们。它主要面向文档编写者,但也可供包和类编写者使用。描述可在主 KOMA-Script 文档中找到。

正如文档中明确指出的那样,这个包应该不是与 KOMA-Script 类一起使用。

功能概述:

答案2

软件包列表(包名称后面的链接指向答案)

  • scrbase
  • scrdatescrtime
  • scrextend– 使 KOMA-Script 课程的一些功能可供其他课程使用。
  • scrjura– 律师和法律学者的合同环境
  • scrlayer
  • scrlayer-notecolumn
  • scrlayer-scrpage作为遗留包的后继者scrpage2(遗留包本身有一个过时的前身scrpage
  • scrlfile– 控制包依赖关系
  • scrwfile
  • tocbasic
  • tocstyle
  • typearea

另请参阅文件中的摘要README(也包含在 TeX 发行版中)。

如果有的话,请添加缺少的包。


另外,没有 KOMA-Script 包,但也是由 Markus Kohm 编写的(请不要在这里回答):

  • gridset

    网格设置(也称为严格的寄存器内设置)是许多文档都需要完成的操作,但使用 LATEX 并不容易。包gridset有助于获取网格设置所需的信息。它不实现自动网格设置,但有一个命令\vskipnextgrid,可以移动到下一个网格位置。在某些情况下,这可能就足够了。在其他情况下,它可能会失败。因此,网格设置只是网格设置的又一步,而不是完整的解决方案。

  • GS1

    世界上有几种条形码包,但它们要么需要 PStricks,要么仅限于 EAN-13 条形码。最重要的是,它们都是 LATEX 2ε。我决定编写一个支持多种 GS1 代码的包,几乎与此同时,我决定给 L3 一个机会。所以我开始使用一个实验性的 GS1 包expl3。使用expl3是编写此包的主要原因。

    GS1还包含rule-D

    在 LATEX 2ε 中,您可以使用命令\rule来制作水平和垂直规则,甚至方框。目前没有用于此目的的 L3 命令。此模块为规则提供了两个新的 L3 函数。模块名称中的“-D”表示,当前实现使用了已弃用的函数,例如\tex_vrule:D。不过,新规则函数并未声明为已弃用。

  • luaindex

    使用 LuaTEX,在运行 LuaTEX 时调用 MakeIndex 之类的索引处理器不会有问题。因此用户不再需要自己调用索引处理器。但另一方面,Lua 拥有足够的能力来处理索引本身。为此luaindex制作了一个包。它主要由一个 Lua 模块组成:luaindex.lua。它提供生成新索引(或多个新索引)、向其中添加条目并打印索引的功能。为了让世界变得更简单,还有一个额外的 LATEX 包:luaindex.sty

  • marginnote

    在 LATEX 中,该命令\marginpar[⟨left⟩]{⟨right⟩}可用于在页边距中创建注释。但此命令存在一个问题:它会创建一种特殊的浮点数。因此,它不能用于例如浮点数或脚注。包marginnote支持另一个命令\marginnote来在页边距中创建注释。这不使用浮点数,因此不存在缺点\marginpar。但可能存在其他问题...
    [...]
    注意:页边距注释将放置在当前垂直线上。这意味着,如果您\marginnote在同一行使用两个命令,它们将被放在同一个位置。这不是错误,而是一个功能!

  • pfarrei
    Lua 脚本和软件包旨在帮助牧师和神父设置歌曲和祈祷书。目前只有德语文档可用,但 Lua 脚本提供了简短帮助:(texlua a5toa4.tlu -h包装器脚本)或直接texlua pfarrei.tlu -h。请注意,在撰写本文时,MiKTeX 中有一个错误,其中只有pfarrei.tlu作品的执行,参见。包“pfarrei”中的 Lua 脚本无法正确执行,可能是由于库已过时

  • splitidx/ splitindex

    LATEX有makeidx一个标准包,用于为每个文档创建一个索引。但有时需要多个索引。不同的包有不同的解决方案和不同的问题来实现多个索引。这里还有一个。
    […]
    在调用索引处理器之前,必须将一个原始索引文件拆分为多个原始索引文件。每个文件都包含一个索引的索引条目。可以使用程序完成此拆分splitindex

  • titlepage
    提供扩展的标题页,几种预定义的样式

    大多数作者都不需要创建标题页。但现实并不完美,所以很多作者不得不这样做。2009 年,KOMA 启动了标题页项目,以<http://www.komascript.de/titlepage>收集真实的标题页并使用定义良好的界面来实现它们。因此,从一种标题页样式更改为另一种标题页样式将非常简单。尽管如此,实现新的标题页样式可能仍然很困难。但也许标题页项目的人会帮助你。问问吧!

    在撰写本文时,CTAN 上不可用,但仅在实验性 KOMA-Script 版本的存储库中可用,参见使用最新的 KOMA-Script 和 TeX Live、MacTeX 或 MiKTeX在 Markus Kohm 的网站上http://komascript.de(笔记:http://www.komascript.de/titlepage是德语,但包装手册是英文的。

答案3

scrlfile

软件包scrlfile主要赋予软件包作者权力,但普通用户也可以利用此软件包。
假设您想要运行一些代码,但前提是必须加载特殊软件包。或者您可能最终还是想阻止加载此软件包。没问题。

功能概述

  • scrlfile 让你可以运行代码BeforePackage{<packageName>}{<instructions>}

    \documentclass{article}
    \usepackage{scrlfile}
    \BeforePackage{hyperref}{\typeout{Loading hyperref just now:}}
    \AfterPackage{hyperref}{\typeout{I am done with hyperref}}
    \usepackage{blindtext}
    \usepackage{hyperref}
    \begin{document}
    \blindtext
    \end{document}
    

    当您想要修补软件包提供的命令时,这会非常有用。您可以对类(\BeforeClass\AfterClass)以及输入文件(\BeforeFile\AfterFile)执行相同操作。更多信息可在文档scrguien.pdftexdoc.net 上的文档)。

  • 假设您的大学提供类和/或包文件,以便以公司设计的形式提交论文。包framed已加载,但出于某些原因,您想要用framed替换mdframed

    \listfiles
    \documentclass{article}
    \usepackage{scrlfile}
    \ReplacePackage{framed}{mdframed}
    \usepackage{framed} % explicitly loaded just for this example
    \usepackage{blindtext}
    \begin{document}
    \blindtext
    \end{document}
    

    请注意,包和类名没有文件结尾。

    同样有趣的是:使 ltxdoc 类使用 report 作为底层类

  • 你正在与大学的班级一起工作,它会加载包 fontencinputenc。两者都有选项(应该绝不由类来完成)。假设您正在使用 LuaLaTeX,因此您不需要也不想加载这些包。您可以完全阻止它们加载,如下面的 MWE 所示。

    \listfiles
    \documentclass{article}
    \usepackage{blindtext}
    \usepackage{scrlfile}
    \usepackage{ifluatex}
    \ifluatex
    \PreventPackageFromLoading[\typeout{Please don't do this, use package fontspec}]{inputenc,fontenc}
    \else
    \fi
    \usepackage[T1]{fontenc}
    \begin{document}
    \blindtext
    \end{document}
    

    同样有趣的是: 加载 natbib 包后设置 natbib 选项
    如何避免‘包选项冲突...’错误?

还有命令钩子来处理主辅助文件和宏来存储包列表。可以在 KOMA 脚本文档中找到示例。

答案4

Packagetocbasic是另一个包,它定义了一些不仅对包作者有用的命令。

对于日常用户来说最有用的功能可能是 DeclareNewTOC[<options>]{<file etension>}

  \DeclareNewTOC[%
    type=remarkbox,%
    types=remarkboxes,%
    float,% define a floating environment
    floattype=4,%
    name=Remark,%
    listname={List of Remarks}%
  ]{lor}
  \setuptoc{lor}{chapteratlist}

这定义了浮动注释框,其使用方式与图形或表格完全相同。这几行代码可让您设置标题、备注列表以及使用 KOMA 功能时章节之间的小间隙。它autoref也可以与超链接机制配合使用。

对于软件包作者来说,还有很多其他方便的东西。

相关内容