Portál AbcLinuxu, 16. července 2025 19:48


Dotaz: LaTeX -- řazení položek podle abecedy v description

26.5.2008 09:58 drc
LaTeX -- řazení položek podle abecedy v description
Přečteno: 630×
Odpovědět | Admin
Ahoj, neznáte náhodou způsob jak zařídit, aby se položky v prostředí description (a třeba taky itemize) řadily podle abecedy?

Diky za rady :-)
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

26.5.2008 10:32 ams
Rozbalit Rozbalit vše Re: LaTeX -- řazení položek podle abecedy v description
Odpovědět | | Sbalit | Link | Blokovat | Admin
TeX toto neumi. Existuje nekolik duvodu proc D. Knuth nepridal tuto moznost to TeXu, jak technickeho, tak i "filozofickeho" razu. Jiste, muzete naprogramovat v TeXu vlastni prostredi, ktere by umelo serazovat seznam podle abecedy, ale nebude to snadne. Vlastne to bude velmi slozite. TeX nema prikazy na porovnani dvou retezcu a dokonce ani ASCII-kod symbolu nemuzete zjistit zadnou jednoduchou cestou. I kdyz to dokazete naprogramovat, bude to strasne pomale a pametove narocne.

Jinymi slovy, pouzivejte pro setrideni seznamu dobry textovy editor a nikoliv samotny TeX.
26.5.2008 10:37 drc
Rozbalit Rozbalit vše Re: LaTeX -- řazení položek podle abecedy v description
Předpokladal jsem, že to tak bude, ale každopádně díky za informaci. :-) Nicméně pro tvorbu "slovníků" (krátkých) by se to docela hodilo.
26.5.2008 11:42 drc
Rozbalit Rozbalit vše Re: LaTeX -- řazení položek podle abecedy v description
Ještě mě napadlo, že BibTeX umí řazení podle abecedy. Jakým způsobem to tedy řeší? (A nešlo by toho nějak využít?)
26.5.2008 12:42 ams
Rozbalit Rozbalit vše Re: LaTeX -- řazení položek podle abecedy v description
BibTeX je externi program, ktery se samotnym TeXem nema vlastne nic spolecneho. V tomto pripade bude asi jednodussi napsat vlastni skript. Tady je ukazka toho, jak by takovy skript mohl vypadat. Melo by to fungovat spravne, pokud mate \begin{description}, \end{description} a vsechny \item[...] na samostatnem radku.
$ cat pokus.tex
\documentclass{article}
\begin{document}
\begin{description}
\item[second]And something 
else is here
\item[first]Something is
here
\item[andthird]Last
but
not
least
item
\end{description}
\end{document}

$ cat dsort.pl
#!/usr/bin/perl
while(<>){
        if(/\\begin\{description\}/){
                print;
                $d=1; %d=(); undef $k;
        }
        if(/\\end\{description\}/){
                print "\\item[$_]$d{$_}" for sort keys %d;
                $d=0;
        }
        print and next unless $d;
        if(/\\item\s*\[(.*?)\](.*)/){
                $k=$1;
                $d{$k}="$2\n";
        } elsif(defined $k){
                $d{$k}.=$_;
        }
}

$ perl dsort.pl pokus.tex
\documentclass{article}
\begin{document}
\begin{description}
\item[andthird]Last
but 
not
least
item
\item[first]Something is
here
\item[second]And something 
else is here
\end{description}
\end{document}
26.5.2008 12:05 Guci | skóre: 9
Rozbalit Rozbalit vše Re: LaTeX -- řazení položek podle abecedy v description
Podle mě je nejjednoduší to prohnat rourou -> sort ;-) a za par vterin nemas co resit. Co se tyce LaTeXu nikdy jsem neviděl tuto možnost

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.