그림 및 표 캡션에 문제가 있습니다.

그림 및 표 캡션에 문제가 있습니다.

저는 라텍스를 사용하여 논문을 쓰고 있어요. 그림 캡션을 추가할 때 다음과 같은 오류가 발생했습니다.

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 이 없기 첫 번째 항목을 예약으로 변경하고 두 번째 항목을 제거했습니다. 폴더 장과 하위 폴더 chap1을 만들었습니다. 아래 스크린샷과 같이 결과가 내 시스템에 컴파일되고 그림이 나타납니다(저는 더미 그림을 사용했습니다). 인코딩 문제로 보이는 것 외에는 MWE에 오류가 없습니다.imgur.com/GRtTOy7

AjN의 코멘트.

실제로 문제가 되는 비트는 클래스 파일에 있습니다.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%% % caption %%% 주의 CE N'est PAS 강제 지원은 % distrib LateX %%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%

\RequirePackage{caption2}

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

댓글은 다음과 같습니다.

caption 주의 이것은 모든 LateX 배포판에서 반드시 지원되는 것은 아닙니다.

caption2문제의 원인인 것으로 보이는 에 대한 패키지 설명서를 살펴보았는데 호환성 섹션에서 다음을 발견했습니다.

Das Paket caption und seine Experimentelle, nun veraltete Variante caption2 sind vom internen Konzept her zu unterschiedlich, um hier eine vollständige Kompatibilität gewährleisten zu können. Daher liegt diesem Paket weiterhin die Datei caption2.sty bei, so daß ältere Dokumente, die das caption2-Paket verwenden, weiterhin übersetzt werden können.

Google에서는 다음과 같이 번역합니다.

패키지 캡션과 실험적이며 이제 더 이상 사용되지 않는 변형 캡션2는 개념적으로 여기와 너무 다르기 때문에 완전한 호환성을 보장할 수 없습니다. 따라서 이 패키지는 여전히 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인코딩 문제(또는 대부분)가 사라질 것입니다. 이 결과는 다음과 같습니다.latin1utf8

여기에 이미지 설명을 입력하세요

그리고 편집 중이므로 현재 삭제된 댓글은 다음과 같습니다.

또한 LaTeX는 특히 지정된 폴더에서 패키지를 가져오는 것을 좋아하지 않습니다. 폴더 이름이 패키지 이름의 일부인 것처럼 보이고 파일을 찾으면 "아니요, 제공되지 않지만 " ;)이라고 표시되기 때문 ./styles/pfe입니다 pfe. ?? 그림 참조의 경우 두 번째 컴파일에서 분명히 정리됩니다.

그리고 인코딩 수정 버전에서는 문제가 해결되었습니다.

관련 정보