등의 최소한의 서류로
\documentclass{scrartcl}
\pagestyle{headings}
\begin{document}
\section{Introduction}
\end{document}
다음과 같은 오류가 발생합니다.latex filename.tex
! 추가 \else. \@sect ...sname }{\scr@ds@tocentry }\fi \fi \else \def \@svsechd {#6{\hskip ... l.49 \section{소개}
문제가 있는 위치를 정확히 찾아내는 데 도움을 줄 수 있는 사람이 있습니까?
- 문서 클래스를 기사로 변경하면 제대로 작동합니다.
- \pagestyle{headings}을 제거하면 정상적으로 작동합니다.
- 제목을 공백으로 변경하면 정상적으로 작동합니다.
버전:
pdfTeX 3.1415926-2.5-1.40.14 (TeX Live 2013/Arch Linux)
kpathsea version 6.1.1
...
Compiled with libpng 1.6.10; using libpng 1.6.10
Compiled with zlib 1.2.8; using zlib 1.2.8
Compiled with poppler version 0.24.5
및 KOMA 스크립트( scrartcl.cls
)
%%% From File: $Id: scrkernel-version.dtx 1560 2013-12-19 07:13:30Z mjk $
답변1
추가로 마찬가지로곤잘로의 답변. KOMA-Script 버전 3.12의 알려진 버그가 발생했습니다.
참조. (아아, 독일어로만 제공됨)KOMA-Script 3.12의 문제 및 해결 방법:
scrartcl: […] Wenn man den Seitenstil headings aktiviert, wird man mit Fehlern wegen eines \fi zu viel bombadiert. Workaround: Paket scrlayer-scrpage (oder notfalls scrpage2) laden und Seitenstil scrheadings verwenden. Hinweis: Der Fehler ist in der experimentellen Release behoben.
이는 귀하가 관찰한 오류가 페이지에서 다운로드할 수 있는 실험적 버전에서 제거되었음을 의미합니다. 이 버전은 "experimentellen Release"라는 단어 뒤에 링크되어 있지만 다시 독일어로 되어 있습니다. 다행스럽게도 Markus Kohm은 이 페이지를 위해 영어 동반자를 만들었습니다.TeX Live, MacTeX 또는 MiKTeX와 함께 최신 KOMA 스크립트 사용.
이 실험적 버전을 사용하지 않고 (KOMA-Script) 패키지를 로드 하고 Gonzalo가 제안한 것과 유사한 scrlayer-scrpage
페이지 스타일을 사용해야 합니다.scrheadings
(내 눈에는 버전 3.12에서는 더 이상 package 를 사용할 필요가 없습니다 . 내부 명령을 사용한 적이 없는 한 하위 호환되기 scrpage2
때문입니다 .)scrlayer-scrpage
scrpage2
답변2
처럼Speravir의 답변지적합니다. 이것은 버그입니다. 페이지 headings
스타일~해야 한다KOMA 수업과 함께 일하세요. 가능한 해결 방법은 scrpage2
패키지를 로드하고 스타일을 변경하는 것입니다 useheadings
.
\documentclass{scrartcl}
\usepackage{scrpage2}
\pagestyle{useheadings}
\begin{document}
\section{Introduction}
\end{document}
문서 206페이지에 scrguien
다음과 같이 언급되어 있습니다.
패키지는
scrpage2
주로 제공된 스타일을 사용하거나 자신만의 스타일을 정의하기 위한 것입니다. 그러나 문서 클래스에서 제공하는 스타일로 다시 전환해야 할 수도 있습니다. 이 작업은 를 사용하여 수행해야 하는 것처럼 보일 수 있지만 이는 곧 설명할 명령 및 가 예상대로 작동하지 않는다는\pagestyle{headings}
단점이 있습니다 . 이러한 이유로 수동 및 자동 실행 제목 모두에 대해 올바른 페이지 스타일을 자동으로 선택하는 v\pagestyle{useheadings}`를 사용하여 원래 스타일로 다시 전환해야 합니다.\automark
\manualmark
답변3
를 사용하면 headings
다음 오류가 발생합니다.
! Extra \else.
\@sect ...sname }{\scr@ds@tocentry }\fi \fi \else
\def \@svsechd {#6{\hskip ...
l.6 \section{Introduction}
?
Speravir의 답변에서 설명했듯이 이것은 현재 (비실험적) 버전의 클래스에 있는 버그입니다. headings
Gonzalo Medina의 답변에 있는 해결 방법보다 표준을 사용하려는 경우 다음 수정 사항을 시도해 볼 수 있습니다.
정의 수정headings
다음 재정의는 문제를 해결하는 것으로 보입니다. 표시된 줄 에는 의 다른 용도에는 없는 원본의 MODIFIED
추가 내용이 포함되어 있습니다 . 수정 사항은 해당 줄을 수정하여 매크로의 다른 사용에 맞춰 인라인을 제거합니다.\fi
\MakeMarkcase
\fi
\documentclass{scrartcl}
\usepackage{kantlipsum}
\makeatletter
\renewcommand*{\ps@headings}{\let\@mkboth\markboth
\renewcommand*{\@evenhead}{%
\set@tempdima@hw\hss\hb@xt@ \@tempdima{\vbox{%
\hb@xt@ \@tempdima{{\headfont\strut\leftmark\hfil}}%
\if@hsl \vskip 1.5\p@ \hrule \fi}}}%
\renewcommand*{\@oddhead}{%
\set@tempdima@hw\hb@xt@ \@tempdima{\vbox{%
\hb@xt@ \@tempdima{{\headfont\hfil\strut\rightmark
\if@twoside\else\hfil\fi}}%
\if@hsl \vskip 1.5\p@ \hrule \fi}}\hss}%
\renewcommand*{\@evenfoot}{%
\set@tempdima@hw\hss\hb@xt@ \@tempdima{\vbox{%
\if@fsl \hrule \vskip 3\p@ \fi
\hb@xt@ \@tempdima{{\pagemark\hfil}}}}}%
\renewcommand*{\@oddfoot}{%
\set@tempdima@hw\hb@xt@ \@tempdima{\vbox{%
\if@fsl \hrule \vskip 3\p@ \fi
\hb@xt@ \@tempdima{{\hfil\pagemark
\if@twoside\else\hfil\fi}}}}\hss}%
\renewcommand*{\sectionmark}[1]{%
\if@twoside\expandafter\markboth\else\expandafter\markright\fi
{\MakeMarkcase{\ifnumbered{section}{\sectionmarkformat}{}##1}}{}}% MODIFIED
\renewcommand*{\subsectionmark}[1]{%
\if@twoside
\markright{%
\MakeMarkcase{\ifnumbered{subsection}{\subsectionmarkformat}{}##1}%
}%
\fi
}%
}%
\makeatother
\pagestyle{headings}
\begin{document}
\section{Introduction}
\kant[1]
\subsection{Subsection}
\kant[2]
\section{Another Section}
\kant[3]
\section{Yet Another Section}
\kant[4]
\subsection{Another Subsection}
\kant[5]
\end{document}
결과
답변4
이미 설명했듯이 이는 KOMA 3.12
2013년 12월 말부터 개발자에게 알려진 버그이며 실험 릴리스에서 수정되었습니다. 1월 초에 버그를 발견하면서 내 소스에 맞게 패치를 해야 했고, 내 패치는 다음과 같습니다.
\pagestyle{headings}% must be before the patch
\makeatletter
\def\buggysectionmark #1{% KOMA 3.12 as released to CTAN December 2013
\if@twoside\expandafter\markboth\else\expandafter\markright\fi
{\MakeMarkcase{\ifnumbered{section}{\sectionmarkformat\fi}{}#1}}{}}
\ifx\buggysectionmark\sectionmark
\def\sectionmark #1{%
\if@twoside\expandafter\markboth\else\expandafter\markright\fi
{\MakeMarkcase{\ifnumbered{section}{\sectionmarkformat}{}#1}}{}}
\fi
\makeatother
KOMAscript
이 문제가 해결될 다음 릴리스가 설치되면 패치는 아무 작업도 수행하지 않으며( \ifx
테스트에서 더 이상 버그가 없는 것으로 감지되므로 \sectionmark
) 패치는 사용자가 수행하지 않는 작업도 수행하지 않습니다. 레거시 소스를 다시 다루려고 합니다.