자체 열 안에 설명이 포함된 다중 열 용어집 스타일

자체 열 안에 설명이 포함된 다중 열 용어집 스타일

긴 설명을 처리할 수 있는 여러 열로 된 용어집 스타일( 을 사용하여)을 만들려고 하는데 glossaries용어집 스타일을 작성하는 방법이 다소 낯설고 어떻게 풀어내는지 정확히 모르겠습니다.

제가 갖고 싶은 것은 4개의 열로 구성된 용어집입니다. 두 쌍의 약어와 설명. 설명이 두 줄 이상인 경우 설명은 자체 열 내에서만 줄바꿈되어야 하며, 약어 열은 각 약어가 설명의 시작 부분과 정렬되도록 몇 줄을 건너뛰어야 합니다.

내가 아는 방법은 총 두 개의 열을 만들고 약어와 설명을 수동으로 분리하는 것뿐입니다. 이 코드를 통해(저는 얼마 전에 StackExchange에서 복사한 코드를 복사한 것으로 확신합니다):

\newglossarystyle{glossabbr}{%
\renewenvironment{theglossary}%
{\begin{multicols}{2}\raggedright}
    {\end{multicols}}

\renewcommand*{\glossaryheader}{}
\renewcommand*{\glsgroupheading}[1]{}
\renewcommand*{\glsgroupskip}{}
\renewcommand*{\glsclearpage}{} 

% set how each entry should appear:
\renewcommand*{\glossentry}[2]{
    \noindent\makebox[7em][l]{\glstarget{##1}{\textsc{\glossentryname{##1}}}}
    \glossentrydesc{##1}\\
}
\renewcommand*{\subglossentry}[3]{%
    \glossentry{##2}{##3}
}
}

이 코드의 문제점은 긴 설명이 있을 때 LaTeX가 약어와 설명을 별도의 블록으로 처리하지 않기 때문에 약어 열로 넘어간다는 것입니다. 여기에서 빨간색으로 강조 표시된 문제를 볼 수 있습니다.

잘못된 줄 바꿈이 포함된 용어집

궁극적으로 제가 하고 싶은 것은 포장된 설명 비트(소문자로 표시되지 않은 비트)를 가져와서 설명 열에 제한하고 현재 있는 약어 열에 공백을 남겨 두는 것입니다. 어떻게 해야 그런 일이 일어날 수 있나요?

문제가 있는 용어집 스타일의 MWE:

\documentclass{article}

\usepackage[acronym,nomain]{glossaries}
\setacronymstyle{long-sc-short}
\makeglossaries

\newacronym
{inform}{inform}{informative illocutionary force}
\newacronym
{point}{point}{demonstrative illocutionary force}

\usepackage{multicol}
\newglossarystyle{glossabbr}{%
    \renewenvironment{theglossary}%
    {\begin{multicols}{2}\raggedright}
        {\end{multicols}}
    
    \renewcommand*{\glossaryheader}{}
    \renewcommand*{\glsgroupheading}[1]{}
    \renewcommand*{\glsgroupskip}{}
    \renewcommand*{\glsclearpage}{} 
    
    % set how each entry should appear:
    \renewcommand*{\glossentry}[2]{
        \noindent\makebox[7em][l]{\glstarget{##1}{\textsc{\glossentryname{##1}}}}
        \glossentrydesc{##1}\\
    }
    \renewcommand*{\subglossentry}[3]{%
        \glossentry{##2}{##3}
    }
}

\begin{document}

\glsunsetall

\gls{point}

\gls{inform}

\printglossary[style=glossabbr]

\end{document}

답변1

이는 완전한 솔루션을 위한 좋은 시작이 될 것입니다.

\documentclass{article}

\usepackage[acronym,nomain]{glossaries}
\setacronymstyle{long-sc-short}
\makeglossaries

\newacronym
{inform}{inform}{informative illocutionary force}
\newacronym
{point}{point}{demonstrative illocutionary force}

\usepackage{multicol}
\newglossarystyle{glossabbr}{%
    \renewenvironment{theglossary}%
    {\begin{multicols}{2}\raggedright}
        {\end{multicols}}
    
    \renewcommand*{\glossaryheader}{}
    \renewcommand*{\glsgroupheading}[1]{}
    \renewcommand*{\glsgroupskip}{}
    \renewcommand*{\glsclearpage}{} 
    
    % set how each entry should appear:
    \renewcommand*{\glossentry}[2]{
        \noindent\makebox[7em][l]{\glstarget{##1}%
            {\begin{minipage}[t]{0.2\textwidth}
                \textsc{\glossentryname{##1}}
            \end{minipage}
        }}
        \begin{minipage}{0.2\textwidth}
        \glossentrydesc{##1}
        \end{minipage}\\
    }
    \renewcommand*{\subglossentry}[3]{%
        \glossentry{##2}{##3}
    }
}

\begin{document}

\glsunsetall

\gls{point}

\gls{inform}

\printglossary[style=glossabbr]

\end{document}

minipage주변에 추가된 환경을 참고하세요 . 이것은 일종의 원시 해결 방법입니다.glossentrynameglossentrydesc

필요에 따라 환경을 조정해야 합니다. 너비를 늘릴 수 있고(어쩌면 허용 가능해 보이지만) 용어집 항목의 수직 정렬을 가운데가 아닌 위쪽으로 설정하는 데 문제가 있습니다.

나는 그것을 당신의 연구에 맡깁니다;)

관련 정보