\chemfig{*6(-(*5(---))-(*6(------))----)}
EDIT: Спасибо всем за предложения, вот что я придумал:
\documentclass{article}
usepackage{chemfig}
\begin{document}
\chemfig{[:30]*6(-([:6,1.0705]*5(-=-))-(*6(------))----)}
\end{document}
Что производит это:
Объяснение:
Структура состоит из двух правильных шестиугольников и трех сторон правильного пятиугольника, причем стороны пятиугольника увеличены в 1,0705 раз, чтобы два конца соответствовали вершинам шестиугольников. Этот подход имеет преимущество в том, что двойная связь рассматривается как часть кольца и изображается как таковая. Коэффициент
увеличения получается путем решения уравнения, которое устанавливает ширину между двумя концами «половины пятиугольника» равной ширине между вершинами шестиугольников:
2 cos(30 градусов) l = l' + 2 sin(18 градусов) l'
где l — длина сторон шестиугольника, а l' — неизвестная длина сторон пятиугольника. Решение для l' при l = 1 дает
(2 cos(30 градусов))/(1 + 2 sin(18 градусов)) = 1,0705
Вращение должно быть рассчитано с помощью некоторых сумм и разностей по углам, участвующим в структуре. Для краткости скажем, что угол в 6 градусов получается из 18 + 18 - 30 градусов.
решение1
Углы различаются в случае колец с пятью и шестью углами. Поэтому углы необходимо указывать вручную. Тригонометрические вычисления с использованием регулярной/симметричной структуры дают углы:
\documentclass{article}
\usepackage{chemfig}
\begin{document}
\pgfmathsetmacro\angleA{-acos((sqrt(3)-1)/2)+30}
\pgfmathsetmacro\angleB{-\angleA + 30}
\chemfig{*6(-(-[::\angleA]-[::\angleB]?)-(*6(-?-----))----)}
\end{document}
Версия с маркированными атомами для расчета:
\chemfig{*6(-A(-[::\angleA]B-[::\angleB]C?)-E(*6(-D?-----))----)}
Расчет:
Длина нашей эры рассчитывается по формулезакон синусатреугольника ADE с углами 120° и дважды по 30°. Длина AE и DE — это длина связи.
F — ортогональная проекция B на линию AD. Тогда есть ортогональный треугольник ABF. Длину AF можно вычислить, вычитая длину связи из AD и разделив результат на два.
Рассчитывается угол FAB (прямоугольный треугольник, см.Определения прямоугольного треугольника) и по сравнению с -30°, направление связи к A. Результат сохраняется в макросе
\angleA
.Второй относительный угол
\angleB
рассчитывается так, чтобы получить абсолютный угол 0°.
Результат:
\angleA: -38.529°
\angleB: 68.529°
Двойной переплет
Он по-прежнему работает с двойной границей внизу:
\pgfmathsetmacro\angleA{-acos((sqrt(3)-1)/2)+30}
\pgfmathsetmacro\angleB{-\angleA + 30}
\chemfig{*6(-(-[::\angleA]=[::\angleB]?)-(*6(-?-----))----)}
решение2
Проблема в том, что команда *<n>(<code>)
предназначена для правильных многоугольников, а 5-членное кольцо, которое вы пытаетесь нарисовать, не может быть правильным (угол вокруг верхнего атома уже зафиксирован и составляет 120 градусов).
Я решил эту проблему методом проб и ошибок, но если мне придет в голову другое, более элегантное решение, я снова его здесь опубликую.
Код
\documentclass{article}
\usepackage{chemfig}
\begin{document}
\chemfig{*6(-(-[::-42]=^[::72,1.11]?)-(*6(-?-----))----)}
\end{document}
Идея:
- Типичный угол для правильного многоугольника составляет 108 градусов. Двигаясь по часовой стрелке из положения 12 часов, углы измененного многоугольника составляют 120, 102, 108, 108, 102. Поскольку у нас уже есть 120 градусов наверху, я распределяю дополнительные -12 градусов с каждой стороны, чтобы получить по 102 градуса с каждой стороны.
- Мне пришлось увеличить длину самой нижней связи из-за странного угла, используя
[::72,1.11]
. - Эти два фактора
?
гарантируют правильность соединения связей и компенсируют любую погрешность длины, возникающую из-за самого нижнего соединения.
РЕДАКТИРОВАТЬ
Альтернативное решение с нижней связью, имеющей ту же длину, что и шестиугольники. Чтобы сохранить форму пятиугольника, геометрия требует, чтобы две боковые связи были удлинены, вот так:
\chemfig{*6(-(-[::-42,1.18]=^[::72]?)-(*6(-?-----))----)}
Лично я считаю, что это выглядит более уродливо.:-p
Исправление
Ну, раскрась меня, удиви. Этоявляетсявозможно иметь пятиугольник с равными сторонами, но неравными внутренними углами, известный какравносторонний пятиугольник. Метод @Heiko однозначно лучше, этот ответ/код дает равносторонний пятиугольник.
решение3
Несмотря на идеальную симметрию с учетом углов, рассчитанных Хайко, мне не очень нравится приземистый пиррол (A), а увеличенные связи, как утверждает Трой, не слишком помогают, поскольку различия в углах внутри пятиугольника все равно видны с первого взгляда.
Моя идея заключается в том, что неправильные шестиугольники могут быть менее заметны, чем симметричный равносторонний, но не правильный пятиугольник, поэтому я попробовал:
(B) немного уменьшаем 5 из 6 углов обоих бензольных колец, поэтому связи, общие с пиррольным кольцом, становятся короче, что немного уменьшает приземистость пятиугольника. Однако это все еще не правильный пятиугольник, поскольку верхний угол далек от 108 градусов. Еще несколько оговорок: (a) Я оставил тригонометрические расчеты экспертам по математике, поэтому симметрия не должна быть идеальной (т. е. углы были определены на глаз). (b) Этот подход позволяет избежать использования *6(...)
и *5(...)
колец, поэтому двойные связи выглядят хуже.
(C) Попытка сделать настоящий правильный пятиугольник, используя только одно *5(...)
и два *6(...)` бензольных кольца, но модифицированных для адаптации к форме пятиугольника, так что они представляют собой неправильные шестиугольники. При некоторых вращениях молекулы мне трудно обнаружить неправильные кольца, но, как показано здесь, отсутствие идеальных вертикальных линий делает это более очевидным.
(D) То же, что и (C), но по-другому (результаты также немного отличаются).
ИМХО, в этом случае нет хорошего решения, вам решать, какой вариант наименее плохой.
\documentclass{article}
\usepackage{chemfig}
\begin{document}
\setatomsep{20pt}\footnotesize
\chemname{\chemfig{*6(?[a]=
(-[::-38.529]=^[::68.529]?[c])
-*6(-?[c]=-=?[b])=?[b]-=?[a])}}{ --- A --- }
\chemname{\chemfig{[:90](?[a]?[c]=^
(-[::-60.5]=_[::-60.5]-[::-60.5]=_[::-60.5]?[a]?[b])-[::60.5]=^[::60.5]-[::60.5]=^[::60.5]?[c](-[::-44.4]=^[::72]?[b]))}}{ --- B --- }
\chemname{\chemfig{*6([::0]?[a]=
*5([::6]-=-?[d,2]-?[c,2]-)
-[,,,,,draw=none]*6([::-0]-[,,,,,draw=none]=[,,,,,draw=none]?[d,2]-=?[b])-[,,,,,draw=none]?[b]?[c,2]-=?[a])}}{--- C --- }
\chemname{\chemfig{*6([::6]=*5(-=--(=^[,.95]?[a]))-*6([::-12]-=-=?[a])=[,,,,,draw=none]-[,,,,,draw=none]?[a]=-)}}{--- D --- }
\chemfig{*6(?[a]=
(-[::-38.529]\chembelow{N}{H}-[::68.529]?[c])
-*6(-?[c]=-=?[b])=?[b]-=?[a])}
\chemfig{[:90](?[a]?[c]=^(-[::-61]=_[::-61]-[::-61]=_[::-61]?[a]?[b])-[::61]=^[::61]-[::61]=^[::61]?[c](-[::-48]\chembelow{N}{H}
-[::74,,1]-[::74]))}
\chemfig{*6([::0]?[a]=
*5([::6]-\chembelow{N}{H}--?[d,2]-?[c,2]-)
-[,,,,,draw=none]*6([::-2]-[,,,,,draw=none]=[,,,,,draw=none]?[d,2]-=?[b])-[,,,,,draw=none]?[b]?[c,2]-=?[a])}
{\chemfig{*6([::6]=*5(-\chembelow{N}{H}---(=^[,.95]?[a]))-*6([::-12]-=-=?[a])=[,,,,,draw=none]-[,,,,,draw=none]?[a]=-)}
\end{document}