Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Kennwörter mit Sonderzeichen

  1. #1
    Registrierter Benutzer
    Registriert seit
    16.02.2011
    Beiträge
    48

    Kennwörter mit Sonderzeichen

    Hallo LaTeX-Eingeweihte,
    mit dem folgenden Code kann ich Kennörter im Dokument global aus- und einschalten:
    Code:
    \documentclass{article}
    \usepackage[ngerman]{babel}
    \usepackage[ansinew]{inputenc}
    \usepackage{verbatim}
    \usepackage{ifthen}
    \newcommand{\drucken}{0} % 1: ausgeben, 0: nicht ausgeben
    \begin{document}
    \phantom{\drucken} % nötig
    %
    Im Text können dieses Wort
    %<%
    \ifodd \drucken  \begin{verbatim} 
    #As%|5'&
    \end{verbatim} 
    \else
    \texttt{Kennwort}
    \fi
    %>%
    und dieses Wort
    %<%
    \ifodd \drucken \begin{verbatim} 
    #$A?%|5"ß 
    \end{verbatim} 
    \else
    \texttt{Kennwort}
    \fi
    %>%
    via Präambel ein- und ausgeschaltet werden.
    \end{document}
    Jetzt liegt es nahe, die sechs Zeilen in den %<%...%>%-Bereichen mit einem neuen Befehl, z. B. \newcommand{\schalter}[1]{...} auf z.B. \schalter{#$A?%|5"ß} zu verkürzen. Das gelingt mir aber nicht. Kann mir da bitte jemand auf die Sprünge helfen?

    Viele Grüße
    Helm

  2. #2
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    das wird auch schwierig, gelinde gesagt. Dazu ein Auszug aus `texdoc verbatim':
    Zitat Zitat von verbatim Doku
    You cannot use the verbatim environment inside user defined commands;
    Als Umgebung ginge es etwa so:
    Code:
    \documentclass{article}
    \usepackage[ngerman]{babel}
    %\usepackage[ansinew]{inputenc}
    \usepackage{verbatim}
    %\usepackage{ifthen}
    \newcommand{\drucken}{1} % 1: ausgeben, 0: nicht ausgeben
    
    \newenvironment{foo}{%
      \comment
    }{%
      \endcomment
      \texttt{Kennwort}
    }
    \ifodd\drucken
      \let\foo\verbatim
      \let\endfoo\endverbatim
    \fi
    
    \begin{document}
    \phantom{\drucken} % nötig
    %
    Im Text können dieses Wort
    %<%
    \begin{foo}
    #As%|5'&
    \end{foo}
    %>%
    und dieses Wort
    %<%
    \ifodd \drucken \begin{verbatim} 
    #$A?%|5"ß 
    \end{verbatim} 
    \else
    \texttt{Kennwort}
    \fi
    %>%
    via Präambel ein- und ausgeschaltet werden.
    \end{document}
    Dabei wird die foo-Umgebung zunächst als comment-Umgebung definiert (mit "Kennwort" als Ausgabe).
    Wenn \drucken ungerade ist, wird die foo-Umgebung auf verbatim umgeleitet.

    Gruß
    Rainer
    There's nothing a good whack with a hammer won't fix!

  3. #3
    Registrierter Benutzer
    Registriert seit
    09.12.2005
    Beiträge
    1.327
    Ich habe gerade nicht viel Zeit. Schau dir aber mal die aktuelle Version des usrguide.pdf an. Darin ist erklärt, wie man mit \NewDocumentCommand auch Befehle mit verbatim-Argument vergleichbar zu \verb|…| bzw. \verb{…} definieren kann.

    Die Verwendung von ansinew als Codierung ist übrigens total veraltet. Alle halbwegs aktuellen LaTeX-Editoren verwenden unabhängig vom OS in der Voreinstellung utf8. Mit LaTeX braucht man dann unabhängig von der Engine schon seit vielen Jahren kein inputenc mehr.

    Daneben könnten für dich allgemein Pakete für bedingten Satz interessant sein: → https://ctan.org/topic/cond-comp
    Geändert von klops (12-04-2024 um 08:39 Uhr)

  4. #4
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Danke für die Hinweise,
    da ziehe ich erstmal meine Aussage zurück und behaupte das Gegenteil
    Code:
    \documentclass{article}
    \usepackage[ngerman]{babel}
    
    \newcommand{\drucken}{0} % 1: ausgeben, 0: nicht ausgeben
    
    \NewDocumentCommand{\foo}{v}{%
      \texttt{%
        \ifodd\drucken
        #1%
        \else
          Kennwort%
        \fi
      }%
    }
    
    \begin{document}
    %
    Im Text können dieses Wort
    %<%
    \foo!#As%|5'&!
    %>%
    und dieses Wort
    %<%
    \foo{#$A?%|5"ß}
    %>%
    via Präambel ein- und ausgeschaltet werden.
    \end{document}
    Die Bedingung/Verzweigung hab ich erstmal so gelassen Die Auswertung ist ja jetzt zentral und kann einfach angepasst werden.

    Gruß
    Rainer
    There's nothing a good whack with a hammer won't fix!

Lesezeichen

Berechtigungen

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