diff --git a/render_pdf.sh b/render_pdf.sh index 226688e..d16e9f5 100755 --- a/render_pdf.sh +++ b/render_pdf.sh @@ -41,5 +41,8 @@ fi # Run pdflatex three times to recalculate longtables and toc TEXINPUTS=.:${__dir}/src/latex: pdflatex -jobname=${JOB} -output-directory "${tex_dir}" "${tex_file}" +(cd ${tex_dir}; makeindex -o "${JOB}.aind" "${JOB}.aadx") +(cd ${tex_dir}; makeindex -o "${JOB}.gind" "${JOB}.gadx") +(cd ${tex_dir}; makeindex -o "${JOB}.wind" "${JOB}.wadx") TEXINPUTS=.:${__dir}/src/latex: pdflatex -jobname=${JOB} -output-directory "${tex_dir}" "${tex_file}" TEXINPUTS=.:${__dir}/src/latex: pdflatex -jobname=${JOB} -output-directory "${tex_dir}" "${tex_file}" diff --git a/src/formats/single_p.tex b/src/formats/single_p.tex index 454fadc..f2604d7 100644 --- a/src/formats/single_p.tex +++ b/src/formats/single_p.tex @@ -16,6 +16,12 @@ \renewcommand{\familydefault}{\sfdefault} \usepackage{helvet} +\usepackage{index} + +\newindex{wyk}{wadx}{wind}{Indeks wykonawców} +\newindex{aliases}{aadx}{aind}{Indeks tytułów} +\newindex{genre}{gadx}{gind}{Indeks gatunków} + \geometry{scale={0.95,0.85},pdftex,top={3ex}} \addtolength{\headheight}{5ex} diff --git a/src/formats/songbook_p.tex b/src/formats/songbook_p.tex index 3f21a6b..ba0a987 100644 --- a/src/formats/songbook_p.tex +++ b/src/formats/songbook_p.tex @@ -13,6 +13,12 @@ \usepackage{graphicx} \usepackage{dcolumn} \usepackage{qrcode} +\usepackage{index} + +\newindex{wyk}{wadx}{wind}{Indeks wykonawców} +\newindex{aliases}{aadx}{aind}{Indeks tytułów} +\newindex{genre}{gadx}{gind}{Indeks gatunków} + \usepackage{hyperref} \hypersetup{ @@ -73,3 +79,7 @@ \rightline{\qrcode{:url:}} \cleardoublepage + + +%\printindex[aliases] +%\cleardoublepage diff --git a/src/formats/songbook_s.tex b/src/formats/songbook_s.tex index 6991640..f8b6896 100644 --- a/src/formats/songbook_s.tex +++ b/src/formats/songbook_s.tex @@ -2,4 +2,8 @@ \fancyhead[LE]{SPIS TREŚCI} \fancyhead[RO]{SPIS TREŚCI} \tableofcontents + +\printindex[wyk] +\printindex[genre] +\printindex[aliases] \end{document} diff --git a/src/latex/song2tex.py b/src/latex/song2tex.py index b0b7478..54eab38 100644 --- a/src/latex/song2tex.py +++ b/src/latex/song2tex.py @@ -141,7 +141,7 @@ def parseDOM(root, linked=False): class Song: - def __init__(self, title='', text_author='', composer='', artist='', blocks=[], barre=None, metre=None): + def __init__(self, title='', text_author='', composer='', artist='', blocks=[], barre=None, metre=None, genre=None, alias=None): self.title = tex_escape(title) if title else '' self.text_author = tex_escape(text_author) if text_author else '' self.composer = tex_escape(composer) if composer else '' @@ -149,6 +149,8 @@ def __init__(self, title='', text_author='', composer='', artist='', blocks=[], self.blocks = blocks self.barre = barre if barre != '' and barre != '0' and barre != 0 else None self.metre = metre + self.genre = genre + self.alias = alias @staticmethod def parseDOM(root): @@ -165,12 +167,14 @@ def parseDOM(root): return Song( title=root.get('title'), + alias=get_text(root.find('{*}alias')), text_author=get_text(root.find('{*}text_author')), composer=get_text(root.find('{*}composer')), artist=get_text(root.find('{*}artist')), blocks=blocks, barre=get_attrib(root.xpath("./s:music/s:guitar/@barre", namespaces={"s": "http://21wdh.staszic.waw.pl"})), - metre=get_attrib(root.xpath("./s:music/@metre", namespaces={"s": "http://21wdh.staszic.waw.pl"})) + metre=get_attrib(root.xpath("./s:music/@metre", namespaces={"s": "http://21wdh.staszic.waw.pl"})), + genre=get_text(root.find('{*}genre')) ) diff --git a/src/latex/song_template.tex b/src/latex/song_template.tex index 8c93f9b..2cc9867 100644 --- a/src/latex/song_template.tex +++ b/src/latex/song_template.tex @@ -1,4 +1,4 @@ -\begin{song}{\VAR{song.title}}{\VAR{song.text_author}}{\VAR{song.composer}}{\VAR{song.artist}}{\VAR{song.barre or ''}}{\VAR{song.metre or ''}} +\begin{song}{\VAR{song.title}}{\VAR{song.text_author}}{\VAR{song.composer}}{\VAR{song.artist}}{\VAR{song.barre or ''}}{\VAR{song.metre or ''}}{\VAR{song.genre or ''}}{\VAR{song.alias or ''}} \begin{longtable}[l]{l V{6em} l l@{}} &\ldots \endfoot \endlastfoot \BLOCK{ for block in song.blocks } diff --git a/src/latex/songbook21wdh.sty b/src/latex/songbook21wdh.sty index ce7b5bb..f90e384 100644 --- a/src/latex/songbook21wdh.sty +++ b/src/latex/songbook21wdh.sty @@ -121,7 +121,7 @@ }% -\newenvironment{song}[6]{ +\newenvironment{song}[8]{ \clearpage% \fancyhead[LE]{#1}% \fancyhead[RO]{#1}% @@ -130,7 +130,12 @@ \renewcommand{\theSongLyricist}{#2}% \renewcommand{\theSongComposer}{#3}% \renewcommand{\theSongArtist}{#4}% + % #7 - alias #8- genre \addtocounter{SongCnt}{1}% + \index[wyk]{#4!#1} + \index[aliases]{#1} + \index[aliases]{#8!#1} + \index[genre]{#7!#1} \addcontentsline{toc}{section}{\theSongCnt{}. #1}% % \addcontentsline{toc}{section}{alias title} \STitle{\theSongTitle}%