Ausarbeitung in zwei Sprachen erstellen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Ausarbeitung in zwei Sprachen erstellen

von Crys » Mo 12. Aug 2013, 21:50

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.

von Besserwisser » Mo 12. Aug 2013, 19:33

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.

von Crys » Mo 12. Aug 2013, 19:18

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?

Re: Ausarbeitung in zwei Sprachen erstellen

von rais » Fr 9. Aug 2013, 07:47

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

Ausarbeitung in zwei Sprachen erstellen

von Crys » Do 8. Aug 2013, 23:47

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?

Nach oben