Normalmente se un pacchetto è stato caricato con \usepackage o \RequirePackage, viene impostata una variabile interna con il nome del pacchetto, se il pacchetto viene caricato per la prima volta; se invece si cerca di ricaricare il pacchetto, la variabile esiste e contiene le informazioni relative al pacchetto, per cui il caricamento viene omesso.
memoir genera queste variabili per tutti i pacchetti che emula, per cui quei pacchetti non possono venire caricati dall’utente.
subfig non è né simulato né caricato; come fa subcaption a determinare che non può collaborare in presenza di subfig? Non so rispondere, perché non ho esaminato il codice di subcaption, però è possibile che subcaption, invece di controllare la presenza della famosa variabile interna legata alla caricamento di subfig, variabile che non esiste perché subfig non è né caricato né simulato da memoir, controlli l’esistenza di una particolare macro definita solamente da subfig; è un controllo molto facile da fare; ma è così che si comporta subcaption? Ripeto, non so rispondere, perché non ho esaminato il codice di subcaption.
Vado allora a vedere che cosa fa subcaption:
`
\caption@ifundefined\subfigure{}{%
\PackageError{subcaption}{%
This package can't be used in cooperation\MessageBreak
with the subfigure package}{RTFM}%
\endinput}
`
Allora come si vede all’interno di subcaption.syu, alle prime righe compare quel controllo che verifica se esiste ed è defintia la “control sequence” \subfigure;
siccome la trova definita, subcaption ne deduce che il pacchetto subfigure è già stato caricato, e senza eseguire altri contorlli, termina l’input del file dopo aver dato il messaggio di errore che vedi sopra e che riporto in pulito:
This package can’t be used in cooperation
with the subfigure package
Subito dopo subcaption esegue un altro controllo:
`
\caption@ifundefined\subfloat{}{%
\PackageError{subcaption}{%
This package can't be used in cooperation\MessageBreak
with the subfig package}{RTFM}%
\endinput}
`
e stavolta cita esplicitamente il pacchetto subfig, perché trova che la macro \subfloat è già definita.
Ora fra i pacchetti emulati non compare né subfig, né subfigure, tuttavia memoir permette di definire dei subfloat mediante il comando \newsubfloat e certamente dispone del comando \subcaption; vi dedica tutto il capitolo 10 intitolato Floats and captions; in particolare è interessante il paragrafo 10.9.
Quindi se ti interessa avere sottofigure in un ambiente figure, ognuna con la sua didascalia, e poi una didascalia generale relativa all’insieme delle didascalie, allora non hai bisogno di caricare pacchetti perché la funzionalità che ti serve è già contenuta in memoir.