To solve this optimization problem, we need to minimize the total cost of supplements A and B while ensuring that the man gets at least 12 units of keratin and 20 units of calcium. Let's denote the number of servings of supplement A as x and the number of servings of supplement B as y.

The objective function is to minimize the total cost, which can be represented as: 
2x + 4y

We have two constraints based on the requirements:
1. Keratin constraint: x + 4y >= 12 (since each serving of A contains 1 unit of keratin and each serving of B contains 4 units)
2. Calcium constraint: 5x + y >= 20 (since each serving of A contains 5 units of calcium and each serving of B contains 1 unit)

We also need to ensure that x and y are non-negative since the man cannot take a negative number of servings.

Here is the Gurobi code in Python:

```python
from gurobipy import *

# Create a new model
m = Model("Supplement_Optimization")

# Define variables
x = m.addVar(vtype=GRB.CONTINUOUS, name="supplement_A", lb=0)
y = m.addVar(vtype=GRB.CONTINUOUS, name="supplement_B", lb=0)

# Set the objective function
m.setObjective(2*x + 4*y, GRB.MINIMIZE)

# Add constraints
m.addConstr(x + 4*y >= 12, "keratin_constraint")
m.addConstr(5*x + y >= 20, "calcium_constraint")

# Optimize model
m.optimize()

# Print results
if m.status == GRB.OPTIMAL:
    print("Optimal solution found.")
    print(f"Supplement A servings: {x.x}")
    print(f"Supplement B servings: {y.x}")
    print(f"Total cost: ${2*x.x + 4*y.x:.2f}")
else:
    print("No optimal solution found.")

```
```python
from gurobipy import *

# Create a new model
m = Model("Supplement_Optimization")

# Define variables
x = m.addVar(vtype=GRB.CONTINUOUS, name="supplement_A", lb=0)
y = m.addVar(vtype=GRB.CONTINUOUS, name="supplement_B", lb=0)

# Set the objective function
m.setObjective(2*x + 4*y, GRB.MINIMIZE)

# Add constraints
m.addConstr(x + 4*y >= 12, "keratin_constraint")
m.addConstr(5*x + y >= 20, "calcium_constraint")

# Optimize model
m.optimize()

# Print results
if m.status == GRB.OPTIMAL:
    print("Optimal solution found.")
    print(f"Supplement A servings: {x.x}")
    print(f"Supplement B servings: {y.x}")
    print(f"Total cost: ${2*x.x + 4*y.x:.2f}")
else:
    print("No optimal solution found.")

```