11.26.05

LaTeX in TextMate, part 1

Posted in TextMate, LaTeX at 10:33 pm by Haris

I just took my first steps in Ruby by improving on one of the LaTeX commands in TextMate. It’s the command used for creating environments, or it can also be used for plain commands. The way it works is as follows: Suppose the current word, or selection, is name. Then, upon executing the command (current shortcut is Ctrl-<), depending on what name is the current word or selection will be replaced by:

\name{}

with the cursor placed between the braces (and moving out of them if you press tab), or

\begin{name}

\end{name}

with the cursor in placed inside the environment. If optionally the variable TM_LATEX_INSERT_LABEL is set to 1, then the environment becomes

\begin{name}
\label{nam:}

\end{name}

with the cursor placed right after the : for you to provide a label. Once done there, pressing tab will take you to the next line, in order to type the stuff actually inside the environment. A further tab takes you out of the environment. Quite convenient, wouldn’t you agree?

That is of course until you realize that you’d rather not have to type enumerate to create the enumerate environment. A plain enum should suffice.

This is the purpose of my enhancement for the command. What it does is it uses two other environment variables, TM_LATEX_SHORTCUTS and TM_LATEX_COMMANDS to allow you to add functionality.

The TM_LATEX_SHORTCUTS variable should be a list of pairs of the form short=>long, where short is the trigger word, like enum in our example, and long is the result, e.g, enumerate in our example. The pairs should be separated by comma. For instance, a standard list could be

item=>itemize,enum=>enumerate,eqn=>equation,fig=>figure,
thm=>theorem,cor=>corrolary,lem=>lemma,pf=>proof,ds=>displaystyle

The TM_LATEX_COMMANDS variable should be a regular expression to be matched against the word, to determine whether the word is a command or an environment, and act accordingly. This is decided after the expansion due to TM_LATEX_SHORTCUTS happens. For instance this variable could be

text(it|bf|rm|sc|sf)|displaystyle|sum|lim|frac

Here is the code for the command. Just copy the contents of the file into the code for the already existing command with name Insert environment/command based on current word, and adjust the variables as you like. You can also edit the code directly and add your own environments there, it’s pretty straightforward. At the end of the post I’ve added the code for your perusal. I’ll soon add it to the default LaTeX bundle that ships with TextMate, once I get the OK from Allan. If you have any ideas/requests on how to improve this, they are welcome. Now I just need to figure out the best way to have this be triggered with tab instead, without breaking any other behavior. Maybe I could make it be ctrl-tab instead…

I’ll need to also add customization so that the user can determine which environments/commands should get labels.

#!/usr/bin/env ruby
#
# This script will expand the current word either to
# \word{} (if it's matched by the commands pattern),
# to one of the shortcuts in the shortcut dictionary,
# otherwise to \begin{word} … \end{word} with the caret
# inbetween.
#
# With no selection, it will insert \begin{environment}
# … \end{environment} and allow you to overwrite the
# environment name.

testing = ENV['TM_LATEX_COMMANDS'].to_s
commands = /^cite|footcite|footnote|label|ref|text(it|bf|tt|sf|sc)|#{testing}$/
customShortcuts = Hash.new
ENV['TM_LATEX_SHORTCUTS'].to_s.split(',').each { |x| 
  temp = x.split('=>')
  customShortcuts["#{temp[0]}"]="#{temp[1]}"
}
shortcuts = { "it" => "textit", "bf" => "textbf", "tt" => "texttt",
"sf" => "textsf", "sc" => "textsc", "em" => "emph", "fc" => "footcite", "fn" => "footnote",  "eqn" => "equation", "item" => "itemize", "enum" => "enumerate" }.update(customShortcuts)

name = STDIN.read
if(!shortcuts[name].nil?)
  name = shortcuts[name]
end
if(name == '')
  print("\\begin{${1:environment}}\n\t$2\n\\end{$1}")
elsif(commands.match(name))
  print("\\#{name}{$1}")
else
  lab = ENV['TM_LATEX_INSERT_LABEL'].to_i
  if(lab == 1) 
    labPrefix = name.slice(0,3)
    print("\\begin{#{name}}\n\\label{#{labPrefix}:$1}\n\t$2\n\\end{#{name}}")
  else
    print("\\begin{#{name}}\n\t$1\n\\end{#{name}}")
  end
end

Edited to add: Here’s the second version of the command. It now contains code that adds \item to enumeration environments, and more! You can customize the command TM_LATEX_FIRSTLINE to decide, for each environment you want, what to add in the first line of the environment. For instance if you set this variable to:

"equation=>\\label{eqn:$1},theorem=>\\label{thm:$1},customList=>\\item "

then equation and theorem environments will be getting labels, while customList will get an \item appear. Enjoy!

