2010-09-20 15 views
5

Sono nuovo al latex, ma sembra che sia possibile ridefinire temporaneamente alcuni comandi? Il problema che ho è che normalmente la citazione è (SMITH, 2000). Ma a volte, mi piacerebbe avere Smith (2000) invece. Posso comunque ridefinirlo temporaneamente, quindi utilizzare di nuovo la versione standard dopo quel "blocco" di codice?LaTeX: ridefinizione temporanea della macro di citazione

+0

È possibile ottenere risposte più rapide e migliori all'indirizzo http://tex.stackexchange.com/ –

risposta

6

Racchiudere la definizione locale tra parentesi ({}).

\newcommand\foo{FOO!} 
\foo 
{\renewcommand\foo{BAR?}\foo\foo} 
\foo 

Questo genererà qualcosa come:

FOO!BAR?BAR? FOO! 

Questo può essere fatto all'interno di definizioni di macro, troppo - basta assicurarsi di aggiungere le parentesi in più:

\newcommand\newfoo{{\renewcommand\foo{BAR?}\foo}} 

Spero che questo aiuti.

1

Dovresti avere già \citep e \citet comandi che dovrebbero fare ciò che vuoi, non c'è motivo di ridefinire i macro da soli.