図と表のキャプションの問題

図と表のキャプションの問題

私は LaTeX を使用して論文を書いています。図のキャプションを追加したときに、次のエラーが発生しました。

l. 91 \caption{Chevauchement et ligature}
I suspect you've forgotten a `}', causing me to apply this control sequence to too much text.

同じコードを新しいファイルに書くと動作しますが、論文では動作しません。助けてください。

リンク内の論文ファイル

答え1

pfe私のシステムにはと が存在しないため./styles/srcltx、最初のものを book に変更し、2 番目を削除しました。chapters フォルダーと chap1 サブフォルダーを作成しました。下のスクリーンショットに示すように、私のシステムでは結果がコンパイルされ、図が表示されます (ダミーの図を使用しました)。エンコードの問題と思われるもの以外、MWE にはエラーはありません。翻訳元:

AjNのコメント

確かに、問題となっている部分はクラスファイルにあります

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % caption %%% 注意 全ての % ディストリビューション LateX ではサポートされていません % ...

\RequirePackage{caption2}

\captionstyle{centerlast}
\renewcommand\captionfont{\footnotesize}
\renewcommand\captionlabelfont{\bfseries\itshape}
%\setcaptionmargin{\leftmargini}
%\setlength\captionindent{\parindent}
\renewcommand\captionlabeldelim{~---}
\onelinecaptionstrue
\setcaptionwidth{12.9999cm}

コメントには次のように書かれています。

キャプション 注意: これは必ずしもすべての LateX ディストリビューションでサポートされているわけではありません。

caption2問題の原因と思われる のパッケージドキュメントを確認してみたところ、互換性セクションで次のことが分かりました。

パッケージのキャプションとその実験、非推奨のバリエーションの caption2 は内部のコンセプトが不十分で、完全な互換性の問題が発生する可能性があります。このパッケージは caption2.sty のファイルに追加されているため、後のドキュメントで caption2-Paket が使用されている場合は、追加で設定することができます。

Google では次のように翻訳されます:

パッケージ caption とその実験的で現在は廃止されたバリアント caption2 は概念的にあまりにも異なるため、完全な互換性を保証することはできません。したがって、このパッケージは caption2.sty ファイルにまだ含まれているため、caption2 パッケージを使用する古いドキュメントは引き続きコンパイルされます。

質問は、なぜクラスがパッケージの古いバージョンを使用するのかということです。そのクラスを更新して、古いバージョンのパッケージを使用しないようにすれば、問題は解決するはずです。

アップデート

ドキュメントの指示に従ってクラス内の問題のある部分を修正したところ、次のようになりました。

\RequirePackage[font=footnotesize,labelfont={bf,it}]{caption}

\captionsetup{justification=centerlast,singlelinecheck=on}
%\renewcommand\captionfont{\footnotesize}
%\renewcommand\captionlabelfont{\bfseries\itshape}
%\setcaptionmargin{\leftmargini}
%\setlength\captionindent{\parindent}
\newcommand\captionlabeldelim{~---}
%\onelinecaptionstrue
\setcaptionwidth{12.9999cm}

すべてがコンパイルされ、フォーマットは元のものとほぼ同じように見えます。

ちなみに、私が受け取ったエラーはまったく異なるものでした:

Runaway argument?
{\parbox [b]\captionlinewidth {\strut \@nameuse {caption@@@centerlast\ETC.
./chapters/chap1.tex:15: Paragraph ended before \@gobble was complete.
<to be read again> 
                   \par 
l.15 ...ns possibles du hamza en association avec}

ドキュメントにはまだエンコードの問題があるようです。TeXShopドキュメントの 1 つをエンコードで開く必要があると警告されましたIsoLatin8。 すべてが同じエンコードになっていることを確認してください。 であれば最適ですUTF-8。現時点では、出力 PDF は次のようになります。

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

アップデート2

明らかに常に優れている が、エンコーディングの問題を引き起こすのに、なぜクラスはinputencエンコーディング でロードするのでしょうか? また、それが問題であることをご存知でしたか? ドキュメントから を呼び出していることを考えると、ご存知なかったと思います。クラスを取得して、 のエンコーディング オプションを から に変更してください。そうすれば、エンコーディングの問題 (またはその大部分) は解消されます。この結果:latin1utf8latin1inputenclatin1utf8

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

編集中なので、削除したコメントをここに示します。

また、LaTeX は、指定されたフォルダーからパッケージを取得することを特に好みません。フォルダー名がパッケージ名の一部であるようで、ファイルが見つかると、「いいえ、これは提供しません./styles/pfeが、単にpfe」と表示されます。図の参照の ?? は、2 回目のコンパイルで明らかに解消されます。

そして、エンコードを修正したバージョンでは解決しました。

関連情報