The reason this doesn’t produce equally wide axes, is that the left protrusions of axis 1 become part of the first column gap, and this is added to the width of the left-column axes because they span across that gap. One way you can get around that is to pretend that axis 1 doesn’t have protrusions on the left, by using alignmode = Mixed(left = Makie.Protrusion(0)). This will work without problem in your specific layout, because there isn’t anything to the left of axis 1 which could collide.
ns = [1,2,3,4,5,6]
nams = ["a","b","c","d","e"]
titles = nams
j = 1
f = Figure(resolution=(794, 1123))
axes = [Axis(f[1,2:3]),
Axis(f[2, 1:2]),
Axis(f[2,3:4]),
Axis(f[3, 1:2]),
Axis(f[3,3:4])]
axes[1].alignmode = Mixed(left = Makie.Protrusion(0))
Label(f[end+1, :], text = L"\mathrm{Error}")
Label(f[2:end-1, 0], text = L"$n$",
rotation = pi/2)
for nam in nams
axe = axes[j]
if j == 1
axe.xlabel=L"\mathrm{Error}"
axe.ylabel=L"$n$"
end
if j ∈ [3,5]
axe.yticklabelsvisible = false
axe.yticksvisible = false
end
axe.title = titles[j]
axe.yticks = ((1:6), string.(ns))
axe.limits = ([-5,5],[0,6])
j +=1
end
f
