Wie färbt man automatisch eine Zeichenfolge, die mit einem bestimmten Zeichen (@) beginnt?

Wie färbt man automatisch eine Zeichenfolge, die mit einem bestimmten Zeichen (@) beginnt?

memoirIch suche mithilfe der Klasse nach einer Möglichkeit, jede Zeichenfolge, die mit einem @Zeichen beginnt, automatisch einzufärben, sei es im Haupttext oder in einer Fußnote. Irgendeine Idee, wie das geht?

Update: Ich verwende auch Bibtex und möchte keine Linkbox oder Farbe für mein Zitat, das erklärt die Option „Hidelink“.

Mit einem Minimalbeispiel:

\documentclass[a4paper, 12pt,twoside, openright]{memoir}
\usepackage{polyglossia}
\setdefaultlanguage{french}
\usepackage{fontspec}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage[autostyle=true,french=guillemets,maxlevel=3]{csquotes}
\usepackage{xparse}
\usepackage{graphicx}
\usepackage[protrusion=true]{microtype}

\makeatletter

\renewcommand\@makefnmark{\hbox{\@textsuperscript{\normalfont\color{BurntOrange}\@thefnmark}}}
\renewcommand\@makefntext[1]{%
  \parindent 1em\noindent
            \hb@[email protected]{%
                \hss\@textsuperscript{\normalfont\@thefnmark}}#1}
\makeatother

\usepackage[hidelinks, pdfusetitle]{hyperref} % Creates hyperlinks and index in the PDF document, preferably load after biblatex

\begin{document}

\chapterstyle{bringhurst}

This is a link in a footnote \footnote{My link is \href{http://www.google.fr}{@google}}

This is a colored link in my text \href{http://www.google.fr}{@google}

This is a normal link \href{http://www.google.fr}{google}

\end{document}

Ich möchte Textlinks, die mit @ beginnen, automatisch erkennen und einfärben, und nicht den gesamten Link.

Antwort1

ÜBERARBEITUNG mit allgemeiner Lösung für das Problem, alle Wörter, die mit einem bestimmten Symbol beginnen, einzufärben. @NEU BEARBEITET, um Situationen mit einem einzelnen @Zeichen zu behandeln. Dies geschieht, indem @aktiviert und dann so definiert wird, dass es rot wird und die gespeicherte Kopie von druckt @. Der Schlüssel zu dieser Überarbeitung ist das Makro \tilblank, das Rekursion verwendet, um das nächste Wort (immer noch in Rot) auszudrucken. Wenn es auf ein Leerzeichen stößt, wird es wieder schwarz. Wenn es auf ein Gruppenende stößt, wird es beendet (und wird ebenfalls wieder schwarz).

\documentclass{article}
\usepackage{ifnextok}
\usepackage{xcolor}
\makeatletter
\def\tilblank#1{#1\IfNextToken\@sptoken{ \color{black}}{%
  \IfNextToken\egroup{}{\tilblank}}}
\def\atend{\IfNextToken\@sptoken{ \color{black}}\tilblank}
\let\svat @
\makeatother
\catcode`@=\active
\def@{\color{red}\svat\atend}
\begin{document}
This tests @the use of @midstream or in its own {@group}.
Also testing @ by itself and at the end of a @paragraph.

This follows in black, as @it should. 
\end{document}

Bildbeschreibung hier eingeben


ORIGINALE LÖSUNG

Ich bin nicht sicher, ob dieser Ansatz sonst noch etwas kaputt macht. Ich mache es @aktiv. Außerdem funktioniert das nur, weil Ihre @Wörter in einer eigenen Gruppe stehen. Das heißt, wenn Sie es im Text verwenden möchten @, müsste es in eingeschlossen werden {}.

\documentclass[a4paper, 12pt,twoside, openright]{memoir}
\usepackage{polyglossia}
\setdefaultlanguage{french}
\usepackage{fontspec}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage[autostyle=true,french=guillemets,maxlevel=3]{csquotes}
\usepackage{xparse}
\usepackage{graphicx}
\usepackage[protrusion=true]{microtype}


\makeatletter

\renewcommand\@makefnmark{\hbox{\@textsuperscript{\normalfont\color{BurntOrange}\@thefnmark}}}
\renewcommand\@makefntext[1]{%
  \parindent 1em\noindent
            \hb@[email protected]{%
                \hss\@textsuperscript{\normalfont\@thefnmark}}#1}
\makeatother

\usepackage[hidelinks, pdfusetitle]{hyperref} % Creates hyperlinks and index in the PDF document, preferably load after biblatex

\begin{document}
\let\svat @
\catcode`@=\active
\def@{\color{red}\svat}


\chapterstyle{bringhurst}

This is a link in a footnote \footnote{My link is \href{http://www.google.fr}{@google} checking revert}

This is a colored link in my text \href{http://www.google.fr}{@google}

This is a normal link \href{http://www.google.fr}{google}

\end{document}

\documentclass{article}
\usepackage{xcolor}
\let\svat @
\catcode`@=\active
\def@{\textcolor{red}{\svat}}
\begin{document}
xy@z
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen