Ausarbeitung in zwei Sprachen erstellen

Schriftbild, Absätze und Auflistungen einstellen


Crys
Forum-Century
Forum-Century
Beiträge: 202
Registriert: So 16. Okt 2011, 20:34
Wohnort: localhost:1337

Ausarbeitung in zwei Sprachen erstellen

Beitrag von Crys »

Ich muss eine Ausarbeitung in Spanisch schreiben, da ich dieser Sprache nicht ganz mächtig bin schreibe ich den Text in Englisch, erstelle dann die PDF, bespreche das mit meinen Kollegen, übersetzte dann die Stellen in Spanisch und Kommentiere das Englische aus.

Alle Überschriften und Beschriftungen sind in Spanisch, der Text ist in den tex-Dateien immer zuerst als auskommentiertes Englisch und dann als Spanisch vorhanden.

Ich hätte das aber gerne so:
Den Text in Englisch, in einer Funktion, dann den Text aus Spanisch, auch in einer Funktion. Im Kopf meiner Projekt-Datei kann ich dann festlegen, ob nur der spanische oder nur der englische Text kompiliert werden soll.

Wie geht das?


So in der Art habe ich mir das vorgestellt:
\sprache = spanish
%\sprache = english

\begin{text}[spanish]
Este es un largo texto en español, que está aquí.
\end{text}

\begin{text}[english]
This is a long text in English, which is here.
\end{text}
Wenn man eben die Variable \sprache ändert, dann soll nur der jeweilige Text kompiliert werden.

Ist das so in der Art möglich?

rais
Forum-Guru
Forum-Guru
Beiträge: 413
Registriert: Di 21. Sep 2010, 00:37

Re: Ausarbeitung in zwei Sprachen erstellen

Beitrag von rais »

Moin moin,
Crys hat geschrieben: Den Text in Englisch, in einer Funktion, dann den Text aus Spanisch, auch in einer Funktion. Im Kopf meiner Projekt-Datei kann ich dann festlegen, ob nur der spanische oder nur der englische Text kompiliert werden soll.

Wie geht das?
das comment-Paket könnte Dir helfen.

Hier ging es auch schon mal um Sprachumschaltung.

Generell ginge auch einfach
\newif\ifspanish
\spanishtrue % wenn auskommentiert = englisch
in der Präambel und im Text dann
\ifspanish
  texto en español
\else
  text in English
\fi
MfG
Rainer
One of the joys of travel is visiting new towns and meeting new people---G.Khan (Robert Asprin, Another Fine Myth)

Crys
Forum-Century
Forum-Century
Beiträge: 202
Registriert: So 16. Okt 2011, 20:34
Wohnort: localhost:1337

Beitrag von Crys »

Danke Rainer, mit dem \newif ist das denkbar einfach und simpel!

Eine letzte Frage dazu, ist es möglich das if beim Kompilieren, per Kommandozeile, zu beeinflussen?

Besserwisser

Beitrag von Besserwisser »

Geht, aber nicht schön. In dem Fall ist man mit einer Anweisung oft besser dran:
% Das ist Datei `foo.tex`.
\documentclass{article}
\providecommand*{\iferstesorderzweites}[2]{#1}% Voreinstellung: erstes Argument
\begin{document}
Aktiv ist das \iferstesoderzweites{erste}{zweite} Argument.
\end{document}
Jetzt kannst Du statt »pdflatex foo.tex« auch »pdflatex \def\iferstesoderzweites#1#2{#2}\input foo.tex« aufrufen. Je nach OS/shell muss man dabei die \ ggf maskieren, damit Shell sie nicht als escape-Zeichen wertet. In der bash würde man beispielsweise »pdflatex '\def\iferstesoderzweites#1#2{#2}\input' foo.tex« verwenden. Natürlich kann man sich diesen zweiten Aufruf auch als Alias, Script oder Batch oder im Editor als weiteren Befehl definieren.

Wenn man Absätze im Argument benötigt lässt man übrigens bei \providecommand den Stern weg und verwendet \long\def an Stelle von \def.

Crys
Forum-Century
Forum-Century
Beiträge: 202
Registriert: So 16. Okt 2011, 20:34
Wohnort: localhost:1337

Beitrag von Crys »

Danke!

Was hälst du davon:
\documentclass[parskip=half]{scrartcl}

\usepackage{selinput}
\SelectInputMappings{adieresis={ä},germandbls={ß},Euro={€}}
\usepackage[ngerman]{babel}

\newif\ifeng
\providecommand*{\ifsprache}[2]{#1}	% Abfragen des Kommandozeilen Parameters
\ifsprache{\engtrue}{}	% Wenn bei \ifsprache das #2 Argument gewählt ist, dann ist der Text Spanisch

\begin{document}

\ifeng
	text in English
\else
	texto en español
\fi

\end{document}
Aufruf per: pdflatex "\def\ifsprache#1#2{#2}\input foo.tex"

Ist so simpel wie das erste Beispiel, aber mit der Option das man über die Kommandozeile die Sprache ändern kann.

Antworten