Сохранение пропорций участка с указанием ширины и высоты

Сохранение пропорций участка с указанием ширины и высоты

Итак, после прочтениякак установить соотношение сторон области графикаЯ могу задать соотношение сторон моих графиков с помощью ключа, а именно aspect ratioтаким образом, что при задании widthили heightон будет масштабироваться до этого значения, а также сохранять предопределенное соотношение сторон.

\pgfplotsset{aspect ratio/.code args={#1:#2}{%
  \def\axisdefaultwidth{#1 cm}%
  \def\axisdefaultheight{#2 cm}%
}

Теперь мне стало интересно, возможно ли иметь ключ, такой как keepaspectratioиз graphicxпакета, который даже если его датьheight и widthполученный график автоматически проигнорирует одно из измерений, чтобы сохранить ранее определенное соотношение сторон. Что-то вроде:

\pgfplotsset{keep aspect ratio/.code={%
  \pgfmathsetmacro{\currentratio}{\currentwidth/\currentheight}%
  \ifnum\currentratio<\predefinedratio%
     ignore height%
  \else%
     ignore width%
  \fi%
}

Вот фиктивный MWE для тестирования:

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{aspect ratio/.code args={#1:#2}{%
  \def\axisdefaultwidth{#1 cm}%
  \def\axisdefaultheight{#2 cm}},
  compat=newest
}
\begin{document}
  \begin{tikzpicture}
    \begin{axis}[aspect ratio=16:9, width=.8\textwidth]
        \addplot[domain=0:10] {0.5*x+6};
    \end{axis}
  \end{tikzpicture}

  \begin{tikzpicture}
    \begin{axis}[aspect ratio=4:3, width=.8\textwidth]
        \addplot[domain=0:10] {0.5*x+6};
    \end{axis}
  \end{tikzpicture}

  \begin{tikzpicture}
    \begin{axis}[aspect ratio=4:3,
                 width=.8\textwidth,
                 height=.8\textheight,
                 %keep aspect ratio
                 ]
        \addplot[domain=0:10] {0.5*x+6};
    \end{axis}
  \end{tikzpicture}
\end{document}

Само собой разумеется, что третий участок после раскомментирования keep aspect ratioдолжен быть таким же, как и второй участок.

Связанный контент