Hi Moisa,
fft is giving you a complex double values . Try taking only absolute values. I tried the following code and getting sinc squared function which is expected for a triangular pulse.
clc
t=-2:.01:2;
subplot(2, 1, 1);
x=tripuls(t,2);
plot(t, x);
title('Triangle');
subplot(2, 1, 2);
Ts = mean(diff(t));                                     % Sampling Interval
Fs = 1/Ts;                                              % Sampling Frequency
Fn = 2*Fs;                                              % Nyuquist Frequency
L = length(x);
ftx = abs(fft(x));                                         % Fourier Transform
ftxs = fftshift(ftx);                                   % Shift To Centre                                 
plot(t, ftxs);
title('TdF Triangle')


