Bug 9510 - изменить схему экранирования символов (latex)
: изменить схему экранирования символов (latex)
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/ALDConvert)
: unstable
: all Linux
: P2 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2006-05-04 13:17 by
Modified: 2008-06-13 12:16 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2006-05-04 13:17:41
Поскольку я поменял технологию обработки verbatim в TeXe, 
а заодно обнаружил некоторые ошибки, нужно менять схему 
экранирования символов. 

1. latex_write:

Всюду (в тексте и внутри ^^ и ""):

Исх. Экранированный
---- --------------
#    \#
$    \$ 
&    \&
_    \_
%    \%
{    \{
}    \}

Только в тексте
\    \textbackslash{}
^    \textasciicircum{}
~    \textasciitilde{}

Только внутри ^^ и ""
\    \\

2. Кроме перечисленного ничего ничего экранировать не нужно.
В частности, сейчас есть ошибка со знаком ' (апостроф), 
и ' и \' в m-k всегда дают \' в LaTeX, а это вовсе не апостроф, 
а ударение. Текстовый символ ' (не ударение) экранировать не нужно.

3. m-k_read: Определиться с экранированием \ внутри ^^ "" в самом m-k.
Пример: ^c:\some\path\^ 

Один из вариантов -- внутри ^ ... ^ экранировать ^ удвоением 
(^ some text^^ more^), а не \^, если не ошибаюсь, так делают в reST.
------- Comment #1 From 2006-05-04 13:20:33 -------
Да, ещё: нужно пока \replace внутри \Sys{} и \Qsys{} запретить, и вообще
ничего там не ставить. Буду ещё над этим думать.
------- Comment #2 From 2006-05-11 12:11:24 -------
Так, примерно понятно. Непонятно только, что такое "пока запретить"? Выдавать
ошибку?
------- Comment #3 From 2006-05-11 12:47:27 -------
(In reply to comment #2)
> Так, примерно понятно. Непонятно только, что такое "пока запретить"? Выдавать
> ошибку?

Вообще я придумал хорошую схему на сейчас: 

^text{replacing}text^ -> \Sys{text}\replace{\Sys{replacing}}\Sys{text}

Вот так всё будет вообще корректно и без потерь разметки. 
Сможешь такое устроить?
------- Comment #4 From 2006-05-13 23:32:10 -------
1. Сделал в alt5. Но: что и как экранировать внутри \Href? Есть ли ещё
какие-нибудь отличные от текста и \Sys контексты экранирования?
2. А нет в m-k одинарного апострофа в качестве символа. Придётся вводить.
Вопрос: как обозначать апостроф, если ' -- это уже ударение?
3. Нет, квотирование должно делаться единственным символом -- \. Так что внутри
просто удваиваешь \, если они встречаются: ^c:\\some\\path^. В результате
других
исправлений это работает.
4. Не работает с \QSys. И хорошо ли ты подумал про \protect? Его тоже вставлять
в начало _каждого_ \Sys?

Кстати, \QSys можно реализовать через \Sys (ALDC их считает однотипными, так
что
ничего не пострадает), вроде: "blah" -> \QSys{\Sys{blah}}", тогда и 
"blah{repl}blah" -> \QSys{\Sys{blah}\replace{\Sys{repl}}\Sys{blah}}. Тогда
требуется переписать latex-стиль. Пока менять не стал.
------- Comment #5 From 2008-04-02 15:06:54 -------
Это, наверное, можно закрыть как FIXED.
------- Comment #6 From 2008-05-25 20:16:16 -------
Работает с оговорками.
------- Comment #7 From 2008-05-25 20:44:47 -------
(In reply to comment #6)
> Работает с оговорками.

Оговорки в студию?
------- Comment #8 From 2008-05-29 00:15:52 -------
(In reply to comment #7)
> (In reply to comment #6)
> > Работает с оговорками.
> 
> Оговорки в студию?

#4