2009-10-27 6 views
5

Я в настоящее время застрял, имея два отдельных глоссария: main & acronyms. Acronyms глоссарий печатает сноски при первом использовании в тексте, но main глоссарий нет. Есть ли способ сделать любой другой глоссарий, чем acronyms, для печати сноски о первом использовании термина? Я не понимаю, как это сделать.Пакет глоссариев и сноска в LaTeX

Вот пример кода, скомпилированного с TeXnic Центра и MiKTeX 2.7:

\documentclass{article} 
\usepackage{index} 
\usepackage[toc,style=long3colheaderborder,footnote,acronym]{glossaries} 

\makeindex 
\makeglossaries 


\newglossaryentry{appdomain}{name={application domain}, description={app Domain Description...}} 
\newglossaryentry{sample}{name={[has been inserted aaa]},description={testing testing 123}} 

\newacronym{aca}{aca}{a contrived acronym} 

\begin{document} 
\section{this is a test section} 
This is the test line... a \gls{sample} \gls{appdomain} 
\index{entry} and \gls{aca} 
\thispagestyle{empty}\cleardoublepage 

\printglossary[type=main,title={Glossary},toctitle={Glossary}] 
\thispagestyle{empty}\cleardoublepage 
\printglossary[type=\acronymtype,title={List of Abbreviations},toctitle={List of Abbreviations}] 

\printindex 
\thispagestyle{empty}\cleardoublepage 
\end{document} 

Я хочу образец и AppDomain либо содержат сноску с описанием или сноски с указанием: пожалуйста, обратитесь к Глоссарий

Большое спасибо ,
Ованес

+0

Можете ли вы опубликовать фрагмент, который проиллюстрирует вашу проблему? – Mica

+0

Используете ли вы стандартную команду '\ glossary' или пакет, такой как http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=glossaries? –

+0

Я использую пакет \ glossaries, который является дальнейшей разработкой \ glossary. Я попытаюсь сделать фрагмент, но я не уверен, действительно ли это требуется, поскольку при импорте пакета: \ usepackage [toc, style = long3colheaderborder, footnote, acronym] {glossaries} объявляет, что акронимы находятся в отдельной словарь терминов. После того, как аббревиатура появляется впервые в тексте, я получаю сноску, но если появляется нормальная фраза глоссария, я ее не вижу. Док утверждает, что \ акроним - это что-л. как форвардная декларация в \ newglossaryentry. Как я могу сделать запись нормального глоссария первой раз со сноской? – ovanes

ответ

6

Короче говоря, с glossaries пакетом, вы не можете получить сноски на первое использовании для не аббревиатура глоссарии.

Однако, вы можете переопределить некоторые команды в преамбуле (после того, как вы \usepackage{glossaries}), чтобы получить то, что вы хотите:

\makeatletter 
\renewcommand{\[email protected]@displayfirst}[4]{ 
    #1#4\protect\footnote{#2} 
} 
\makeatother 

Но это будет очень хрупким.

+0

Вау! Это именно то, что я искал. Почему он хрупкий? – ovanes

+0

Простите, уже поздно, и я не сразу понял. Теперь я понял, что значит «хрупкий». Если я изменю имя или тип глоссария, он сломается. Но в любом случае спасибо! – ovanes

+0

Ровно! Возможно, это должно быть подано как запрос функции с сопровождающим пакетом ... –

0

После является хорошей техникой, чтобы поставить сноску о том, где эти определения:

\label{nom} %put this on the page your term appears, so that it can collect page number 

\newcommand{\g}{\footnote{For all abbreviations see the glossary on page \pageref{nom}.}} 

Я нашел это от here.

1

Я думаю, что есть более простой способ сделать это. Может быть, это ново, но

\defglsdisplayfirst[main]{#1#4\protect\footnote{#2}} 

, похоже, достигает того же самого (поправьте меня, если я ошибаюсь). См. Руководство пользователя glossaries, версия 2.03, подраздел 2.4.1 , изменяющий формат текста.

К сожалению, это выглядит так: \gls или \autoref не работает в этих сносках.

+1

Этот метод устарел, [говорит документация] (http://ctan.sciserv.eu/macros/latex/contrib/glossaries/glossaries-user.pdf), стр. 112, в сносках. – Soana