Bug 9510 - изменить схему экранирования символов (latex)
Summary: изменить схему экранирования символов (latex)
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: ALDConvert (show other bugs)
Version: unstable
Hardware: all Linux
: P2 normal
Assignee: Nobody's working on this, feel free to take it
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-05-04 13:17 MSD by kirill
Modified: 2008-06-13 12:16 MSD (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description kirill 2006-05-04 13:17:41 MSD
Поскольку я поменял технологию обработки 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 kirill 2006-05-04 13:20:33 MSD
Да, ещё: нужно пока \replace внутри \Sys{} и \Qsys{} запретить, и вообще
ничего там не ставить. Буду ещё над этим думать.
Comment 2 Fr. Br. George 2006-05-11 12:11:24 MSD
Так, примерно понятно. Непонятно только, что такое "пока запретить"? Выдавать
ошибку?
Comment 3 kirill 2006-05-11 12:47:27 MSD
(In reply to comment #2)
> Так, примерно понятно. Непонятно только, что такое "пока запретить"? Выдавать
> ошибку?

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

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

Вот так всё будет вообще корректно и без потерь разметки. 
Сможешь такое устроить?
Comment 4 Fr. Br. George 2006-05-13 23:32:10 MSD
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 kirill 2008-04-02 15:06:54 MSD
Это, наверное, можно закрыть как FIXED.
Comment 6 Fr. Br. George 2008-05-25 20:16:16 MSD
Работает с оговорками.
Comment 7 kirill 2008-05-25 20:44:47 MSD
(In reply to comment #6)
> Работает с оговорками.

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

#4