PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Neues Paket in LyX einbinden



André25
23-11-2011, 19:50
Hallo Freunde!

Ich habe mir ein Paket (bestehend aus: *.cls, *.dtx, *.ins, *.pdf) aus dem Netz besorgt und möchte dies jetzt als Dokumentenklasse für mein LyX Dokument verwenden.

Was muss ich dafür tun? Ich habe das Verzeichnis in c:\Program Files (x86)\MiKTeX 2.9\tex\latex\ kopiert und gehofft, wenn ich in LyX dann Dokument\Einstellungen auswähle, dass ich es dann als Dokumentenklasse auswählen kann.

Da dies nicht der Fall ist, hoffe ich, dass mir das hier jemand beantworten kann. ;)

Besten Dank und liebe Grüße,

André :)

bobmalaria
23-11-2011, 20:21
hi,

aus dtx und ins generiert man normalerweise z.b. eine cls und die doku. du scheinst die cls und die odf doku gleich mit runtergelanden zu haben...

erster schritt wäre erstmal im miktex paketmanager zu schauen ob es das paket/die klasse nicht auch darüber zu installieren gibt

start->programme->miktex 2.x->maintanance->package browser (oder so ähnlich). dort nach dem namen suchen.

sollte das nicht der fall sein, hast du es grundsätzlich schon mal in den richtigen ordner kopiert. allerdings ist dann beim nächsten update alles weg.
du kannst aber z.b. einen lokalen baum anlegen. z.b.

c:\meintexbaum\tex\latex\meineklasse

in den ornder "meineklasse" kannst du dann die cls datei kopieren. das pdf kann dann in einen ordner

c:\meintexbaum\doc\latex\meineklasse

c\meinbaum kannst du dann in den miktex settings als root eintragen. sieht ungefähr so aus

http://www.mcs.uvawise.edu/dbl5h/resources/latex_intro/pictures/options.png

anschliessen musst du "texhash" ausfuehren damit das paket in die datenbank aufgenommen wird. das geht auch in den settings und sieht ca so aus

http://nora.fpf.slu.cz/~hledik/images/miktex2e.png

in lyx bin ich nicht ganz sicher, da musst du für eine cls (was eine klasse ist) vermutlich bei der documentclass auswahl auf custom gehen und dort dann den name der cls-datei eintragen.

André25
23-11-2011, 23:35
Hallöchen bobmalaria!


erster schritt wäre erstmal im miktex paketmanager zu schauen ob es das paket/die klasse nicht auch darüber zu installieren gibt

start->programme->miktex 2.x->maintanance->package browser (oder so ähnlich). dort nach dem namen suchen.

