Tengo la siguiente macro para escribir cláusulas entre paréntesis:
\makeatletter
\newcommand\incise[1]{%
---\,#1%
\@ifnextchar.\relax{\@ifnextchar?{\@ifnextchar!{\@ifnextchar:{\@ifnextchar;\relax{\,---}}}}}
}
\makeatother
Pero quería hacer lo mismo que hace el paquete csquote con las citas. Utiliza caracteres activos en lugar de una macro de látex.
Entonces, ¿es posible en LaTeX tener:
The main sentence -(the parenthetical clause)-.
transformado a:
The main sentence \incise{the parenthetical clause}.
Respuesta1
\catcode`*\active
\def*(#1)*{\incise{#1}}
hace *(xxxx)*
actuar como quieras, siempre y cuando no lo uses *
en ningún otro lugar....
Respuesta2
Puedes usar los comandos csquotes; incluso funcionan con caracteres utf8 donde no puedes usar directamente el \catcode
truco de David. El principal problema es elegir los caracteres para no tener efectos secundarios en el resto del documento.
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{csquotes,xcolor}
\makeatletter
\csq@addspecial{ä}{\begingroup---!ups\color{red}}{}{}%
\csq@addspecial{ö}{\endgroup!ups---}{}{}
\makeatother
\begin{document}
äblubö blabla
\end{document}