2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: Breqn Дублирование знаков мат. операций при переносе
Сообщение05.04.2020, 14:45 
Заслуженный участник
Аватара пользователя


23/07/05
17973
Москва
В крайнем случае можно определить команду \? и при появлении переноса вручную вставлять её перед тем символом, который нужно продублировать:
Используется синтаксис LaTeX
\def\?#1{#1\nobreak\discretionary{}{\hbox{$\mathsurround=0pt #1$}}{}}

$h_1(y,M)=(h_2y,M\?\cap C_2)$
Это, конечно, несколько неудобно, тем более, что при изменении текста абзаца переносы могут "переехать" в другие места, и придётся просматривать результат компиляции, чтобы вставить команду в новых местах (в старых местах можно не удалять, так как команда не дублирует символ, если переноса нет).

P.S. Недавно столкнулся с тем, что пакет breqn несовместим с командой \binomial.

 Профиль  
                  
 
 Re: Breqn Дублирование знаков мат. операций при переносе
Сообщение05.04.2020, 14:55 


07/06/13
23
Внутритекстовая у вас тогда отдельным боксом будет. Внутри него перенос, конечно, будет, но это вряд ли то, что ожидается.

 Профиль  
                  
 
 Re: Breqn Дублирование знаков мат. операций при переносе
Сообщение05.04.2020, 15:18 
Заслуженный участник
Аватара пользователя


23/07/05
17973
Москва
dryabov в сообщении #1451558 писал(а):
Внутритекстовая у вас тогда отдельным боксом будет. Внутри него перенос, конечно, будет, но это вряд ли то, что ожидается.
Это Вы мне? Команда делает именно то, что ожидается: если \LaTeX переносит часть формулы после символа, перед которым стоит "\?", на следующую строку, то символ печатается дважды: в конце первой строки и в начале второй. Я ей когда-то пользовался. В преамбуле у меня был вот такой фрагмент:
код: [ скачать ] [ спрятать ]
Используется синтаксис LaTeX
% Переносы математики
\begingroup
\catcode`\+\active\gdef+{\mathchar8235\nobreak\discretionary{}{\usefont{OT1}{cmr}{m}{n}\char43}{}}
\catcode`\-\active\gdef-{\mathchar8704\nobreak\discretionary{}{\usefont{OMS}{cmsy}{m}{n}\char0}{}}
\catcode`\=\active\gdef={\mathchar12349\nobreak\discretionary{}{\usefont{OT1}{cmr}{m}{n}\char61}{}}
\catcode`\<\active\gdef<{\mathchar"313C\nobreak\discretionary{}{\usefont{OML}{cmm}{m}{n}\char60}{}}
\catcode`\>\active\gdef>{\mathchar"313E\nobreak\discretionary{}{\usefont{OML}{cmm}{m}{n}\char62}{}}
\endgroup
\def\times{\mathchar8706\nobreak\discretionary{}{\usefont{OMS}{cmsy}{m}{n}\char2}{}}
\def\subset{\mathchar"321A\nobreak\discretionary{}{\usefont{OMS}{cmsy}{m}{n}\char26}{}}
%\supset,\subseteq,\notin
\def\supset{\mathchar"321B\nobreak\discretionary{}{\usefont{OMS}{cmsy}{m}{n}\char27}{}}
\def\subseteq{\mathchar"3212\nobreak\discretionary{}{\usefont{OMS}{cmsy}{m}{n}\char18}{}}
\def\neq{\not=\nobreak\discretionary{}{\usefont{OMS}{cmsy}{m}{n}\char54\usefont{OT1}{cmr}{m}{n}\char61}{}}
\def\sim{\mathchar"3218\nobreak\discretionary{}{\usefont{OMS}{cmsy}{m}{n}\char24}{}}
\def\in{\mathchar"3232\nobreak\discretionary{}{\usefont{OMS}{cmsy}{m}{n}\char50}{}}
\def\to{\mathchar"3221\nobreak\discretionary{}{\usefont{OMS}{cmsy}{m}{n}\char33}{}}
\def\?#1{#1\nobreak\discretionary{}{\hbox{$\mathsurround=0pt #1$}}{}}
% Конец переносов математики
Но я его не сам сочинил, а откуда-то скопировал. Давно-давно.

 Профиль  
                  
 
 Re: Breqn Дублирование знаков мат. операций при переносе
Сообщение05.04.2020, 15:49 


07/06/13
23
Someone в сообщении #1451569 писал(а):
Это Вы мне?

Нет, это было для Munin.

А что касается команды \? - речь выше шла о дублировании знаков в пакете breqn, а там изначально разрыв вставляется перед символом, а не после (как в текстовых формулах), поэтому команда должна иметь вид
Используется синтаксис LaTeX
\def\?#1{\discretionary{\hbox{$\mathsurround=0pt #1$}}{}{}\nobreak#1}
 


Можно через \if@display объединить оба кода (для текста и для breqn) в один:
Используется синтаксис LaTeX
\usepackage{amsmath}
\makeatletter
\def\?#1{\if@display\discretionary{\hbox{$\m@th\displaystyle#1$}}{}{}\nobreak#1\else#1\nobreak\discretionary{}{\hbox{$\m@th#1$}}{}\fi}
\makeatother
 

 Профиль  
                  
 
 Re: Breqn Дублирование знаков мат. операций при переносе
Сообщение05.04.2020, 19:30 
Заслуженный участник
Аватара пользователя


30/01/06
72407
dryabov в сообщении #1451558 писал(а):
но это вряд ли то, что ожидается.

Тогда нужно более точное описание того, что ожидается. В частности, от вас.

 Профиль  
                  
 
 Re: Breqn Дублирование знаков мат. операций при переносе
Сообщение07.04.2020, 07:47 
Заблокирован


16/04/18

1129
Дублирование при переносе вручную знака умножения как \times - это стандартный способ, или есть другой? Увидел здесь символы \* - сразу не нашёл про них, как они используются, есть применения при ручном наборе?
Вопрос немного не по месту, но раз здесь специалисты по TEX и чтобы не множить темы. Хочется некоторые темы с форума собирать в TEX файл. Как их скопировать в него быстрее всего?

 Профиль  
                  
 
 Re: Breqn Дублирование знаков мат. операций при переносе
Сообщение08.04.2020, 00:58 


07/06/13
23
novichok2018 в сообщении #1452186 писал(а):
Дублирование при переносе вручную знака умножения как \times - это стандартный способ, или есть другой? Увидел здесь символы \* - сразу не нашёл про них, как они используются, есть применения при ручном наборе?

Символ \* нужно использовать в выражениях типа E = m \* c^2 ($E = m \* c^2$). В этом случае в обычных условиях он не выводится (или заменяется на узкий пробел), но если в этом месте возникнет перенос, то \* заменится знак умножения $\times$.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу Пред.  1, 2

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



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

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


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

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