Ticks and axis labels font

Hello everyone, I some details with my map design in PyGMT. I would like to draw the ticks into the frame (default is outside the frame) , change the label font (x-axis and y-axis) because the default font is so big, and increase the offset between the grade labels (frame), for example , I have this in my maps: 17 N 18N 19 N; but I would like to get: 17 N 19N 21 N. Anyone could help? Thanks

I share a map as I would like to get in PyGMTScreenshot at 2022-05-11 22-57-17

this does not seem to be supported, at least not directly: ticks inside the frame while tick labels outside
see gmt.conf — GMT 6.3.0 documentation
UPD In command-line GMT it is possible to draw two frames with identical size and tick spacing: frame one with ticks inside but no tick labels and frame two with ticks outside, tick length set to 0 and tick labels enabled. I don’t know if such trick is possible in pyGMT.

see gmt.conf — GMT 6.3.0 documentation

fig.basemap(frame=["WSne", "x2+lLatitude(°)", "y2+lLongutide(°)"])
x2 sets x tics every 2 degrees, y2 sets y ticks the same way.
modified from Frames, ticks, titles, and labels — PyGMT