#!/usr/bin/env ruby
#
# This script will expand the current word either to
# \word{} (if it's matched by the commands pattern),
# to one of the shortcuts in the shortcut dictionary,
# otherwise to \begin{word} … \end{word} with the caret
# inbetween.
#
# With no selection, it will insert \begin{environment}
# … \end{environment} and allow you to overwrite the
# environment name.
#
# Add to the environment variable TM_LATEX_COMMANDS the regular expression for any words you want
# expanded as \command{} instead of \begin-\end.
if(ENV.has_key?('TM_LATEX_COMMANDS'))
    customCommands = ENV['TM_LATEX_COMMANDS'].to_s
    commands = /^cite|footcite|footnote|label|ref|text(it|bf|tt|sf|sc)|#{customCommands}$/
else
    commands = /^cite|footcite|footnote|label|ref|text(it|bf|tt|sf|sc)$/
end
# Add to the environment variable TM_LATEX_SHORTCUTS a list of all word combinations you want expanded
# For instance, desc=>description,eqn=>equation etc.
customShortcuts = Hash.new
if(ENV.has_key?('TM_LATEX_SHORTCUTS'))
    ENV['TM_LATEX_SHORTCUTS'].to_s.split(',').each { |x| 
        temp = x.split('=>')
        customShortcuts["#{temp[0]}"]="#{temp[1]}"
    }
end
shortcuts = { "it" => "textit", "bf" => "textbf", "tt" => "texttt",
"sf" => "textsf", "sc" => "textsc", "em" => "emph", "fc" => "footcite", "fn" => "footnote",  "eqn" => "equation", "item" => "itemize", "enum" => "enumerate" }.update(customShortcuts)
# Add to the environment variable TM_LATEX_FIRSTLINE a list of all environments you want to have stuff
# in the first line. for instance itemize=>\\item,enumerate=>\\item etc
customFirstlines = Hash.new
if(ENV.has_key?('TM_LATEX_FIRSTLINE'))
    ENV['TM_LATEX_FIRSTLINE'].to_s.split(',').each { |x| 
        temp = x.split('=>')
        customFirstlines["#{temp[0]}"]="#{temp[1]}"
    }
end
firstLine = {   "enumerate" => "\\item ", 
                    "itemize" => "\\item ", 
                    "description" => "\\item ", 
                    "questions" => "\\question ", 
                    "parts" => "\\part "
                }.update(customFirstlines)
# Expand according to shortcuts
name = STDIN.read
if(!shortcuts[name].nil?)
  name = shortcuts[name]
end
if(name == '')
    stringToPrint = "\\begin{${1:environment}}\n\t$2\n\\end{$1}"
elsif(commands.match(name))
    stringToPrint = "\\#{name}{$1}"
else
  lab = ENV['TM_LATEX_INSERT_LABEL'].to_i
  if(lab == 1) 
    labPrefix = name.slice(0,3)
        if(firstLine[name].nil?)        
            stringToPrint = "\\begin{#{name}}\n\\label{#{labPrefix}:$1}\n\t$2\n\\end{#{name}}"
        else
            stringToPrint = "\\begin{#{name}}\n\\label{#{labPrefix}:$1}\n\t#{firstLine[name]}$2\n\\end{#{name}}"
        end
  elsif(firstLine[name].nil?)
        stringToPrint = "\\begin{#{name}}\n\t$1\n\\end{#{name}}"
    else
        stringToPrint = "\\begin{#{name}}\n\t#{firstLine[name]}$1\n\\end{#{name}}"
  end
end
print stringToPrint

Later

