Designing a half band FIR filter with Scilab I'm trying to design a half band interpolation filter using Scilab's eqfir function, which uses Remez's algorithm internally:

hn = eqfir(N, [0 .23; .27 .5], [1 0], [1 1]);


In despite of a symmetry of a transition band around 0.25 it doesn't give me a true halfband response with zeroed odd coefficients. Maybe I should use remezb or remez function directly, but I don't fully understand meaning of their input parameters.

Equivalent MATLAB function confusingly called remez gives perfect result, according to some sources in internet (I can't prove it).
In commerical filter design software, when designing an odd-tap half-band filter your center coefficient (the largest-valued coefficient) will have a value of 0.5. So if one of your filter's coefficient has a value of 0.000002, then that coefficient's value is one part in 250,000 compared to the largest coefficient. That super-small valued coefficient will have a negligible effect on the filter's freq response, so its value can be set to zero. 

In MATLAB, try one of the following:

hn = remez(26, 2*[0 .23 .27 .5], [1 1 0 0], [1 1])
hn = firpm(26, 2*[0 .23 .27 .5], [1 1 0 0], [1 1])


(Notice the '2*' multiplier needed to comply with MATLAB's command syntax!) Examine the coefficients' values and see that none are exactly zero-valued. Now plot your filter's freq response (vertical axis in dB). Next, zero-out all coefficients whose absolute values are less than 0.001 using:

hn = hn.*(abs(hn)>0.001)

and plot the new freq response (in dB). Notice how the two freq responses are essentially identical.