2014 dxdy logo

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

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




 
 Latex bug??? (picture environment)
Сообщение11.11.2016, 16:55 
Вот картинка --- типа единичная (\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 
Аватара пользователя
Подтверждаю баг (воспроизведено в 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 
Мне вообще кажется, что людям стоит подожидаться, пока вымрут те, кто курит, кто не может читать электроннно (без принтера), кто не знает tikz, кто, делая оладьи или шарлотку, гасит соду уксусом. Ну, это типа к депутатам, не к Вам, конечно, Red_Herring.

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

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

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

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

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

 
 
 
 Re: Latex bug??? (picture environment)
Сообщение11.11.2016, 21:08 
Аватара пользователя
Алексей К.
Скорее всего это баг именно в 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 
Red_Herring в сообщении #1168142 писал(а):
Если хотите (подтвердите), я могу сообщить об этом баге,
Хочу.
Хочу воспользоваться Вашей отзывчивостью и не изучать методу bugreport'a в Латехе.
Неважно, исправят или нет: пусть сами посмотрят --- может ли он проявиться вне picture.
Ну и вообще, как можно не поизучать такой замечательный баг? Обычно ведь почти сразу ясно, где лопухнулся, а тут...

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

 
 
 
 Re: Latex bug??? (picture environment)
Сообщение11.11.2016, 22:21 
Аватара пользователя
Ваш баг воспроизводится на форуме. Довольно забавно и на форуме, и "внатуре": на первом рисунке он самый, просто я цвет 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 
Спасибо.

 
 
 [ Сообщений: 7 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group