패키지 아크로, 프랑스어로 단어 성별 여성 및 남성

패키지 아크로, 프랑스어로 단어 성별 여성 및 남성

저는 프랑스어로 문서를 작성 중인데 패키지에서 단어의 성별 형태를 처리해야 합니다 acro. 나는 다음과 같은 것을 생산하고 싶습니다.

tridimensionnelles(3D)(여성형) 또는 bidimensionnel(2D)(남성형)

코드 사용:

\documentclass[12pt,twoside,openright]{book}
\usepackage[version=3]{acro} %list of abbreviations

\acsetup{
    list/template = longtable,
    list/display = used,
    uppercase/list,
    format/alt
}
\DeclareAcronym{2d}{
    short   = 2D,
    long    = bidimensionnel,
    alt-format = tridimensionnelles}
\DeclareAcronym{3d}{
    short   = 3D,
    long    = tridimensionnel,
    alt = tridimensionnelles}

\begin{document}
\ac{2d} is masculine gender form.
\newline
\aca{3d} is the feminine gender form, but there is not the short form (3D).
\end{document}

다음과 같은 텍스트를 생성할 수 있습니다.

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

하지만 괄호 안의 3D는 나타나지 않습니다.

패키지로 성별 양식을 다룰 생각이 있습니까 acro?

답변1

acro을 사용하여 임의의 새 속성을 정의하기 위한 인터페이스 \DeclareAcroProperty\NewAcroCommand섹션의 문서에 자세히 설명된 새 명령이 있습니다.29. 속성그리고30. 자신의 약어 명령.

그러나 여러 속성과 내부 인터페이스를 정의하는 경우 \DeclareAcroEnding약간 잘못 사용하면 좋은 효과를 얻을 수 있다고 생각합니다. 초기에는 모두 비어 있는 및 와 동등한 항목을 \DeclareAcroEnding{feminine}{}{}정의합니다 . 여성형이 남성형에 추가된 문자로 다른 경우를 설정할 수 있으며, 더 실질적으로 다른 경우 전체를 기술하는 데 사용할 수 있습니다.*-feminine*-feminine-form*-plural*-plural-formlong-feminine=leslong-feminine-form=tridimensionelles

\ac그런 다음 이러한 속성을 적용하려면 새로운 -variants를 추가해야 합니다 . 예:

\NewAcroCommand \acF {m}
  { \acrofeminine \UseAcroTemplate {first} {#1} }
\NewAcroCommand \AcF {m}
  { \acrofeminine \acroupper \UseAcroTemplate {first} {#1} }

(저는 전체 모양을 강제로 적용하는 F기존의 -type 명령과의 충돌을 피하기 위해 사용하고 있습니다.) \acf다른 변형은 개별적으로 명시적으로 정의해야 하지만 찾은 정의를 기반으로 할 수 있습니다.소스에서.

\documentclass[12pt,twoside,openright]{book}
\usepackage{acro}[=v3]

\DeclareAcroEnding{feminine}{}{}

\DeclareAcronym{2d}{
    short   = 2D,
    long    = bidimensionnel,
    long-feminine=les,
}
\DeclareAcronym{3d}{
    short   = 3D,
    long    = tridimensionnel,
    long-feminine-form=tridimensionnelles,
}

\NewAcroCommand \acF {m}
  { \acrofeminine \UseAcroTemplate {first} {#1} }
\NewAcroCommand \AcF {m}
  { \acrofeminine \acroupper \UseAcroTemplate {first} {#1} }

\begin{document}
\ac{2d} \acreset{2d} \acF{2d}

\acF{3d} \acreset{3d} \ac{3d}

\printacronyms[heading=none]
\end{document}

코드 출력

\DeclareAcroEnding{feminineplural}{s}{s}여성 복수형의 경우 어미 와 동일한 기본값을 사용하여 별도의 어미를 선언해야 한다고 생각합니다 plural. 불행하게도 어떻게 엔딩을 상속받을 수 있는지 알 수 없으므로 feminine복수형에 s만 추가하더라도 약간의 중복이 필요합니다.

\documentclass[12pt,twoside,openright]{book}
\usepackage{acro}[=v3]

\DeclareAcroEnding{feminine}{}{}
\DeclareAcroEnding{feminineplural}{s}{s}

\DeclareAcronym{2d}{
    short   = 2D,
    long    = bidimensionnel,
    long-feminine=les,
    long-feminineplural=less
}

\NewAcroCommand \acpF {m}
  { \acrofeminineplural \UseAcroTemplate {first} {#1} }

\begin{document}
\acp{2d} \acreset{2d} \acpF{2d}

\printacronyms[heading=none]
\end{document}

코드 출력


아마도 활용하는 것보다 약간 더 나은 인터페이스를 \DeclareAcroEnding구축할 수 있지만, 많은 상용구 코드나 인터페이스에 의존하지 않고는 불가능합니다 expl3.

답변2

임의로 다른 두 가지 형식(짧은/긴/첫 번째/복수형 등 중 하나 또는 전부)을 취할 수 있는 하나의 두문자어가 있는 경우 게으른 해결책은 두 개의 밀접하게 연결된 두문자어를 정의하는 것입니다.

uselist두문자어의 속성은 두문자어를 허용하고 , 2d사용 된 경우 자체적으로 사용된 것으로 간주할 2dB수 있도록 하며 , 그 반대의 경우도 마찬가지입니다.2d2dB

\DeclareAcronym{2d}{
    short   = 2D,
    long    = bidimensionnel,
    uselist = {2dB},
}
\DeclareAcronym{2dB}{
    short   = 2D,
    long    = bidimensionnelB,
    uselist = {2d},
}

두 약어는 얼마든지 다를 수 있으며(필요한 경우 전혀 다를 수도 있음) 텍스트 내에서 공통된 첫 번째 사용법을 공유하지 않습니다. 필요한 경우 임의의 수의 약어로 확장할 수 있습니다.

하지만 다음과 같은 약어를 짝짓는 데에는 몇 가지 주의 사항이 있습니다.

  • 재설정 사용법은 약어에 따라 로컬로 유지되며, 사용된 경우 사용된 것을 기억하는 동안에 \acreset{2d}만 재설정됩니다 .2d2dB

  • \acsetup{single=true}둘 다 사용했지만 둘 중 하나를 한 번만 사용하면 예기치 않은 동작이 발생합니다.

  • 두 개의 약어가 있으므로 \printacronyms목록 형식이 동일하지 않는 한(예: 짧은/긴 형식을 공유하지만 복수형 속성이 다른 경우) 둘 다 나열됩니다. 이 문제는 약어 중 하나에 태그를 지정하고 다음을 사용하여 해결할 수 있습니다 exclude.\printacronyms

    \DeclareAcronym{2d}{
        short   = 2D,
        long    = bidimensionnel,
        uselist = {2dB},
    }
    \DeclareAcronym{2dB}{
        short   = 2D,
        long    = bidimensionnelB,
        uselist = {2d},
        tag = {B-form},
    }
    
    \begin{document}
    \ac{2d}    
    \ac{2dB}
    
    \printacronyms[heading=none,exclude={B-form}]
    \end{document}
    

    2dB그러나 이 역시 문서에서 사용되고 \acsetup{list/display=used}설정된 경우 예상치 못한 결과를 초래할 수 있습니다 .

관련 정보