23 Comments »

  1. Costas Skiadas said,

    November 21, 2006 at 6:45 am

    Molis divazoume me ton Costa sto spiti tou ta sxetika me to TextMate

    416 anafores; poly kala!…

    Elpizw na diavaseis to mynima

    Xairetismous

    Costas kai Mpampas

  2. arremilem said,

    November 19, 2007 at 1:13 pm

    Nice forum!

    golfing equipment

  3. Наращивание said,

    November 21, 2007 at 5:58 am

    холодное наращивание волос по японской технологии (холодное, щадящее)
    элитные 100 % славянские волосы

    NEW! Коррекция прядей - 5 000 рублей - 2 400 рублей
    тел: (495) 683-48-65, 686-11-78

  4. lokerman said,

    November 26, 2007 at 4:06 pm

    Hello

    Here’s a interesting video I made to show off the Dervish’s dance from the Guild-Wars night-fall weekend.
    The dance the Dervish does is the same one that Christoper Walken did in the video for Fatboy Slims’ - Weapon of choice music video (hence the music used)

    What do you think about it?

    Mine
    youtube.com/watch?v=j_aONMdkzxU

    Original for those that may not have seen it
    youtube.com/watch?v=0WW8flwpH-Q

  5. tahListLort said,

    November 27, 2007 at 12:18 pm

    Hi, hello, privet
    toyota camry blowdryer

  6. naisioxerloro said,

    November 28, 2007 at 7:45 am

    Hi.
    Good design, who make it?

  7. SWomack said,

    December 1, 2007 at 2:20 am

    Hi folks

    I am in ths process of taking out a lon with Lombard Direct and I understand that they are owned by the Royal Bank of Scotland and I was wondering if anyone knew if they were based in the UK or in Italy in the Lombardy Region?

    Can anyone shed ayn light on this?

    Many thanks

  8. Nikita Aleksandrov said,

    December 3, 2007 at 9:43 pm

    The European credit cards: MasterCard, Visa (Gold/Platinum/Corparate/Bissnes/Signature), all cards workers, a guarantee, balance of cards from 2000 $, behind the detailed information and the prices write:admin.cc@mail.ru, or ICQ 423669709.

    The credit card, credit cards, plastic cards, mastercard, visa, carding, cvc, damp, dump, bank cards, plastic cards, credit cards, a debit card, a bank card, a card visa, a card the visa, maestro, visa classic, visa electron, cc, cards, magnetic cards, number of credit cards, visa a credit card, the generator of credit cards, the Internet credit cards, plastic cards visa, cvv, cvv2, carder to receive a credit card, credit the Internet a card, the visa a credit card, a code of a credit card, to buy a credit card, sale of credit cards, bank credit cards, credit cards reception, a debit card, the master of cards, the master of cards, maestro card, a card maestro, magnetic cards, payment cards, dumps

  9. Aleksandr said,

    December 7, 2007 at 8:33 am

    We offer qualitative service on sale: credit cards, passports, passports, a driving licence, readers, services on manufacturing cards.The information is on our site: http://www.kreditkareal.ru

  10. Nifyfaige said,

    December 9, 2007 at 2:27 am

    Hello all
    diet management manual owner waist

  11. voineevox said,

    December 9, 2007 at 7:10 am

    I want to get a credit card to restore my credit,
    but my credit rating is not soo good.
    Where can I find Bad Credit Charge Cards?

  12. Nifyfaige said,

    December 10, 2007 at 2:23 am

    Hello!
    89.com

  13. georg said,

    December 16, 2007 at 5:08 pm

    Hi
    The best teen pussy pictures
    G’night

  14. acikimberrarl said,

    December 16, 2007 at 11:44 pm

    After reading and understanding the rules, place your bets with UNIBET and collect what’s rightfully yours.

  15. Amadeus said,

    December 17, 2007 at 9:16 pm

    Hot Yotube video!
    http://darkdeva.6x.to

  16. TrurgillFus said,

    December 17, 2007 at 9:54 pm

    Ask for the cars maintenance record from the owner, dealer, or repair shop;

  17. Все о упаковке said,

    December 23, 2007 at 6:19 pm

    создания упаковки из пенопласта не является главным направлением нашей деятельности. Однако, технические возможности позволяют нам делать это. Более того, особенности нашего производства таковы, что мы можем изготовление упаковки санкт упаковку в количестве от одного экземпляра, и это не приведет к ее значительному удорожанию. Итак, чтобы сделать для Вас качественную и недоро
    гую упаковку, нам нужно ее эскиз. В отличие от других производителей упаковки, мы не требуем от Вас предоставления оригинал-макета. Если же Вы еще не не решили, какая именно упаковка Вас устроит, то мы можем вместе с Вами решить оптимальный вариант упаковки, учитывающий все особенности Вашей продукции.Напоминаем также, что пенопластовая упаковка - это оптимальный вариант по соотношению «цена-качество». И область ее применения достаточно широка: от упаковки мебели, дверей и сантехники до хрупких изделий из стекла и фарфора

  18. FupLauramGard said,

    January 10, 2008 at 2:49 am

    subj
    ?

  19. TigdottTirm britney spears wallpaper said,

    January 10, 2008 at 12:28 pm

    hi, look it
    kim kardashian and ray j

  20. roadiasok said,

    January 27, 2008 at 11:59 am

    Good site
    http://www.google.com - xamasapa

  21. saisciple said,

    March 21, 2008 at 1:44 pm

    I love your services and products, many thanks!

  22. Продвижение разработка сайта CMS said,

    August 18, 2008 at 4:50 pm

    продвижение сайт компания создание разработка сайта cms php Продвижение сайтов
    Основное направление деятельности компании “Сигмаком” - оптимизация и продвижение сайтов в популярных поисковых системах (Яндекс, Google, Rambler и др.). Поисковое продвижение сайта включает в себя целый комплекс мероприятий, направленных на улучшение видимости сайта для поисковых машин: экспресс-аудит сайта, составление семантического ядра, анализ конкуренции, оптимизация текстов и структуры сайта, увеличение количества ссылающихся сайтов.
    Продвижение в поисковых системах позволяет значительно повысить посещаемость сайта и привлечь целевых посетителей, т.е. Ваших потенциальных клиентов.
    Поисковая оптимизация - это многоплановый процесс, начинающийся с анализа структуры и тематики сайта, разработки плана мероприятий по реструктуризации сайта (если это необходимо) и продвижению его в поисковых системах. Стоимость контракта и бюджет кампании рассчитывается в зависимости от желаемого результата и исходных данных сайта.
    Каждый заказ уникален и требует тщательной подготовки. Продвижение сайта - это индивидуальная кропотливая работа, невозможно добиться хорошего результата, действуя по одной схеме продвижения сайтов.
    оисковая оптимизация веб сайта, поисковое продвижение сайтов и seo
    “Поисковое продвижение сайтов - seo”
    В настоящее время наличие web-cайта в сети само по себе не дает никаких конкурентных преимуществ. Как добиться, чтобы сайт приносил коммерческую выгоду своим владельцам?
    Продвижение сайта
    Одним из основных направлений деятельности нашей компании является предоставление услуг комплексного интернет-маркетинга, ряда мероприятий, направленных на привлечение целевой аудитории на ваш сайт, увеличение продаж, узнаваемость бренда компании, продвижении на рынок определенных товаров и услуг.
    Важнейшим условием оптимального продвижения сайта является Интернет-маркетинг: раскрутка и продвижение сайтов в поисковых системах (оптимизация сайта для поисковых машин Яндекс, Рамблер, Mail.ru, Апорт, Google, Yahoo, MSN), размещение контекстной рекламы, аудит и мониторинг сайтов, различные маркетинговые исследования.
    Поисковая оптимизация сайта - это необходимый набор действий, который позволяет вашему сайту проиндексироваться и подняться по низкочастотным и некоторым среднечастотным запросам в поисковой выдаче. Наши специалисты произведут подбор и анализ поисковых запросов, по которым необходимо повысить позиции ресурса, обработку внутреннего информационного наполнения и структуры сайта с учетом требований, предъявляемых поисковыми машинами, формирование заявок на индексацию сайта в поисковиках и простановку ссылок в тематических каталогах.
    Основной целью поисковой оптимизации является вывод вашего сайта на первую страницу или в первую тройку результатов выдачи. Здесь главная задача - правильно подобрать поисковые слова. Подбор ключевых слов - фундамент всей работы по продвижению сайта. Поэтому мы уделяем огромное внимание анализу ключевых слов. Все ключевые слова анализируются не просто по количеству запросов/уровню конкуренции, но по множеству важных параметров, которые могут дать реальную картину. Чёткое представление целевой аудитории помогает нам при создании рекламных материалов, а также где именно следует искать аудиторию. Мы проводим анализ конкурентов - их ПР, количество и качество ссылок, уровень оптимизации, используемые стратегии продвижения.
    Ведение тематических рассылок позволяет заинтересовать пользователя сети в предлагаемой услуге или товаре. Предоставляется возможность познакомить клиентов с особенностями продукта, которые они не смогли изучить на сайте компании.
    Контекстная реклама - размещение рекламных материалов на тематических сайтах или в результатах поиска. Преимущества контекстной рекламы - быстрый старт и относительная дешевизна. Использование контекстной рекламы вместе с поисковой оптимизацией повышает эффективность рекламной кампании в целом. Баннерная реклама - размещение информации определенных форматов (баннеров) на других сайтах.
    Кроме прямой рекламы используется такой эффективный инструмент продвижения, как PR, или создание положительного образа компании. Это - регулярное обновление сайта, публикация новостей, работа с форумом / гостевой книгой, ответы на вопросы, cвоевременное опубликование пресс-релизов на сайте или обновление новостей.
    Несколько десятков успешных проектов, высокая квалификация специалистов, огромный опыт по продвижению сайтов, только честные методы продвижения, использование современных технологий, наличие собственных разработок, индивидуальный подход к клиенту - вот перечень наших конкурентных преимуществ.
    Вы хотите увеличить отдачу от своего присутствия в сети? Начните сотрудничество с нами прямо сейчас.
    Продвижение сайта в сети - установите себе бесплатный код!
    После того, когда Вы создали свой замечательный сайт, важно помнить, что помимо Вас - в Интернет есть конкуренты, которые работают на рынке давно и готовы не экономить на Интернет-рекламе будучи “раскрученными” удерживать рейтинговые позиции по ключевым словам.
    Посещаемость их сайта в 600 и более раз выше вашей, у Вас 2 человека в сутки и при этом 1 из них Вы сами как посетитель своего собственного сайта.
    Для того что бы избежать этого, улучшить результат качественно - нашими специалистами разработан целый комплекс услуг по увеличению посещаемости сайта и созданию тематической Интернет-аудитории.
    Всё занимает определённое время. Механизм системы технически-сложен - группой серверов вырабатываются подходы на ваш сайт и запускаются поисковые боты по ключевым словам (найти), но заметим, что для этого Он должн быть уже зарегистрированный в доменной зоне RU и зарегистрированный во всех рейтингах (RamblerTop100, Mail.Ru, Aport, Yandex и т.п.)
    После того как Вы разместили эти кнопки (счётчики) к себе на первую страницу сайта - ваш сайт всё равно остаётся “чемоданом без ручки” но можно всё исправить.

    Нами разработан унифицированный htm-код для увеличения посещаемости и раскрутки вашего сайта.

    Преимущества этого кода:
    1. Не занимает место на экране (невидимый)
    2. Не противоречит Законам РФ и Соглашениям и пр. (пока нет такого Закона)
    3. Не вирус (его можно проверить антивирусом - если есть “?”)
    4. Не “вешает” компьютеры, сеть и пр.
    5. Не СПАМ (SPAM) рассылка
    6. Безопасен и автоматизирован!

    Краткая инструкция по использованию:
    1. Скопируйте и разместите этот код у себя внизу на первой странице Вашего сайта.
    Этот html-код сам определяет Вашу тематическую аудиторию - согластно установленным “кнопкам” у вас на сайте и регистрации сайта в “поисковиках”.
    2. Создате пустую страницу “coun.html” содержащию ТОЛЬКО ВАШИ СЧЁТЧИКИ 88×31 (и ничего более) и запишите её в корень, там где находится файл index.php
    Последнее обновление ( 09.05.2007 )
    Продолжение…

    Показ уведомлений о Ваших ошибках
    Написал Administrator
    24.04.2007
    Часто задают вопросы: “У меня файл coun.html в каких то надписях” и приводят в качестве примера блоки текста, которые начинаются со слов Сервер обработал ваш запрос и т.п. Эти сообщения являются не ошибкой, а только предупреждениями и уведомлениями для программиста и в процессе работы готового сайта они не нужны и должны быть отключены.
    Достигается это правильной настройкой параметра URL= указывайте youresite.ru
    Для того, чтобы отключить вывод ошибок из своей программы, достаточно правильно указать параметры и типы переменных в настройке html-кода.

    1. Сайт - это прежде всего наглядный и доходчевый инструмент организующий продажи, допустим, Интернет-магазин.
      Все сайты можно разделить на условные категории, аналогично, так же как и рекламу.
    2. Имиджевый сайт (Лицо престижной фирмы)
    3. Продуктовый сайт (Массовая продажа товаров/услуг)
    4. Комбинированный (Рекламный + Имиджевый)

    Все категории - можно также разложить по контенту. Т.е. Рассмотрим п.1. Сайт должен быть Имеджевым, а вот его “начинка” может быть реализована как по технологии Flash (”Парк Юрского периода, Star Wars и т.п.”) или простой D-HTML.
    Главная задача именно такого сайта - Престиж, репутация компании. Его цель - не продажи, допустим, никому не нужных пластиковых карт VisaElectron…

  23. Uduard said,

    August 19, 2008 at 6:57 am

    Спасибо почитаю тут всё.

