diff --git a/doc/source/conf.py b/doc/source/conf.py
index 1364ff9f6e..9c973ace2c 100755
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
@@ -28,6 +28,7 @@ extensions = [
 openstackdocs_repo_name = 'openstack/openstack-helm'
 openstackdocs_auto_name = False
 openstackdocs_use_storyboard = True
+openstackdocs_pdf_link = True
 
 # autodoc generation is a bit aggressive and a nuisance when doing heavy
 # text edit cycles.
@@ -86,7 +87,7 @@ htmlhelp_basename = '%sdoc' % project
 # [howto/manual]).
 latex_documents = [
     ('index',
-     '%s.tex' % project,
+     'doc-%s.tex' % project,
      '%s Documentation' % project,
      'OpenStack Foundation', 'manual'),
 ]
diff --git a/tox.ini b/tox.ini
index c55e7ffcba..78e34f50e7 100644
--- a/tox.ini
+++ b/tox.ini
@@ -23,6 +23,17 @@ commands =
 allowlist_externals =
   rm
 
+[testenv:pdf-docs]
+envdir = {toxworkdir}/docs
+deps = {[testenv:docs]deps}
+allowlist_externals =
+  make
+  rm
+commands =
+  rm -rf doc/build/pdf
+  sphinx-build -W --keep-going -b latex -j auto doc/source doc/build/pdf
+  make -C doc/build/pdf
+
 [testenv:lint]
 deps =
   yq