Graphviz игнорирует атрибут размера (страница A4)

Рассмотрим следующий минимальный примерный график, который должен уместиться на странице A4

digraph G{
size="8.3,11.7!" ratio=fill;
foo->bar;
}

Компилировать сneato -Tpdf -o min_ex.pdf min_ex.gv Полученный PDF-файл имеет размеры 236 х 115 мм, а не 210 мм х 297 мм.

Graphviz игнорирует этот атрибут как для графиков, которые меньше, чем страница (например, эта), так и для тех, которые должны быть уменьшены, чтобы соответствовать.

Я пробовал любые комбинацииsize а такжеratio атрибуты, я не могу получить график, который будет помещен на страницу A4 с любым из них.

Итак, что я должен указать, что график всегда помещается на страницу А4, независимо от его размера?

Документация:

размер:

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

Если он определен, а чертеж больше заданного размера, чертеж равномерно уменьшается, чтобы он соответствовал заданному размеру.

Если размер заканчивается восклицательным знаком (!), То он принимается за желаемый размер. В этом случае, если оба размера чертежа меньше размера, чертеж масштабируется равномерно до тех пор, пока хотя бы одно измерение не станет равным его размеру в размере.

соотношение

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

Если коэффициент является числовым, он принимается как желаемое соотношение сторон. Затем, если фактическое соотношение сторон меньше требуемого соотношения, высота рисования увеличивается до достижения желаемого соотношения; если фактическое соотношение больше этого желаемого, ширина чертежа увеличивается.

Если ratio = "fill" и установлен атрибут size, позиции узлов масштабируются по отдельности как по x, так и по y, так что окончательный чертеж точно заполняет указанный размер. Если оба значения размера превышают ширину и высоту чертежа, то оба значения координат каждого узла масштабируются соответственно. Однако, если какой-либо размерный размер меньше соответствующего размера на чертеже, один размер масштабируется так, чтобы конечный чертеж имел такое же соотношение сторон, как указано размером. Затем при визуализации макет будет равномерно уменьшен в обоих измерениях, чтобы соответствовать заданному размеру, что также может привести к сокращению узлов и текста. Возможно, это не то, чего хочет пользователь, но это позволяет избежать сложной проблемы, заключающейся в том, как правильно расположить узлы, чтобы уменьшить размер чертежа.

Если соотношение = «сжимать» и атрибут размера установлен, точка пытается сжать исходный макет, чтобы соответствовать данному размеру. Это обеспечивает более плотную упаковку узлов, но снижает баланс и симметрию. Эта функция работает только в точке.

Если соотношение = "развернуть", атрибут размера установлен, а ширина и высота графика меньше значения размера, положения узлов масштабируются равномерно до тех пор, пока хотя бы одно измерение не будет точно соответствовать размеру. Обратите внимание, что это отличается от использования размера в качестве желаемого размера, так как здесь чертеж расширяется до создания краев, и все размеры узлов и текста остаются неизменными.

Если ratio = "auto", атрибут страницы установлен, и график не может быть нарисован на одной странице, тогда размер устанавливается в "идеальное" значение. В частности, размер в данном измерении будет наименьшим целым кратным размеру страницы в этом измерении, который составляет по меньшей мере половину текущего размера. Два измерения затем масштабируются независимо до нового размера. Эта функция работает только в точке.

Ответы на вопрос(1)

Ваш ответ на вопрос