Der Tipp hat schon mal funktioniert. MiKTeX hat damit das Paket installiert (http://www.miktex.org/packages/apa6e).

In LyX ist anschließend allerdings bei der Auswahl der Dokumentenklassen das Paket nicht dabei. :(

Bei "Lokales Format" kann nur eine LyX-Formatdatei (*.layout) ausgewählt werden.

Weißt Du od. jemand anders, wie ich das Paket in LyX zum Erscheinen bekomme?


Vielen Dank,

André

bobmalaria
24-11-2011, 00:26
hi,

ok mein erster gedanke war wohl zu simpel :)

hier steht aber wie es geht

http://wiki.lyx.org/Layouts/CreatingLayouts

http://stefaanlippens.net/customLaTeXclassesinLyX

nur damit es zu keiner verwechslung kommt. dateien die auf cls enden sind dokumentenklassen. dateien die auf sty enden sind pakete.

deine afrage müsste deshalb lauten: wie installiere ich eine eigene klasse in lyx?

ein paket kann man nämlich ganz einfach einfügen in dem man in den latex vorspann \usepackage{paketname} schreibt.

das geht in deinem fall ja nicht da apa6e eine klasse ist und für die muss man in lyx eine layout datei erstellen.

André25
24-11-2011, 18:17
Hey bobmalaria!

Abermals danke! Du hast recht: ich möchte eine neue Klasse in LyX einbinden.

Die Anleitungen sehen aber mächtig kompliziert aus! Mein Englisch ist leider nur mäßig und dann noch diese vielen kompliziert scheinenden Schritte. Eine deutsche Anleitung gibt es nicht zufällig?

Ich glaube ich nehme doch ein Office Produkt für meine Arbeit(en). :(


Besten Dank und liebe Grüße,

André

bobmalaria
24-11-2011, 19:35
hi,

ein kurzer hack

speichere folgendes als apa6e.layout und speichere es zu den anderen layout dateien in lyx


#% Do not delete the line below; configure depends on this
# \DeclareLaTeXClass[apa6e]{article (APA6e)}
# Article textclass definition file. Taken from initial LyX source code

Format 11
Input stdclass.inc

SecNumDepth 3
TocDepth 3

NoStyle Chapter
NoStyle Chapter*

Preamble
\usepackage{apacite}
\title{random}
\shorttitle{ran}
\author{author}
\authornote{\dots}
\abstract{\dots}
EndPreamble


Style Part
Align Left
AlignPossible Left
TopSep 2
BottomSep 1.5
Font
Size Larger
EndFont
End


Style Part*
Align Left
AlignPossible Left
TopSep 2
BottomSep 1.5
Font
Size Larger
EndFont
End


gehen dannach in lyx und klicke Tools->reconfigure (weiss nicht wie das im deutschen heisst)

dann muss lyx neu gestartet werden. dannach sollte man bei den dokumenten settings eine klasse article (APA6) auswaehlen koennen.

die klasse funktioniert ein bisschen komisch. deshalb solltest du noch selbst die variablen


\title{}
\shorttitle{}
\author{}
\authornote{\dots}
\abstract{\dots}

setzen.

eine entsprechene lyx datei habe ich mal hier fertig gemacht
http://dl.dropbox.com/u/15487093/apa6e-test.lyx

das fertige pdf ist angehaengt

http://www.mrunix.de/forums/attachment.php?attachmentid=4877&stc=1&d=1322159893

André25
25-11-2011, 15:11
Hallöle Bob!

Sensationell! Es funktioniert! Danke!!!

War das kompliziert / zeitaufwendig? Ist der von Dir abgedruckte Code, den ich in die apa6e.layout gespeichert habe alles, was von der apa6e.cls übrig geblieben ist?

Wie kann ich jetzt noch intervenieren - z.B. was hier "Running Head" heißt in "Kolumnentitel" umbenennen, od. "Abstract" in "Zusammenfassung"?

Muss man dann jedes mal den Code neu erstellen? Und vor allem, wie kann ich die Seitenränder ändern? Die sollten laut der apa6e.cls eigentlich 1 inch (2,54cm sein), sind es aber nicht.


Tausend Dank und beste Grüße,

André :)

bobmalaria
25-11-2011, 15:39
hi,

nein das war nicht aufwendig, ich habe hauptsaechlich den eintrag aus er article.layout kopiert.

die apa6.cls ist natuerlich weiterhin unveraendert vorhanden. die layout datei ersetzt nicht die cls, sie ist praktisch nur dazu da das man die klasse in lyx verwenden kann. man kann sicher auch noch viel zeit in die layout datei stecken um das wirklich perfekt zu implementieren, aber ich bin weder apa noch lyx user und habe mir deshalb erlaub den schnellen weg zu gehen.

wie die dinge bezeichnet werden, also abstract, running head usw ist in der klasse definiert.
dazu wird einmal


\fancypagestyle{titlepage}{\lhead{Running head: \MakeUppercase{\@shorttitle}}}

definiert und dann noch


\renewcommand{\maketitle}{%
\thispagestyle{titlepage}%
\vspace*{1in}%
\Centering\@title\\\@author%
\vfill%
\ifdefined%
\apaSIXe@leavefloats%
{\large\textbf{Note! Figures and tables are currently mixed in with
text for easy reading; remember to remove the \textsf{leavefloats}
option before submission.}\vfill}%
\fi
Author Note\par\RaggedRight\@authornote%
\mspart{Abstract}%
\@abstract%
\mspart{\@title}}

wie das die klasse macht finde ich sehr ungeschickt....

naja, also muessen wir das ganze mal ummodeln. dazu gehst du in die dokumenteneinstellungen und dann auf LaTeX-Vorspann. dort fuegst du dann folgendes ein


\makeatletter
\fancypagestyle{titlepage}{\lhead{Kolumentitlel:%<--geaendert
\MakeUppercase{\@shorttitle}}}
%
\renewcommand{\maketitle}{%
\thispagestyle{titlepage}%
\vspace*{1in}%
\Centering\@title\\\@author%
\vfill%
\ifdefined%
\apaSIXe@leavefloats%
{\large\textbf{Note! Figures and tables are currently mixed in with
text for easy reading; remember to remove the \textsf{leavefloats}
option before submission.}\vfill}%
\fi
Author Note\par\RaggedRight\@authornote%
\mspart{Zusammenfassung}%<-geaendert
\@abstract%
\mspart{\@title}}
\makeatother


sauber waere es vom autor der apa6e.cls einen befehle \abstractname zu definieren. hat er sich aber wohl gespart weil eine verwendung in einem anderen sprachraum scheinbar nicht vorgesehen war.

wenn die klasse einmal in lyx laeuft, dann geht sie auch beim naechsten oeffnen.

was die klasse da mit den seitenraendern zaubert habe ich mir nicht genau angesehen. aber scheinbar werden alle raender auf
\RequirePackage[margin=1in]{geometry} gesetzt.
hast du gedruckt ung gemessen und sicher gestellt das bei den druckeinstellungen "verkleinern auf seitengroesse" abgestellt wurde? eventuell hift in den LaTeX-Vorspann noch


\geometry{a4paper,margins=1in}

zu schreiben. dann wird erst die seite auf a4 gestellt und dann die raender auf 1in und das ist ja irgendwas um die 2.5cm
in den dokumenteneinstellungen solltest du aber einfach auch auf a4 papier umstellen koennen. schau mal die einstellungen durch. die raender kann man da auch einstellen

André25
25-11-2011, 19:10
Hey Bob!

Ich fange an zu verstehen. ;)

