如何设置具有多级经文的圣经风格文档?

如何设置具有多级经文的圣经风格文档?

首先,我想祝大家圣诞快乐,我写这封信是为了解决以下疑问。

我很久以前就尝试过在LaTeX具有类似圣经结构的文档中撰写文章,基本上能够撰写分成编号诗句的段落。

我不认为我是第一个或唯一一个有这种担忧的人,在网上搜索了一下,我发现这个问题它帮助我构建了我想要做的测试。我特别指的是@Ruben 提出的解决方案。

我在测试中发现了一些需要改进的细节:

  • 添加一个简称选项,因为\book我处理的书籍标题很长,页面标题放不下。

  • 为诗句添加至少 2 个子级别,其计数器引用verse,我认为最后一个级别可以使用包中的编号列表来解决enumitem

  • 在某些情况下我需要使用部分,但我不确定它们的编号是否会与其中一个诗句发生冲突,或者它们是否可以彼此独立。

我的 MWE(取自我上面提到的答案):

\documentclass[twoside,twocolumn,letterpaper,11pt]{book}
\usepackage[T1]{fontenc}
\usepackage{ebgaramond}
\usepackage{lipsum}
\usepackage{fixltx2e}
\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
\usepackage{lettrine}
\usepackage{fancyhdr}
  \pagestyle{fancy}
  \fancyhf{}
  \fancyhead[RO,LE]{\rightmark}
  \renewcommand{\headrulewidth}{.5pt}

\setlength{\headwidth}{\textwidth}
\setlength{\headheight}{15pt}
\setlength{\headsep}{0pt}
\setlength{\columnseprule}{0pt}
\clubpenalty10000
\widowpenalty10000

\makeatletter
\newcommand\versenumcolor{red}
\newcommand\chapnumcolor{red}
\renewcommand\paragraph{%
  \@startsection{paragraph}{4}{\z@}%
                {.25ex \@plus.25ex \@minus.1ex}%
                {-.5em}%
                {\normalfont\normalsize\bfseries\color{\versenumcolor}}}%
\newlength{\biblechapskip}
  \setlength{\biblechapskip}{1em plus .33em minus .2em}
\newcounter{biblechapter}
\newcounter{bibleverse}[biblechapter]
\renewcommand\chaptername{Book}
\let\ltx@chapter=\chapter
\let\ltx@paragraph=\paragraph
\newcommand{\book}[1]{%
  \gdef\currbook{#1}
  \ltx@chapter{#1}}
\newcount\biblechap@svdopt
\newenvironment{biblechapter}[1][\thebiblechapter]
  {\biblechap@svdopt=#1
  \ifnum\c@biblechapter=\biblechap@svdopt\else
    \advance\biblechap@svdopt by -1\fi
  \setcounter{biblechapter}{\the\biblechap@svdopt}
  \refstepcounter{biblechapter}
  \lettrine{\color{\chapnumcolor}\lower-6pt\hbox{\thebiblechapter}}{}\ignorespaces}
  {\vspace{\biblechapskip}}
\renewcommand{\verse}[1][\thebibleverse]{%
  \refstepcounter{bibleverse}
  \markright{{\scshape\currbook} \thebiblechapter:\thebibleverse}
  \ifnum\c@bibleverse=1\else
    \ltx@paragraph*{#1}\fi}%
\makeatother

\title{A new document based on the Bible}
\date{}
\author{Me}

\begin{document}
\frontmatter
\maketitle
\tableofcontents

\mainmatter

\book{First book with a very long title that does not fit in the header.}
\begin{biblechapter}
\verse In the beginning God created the heaven and the earth.
\verse And the earth was without form, and void; and darkness was upon the face of the deep. And the Spirit of God moved upon the face of the waters.
\verse \lipsum[3]
\end{biblechapter}

\begin{biblechapter}
\verse \lipsum[4]
\verse \lipsum[5]
\verse \lipsum[6]
\end{biblechapter}
\end{document}

我知道主要部分在\makeatletter\makeatother命令中,但是有些代码选项我不太清楚。我查了一下如何使用该\newcounter命令,但我不清楚如何将它与其他命令联系起来。他们能帮我吗?

答案1

看看“changectr”包。它能做一些有趣的事情,比如限制对个别章节或部分的计数,或者允许你在整个过程中有一个编号序列。

因此,对于你的情况,你\counterwithin{verse}{chapter}应该\counterwithin{chapter}{book}

每次chapter计数器增加时,它都会从verse 1圣经的风格开始。

我使用相同的想法对counterwithout{section}{chapter}整本书的各个章节进行编号,就像在一些旧文本中看到的那样。

相关内容