Anzeige:
Ergebnis 1 bis 11 von 11

Thema: UTF-8-Sonderzeichen-Direkteingabe

  1. #1
    Registrierter Benutzer
    Registriert seit
    30.06.2007
    Beiträge
    17

    UTF-8-Sonderzeichen-Direkteingabe

    Hallo,
    ich möchte gerne einen längeren Text eingeben, in dem UTF-8-Sonderzeichen wie ā, ē, ī, ō, ū vorkommen. Ich möchte diese auch gerne so im Text stehen lassen, ohne sie in Latex-Steuerungscodes umzusetzen. Ausserdem möchte ich sie gerne selbst definieren können, so dass also z.B. ā als \=a und ī als \=\i gesetzt wird.

    Wie kann ich das denn mit möglichst wenig Aufwand anstellen?

    (Ich verwende texlive unter SuSE 11.2)

  2. #2
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von harvey Beitrag anzeigen
    ich möchte gerne einen längeren Text eingeben, in dem UTF-8-Sonderzeichen wie ā, ē, ī, ō, ū vorkommen. Ich möchte diese auch gerne so im Text stehen lassen, ohne sie in Latex-Steuerungscodes umzusetzen. Ausserdem möchte ich sie gerne selbst definieren können, so dass also z.B. ā als \=a und ī als \=\i gesetzt wird.

    Wie kann ich das denn mit möglichst wenig Aufwand anstellen?
    Code:
    \documentclass[a4paper]{scrartcl} 
    \usepackage[T1]{fontenc}
    \usepackage[utf8x]{inputenc}
    \usepackage{lmodern}
    
    \begin{document} 
    
    ā, ē, ī, ō, ū
    
    Wo ist das Problem?
    
    \end{document}
    Herbert

  3. #3
    Registrierter Benutzer
    Registriert seit
    30.06.2007
    Beiträge
    17
    Zitat Zitat von voss Beitrag anzeigen
    Wo ist das Problem?
    Okay, falsches Beispiel. utf8x hatte ich übersehen. Aber ich muss doch noch einige Zeichen selbst definieren, z.B. ʕ, welches ich gerne als \textraiseglotstop (tipa-package) darstellen möchte.

    Nachtrag: Im Moment bekomme ich folgende Fehlermeldung:
    Code:
    ! Package ucs Error: Unknown Unicode character 661 = U+0295,
    (ucs)                possibly declared in uni-2.def.
    (ucs)                Type H to see if it is available with options.
    In uni-2.def ist das Zeichen in der Tat definiert. Nach Drücken von H erhalte ich folgenden Hinweis:
    Code:
    Unicode character 661 = U+0295:
    LATIN LETTER PHARYNGEAL VOICED FRICATIVE
    LATIN LETTER REVERSED GLOTTAL STOP
    Character available with following options:
       tipa.
    Enter I! to define the glyph.
    Mit I! kann ich dann das Zeichen manuell definieren.

    Fragen:
    1. Wo muss ich die Option "tipa" hier setzen? (Das package ist ja bereits geladen)
    2. Wie kann ich trotzdem ein bereits definiertes Zeichen umdefinieren, wenn mir seine Definition nicht gefällt?
    Geändert von harvey (24-04-2010 um 19:45 Uhr)

  4. #4
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von harvey Beitrag anzeigen
    Okay, falsches Beispiel. utf8x hatte ich übersehen. Aber ich muss doch noch einige Zeichen selbst definieren, z.B. ʕ, welches ich gerne als \textraiseglotstop (tipa-package) darstellen möchte.
    Fragen:
    1. Wo muss ich die Option "tipa" hier setzen? (Das package ist ja bereits geladen)
    von tipa war überhaupt noch nicht die Rede ... Kleckerweise Informationen
    sind nervig ...

    Herbert

  5. #5
    Registrierter Benutzer
    Registriert seit
    30.06.2007
    Beiträge
    17
    Zitat Zitat von voss Beitrag anzeigen
    Kleckerweise Informationen sind nervig ...
    Sorry dafür, aber bei mir gehen dank Deines Hinweises auf utf8x, ucs usw., und je mehr ich mir die dazugehörigen Dateien angucke, grade kistenweise Birnen auf und die Problemlage ändert sich schnell. tipa habe ich jetzt gelöst. (\usepackage[tipa]{ucs}). Dafür entstehen jetzt aber neue Probleme:

    1. Was mache ich wenn auch mit tipa ein Zeichen einfach in uni-2.def nicht definiert ist?
    2. Was mache ich wenn mir eine Definition dort nicht gefällt?
    (Beides nur lokal für ein Text-File, ohne die systemweite uni-2.def zu verändern)

  6. #6
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Code:
    \documentclass{scrartcl}
    
    \usepackage[utf8]{inputenc}  
    \DeclareUnicodeCharacter{20AC}{EURO!! nicht DM!}
    \begin{document}
    100 €
    \end{document}

  7. #7
    Registrierter Benutzer
    Registriert seit
    30.06.2007
    Beiträge
    17
    Zitat Zitat von u_fischer Beitrag anzeigen
    Code:
    \documentclass{scrartcl}
    
    \usepackage[utf8]{inputenc}  
    \DeclareUnicodeCharacter{20AC}{EURO!! nicht DM!}
    \begin{document}
    100 €
    \end{document}
    Danke, nun bin ich einen Schritt weiter. Jedoch funktioniert das Ganze nicht mehr, sobald ich utf8x statt utf8 wähle:
    Code:
    ! LaTeX Error: Missing \begin{document}.
    Wenn ich den Declare-Befehl nach \begin{document} einfüge erhalte ich stattdessen:
    Code:
    ! Missing = inserted for \ifnum.
    
                       A
    l.23 ...reUnicodeCharacter{20AC}{EURO!! nicht DM!}

  8. #8
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    utf8x bedeutet, dass ucs benutzt wird. Du musst also rausfinden, wie dort die Zeichen deklariert werden. Ich würde aber ucs nicht umbedingt empfehlen, es hat zwar mehr Zeichen vordeklariert, wird aber meines Wissens nicht weiter entwickelt und beißt sich immer mal wieder mit anderen Paketen, da es einige interne Befehle umdefiniert. Wenn dir nur einige Zeichen fehlen, würde ich dir eher raten, sie per \DeclareUnicodeCharacter zu definieren. Die Akzentzeichen ā, ē, ī, ō, ū bekommst du z.B. schon durch das Laden von ix-utf8enc.dfu aus dem inputenx-Paket, also mit
    \makeatletter
    \input{ix-utf8enc.dfu}

  9. #9
    Registrierter Benutzer
    Registriert seit
    30.06.2007
    Beiträge
    17
    Zitat Zitat von u_fischer Beitrag anzeigen
    utf8x bedeutet, dass ucs benutzt wird. Du musst also rausfinden, wie dort die Zeichen deklariert werden.
    Der Befehl heisst dort z.B. \uc@dclc{660}{tipa}{\textglotstop}. Wenn ich ihn einbaue bekomme ich aber:
    Code:
    ! Undefined control sequence.
    l.23 \uc
            @dclc{660}{tipa}{\textglotstop}
    (Dasselbe Problem habe ich übrigens auch bei den keyval-Befehl mit @, also z.B. bei \define@key

    wird aber meines Wissens nicht weiter entwickelt
    ja, das ist wohl leider so....

    Wenn dir nur einige Zeichen fehlen,
    Im Moment ja, aber ich habe eigentlich immer wieder Bedarf danach, utf-8 direkt anzusteuern, so dass mir eine Weiter/Neuentwicklung von ucs doch sehr angenehm wäre. Ich schaue einstweilen mal, ob ich einen Großteil der uni-xxx.def-Informationen nicht einfach nach
    \DeclareUnicodeCharacter hinüberretten kann. Das ein oder andere perl-Skript kann ich dazu schon schreiben.

  10. #10
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Wenn du @ in Befehlsnamen verwenden willst, musst du erst @ zu einem "Buchstaben machen":

    Code:
    \makeatletter %=make @ letter
    \uc@dclc ....
    \define@key .....
    \makeatother %=make @other

  11. #11
    Registrierter Benutzer
    Registriert seit
    30.06.2007
    Beiträge
    17
    Zitat Zitat von u_fischer Beitrag anzeigen
    Wenn du @ in Befehlsnamen verwenden willst, musst du erst @ zu einem "Buchstaben machen":

    Code:
    \makeatletter %=make @ letter
    \uc@dclc ....
    \define@key .....
    \makeatother %=make @other
    Prima, danke, jetzt geht's!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •