1. ホーム
  2. latex

[解決済み] LaTeXです。セクション番号の1つをカスタム文字に変更するには?

2022-02-12 05:16:57

質問

このようなものがあります。

Section 1
...
Section 2
...
Section 3
Subsection 3.1
...
Section 4
...

そして、このようなものを用意したいと思います。

Section 1
...
Section 2
...
Section A
Subsection A.1
...
Section 4
...

言い換えれば、セクション番号の1つを他のものに変更する 3 == A 論文クラスで書かれた論文に必要なのですが、付録を付けようとすると ハイパーレフ パッケージは壊れ、"links" からは セクション1 への誘導 付録A

を編集します。 問題を説明するときに間違いがありました。 目次 が動作しないのは、LaTeXがコード(*.tocファイル)を生成するためです。

\contentsline {section}{\numberline {1}}{1}{section.1}
\contentsline {section}{\numberline {2}}{1}{section.2}
\contentsline {section}{\numberline {A}}{1}{section.1}

解決方法は?

以下のような構成を作りました。 を更新しました。 :

説明 :

セクションのための新しいカウンタで、これは \begin{alphasection} ... \end{alphasection} ブロックを使用します。ブロックをネストさせると、元のセクション番号がわからなくなってしまうので、ネストさせないでください。 この場合、エラーメッセージが表示されます。 . 各ブロックは "A" から再集計を開始します。HyperRefのために必要なので、オリジナルのセクションのカウントは継続されます。

以下のコードを 前文 :

\newcounter{alphasect}
\def\alphainsection{0}

\let\oldsection=\section
\def\section{%
  \ifnum\alphainsection=1%
    \addtocounter{alphasect}{1}
  \fi%
\oldsection}%

\renewcommand\thesection{%
  \ifnum\alphainsection=1% 
    \Alph{alphasect}
  \else%
    \arabic{section}
  \fi%
}%

\newenvironment{alphasection}{%
  \ifnum\alphainsection=1%
    \errhelp={Let other blocks end at the beginning of the next block.}
    \errmessage{Nested Alpha section not allowed}
  \fi%
  \setcounter{alphasect}{0}
  \def\alphainsection{1}
}{%
  \setcounter{alphasect}{0}
  \def\alphainsection{0}
}%

ドキュメント内 :

\section{First test}
First content
\section{Second test}
Second content
\begin{alphasection}
\section{Third test}
\subsection{Subsection test}
Content test
\section{Test Other section}
\end{alphasection}
\section{Fourth test}
Last content

プロデュース :

1 First test
   First content

2 Second test
   Second content

A Third test
A.1 Subsection test
   Content test

B Test Other section

5 Fourth test
   Last content

HyperRefで動作確認済み。