
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