This commit is contained in:
2022-01-06 18:50:47 +01:00
parent da23cdd254
commit 607e485b2d
28 changed files with 215 additions and 1597 deletions

1
.gitignore vendored
View File

@@ -1,2 +1,3 @@
target*
build*
bin*

View File

@@ -1,3 +1,4 @@
{
"java.home": "/usr/local/Cellar/openjdk/17.0.1_1"
"java.home": "/usr/local/Cellar/openjdk/17.0.1_1",
"java.configuration.updateBuildConfiguration": "automatic"
}

View File

@@ -1,21 +1,28 @@
UPDATE: Server has moved. Please use "guitartex2.nikolai-rinas.de" instead
# Server online: guitartex2.nikolai-rinas.de
Release Notes
## Documentation
* Available in German
* Available in English
## Release Notes
=============
Version 3.4.1
* New build pipeline with VSC and maven
* Code cleanup
* Dropped standalone mac app support
### Version 3.4.1
* New build pipeline with VSC and maven
* Code cleanup
* Dropped standalone mac app support
* Standalone gtx converter available
* Published build versions for Windows/Linux/Mac
Version 3.4.0:
* Code cleanup: Java 1.8 is required
* App for Mac: Embedded Java runtime. Works standalone
### Version 3.4.0:
* Code cleanup: Java 1.8 is required
* App for Mac: Embedded Java runtime. Works standalone
Version 3.3.1
### Version 3.3.1
* Defaultwerte angepasst
Version 3.3.0:
### Version 3.3.0:
* std:Ausgaben auf die interne Konsole umleiten
* Harp-Notes hinzugefuegt
* Parser: An die Harp-Notes angepasst
@@ -26,23 +33,23 @@ Version 3.3.0:
* Direktivloser Text wird nicht geparsed
* Link auf die Webseite mit den Shortcuts
Version 3.2.5:
### Version 3.2.5:
* Configuration: Systeme werden mid regex erkannt
* Konsole eingebaut
* Template fuer neue Dokumente
Version 3.2.4:
### Version 3.2.4:
* Sprachbutton hinzugefuegt
* FAQ Link im Menue hinzugefuegt
Version 3.2.3:
### Version 3.2.3:
* UTF8 Support
Version 3.2.2:
### Version 3.2.2:
* Parser: Windows \r wird korrekt geloescht
* Serverseitig: Windows-Dateien werden generell in Unix Format konvertiert
Version 3.2.1:
### Version 3.2.1:
* graphicx Packet entfernt
* Schriftarten auf lmodern umgeschaltet
* Neue Direktive {nopagenum}

View File

@@ -1,95 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- You may freely edit this file. See commented blocks below for -->
<!-- some examples of how to customize the build. -->
<!-- (If you delete it and reopen the project it will be recreated.) -->
<!-- By default, only the Clean and Build commands use this build script. -->
<!-- Commands such as Run, Debug, and Test only use this build script if -->
<!-- the Compile on Save feature is turned off for the project. -->
<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
<!-- in the project's Project Properties dialog box.-->
<project name="GuitarTeX2" default="default" basedir=".">
<description>Builds, tests, and runs the project GuitarTeX2.</description>
<import file="nbproject/build-impl.xml"/>
<property environment="env" />
<taskdef name="bundleapp"
classname="com.oracle.appbundler.AppBundlerTask"
classpath="lib/appbundler-1.0.jar" />
<target name="bundle-GuitarTeX2">
<bundleapp outputdirectory="dist"
name="GuitarTeX2"
displayname="GuitarTeX2"
identifier="guitartex2.GuitarTeX2"
shortversion="3.4.0"
icon="GuitarTeX2.icns"
copyright="Nikolai Rinas"
mainclassname="guitartex2.GuitarTeX2">
<runtime dir="${env.JAVA_HOME}" />
<classpath file="dist/GuitarTeX2.jar" />
<option value="-Dapple.laf.useScreenMenuBar=true"/>
</bundleapp>
</target>
<!--
There exist several targets which are by default empty and which can be
used for execution of your tasks. These targets are usually executed
before and after some main targets. They are:
-pre-init: called before initialization of project properties
-post-init: called after initialization of project properties
-pre-compile: called before javac compilation
-post-compile: called after javac compilation
-pre-compile-single: called before javac compilation of single file
-post-compile-single: called after javac compilation of single file
-pre-compile-test: called before javac compilation of JUnit tests
-post-compile-test: called after javac compilation of JUnit tests
-pre-compile-test-single: called before javac compilation of single JUnit test
-post-compile-test-single: called after javac compilation of single JUunit test
-pre-jar: called before JAR building
-post-jar: called after JAR building
-post-clean: called after cleaning build products
(Targets beginning with '-' are not intended to be called on their own.)
Example of inserting an obfuscator after compilation could look like this:
<target name="-post-compile">
<obfuscate>
<fileset dir="${build.classes.dir}"/>
</obfuscate>
</target>
For list of available properties check the imported
nbproject/build-impl.xml file.
Another way to customize the build is by overriding existing main targets.
The targets of interest are:
-init-macrodef-javac: defines macro for javac compilation
-init-macrodef-junit: defines macro for junit execution
-init-macrodef-debug: defines macro for class debugging
-init-macrodef-java: defines macro for class execution
-do-jar: JAR building
run: execution of project
-javadoc-build: Javadoc generation
test-report: JUnit report generation
An example of overriding the target for project execution could look like this:
<target name="run" depends="GuitarTeX2-impl.jar">
<exec dir="bin" executable="launcher.exe">
<arg file="${dist.jar}"/>
</exec>
</target>
Notice that the overridden target depends on the jar target and not only on
the compile target as the regular run target does. Again, for a list of available
properties which you can use, check the target you are overriding in the
nbproject/build-impl.xml file.
-->
</project>

