
저는 여러 장으로 구성된 논문을 쓰고 있는데, 일부 기호는 여러 장에서 사용되지만 그 정의는 장마다 다릅니다. 문서 시작 부분에 하나의 기호 목록을 두고 싶지만 각 장의 기호는 장 이름으로 구분됩니다. 이 같은:
기호 목록
chapter 1
S size
chapter 2
S area
Chapter 1
S is the radius of the cell.
Chapter 2
S is the area.
답변1
Marco가 그의 의견에서 말했듯이 이것은 좋은 스타일이 아닙니다. 독자가 귀하의 집에 도착합니다.기호 목록알파벳 목록에서 특정 기호를 검색하려고 합니다. 해당 목록을 여러 장별 목록으로 분할하면 기호가 처음 정의된 장을 모르는 경우 작업이 더 어려워집니다.
또한 목록을 여러 장별 목록으로 분할하면 독자는 "S"가 장마다 다른 의미를 가질 것이라고 기대하지 않을 수 있습니다. 그들은 1장의 목록에서 "S"가 "셀 반경"임을 알 수 있으며, 읽고 있던 장에서 실제로 "영역"을 의미한다는 것을 알기 위해 더 이상 읽지 않을 수도 있습니다.
서로 다른 장에서 "S"에 서로 다른 의미를 할당해야 한다면 가장 간단한 방법은 단일 기호 목록을 갖고 "S" 항목에서 두 가지 의미를 명시적으로 인식하는 것입니다. 다음과 같습니다.
List of symbols
---------------
R: random reachability relation
S: cell radius (in Chapter 1) / area (in Chapter 2)
T: terrifyingly transitory transaction
답변2
부인 성명나는 각 장마다 용어집을 갖는 것은 좋은 생각이 아니며, 다른 장의 다양한 정의에 동일한 기호를 사용하는 것은 더욱 나쁘다는 의견에 전적으로 동의합니다!
그러나 여기에는 다음을 기반으로 한 솔루션이 있습니다.glossaries
패키지. 먼저 코드를 제공하고 나중에 코드가 수행하는 작업을 하나씩 설명하겠습니다.
\documentclass{report}
\usepackage{hyperref}
\usepackage[nonumberlist,nomain]{glossaries}
\renewcommand*{\glspostdescription}{}
\newglossary{chap1}{chap1}{sbl1}{Chapter 1: Symbols}
\newglossary{chap2}{chap2}{sbl2}{Chapter 2: Symbols}
\newcommand{\addgloss}[2]{\newglossaryentry{#1}{type=chap\thechapter,name=#1,description={#2}}}
\newcommand{\addglossmath}[3]{\newglossaryentry{#3}{type=chap\thechapter,name=\ensuremath{#1},description={#2}}}
\newcommand{\printchapglossary}{\glsaddall%
\printglossary[type=chap\thechapter]}
\makeglossaries
\begin{document}
\chapter{First chapter}
\begin{equation}
E=mc^2
\end{equation}
\addglossmath{E}{Total energy}{E}
\addglossmath{m}{Mass}{m}
\addglossmath{c}{Celerity}{c}
\printchapglossary
\chapter{Second chapter}
\addgloss{test}{This is a test entry}
\addglossmath{\pi}{Famous symbol...}{pi}
Here is a \gls{test} to see the value of \gls{pi}.
\printchapglossary
\printglossaries
\end{document}
우선, hyperref
패키지가 필요하지 않지만, 다른 목적으로 사용하고 싶다면 패키지보다 먼저 로드해야 합니다 glossaries
. 여기서 이 패키지에 사용되는 옵션은 ( nonumberlist
) 각 용어집 항목 다음의 페이지 번호를 제거하고 ( nomain
) 주요 명명법을 포함하지 않으려는 경우 사용되지 않는 기본 용어집 파일을 제거하는 것입니다. 모든 항목.
\renewcommand*{\glspostdescription}{}
인쇄 시 용어집의 각 항목 끝에 있는 마침표를 제거하는 데 사용됩니다 . 그런 다음 "성가신" 부분이 나옵니다. 각 장에 대해 하나의 작은 용어집을 갖기 위해서는 명령을 사용하여 이러한 용어집을 하나씩 정의해야 합니다 \newglossary
. 첫 번째 인수는 하위 용어집의 레이블이고, 그 다음 두 개는 항목을 저장하기 위해 생성될 파일의 확장자이며, 마지막 인수는 제목으로 인쇄될 하위 용어집의 이름입니다. 취향에 맞게 이름을 바꾸세요!).
그런 다음 수학 이름을 다루는 항목의 처리가 약간 특별하기 때문에 용어집에 항목을 추가하는 두 가지 명령을 정의했습니다.
첫 번째 명령 \addgloss
은정기적인항목. 첫 번째 인수는 키 레이블이고 두 번째 인수는 용어집에서 보려는 정의입니다.
다른 명령은 \addglossmath
수학 기호에 대한 것입니다. 첫 번째 인수는 기호(예: \pi
)이고, 두 번째 인수는 정의이며, 세 번째 인수는 특수 문자(예: pi
)를 사용해서는 안 되는 레이블입니다.
\printglossary
마지막으로 현재 장의 용어집을 표시하려는 위치에 사용할 세 번째 명령을 정의했습니다 . 여기에 사용된 명령 을 사용하면 항목이 , , ... 명령 \glsaddall
과 함께 사용되지 않더라도 이전 명령으로 정의된 용어집 항목을 가질 수 있습니다 .\gsl
\Gsl
모든 항목을 장별로 정렬하려면 \printglossaries
문서에서 원하는 위치를 호출하면 됩니다.
메모문서가 mydoc.tex라고 가정하면 터미널에서 다음 명령을 실행해야 합니다.
latex mydoc
makeglossaries mydoc
latex mydoc
이는 필요한 모든 링크를 생성하는 것입니다.
편집하다Nicola Talbot이 제안한 대로morewrites
glossaries
레지스터가 부족하지 않도록 패키지 보다 먼저 패키지를 작성 하십시오.
게다가 이는 가능한 것에 대한 대략적인 아이디어일 뿐이고 출력이 만족스럽지 않지만(항목의 동질성 부족...) 해당 방향으로 가고 싶다면 수정할 수 있습니다.