Проблема с подписью к рисунку и таблице

Проблема с подписью к рисунку и таблице

Я пишу диссертацию с использованием латекса. У меня возникла следующая ошибка при добавлении подписи к рисунку:

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 и удалил второе. Я создал папку chapters и подпапку chap1. Как показано на снимке экрана ниже, результат компилируется в моей системе, и появляется рисунок (я использовал фиктивный рисунок). Кроме того, что кажется проблемами кодировки, в вашем MWE нет ошибок.imgur.com/GRtTOy7

Комментарий AjN.

Действительно, оскорбительный фрагмент находится в файле класса.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % caption %%% ВНИМАНИЕ CE N'est PAS force supported by all les % distrib 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, который, как мне показалось, был источником проблемы, и в разделе совместимости я нашел:

Подпись к пакету и его экспериментальная версия, однако настоящий Вариант подпись2 исходит из внутренней концепции, которая может быть полезна, поскольку здесь может быть обеспечена полная совместимость. Однако этот пакет должен содержать данные caption2.sty, поэтому при загрузке других документов, которые содержатся в пакете caption2, их можно будет удалить.

что 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предупредил меня, что он должен открыть один из ваших документов в IsoLatin8кодировке. Пожалуйста, убедитесь, что все в той же кодировке, лучше всего, если UTF-8. На данный момент выходной pdf выглядит так:

введите описание изображения здесь

Обновление 2

Почему ваш класс загружается inputencс кодировкой latin1, когда utf8это определенно всегда лучше, и latin1вызывает проблемы с кодировкой? И вы знали, что это так? Судя по тому, как вы вызвали его из вашего документа, я полагаю, что вы не знали. Пожалуйста, возьмите ваш класс и измените параметр кодировки с inputencна latin1, utf8и проблемы с кодировкой (или большинство из них) исчезнут. С таким результатом:

введите описание изображения здесь

И поскольку я редактирую, вот мой теперь уже удаленный комментарий:

Кроме того, LaTeX не особенно любит извлекать пакеты из указанных папок, поскольку, похоже, имя папки является частью имени пакета, и когда он находит файл, он говорит: "НЕТ, это не обеспечивает, ./styles/pfeа просто pfe" ;). ?? для ссылки на рисунок, очевидно, проясняется при второй компиляции.

И в версии с исправленной кодировкой это прояснилось.

Связанный контент