Как подчеркнуть заголовки раздела в ЛАТЕКСЕ?

Существует только два случая, когда круг пересекается с прямоугольником:

  • Или центр круга находится в прямоугольнике, или
  • , Один из краев прямоугольника имеет точку в кругу.

Примечание, что это не требует, чтобы прямоугольник был параллелен оси.

Some different ways a circle and rectangle may intersect

(Один способ видеть это: если ни один из краев не имеет точку в кругу (если все края полностью "вне" круга), то единственный способ, которым круг может все еще пересечь полигон, состоит в том, если это находится полностью в полигоне.)

С тем пониманием, что-то как следующее будет работать, где круг имеет центр P и радиус R, и прямоугольник имеет вершины A, B, C, D в том порядке (не полный код):

def intersect(Circle(P, R), Rectangle(A, B, C, D)):
    S = Circle(P, R)
    return (pointInRectangle(P, Rectangle(A, B, C, D)) or
            intersectCircle(S, (A, B)) or
            intersectCircle(S, (B, C)) or
            intersectCircle(S, (C, D)) or
            intersectCircle(S, (D, A)))

, Если Вы пишете какую-либо геометрию, у Вас, вероятно, уже есть вышеупомянутые функции в Вашей библиотеке. Иначе, pointInRectangle() может быть реализован несколькими способами; любой генерал точка в полигоне методы будут работать, но для прямоугольника можно просто проверить, работает ли это:

0 ≤ AP·AB ≤ AB·AB and 0 ≤ AP·AD ≤ AD·AD

И intersectCircle() легко реализовать также: один путь состоял бы в том, чтобы проверить, достаточно ли нога перпендикуляра от [1 110] до строки близка и между конечными точками, и проверьте конечные точки иначе.

прохладная вещь состоит в том, что тот же работы идеи не только для прямоугольников, но и для пересечения круга с любым простой полигон — не должен даже быть выпуклым!

10
задан PeeHaa 12 January 2014 в 03:32
поделиться

3 ответа

Это можно сделать с помощью команды \ sectionrule в пакете sectsty .

7
ответ дан 3 December 2019 в 15:52
поделиться

Вы можете взглянуть на команду LaTeX \ rule :

\rule[raise-height]{width}{thickness}

Однако это встроенная (горизонтальная) команда, поэтому вам придется использовать некоторые хитрости чтобы получить его в правильном положении и размере ( \ noindent и \ textwidth должны немного помочь)

В противном случае вы можете использовать следующий простой TeX

\smallskip
\hrule height 2pt
\smallskip

Он не не вписывается в синтаксис LaTeX, но работает как шарм и гарантированно охватывает всю ширину текста.

4
ответ дан 3 December 2019 в 15:52
поделиться

Переписывание вашей команды таким образом должно помочь :

\newcommand{\tmpsection}[1]{}
\let\tmpsection=\section
\renewcommand{\section}[1]{\tmpsection{\underline{#1}}}

Результатом будет

\section { \underline {#1} }

, который, в свою очередь, создаст подчеркнутые заголовки разделов:)

7
ответ дан 3 December 2019 в 15:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: