From 394a7aeae484cf3797a1027c88393bcdfedaed6d Mon Sep 17 00:00:00 2001 From: Hugo Villeneuve Date: Fri, 30 Nov 2007 04:48:30 +0000 Subject: [PATCH 1/1] Importation de guitartex-2.8.2-fix1 --- .TeX/gchords.sty | 223 +++++ COPYING | 280 ++++++ INSTALL | 21 + Makefile | 17 + doc/de/Makefile | 2 + doc/de/acknowledgements.xml | 86 ++ doc/de/directives.xml | 793 ++++++++++++++++ doc/de/editor.xml | 217 +++++ doc/de/examples.xml | 142 +++ doc/de/gtx2tex.xml | 59 ++ doc/de/guitartex.xml | 33 + doc/de/guitartex/HTML.manifest | 29 + doc/de/guitartex/a906.html | 158 ++++ doc/de/guitartex/book1.html | 464 ++++++++++ doc/de/guitartex/c82.html | 98 ++ doc/de/guitartex/configfile.html | 247 +++++ doc/de/guitartex/directives.html | 120 +++ doc/de/guitartex/docbook.css | 12 + doc/de/guitartex/editor.html | 90 ++ doc/de/guitartex/examples.html | 99 ++ doc/de/guitartex/geometry.html | 488 ++++++++++ doc/de/guitartex/gtx2tex.html | 74 ++ doc/de/guitartex/installation.html | 118 +++ doc/de/guitartex/introduction.html | 232 +++++ doc/de/guitartex/latex.html | 142 +++ doc/de/guitartex/links.html | 86 ++ doc/de/guitartex/ln12.html | 63 ++ doc/de/guitartex/others.html | 217 +++++ doc/de/guitartex/r193.html | 135 +++ doc/de/guitartex/requirements.html | 99 ++ doc/de/guitartex/songbook.html | 257 +++++ .../guitartex/stylesheet-images/caution.gif | Bin 0 -> 1039 bytes doc/de/guitartex/stylesheet-images/home.gif | Bin 0 -> 995 bytes .../guitartex/stylesheet-images/important.gif | Bin 0 -> 1081 bytes doc/de/guitartex/stylesheet-images/next.gif | Bin 0 -> 964 bytes doc/de/guitartex/stylesheet-images/note.gif | Bin 0 -> 1070 bytes doc/de/guitartex/stylesheet-images/prev.gif | Bin 0 -> 944 bytes doc/de/guitartex/stylesheet-images/tip.gif | Bin 0 -> 1029 bytes .../guitartex/stylesheet-images/toc-blank.gif | Bin 0 -> 95 bytes .../guitartex/stylesheet-images/toc-minus.gif | Bin 0 -> 843 bytes .../guitartex/stylesheet-images/toc-plus.gif | Bin 0 -> 846 bytes doc/de/guitartex/stylesheet-images/up.gif | Bin 0 -> 922 bytes .../guitartex/stylesheet-images/warning.gif | Bin 0 -> 1052 bytes doc/de/guitartex/tablature.html | 258 ++++++ doc/de/guitartex/x227.html | 297 ++++++ doc/de/guitartex/x298.html | 85 ++ doc/de/guitartex/x305.html | 94 ++ doc/de/guitartex/x447.html | 268 ++++++ doc/de/guitartex/x519.html | 166 ++++ doc/de/guitartex/x750.html | 327 +++++++ doc/de/guitartex/x819.html | 124 +++ doc/de/guitartex/x847.html | 153 +++ doc/de/guitartex/x864.html | 88 ++ doc/de/guitartex/x883.html | 112 +++ doc/de/info.xml | 54 ++ doc/de/installation.xml | 120 +++ doc/de/introduction.xml | 88 ++ doc/de/latex.xml | 229 +++++ doc/de/links.xml | 51 + doc/de/sflogo.xml | 13 + doc/en/Makefile | 2 + doc/en/acknowledgements.xml | 88 ++ doc/en/directives.xml | 876 ++++++++++++++++++ doc/en/editor.xml | 244 +++++ doc/en/examples.xml | 142 +++ doc/en/gtx2tex.xml | 58 ++ doc/en/guitartex.xml | 33 + doc/en/guitartex/HTML.manifest | 29 + doc/en/guitartex/a959.html | 239 +++++ doc/en/guitartex/book1.html | 851 +++++++++++++++++ doc/en/guitartex/c87.html | 194 ++++ doc/en/guitartex/configfile.html | 385 ++++++++ doc/en/guitartex/directives.html | 225 +++++ doc/en/guitartex/docbook.css | 12 + doc/en/guitartex/editor.html | 192 ++++ doc/en/guitartex/examples.html | 199 ++++ doc/en/guitartex/geometry.html | 701 ++++++++++++++ doc/en/guitartex/gtx2tex.html | 153 +++ doc/en/guitartex/installation.html | 190 ++++ doc/en/guitartex/introduction.html | 360 +++++++ doc/en/guitartex/latex.html | 252 +++++ doc/en/guitartex/links.html | 184 ++++ doc/en/guitartex/ln12.html | 100 ++ doc/en/guitartex/others.html | 352 +++++++ doc/en/guitartex/r205.html | 209 +++++ doc/en/guitartex/requirements.html | 177 ++++ doc/en/guitartex/songbook.html | 415 +++++++++ .../guitartex/stylesheet-images/caution.gif | Bin 0 -> 1039 bytes doc/en/guitartex/stylesheet-images/home.gif | Bin 0 -> 995 bytes .../guitartex/stylesheet-images/important.gif | Bin 0 -> 1081 bytes doc/en/guitartex/stylesheet-images/next.gif | Bin 0 -> 964 bytes doc/en/guitartex/stylesheet-images/note.gif | Bin 0 -> 1070 bytes doc/en/guitartex/stylesheet-images/prev.gif | Bin 0 -> 944 bytes doc/en/guitartex/stylesheet-images/tip.gif | Bin 0 -> 1029 bytes .../guitartex/stylesheet-images/toc-blank.gif | Bin 0 -> 95 bytes .../guitartex/stylesheet-images/toc-minus.gif | Bin 0 -> 843 bytes .../guitartex/stylesheet-images/toc-plus.gif | Bin 0 -> 846 bytes doc/en/guitartex/stylesheet-images/up.gif | Bin 0 -> 922 bytes .../guitartex/stylesheet-images/warning.gif | Bin 0 -> 1052 bytes doc/en/guitartex/tablature.html | 417 +++++++++ doc/en/guitartex/x246.html | 479 ++++++++++ doc/en/guitartex/x318.html | 162 ++++ doc/en/guitartex/x325.html | 166 ++++ doc/en/guitartex/x474.html | 493 ++++++++++ doc/en/guitartex/x542.html | 269 ++++++ doc/en/guitartex/x782.html | 473 ++++++++++ doc/en/guitartex/x858.html | 225 +++++ doc/en/guitartex/x886.html | 241 +++++ doc/en/guitartex/x903.html | 172 ++++ doc/en/guitartex/x929.html | 219 +++++ doc/en/info.xml | 55 ++ doc/en/installation.xml | 134 +++ doc/en/introduction.xml | 125 +++ doc/en/latex.xml | 237 +++++ doc/en/links.xml | 52 ++ doc/en/sflogo.xml | 13 + doc/images/.xvpics/musixtex2.png | Bin 0 -> 4449 bytes doc/images/chord-example.png | Bin 0 -> 2790 bytes doc/images/chords.png | Bin 0 -> 25404 bytes doc/images/color_selector.png | Bin 0 -> 6296 bytes doc/images/icons.png | Bin 0 -> 977 bytes doc/images/index.png | Bin 0 -> 48695 bytes doc/images/latex.png | Bin 0 -> 2001 bytes doc/images/manualsong.png | Bin 0 -> 29092 bytes doc/images/musixlyr1.png | Bin 0 -> 23174 bytes doc/images/musixtex1.png | Bin 0 -> 25124 bytes doc/images/musixtex2.png | Bin 0 -> 13372 bytes doc/images/pdf.png | Bin 0 -> 2316 bytes doc/images/postscript.png | Bin 0 -> 1970 bytes doc/images/song.png | Bin 0 -> 24252 bytes doc/images/songbook.png | Bin 0 -> 25764 bytes doc/images/syntax.png | Bin 0 -> 2404 bytes doc/images/tablat1.png | Bin 0 -> 1440 bytes doc/images/tablat2.png | Bin 0 -> 1821 bytes doc/images/tablat3.png | Bin 0 -> 2399 bytes doc/images/tablat4.png | Bin 0 -> 3488 bytes doc/images/tablat5.png | Bin 0 -> 1831 bytes doc/images/tablat6.png | Bin 0 -> 3577 bytes doc/images/tablature.pdf | Bin 0 -> 28888 bytes doc/images/tablature.png | Bin 0 -> 1144 bytes doc/images/tablature2.png | Bin 0 -> 14080 bytes doc/images/window.png | Bin 0 -> 21594 bytes doc_de.html | 1 + doc_en.html | 1 + gtx2tex.pl | 614 ++++++++++++ guitartex.conf | 95 ++ guitartex.pl | 813 ++++++++++++++++ images/color.gif | Bin 0 -> 1667 bytes images/colorscm.png | Bin 0 -> 2404 bytes images/down.gif | Bin 0 -> 749 bytes images/filenew.gif | Bin 0 -> 1347 bytes images/fileopen.gif | Bin 0 -> 1375 bytes images/filesave.gif | Bin 0 -> 1527 bytes images/pdf.gif | Bin 0 -> 1661 bytes images/postscript.gif | Bin 0 -> 1608 bytes images/tex.gif | Bin 0 -> 1561 bytes images/up.gif | Bin 0 -> 1144 bytes language/br.pl | 113 +++ language/de.pl | 111 +++ language/en.pl | 111 +++ language/es.pl | 112 +++ language/it.pl | 112 +++ language/pl.pl | 111 +++ release-note | 6 + templates/Song | 1 + templates/Songbook | 1 + templates/empty | 1 + 167 files changed, 20625 insertions(+) create mode 100644 .TeX/gchords.sty create mode 100644 COPYING create mode 100644 INSTALL create mode 100644 Makefile create mode 100644 doc/de/Makefile create mode 100644 doc/de/acknowledgements.xml create mode 100755 doc/de/directives.xml create mode 100644 doc/de/editor.xml create mode 100755 doc/de/examples.xml create mode 100644 doc/de/gtx2tex.xml create mode 100755 doc/de/guitartex.xml create mode 100644 doc/de/guitartex/HTML.manifest create mode 100644 doc/de/guitartex/a906.html create mode 100644 doc/de/guitartex/book1.html create mode 100644 doc/de/guitartex/c82.html create mode 100644 doc/de/guitartex/configfile.html create mode 100644 doc/de/guitartex/directives.html create mode 100644 doc/de/guitartex/docbook.css create mode 100644 doc/de/guitartex/editor.html create mode 100644 doc/de/guitartex/examples.html create mode 100644 doc/de/guitartex/geometry.html create mode 100644 doc/de/guitartex/gtx2tex.html create mode 100644 doc/de/guitartex/installation.html create mode 100644 doc/de/guitartex/introduction.html create mode 100644 doc/de/guitartex/latex.html create mode 100644 doc/de/guitartex/links.html create mode 100644 doc/de/guitartex/ln12.html create mode 100644 doc/de/guitartex/others.html create mode 100644 doc/de/guitartex/r193.html create mode 100644 doc/de/guitartex/requirements.html create mode 100644 doc/de/guitartex/songbook.html create mode 100644 doc/de/guitartex/stylesheet-images/caution.gif create mode 100644 doc/de/guitartex/stylesheet-images/home.gif create mode 100644 doc/de/guitartex/stylesheet-images/important.gif create mode 100644 doc/de/guitartex/stylesheet-images/next.gif create mode 100644 doc/de/guitartex/stylesheet-images/note.gif create mode 100644 doc/de/guitartex/stylesheet-images/prev.gif create mode 100644 doc/de/guitartex/stylesheet-images/tip.gif create mode 100644 doc/de/guitartex/stylesheet-images/toc-blank.gif create mode 100644 doc/de/guitartex/stylesheet-images/toc-minus.gif create mode 100644 doc/de/guitartex/stylesheet-images/toc-plus.gif create mode 100644 doc/de/guitartex/stylesheet-images/up.gif create mode 100644 doc/de/guitartex/stylesheet-images/warning.gif create mode 100644 doc/de/guitartex/tablature.html create mode 100644 doc/de/guitartex/x227.html create mode 100644 doc/de/guitartex/x298.html create mode 100644 doc/de/guitartex/x305.html create mode 100644 doc/de/guitartex/x447.html create mode 100644 doc/de/guitartex/x519.html create mode 100644 doc/de/guitartex/x750.html create mode 100644 doc/de/guitartex/x819.html create mode 100644 doc/de/guitartex/x847.html create mode 100644 doc/de/guitartex/x864.html create mode 100644 doc/de/guitartex/x883.html create mode 100644 doc/de/info.xml create mode 100755 doc/de/installation.xml create mode 100644 doc/de/introduction.xml create mode 100755 doc/de/latex.xml create mode 100644 doc/de/links.xml create mode 100644 doc/de/sflogo.xml create mode 100644 doc/en/Makefile create mode 100644 doc/en/acknowledgements.xml create mode 100755 doc/en/directives.xml create mode 100644 doc/en/editor.xml create mode 100755 doc/en/examples.xml create mode 100644 doc/en/gtx2tex.xml create mode 100755 doc/en/guitartex.xml create mode 100644 doc/en/guitartex/HTML.manifest create mode 100644 doc/en/guitartex/a959.html create mode 100644 doc/en/guitartex/book1.html create mode 100644 doc/en/guitartex/c87.html create mode 100644 doc/en/guitartex/configfile.html create mode 100644 doc/en/guitartex/directives.html create mode 100644 doc/en/guitartex/docbook.css create mode 100644 doc/en/guitartex/editor.html create mode 100644 doc/en/guitartex/examples.html create mode 100644 doc/en/guitartex/geometry.html create mode 100644 doc/en/guitartex/gtx2tex.html create mode 100644 doc/en/guitartex/installation.html create mode 100644 doc/en/guitartex/introduction.html create mode 100644 doc/en/guitartex/latex.html create mode 100644 doc/en/guitartex/links.html create mode 100644 doc/en/guitartex/ln12.html create mode 100644 doc/en/guitartex/others.html create mode 100644 doc/en/guitartex/r205.html create mode 100644 doc/en/guitartex/requirements.html create mode 100644 doc/en/guitartex/songbook.html create mode 100644 doc/en/guitartex/stylesheet-images/caution.gif create mode 100644 doc/en/guitartex/stylesheet-images/home.gif create mode 100644 doc/en/guitartex/stylesheet-images/important.gif create mode 100644 doc/en/guitartex/stylesheet-images/next.gif create mode 100644 doc/en/guitartex/stylesheet-images/note.gif create mode 100644 doc/en/guitartex/stylesheet-images/prev.gif create mode 100644 doc/en/guitartex/stylesheet-images/tip.gif create mode 100644 doc/en/guitartex/stylesheet-images/toc-blank.gif create mode 100644 doc/en/guitartex/stylesheet-images/toc-minus.gif create mode 100644 doc/en/guitartex/stylesheet-images/toc-plus.gif create mode 100644 doc/en/guitartex/stylesheet-images/up.gif create mode 100644 doc/en/guitartex/stylesheet-images/warning.gif create mode 100644 doc/en/guitartex/tablature.html create mode 100644 doc/en/guitartex/x246.html create mode 100644 doc/en/guitartex/x318.html create mode 100644 doc/en/guitartex/x325.html create mode 100644 doc/en/guitartex/x474.html create mode 100644 doc/en/guitartex/x542.html create mode 100644 doc/en/guitartex/x782.html create mode 100644 doc/en/guitartex/x858.html create mode 100644 doc/en/guitartex/x886.html create mode 100644 doc/en/guitartex/x903.html create mode 100644 doc/en/guitartex/x929.html create mode 100644 doc/en/info.xml create mode 100755 doc/en/installation.xml create mode 100644 doc/en/introduction.xml create mode 100755 doc/en/latex.xml create mode 100644 doc/en/links.xml create mode 100644 doc/en/sflogo.xml create mode 100644 doc/images/.xvpics/musixtex2.png create mode 100644 doc/images/chord-example.png create mode 100644 doc/images/chords.png create mode 100644 doc/images/color_selector.png create mode 100644 doc/images/icons.png create mode 100644 doc/images/index.png create mode 100644 doc/images/latex.png create mode 100644 doc/images/manualsong.png create mode 100644 doc/images/musixlyr1.png create mode 100644 doc/images/musixtex1.png create mode 100644 doc/images/musixtex2.png create mode 100644 doc/images/pdf.png create mode 100644 doc/images/postscript.png create mode 100644 doc/images/song.png create mode 100644 doc/images/songbook.png create mode 100644 doc/images/syntax.png create mode 100644 doc/images/tablat1.png create mode 100644 doc/images/tablat2.png create mode 100644 doc/images/tablat3.png create mode 100644 doc/images/tablat4.png create mode 100644 doc/images/tablat5.png create mode 100644 doc/images/tablat6.png create mode 100644 doc/images/tablature.pdf create mode 100644 doc/images/tablature.png create mode 100644 doc/images/tablature2.png create mode 100644 doc/images/window.png create mode 120000 doc_de.html create mode 120000 doc_en.html create mode 100644 gtx2tex.pl create mode 100644 guitartex.conf create mode 100755 guitartex.pl create mode 100644 images/color.gif create mode 100644 images/colorscm.png create mode 100644 images/down.gif create mode 100644 images/filenew.gif create mode 100644 images/fileopen.gif create mode 100644 images/filesave.gif create mode 100644 images/pdf.gif create mode 100644 images/postscript.gif create mode 100644 images/tex.gif create mode 100644 images/up.gif create mode 100644 language/br.pl create mode 100644 language/de.pl create mode 100644 language/en.pl create mode 100644 language/es.pl create mode 100644 language/it.pl create mode 100644 language/pl.pl create mode 100644 release-note create mode 100644 templates/Song create mode 100644 templates/Songbook create mode 100644 templates/empty diff --git a/.TeX/gchords.sty b/.TeX/gchords.sty new file mode 100644 index 0000000..4b5fcb3 --- /dev/null +++ b/.TeX/gchords.sty @@ -0,0 +1,223 @@ +% +% GCHORDS, a LaTeX2e package to draw guitar chord diagrams. +% +% version 1.3.1 by K.Peeters, t16@nikhef.nl +% +% See ChangeLog for a list of changes. +% +%------------------------------------------------------------------------- +% Variable, user definable stuff is below. + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{gchords} + + +% Your guitar +\newcommand\strings{6} % number of strings on your guitar +\newcommand\numfrets{5} % length (no of frets) of a diagram + +% These should be modified if you want chords in a different size +\newcommand\mediumchords{ +\def\gchordsize{3.0mm} % distance between two frets (and two strings) +\font\fingerfont=cmr5 % font used for numbering fingers +\font\namefont=cmr10 % font used for labeling of the chord +\font\fretposfont=cmr7 % font used for the fret position marker +\def\dampsymbol{$\scriptstyle\times$} % symbol of the `damp this string' marker +} +\newcommand\smallchords{ +\def\gchordsize{2.0mm} % distance between two frets (and two strings) +\font\fingerfont=cmr5 % font used for numbering fingers +\font\namefont=cmr10 % font used for labeling of the chord +\font\fretposfont=cmr7 % font used for the fret position marker +\def\dampsymbol{$\scriptstyle\times$} % symbol of the `damp this string' marker +} + +\smallchords + +% Dotsizes (which scale with the chordsize macro) +\newcommand\fatsiz{1.6} % size of a fat note +\newcommand\normalsiz{1.2} % size of a normal note +\newcommand\fingsiz{1.4} % size of the circle around a numbered finger +\newcommand\fatfingsiz{1.8} % size of the circle around a numbered finger + +% Position of the chord in its bounding box +\newcommand\xoff{2} % pos(\xoff,\yoff) is left lower corner of diagram +\newcommand\yoff{2} + +%------------------------------------------------------------------------- + +\makeatletter +\newcommand\basenote{\circle*{\fatsiz}} +\newcommand\stdnote{\circle*{\normalsiz}} +\newcommand\fingnote{\circle{\fingsiz}} +\newcommand\fatfingnote{\circle{\fatfingsiz}} +\newcommand\cvline{\line(0,1)} +\newcommand\chline{\line(1,0)} + +\newcommand\gchords[1]{$$\hbox{#1}$$} +\newcommand\chtext[1]{\vbox{\settowidth{\hsize}{#1 xxxx} {#1 + \newdimen\ascale\ascale=\gchordsize\vskip8\ascale}}} + +% #1 modifiers (like num, or fretbar0) +% #2 positions +% #3 chordname + +\newcount\truewidth % the true width of the diagram, computed from strings +\newcount\topline +\newcount\myvpos +\newcount\mylength +\newcount\fnum % current f{...} value (number of finger) +\newcount\fpos % current p{...} value +\newcount\ghor % string number currently being drawn +\newcount\prevpos % previous value of p{...}, zero if no previous dot on string +\newcount\dlen % length of the vertical line to draw between dots +\newcount\cpos % scratch variable to hold vertical position of dot +\newcount\stpos +\newdimen\needsize + +\newcommand\gchord[3]{\vbox{\hbox{\newdimen\ascale\ascale=\gchordsize +\truewidth=\strings\advance\truewidth by -1 +\advance\truewidth by \xoff +\topline=\numfrets +\advance\topline by \yoff +\advance\topline by 2 + +%%% The Diagram itself %%%%%%%%% +\unitlength\ascale +\begin{picture}(\truewidth,\topline) +\advance\topline by -1 +\advance\truewidth by -\xoff +\myvpos=\yoff\advance\myvpos by \numfrets +%%% Parse the modifier string %% +\newcommand\topbar{n} +\@tfor\modstr:=#1\do + { \if\modstr t{\thicklines\put(\xoff,\myvpos){\chline{\truewidth}}\thinlines} + \else {\advance\topline by -2 + \put(\xoff,\topline){\hbox to 0pt{\hss\fretposfont\modstr\ }} + } + \fi + } + +%%% Horizontal lines (frets)%%%% +\mylength=0 +\myvpos=\yoff +\advance\myvpos by 1 % first fret starts a bit higher +\@whilenum \mylength<\numfrets \do { + \put(\xoff,\myvpos){\chline{\truewidth}} + \advance\mylength by 1 + \advance\myvpos by 1} + +%%% The Dots %%%%%%%%%%%%%%%%%%% +\newcommand\fnow{n} +\newcommand\pnow{n} +\newcommand\snow{n} + +\putdots{#2}{\gchordsize} +\put(\xoff,0){\hbox to \truewidth\ascale{\hss\namefont #3\hss}} +\end{picture} +}}} + +%\newcommand{\putdots}[2]{\@tfor\thisele:=#1\do{\if\thisele {}{hi} +% \else\if\thisele p{} +% \else.\thisele{}\fi\fi}} + +\long\def\ReturnAfterFi#1\fi{\fi#1} + \def\f@rc#1#2#3{% + \def\temp@ty{#2}% + \ifx\@empty\temp@ty + \else + \ReturnAfterFi{% + \f@@rc#1#2\f@@rc{#3}% + }% + \fi + }% + +\def\@forc#1#2#3{\expandafter\f@rc\expandafter#1{#2 K}{#3}} +%\def\f@rc#1#2#3{\def\temp@ty{#2}\ifx\@empty\temp@ty\else +% \f@@rc#1#2\f@@rc{#3}\fi} +\def\f@@rc#1#2#3\f@@rc#4{\def#1{#2}#4\f@rc#1{#3}{#4}} + +%\newcommand{\putdots}[2]{\@tfor\thisel:=#1K\do{\message{(\thisel)}\ifx\thisel{}\else\if\thisel K{SHIT}\else\ifx\thisel p{}\else.\thisel{}\fi\fi\fi}} + +\newcommand{\putdots}[2]{ + \prevpos=0 + \fpos=0 + \ghor=\xoff + \let\curnote\stdnote + \let\curfing\fingnote + \def\Ktest{K}\def\cotest{,}\def\btest{b}\def\ftest{f} + \def\stest{s}\def\ptest{p}\def\xtest{x}\def\ntest{n} + \@forc\thisel{#1}{ + \ifx\thisel\Ktest{}\else + \ifx\thisel\cotest\cpos=-\fpos\advance\cpos by \numfrets\advance\cpos by \yoff + \ifnum\cpos > \yoff + \dlen=\cpos + \advance\dlen by -\yoff + \put(\ghor,\yoff){\cvline{\dlen}} + \fi + \prevpos=0 + \fpos=0 + \fnum=0 + \renewcommand\pnow{n} + \renewcommand\fnow{n} + \renewcommand\snow{n} + \advance\ghor by 1 + \else\ifx\thisel\btest\let\curnote\basenote + \let\curfing\fatfingnote + \else\ifx\thisel\ftest\renewcommand\snow{n}\renewcommand\pnow{n}\renewcommand\fnow{y} + \else\ifx\thisel\stest\renewcommand\snow{y}\renewcommand\pnow{n}\renewcommand\fnow{n} + \else\ifx\thisel\ptest\renewcommand\snow{n}\renewcommand\pnow{y}\renewcommand\fnow{n} + \else\ifx\thisel\xtest{\put(\ghor,\yoff){\cvline{\numfrets}} + \needsize=\ascale + \divide\needsize by 2 + \unitlength\needsize + \multiply\ghor by 2 + \multiply\topline by 2 + \advance\topline by -1 + \put(\ghor,\topline){\hbox to 0pt{\hss{\dampsymbol}\hss}} + } + \else\ifx\thisel\ntest\put(\ghor,\yoff){\cvline{\numfrets}} + \else + \if\fnow y \fnum=\thisel + \else\if\snow y \ghor=\thisel\advance\ghor by \xoff + \advance\ghor by -1 + \else + \prevpos=\fpos\advance\prevpos by -1 + \fpos=\thisel + \ifnum\fnum > 0 + \cpos=\fpos\advance\cpos by -1 + \ifnum\cpos > \prevpos + \dlen=\fpos\advance\dlen by -\prevpos + \advance\dlen by -1 + \stpos=\topline\advance\stpos by -\fpos + \put(\ghor,\stpos){\cvline{\dlen}} + \fi + \else + \put(\ghor,\yoff){\cvline{\numfrets}} + \fi + \cpos=-\fpos\advance\cpos by \numfrets\advance\cpos by \yoff + { + \needsize=\ascale + \divide\needsize by 2 + \unitlength\needsize + \multiply\ghor by 2 + \multiply\cpos by 2 + \advance\cpos by 1 + \ifnum\fnum > 0 + \put(\ghor,\cpos){\curfing} + \put(\ghor,\cpos){$\vcenter{\vskip 0.5em\vbox{\hbox to 0pt{\hss{\fingerfont\number\fnum}\hss}}}$} + \else + \put(\ghor,\cpos){\curnote} + \fi + } + \let\curnote\stdnote + \let\curfing\fingnote + \fi\fi + \fi\fi\fi\fi\fi\fi\fi\fi + } +} + +\makeatother + +% That's all folks! +%------------------------------------------------------------------------- diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..c7aea18 --- /dev/null +++ b/COPYING @@ -0,0 +1,280 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..94c422b --- /dev/null +++ b/INSTALL @@ -0,0 +1,21 @@ +To install GuitarTeX do the following: + + +1) make sure that LaTeX, Perl and Perl/TK are installed + (see Section Requirements in the manual) + +2) unpack the guitartex archive + (for example in your home directory) + + +3) cd to the guitartex-x.x directory + + +4) run the following commands: + + make conf (as normal user, this overwrites an existing config file!) + after this you will find the config file in ~/.guitartexrc + + make install (as root) + +5) you may now delete the guitartex-x.x directory diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..57a30ab --- /dev/null +++ b/Makefile @@ -0,0 +1,17 @@ +conf: + cp --force guitartex.conf ${HOME}/.guitartexrc + cp --recursive --force .TeX ${HOME} + +install: + cp --force gtx2tex.pl /usr/local/bin/gtx2tex + cp --force guitartex.pl /usr/local/bin/guitartex + mkdir -p /usr/local/lib/guitartex + cp --recursive --force * /usr/local/lib/guitartex + chmod a+x /usr/local/bin/gtx2tex + chmod a+x /usr/local/bin/guitartex + + +uninstall: + rm /usr/local/bin/guitartex /usr/local/bin/gtx2tex + rm -r /usr/local/lib/guitartex + diff --git a/doc/de/Makefile b/doc/de/Makefile new file mode 100644 index 0000000..765fe17 --- /dev/null +++ b/doc/de/Makefile @@ -0,0 +1,2 @@ +html: + db2html guitartex.xml diff --git a/doc/de/acknowledgements.xml b/doc/de/acknowledgements.xml new file mode 100644 index 0000000..fd874d3 --- /dev/null +++ b/doc/de/acknowledgements.xml @@ -0,0 +1,86 @@ + + Dank und Anerkennung + + + Danke an ... + + + Lucio F. Albenga + aus Spanien für seine spanische Übersetzung + + + + + David Cuny + aus Kanada für seine Hilfe bei der Erstellung der ersten Version + dieser Dokumentation + + + + Brian Ewins + aus Schottland für sein Programm PStab und den Manual + Song + + + + Bernhard Gröne + aus Deutschland, der mir sein Programm Liederbuchgenerator + zur Verfügung gestellt hat + + + + + Christoph Lange + aus Deutschland für seine FindBin-Ergänzung + + + + + Gary Lawrence Murphy + aus Kanada für seine Tipps und die Tests von mehreren Versionen + + + + + Pawel Pastula + aus Polen für seine polnische Übersetzung + + + + + Kasper Peeters + aus England für das LaTeX-Paket gchords + + + + + Marcelo Pereira + aus Brasilien für seine Übersetzung + + + + + Daniele Pighin + aus Italien für viele Vorschläge und seine Übersetzung + + + + + Dan Polansky + aus Tschechien für sein Programm ChordPack + + + + + den Leuten von Sourceforge.net und Freshmeat.net + für ihre großartigen Opensource-Server + + + + allen Leuten der Opensource-Familie + die Linux, KDE, LaTeX, MusixTeX,Perl und viele andere Programme + entwickelt haben, auf denen GuitarTeX basiert + + + &sflogo; + diff --git a/doc/de/directives.xml b/doc/de/directives.xml new file mode 100755 index 0000000..a324997 --- /dev/null +++ b/doc/de/directives.xml @@ -0,0 +1,793 @@ + + Unterstützte Chord-Direktiven + + Direktiven sind Befehle zwischen geschweiften Klammern, die das Aussehen + der erzeugten Ausgabe steuern. Einige häufig benötigte Direktiven können + durch eine Abkürzung ersetzt werden (siehe Beispiele). GuitarTeX + bringt einige neue Direktiven mit, die das original Chord Programm nicht kennt. + + +
+ Spezielle Zeichen + + + Einige Zeichen haben in GuitarTeX eine besondere Bedeutung: + + + + # am Anfang einer Zeile markiert einen Kommentar. + Die Zeile wird von GuitarTeX ignoriert + / darf nur in Akkorden mit Bass verwendet werden + (z.B. A/E) + +
+ +
+ Seitenlayout + + Die Direktive geometry bietet flexible Möglichkeiten, das Layout einer Seite + anzupassen. Sie benutzt das LaTeX-Paket geometry. Die folgende Beschreibung + ist ein (modifizierter) Teil der Original-Dokumentation. + + + Das geometry Paket bietet viele automatische Ausrichtungen, so dass + nur wenige manuelle Angaben zum Seitenlayout erforderlich sind. + In diesem Fall reicht ein einfaches + + + {geometry:a4paper} + + + Das Setzen von Seitenrändern erfolgt mit + + + {geometry:margin=2.5cm} + + + wenn alle Ränder einer Seite 2,5 Zentimeter betragen sollen. + + + Längenangaben erfolgen in + + + + Zentimeter (cm) + Millimeter (mm) + Inch (in) + Punkt (pt) + + +
+ Seitenlayout + + + Das Seitenlayout besteht aus einer einfachen Struktur: + Die Seite (paper) enthält einen Textkörper (total-body, druckbarer Bereich) und Ränder. + Der Textkörper besteht aus Kopf- und Fußzeile, dem eigentlichen Text und + (optional) den Randbemerkungen. Die vier Ränder heißen left-margin, right-margin, + top-margin und bottom-margin. + + + paper: total-body (printable area) and margins +total-body: head, body(text area), foot and marginal notes +margins: left-, right-, top- and bottom-margin + + + Jeder Rand wird von der jeweiligen Kante der Seite aus gemessen, + z.B. left-margin meint den Abstand zwischen linker Seitenkante und + dem Textkörper. Die Größen von paper, totalbody und + margins stehen in diesen Ralationen: + + + paperwidth = left + width + right +paperheight = top + height + bottom +
+ +
+ Optionen + + + Optionen der Direktive <command>geometry</command> + + + + landscape + schaltet um auf Querformat + + + portrait + schaltet um auf Hochformat + + + twoside + schaltet auf zweiseitige Ausgabe um. Die linken und rechen Ränder + werden bei geraden und ungeraden Seiten symetrisch angeordnet. + + + reversemp + Randbemerkungen erscheinen am linken Rand (statt am rechten Rand) + + + nohead + keine Reservierung von Platz für Kopfzeilen + + + nofoot + keine Reservierung von Platz für Fußzeilen + + + noheadfoot + keine Reservierung von Platz für Kopf- und Fußzeilen + + + a4paper, a5paper,letterpaper, legalpaper + spezifizert die Papiergröße. Ohne Wert anzugeben. + + + paperwidth + Breite des Papiers. paperwidth=<paperwidth> + + + paperheight + Höhe des Papiers. paperheight=<paperheight> + + + width + Breite des Textkörpers. width=<width>or + totalwidth=<width>. + Diese Angabe sollte nicht mit der Textbreite (textwidth) verwechselt werden. + width enthält die Textbreite und die Breite der Randbemerkungen. + + + height + Höhe des Textkörpers (einschließlich Kopf- und Fußzeile). + height=<height> + + + left + linker Rand. left=<leftmargin> + + + right + rechter Rand. right=<rightmargin> + + + top + oberer Rand. top=<topmargin> + + + bottom + unterer Rand. bottom=<bottommargin> + + + margin + alle Ränder. margin=<margin> + + + textwidth + Breite des Textes. textwidth=<width> + + + textheight + Höhe des Textes. textheight=<height> + + + marginpar + Breite der Randbemerkungen. marginpar=<length> + + + marginparsep + Abstand zwischen Text und Randbemerkungen. marginparsep=<length> + + + head + Höhe der Kopfzeile. head=<length> + + + headsep + Abstand zwischen Kopfzeile und Text. headsep=<length> + + + foot + Abstand zwischen Fußzeile und Text. foot=<length> + + + +
+
+ +
+ Beispiele + + + Setzen Sie die Höhe des Textkörpers auf 10in, den unteren Rand auf 2cm. + Der obere Rand wird automatisch berechnet: + + + {geometry:height=10in,bottom=2cm} + + oder + + {g:height=10in,bottom=2cm} + + oder + + {geometry:height=10in} +{g:bottom:=2cm} + + + Setzen Sie den linken, rechten und oberen Rand auf 3cm, 2cm und 2.5in. + Es wird keine Kopfzeile benötige. + + + {geometry:left=3cm,right=2cm, nohead, + top=2.5in} + + oder + + {geometry:left=3cm} +{geometry:right=2cm} +{geometry:nohead} +{geometry:top=2.5in} + + oder + + {g:left=3cm,right=2cm} +{g:nohead, top=2.5in} + + und so weiter ... + + + Ändern Sie die Breite der Randbemerkungen auf 3cm + + + {geometry:marginpar=3cm} + + {geometry:marginpar=3cm, reversemp} + + lässt die Randbemerkungen am linken Rand ausgeben. + + Verwenden sie A5-Papier im Querformat: + + {geometry:a5paper, landscape} + +
+
+ +
+ Dokumentstrukur + +
+ title + + Der Titell eines Stückes wird durch die Direktive + title markiert. + Der Titel wird zentriert mit einer vergrößerten Schrift ausgegeben. + In Dokumenten mit mehreren Stücken verursacht title + einen Seitenumbruch. + + + + Direktive <command>title</command> + {title:Go Down Moses} +{t:Go Down Moses} + +
+ +
+ subtitle + + Die Direktive subtitle dient zur Darstellung zusätzlicher + Informationen, wie z.B. Interpret oder Komponist. + + + + Direktive <command>subtitle</command> + {subtitle:written by John Lennon / Paul McCartney} +{st:written by John Lennon / Paul McCartney} + +
+ +
+ sob, eob + + Eine Bridge wird mit sob (start of bridge) am Anfang, + und eob (end of bridge) am Ende markiert. Die Bridge + wird auf Farbdruckern in blau ausgegeben. Die Farbe kann mit der Direktive + color_bridge angepasst werden (siehe ). + + + + Direktive <command>sob</command>, <command>eob</command> + (aus Here, There And Everywhere, Beatles): + {sob} +I want her [Ab]everywhere [Fm] +And if [Bbm]she's beside me [C^7]I know I need [Fm]never care +[Bb]But to love her [C^7]is to meet her +{eob} + +
+ +
+ soc, eoc + + Ein Refrain wird mit soc (start of chorus) am Anfang und + mit eoc (end of chorus) am Ende markiert. Der Refrain + wird auf Farbdruckern in rot ausgegeben. Die Farbe kann mit der Direktive + color_chorus angepasst werden (siehe ). + + + + Direktive <command>soc</command>, <command>eoc</command> + (aus With A Litle Help From My Friends, Beatles): + {soc} +Oh, I get [C]by with a little [G]help from my [D]friends +Mm, I get [C]high with a little [G]help from my [D]friends +Oh, I'm gonna [C]try with a little [G]help from my [D]friends +{eoc} + +
+ +
+ soi, eoi + + Ein Instrumantal-Teil wird mit soi (start of + instrumental) am Anfang und eoi (end of instrumental) + am Ende markiert. Der Instrumental-Teil wird auf Farbdruckern in grau + ausgegeben. Die Farbe kann mit der Direktive color_instr + angepasst werden (siehe ). + +
+ +
+ np + np steht für "neue Seite" und erzeugt einen Seitenumbruch. + + + Directive <command>np</command> + {np} + +
+ +
+ sot, eot + + Tabulaturen werden mit sot (start of tablature) am Anfang + und eot (end of tablature) am Ende markiert. + Tabulaturen werden auf Farbdruckern in grün ausgegeben. Die Farbe kann mit + der Direktive color_tab directive angepasst werden + (siehe ). + Tabulaturen werden in einer nichtproportionalen Schriftart ausgegeben. + + + + Direktive <command>sot</command>, <command>eot</command> + (aus Pretty Woman, Roy Orbison): + {sot} +E ---------------------|------------------------------------ +B ---------------------|------------------------------------ +G ---------------------|------------------------------------ +D -----------------0---|-------------------0---4---2---0---- +A -------------2-------|---------------2-------------------- +E -0---0---4-----------|---0---0---4------------------------ +{eot} + + + + Wenn Sie ASCII-Tabulaturen nicht mögen, bietet GuitarTeX Ihnen eine + andere Möglichkeit in . + +
+ +
+ +
+ Fonts + + + Die Direktiven zur Beeinflussung der Schriftart und -farbe können irgendwo + in Ihrer Datei stehen. Trotzdem ist es hilfreich sie am Anfang zu platzieren. + Die angegebenen Werte gelten für das ganze Dokument. + + +
+ font_size + + LaTeX kennt drei Schriftgrößen 10pt, 11pt and 12pt. GuitarTeX nutzt normalerweise + 11pt (Titel und Untertitel werden automatisch vergrößert). Wenn Sie z.B. 12pt + verwenden wollen, schreiben Sie: + + + + Direktive <command>font_size</command> + {font_size:12} + + + Achtung: schreiben Sie nicht 12pt statt 12! +
+ +
+ color_xxx + + Mit den folgenden Direktiven können Sie die Textfarbe für Refrain, Bridge, + Instrumental-Teil Tabulaturen und zweite Stimme anpassen. Für die zweite Stimme + können Sie auch die Hintergrundfarbe ändern, so dass Sie z.B. weiße + Schrift auf einem farbigen Hintergrund verwenden können. Das erleichtert + den Sängern hoffentlich die Orientierung bei mehreren Textzeilen :-) + + + Die Direktiven heißen + + + color_chorus + color_bridge + color_instr + color_tab + color_second + color_second_back + + + + Als Parameter wird eine durch Kommas getrennte Liste von Werten zwischen + null und eins, die die Farben rot, grün und blau repräsentieren. + + + + Direktive <command>color_chorus</command> (Refrain in hellblau): + {color_chorus:.5,.5,1} + +
+
+ +
+ Ein Liederbuch (Songbook) erstellen + + Die Direktiven document_class und book_... können irgendwo im Dokument + platziert werden. + + +
+ document_class + + + Die Direktive document_class legt fest, welche Art Dokument Sie erhalten. + Es gibt zwei mögliche Werte: + + + + book + article (Voreinstellung) + + + + Direktive <command>document_class</command> + {document_class:book} + + + Der Wert "book" erzeugt + + + eine Titelseite + ein Inhaltsverzeichnis + Kopfzeilen mit Seitennummern + einen Index + +
+ +
+ book_title, book_author, book_date + + Diese drei Direktiven beschreiben den Inhalt der Titelseite. + + + Direktive <command>book_title</command>, + <command>book_author</command>, <command>book_date</command> + + {book_title:My Favourite Songs} +{book_author:My Name} +{book_date:September 2000} + + + + Der Wert in book_title erscheint in den Kopfzeilen auf geraden Seiten. + +
+ +
+ chapter + + + Wenn sie ein Songbook erstellen, können Sie das Dokument mit der Direktive chapter + in Kapitel einteilen. Im Dokument erscheint eine Titelseite für jedes neue Kapitel. + + + + Direktive <command>chapter</command> + {chapter:Beatles} + + + + Der Name des Kapitels erscheint im Inhaltsverzeichnis und in den + Kopfzeilen auf ungeraden Seiten. + +
+ +
+ include + + Wenn Sie aus einer Sammlung von Chord-Dateien ein Songbook erstellen wollen + brauchen Sie diese nicht alle zu einer Datei zusammen zu fassen. Das hat + nämlich einige Nachteile, z.B. dass Sie einen einzelnen Song nicht mehr + transponieren können. Mit der Direktive include können Sie die Dateien einzeln + speichern. Erstellen Sie lediglich eine Songbook-Datei und binden die + einzelnen Stücke mit include ein. + + + + Direktive <command>include</command> + {document_class:book} +{book_title:} +{chapter:Name of chapter 1} +{include:song file 1} +{include:song file 2} +{chapter:Name of chapter 2} +{include:song file 3} +{include:song file 4} + + + In diesem Beispiel wurde ein Songbook mit vier Stücken in zwei Kapiteln + erstellt. + +
+ +
+ even + + + Die Direktive even lässt ein neues Stück in einem Songbook + auf der linken Seite beginnen. Das ist hilfreich, wenn das Stück länger als eine Seite ist, + damit man nicht umblättern muss. + Die Direktive muss vor der Direktive title eines neuen Stückes angeordnet sein. + + + + Direktive <command>even</command> + {even} +{title:Proud Mary} +{st:Creedence Clearwater Revival 1972} + +
+
+ +
+ Gitarren- und Bass-Tabulaturen + + GuitarTeX kennt zwei neue Direktiven zur Darstellung von Tabulaturen: + + + {guitartab: } für Gitarren-Tabulaturen + {basstab: } für Bass-Tabulaturen + + + + Jede guitartab oder basstab Direktive stellt eine Zeile mit sechs bzw vier Linien dar. + Sie können mit {guitartab: } oder {basstab: } auch leere Tabulaturen erzeugen. + Setzen Sie eine Leerzeile vor die Direktive, damit die Tabulatur am linken Rand beginnt. + + + Die Klammern können enthalten: + + + normaler Text, der unterhalb der Tabulatur ausgegeben wird + Noten im Format [string;fret], z.B. [2;5] für 5. Bund auf der A-Saite + Taktstriche (durch das Zeichen | dargestellt) + Zusätzlicher Leerraum mit "_" + + + +
+ Tabulatur Schaltflächen + +
+ + + Anstatt die Zeilen von Hand einzugeben können Sie die Schaltfächen verwenden + (see ). + Ein Klick auf die Schaltfläche "Gitarre" oder "Bass" fügt die jeweilige Direktive + an der aktuellen Cursorposition ein. Um eine Note einzufügen, geben Sie die Nummer + des Bundes in das Eingabefeld ein und klicken die gewünschte Saite an. Die Note + wird an der aktuellen Cursorposition eingefügt. + Danach steht der Cursor wieder im Eingabefeld, so dass Sie nacheinander beliebig + viele Noten erfassen können. + +
+ +Beispiele + + +Leere Gitarren-Tabulatur +{guitartab:} + + + + + + +Tabulatur-Beispiel + + + + + + +Eine Bass-Tabulatur mit Text +{basstab:some text} + + + + + + +Tabulatur-Beispiel + + + + + + +Noten, Taktstriche und Leerraum +{guitartab:[2;3][3;0][3;2][3;3]|[4;0]__[4;2]__[5;0]__[5;1]|} + + + + + + +Tabulatur-Beispiel + + + + + + +Text unter den Noten anordnen +{guitartab:[2;3]do [3;0]re [3;2]mi [3;3]fa |[4;0]so [4;2]la [5;0]si [5;1]do|} + + + + + + +Tabulatur-Beispiel + + + + + + +Eine einfache Bass-Tabulatur +{basstab:[2;5][2;5]|[2;5][2;5]|[3;5][3;5]|[2;5][2;5]|[3;7][3;7]|[3;5][3;5]|[2;5]} + + + + + + +Tabulatur-Beispiel + + + + + + +Akkorde +{guitartab:[2;3]&[3;5]&[4;5]C (power chord) |[2;3]&[3;2]&[4;0]&[5;1]C chord} + + + + + + +Tabulatur-Beispiel + + + + + + +
+ +
+ +
+ Andere + +
+ define + + Mit der Direktive define können Sie ein Akkord-Symbol am Ende eines Stückes + erstellen. Die Direktive kann irgendwo im Stück platziert sein. + + + define verfügt über acht Parameter: + + + den Akkordnamen + die Nummer des ersten Bundes + sechs Nummern für die sechs Saiten (ein x bedeutet, dass die Saite nicht gespielt wird) + + + + + Direktive <command>define</command> + {define:A 1 x 0 2 2 2 0} +{define:Cm 3 x 1 3 3 2 1} +{define:Gm/Bb 4 3 2 2 1 x x} + + + Das Ergebnis sieht so aus wie in . + +
+ Akkord-Symbole + +
+ +
+ +
+ comment + Die Direktive comment fügt einen Text ein, der nicht zum eigentlichen + Stück gehört. + + + Direktive <command>comment</command> + {comment: repeat chorus} +{c: repeat chorus} + +
+ +
+ margin + + Die Direktive margin erzeugt eine Randbemerkung. Diese können z.B. dazu genutzt + werden, Hinweise für den Musiker einzufügen. + + + + Directive <command>margin</command> + {margin:Fade Out} +{m:Fade Out} + +
+ +
+ second + + In einigen Stücken hat die zweite Stimme nicht nur eine andere Melodie, + sondern auch einen anderen oder versetzt gesungenen Text. + Bekannte Beispiele sind "California Dreaming" von The Mamas And The Papas und + "Help" von den Beatles. Wenn Sie die zweite Stimme mit der Direktive second + markieren erscheint sie in weißer Schrift auf grauem Hintergrund. + Wegen der proportionalen Schrift müssen Sie ein wenig experimentieren, um die + korrekte Ausrichtung zwischen erster und zweiter Stimme zu erhalten. + + + + Direktive <command>second</command> (aus Help!, The + Beatles) + [G] When I was younger so much [Hm]younger than today +{second:When when I was young} +[Em] I never needed anybody's [C]help in [F]any [G]way +{second:I never need help in any way} +[G]But now these days are gone and I'm [Bm]not so self assured +{second:Now these days are gone} +[Em] Now I find I've changed my mind, +{second:And now I find} +I've [C]opened [F]up the [G]doors +{second:I've opened up the doors} + +
+
+ &sflogo; + +
diff --git a/doc/de/editor.xml b/doc/de/editor.xml new file mode 100644 index 0000000..a73a956 --- /dev/null +++ b/doc/de/editor.xml @@ -0,0 +1,217 @@ + + Der Editor GuitarTeX + + + Starten + + Um den Editor GuitarTeX zu starten, öffen Sie eine Shell und geben + das Kommando guitartex ein. + + + + + Menüs + + Sie können jedes Menü "abreißen", indem Sie auf den ersten Eintrag (-----) klicken. + Das kann sehr nützlich sein, wenn Sie einen Befehl mehrmals benutzen wollen. + + + + Menü Datei + + Neu, Öffnen, Speichern, Speichern als, Beenden + + Die Menüpunkte Neu, Öffnen, Speichern, Speichern als, Beenden + verhalten sich, wie Sie es von anderen Anwendungen mit grafischer Oberfläche + gewohnt sind. Daher wird hier auf eine weitere Beschreibung verzichtet. + Alternativ können Sie auf eine der Schaltflächen klicken. + + + + + Export > LaTeX , Export > Postscript, Export > PDF + + Die geöffnete Datei wird gespeichert und dann in das LaTeX-, Postscript- + bzw. PDF-Format konvertiert. Der Name der erzeugten Datei entspricht dem + ursprünglichen Namen mit der Erweiterung .tex, .ps bzw. .pdf. + Alternativ können Sie auf eine der Schaltflächen klicken. + +
+ Schaltflächen für die Ausgabe im LaTeX-, Postscript oder PDF-Format + + + +
+ +
+ + Nachdem die exportierte Datei erstellt wurde, startet ein Programm zu deren + Anzeige. Sie können das gewünschte Anzeigeprogramm auswählen, indem Sie + die Parameter $text_viewer, $ps_viewer + und $pdf_viewer in der Konfigurationsdatei ändern + (siehe ). + +
+
+ + + Menü Bearbeiten + + Ausschneiden, Kopieren, Einfügen + + Wenn Sie Text ausschneiden, kopieren und einfügen möchten, benutzen Sie + die Tastenkombinationen strg-x (ausschneiden), strg-c (kopieren) und strg-v + (einfügen). + + + + + Datei einfügen + + Der Befehl startet einen Dateiauswahldialog. Die ausgewählte Datei wird + an der Cursorposition eingefügt. + + + + + crd -> chopro + + Sie werden häufig Musikstücke mit Akkorden in rohem ASCII-Format finden. + Diese sehen im Gegensatz zum Chord-Format so aus: + + + D A7 D +I print verses in a row, + A7 D +The next line gets put down below, + A7 D G G# A +Mumble mumble rhymes with grow + A7susx +Done this verse, now we go! + + + Setzen Sie den Cursor in die erste Zeile (die mit den Akkorden) und + rufen den Menüpunkt crd->chopro auf oder drücken Sie die Funktionstaste F). + Die Akkordzeile und die folgende Textzeile werden zu einer Zeile im Chord-Format + zusammengeführt. Der Cursor befindet sich danach in der nächsten Zeile, so dass + Sie einfach mehrmals F9 drücken müssen, um weitere Zeilen zu konvertieren. + + + + + + Menü Direktiven + + Mit diesem Menü können Sie Direktiven an der Cursorposition einfügen. + Die Bedeutung der Direktiven ist in erläutert. + + + + + Menü Liederbuch + + Fügen Sie die Direktiven zur Erstellung von Liederbüchern ein, statt sie + von Hand einzutippen. Die Bedeutung dieser Direktiven ist in + erläutert. + + + + + Menü Farben + + Mit diesem Menü können Sie die Direktiven zur Anpassung der Farben einfügen + Es wird ein Farbauswahldialog aufgerufen (siehe ). + + +
+ Farbauswahldialog + +
+ + + Sie haben drei Möglichkeiten, die gewünschte Farbe auszuwählen: + + + + doppelklicken Sie auf eine vordefinierte Farbe in der Liste auf der linken Seite + bewegen Sie die Schieber in der Mitte des Dialogfeldes + (wählen Sie zuerst den gebräuchlicheren RGB-Farbraum anstelle von HSB) + geben Sie den RGB-Wert manuell in das Feld Name ein, keine wirklich + gute Idee :-) + + + + Die Farb-Direktiven können auch manuell eingegeben werden. + Sie werden in erklärt. + +
+ + + Menü Transponieren + + Hoch, Runter + + + Diese beiden Befehle transponieren das Stück um einen Halbton nach oben oder unten. + Sie können die Tasten F5 und F6 an Stelle des Menüs verwenden. In Akkorden mit Bass + (z.B. G/B) werden sowohl der Akkord als auch die Bassnote transponiert. + Schrägstriche dürfen nur in Akkorden mit Bass verwendet werden + (siehe ). + + + + + b->#, #->b + + Nach dem Transponieren weiß das Programm natürlich nicht, ob Halbtöne + mit # oder b dargestellt werden sollen. Daher werden zunächst alle + Halbtöne mit # dargestellt. Sie können dies mit dem Befehl #->b ändern. + Alternativ können Sie die Tasten F7 und F8 verwenden. + + + + + B->H, H->B + + In der deutschen Schreibweise wird die Note B als H geschrieben. + Mit diesen Befehlen können Sie von B nach H und umgekehrt umschalten. + + + +
+ + + Akkord-Schaltflächen +
+ Akkord-Schaltflächen + +
+ + + Durch einen Klick auf eine der Akkord-Schaltflächen (siehe ) + wird der augewählte Akkord an der Cursorposition eingefügt. Danach können Sie + den Akkord editieren, z.B. Moll oder Septime einfügen. + +
+ + + Syntax Highlighting +
+ Syntax Highlighting Schaltfläche + +
+ + + GuitarTeX verfügt über sogenanntes Syntax Highlighting für Direktiven, + Kommentare und Akkorde, d.h. die genannten Elemente werden in einer anderen Farbe + als der normale Text angezeigt. + Sie können die Text- und Hintergrundfarbe selbst wählen, indem Sie die + entsprechenden Parameter in der Konfigurationsdatei anpassen. + Wenn Sie Direktiven oder Akkorde über Menüs und Schaltflächen einfügen, + erfolgt die Einfärbung automatisch. Nach manueller Eingabe klicken Sie einfach + auf die Syntax Highlighting Schaltfläche (siehe ). + +
+ &sflogo; + +
diff --git a/doc/de/examples.xml b/doc/de/examples.xml new file mode 100755 index 0000000..faec992 --- /dev/null +++ b/doc/de/examples.xml @@ -0,0 +1,142 @@ + + Screenshots und Beispiele + +
+Editor-Fenster +
+ Editor-Fenster + +
+ +
+ + +
+Liedblätter + + +Einelnes Lied + + + + + + + + +Single song sheet + + + + + + + +Einzelnes Lied als Teil eines Liederbuches + + + + + + + + +Songbook page + + + + + + +
+ +
+Akkord-Tabelle + +Die folgende Akkord-Tabelle stammt aus dem Songbuch des Autors. Sie wurde mit dem +untenstehenden Code erstellt. + +Akkord-Tabelle + + + + + + + + +Chord table + + + + + + +{title:D} +{define:D 1 x x 0 2 3 2} +{define:D+ 1 x x 0 3 3 2} +{define:D4 1 x x 0 2 3 3} +{define:D6 1 x 0 0 2 0 2} +{define:D7 1 x x 0 2 1 2} +{define:D7#9 4 x 2 1 2 3 3} +{define:D7(#9) 4 x 2 1 2 3 3} +{define:D9 0 1 3 1 2 1 3} +{define:D11 1 3 0 0 2 1 0} +{define:Dsus 1 x x 0 2 3 3} +{define:Dsus2 1 0 0 0 2 3 0} +{define:Dsus4 1 x x 0 2 3 3} +{define:D7sus2 1 x 0 0 2 1 0} +{define:D7sus4 1 x 0 0 2 1 3} +{define:Dmaj 1 x x 0 2 3 2} +{define:Dmaj7 1 x x 0 2 2 2} +{define:Ddim 1 x x 0 1 0 1} +{define:Dm 1 x x 0 2 3 1} +{define:Dmin 1 x x 0 2 3 1} +{define:D/A 1 x 0 0 2 3 2} +{define:D/B 1 x 2 0 2 3 2} +{define:D/C 1 x 3 0 2 3 2} +{define:D/C# 1 x 4 0 2 3 2} +{define:D/E 7 x 1 1 1 1 x} +{define:D/G 1 3 x 0 2 3 2} +{define:D5/E 7 0 1 1 1 x x} +{define:Dadd9 1 0 0 0 2 3 2} +{define:D(add9) 1 0 0 0 2 3 2} +{define:D9add6 0 1 3 3 2 0 0} +{define:D9(add6)0 1 3 3 2 0 0} + +{define:Dm6(5b) 1 x x 0 1 0 1} +{define:Dm7 1 x x 0 2 1 1} +{define:Dm#5 1 x x 0 3 3 2} +{define:Dm(#5) 1 x x 0 3 3 2} +{define:Dm#7 1 x x 0 2 2 1} +{define:Dm(#7) 1 x x 0 2 2 1} +{define:Dm/A 1 x 0 0 2 3 1} +{define:Dm/B 1 x 2 0 2 3 1} +{define:Dm/C 1 x 3 0 2 3 1} +{define:Dm(F) 1 x x 3 2 3 1} +{define:Dm/C# 1 x 4 0 2 3 1} +{define:Dm9 1 x x 3 2 1 0} + + +
+ +
+Indexseite + + + + + + + + +Index Page + + + + + +
+ &sflogo; + +
diff --git a/doc/de/gtx2tex.xml b/doc/de/gtx2tex.xml new file mode 100644 index 0000000..2b9b184 --- /dev/null +++ b/doc/de/gtx2tex.xml @@ -0,0 +1,59 @@ + + Das Textfilterprogramm gtx2tex + + +Wenn Sie den Editor GuitarTeX nicht verwenden wollen, oder Ihre +Postscript- und PDF-Dateien lieber über die Kommandozeile erstellen, +verwenden Sie das Programm gtx2tex. + + + + + +gtx2tex + + + +gtx2tex +konvertiert Chord-Dateien in die Formate TeX, Postscript oder PDF +format + + + +gtx2tex [--verbose] [--lyrics] [--output=ps|pdf] [--italian] <file> + + + +Optionen + + + + verbose + gtx2tex bereichtet, was gerade abläuft + + + + lyrics + es wird nur der Text (ohne Akkorde) ausgegeben + + + + output=ps|pdf + legen Sie das Ausgabeformat fest; ohne Angabe wird + TeX ausgegeben + + + + italian + die Ausgabe der Akkorde erfolgt in italienischer Notation + (Do, Re, Mi, Fa, Sol, La, Si) + + + + + + + + &sflogo; + + diff --git a/doc/de/guitartex.xml b/doc/de/guitartex.xml new file mode 100755 index 0000000..1f19abf --- /dev/null +++ b/doc/de/guitartex.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + +]> + + + GuitarTeX + + &info; + &intro; + &install; + >x2tex; + &editor; + &directives; + &latex; + &examples; + &links; + + &acknowledgements; + + diff --git a/doc/de/guitartex/HTML.manifest b/doc/de/guitartex/HTML.manifest new file mode 100644 index 0000000..6a1ec67 --- /dev/null +++ b/doc/de/guitartex/HTML.manifest @@ -0,0 +1,29 @@ +book1.html +introduction.html +c82.html +requirements.html +installation.html +configfile.html +gtx2tex.html +r193.html +editor.html +x227.html +x298.html +x305.html +directives.html +geometry.html +x447.html +x519.html +songbook.html +tablature.html +others.html +latex.html +x750.html +examples.html +x819.html +x847.html +x864.html +links.html +x883.html +a906.html +ln12.html diff --git a/doc/de/guitartex/a906.html b/doc/de/guitartex/a906.html new file mode 100644 index 0000000..5686ef1 --- /dev/null +++ b/doc/de/guitartex/a906.html @@ -0,0 +1,158 @@ + + + + + Dank und Anerkennung + + + + + + + + +
+

Anhang A. Dank und Anerkennung

+ +
+

Danke an ...

+ +
+
Lucio F. Albenga
+ +
+

aus Spanien für seine spanische + Übersetzung

+
+ +
David Cuny
+ +
+

aus Kanada für seine Hilfe bei der Erstellung + der ersten Version dieser Dokumentation

+
+ +
Brian Ewins
+ +
+

aus Schottland für sein Programm PStab und den + Manual Song

+
+ +
Bernhard Gröne
+ +
+

aus Deutschland, der mir sein Programm + Liederbuchgenerator zur Verfügung gestellt hat

+
+ +
Christoph Lange
+ +
+

aus Deutschland für seine + FindBin-Ergänzung

+
+ +
Gary Lawrence Murphy
+ +
+

aus Kanada für seine Tipps und die Tests von + mehreren Versionen

+
+ +
Pawel Pastula
+ +
+

aus Polen für seine polnische + Übersetzung

+
+ +
Kasper Peeters
+ +
+

aus England für das LaTeX-Paket gchords

+
+ +
Marcelo Pereira
+ +
+

aus Brasilien für seine Übersetzung

+
+ +
Daniele Pighin
+ +
+

aus Italien für viele Vorschläge und seine + Übersetzung

+
+ +
Dan Polansky
+ +
+

aus Tschechien für sein Programm ChordPack

+
+ +
den Leuten von Sourceforge.net und Freshmeat.net
+ +
+

für ihre großartigen + Opensource-Server

+
+ +
allen Leuten der Opensource-Familie
+ +
+

die Linux, KDE, LaTeX, MusixTeX,Perl und viele + andere Programme entwickelt haben, auf denen GuitarTeX + basiert

+
+
+
+
+ + + + + diff --git a/doc/de/guitartex/book1.html b/doc/de/guitartex/book1.html new file mode 100644 index 0000000..20fe212 --- /dev/null +++ b/doc/de/guitartex/book1.html @@ -0,0 +1,464 @@ + + + + + GuitarTeX + + + + + +
+ + +
+

GuitarTeX

+ +

Joachim Miltz

+ + + +
+
+ + +

GuitarTeX ist ein Werkzeug für + Gitarristen, die gut aussehende Ausdrucke ihrer + Musikstücke oder Liederbücher aus ihren + Chord- oder Chordpro-Dateien anfertigen wollen. Es + benutzt das weit verbreitete Chord Format mit einigen + Erweiterungen. Das Programm wurde unter Linux + entwickelt, sollte aber auch auf anderen Unix- systemen + mit Perl/TK-Umgebung laufen. Die Anleitung zur + Installation finden Sie in Abschnitt namens + Installation in Kapitel 2, die + Systemvoraussetzungen in Abschnitt namens + Systemanforderungen in Kapitel 2.

+ +

hosted by Sourceforge.net SourceForge Logo

+
+
+
+
+ +
+
+
Inhaltsverzeichnis
+ +
1. Einführung
+ +
2. Installation
+ +
+
+
Woher bekomme ich + GuitarTeX?
+ +
Systemanforderungen
+ +
Installation
+ +
Konfigurationsdatei
+
+
+ +
3. Das Textfilterprogramm + gtx2tex
+ +
+
+
gtx2tex -- konvertiert + Chord-Dateien in die Formate TeX, Postscript oder PDF + format
+
+
+ +
4. Der Editor + GuitarTeX
+ +
+
+
Starten
+ +
Menüs
+ +
+
+
Menü + Datei
+ +
Menü + Bearbeiten
+ +
Menü + Direktiven
+ +
Menü + Liederbuch
+ +
Menü + Farben
+ +
Menü + Transponieren
+
+
+ +
Akkord-Schaltflächen
+ +
Syntax Highlighting
+
+
+ +
5. Unterstützte + Chord-Direktiven
+ +
+
+
Spezielle + Zeichen
+ +
Seitenlayout
+ +
+
+
Seitenlayout
+ +
Optionen
+ +
Beispiele
+
+
+ +
Dokumentstrukur
+ +
+
+
title
+ +
subtitle
+ +
sob, eob
+ +
soc, eoc
+ +
soi, eoi
+ +
np
+ +
sot, eot
+
+
+ +
Fonts
+ +
+
+
font_size
+ +
color_xxx
+
+
+ +
Ein Liederbuch (Songbook) + erstellen
+ +
+
+
document_class
+ +
book_title, + book_author, book_date
+ +
chapter
+ +
include
+ +
even
+
+
+ +
Gitarren- und + Bass-Tabulaturen
+ +
+
+
Beispiele
+
+
+ +
Andere
+ +
+
+
define
+ +
comment
+ +
margin
+ +
second
+
+
+
+
+ +
6. LaTeX Kommandos und Packete + verwenden
+ +
+
+
LaTeX + Kommandos
+ +
LaTeX-Packete MusixTeX, + MusixLyr und TabDefs
+ +
+
+
Beispiele
+
+
+
+
+ +
7. Screenshots und + Beispiele
+ +
+
+
Editor-Fenster
+ +
Liedblätter
+ +
Akkord-Tabelle
+ +
Indexseite
+
+
+ +
8. Links
+ +
+
+
Kontakte
+ +
Links
+ +
+
+
LaTeX
+ +
Perl
+ +
Guitar + Sites
+
+
+
+
+ +
A. Dank und Anerkennung
+
+
+ +
+
+
Tabellenverzeichnis
+ +
2-1. Konfigurationsparameter
+ +
5-1. Optionen der + Direktive geometry
+
+
+ + + + +
+ + + + + diff --git a/doc/de/guitartex/c82.html b/doc/de/guitartex/c82.html new file mode 100644 index 0000000..e8b613b --- /dev/null +++ b/doc/de/guitartex/c82.html @@ -0,0 +1,98 @@ + + + + + Installation + + + + + + + + + +
+

Kapitel 2. Installation

+ + + +
+

Woher bekomme ich + GuitarTeX?

+ +

Die aktuelle Version bekommen Sie immer auf der + Download-Seite des GuitarTeX-Projektes: http://sf.net/project/showfiles.php?group_id=13226.

+
+
+ + + + + diff --git a/doc/de/guitartex/configfile.html b/doc/de/guitartex/configfile.html new file mode 100644 index 0000000..f8f1dea --- /dev/null +++ b/doc/de/guitartex/configfile.html @@ -0,0 +1,247 @@ + + + + + Konfigurationsdatei + + + + + + + + + + +
+

Konfigurationsdatei

+ +

GuitarTeX benötigt eine Konfigurationsdatei + namens .guitartexrc in Ihrem home-Verzeichnis. Parameter + werden in Perl-Syntax gesetzt, zum Beispiel:

+ + + + + +
+
+$language = "de";
+
+
+
+
+ +
+ + +

Tabelle 2-1. Konfigurationsparameter

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterBedeutung
languagewählen Sie Ihre + bevorzugte Sprache
tool_tipsschalten Sie die + Hilfen für Schaltflächen ein oder aus
highlightSyntax-Highlighting + ein- oder ausschalten
+ highlight_directive_foregroundVordergrundfarbe + für Direktiven
+ highlight_directive_backgroundHintergrundfarbe + für Direktiven
+ highlight_chord_foregroundVordergrundfarbe + für Akkorde
+ highlight_chord_backgroundHintergrundfarbe + für Akkorde
+ highlight_comment_foregroundVordergrundfarbe + für Kommentare
+ highlight_comment_backgroundHintergrundfarbe + für Kommentare
font_size + Schriftgröße
color_chorusDruckfarbe für + refrain
color_bridgeDruckfarbe für + Bridge
color_instrDruckfarbe für + Instrumental-Teil
color_tabDruckfarbe für + ASCII-Tabulaturen
color_secondDruckfarbe für + zweite Stimme (Vordergrund)
+ color_second_backDruckfarbe für + zweite Stimme (Hintergrund)
text_viewerAnzeigeprogramm + für TeX-Dateien
ps_viewerAnzeigeprogramm + für Postscript-Dateien
pdf_viewerAnzeigeprogramm + für PDF-Dateien
+
+
+ + + + + diff --git a/doc/de/guitartex/directives.html b/doc/de/guitartex/directives.html new file mode 100644 index 0000000..5992c08 --- /dev/null +++ b/doc/de/guitartex/directives.html @@ -0,0 +1,120 @@ + + + + + Unterstützte Chord-Direktiven + + + + + + + + + +
+

Kapitel 5. Unterstützte + Chord-Direktiven

+ + + +

Direktiven sind Befehle zwischen geschweiften + Klammern, die das Aussehen der erzeugten Ausgabe steuern. + Einige häufig benötigte Direktiven können + durch eine Abkürzung ersetzt werden (siehe Beispiele). + GuitarTeX bringt einige neue Direktiven mit, die das original + Chord Programm nicht kennt.

+ +
+

Spezielle + Zeichen

+ +

Einige Zeichen haben in GuitarTeX eine besondere + Bedeutung:

+ +
    +
  • +

    # am Anfang einer Zeile markiert einen Kommentar. + Die Zeile wird von GuitarTeX ignoriert

    +
  • + +
  • +

    / darf nur in Akkorden mit Bass verwendet werden + (z.B. A/E)

    +
  • +
+
+
+ + + + + diff --git a/doc/de/guitartex/docbook.css b/doc/de/guitartex/docbook.css new file mode 100644 index 0000000..0f90516 --- /dev/null +++ b/doc/de/guitartex/docbook.css @@ -0,0 +1,12 @@ +.NAVHEADER { display: none } +.NAVFOOTER { display: none } +.TOC { display: none } + +.NAVTOC { margin-left: 15; + display: none } + +.NAVBTN { font-size: 10pt } + +.TOCTITLE { font-size: 10pt; + color: blue; + text-decoration: underline; } diff --git a/doc/de/guitartex/editor.html b/doc/de/guitartex/editor.html new file mode 100644 index 0000000..c4cc892 --- /dev/null +++ b/doc/de/guitartex/editor.html @@ -0,0 +1,90 @@ + + + + + Der Editor GuitarTeX + + + + + + + + + +
+

Kapitel 4. Der Editor GuitarTeX

+ +
+
+
Inhaltsverzeichnis
+ +
Starten
+ +
Menüs
+ +
Akkord-Schaltflächen
+ +
Syntax Highlighting
+
+
+ +
+

Starten

+ +

Um den Editor GuitarTeX zu starten, öffen Sie eine + Shell und geben das Kommando guitartex ein.

+
+
+ + + + + diff --git a/doc/de/guitartex/examples.html b/doc/de/guitartex/examples.html new file mode 100644 index 0000000..54d8526 --- /dev/null +++ b/doc/de/guitartex/examples.html @@ -0,0 +1,99 @@ + + + + + Screenshots und Beispiele + + + + + + + + + +
+

Kapitel 7. Screenshots und + Beispiele

+ +
+
+
Inhaltsverzeichnis
+ +
Editor-Fenster
+ +
Liedblätter
+ +
Akkord-Tabelle
+ +
Indexseite
+
+
+ +
+

Editor-Fenster

+ +
+ + +

Abbildung 7-1. Editor-Fenster

+ +

+
+
+
+ + + + + diff --git a/doc/de/guitartex/geometry.html b/doc/de/guitartex/geometry.html new file mode 100644 index 0000000..c32747b --- /dev/null +++ b/doc/de/guitartex/geometry.html @@ -0,0 +1,488 @@ + + + + + Seitenlayout + + + + + + + + + + +
+

Seitenlayout

+ +

Die Direktive geometry bietet flexible + Möglichkeiten, das Layout einer Seite anzupassen. Sie + benutzt das LaTeX-Paket geometry. Die folgende Beschreibung + ist ein (modifizierter) Teil der Original-Dokumentation.

+ +

Das geometry Paket bietet viele automatische + Ausrichtungen, so dass nur wenige manuelle Angaben zum + Seitenlayout erforderlich sind. In diesem Fall reicht ein + einfaches

+ + + + + +
+
+{geometry:a4paper}
+
+
+ +

Das Setzen von Seitenrändern erfolgt mit

+ + + + + +
+
+{geometry:margin=2.5cm}
+
+
+ +

wenn alle Ränder einer Seite 2,5 Zentimeter + betragen sollen.

+ +

Längenangaben erfolgen in

+ + + +
+

Seitenlayout

+ +

Das Seitenlayout besteht aus einer einfachen + Struktur: Die Seite (paper) enthält einen + Textkörper (total-body, druckbarer Bereich) und + Ränder. Der Textkörper besteht aus Kopf- und + Fußzeile, dem eigentlichen Text und (optional) den + Randbemerkungen. Die vier Ränder heißen + left-margin, right-margin, top-margin und + bottom-margin.

+ + + + + +
+
+paper: total-body (printable area) and margins
+total-body: head, body(text area), foot and marginal notes
+margins: left-, right-, top- and bottom-margin
+
+
+ +

Jeder Rand wird von der jeweiligen Kante der Seite + aus gemessen, z.B. left-margin meint den Abstand zwischen + linker Seitenkante und dem Textkörper. Die + Größen von paper, totalbody und margins stehen + in diesen Ralationen:

+ + + + + +
+
+paperwidth = left + width + right
+paperheight = top + height + bottom
+
+
+
+ +
+

Optionen

+ +
+ + +

Tabelle 5-1. Optionen der Direktive + geometry

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
landscapeschaltet um auf + Querformat
portraitschaltet um auf + Hochformat
twosideschaltet auf + zweiseitige Ausgabe um. Die linken und rechen + Ränder werden bei geraden und ungeraden Seiten + symetrisch angeordnet.
reversempRandbemerkungen + erscheinen am linken Rand (statt am rechten + Rand)
noheadkeine Reservierung + von Platz für Kopfzeilen
nofootkeine Reservierung + von Platz für Fußzeilen
noheadfootkeine Reservierung + von Platz für Kopf- und Fußzeilen
a4paper, + a5paper,letterpaper, legalpaperspezifizert die + Papiergröße. Ohne Wert anzugeben.
paperwidthBreite des + Papiers. paperwidth=<paperwidth>
paperheightHöhe des + Papiers. paperheight=<paperheight>
widthBreite des + Textkörpers. width=<width>or + totalwidth=<width>. Diese Angabe sollte nicht + mit der Textbreite (textwidth) verwechselt werden. + width enthält die Textbreite und die Breite + der Randbemerkungen.
heightHöhe des + Textkörpers (einschließlich Kopf- und + Fußzeile). height=<height>
leftlinker Rand. + left=<leftmargin>
rightrechter Rand. + right=<rightmargin>
topoberer Rand. + top=<topmargin>
bottomunterer Rand. + bottom=<bottommargin>
marginalle Ränder. + margin=<margin>
textwidthBreite des Textes. + textwidth=<width>
textheightHöhe des + Textes. textheight=<height>
marginparBreite der + Randbemerkungen. marginpar=<length>
marginparsepAbstand zwischen + Text und Randbemerkungen. + marginparsep=<length>
headHöhe der + Kopfzeile. head=<length>
headsepAbstand zwischen + Kopfzeile und Text. headsep=<length>
footAbstand zwischen + Fußzeile und Text. foot=<length>
+
+
+ +
+

Beispiele

+ +

Setzen Sie die Höhe des Textkörpers auf + 10in, den unteren Rand auf 2cm. Der obere Rand wird + automatisch berechnet:

+ + + + + +
+
+{geometry:height=10in,bottom=2cm}
+
+
+ +

oder

+ + + + + +
+
+{g:height=10in,bottom=2cm}
+
+
+ +

oder

+ + + + + +
+
+{geometry:height=10in}
+{g:bottom:=2cm}
+
+
+ +

Setzen Sie den linken, rechten und oberen Rand auf + 3cm, 2cm und 2.5in. Es wird keine Kopfzeile + benötige.

+ + + + + +
+
+{geometry:left=3cm,right=2cm, nohead,
+ top=2.5in}
+
+
+ +

oder

+ + + + + +
+
+{geometry:left=3cm}
+{geometry:right=2cm}
+{geometry:nohead}
+{geometry:top=2.5in}
+
+
+ +

oder

+ + + + + +
+
+{g:left=3cm,right=2cm}
+{g:nohead, top=2.5in}
+
+
+ +

und so weiter ...

+ +

Ändern Sie die Breite der Randbemerkungen auf + 3cm

+ + + + + +
+
+{geometry:marginpar=3cm}
+
+
+ + + + + +
+
+{geometry:marginpar=3cm, reversemp}
+
+
+ +

lässt die Randbemerkungen am linken Rand + ausgeben.

+ +

Verwenden sie A5-Papier im Querformat:

+ + + + + +
+
+{geometry:a5paper, landscape}
+
+
+
+
+ + + + + diff --git a/doc/de/guitartex/gtx2tex.html b/doc/de/guitartex/gtx2tex.html new file mode 100644 index 0000000..3300905 --- /dev/null +++ b/doc/de/guitartex/gtx2tex.html @@ -0,0 +1,74 @@ + + + + + Das Textfilterprogramm gtx2tex + + + + + + + + + +
+

Kapitel 3. Das Textfilterprogramm + gtx2tex

+ +

Wenn Sie den Editor GuitarTeX nicht verwenden wollen, + oder Ihre Postscript- und PDF-Dateien lieber über die + Kommandozeile erstellen, verwenden Sie das Programm + gtx2tex.

+
+ + + + + diff --git a/doc/de/guitartex/installation.html b/doc/de/guitartex/installation.html new file mode 100644 index 0000000..b2522e5 --- /dev/null +++ b/doc/de/guitartex/installation.html @@ -0,0 +1,118 @@ + + + + + Installation + + + + + + + + + + +
+

Installation

+ +

Um GuitarTeX zu installieren gehen Sie wie folgt vor:

+ + + +

Sie können das Verzeichnis guitartex-x.x nun + löschen

+ +

"make conf" kopiert die Konfigurationsdatei nach + ~/.guitartexrc. Sie können GuitarTeX durch Änderung + der darin enthaltenen Parameter anpassen.

+
+ + + + + diff --git a/doc/de/guitartex/introduction.html b/doc/de/guitartex/introduction.html new file mode 100644 index 0000000..fe6a325 --- /dev/null +++ b/doc/de/guitartex/introduction.html @@ -0,0 +1,232 @@ + + + + + Einführung + + + + + + + + + +
+

Kapitel 1. + Einführung

+ +

GuitarTeX ist ein Werkzeug für Gitarristen, die + gut aussehende Ausdrucke ihrer Musikstücke oder + Liederbücher aus ihren Chord- oder Chordpro-Dateien + anfertigen wollen. Es benutzt das weit verbreitete Chord + Format mit einigen Erweiterungen.

+ +

Es basiert auf einer Idee von Martin Leclerc und + Mario Dorion aus Kanada und ihrem Programm Chord (Version 3.5 + von 1993). Um GuitarTeX zu nutzen, benötigen Sie + Kenntnisse des Programmes Chord (wird später + erklärt). Obwohl das Satzsystem LaTeX von GuitarTeX + genutzt wird, müssen sie wenig (oder nichts) über + LaTeX wissen. GuitarTeX produziert Postscript- oder + PDF-Dateien automatisch, wenn Sie das möchten. Die von + GuitarTeX unterstützten Direktiven des Programms Chord + werden in Kapitel 5 + erläutert.

+ +

Eigenschaften

+ + + +

GuitarTeX konvertiert eine Datei mit Text und + Akkorden im Chord-Format in eine LaTeX-Datei. Ein Beispiel + für eine Chord-Datei:

+ + + + + +
+
+{title:The Manual Song}
+{st:No-one has yet claimed responsibility}
+[D]I print verses [A^7]in a [D]row,
+The next line gets put [A^7]down be[D]low,
+Mumble mumble [A^7]rhymes with [D]grow [G]     [G#]     [A]
+Done this verse, now [A^7susX]on we [quietly]go!
+
+{soc}
+[D]This is the [Bm]manual song
+[A^7]No-one really knows what's [D]goin' on
+[D]This is the [F#m]manual song
+[A^7]And now the chorus is already [D]gone
+{eoc}
+
+[D]The second verse is [A^7]like the [D]first,
+The music poor, the [A^7]verse is [D]worse,
+I wrote this since [A^7]I'd get [D]sued,
+If I used real songs. [A^7]This'll [D]do.
+
+{c:repeat chorus}
+
+
+ +

Das ^-Zeichen ist neu für Benutzer anderer + Chord-Programme. Die nachfolgenden Zeichen werden + hochgestellt. Sie sehen die Ausgabe in Abbildung 1-1.

+ +
+ + +

Abbildung 1-1. Druckausgabe der Beispieldatei

+ +
+ + + + + + + + +
+ + +

+
+
+
+ +

Wenn Sie sich mit LaTeX auskennen, können Sie + die Ausgabedatei auch manuell verändern, bevor Sie sie + in Postscript oder PDF umwandeln. Der Vorteil ist, dass Sie + alle Möglichkeiten von LaTeX einschließlich der + vielen Zusatzpackete wie graphics oder MusicTeX einsetzen + können

+ +

hosted by Sourceforge.net SourceForge Logo

+
+ + + + + diff --git a/doc/de/guitartex/latex.html b/doc/de/guitartex/latex.html new file mode 100644 index 0000000..26b7495 --- /dev/null +++ b/doc/de/guitartex/latex.html @@ -0,0 +1,142 @@ + + + + + LaTeX Kommandos und Packete verwenden + + + + + + + + + +
+

Kapitel 6. LaTeX Kommandos und Packete + verwenden

+ + + +
+

LaTeX + Kommandos

+ +

Wie in der Einführung erwähnt, brauchen + Sie nichts über LaTeX zu wissen, um GuitarTeX zu + nutzen. Wenn Sie sich mit LaTeX auskennen, können Sie + dessen Möglichkeiten nutzen, um Ihre Ergebnisse weiter + zu verbessern. Alle Zeilen, die mit einem Backslash + beginnen, werden in die erzeute LaTeX-Datei + übernommen. Sie können das einfach mit einem + Kommando wie diesem testen:

+ +
+ + +

Beispiel 6-1. LaTeX Kommando in Chord-Datei

+ + + + + +
+
+\marginpar{test}
+
+
+
+ +

Das Ergebnis ist eine Randbemerkung mit dem Wort + "test".

+ +

Die LaTeX Kommandos werden an der Stelle + ausgeführt, an der sie in der Datei vorkommen. Manche + Kommandos müssen allerdings in der sog. Präambel + der LaTeX-Datei erscheinen. Das geschieht mit der Direktive + preamble:

+ +
+ + +

Beispiel 6-2. LaTeX Kommando für die + Präambel

+ + + + + +
+
+{preamble:\usepackage(fancyheadings)}
+
+
+
+ +

Die Direktive preamble kann + irgendwo im Dokument stehen. Die enthaltenen Kommandos + erscheinen in der LaTeX-Präambel in der Reihenfolge, + in der sie in der Chord-Datei stehen.

+
+
+ + + + + diff --git a/doc/de/guitartex/links.html b/doc/de/guitartex/links.html new file mode 100644 index 0000000..e85d655 --- /dev/null +++ b/doc/de/guitartex/links.html @@ -0,0 +1,86 @@ + + + + + Links + + + + + + + + + +
+

Kapitel 8. Links

+ +
+
+
Inhaltsverzeichnis
+ +
Kontakte
+ +
Links
+
+
+ +
+

Kontakte

+ +

Um mit dem Autor und anderen Benutzern Kontakt + aufzunehmen, verwenden Sie bitte die Mailingliste: http://lists.sourceforge.net/lists/listinfo/guitartex-users

+
+
+ + + + + diff --git a/doc/de/guitartex/ln12.html b/doc/de/guitartex/ln12.html new file mode 100644 index 0000000..7e308d6 --- /dev/null +++ b/doc/de/guitartex/ln12.html @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + +
+ + +

This program is free software; you can redistribute + it and/or modify it under the terms of the GNU General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later + version.

+ +

This program is distributed in the hope that it will + be useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the GNU General Public License for more + details.

+ +

You should have received a copy of the GNU General + Public License along with this program; if not, write to the + Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA + 02139, USA.

+
+ + + + + diff --git a/doc/de/guitartex/others.html b/doc/de/guitartex/others.html new file mode 100644 index 0000000..db19edc --- /dev/null +++ b/doc/de/guitartex/others.html @@ -0,0 +1,217 @@ + + + + + Andere + + + + + + + + + + +
+

Andere

+ +
+

define

+ +

Mit der Direktive define können Sie ein + Akkord-Symbol am Ende eines Stückes erstellen. Die + Direktive kann irgendwo im Stück platziert sein.

+ +

define verfügt über acht Parameter:

+ +
    +
  • +

    den Akkordnamen

    +
  • + +
  • +

    die Nummer des ersten Bundes

    +
  • + +
  • +

    sechs Nummern für die sechs Saiten (ein x + bedeutet, dass die Saite nicht gespielt wird)

    +
  • +
+ +
+ + +

Beispiel 5-20. Direktive define

+ + + + + +
+
+{define:A  1 x 0 2 2 2 0}
+{define:Cm  3 x 1 3 3 2 1}
+{define:Gm/Bb   4 3 2 2 1 x x}
+
+
+
+ +

Das Ergebnis sieht so aus wie in Abbildung 5-2.

+ +
+ + +

Abbildung 5-2. Akkord-Symbole

+ +

+
+
+ +
+

comment

+ +

Die Direktive comment fügt einen Text ein, der + nicht zum eigentlichen Stück gehört.

+ +
+ + +

Beispiel 5-21. Direktive comment

+ + + + + +
+
+{comment: repeat chorus}
+{c: repeat chorus}
+
+
+
+
+ +
+

margin

+ +

Die Direktive margin erzeugt eine Randbemerkung. + Diese können z.B. dazu genutzt werden, Hinweise + für den Musiker einzufügen.

+ +
+ + +

Beispiel 5-22. Directive margin

+ + + + + +
+
+{margin:Fade Out}
+{m:Fade Out}
+
+
+
+
+ +
+

second

+ +

In einigen Stücken hat die zweite Stimme + nicht nur eine andere Melodie, sondern auch einen anderen + oder versetzt gesungenen Text. Bekannte Beispiele sind + "California Dreaming" von The Mamas And The Papas und + "Help" von den Beatles. Wenn Sie die zweite Stimme mit der + Direktive second markieren erscheint sie in weißer + Schrift auf grauem Hintergrund. Wegen der proportionalen + Schrift müssen Sie ein wenig experimentieren, um die + korrekte Ausrichtung zwischen erster und zweiter Stimme zu + erhalten.

+ +
+ + +

Beispiel 5-23. Direktive second (aus Help!, The + Beatles)

+ + + + + +
+
+[G] When I was younger so much [Hm]younger than today
+{second:When when I was young}
+[Em] I never needed anybody's [C]help in [F]any [G]way
+{second:I never need help in any way}
+[G]But now these days are gone and I'm [Bm]not so self assured
+{second:Now these days are gone}
+[Em] Now I find I've changed my mind,
+{second:And now I find}
+I've [C]opened [F]up the [G]doors
+{second:I've opened up the doors}
+
+
+
+
+
+ + + + + diff --git a/doc/de/guitartex/r193.html b/doc/de/guitartex/r193.html new file mode 100644 index 0000000..9ffbf66 --- /dev/null +++ b/doc/de/guitartex/r193.html @@ -0,0 +1,135 @@ + + + + + gtx2tex + + + + + + + + + + +

gtx2tex

+ +
+ + +

Name

+ gtx2tex -- konvertiert Chord-Dateien in die Formate + TeX, Postscript oder PDF format +
+ +
+ + +

Synopsis

+ + + + + +
+
+
gtx2tex [--verbose] [--lyrics] [--output=ps|pdf] [--italian] <file>
+
+
+
+ +
+ + +

Optionen

+ +

+ +
+
+
verbose
+ +
+

gtx2tex bereichtet, was gerade abläuft

+
+ +
lyrics
+ +
+

es wird nur der Text (ohne Akkorde) ausgegeben

+
+ +
output=ps|pdf
+ +
+

legen Sie das Ausgabeformat fest; ohne Angabe wird + TeX ausgegeben

+
+ +
italian
+ +
+

die Ausgabe der Akkorde erfolgt in italienischer + Notation (Do, Re, Mi, Fa, Sol, La, Si)

+
+
+
+
+
+
+ + + + + diff --git a/doc/de/guitartex/requirements.html b/doc/de/guitartex/requirements.html new file mode 100644 index 0000000..af76e7b --- /dev/null +++ b/doc/de/guitartex/requirements.html @@ -0,0 +1,99 @@ + + + + + Systemanforderungen + + + + + + + + + + +
+

Systemanforderungen

+ +

GuitarTeX wurde unter Linux entwickelt. Es sollte + mit allen Linux-Distributionen und auch auf Unix-Systemen + laufen. Zusätzlich werden benötigt:

+ + + Um PDF-Dateien auszugeben muss die LaTeX-Installation das + Programm + + + enthalten.
+
+
+ + + + + diff --git a/doc/de/guitartex/songbook.html b/doc/de/guitartex/songbook.html new file mode 100644 index 0000000..b93f312 --- /dev/null +++ b/doc/de/guitartex/songbook.html @@ -0,0 +1,257 @@ + + + + + Ein Liederbuch (Songbook) erstellen + + + + + + + + + + +
+

Ein Liederbuch + (Songbook) erstellen

+ +

Die Direktiven document_class und book_... + können irgendwo im Dokument platziert werden.

+ +
+

document_class

+ +

Die Direktive document_class legt fest, welche Art + Dokument Sie erhalten. Es gibt zwei mögliche + Werte:

+ +
    +
  • +

    book

    +
  • + +
  • +

    article (Voreinstellung)

    +
  • +
+ +
+ + +

Beispiel 5-9. Direktive document_class

+ + + + + +
+
+{document_class:book}
+
+
+
+ +

Der Wert "book" erzeugt

+ +
    +
  • +

    eine Titelseite

    +
  • + +
  • +

    ein Inhaltsverzeichnis

    +
  • + +
  • +

    Kopfzeilen mit Seitennummern

    +
  • + +
  • +

    einen Index

    +
  • +
+
+ +
+

book_title, + book_author, book_date

+ +

Diese drei Direktiven beschreiben den Inhalt der + Titelseite.

+ +
+ + +

Beispiel 5-10. Direktive book_title, book_author, + book_date

+ + + + + +
+
+{book_title:My Favourite Songs}
+{book_author:My Name}
+{book_date:September 2000}
+
+
+
+ +

Der Wert in book_title erscheint in den Kopfzeilen + auf geraden Seiten.

+
+ +
+

chapter

+ +

Wenn sie ein Songbook erstellen, können Sie + das Dokument mit der Direktive chapter in Kapitel + einteilen. Im Dokument erscheint eine Titelseite für + jedes neue Kapitel.

+ +
+ + +

Beispiel 5-11. Direktive chapter

+ + + + + +
+
+{chapter:Beatles}
+
+
+
+ +

Der Name des Kapitels erscheint im + Inhaltsverzeichnis und in den Kopfzeilen auf ungeraden + Seiten.

+
+ +
+

include

+ +

Wenn Sie aus einer Sammlung von Chord-Dateien ein + Songbook erstellen wollen brauchen Sie diese nicht alle zu + einer Datei zusammen zu fassen. Das hat nämlich einige + Nachteile, z.B. dass Sie einen einzelnen Song nicht mehr + transponieren können. Mit der Direktive include + können Sie die Dateien einzeln speichern. Erstellen + Sie lediglich eine Songbook-Datei und binden die einzelnen + Stücke mit include ein.

+ +
+ + +

Beispiel 5-12. Direktive include

+ + + + + +
+
+{document_class:book}
+{book_title:}
+{chapter:Name of chapter 1}
+{include:song file 1}
+{include:song file 2}
+{chapter:Name of chapter 2}
+{include:song file 3}
+{include:song file 4}
+
+
+
+ +

In diesem Beispiel wurde ein Songbook mit vier + Stücken in zwei Kapiteln erstellt.

+
+ +
+

even

+ +

Die Direktive even + lässt ein neues Stück in einem Songbook auf der + linken Seite beginnen. Das ist hilfreich, wenn das + Stück länger als eine Seite ist, damit man nicht + umblättern muss. Die Direktive muss vor der Direktive + title eines neuen Stückes angeordnet sein.

+ +
+ + +

Beispiel 5-13. Direktive even

+ + + + + +
+
+{even}
+{title:Proud Mary}
+{st:Creedence Clearwater Revival 1972}
+
+
+
+
+
+ + + + + diff --git a/doc/de/guitartex/stylesheet-images/caution.gif b/doc/de/guitartex/stylesheet-images/caution.gif new file mode 100644 index 0000000000000000000000000000000000000000..9cc2e1557447e9252ead07200617c2d56be4ed6f GIT binary patch literal 1039 zcmZ?wbh9u|lwgox_|5Sh{s9!`7`) zTel`}-MV$}UWUDUlh2)FICt*cwQCI5t^vtw_wF&=yJvXsp5?uJPS2k+Jb!NZ{JG`x z=g;52XL$eq{rB$--@gld|1RgdJ(|D$SrA+HAyGpqN^7x16zrMq{!ibMp=6~-(4c99<%wR z=lEzgH#IP+?pT$g`C;jexlBBNo_IO0=v$GV+9Oerpc~DrP;%tKgT`Z#V$4EkL{=v; zaW)#7)%@r_aPX#>5Fh`Y-v{$g32`gkn0k?^DW$2?_JPMq28Kof%}^J&9pNUYcvyH^ zranA$=y~&6-RTjl4}Cj!qXy}<-Pfit2&px)3vi@}Ecoi+!6qxs r(ZS&8c(6lQJMIjJqGMAJzuvhVhQ!S+Y#bZ9V$SZ``nrvgk--`Oh`uWh literal 0 HcmV?d00001 diff --git a/doc/de/guitartex/stylesheet-images/important.gif b/doc/de/guitartex/stylesheet-images/important.gif new file mode 100644 index 0000000000000000000000000000000000000000..25e40c76b573bd8674ea9f6ec415226a5a7ea10f GIT binary patch literal 1081 zcmeH`!AlfT0LI^{*krpft5G9~wab>QF61hrlLqdTZ7qs13C5hX*$y=!w3;|IUwr3)SH!wg^m z0sBxCMbk9HFwtm~Wm%4ka~zjSrFfnfgs3PoqR5M)C`p_oNtp~U%d(;-M;tE#f9 zs+uNf+Fok9F6g?b>$0xvh9Me;Vi=lX>~#ae5QHp*5`;2@3WO?zdm}W>lxgy&shXx~ zS(If7mZeyhZdsOXQ?@PGwp}P>3Wb8>Fpk4Jj_5d&<2VQbghB|#5n>VI5keSK7>6*9 zVjRaA;j~5=TV+VdtS)<&%g9QY~O%= z7XY;j7OA?6w;v|56*Y~ecdHNb{&1LE9ljn)G_}UYz~-EotgVY}Evz?ZbCE%Qe&E%) zY<}V(Oy|F(jSa1@cPY<)JylahkCjRbnG=tz+Xi_6x)c0VUzb0)6sbtP2s}RmMz18R z#yc*TK8D9{lr@NK>{~dzUJUjgP1jDAtyKs62bXCuv{Gz3-%{Fm-EzR^i|kg`ckLv7 zzNW*6>`rHW+}9atUH-GWQhsux=hmH1zqW%j>^6Gy!C1?^4Sufw?!N}7=rbeS(9Nw} zU#xlJ{Z4l=S6+E~*-O!NFz@VXc@G8x|gJ5|Hx|&`^AIq@7DufTJL=k*SSS$s)v|q2U0#fW|VLhy+z< zR$&&E6#^R%H8b;b_*e)mU}9q9Ws%9a@FBT{fiEEJLgc~*4<eAwF5u#VYwR?e%Shb+u`oHi>KJaB03@|>=hvC84eAr3KCza2Lm7+W|6 WloX~(95gs~e1fv~yck6V25SH<^dGbU literal 0 HcmV?d00001 diff --git a/doc/de/guitartex/stylesheet-images/note.gif b/doc/de/guitartex/stylesheet-images/note.gif new file mode 100644 index 0000000000000000000000000000000000000000..7322e8e40bdc0c3f9f1a09786d42c012a6ab8b0e GIT binary patch literal 1070 zcmV+}1kw9PNk%v~VHf}y0QUd@000010RaL60s{jB1Ox;H1qB8M1_uWR2nYxX2?+`c z3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= z{r&#_{{R2~EC2ui02lxm000R70RIUbNbsCNg9H;Q6xgd2rBVHES(3_Ku{tyHgqN;d+?Tzju!Z);;TuQDVJwRQAHSkR)YFdrEO!v&XBk zJwOwl{a4GHz*-^KY@Rd5rovJavBo?tB{Lyo6k9@$D)OJx<0pIB#+rEO&f%|l4*kcd o_`qJ2pi}&6ogi$&oxc>r#EMbwId40)HiwBGBuL!a2L=QHJ43Vzj{pDw literal 0 HcmV?d00001 diff --git a/doc/de/guitartex/stylesheet-images/prev.gif b/doc/de/guitartex/stylesheet-images/prev.gif new file mode 100644 index 0000000000000000000000000000000000000000..0894d9ecb26316a61e914879c48520cc8aee392d GIT binary patch literal 944 zcmZ?wbh9u|RA%63_|Cw<(83_lBcRx$s5wQ`aE_tV94D`(UO{VvvbSaz?=5cG+tPEa zXUe%LOV2G`du{Epd&kZ_KX>i@wde1jzyJRJ|0oy@fgv6OI>0Qz0Llvt98(!IIb=LG zEI8QAA*>a1V#7k`W+6F`nhzV2ni%sMgrT8{g_D_uZNY^D443EGIST1`39V>a$f&~eRijiP ybPlVqjKR$hN{*ZiRYDmKlawRc1?88Ba5ye<;N%wZnBfq<^#1+^W@{b}25SIMS`<+L literal 0 HcmV?d00001 diff --git a/doc/de/guitartex/stylesheet-images/tip.gif b/doc/de/guitartex/stylesheet-images/tip.gif new file mode 100644 index 0000000000000000000000000000000000000000..f062955fa717ba5a52b5167d7b76e3893c0bb8bd GIT binary patch literal 1029 zcmV+g1p50&Nk%v~VHp4z0QUd@000010RaL60s{jB1Ox;H1qB8M1_uWR2nYxX2?+`c z3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= z{r&#_{{R2~EC2ui02u%n000Q;0RIUbNbsCNg9H;Q6nM^9DN3axLUeX-VZwX8CZ4;u zu^}Z&&MY#7=uMQzzXzjLK(DOA}@A62gx007pM9e9q?%bp7<-HvA!GFEE{U`SDUWKJX{{T literal 0 HcmV?d00001 diff --git a/doc/de/guitartex/stylesheet-images/toc-blank.gif b/doc/de/guitartex/stylesheet-images/toc-blank.gif new file mode 100644 index 0000000000000000000000000000000000000000..6c65e3a194c9fc7cf689bfe14d8195bc40d8093b GIT binary patch literal 95 zcmZ?wbhEHbuk@&whU_+wL7l%xqVSOWl-?jltH literal 0 HcmV?d00001 diff --git a/doc/de/guitartex/stylesheet-images/toc-minus.gif b/doc/de/guitartex/stylesheet-images/toc-minus.gif new file mode 100644 index 0000000000000000000000000000000000000000..40ebe61e46a6bd1d8c2c5292af72365d489c6c56 GIT binary patch literal 843 zcmZ?wbhEHb~0HBcxg#Z8m literal 0 HcmV?d00001 diff --git a/doc/de/guitartex/stylesheet-images/toc-plus.gif b/doc/de/guitartex/stylesheet-images/toc-plus.gif new file mode 100644 index 0000000000000000000000000000000000000000..3e9e7d55a3dde56cd0f6596f3cd6d555323ab273 GIT binary patch literal 846 zcmZ?wbhEHb9$=O@8TlTi}9P62KZpzks zTaVp4cJBGPYwxc;fB*db_xJxt!Dt8!mk`haW&s9JUSQy;XHe#l@z}87U^9oXR?LZl z2hFTJQZ5+>5*SSzV6bfE`GK5MM$#&QRJy`J4!v@O~A@yPr!5RMtk9#~G@Ae)K-pJ_rp>Uc7 ziw-~o3~UP@zym?xEFc02AO*|-vw#E?02xqhN|KsLsHv1HNgALpfillvbwGtfWa^Z%Nji21e&%sn=PQ#YMFrP z^O>e;0TxYLmSwl?bUJ&$-ahsh_)iP;!^Xcafc}H~G`Ak>lJj)WmUlgKr9}6g9#&V= z&c&jqyYwa#SX_I2V&c-qQs7*1*_+%EZaV@WdJm0PEt+!V`f3joM2X1L_My4D`u3j6vyCXXt z+{WQYgC}$7{kgpPEVcko?zh1;vK8^&#pzQ*mhE>PEhTR(eVdy)=pGVYl)t2ftTQzE zzU^7puUXRbeBm&39nfU1TKR=nbh1$ Qxn7IjbH6=6b-57z3rbJ+&;S4c literal 0 HcmV?d00001 diff --git a/doc/de/guitartex/tablature.html b/doc/de/guitartex/tablature.html new file mode 100644 index 0000000..edfc498 --- /dev/null +++ b/doc/de/guitartex/tablature.html @@ -0,0 +1,258 @@ + + + + + Gitarren- und Bass-Tabulaturen + + + + + + + + + + +
+

Gitarren- und + Bass-Tabulaturen

+ +

GuitarTeX kennt zwei neue Direktiven zur Darstellung von + Tabulaturen:

+ +
    +
  • +

    {guitartab: } für Gitarren-Tabulaturen

    +
  • + +
  • +

    {basstab: } für Bass-Tabulaturen

    +
  • +
+ +

Jede guitartab oder basstab Direktive stellt eine + Zeile mit sechs bzw vier Linien dar. Sie können mit + {guitartab: } oder {basstab: } auch leere Tabulaturen + erzeugen. Setzen Sie eine Leerzeile vor die Direktive, damit + die Tabulatur am linken Rand beginnt.

+ +

Die Klammern können enthalten:

+ +
    +
  • +

    normaler Text, der unterhalb der Tabulatur ausgegeben + wird

    +
  • + +
  • +

    Noten im Format [string;fret], z.B. [2;5] für 5. + Bund auf der A-Saite

    +
  • + +
  • +

    Taktstriche (durch das Zeichen | dargestellt)

    +
  • + +
  • +

    Zusätzlicher Leerraum mit "_"

    +
  • +
+ +
+ + +

Abbildung 5-1. Tabulatur Schaltflächen

+ +

+
+ +

Anstatt die Zeilen von Hand einzugeben können + Sie die Schaltfächen verwenden (see Abbildung 5-1). Ein Klick + auf die Schaltfläche "Gitarre" oder "Bass" fügt die + jeweilige Direktive an der aktuellen Cursorposition ein. Um + eine Note einzufügen, geben Sie die Nummer des Bundes in + das Eingabefeld ein und klicken die gewünschte Saite an. + Die Note wird an der aktuellen Cursorposition eingefügt. + Danach steht der Cursor wieder im Eingabefeld, so dass Sie + nacheinander beliebig viele Noten erfassen können.

+ +
+

Beispiele

+ +
+ + +

Beispiel 5-14. Leere Gitarren-Tabulatur

+ + + + + +
+
+{guitartab:}
+
+
+ +

+

+
+ +
+ + +

Beispiel 5-15. Eine Bass-Tabulatur mit Text

+ + + + + +
+
+{basstab:some text}
+
+
+ +

+

+
+ +
+ + +

Beispiel 5-16. Noten, Taktstriche und + Leerraum

+ + + + + +
+
+{guitartab:[2;3][3;0][3;2][3;3]|[4;0]__[4;2]__[5;0]__[5;1]|}
+
+
+ +

+

+
+ +
+ + +

Beispiel 5-17. Text unter den Noten + anordnen

+ + + + + +
+
+{guitartab:[2;3]do [3;0]re [3;2]mi [3;3]fa |[4;0]so [4;2]la [5;0]si [5;1]do|}
+
+
+ +

+

+
+ +
+ + +

Beispiel 5-18. Eine einfache Bass-Tabulatur

+ + + + + +
+
+{basstab:[2;5][2;5]|[2;5][2;5]|[3;5][3;5]|[2;5][2;5]|[3;7][3;7]|[3;5][3;5]|[2;5]}
+
+
+ +

+

+
+ +
+ + +

Beispiel 5-19. Akkorde

+ + + + + +
+
+{guitartab:[2;3]&[3;5]&[4;5]C (power chord) |[2;3]&[3;2]&[4;0]&[5;1]C chord}
+
+
+ +

+

+
+
+
+ + + + + diff --git a/doc/de/guitartex/x227.html b/doc/de/guitartex/x227.html new file mode 100644 index 0000000..bebc5b0 --- /dev/null +++ b/doc/de/guitartex/x227.html @@ -0,0 +1,297 @@ + + + + + Menüs + + + + + + + + + + +
+

Menüs

+ +

Sie können jedes Menü "abreißen", + indem Sie auf den ersten Eintrag (-----) klicken. Das kann + sehr nützlich sein, wenn Sie einen Befehl mehrmals + benutzen wollen.

+ +
+

Menü + Datei

+ +
+

Neu, Öffnen, + Speichern, Speichern als, Beenden

+ +

Die Menüpunkte Neu, Öffnen, Speichern, + Speichern als, Beenden verhalten sich, wie Sie es von + anderen Anwendungen mit grafischer Oberfläche + gewohnt sind. Daher wird hier auf eine weitere + Beschreibung verzichtet. Alternativ können Sie auf + eine der Schaltflächen klicken.

+
+ +
+

Export > LaTeX , + Export > Postscript, Export > PDF

+ +

Die geöffnete Datei wird gespeichert und + dann in das LaTeX-, Postscript- bzw. PDF-Format + konvertiert. Der Name der erzeugten Datei entspricht dem + ursprünglichen Namen mit der Erweiterung .tex, .ps + bzw. .pdf. Alternativ können Sie auf eine der + Schaltflächen klicken.

+ +
+ + +

Abbildung 4-1. Schaltflächen für die + Ausgabe im LaTeX-, Postscript oder PDF-Format

+ +

+ +

+ +

+
+
+
+ +

Nachdem die exportierte Datei erstellt wurde, + startet ein Programm zu deren Anzeige. Sie können + das gewünschte Anzeigeprogramm auswählen, indem + Sie die Parameter $text_viewer, $ps_viewer und $pdf_viewer in der Konfigurationsdatei + ändern (siehe Abschnitt + namens Konfigurationsdatei in Kapitel 2).

+
+
+ +
+

Menü + Bearbeiten

+ +
+

Ausschneiden, + Kopieren, Einfügen

+ +

Wenn Sie Text ausschneiden, kopieren und + einfügen möchten, benutzen Sie die + Tastenkombinationen strg-x (ausschneiden), strg-c + (kopieren) und strg-v (einfügen).

+
+ +
+

Datei + einfügen

+ +

Der Befehl startet einen Dateiauswahldialog. Die + ausgewählte Datei wird an der Cursorposition + eingefügt.

+
+ +
+

crd -> + chopro

+ +

Sie werden häufig Musikstücke mit + Akkorden in rohem ASCII-Format finden. Diese sehen im + Gegensatz zum Chord-Format so aus:

+ + + + + +
+
+D              A7   D
+I print verses in a row,
+                       A7     D
+The next line gets put down below,
+              A7          D    G    G#       A
+Mumble mumble rhymes with grow
+                     A7susx
+Done this verse, now we go!
+
+
+ +

Setzen Sie den Cursor in die erste Zeile (die + mit den Akkorden) und rufen den Menüpunkt + crd->chopro auf oder drücken Sie die + Funktionstaste F). Die Akkordzeile und die folgende + Textzeile werden zu einer Zeile im Chord-Format + zusammengeführt. Der Cursor befindet sich danach in + der nächsten Zeile, so dass Sie einfach mehrmals F9 + drücken müssen, um weitere Zeilen zu + konvertieren.

+
+
+ +
+

Menü + Direktiven

+ +

Mit diesem Menü können Sie Direktiven an + der Cursorposition einfügen. Die Bedeutung der + Direktiven ist in Kapitel 5 + erläutert.

+
+ +
+

Menü + Liederbuch

+ +

Fügen Sie die Direktiven zur Erstellung von + Liederbüchern ein, statt sie von Hand einzutippen. Die + Bedeutung dieser Direktiven ist in Abschnitt namens Ein Liederbuch + (Songbook) erstellen in Kapitel 5 + erläutert.

+
+ +
+

Menü + Farben

+ +

Mit diesem Menü können Sie die + Direktiven zur Anpassung der Farben einfügen Es wird + ein Farbauswahldialog aufgerufen (siehe Abbildung 4-2).

+ +
+ + +

Abbildung 4-2. Farbauswahldialog

+ +

+
+ +

Sie haben drei Möglichkeiten, die + gewünschte Farbe auszuwählen:

+ +
    +
  • +

    doppelklicken Sie auf eine vordefinierte Farbe in + der Liste auf der linken Seite

    +
  • + +
  • +

    bewegen Sie die Schieber in der Mitte des + Dialogfeldes (wählen Sie zuerst den + gebräuchlicheren RGB-Farbraum anstelle von + HSB)

    +
  • + +
  • +

    geben Sie den RGB-Wert manuell in das Feld Name ein, + keine wirklich gute Idee :-)

    +
  • +
+ +

Die Farb-Direktiven können auch manuell + eingegeben werden. Sie werden in Abschnitt namens color_xxx in + Kapitel 5 erklärt.

+
+ +
+

Menü + Transponieren

+ +
+

Hoch, Runter

+ +

Diese beiden Befehle transponieren das + Stück um einen Halbton nach oben oder unten. Sie + können die Tasten F5 und F6 an Stelle des Menüs + verwenden. In Akkorden mit Bass (z.B. G/B) werden sowohl + der Akkord als auch die Bassnote transponiert. + Schrägstriche dürfen nur in Akkorden mit Bass + verwendet werden (siehe Abschnitt namens + Spezielle Zeichen in Kapitel 5).

+
+ +
+

b->#, + #->b

+ +

Nach dem Transponieren weiß das Programm + natürlich nicht, ob Halbtöne mit # oder b + dargestellt werden sollen. Daher werden zunächst + alle Halbtöne mit # dargestellt. Sie können + dies mit dem Befehl #->b ändern. Alternativ + können Sie die Tasten F7 und F8 verwenden.

+
+ +
+

B->H, + H->B

+ +

In der deutschen Schreibweise wird die Note B + als H geschrieben. Mit diesen Befehlen können Sie + von B nach H und umgekehrt umschalten.

+
+
+
+ + + + + diff --git a/doc/de/guitartex/x298.html b/doc/de/guitartex/x298.html new file mode 100644 index 0000000..00b2db3 --- /dev/null +++ b/doc/de/guitartex/x298.html @@ -0,0 +1,85 @@ + + + + + Akkord-Schaltflächen + + + + + + + + + + +
+

Akkord-Schaltflächen

+ +
+ + +

Abbildung 4-3. Akkord-Schaltflächen

+ +

+
+ +

Durch einen Klick auf eine der + Akkord-Schaltflächen (siehe Abbildung 4-3) wird der + augewählte Akkord an der Cursorposition eingefügt. + Danach können Sie den Akkord editieren, z.B. Moll oder + Septime einfügen.

+
+ + + + + diff --git a/doc/de/guitartex/x305.html b/doc/de/guitartex/x305.html new file mode 100644 index 0000000..39c247a --- /dev/null +++ b/doc/de/guitartex/x305.html @@ -0,0 +1,94 @@ + + + + + Syntax Highlighting + + + + + + + + + + +
+

Syntax + Highlighting

+ +
+ + +

Abbildung 4-4. Syntax Highlighting + Schaltfläche

+ +

+
+ +

GuitarTeX verfügt über sogenanntes Syntax + Highlighting für Direktiven, Kommentare und Akkorde, + d.h. die genannten Elemente werden in einer anderen Farbe als + der normale Text angezeigt. Sie können die Text- und + Hintergrundfarbe selbst wählen, indem Sie die + entsprechenden Parameter in der Konfigurationsdatei anpassen. + Wenn Sie Direktiven oder Akkorde über Menüs und + Schaltflächen einfügen, erfolgt die Einfärbung + automatisch. Nach manueller Eingabe klicken Sie einfach auf + die Syntax Highlighting Schaltfläche (siehe Abbildung 4-4).

+
+ + + + + diff --git a/doc/de/guitartex/x447.html b/doc/de/guitartex/x447.html new file mode 100644 index 0000000..bbd66ed --- /dev/null +++ b/doc/de/guitartex/x447.html @@ -0,0 +1,268 @@ + + + + + Dokumentstrukur + + + + + + + + + + +
+

Dokumentstrukur

+ +
+

title

+ +

Der Titell eines Stückes wird durch die + Direktive title markiert. Der Titel + wird zentriert mit einer vergrößerten Schrift + ausgegeben. In Dokumenten mit mehreren Stücken + verursacht title einen + Seitenumbruch.

+ +
+ + +

Beispiel 5-1. Direktive title

+ + + + + +
+
+{title:Go Down Moses}
+{t:Go Down Moses}
+
+
+
+
+ +
+

subtitle

+ +

Die Direktive subtitle + dient zur Darstellung zusätzlicher Informationen, wie + z.B. Interpret oder Komponist.

+ +
+ + +

Beispiel 5-2. Direktive subtitle

+ + + + + +
+
+{subtitle:written by John Lennon / Paul McCartney}
+{st:written by John Lennon / Paul McCartney}
+
+
+
+
+ +
+

sob, eob

+ +

Eine Bridge wird mit sob + (start of bridge) am Anfang, und eob + (end of bridge) am Ende markiert. Die Bridge wird auf + Farbdruckern in blau ausgegeben. Die Farbe kann mit der + Direktive color_bridge angepasst + werden (siehe Abschnitt namens + color_xxx).

+ +
+ + +

Beispiel 5-3. Direktive sob, eob (aus Here, There + And Everywhere, Beatles):

+ + + + + +
+
+{sob}
+I want her [Ab]everywhere [Fm]
+And if [Bbm]she's beside me [C^7]I know I need [Fm]never care
+[Bb]But to love her [C^7]is to meet her
+{eob}
+
+
+
+
+ +
+

soc, eoc

+ +

Ein Refrain wird mit soc + (start of chorus) am Anfang und mit eoc (end of chorus) am Ende markiert. Der + Refrain wird auf Farbdruckern in rot ausgegeben. Die Farbe + kann mit der Direktive color_chorus + angepasst werden (siehe Abschnitt + namens color_xxx).

+ +
+ + +

Beispiel 5-4. Direktive soc, eoc (aus With A Litle + Help From My Friends, Beatles):

+ + + + + +
+
+{soc}
+Oh, I get [C]by with a little [G]help from my [D]friends
+Mm, I get [C]high with a little [G]help from my [D]friends
+Oh, I'm gonna [C]try with a little [G]help from my [D]friends
+{eoc}
+
+
+
+
+ +
+

soi, eoi

+ +

Ein Instrumantal-Teil wird mit soi (start of instrumental) am Anfang und eoi (end of instrumental) am Ende + markiert. Der Instrumental-Teil wird auf Farbdruckern in + grau ausgegeben. Die Farbe kann mit der Direktive color_instr angepasst werden (siehe Abschnitt namens + color_xxx).

+
+ +
+

np

+ +

np steht für "neue Seite" + und erzeugt einen Seitenumbruch.

+ +
+ + +

Beispiel 5-5. Directive np

+ + + + + +
+
+{np}
+
+
+
+
+ +
+

sot, eot

+ +

Tabulaturen werden mit sot + (start of tablature) am Anfang und eot (end of tablature) am Ende markiert. + Tabulaturen werden auf Farbdruckern in grün + ausgegeben. Die Farbe kann mit der Direktive color_tab directive angepasst werden (siehe + Abschnitt namens + color_xxx). Tabulaturen werden in einer + nichtproportionalen Schriftart ausgegeben.

+ +
+ + +

Beispiel 5-6. Direktive sot, eot (aus Pretty Woman, + Roy Orbison):

+ + + + + +
+
+{sot}
+E ---------------------|------------------------------------
+B ---------------------|------------------------------------
+G ---------------------|------------------------------------
+D -----------------0---|-------------------0---4---2---0----
+A -------------2-------|---------------2--------------------
+E -0---0---4-----------|---0---0---4------------------------
+{eot}
+
+
+
+ +

Wenn Sie ASCII-Tabulaturen nicht mögen, + bietet GuitarTeX Ihnen eine andere Möglichkeit in Abschnitt namens Gitarren- und + Bass-Tabulaturen.

+
+
+ + + + + diff --git a/doc/de/guitartex/x519.html b/doc/de/guitartex/x519.html new file mode 100644 index 0000000..fef4514 --- /dev/null +++ b/doc/de/guitartex/x519.html @@ -0,0 +1,166 @@ + + + + + Fonts + + + + + + + + + + +
+

Fonts

+ +

Die Direktiven zur Beeinflussung der Schriftart und + -farbe können irgendwo in Ihrer Datei stehen. Trotzdem + ist es hilfreich sie am Anfang zu platzieren. Die angegebenen + Werte gelten für das ganze Dokument.

+ +
+

font_size

+ +

LaTeX kennt drei Schriftgrößen 10pt, + 11pt and 12pt. GuitarTeX nutzt normalerweise 11pt (Titel + und Untertitel werden automatisch vergrößert). + Wenn Sie z.B. 12pt verwenden wollen, schreiben Sie:

+ +
+ + +

Beispiel 5-7. Direktive font_size

+ + + + + +
+
+{font_size:12}
+
+
+
+ +

Achtung: schreiben Sie nicht 12pt statt 12!

+
+ +
+

color_xxx

+ +

Mit den folgenden Direktiven können Sie die + Textfarbe für Refrain, Bridge, Instrumental-Teil + Tabulaturen und zweite Stimme anpassen. Für die zweite + Stimme können Sie auch die Hintergrundfarbe + ändern, so dass Sie z.B. weiße Schrift auf einem + farbigen Hintergrund verwenden können. Das erleichtert + den Sängern hoffentlich die Orientierung bei mehreren + Textzeilen :-)

+ +

Die Direktiven heißen

+ +
    +
  • +

    color_chorus

    +
  • + +
  • +

    color_bridge

    +
  • + +
  • +

    color_instr

    +
  • + +
  • +

    color_tab

    +
  • + +
  • +

    color_second

    +
  • + +
  • +

    color_second_back

    +
  • +
+ +

Als Parameter wird eine durch Kommas getrennte + Liste von Werten zwischen null und eins, die die Farben + rot, grün und blau repräsentieren.

+ +
+ + +

Beispiel 5-8. Direktive color_chorus (Refrain in + hellblau):

+ + + + + +
+
+{color_chorus:.5,.5,1}
+
+
+
+
+
+ + + + + diff --git a/doc/de/guitartex/x750.html b/doc/de/guitartex/x750.html new file mode 100644 index 0000000..999a01c --- /dev/null +++ b/doc/de/guitartex/x750.html @@ -0,0 +1,327 @@ + + + + + LaTeX-Packete MusixTeX, MusixLyr und TabDefs + + + + + + + + + + +
+

LaTeX-Packete MusixTeX, + MusixLyr und TabDefs

+ +

MusixTeX ist ein mächtiges LaTeX-Packet für + Notensatz. MusixLyr und TabDefs sind Ergänzungen zu + MusixTeX für noch bessere Darstellung von Text und + Tabulaturen. Sie können diese Packete GuitarTeX direkt + verwenden, indem Sie eine (oder mehrere) dieser Direktiven + irgendwo in Ihre Chord-Datei schreiben:

+ +
    +
  • +

    {musixtex}

    +
  • + +
  • +

    {musixlyr}

    +
  • + +
  • +

    {tabdefs}

    +
  • +
+ +
+
+

Wichtig: Sie müssen die Packete korrekt + installiert haben, um sie zu benutzen. Bitte lesen Sie + die Dokumentation zu den Packeten.

+
+
+ +

Sie können nun LaTeX-Kommandos aus den Packeten + MusixTeX, MusixLyr oder TabDefs an jeder Stelle in der Datei + verwenden oder mit include einbinden (Beispiele siehe Abschnitt namens + Beispiele).

+ + + + + + + +
+

Beispiele

+ +
+ + +

Beispiel 6-3. MusixTeX

+ +

+ +
+ + + + + + + + +
+
+
+
+
+ + + + + +
+
+{musixtex}
+
+{soc}
+[D]This is the [Bm]manual song
+[A^7]No-one really knows what's [D]goin' on
+[D]This is the [F#m]manual song
+[A^7]And now the chorus is already [D]gone
+{eoc}
+
+\hsize=100mm
+\generalmeter{\meterfrac24}%
+\parindent 0pt
+\setsign1{-3}
+\startpiece\bigaccid
+\NOtes\qu{ce}\enotes
+\bar
+\NOtes\qu{gh}\enotes
+\bar
+\NOtes\qu{=b}\enotes
+\Notes\ds\cu g\enotes
+\bar
+\NOtes\qu{^f=f}\enotes
+\NOtes\qu{=e}\itied0e\qu{_e}\enotes
+\bar
+\Notes\ttie0\Qqbu ed{_d}c\enotes
+\bar
+\Notes\ibu0b{-2}\qb0{=b}\enotes
+\notes\nbbu0\qb0{=a}\tqh0N\enotes
+\Notes\Dqbu cf\enotes
+\NOtes\uptext{\it tr}\qu e\uptext{\it tr}\qu d\enotes
+\bar
+\NOtes\qu c\qp\enotes
+\setdoubleBAR
+\stoppiece
+\bigskip
+
+[D]The second verse is [A^7]like the [D]first,
+The music poor, the [A^7]verse is [D]worse,
+I wrote this since [A^7]I'd get [D]sued,
+If I used real songs. [A^7]This'll [D]do.
+
+
+
+ +
+ + +

Beispiel 6-4. Tempo-Angabe

+ +

+ +
+ + + + + + + + +
+
+
+
+
+ + + + + +
+
+{musixtex}
+{title:The Manual Song}
+{st:No-one has yet claimed responsibility}
+
+\notes\metron{\qu}{60}\en
+
+[D]I print verses [A^7]in a [D]row,
+The next line gets put [A^7]down be[D]low,
+Mumble mumble [A^7]rhymes with [D]grow [G]     [G#]     [A]
+Done this verse, now [A^7susX]on we [quietly]go!
+
+
+
+ +
+ + +

Beispiel 6-5. Verbesserter Satz von Text mit + MusixLyr

+ +

+ +
+ + + + + + + + +
+
+
+
+
+ + + + + +
+
+{musixtex}
+{musixlyr}
+
+{soc}
+[D]This is the [Bm]manual song
+[A^7]No-one really knows what's [D]goin' on
+[D]This is the [F#m]manual song
+[A^7]And now the chorus is already [D]gone
+{eoc}
+
+\par{
+\hsize=120mm
+\setlyrstrut
+\resetlyrics
+\setlyrics{Winter1}{Win-ter a-de\rlap{,} a-ber dein Schei-den macht\rlap{,}}
+\setlyrics{Winter2}{schei-den tut weh\rlap,}
+\assignlyrics1{Winter1,Winter2}
+\generalmeter{\meterfrac34}
+\generalsignature2
+\setsongraise1{-2mm}
+\startpiece
+\NOtes\qa{ffe}\en\bar
+\NOTesp\hup d\en\rightrepeat
+\assignlyrics1{Winter1}%
+\NOtes\qa{fgh}\en\bar
+\NOtes\qa h\en
+\Notes\beginmel\Ibu0gf1\qb0g\endmel\tqh0f\en
+\NOtes\qa g\en
+\endpiece
+}
+
+[D]The second verse is [A^7]like the [D]first,
+The music poor, the [A^7]verse is [D]worse,
+I wrote this since [A^7]I'd get [D]sued,
+If I used real songs. [A^7]This'll [D]do.
+
+
+
+
+
+ + + + + diff --git a/doc/de/guitartex/x819.html b/doc/de/guitartex/x819.html new file mode 100644 index 0000000..4868bf2 --- /dev/null +++ b/doc/de/guitartex/x819.html @@ -0,0 +1,124 @@ + + + + + Liedblätter + + + + + + + + + + +
+

Liedblätter

+ +
+ + +

Beispiel 7-1. Einelnes Lied

+ +

+ +
+ + + + + + + + +
+
+
+
+
+
+ +
+ + +

Beispiel 7-2. Einzelnes Lied als Teil eines + Liederbuches

+ +

+ +
+ + + + + + + + +
+
+
+
+
+
+
+ + + + + diff --git a/doc/de/guitartex/x847.html b/doc/de/guitartex/x847.html new file mode 100644 index 0000000..771c51b --- /dev/null +++ b/doc/de/guitartex/x847.html @@ -0,0 +1,153 @@ + + + + + Akkord-Tabelle + + + + + + + + + + +
+

Akkord-Tabelle

+ +

Die folgende Akkord-Tabelle stammt aus dem Songbuch + des Autors. Sie wurde mit dem untenstehenden Code + erstellt.

+ +
+ + +

Beispiel 7-3. Akkord-Tabelle

+ +

+ +
+ + + + + + + + +
Chord table +
+
+
+
+ + + + + +
+
+
{title:D}
+{define:D   1 x x 0 2 3 2}
+{define:D+  1 x x 0 3 3 2}
+{define:D4  1 x x 0 2 3 3}
+{define:D6  1 x 0 0 2 0 2}
+{define:D7  1 x x 0 2 1 2}
+{define:D7#9    4 x 2 1 2 3 3}
+{define:D7(#9)  4 x 2 1 2 3 3}
+{define:D9  0 1 3 1 2 1 3}
+{define:D11 1 3 0 0 2 1 0}
+{define:Dsus    1 x x 0 2 3 3}
+{define:Dsus2   1 0 0 0 2 3 0}
+{define:Dsus4   1 x x 0 2 3 3}
+{define:D7sus2  1 x 0 0 2 1 0}
+{define:D7sus4  1 x 0 0 2 1 3}
+{define:Dmaj    1 x x 0 2 3 2}
+{define:Dmaj7   1 x x 0 2 2 2}
+{define:Ddim    1 x x 0 1 0 1}
+{define:Dm  1 x x 0 2 3 1}
+{define:Dmin    1 x x 0 2 3 1}
+{define:D/A 1 x 0 0 2 3 2}
+{define:D/B 1 x 2 0 2 3 2}
+{define:D/C 1 x 3 0 2 3 2}
+{define:D/C#    1 x 4 0 2 3 2}
+{define:D/E 7 x 1 1 1 1 x}
+{define:D/G 1 3 x 0 2 3 2}
+{define:D5/E    7 0 1 1 1 x x}
+{define:Dadd9   1 0 0 0 2 3 2}
+{define:D(add9) 1 0 0 0 2 3 2}
+{define:D9add6  0 1 3 3 2 0 0}
+{define:D9(add6)0 1 3 3 2 0 0}
+
+{define:Dm6(5b) 1 x x 0 1 0 1}
+{define:Dm7 1 x x 0 2 1 1}
+{define:Dm#5    1 x x 0 3 3 2}
+{define:Dm(#5)  1 x x 0 3 3 2}
+{define:Dm#7    1 x x 0 2 2 1}
+{define:Dm(#7)  1 x x 0 2 2 1}
+{define:Dm/A    1 x 0 0 2 3 1}
+{define:Dm/B    1 x 2 0 2 3 1}
+{define:Dm/C    1 x 3 0 2 3 1}
+{define:Dm(F)   1 x x 3 2 3 1}
+{define:Dm/C#   1 x 4 0 2 3 1}
+{define:Dm9 1 x x 3 2 1 0}
+
+
+
+
+ + + + + diff --git a/doc/de/guitartex/x864.html b/doc/de/guitartex/x864.html new file mode 100644 index 0000000..3271cf7 --- /dev/null +++ b/doc/de/guitartex/x864.html @@ -0,0 +1,88 @@ + + + + + Indexseite + + + + + + + + + + +
+

Indexseite

+ +

+ +
+ + + + + + + + +
Index Page
+
+
+
+
+ + + + + diff --git a/doc/de/guitartex/x883.html b/doc/de/guitartex/x883.html new file mode 100644 index 0000000..5fa1e8e --- /dev/null +++ b/doc/de/guitartex/x883.html @@ -0,0 +1,112 @@ + + + + + Links + + + + + + + + + + +
+

Links

+ +
+

LaTeX

+ + +
+ +
+

Perl

+ + +
+ +
+

Guitar Sites

+ + +
+
+ + + + + diff --git a/doc/de/info.xml b/doc/de/info.xml new file mode 100644 index 0000000..972bca9 --- /dev/null +++ b/doc/de/info.xml @@ -0,0 +1,54 @@ + + + Joachim + Miltz + + January 2002 + Version 2.8 + + 2000-2002 + Joachim Miltz + + + + This program is free software; you can redistribute it and/or modify it + under + the terms of the GNU General Public License as published by the Free + Software + Foundation; either version 2 of the License, or (at your option) any later + version. + + + This program is distributed in the hope that it will be useful, but + WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + details. + + + You should have received a copy of the GNU General Public License along + with + this program; if not, write to the Free Software Foundation, Inc., 675 + Mass + Ave, Cambridge, MA 02139, USA. + + + + + + GuitarTeX ist ein Werkzeug für Gitarristen, die gut aussehende Ausdrucke ihrer + Musikstücke oder Liederbücher aus ihren Chord- oder Chordpro-Dateien anfertigen wollen. + Es benutzt das weit verbreitete Chord Format mit einigen Erweiterungen. + Das Programm wurde unter Linux entwickelt, sollte aber auch auf anderen Unix- + systemen mit Perl/TK-Umgebung laufen. + Die Anleitung zur Installation finden Sie in , + die Systemvoraussetzungen in . + + +&sflogo; + + + + + diff --git a/doc/de/installation.xml b/doc/de/installation.xml new file mode 100755 index 0000000..b6337c0 --- /dev/null +++ b/doc/de/installation.xml @@ -0,0 +1,120 @@ + + Installation + + + Woher bekomme ich GuitarTeX? + + Die aktuelle Version bekommen Sie immer auf der Download-Seite + des GuitarTeX-Projektes: + . + + + + + Systemanforderungen + + GuitarTeX wurde unter Linux entwickelt. + Es sollte mit allen Linux-Distributionen und auch auf Unix-Systemen laufen. + Zusätzlich werden benötigt: + + +LaTeX +Perl +Perl/TK + + +Um PDF-Dateien auszugeben muss die LaTeX-Installation das Programm +pdflatex +enthalten. + + + + + + Installation + Um GuitarTeX zu installieren gehen Sie wie folgt vor: + + stellen Sie sicher, dass LaTeX, Perl und Perl/TK installiert sind + (siehe ) + entpacken Sie das GuitarTeX-Archiv (z.B. in Ihrem home-Verzeichnis) + wechseln Sie in das Verzeichnis guitartex-x.x + führen Sie folgende Kommandos aus: + + make conf (als normaler Benutzer!, damit wird eine vorhandene Konfigurationsdatei überschrieben!) + make install (als Benutzer root) + + + + + Sie können das Verzeichnis guitartex-x.x nun löschen + + + "make conf" kopiert die Konfigurationsdatei nach ~/.guitartexrc. + Sie können GuitarTeX durch Änderung der darin enthaltenen Parameter anpassen. + + + + + Konfigurationsdatei + + GuitarTeX benötigt eine Konfigurationsdatei namens .guitartexrc in Ihrem + home-Verzeichnis. Parameter werden in Perl-Syntax gesetzt, zum Beispiel: + $language = "de"; + + + + Konfigurationsparameter + + + + Parameter + Bedeutung + + + + language + wählen Sie Ihre bevorzugte Sprache + tool_tips + schalten Sie die Hilfen für Schaltflächen ein oder aus + highlight + Syntax-Highlighting ein- oder ausschalten + highlight_directive_foreground + Vordergrundfarbe für Direktiven + highlight_directive_background + Hintergrundfarbe für Direktiven + highlight_chord_foreground + Vordergrundfarbe für Akkorde + highlight_chord_background + Hintergrundfarbe für Akkorde + highlight_comment_foreground + Vordergrundfarbe für Kommentare + highlight_comment_background + Hintergrundfarbe für Kommentare + font_size + Schriftgröße + color_chorus + Druckfarbe für refrain + color_bridge + Druckfarbe für Bridge + color_instr + Druckfarbe für Instrumental-Teil + color_tab + Druckfarbe für ASCII-Tabulaturen + color_second + Druckfarbe für zweite Stimme (Vordergrund) + color_second_back + Druckfarbe für zweite Stimme (Hintergrund) + text_viewer + Anzeigeprogramm für TeX-Dateien + ps_viewer + Anzeigeprogramm für Postscript-Dateien + pdf_viewer + Anzeigeprogramm für PDF-Dateien + + +
+ +
+ &sflogo; + +
diff --git a/doc/de/introduction.xml b/doc/de/introduction.xml new file mode 100644 index 0000000..5b306b8 --- /dev/null +++ b/doc/de/introduction.xml @@ -0,0 +1,88 @@ + + Einführung + + + GuitarTeX ist ein Werkzeug für Gitarristen, die gut aussehende Ausdrucke ihrer + Musikstücke oder Liederbücher aus ihren Chord- oder Chordpro-Dateien anfertigen wollen. + Es benutzt das weit verbreitete Chord Format mit einigen Erweiterungen. + + + Es basiert auf einer Idee von Martin Leclerc und Mario Dorion aus Kanada + und ihrem Programm Chord (Version 3.5 von 1993). Um GuitarTeX zu nutzen, + benötigen Sie Kenntnisse des Programmes Chord (wird später erklärt). + Obwohl das Satzsystem LaTeX von GuitarTeX genutzt wird, müssen sie wenig (oder nichts) + über LaTeX wissen. GuitarTeX produziert Postscript- oder PDF-Dateien automatisch, + wenn Sie das möchten. Die von GuitarTeX unterstützten Direktiven des Programms Chord + werden in erläutert. + + + + +Eigenschaften +Grafische Benutzeroberfläche mit integriertem Editor und Syntax-Highlighting +Druckt gut aussehende Liedblätter mit Akkorden unter Benutzung von Proportionalschriften +Ausgabeformate LaTeX, Postscript und PDF +Kompatibel mit ChordPro-Format, Import von ASCII-Dateien +Notensatz mit den LaTeX-Packeten MusixTeX, MusixLyr und TabDefs +Flexibles Seitenlayout (Größe, Ränder...) +Benutzerdefinierte Farben für Refrain, Bridge ... +Optionale Ausgabe von Akkordsymbolen am Ende eines Stückes +Transponieren per Mausklick +Erstellung von einzelnen Liedblättern oder ganzen Liederbüchern +mit Inhaltsverzeichnis, Kopfzeilen, Seitennummerierung,und Index +ASCII-Tabulaturen und eingebaute Funktionen für Gitarrten- und Bass-Tabulaturen +Unterstützung für mehrere Sprachen +Liederbücher können mit Hilfe der Direktive include aus einer Sammlung +von Chord-Dateien erstellt werden +LaTeX-Kommandos können in Chord-Dateien verwendet werden (für Profis) + + + + GuitarTeX konvertiert eine Datei mit Text und Akkorden im Chord-Format + in eine LaTeX-Datei. Ein Beispiel für eine Chord-Datei: + + + {title:The Manual Song} +{st:No-one has yet claimed responsibility} +[D]I print verses [A^7]in a [D]row, +The next line gets put [A^7]down be[D]low, +Mumble mumble [A^7]rhymes with [D]grow [G] [G#] [A] +Done this verse, now [A^7susX]on we [quietly]go! + +{soc} +[D]This is the [Bm]manual song +[A^7]No-one really knows what's [D]goin' on +[D]This is the [F#m]manual song +[A^7]And now the chorus is already [D]gone +{eoc} + +[D]The second verse is [A^7]like the [D]first, +The music poor, the [A^7]verse is [D]worse, +I wrote this since [A^7]I'd get [D]sued, +If I used real songs. [A^7]This'll [D]do. + +{c:repeat chorus} + + + Das ^-Zeichen ist neu für Benutzer anderer Chord-Programme. + Die nachfolgenden Zeichen werden hochgestellt. Sie sehen die Ausgabe in + . + + +
+ Druckausgabe der Beispieldatei + + + +
+ + + Wenn Sie sich mit LaTeX auskennen, können Sie die Ausgabedatei auch manuell + verändern, bevor Sie sie in Postscript oder PDF umwandeln. Der Vorteil ist, + dass Sie alle Möglichkeiten von LaTeX einschließlich der vielen Zusatzpackete + wie graphics oder MusicTeX einsetzen können + + + &sflogo; + +
diff --git a/doc/de/latex.xml b/doc/de/latex.xml new file mode 100755 index 0000000..48b46a3 --- /dev/null +++ b/doc/de/latex.xml @@ -0,0 +1,229 @@ + + LaTeX Kommandos und Packete verwenden + +
+ LaTeX Kommandos + + Wie in der Einführung erwähnt, brauchen Sie nichts über LaTeX zu wissen, um + GuitarTeX zu nutzen. + Wenn Sie sich mit LaTeX auskennen, können Sie dessen Möglichkeiten nutzen, um Ihre + Ergebnisse weiter zu verbessern. Alle Zeilen, die mit einem Backslash beginnen, + werden in die erzeute LaTeX-Datei übernommen. Sie können das einfach mit einem Kommando + wie diesem testen: + + + + LaTeX Kommando in Chord-Datei + \marginpar{test} + + + Das Ergebnis ist eine Randbemerkung mit dem Wort "test". + + + Die LaTeX Kommandos werden an der Stelle ausgeführt, an der sie in der Datei vorkommen. + Manche Kommandos müssen allerdings in der sog. Präambel der LaTeX-Datei + erscheinen. Das geschieht mit der Direktive preamble: + + + + LaTeX Kommando für die Präambel + {preamble:\usepackage(fancyheadings)} + + + + Die Direktive preamble kann irgendwo im Dokument stehen. + Die enthaltenen Kommandos erscheinen in der LaTeX-Präambel in der Reihenfolge, + in der sie in der Chord-Datei stehen. + +
+
+ LaTeX-Packete MusixTeX, MusixLyr und TabDefs + MusixTeX ist ein mächtiges LaTeX-Packet für Notensatz. MusixLyr + und TabDefs sind Ergänzungen zu MusixTeX für noch bessere Darstellung von + Text und Tabulaturen. Sie können diese Packete GuitarTeX direkt verwenden, indem Sie + eine (oder mehrere) dieser Direktiven irgendwo in Ihre Chord-Datei schreiben: + + + +{musixtex} +{musixlyr} +{tabdefs} + + + +Sie müssen die Packete korrekt installiert haben, um sie zu benutzen. +Bitte lesen Sie die Dokumentation zu den Packeten. + + + +Sie können nun LaTeX-Kommandos aus den Packeten MusixTeX, MusixLyr oder TabDefs +an jeder Stelle in der Datei verwenden oder mit include einbinden +(Beispiele siehe ). + + + + + +Übribens: beachten Sie den ersten Satz aus dem MusixTeX-Handbuch: + + + +"Wenn Sie sich mit LaTeX nicht wirklich auskennen schlage ich vor, ein anderes +Programm für den Notensatz zu verwenden. MusixTeX zu installieren und zu +beherrschen ist ein Sch...-Job, der viel Zeit und Plattenplatz verbraucht. +Aber wenn Sie es geschafft haben..." + + +Bitte haben Sie Verständnis, dass der Autor von GuitarTeX keinen Support für +die Installation oder die Anwendung von MusixTeX, MusixLyr oder TabDefs geben kann. + + +
+ Beispiele + + +MusixTeX + + + + + + + + +MusixTeX + + + + + +{musixtex} + +{soc} +[D]This is the [Bm]manual song +[A^7]No-one really knows what's [D]goin' on +[D]This is the [F#m]manual song +[A^7]And now the chorus is already [D]gone +{eoc} + +\hsize=100mm +\generalmeter{\meterfrac24}% +\parindent 0pt +\setsign1{-3} +\startpiece\bigaccid +\NOtes\qu{ce}\enotes +\bar +\NOtes\qu{gh}\enotes +\bar +\NOtes\qu{=b}\enotes +\Notes\ds\cu g\enotes +\bar +\NOtes\qu{^f=f}\enotes +\NOtes\qu{=e}\itied0e\qu{_e}\enotes +\bar +\Notes\ttie0\Qqbu ed{_d}c\enotes +\bar +\Notes\ibu0b{-2}\qb0{=b}\enotes +\notes\nbbu0\qb0{=a}\tqh0N\enotes +\Notes\Dqbu cf\enotes +\NOtes\uptext{\it tr}\qu e\uptext{\it tr}\qu d\enotes +\bar +\NOtes\qu c\qp\enotes +\setdoubleBAR +\stoppiece +\bigskip + +[D]The second verse is [A^7]like the [D]first, +The music poor, the [A^7]verse is [D]worse, +I wrote this since [A^7]I'd get [D]sued, +If I used real songs. [A^7]This'll [D]do. + + + + +Tempo-Angabe + + + + + + + + +Metronomic indication + + + + + +{musixtex} +{title:The Manual Song} +{st:No-one has yet claimed responsibility} + +\notes\metron{\qu}{60}\en + +[D]I print verses [A^7]in a [D]row, +The next line gets put [A^7]down be[D]low, +Mumble mumble [A^7]rhymes with [D]grow [G] [G#] [A] +Done this verse, now [A^7susX]on we [quietly]go! + + + +Verbesserter Satz von Text mit MusixLyr + + + + + + + + +MusixLyr example + + + + + +{musixtex} +{musixlyr} + +{soc} +[D]This is the [Bm]manual song +[A^7]No-one really knows what's [D]goin' on +[D]This is the [F#m]manual song +[A^7]And now the chorus is already [D]gone +{eoc} + +\par{ +\hsize=120mm +\setlyrstrut +\resetlyrics +\setlyrics{Winter1}{Win-ter a-de\rlap{,} a-ber dein Schei-den macht\rlap{,}} +\setlyrics{Winter2}{schei-den tut weh\rlap,} +\assignlyrics1{Winter1,Winter2} +\generalmeter{\meterfrac34} +\generalsignature2 +\setsongraise1{-2mm} +\startpiece +\NOtes\qa{ffe}\en\bar +\NOTesp\hup d\en\rightrepeat +\assignlyrics1{Winter1}% +\NOtes\qa{fgh}\en\bar +\NOtes\qa h\en +\Notes\beginmel\Ibu0gf1\qb0g\endmel\tqh0f\en +\NOtes\qa g\en +\endpiece +} + +[D]The second verse is [A^7]like the [D]first, +The music poor, the [A^7]verse is [D]worse, +I wrote this since [A^7]I'd get [D]sued, +If I used real songs. [A^7]This'll [D]do. + + +
+ +
+ &sflogo; + +
diff --git a/doc/de/links.xml b/doc/de/links.xml new file mode 100644 index 0000000..a61d0a6 --- /dev/null +++ b/doc/de/links.xml @@ -0,0 +1,51 @@ + + Links + +
+ Kontakte + + Um mit dem Autor und anderen Benutzern Kontakt aufzunehmen, verwenden Sie + bitte die Mailingliste: + +
+ +
+ Links +
+ LaTeX + + + CTAN: Comprehensive TeX Archive Network + + + +
+ +
+ Perl + + + CPAN: Comprehensive Perl Archive Network: + + + +
+ +
+ Guitar Sites + + + Top 100 Guitar Sites! + + + + Chordpack (ein weiteres auf LaTeX basierendes Programm für Gitarristen) + + + +
+ +
+ &sflogo; + +
diff --git a/doc/de/sflogo.xml b/doc/de/sflogo.xml new file mode 100644 index 0000000..6d8c5f4 --- /dev/null +++ b/doc/de/sflogo.xml @@ -0,0 +1,13 @@ + +hosted by +Sourceforge.net + + + + + +SourceForge Logo + + + + diff --git a/doc/en/Makefile b/doc/en/Makefile new file mode 100644 index 0000000..765fe17 --- /dev/null +++ b/doc/en/Makefile @@ -0,0 +1,2 @@ +html: + db2html guitartex.xml diff --git a/doc/en/acknowledgements.xml b/doc/en/acknowledgements.xml new file mode 100644 index 0000000..5bf4e9a --- /dev/null +++ b/doc/en/acknowledgements.xml @@ -0,0 +1,88 @@ + + Acknowledgements + + + Thanks to ... + + + Lucio F. Albenga + from Spain for his translation to the Spanish language + + + + + David Cuny + from Canada for his help on the first + version of this document + + + + Brian Ewins + from Scottland for his Program PStab and the Manual + Song + + + + Bernhard Gröne + from Germany for sending me his songbook creating scripts + + + + + Christoph Lange + from Germany for adding FindBin support + + + + + Gary Lawrence Murphy + from Canada for his tips and testing on several + versions + + + + Pawel Pastula + from Poland for his translation to the Polish language + + + + + + Kasper Peeters + from United Kingdom for allowing me to use the gchords package to display + chord symbols in LaTeX + + + + + Marcelo Pereira + from Brazil for his translation to the Brazilian language + + + + + Daniele Pighin + from Italy for many suggestions and his translation to the + Italian language + + + + Dan Polansky + from the Czech Republic for his program Chord + Pack + + + + the people from Sourceforge.net and Freshmeat.net + for their great open source servers + + + + all people from the open source community + who made Linux, KDE, LaTeX, MusixTeX,Perl and many other programs + I used to create GuitarTeX + + + &sflogo; + + diff --git a/doc/en/directives.xml b/doc/en/directives.xml new file mode 100755 index 0000000..5c6b1fb --- /dev/null +++ b/doc/en/directives.xml @@ -0,0 +1,876 @@ + + Supplied Chord directives + + Directives are Chord's commands between curly brackets {}, which control + the design of the produced output. Some often used directives can be + replaced + by a short cut (see examples). GuitarTeX provides some new directives + not known by the original Chord program. + + +
+ Special Characters + + + In GuitarTeX some characters have a special meaning: + + + + # at the beginning of a line marks the line as a comment. + The line is ignored by GuitarTeX + / may only be used to write slash + chords (e.g. A/E) + +
+ +
+ Page Layout + + The geometry directive provides an easy and flexible interface to + customize + page layout. It uses the LaTeX geometry package and it's description here + is a + (modified) part of the geometry package documentation. + + + The geometry directive implements auto-centering and auto-balancing + mechanisms + so that the users have only to give the least description for the page + layout. + In this case, what you have to do is just + + + {geometry:a4paper} + + + In addition to this centering problem, setting margins from each edge of + the + paper is also troublesome. However, with geometry package, you can do + + + {geometry:margin=1.5in} + + + if you want to set each margin 1.5in from each edge of the paper. + + + Lengths can be written in + + + + Centimeters (cm) + Millimeters (mm) + Inches (in) + Points (pt) + + +
+ Layout Dimensions + + + To realize a straightforward setting for page layout, the following page + structure is introduced: A paper contains a total body (printable area) + and + margins. The total body consists of a body (text area), a header, a + footer and a + marginal note which is optional. There are four margins: left-, right-, + top- and + bottom-margin. + + + paper: total-body (printable area) and margins +total-body: head, body(text area), foot and marginal notes +margins: left-, right-, top- and bottom-margin + + + Each margin is measured from the corresponding edge of a paper. For + example, + left-margin means a horizontal distance between the left edge of the + paper and + that of the total body. The dimensions for paper, totalbody and + margins have the following relations. + + + paperwidth = left + width + right +paperheight = top + height + bottom +
+ +
+ Option List + + + Options for <command>geometry</command> directive + + + + landscape + switches the paper orientation to landscape mode + + + portrait + switches the paper orientation to portrait mode + + + twoside + switches on two-sided printing. In this mode, specified + left + and right margins are switched over in each odd-numbered + page. + + + reversemp + makes the marginal notes appear in the left margin + + + nohead + eliminates spaces for the head of page + + + nofoot + eliminates spaces for the foot of page + + + noheadfoot + eliminates spaces for the head and foot of page + + + a4paper, a5paper,letterpaper, legalpaper + specifies paper name. They must be used with no + values. + + + paperwidth + width of the paper. paperwidth=<paperwidth> + + + paperheight + height of the paper. + paperheight=<paperheight> + + + width + width of the total body. width=<width>or + totalwidth=<width>. + This dimension should not be confused with textwidth, because + width includes + the width of marginal notes + + + height + height of the total body (including header and footer). + height=<height> + + + left + left margin of the total body. In other words, the distance + between the + left edge of the paper and that of the total + body.left=<leftmargin> + + + right + right margin of the total body. + right=<rightmargin> + + + top + top margin of the total body. top=<topmargin> + + + bottom + bottom margin of the total body. + bottom=<bottommargin> + + + margin + sets all margins of the total body. + margin=<margin> + + + textwidth + modifies width of text (body). + textwidth=<width> + + + textheight + modifies height of text (body). + textheight=<height> + + + marginpar + modifies width of the marginal notes. + marginpar=<length> + + + marginparsep + modifies separation between body and marginal notes. + marginparsep=<length> + + + head + modifies height of header. head=<length> + + + headsep + modifies separation between header and text (body). + headsep=<length> + + + foot + modifies distance separation between baseline of last line + of text and baseline of footer. foot=<length> + + + +
+
+ +
+ Examples + + + Set the height of the total body to be 10in, the bottom-margin 2cm, + and the width default. The top-margin will be calculated automatically: + + + {geometry:height=10in,bottom=2cm} + + or + + {g:height=10in,bottom=2cm} + + or + + {geometry:height=10in} +{g:bottom:=2cm} + + + Set the left-, right-, and top-margin 3cm, 2cm and 2.5in respectively. + The page header is not used. + + + {geometry:left=3cm,right=2cm, nohead, + top=2.5in} + + or + + {geometry:left=3cm} +{geometry:right=2cm} +{geometry:nohead} +{geometry:top=2.5in} + + or + + {g:left=3cm,right=2cm} +{g:nohead, top=2.5in} + + and so on ... + + + Modify the width of marginal notes to 3cm and include marginal + notes when adjusting horizontal partition + + + {geometry:marginpar=3cm} + + {geometry:marginpar=3cm, reversemp} + + makes the marginal notes appear in the left margin. + + Use A5 paper in landscape mode. + + {geometry:a5paper, landscape} + +
+
+ +
+ Document Structure + +
+ title + + The title of a piece of music is marked by the directive + title. + The title is printed centered with a larger font. In documents with more + than + one piece, title causes a page break. + + + + Directive <command>title</command> + {title:Go Down Moses} +{t:Go Down Moses} + +
+ +
+ subtitle + + The directive subtitle supplies additional + information, such as the name of the band or the composer. + + + + Directive <command>subtitle</command> + {subtitle:written by John Lennon / Paul McCartney} +{st:written by John Lennon / Paul McCartney} + +
+ +
+ sob, eob + + The bridge is marked with sob (start of bridge) at + the beginning, + and eob (end of bridge) at the end. The bridge is + output + in blue if you use a color printer. The color can be changed by the + color_bridge directive. + + + + Directive <command>sob</command>, <command>eob</command> + (from Here, There And Everywhere, Beatles): + {sob} +I want her [Ab]everywhere [Fm] +And if [Bbm]she's beside me [C^7]I know I need [Fm]never care +[Bb]But to love her [C^7]is to meet her +{eob} + +
+ +
+ soc, eoc + + The chorus is marked with soc (start of chorus) at + the beginning, + and eoc (end of chorus) the end. The chorus is output + in + red if you use a color printer. The color can be changed by the + color_chorus + directive (see ). + + + + Directive <command>soc</command>, <command>eoc</command> + (from With A Litle Help From My Friends, Beatles): + {soc} +Oh, I get [C]by with a little [G]help from my [D]friends +Mm, I get [C]high with a little [G]help from my [D]friends +Oh, I'm gonna [C]try with a little [G]help from my [D]friends +{eoc} + +
+ +
+ soi, eoi + + An instrumental part is marked with soi (start of + instrumental) + at the beginning, and eoi (end of instrumental) the + end. + The instrumental part is output in grey if you use a color printer. The + color + can be changed by the color_instr directive. + +
+ +
+ np + np stands for new page and creates a page + break. + + + Directive <command>np</command> + {np} + +
+ +
+ sot, eot + + Tablature is marked with sot (start of tablature) at + the + beginning, and eot (end of tablature) the end. + Tablature + output in green if you use a color printer. The color can be changed by + the + color_tab directive (see ). + The tablature is output in a non-proportional font. + + + + Directive <command>sot</command>, <command>eot</command> + (from Pretty Woman, Roy Orbison): + {sot} +E ---------------------|------------------------------------ +B ---------------------|------------------------------------ +G ---------------------|------------------------------------ +D -----------------0---|-------------------0---4---2---0---- +A -------------2-------|---------------2-------------------- +E -0---0---4-----------|---0---0---4------------------------ +{eot} + + + + If you don't like ascii tablatures and you look for a way to create + tablatures + more easily, see . + +
+ +
+ +
+ Fonts + + + The font and color directives can be placed anywhere in the Chord file, + though + it is usefull to place them at the beginning :-). The specified values are + valid + for the whole document! + + +
+ font_size + + LaTeX allows the three font sizes 10pt, 11pt and 12pt. GuitarTeX sets + the default value to 11pt (titles and subtitles are enlarged + automatically). If + you want a font size of 12pt you should write: + + + + Directive <command>font_size</command> + {font_size:12} + + + Note: do not write 12pt instead of 12! +
+ +
+ color_xxx + + The color directives allow to change the text color of the chorus, + bridge, + instrumental parts, tablatures and a second voice. For the second voice + even the + background color may be specified. So you can write white letters on a + colored + background for example. This will help the singers not getting confused + by many + lyrics lines :-) + + + The directives are named + + + color_chorus + color_bridge + color_instr + color_tab + color_second + color_second_back + + + + The parameters must be a comma separated list of three numbers between 0 + and + 1, giving the red, green and blue components of the color. + + + + Directive <command>color_chorus</command> (coloring the chorus + light blue): + {color_chorus:.5,.5,1} + +
+
+ +
+ Creating a Songbook + + The document_class and book_... directives can be placed anywhere in the + Chord file, though it is usefull to place them at the beginning :-). + + +
+ document_class + + + The document_class directive specifies the type of document you get. + There are two possible values: + + + + book + article (default if not specified) + + + + Directive <command>document_class</command> + {document_class:book} + + + The value book produces + + + a title page + a table of contents + headlines with page numbers + an index + +
+ +
+ book_title, book_author, book_date + + These three directives describe the content of the title + page. + + + + Directive <command>book_title</command>, + <command>book_author</command>, <command>book_date</command> + + {book_title:My Favourite Songs} +{book_author:My Name} +{book_date:September 2000} + + + + The value given in the book_title directive appears + in the headlines on even pages. + +
+ +
+ chapter + + + If the document_class is book, you can section + the document with the chapter directive. A chapter title page is + inserted at the occurance of the directive. + + + + Directive <command>chapter</command> + {chapter:Beatles} + + + + The chapter name appears in the table of contents and also + in the headlines on odd pages. + +
+ +
+ include + + If you have a collection of chord files you may want to create a + songbook (or + even several different songbooks) without merging all songs to one + single file. + Merging all files has some disadvantages, e.g. transposing one single + song is + no longer possible. With the include directive you may leave all files + as they + are. Just create a songbook file and include the files you want. + + + + Directive <command>include</command> + {document_class:book} +{book_title:} +{chapter:Name of chapter 1} +{include:song file 1} +{include:song file 2} +{chapter:Name of chapter 2} +{include:song file 3} +{include:song file 4} + + + In the example four song files are merged to a songbook with two + chapters. + +
+ +
+ even + + + The directive even makes the piece begin on the next + left + page. In a book this is useful for preventing a page turn in an two-page + piece. + The directive must be placed before the title directive in order to work + correctly. + + + + Directive <command>even</command> + {even} +{title:Proud Mary} +{st:Creedence Clearwater Revival 1972} + +
+
+ +
+ Guitar and Bass Tablatures + + GuitarTeX knows two new directives for printing tablature + lines: + + + {guitartab: } for guitar tablatures + {basstab: } for bass tablatures + + + + Every guitartab or basstab directive represents one line of tablature. + You can even create empty tablatures by typing {guitartab: } or {basstab: + }. + Leave an empty line before the tab directive to make it start at the left + margin. + + + Between the brackets you can type + + + normal text (e.g. lyrics): it is printed under the + tablature + notes in the format [string;fret], e.g. [2;5] means fifth + fret on the A string + bars (by typing the | character) + extra space between notes with the "_" + character + + +
+ Tablature icons + +
+ + + Instead of typing the lines by yourself, you can use the tablature icons + (see ). + Clicking on the Guitar or Bass button inserts the directive at the cursor + position. + To insert a note, type the fret number into the input field and then ckick + on a button to choose a string. The note will be inserted at the cursor + position. + After this the focus comes back to the input field (not to the main text + field) + so you can enter several notes by always typing the fret number and + clicking + the string button. + +
+ +Examples + + +Empty guitar tablature +{guitartab:} + + + + + + +Tablature example + + + + + + +A bass tab with some text +{basstab:some text} + + + + + + +Tablature example + + + + + + + + + + + + + + +Typesetting notes, bars and extra spaces +{guitartab:[2;3][3;0][3;2][3;3]|[4;0]__[4;2]__[5;0]__[5;1]|} + + + + + + +Tablature example + + + + + + +Putting text under the notes +{guitartab:[2;3]do [3;0]re [3;2]mi [3;3]fa |[4;0]so [4;2]la [5;0]si [5;1]do|} + + + + + + +Tablature example + + + + + + +A simple bass tab +{basstab:[2;5][2;5]|[2;5][2;5]|[3;5][3;5]|[2;5][2;5]|[3;7][3;7]|[3;5][3;5]|[2;5]} + + + + + + +Tablature example + + + + + + +Chords +{guitartab:[2;3]&[3;5]&[4;5]C (power chord) |[2;3]&[3;2]&[4;0]&[5;1]C chord} + + + + + + +Tablature example + + + + + + +
+ +
+ +
+ Others + +
+ define + + With the define directive you can force GuitarTeX to print a chord + symbol at the + end of a song. The directive can be placed anywhere in the song. + + + The define directive has eight parameters: + + + the chord name + the base fret + six fret values (an x means that the string isn't + played) + + + + + Directive <command>define</command> + {define:A 1 x 0 2 2 2 0} +{define:Cm 3 x 1 3 3 2 1} +{define:Gm/Bb 4 3 2 2 1 x x} + + + The result looks like . + +
+ Chord example + +
+ +
+ +
+ comment + The comment directive adds a text that isn't part of the + lyrics. + + + Directive <command>comment</command> + {comment: repeat chorus} +{c: repeat chorus} + +
+ +
+ margin + + The margin directive creates a marginal note. You can use it to place + small + hints for the musician. + + + + Directive <command>margin</command> + {margin:Fade Out} +{m:Fade Out} + +
+ +
+ second + + In some pieces you find a second voice that not only has a + counter-melody, but + also different lyrics than the first voice. Well known examples are + "California Dreaming" from The Mamas And The Papas and + "Help" from the Beatles. If you mark the second voice with the + directive "second", it will appear white on gray background, + distinguishing it from the melody. Because of the use of proportional + fonts, you + may have to experiment a bit with the amount of spaces before the text + is + placed correctly. + + + + Directive <command>second</command> (from Help!, The + Beatles) + [G] When I was younger so much [Hm]younger than today +{second:When when I was young} +[Em] I never needed anybody's [C]help in [F]any [G]way +{second:I never need help in any way} +[G]But now these days are gone and I'm [Bm]not so self assured +{second:Now these days are gone} +[Em] Now I find I've changed my mind, +{second:And now I find} +I've [C]opened [F]up the [G]doors +{second:I've opened up the doors} + +
+
+ &sflogo; + +
diff --git a/doc/en/editor.xml b/doc/en/editor.xml new file mode 100644 index 0000000..fc6930c --- /dev/null +++ b/doc/en/editor.xml @@ -0,0 +1,244 @@ + + Using the GuitarTeX editor + + + Starting + + To start the GuitarTeX editor just open a shell type the command + guitartex + + + + + Menus + + You can tear off any menu by clicking on the first entry (-----). This is + may be usefull for the directives or the transpose menu as you don't + allways have to invoke the menu to use the provided commands. + + + + File Menu + + New, Open, Save, Save as, Quit + + The menu commands New, Open, Save, Save as and Quit behave like you + know from + other GUI-based applications. Therefor no further description is + needed. Instead + of using the menu you may click on one of the icons + + + + + Export > LaTeX , Export > Postscript, Export > PDF + + The opened file will be saved and then converted to LaTeX , postscript + or PDF + format. The name of the resulting file is the original file name with + its + suffix changed to .tex, .ps or .pdf. Instead of using the menu you may + click on + one of the icons (see ). + +
+ Icons to create LaTeX, postscript or PDF output + + + +
+ +
+ + After creating the exported file, a viewer is opened to show the + result. + You may use your favourite viewer by changing the parameters + $text_viewer, $ps_viewer + or $pdf_viewer in the configuration file + (see ). + +
+
+ + + Edit Menu + + Cut, Copy, Paste + + If you want to cut, copy and paste parts of your text within your + document, + use the shortcuts ctrl-x (cut), ctrl-c (copy) and ctrl-v (paste). + + + + + Insert File + + After invoking the Insert File command, a file selector will pop up. + The choosen + file will be inserted at the current cursor position. + + + + + crd -> chopro + + You will often find song files in raw ascii format instead of Chord + format. + The lines look like this: + + + D A7 D +I print verses in a row, + A7 D +The next line gets put down below, + A7 D G G# A +Mumble mumble rhymes with grow + A7susx +Done this verse, now we go! + + + Place the cursor into the first line (the one with the chords) and + call the + crd->chopro command via menu or press the F9 key. The chord line and + the + following lyric line are converted into one line with Chord format. + The cursor + is placed in the next line. You only have to call the command (or + press the + F9 key) once again to continue converting the document. + + + + + + Directives Menu + + With this menu you can insert directives. The directives are explained + in + . + + + + + Songbook Menu + + Insert all available songbook directives instead of typing them in. The + songbook + directives are explained in the . + + + + + Colors Menu + + From this menu you can insert all available color directives. A color + selector + is opened (see figure ). + + +
+ Color selector + +
+ + + You have three alternatives to select your favourite color: + + + + doubleclick on a predefined color in the list on the + left side of the color selector + move the sliders in the middle of the color selector + (you may like to choose RGB color space instead of HSB color space before + this) + input RGB value into the input field called Name, not + really a good idea :-) + + + + The color directives may also be typed in manually. + They are explained in . + +
+ + + Transpose Menu + + Up, Down + + + The Up/Down command will transpose the whole song by one halftone up + or down. + You may use the F5 and F6 keys instead of the menu. In slash chords + (e.g. G/B) + both the chord name and the bass note (behind the slash) are + transposed. Slashes + may only be used to write slash chords + (see ). + + + + + b->#, #->b + + After transposing a song, the program doesn't know whether chords + should be + converted to flat or sharp notes. So all chords are written with + sharps if + necessary, e.g. C#. You can change them to flat, e.g. Db, and vice + versa + by using these commands. You may use the F7 and F8 keys instead of the + menu. + + + + + B->H, H->B + + In german notation the note B is written as H. With these commands you + can + change B to H and vice versa. + + + +
+ + + Chord Icons +
+ Chord icons + +
+ + + By clicking on one of the chord icons (see ) + the chosen chord is inserted at the + current cursor position. After this you may edit the chord manually to + modify it + e.g. to a minor chord. + +
+ + + Syntax Highlighting +
+ Syntax Highlighting Icon + +
+ + + Since version 2.6 GuitarTeX provides syntax highlighting for directives, + comments and chords. + You can configure the foreground and background colors in the + configuration file. + If you insert directives or chords with the menus and icons, highlighting + is done automatically. + After typing directives or chords manually just click on the syntax + highlighting icon + (see ). + +
+ &sflogo; + +
diff --git a/doc/en/examples.xml b/doc/en/examples.xml new file mode 100755 index 0000000..d1cc5dc --- /dev/null +++ b/doc/en/examples.xml @@ -0,0 +1,142 @@ + + Screenshots and examples + +
+Main window +
+ Main window + +
+ +
+ + +
+Song sheets + + +Single song sheet + + + + + + + + +Single song sheet + + + + + + + +Song sheet as part of a songbook + + + + + + + + +Songbook page + + + + + + +
+ +
+Chord table + +The following chord table is a part of the author's personal songbook. It was +created by the code below. + +Chord table + + + + + + + + +Chord table + + + + + + +{title:D} +{define:D 1 x x 0 2 3 2} +{define:D+ 1 x x 0 3 3 2} +{define:D4 1 x x 0 2 3 3} +{define:D6 1 x 0 0 2 0 2} +{define:D7 1 x x 0 2 1 2} +{define:D7#9 4 x 2 1 2 3 3} +{define:D7(#9) 4 x 2 1 2 3 3} +{define:D9 0 1 3 1 2 1 3} +{define:D11 1 3 0 0 2 1 0} +{define:Dsus 1 x x 0 2 3 3} +{define:Dsus2 1 0 0 0 2 3 0} +{define:Dsus4 1 x x 0 2 3 3} +{define:D7sus2 1 x 0 0 2 1 0} +{define:D7sus4 1 x 0 0 2 1 3} +{define:Dmaj 1 x x 0 2 3 2} +{define:Dmaj7 1 x x 0 2 2 2} +{define:Ddim 1 x x 0 1 0 1} +{define:Dm 1 x x 0 2 3 1} +{define:Dmin 1 x x 0 2 3 1} +{define:D/A 1 x 0 0 2 3 2} +{define:D/B 1 x 2 0 2 3 2} +{define:D/C 1 x 3 0 2 3 2} +{define:D/C# 1 x 4 0 2 3 2} +{define:D/E 7 x 1 1 1 1 x} +{define:D/G 1 3 x 0 2 3 2} +{define:D5/E 7 0 1 1 1 x x} +{define:Dadd9 1 0 0 0 2 3 2} +{define:D(add9) 1 0 0 0 2 3 2} +{define:D9add6 0 1 3 3 2 0 0} +{define:D9(add6)0 1 3 3 2 0 0} + +{define:Dm6(5b) 1 x x 0 1 0 1} +{define:Dm7 1 x x 0 2 1 1} +{define:Dm#5 1 x x 0 3 3 2} +{define:Dm(#5) 1 x x 0 3 3 2} +{define:Dm#7 1 x x 0 2 2 1} +{define:Dm(#7) 1 x x 0 2 2 1} +{define:Dm/A 1 x 0 0 2 3 1} +{define:Dm/B 1 x 2 0 2 3 1} +{define:Dm/C 1 x 3 0 2 3 1} +{define:Dm(F) 1 x x 3 2 3 1} +{define:Dm/C# 1 x 4 0 2 3 1} +{define:Dm9 1 x x 3 2 1 0} + + +
+ +
+Indexpage + + + + + + + + +Index Page + + + + + +
+ &sflogo; + +
diff --git a/doc/en/gtx2tex.xml b/doc/en/gtx2tex.xml new file mode 100644 index 0000000..92a08d7 --- /dev/null +++ b/doc/en/gtx2tex.xml @@ -0,0 +1,58 @@ + + Using the text filter gtx2tex + + +If you don't want to use the GuitarTeX editor or you prefer +to create the postscript or PDF output on a command line you may use +gtx2tex + + + + + +gtx2tex + + + +gtx2tex +converting chord files into TeX, postscript or PDF +format + + + +gtx2tex [--verbose] [--lyrics] [--output=ps|pdf] [--italian] <file> + + + +Options + + + + verbose + lets gtx2tex tell you what it is doing + + + + lyrics + print only lyrics + + + + output=ps|pdf + specify the output format; without the + output option a tex file is created + + + + italian + chord output is changed into the Italian notation + (Do, Re, Mi, Fa, Sol, La, Si) + + + + + + + &sflogo; + + diff --git a/doc/en/guitartex.xml b/doc/en/guitartex.xml new file mode 100755 index 0000000..f7c4a5a --- /dev/null +++ b/doc/en/guitartex.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + +]> + + + GuitarTeX + + &info; + &intro; + &install; + >x2tex; + &editor; + &directives; + &latex; + &examples; + &links; + + &acknowledgements; + + diff --git a/doc/en/guitartex/HTML.manifest b/doc/en/guitartex/HTML.manifest new file mode 100644 index 0000000..e3e7c5c --- /dev/null +++ b/doc/en/guitartex/HTML.manifest @@ -0,0 +1,29 @@ +book1.html +introduction.html +c87.html +requirements.html +installation.html +configfile.html +gtx2tex.html +r205.html +editor.html +x246.html +x318.html +x325.html +directives.html +geometry.html +x474.html +x542.html +songbook.html +tablature.html +others.html +latex.html +x782.html +examples.html +x858.html +x886.html +x903.html +links.html +x929.html +a959.html +ln12.html diff --git a/doc/en/guitartex/a959.html b/doc/en/guitartex/a959.html new file mode 100644 index 0000000..5395e4f --- /dev/null +++ b/doc/en/guitartex/a959.html @@ -0,0 +1,239 @@ +Acknowledgements
GuitarTeX
Prev 

Appendix A. Acknowledgements

Thanks to ...

Lucio F. Albenga

from Spain for his translation to the Spanish language +

David Cuny

from Canada for his help on the first + version of this document

Brian Ewins

from Scottland for his Program PStab and the Manual + Song

Bernhard Gröne

from Germany for sending me his songbook creating scripts +

Christoph Lange

from Germany for adding FindBin support +

Gary Lawrence Murphy

from Canada for his tips and testing on several + versions

Pawel Pastula

from Poland for his translation to the Polish language +

Kasper Peeters

from United Kingdom for allowing me to use the gchords package to display + chord symbols in LaTeX +

Marcelo Pereira

from Brazil for his translation to the Brazilian language +

Daniele Pighin

from Italy for many suggestions and his translation to the + Italian language

Dan Polansky

from the Czech Republic for his program Chord + Pack

the people from Sourceforge.net and Freshmeat.net

for their great open source servers

all people from the open source community

who made Linux, KDE, LaTeX, MusixTeX,Perl and many other programs + I used to create GuitarTeX

hosted by +Sourceforge.net + + +


PrevHome 
Links  
\ No newline at end of file diff --git a/doc/en/guitartex/book1.html b/doc/en/guitartex/book1.html new file mode 100644 index 0000000..5175c32 --- /dev/null +++ b/doc/en/guitartex/book1.html @@ -0,0 +1,851 @@ +GuitarTeX

GuitarTeX

Joachim Miltz

Copyright © 2000-2002 by Joachim Miltz

GuitarTeX is a tool for guitarists who want to print good looking and easy + to play song sheets or song books from their chord or chordpro files. + It uses the well known chord format with several extensions. + The program was developed on a Linux system, but it should run on any + other + Unix system with a Perl/TK environment. + See the Section called Installing in Chapter 2 for installing instructions and + the Section called Requirements in Chapter 2 for further requirements. +

hosted by +Sourceforge.net + + +


Table of Contents
1. Introduction
2. Installation
How to obtain GuitarTeX
Requirements
Installing
Configuration file
3. Using the text filter gtx2tex
gtx2tex -- converting chord files into TeX, postscript or PDF +format
4. Using the GuitarTeX editor
Starting
Menus
File Menu
Edit Menu
Directives Menu
Songbook Menu
Colors Menu
Transpose Menu
Chord Icons
Syntax Highlighting
5. Supplied Chord directives
Special Characters
Page Layout
Layout Dimensions
Option List
Examples
Document Structure
title
subtitle
sob, eob
soc, eoc
soi, eoi
np
sot, eot
Fonts
font_size
color_xxx
Creating a Songbook
document_class
book_title, book_author, book_date
chapter
include
even
Guitar and Bass Tablatures
Examples
Others
define
comment
margin
second
6. Using LaTeX commands and packages
Latex commands
LaTeX packages MusixTeX, MusixLyr and TabDefs
Examples
7. Screenshots and examples
Main window
Song sheets
Chord table
Indexpage
8. Related links
Contacts
Links
LaTeX
Perl
Guitar Sites
A. Acknowledgements
List of Examples
5-1. Directive title
5-2. Directive subtitle
5-3. Directive sob, eob + (from Here, There And Everywhere, Beatles):
5-4. Directive soc, eoc + (from With A Litle Help From My Friends, Beatles):
5-5. Directive np
5-6. Directive sot, eot + (from Pretty Woman, Roy Orbison):
5-7. Directive font_size
5-8. Directive color_chorus (coloring the chorus + light blue):
5-9. Directive document_class
5-10. Directive book_title, + book_author, book_date
5-11. Directive chapter
5-12. Directive include
5-13. Directive even
5-14. Empty guitar tablature
5-15. A bass tab with some text
5-16. Typesetting notes, bars and extra spaces
5-17. Putting text under the notes
5-18. A simple bass tab
5-19. Chords
5-20. Directive define
5-21. Directive comment
5-22. Directive margin
5-23. Directive second (from Help!, The + Beatles)
6-1. LaTeX command in chord file
6-2. LaTeX command to be placed in the preamble
6-3. MusixTeX
6-4. Metronomic indication
6-5. Enhanced lyrics typesetting with MusixLyr
7-1. Single song sheet
7-2. Song sheet as part of a songbook
7-3. Chord table

  Next
  Introduction
\ No newline at end of file diff --git a/doc/en/guitartex/c87.html b/doc/en/guitartex/c87.html new file mode 100644 index 0000000..77dfac0 --- /dev/null +++ b/doc/en/guitartex/c87.html @@ -0,0 +1,194 @@ +Installation
GuitarTeX
PrevNext


PrevHomeNext
Introduction Requirements
\ No newline at end of file diff --git a/doc/en/guitartex/configfile.html b/doc/en/guitartex/configfile.html new file mode 100644 index 0000000..9b42196 --- /dev/null +++ b/doc/en/guitartex/configfile.html @@ -0,0 +1,385 @@ +Configuration file
GuitarTeX
PrevChapter 2. InstallationNext

Configuration file

GuitarTeX looks for a configuration file called .guitartexrc in your +home directory. + Parameters are set in perl syntax, for example: +
$language = "de";
+

Table 2-1. Configuration parameters

parametermeaning
languagechoose your favourite language
tool_tipsswitch on or off tool tips for +the icons
highlightswitch on or off syntax highlighting
highlight_directive_foregroundhighlighting foreground color for directives
highlight_directive_backgroundhighlighting background color for directives
highlight_chord_foregroundhighlighting foreground color for chords
highlight_chord_backgroundhighlighting background color for chords
highlight_comment_foregroundhighlighting foreground color for comments
highlight_comment_backgroundhighlighting background color for comments
font_sizedefault font size
color_chorusdefault color for chorus sections in printed + output
color_bridgedefault color for bridge sections in printed + output
color_instrdefault color for instrumental sections in printed + output
color_tabdefault color for ascii tablature sections in printed + output
color_seconddefault foreground color for second voice sections in printed + output
color_second_backdefault background color for second voice sections in printed + output
text_viewerprogram to view the TeX file created by the export + function
ps_viewerprogram to view the postscript file created by the export + function
pdf_viewerprogram to view the PDF file created by the export + function

PrevHomeNext
InstallingUpUsing the text filter gtx2tex
\ No newline at end of file diff --git a/doc/en/guitartex/directives.html b/doc/en/guitartex/directives.html new file mode 100644 index 0000000..b28e9cb --- /dev/null +++ b/doc/en/guitartex/directives.html @@ -0,0 +1,225 @@ +Supplied Chord directives
GuitarTeX
PrevNext

Chapter 5. Supplied Chord directives

Directives are Chord's commands between curly brackets {}, which control + the design of the produced output. Some often used directives can be + replaced + by a short cut (see examples). GuitarTeX provides some new directives + not known by the original Chord program. +

Special Characters

In GuitarTeX some characters have a special meaning: +

  • # at the beginning of a line marks the line as a comment. + The line is ignored by GuitarTeX

  • / may only be used to write slash + chords (e.g. A/E)

hosted by +Sourceforge.net + + +


PrevHomeNext
Syntax Highlighting Page Layout
\ No newline at end of file diff --git a/doc/en/guitartex/docbook.css b/doc/en/guitartex/docbook.css new file mode 100644 index 0000000..0f90516 --- /dev/null +++ b/doc/en/guitartex/docbook.css @@ -0,0 +1,12 @@ +.NAVHEADER { display: none } +.NAVFOOTER { display: none } +.TOC { display: none } + +.NAVTOC { margin-left: 15; + display: none } + +.NAVBTN { font-size: 10pt } + +.TOCTITLE { font-size: 10pt; + color: blue; + text-decoration: underline; } diff --git a/doc/en/guitartex/editor.html b/doc/en/guitartex/editor.html new file mode 100644 index 0000000..f92d6e7 --- /dev/null +++ b/doc/en/guitartex/editor.html @@ -0,0 +1,192 @@ +Using the GuitarTeX editor
GuitarTeX
PrevNext

Chapter 4. Using the GuitarTeX editor

Starting

To start the GuitarTeX editor just open a shell type the command + guitartex

hosted by +Sourceforge.net + + +


PrevHomeNext
gtx2tex Menus
\ No newline at end of file diff --git a/doc/en/guitartex/examples.html b/doc/en/guitartex/examples.html new file mode 100644 index 0000000..865b867 --- /dev/null +++ b/doc/en/guitartex/examples.html @@ -0,0 +1,199 @@ +Screenshots and examples
GuitarTeX
PrevNext


PrevHomeNext
LaTeX packages MusixTeX, MusixLyr and TabDefs Song sheets
\ No newline at end of file diff --git a/doc/en/guitartex/geometry.html b/doc/en/guitartex/geometry.html new file mode 100644 index 0000000..8f01cdc --- /dev/null +++ b/doc/en/guitartex/geometry.html @@ -0,0 +1,701 @@ +Page Layout
GuitarTeX
PrevChapter 5. Supplied Chord directivesNext

Page Layout

The geometry directive provides an easy and flexible interface to + customize + page layout. It uses the LaTeX geometry package and it's description here + is a + (modified) part of the geometry package documentation. +

The geometry directive implements auto-centering and auto-balancing + mechanisms + so that the users have only to give the least description for the page + layout. + In this case, what you have to do is just +

{geometry:a4paper}

In addition to this centering problem, setting margins from each edge of + the + paper is also troublesome. However, with geometry package, you can do +

{geometry:margin=1.5in}

if you want to set each margin 1.5in from each edge of the paper. +

Lengths can be written in +

  • Centimeters (cm)

  • Millimeters (mm)

  • Inches (in)

  • Points (pt)

Layout Dimensions

To realize a straightforward setting for page layout, the following page + structure is introduced: A paper contains a total body (printable area) + and + margins. The total body consists of a body (text area), a header, a + footer and a + marginal note which is optional. There are four margins: left-, right-, + top- and + bottom-margin. +

paper: total-body (printable area) and margins
+total-body: head, body(text area), foot and marginal notes
+margins: left-, right-, top- and bottom-margin

Each margin is measured from the corresponding edge of a paper. For + example, + left-margin means a horizontal distance between the left edge of the + paper and + that of the total body. The dimensions for paper, totalbody and + margins have the following relations. +

paperwidth = left + width + right
+paperheight = top + height + bottom

Option List

Table 5-1. Options for geometry directive

landscapeswitches the paper orientation to landscape mode
portraitswitches the paper orientation to portrait mode
twosideswitches on two-sided printing. In this mode, specified + left + and right margins are switched over in each odd-numbered + page.
reversempmakes the marginal notes appear in the left margin
noheadeliminates spaces for the head of page
nofooteliminates spaces for the foot of page
noheadfooteliminates spaces for the head and foot of page
a4paper, a5paper,letterpaper, legalpaperspecifies paper name. They must be used with no + values.
paperwidthwidth of the paper. paperwidth=<paperwidth>
paperheightheight of the paper. + paperheight=<paperheight>
widthwidth of the total body. width=<width>or + totalwidth=<width>. + This dimension should not be confused with textwidth, because + width includes + the width of marginal notes
heightheight of the total body (including header and footer). + height=<height>
leftleft margin of the total body. In other words, the distance + between the + left edge of the paper and that of the total + body.left=<leftmargin>
rightright margin of the total body. + right=<rightmargin>
toptop margin of the total body. top=<topmargin>
bottombottom margin of the total body. + bottom=<bottommargin>
marginsets all margins of the total body. + margin=<margin>
textwidthmodifies width of text (body). + textwidth=<width>
textheightmodifies height of text (body). + textheight=<height>
marginparmodifies width of the marginal notes. + marginpar=<length>
marginparsepmodifies separation between body and marginal notes. + marginparsep=<length>
headmodifies height of header. head=<length>
headsepmodifies separation between header and text (body). + headsep=<length>
footmodifies distance separation between baseline of last line + of text and baseline of footer. foot=<length>

Examples

Set the height of the total body to be 10in, the bottom-margin 2cm, + and the width default. The top-margin will be calculated automatically: +

{geometry:height=10in,bottom=2cm}

or

{g:height=10in,bottom=2cm}

or

{geometry:height=10in}
+{g:bottom:=2cm}

Set the left-, right-, and top-margin 3cm, 2cm and 2.5in respectively. + The page header is not used. +

{geometry:left=3cm,right=2cm, nohead,
+ top=2.5in}

or

{geometry:left=3cm}
+{geometry:right=2cm}
+{geometry:nohead}
+{geometry:top=2.5in}

or

{g:left=3cm,right=2cm}
+{g:nohead, top=2.5in}

and so on ...

Modify the width of marginal notes to 3cm and include marginal + notes when adjusting horizontal partition +

{geometry:marginpar=3cm}
{geometry:marginpar=3cm, reversemp}

makes the marginal notes appear in the left margin.

Use A5 paper in landscape mode.

{geometry:a5paper, landscape}

PrevHomeNext
Supplied Chord directivesUpDocument Structure
\ No newline at end of file diff --git a/doc/en/guitartex/gtx2tex.html b/doc/en/guitartex/gtx2tex.html new file mode 100644 index 0000000..839ff70 --- /dev/null +++ b/doc/en/guitartex/gtx2tex.html @@ -0,0 +1,153 @@ +Using the text filter gtx2tex
GuitarTeX
PrevNext

Chapter 3. Using the text filter gtx2tex

If you don't want to use the GuitarTeX editor or you prefer +to create the postscript or PDF output on a command line you may use +gtx2tex +

hosted by +Sourceforge.net + + +


PrevHomeNext
Configuration file gtx2tex
\ No newline at end of file diff --git a/doc/en/guitartex/installation.html b/doc/en/guitartex/installation.html new file mode 100644 index 0000000..70314f8 --- /dev/null +++ b/doc/en/guitartex/installation.html @@ -0,0 +1,190 @@ +Installing
GuitarTeX
PrevChapter 2. InstallationNext

Installing

To install GuitarTeX do the following:

  • make sure that LaTeX, Perl and Perl/TK are installed + (see the Section called Requirements)

  • unpack the guitartex archive (for example + in your home directory)

  • cd to the guitartex-x.x directory

  • run the following commands: +

    • make conf (as normal user, this overwrites an existing + config file!)

    • make install (as root)

    +

You may now delete the guitartex-x.x directory

"make conf" copies the configuration file into ~/.guitartexrc. + you may customize GuitarTeX by changing the configuration parameters + explained below. +


PrevHomeNext
RequirementsUpConfiguration file
\ No newline at end of file diff --git a/doc/en/guitartex/introduction.html b/doc/en/guitartex/introduction.html new file mode 100644 index 0000000..5e75ffb --- /dev/null +++ b/doc/en/guitartex/introduction.html @@ -0,0 +1,360 @@ +Introduction
GuitarTeX
PrevNext

Chapter 1. Introduction

First of all: my written English isn't perfect, but I hope this text will + help you nevertheless! For suggestions see the Section called Contacts in Chapter 8.. +

GuitarTeX is a tool for guitarists who want to print good looking +and easy to play song sheets or song books from their chord or chordpro files. +It uses the well known chord format with several extensions. +

It is based upon an idea of Martin Leclerc and Mario Dorion from + Canada + and their program Chord (Version 3.5 from 1993). To use GuitarTeX, you + need + to have knowledge of the Chord program (explained later). Though the LaTeX + text processing system is used by GuitarTeX, you don't have to know very + much + about it. GuitarTeX produces Postscript or PDF output automatically (if + you + want). The Chord directives supplied by GuitarTeX are described in + Chapter 5. +

Features

  • Graphical user interface with integrated editor and syntax +highlighting

  • Prints good looking song sheets including +guitar chords without using monospace fonts

  • Output formats: LaTeX, Postscript and PDF

  • Compatible with ChordPro format, import function for ascii + format

  • Support for music typesetting with the LaTeX packages +MusixTeX, MusixLyr and TabDefs

  • Flexible page +layout (paper size, margins...)

  • User defined +colors for different parts of a song (e.g. verse, chorus)

  • Optional printing of chord symbols at the end of a + song

  • Transpose up or down your song by mouse + clicks

  • Creates single song sheets or complete song books with a title + page, + table of contents, headlines with page numbering, chord table and + index

  • Supports ASCII tablature and the built in tablature directives + for + guitar + and bass tabs

  • Support for multiple languages (if you don't find your + langauage, you + can + help the author to add it)

  • Runs on Linux operating system (it should run on any Unix + system that + is + supported by Perl/TK and LaTeX, but it is not tested)

  • Setup your song book project from single song files with the + include + directive

  • LaTeX commands may be used in Chordpro files (for the + professionals)

GuitarTeX converts a file with lyrics and chords in a special format to a + LaTeX file. Here is an example input file: +

{title:The Manual Song}
+{st:No-one has yet claimed responsibility}
+[D]I print verses [A^7]in a [D]row,
+The next line gets put [A^7]down be[D]low,
+Mumble mumble [A^7]rhymes with [D]grow [G]     [G#]     [A]
+Done this verse, now [A^7susX]on we [quietly]go!
+
+{soc}
+[D]This is the [Bm]manual song
+[A^7]No-one really knows what's [D]goin' on
+[D]This is the [F#m]manual song
+[A^7]And now the chorus is already [D]gone
+{eoc}
+
+[D]The second verse is [A^7]like the [D]first,
+The music poor, the [A^7]verse is [D]worse,
+I wrote this since [A^7]I'd get [D]sued,
+If I used real songs. [A^7]This'll [D]do.
+
+{c:repeat chorus}

The ^-sign is new for users of other Chord clones. + It makes the following characters appear superscript. + You can see the output in Figure 1-1. +

Figure 1-1. Print output from example file

+

GuitarTeX converts the Chord format into "normal" LaTeX format like a kind + of preprocessor. This may be a single song or even a complete songbook. + You may as well translate your chord file directly into postscript or PDF + format. +

If you know LaTeX, you may edit the output file. The advantage of + GuitarTeX is that you can use all LaTeX features to design a single song + sheet or songbook, e.g.: packages like graphics or MusicTeX, table of + contents, marginal notes, and so on. +

hosted by +Sourceforge.net + + +


PrevHomeNext
GuitarTeX Installation
\ No newline at end of file diff --git a/doc/en/guitartex/latex.html b/doc/en/guitartex/latex.html new file mode 100644 index 0000000..9caa7a0 --- /dev/null +++ b/doc/en/guitartex/latex.html @@ -0,0 +1,252 @@ +Using LaTeX commands and packages
GuitarTeX
PrevNext

Chapter 6. Using LaTeX commands and packages

Latex commands

As I mentioned in the introduction, you don't have to know very + much about LaTeX to use GuitarTeX. You can use it even if you don't know + anything about LaTeX. +

If you are familiar with LaTeX you can use any feature of it to improve your + song sheet or book. All lines of your chord file that begin with a backslash + will be left untouched by GuitarTeX. You may test this by inserting a simple + LaTeX command like this: +

Example 6-1. LaTeX command in chord file

\marginpar{test}

The result will be a marginal note with the word test.

The LaTeX commands will be executed at the position they appear in the chord + file. + But sometimes you may want to add a command to the preamble, e.g. to include + other + LaTeX packages. This can be done using the preamble + directive: +

Example 6-2. LaTeX command to be placed in the preamble

{preamble:\usepackage(fancyheadings)}

The preamble directives may occur anywhere in your song. + They are added to the LaTeX preamble in the same order they appear in the + chord file. +

hosted by +Sourceforge.net + + +


PrevHomeNext
Others LaTeX packages MusixTeX, MusixLyr and TabDefs
\ No newline at end of file diff --git a/doc/en/guitartex/links.html b/doc/en/guitartex/links.html new file mode 100644 index 0000000..f364e17 --- /dev/null +++ b/doc/en/guitartex/links.html @@ -0,0 +1,184 @@ +Related links
GuitarTeX
PrevNext

Chapter 8. Related links

Table of Contents
Contacts
Links

Contacts

To contact the author or other GuitarTeX users use + the mailing list: http://lists.sourceforge.net/lists/listinfo/guitartex-users +

hosted by +Sourceforge.net + + +


PrevHomeNext
Indexpage Links
\ No newline at end of file diff --git a/doc/en/guitartex/ln12.html b/doc/en/guitartex/ln12.html new file mode 100644 index 0000000..470c871 --- /dev/null +++ b/doc/en/guitartex/ln12.html @@ -0,0 +1,100 @@ +
GuitarTeX

This program is free software; you can redistribute it and/or modify it + under + the terms of the GNU General Public License as published by the Free + Software + Foundation; either version 2 of the License, or (at your option) any later + version. +

This program is distributed in the hope that it will be useful, but + WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + details. +

You should have received a copy of the GNU General Public License along + with + this program; if not, write to the Free Software Foundation, Inc., 675 + Mass + Ave, Cambridge, MA 02139, USA. +


 Home 
\ No newline at end of file diff --git a/doc/en/guitartex/others.html b/doc/en/guitartex/others.html new file mode 100644 index 0000000..a5a60df --- /dev/null +++ b/doc/en/guitartex/others.html @@ -0,0 +1,352 @@ +Others
GuitarTeX
PrevChapter 5. Supplied Chord directivesNext

Others

define

With the define directive you can force GuitarTeX to print a chord + symbol at the + end of a song. The directive can be placed anywhere in the song. +

The define directive has eight parameters:

  • the chord name

  • the base fret

  • six fret values (an x means that the string isn't + played)

Example 5-20. Directive define

{define:A	1 x 0 2 2 2 0}
+{define:Cm	3 x 1 3 3 2 1}
+{define:Gm/Bb	4 3 2 2 1 x x}

The result looks like Figure 5-2.

Figure 5-2. Chord example

comment

The comment directive adds a text that isn't part of the + lyrics.

Example 5-21. Directive comment

{comment: repeat chorus}
+{c: repeat chorus}

margin

The margin directive creates a marginal note. You can use it to place + small + hints for the musician. +

Example 5-22. Directive margin

{margin:Fade Out}
+{m:Fade Out}

second

In some pieces you find a second voice that not only has a + counter-melody, but + also different lyrics than the first voice. Well known examples are + "California Dreaming" from The Mamas And The Papas and + "Help" from the Beatles. If you mark the second voice with the + directive "second", it will appear white on gray background, + distinguishing it from the melody. Because of the use of proportional + fonts, you + may have to experiment a bit with the amount of spaces before the text + is + placed correctly. +

Example 5-23. Directive second (from Help!, The + Beatles)

[G] When I was younger so much [Hm]younger than today
+{second:When when I was young}
+[Em] I never needed anybody's [C]help in [F]any [G]way
+{second:I never need help in any way}
+[G]But now these days are gone and I'm [Bm]not so self assured
+{second:Now these days are gone}
+[Em] Now I find I've changed my mind,
+{second:And now I find}
+I've [C]opened [F]up the [G]doors
+{second:I've opened up the doors}

PrevHomeNext
Guitar and Bass TablaturesUpUsing LaTeX commands and packages
\ No newline at end of file diff --git a/doc/en/guitartex/r205.html b/doc/en/guitartex/r205.html new file mode 100644 index 0000000..89452c5 --- /dev/null +++ b/doc/en/guitartex/r205.html @@ -0,0 +1,209 @@ +gtx2tex
GuitarTeX
PrevNext

gtx2tex

Name

gtx2tex -- converting chord files into TeX, postscript or PDF +format

Synopsis


gtx2tex [--verbose] [--lyrics] [--output=ps|pdf] [--italian] <file>
+

Options

verbose

lets gtx2tex tell you what it is doing

lyrics

print only lyrics

output=ps|pdf

specify the output format; without the + output option a tex file is created

italian

chord output is changed into the Italian notation + (Do, Re, Mi, Fa, Sol, La, Si)

+


PrevHomeNext
Using the text filter gtx2texUpUsing the GuitarTeX editor
\ No newline at end of file diff --git a/doc/en/guitartex/requirements.html b/doc/en/guitartex/requirements.html new file mode 100644 index 0000000..75bf2cb --- /dev/null +++ b/doc/en/guitartex/requirements.html @@ -0,0 +1,177 @@ +Requirements
GuitarTeX
PrevChapter 2. InstallationNext

Requirements

GuitarTeX was created under Linux operating system. + It should run with any Linux dristribution and also on any other Unix + system. In addition it requires + + +

  • LaTeX

  • Perl

  • Perl/TK

+ +to be installed on your system.To create pdf output, your LaTeX distribution +should also include + +

  • pdflatex

+ +


PrevHomeNext
InstallationUpInstalling
\ No newline at end of file diff --git a/doc/en/guitartex/songbook.html b/doc/en/guitartex/songbook.html new file mode 100644 index 0000000..4776051 --- /dev/null +++ b/doc/en/guitartex/songbook.html @@ -0,0 +1,415 @@ +Creating a Songbook
GuitarTeX
PrevChapter 5. Supplied Chord directivesNext

Creating a Songbook

The document_class and book_... directives can be placed anywhere in the + Chord file, though it is usefull to place them at the beginning :-). +

document_class

The document_class directive specifies the type of document you get. + There are two possible values: +

  • book

  • article (default if not specified)

Example 5-9. Directive document_class

{document_class:book}

The value book produces

  • a title page

  • a table of contents

  • headlines with page numbers

  • an index

book_title, book_author, book_date

These three directives describe the content of the title + page.

Example 5-10. + Directive book_title, + book_author, book_date +

{book_title:My Favourite Songs}
+{book_author:My Name}
+{book_date:September 2000}

The value given in the book_title directive appears + in the headlines on even pages. +

chapter

If the document_class is book, you can section + the document with the chapter directive. A chapter title page is + inserted at the occurance of the directive. +

Example 5-11. Directive chapter

{chapter:Beatles}

The chapter name appears in the table of contents and also + in the headlines on odd pages. +

include

If you have a collection of chord files you may want to create a + songbook (or + even several different songbooks) without merging all songs to one + single file. + Merging all files has some disadvantages, e.g. transposing one single + song is + no longer possible. With the include directive you may leave all files + as they + are. Just create a songbook file and include the files you want. +

Example 5-12. Directive include

{document_class:book}
+{book_title:}
+{chapter:Name of chapter 1}
+{include:song file 1}
+{include:song file 2}
+{chapter:Name of chapter 2}
+{include:song file 3}
+{include:song file 4}

In the example four song files are merged to a songbook with two + chapters.

even

The directive even makes the piece begin on the next + left + page. In a book this is useful for preventing a page turn in an two-page + piece. + The directive must be placed before the title directive in order to work + correctly. +

Example 5-13. Directive even

{even}
+{title:Proud Mary}
+{st:Creedence Clearwater Revival 1972}

PrevHomeNext
FontsUpGuitar and Bass Tablatures
\ No newline at end of file diff --git a/doc/en/guitartex/stylesheet-images/caution.gif b/doc/en/guitartex/stylesheet-images/caution.gif new file mode 100644 index 0000000000000000000000000000000000000000..9cc2e1557447e9252ead07200617c2d56be4ed6f GIT binary patch literal 1039 zcmZ?wbh9u|lwgox_|5Sh{s9!`7`) zTel`}-MV$}UWUDUlh2)FICt*cwQCI5t^vtw_wF&=yJvXsp5?uJPS2k+Jb!NZ{JG`x z=g;52XL$eq{rB$--@gld|1RgdJ(|D$SrA+HAyGpqN^7x16zrMq{!ibMp=6~-(4c99<%wR z=lEzgH#IP+?pT$g`C;jexlBBNo_IO0=v$GV+9Oerpc~DrP;%tKgT`Z#V$4EkL{=v; zaW)#7)%@r_aPX#>5Fh`Y-v{$g32`gkn0k?^DW$2?_JPMq28Kof%}^J&9pNUYcvyH^ zranA$=y~&6-RTjl4}Cj!qXy}<-Pfit2&px)3vi@}Ecoi+!6qxs r(ZS&8c(6lQJMIjJqGMAJzuvhVhQ!S+Y#bZ9V$SZ``nrvgk--`Oh`uWh literal 0 HcmV?d00001 diff --git a/doc/en/guitartex/stylesheet-images/important.gif b/doc/en/guitartex/stylesheet-images/important.gif new file mode 100644 index 0000000000000000000000000000000000000000..25e40c76b573bd8674ea9f6ec415226a5a7ea10f GIT binary patch literal 1081 zcmeH`!AlfT0LI^{*krpft5G9~wab>QF61hrlLqdTZ7qs13C5hX*$y=!w3;|IUwr3)SH!wg^m z0sBxCMbk9HFwtm~Wm%4ka~zjSrFfnfgs3PoqR5M)C`p_oNtp~U%d(;-M;tE#f9 zs+uNf+Fok9F6g?b>$0xvh9Me;Vi=lX>~#ae5QHp*5`;2@3WO?zdm}W>lxgy&shXx~ zS(If7mZeyhZdsOXQ?@PGwp}P>3Wb8>Fpk4Jj_5d&<2VQbghB|#5n>VI5keSK7>6*9 zVjRaA;j~5=TV+VdtS)<&%g9QY~O%= z7XY;j7OA?6w;v|56*Y~ecdHNb{&1LE9ljn)G_}UYz~-EotgVY}Evz?ZbCE%Qe&E%) zY<}V(Oy|F(jSa1@cPY<)JylahkCjRbnG=tz+Xi_6x)c0VUzb0)6sbtP2s}RmMz18R z#yc*TK8D9{lr@NK>{~dzUJUjgP1jDAtyKs62bXCuv{Gz3-%{Fm-EzR^i|kg`ckLv7 zzNW*6>`rHW+}9atUH-GWQhsux=hmH1zqW%j>^6Gy!C1?^4Sufw?!N}7=rbeS(9Nw} zU#xlJ{Z4l=S6+E~*-O!NFz@VXc@G8x|gJ5|Hx|&`^AIq@7DufTJL=k*SSS$s)v|q2U0#fW|VLhy+z< zR$&&E6#^R%H8b;b_*e)mU}9q9Ws%9a@FBT{fiEEJLgc~*4<eAwF5u#VYwR?e%Shb+u`oHi>KJaB03@|>=hvC84eAr3KCza2Lm7+W|6 WloX~(95gs~e1fv~yck6V25SH<^dGbU literal 0 HcmV?d00001 diff --git a/doc/en/guitartex/stylesheet-images/note.gif b/doc/en/guitartex/stylesheet-images/note.gif new file mode 100644 index 0000000000000000000000000000000000000000..7322e8e40bdc0c3f9f1a09786d42c012a6ab8b0e GIT binary patch literal 1070 zcmV+}1kw9PNk%v~VHf}y0QUd@000010RaL60s{jB1Ox;H1qB8M1_uWR2nYxX2?+`c z3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= z{r&#_{{R2~EC2ui02lxm000R70RIUbNbsCNg9H;Q6xgd2rBVHES(3_Ku{tyHgqN;d+?Tzju!Z);;TuQDVJwRQAHSkR)YFdrEO!v&XBk zJwOwl{a4GHz*-^KY@Rd5rovJavBo?tB{Lyo6k9@$D)OJx<0pIB#+rEO&f%|l4*kcd o_`qJ2pi}&6ogi$&oxc>r#EMbwId40)HiwBGBuL!a2L=QHJ43Vzj{pDw literal 0 HcmV?d00001 diff --git a/doc/en/guitartex/stylesheet-images/prev.gif b/doc/en/guitartex/stylesheet-images/prev.gif new file mode 100644 index 0000000000000000000000000000000000000000..0894d9ecb26316a61e914879c48520cc8aee392d GIT binary patch literal 944 zcmZ?wbh9u|RA%63_|Cw<(83_lBcRx$s5wQ`aE_tV94D`(UO{VvvbSaz?=5cG+tPEa zXUe%LOV2G`du{Epd&kZ_KX>i@wde1jzyJRJ|0oy@fgv6OI>0Qz0Llvt98(!IIb=LG zEI8QAA*>a1V#7k`W+6F`nhzV2ni%sMgrT8{g_D_uZNY^D443EGIST1`39V>a$f&~eRijiP ybPlVqjKR$hN{*ZiRYDmKlawRc1?88Ba5ye<;N%wZnBfq<^#1+^W@{b}25SIMS`<+L literal 0 HcmV?d00001 diff --git a/doc/en/guitartex/stylesheet-images/tip.gif b/doc/en/guitartex/stylesheet-images/tip.gif new file mode 100644 index 0000000000000000000000000000000000000000..f062955fa717ba5a52b5167d7b76e3893c0bb8bd GIT binary patch literal 1029 zcmV+g1p50&Nk%v~VHp4z0QUd@000010RaL60s{jB1Ox;H1qB8M1_uWR2nYxX2?+`c z3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= z{r&#_{{R2~EC2ui02u%n000Q;0RIUbNbsCNg9H;Q6nM^9DN3axLUeX-VZwX8CZ4;u zu^}Z&&MY#7=uMQzzXzjLK(DOA}@A62gx007pM9e9q?%bp7<-HvA!GFEE{U`SDUWKJX{{T literal 0 HcmV?d00001 diff --git a/doc/en/guitartex/stylesheet-images/toc-blank.gif b/doc/en/guitartex/stylesheet-images/toc-blank.gif new file mode 100644 index 0000000000000000000000000000000000000000..6c65e3a194c9fc7cf689bfe14d8195bc40d8093b GIT binary patch literal 95 zcmZ?wbhEHbuk@&whU_+wL7l%xqVSOWl-?jltH literal 0 HcmV?d00001 diff --git a/doc/en/guitartex/stylesheet-images/toc-minus.gif b/doc/en/guitartex/stylesheet-images/toc-minus.gif new file mode 100644 index 0000000000000000000000000000000000000000..40ebe61e46a6bd1d8c2c5292af72365d489c6c56 GIT binary patch literal 843 zcmZ?wbhEHb~0HBcxg#Z8m literal 0 HcmV?d00001 diff --git a/doc/en/guitartex/stylesheet-images/toc-plus.gif b/doc/en/guitartex/stylesheet-images/toc-plus.gif new file mode 100644 index 0000000000000000000000000000000000000000..3e9e7d55a3dde56cd0f6596f3cd6d555323ab273 GIT binary patch literal 846 zcmZ?wbhEHb9$=O@8TlTi}9P62KZpzks zTaVp4cJBGPYwxc;fB*db_xJxt!Dt8!mk`haW&s9JUSQy;XHe#l@z}87U^9oXR?LZl z2hFTJQZ5+>5*SSzV6bfE`GK5MM$#&QRJy`J4!v@O~A@yPr!5RMtk9#~G@Ae)K-pJ_rp>Uc7 ziw-~o3~UP@zym?xEFc02AO*|-vw#E?02xqhN|KsLsHv1HNgALpfillvbwGtfWa^Z%Nji21e&%sn=PQ#YMFrP z^O>e;0TxYLmSwl?bUJ&$-ahsh_)iP;!^Xcafc}H~G`Ak>lJj)WmUlgKr9}6g9#&V= z&c&jqyYwa#SX_I2V&c-qQs7*1*_+%EZaV@WdJm0PEt+!V`f3joM2X1L_My4D`u3j6vyCXXt z+{WQYgC}$7{kgpPEVcko?zh1;vK8^&#pzQ*mhE>PEhTR(eVdy)=pGVYl)t2ftTQzE zzU^7puUXRbeBm&39nfU1TKR=nbh1$ Qxn7IjbH6=6b-57z3rbJ+&;S4c literal 0 HcmV?d00001 diff --git a/doc/en/guitartex/tablature.html b/doc/en/guitartex/tablature.html new file mode 100644 index 0000000..4f925b5 --- /dev/null +++ b/doc/en/guitartex/tablature.html @@ -0,0 +1,417 @@ +Guitar and Bass Tablatures
GuitarTeX
PrevChapter 5. Supplied Chord directivesNext

Guitar and Bass Tablatures

GuitarTeX knows two new directives for printing tablature + lines:

  • {guitartab: } for guitar tablatures

  • {basstab: } for bass tablatures

Every guitartab or basstab directive represents one line of tablature. + You can even create empty tablatures by typing {guitartab: } or {basstab: + }. + Leave an empty line before the tab directive to make it start at the left + margin. +

Between the brackets you can type

  • normal text (e.g. lyrics): it is printed under the + tablature

  • notes in the format [string;fret], e.g. [2;5] means fifth + fret on the A string

  • bars (by typing the | character)

  • extra space between notes with the "_" + character

Figure 5-1. Tablature icons

Instead of typing the lines by yourself, you can use the tablature icons + (see Figure 5-1). + Clicking on the Guitar or Bass button inserts the directive at the cursor + position. + To insert a note, type the fret number into the input field and then ckick + on a button to choose a string. The note will be inserted at the cursor + position. + After this the focus comes back to the input field (not to the main text + field) + so you can enter several notes by always typing the fret number and + clicking + the string button. +

Examples

Example 5-14. Empty guitar tablature

{guitartab:}

+

Example 5-15. A bass tab with some text

{basstab:some text}

+

Example 5-16. Typesetting notes, bars and extra spaces

{guitartab:[2;3][3;0][3;2][3;3]|[4;0]__[4;2]__[5;0]__[5;1]|}

+

Example 5-17. Putting text under the notes

{guitartab:[2;3]do [3;0]re [3;2]mi [3;3]fa |[4;0]so [4;2]la [5;0]si [5;1]do|}

+

Example 5-18. A simple bass tab

{basstab:[2;5][2;5]|[2;5][2;5]|[3;5][3;5]|[2;5][2;5]|[3;7][3;7]|[3;5][3;5]|[2;5]}

+

Example 5-19. Chords

{guitartab:[2;3]&[3;5]&[4;5]C (power chord) |[2;3]&[3;2]&[4;0]&[5;1]C chord}

+


PrevHomeNext
Creating a SongbookUpOthers
\ No newline at end of file diff --git a/doc/en/guitartex/x246.html b/doc/en/guitartex/x246.html new file mode 100644 index 0000000..f9f3bc7 --- /dev/null +++ b/doc/en/guitartex/x246.html @@ -0,0 +1,479 @@ +Menus
GuitarTeX
PrevChapter 4. Using the GuitarTeX editorNext

Menus

You can tear off any menu by clicking on the first entry (-----). This is + may be usefull for the directives or the transpose menu as you don't + allways have to invoke the menu to use the provided commands. +

File Menu

New, Open, Save, Save as, Quit

The menu commands New, Open, Save, Save as and Quit behave like you + know from + other GUI-based applications. Therefor no further description is + needed. Instead + of using the menu you may click on one of the icons +

Export > LaTeX , Export > Postscript, Export > PDF

The opened file will be saved and then converted to LaTeX , postscript + or PDF + format. The name of the resulting file is the original file name with + its + suffix changed to .tex, .ps or .pdf. Instead of using the menu you may + click on + one of the icons (see Figure 4-1). + +

Figure 4-1. Icons to create LaTeX, postscript or PDF output

+ +

After creating the exported file, a viewer is opened to show the + result. + You may use your favourite viewer by changing the parameters + $text_viewer, $ps_viewer + or $pdf_viewer in the configuration file + (see the Section called Configuration file in Chapter 2). +

Edit Menu

Cut, Copy, Paste

If you want to cut, copy and paste parts of your text within your + document, + use the shortcuts ctrl-x (cut), ctrl-c (copy) and ctrl-v (paste). +

Insert File

After invoking the Insert File command, a file selector will pop up. + The choosen + file will be inserted at the current cursor position. +

crd -> chopro

You will often find song files in raw ascii format instead of Chord + format. + The lines look like this: +

D              A7   D
+I print verses in a row,
+                       A7     D
+The next line gets put down below,
+              A7          D    G    G#       A
+Mumble mumble rhymes with grow
+                     A7susx
+Done this verse, now we go!

Place the cursor into the first line (the one with the chords) and + call the + crd->chopro command via menu or press the F9 key. The chord line and + the + following lyric line are converted into one line with Chord format. + The cursor + is placed in the next line. You only have to call the command (or + press the + F9 key) once again to continue converting the document. +

Directives Menu

With this menu you can insert directives. The directives are explained + in + Chapter 5. +

Songbook Menu

Insert all available songbook directives instead of typing them in. The + songbook + directives are explained in the the Section called Creating a Songbook in Chapter 5. +

Colors Menu

From this menu you can insert all available color directives. A color + selector + is opened (see figure Figure 4-2). +

Figure 4-2. Color selector

You have three alternatives to select your favourite color: +

  • doubleclick on a predefined color in the list on the + left side of the color selector

  • move the sliders in the middle of the color selector + (you may like to choose RGB color space instead of HSB color space before + this)

  • input RGB value into the input field called Name, not + really a good idea :-)

The color directives may also be typed in manually. + They are explained in the Section called color_xxx in Chapter 5. +

Transpose Menu

Up, Down

The Up/Down command will transpose the whole song by one halftone up + or down. + You may use the F5 and F6 keys instead of the menu. In slash chords + (e.g. G/B) + both the chord name and the bass note (behind the slash) are + transposed. Slashes + may only be used to write slash chords + (see the Section called Special Characters in Chapter 5). +

b->#, #->b

After transposing a song, the program doesn't know whether chords + should be + converted to flat or sharp notes. So all chords are written with + sharps if + necessary, e.g. C#. You can change them to flat, e.g. Db, and vice + versa + by using these commands. You may use the F7 and F8 keys instead of the + menu. +

B->H, H->B

In german notation the note B is written as H. With these commands you + can + change B to H and vice versa. +


PrevHomeNext
Using the GuitarTeX editorUpChord Icons
\ No newline at end of file diff --git a/doc/en/guitartex/x318.html b/doc/en/guitartex/x318.html new file mode 100644 index 0000000..89d8130 --- /dev/null +++ b/doc/en/guitartex/x318.html @@ -0,0 +1,162 @@ +Chord Icons
GuitarTeX
PrevChapter 4. Using the GuitarTeX editorNext

Chord Icons

Figure 4-3. Chord icons

By clicking on one of the chord icons (see Figure 4-3) + the chosen chord is inserted at the + current cursor position. After this you may edit the chord manually to + modify it + e.g. to a minor chord. +


PrevHomeNext
MenusUpSyntax Highlighting
\ No newline at end of file diff --git a/doc/en/guitartex/x325.html b/doc/en/guitartex/x325.html new file mode 100644 index 0000000..bd3e36d --- /dev/null +++ b/doc/en/guitartex/x325.html @@ -0,0 +1,166 @@ +Syntax Highlighting
GuitarTeX
PrevChapter 4. Using the GuitarTeX editorNext

Syntax Highlighting

Figure 4-4. Syntax Highlighting Icon

Since version 2.6 GuitarTeX provides syntax highlighting for directives, + comments and chords. + You can configure the foreground and background colors in the + configuration file. + If you insert directives or chords with the menus and icons, highlighting + is done automatically. + After typing directives or chords manually just click on the syntax + highlighting icon + (see Figure 4-4). +


PrevHomeNext
Chord IconsUpSupplied Chord directives
\ No newline at end of file diff --git a/doc/en/guitartex/x474.html b/doc/en/guitartex/x474.html new file mode 100644 index 0000000..da3ce7c --- /dev/null +++ b/doc/en/guitartex/x474.html @@ -0,0 +1,493 @@ +Document Structure
GuitarTeX
PrevChapter 5. Supplied Chord directivesNext

Document Structure

title

The title of a piece of music is marked by the directive + title. + The title is printed centered with a larger font. In documents with more + than + one piece, title causes a page break. +

Example 5-1. Directive title

{title:Go Down Moses}
+{t:Go Down Moses}

subtitle

The directive subtitle supplies additional + information, such as the name of the band or the composer. +

Example 5-2. Directive subtitle

{subtitle:written by John Lennon / Paul McCartney}
+{st:written by John Lennon / Paul McCartney}

sob, eob

The bridge is marked with sob (start of bridge) at + the beginning, + and eob (end of bridge) at the end. The bridge is + output + in blue if you use a color printer. The color can be changed by the + color_bridge directive. +

Example 5-3. Directive sob, eob + (from Here, There And Everywhere, Beatles):

{sob}
+I want her [Ab]everywhere [Fm]
+And if [Bbm]she's beside me [C^7]I know I need [Fm]never care
+[Bb]But to love her [C^7]is to meet her
+{eob}

soc, eoc

The chorus is marked with soc (start of chorus) at + the beginning, + and eoc (end of chorus) the end. The chorus is output + in + red if you use a color printer. The color can be changed by the + color_chorus + directive (see the Section called color_xxx). +

Example 5-4. Directive soc, eoc + (from With A Litle Help From My Friends, Beatles):

{soc}
+Oh, I get [C]by with a little [G]help from my [D]friends
+Mm, I get [C]high with a little [G]help from my [D]friends
+Oh, I'm gonna [C]try with a little [G]help from my [D]friends
+{eoc}

soi, eoi

An instrumental part is marked with soi (start of + instrumental) + at the beginning, and eoi (end of instrumental) the + end. + The instrumental part is output in grey if you use a color printer. The + color + can be changed by the color_instr directive. +

np

np stands for new page and creates a page + break.

Example 5-5. Directive np

{np}

sot, eot

Tablature is marked with sot (start of tablature) at + the + beginning, and eot (end of tablature) the end. + Tablature + output in green if you use a color printer. The color can be changed by + the + color_tab directive (see the Section called color_xxx). + The tablature is output in a non-proportional font. +

Example 5-6. Directive sot, eot + (from Pretty Woman, Roy Orbison):

{sot}
+E ---------------------|------------------------------------
+B ---------------------|------------------------------------
+G ---------------------|------------------------------------
+D -----------------0---|-------------------0---4---2---0----
+A -------------2-------|---------------2--------------------
+E -0---0---4-----------|---0---0---4------------------------
+{eot}

If you don't like ascii tablatures and you look for a way to create + tablatures + more easily, see the Section called Guitar and Bass Tablatures. +


PrevHomeNext
Page LayoutUpFonts
\ No newline at end of file diff --git a/doc/en/guitartex/x542.html b/doc/en/guitartex/x542.html new file mode 100644 index 0000000..fcd7956 --- /dev/null +++ b/doc/en/guitartex/x542.html @@ -0,0 +1,269 @@ +Fonts
GuitarTeX
PrevChapter 5. Supplied Chord directivesNext

Fonts

The font and color directives can be placed anywhere in the Chord file, + though + it is usefull to place them at the beginning :-). The specified values are + valid + for the whole document! +

font_size

LaTeX allows the three font sizes 10pt, 11pt and 12pt. GuitarTeX sets + the default value to 11pt (titles and subtitles are enlarged + automatically). If + you want a font size of 12pt you should write: +

Example 5-7. Directive font_size

{font_size:12}

Note: do not write 12pt instead of 12!

color_xxx

The color directives allow to change the text color of the chorus, + bridge, + instrumental parts, tablatures and a second voice. For the second voice + even the + background color may be specified. So you can write white letters on a + colored + background for example. This will help the singers not getting confused + by many + lyrics lines :-) +

The directives are named

  • color_chorus

  • color_bridge

  • color_instr

  • color_tab

  • color_second

  • color_second_back

The parameters must be a comma separated list of three numbers between 0 + and + 1, giving the red, green and blue components of the color. +

Example 5-8. Directive color_chorus (coloring the chorus + light blue):

{color_chorus:.5,.5,1}

PrevHomeNext
Document StructureUpCreating a Songbook
\ No newline at end of file diff --git a/doc/en/guitartex/x782.html b/doc/en/guitartex/x782.html new file mode 100644 index 0000000..c59f9c1 --- /dev/null +++ b/doc/en/guitartex/x782.html @@ -0,0 +1,473 @@ +LaTeX packages MusixTeX, MusixLyr and TabDefs
GuitarTeX
PrevChapter 6. Using LaTeX commands and packagesNext

LaTeX packages MusixTeX, MusixLyr and TabDefs

MusixTeX is a powerfull LaTeX package for music typesetting.MusixLyr +and TabDefs are additional LaTeX packages to improve lyrics and tablature +typesetting with MusixTeX. You may use these packages within GuitarTeX by +including one (or more) of the following directives (anywhere in your Chord +file): +

  • {musixtex}

  • {musixlyr}

  • {tabdefs}

Important: +You must have installed the packages correctly before you may use them in GuitarTeX! +Please read the documentation that comes with the packages. +

After this you may use LaTeX code for MusixTeX, MusixLyr or TabDefs at any place +in your Chord file or better include them using the include directive +(for Examples see the Section called Examples). +

+By the way: please pay attention to the first words of the MusixTeX manual: + +

"If you are not familiar with TeX at all I would recommend to find another +software package to do musical typesetting.Setting up TeX and MusiTeX on your +machine and mastering it is an awesome job which gobbles up a lot of your time +and disk space. But, once you master it..." +

So you will understand that the Author of GuitarTeX cannot give +any support for installing or using MusixTeX, MusixLyr or TabDefs. +

Examples

Example 6-3. MusixTeX

+

+

{musixtex}
+
+{soc}
+[D]This is the [Bm]manual song
+[A^7]No-one really knows what's [D]goin' on
+[D]This is the [F#m]manual song
+[A^7]And now the chorus is already [D]gone
+{eoc}
+
+\hsize=100mm
+\generalmeter{\meterfrac24}%
+\parindent 0pt
+\setsign1{-3}
+\startpiece\bigaccid
+\NOtes\qu{ce}\enotes
+\bar
+\NOtes\qu{gh}\enotes
+\bar
+\NOtes\qu{=b}\enotes
+\Notes\ds\cu g\enotes
+\bar
+\NOtes\qu{^f=f}\enotes
+\NOtes\qu{=e}\itied0e\qu{_e}\enotes
+\bar
+\Notes\ttie0\Qqbu ed{_d}c\enotes
+\bar
+\Notes\ibu0b{-2}\qb0{=b}\enotes
+\notes\nbbu0\qb0{=a}\tqh0N\enotes
+\Notes\Dqbu cf\enotes
+\NOtes\uptext{\it tr}\qu e\uptext{\it tr}\qu d\enotes
+\bar
+\NOtes\qu c\qp\enotes
+\setdoubleBAR
+\stoppiece
+\bigskip
+
+[D]The second verse is [A^7]like the [D]first,
+The music poor, the [A^7]verse is [D]worse,
+I wrote this since [A^7]I'd get [D]sued,
+If I used real songs. [A^7]This'll [D]do.

Example 6-4. Metronomic indication

+

+

{musixtex}
+{title:The Manual Song}
+{st:No-one has yet claimed responsibility}
+
+\notes\metron{\qu}{60}\en
+
+[D]I print verses [A^7]in a [D]row,
+The next line gets put [A^7]down be[D]low,
+Mumble mumble [A^7]rhymes with [D]grow [G]     [G#]     [A]
+Done this verse, now [A^7susX]on we [quietly]go!

Example 6-5. Enhanced lyrics typesetting with MusixLyr

+

+

{musixtex}
+{musixlyr}
+
+{soc}
+[D]This is the [Bm]manual song
+[A^7]No-one really knows what's [D]goin' on
+[D]This is the [F#m]manual song
+[A^7]And now the chorus is already [D]gone
+{eoc}
+
+\par{
+\hsize=120mm
+\setlyrstrut
+\resetlyrics
+\setlyrics{Winter1}{Win-ter a-de\rlap{,} a-ber dein Schei-den macht\rlap{,}}
+\setlyrics{Winter2}{schei-den tut weh\rlap,}
+\assignlyrics1{Winter1,Winter2}
+\generalmeter{\meterfrac34}
+\generalsignature2
+\setsongraise1{-2mm}
+\startpiece
+\NOtes\qa{ffe}\en\bar
+\NOTesp\hup d\en\rightrepeat
+\assignlyrics1{Winter1}%
+\NOtes\qa{fgh}\en\bar
+\NOtes\qa h\en
+\Notes\beginmel\Ibu0gf1\qb0g\endmel\tqh0f\en
+\NOtes\qa g\en
+\endpiece
+}
+
+[D]The second verse is [A^7]like the [D]first,
+The music poor, the [A^7]verse is [D]worse,
+I wrote this since [A^7]I'd get [D]sued,
+If I used real songs. [A^7]This'll [D]do.

PrevHomeNext
Using LaTeX commands and packagesUpScreenshots and examples
\ No newline at end of file diff --git a/doc/en/guitartex/x858.html b/doc/en/guitartex/x858.html new file mode 100644 index 0000000..2210ab1 --- /dev/null +++ b/doc/en/guitartex/x858.html @@ -0,0 +1,225 @@ +Song sheets
GuitarTeX
PrevChapter 7. Screenshots and examplesNext

Song sheets

Example 7-1. Single song sheet

+

+

Example 7-2. Song sheet as part of a songbook

+

+


PrevHomeNext
Screenshots and examplesUpChord table
\ No newline at end of file diff --git a/doc/en/guitartex/x886.html b/doc/en/guitartex/x886.html new file mode 100644 index 0000000..1a4c31b --- /dev/null +++ b/doc/en/guitartex/x886.html @@ -0,0 +1,241 @@ +Chord table
GuitarTeX
PrevChapter 7. Screenshots and examplesNext

Chord table

The following chord table is a part of the author's personal songbook. It was +created by the code below.

Example 7-3. Chord table

+

+


{title:D}
+{define:D	1 x x 0 2 3 2}
+{define:D+	1 x x 0 3 3 2}
+{define:D4	1 x x 0 2 3 3}
+{define:D6	1 x 0 0 2 0 2}
+{define:D7	1 x x 0 2 1 2}
+{define:D7#9	4 x 2 1 2 3 3}
+{define:D7(#9)	4 x 2 1 2 3 3}
+{define:D9	0 1 3 1 2 1 3}
+{define:D11	1 3 0 0 2 1 0}
+{define:Dsus	1 x x 0 2 3 3}
+{define:Dsus2	1 0 0 0 2 3 0}
+{define:Dsus4	1 x x 0 2 3 3}
+{define:D7sus2	1 x 0 0 2 1 0}
+{define:D7sus4	1 x 0 0 2 1 3}
+{define:Dmaj	1 x x 0 2 3 2}
+{define:Dmaj7	1 x x 0 2 2 2}
+{define:Ddim	1 x x 0 1 0 1}
+{define:Dm	1 x x 0 2 3 1}
+{define:Dmin	1 x x 0 2 3 1}
+{define:D/A	1 x 0 0 2 3 2}
+{define:D/B	1 x 2 0 2 3 2}
+{define:D/C	1 x 3 0 2 3 2}
+{define:D/C#	1 x 4 0 2 3 2}
+{define:D/E	7 x 1 1 1 1 x}
+{define:D/G	1 3 x 0 2 3 2}
+{define:D5/E	7 0 1 1 1 x x}
+{define:Dadd9	1 0 0 0 2 3 2}
+{define:D(add9)	1 0 0 0 2 3 2}
+{define:D9add6	0 1 3 3 2 0 0}
+{define:D9(add6)0 1 3 3 2 0 0}
+
+{define:Dm6(5b)	1 x x 0 1 0 1}
+{define:Dm7	1 x x 0 2 1 1}
+{define:Dm#5	1 x x 0 3 3 2}
+{define:Dm(#5)	1 x x 0 3 3 2}
+{define:Dm#7	1 x x 0 2 2 1}
+{define:Dm(#7)	1 x x 0 2 2 1}
+{define:Dm/A	1 x 0 0 2 3 1}
+{define:Dm/B	1 x 2 0 2 3 1}
+{define:Dm/C	1 x 3 0 2 3 1}
+{define:Dm(F)	1 x x 3 2 3 1}
+{define:Dm/C#	1 x 4 0 2 3 1}
+{define:Dm9	1 x x 3 2 1 0}
+

PrevHomeNext
Song sheetsUpIndexpage
\ No newline at end of file diff --git a/doc/en/guitartex/x903.html b/doc/en/guitartex/x903.html new file mode 100644 index 0000000..10ed0ad --- /dev/null +++ b/doc/en/guitartex/x903.html @@ -0,0 +1,172 @@ +Indexpage
GuitarTeX
PrevChapter 7. Screenshots and examplesNext


PrevHomeNext
Chord tableUpRelated links
\ No newline at end of file diff --git a/doc/en/guitartex/x929.html b/doc/en/guitartex/x929.html new file mode 100644 index 0000000..1752d90 --- /dev/null +++ b/doc/en/guitartex/x929.html @@ -0,0 +1,219 @@ +Links
GuitarTeX
PrevChapter 8. Related linksNext

Links

LaTeX

  • CTAN: Comprehensive TeX Archive Network + http://www.ctan.org + everything a LaTeX user needs! +

Perl

  • CPAN: Comprehensive Perl Archive Network: + http://www.cpan.org everything a Perl programmer needs! +

Guitar Sites


PrevHomeNext
Related linksUpAcknowledgements
\ No newline at end of file diff --git a/doc/en/info.xml b/doc/en/info.xml new file mode 100644 index 0000000..cdc87e2 --- /dev/null +++ b/doc/en/info.xml @@ -0,0 +1,55 @@ + + + Joachim + Miltz + + January 2002 + Version 2.8 + + 2000-2002 + Joachim Miltz + + + + This program is free software; you can redistribute it and/or modify it + under + the terms of the GNU General Public License as published by the Free + Software + Foundation; either version 2 of the License, or (at your option) any later + version. + + + This program is distributed in the hope that it will be useful, but + WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + details. + + + You should have received a copy of the GNU General Public License along + with + this program; if not, write to the Free Software Foundation, Inc., 675 + Mass + Ave, Cambridge, MA 02139, USA. + + + + + + GuitarTeX is a tool for guitarists who want to print good looking and easy + to play song sheets or song books from their chord or chordpro files. + It uses the well known chord format with several extensions. + The program was developed on a Linux system, but it should run on any + other + Unix system with a Perl/TK environment. + See for installing instructions and + for further requirements. + + +&sflogo; + + + + + diff --git a/doc/en/installation.xml b/doc/en/installation.xml new file mode 100755 index 0000000..bdf7034 --- /dev/null +++ b/doc/en/installation.xml @@ -0,0 +1,134 @@ + + Installation + + + How to obtain GuitarTeX + + The current version can be obtained from the GuitarTeX download page: + . + + + + + Requirements + + GuitarTeX was created under Linux operating system. + It should run with any Linux dristribution and also on any other Unix + system. In addition it requires + + + +LaTeX +Perl +Perl/TK + + +to be installed on your system.To create pdf output, your LaTeX distribution +should also include + +pdflatex + + + + + + + Installing + To install GuitarTeX do the following: + + make sure that LaTeX, Perl and Perl/TK are installed + (see ) + unpack the guitartex archive (for example + in your home directory) + cd to the guitartex-x.x directory + run the following commands: + + make conf (as normal user, this overwrites an existing + config file!) + make install (as root) + + + + + You may now delete the guitartex-x.x directory + + + "make conf" copies the configuration file into ~/.guitartexrc. + you may customize GuitarTeX by changing the configuration parameters + explained below. + + + + + Configuration file + + GuitarTeX looks for a configuration file called .guitartexrc in your +home directory. + Parameters are set in perl syntax, for example: + $language = "de"; + + + + Configuration parameters + + + + parameter + meaning + + + + language + choose your favourite language +tool_tips switch on or off tool tips for +the iconshighlight + switch on or off syntax highlighting + highlight_directive_foreground + highlighting foreground color for directives + highlight_directive_background + highlighting background color for directives + highlight_chord_foreground + highlighting foreground color for chords + highlight_chord_background + highlighting background color for chords + highlight_comment_foreground + highlighting foreground color for comments + highlight_comment_background + highlighting background color for comments + font_size + default font size + color_chorus + default color for chorus sections in printed + output + color_bridge + default color for bridge sections in printed + output + color_instr + default color for instrumental sections in printed + output + color_tab + default color for ascii tablature sections in printed + output + color_second + default foreground color for second voice sections in printed + output + color_second_back + default background color for second voice sections in printed + output + text_viewer + program to view the TeX file created by the export + function + ps_viewer + program to view the postscript file created by the export + function + pdf_viewer + program to view the PDF file created by the export + function + + +
+ +
+ &sflogo; + +
diff --git a/doc/en/introduction.xml b/doc/en/introduction.xml new file mode 100644 index 0000000..58f69ff --- /dev/null +++ b/doc/en/introduction.xml @@ -0,0 +1,125 @@ + + Introduction + + + First of all: my written English isn't perfect, but I hope this text will + help you nevertheless! For suggestions see .. + + + + GuitarTeX is a tool for guitarists who want to print good looking +and easy to play song sheets or song books from their chord or chordpro files. +It uses the well known chord format with several extensions. + + + It is based upon an idea of Martin Leclerc and Mario Dorion from + Canada + and their program Chord (Version 3.5 from 1993). To use GuitarTeX, you + need + to have knowledge of the Chord program (explained later). Though the LaTeX + text processing system is used by GuitarTeX, you don't have to know very + much + about it. GuitarTeX produces Postscript or PDF output automatically (if + you + want). The Chord directives supplied by GuitarTeX are described in + . + + + + +Features +Graphical user interface with integrated editor and syntax +highlighting + Prints good looking song sheets including +guitar chords without using monospace fonts + Output formats: LaTeX, Postscript and PDF + Compatible with ChordPro format, import function for ascii + format +Support for music typesetting with the LaTeX packages +MusixTeX, MusixLyr and TabDefs + Flexible page +layout (paper size, margins...) User defined +colors for different parts of a song (e.g. verse, chorus) + Optional printing of chord symbols at the end of a + song + Transpose up or down your song by mouse + clicks + Creates single song sheets or complete song books with a title + page, + table of contents, headlines with page numbering, chord table and + index + Supports ASCII tablature and the built in tablature directives + for + guitar + and bass tabs + Support for multiple languages (if you don't find your + langauage, you + can + help the author to add it) + Runs on Linux operating system (it should run on any Unix + system that + is + supported by Perl/TK and LaTeX, but it is not tested) + Setup your song book project from single song files with the + include + directive + LaTeX commands may be used in Chordpro files (for the + professionals) + + + + GuitarTeX converts a file with lyrics and chords in a special format to a + LaTeX file. Here is an example input file: + + + {title:The Manual Song} +{st:No-one has yet claimed responsibility} +[D]I print verses [A^7]in a [D]row, +The next line gets put [A^7]down be[D]low, +Mumble mumble [A^7]rhymes with [D]grow [G] [G#] [A] +Done this verse, now [A^7susX]on we [quietly]go! + +{soc} +[D]This is the [Bm]manual song +[A^7]No-one really knows what's [D]goin' on +[D]This is the [F#m]manual song +[A^7]And now the chorus is already [D]gone +{eoc} + +[D]The second verse is [A^7]like the [D]first, +The music poor, the [A^7]verse is [D]worse, +I wrote this since [A^7]I'd get [D]sued, +If I used real songs. [A^7]This'll [D]do. + +{c:repeat chorus} + + + The ^-sign is new for users of other Chord clones. + It makes the following characters appear superscript. + You can see the output in . + + +
+ Print output from example file + + + +
+ + + GuitarTeX converts the Chord format into "normal" LaTeX format like a kind + of preprocessor. This may be a single song or even a complete songbook. + You may as well translate your chord file directly into postscript or PDF + format. + + + + If you know LaTeX, you may edit the output file. The advantage of + GuitarTeX is that you can use all LaTeX features to design a single song + sheet or songbook, e.g.: packages like graphics or MusicTeX, table of + contents, marginal notes, and so on. + + + &sflogo; + +
diff --git a/doc/en/latex.xml b/doc/en/latex.xml new file mode 100755 index 0000000..65adaa7 --- /dev/null +++ b/doc/en/latex.xml @@ -0,0 +1,237 @@ + + Using LaTeX commands and packages + +
+ Latex commands + + As I mentioned in the introduction, you don't have to know very + much about LaTeX to use GuitarTeX. You can use it even if you don't know + anything about LaTeX. + + + + If you are familiar with LaTeX you can use any feature of it to improve your + song sheet or book. All lines of your chord file that begin with a backslash + will be left untouched by GuitarTeX. You may test this by inserting a simple + LaTeX command like this: + + + + LaTeX command in chord file + \marginpar{test} + + + The result will be a marginal note with the word test. + + + The LaTeX commands will be executed at the position they appear in the chord + file. + But sometimes you may want to add a command to the preamble, e.g. to include + other + LaTeX packages. This can be done using the preamble + directive: + + + + LaTeX command to be placed in the preamble + {preamble:\usepackage(fancyheadings)} + + + + The preamble directives may occur anywhere in your song. + They are added to the LaTeX preamble in the same order they appear in the + chord file. + +
+
+ LaTeX packages MusixTeX, MusixLyr and TabDefs + MusixTeX is a powerfull LaTeX package for music typesetting.MusixLyr +and TabDefs are additional LaTeX packages to improve lyrics and tablature +typesetting with MusixTeX. You may use these packages within GuitarTeX by +including one (or more) of the following directives (anywhere in your Chord +file): + + + +{musixtex} +{musixlyr} +{tabdefs} + + + +You must have installed the packages correctly before you may use them in GuitarTeX! +Please read the documentation that comes with the packages. + + + +After this you may use LaTeX code for MusixTeX, MusixLyr or TabDefs at any place +in your Chord file or better include them using the include directive +(for Examples see ). + + + + + +By the way: please pay attention to the first words of the MusixTeX manual: + + + +"If you are not familiar with TeX at all I would recommend to find another +software package to do musical typesetting.Setting up TeX and MusiTeX on your +machine and mastering it is an awesome job which gobbles up a lot of your time +and disk space. But, once you master it..." + + +So you will understand that the Author of GuitarTeX cannot give +any support for installing or using MusixTeX, MusixLyr or TabDefs. + + +
+ Examples + + +MusixTeX + + + + + + + + +MusixTeX example + + + + + +{musixtex} + +{soc} +[D]This is the [Bm]manual song +[A^7]No-one really knows what's [D]goin' on +[D]This is the [F#m]manual song +[A^7]And now the chorus is already [D]gone +{eoc} + +\hsize=100mm +\generalmeter{\meterfrac24}% +\parindent 0pt +\setsign1{-3} +\startpiece\bigaccid +\NOtes\qu{ce}\enotes +\bar +\NOtes\qu{gh}\enotes +\bar +\NOtes\qu{=b}\enotes +\Notes\ds\cu g\enotes +\bar +\NOtes\qu{^f=f}\enotes +\NOtes\qu{=e}\itied0e\qu{_e}\enotes +\bar +\Notes\ttie0\Qqbu ed{_d}c\enotes +\bar +\Notes\ibu0b{-2}\qb0{=b}\enotes +\notes\nbbu0\qb0{=a}\tqh0N\enotes +\Notes\Dqbu cf\enotes +\NOtes\uptext{\it tr}\qu e\uptext{\it tr}\qu d\enotes +\bar +\NOtes\qu c\qp\enotes +\setdoubleBAR +\stoppiece +\bigskip + +[D]The second verse is [A^7]like the [D]first, +The music poor, the [A^7]verse is [D]worse, +I wrote this since [A^7]I'd get [D]sued, +If I used real songs. [A^7]This'll [D]do. + + + + +Metronomic indication + + + + + + + + +Metronomic indication + + + + + +{musixtex} +{title:The Manual Song} +{st:No-one has yet claimed responsibility} + +\notes\metron{\qu}{60}\en + +[D]I print verses [A^7]in a [D]row, +The next line gets put [A^7]down be[D]low, +Mumble mumble [A^7]rhymes with [D]grow [G] [G#] [A] +Done this verse, now [A^7susX]on we [quietly]go! + + + +Enhanced lyrics typesetting with MusixLyr + + + + + + + + +MusixLyr example + + + + + +{musixtex} +{musixlyr} + +{soc} +[D]This is the [Bm]manual song +[A^7]No-one really knows what's [D]goin' on +[D]This is the [F#m]manual song +[A^7]And now the chorus is already [D]gone +{eoc} + +\par{ +\hsize=120mm +\setlyrstrut +\resetlyrics +\setlyrics{Winter1}{Win-ter a-de\rlap{,} a-ber dein Schei-den macht\rlap{,}} +\setlyrics{Winter2}{schei-den tut weh\rlap,} +\assignlyrics1{Winter1,Winter2} +\generalmeter{\meterfrac34} +\generalsignature2 +\setsongraise1{-2mm} +\startpiece +\NOtes\qa{ffe}\en\bar +\NOTesp\hup d\en\rightrepeat +\assignlyrics1{Winter1}% +\NOtes\qa{fgh}\en\bar +\NOtes\qa h\en +\Notes\beginmel\Ibu0gf1\qb0g\endmel\tqh0f\en +\NOtes\qa g\en +\endpiece +} + +[D]The second verse is [A^7]like the [D]first, +The music poor, the [A^7]verse is [D]worse, +I wrote this since [A^7]I'd get [D]sued, +If I used real songs. [A^7]This'll [D]do. + + +
+ +
+ &sflogo; + +
diff --git a/doc/en/links.xml b/doc/en/links.xml new file mode 100644 index 0000000..68d22e6 --- /dev/null +++ b/doc/en/links.xml @@ -0,0 +1,52 @@ + + Related links + +
+ Contacts + + To contact the author or other GuitarTeX users use + the mailing list: + +
+ +
+ Links +
+ LaTeX + + + CTAN: Comprehensive TeX Archive Network + + everything a LaTeX user needs! + + +
+ +
+ Perl + + + CPAN: Comprehensive Perl Archive Network: + everything a Perl programmer needs! + + +
+ +
+ Guitar Sites + + + Top 100 Guitar Sites! + + + + Chordpack (another LaTeX based typesetting program for guitarists) + + + +
+ +
+ &sflogo; + +
diff --git a/doc/en/sflogo.xml b/doc/en/sflogo.xml new file mode 100644 index 0000000..238c97e --- /dev/null +++ b/doc/en/sflogo.xml @@ -0,0 +1,13 @@ + +hosted by +Sourceforge.net + + + + + +SourceForge Logo + + + + \ No newline at end of file diff --git a/doc/images/.xvpics/musixtex2.png b/doc/images/.xvpics/musixtex2.png new file mode 100644 index 0000000000000000000000000000000000000000..46749444983b993debc279a1c670ac3992eace02 GIT binary patch literal 4449 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 BNVxz2 literal 0 HcmV?d00001 diff --git a/doc/images/chords.png b/doc/images/chords.png new file mode 100644 index 0000000000000000000000000000000000000000..2863ec539f833a6cf4e67d0aec1b9b6d82bfa257 GIT binary patch literal 25404 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 literal 0 HcmV?d00001 diff --git a/doc/images/color_selector.png b/doc/images/color_selector.png new file mode 100644 index 0000000000000000000000000000000000000000..34f5858d10fd3de69533cec5d6c3ec7372d168d5 GIT binary patch literal 6296 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 literal 0 HcmV?d00001 diff --git a/doc/images/icons.png b/doc/images/icons.png new file mode 100644 index 0000000000000000000000000000000000000000..9c13c80ba3217707f424ada69a57e9fd931068df GIT binary patch literal 977 zcmeAS@N?(olHy`uVBq!ia0y~yU=jwhWjWY@q=4DGS|G)e?&#~tz_78O`%fY(kk6Ln z?e46Zi*OQ%J7*%&K&PMT#gbApPe?;IbGNlVoH z)Kol!gw=&7sjNJ??Ef>1y>s@}+Q%-hzwUeeWnJja$F`65$!F%y>AMp+>HE?nlB=gw zJT{Ha_Rahs=fu8nq1anXx7VFt?Bra|Z@pK$Ij&y#YP#Aq=BfPi_5~bUxh(nLzVBsk zY{R0XGahftvCBHXmhI5DQ~%|v?eA~@GU3?za(Ayexe_;bZ+>;=$gQ4i-GaAeOT&+! zzCCT9Ug?wXp;d48-j!OeT$W>+|NrvomDTzyU6Zxn&aT>jXxW!5i{$rA=QzH2@7>(9 zM~aruKA(~uC;NQ6{@uJ5NyWQ06XxuXi(7T3P`dl}YTnd8d2@9YqpZc`4&Jq6+?>j` z&Fn+AaMw?>?Bz!NCd@ge{ck@78Q$6vcx5_yio?3bO zqD5YEVfEI9J@;=pT?|yScMmq5siC{A=E<>`Xk$U$b8r4Wd1dGqZ9Q$d!E^6ZYi5-k z)67@wpZ(AMR@|26cwhd^KW@%9&sDFko1MIKm+k(%*XOU?vD^QC?f0wPODA6nY`)@= z)p_Awb@)yHZ}Z(>NqU~0#d(NZ`OB=%turz{dcG82v9s>CYKCbNAU-|mR*5z^iws&T6dQLj>D8*@#ifN${ z*2FUTo&0j&^2+^R{5&)Zv8Of3g_n(m&F9=dw^umGYfc}>%E?!R7H$!;;@}mGQeLa> s^m1v5i`&bZS?eyRzvu9rWU_Am{J3xT#ZTm40%kS_Pgg&ebxsLQ0F6A#V*mgE literal 0 HcmV?d00001 diff --git a/doc/images/index.png b/doc/images/index.png new file mode 100644 index 0000000000000000000000000000000000000000..d8a141671d8d1fa464e4bcd8f3061353b4a14bb9 GIT binary patch literal 48695 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 AW&i*H literal 0 HcmV?d00001 diff --git a/doc/images/latex.png b/doc/images/latex.png new file mode 100644 index 0000000000000000000000000000000000000000..5787b40242896847571a1339c3587c671a90a8ad GIT binary patch literal 2001 zcmV;?2QK)DP)X4TvZjvKli@-=DnFW(=OYkNZqthO*M^zrKW!v zgQXHvjSZ#={vcRQ2u8q=Xc7M4hbAO#wgyXsfc%Pq263qtg(i|J2B{RRtOZI1S=zE} z*>-n!x7{Ca-psuF?(vT|yZr&}BHEL@%zHEEzWX`fd(OFc6f@Ymb?YQa5}M5>^?IE& zP06wh=iKyXy7p zHU>a5<<@e zP^;Buayh|Dr4sG!?L<*T5Ckk=zMQVEE&%yZ0M5Dp3gCDM$dx-C#EbwR)=H%kK@iLc zF(ZJ;`zrT=EDS^X`ua`_aYg}r-)CT8;It4kR>A+Oz=jPQu+~mr&1Ms8ElZa!rKhJy z&M3g9O`CY9?*MUag6iNQ4j(#5|2u~mpQzE_-%n3Z&;L&WrQTcSzV9=C!TAgg4H1

CYw0AH(I*g}t|1+vUnx+8EnpMG54t;h9Q6c|s-Z`T=fQWoVDRr1rbgC@N5Rqw+ z_lxxXV6)7k#L{fk(IN!C!Zw7USYh6|iX)?gIl#~E9y+vY^>*IueU=6Dm(Ve19ut%C z^mE*p$9JxNl9zW~h*An;3|i}HkXzReum#cuMI}mwLQcAB^>%6R{DuH?fzGd8{%2XZc&z{nfCVd7-YW|iua*A(eit^*!QNq+qX|f2m9rQwYz1}g;&e#dv?j5mv+d% zUwuK|c;z|S)_u1CV&3e1meGUV=KynnaN+r9^Xgsz&IPChPjlY{nL2DmKCm!ObK zQ2>IAFTS{~ID5|2GL`_GcO8yix_&-Rl8g}7p34V%9dyi@$Kjz@dGfd4=Emzh?tI{j z0Ic8GWYKxE`SsRcvi)~gGCp>cq?S-FM+ByTQbOS8yR6yM^V1@57EoWaX3gvagVTBB z@+`fV>#n+jKR#`EY4c*iE}I1`|@6%`P()g ze`pm)Mn|w|iti~(flnA1w03A|DbSjz4yYwdmUsuAK9*%TnvN4iWsZ!FB4R0p0kdb9DTbPY@8Kym6(71aQ38y2 zc6OdzV=@I$ZttKNL|AL7*X!JNdlkf?l|v(F$awXzd zn-z~eaUXwp_^Vv>@lUhp6HEAU*M1s}I$4_Hxr{7LaL$6W(@P*zkq!(D>=-yyBPX=fX(P+?^7;Z_Dp_NcDnlKDlf3v0-UW8V{#N-4cLse=?je^nKdQCvB-ofN# z5#JNq+vXC-F;P?^vvxWMjyLbP%BTUch+wUyzkiabSOF1yPZJhHHg})Hk8XP#tpsbE z*m@m>BMb~tSRjf5%B7G>DI_Rpu$Hvhz%>&zaKWPaC+vm-*j7adFad}vT+coC`Mh=D zPsGUtH?MnxkIu{2wzu~;ygT?h_2hflEXDKSthO@BWf%imD~f@p92%TW@iY{Cg@{9o z1;cv)Qed(becl7~{akzPwR~*Bw-_26pgKH^xWlx~iYOI7hqIsM$k8KsK)F<)6c+Kc zLutTTTtSoh8W98HP%cA>1v0SqJpdU~9U?b1wZ&T70C5xpALjrO(q@8fHnCZXF&;)M z3O;yRgL8-{NG6zqLY#+7Gw?Kspt6&y;3SX}?u{{o1)sLr6-uE&T#7WJs2`Rv|-W8A>vovw7rc zh7*U96p?(*owBXT0qm*&wNBaGx$V-~(FP_2TL%+jt;Jxc@AKkm32N&YV{#uuejF#n jn3j*Vw0_{NgTwp>3bfrIvsZ*v00000NkvXXu0mjfBOR?) literal 0 HcmV?d00001 diff --git a/doc/images/manualsong.png b/doc/images/manualsong.png new file mode 100644 index 0000000000000000000000000000000000000000..492f77eab78db4b01420fedc1880db9de71f4bb5 GIT binary patch literal 29092 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

R21mkX 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 literal 0 HcmV?d00001 diff --git a/doc/images/musixtex1.png b/doc/images/musixtex1.png new file mode 100644 index 0000000000000000000000000000000000000000..d2b33a87a727c68d80a54d001938c0d11238a31b GIT binary patch literal 25124 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

I|IS~4M`$tt literal 0 HcmV?d00001 diff --git a/doc/images/tablat3.png b/doc/images/tablat3.png new file mode 100644 index 0000000000000000000000000000000000000000..5b32f76afd827696d57d753d8b8bf46d68a7d77f GIT binary patch literal 2399 zcmX9=2{>C>8$Kvelz)mrZS7EvT0+%Q>rhInMM-Oj2x=KcjeV;``CFw_e-lYni5OdG zWkijV3Z1bOgKBJPg-$K81XD(oSmyFS_qq3;d(M5%x4iHBeJ9J!#qpTL2?+qeF{G2d zI{-qn(AZgA40^g;BRfGau>faBd$50Sm9|#>49y(<$;m4Q0LkMAx6peIZU>r##Uigd zz}^cj_Hk@xceSO2P4SMLt!m1#tkRI5zh=kTbt#+A0BX(Eu(2{KUnApoMQN;DWn| z?)aHep9{bJ0?!uX=mXH@!YjSQ<*Vvh|A0!R>I>*EUgW;8Z3@%;ufG{js}%N+0$}YL ztvr0g_`d&!N8}_Exog|(v(j-w6tssDV^3U&cO#ag8=6qM@~10`{Bx$GxB*l+ZT1*L z$ti13*so=Lc4@Y|FFLHQ44#jUk;nP5WkA~V&H)1FY3*9LmyEjAa6g_yxM`7bTLFNZ zXQH+~&~-;hiy7gP&}VK;F93?)MO8}uQ)B5#H1^lt(HJgp_M91=xU%@gyX5JM${R$_ zuIP+YX)K+1x5=rv-NuFYFXvVVYTe+0lkgn1rn%myU-xxn`sk<2sZH;Rmp41AG1etRd>=|z?!UdVt$StV@3 z{xXniq`xjJ9xTJyBCf_L2#*9+QtK9M1Ew%Z>CX*wj!BfxtFeN@e{^(nE-5N{u zK)E$-Hgs_t<+{Hzj{udkK8thU4ivNQ ztt*_zNA7hj2?G@@?+RPyP64;KJDV_+d>erk_JL3iu+}4@{-vO;|gF``b-n;Oqg1lGe1}ErV&L6jJj;57$ zHC)=fQ5`@X$Fu}hDb4rL$iv>D^fGXK5bj?b_1A=0h_vs1i+cGE3$Boow?5RXURS8u4q71Te$=4uA6nq9_9ukQth8a+3d_R{fdR^n zlDneqv00v`T5Qf_f0^o;&r9pf))>s#YAax8yi zc!Mf3c)&0(--WH1fntj>*5=d`#t>`s=PfI5NOf9H=D8EBm8ELc)B4LLfm-uXYm}7! zmG_iJQpd_FhHQO()>XaPe$Nze6~Tu)dMb)8a`?eT##IZ|#!_0g{~ z3K>vo9;$6|8-WU?oWuX-R{J5!s*mf6f%Z~G?6zLjp}H2Bu~?j2tawv%$1~#o|=+K%T-4D zbjJ_Ez`#XXm9X3Hxfkw>Rz_!+RnsIM$=(b#rxX64;!Nq@CB*1R;)lnYPz~C^AQkUJ z4dFGhsuT7w75^yot-IQxdDZ4S5njaL;E>^o+k8w`&@$$aSJTV$T@$$|Q|sLH)wQW( zjHB~Hhp0K0?X-I)Rq8IiuHbWjOHa6KjoW#msAgAb0KkG~@g$p#wD51l+Wi8;Q=&Mlc{QDvtd8_FoU5h_(78aRNa<&>V667^HnKXOnuXm?^f|{z5 zVNrK`^!$&MHtK)4_p4Jx3%5#`0j3UqFMoXwFc|;M8 z0w4=@#!cAdK}W^bB(PqU#pAce0QmGHl}LliBBT&?#O{;06i8?2%*iU=sL$-+9Agj} z>O0+AU+ixxWL4S*6lp(y?;gV4aN+im5XFmjjjV-Oa|>ERKC@LL%Z}m(m%E&uKl84T z{*si`s{W82ZY;ZMrSycLH84;0hw s5zuMkO{o+}JEcev0tQD8L;I@!274~y`IkE^==1@Q4led}c7Eyq0$E{{sQ>@~ literal 0 HcmV?d00001 diff --git a/doc/images/tablat4.png b/doc/images/tablat4.png new file mode 100644 index 0000000000000000000000000000000000000000..136871693be23c75ae1ba7f63ba50d36f9a1f64b GIT binary patch literal 3488 zcmYLM2|QHo8Xx*fQ8J9O_ZjjblaM8nZJ0)pnNSF2Zx~D2qDXz18BB{0Su2W}(2ysH3n4)9-C_4)(-$_LHEXs5`Meiq7LFEf|#AAKgH|3`L=c3_qEFJcll6@HwQ zJ-NUqC1F0v{Asv)7d5ggY`mWb4u_LoM}GRii$o#=HG_M>L9LmbMj$9Q4`4)~(57de zD0~^h>&?EJ0+Y*{I%E->8Ulf^->`nB(9fc;XnRHL*18n`VS)Emfk&fb_bwb1A$FZW zBax+qEtTqxy#ACqgCVc-G@W&SVcg5pm4RA^O58txkPsl^FCYWP2Qhm-hDAvK^pSvE zXRP&}0FOsTF5NYAWKxY)XZ)r3!t7$ViPD--DCVEDsNOI;)XC=!U!1eXck1R%E|*cJ zO~HUgHFlvQe>@3l>IjzhLqJXsmt8bD&w3#*IxwY`oRa)9h5e-e8A7DPR-~%Wv6gZk z+5glN#SAAFjN*btqdR!r?6T}%doBHNmo{If4T_s$9@D2@D3Ydvz=+Y|UkW5;VQ3Q= zf-k=)FML3%M$cF`J!V4ZDw;MnzOpy3K}jede?z}+Ugksv?6jbS9IDT(X$-3b|L~PJ zS}4g~9K>hKNVC1ynrE=PIaQD^)Vj1eQJ0XVdd~S1MQh}HA)e?}ydGx8oOy<4H2Ve} zMJv((By2G}gj*r8bIw zbrf9LxhORgE|xb_^YBPY7t$n|RXNmAP;ok+BkZypqnZQqaAK5(4EF1AUHWl-{B|vAwGXWHd_c*Mm>m4>NKBx~avyreow+?>r8;x9 z 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 KMNUMnLSTXs;{$B~ literal 0 HcmV?d00001 diff --git a/doc/images/tablature2.png b/doc/images/tablature2.png new file mode 100644 index 0000000000000000000000000000000000000000..03fd0fc3a375a725a0f86003ed1bf12d05a92130 GIT binary patch literal 14080 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 literal 0 HcmV?d00001 diff --git a/doc_de.html b/doc_de.html new file mode 120000 index 0000000..b928629 --- /dev/null +++ b/doc_de.html @@ -0,0 +1 @@ +doc/de/guitartex/book1.html \ No newline at end of file diff --git a/doc_en.html b/doc_en.html new file mode 120000 index 0000000..f5a26be --- /dev/null +++ b/doc_en.html @@ -0,0 +1 @@ +doc/en/guitartex/book1.html \ No newline at end of file diff --git a/gtx2tex.pl b/gtx2tex.pl new file mode 100644 index 0000000..acd5875 --- /dev/null +++ b/gtx2tex.pl @@ -0,0 +1,614 @@ +#!/usr/bin/perl + +use File::Basename; +use Cwd; +use Getopt::Long; + +GetOptions( "output=s" => \$output, + "lyrics" => \$lyrics, + "verbose" => \$verbose, + "italian" => \$italian, + ); + +$usage = "This is gtx3tex 2.8 +usage: gtx2tex [--verbose] [--lyrics] [--output=ps|pdf] +options: +--verbose lets gtx2tex tell you what it is doing +--lyrics print only lyrics +--output=ps|pdf specify the output format; without the + output option a tex file is created +--italian changes chord output to italian notation + (La, Si, Do, Re, Mi, Fa, Sol)"; + + +if ( ! $ARGV[0] ){ + die "$usage\n"; +} + +$verbose && print "This is gtx2tex\n"; +$verbose && print "$output\n"; + +$libpath="/usr/local/lib/guitartex"; + +# load configuration file +$home=$ENV{"HOME"}; +$verbose && print "home=$home\n"; +do "$home/.guitartexrc" or die "cannot load guitartex.conf"; + +$workdir = cwd; + +$verbose && print "work directory: $workdir\n"; + +if ( $ARGV[0] =~ /^\// ){ + $filename = $ARGV[0]; +}else{ + $filename = $workdir . "/" . $ARGV[0]; +} + +$outfilename = basename($filename); +$dirname = dirname($filename); +$outfilename =~ s/\.(.*?)$//; # Suffix entfernen +$verbose && print "input file name is: $filename\n"; +$verbose && print "output directory is: $dirname\n"; +$verbose && print "output file name is: $outfilename\n"; + +chdir $dirname; + +$env = "normal"; +$space = "~"; +$empty_line = "\n"; +$new_page = "\\newpage\n"; +$sharp = "\$\\sharp\$"; +$flat = "\$\\flat\$"; +$chorus_begin = "\\begin{chorus}\n"; +$chorus_end = "\\end{chorus}\n"; +$bridge_begin = "\\begin{bridge}\n"; +$bridge_end = "\\end{bridge}\n"; +$instr_begin = "\\begin{instr}\n"; +$instr_end = "\\end{instr}\n"; +$tab_begin = "\\begin{gtxtab}\n"; +$tab_end = "\\end{gtxtab}\n"; +$define = ""; + +#load language file +do "/usr/local/lib/guitartex/language/$language.pl" or die "cannot load language + file $language.pl\n"; + + +# Leerzeichen im Dateinamen in Unterstriche ändern +$outfilename =~ s/\s/\_/g; + +# open output file +open ( TEX, ">$outfilename.tex" ) || die "cannot open output file"; + +# LaTeX-Header ausgeben +latex_header(); + +$chaptercount = 0; + +# Eingabedatei zeilenweise bearbeiten +while ( ) { + # Zeichen für Zeilenende abschneiden + chomp; + # wenn am Anfang der Zeile { steht, handelt es sich um eine Direktive + if ( /^{/ ){ directive(); next; } + # Leerzeile + if ( /^$/ ){ print TEX "$empty_line\n"; next; } + # wenn am Anfang der Zeile % oder # steht = Kommentar + if ( /^[%#]/ ){ next; } + # wenn am Anfang der Zeile \ steht = Latex-Kommando + if ( /\\.*/ ){ print TEX "$_\n"; next; } + # innerhalb einer Tabulatur + if ( $env eq "tab" ) { + print TEX "\\footnotesize \\verb!$_! \\normalsize \\newline\n"; next; + } + crdpro(); + } + # LaTeX-Footer ausgeben + latex_footer(); + + system ( "rm -f $outfilename.tmp" ); + + $output eq "ps" && create_ps(); + $output eq "pdf" && create_pdf(); + + + sub create_ps { + $verbose && print "creating postscript\n"; + system ( "rm -f *.log *.aux *.ilg *.idx *.ind *.dvi *.toc *.mx1 *.mx2" ); + system ( "latex --interaction batchmode $outfilename" ) && die "error in first LaTeX run"; + if ( $document_class eq "book" ){ + system ( "makeindex $outfilename.idx" ) && die "error while creating index"; + } + if ( $musixtex eq "yes" ){ + system ( "musixflx $outfilename" ) && die "error in musixflx run"; + } + if ( $document_class eq "book" or $musixtex eq "yes" ){ + system ( "latex --interaction batchmode $outfilename" ) && die "error in second LaTeX run"; + } + system ( "dvips $outfilename" ) && die "error while converting from dvi to postscript"; + system ( "rm -f *.log *.aux *.ilg *.idx *.ind *.dvi *.toc *.mx1 *.mx2 $outfilename.tex" ); + } + + + sub create_pdf { + $verbose && print "creating pdf\n"; + system ( "rm -f *.tpt *.log *.aux *.ilg *.idx *.ind *.dvi *.toc *.mx? *.mx2" ); + system ( "pdflatex $outfilename" ) && die "error while creating pdf output"; + if ( $document_class eq "book" ){ + system ( "makeindex $outfilename.idx" ) && die "error while creating index"; + } + if ( $musixtex eq "yes" ){ + system ( "musixflx $outfilename" ) && die "error in musixflx run"; + } + system ( "pdflatex $outfilename" ) && die "error while creating pdf output"; + system ( "thumbpdf $outfilename" ) && die "error while creating pdf thumbnails"; + system ( "pdflatex $outfilename" ) && die "error while creating pdf output"; + system ( "rm -f *.tpt *.log *.aux *.ilg *.idx *.ind *.dvi *.toc *.mx1 *.mx2 $outfilename.tex" ); + } + + + +sub crdpro { # Bearbeitung der Zeile aus der Eingabedatei + if ( $lyrics ){ + s/\[.*?\]//g; # Akkorde entfernen + print TEX "$_\\\\\n" unless ( /^\s*$/ ); + }else{ + + s/\s/$space/g; # alle Leerzeichen durch feste Leerzeichen ersetzen + s/(\^)(.*?)(\])/\\\(^\{\2\}\\\)\]/g; # Ziffern hochstellen + + s/\[/\}\\gtxchord{/g; # linke Klammer ersetzen + s/\]/}{/g; # rechte Klammer ersetzen + # s/(\})(.*?)(\\)/}{\2}\\/g; # Text zwischen Akkorden in geschweifte Klammern setzen + s/$/}/; # rechte Klammer am Ende der Zeile ergänzen + s/^\}//; # rechte Klammer am Anfang der Zeile entfernen + if ( $_ !~ /^\\/ ) { s/^/\\gtxchord\{\}\{/ } + + s/#/$sharp/g; # Vorzeichen "#" ersetzen + s/\{Ab/{A$flat/g; # Vorzeichen "b" ersetzen + s/\{Bb/{B$flat/g; + s/\{Cb/{C$flat/g; + s/\{Db/{D$flat/g; + s/\{Eb/{E$flat/g; + s/\{Fb/{F$flat/g; + s/\{Gb/{G$flat/g; + if ( $italian ) { + s/gtxchord\{D/gtxchord{Re/g; + s/gtxchord\{E/gtxchord{Mi/g; + s/gtxchord\{F/gtxchord{Fa/g; + s/gtxchord\{G/gtxchord{Sol/g; + s/gtxchord\{A/gtxchord{La/g; + s/gtxchord\{B/gtxchord{Si/g; + s/gtxchord\{H/gtxchord{Si/g; + s/gtxchord\{C/gtxchord{Do/g; + + s!/D!/Re!g; + s!/E!/Mi!g; + s!/F!/Fa!g; + s!/G!/Sol!g; + s!/A!/La!g; + s!/B!/Si!g; + s!/H!/Si!g; + s!/C!/Do!g; + + } + print TEX "$_\\\\\n"; + } +} + + +sub directive{ + if ( /{soc}|{start_of_chorus}/ ) { $env = "chorus"; print TEX "$chorus_begin"; + }elsif ( /{eoc}|{end_of_chorus/ ) { $env = "normal"; print TEX "$chorus_end"; + }elsif ( /{sob}|{start_of_bridge}/ ) { $env = "bridge"; print TEX "$bridge_begin"; + }elsif ( /{eob}|{end_of_bridge/ ) { $env = "normal"; print TEX "$bridge_end"; + }elsif ( /{soi}|{start_of_instr}/ ) { + $env = "instr"; + print TEX "$instr_begin" unless ( $lyrics ); + }elsif ( /{eoi}|{end_of_instr/ ) { + $env = "normal"; + print TEX "$instr_end" unless ( $lyrics ); + }elsif ( /{sot}|{start_of_tab}/ ) { + $env = "tab"; + print TEX "$tab_begin" unless ( $lyrics ); + }elsif ( /{eot}|{end_of_tab/ ) { + $env = "normal"; + print TEX "$tab_end" unless ( $lyrics ); + }elsif ( /{np}/ ) { + print TEX "$new_page"; + }elsif ( /{even}/ ) { + print TEX "\\ifthenelse{\\isodd{\\thepage}}{}{\\newpage ~}"; + }elsif ( /{title:|{t:/ ) { + s/({.*:)(.+)(})/\2/; + if ( $document_class eq "book" ){ + print TEX "$define" unless ( $lyrics ); + } + print TEX "%\n%----- New Song -----\n"; + print TEX "\\newpage\\addcontentsline{toc}{section}{$_}\n"; + if ( $output eq "pdf" ) { print TEX "\\pdfdest name {$_} fith \\pdfoutline goto name {$_} {$_}" } + print TEX "\\begin{center} \\section*{$_}\\end{center}\n"; + $define=""; + print TEX "\\index{$_}"; + $song_title = $_; + $verbose && print TEX "\\typeout{$_}"; + }elsif ( /{subtitle:|{st:/ ) { + s/({.*:)(.+)(})/\2/; + print TEX "\\index{$_!$song_title}"; + print TEX "\\begin{center}$_\\end{center}\n"; + }elsif ( /{margin:|{m:/ ) { + s/({.*:)(.+)(})/\2/; + print TEX "\\marginpar{$_}\n"; + }elsif ( /{comment:|{c:/ ) { + s/({.*:)(.+)(})/\2/; + print TEX "\\textit{$_}\\\\\n" unless ( $lyrics ); + }elsif ( /{second:|{2:/ ) { + s/({.*:)(.+)(})/\2/; + s/\s/$space/g; #Leerzeichen durch feste Leerzeichen ersetzen + print TEX "\\colorbox{second_back}{\\textcolor{second_text}{$_}}\\\\\n" unless ( $lyrics ); + }elsif ( /{chapter:/ ) { + $chaptercount++; + s/({.*:)(.+)(})/\2/; + if ( $document_class eq "book" ) { + print TEX "$define" unless ( $lyrics ); + $define = ""; + print TEX "\n\\chapter{$_} \\fancyhead[CO]{$_}\n\n"; + if ( $output eq "pdf" ) { + $count = $titlecount[$chaptercount]; + $verbose && print TEX "% chapter: $_, $count entries\n"; + print TEX "\\pdfdest name {$_} fith \\pdfoutline goto name {$_} count $count {$_}" + } + $verbose && print TEX "\\typeout{$_}"; + }; + }elsif ( /{define/ ) { + s/\{//; + s/\}//; + s/define//; + s/://; + s/base-fret//; + s/frets//; + s/[Xx]/-1/g; + s/- /-1/g; + s/-$/-1/g; + s/-1/x/g; + @def = split(" ",$_); + @def[0] =~ s/#/\\#/g; + #$define .= "\\mbox{\\begin{picture}(20,18)\\special{\"0 0 moveto "; + #$define .= "($def[0]) $def[2] $def[3] $def[4] $def[5] $def[6] $def[7] $def[1]"; + #$define .= " 0 dots}\\end{picture}}\n"; + $define .= " ~\\gchord{{$def[1]}}{$def[2],$def[3],$def[4],$def[5],$def[6],$def[7]}{$def[0]}"; + }elsif ( /{guitartab:/ ) { + print TEX "\\guitartab\n" unless ( $lyrics ); + newtab() unless ( $lyrics ); + }elsif ( /{basstab:/ ) { + print TEX "\\basstab\n" unless ( $lyrics ); + newtab() unless ( $lyrics ); + } + +} + + +sub newtab { + if ( /{guitartab:/ ) { $guitartab="yes" } else { $guitartab ="no" }; + s/({.*:)(.+)(})/\2/; + s/\]\[/\]~~~\[/g; #fill in fixed spaces between notes + s/\_/~~~/g; #fill in extra space + s/\s/~/g; #replace spaces with fixed spaced + s/\]&\[/\]\[/g; #chord + s/\[1;/\[2.5ex;/g; + s/\[2;/\[4.5ex;/g; + s/\[3;/\[6.5ex;/g; + s/\[4;/\[8.5ex;/g; + s/\[5;/\[10.5ex;/g; + s/\[6;/\[12.5ex;/g; + if ( $guitartab eq "yes") { + s/\|/~~~\[3.7ex;\|\][5.7ex;\|\][7.7ex;\|\][9.7ex;\|\][11.3ex;\|\]~~~/g; + }else{ + s/\|/~~~\[3.7ex;\|\][5.7ex;\|\][7.3ex;\|\]~~~/g; + } + s/\[/\\gtxtabs{/g; + s/\]/\}/g; + s/;/\}\{/g; + print TEX "$_\n\n"; +} + +#------------------------------------------------------------------------------- +# subroutine latex_header +# +# write the start of the LaTeX file +#------------------------------------------------------------------------------- + + +sub latex_header { + + includes(); + + $document_class = "article"; #default document class + if ( $output eq "ps" ){$geometry = "dvips, "} #default geometry parameter + $preamble = ""; #default preamble parameter + $musixtex = "no"; + $musixlyr = "no"; + $tabdefs = "no"; + $chaptercount = 0; + @titlecount = (0); + + open ( CHORDPRO, "$dirname/$outfilename.tmp" ) || die "cannot open input file"; + + # read the whole document for settings + while ( ){ + if ( /^{/ ) { # nur Zeilen mit Direktiven bearbeiten + chomp; + if ( /{book_title:/ ) { + s/({.*:)(.+)(})/\2/; + $title = $_ ; + }elsif ( /{book_author:/ ) { + s/({.*:)(.+)(})/\2/; + $author = $_ ; + }elsif ( /{book_date:/ ) { + s/({.*:)(.+)(})/\2/; + $date = $_ ; + }elsif ( /{document_class:/ ) { + s/({.*:)(.+)(})/\2/; + $document_class = $_ ; + $verbose && print "Document_class: $document_class\n"; + if ( $document_class ne "book" && $document_class ne "article" ) { + die "parameter of directive document_class must be \"book\" or \"article\"\n"; + } + }elsif ( /{font_size:/ ) { + s/({.*:)(.+)(})/\2/; + $font_size = $_ ; + }elsif ( /{color_chorus:/ ) { + s/({.*:)(.+)(})/\2/; + $color_chorus = $_ ; + }elsif ( /{color_bridge:/ ) { + s/({.*:)(.+)(})/\2/; + $color_bridge = $_ ; + }elsif ( /{color_instr:/ ) { + s/({.*:)(.+)(})/\2/; + $color_instr = $_ ; + }elsif ( /{color_tab:/ ) { + s/({.*:)(.+)(})/\2/; + $color_tab = $_ ; + }elsif ( /{color_second:/ ) { + s/({.*:)(.+)(})/\2/; + $color_second = $_ ; + }elsif ( /{color_second_back:/ ) { + s/({.*:)(.+)(})/\2/; + $color_second_back = $_ ; + }elsif ( /{geometry:|{g:/ ) { + s/({.*:)(.+)(})/\2/; + $geometry .= "$_," ; + }elsif ( /{preamble:|{p:/ ) { + s/({.*:)(.+)(})/\2/; + $preamble .= "$_\n" ; + }elsif ( /{musixtex}/ ) { + $musixtex = "yes"; + }elsif ( /{musixlyr}/ ) { + $musixlyr = "yes"; + }elsif ( /{tabdefs}/ ) { + $tabdefs = "yes"; + }elsif ( /{chapter/ ) { + s/({.*:)(.+)(})/\2/; + $chaptercount++; + push @titlecount, (0); + }elsif ( /{title:|{t:/ ) { + $titlecount[$chaptercount]++; + } + } + } + +$verbose && print "$chaptercount chapters, @titlecount\n"; + +chop $geometry; #delete last comma +close ( CHORDPRO ); + + + +#open temporary file +open ( CHORDPRO, "$dirname/$outfilename.tmp" ) || die "cannot open input file"; + +#print preamble into LaTeX file +if ( $output eq "pdf" ) { print TEX "\\pdfoutput=1 +\\pdfcompresslevel=9 +\\pdfpageheight=29.7cm +\\pdfpagewidth=21cm +\\pdfcatalog {/PageMode /UseOutlines} +\\pdfinfo { + /Title ($title) + /Author ($author) + /CreationDate ($date) + /Producer (GuitarTeX by Joachim Miltz) +} +"; +} + + +print TEX "\\documentclass[$languages{$language},"; + +if ( $output eq "pdf" ) { print TEX " pdftex," } + +print TEX " $font_size"."pt]{$document_class} +\\usepackage[$geometry]{geometry} +\\usepackage[T1]{fontenc} +"; + +if ( $language eq "pl" ){ + print TEX "\\usepackage[latin2]{inputenc}\n" +}else{ + print TEX "\\usepackage[latin1]{inputenc}\n" +} + + +print TEX "\\usepackage{babel} +\\usepackage{color} +\\usepackage{graphicx} +\\usepackage{ifthen} +\\usepackage{calc} +\\usepackage{gchords} +% +"; + + +if ( $output eq "pdf" ){ +print TEX "\\usepackage[pdftex]{thumbpdf}\n"; +} + +if ( $musixtex eq "yes" ){ +print TEX " +\\input{musixtex} +\\input{musixlyr} +\\input{tabdefs} +" +} + +if ( $document_class eq "book" ){ +print TEX " +\\title{$title} +\\author{$author} +\\date{$date} +\\usepackage{makeidx} +\\makeindex +\\usepackage{fancyhdr} +\\pagestyle{fancy} +" +}else{ +print TEX " +\\pagestyle{empty} +"}; + +print TEX " +% +%------definition of font colors----------- +\\definecolor{chorus}{rgb}{$color_chorus} +\\definecolor{bridge}{rgb}{$color_bridge} +\\definecolor{instr}{rgb}{$color_instr} +\\definecolor{tab}{rgb}{$color_tab} +\\definecolor{second_text}{rgb}{$color_second} +\\definecolor{second_back}{rgb}{$color_second_back} +% +%------definition of environments------- +\\newenvironment{chorus}{\\color{chorus}}{\\normalcolor} +\\newenvironment{bridge}{\\color{bridge}}{\\normalcolor} +\\newenvironment{instr}{\\color{instr}}{\\normalcolor} +\\newenvironment{gtxtab}{\\color{tab}}{\\normalcolor} +% +%------counter for line numbers------ +%\\newcounter{verscnt}[section] +%\\newcommand{\\vers}{\\stepcounter{verscnt}% +%\\makebox[0.5cm][r]{\\scriptsize\\theverscnt\\normalsize}% +%\\makebox[0.5cm]{}} +% +\\newcommand{\\gtxchordsize}{\\footnotesize} +\\setlength{\\parindent}{0pt} + +%------PostScript-Header für die Chord-Songs------ +%\\special{header=$libpath/chord-common.ps} + +\\sloppy +\\setlength{\\unitlength}{1mm} + +\\newcommand{\\gtxchord}[2]{\\sbox{\\gtxchordbox}{#1}\\sbox{\\textbox}{#2}% + \\ifthenelse{\\lengthtest{\\wd\\textbox>\\wd\\gtxchordbox}}% + {% + \\raisebox{2ex}[2ex][2.5ex]{\\makebox[0pt][l]{\\scriptsize\\bf#1}}#2% + }{% + \\raisebox{2ex}[2ex][2.5ex]{\\makebox[0pt][l]{\\scriptsize\\bf#1}}\\makebox[\\wd\\gtxchordbox+0.5em][l]{#2}% + }% +}% + +\\newcommand{\\guitartab}{% +\\makebox[0cm][l]{\\raisebox{12.5ex}{\\footnotesize{e}}}% +\\makebox[0cm][l]{\\raisebox{10.5ex}{\\footnotesize{B}}}% +\\makebox[0cm][l]{\\raisebox{8.5ex}{\\footnotesize{G}}}% +\\makebox[0cm][l]{\\raisebox{6.5ex}{\\footnotesize{D}}}% +\\makebox[0cm][l]{\\raisebox{4.5ex}{\\footnotesize{A}}}% +\\makebox[0cm][l]{\\raisebox{2.5ex}{\\footnotesize{E}}}% +~~ +\\makebox[0cm][l]{\\raisebox{13ex}{\\line(1,0){130}}}% +\\makebox[0cm][l]{\\raisebox{11ex}{\\line(1,0){130}}}% +\\makebox[0cm][l]{\\raisebox{9ex}{\\line(1,0){130}}}% +\\makebox[0cm][l]{\\raisebox{7ex}{\\line(1,0){130}}}% +\\makebox[0cm][l]{\\raisebox{5ex}{\\line(1,0){130}}}% +\\makebox[0cm][l]{\\raisebox{3ex}{\\line(1,0){130}}}% +~} + +\\newcommand{\\basstab}{% +\\makebox[0cm][l]{\\raisebox{8.5ex}{\\footnotesize{G}}}% +\\makebox[0cm][l]{\\raisebox{6.5ex}{\\footnotesize{D}}}% +\\makebox[0cm][l]{\\raisebox{4.5ex}{\\footnotesize{A}}}% +\\makebox[0cm][l]{\\raisebox{2.5ex}{\\footnotesize{E}}}% +~~ +\\makebox[0cm][l]{\\raisebox{9ex}{\\line(1,0){130}}}% +\\makebox[0cm][l]{\\raisebox{7ex}{\\line(1,0){130}}}% +\\makebox[0cm][l]{\\raisebox{5ex}{\\line(1,0){130}}}% +\\makebox[0cm][l]{\\raisebox{3ex}{\\line(1,0){130}}}% +~} + +\\newcommand{\\gtxtabs}[2]{\\makebox[0cm][l]{\\raisebox{#1}{#2}}} + +$preamble + +%------start of document----------- +\\begin{document} +\\newsavebox{\\gtxchordbox} +\\newsavebox{\\textbox} +"; + +if ( $document_class eq "book" ){ +print TEX " +\\fancyhead +\\fancyfoot +\\frontmatter +\\maketitle +\\tableofcontents +\\mainmatter +\\fancyhead[CE]{$title} +\\fancyhead[LE,RO]{\\thepage} +"}; + +print TEX "%\n%\n"; +} + + +#------------------------------------------------------------------------------- +# subroutine latex_footer +# +# write the end of the LaTeX file +#------------------------------------------------------------------------------- + +sub latex_footer { + print TEX "$define\n"; + if ( $document_class eq "book") { + print TEX "\\backmatter"; + print TEX "\\printindex\n"; + } + print TEX "\\end{document}\n"; + close ( TEX ); +} + +#------------------------------------------------------------------------------- +# subroutine includes +# +# look for includes, save everything into a temporary file +#------------------------------------------------------------------------------- + +sub includes{ + open ( TMP, ">$dirname/$outfilename.tmp" ) || die "cannot open temporary output file"; + # open input file + open ( CHORDPRO, "$filename" ) || die "cannot open input file"; + while ( ){ + if ( /{include:/ ) { #read only lines with an include directive + s/({.*:)(.+)(})/\2/; + print TMP "#$_\n#\n"; + open ( INSERT, "$dirname/$_" ) || die "cannot open file to insert: $_"; + while ( ){ #insert file to include + print TMP; + } + }else{ + print TMP; + } + close (INSERT); + } + close ( CHORDPRO ); + close ( TMP ); + } diff --git a/guitartex.conf b/guitartex.conf new file mode 100644 index 0000000..a4f9dc8 --- /dev/null +++ b/guitartex.conf @@ -0,0 +1,95 @@ +#----------------------------------------------------------------------------------- +# Languages +#----------------------------------------------------------------------------------- +# supported Languages: +# define hash with supported languages +$languages{"en"} = "english"; +$languages{"de"} = "german"; +$languages{"it"} = "italian"; +$languages{"br"} = "brazilian"; +$languages{"pl"} = "polish"; +$languages{"es"} = "spanish"; + +$language="de"; + + +#----------------------------------------------------------------------------------- +# Tool tips +#----------------------------------------------------------------------------------- +# GuitarTeX shows tool tips if the mouse cursor stays over an icon +# for a short time +$tool_tips = "yes"; + + +#----------------------------------------------------------------------------------- +# Syntax highlighting +#----------------------------------------------------------------------------------- +# turn on or off syntax highlighting +# supported values: 'yes' turns highlighting on, any other value turns highlighting off + +$highlight = "yes"; + +# highlighting colors +# colors may be given as rgb values in hex (e.g. #ffffff for white) or by name (e.g. black) +# a list of all supported color names can be found in the color dialog box (see color menu) + +# highlighting colors for directives +$highlight_directive_foreground = "red"; +$highlight_directive_background = "#ffe0e0"; +# highlighting colors for chords +$highlight_chord_foreground = "midnightblue"; +$highlight_chord_background = "#e0e0ff"; +# highlighting colors for comments +$highlight_comment_foreground = "white"; +$highlight_comment_background = "lightgrey"; + +#----------------------------------------------------------------------------------- +# default values for printed output +#----------------------------------------------------------------------------------- + +#font size, supported values: 10, 11, 12 +$font_size = "11"; + +#default colors +#colors are comma separated decimal values from 0 to 1 (e.g. 1,1,1 for white) + +#default color for chorus +$color_chorus = "1,0,0"; +#default color for bridge +$color_bridge = "0,0,1"; +#default color for instrumental part +$color_instr = ".3,.3,.3"; +#default color for ascii tablature +$color_tab = ".3,.3,.3"; +#default foreground and background color for second voice +$color_second = "1,1,1"; +$color_second_back = ".7,.7,.7"; + +#----------------------------------------------------------------------------------- +# text viewer +#----------------------------------------------------------------------------------- +# after creating a latex file, you can view/edit it with the program specified here +# add your favourite editor here +# +# $text_viewer = "kwrite"; +# $text_viewer = "emacs"; +$text_viewer = "kate"; + +#----------------------------------------------------------------------------------- +# postscript viewer +#----------------------------------------------------------------------------------- +# after creating a postscript file, you can view it with the viewer specified here +# +# $ps_viewer = "gv"; +$ps_viewer = "kghostview"; + +#----------------------------------------------------------------------------------- +# pdf viewer +#----------------------------------------------------------------------------------- +# after creating a pdf file, you can view it with the viewer specified here +# +# $pdf_viewer = "gv"; +# $pdf_viewer = "acroread"; +$pdf_viewer = "kghostview"; + +1; # this must be the last line ! diff --git a/guitartex.pl b/guitartex.pl new file mode 100755 index 0000000..e405869 --- /dev/null +++ b/guitartex.pl @@ -0,0 +1,813 @@ +#!/usr/bin/perl + +use Tk; +use Tk::ErrorDialog; +use Tk::DialogBox; +use Tk::Clipboard; +use Tk::Balloon; +use File::Basename; +use Getopt::Std; +#use FindBin; + +$libpath="/usr/local/lib/guitartex"; + +# load configuration file +$home=$ENV{"HOME"}; +do "$home/.guitartexrc" or die "cannot load guitartex.conf"; + +# load subroutines +foreach $file ( + "sub_gui.pl", #perl/tk gui, synatax highlighting, check for f-keys + "sub_menu_file.pl", #file menu + "sub_menu_edit.pl", #edit menu + "sub_menu_colors.pl", #colors menu + "sub_menu_transpose.pl", #transpose menu + "sub_menu_help.pl", #help menu + ){ + unless ($return = do "$libpath/$file") { warn "parsing $file failed: $@" if $@ } +} + +#load language file +do "$libpath/language/$language.pl" or die "cannot load file language/$language.pl\n"; + +gui(); + +#-------------------------------------------------------------------------------- +# subroutine gui +# +# setup the graphical user interface +#-------------------------------------------------------------------------------- +sub gui { + #create main window + $mw = MainWindow->new; + $mw -> title ("GuitarTeX"); + + #create editor in $t + $t = $mw -> Scrolled ( "Text", -background => 'white', + -relief => 'flat', -wrap => 'none', + -scrollbars => 'se', -exportselection => '0' ); + + #call subroutine check_key if any key is pressed (to handle F5, F6 ...) + $t -> bind ( "", [\&check_key, Ev('k')] ); + + #create a frame for the menu bar + $menu_frame = $mw -> Frame -> pack ( -side => 'top', -fill => 'x'); + + #create the file menu + $menu_file = $menu_frame -> Menubutton (-textvariable => \$name_menu_file, + -menuitems => [ + ['command' => $name_menu_new, -command => \&menu_file_new], + ['command' => $name_menu_open, -command => \&menu_file_open], + "-", + ['command' => $name_menu_save, -command => \&menu_file_save], + ['command' => $name_menu_saveas, -command => \&menu_file_saveas], + "-", + [cascade => $name_menu_export, -menuitems => [ + ['command' => $name_menu_latex, -command => \&export_latex], + ['command' => $name_menu_postscript, -command => \&export_postscript], + ['command' => $name_menu_pdf, -command => \&export_pdf], + ], + ], + "-", + ['command' => $name_menu_quit, -command => \&menu_file_quit], + ] + )->pack (-side => 'left', -anchor => 'w'); + + #create the edit menu + $menu_edit = $menu_frame -> Menubutton (-textvariable => \$name_menu_edit, + -menuitems => [ + ['command' => $name_menu_paste1, -command => \&menu_edit_paste], + "-", + ['command' => $name_menu_insert, -command => \&menu_edit_insert], + ['command' => $name_menu_crd, -command => \&menu_edit_crd2chopro, -accelerator => "F9"], + "-", + ['command' => $name_menu_cut, -state => 'disabled'], + ['command' => $name_menu_copy, -state => 'disabled'], + ['command' => $name_menu_paste2, -state => 'disabled'], + ] + )->pack (-side => 'left', -anchor => 'w'); + + #create the directives menu + $menu_directives = $menu_frame -> Menubutton (-textvariable => \$name_menu_directives, + -menuitems => [ + ['command' => $name_menu_startchorus, -command =>sub{$t->insert("insert linestart","{soc}\n", 'directive')}], + ['command' => $name_menu_endchorus, -command =>sub{$t->insert("insert linestart","{eoc}\n", 'directive')}], + "-", + ['command' => $name_menu_startbridge, -command => sub{$t->insert("insert linestart","{sob}\n", 'directive')}], + ['command' => $name_menu_endbridge, -command => sub{$t->insert("insert linestart","{eob}\n", 'directive')}], + "-", + ['command' => $name_menu_starttab, -command => sub{$t->insert("insert linestart","{sot}\n", 'directive')}], + ['command' => $name_menu_endtab, -command => sub{$t->insert("insert linestart","{eot}\n", 'directive')}], + "-", + ['command' => $name_menu_startinstr, -command => sub{$t->insert("insert linestart","{soi}\n", 'directive')}], + ['command' => $name_menu_endinstr, -command => sub{$t->insert("insert linestart","{eoi}\n", 'directive')}], + "-", + ['command' => $name_menu_guitartab, -command => sub{$t->insert("insert linestart","{guitartab:}\n", 'directive')}], + ['command' => $name_menu_basstab, -command => sub{$t->insert("insert linestart","{basstab:}\n", 'directive')}], + "-", + ['command' => $name_menu_title, -command => sub{$t->insert("insert linestart","{t:", 'directive'); $t->insert("insert lineend","}\n", 'directive');}], + ['command' => $name_menu_subtitle, -command => sub{$t->insert("insert linestart","{st:", 'directive'); $t->insert("insert lineend","}\n", 'directive');}], + ['command' => $name_menu_newpage, -command => sub{$t->insert("insert linestart","{np}\n", 'directive')}], + ['command' => $name_menu_comment, -command => sub{$t->insert("insert linestart","{c:", 'directive'); $t->insert("insert lineend","}\n", 'directive');}], + ['command' => $name_menu_margin, -command => sub{$t->insert("insert linestart","{m:", 'directive'); $t->insert("insert lineend","}\n", 'directive');}], + ['command' => $name_menu_second, -command => sub{$t->insert("insert linestart","{2:", 'directive'); $t->insert("insert lineend","}\n", 'directive');}], + ] + )->pack (-side => 'left', -anchor => 'w'); + + #create the songbook menu + $menu_songbook = $menu_frame -> Menubutton (-textvariable => \$name_menu_songbook, + -menuitems => [ + ['command' => $name_menu_book, -command => sub{$t->insert("insert","{document_class:book}\n", 'directive')}], + ['command' => $name_menu_booktitle, -command => sub{ $t->insert("insert linestart","{book_title:", 'directive'); $t->insert("insert lineend","}\n", 'directive');}], + ['command' => $name_menu_bookauthor, -command => sub{ $t->insert("insert linestart","{book_author:", 'directive'); $t->insert("insert lineend","}\n", 'directive');}], + ['command' => $name_menu_bookdate, -command => sub{ $t->insert("insert linestart","{book_date:", 'directive'); $t->insert("insert lineend","}\n", 'directive');}], + ['command' => $name_menu_chapter, -command => sub{ $t->insert("insert linestart","{chapter:", 'directive'); $t->insert("insert lineend","}\n", 'directive');}], + ['command' => $name_menu_include, -command => sub{ $t->insert("insert linestart","{include:", 'directive'); $t->insert("insert lineend","}\n", 'directive');}], + ['command' => $name_menu_even, -command => sub{$t->insert("insert linestart","{even}\n", 'directive')}], + ] + )->pack (-side => 'left', -anchor => 'w'); + + #create the colors menu + $menu_colors = $menu_frame -> Menubutton (-textvariable => \$name_menu_color, + -menuitems => [ + ['command' => $name_menu_colorchorus, -command => \&colors_chorus], + ['command' => $name_menu_colorbridge, -command => \&colors_bridge], + ['command' => $name_menu_colortab, -command => \&colors_tab], + ['command' => $name_menu_colorinstr, -command => \&colors_instr], + ['command' => $name_menu_second, -command => \&colors_second], + ['command' => $name_menu_secondback, -command => \&colors_second_back], + ] + )->pack (-side => 'left', -anchor => 'w'); + + #create the transpose menu + $menu_transpose = $menu_frame -> Menubutton (-textvariable => \$name_menu_transpose, + -menuitems => [ + ['command' => $name_menu_transup, -command => \&transpose_up, -accelerator => "F5"], + ['command' => $name_menu_transdown, -command => \&transpose_down, -accelerator => "F6"], + "-", + ['command' => $name_menu_transsharp, -command => \&transpose_flat2sharp, -accelerator => "F7"], + ['command' => $name_menu_transflat, -command => \&transpose_sharp2flat, -accelerator => "F8"], + "-", + ['command' => $name_menu_transgerman, -command => \&transpose_b2h], + ['command' => $name_menu_transinternational, -command => \&transpose_h2b], + ] + )->pack (-side => 'left', -anchor => 'w'); + + #create the help menu + $menu_help = $menu_frame -> Menubutton (-textvariable => \$name_menu_help, -tearoff => '0', -menuitems => [ + ['command' => $name_menu_help, -command => \&documentation], + ['command' => "$name_menu_about GuitarTeX", -command => \&about], + ] + )->pack (-side => 'right'); + + #create a frame for the icons + $icon_frame0 = $mw -> Frame ( -relief => "flat", -borderwidth => 0 ) -> pack ( -side => 'top', -anchor => 'w' ); + # create file new icon + $icon = $mw -> Photo ( -file => "$libpath/images/filenew.gif" ); + $icon_file_new = $icon_frame0 -> Button(-image => $icon, -relief=>'flat', -command => \&menu_file_new) -> pack(-side=>'left' ); + #create file open icon + $icon = $mw -> Photo ( -file => "$libpath/images/fileopen.gif" ); + $icon_file_open = $icon_frame0 -> Button(-image => $icon, -relief=>'flat', -command => \&menu_file_open) ->pack(-side=>'left' ); + #create file save icon + $icon = $mw -> Photo ( -file => "$libpath/images/filesave.gif" ); + $icon_file_save = $icon_frame0 -> Button(-image => $icon, -relief=>'flat', -command => \&menu_file_save) ->pack(-side=>'left' ); + #create export latex icon + $icon = $mw -> Photo ( -file => "$libpath/images/tex.gif" ); + $icon_latex = $icon_frame0 -> Button(-image => $icon, -relief=>'flat', -command => \&export_latex) ->pack(-side=>'left' ); + #create export postscript icon + $icon = $mw -> Photo ( -file => "$libpath/images/postscript.gif" ); + $icon_ps = $icon_frame0 -> Button(-image => $icon, -relief=>'flat', -command => \&export_postscript) ->pack(-side=>'left' ); + #create export pdf icon + $icon = $mw -> Photo ( -file => "$libpath/images/pdf.gif" ); + $icon_pdf = $icon_frame0 -> Button(-image => $icon, -relief=>'flat', -command => \&export_pdf) ->pack(-side=>'left' ); + #create transpose up icon + $icon = $mw -> Photo ( -file => "$libpath/images/up.gif" ); + $icon_transpose_up = $icon_frame0 -> Button(-image => $icon, -relief=>'flat', -command => \&transpose_up) ->pack(-side=>'left' ); + #create transpos down icon + $icon = $mw -> Photo ( -file => "$libpath/images/down.gif" ); + $icon_transpose_down = $icon_frame0 -> Button(-image => $icon, -relief=>'flat', -command => \&transpose_down) ->pack(-side=>'left' ); + #create syntax highlighting icon + if ( $highlight eq "yes" ) { + $icon = $mw -> Photo ( -file => "$libpath/images/color.gif" ); + $icon_highlight = $icon_frame0 -> Button(-image => $icon, -relief=>'flat', -command => \&highlight) ->pack(-side=>'left' ); + } + + #create frame for chord icons + $icon_frame1 = $mw -> Frame ( -relief => "flat", -borderwidth => 2 ) -> pack ( -side => 'top', -anchor => 'w' ); + #create a button for each key + $icon_frame1 -> Label( -text=>$name_icon_chords, -width=>10 )->pack ( -side => 'left' ); + $icon_chord_c = $icon_frame1 -> Button( -text=>"C", -command=>sub{$t->insert("insert","[C]", 'chord')} )->pack(-side=>'left'); + $icon_chord_c2 = $icon_frame1 -> Button( -text=>"C#", -command=>sub{$t->insert("insert","[C#]",'chord')} )->pack(-side=>'left'); + $icon_chord_d = $icon_frame1 -> Button( -text=>"D", -command=>sub{$t->insert("insert","[D]", 'chord')} )->pack(-side=>'left'); + $icon_chord_d2 = $icon_frame1 -> Button( -text=>"D#", -command=>sub{$t->insert("insert","[D#]",'chord')} )->pack(-side=>'left'); + $icon_chord_e = $icon_frame1 -> Button( -text=>"E", -command=>sub{$t->insert("insert","[E]", 'chord')} )->pack(-side=>'left'); + $icon_chord_f = $icon_frame1 -> Button( -text=>"F", -command=>sub{$t->insert("insert","[F]", 'chord')} )->pack(-side=>'left'); + $icon_chord_f2 = $icon_frame1 -> Button( -text=>"F#", -command=>sub{$t->insert("insert","[F#]",'chord')} )->pack(-side=>'left'); + $icon_chord_g = $icon_frame1 -> Button( -text=>"G", -command=>sub{$t->insert("insert","[G]", 'chord')} )->pack(-side=>'left'); + $icon_chord_g2 = $icon_frame1 -> Button( -text=>"G#", -command=>sub{$t->insert("insert","[G#]",'chord')} )->pack(-side=>'left'); + $icon_chord_a = $icon_frame1 -> Button( -text=>"A", -command=>sub{$t->insert("insert","[A]", 'chord')} )->pack(-side=>'left'); + $icon_chord_bb = $icon_frame1 -> Button( -text=>"Bb", -command=>sub{$t->insert("insert","[Bb]",'chord')} )->pack(-side=>'left'); + $icon_chord_b = $icon_frame1 -> Button( -text=>$name_note_B, -command=>sub{$t->insert("insert","[B]", 'chord')} )->pack(-side=>'left'); + + #create frame for tablature icons + $tab_frame = $mw -> Frame ( -relief => "groove", -borderwidth => 0 ) -> pack ( -side => 'top', -anchor => 'w' ); + $tab_frame -> Label( -text => $name_icon_tab, -width=>10 )->pack ( -side => 'left' ); + #create button for guitar tablature + $icon_guitartab = $tab_frame -> Button( -text=>$name_icon_guitar, -command => sub{$t->insert("insert linestart","{guitartab:}\n")}) -> pack ( -side => 'left' ); + #create button for bass tablature + $icon_basstab = $tab_frame -> Button( -text=>$name_icon_bass, -command => sub{$t->insert("insert linestart","{basstab:}\n")}) -> pack ( -side => 'left' ); + #create entry field for fret number + $tab_frame -> Label( -text=>$name_icon_fret )->pack ( -side => 'left' ); + $icon_fret = $tab_frame -> Entry( -width=>3, -relief=>'sunken', -background=>'white', -textvariable=>\$tab)->pack ( -side => 'left' ); + #create a button for each string + $tab_frame -> Label( -text=>$name_icon_string )->pack ( -side => 'left' ); + $icon_string_E = $tab_frame -> Button( -text=>"E", -command=>sub{$t->insert("insert","[1;$tab]");$tab=""}) -> pack ( -side => 'left' ); + $icon_string_A = $tab_frame -> Button( -text=>"A", -command=>sub{$t->insert("insert","[2;$tab]");$tab=""}) -> pack ( -side => 'left' ); + $icon_string_D = $tab_frame -> Button( -text=>"D", -command=>sub{$t->insert("insert","[3;$tab]");$tab=""}) -> pack ( -side => 'left' ); + $icon_string_G = $tab_frame -> Button( -text=>"G", -command=>sub{$t->insert("insert","[4;$tab]");$tab=""}) -> pack ( -side => 'left' ); + $icon_string_B = $tab_frame -> Button( -text=>$name_note_B, -command=>sub{$t->insert("insert","[5;$tab]");$tab=""}) -> pack ( -side => 'left' ); + $icon_string_e = $tab_frame -> Button( -text=>"e", -command=>sub{$t->insert("insert","[6;$tab]");$tab=""}) -> pack ( -side => 'left' ); + + #create status bar and connect it to $info + $status_bar = $mw->Label(-textvariable => \$info) -> pack( -side => 'bottom', -anchor => 'w'); + + #show the editor and give it the cursor focus + $t -> pack( -fill => 'both', -expand => 1); + $t ->focus(); + + #define tags for syntax highlighting + if ( $highlight eq "yes" ) { + $t -> tagConfigure ('directive', -foreground => $highlight_directive_foreground, -background => $highlight_directive_background ); + $t -> tagConfigure ('comment', -foreground => $highlight_comment_foreground, -background => $highlight_comment_background ); + $t -> tagConfigure ('chord', -foreground => $highlight_chord_foreground, -background => $highlight_chord_background ); + } + + #attach tool tip balloons to icons + if ( $tool_tips eq "yes" ){ + $balloon = $mw -> Balloon (-statusbar => $status_bar ); + $balloon -> attach ( $icon_file_new, -balloonmsg => $balloon_new ); + $balloon -> attach ( $icon_file_open, -balloonmsg => $balloon_open ); + $balloon -> attach ( $icon_file_save, -balloonmsg => $balloon_save ); + $balloon -> attach ( $icon_latex, -balloonmsg => $balloon_latex ); + $balloon -> attach ( $icon_ps, -balloonmsg => $balloon_ps ); + $balloon -> attach ( $icon_pdf, -balloonmsg => $balloon_pdf ); + $balloon -> attach ( $icon_transpose_up, -balloonmsg => $balloon_transpose_up ); + $balloon -> attach ( $icon_transpose_down, -balloonmsg => $balloon_transpose_down ); + $balloon -> attach ( $icon_chord_c, -balloonmsg => $balloon_chord ); + $balloon -> attach ( $icon_chord_c2, -balloonmsg => $balloon_chord ); + $balloon -> attach ( $icon_chord_d, -balloonmsg => $balloon_chord ); + $balloon -> attach ( $icon_chord_d2, -balloonmsg => $balloon_chord ); + $balloon -> attach ( $icon_chord_e, -balloonmsg => $balloon_chord ); + $balloon -> attach ( $icon_chord_f, -balloonmsg => $balloon_chord ); + $balloon -> attach ( $icon_chord_f2, -balloonmsg => $balloon_chord ); + $balloon -> attach ( $icon_chord_g, -balloonmsg => $balloon_chord ); + $balloon -> attach ( $icon_chord_g2, -balloonmsg => $balloon_chord ); + $balloon -> attach ( $icon_chord_a, -balloonmsg => $balloon_chord ); + $balloon -> attach ( $icon_chord_bb, -balloonmsg => $balloon_chord ); + $balloon -> attach ( $icon_chord_b, -balloonmsg => $balloon_chord ); + $balloon -> attach ( $icon_guitartab, -balloonmsg => $balloon_guitartab ); + $balloon -> attach ( $icon_basstab, -balloonmsg => $balloon_basstab ); + $balloon -> attach ( $icon_fret, -balloonmsg => $balloon_fret ); + $balloon -> attach ( $icon_string_E, -balloonmsg => $balloon_fret ); + $balloon -> attach ( $icon_string_A, -balloonmsg => $balloon_fret ); + $balloon -> attach ( $icon_string_D, -balloonmsg => $balloon_fret ); + $balloon -> attach ( $icon_string_G, -balloonmsg => $balloon_fret ); + $balloon -> attach ( $icon_string_B, -balloonmsg => $balloon_fret ); + $balloon -> attach ( $icon_string_e, -balloonmsg => $balloon_fret ); + if ( $highlight eq "yes" ) {$balloon -> attach ( $icon_highlight, -balloonmsg => $balloon_highlight )}; + } + + #start the graphical user interface + MainLoop; +} + +#-------------------------------------------------------------------------------- +# subroutine check_key +# +# is called by the editor on every key stroke to check for function keys +#-------------------------------------------------------------------------------- +sub check_key { + $taste = $_[1]; + if ( $taste == 71 ) { transpose_up(); } # F5 + if ( $taste == 72 ) { transpose_down(); } # F6 + if ( $taste == 73 ) { transpose_flat2sharp(); } # F7 + if ( $taste == 74 ) { transpose_sharp2flat(); } # F8 + if ( $taste == 75 ) { menu_edit_crd2chopro(); } # F9 +} + +#-------------------------------------------------------------------------------- +# subroutine highlight +# +# parses the text in the editor to highlight chords and directives +# define the colors in guitartex.conf +#-------------------------------------------------------------------------------- +sub highlight { + if ( $highlight eq "yes" ) { + $text = $t->get("1.0", "end"); #store text from the editor in variabel $text + $t->delete("1.0","end"); #delete text in the editor + @lines = split (/\n/, $text); #split the text into an array of lines + foreach $line (@lines) { + if ( $line=~/^{/ ) { #if the line starts with '{' it is a directive + $t -> insert ( "end", "$line\n", 'directive' ); #insert line with directive colors + }elsif ( $line=~/^#/ ) { #if the line starts with '#' it is a comment + $t -> insert ( "end", $line, 'comment' ); + }elsif ( $line=~/\[.*\]/ ){ #if the line contains chords + @words = split (/\[/, $line); #split the line at every chord + foreach $word (@words) { + @words2 = split (/\]/, $word); #split chord and lyrics + if ( $word =~ /\]/ ) { #if there was a chord insert it with chord color + $t -> insert ( "end", '[' . $words2[0] . ']', 'chord' ); + }else{ #else insert the lyrics + $t -> insert ( "end", $words2[0] ); + } + $t -> insert ( "end", $words2[1] ); + } + }else{ #a lyrics line without comment, directive or chord + $t -> insert ( "end", $line ); + } #if-elsif-else + if ( $line!~/^{/ ) { #if the line is not a directive + $t -> insert ( "end", "\n" ); #append newline character + } + } # foreach + } #if +} + + +#-------------------------------------------------------------------------------- +# subroutine menu_file_new +# +# asks user to save the currend document +# shows dialog to choose template and opens template +#-------------------------------------------------------------------------------- +sub menu_file_new { + $info = "$name_menu_file $name_menu_new"; #status bar + ask_save(); #ask if user wants to save current document + $t->delete ("1.0", "end"); #delete current document + #define dialog box for choosing template + $dialog = $mw -> DialogBox ( -title => "$name_menu_new ...", -buttons => [ $name_ok ]); + $list = $dialog->add( "Listbox" )->pack(); + $list -> insert ('end', @name_template ); + $info = $dialog->Show; #show dialog box + $info = $list->curselection(); #get index number of selected template + open ( FILE, "templates/$name_template[$info]" ); #open template file + while ( ){ $t->insert("end", $_) } #read template file into text variable + close (FILE); #close template file + highlight(); #do syntax highlighting + $t ->focus(); #give the cursor focus to the editor + $filename = ""; #reset file name +} + +#-------------------------------------------------------------------------------- +# subroutine menu_file_open +# +# asks user to save the currend document +# shows dialog to choose file and opens file +#-------------------------------------------------------------------------------- +sub menu_file_open { + $info = "$name_menu_file $name_menu_open"; #status bar + ask_save(); #ask if user wants to save current document + $filename = $mw->getOpenFile ( -filetypes => #file dialog box + [ + [$name_guitartex_files, ['.gtx']], + [$name_chordpro_files, ['.chopro','.pro']], + [$name_text_files, ['.txt', '.text']], + [$name_all_files, '*', ], + ], + -title => $name_menu_open ); + $info = $filename; #status bar + $t->delete("1.0","end"); #delete old text + open ( FILE, "$filename" ); #open file + while ( ){ $t->insert("end", $_) } #read file into text variable + close (FILE); #close file + highlight(); #do syntax highlighting + $t ->focus(); #give the cursor focus to the editor +} + +#-------------------------------------------------------------------------------- +# subroutine ask_save +# +# asks user to save the currend document +#-------------------------------------------------------------------------------- +sub ask_save{ + if ( $filename eq "" ) { return } #do nothing if file name is not defined + $dialog = $mw->Dialog( #define dialog box + -buttons => [$name_yes,$name_no], + -title => $name_menu_save, + -text => $name_ask_save, + ); + $info = $dialog -> Show; #show dialog box + if ( $info eq $name_yes ) { menu_file_save() } #if answer is 'yes' save current document +} + +#-------------------------------------------------------------------------------- +# subroutine menu_file_save +# +# save current document +#-------------------------------------------------------------------------------- +sub menu_file_save { + $info = "$name_menu_file $name_menu_save"; #status bar + if ( $filename ){ #if file name is defined, save document + open ( FILE, ">$filename" ) or die "cannot open file $filename\n"; + $text = $t->get("1.0", "end"); + chomp $text; + print FILE $text; + close (FILE); + $info = $filename; + }else{ #else show 'save as...' dialog box + menu_file_saveas(); + } +} + +#-------------------------------------------------------------------------------- +# subroutine menu_file_saveas +# +# save current document with a new name +#-------------------------------------------------------------------------------- +sub menu_file_saveas { + $info = "$name_menu_file $name_menu_saveas"; #status bar + $filename = $mw->getSaveFile ( -filetypes => #define and show dialog box + [ + [$name_guitartex_files, ['.gtx']], + [$name_chordpro_files, ['.chopro','.pro']], + [$name_text_files, ['.txt', '.text']], + [$name_all_files, '*', ], + ], + -title => $name_menu_saveas ); + $info = $filename; #status bar + menu_file_save(); #save file with given name +} + + +#-------------------------------------------------------------------------------- +# subroutine menu_file_quit +# +# exit the program +#-------------------------------------------------------------------------------- +sub menu_file_quit { + ask_save(); #ask if user wants to save current document + exit; #quit +} + +#-------------------------------------------------------------------------------- +# subroutine export_latex +# +# export the current document in LaTeX format +#-------------------------------------------------------------------------------- +sub export_latex{ + menu_file_save(); + ($name, $dir, $ext) = fileparse ($filename, '\..*'); + chdir $dir; + system ( "gtx2tex $name$ext" ); + if ( $text_viewer ne "" ) {system ( "$text_viewer \"$name.tex\" &" )} + $info = $name_tex_ready; +} + +#-------------------------------------------------------------------------------- +# subroutine export_postscript +# +# export the current document in postscript format +#-------------------------------------------------------------------------------- +sub export_postscript{ + menu_file_save(); + ($name, $dir, $ext) = fileparse ($filename, '\..*'); + chdir $dir; + system ( "gtx2tex --output=ps $name$ext" ); + if ( $ps_viewer ne "" ) {system ( "$ps_viewer \"$name.ps\" &" )} + $info = $name_ps_ready; +} + +#-------------------------------------------------------------------------------- +# subroutine export_pdf +# +# export the current document in pdf format +#-------------------------------------------------------------------------------- +sub export_pdf{ + menu_file_save(); + ($name, $dir, $ext) = fileparse ($filename, '\..*'); + chdir $dir; + system ( "gtx2tex --output=pdf $name$ext" ); + if ( $pdf_viewer ne "" ) {system ( "$pdf_viewer \"$name.pdf\" &" )} + $info = $name_pdf_ready; +} + + +#-------------------------------------------------------------------------------- +# subroutine menu_edit_paste +# +# insert text from clipboard +#-------------------------------------------------------------------------------- +sub menu_edit_paste { + $info = $name_menu_paste1; + $text = $mw -> SelectionGet(); + $t -> insert("insert", $text ) +} + +#-------------------------------------------------------------------------------- +# subroutine menu_edit_insert +# +# insert text from a file +#-------------------------------------------------------------------------------- +sub menu_edit_insert { + $info = "$name_menu_edit $name_menu_insert"; #status bar + $insert_filename = $mw->getOpenFile ( -filetypes => #open file dialog + [ + [$name_guitartex_files, ['.gtx']], + [$name_chordpro_files, ['.chopro','.pro']], + [$name_text_files, ['.txt', '.text']], + [$name_all_files, '*', ], + ], + -title => $name_menu_insert, + -initialdir => "/home/" ); + $info = $insert_filename; #status bar + open ( FILE, "$insert_filename" ); #open chosen file + while ( ){ $t->insert("insert", $_); } #insert chosen file + close (FILE); #close file +} + +#-------------------------------------------------------------------------------- +# subroutine menu_editcrd2chopro +# +# convert lines from crd to chordpro format +#-------------------------------------------------------------------------------- +sub menu_edit_crd2chopro { + $info = "$name_menu_edit $name_menu_crd"; #status bar + $chord = $t -> get ("insert linestart", "insert lineend" ); #save the current line in variable $chord + $t -> delete ( "insert linestart", "insert lineend + 1 char" ); #delete the current line + $lyric = $t -> get ("insert linestart", "insert lineend" ); #save the next line in variable $lyric + $t -> delete ( "insert linestart", "insert lineend" ); #delete the lyric line + + if ( length($lyric) < length ($chord) ) { #adjust the length of chord and lyric + $lyric .= " " x ( length ($chord) - length ($lyric) +1 ); #line by adding spaces to the + $chord .= " "; #shorter line + }else{ + $chord .= " " x ( length ($lyric) - length ($chord) +1 ); + $lyric .= " "; + } + + $chopro=""; #initialize variable for the resulting line + for ( $i=0; $i insert ("insert", $chopro); #insert new chordpro line + $t -> delete ("insert"); + $t -> insert ("insert", "\n"); + +} + + +#-------------------------------------------------------------------------------- +# subroutine calc_color +# +# convert the result of color dialog into LaTeX color format +#-------------------------------------------------------------------------------- +sub calc_color{ + $red = int(hex(substr($info,1,4))/655.35)/100; + $green = int(hex(substr($info,5,4))/655.35)/100; + $blue = int(hex(substr($info,9,4))/655.35)/100; + $info = "red $red, green $green, blue $blue"; +} + +#-------------------------------------------------------------------------------- +# subroutine color_chorus +# +# search the document for a chorus color directive +# if it exists, change the chosen color value +# if it doesn't exist, add a new chorus color directive with the chosen color value +#-------------------------------------------------------------------------------- +sub colors_chorus{ + $info = $mw -> chooseColor(-title=>$name_menu_colorchorus); #get a color value from dialog box + calc_color(); #convert color value into LaTeX format + if ( $t -> search ( "{color_chorus:", "1.0" ) ) { #if color directive already exists + $text = $t->get("1.0", "end"); #save the text in variable $text + $text =~ s/(\{color_chorus:)(.*)(\})/\1$red,$green,$blue\3/; #replace color directive with new value + chomp $text; + $t->delete("1.0","end"); #delete old text + $t->insert('end', $text); #restore text from variable $text + }else{ #else + $t -> insert ("end", "\n{color_chorus:$red,$green,$blue}"); #insert a new color directive + } +} + +#-------------------------------------------------------------------------------- +# subroutines color_bridge, color_tab ... +# +# the following subroutines work like the color_chorus subroutine +# look there for comments +#-------------------------------------------------------------------------------- +sub colors_bridge{ + $info = $mw -> chooseColor(-title=>$name_menu_colorbridge); + calc_color(); + if ( $t -> search ( "{color_bridge:", "1.0" ) ) { + $text = $t->get("1.0", "end"); + $text =~ s/(\{color_bridge:)(.*)(\})/\1$red,$green,$blue\3/; + chomp $text; + $t->delete("1.0","end"); + $t->insert('end', $text); + }else{ + $t -> insert ("end", "\n{color_bridge:$red,$green,$blue}"); + } +} + +sub colors_tab{ + $info = $mw -> chooseColor(-title=>$name_menu_colortab); + calc_color(); + if ( $t -> search ( "{color_tab:", "1.0" ) ) { + $text = $t->get("1.0", "end"); + $text =~ s/(\{color_tab:)(.*)(\})/\1$red,$green,$blue\3/; + chomp $text; + $t->delete("1.0","end"); + $t->insert('end', $text); + }else{ + $t -> insert ("end", "\n{color_tab:$red,$green,$blue}"); + } +} + +sub colors_instr{ + $info = $mw -> chooseColor(-title=>$name_menu_colorinstr); + calc_color(); + if ( $t -> search ( "{color_instr:", "1.0" ) ) { + $text = $t->get("1.0", "end"); + $text =~ s/(\{color_instr:)(.*)(\})/\1$red,$green,$blue\3/; + chomp $text; + $t->delete("1.0","end"); + $t->insert('end', $text); + }else{ + $t -> insert ("end", "\n{color_instr:$red,$green,$blue}"); + } +} + +sub colors_second{ + $info = $mw -> chooseColor(-title=>$name_menu_second); + calc_color(); + if ( $t -> search ( "{color_second:", "1.0" ) ) { + $text = $t->get("1.0", "end"); + $text =~ s/(\{color_second:)(.*)(\})/\1$red,$green,$blue\3/; + chomp $text; + $t->delete("1.0","end"); + $t->insert('end', $text); + }else{ + $t -> insert ("end", "\n{color_second:$red,$green,$blue}"); + } +} + +sub colors_second_back{ + $info = $mw -> chooseColor(-title=>$name_menu_secondback); + calc_color(); + if ( $t -> search ( "{color_second_back:", "1.0" ) ) { + $text = $t->get("1.0", "end"); + $text =~ s/(\{color_second_back:)(.*)(\})/\1$red,$green,$blue\3/; + chomp $text; + $t->delete("1.0","end"); + $t->insert('end', $text); + }else{ + $t -> insert ("end", "\n{color_second_back:$red,$green,$blue}"); + } +} + + +#-------------------------------------------------------------------------------- +# subroutine transpose_up +# +# transpose one half tone up +#-------------------------------------------------------------------------------- +sub transpose_up{ + $text = $t->get("1.0", "end"); #save text in variable $text + $t->delete("1.0","end"); #delete text + #exchange chord names + $text =~ s/\[A#/[*B/g; $text =~ s/\[Ab/[*A/g; $text =~ s/\[A/[*A#/g; $text =~ s/\[Bb/[*B/g; + $text =~ s/\[(B|H)/[*C/g; $text =~ s/\[C#/[*D/g; $text =~ s/\[Cb/[*C/g; $text =~ s/\[C/[*C#/g; + $text =~ s/\[D#/[*E/g; $text =~ s/\[Db/[*D/g; $text =~ s/\[D/[*D#/g; $text =~ s/\[E#/[*F#/g; + $text =~ s/\[Eb/[*E/g; $text =~ s/\[E/[*F/g; $text =~ s/\[F#/[*G/g; $text =~ s/\[Fb/[*F/g; + $text =~ s/\[F/[*F#/g; $text =~ s/\[G#/[*A/g; $text =~ s/\[Gb/[*G/g; $text =~ s/\[G/[*G#/g; + $text =~ s/\[\*/[/g; $text =~ s/\/A#/\/*B/g; $text =~ s/\/Ab/\/*A/g; $text =~ s/\/A/\/*A#/g; + $text =~ s/\/Bb/\/*B/g; $text =~ s/\/(B|H)/\/*C/g; $text =~ s/\/C#/\/*D/g; $text =~ s/\/Cb/\/*C/g; + $text =~ s/\/C/\/*C#/g; $text =~ s/\/D#/\/*E/g; $text =~ s/\/Db/\/*D/g; $text =~ s/\/D/\/*D#/g; + $text =~ s/\/E#/\/*F#/g; $text =~ s/\/Eb/\/*E/g; $text =~ s/\/E/\/*F/g; $text =~ s/\/F#/\/*G/g; + $text =~ s/\/Fb/\/*F/g; $text =~ s/\/F/\/*F#/g; $text =~ s/\/G#/\/*A/g; $text =~ s/\/Gb/\/*G/g; + $text =~ s/\/G/\/*G#/g; $text =~ s/\/\*/\//g; + chomp $text; + $t->insert('end', $text); #restore text from variable $text + highlight(); #do syntax highlighting +} + +#-------------------------------------------------------------------------------- +# subroutine transpose_up +# +# transpose one half tone down +#-------------------------------------------------------------------------------- +sub transpose_down{ + $text = $t->get("1.0", "end"); #save text in variable $text + $t->delete("1.0","end"); #delete text + #exchange chord names + $text =~ s/\[A#/[*A/g; $text =~ s/\[Ab/[*G/g; $text =~ s/\[A/[*G#/g; $text =~ s/\[Bb/[*A/g; + $text =~ s/\[(B|H)/[*A#/g; $text =~ s/\[C#/[*C/g; $text =~ s/\[Cb/[*A#/g; $text =~ s/\[C/[*B/g; + $text =~ s/\[D#/[*D/g; $text =~ s/\[Db/[*C/g; $text =~ s/\[D/[*C#/g; $text =~ s/\[E#/[*E/g; + $text =~ s/\[Eb/[*D/g; $text =~ s/\[E/[*D#/g; $text =~ s/\[F#/[*F/g; $text =~ s/\[Fb/[*D#/g; + $text =~ s/\[F/[*E/g; $text =~ s/\[G#/[*G/g; $text =~ s/\[Gb/[*F/g; $text =~ s/\[G/[*F#/g; + $text =~ s/\[\*/[/g; + $text =~ s/\/A#/\/*A/g; $text =~ s/\/Ab/\/*G/g; $text =~ s/\/A/\/*G#/g; $text =~ s/\/Bb/\/*A/g; + $text =~ s/\/(B|H)/\/*A#/g; $text =~ s/\/C#/\/*C/g; $text =~ s/\/Cb/\/*A#/g; $text =~ s/\/C/\/*B/g; + $text =~ s/\/D#/\/*D/g; $text =~ s/\/Db/\/*C/g; $text =~ s/\/D/\/*C#/g; $text =~ s/\/E#/\/*E/g; + $text =~ s/\/Eb/\/*D/g; $text =~ s/\/E/\/*D#/g; $text =~ s/\/F#/\/*F/g; $text =~ s/\/Fb/\/*D#/g; + $text =~ s/\/F/\/*E/g; $text =~ s/\/G#/\/*G/g; $text =~ s/\/Gb/\/*F/g; $text =~ s/\/G/\/*F#/g; + $text =~ s/\/\*/\//g; + chomp $text; + + $t->insert('end', $text); #restore text from variable $text + highlight(); #do syntax highlighting +} + +#-------------------------------------------------------------------------------- +# subroutine transpose_flat2sharp +# +# convert flat notes into sharp notes, e.g. Db -> C# +#-------------------------------------------------------------------------------- +sub transpose_flat2sharp{ + $text = $t->get("1.0", "end"); #save text in variable $text + $t->delete("1.0","end"); #delete text + #exchange chord names + $text =~ s/\[Ab/[G#/g; $text =~ s/\[Bb/[A#/g; $text =~ s/\[Cb/[B/g; $text =~ s/\[Db/[C#/g; + $text =~ s/\[Eb/[D#/g; $text =~ s/\[Fb/[E/g; $text =~ s/\[Gb/[F#/g; $text =~ s/\/Ab/\/G#/g; + $text =~ s/\/Bb/\/A#/g; $text =~ s/\/Cb/\/B/g; $text =~ s/\/Db/\/C#/g; $text =~ s/\/Eb/\/D#/g; + $text =~ s/\/Fb/\/E/g; $text =~ s/\/Gb/\/F#/g; + chomp $text; + $t->insert('end', $text); #restore text from variable $text + highlight(); #do syntax highlighting +} + +#-------------------------------------------------------------------------------- +# subroutine transpose_sharp2flat +# +# convert sharp notes into flat notes, e.g. D# -> Eb +#-------------------------------------------------------------------------------- +sub transpose_sharp2flat{ + $text = $t->get("1.0", "end"); #save text in variable $text + $t->delete("1.0","end"); #delete text + #exchange chord names + $text =~ s/\[A#/[Bb/g; $text =~ s/\[(B#|H#)/[C/g; $text =~ s/\[C#/[Db/g; $text =~ s/\[D#/[Eb/g; + $text =~ s/\[E#/[F/g; $text =~ s/\[F#/[Gb/g; $text =~ s/\[G#/[Ab/g; $text =~ s/\/A#/\/Bb/g; + $text =~ s/\/(B#|H#)/\/C/g; $text =~ s/\/C#/\/Db/g; $text =~ s/\/D#/\/Eb/g; $text =~ s/\/E#/\/F/g; + $text =~ s/\/F#/\/Gb/g; $text =~ s/\/G#/\/Ab/g; + chomp $text; + $t->insert('end', $text); #restore text from variable $text + highlight(); #do syntax highlighting +} + +#-------------------------------------------------------------------------------- +# subroutine transpose_b2h +# +# convert international notation B into german notation H +#-------------------------------------------------------------------------------- +sub transpose_b2h{ + $text = $t->get("1.0", "end"); #save text in variable $text + $t->delete("1.0","end"); #delete text + #exchange chord names + $text =~ s/\[Bb/[*Bb/g; $text =~ s/\[B/[H/g; $text =~ s/\[\*/[/g; + $text =~ s/\/Bb/\/*Bb/g; $text =~ s/\/B/\/H/g; $text =~ s/\/\*/\//g; + chomp $text; + $t->insert('end', $text); #restore text from variable $text + highlight(); #do syntax highlighting +} + +#-------------------------------------------------------------------------------- +# subroutine transpose_b2h +# +# convert german notation H into international notation B +#-------------------------------------------------------------------------------- +sub transpose_h2b{ + $text = $t->get("1.0", "end"); #save text in variable $text + $t->delete("1.0","end"); #delete text + #exchange chord names + $text =~ s/\[H/[B/g; $text =~ s/\/H/\/B/g; + chomp $text; + $t->insert('end', $text); #restore text from variable $text + highlight(); #do syntax highlighting +} + + +#-------------------------------------------------------------------------------- +# subroutine about +# +# some information +#-------------------------------------------------------------------------------- + +sub about{ + $mw -> messageBox ( -type => "OK", -title => $name_menu_help, -message => $message_about ); +} + + diff --git a/images/color.gif b/images/color.gif new file mode 100644 index 0000000000000000000000000000000000000000..d6b1f12372fc033501ab2229b0f70e883f9d469b GIT binary patch literal 1667 zcmV-}27LKPNk%w1VITk?0OtSz0s;aXUteBZR5r3wO}1HSy=KlX2KxH?nIj3_W(Y2V zKA*>Ks**yACN{ddy4K#B21j9NW?|xzA_IrI7E+Gx#)^_Yq5@NOCb^2RKYy-X2Bwxu z0$P4iPfT}pajue1uFG*av{o{1#vYP#R<>3$E-KN*v%p$_jxJg@o4ef1x88CN7fM>W zH&4EvcIMv7w$g$GW|Fd20#uAfCZdWmLV`1;yDf{K=AuF#N`{7phAeuNUbb3#E^69t zS{j;I+FBa!?(VLlj^5bPrkYaewPm`>ZYoli=F_vq!n#OCL>d|z8lqaNf-Wem+)PSD zZZ3MVl0JTzPI9_pHnP5|J_07DmX?}U)JOv1;NRZ5RuXbL(%O!jl#HjRr#f1y#w6)*3=qesX5|=Fc8#Zr*lc-nLE(qT1qm zDjtruvZk2u)vwmp)r(5LsG^u6X0je~mPSgN*;4}Q>glp_66Tq68jeyru-xv}qLh-4 z7*u2~s;+vzUf!lM!m^eYdNv}acJjxaLP9zorebbFrYgFW?zW1OjfEEYEpw$k3d zT8MgT>Z*nyv~J*r6gq0c!mg4QddB0}#RQMY0(+~zyt&RoDy~G9A&qmNnvV=pd?U4c z;>e*EXjYEIY{EuL>E_=mvQoaDaOuN$KDObptD!Eot|}@jT2r^`;iu@@mU3)l>e|L0 zv04U*&Ypf&B6h~TqJDEvzUt1G5O%o!{{Hs%_S4I~?%>3-ekP_)y4}cW;*Kg7dQ`ip zi^sdG8K&Cn+P}6sW;MRPAar)PuAhv6ao*CqVq#*RE&?sRrN%NE5`wNtVZXYwslqNG z;(jg`a!NbA&Z?e{>Y|1&aKzrQM&yiIzo&!d+RBnjz7lGR8g6Fx;lHX%0vdjz!fv9@ zMjGYTyZ`_HA^8LW3IP8AEC2ui03ZM$000R70RIUbC{UciQ*06*I~Jj#fQLE=N}Tvl z+@y;bCz+TO%R#V6m~@b%NYY}olPFOh=(7orjzIuOPCPX!rOgA<`Xuo%Nk>eX18LeE zx-vqvo(+1KG97uUUz)7SsW$5FBrJn%<>(Den5ky+bCt0rgq^My9yLqVK z{dx1ro3{*5vILnLt;3|WM+c20=m#6BMT;Q)q2%M!rxUX}L9x?k>XRi)hCLDBAwoof zesENv)@IS4d1GYlI>C>V1u>Z@OABHriMlR2jtPh$u$t&PZR$Xh!>8Z57T!8pv*3sf z8OjHEWtrr_OQZ--1U7+_FZeGr3HbhuTGt{&r#sGw?WvK3a-TkSHYM?*qr|@`@_ywL z^sI=472=_h9D2m0^TiPq#F9lHyznBQI+57NfEI!j^UN=Yq@hXzqqJ~dfg!|sXXEiFiy~kB`6#~&_yuQQ1fR!<7h*uE}-gC z00F%ubBj6O00T@QPRxN$8UB^>X~GNCyikt{blCUL3{w;^YN@GUfa;@x*f7UF_duY- zrIR3&4>I+1)p^-$A|KmO!8kOJ5?l1#AX zph|@e;O;;O3z$TL$2KY;gG@I_AVH6=0wux(6OE*DsyV_GV#5tPgtCSX<%VMd5(Be~ z#Iyu$0mu)Egb{`nl1Op`I2QMN={88zV~HgN8;tNk*|Y=52(-`w4nColj^gBo`Myr5?KQtq;G%n5DOb{cH)Y8QuXQTa2INRVdjwSwh zjRY=qH%*ZeUO1pmV=%$cK?mC=sKB))b!aj--MIK7_CQZKV8@CkL~erNmLy&9*N7`l zl3yrh@j^HCynu{9>l%)E=8FsTL=s7C<2o2%AR;>}tk7e-?alb2`!cEj^F#^24+H%0 N#1~(J@W2NI06Ufz8pHqq literal 0 HcmV?d00001 diff --git a/images/colorscm.png b/images/colorscm.png new file mode 100644 index 0000000000000000000000000000000000000000..0af69c3a970db0dc99d47024d109f1d1b7770817 GIT binary patch literal 2404 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 literal 0 HcmV?d00001 diff --git a/images/filenew.gif b/images/filenew.gif new file mode 100644 index 0000000000000000000000000000000000000000..b6417ec4f518c3e75df97731e7941bf88885f462 GIT binary patch literal 1347 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 H0RaFzq;*g< literal 0 HcmV?d00001 diff --git a/images/postscript.gif b/images/postscript.gif new file mode 100644 index 0000000000000000000000000000000000000000..2f5b6ca264f93f6be6f0a2d9daf1dec51e1f8d93 GIT binary patch literal 1608 zcmWlYZ%`8l0>zgk1W0Kb1Ew^?q!1*~NCO1wK|C?g<4+=T7!k)zr3yXjF+GMxO52>5 zp^-+77;VJdO^SQ4^>}I1(|Lj83Oh5;=oGABzTj zJ|9njdc8K8lt>h8YHA7wgEUR)bXu)ejiCqzc~hx1FdCLP!tHhmEKXnv1PZCuDv={? zHk&}ja2!{ul%Y^)aBvWZgDgV{Od=kKC7wd!F#?IQ1RRY7F*w-U+dDKggn`36OVT8o zPNx`($jEFqcXf4zgIolq*3 zlE8|hNRmV(6cBj^g~M3P&y$eFVi7n7g21G-!qccA@D{Vd0;a0!NB0 zVKEz#SeQVecx;MeXt&#)KoATLO9ErHTFoXS29BX9io*e(gp(34(1^s5R*N|niy?7H zuh;VohR4H1Vg`#xc%GMdIuHmXlgU&nC33V*rxU0+5{oEh$^;w{NC-t>j%E2w7ZfJ& z1jkY=38M)_VsVlnBvJ5YD98Lh?-&GveePb1$&eJefZs>sh{l61Lx zqu~I7V@aN(@fb@}8C*OWi$+2MOGZO}mSF@2BjO>EqcG4zVX!1{f*^%VI-Opi6DE_%U@&9`WV1E3wK+u=7uXDBQWPbZ%Vjki`}+sgYIQsw zr%8+1tS(CzM%L_QP>o6Q!#-!Jkk3P&Iak|c@3k(QPg1cqoL zA#fCmViM0Fu_#T`7#u>7jLELAua|zW$Wj68KoyYD|33lbrh)am;>r=1T)us9x}nq# z{B}4`+c6^>pSgB&J^wztc)2%JylM5pj$c#lt&>H!A9xAmcRQS)EI<3rh_?Ld%bWL$ zN0hI+{O+?u><`Bdf75j+5B&Q~W6yzIpV@vkr!W`(Z7K3_5<0oy`T3rcbsprM)yeRW z4_UIG6#eM6&u`D&>FlYyZl$l7&bg_TL|N9hJR|U{jSXe(`rOgFw;ncxTsQMaD)aSc z2;lco=!F4$}jAb0d~~+2H5=hTZtQ|#pT0k#Z6D^&U1x|-t&c}pXH7# zr|!4H7mD>+8-U51{&9i6L_S+=4YMfu&4vO9|9D|`Q#|LD47vb$i%*2IOS zg)Mo{x*Y}os5*Gi*Lvh}epdIBr^hzEXU7L#Ti!S;e`WFRfUHQo^5Vb-?8_2rTckwW zlCx{N=XT@rp1r4xjZ>F#*}Le)6V=~6?9O?vbmBn!r?Og4-q}=^{gh_=J6CV{`orG` zwz0XgMCZmiu34K3kBYlXs6X&Y`o^!SOWi5e&iM~0O^#?Ihu}D*}qGd zs&*G#?4+Qh5aeEz*LWv>xmf!40i<(tvQt@X>xpYvPWww@WuFWB?w>B%jp>iyZ(`wRK{iteZXve#~ZbIPtBs+paCxoQq* zeFY!AJE?UZf1~4uy1_2TiX0lJ)-ax2e02KC$b8M$Gn%87g|4cj&9(K4zCX5Z{NU{I h$K(gEe{6mK(QN1D!*;_@N)8{|&;c}0X*9sr{{eE{ElmIb literal 0 HcmV?d00001 diff --git a/images/tex.gif b/images/tex.gif new file mode 100644 index 0000000000000000000000000000000000000000..04994db1d775a67c439b36e7d737a62509aee68e GIT binary patch literal 1561 zcmWlYaZnRy0>w8WU<8T?D3mG+g)|16!B|lveA-3VcFXNtx9zsw>dNhPdKhQ$j&a~}@9#Hn z=Dpv%x}&vw_O@(Awj%ctM6FiW*VnsTE{dX-mzRtNohoNJ zaDZpXMmsI=jMM3qIFhA?8765A8%;io#Zp_3(NP~s#88ivNF+9H%xP|J78wjsFQ0WxYfn_WJc!iIR3#v=inofa9K=Xn6Y%F2q)*vhf6u%wlT zaX^zYN60)y5fPr_sECJww9e>CPfxSiY&1=?EE@{?>ur?4;3ktv5*UaFiRdr~qJSnO zCL&3a+b;_oZEuFMI8WdafDb7=xwMp^NIV)IqQfo}6<9zDf*`X|w?_~;(AL&gVnAgU z=U8B=2^uSXw#F%jjyavcXf)E;fD2`D9OvmUgg}<>vJ9xTMkF41+%A)$NaUGjdm{%4 zfdh&#CBZOF5fmP#BW|8$M3(aSWw)DS$YDw3NGxQ~m5>CkC<;x4DFTy3!CVuRSiIQ@ zML5FI5sqUCY&aST@f>5f+X*5r3&0bQS%5QO98#Dl@FGVu5Q@pF6h&fTfc3Lf#P9dJ z+?)U-ETl-1kR?&!2uR~J88zyPeo>^Q#4j{9L=&Sdq)kQxATIGt5;w;slWAOpQMb!Q zMh8LErw9;|5lEAC#3R9o(NLmDJS4+zpX~AQrb?g813HZIERb1@rpV>xWrksvmX>rz zH-u2;ld&wv&@x9#Ow?p3fk{AI5*(rMl*AG=i9tZ|3`Jofj%5l<+E@k(93-*iN+N-U zSwM(_u#`xwuC5mUSEEWtR*~&UQvd%1qFq5&*KX2hzmuj~ubjE*0EZ0adHVQbig#r8 z{Hmt^o0}(^CeXUHKXos94;&sSDC<86h^uo2r=^P5I&#XUwdJoUhfM96sh#6(!sEW* z-Df-V2HzUpd&+TQ)cl9I#*p{Z$=I{64zx^M!)DEU$B5@nWZjq_shkd+d+CN1NzZ)o z@ek4qBf{T~fZ1)kMsBNA=arSu&hP%VVAHm$OQ>$o!57DV1hWgN8F!-FFKjve%FgZn zieqJq*Hn%J852dV$3}JeU;pOnMs4=OOSz-AvuHW{c17y`^Xi^I{;ZvJyqftzr+K}1 z;nC;bc-GP5W!LYYOF__-ecILhAJidR@8HU(nQIPCOxnDmpNDnpHgEn{dD_s|cv*vz zk#B!@q9T}`t+98-dvi9;T<^(Vd#2=6N4B`W&F!-k=)EafapdxBH{6>)$y7g@-#PbG_1zw5nOb~Wv-?9$@u{*WvXGhdl+2OCc~`HD zXtKQj=F0Z`Gc9ZNfr`I2tYKQNYpVX)v~6%>{zs0!j^7i`8%U4$>2;$)L3P-2 zLFk!If4R5h8LO(P<;~3x&T_pwM1ACD)_)$%=Nv74s=s39i7RJ||Ln-iboh(TcB2j2 z>Qe8zUs<{m>02&UeR`l!zp(Xih5ol=eWL~0ogb@f2I9xc9Tk@|3iM4r^)~bP7-DT~ z`tstA_hN}TW5?q}M()_uSM27+*yx-dd0wsh?AKGK)Y1o&rs;Ca;*a&_e^>n_nEQR~ z;mz6aG6&YLt9!raPHFe8op-Y4#&hR#+hUz{dbGc|cGtx-134-8x;t(^S^1IkVE&ia z9tI2R_jK0HI-4FJ$(nc0sMl;dcJhtqK8blVO}nqO%>8}-%(F*#e|LBA4VeFVoZWFc c|2Vme&&$4Letk{uEp^6g1fqFCqe1rl4+}3dWB>pF literal 0 HcmV?d00001 diff --git a/images/up.gif b/images/up.gif new file mode 100644 index 0000000000000000000000000000000000000000..91c92a7ba1f41dcea6d3eac3b53888b940b713c3 GIT binary patch literal 1144 zcmeH`TT7Dx0EXYqxqYtXftiO;(^^wgLd&q2**xpQNUTgtHVr}&Ow0=#QqJbSc`T2S z!&(jsFU%P+4=9?UTWUKL+5XQ9=<9=8jg%DB)xFu+AT5@Y1_Q>%Fggmk9ET61wRL=9VZ>%@ntqz2 z)8Wn?R&Ouy+)U{8&}h)v$uB5~EG&#DDM3~ia&u8pfrbXL$#lVL^*5RP?9XxjJj7yT zW*G1xv)MZ$+Xusnj3Z)hd-nI?pt z(3aAYm|G8A6jcsArjzbL@l}M^qYp{lsRE^6LSlHf>X<)0%xk5(wkI^Ta;b{GDEHp8 zz2x(S!bv5!G()>&o|vq6i;664a0sV3+e?aVO2NDf;Ty|;YyK2XHU-8>H4qeX~?A#aHU zbLoNY_>9lqd~HQY)4MIp^%9-jYggCsH@m0)RME%y(Ts1OxKG>MxT7PtzWSQf8Jel1 zmqW$#RaXu78db5S<6dOIC3BYkihGYlA6QZ8NC}cI_Oql(4hy;C>Q9THVin^0&GzfkH;e5ky literal 0 HcmV?d00001 diff --git a/language/br.pl b/language/br.pl new file mode 100644 index 0000000..d1e79fc --- /dev/null +++ b/language/br.pl @@ -0,0 +1,113 @@ +# Menus +$name_menu_file = "Arquivo"; +$name_menu_new = "Novo"; +$name_menu_open = "Abrir..."; +$name_menu_save = "Salvar"; +$name_menu_saveas = "Salvar como..."; +$name_menu_export = "Exportar"; +$name_menu_latex = "LaTeX"; +$name_menu_postscript = "Postscript"; +$name_menu_pdf = "PDF"; +$name_menu_quit = "Sair"; + +$name_menu_edit = "Editar"; +$name_menu_paste1 = "Colar do Clipboard"; +$name_menu_insert = "Inserir arquivo..."; +$name_menu_crd = "crd -> chopro"; +$name_menu_cut = "Recortar: use ctrl-x"; +$name_menu_copy = "Copiar: use ctrl-c"; +$name_menu_paste2 = "Colar: use ctrl-v"; + +$name_menu_directives = "Diretivas"; +$name_menu_startchorus = "Iniciar Chorus"; +$name_menu_endchorus = "Terminar Chorus"; +$name_menu_startbridge = "Iniciar Bridge"; +$name_menu_endbridge = "Finalizar Bridge"; +$name_menu_starttab = "Iniciar Tablatura"; +$name_menu_endtab = "Finalizar Tablatura"; +$name_menu_startinstr = "Iniciar Instrumental"; +$name_menu_endinstr = "Finalizar Instrumental"; +$name_menu_guitartab = "GuitarTab"; +$name_menu_basstab = "BassTab"; +$name_menu_title = "Título"; +$name_menu_subtitle = "Subtítulo"; +$name_menu_newpage = "Nova Página"; +$name_menu_comment = "Comentário"; +#TRADUZIR 'Margin Par' +$name_menu_margin = "Margem Parágrafo"; +$name_menu_second = "Segunda Voz"; + +$name_menu_songbook = "Songbook"; +$name_menu_book = "Document class book"; +$name_menu_booktitle = "Book - título"; +$name_menu_bookauthor = "Book - autor"; +$name_menu_bookdate = "Book - data"; +$name_menu_chapter = "Capítulo"; +$name_menu_include = "Inclue"; +$name_menu_even = "Par"; + +$name_menu_color = "Cores"; +$name_menu_colorchorus = "Chorus"; +$name_menu_colorbridge = "Bridge"; +$name_menu_colortab = "Tablatura"; +$name_menu_colorinstr = "Instrumental"; +$name_menu_second = "Segunda Voz"; +$name_menu_secondback = "Fundo segunda Voz"; + +$name_menu_transpose = "Transpor"; +$name_menu_transup = "Acima"; +$name_menu_transdown = "Abaixo"; +$name_menu_transsharp = "b -> #"; +$name_menu_transflat = "# -> b"; +$name_menu_transgerman = "B -> H"; +$name_menu_transinternational = "H -> B"; + +$name_menu_help = "Ajuda"; +$name_menu_about = "sobre"; + +#Icons +#TRADUZIR TUDO +$name_icon_chords = "Acordes:"; +$name_icon_tab = "Tablatura:"; +$name_icon_guitar = "Guitar"; +$name_icon_bass = "Bass"; +$name_icon_fret = " Traste:"; +$name_icon_string = " Corda:"; + +$name_note_B = "B"; + +# File Dialogs +$name_guitartex_files = "GuitarTeX"; +$name_chordpro_files = "ChordPro"; +$name_text_files = "Texto"; +$name_all_files = "Todos Arquivos"; +$name_ask_save = "Deseja salvar o\ndocumento atual ?"; +$name_tex_ready = "Arquivo TeX pronto"; +$name_ps_ready = "Arquivo Postscript pronto"; +$name_pdf_ready = "Arquivo PDF pronto"; + +# Common +$name_yes ="sim"; +$name_no = "não"; +$name_ok = "ok"; +$name_cancel = "cancela"; + +$message_about = "Em caso de problemas\nleia doc.pdf :-)\nou contate o autor\nguitartex-users\@lists.sourceforge.net"; + +# Tool Tips +$balloon_new = "Iniciar novo documento"; +$balloon_open = "Abrir documento existente"; +$balloon_save = "Salvar documento atual"; +$balloon_latex = "Exportar arquivo LaTeX"; +$balloon_ps = "Exportar arquivo postscript"; +$balloon_pdf = "Exportar arquivo PDF"; +$balloon_transpose_up = "Transpor acima"; +$balloon_transpose_down = "Transpor abaixo"; +$balloon_highlight = "Sintaxe highlighting"; +$balloon_chord = "Inserir acorde"; +$balloon_guitartab = "Inserir guitar tablatura"; +$balloon_basstab = "Inserir bass tablatura"; +$balloon_fret = "Entre com número do traste\ne clique botão da corda\npara entrar com as notas da tablatura"; + +# Templates +@name_template = ("vazio", "Song", "Songbook"); diff --git a/language/de.pl b/language/de.pl new file mode 100644 index 0000000..21f3161 --- /dev/null +++ b/language/de.pl @@ -0,0 +1,111 @@ +# Menus +$name_menu_file = "Datei"; +$name_menu_new = "Neu"; +$name_menu_open = "Öffnen..."; +$name_menu_save = "Speichern"; +$name_menu_saveas = "Speichern als..."; +$name_menu_export = "Exportieren"; +$name_menu_latex = "LaTeX"; +$name_menu_postscript = "Postscript"; +$name_menu_pdf = "PDF"; +$name_menu_quit = "Beenden"; + +$name_menu_edit = "Bearbeiten"; +$name_menu_paste1 = "Einfügen aus Zwischenablage"; +$name_menu_insert = "Datei einfügen..."; +$name_menu_crd = "crd -> chopro"; +$name_menu_cut = "Auschneiden: verwende strg-x"; +$name_menu_copy = "Kopieren: verwende strg-c"; +$name_menu_paste2 = "Einfügen: verwende strg-v"; + +$name_menu_directives = "Direktiven"; +$name_menu_startchorus = "Anfang Refrain"; +$name_menu_endchorus = "Ende Refrain"; +$name_menu_startbridge = "Anfang Bridge"; +$name_menu_endbridge = "Ende Bridge"; +$name_menu_starttab = "Anfang Tabulatur"; +$name_menu_endtab = "Ende Tabulatur"; +$name_menu_startinstr = "Anfang Instrumental"; +$name_menu_endinstr = "Ende Instrumental"; +$name_menu_guitartab = "GuitarTab"; +$name_menu_basstab = "BassTab"; +$name_menu_title = "Titel"; +$name_menu_subtitle = "Untertitel"; +$name_menu_newpage = "Neue Seite"; +$name_menu_comment = "Kommentar"; +$name_menu_margin = "Randbemerkung"; +$name_menu_second = "Zweite Stimme"; + +$name_menu_songbook = "Liederbuch"; +$name_menu_book = "Dokumentklasse Buch"; +$name_menu_booktitle = "Buchtitel"; +$name_menu_bookauthor = "Buchautor"; +$name_menu_bookdate = "Buchdatum"; +$name_menu_chapter = "Kapitel"; +$name_menu_include = "Einfügen"; +$name_menu_even = "Gerade Seite"; + +$name_menu_color = "Farben"; +$name_menu_colorchorus = "Refrain"; +$name_menu_colorbridge = "Bridge"; +$name_menu_colortab = "Tabulatur"; +$name_menu_colorinstr = "Instrumental"; +$name_menu_second = "Zweite Stimme"; +$name_menu_secondback = "Hintergrund zweite Stimme"; + +$name_menu_transpose = "Transponieren"; +$name_menu_transup = "Hoch"; +$name_menu_transdown = "Runter"; +$name_menu_transsharp = "b -> #"; +$name_menu_transflat = "# -> b"; +$name_menu_transgerman = "B -> H"; +$name_menu_transinternational = "H -> B"; + +$name_menu_help = "Hilfe"; +$name_menu_about = "über"; + +#Icons +$name_icon_chords = "Akkorde:"; +$name_icon_tab = "Tabulatur:"; +$name_icon_guitar = "Gitarre"; +$name_icon_bass = "Bass"; +$name_icon_fret = " Bund:"; +$name_icon_string = " Saite:"; + +$name_note_B = "H"; + +# Datei-Dialoge +$name_guitartex_files = "GuitarTeX"; +$name_chordpro_files = "ChordPro"; +$name_text_files = "Text"; +$name_all_files = "Alle Dateien"; +$name_ask_save = "Wollen Sie das aktuelle\nDokument speichern?"; +$name_tex_ready = "TeX-Datei fertig"; +$name_ps_ready = "Postscript-Datei fertig"; +$name_pdf_ready = "PDF-Datei fertig"; + +# Allgemein +$name_yes ="ja"; +$name_no = "nein"; +$name_ok = "ok"; +$name_cancel = "cancel"; + +$message_about = "Bei Problemen\nsiehe doc.pdf :-)\noder schreiben Sie an\nguitartex-users\@lists.sourceforge.net"; + +# Tool Tips +$balloon_new = "Neues Dokument beginnen"; +$balloon_open = "Vorhandenes Dokument öffnen"; +$balloon_save = "Aktuelles Dokument speichern"; +$balloon_latex = "Als LaTeX-Datei exportieren"; +$balloon_ps = "Als Postscript-Datei exportieren"; +$balloon_pdf = "Als PDF-Datei exportieren"; +$balloon_transpose_up = "hoch transponieren"; +$balloon_transpose_down = "runter transponieren"; +$balloon_highlight = "Syntax highlighting"; +$balloon_chord = "Akkord einfügen"; +$balloon_guitartab = "Tabulatur für Gitarre einfügen"; +$balloon_basstab = "Tabulatur für Bass einfügen"; +$balloon_fret = "Um Tabulatur-Noten einzugeben,\nNummer des Bundes eingeben\nund auf den Button für die Saite klicken"; + +# Templates +@name_template = ("empty", "Song", "Songbook"); diff --git a/language/en.pl b/language/en.pl new file mode 100644 index 0000000..eeeb1d4 --- /dev/null +++ b/language/en.pl @@ -0,0 +1,111 @@ +# Menus +$name_menu_file = "File"; +$name_menu_new = "New"; +$name_menu_open = "Open..."; +$name_menu_save = "Save"; +$name_menu_saveas = "Save as..."; +$name_menu_export = "Export"; +$name_menu_latex = "LaTeX"; +$name_menu_postscript = "Postscript"; +$name_menu_pdf = "PDF"; +$name_menu_quit = "Quit"; + +$name_menu_edit = "Edit"; +$name_menu_paste1 = "Paste from Clipboard"; +$name_menu_insert = "Insert file..."; +$name_menu_crd = "crd -> chopro"; +$name_menu_cut = "Cut: use ctrl-x"; +$name_menu_copy = "Copy: use ctrl-c"; +$name_menu_paste2 = "Paste: use ctrl-v"; + +$name_menu_directives = "Directives"; +$name_menu_startchorus = "Start Chorus"; +$name_menu_endchorus = "End Chorus"; +$name_menu_startbridge = "Start Bridge"; +$name_menu_endbridge = "End Bridge"; +$name_menu_starttab = "Start Tablature"; +$name_menu_endtab = "End Tablature"; +$name_menu_startinstr = "Start Instrumental"; +$name_menu_endinstr = "End Instrumental"; +$name_menu_guitartab = "GuitarTab"; +$name_menu_basstab = "BassTab"; +$name_menu_title = "Title"; +$name_menu_subtitle = "Subtitle"; +$name_menu_newpage = "New Page"; +$name_menu_comment = "Comment"; +$name_menu_margin = "Margin Par"; +$name_menu_second = "Second Voice"; + +$name_menu_songbook = "Songbook"; +$name_menu_book = "Document class book"; +$name_menu_booktitle = "Book title"; +$name_menu_bookauthor = "Book author"; +$name_menu_bookdate = "Book date"; +$name_menu_chapter = "Chapter"; +$name_menu_include = "Include"; +$name_menu_even = "Even"; + +$name_menu_color = "Colors"; +$name_menu_colorchorus = "Chorus"; +$name_menu_colorbridge = "Bridge"; +$name_menu_colortab = "Tablature"; +$name_menu_colorinstr = "Instrumental"; +$name_menu_second = "Second Voice"; +$name_menu_secondback = "Background second Voice"; + +$name_menu_transpose = "Transpose"; +$name_menu_transup = "Up"; +$name_menu_transdown = "Down"; +$name_menu_transsharp = "b -> #"; +$name_menu_transflat = "# -> b"; +$name_menu_transgerman = "B -> H"; +$name_menu_transinternational = "H -> B"; + +$name_menu_help = "Help"; +$name_menu_about = "about"; + +#Icons +$name_icon_chords = "Chords:"; +$name_icon_tab = "Tablature:"; +$name_icon_guitar = "Guitar"; +$name_icon_bass = "Bass"; +$name_icon_fret = " Fret:"; +$name_icon_string = " String:"; + +$name_note_B = "B"; + +# File Dialogs +$name_guitartex_files = "GuitarTeX"; +$name_chordpro_files = "ChordPro"; +$name_text_files = "Text"; +$name_all_files = "All Files"; +$name_ask_save = "Do you want to save\nthe current document?"; +$name_tex_ready = "TeX file ready"; +$name_ps_ready = "Postscript file ready"; +$name_pdf_ready = "PDF file ready"; + +# Common +$name_yes ="yes"; +$name_no = "no"; +$name_ok = "ok"; +$name_cancel = "cancel"; + +$message_about = "In case of problems\nsee doc.pdf :-)\nor contact the author at\nguitartex-users\@lists.sourceforge.net"; + +# Tool Tips +$balloon_new = "Start a new document"; +$balloon_open = "Open an existing document"; +$balloon_save = "Save the current document"; +$balloon_latex = "Export LaTeX file"; +$balloon_ps = "Export postscript file"; +$balloon_pdf = "Export PDF file"; +$balloon_transpose_up = "Transpose up"; +$balloon_transpose_down = "Transpose down"; +$balloon_highlight = "Syntax highlighting"; +$balloon_chord = "Insert chord"; +$balloon_guitartab = "Insert guitar tablature"; +$balloon_basstab = "Insert bass tablature"; +$balloon_fret = "Enter fret number\nand click on string button\nto enter tablature notes"; + +# Templates +@name_template = ("empty", "Song", "Songbook"); diff --git a/language/es.pl b/language/es.pl new file mode 100644 index 0000000..9edc65d --- /dev/null +++ b/language/es.pl @@ -0,0 +1,112 @@ +# Menus +$name_menu_file = "Archivo"; +$name_menu_new = "Nuevo"; +$name_menu_open = "Abrir..."; +$name_menu_save = "Guardar"; +$name_menu_saveas = "Guardar como..."; +$name_menu_export = "Exportar"; +$name_menu_latex = "LaTeX"; +$name_menu_postscript = "Postscript"; +$name_menu_pdf = "PDF"; +$name_menu_quit = "Salir"; + +$name_menu_edit = "Modificar"; +$name_menu_paste1 = "Pegar desde Clipboard"; +$name_menu_insert = "Introducir archivo..."; +$name_menu_crd = "crd -> chordpro"; +$name_menu_cut = "Cortar: usa ctrl-x"; +$name_menu_copy = "Copiar: usa ctrl-c"; +$name_menu_paste2 = "Pegar: usa ctrl-v"; + +$name_menu_directives = "Directivas"; +$name_menu_startchorus = "Inicio Coro"; +$name_menu_endchorus = "Fin Coro"; +$name_menu_startbridge = "Inicio Bridge"; +$name_menu_endbridge = "Fin Bridge"; +$name_menu_starttab = "Inicio Tabulado"; +$name_menu_endtab = "Fin Tabulado"; +$name_menu_startinstr = "Inicio Instrumental"; +$name_menu_endinstr = "Fin Instrumental"; +$name_menu_guitartab = "Tabulado para Guitarra"; +$name_menu_basstab = "Tabulado para Bajo"; +$name_menu_title = "Título"; +$name_menu_subtitle = "Subtítulo"; +$name_menu_newpage = "Nueva Página"; +$name_menu_comment = "Comentario"; +$name_menu_margin = "Parrafo a Margen"; +$name_menu_second = "Segunda Voz"; + +$name_menu_songbook = "Songbook"; +$name_menu_book = "Document class book"; +$name_menu_booktitle = "Título"; +$name_menu_bookauthor = "Autor"; +$name_menu_bookdate = "Fecha"; +$name_menu_chapter = "Capítulo"; +$name_menu_include = "Incluir archivo"; +$name_menu_even = "Par"; + +$name_menu_color = "Colores"; +$name_menu_colorchorus = "Acorde"; +$name_menu_colorbridge = "Puente"; +$name_menu_colortab = "Tabulado"; +$name_menu_colorinstr = "Instrumental"; +$name_menu_second = "Segunda Voz"; +$name_menu_secondback = "Segunda voz en segundo plano"; + +$name_menu_transpose = "Transporta"; +$name_menu_transup = "Arriba"; +$name_menu_transdown = "Abajo"; +$name_menu_transsharp = "b -> #"; +$name_menu_transflat = "# -> b"; +$name_menu_transgerman = "B -> H"; +$name_menu_transinternational = "H -> B"; + +$name_menu_help = "Ayuda"; +$name_menu_about = "Acerca de "; + +#Icons +$name_icon_chords = "Acordes:"; +$name_icon_tab = "Tabulado:"; +$name_icon_guitar = "Guitarra"; +$name_icon_bass = "Bajo"; +$name_icon_fret = " Traste:"; +$name_icon_string = " Cuerda:"; + +$name_note_B = "B"; + +# File Dialogs +$name_guitartex_files = "GuitarTeX"; +$name_chordpro_files = "ChordPro"; +$name_text_files = "Text"; +$name_all_files = "Todos los archivos"; +$name_ask_save = "¿Desea guardar el\narchivo actual?"; +$name_tex_ready = "Archivo TeX listo"; +$name_ps_ready = "Archivo Postscript listo"; +$name_pdf_ready = "Archivo PDF listo"; + +# Common +$name_yes ="sì"; +$name_no = "no"; +$name_ok = "ok"; +$name_cancel = "cancelar"; + +$message_about = "En caso de problemas\nlea doc.pdf :-)\no contacte con el autor en\nguitartex-users\@lists.sourceforge.net"; + +# Tool Tips +$balloon_new = "Crear un documento nuevo"; +$balloon_open = "Abrir un documento existente"; +$balloon_save = "Guardar el documento actual"; +$balloon_latex = "Exportar a LaTeX"; +$balloon_ps = "Exportar a postscript"; +$balloon_pdf = "Exportar a PDF"; +$balloon_transpose_up = "Transportar arriba"; +$balloon_transpose_down = "Transportar abajo"; +$balloon_highlight = "Coloreado de Sintaxis"; +$balloon_chord = "Introducir acorde"; +$balloon_guitartab = "Introducir tabulado de guitarra"; +$balloon_basstab = "Introducir tabulado de bajo"; +$balloon_fret = "Introduzca el número del traste\ny haga click en el botón de cuerda\npara introducir notas en el tabulado"; + +# Templates +@name_template = ("empty", "Song", "Songbook"); + diff --git a/language/it.pl b/language/it.pl new file mode 100644 index 0000000..4ccf58c --- /dev/null +++ b/language/it.pl @@ -0,0 +1,112 @@ +# Menus +$name_menu_file = "File"; +$name_menu_new = "Nuovo"; +$name_menu_open = "Apri..."; +$name_menu_save = "Salva"; +$name_menu_saveas = "Salva con nome..."; +$name_menu_export = "Esporta"; +$name_menu_latex = "LaTeX"; +$name_menu_postscript = "Postscript"; +$name_menu_pdf = "PDF"; +$name_menu_quit = "Esci"; + +$name_menu_edit = "Modifica"; +$name_menu_paste1 = "Incolla dagli Appunti"; +$name_menu_insert = "Inserisci file..."; +$name_menu_crd = "crd -> chopro"; +$name_menu_cut = "Taglia: usa ctrl-x"; +$name_menu_copy = "Copia: usa ctrl-c"; +$name_menu_paste2 = "Incolla: usa ctrl-v"; + +$name_menu_directives = "Direttive"; +$name_menu_startchorus = "Inizio Ritornello"; +$name_menu_endchorus = "Fine Ritornello"; +$name_menu_startbridge = "Inizio Bridge"; +$name_menu_endbridge = "Fine Bridge"; +$name_menu_starttab = "Inizio Tablatura"; +$name_menu_endtab = "Fine Tablatura"; +$name_menu_startinstr = "Inizio Strumentale"; +$name_menu_endinstr = "Fine Strumentale"; +$name_menu_guitartab = "Tablatura per Chitarra"; +$name_menu_basstab = "Tablatura per Basso"; +$name_menu_title = "Titolo"; +$name_menu_subtitle = "Sottotitolo"; +$name_menu_newpage = "Nuova Pagina"; +$name_menu_comment = "Commento"; +$name_menu_margin = "Paragrafo a Margine"; +$name_menu_second = "Seconda Voce"; + +$name_menu_songbook = "Canzoniere"; +$name_menu_book = "Document class book"; +$name_menu_booktitle = "Titolo"; +$name_menu_bookauthor = "Autore"; +$name_menu_bookdate = "Data"; +$name_menu_chapter = "Capitolo"; +$name_menu_include = "Includi file"; +$name_menu_even = "Pagina Pari"; + +$name_menu_color = "Colori"; +$name_menu_colorchorus = "Ritornello"; +$name_menu_colorbridge = "Bridge"; +$name_menu_colortab = "Tablatura"; +$name_menu_colorinstr = "Strumentale"; +$name_menu_second = "Seconda Voce"; +$name_menu_secondback = "Seconda Voce in Sottofondo"; + +$name_menu_transpose = "Tonalità"; +$name_menu_transup = "Alza"; +$name_menu_transdown = "Abbassa"; +$name_menu_transsharp = "b -> #"; +$name_menu_transflat = "# -> b"; +$name_menu_transgerman = "B -> H"; +$name_menu_transinternational = "H -> B"; + +$name_menu_help = "Aiuto"; +$name_menu_about = "Informazioni su "; + +#Icons +$name_icon_chords = "Accordi:"; +$name_icon_tab = "Tablatura:"; +$name_icon_guitar = "Chitarra"; +$name_icon_bass = "Basso"; +$name_icon_fret = " Tasto:"; +$name_icon_string = " Corda:"; + +$name_note_B = "Si"; + +# File Dialogs +$name_guitartex_files = "GuitarTeX"; +$name_chordpro_files = "ChordPro"; +$name_text_files = "Text"; +$name_all_files = "Tutti i File"; +$name_ask_save = "Vuoi salvare il\ndocumento corrente?"; +$name_tex_ready = "File TeX pronto"; +$name_ps_ready = "File Postscript pronto"; +$name_pdf_ready = "File PDF pronto"; + +# Common +$name_yes ="Sì"; +$name_no = "No"; +$name_ok = "Ok"; +$name_cancel = "Cancella"; + +$message_about = "In caso di problemi\nleggi doc.pdf :-)\noppure contatta l'autore\na jmiltz\@web.de"; + +# Tool Tips +$balloon_new = "Inizia un nuovo documento"; +$balloon_open = "Apri un documento esistente"; +$balloon_save = "Salva in documento corrente"; +$balloon_latex = "Esporta come file LaTeX"; +$balloon_ps = "Esporta come file postscript"; +$balloon_pdf = "Esporta come file PDF"; +$balloon_transpose_up = "Alza Tonalità"; +$balloon_transpose_down = "Abbassa Tonalità"; +$balloon_highlight = "Sintassi evidenziata"; +$balloon_chord = "Inserisci accordo"; +$balloon_guitartab = "Inserisci tablatura per chitarra"; +$balloon_basstab = "Inserisci tablatura per basso"; +$balloon_fret = "Inserisci il numero di tasto\ne premi sulla corda\nper inserire le note\nsulla tablatura"; + +# Templates +@name_template = ("Vuoto", "Canzone", "Canzoniere"); + diff --git a/language/pl.pl b/language/pl.pl new file mode 100644 index 0000000..164af24 --- /dev/null +++ b/language/pl.pl @@ -0,0 +1,111 @@ +# Menus +$name_menu_file = "Plik"; +$name_menu_new = "Nowy"; +$name_menu_open = "Otwórz..."; +$name_menu_save = "Zapisz"; +$name_menu_saveas = "Zapisz jako..."; +$name_menu_export = "Eksportuj"; +$name_menu_latex = "LaTeX"; +$name_menu_postscript = "Postscript"; +$name_menu_pdf = "PDF"; +$name_menu_quit = "Wyj¶cie"; + +$name_menu_edit = "Edycja"; +$name_menu_paste1 = "Wklej ze schowka"; +$name_menu_insert = "Wstaw plik..."; +$name_menu_crd = "crd -> chopro"; +$name_menu_cut = "Wytnij: u¿yj ctrl-x"; +$name_menu_copy = "Kopiuj: u¿yj ctrl-c"; +$name_menu_paste2 = "Wklej: u¿yj ctrl-v"; + +$name_menu_directives = "Dyrektywy"; +$name_menu_startchorus = "Pocz±tek chóru"; +$name_menu_endchorus = "Koniec chóru"; +$name_menu_startbridge = "Pocz±tek mostu"; +$name_menu_endbridge = "Koniec mostu"; +$name_menu_starttab = "Pocz±tek tabulatury"; +$name_menu_endtab = "Koniec tabulatury"; +$name_menu_startinstr = "Pocz±tek czê¶ci instrumentalnej"; +$name_menu_endinstr = "Koniec czê¶ci instrumentalnej"; +$name_menu_guitartab = "Tabulatura gitarowa"; +$name_menu_basstab = "Tabulatura basowa"; +$name_menu_title = "Tytu³"; +$name_menu_subtitle = "Podtytu³"; +$name_menu_newpage = "Nowa strona"; +$name_menu_comment = "Komentarz"; +$name_menu_margin = "Marginesy"; +$name_menu_second = "Drugi g³os"; + +$name_menu_songbook = "¦pierwnik"; +$name_menu_book = "Document class book"; +$name_menu_booktitle = "Tytu³ ¶piewnika"; +$name_menu_bookauthor = "Autor ¶piewnika"; +$name_menu_bookdate = "Data ¶piewnika"; +$name_menu_chapter = "Rozdzia³"; +$name_menu_include = "Do³±cz"; +$name_menu_even = "Parzyste"; + +$name_menu_color = "Kolory"; +$name_menu_colorchorus = "Chór"; +$name_menu_colorbridge = "Most"; +$name_menu_colortab = "Tabulatura"; +$name_menu_colorinstr = "Czê¶æ instrumentalna"; +$name_menu_second = "Drugi g³os"; +$name_menu_secondback = "Drugi g³os w tle"; + +$name_menu_transpose = "Transponowanie"; +$name_menu_transup = "Do góry"; +$name_menu_transdown = "Do do³u"; +$name_menu_transsharp = "b -> #"; +$name_menu_transflat = "# -> b"; +$name_menu_transgerman = "B -> H"; +$name_menu_transinternational = "H -> B"; + +$name_menu_help = "Pomoc"; +$name_menu_about = "O programie"; + +#Icons +$name_icon_chords = "Akordy:"; +$name_icon_tab = "Tabulatury:"; +$name_icon_guitar = "Gitara"; +$name_icon_bass = "Bas"; +$name_icon_fret = " Próg:"; +$name_icon_string = " Struna:"; + +$name_note_B = "B"; + +# File Dialogs +$name_guitartex_files = "GuitarTeX"; +$name_chordpro_files = "ChordPro"; +$name_text_files = "Tekst"; +$name_all_files = "Wszystkie pliki"; +$name_ask_save = "Czy chcesz zapisaæ\nbie¿±cy dokument?"; +$name_tex_ready = "Plik TeX gotowy"; +$name_ps_ready = "Plik Postscript gotowy"; +$name_pdf_ready = "Plik PDF gotowy"; + +# Common +$name_yes ="tak"; +$name_no = "nie"; +$name_ok = "ok"; +$name_cancel = "zrezygnuj"; + +$message_about = "W przypadku problemów\nzagl±dnij do doc.pdf :-)\nlub skontaktuj siê z autorem\nguitartex-users\@lists.sourceforge.net"; + +# Tool Tips +$balloon_new = "Utwórz nowy dokument"; +$balloon_open = "Otwórz istniej±cy dokument"; +$balloon_save = "Zapisz bierz±cy dokument"; +$balloon_latex = "Eksportuj do pliku LaTeX"; +$balloon_ps = "Eksportuj do pliku postscript"; +$balloon_pdf = "Eksportuj do pliku PDF"; +$balloon_transpose_up = "Transponuj do góry"; +$balloon_transpose_down = "Transponuj do do³u"; +$balloon_highlight = "Pod¶wietlanie sk³adni"; +$balloon_chord = "Wstaw akord"; +$balloon_guitartab = "Wstaw tabulaturê gitarow±"; +$balloon_basstab = "Wstaw tabulaturê basow±"; +$balloon_fret = "Wprowad¼ numer progu\ni naci¶nij na przycisku odpowiedniej struny\naby wprowadziæ tabulaturê"; + +# Templates +@name_template = ("empty", "Song", "Songbook"); diff --git a/release-note b/release-note new file mode 100644 index 0000000..8da9e7c --- /dev/null +++ b/release-note @@ -0,0 +1,6 @@ +new in GuitarTeX 2.8.2 + +Chord output can be changed to Italian notation by command line option --italian + +Support for Spanish language + diff --git a/templates/Song b/templates/Song new file mode 100644 index 0000000..a908c02 --- /dev/null +++ b/templates/Song @@ -0,0 +1 @@ +# Created with template: single_song diff --git a/templates/Songbook b/templates/Songbook new file mode 100644 index 0000000..b2ff478 --- /dev/null +++ b/templates/Songbook @@ -0,0 +1 @@ +# Created with template: songbook diff --git a/templates/empty b/templates/empty new file mode 100644 index 0000000..d9927e9 --- /dev/null +++ b/templates/empty @@ -0,0 +1 @@ +# Created with template: empty -- 2.20.1

8YjVpws^oBzl;WkBt7V@+y)u~j2W4MgFHTm|}&+=x43E>sQ`Mr;s_kN~1~ zRAy!+)|Ls|U|s9<4qIGnxIYI_At+8bSAZ zBRe!4xIi4TJ{&Z>TzT8@9>V_p_j)qryDq=5p(OZ@jCq4LN2-go&1A-}&|?dQe5YWP zbcN9Sr{oOt9%19i2XY62m+Fb2Q7F9%wu@`m$K;Ga#`j@18>nQ3Vp!73fAi3ww#NqbQLL zejh`$E0t8B=CmqlIi&a+`RWd|L;2Qu`Ra>Y5;=USiW3&!y8lT}4@2wwBREY&Xu&{S z$o;lAE>nNU_6r9u+46JB1h`#s1QzYtu<>ceMx9B2Z571><6Cqk3ZP`M!N3o$&jg>! zgnI=d+b#RwH&q12#lt8X#S+XfUGJR4s_`|{CaC`1;eHNRB*vn*(~=MLq*%_VBZ(Qq7&!h|tm)BQhB?Bu$lv z8`7&!9CF>B%r#AuQy=3V<i*Lz5d+)2%uN3N@NRzg@3y$~#sG~TG+X)ultq62~Y>PZ|R zCYxs#Fxch8pgFdSXLG8|yOa&c3?$Z}_gpPWP8R-MSvIPhe%1PvpC)ERS;kx}wYW7^ zc9P`Z`1J<)hNY_Dx%g8er9a?8=zFbRGB!U)4HD$iGLxvU_OLFpsQ+v-?H!q`qL;2( z$CP&B6vs@W!M*KQC`(xOZDMCsJ9Csa8eSNhZJ7uKz?~YYAx-A^zVBD zRo2Inc3PLaf3B&GFzJJFcO|wYby)R=n{k)L8&mrR=4#-%?=8%9qF<4kUxw#sv**Ch z!-B-p>5$*KbAr@6M9js?#7C^hXfj);{X87iJkud{t+ms3AMa;(y%m?$!p=#tFLe3q z_9u#p@4e|^g*`Lou_%uB)T?fMh+)48!)H9Q9~J3U4C%GP(|OBu1XBk4KAbS;wx*g_ zKUZ7$j}8;$vHWixcDa+#tywFR^Dyf&W;0p4UmeD_TBKqQ*;6d%^(Tb8k*&wh>fGlU z)2u2iDPn*=QUg;AUfyTF0UX}ZlV=&D{0js3}P&8C7_ssrD#T-aTAPB>K6CeQsRo{x<G0Yy0#LVybWc=LQpM(XN$pki(>HB zT(91Y`1z}{%bCx4IWTgDSzMZ^l*k+LjoNgVTwT(`t#*I*;kXx~`f=GVT3pPFbv_>h zH0pXg=4a;y+_d-gq_6tX$|~NQVB@uPThNCpE;*zsDxnzon#pUuSDD$!RQBxO#bhV_e1m=^=AHr zu>Y?Bd-&Ik^a+euEQ~MIEOVPYbjs=vn1*-{@4LrX@IMcXae`=vqaIah_2+hDRpPR9 z6io>1nnrr%Q})e83GfAN?nasO=RnWNyKZABZ@vr$MX*`A9mM@T79Ay5YoXA1H`B)Q zGTBf2ixW-Ehp_N|k%A1TriB2zN1QI0;f7TiNY^+c*5ZxAcUWJJxVhDRaNx^Qc0+X zU5jkhC%VY}g&j!)KHeu6%zCPFqSTLsu$_!H*2x@EH8@Lq5{-&8hs?95_I;fNgFmqu zKZ|&q9^I5iqrLOclI*@Ygn3R#-+OVErl67_#Xki%@la;=)@jzOc14w-y(LQP9d!SJ zkzvBaMD)|XdH-b8;RizJHujGLPzKNWn}V5^{c|DeP~D%OJ5F$KJ-kbIeM^O*l@w~x zPF@yDQ@kIh^bV^QaVu_4H%yDn<7FC!Aj)l1qZTQvqUZIoxenR8Kp&O;w?5Kpm0UQj z+Bk-6?hVXs^I09WgRNmjc|(7lUkk8TL-qN@|L`1Bh}0t54@LCv|p-v+1q*fWeE zGij`nbv><3ts~)t8f6qzntMb)LEaMQ$SS=h9(J=1onY`N>EZe3RKA`d6 zV%tX}C{b!_@LGmTB|9rR%vK2X%B3sX-54>yC^wb0skCdkU?^uIAu{r=KES^} zu;R&kEN6Z8UR?9}2i;N?l?`&*rf%J}C&%%ubm3sU$2-T%7U#E3<*j$?yNn_F8Q&l@ zwqHs`I$PpJ_v1ykp_Brn3zbQ^yfN(wiOnR+3(5K<+mj(J@v)Xw9P-K@Dd0@a&&k7@ z+6f$0+T`&tc<$mp|J)i!vRN-E$%3MF^flB>aTYojePiwkpzl@5i4ytvNX#MKlbu}kHCk2GS}l*b_DciY#kvCsA|gnW>`afEzee8)*Lc`si(_2@ zmj;X6wGrsZwkzJFM8hTeNA4pWz5Dwa_F9gM#6y?^_)mIB59RQ{Wo(IPR~&h`A49e~ zXRzCbU*eXZ=DZfLbAq|+wLd3i)F`Oo@HrDY;zzk!zHP6PQypY!Gcwoy-y~A(O*3f& z^1mX8DMp@Vpzkaq1G-z!QuXFxE$(K`657dgxwyzR)LAlEvtBiEO1)bL6p{5~#-a-J z;ST-k-qx>(0xlfxTWeXZKJ%o2&`nYrbf?CU0)BV5c!4&)poRk9kK%!hQL5^}X58lS zO#Z<9adpUdH>29+F-UZ;^}}4r!l}(GA0(ki(vtx@hz0;?6AM6!w4vK^TcC&Q2=% z1GrOn%svsvM4?D{3{2Q%&x-;pE51TWUXTVR$%_GDqkW0GpqmK6wUs(k2Xy2!eIx*gMD9(L9_l$4ZF{FT)k zQ(oIBNz+6HKC8@tXGa=xwa-H>ijeG-3qCGK)fz4DJLA&3ZC)52l(UH_*O`(c7mud%wW#!yT z0bdle89g8c@h=$SQDHuD*P-R)JJD!mqGhWpO*8IMwZ%z^hf-$r#fU$ej1oa{r=bCL zf=mOSzPvN-{}pofJpn5utvyIqD6wpeeD=Yef6FQiLP=nhZ#=;TH$P}i(-q{dUU*>V z>43g0sbVkknt_Jj(h~7CO ze8xFB<+5@@$&cS$;*NbB!_K1a$`1|2hNalJ9qgeAO;!#?6A@JWX-@nV?Oknye4jux z812258L?0_s&kdU-)n{)`R5QCH!}+vN_Co$V3NM4aM`(I~GMnBAn|E@cH(Rl8KY3++emy+vT z{ViVe-L*P#W(JDW#>qgc?G6H3`*>{FNU-jkfIlEsQZmG`w>m1PotzpE>RPz7R(--L zgTv@a*ofGIFO$jP%TmNkrLHz}~4 zmU8-gAAjrYcJlXo}u%@u4^xMU#A2&>)&3DC@KWGFK%Ux|Neg^-@ z*pGi_+E^JmTjGfn3*NTCDe4^a{)1etCj`dp@x1lg%g{^g*$?<(*_^La#bh%+EoHs9 zY&wJl{nedgu*(7e)eEp(-g<6Tl;s58MlRcR29}hUgM|`SNGBhRU_$7&)ZbVZV+!%+ zGav5JZB^ZQCR<@c0mFgW&Y_DPRp>{Grm+uDghnPVUQTl)rLSm}ylLra8RrvQRv?<$ z7z`fIg}5fU6(EUhm))c*byfeiK zBw1{}4(>q1#@POw9#L2rx)_~0$e6};&986nh60wafwH&-tuX^y_3q2lkyWXDWd<(O zz@G}gIS@*e892P?B-6*$UeC_aYojRF9|>U9^sjIe`b!WJ2xx59uJXTUR>R{-kB;9C=5AG8a5@$8N*&}Z|mhI-*4&H3?ws`xRXa-VzlcDV&970oXJ$33=_^6?A2FQmM!kv7nP1g z@4wIL@6M>E$&t)7psVS6>2DhJQx_Aeo{6-_98V`+!q4};E6E1v1x}Us!$^D)EXS3) zRqU+HRj-+n8D|G76n$+3zCE!sJt9H8%U^f-=DKqBvBs!qN>Vz^|->7JyUj5OpM)x~6VN2Ik|MDVL7e zUzusoMihyPUUEg18XK2MNcCs2>b~ung8e4_Ge!cVF5BK;A=jlrdaWQgshvbGC32?TvRkVSyKvm#TS9_H zJ{UeB-ivutO15byt4)Kg2CbmJhh48!op;COp&%yaj4|V@P_Nip*Qa4VxInr)Gp|or z;$<+#EKKOdu;=Nv>Zx|Z!f%T%n+jX-P=i1^os2Wqea+|=!zt>TyXyi8j&3?mPRpnv z1D|r|A)Vxnu1ceiM7!y^3HJ8(USMt0S(BROH)L+HLnFfTJ&D*j|=jc_>7O4`R`1`xN=7Z09r?WLUyQ+Ih zB2|LhCc1(Zjup|-Jkg!^6NPdS`UQHB#NC8sFcKAa6K|+vrTcbk_HQsx9fu@eNLUHY zpLvqukOI6(gy?j{MbYQt>w%RJvB`2|zV?v`!gNs|I1iHeGd2bnIa%~i3?mh*KZH@!;i!|vYTJ4w63JY`&vy>pqXy^}gi z2SjGQEP*7QU540Ao-6$m-H0GqgZepfC%*2Pvj)^SSrVol-I<8^m?5#>O?T5%a+9$* zdhJ7L4Uj`Rhn>lClu*EkaN+%RXow7nnfLPfgGf~8?Sl5_`sE9W;}=*x6?4{I9)Ggg zoeL+$56!#vSMt%3vx@`mc;=2zml3a{1e7|OQZ?=OyDE3+JwHn5HrJVH{v~14?pS7( z$-%8nw@${Y|2YpPqMrx>rrGr&bD3#Hnpc!AZF`!yEzOlhM)7A(ITtGuQE-&ft1heH zJ5BOfGzVEtugNQ#&i;kemT1I?DWTn5%H3y;1w2cf2`X*Nsdj88%x|43=-N`HUcGoj z!=q_Ctnf;?u6q3p?sDw2I==^3N-h<7L@LrxaZ4vdiflZVW`K4!D>l7u=lq3*qLANY z1@PRv?85&3e-L@?9z9cXW9Q{4mLlv>LOPwuZDDo~4daeZXd9jqDK1!>rX)TT|lP~9B=Fb8LB z#GEvPG*xs+LHCC%B&uSTinF8aAwBv-YH*EYBM#L{L0O33_LdWr<$&^L&t|1GOT+ekxDyY@rgd^vZ4G05#K_Ih(>;0hzofCHI?z++u- zmb|fYflNMFofXuC?0mkNA2bGN`!SV`+kdOdj%P0ksnw3Ygv{^Cd zvD}_Ab>)^y$L;C+2)5H?hC8tY-=kEVh>62-C-eV z+byFk-cX^UiQ(rxh-P>g;hE!tA3w-C^ym&ftqzM#mA-4P(S%cW3V69Og#zV93pI{c zPR*MJ`9xYOqBNoiR1oDlrVWn$1&@zuJO48$iXn9Fgil690Jd6 zpG^uV>r(GdhD6(id!Rk6)==$_!on;iF>DW+>b9|@Xj8~f1>{S$Lz;6HRFJtg2IAhC z?r?3<=h0bXGR0>a%tj-xit6Qa0`i>AtmT`v@$B7=>(P_1t<}xh z836LYb>}=Sr^1ZtMB)ZIT#hUQ>8j4OxvuJQmn=snhq4v5&!H>A72y}$eF=}0kC534orT*)ycA^_SxF-B%NG2X&> zPxqRihedY4CG)8{{cClmNmW(Rs<@dpU6!cJy`{E1x`)I*JBuZ`+`WZ>LSPFRX9`QL z<^Y@Jz3HZ@m)o+fAhgm=x6DiO{&(+hSwJ^oE8-**^@g%O&Q4yM7G0mo)H{(5b%)(y zqPg9@xg1sW@piDl{rvnhj%?S>0w!4DrM%tTdr#m4lFVR2o|+T1)JXYfJyi)PHfVbt z4-5{?UKrk&f2`yiM*P07?Oz^Zfp1%gGmzeEV(v&fHL)pV$DioJqZHk5KL09mwt3jx z1HDM+o$#AbdolN*F+oD*??k&w@vM+~h{|<*V*Kn(P{xp9mbz-d(cJBZRxu6^6&w(> z>7iM!>U)w2H1IR=*!PjFkWYqQ@QtNnN!V~z&v1GWn`hk+fnH;tbD&ErNIgb47nr<} zAPwAXW$fto-E>o0JSD1Rq`HZnxz=D}W=UrI=5J)Lk0VoYsz6#oZA=>|N(K0d_N5To ziks6(1P}6%ms$`S4myY=kO`Rsf31zbOh`ynV2GD4$JXgp*gQm}Bx*6*qj6BCSMnQ@WPcpNkRBx|W|jZBpQ4d4;8Ns*-Utnp zSy$F0=s#**huV&s3gXA55v_seN)w4z>fbT6c`VKAz$tE>AP?|(KmJLw>5IMvlx8C; zHT1oBzp;#p%1=@TSC1onpp?07Tc3F02|rn&#*yLb#@*dqE|Qt&_wh)tzYd?a67ErO z1Zq+nHa9n|trcQAf?G?cY^6UJEqL>KI&~;WaHT^jPZ{E6todo2Wo=!&CnpMCDLAif zhpYs#uoG-ItntXr4O+*X?d7QWNM_AR2FTE*{n{9l>w13NdJGvkbh1ollEx>%Z@Or{ zDY^SpbC8JkraC;h?wKtt47cr^IFP1E*q*1E%Mo_Gg8a^RE%P;vBA^w}MuNRm8zL4N zUY}Yo%k=`@H%_m><)T{h=TJi*sm(&Yxi>|yF;t%jnfTJ`%lWZHy}B(WV+~EbBC?g~yuiBAL1XZL5?E#rb6@}?1vnIIqF-m*Ld;T34%jdp(~vw#sLEZ64{URFLv8_$I#=1Oe;+HbQlu#gAEt^ z^%FcRL1+hXqQGen%H|H;HIRr-m^V6HY?{oawWtX> zg>+>6ocyGw24*Vhf0Zx_`US$*Jt9JVbS>K90+ z0(A2N%lGcdJ5b{JdI2H%s!@QhdGk|2PWHG_s2To2BcW zV!`Nxqc`BR*CZ&33mx{_I=3v$EQmKum()X=TQi4|rA!eys!AI-+cq|JW!!(+wb?D@a(?uIvgN3 z2qU~c+`$2H1F|a2r;lh5Z!K{nYC?%b-8GGf<2@g)V-2+v5=l4$NX&!$`37L*KvIed zC0-8j{H;g1TLDAsn(ToBPJIx;JLVg+g$X!0gDKu`#F@GB_(~;kwZ>#z|G`hOG92B&vco# zHdn9vM}o(Ihai#j$|d;t3RYFX!p}oXwXR(6NIpNOxph0od)l zt%vQ!Zz9|KxN&7>;&OgO*=a0S}3UN?hFyUH8VGMh;b8!-Si$j}Q6D z#7HsOm3&Eaa&zaN!Z?8$!-DGFW)Yh5N7m-6?&k#Tyqq&94f)3?H5IKt;fGrrTG&;h^-#AHQ9s~-?lzzo7}lS5MI+RA)^H>S1#W}x3Rma62gVMG)dCs|0C(sknA}-fbJv0>NbK0G8vj8@Yu> z(5vv=Pk=_qL-1yg$#N5lkW#3kNy%|LqjJrG{|bDsRiH1DZVd(%%MsS2nloCyW5NFk z$|kC|`hx7Vfx9B=dVCkOUspn)l|K549AB`zthVt|Pg8fN(Y73o0Fp$m14~IQZU-O> zx)=5h3t9L}CGG{-fFKIjgo7CZ&nRU93us6dq25Ink&*X~b;u*oX=fK3RdsFhU?!h0>0UU9NCM_h z+N;mlG;z7`zHhzKlz@kWhFA`rWq#DLU>iMXl?O;S5Cb{4`k}wG*+Y?WfD!Y|Bw=fY z(Seb>_**=7n79=dU`&!)vkd?G>YI(F9{*ocs{&XT-JR6rxfJe$O=NQ>4D*@sM6o#Z zL0fvjKLWWK2ufxQQLyAqaM`i*x_(Z5?ayYXalFM z1!Ul*sd(r#*Nc)0?dH+`oK_rVi{0*o)i+9YIwxRdtmxMq0AL3CsPJzBGNWmH>*z}I z_Y{Po)7+H+Hj>Incd+U`=~O3&i_M&qgl`ut)@7I z2G{T#E(h?7kQRR&TlFPjXav=5Ke)IGA&)44%FLaUW+!jGRixL| z1sGpnCYNAv0!Li-JvezYNJB+}Z98Z)`lh7d*QG8 z<&=TYZ<%oC;z2yLnXc-Ag@rsqytQO3}AlGRE)Uly*^-qj%CjJFh z#P7qkUpgBKyhUJEwRA@vDjh2zGv8!#g3URr;=tC3tfZ_=5r{_aep`TuKtURL16X)7R{pTCbz{@xfkMqC zu5e6u^Rw7H5!P1-IQQNFyw0M|G5)C=5FyMqv%v=P?&iaE4VCaBS9A6w+gNh$<8cJeZVYodHsiZ^tz89c-GAhxll#&v! zo}rHMDX9SBQ_Z`~nAqofbw!nJ)dEY`j?nky;~kcNsG)tefHnfrC5^rqW#?wQ0_pe# z6Tq#uIEwt4D%--}5tsM_i4Qh51Yp)c2!?lXWk7Tq5q!;sjYf%zOG=j$T>GkZ+>Y-M z@ei3Bqi>?W(dbDAwnSfwBJ^EfU%$O}p+V*@E(Fyys~-qxOIiQzb#Ws`vqGj5eu)0W zezP4pKm^?w8)%$~$Y|}npF@mVMmw2xWknJsd?U1ycb~KzB7)%>c6%Y%OkM0 zQq2j4@+`Qe4a1Vm{dSE098UEc46n3c|5Dn8V)zz$kO8ZCCqtJk`YWoy2t*B{$M$%M z8&#*b^?OhPI36zhDRO;1AkM9@5~!3dC~ARgwb9e|kuPnOX`zpDbe|CPdY&N}mg8cE zQ1v-XY3rT`rS$j__7Znk=@nXw?4u{Y%MOj{StZ`Q5>xp>tq2jFm!YogE?s1*E(FC zwTOp%r%#c1KXog&4-d^L+tZFr4#_p&7@YN?ax{K z9YkWCs*vAbDo5M*2tG4ugV{VNTL?MRt`vL^D#e4rMh+IETpty~!yA%;2@gMJhA?8Q z{_L}j6HVo75yGoX<^*l&6#$YQa|Djl?zP5)FTQiMd=oc%6r2J=*6V0b-PS2e-qzpZgr3L`(hdkSK#<{$9Y-y;7Ag0fi_r}u ziC;5f^iyW(B?C|Ng9fY%g=C<#RISdv!_f2j9C{bXz8#PvfQ+3-okx}KcHIU|kmrr$ zaiz-@xmL&@;b!GRU9jeBcaa&$+D7-BJ)A^`FFk48^~+YD-D}s{jNvUC0RO}(dbKe* z#}=SzE*4R*y)|Oitoou^(gCo}YEPp=7FhEub!|D7&r?b%&TfolI=Y4Zn>R^DB5o&H zZhkJ_1eKx^=uAOtFZQ09Y??Mf)FU;*@aWOJc9}M$c`cse{Jig5U_={&{SbGi+GUB} znQYrRe5=hC7H%+2p9!et=jML-77wa!uz;Dy$bXP~stWJ2V~5T^UwvX@SlQ^31FjJ`VeQFZL?QqXAnr=F zTMayX(V2PD25vz0%!G9|*yM}e1xgK@#rShhg{EhnlCJ>^T<$;wAAL#i)hqAQ@F6N( zz-YAh!fDi2a7#1=x=h}$Id^-_t;h42ybKM!IxF@_d$&n;N&GhE4^nEK zHTrj^2d_#pE4brWbA8wq&(0b)n=}S~KNk zDsU1nsM&R=MLft#a?&`hvx@(%)BvTZ{rTf%--AMtx?TskNba-g52M>^%Wt-BQAI}g z1<6?y+T1z`(C){oKK3p)ZP%AQ2hZD;KmD8q7MNs!wU%C>*vMi5>Irb&Br;|8bXKko z-!fHQC%qn&yr?84p2R~l6Rk0AcB{-xg5>P>bDBq!O;@?GX%EXyO-7NrRm#;VuU&%q z=Eo3B;g{neBBGU=T{QkAUErpT03ei1|KO#4Yd*E{D>TmFzJ5Skv&L_$H(8d&S}OG7 zr}t?z3wxrge-Kt}G!MwbyK|xdV)m|0=2(X#2suS=%PIke>IfQrUfGoSr=Mg|)U-~F z8yb6rwNuA+Br8L-8{1K@PzQ1M_O`M4{@Icx;3$J~suMWa&LCD=(0OJ~Ty;({4JdkJ zEN|WP{Om$*21r`nBtHC0tU;#%b{km;A>OYLH#58eWwz|lF9CAHyUPR0ywD0iyV>4t z&imT3x7A4JsobEj2%}Y*)W9CFUsm@sK?Q^u4wZlRM>H;!|LO(sh>#wnFE|eI9hWJj z*R_Mz_yPSx+%}5pc=?H9($KD^cLMck) zw5{_Z6+?Eb(Anx5%;EYJ-?X9{wk)W7DzBs{>>a zj$p6@Hnx4pi9iXaZj(|nQ254YWmOi z!u}q5A;PihU%KmF2KumT2>mwhJl}!G0rCLc+T!R-`2XLpNw_7TRsaGABsUmGm7&vt`3bPU<7&7+2pJuCKfpo( zw*e4E0W)5gAdE5;vh22D;F?gf4y+68Jn>3za*-$ZjG`%eO?32vU$_Sp%7ORxwj6TA z?{{GCe?&3FPT(C0Y{(;{RTKb5{y<#-W!P)t@;p`=K_*r*FAGrhC(9CxLb#aUgvn3P z^9~zSYvv)EeZzus*bl2Zpie`Tl;n>@Ao4%<9j=225=@ujJue@vzdmTUg888hp#kcE z4783E7G9ihW&Cqty-V$tFrL5bmDdXYC7P#wTCiZEWo5fN4eBD+8J*;xi+cuQF{lTNLR=BJI(~(PptGTYR27nlgM%d78UD``q2hxt zm=L-8utahLWR>*^CQX)-e1OS0Mx&s=j2`4Ss9Z_&M^f^2RoVU7JV6c;1qZ%pzN7jV z-=UYl9)9b5-DMv4ISE{7rQ)i6B5u=73i{22=e&rsBf#Fq|I4u^~}-@#o&dxtX4lZ(}%MvS}y%w`P(>3 zYmLSn(ocAFX~@AMN?`Z%k0U1S+^jL{G((|dk-GV^5=w5;jJK*R~InWb)oqlj9`KQgv${e1j=4(f%)5NdUjZ?Yi{uV3skd}`0 zhB{WzOSR^|H;btYJq3Ma+m$(rDJ7reiV{{ta0=qTHNYO`M8Z(cVUzmUI_cHK#l*L8 zd(_^zZa=F#!R>lAf_KRR%84&{Jd?Pk+`*;hj0Xi0zRRz4pAwXAe@{m%v3jbcEN!v>r>-jxhq7;_Blpy(p>;%j0&*HK$CZE|D|k!x$PaYhT`!?%#TQn+B4mGKSli9aqIHJf{>HYl z6W_Hc)g`WIosWFUJTu~|+JjoTS;fnJtPs!;S|CionFP|qMV0@pCB0lou|P;s+Sgi~(<8qKZ6zHx ztjabIrSI4Z#EVbk`g?Q6g2A*N(RE@1 zA@HfJKNeXg+i&*g_!`%4c!~Nm(D(7l402{gbH0rhd)&D((Vq$Y>(ULM-;y@MyD6Sx z-mdGq+plHsox?fU3HmUP8I&RqDOmpG9pGPsL-DBb7!rl$i7+m`c&WALP{%)j>NmA) zVoPzmEi8h)81kn?H9ZmhIuTe8)aix&eVUN7Z1{ZTx)s$)t(1GpCu(mH99@%6a}xmfmUnX>NT>4^WF}#*xUKJ}dl4T?L`A=xR_quqA+pV`3EGoJxOih1+-?s>GJ$n1{|U1EDT`X=Kg<9aw9yBgu0%; zerW$<^RKTRoC@T0fF8920AN}u2GtA{Xb{~NV>UYk!5VbesQX@zX0#s1m2S@H+ey44 zR3xRPXdowpz>pmi9Y#27CAXAUJp0hT+~2@pXM0Bpql9WH4UHh1m;Qsx!+&tO!Ns8*xMezP zK<**}9^tGX@J^N<{6kNh%fth6p35Td!S5KGpOlQ_JVk^G6YS2yUyOjj4pLHtYM|*o zF>iBOXqy%7G6lhG^+7Hm9ixW0qlp09*`~O|r$D0uGM~kzSAjm#XAM3P@c9dh_Z#29 zKxxyXx(I8~(}J!+nS<)qN(xZq((@lc^C(IZUi`TUCC)CvMReXy0tB1Wq&LYNA7s;Yps9!n(dTg5M={W z@f`3J38gx~6nKKoM8*CQ)$9ah8Ug{0AE;eH{4PEKjgPB45KkSiIFTPIY_JNEdstB` z%Ol?My64f)g+F(*=*yY1Y82-AU>Yn^9`q23OR%38Va{~HFm?9*8n`JzrLB(>F|n7@ zV)48XJOOGtuv%+s-{A!)Gj%v~-zYA|YxdG1x;kO{-WvIDuflnSp;v2A>kp<>c4d+PbSbd45wDqZJTPuR zOnRhT8^l~e=XbET=Yg!vSYH~KxBR|1nif9-gK2B*DbRfg3Q5C^M*Qi$ z;$|vkID*z-5omb{+sAiZ6D9ydZ|uwPy>I-m-vzx1N@hq0mX8ybKtGDuil;Jegbb+zx0fGuhDMMSI3PG?!VIlONiDIJAG_#Tgx3#J6chj$En(ORlp0B*UM-wD|cLneJ6B8Mq#N(hv z6y6xOJo3ml6Q%ikqi#}aQ zVJd#zaE9b#_G*)>aB$q#!z!L8Hcog-RB7pxYqb3W{p=!Cr2Vt0V5S8qSRNK_Z|!2B z!F-Rv1W3UF*89}{e{dTgpH@44S~MdfrhzP(Rmz0|ZZQy)2l^R6a@9?~iKn=I)Csv_ z01|cF{*Jlw9`-~a{MsY~x$jzW`qH$5k&NXxpPBPx0fDfKz*gGv#jZ0*OeX_px=vjD~fK(uB&&>=vx4;CV|k!W}}Gv|U9 z1YyN{L9q_B6d_XB6v^ujMQ~I}Iug$nZMkZ@0_>#=7C!rF={GPN7?7-mE*Y)V&C0#?qe_zz1tR7W>kqz$qq!nv#;5A zgrDytveA<@_Q%J0iOC=lG!qgWwQzpFr~60{{R>MD$KhOe=Eo>=d9Jnz1tki>u_JGL zds&0x2J!fN+Rq3>kuQ-+WFmrXK2)iDS2yJw6Qd|u&^7RLa-&Mi?lXCR){(7SE$5v_ z)h92mW7TBZu)7+N=e{lV`0;uzSYcILTY?pSH?3l+IXd?E;IwjQK2g34ybbPf=C{Eb z{)8tYNJf!s+ zN2cU#jP35n66oct@8Q9baF7w;90K#QHBPG$5)cQOY}wR^5fv(SuYt| zGGYLM_I;pL?|twdaVpX*H`Q^WH?_BXUc|3@R-bNIgLgQ}+CgoNJH-WN?(XYmd1J;O zol`5rA6O<6v`-{$9HN@WPP6FcibGy0gtc&-#l1=GKiF|Gjq1D7#6@6ab2k^yMMMEQ z|No6H{~ieYv)Ex~mf7m{a0QSrYrb2uQ~Vf8s6z&3y$k;U{>A(bz%2Ls{%+P_WkjL@ zbCR1SsrnX7RG=Y$lbTc7uNgCDWn6g|J@_v^fPO*<;{3Ka~-+TK$E$1w6LFla%y1#IfI zX<-%&?pF+(Dg#(s1aezuw@K#EYK!2(%L#ooJR2GTS zF9FO3ymmnLMre1;R-rUlL5}F=#Rlg7r!{X!57PHNB?>PLei6_12&(J@c)(@Qo6G7r z-%A1GTDwiycE5Q81KJS}(rV>$*x#d|sU{dOS7rK793WR-tP*tWyv#ravCIGZ?{+;f zg@z=IgnBmyoOFfbYvA1e(Ol4BrKRG|B|1t7(dQqQ{R3%G_B8A2P=$GuMsQXBXtsB2 z*GqcjlwtL6XtP!@np{gs<%9ZGtY% zST(usDU6ZD`5pupCY!5^A7pc>s%+chOO{VFv(f@HPxZb(x)_HL17{Z_4ByVPlFq&9 zbt~H1F2^7lH)P`|K>@daffFaFZ8lmH#}#L)LL($V#^aHW!czI=P)SC8ZT-EFgoVdx z9DgE4U@$=DFSv=l^1qvG&|Cu^19$>xA3%!rJS5=gI;y9-_YyXJ{3Z3>=bGeHi4P(t zh>Ny9!mfh_lFC@7vsw&LJlp-dgpD*>z?2BOj-qGYff$t+=; z54Uer3SNFNa}8d%<5yr^?LEsZdC%s^?*2;Z0z=J~%UF2~+IyI)CJkk)r&rRv@2M13 zZ9TCw+B0V;QBp!fZ~IT*mYReole~A!rfbubBsm576|G)gC$!>a@YlO%*BuQH;)K77 zm1s_V%%@drRk0mzMuwiR!5R3b>R1aB)T z7mTgpt;fEgA<}STBDFRw2^#j=FejgORu_E62{=MFPF zD84Pj@9HFO$l?$)#6TT(x#9C9jJ#-`O-uO5}@7q1G`oXwmeY#Wv9B+qK+va}2q8^e1H1JauFOt?9OGF+e1&p0A!PWm?d%#$uKU3#;5ur;KjU?Tj7 zWPYJ;(z!rhWhEs@iA&T-Ou3g^k%Rr&Zt-I@46>4^4DstNrY0|-S6}Abluk~G;abzH6-<0~z6v6WpDMGvlOlKsH1ga;k(I z+Pr8-@8f@Mak#*`XDf30~((;qhjpMkAjWTf>%W z{=aCP=sTlWgH}y{3=a<%erH|uA0KxBIzmq#1x<*6RD}^N>QpK4^jp!p?Cf4FR)*z# zMfk_H?C!N(M4NE4MGD)2F|Ntj#H3@cL}78yPX@nH&FnPfzsH*=!)NQ@Kx!3yQsDHS zlszN>{~BZ;&t?Mx0tSx`4=;noz#5LQ_|~(Em0uehvLX5Mj_VmY4usEAHJ@`|oy7JH3Wc~$?ld@QAhWUq&dqb^Z(5|N9!&6zvmGoO^q}0S z6xW9U#-si7>fYtf`Us9Xwf3Bw^3rSoIT(fGVOA z80o;D&T7|B^B3OK?%Fu9W?LkXvR7VPZ%RrSxyl$brBY5e&OZ2cNMg-IAfn}3@roi! zF)P_3o4J#S_cMj@X9@}bFZM+ygDWLs?si>2t=~gGg^YTzpY=%g?$$lyH@7Gb7-YO` z*4P}{G})BKY|1R&{?}Vgek-${9ot^v8#g zT7lx5>$)1<^KnSR6QoT7-j$=QO@qyG5!#CCPS5M;9T--aKpFAp8u24Nsl(<@iM{i< zb`Tk}bL`t0H9@7wn3qN7@alsBRlF(?GCCyHL~qnZb$WYyv#B|xK^cx`3xlNg@5WU=Jp2f zXNM1WH4*n_40ru9E6Lb1M?4ok(u&^VPPy;Cs6Ioj_d`-yCjv^ny>pU?>6ym;2$~!% zzv^J_ZZSDpg8ewWs?k@8*md$F34{2lM#^w1#YKZRMlaOKa1xLhdiNOT+@xM>0XZTI zgmXcH)!|BL5>f?G)?H3IWG3Mnn0c&os1d>r4x_ zeLC?%g~tw1jnLXW9HI=-{St8@@C3K<#Jl(r5$c5a4^?v#03 zkgVNcHi_XU`SOoA)8f+h=bizV1L|5jv(_Lo_WXc4nA`AG#{N$Z=K=EZu`a83#mVpX z@XG%v^P|vji!0r_KePF6#(Qmyg85(g9n;AhTdgzs<(B08{ejL$v;67wvGHQ9WK~8@ z!JvW*FxzfCGH2#oVKP-9 z^9=G*>IF9^LHBCW@Jc(Zf|R|(Ys0a6tj?fU&Hy71o2vX@NZo7sByU(JuDb_7@w;b; zo$l<6#~eP=!~oeDV~J2oj;&QLiM`r^a+hE^C(FW&%qoCuI2x+B2p~sWURyN*j1lHg ze8{J+S#Xz;xsJQu2x-Wknf6Q6agUahqyN(@U_YoYP)8C)vPBTiVi`%@_nrjA`70g7 zRiFBwb$4rt1PB%x#LE!}dufu87COgkh~9V!rDlsbl)q(%Td4@PkPWE;I7lhZGI2hy zr*{Vu5^{%`Z1RL#h|3MrBLGR2wua?Q`m~Sve2YiVWpGNqzYynLRO9^jiEzueA7>FxH4}gT8lRLFlLaHzprkj}Xx!149@axJ7te=r*K18n9B` ze5yU~7QhkK&9W%x4gO=z3eZ@}G~H1CtKcT_VDy0UQ4T%GLQWp)9D zaS3@xVdaq&gHhg~LQ?bX2vKjIqZ^2;jJrO&a~Vprqr$?Hm)wrK@1dkyD^rbF#&v(C zPo^iKscXX`U+yc;vD1PLlls$Tx4cna_9s$QZ~wX-EnB{rI;-F+G8ykSoI%DuASo(K z*S3dNbLrmTxB%FG%hUb_Nx-1)ic|EaHI0!pw%Q9kcphoR0?0^JN`F>y{ib)kCg;#S zP3-sXh9*vJSPnatHerkj-}5JLdH3kX_Gm3nOjejiJv6asRHbTmxT;rB(t+Yv>)qv4 zfWM+1VTMChRkaW$iS5NiZr?-Xz38o&C;!ITY6H|4;%dsv*_c9N+5dxG!ZGk00EH>D zHf6gTWq6g1$ueh{u_L`1a%n+TIalR43o_eXOX;lg%Dt^v$TuVRxi33&KOF$*epcqJzl+&nEqWAS8@ z@@p*-qXlnlRo>K{#z*>)uxGmSaPL3-`~N{*RT96KI)h7MIx`x%xh#t6MLK_g_S%5% zQvk71#A5#kaO26?Ba-U#dVZJwf4vldRRnazd$bX%Na7&vXimZ&QOo?F-gYMcx}A}! Vqs_J$e4hj4p^BDrh2mdf{{`oOB$@yK literal 0 HcmV?d00001 diff --git a/doc/images/musixtex2.png b/doc/images/musixtex2.png new file mode 100644 index 0000000000000000000000000000000000000000..f37471dd7875d391be17a7fb819ef051601f30bd GIT binary patch literal 13372 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 literal 0 HcmV?d00001 diff --git a/doc/images/pdf.png b/doc/images/pdf.png new file mode 100644 index 0000000000000000000000000000000000000000..d430f7dd72030402ebeb9595b3d8cda4ee0e99f0 GIT binary patch literal 2316 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 Eg0i)$cK`qY literal 0 HcmV?d00001 diff --git a/doc/images/song.png b/doc/images/song.png new file mode 100644 index 0000000000000000000000000000000000000000..108dcb28645436f8c703d84b690a27b219b05283 GIT binary patch literal 24252 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 LhJiXt)h^;+32nK< literal 0 HcmV?d00001 diff --git a/doc/images/songbook.png b/doc/images/songbook.png new file mode 100644 index 0000000000000000000000000000000000000000..b6122dfee693f0887016c346bac0392741a6f61c GIT binary patch literal 25764 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 literal 0 HcmV?d00001 diff --git a/doc/images/syntax.png b/doc/images/syntax.png new file mode 100644 index 0000000000000000000000000000000000000000..0af69c3a970db0dc99d47024d109f1d1b7770817 GIT binary patch literal 2404 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