Seite 1 von 1

Umlaute bei apa.cls: man versus doc

Verfasst: Fr 15. Okt 2010, 18:41
von RalfR
Hallo!

Ich versuche, die Vorlage apa.cls zu verwenden.
Dabei gibt es ein Problem mit Umlauten mit Quelltext,
das nur bei \documentclass[man...
auftritt nicht aber bei \documentclass[jou...

Kann man irgendwie rauskriegen, woran das liegen
könnte, und wie man es fixt?

Hier das Beispiel (zum Großteil aus der apa_example.tex
genommen,
%die Definition ist o.k.:
\documentclass[jou,12pt,nobf]{apa}

%die Definition gibt einen Fehler:
%\documentclass[man,12pt,nobf]{apa}


%Anfang der eigenen Ergänzungen:
\usepackage[T1]{fontenc}
\usepackage[english,german,ngerman]{babel}
\selectlanguage{german}
\usepackage[utf8]{inputenc}
\usepackage{times} 
\usepackage{helvet}
\usepackage{fancyhdr}
\usepackage{comment}
\usepackage{graphicx} 
\usepackage{longtable}
\usepackage{verbatim}
\usepackage{enumerate}
\usepackage{tikz}
\usetikzlibrary{mindmap,trees,shapes,arrows,calc}
\usepackage{amssymb}
\usepackage{amsmath}
%Ende der eigenen Ergänzungen:

\usepackage{tabularx}
\usepackage{array}
\usepackage{rotating}
\usepackage{dcolumn}


%nochmal eigenen Ergänzungen
%\usepackage[pdftex,colorlinks=false,urlcolor=blue]{hyperref}

%\usepackage[style=alphabetic, bibencoding=latin1]{biblatex}
\usepackage{csquotes}
\usepackage[obeyspaces]{url}  
\usepackage{endnotes}
\usepackage{tocbibind}
\usepackage{apacite}
%\usepackage{natbib}
\usepackage{microtype} 
%\setlength{\parindent}{0in}
\bibliographystyle{apacite} 
%Ende der eigenen Ergänzungen

\newcolumntype{M}[2]{D{,}{\cdot}{#1.#2}}

\pdfpagewidth 8.5in
\pdfpageheight 11in 
\title{test}
\author{test}
\rightheader{test}
\shorttitle{test}
\affiliation{test \\  \today}
\begin{document}
\maketitle

\begin{table}[tbp]
\caption{Umlaut-Test:ÄäÖöÜü}
\label{tab:tab1}
\begin{tabular}{lcc}\thickline
          & \multicolumn{2}{c}{Factor 2} \\ \cline{2-3}
Factor 1  & Condition~A  & Condition~B   \\ \hline
First     & 586 (231)    & 649 (255)     \\
          &    2.2       &    7.5\tabfnm{a}\\
Second    & 590 (195)    & 623 (231)     \\
          &    2.8       &    2.5\tabfnm{b}\\ \hline
\end{tabular}
\tabfnt{a}{Umlaut-Text: ÄäÖöÜü}
\tabfnt{b}{Use as many as you like, just remember to number them.}
\end{table} 


\end{document}




Vielen Dank für Antworten!

Ralf

Verfasst: Sa 16. Okt 2010, 11:55
von KOMA
Ich glaube, Deine Chancen auf Antwort steigen, wenn Du ein echtes Minimalbeispiel erstellst und auch erklärst, welches Problem auftritt.

Markus
(Moderator)

PS: german ist die veraltete nicht mehr geltende Deutsche Rechtschreibung. Wenn Du diese unbedingt verwenden willst, ist es einfacher, die Option ngerman beim Laden von babel weg zu lassen und german damit als letzte Option zu setzen, statt nach dem Laden von babel nochmal explizit die Sprache umzuschalten.

PPS: Musst Du die Klasse apa verwenden? Außer, wenn man für ein APA-Journal schreibt, ist die Verwendung der Klasse eher unüblich und möglicherweise auch nicht unbedingt praktisch.

PPPS: Das Problem scheint zu sein, dass apa nicht mit utf8 zurecht kommt bzw. die Hilfsdatei mit Endung ttt nicht utf8, sondern iso-latin-1 gespeichert wird. In meinem Test funktioniert es, wenn man unmittelbar vor \end{document} ein \inputencoding{latin1} einfügt. Ob das tatsächlich eine korrekte Lösung ist, kann ich aber nicht sagen. Ebenso habe ich nicht getestet, ob das Problem wirklich an der Klasse oder an einem der unzähligen Pakete liegt. Das wäre ja auch Deine Aufgabe gewesen.

Verfasst: Sa 16. Okt 2010, 15:54
von RalfR
Hallo Markus,

danke für die Antwort und die überraschende Lösung des Problems.

Deine Ermahnung, ein "Minimalbeispiel" zu geben, habe ich verstanden,
allerdings gibt es Gründe, warum ich trotzdem das umfangreiche
Beispiel verwendet habe:

1. ich habe mit der angegebenen Konfiguration eine komplette lauffähige Version mit apacite (was ich vor allem verwenden will und muss) erstellt,
also eine, bei der das Literaturverzeichnis in Deutsch mit Links richtig
funktioniert. Dafür habe ich schon Einiges recherchieren müssen und das ist auch mit ein Grund, warum die includes so umfangreich sind.
Wenn ich da Teile der include wieder rausnehme, funktioniert das Literaturverzeichnis z.B. wieder nicht richtig.

2. ich habe das natürlich schon probiert, includes rauszunehmen,
es hat das Problem aber nicht gelöst. Zudem ist es ja - selbst wenn
ich 3/4 der für das Beispiel nicht notwendigen includes rausnehme -
das Problem nur kaschiert: die apa.cls selbst definiert ja einige
von RequirePackage-Befehlen. Sobald ich sie überhaupt verwende,
bin ich ja schon durchaus weit weg von einem Minimalbeispiel.

Da ich eine Diss schreiben will und im Moment noch nicht sicher bin,
ob ich mit LaTeX ans Ziel komme, könnte ich mein apa-Problem
nochmal allgemeiner formulieren:
wenn ich ein Problem mit einer so komplexen Konfiguration habe,
wie im ursprünglichen Beispiel, habe ich dann selbst eine Chance,
genauer herauszufinden, woran es eigentlich liegt?

Ich würde gern zum Beispiel auch nochmal anders fragen:
WARUM funktioniert eigentlich Deine Lösung,
am Ende der Datei das inputencoding zu ändern?
Das liegt ja nicht gerade auf der Hand, oder?

Ich würde gern meine Arbeit mit LaTeX schreiben,
mache mir allerdings noch ein bißchen Sorgen, dass ich
1. um eine komplexe Konfiguration wie im Beispiel nicht herumkomme
2. ich mir nicht mit vertretbarem Aufwand genügend Ahnnung verschaffen kann, um eine gewissen Sicherheit um Umgang mit Problemen
dieser Art zu bekommen (ich nehme an, beim Schreiben wird
es da sicher noch einige geben).

Mein Beispiel zielt insofern auf ein realitätsnahes Szenario:
angenommen, ich habe eine halbe Arbeit mit 50 Seiten geschrieben,
die includes stehen fest, weil ich Formeln, Grafiken, etc.
schon erstellt habe. Dann taucht eine neue Anforderung auf,
als Beispiel: eine neue Tabellen-Klasse muss eingebunden werden.
Es gibt aber (wie in diesem Beispiel) eine Nebenwirkung.
apa.cls verträgt sich (aus irgendwelchen für Laien wie mich schwer nachvollziehrbaren Gründen) nicht mit der neuen Klasse.

Wie kann ich dann strukturiert Fehlersuche betreiben?
Ich sehe natürlich, dass ein Minimalbeispiel für die Fehlerdiagnose
durchaus erste Wahl ist. Aber wie Du es selbst schreibst:
"dass apa nicht mit utf8 zurechtkommt":
selbst wenn ich das weiß, löst dies Wissen das Problem
noch nicht, denn ich kann ja dann utf8 ja nicht mehr
einfach im Header gegen latin ersetzen.
weil es ja meist Kreuzabhängigkeiten gibt.

Was dann? Da liegt für mich noch ein weiteres Problem.
Vielleicht sollte ich das mal zu eiem eigenen
Forumsthema machen.
Gibt es da ein Erste-Hilfe-Programm zu Selbsthilfe in LaTeX?

Vielleicht bin ich damit etwas zu weit ausgeholt:
ich danke Dir für Deine schnelle Antwort und Lösung.

Beim Schreiben komme ich so schon viel weiter!

Viele Grüße,

Ralf

Verfasst: Sa 16. Okt 2010, 19:32
von Nerd 032F
Du hast offenbar nicht komplett verstanden, was der Sinn eines vollständigen Minimalbeispiels ist. Anderenfalls hättest Du Dich kaum darüber ausgelassen, dass Du apacite für Dein Literaturverzeichnis benötigst, obwohl im Beispiel gar kein Literaturverzeichnis enthalten ist und auch für das Problem nicht benötigt wird. Also beschäftige Dich mit dem Link, den Du bekommen hast. Klar laden auch Klassen Pakete. Klar kann man versuchen, weiter zu minimieren, indem man statt einer solchen Klasse eine Standardklasse verwendet und dann die von der komplexen Klasse automatisch geladenen Pakete manuell lädt und das weiter minimiert. Wenn man das kann, ist das optimal. Es wird aber sicher niemand verlangen.

Wie KOMA erklärt hat, wird die ttt-Hilfsdatei nicht im angegebenen input-Encoding utf8 geschrieben, sondern in latin1. Diese Hilfsdatei wird automatisch am Ende des Dokuments also während \end{document} gelesen. Also ist liegt es nahe, dass es funktioniert, das Encoding vor \end{document} entsprechend zu ändern. Problematisch dabei ist aber ggf. dass dann auch die aux-Datei mit latin1 gelesen wird. Das kann dan bei anderen Verzeichnissen eventuell zu Problemen führen.

KOMA-Script bietet aber hierfür eventuell auch eine Lösung. Wenn man das Paket scrlfile lädt, kann man vor und nach dem Einlesen von Dateien Befehle ausführen. Man könnte also eventuell etwas wie
\usepackage{scrlfile}
\BeforeFile{\jobname.ttt}{\inputencoding{latin1}}
\AfterFile{\jobname.ttt}{\inputencoding{utf8}}
machen. Ich könnte mir jedoch auch vorstellen, dass auch andere Hilfsdateien mit falschem Encoding geschrieben werden. Dann wäre die triviale Lösung von KOMA die bessere.

Besser wäre aber vermutlich, das Dokument gleich in latin1 sattt in utf8 zu erstellen oder, falls wirklich die apa-Klasse verantwortlich ist, eine vernünftige Klasse zu verwenden. apacite jedenfalls funktioniert auch mit anderen Klassen und mit dem überlegen biblatex gibt es sicher auch die Möglichkeit Zitate und Literaturverzeichnis APA-konform zu konfigurieren.

Nur so als Idee.

Verfasst: Sa 16. Okt 2010, 21:36
von RalfR
1. Was das Minimalbeispiel betrifft:
o.k., ich habe verstanden und werde mich bemühen, beim der nächsten
Frage ein chirurgischeres Beispiel zu erstellen.

2. Deine Erläuterung zu latin1:
sehr einleuchtend, vielen Dank. Gibt mir auch das Gefühl,
Paketkonfiguration könnte am Ende doch kontrollierbar werden
(anfangs erschien es mir eher wie ein Glücksspiel).

3. biblatex schaue ich mir auf jedem Fall an.

4. der apa-Dokumenstil erschien mir insofern hilfreich,
weil er alle Standardformate für die psychologische
Dissertation inklusive Artikel-Auskopplungsmöglichkeit
abdeckt. Ich habe mir andere Dissertation-Komplettvorlagen für
LaTeX grob angeschaut, aber keine gefunden, die annhähernd
so weit geht und so vollständig ist.

Alle Formate selbst zu definieren, erscheint mit als sehr
aufwändige Alternative.

Aber: mit Deinem Befehl scheint es ja zu funktionieren.
Deine Kritik an Paket ist aber für mich auch sehr nachvollziehbar.

Danke nochmal, Gruß, Ralf