Leave a Comment

macrobid more drug side effects buy neurontin fosamax lawsuits effects of fluoxetine order tamiflu buy meridia online effexor overdose minocycline hcl paxil overdose potatoes not prozac temazepam tablets adipex no rx side effects of lamisil drug elavil heroin chic metformin oral flomax erection butalbital apap impotence monopril flextra medicationflomax diazepam without a prescription generic aciphex meclizine drug what is flonase levaquin oral aldara side effects phentermine diet pill medroxyprogesterone acetate online pharmacy vaniqa fluconazole online macrobid oral fosamax generic propecia prices paxil side affects methamphetamine arrests fluconazole pregnancy naprosyn oral nexium more drug side effects cephalexin oxazepam drug information ramipril lawyer pantoprazole formulation aciphex rebate buy levitra antivert side effects ortho cyclen viagra no prescription generic for norvasc premarin alternatives buy remeron antibiotic penicillin altace side effects xanax for sale protonix side effects vicoprofen online allegra and aciphex interaction phentermine 375 mg drug aciphex fluconazole and dangerous nexium oral mescaline cactus shooting flexeril buy phendimetrazine online buying vicodin drug tamoxifen doxazosin buy vicodin what is seroquel buy proscar keppra to treat depression famvir dosage buy synthroid without prescription marion jones steroids serevent steroid prozac side effect ortho molecular products atenolol reviews no prescription needed adipex lavorazione hashish in marocco what is sertraline discount tenuate what is tricor vicoprofen without perscriptionvioxx generic propecia sertraline oral what is cephalexin keflex no prescription where to buy steroids buy oxycontin without a prescription tramadol hcl acetaminophen viagra price ditropan alternatives ambien withdrawl soma buy levitra price buy acyclovir drug crystal methamphetamine premarin generic oxycontin abuse buy lexapro online prescription soma triphasil tabs online meds fioricet fioricet oral generic plavix vioxx lawyer nexium alternative buy tamiflu online fulvicin price paroxetine suicidal pepcid buy buy levitra online tamiflu from canadatamoxifen seroquel oral levoxyl and weightloss celebrex 200mg cialis without prescription risedronate 35mg glyburide side effects actos diabetes sildenafil cheap generic valacyclovir online fioricet effects prozac weight gain lorcet without rx mircette birth control pills buy ambien without a prescription tenuate dospan watson generic zocor anabolic steroids buy what is metoprolol prilosec informationprinivil clonazepam overdose meridia order buy cyclessa buy fosamax methamphetamine recipe imitrex oral buy anabolic steroids protopic children mircette without a prescription from us pharmacy history of phencyclidine what is microzide used forminocycline xanax without a prescription online pharmacy fioricet buy xanax on line alternative to fulvicin cheap renova without a prescription temazepam 15 mg tobradex sales oxycodone addiction flexeril drug carisoprodol online pharmacy what is the price for prinivil xanax oral tamiflu medication antabuse online triphasil rohypnol drug alternative to metrogel buy ultracet without prescription what is macrobid used for vicodin cod altace ramipril antabuse side effects cialis comparison levitra elavil medicine vicodin high famvir pregnancy new dilantin didrex atlanta steroids and sports nardil online pharmacy best price viagra tadalafil coupon norvasc side effects ativan data synthroid more drug side effects buy didrex tadalafil online acetaminophen discovery of penicillin soma watson tylenol codeine plendil blood pressure medicine prednisone withdrawal synthroid oral macrobid doses sertraline hcl naprosyn side effects promethazine buy tazorac potency pravachol bontril aceon oxycodone side effects tamiflu buy drug valium phentermine cheap tamoxifen breast cancer compazine and side effects glyburide interaction zithromax pregnancy evista concerns cheap flonase hyzaar generic cyclobenzaprine effects nasacort aq nasal spray levothroid weight loss tadalafil overnightt finasteride cheap nifedipine xr buy rabeprazole buying sibutramine making mdma tadalafil price captopril side effects online pharmacy sibutramine buspar medicine valtrex side effects zovirax cost high testosterone meridia price lexapro dosage steroids side effects buy vicodin without a prescription online pharmacy no prescription proscar phentermine prescription online esgic genericesomeprazole meridia weight loss actos side effects oxycodone pills testosterone booster valtrex price generic prilosec lortab abuse buy adipex online order hydrocodone what is elocon dog pepcid ac or zantac ranitidine drug viagra cialis levitra propecia pharmacy phencyclidine picture generic sarafemselsun blue famvir vs valtrex snorting zoloft vaniqa medicine buy tenuate without a prescription generic vicoprofen phentermine prescription treating vicodin withdrawl cipro side effects in women ultracet online alternative celebrex generic xenical methylprednisolone tablets genarit norvasc prilosec 20mg vicodin pictures starting klonopin prilosec online ambien overnight delivery generic vicodin biaxin problem tadalafil 20mg steroids online is ultram a narcotic buy viagra alternative miacalcin more drug uses flomax caps side effectsflonase definition prozac vicodin buy online buy nasacort oxycontin addiction hyzaar medication buy ramipril on line without prescriptionranitidine biaxin nexium histex 10mg dilantin buy lorazepam keppra weight gain diclofenac buy xenical otc albuterol advair inhaler online pharmacy flonase fioricet tablets tricor generic mononitrate tylenol during pregnancy omeprazole oral buy detrol child taking lisinopril tylenol pregnancy ativan complication lortab cod cheap k-dur tamiflu relenza famvir oral paroxetine withdrawlpatanol nizoral hair loss buy fulvicin flovent inhaler nicotrol inhalers lortab side effects antabuse drug zyprexa withdrawal nordette levora tadalafil generic provigil more drug uses cheap generic viagra barry bonds steroids viagra samples buy hydrocodone online flexeril generic fluconazole overnight delivery buy diazepam without prescription buy evista propecia prescriptions antibiotic macrobid online pharmacy sildenafil generic lipitor ionamin pills prempro without a prescription buy valporicvaltrex order xanax online vaniqa buy what is rabeprazole sodium paxil stopping is naisads in motrin cefixime xenical no prescription toprol medication buy lorazepam online serevent discus viagra online uk premarin withdrawal aldara zocor generic tamiflu require prescription oxycontin side effects natural testosterone temovate buy ultravate drug omeprazole overdose lortab no prescription needed oxycodone pictures ibuprofen buyimitrex omeprazole generic ecstasy pills proscar propecia smoke flexeril premarin creme clomid buy veterinary fulvicin metrogel topical gel fioricet generic qualitest drug spironolactone amoxycillin evista side affectsevoxac adipex online prescription approved online tramadol pharmacy what is k dur tabletsk-dur order hydrocodone online bupropion cheap paxil hydrocodone picture dosage of pravachol trazodone and pregnancytretinoin prednisone dosage adderall metformin and weight loss proscar forum orlistat xenical serevent lawsuit order ultram order phentermine online sarafem 10mg temazepam cap prescription adderall xr increase effects of oxazepam vaniqa lowest price rabeprazole buy generic sildenafil cheapest sibutramine levitra and cialis and viagra free generic levitra morphine generation cheap valium gemfibrozil buyghb zoloft side effects nardil on line generic serevent tamsulosin hydrochloride evoxac more drug uses plavix medicine mdma for salemeclizine xenical without prescription serzone withdrawal side effects of clomid what is ic butalbital paroxetine 20 mg synthroid without a prescription amaryl diabetic medication hydrocodone cod what is toprol trimox picture valtrex cheap aricept side effects soma prescriptions diovan buy vicodin generic allegra prescription uses for temovate medicinetenuate lorazepam withdrawal clomid side effects famvir coupons rohypnol pictures zestril oral is ativan addictive seroquel abuse cheap zithromax online valium no prescription pictures of mescaline penicillin allergy online tramadol phentermine side effects dangers famvir medication pictures what is terazosin viagra generic lortab online isosorbide buy isosorbide mononitrate oral zithromax antibiotic norvasc overdose how does didrex work tamoxifen citrate free nicotrol inhalernifedipine pharmacy usa lipitorlisinopril nardil parnate premarin side effects testosterone gel nexium price k-dur transdermal patchkeflex alcohol and prozac avodart flomax lortab addiction tretinoin for genital warts how to make heroin adderall prices dovonex what is folic acid propecia reviews order norco online buy spironolactone no prescriptionsteroids buy preven buy xanax using paypal augmentin online pharmacy prempro trial cheapest phentermine prices what is pcp clonidine side effects cheap generic levitra onlinelevothroid clarinex compared to claritin rosiglitazone actions what is folic acid for buy soma online protonix more for patients prilosec coupons buy serzonesibutramine side effects when taking gemfibrozil effexor drug side effects stopping prozac vicodin sleepiness buy atorvastatin buy generic triphasil what is atenolol zithromax online aciphex costs buy ketamine online propecia testimonials buy injectable anabolic steroids xanax 2mg order tamiflu without prescription hydrocodone buy relafen drug kenalog shots wellbutrin withdrawal symptoms history of steroids buying valium online pravachol drug interactions buy fioricet w codeine side effects flomax sumatriptan from mexico cardura fabric esomeprazole magnesium uses of penicillin renova buy clonazepam fedex renova without prescription promethazine pill lotrel low pulse rate tadalafil cialis from india lortab without prescription side effects of diazepam buy adderall pills cyanocobalamin buy ultram withdrawal tamsulosin hcl propoxyphene apap serevent inhaler what does oxycodone look like sarafem canada flexeril online soma medication didrex side effects zyban buy provigil 200mg tab generic dovonex what is nexium buy valtrex alprazolam xr what is finasteride generic nasonex metformin dosage lasix without a prescriptionlescol diflucan adderall withdrawal generic premarin no prescription generic valtrex buy cheap generic nordette transderm pioglitazone hydrochloride accupril buy reactions to amoxycillin medication nexium protopic and vitiligo monopril side effects skelaxin side effect hydrocodone lortab generic zoloft proscar and pregnancy purchase xanax online order xenical seroquel buy fluconazole side effects about sertraline discount phentermine overnight fedex wellbutrin withdrawal proscar without prescription roxicet pill fosamax buyfulvicin valtrex girl oxazepam abuse carisoprodol online soma generic sibutramine adipex without prescription methylphenidate side effects ultram drug manufacturer of prinivil buy triamterene online glucophage and weight loss zovirax more drug uses vicodin withdrawlsvicoprofen relafen medication metrogel vaginal celebrex celecoxib phendimetrazine side effects adderall buy alprazolam online fedex mircette more drug side effects nasacort nasal spray order famvir ortho tri-cyclen side effects of keppra buy sibutramine meridia litigations minocycline without prescription generic xanax avandia drug alesse side effects cheap vermox online trazodone hcl tadalafil cod valium on line buy ketamine trazodone and clonazepam buy prinivilproctocort buspirone abuse accolate buy detrol and relief discovery penicillin tylenol with codeine canadaultracet xanax generic propoxyphene abuse lortab information buy zanaflex online buy depakote without a prescription antivert drug purchase phentermine online generic avapro lipitor muscle problems neurontin gabapentin miralax for children purchase fioricet online buy ultracet online no prescription patanol canada keflex oral celexa online pharmacy xanax no prescription clomid and pregnancy oxycontin for sale alternative viagra trazodone dosage buy tenuate dospan bontril no script kenalog lotion buy benicar avapro interactions buy macrobid without prescription metrogel side effects valium dosage what is flextra seroquel and alcohol what is levaquin generic for evista medicines what is famvir cardura buy generic ultram overdose roxicet erection viagra ibuprofen side effects what is nifedipine celecoxib alternative phencyclidine drugs low dose naltrexone prilosec nexium toprol information nifedipine cream order zithromax online what is supraxsymmetrel lorcet no prescription cyclobenzaprine 10mg side effects of lotrel prozac more drug uses side effects of ultram cipro no prescription purchase meridiamescaline yasmin buy no prescription ionamin lanoxin side effects sildenafil 100mg nasonex no rx what is trazodone valium online generic for altace overnight xanax online pharmacy tramadol propranolol hydrochloride cheap ultram online cheapest viagra online prescription tamiflu lotrisone more drug uses lipitor side effect lotensin dosage facts on ecstasy xanax xr estradiol levels cheap nasonex cyanocobalamin levoxyl and weight loss online prescription for adipex buy levaquin what is sibutramine zyban information buy tramadol side effects of propranolol purchase vicodin online phendimetrazine pills evista more drug interactions fioricet and pregnancy valtrex during pregnancy fioricet medication meridia side effects withdrawal symptoms of prednisone buy ambien buy naprosyn xanax valium buy proctocort alcon patanol nizoral pills toprol medicine valtrex and pregnancy nexium side effect cozaar cough vicodin addiction flomax tamsulosin canada order soma online mescaline dosage and effectsmetformin online pharmacy ceftin drug metoprololmetrogel what is plavix clopidogrel buy what is ritalin xanax abuse buy generic allegra fexofenadine cheap zithromaxzocor morphine sulphate didrex no prescription needed adipex review who discovered ionamin neurontin lawsuit ceftin side effects heroin overdose side effects of naprosyn adipex without rx zocor side affects ultram prescription gemfibrozil more drug uses adipex alternatives what is soma order phendimetrazine buy viagra on line promethazine codeine buspirone hydrochloride soma bicycles horse steroids pantoprazole label carton zanaflex dosage didrex drug discount zocorzoloft roxicet oral cialis levitra sale viagra side effects of ramipril ultram pain medication metformin more drug side effects side effects of miacalcin generic levoxyl purchase soma online elocon ointment adipex side effects brain purchase sildenafil citrate buy amoxil vioxx news norvasc side effect pravastatin side effects actonel buy ranitidine buyrelafen buy furosemide without a prescription miacalcin cause pancreatitis medication butalbital how to make mdma buy phentermine without prescription prevacid pregnancy prednisone tablets verapamil side effects serzone claims fluoxetine and pregnancy where to buy tramadol osteonecrosis and fosamax enalapril side effects buy zovirax without prescription how to use steroids lorazepam dosage prozac nation what is microzide fluconazole and natural medicine lamisil forums buy retin a online viagra for women what is azmacort tetracycline online lexapro more drug interactionslipitor buy generic sertraline buy wellbutrin premarin no prescription loratadine overdoselorazepam cheapest propecia discount xanax what is thiamine mononitratemonopril pantoprazole side effects what is zovirax bontril online pharmacy lexapro and weight gain medrol dosepack advair diprolene generic ramipril oral serzone increased energy premarin vaginal cream what is tobradextoprol tadalafil tablets skelaxin drug renova without a perscription what is risperdal patanol opht cozaar side effects buspirone hcl dangers of steroids nasonex nasal spray description triphasil acyclovir valacycovir on line phentermine tadalafil comprar retin a melanexmeridia what is estradiol plendil incontinence soma pharmacy buy sildenafil citrate cyclobenzaprine flexeril what is protonix steroids pictures cheap nexium tylenol biaxin reaction ritalin adhd nexium without prescriptionnicotine nordette and no prescription and thailand evista generic valium vicodin oral nexium pill phentermine pill imitrex coupons cheap celebrex online chemical name for suprax buy tussionex without prescription norco bike norco wolverine what is glyburide ritalin alternatives fluoxetine 20mg flonase nasal spray child paxil buy meridia on line buy zestrilziac risperdal overdoseritalin lotrisone lotion skelaxin medication purchase finasteride canadafioricet skelaxin dosage thiamine mononitrate formula tramadol on line side effects of flomax acyclovir aura soma furosemide prescription oxycodone overdose prozac information ketamine effects what is methylphenidatemethylprednisolone aciphex rabeprazole paxil lawsuit what is restoril buy prozac flexeril more drug side effects order tramadol online metrogel vaginal cream snorting zanaflex alabama psilocybin mexican steroids sertraline hydrochloride child overdose lisinopril what is oxycontin purchase tetracycline without prescriptiontiazac coreg tamsulosin hcl lanoxin digoxin thiamin mononitrate fioricet line purchase viagra online phentermine adipex temovate cream snorting flexeril propranolol side effects medicine fluconazole purchase acyclovir online tiazac diltiazem buy ambien overnight rabeprazole drug depression provigil tenuate tablet lexapro and pregnancy bontril diet pills buy eunlose lipitor interaction tadalafil cialis viagra prices increase testosterone buy hydrocodone cod generic tobradex history of anabolic steroids effects of prozac tenuate discount phendimetrazine 35mg flextra pregnancy lortab description smoking klonopin hydrochlorothiazide and pregnancy ultram cash on delivery buying vicodin online yellow xanax bars birth control nordette generic lamisil cheap soma glipizide side effects drug altace retin a wrinkles symmetrel abusesynalar phendimetrazine online paxil pregnancy transderm buy xenical side effects loratadine buy buy adderall without a prescription buy cheap fioricet ghb drug adderall online plavix news lexapro withdrawal symptoms symmetrel buy effexor side effects propranolol anxiety cozaar 50mg serevent law proscar side effects order sibutramine sumatriptan succinat information on tramadol tamiflu no prescription needed cream verapamil prilosec side affects what are steroids children motrin buy generic valium online cheap zyban fosamax warning zocor more drug side effects synalar nasal buy ziaczithromax terazosin drug buy tamiflu mexico rabeprazole sodium ultracet with aspirin triphasil without prescription lipitor prescription side effects valtrex online purchase steroids make ghb furosemide water pillsgemfibrozil esomeprazole magnesium in mexico mircette online cialis levitra vardenafil kidney infection macrobid zyban no prescription active ingredients in adipex fioricet prescription hives motrin allergy paxil quitting medrol side effects clonazepam cod