maieul / indextools Goto Github PK
View Code? Open in Web Editor NEWAn imakeidx fork to avoid some limitation
An imakeidx fork to avoid some limitation
Does the notenumber option only work in combination with a symbolic name for an index?
When no symbolic name is specified the MWE does not run. And the index command in the normal footnote causes an error message. Without the notenumber option it works.
\documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[german]{babel}
\usepackage[makeindex,notenumber]{indextools}
\usepackage[series={A,B,C},noeledsec,noend]{reledmac}
\usepackage{reledpar}
\makeindex[title=Index personarum]
\begin{document}
\chapter{Carolus Magnus et alii quamplures}
Carolus Magnus\index{Carolus Magnus},
Ludovicus Pius\footnote{Ludovicus Pius\index{Ludovicus Pius}}
\begin{pairs}
\begin{Leftside}
\beginnumbering
\pstart
Pippinus Maior\footnoteA{Pippinus Maior\index{Pippinus Maior}}.
\pend
\endnumbering
\end{Leftside}
\begin{Rightside}
\beginnumbering
\pstart
Pippinus Minor\footnoteA{Pippinus Minor\index{Pippinus Minor}}.
\pend
\endnumbering
\end{Rightside}
\end{pairs}
\Columns
\printindex
\end{document}
Cf this MWE
\documentclass{article}
\usepackage[innote]{indextools}
\usepackage{bibleref}
\makeindex
\begin{document}
\index{toto}\ibibleverse{Mt}(2:)\footnote{\index{toto}\ibibleverse{Mt}(2:)}
\printindex
\end{document}
In the index of the MWE the hyphenation of words works, when imakeidx is used. The hyphenation does not work with indextools v1.5.1. Is this behaviour intended?
Normally I prefer indextools to generate multiple indices because of the very comfortable innote- and notenumber-options and the close collaboration with reledmac.
\documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[german]{babel}
%\usepackage[makeindex]{imakeidx}
\usepackage[makeindex]{indextools}
\makeindex[title=Personen]
\usepackage[itemlayout=relhang,hangindent=2em]{idxlayout}
\begin{document}
Albert der Große\index{Albert der Große (Albertus von Lauingen)}
Gottfried von Bouillon\index{Gottfried von Bouillon (Godefridus Bullionensis)}
\printindex
\end{document}
Bonjour,
Ce message fait suite à un problème que j'ai rencontré pour créer un index exposé sur texnique.fr. Mon problème était le suivant : je souhaitais créer un index dans lequel soient prises en compte des entrées indiquées après la commande \printindex
, et ce en raison des normes imposées par mon université m'obligeant à placer l'index à la fin de la partie de texte alors que je souhaite y faire figurer des entrées situées dans le seconde partie d'annexes.
Voici la solution proposée par unbonpetit, qui me convient, mais qui mériterait peut-être d'être intégrée directement à l'extensionindextools
:
\documentclass{article}
\usepackage{fontspec}
\usepackage[xindy]{indextools}
\makeatletter
\def\indtl@putindex#1{%
\ifindtl@nonewpage\else
\indtl@clearpage
\fi
\let\indtl@indexname\indexname % keep \indexname
\@nameuse{indtl@set@#1}\indtl@decide
\AtEndDocument{%
\indtl@clearpage
\immediate\closeout\csname #1@idxfile\endcsname
\if@tempswa % we can call the external program
\indtl@exec{\indtl@program\indtl@options#1.idx}%
\else
\indtl@finalmessage{#1}%
\fi}%
\ifKV@indtl@intoc
\def\indtl@maybeaddtotoc{\@nameuse{phantomsection}%
\addcontentsline{toc}{\indtl@toclevel}{\indtl@title}}%
\else
\def\indtl@maybeaddtotoc{}%
\fi
\ifx\indtl@title\indtl@check@indexname\else
\def\indexname{\indtl@title}%
\fi
\@input@{#1.ind}
\let\indexname\indtl@indexname % restore \indexname
}
\makeatother
\makeindex
\begin{document}
Blablabla\index{index1}
\newpage
\printindex
\newpage
Blablabla\index{index2}
\end{document}
Soit le mwe suivant:
\documentclass{article}
\usepackage{fontspec}
\usepackage{amsmath}
\defaultfontfeatures{Ligatures=TeX}
\setmainfont{Linux Libertine O}
\usepackage{indextools}
\usepackage{eledmac}
\makeindex[noautomatic, name=arabe, title={Index des mots arabes}]
\usepackage{hyperref}
\usepackage{polyglossia}
\setdefaultlanguage{french}
\setotherlanguage{arabic}
\newfontfamily\arabicfont[Script=Arabic]{Amiri}
\usepackage[voc]{arabxetex}
\newcommand{\ta}{\textarabic}
\let\aemph\veryundefinedcommand
\begin{document}
\beginnumbering
\pstart
Je ne sais si cela va
marcher... \ta{\edindex[arabe]{\ta{دخل}!f01@\ta{daxala}}daxala mubtasimaN}
\pend
\endnumbering
\printindex[arabe]
\end{document}
Si je tente de le compiler, j'obtiens l'erreur suivante:
Package eledmac Warning: Can't find line-list file mwe-mk3.1 on input line 27.
! Use of \\@wredindex doesn't match its definition.
\kernel@ifnextchar ...rved@d =#1\def \reserved@a {
#2}\def \reserved@b {#3}\f...
l.32 mubtasimaN}
En revanche, si je commente la ligne \usepackage{hyperref}
la compilation se fait. Même comportement avec imakeidx.
La compilation d'un index arabe est complexe. Explication courte: les mots arabes sont classés par racine. Sous chaque entrée, on doit trouver, autant de sous-entrées qu'on a de formes différentes de la même racine. Dans le mwe ci-dessus, j'obtiens ceci en écrivant dans le tag d'index: !f01@\ta{daxala}
. Autrement dit: «première forme, à classer sous “daxala”».
Dans mon cas, pour que tout fonctionne, je dois avec l'exemple suivant (donc sans hyperref, hélas) obtenir le fichier arabe.ixd
suivant:
\indexentry{\bgroup \catcode `^=11\relax \catcode `_=11\relax \text@arab {دخل}!f01@\bgroup \catcode `^=11\relax \catcode `_=11\relax \text@arab {daxala}}{1-1}
Ensuite, je fais dans tout le fichier une recherche-remplacement. Je recherche:
\bgroup \catcode `^=11\relax \catcode `_=11\relax \text@arab
que je remplace tout simplement par \ta
. Puis je fais makeindex arabe
et le tour est joué. C'est ce qui me conduit au deuxième blocage.
C'est tout simple. Étant entendu que hyperref
est désactivé, indextools
ne produit pas la sous-entrée. Alors que imakeidx
produit la sous-entrée...
Si maintenant j'utilise la fonction d'indexation intégrée de memoir
, tout marche: entrées, sous-entrées et même avec hyperref
.
\documentclass{article}
\usepackage[notenumber]{indextools}
\makeindex
\begin{document}
\footnote{\index{s}}
\footnote{\index{s}}
\footnote{\index{s}}
\footnote{\index{s}}
\footnote{\index{s}}
\footnote{\index{s}}
\footnote{\index{s}}
\footnote{\index{s}}
\footnote{\index{s}}
\footnote{\index{s}}
\footnote{\index{s}}
\printindex
\end{document}
Cf http://geekographie.maieul.net/172
Et nous voici en face de deux limites de xindy :
alors que makeindex transforme toute syntaxe de type |xxx en la commande correspondante, il n’en va pas de même avec xindy, qui nécessite qu’on lui déclare ces commandes manuellement. En effet, xindy, qui n’est pas conçue uniquement pour LaTeX, considère que la syntaxe |xxx après une entrée dans le fichier .idx correspond à un attribut de localisation, c’est à dire une propriété associée à la localisation d’une entrée. Certains de ces attribut de localisation sont déclarés dans le fichier base/latex-loc-fmts.xdy que texindy charge par défaut.
ces attributs ne peuvent pas recevoir d’arguments. Ainsi, même si nous déclarions hyperindexformat, cela ne nous arrangerait pas. En effet, les commandes avec arguments sont considérés par \xindy comme des marqueurs de renvois au sein de l’index, alors que makeindex est plus souple sur la question.
Donc il faut pour que |innote number fonctionne que l'on produise un .xdy comme on fait pour reledmac.
en lien avec #2 et maieul/ledmac#436 -> une option innote qui se charger automatiquement de marquer les index spécifique de note.
cf demande de @sonator
à la place de p1 n2 p1n3 avoir p1n2,3
utiliser la précision de localisation, mais cela ne marche que pour xindy mais pas pour makeindex
à la place de p1 n2 p1n3 avoir p1n2,3
utiliser la précision de localisation,
In the following MWEs no index entry will be accepted. But, after removing the noclearpage option of the indexsetup all entries are found and typeset correctly. I have used pdflatex.exe.
Please have a look on the MWEs. Thank you!
\documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[german]{babel}
\usepackage[makeindex]{indextools}
\indexsetup{level=\section*,toclevel=section,noclearpage}
\makeindex[name=res,title=Index rerum]
\makeindex[name=pers,title=Index personarum]
\newcommand{\fn}[1]{#1\textit{n}}
\begin{document}
Experimentum\index[res]{experimentum} istud Johannis\index[pers]{Johannes} est\footnote{Nota pedis\index[res]{nota pedis|fn} experimentalis}.
\printindex[res]
\printindex[pers]
\end{document}
\documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[german]{babel}
\usepackage[makeindex]{indextools}
\indexsetup{level=\section*,toclevel=section,noclearpage}
\usepackage[series={A},noeledsec,noend]{reledmac}
\makeindex[name=res,title=Index rerum]
\makeindex[name=pers,title=Index personarum]
\newcommand{\fn}[1]{#1\textit{n}}
\begin{document}
\begin{ledgroup}
\beginnumbering
\pstart
Experimentum\index[res]{experimentum} istud Johannis\index[pers]{Johannes} est\footnoteA{Nota pedis\index[res]{nota pedis|fn} experimentalis}.
\pend
\endnumbering
\end{ledgroup}
\printindex[res]
\printindex[pers]
\end{document}
|textbf empeche de produire un resultat parsable par makeindex (et par xindy) lorsqu'on utilise |innote et |notenumber. en lien avec #6
Cf mes remarques sur maieul/ledmac#571 (comment)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.