2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Latex bug??? (picture environment)
Сообщение11.11.2016, 16:55 


29/09/06
4552
Вот картинка --- типа единичная (\unitlength х \unitlength) сетка и на ней ступенчатые функции; жирные линии идут по сетке:

\setlength{\unitlength}{2mm}
\begin{picture}(32,7)%(1,1)
\linethickness{0.8pt}
\put(-1,0){\vector(1,0){32}}
\put(0,-1){\vector(0,1){8}}
\linethickness{0.1pt}
\multiput(1,0)(1,0){29}{\line(0,1){6}}
\multiput(0,1)(0,1){6}{\line(1,0){29}}
\put(30,1){{$s$}}
\put(-1,6){$\!\!k$}
\linethickness{1.2pt}
%\color{red}
\put(1,0){\line(0,1){1}}
\put(1,1){\line(1,0){2}}
\put(3,1){\line(0,1){1}}
\put(3,2){\line(1,0){1}}
\put(4,2){\line(0,1){1}}
\put(4,3){\line(0,1){1}}
\put(4,4){\line(1,0){2}}
\put(6,4){\line(0,1){2}}
\put(6,6){\line(1,0){1}}
%
\put(8,0){\line(0,1){1}}
\put(8,1){\line(1,0){1}}
\put(9,1){\line(0,1){1}}
\put(9,2){\line(1,0){1}}
\put(10,2){\line(0,1){1}}
\put(10,3){\line(1,0){1}}
\put(11,3){\line(0,1){1}}
\put(11,4){\line(1,0){1}}
\put(12,4){\line(0,1){1}}
\put(12,5){\line(1,0){1}}
\put(13,5){\line(0,1){1}}
\put(13,6){\line(1,0){1}}
%
\put(15,0){\line(0,1){1}}
\put(15,1){\line(1,0){1}}
\put(16,1){\line(0,1){3}}
\put(16,4){\line(1,0){3}}
\put(19,4){\line(0,1){1}}
\put(19,5){\line(1,0){1}}
\put(20,5){\line(0,1){1}}
\put(20,6){\line(1,0){1}}
%
\put(22,0){\line(0,1){1}}
\put(22,1){\line(1,0){5}}
\put(27,1){\line(0,1){5}}
\put(27,6){\line(1,0){1}}
\end{picture}

код: [ скачать ] [ спрятать ]
Используется синтаксис LaTeX
\setlength{\unitlength}{2mm}
\begin{picture}(32,7)%(1,1)
\linethickness{0.8pt}
\put(-1,0){\vector(1,0){32}}
\put(0,-1){\vector(0,1){8}}
\linethickness{0.1pt}
\multiput(1,0)(1,0){29}{\line(0,1){6}}
\multiput(0,1)(0,1){6}{\line(1,0){29}}
\put(30,1){{$s$}}
\put(-1,6){$\!\!k$}
\linethickness{1.2pt}
\put(1,0){\line(0,1){1}}
\put(1,1){\line(1,0){2}}
\put(3,1){\line(0,1){1}}
\put(3,2){\line(1,0){1}}
\put(4,2){\line(0,1){1}}
\put(4,3){\line(0,1){1}}
\put(4,4){\line(1,0){2}}
\put(6,4){\line(0,1){2}}
\put(6,6){\line(1,0){1}}
%
\put(8,0){\line(0,1){1}}
\put(8,1){\line(1,0){1}}
\put(9,1){\line(0,1){1}}
\put(9,2){\line(1,0){1}}
\put(10,2){\line(0,1){1}}
\put(10,3){\line(1,0){1}}
\put(11,3){\line(0,1){1}}
\put(11,4){\line(1,0){1}}
\put(12,4){\line(0,1){1}}
\put(12,5){\line(1,0){1}}
\put(13,5){\line(0,1){1}}
\put(13,6){\line(1,0){1}}
%
\put(15,0){\line(0,1){1}}
\put(15,1){\line(1,0){1}}
\put(16,1){\line(0,1){3}}
\put(16,4){\line(1,0){3}}
\put(19,4){\line(0,1){1}}
\put(19,5){\line(1,0){1}}
\put(20,5){\line(0,1){1}}
\put(20,6){\line(1,0){1}}
%
\put(22,0){\line(0,1){1}}
\put(22,1){\line(1,0){5}}
\put(27,1){\line(0,1){5}}
\put(27,6){\line(1,0){1}}
\end{picture}

Делаю их цветными (и только) --- и они смещаются: вертикальные линии уже не на сетке:

