' glossaries
(v4.42) 사용자 설명서 주장 (페이지 48):
참고: 복수형이 지정되지 않은 경우 복수형을 생성하는 데 사용되는 접미사는
\glspluralsuffix
(일반 항목의 경우) [...]이는 실제로 접미사가 이러한 명령을 재정의한 마지막 로드된 언어에 대한 것임을 의미합니다.
그러나 다음 MCE는 다음과 같습니다.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[french,ngerman,dutch,english]{babel}
\usepackage{glossaries}
\newacronym{gnu}{GNU}{GNU's Not Unix}
\begin{document}
\gls{gnu}
\glspl{gnu}
\end{document}
그 이후로는 그렇지 않다고 지적합니다.
해당
.log
파일은 마지막으로 로드된 파일이 첫 번째.ldf
로드된 언어 의 파일임을 보여줍니다 .(/usr/local/texlive/2018/texmf-dist/tex/latex/glossaries-english/glossaries-english.ldf) (/usr/local/texlive/2018/texmf-dist/tex/latex/glossaries-dutch/glossaries-dutch.ldf) (/usr/local/texlive/2018/texmf-dist/tex/latex/glossaries-german/glossaries-german.ldf) (/usr/local/texlive/2018/texmf-dist/tex/latex/glossaries-french/glossaries-french.ldf)
프랑스어의 경우에는 해당하지만 영어, 네덜란드어 또는 독일어의 경우에는 접미사가 비어 있습니다.
더욱 이상한 점은 언어 목록이 문서 클래스 수준에서 지정된 경우입니다.
\documentclass[french,ngerman,dutch,english]{article}
...
\usepackage{babel}
...
순서나 로드된 내용이 glossaries-*.ldf
무작위인 것 같습니다.
(/usr/local/texlive/2018/texmf-dist/tex/latex/glossaries-dutch/glossaries-dutch.ldf)
(/usr/local/texlive/2018/texmf-dist/tex/latex/glossaries-english/glossaries-english.ldf)
(/usr/local/texlive/2018/texmf-dist/tex/latex/glossaries-french/glossaries-french.ldf)
(/usr/local/texlive/2018/texmf-dist/tex/latex/glossaries-german/glossaries-german.ldf)
무슨 일인지 아시나요?
답변1
로드 순서는 tracklang
의 추적된 언어/방언 목록(즉, 식별된 문서 언어/방언 목록)에 따라 결정됩니다.
tracklang
(에서 사용되는) 패키지는 다음 glossaries
과 같이 문서 언어를 결정하려고 시도합니다.
If는
tracklang
다음과 같은 옵션으로 명시적으로 로드됩니다.\usepackage[french,ngerman,dutch,english]{tracklang}
또는 다음과 같은 문서 클래스 옵션을 선택하는 경우:
\documentclass[french,ngerman,dutch,english]{article} \usepackage{tracklang}
그런 다음
tracklang.sty
정의된 순서에 따라 언어 또는 방언을 추적합니다tracklang.tex
(미리 정의된 언어 및 방언의 전체 목록은 에서 찾을 수 있습니다\@tracklang@declaredoptions
).패키지 옵션을 선택하지 않으면
tracklang.sty
알려진 언어 패키지가 로드되었는지 확인합니다. 먼저\bbl@loaded
(제공babel
)이 정의되어 있는지 확인합니다. 그렇다면tracklang.sty
목록을 반복하여 알려진 방언 레이블을 추적하거나 인식할 수 없는 레이블이 발견되면 경고합니다. 이는 다음을 의미합니다.\usepackage[french,ngerman,dutch,english]{babel} \usepackage{tracklang}
그러면 순서는 의 순서와 일치합니다
\bbl@loaded
.
예를 들어 문서 클래스 옵션은 다음과 같습니다.
\documentclass[french,ngerman,dutch,english]{article}
\usepackage{tracklang}
\makeatletter
\show\@tracklang@languages
\show\@tracklang@dialects
\begin{document}
\end{document}
성적표는 다음을 보여줍니다.
> \@tracklang@languages=macro:
->dutch,english,french,german.
l.5 \show\@tracklang@languages
?
> \@tracklang@dialects=macro:
->dutch,english,french,ngerman.
l.6 \show\@tracklang@dialects
와 함께 babel
:
\documentclass{article}
\usepackage[french,ngerman,dutch,english]{babel}
\usepackage{tracklang}
\makeatletter
\show\@tracklang@languages
\show\@tracklang@dialects
\show\bbl@loaded
\begin{document}
\end{document}
이제 성적표에 다음이 표시됩니다.
> \@tracklang@languages=macro:
->english,dutch,german,french.
l.6 \show\@tracklang@languages
?
> \@tracklang@dialects=macro:
->english,dutch,ngerman,french.
l.7 \show\@tracklang@dialects
?
> \bbl@loaded=macro:
->english,dutch,ngerman,french.
l.8 \show\bbl@loaded
따라서 이 순서는 babel
에 주어진 의 순서 와 일치합니다 \bbl@loaded
.
각 방언을 명시적으로 추적합니다.
\documentclass{article}
\usepackage{tracklang}
\TrackPredefinedDialect{french}
\TrackPredefinedDialect{ngerman}
\TrackPredefinedDialect{dutch}
\TrackPredefinedDialect{english}
\makeatletter
\show\@tracklang@languages
\show\@tracklang@dialects
\begin{document}
\end{document}
이제 성적표에 다음이 표시됩니다.
> \@tracklang@languages=macro:
->french,german,dutch,english.
l.9 \show\@tracklang@languages
?
> \@tracklang@dialects=macro:
->french,ngerman,dutch,english.
l.10 \show\@tracklang@dialects
순서는 항상 언어/방언이 추적된 순서를 따르지만 이렇게 하면 해당 순서가 무엇인지 더 명확해집니다.
패키지 의 문제 glossaries
는 명령이 언제 확장될지 보장할 수 있는 방법이 없고 언어 패키지에서 제공하는 순서에 따라 어떤 .ldf
파일이 필요한지 결정할 수 있기 때문에 접미사 명령을 언어 후크에 추가할 수 없다는 것입니다. 짐을 실은. 접미사는 실제로 마지막으로 로드된 언어를 따르지만 순서가 babel
옵션 목록에 지정된 순서와 일치한다고 보장되지는 않습니다.