View File

@@ -1,3 +0,0 @@
#!/bin/bash
ant bundle-GuitarTeX2

File diff suppressed because it is too large Load Diff

82
pom.xml
View File

@@ -18,34 +18,64 @@
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>guitartex2.GuitarTeX2</mainClass>
</manifest>
</archive>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>guitartex2.GuitarTeX2</mainClass>
</manifest>
</archive>
<finalName>${project.artifactId}-${project.version}</finalName>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<!-- bind to the packaging phase -->
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<!-- bind to the packaging phase -->
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>guitartex2.GuitarTeX2Convert</mainClass>
</manifest>
</archive>
<finalName>${project.artifactId}Convert-${project.version}</finalName>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<!-- bind to the packaging phase -->
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>

View File

@@ -72,8 +72,8 @@ class GTXConsole extends JFrame implements ActionListener{
resbundle = ResourceBundle.getBundle ("GuitarTeX2strings", Locale.getDefault());
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
statusTop = new Double((screenSize.getHeight()/2) - (statusHeight/2)).intValue();
statusLeft = new Double((screenSize.getWidth()/2) - (statusWidth/2)).intValue();
statusTop = Double.valueOf((screenSize.getHeight()/2) - (statusHeight/2)).intValue();
statusLeft = Double.valueOf((screenSize.getWidth()/2) - (statusWidth/2)).intValue();
this.setResizable(false);

View File

@@ -25,7 +25,6 @@ import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Event;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
@@ -133,7 +132,7 @@ public class GuitarTeX2 extends JFrame {
private Action mFAQAction, mShortcutAction;
private Action mAboutAction;
private Action mOpenTemplateSongAction, mOpenTemplateBookAction;
private Action mOpenTemplateSong1Action, mOpenTemplateSong2Action, mOpenTemplateBookAction;
private static int gtxWidth;
private static int gtxHeight;
@@ -277,7 +276,7 @@ public class GuitarTeX2 extends JFrame {
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
//gtxTop = new Double((screenSize.getHeight()/2) - (gtxHeight/2)).intValue();
gtxTop = 0;
gtxLeft = new Double((screenSize.getWidth() / 2) - (gtxWidth / 2)).intValue();
gtxLeft = Double.valueOf((screenSize.getWidth() / 2) - (gtxWidth / 2)).intValue();
this.setLocation(gtxLeft, gtxTop);
this.setSize(gtxWidth, gtxHeight);
@@ -480,13 +479,13 @@ public class GuitarTeX2 extends JFrame {
mHarpUp.addActionListener(pmUpAction);
mHarpUp.setSelected(true);
InputMap inputMap = mEditArea.getInputMap();
KeyStroke keyUp = KeyStroke.getKeyStroke(KeyEvent.VK_U, Event.CTRL_MASK);
KeyStroke keyUp = KeyStroke.getKeyStroke(KeyEvent.VK_U, KeyEvent.CTRL_DOWN_MASK);
inputMap.put(keyUp, pmUpAction);
mHarpDown = new JToggleButton(downButtonIcon);
Action pmDownAction = new mPMHarpActionClass("down");
mHarpDown.addActionListener(pmDownAction);
KeyStroke keyDown = KeyStroke.getKeyStroke(KeyEvent.VK_J, Event.CTRL_MASK);
KeyStroke keyDown = KeyStroke.getKeyStroke(KeyEvent.VK_J, KeyEvent.CTRL_DOWN_MASK);
inputMap.put(keyDown, pmDownAction);
JPanel pm = new JPanel();
@@ -617,7 +616,7 @@ public class GuitarTeX2 extends JFrame {
private JButton createChordButton(Action aButton, int keyEvent) {
InputMap inputMap = mEditArea.getInputMap();
KeyStroke key = KeyStroke.getKeyStroke(keyEvent, Event.CTRL_MASK);
KeyStroke key = KeyStroke.getKeyStroke(keyEvent, KeyEvent.CTRL_DOWN_MASK);
inputMap.put(key, aButton);
JButton chord = new JButton(aButton);
@@ -632,7 +631,7 @@ public class GuitarTeX2 extends JFrame {
private JButton createHarpButton(Action hButton, int keyEvent) {
InputMap inputMap = mEditArea.getInputMap();
KeyStroke key = KeyStroke.getKeyStroke(keyEvent, Event.CTRL_MASK);
KeyStroke key = KeyStroke.getKeyStroke(keyEvent, KeyEvent.CTRL_DOWN_MASK);
inputMap.put(key, hButton);
JButton chord = new JButton(hButton);
@@ -654,7 +653,8 @@ public class GuitarTeX2 extends JFrame {
fileMenu.addSeparator();
JMenu templateMenu = new JMenu(resbundle.getString("templateItem"));
templateMenu.add(mOpenTemplateSongAction);
templateMenu.add(mOpenTemplateSong1Action);
templateMenu.add(mOpenTemplateSong2Action);
templateMenu.add(mOpenTemplateBookAction);
fileMenu.add(templateMenu);
@@ -695,7 +695,8 @@ public class GuitarTeX2 extends JFrame {
mOpenAction = new openActionClass(resbundle.getString("openItem"),
KeyStroke.getKeyStroke(KeyEvent.VK_O, shortcutKeyMask));
mOpenTemplateSongAction = new openActionClass(resbundle.getString("simpleSong"));
mOpenTemplateSong1Action = new openActionClass(resbundle.getString("simpleSong1"));
mOpenTemplateSong2Action = new openActionClass(resbundle.getString("simpleSong2"));
mOpenTemplateBookAction = new openActionClass(resbundle.getString("simpleBook"));
mSaveAction = new saveActionClass(resbundle.getString("saveItem"),
@@ -849,8 +850,12 @@ public class GuitarTeX2 extends JFrame {
@Override
public void actionPerformed(ActionEvent e) {
String fileName = "";
if (e.getActionCommand().equals(resbundle.getString("simpleSong"))) {
fileName = myConf.getSongTemplate();
if (e.getActionCommand().equals(resbundle.getString("simpleSong1"))) {
//fileName = myConf.getSongTemplate();
fileName = resbundle.getString("simpleSong1");
}
if (e.getActionCommand().equals(resbundle.getString("simpleSong2"))) {
fileName = resbundle.getString("simpleSong2");
}
if (e.getActionCommand().equals(resbundle.getString("simpleBook"))) {
fileName = myConf.getBookTemplate();
@@ -932,13 +937,25 @@ public class GuitarTeX2 extends JFrame {
}
private void openFile(String fileName) {
File f = new File(fileName);
try {
FileInputStream fis = new FileInputStream(f);
mEditArea.read(new UnicodeReader(fis, "UTF-8"), "");
if ( fileName.contentEquals(resbundle.getString("simpleSong1")) ) {
mEditArea.read(new UnicodeReader(GuitarTeX2.class.getResourceAsStream("/examples/griechischer_wein.gtx"), "UTF-8"), "");
mActFileName = resbundle.getString("mNewFile");
mFileChooser.setSelectedFile(null);
tabbedPane.setTitleAt(0, resbundle.getString("mNewFile"));
}else if ( fileName.contentEquals(resbundle.getString("simpleSong2")) ) {
mEditArea.read(new UnicodeReader(GuitarTeX2.class.getResourceAsStream("/examples/lazy_blues.gtx"), "UTF-8"), "");
mActFileName = resbundle.getString("mNewFile");
mFileChooser.setSelectedFile(null);
tabbedPane.setTitleAt(0, resbundle.getString("mNewFile"));
}else{
File f = new File(fileName);
FileInputStream fis = new FileInputStream(f);
mEditArea.read(new UnicodeReader(fis, "UTF-8"), "");
mActFileName = f.getName();
tabbedPane.setTitleAt(0, mActFileName);
}
mEditArea.getDocument().addDocumentListener(new MyDocumentListener());
mActFileName = f.getName();
tabbedPane.setTitleAt(0, mActFileName);
mShowTeXArea.setText("");
mShowTeXArea.setEnabled(false);
mShowTeXArea.setVisible(false);

View File

@@ -31,8 +31,8 @@ public class GuitarTeX2Convert {
String help = ""
+ resbundle.getString("appVersion") + "\n"
+ "Usage: \n"
+ " GuitarTeX2Converter -h help (this screen)\n"
+ " GuitarTeX2Converter -f <file.gtx> convert gtx file and print to std out\n"
+ " GuitarTeX2Convert -h help (this screen)\n"
+ " GuitarTeX2Convert -f <file.gtx> convert gtx file and print to std out\n"
+ "\n";
if (args.length != 0) {

View File

@@ -54,8 +54,8 @@ class InfoBox extends JFrame implements ActionListener{
resbundle = ResourceBundle.getBundle ("GuitarTeX2strings", Locale.getDefault());
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
statusTop = new Double((screenSize.getHeight()/2) - (statusHeight/2)).intValue();
statusLeft = new Double((screenSize.getWidth()/2) - (statusWidth/2)).intValue();
statusTop = Double.valueOf((screenSize.getHeight()/2) - (statusHeight/2)).intValue();
statusLeft = Double.valueOf((screenSize.getWidth()/2) - (statusWidth/2)).intValue();
this.setResizable(false);

View File

@@ -206,8 +206,8 @@ public class PreferencesBox extends JFrame implements ActionListener {
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int aboutTop = new Double((screenSize.getHeight() / 2) - (this.getHeight() / 2)).intValue();
int aboutLeft = new Double((screenSize.getWidth() / 2) - (this.getWidth() / 2)).intValue();
int aboutTop = Double.valueOf((screenSize.getHeight() / 2) - (this.getHeight() / 2)).intValue();
int aboutLeft = Double.valueOf((screenSize.getWidth() / 2) - (this.getWidth() / 2)).intValue();
this.setTitle(resbundle.getString("prefTitle"));
this.setLocation(aboutLeft, aboutTop);

View File

@@ -53,8 +53,8 @@ public class StatusBox extends JFrame implements ActionListener {
resbundle = ResourceBundle.getBundle ("GuitarTeX2strings", Locale.getDefault());
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
statusTop = new Double((screenSize.getHeight()/2) - (statusHeight/2)).intValue();
statusLeft = new Double((screenSize.getWidth()/2) - (statusWidth/2)).intValue();
statusTop = Double.valueOf((screenSize.getHeight()/2) - (statusHeight/2)).intValue();
statusLeft = Double.valueOf((screenSize.getWidth()/2) - (statusWidth/2)).intValue();
this.setResizable(false);
@@ -96,8 +96,8 @@ public class StatusBox extends JFrame implements ActionListener {
public StatusBox(String myStatus) {
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
statusTop = new Double((screenSize.getHeight()/2) - (statusHeight/2)).intValue();
statusLeft = new Double((screenSize.getWidth()/2) - (statusWidth/2)).intValue();
statusTop = Double.valueOf((screenSize.getHeight()/2) - (statusHeight/2)).intValue();
statusLeft = Double.valueOf((screenSize.getWidth()/2) - (statusWidth/2)).intValue();
this.setResizable(false);

View File

@@ -5,7 +5,8 @@ closeItem=Close
saveItem=Save
saveAsItem=Save As...
templateItem=Templates
simpleSong=Song
simpleSong1=Song1
simpleSong2=Song2
simpleBook=Book
exitItem=Quit

View File

@@ -1,11 +1,12 @@
fileMenu=Datei
newItem=Neu
openItem=Öffnen...
closeItem=Schließen
openItem=\u00d6ffnen...
closeItem=Schlie\u00dfen
saveItem=Speichern
saveAsItem=Speichern unter...
templateItem=Templates
simpleSong=Lied
simpleSong1=Lied1
simpleSong2=Lied2
simpleBook=Liederbuch
exitItem=Beenden
@@ -14,9 +15,9 @@ mPrefs=Einstellungen
undoItem=
cutItem=Ausschneiden
copyItem=Kopieren
pasteItem=Einfügen
clearItem=Löschen
selectAllItem=Alles auswählen
pasteItem=Einf\u00fcgen
clearItem=L\u00f6schen
selectAllItem=Alles ausw\u00e4hlen
buildMenu=Erstellen
gtx2tex=GTX2TeX
@@ -26,8 +27,8 @@ dvi2pdf=Dvi2Pdf
tex2pdf=TeX2Pdf
helpMenu=Hilfe
aboutItem=Über GuitarTeX2
aboutTitle=Über GuitarTeX2
aboutItem=\u00dcber GuitarTeX2
aboutTitle=\u00dcber GuitarTeX2
faqItem=FAQ
faqURL=http://guitartex2.sourceforge.net/page7/page6/page6.html
shortcutItem=Shortcuts
@@ -82,7 +83,7 @@ mGuitarTab=Tabulatur
mNewFile=Neue Datei
checkConn=Überprüfe Verbindung zum Server ...
checkConn=\u00dcberpr\u00fcfe Verbindung zum Server ...
createPdf=Erstelle PDF ...
showPdf=Versuche die PDF Datei darzustellen ...
@@ -91,9 +92,9 @@ wait4PdfFile=Warte auf das Ergebnis ...
receivePdfFile=Empfange PDF-Datei ...
receiveLogFile=Empfange Log-Datei ...
confFailed=Laden von Konfigurationsdatei fehlgeschlagen!
texFailed=PDF Datei kann nicht erzeugt werden!\nBitte Überprüfen Sie Ihr Dokument!
texFailed=PDF Datei kann nicht erzeugt werden!\nBitte \u00fcberpr\u00fcfen Sie Ihr Dokument!
mSaveQuestionHead=Datei wurde verändert!
mSaveQuestionHead=Datei wurde ver\u00e4ndert!
mSaveQuestion=Wollen Sie die Datei speichern?
prefTitle=Einstellungen
@@ -110,15 +111,15 @@ mSetBook=Buch
mBookAuthor=Autor
mBookTitle=Titel
mBookDate=Datum
mBookInclude=Einfügen
mBookInclude=Einf\u00fcgen
resetButton=Zurücksetzen
resetButton=Zur\u00fccksetzen
okButton=OK
cancelButton=Abbrechen
quitButton=Beenden
infoButton=Info
choose=Auswählen
choose=Ausw\u00e4hlen
warnTitle=Warnung!
statusTitle=Status

View File

@@ -0,0 +1,39 @@
{geometry:a4paper}
{geometry:margin=2.5cm}
{font_size:12}
{color_chorus:0,0,0}
{language: german}
{title: Griechischer Wein}
{a:Vers 1:}
{bridge}
[Am]Es war schon dunkel, als ich durch Vorstadtstrassen [(Am]heimw[F)]"arts gin[C]g.
Da war ein Wirtshaus, aus dem das Licht noch auf den [(C]Gehs[F)]teig sch[G7]ien.
[E7]Ich hatte [Am]Zeit, und mir war [E7]kalt, drum trat ich [Am]ein.
\\
[Am]Da sassen M"anner mit braunen Augen und mit [(Am]schwarz[F)]em Ha[C]ar.
Und aus der Jukebox erklang Musik, die fremd und [(C]s"ud[F)]lich wa[G7]r.
[E7]Als man mich [Am]sah, stand einer [E7]auf und lud mich [Am]ein.
{/bridge}
{a:Refrain:}
{chorus}
[F]Griechischer Wein ist wie das Blut der Erde,
k[C]omm, schenk' dir ein, und wenn ich dann traurig werde,
li[G7]egt es daran, dass ich immer tr"aume von da[C]heim, du musst verz[C7]eih'n.
G[F]riechischer Wein und die altvertrauten Lieder,
s[C]chenk nochmal ein, denn ich f"uhl die Sehnsucht wieder,
in[G7] dieser Stadt werd'ich immer nur ein [E7]Fremder [Am]sein [E7]und a[Am]llein.
{/chorus}
{a:Vers 2:}
{bridge}
Und dann er[Am]z"ahlten sie mir von gr"unen H"ugeln, M[(Am]eer [F)]und Wi[C]nd,
von alten H"ausern und jungen Frauen, die [(C]allei[F)]ne s[G7]ind,
[E7]und von dem K[Am]ind, das seinen V[E7]ater noch nie s[Am]ah.
Si[Am]e sagten sich immer wieder, irgendwann [(Am]geht [F)]es zur[C]"uck,
und das Ersparte gen"ugt zu Hause f"ur ein [(C]klein[F)]es Gl"u[G7]ck.
[E7]Und bald denkt ke[Am]iner mehr dar[E7]an, wie es hier [Am]war.
{/bridge}

View File

@@ -0,0 +1,22 @@
{geometry:a4paper}
{geometry:margin=2.5cm}
{font_size:12}
{color_chorus:0,0,0}
{title: Lazy Blues}
{define:C7 t x 3 2 3 1 x}
{define:F7 5 x 3 2 3 1 x}
{define:G7 7 x 3 2 3 1 x}
{a: [Zahlen = Fingerstellung im Bund x]}
{guitartab: [14.5ex;C7]&[2;3][2;3][3;2]&[4;3]&[5;1][3;2]&[4;3]&[5;1]|[2;3][2;3][3;2]&[4;3]&[5;1][3;2]&[4;3]&[5;1]|[2;3][2;3][3;2]&[4;3]&[5;1][3;2]&[4;3]&[5;1]|[1;3][1;3][2;1][2;2]|[2;3][2;3][3;2]&[4;3]&[5;1][3;2]&[4;3]&[5;1]|[2;3][2;3][3;2]&[4;3]&[5;1][3;2]&[4;3]&[5;1]}
{guitartab: [14.5ex;F7]&[2;8][2;8][3;7]&[4;8]&[5;6][3;7]&[4;8]&[5;6]|[2;8][2;8][3;7]&[4;8]&[5;6][3;7]&[4;8]&[5;6]|[2;8][2;8][3;7]&[4;8]&[5;6][3;7]&[4;8]&[5;6]|[1;8][1;8][2;6][2;7]|[2;8][2;8][3;7]&[4;8]&[5;6][3;7]&[4;8]&[5;6]|[2;8][2;8][3;7]&[4;8]&[5;6][3;7]&[4;8]&[5;6]}
{guitartab: [14.5ex;C7]&[2;3] _ [2;3] _ [3;2]&[4;3]&[5;1] _ [3;2]&[4;3]&[5;1] | [2;3] _ [2;3] _ [3;2]&[4;3]&[5;1] _ [3;2]&[4;3]&[5;1]|}
{guitartab: [14.5ex;G7]&[2;10] _ [2;10] _ [3;9]&[4;10]&[5;8] _ [3;9]&[4;10]&[5;8] | [2;10] _ [2;10] _ [3;9]&[4;10]&[5;8] _ [3;9]&[4;10]&[5;8] |}
{guitartab: [14.5ex;F7]&[2;8] _ [2;8] _ [3;7]&[4;8]&[5;6] _ [3;7]&[4;8]&[5;6] | [2;8] _ [2;8] _ [3;7]&[4;8]&[5;6] _ [3;7]&[4;8]&[5;6] |}
{guitartab: [14.5ex;C7]&[2;3][2;3][3;2]&[4;3]&[5;1][3;2]&[4;3]&[5;1]|[2;3][2;3][3;2]&[4;3]&[5;1][3;2]&[4;3]&[5;1]|[2;3][2;3][3;2]&[4;3]&[5;1][3;2]&[4;3]&[5;1]|[1;3][1;3][2;1][2;2]|[2;3][2;3][3;2]&[4;3]&[5;1][3;2]&[4;3]&[5;1]|[2;3][2;3][3;2]&[4;3]&[5;1][3;2]&[4;3]&[5;1]}

View File

@@ -0,0 +1,10 @@
{document_class:book}
{book_author:I am the author}
{book_title:This is my book}
{book_date:02/28/2007}
{include:<full_path>/GuitarTeX2/examples/lazy_blues.gtx}
{include:<full_path>/GuitarTeX2/examples/griechischer_wein.gtx}