2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 макро-подстановки (\newcommand), пробелы и знаки препинания
Сообщение18.04.2008, 07:28 
Модератор
Аватара пользователя


11/01/06
5660
Есть ли какой-то универсальный способ автоматической расстановки пробелов после макро-подстановок в текстовом режиме? В качестве примера рассмотрим фразу с \LaTeX:

What is better MS Word or \LaTeX? \LaTeX, of course! But sometimes \LaTeX is tricky to use.

В таком виде она превращается в:

$$\text{What is better MS Word or \LaTeX? \LaTeX, of course! But sometimes \LaTeX is tricky to use.}$$

То есть там, где после \LaTeX идут знаки препинания, все OK. Но вот если после \LaTeX идет пробел, то он съедается. Если же насильно вставить пробел в определение макро-подстановки (как советует Львовский), то появятся лишние проблелы перед знаками препинания.

Я не хочу заботиться о пробелах после каждого использования \LaTeX - как сделать так, чтобы они автоматически появлялись там и только там, где надо (то есть там, где отсутствуют знаки препинания)?

 Профиль  
                  
 
 
Сообщение18.04.2008, 07:41 
Заслуженный участник
Аватара пользователя


18/05/06
13435
с Территории
ммм... может, вставить туда
Код:
{}
?

 Профиль  
                  
 
 
Сообщение18.04.2008, 08:04 
Модератор
Аватара пользователя


11/01/06
5660
{} не помогает.

 Профиль  
                  
 
 Re: макро-подстановки (\newcommand), пробелы и знаки препина
Сообщение18.04.2008, 10:12 


29/09/06
4552
Как не помогает? Всегда пользую этот трюк: \LaTeX{}
$$\mbox{But sometimes \LaTeX is tricky to use}$$
$$\mbox{But sometimes \LaTeX{} is tricky to use}$$
Но в макроподстановке это действительно не срабатывает.
В тексте можно ещё и "\LaTeX\ ".

Но, похоже, это не ответ на Ваш вопрос
maxal писал(а):
Я не хочу заботиться о пробелах после каждого использования \LaTeX...

 Профиль  
                  
 
 Re: макро-подстановки (\newcommand), пробелы и знаки препина
Сообщение18.04.2008, 10:22 
Модератор
Аватара пользователя


11/01/06
5660
Алексей К. писал(а):
Но в макроподстановке это действительно не срабатывает.

О том и речь!

 Профиль  
                  
 
 
Сообщение18.04.2008, 10:26 


29/09/06
4552
Собственно, если забыть о существовании команды \LaTeX, и считать, что существует лишь команда \LaTeX{} (и применить это к другим командам такого типа), то вроде как проблема исчезает...

 Профиль  
                  
 
 
Сообщение18.04.2008, 10:29 
Модератор
Аватара пользователя


11/01/06
5660
Хорошо, будем считать, что запасной вариант решения найден. Но мне бы хотелось, решить вопрос внутри определения \newcommand{}, а не снаружи.
В частности, использовать \LaTeX{} вместо \LaTeX довольно неудобно.

 Профиль  
                  
 
 
Сообщение18.04.2008, 10:37 


29/09/06
4552
Впечатление, что это неразрешимая задача (типа квадратуры круга), у меня сидит не от того, что я такой уж ТеХнарь, а от многократных обсуждений этого вопроса с настоящими гурами (в прошлом, когда я сам ещё не мог смириться с этим съедаемым пробелом).

 Профиль  
                  
 
 
Сообщение18.04.2008, 23:29 
Заслуженный участник


18/03/07
1068
maxal, попробуйте пакет xspace.

Если не хотите вводить новую команду, а желаете переопределить старую, скажите так:
Код:
\let\latex=\LaTeX
\def\LaTeX{\latex\xspace}

 Профиль  
                  
 
 
Сообщение18.04.2008, 23:35 
Модератор
Аватара пользователя


11/01/06
5660
luitzen, спасибо большое! В точности то, что надо!
Я подозревал, что существует простое решение. До квадратуры круга эта задача явно не дотягивает :lol:

 Профиль  
                  
 
 
Сообщение18.04.2008, 23:48 


29/09/06
4552
Просто Yarkin ещё не до конца создал математику$2\varepsilon$... Там и квадратура решится... :)

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group