Cláusulas entre parênteses com um mecanismo semelhante ao MakeAutoQuote do csquotes

Cláusulas entre parênteses com um mecanismo semelhante ao MakeAutoQuote do csquotes

Eu tenho a seguinte macro para escrever cláusulas entre parênteses:

\makeatletter
\newcommand\incise[1]{%
    ---\,#1%
    \@ifnextchar.\relax{\@ifnextchar?{\@ifnextchar!{\@ifnextchar:{\@ifnextchar;\relax{\,---}}}}}
}
\makeatother

Mas eu queria fazer a mesma coisa que o pacote csquote faz com as citações. Ele usa caracteres ativos em vez de uma macro de látex.

Então, é possível no LaTeX ter:

The main sentence -(the parenthetical clause)-.

transformado em:

The main sentence \incise{the parenthetical clause}.

Responder1

\catcode`*\active
\def*(#1)*{\incise{#1}}

faz *(xxxx)*agir como quiser, desde que não use *em nenhum outro lugar....

Responder2

Você pode usar os comandos csquotes - eles funcionam até com caracteres utf8, onde você não pode usar diretamente o \catcodetruque de David. O principal problema é escolher os caracteres para não obter efeitos colaterais no restante do 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} 

informação relacionada