용어집 패키지를 사용하여 약어 앞의 "a" 및 "an"을 자동으로 처리하는 방법은 무엇입니까?

용어집 패키지를 사용하여 약어 앞의 "a" 및 "an"을 자동으로 처리하는 방법은 무엇입니까?

나는 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

나는acronym이를 위해 패키지. 그만큼선적 서류 비치이는 부정관사를 올바른 형태로 적절하게 자동 삽입하는 \iac(and ) 명령을 정의함을 보여줍니다 .\Iac

답변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}

관련 정보