Comandos em LaTeX: IPA e Prosódia

Today’s post is about how to create your own commands in LaTeX to make your code cleaner and, crucially, more efficient. 


Criando seus próprios comandos

Uma das grandes vantagens de utilizar LaTeX é a possibilidade de criar os seus próprios comandos (ou ajustar comandos já existentes). Vamos a três exemplos.

Símbolos IPA

Vamos começar com algo bem simples. Você já deve estar familiarizado com símbolos IPA em LaTeX. O pacote tipa é bastante bom, e resolve basicamente todas as possíveis necessidades de qualquer fonólogo ou foneticista. O problema é escrever \textipa{}toda vez que você precisa de um símbolo fonético. Vamos criar uma versão mais enxuta do comando: \ipa{}:

\usepackage{tipa}

% Em seu preâmbulo, defina o novo comando:
\newcommand{\ipa}[1]{\textipa{#1}}
...
\begin{document}

% Agora, teste o comando novo com alguma transcrição fonética:

\ipa{""ko.R5."s\~a\~w\super{N}}

\end{document}

O resultado é idêntico a utilizar \textipa{}, é claro, uma vez que o comando apenas cria um “atalho”.

jpg_Screen Shot 2017-05-21 at 01.58.03

Perceba que, ao definir o comando, inserimos o número 1 para comunicarmos ao LaTeX que o comando \ipa{} terá sempre um argumento. Depois disso, basta sinalizar a posição do argumento dentro da função com #1.

Pode parecer uma pequena diferença, mas se você precisa produzir dezenas de transcrições fonéticas em seu documento… economizar alguns caracteres será algo bastante útil. Além disso, o seu código fica mais “clean”. Vamos agora a um exemplo mais útil.

Palavra prosódica

Se você lida com fonologia, muitas vezes é preciso combinar alguns comandos. Por exemplo, talvez você queira transcrever foneticamente uma palavra e, ao mesmo tempo, colocar colchetes e sinalizar o domínio prosódico em questão. Digamos que você queira uma palavra prosódica. Normalmente, você faria algo assim:

\textipa{[""ko.R5."s\~a\~w\super{N}]}$_{_{text{PWd}}}$

No comando acima, usei o tipa e, também, o modo matemático para criar um subscrito (há outras opções). Neste caso, criei um subscrito recursivo (duplo), porque geralmente prefiro que o domínio prosódico fique mais abaixo do que o normal. O comando \text foi usado dentro do modo matemático para que a abreviação do domínio em questão (PWd) não seja italicizada (o default do modo matemático é itálico)—para isso, carregue o pacote amstext.

jpg_Screen Shot 2017-05-21 at 02.00.44

Agora, vamos ver como podemos tornar esse procedimento mais “clean” e eficiente (imagine se você precisa criar dezenas de palavras prosódias em seu artigo…!)

\newcommand{\pwd}[1]{\textipa{[#1]}$_{_{\text{PWd}}}$}

Pronto: há um comando novo (\pwd) que faz tudo aquilo que queremos (e gera o mesmo output visto acima):

\pwd{""ko.R5."s\~a\~w\super{N}}

Perceba que a nova versão ocupa praticamente a metade do espaço da versão original:

\textipa{[""ko.R5."s\~a\~w\super{N}]}$_{_{text{PWd}}}$
\pwd{""ko.R5."s\~a\~w\super{N}}

Outros domínios?

OK, você provavelmente quer generalizar o código acima para aplicá-lo a outros níveis. Uma opção é criar um comando para cada nível prosódico desejado (para os exemplos abaixo, carregue também o pacote textgreek, que gera letras gregas em formato não itálico).

# Palavra prosódica
\newcommand{\pwd}[1]{\textipa{[#1]}$_{_{\text{PWd}}}$}
# Pé métrico
\newcommand{\ft}[1]{\textipa{(#1)}$_{_{\text{\textSigma}}}$}
# Sílaba
\newcommand{\syl}[1]{\textipa{#1}$_{_{\text{\textsigma}}}$}

Em seguida, podemos utilizar os três comandos simultaneamente:

\pwd{\ft{""\syl{ko}\syl{R5}}\ft{"\syl{s\~a\~w\super{N}}}}

jpg_Screen Shot 2017-05-21 at 02.21.00

Você achou o código acima longo demais…? Então veja como seria o código sem os novos comandos criados:

[(\textipa{""ko}$_{_{\text{\textsigma}}}$\textipa{R5}$_{_{\text{\textsigma}}}$)$_{_{\text{\textSigma}}}$(\textipa{s\~a\~w\super{N}}$_{_{\text{\textsigma}}}$)$_{_{\text{\textSigma}}}$]

Condicionando comandos

Você também pode adicionar condicionais aos seus comandos. Este caso talvez não seja tão prático para o exemplo em questão, mas certamente pode ser bastante eficaz em diferentes situações.

Por exemplo:

\usepackage{xstring} % pacote para as funções do condicional
\newcommand{\dom}[2]{
    \IfEqCase{#1}{
     {ft}{(\textipa{#2})$_{_{\text{\textSigma}}}$}
     {pwd}{\pwd{#2}}
    }[\PackageError{\dom}{Revise seu comando: #1}{}]
}

Aqui, o comando \dom exige dois argumentos. Se o primeiro argumento for ft, ele construirá um pé métrico—com parênteses; se for pwd, uma palavra prosódica (com colchetes). Assim, se você quiser construir o primeiro pé de coração, basta utilizar o seguinte comando:

\dom{ft}{koR5}jpg_Screen Shot 2017-05-21 at 02.27.39

O comando é recursivo, naturalmente:

\dom{pwd}{\dom{ft}{""koR5}}

jpg_Screen Shot 2017-05-21 at 02.29.50

Por fim, você pode ajustar o espaçamento da forma que achar melhor (no caso em questão, há uma certa distância entre os domínios). Pessoalmente, para domínios prosódicos, prefiro utilizar comandos independentes para cada domínio.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s