Implementation of halfband pass filter I need to interpolate a complex valued bandlimited periodic function using local interpolation.

I can have the signal sampled at any frequency I want over at equispace intervals.

I am aware that for bandlimited periodic functions the best interpolation method is global interpolation (FFT). 

However, for this project I need to use local interpolation.
I managed to perform the interpolation using Lagrange polynomials of order 10 but I require an oversampling of 2 to achieve the desired results.
My goal is to reduce oversampling to any extend even if I need a longer interpolator.

I recently read as much as I could about FIR filters but somethings are not clear to me.

Since the interpolation factor is of the order of 2, I am planning to use a halfband pass interpolator (many books say this is the best since one gets a cheap interpolator due to the zeros in the impulse response).

My questions are:


How do I design a halfband pass filter? In Matlab there are nice functions in the dsp package that allow directly to construct such filters, unfortunately I have to do this implementation in C. I searched and I found that the remez() function from Octave to compute the coefficients is available in C and is the one I am planning to use.
Designing a low pass filter with the Parks-Mclellan algorithm is it by default a halfband pass filter (provided I set up correctly the frequency bands) or do I have to enforce the time domain constraints? 
Regarding the linear phase of the FIR filter, what I understand is that my signal will be shifted by some samples, how do I compensate to remove the shifting? What comes to my mind is to apply the corresponding shifting on the opposite direction, is this necessary?
If you could provide an working example of an interpolation of a periodic function (e.g. sum of sines) using a FIR I would be very grateful.
The impulse response and frequency response of a length N zero-phase FIR lowpass filter can be designed using the Remez exchange algorithm. 

N = 11; % filter length - must be odd 

b = [0 0.1 0.2 0.5]*2; % band edges

M = [1 1 0 0 ]; % desired band values

h = remez(N-1,b,M); % Remez multiple exchange design

The impulse response h is returned in linear-phase form, so it must be left-shifted (N-1)/2 = 5 samples to make it zero-phase. 
Answer taken from https://www.researchgate.net/post/How_can_I_design_a_null_phase_FIR_filter.

I implemented this solution some time ago and still works very well in my code.