追加

追加

LaTeX新しい章やセクションなどを挿入するときに、番号付け (そしてさらに重要なことに、番号への参照) を調整するのに非常に便利です。

少なくともここドイツでは、法律文書(および書籍)では、以前の番号をそのままにして、挿入前の番号に小文字(a、b、c、...)を付けて、何かが変更されたことを示す傾向があります(最後の瞬間に、または(本当に重要なケースですが)前の版から)。

連続した脚注が複数追加されることは稀だと思ったので、MWE に示されている次の (信じられないほど粗雑で汚い) ハックを試しました。

\documentclass{article}
\newcommand{\myextrafootnote}[1]{\renewcommand{\thefootnote}{\arabic{footnote}a}\footnote[\thefootnote]{#1}\renewcommand{\thefootnote}{\arabic{footnote}}}%
\begin{document}
This is the old text\footnote{foo}, followed by the new insert\myextrafootnote{New Exciting Stuff!!}, followed by the old next one.\footnote{bar}
\end{document}

残念ながら、期待通りには機能しません。脚注自体は期待どおりに見えますが、 脚注、間に少し余分なものあり

テキストには追加のa また脚注の直前に追加されます: 次のように表示されます: テキスト、実際に必要な量よりも余分なもの

もちろん、理想的には、a何らかの形のカウンターから来るべきです(私もそれを試しましたが、引数が足りないというエラーメッセージが大量に表示されたので、諦めて専門家に聞くことにしました...)もし複数の脚注が連続して追加された場合でも、正しく機能し、現在よりも粗雑さが軽減されます。

答え1

コマンドのオプション引数\footnoteには、整数脚注番号を含む文字列であって、その番号のテキスト表現ではありません。

\footnote[\value{footnote}]{#1}

の代わりに

\footnote[\thefootnote]{#1}

追加

では、余分な「a」はどこから来るのでしょうか?これを理解するために、誤ったコードがどのように

\footnote[\thefootnote]{#1}

はTeXによってダイジェストされます。マクロは\thefootnote(OPが使用したコンテキストでは) に展開されるため1a、(La)TeXでは と同等とみなされます。

\footnote[1a]{...}

しかし、すでに述べたように、オプションの引数には整数値が含まれていることが期待されます。この整数値は、内部コマンド内の専用カウンター(コンテキストに応じてfootnoteまたは)にローカルに割り当てられます。この割り当てのコードは(以下と同等です)mpfootnote\@xfootnote

<counter> = #1\relax

それは、私たちの場合、

<counter> = 1a\relax

しかし、 はa整数定数 を終了させ 1、したがって代入も終了します。この時点で、aトークンは水平方向に「a」文字をタイプセットするコマンドとして解釈されます(つまり(現在の)モードです。そして、ここにいます。

答え2

extrastuff使用されるたびにステップアップするカウンターを追加します\myextrafootnote

ただし、 が使用されるため、この方法では を超える26追加は不可能です\alph{extrastuff}

さらに追加が必要な場合は、alphalphカウンター出力を増やすパッケージが便利です!

\documentclass{book}


\newcounter{extrastuff}[chapter]

\newcommand{\myextrafootnote}[1]{%
  \stepcounter{extrastuff}%
  \begingroup
  \renewcommand{\thefootnote}{\arabic{footnote}\alph{extrastuff}}%
  \footnote[\value{footnote}]{#1}%
  \endgroup
}%
\begin{document}

This is the old text\footnote{foo}, followed by the new insert\myextrafootnote{New Exciting Stuff!!}, followed by the old next one.\footnote{bar}

New however is this text\myextrafootnote{Really new Exciting Stuff!!}, followed by the old next one.\footnote{foobar}
\end{document}

ここに画像の説明を入力してください

アップデート

extrastuff脚注カウンターでリセット:

\documentclass{book}


\newcounter{extrastuff}[footnote]

\newcommand{\myextrafootnote}[1]{%
  \stepcounter{extrastuff}%
  \begingroup
  \renewcommand{\thefootnote}{\arabic{footnote}\alph{extrastuff}}%
  \footnote[\value{footnote}]{#1}%
  \endgroup
}%
\begin{document}

This is the old text\footnote{foo}, followed by the new insert\myextrafootnote{New Exciting Stuff!!}, now for something completely different\myextrafootnote{Other top secret content}, followed by the old next one.\footnote{bar}

New however is this text\myextrafootnote{Really new Exciting Stuff!!}, followed by the old next one.\footnote{foobar}
\end{document}

答え3

これは短期的な思考の良い例です。あなたの解決策は、解決するよりも多くの問題を引き起こすでしょう。次の改訂版の新しい脚注をどのようにマークしますか?

ドキュメントの 2 つのリビジョン間の変更を表示する必要がある場合は、document-version-1.tex と document-version-2.tex (後者は最新のリビジョン) の間の「diff」を提供します。

をご覧ください。コンソールウィンドウにlatexdiff入力するとマニュアルが表示されます。基本的には、texdoc latexdiff

latexdiff document-version-1.tex document-version-2.tex > document-diff.tex

次に、document-diff.tex を開いてコンパイルします。PDF にはすべての変更が含まれます。

削除や追加部分の色やマークアップを選択できます。私は次のようなものを好みます。

\providecommand{\DIFadd}[1]{{\protect\color{blue}#1}} %DIF PREAMBLE
\providecommand{\DIFdel}[1]{{\protect\color{red}\protect\scriptsize{#1}}}

document-diff.tex のプリアンブルに追加します。

これには、ドキュメントの 2 つのバージョン間の違いを明確に表示できるという利点があります。現在および将来の改訂時にも有効です。

多くの改訂が予想される場合は、git や latexbatchdiff などのバージョン管理システムの使用を検討してください。こちらをご覧ください:https://tex.stackexchange.com/a/44092/4736

関連情報