\setlength{\unitlength}{2mm}
\begin{picture}(32,7)%(1,1)
\linethickness{0.8pt}
\put(-1,0){\vector(1,0){32}}
\put(0,-1){\vector(0,1){8}}
\linethickness{0.1pt}
\multiput(1,0)(1,0){29}{\line(0,1){6}}
\multiput(0,1)(0,1){6}{\line(1,0){29}}
\put(30,1){{$s$}}
\put(-1,6){$\!\!k$}
\linethickness{1.2pt}
\color{red}
\put(1,0){\line(0,1){1}}
\put(1,1){\line(1,0){2}}
\put(3,1){\line(0,1){1}}
\put(3,2){\line(1,0){1}}
\put(4,2){\line(0,1){1}}
\put(4,3){\line(0,1){1}}
\put(4,4){\line(1,0){2}}
\put(6,4){\line(0,1){2}}
\put(6,6){\line(1,0){1}}
%
\put(8,0){\line(0,1){1}}
\put(8,1){\line(1,0){1}}
\put(9,1){\line(0,1){1}}
\put(9,2){\line(1,0){1}}
\put(10,2){\line(0,1){1}}
\put(10,3){\line(1,0){1}}
\put(11,3){\line(0,1){1}}
\put(11,4){\line(1,0){1}}
\put(12,4){\line(0,1){1}}
\put(12,5){\line(1,0){1}}
\put(13,5){\line(0,1){1}}
\put(13,6){\line(1,0){1}}
%
\put(15,0){\line(0,1){1}}
\put(15,1){\line(1,0){1}}
\put(16,1){\line(0,1){3}}
\put(16,4){\line(1,0){3}}
\put(19,4){\line(0,1){1}}
\put(19,5){\line(1,0){1}}
\put(20,5){\line(0,1){1}}
\put(20,6){\line(1,0){1}}
%
\put(22,0){\line(0,1){1}}
\put(22,1){\line(1,0){5}}
\put(27,1){\line(0,1){5}}
\put(27,6){\line(1,0){1}}
\end{picture}

Оставляю цвет, но делаю их нежирными --- и они снова на сетке:

\setlength{\unitlength}{2mm}
\begin{picture}(32,7)%(1,1)
\linethickness{0.8pt}
\put(-1,0){\vector(1,0){32}}
\put(0,-1){\vector(0,1){8}}
\linethickness{0.1pt}
\multiput(1,0)(1,0){29}{\line(0,1){6}}
\multiput(0,1)(0,1){6}{\line(1,0){29}}
\put(30,1){{$s$}}
\put(-1,6){$\!\!k$}
%\linethickness{.2pt}
\color{red}
\put(1,0){\line(0,1){1}}
\put(1,1){\line(1,0){2}}
\put(3,1){\line(0,1){1}}
\put(3,2){\line(1,0){1}}
\put(4,2){\line(0,1){1}}
\put(4,3){\line(0,1){1}}
\put(4,4){\line(1,0){2}}
\put(6,4){\line(0,1){2}}
\put(6,6){\line(1,0){1}}
%
\put(8,0){\line(0,1){1}}
\put(8,1){\line(1,0){1}}
\put(9,1){\line(0,1){1}}
\put(9,2){\line(1,0){1}}
\put(10,2){\line(0,1){1}}
\put(10,3){\line(1,0){1}}
\put(11,3){\line(0,1){1}}
\put(11,4){\line(1,0){1}}
\put(12,4){\line(0,1){1}}
\put(12,5){\line(1,0){1}}
\put(13,5){\line(0,1){1}}
\put(13,6){\line(1,0){1}}
%
\put(15,0){\line(0,1){1}}
\put(15,1){\line(1,0){1}}
\put(16,1){\line(0,1){3}}
\put(16,4){\line(1,0){3}}
\put(19,4){\line(0,1){1}}
\put(19,5){\line(1,0){1}}
\put(20,5){\line(0,1){1}}
\put(20,6){\line(1,0){1}}
%
\put(22,0){\line(0,1){1}}
\put(22,1){\line(1,0){5}}
\put(27,1){\line(0,1){5}}
\put(27,6){\line(1,0){1}}
\end{picture}

Это как?
// Ответы типа "Я тоже в растерянности..." тоже принимаются.

 Профиль  
                  
 
 Re: Latex bug??? (picture environment)
Сообщение11.11.2016, 17:16 
Заслуженный участник
Аватара пользователя


31/01/14
11305
Hogtown
Подтверждаю баг (воспроизведено в TeXLIve 2016)

Но,  picture в latex сейчас используют исключительно динозавры, есть гораздо лучшие рисовалки. Например, в tikz  это гораздо быстрее (форумный tikz багги, и некоторые вещи работают не как надо)

\begin{tikzpicture}[scale=.4]
\draw (0,0) grid (32.,6);
\draw[ultra thick,->] (-1,0)--(33,0) node[above] {$s$};
\draw[ultra thick,->] (0,-1)--(0,7) node[left] {$k$};
\draw[red,ultra thick] (1,0)--(1,1)--(3,1)--(3,2)--(4,2)--(4,4)--(6,4)--(6,6)--(7,6);

\end{tikzpicture}

 Профиль  
                  
 
 Да, я динозавр.
