Helloo everyone,
I've been working with this community for quite a while now. Thanks for that! But now I seem to have run into a problem mentioned nowhere else. To be more precise, none of the solutions worked for my case.
What I want to do is automatically centering the content of the subfigure environment from the subcaption package in the entire document. I've seen the answers from egreg and Mico, and this works just fine for a normal figure environment. However, I want to include figures with less than width=1\linewidth, causing the included figures within the subfigure to be left-aligned. If I use the \centering command manually, everything works fine.
I think the problem is that patching the subfigure somehow fails, as can be seen form my auxiliary variable/commands \figureOK and \subfigureOK. But that's where I'm stuck.
Following Mico's approach for the figure (or rather all floats), I also tried to use \@subfloatboxreset suggested by Axel Sommerfeldt (in the comments) and provided by subcaption. But this seems to have no effect at all.
I hope my problem becomes clear. Here is a (hopefully) minimal working example.
\documentclass{scrartcl}
\RequirePackage[utf8]{inputenc}
\setlength{\parindent}{0mm}
\usepackage{graphicx}
\usepackage{subcaption}
\providecommand{\figureOK}{\relax}
\providecommand{\subfigureOK}{\relax}
%%%------------------------------------------------------ Anwser from egreg
% https://tex.stackexchange.com/a/144857
\usepackage{etoolbox}
\makeatletter
% Try to patch floats to use \centering
\apptocmd\@floatboxreset{\centering} % Try Patch
{\renewcommand{\figureOK}{Yes}} % Execute on success
{\renewcommand{\figureOK}{No}} % Execute on failure
% Try to patch subfigure to use \centering
\apptocmd\subcaption@minipage{\centering}
{\renewcommand{\subfigureOK}{Yes}}
{\renewcommand{\subfigureOK}{No}}
\makeatother
%%%------------------------------------------------------
%%%------------------------------------------------------ Answer from Mico
% https://tex.stackexchange.com/a/134889
%\usepackage{etoolbox}
%\makeatletter
% % Try to patch floats to use \centering
% \patchcmd{\@xfloat}%
% {\@floatboxreset}% % Replace this % Also tried this with \@subfloatboxreset
% {\@floatboxreset\centering} % With this
% {\renewcommand{\figureOK}{Yes}} % On success
% {\renewcommand{\figureOK}{No}} % On failure
%
% % Try to patch subfigure to use \centering
% \patchcmd{\subcaption@minipage}%
% {\setcaptionsubtype}%
% {\centering\setcaptionsubtype}
% {\renewcommand{\subfigureOK}{Yes}}
% {\renewcommand{\subfigureOK}{No}}
%\makeatother
%%%------------------------------------------------------
%%%------------------------------------------------------ For Test only
\usepackage{showframe}
\renewcommand*\ShowFrameColor{\color{red}}
\renewcommand*\ShowFrameLinethickness{0.4pt}
%%%------------------------------------------------------
\begin{document}
\section{Debug}
Figures automatically centered? \figureOK
Subfigures automatically centered? \subfigureOK
\section{Tests}
\begin{figure}[htbp]
\includegraphics[width=0.25\linewidth]{example-image-A}
\caption{Patching figures works well}
\end{figure}
\vfill
\begin{figure}[htbp]
\begin{subfigure}[b]{.5\linewidth}
\centering % <-- This is what I want to get rid of
\includegraphics[width=0.5\linewidth]{example-image-B}
\subcaption{A subfigure}
\end{subfigure}%
\begin{subfigure}[b]{.5\linewidth}
\centering % <-- This is what I want to get rid of
\includegraphics[width=0.5\linewidth]{example-image-C}
\subcaption{Another subfigure}
\end{subfigure}
\caption{A figure where subfigures are manually centered $\rightarrow$ works just fine}
\end{figure}
\vfill
\begin{figure}[htbp]
\begin{subfigure}[b]{.5\linewidth}
\includegraphics[width=0.5\linewidth]{example-image-B}
\subcaption{A subfigure}
\end{subfigure}%
\begin{subfigure}[b]{.5\linewidth}
\includegraphics[width=0.5\linewidth]{example-image-C}
\subcaption{Another subfigure}
\end{subfigure}
\caption{A figure where subfigures should be centered automatically $\rightarrow$ doesn't work}
\end{figure}
\end{document}
Update: log files are here on OneDrive.

\centeringcommand remain left-aligned. – Axel Feb 28 '20 at 11:18