
나는 glossaries
약어를 처리하기 위해 패키지를 사용하고 있으며 그 앞에 "a" 또는 "an"의 사용을 자동으로 결정하는 작업을 발견했습니다.
\documentclass{scrbook}
\usepackage{hyperref}
\usepackage[toc,acronym,nopostdot,nomain,style=alttree,shortcuts]{glossaries}
\setacronymstyle{long-sc-short}
\makeglossaries
\newacronym{sma}{sma}{SubMiniature version A}
\begin{document}
a \ac{sma}\\ % gives "a SubMiniature version A (SMA)"
a \ac{sma} % gives "a SMA"
\end{document}
두 번째 결과가 "SMA"가 되도록 하려면 어떻게 해야 합니까? 각 약어에 대해 한 번씩 표시해도 괜찮습니다."n"이 필요한지 여부짧은 형식이 사용되는 경우.
glossaries-prefix
나는 모든 다른 경우(처음 사용, 복수, 단수 등)에 대한 접두사를 정의할 수 있는 패키지 에 대해 알고 있습니다 . 그러나 이 패키지를 사용하면 \pgls
짧은 약어 명령(등) 대신 다른 명령(등)을 수동으로 사용해야 합니다 \ac
.
이 작업을 자동으로 수행하는 방법이 있나요?
답변1
답변2
아마도 이것이 시작하는 데 도움이 될 수 있습니다.
내 생각에 이상적인 솔루션은 대 등을 인식하는 매우 복잡한 패키지(다양한 언어에 대한 하이픈 넣기 패턴 인식과 같은)일 것입니다. 이것이 내 능력 범위에 속하지 않기 때문에 여기에 제안이 있습니다.
기사 사용이 실제로 첫 번째 = 기사 A이고 약어 = 기사 B인 경우 용어집에 몇 가지 키를 추가하고 사용할 기사를 인식하기 위해 두문자어가 사용되었는지 여부를 감지하는 것이 좋습니다.
참고: 사용자가 기사 대체를 사용하려고 시도했지만 정의하지 않은 경우를 인식하기 위해 명령에 오류 트래핑을 추가하지 않았지만 사용자가 필요에 따라 다음과 같이 기사를 전달할 수 있도록 명령을 정의했습니다. 선택적 인수.
\documentclass{scrbook}
\usepackage{hyperref}
\usepackage{xparse}
\usepackage[toc,acronym,nopostdot,nomain,style=alttree,shortcuts]{glossaries}
\setacronymstyle{long-sc-short}
\glsaddkey
{article-abrv} % new key
{\relax} % default value if "article-abrv" isn't used in \newglossaryentry
{\glsentryArtA} % analogous to \glsentrytext
{\GlsentryArtA} % analogous to \Glsentrytext
{\glsArtA} % analogous to \glstext
{\GlsArtA} % analogous to \Glstext
{\GLSArtA} % analogous to \GLStext
\glsaddkey
{article-long} % new key
{\relax} % default value if "article-long" isn't used in \newglossaryentry
{\glsentryArtL} % analogous to \glsentrytext
{\GlsentryArtL} % analogous to \Glsentrytext
{\glsArtL} % analogous to \glstext
{\GlsArtL} % analogous to \Glstext
{\GLSArtL} % analogous to \GLStext
\DeclareDocumentCommand{\aac}{o m}{%
\IfValueTF{#1}{%
\ifglsused{\glsentryshort{#2}}%
{\glsdisp{#2}{#1~\ac{#2}}}%TRUE
{\glsdisp{#2}{#1~\ac{#2}}}%FALSE
}{%
\ifglsused{\glsentryshort{#2}}%
{\glsdisp{#2}{\glsArtA{#2}~\ac{#2}}}%TRUE
{\glsdisp{#2}{\glsArtL{#2}~\ac{#2}}}%FALSE
}%
}
\DeclareDocumentCommand{\Aac}{o m}{%
\IfValueTF{#1}{%
\ifglsused{\glsentryshort{#2}}%
{\glsdisp{#2}{#1~\ac{#2}}}%TRUE
{\glsdisp{#2}{#1~\ac{#2}}}%FALSE
}{%
\ifglsused{\glsentryshort{#2}}%
{\glsdisp{#2}{\GlsArtA{#2}~\ac{#2}}}%TRUE
{\glsdisp{#2}{\GlsArtL{#2}~\ac{#2}}}%FALSE
}%
}
\makeglossaries
\newacronym[article-abrv={an},article-long={a}]{sma}{sma}{SubMiniature version A}
\newacronym{uv}{UV}{Ultraviolet}
\begin{document}
\Aac{sma}
\Aac{sma}
Lowercase example: \aac{sma}
Override example: \aac[the]{sma}
%\Aac{uv}% code has no error trapping to let you use \aac as a replacement to \ac
\end{document}