Сообщение11.11.2016, 20:43 


29/09/06
4552
Мне вообще кажется, что людям стоит подожидаться, пока вымрут те, кто курит, кто не может читать электроннно (без принтера), кто не знает tikz, кто, делая оладьи или шарлотку, гасит соду уксусом. Ну, это типа к депутатам, не к Вам, конечно, Red_Herring.

Если я займусь изучением этих штук, то я точно не найду условий жордановости плоской кривой. Т.е. я и так их вряд ли найду, но...

Какбы почему-то хочется умереть динозавром.

Баг как-то обойду, но баг в Латехе для меня стал как бы событием. За много много лет пользования оным.
Merci.

-- 11 ноя 2016, 21:51:58 --

Ну и баг, конечно, интересный... Поди так учуди в программе...

 Профиль  
                  
 
 Re: Latex bug??? (picture environment)
Сообщение11.11.2016, 21:08 
Заслуженный участник
Аватара пользователя


31/01/14
11305
Hogtown
Алексей К.
Скорее всего это баг именно в LaTeX, поскольку я проверил, он проявляется, если загружать любой из пакетов color, xcolor, tikz (tikz тоже определяет цвета). Но оригинальный LaTeX про цвета ничего не знал, и потому этот баг не обнаружился, а потом не обнаружился потому, что никто уже это не использовал.

Но я баги в различных пакетах (в том числе в известных) встречал и докладывал. Я сообщил об этом баге в texhax листе (его все девелоперы посещают), но будут ли его фиксировать, не уверен. Подобно тому, как никто не фиксирует баги в старых ОС, хотя есть компютеры, которые лишь их и поддерживают.

Вам минимальный пример,
Используется синтаксис LaTeX
\documentclass[12pt]{article}
\usepackage{color}
\begin{document}
\setlength{\unitlength}{10mm}
\begin{picture}(1,1)
\linethickness{1.2pt}
\put(1,0){\line(0,1){1}}
\linethickness{1.2pt}
 \color{red}
\put(1,0){\line(0,1){1}}
\end{picture}\end{document}


Должен сказать, что хотя пакет pgf/tikz гигантский, и manual 1100+ страниц, но на самом начальном уровне его осваивают люди очень быстро, Вам хватит и 1 часа (за глаза), зато потом Вы его быстро наверстаете.

 Профиль  
                  
 
 Re: Latex bug??? (picture environment)
Сообщение11.11.2016, 21:35 


29/09/06
4552
Red_Herring в сообщении #1168142 писал(а):
Если хотите (подтвердите), я могу сообщить об этом баге,
Хочу.
Хочу воспользоваться Вашей отзывчивостью и не изучать методу bugreport'a в Латехе.
Неважно, исправят или нет: пусть сами посмотрят --- может ли он проявиться вне picture.
Ну и вообще, как можно не поизучать такой замечательный баг? Обычно ведь почти сразу ясно, где лопухнулся, а тут...

Red_Herring в сообщении #1168142 писал(а):
Вам хватит и 1 часа (за глаза), зато потом Вы его быстро наверстаете.
Ну, я, наверное, малость того... повыпендривался... попридуривался... ведь освоил же я несколько новомодных штучек. Вот, мобилкой, да, уже пользуюсь.

 Профиль  
                  
 
 Re: Latex bug??? (picture environment)
Сообщение11.11.2016, 22:21 
Заслуженный участник
Аватара пользователя


31/01/14
11305
Hogtown
Ваш баг воспроизводится на форуме. Довольно забавно и на форуме, и "внатуре": на первом рисунке он самый, просто я цвет black сменил нa blue \setlength{\unitlength}{10mm}
\begin{picture}(1,1)
\linethickness{1.2pt}
\color{blue}
\put(1,0){\line(0,1){1}}
\linethickness{1.2pt}
\color{red}
\put(1,0){\line(0,1){1}}
\end{picture} На втором я поменял местами \linethickness{***} и \color{***} и баг ушел \setlength{\unitlength}{10mm}
\begin{picture}(1,1)
\color{blue}\linethickness{1.2pt}
\put(1,0){\line(0,1){1}}
\color{red}\linethickness{1.2pt}
\put(1,0){\line(0,1){1}}
\end{picture}

-- 11.11.2016, 14:31 --

Я получил ответ на texhax:

Цитата:
\linethickness{1.2pt} is contributing an unwanted space (as are many of the other lines ending in "}"; if all such line-endings are escaped with "%", the line spacing is invariant with or without the \color{red}.


Ларчик открывался просто: в picture пробелы не "аннигилируются" и конец строки идет за пробел; а вот в tikz такой головной боли нет!

 Профиль  
                  
 
 Re: Latex bug??? (picture environment)
Сообщение12.11.2016, 11:44 


29/09/06
4552
Спасибо.

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

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



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

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


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

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