Was ich aber nicht verstehe, wo holt sich LyX die Information der apa6e her? Ich hatte die Datei apa6e.layout so angelegt, wie Du geschrieben hattest. Darin steht folgender Code:


# \DeclareLaTeXClass[apa6e]{article (APA6e)}

Zuvor hatte ich bereits nach: ...\MiKTeX 2.9\tex\latex\ das Verzeichnis apa6e kopiert (mit apa6e.cls u.a.). Da holt sich aber LyX offensichtlich nicht die Information zu der apa6e Dokumentenklasse her. Denn wenn ich darin Informationen ändere, hat dies in LyX keine Auswirkung. Ich kann sogar das Verzeichnis umbenennen und es ändert nichts in LyX.

Das wäre ja schon entscheidend, da hier die Änderungen zu treffen sind ("Zusammenfassung" statt "Abstract" und so).

Grüße, André

bobmalaria
25-11-2011, 23:50
hi,

dann hast du vielleicht die apa6.cls nochmal in einem anderen verzeichnis oder so.... man sollte sowieso in der cls datei eigentlich nichts ändern. das vergisst du wieder und dan nsteht du irgendwann mal da und weisst nicht mehr was du gemacht hast.

\DeclareLaTeXClass[apa6e]{article (APA6e)} lyx holt sich aus der [] klammer den namen der cls datei und aus der {} den namen wie es in lyx angezeigt wird.

wenn du da z.b. nur [apa6] reinschreiben würdest und das e vergisst, dann kann lyx die datei nicht mehr finden. natürlich wirkt sich das erst nach einem "reconfigure" in lyx aus.

was da sonst im detail bei dir auf dem system abgeht kann ich natürlich nur raten... wenn man aber änderungen im \tex\latex ordner vornimt, dann muss man in derregel auch erstmal ein texhash machen bevor es eine auswirkung hat.

gruss

André25
26-11-2011, 13:00
Hallöchen Bob!

Vielen, vielen Dank. Du hast mir sehr geholfen! http://www.cosgan.de/images/midi/froehlich/g040.gif http://www.cosgan.de/images/midi/froehlich/h040.gif

Machs gut,

André