From what I understood from the documentation I think it can both be done: with OptionsPattern[] and Options[f2]={default}, or without explicitly setting up Options by putting in the OptionsPattern directly the defaults for the function: OptionsPattern[{default}]... I don't know if it's a "normal" alternative, I think it works both ways! But thank you very much for the answer Daniel, I will do more tests!
With Options + empty OptionsPattern[]:
f2[a_, OptionsPattern[]] :=
Module[{esca, num, tik,
pattern = <|"pat1" -> {0, 1, 1, 1, 1}, "pat2" -> {0, 2, 2, 2, 2},
"pat3" -> {0, 3, 3, 3, 3}|>}, num = pattern@a;
Options[f2] = {"option1" -> "ini2", "option2" -> 2,
"option3" -> 10};
esca = Flatten@
Map[Map[(OptionValue["option1"] /. {"ini1" -> -10, "ini2" -> -5,
"ini3" -> 0, "ini4" -> 5}) + # &,
Accumulate@num] + # &, {0, 10, 20}[[;;
OptionValue["option2"]]]]; tik = esca + OptionValue["option3"]]
Without Options + full OptionsPattern:
f2[a_, OptionsPattern[{"option1" -> "ini2", "option2" -> 2,
"option3" -> 10}]] :=
Module[{esca, num, tik,
pattern = <|"pat1" -> {0, 1, 1, 1, 1}, "pat2" -> {0, 2, 2, 2, 2},
"pat3" -> {0, 3, 3, 3, 3}|>}, num = pattern@a;
esca = Flatten@
Map[Map[(OptionValue["option1"] /. {"ini1" -> -10, "ini2" -> -5,
"ini3" -> 0, "ini4" -> 5}) + # &,
Accumulate@num] + # &, {0, 10, 20}[[;;
OptionValue["option2"]]]]; tik = esca + OptionValue["option3"]]
Thanks.