在 LaTeX 中配置部分别名

在 LaTeX 中配置部分别名

每周我都会为我的妻子制作几本 A5 小册子(A4 折叠),她是教会事工中的一位活跃同事,我最近从教会退休。我称这些小册子为讲台手稿,因为它包括了在礼拜过程中所说或所唱的一切的基本脚本。礼拜的每个部分都有一个部分,例如\section{Prayer}\section{Reading}等。每个部分都放在目录中,这样在封面内,我就可以一目了然地了解礼拜的进行顺序。我使用了各种 TeX 方法,例如 memoir、koma-script、ConTeXt 等,以及所有可用的编辑器。我使用 Auctex 和 Spacemacs。

虽然我已经使用 LaTeX 多年了,但最近我尝试将我的序言拆分成.cls两个.sty文件,对我来说效果很好。这让我开始思考,是否有办法让我省去每次想在礼拜仪式中加入赞美诗时都要写这种无聊的东西:

\section{\textbf{Hymn 360} \hfill \textit{\normalsize Praise, my soul}}

这导致赞美诗 360 赞美我的灵魂,这正是我想要的。

我尝试了 xparse 包,它允许我使用

\NewDocumentCommand{\hymn}{mm}{\textbf{#1}{\hfill}\textit{#2}} 

在序言中,然后\hymn{}{}在文档中。它看起来足够令人愉悦,但不幸的是,它没有进入目录。(我知道我可以使用 \addcontentsline,但这会使捷径比路线更长。我试图让生活变得更轻松,而不是更复杂。)

我也尝试过\let\hymn\section\renewcommand{\hymn}{\section},它确实将赞美诗放入了目录中,但我不知道如何格式化文本中的部分,使其与上面 xparse 中的内容完全匹配。有人告诉我,使用 的别名不是一个好主意,\section但在我的用例中,我并不认为这会是个问题。

我想知道是否有人可以向我展示如何\section从 中获取格式良好的标题\hymn{Hymn 360}{Praise, my soul}。我喜欢 xparse 生成的内容,但我无法将其放入目录中。当我\hymn为 创建一个别名时\section,我不知道如何在后台格式化该部分,以便它生成赞美诗 360 赞美我的灵魂。基本上,我希望以这样一种方式实现这一点,即对于每个新文档,我不需要进行大量的手动格式化。

我尽力清楚地说明我尝试过什么以及我想要什么,但如果需要,我很乐意详细说明。实际上,我可以像现在这样应付,\section{\textbf{Hymn 360} \hfill \textit{\normalsize Praise, my soul}}但我喜欢梦想有更好的方法。

答案1

在为我的妻子制作小册子时,她每周会主持不止一次教堂礼拜,我使用 \section 标题来标记礼拜的每个部分。对于大多数部分,这足够简单。例如:\section{祈祷}。

不过,我喜欢为赞美诗的 \section 添加一些格式,使其看起来像这样:圣诗 646 你赐予的那一天。由于这是一本 A5 小册子,我喜欢让赞美诗第一行的文本适合,然后使用 \normalsize 使该行占用更少的空间。

虽然以这种方式格式化赞美诗行几乎不会造成不便,但我想知道我是否可以自动执行此操作,这样我所需要做的就是在赞美诗编号和第一行周围加上 {},这样在文本中我就会写 \hymn{Hymn 646}{The day till gavest},LaTeX 会负责格式化。另一个要求是赞美诗应该列在 \tableofcontents 中。

我发现,就格式化 \hymn 标题而言,序言中的以下代码可以满足我的要求。但是,它没有出现在目录中。

\usepackage{xparse}
\NewDocumentCommand{\hymn}{mm}{\textbf{#1}{\hfill}\textit{#2}}

有人告诉我,我应该“在 hymn 的定义中包含 \section 包装器”。由于我使用 Koma-script 的 documentclass scrbook,并且不想要编号部分,因此我使用了 \addsec 而不是 \section。结果代码如下所示:

\RequirePackage{xparse}
\NewDocumentCommand{\hymn}{mm}{\addsec{\textbf{#1}{\hfill}\textit{#2}}}

这种方法暂时行得通,因为它将赞美诗放入了目录中。但是,我失去了文本中 \addsec 标题的良好格式。斜体不见了!经过一番研究,我发现我需要一种有斜体版本的字体,例如 kpfonts。我将其作为文档的字体,最终,我实现了我的目标。

感谢那些评论并建议我采取一些我认为无法采取的步骤的人。经过一番思考,我意识到他们在说什么。如果使用 LaTeX 编写服务手册的同事对此答案感兴趣,我会很高兴听到他们的意见。

相关内容