Setup:
$ /usr/bin/which --show-dot a
./a
$ /usr/bin/which --show-tilde a
~/a
If you wanted the . version when run interactively, but the ~ version when redirected, you would could use this as an alias:
/usr/bin/which --show-tilde --tty-only --show-dot
Demo:
# interactive / on a tty
$ /usr/bin/which --show-tilde --tty-only --show-dot a
./a
# not interactive / redirected to a file
$ /usr/bin/which --show-tilde --tty-only --show-dot a > output
$ cat output
~/a
All the options you specify after --tty-only are taken into account only when the output is a tty.