With cryptsetup 2.1.0, the LUKS header takes up just under 16MiB, so the partition size must be 16MiB + the size of the data you want to store in it.
sudo dd if=/dev/urandom of=encrypted.luks.img iflag=fullblock bs=1M count=20
sudo -s
chmod go= encrypted.luks.img
cryptsetup --verbose luksFormat encrypted.luks.img cryptsetup --verbose --use-random luksFormat encrypted.luks.img
cryptsetup --verbose luksOpen encrypted.luks.img encrypted
mkfs.ext4 /dev/mapper/encrypted
mkdir /mnt/encrypted
mount -t ext4 -o journal_checksum /dev/mapper/encrypted /mnt/encrypted
chown chuck: /mnt/encrypted
chmod go= /mnt/encrypted
exit
cp /files/to/copy /mnt/encrypted
sudo -s
umount /mnt/encrypted
cryptsetup luksClose encrypted
exit
sudo cryptsetup luksChangeKey encrypted.luks.img