diff --git a/tests/visual_tests/landscape_table.Rmd b/tests/visual_tests/landscape_table.Rmd
new file mode 100644
index 0000000..0b0fa2e
--- /dev/null
+++ b/tests/visual_tests/landscape_table.Rmd
@@ -0,0 +1,80 @@
+---
+title: "landscape_table"
+output: 
+    pdf_document:
+      keep_tex: true
+---
+
+# Introduction
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas nec elit sed felis luctus faucibus. Praesent elementum sapien neque, sit amet laoreet mi ullamcorper et. Cras commodo, odio ac aliquam scelerisque, nunc tortor pulvinar nulla, id laoreet arcu nisl quis tellus. Morbi tempor, dui in posuere imperdiet, massa nunc fermentum ligula, ut luctus nunc nulla sed est. Curabitur blandit tellus eu porttitor mollis. Nulla mattis, mi et elementum vestibulum, mi turpis euismod nisi, non porttitor diam sem sit amet ex. Aenean dictum, dolor vitae placerat dapibus, magna urna malesuada lorem, et facilisis urna augue ut arcu. Duis erat massa, malesuada ut tempor ac, rutrum vel justo. Mauris sit amet efficitur risus. Donec at vehicula sem. Mauris sed facilisis neque. Vestibulum suscipit aliquam purus. Mauris quis quam faucibus, tincidunt turpis eu, fringilla est.
+
+Etiam tempor, libero non efficitur tincidunt, dolor enim pretium mi, vitae scelerisque risus neque non felis. Vivamus blandit neque tellus, nec viverra leo suscipit vitae. Morbi vel sem vitae lacus pharetra vulputate. Phasellus a facilisis eros. Praesent nec semper eros. Phasellus porta ornare lectus eget viverra. Nam egestas, justo sit amet maximus rutrum, magna est aliquam mi, id consequat tellus arcu vitae neque. Nunc cursus varius est id rhoncus.
+
+Fusce sem libero, ultricies sed tristique in, auctor vitae justo. Aliquam et enim nisi. Nunc posuere gravida quam eget fringilla. Nullam mattis mi eget augue laoreet facilisis. Pellentesque mattis bibendum sodales. Pellentesque elementum eu massa nec suscipit. Etiam congue condimentum metus ut consectetur. Vestibulum pellentesque maximus odio, in facilisis lectus luctus at. In finibus augue nec lacus efficitur luctus.
+
+Aliquam quis consectetur urna, sit amet posuere tellus. Pellentesque molestie at dui feugiat semper. Phasellus interdum dignissim metus vel feugiat. Quisque sit amet leo aliquet, sodales eros nec, sollicitudin enim. Nullam facilisis dapibus ligula at hendrerit. Proin ultricies non massa sed ultrices. Ut tempus magna in fermentum pretium. Integer rhoncus interdum vestibulum. Nam a mi sed orci condimentum ornare at non elit. Sed vel ornare magna. Vestibulum semper quis leo ut consequat. Aenean eu odio mollis, dictum quam eu, faucibus quam. Sed nisl mauris, ornare non pharetra vitae, tincidunt sed quam. Pellentesque ullamcorper nunc sapien, nec convallis magna tincidunt vel. Praesent diam ipsum, rhoncus id euismod eget, tempor id elit.
+
+Quisque varius arcu feugiat turpis imperdiet, ac aliquam nulla interdum. Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque lacus augue, laoreet eget lorem a, molestie facilisis orci. Etiam eu finibus libero. Curabitur commodo, neque eget sagittis pharetra, orci turpis pellentesque leo, a blandit odio quam sit amet lorem. Donec ac odio enim. Mauris eget fermentum nisi, ac sagittis ipsum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
+
+Vestibulum semper, mi ut dictum pretium, lectus eros commodo ante, vitae finibus nulla justo ac purus. Nam tempus, est vitae posuere rutrum, nunc enim sagittis nibh, quis cursus nisl ante ac nisl. Praesent id elit posuere, egestas ligula vitae, feugiat eros. In venenatis odio vitae tincidunt sodales. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Morbi in lacus vitae tellus eleifend ultricies at sagittis diam. Phasellus in est lectus. Sed eu consequat diam, nec consectetur felis. Nam scelerisque varius turpis, at viverra magna iaculis vel. Nam mi purus, accumsan vitae metus sed, aliquet dictum dolor.
+
+Sed feugiat consequat dolor et dignissim. Vestibulum nec tempor purus. Vestibulum arcu libero, faucibus in sodales id, lacinia eget nunc. Aenean pharetra, enim eget iaculis tempus, felis elit dignissim leo, non tempus neque purus eu neque. Proin molestie augue ultrices metus dapibus, nec rhoncus dui fringilla. Aenean ultrices condimentum neque, luctus tempor justo viverra eu. Nullam tincidunt nibh in libero sagittis egestas. Pellentesque pulvinar vitae eros id mattis. Integer vestibulum nunc ut enim bibendum lacinia. Quisque tempor, tellus consequat porta iaculis, lectus mauris luctus purus, quis rhoncus libero massa non dui. Pellentesque pretium pharetra lacus ac varius. Vivamus tristique massa sit amet tincidunt auctor. Maecenas mollis interdum tellus, nec tristique felis convallis quis. Phasellus vestibulum auctor diam, ut mollis arcu interdum in. Fusce placerat purus lacus, at rutrum orci volutpat vel.
+
+Sed a condimentum mauris. Integer mi nisl, bibendum vel lacus ut, venenatis dapibus nisi. Donec congue, sapien in condimentum tincidunt, elit quam condimentum sapien, a aliquam tortor lectus a ex. Integer sed ligula vel eros viverra interdum eget eget lectus. Duis laoreet placerat dolor, ac vulputate tellus auctor congue. In blandit accumsan odio, ullamcorper elementum odio efficitur nec. Nulla facilisi. Nam pretium libero eu congue elementum. Pellentesque lacinia ligula dolor, et imperdiet dui rhoncus ac. Aenean iaculis tellus urna, eget molestie dolor facilisis in. Etiam posuere ipsum non ex maximus, ut sodales sem ullamcorper. Integer a bibendum neque.
+
+Nulla bibendum massa eget lectus pharetra pharetra. Cras fringilla est nec hendrerit sollicitudin. Vivamus laoreet leo sapien, quis consectetur justo consequat eu. Nullam ex erat, suscipit non molestie sit amet, maximus et sapien. Nullam imperdiet odio eget maximus convallis. Proin placerat luctus tempor. Fusce ac sem consequat, porta tortor vel, ultrices purus. Etiam dignissim libero sed imperdiet lobortis. Vivamus aliquam rhoncus suscipit. Nam at sem vitae erat efficitur ultrices. Sed sed hendrerit ipsum.
+
+Donec non ullamcorper ipsum, vel sodales leo. Etiam ac lobortis augue, ac tristique sem. Ut ornare felis bibendum gravida venenatis. Cras vehicula consequat dapibus. Aenean in mi sit amet dolor semper feugiat. Sed lacinia risus tellus, feugiat fermentum justo mattis non. Quisque non ex consequat nibh consectetur auctor in in odio. Phasellus mi dolor, consequat id sodales ac, laoreet ac purus. Nulla rhoncus fringilla metus, at porta purus finibus sit amet.
+
+Aenean eu viverra velit, vitae eleifend risus. Donec vitae ligula sit amet justo commodo commodo. Nam eu consectetur nisi. Nunc mi enim, fermentum ut posuere sed, posuere in metus. In fermentum placerat tincidunt. Nulla non tristique neque, vitae consectetur ligula. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
+
+Pellentesque dignissim tincidunt nisi, ut tincidunt quam ultrices a. Aliquam erat volutpat. Vestibulum sagittis elit eu blandit feugiat. Donec aliquet velit porttitor, porttitor sapien sit amet, mattis erat. Nullam pretium vehicula nisl, non dictum lectus sodales ut. Sed laoreet ante ut augue venenatis egestas a vitae mi. Integer id eros dolor. Sed id sem accumsan, dapibus lectus at, condimentum sem. Praesent nec mauris urna. Pellentesque dapibus eros at ante consequat, eget eleifend purus sagittis. Phasellus sagittis eros at purus porttitor aliquam. Aliquam a finibus nulla, at ultrices velit. Mauris in lacinia nulla.
+
+Duis aliquam lobortis urna id dictum. Proin eget pharetra ligula. Integer non enim pulvinar, fringilla massa at, suscipit odio. Vestibulum pretium facilisis mollis. Ut porttitor magna eu luctus convallis. Integer elementum elit a condimentum malesuada. Ut molestie magna nisl, in rhoncus neque elementum quis. Integer posuere erat ut velit cursus porttitor vel sed dui. Vestibulum tempor ornare rhoncus. Integer commodo, tellus nec mattis pharetra, nisl leo sodales ante, sit amet commodo mauris quam vel dui. Duis convallis sapien tempus, gravida quam eget, vestibulum leo. Sed hendrerit risus a neque molestie, id feugiat eros volutpat. Nam eu fringilla enim. Sed aliquam, enim at tincidunt luctus, enim tellus placerat quam, et imperdiet libero felis nec libero. Curabitur et purus a magna ornare sodales.
+
+Nam non libero ut felis euismod efficitur. Maecenas ligula nisi, rutrum eu turpis quis, semper ultricies nibh. Quisque vehicula cursus erat. Donec aliquam augue ut magna vehicula lacinia. Quisque efficitur, arcu condimentum mollis scelerisque, tellus libero accumsan elit, in eleifend lorem lectus ut erat. Ut sit amet nulla quis turpis semper mattis. Ut rhoncus vitae nulla sit amet ultrices. Nulla justo ligula, rhoncus et interdum vel, cursus ut sem. Nullam elementum ullamcorper neque, imperdiet tempus sapien tincidunt et. Nulla diam nulla, varius ut nisi quis, hendrerit fringilla mi. In volutpat tincidunt faucibus. Donec luctus, mauris vitae consectetur placerat, elit velit tristique mauris, sed malesuada nisl sem eu justo. Nunc enim quam, pharetra vitae velit vel, posuere lacinia turpis. Proin volutpat porttitor ligula.
+
+```{r}
+library(knitr)
+library(kableExtra)
+dt <- mtcars[1:5, 1:8]
+dt <- cbind(dt, dt, dt)
+```
+
+```{r}
+kable(dt, format = "latex", booktabs = T) %>%
+  kable_styling(latex_options = c("striped", "hold_position", "scale_down")) %>%
+  landscape()
+```
+
+Aenean condimentum, magna in condimentum lacinia, metus enim placerat enim, in hendrerit ex mauris sed quam. Ut ut laoreet odio. Morbi enim libero, molestie a lacinia quis, tempor non erat. Proin sit amet ultricies mi. Donec metus enim, commodo eget tempus sed, aliquam ac lectus. Nunc congue velit nec eros consectetur finibus. Cras bibendum urna quis cursus iaculis. Maecenas et gravida lorem. Pellentesque pellentesque mauris nec massa sagittis elementum. Sed facilisis mattis nibh, ac hendrerit eros accumsan at. Duis suscipit purus id orci rhoncus sagittis. Nunc tincidunt nisi eros, ac maximus augue hendrerit ac. Etiam cursus, felis eget porttitor rutrum, massa turpis euismod turpis, quis blandit lectus erat sit amet justo. Etiam eu nulla porta, ultricies augue in, bibendum orci.
+
+Ut malesuada porttitor lacus, sit amet tempus est tempor vitae. Sed ullamcorper vitae orci id dignissim. Nunc id varius lacus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Integer ac orci ac enim ullamcorper auctor non sodales eros. Etiam rhoncus hendrerit mi. Nullam vehicula dui ut ipsum sollicitudin pellentesque. Duis placerat tellus quis augue sollicitudin, nec aliquet enim facilisis. Maecenas vulputate nibh elit, sed blandit erat dapibus non. Suspendisse purus tortor, finibus eget ante sed, mattis efficitur erat. Proin scelerisque augue felis. Pellentesque nec ligula at felis pulvinar porttitor. Aenean at dolor dolor. Donec quis condimentum felis.
+
+Nam sodales neque vel nibh vulputate pretium. Morbi consectetur viverra lectus sed consequat. Vivamus vel tristique risus. Donec ut bibendum tortor, sit amet commodo tellus. Sed orci sapien, luctus quis lectus vel, lacinia vulputate dui. Duis sit amet turpis sit amet nulla ultrices malesuada quis ut diam. Etiam ut sem porttitor justo accumsan aliquam vel nec dui. Proin id dictum risus. Mauris ullamcorper ultricies libero sed consequat.
+
+Nunc pretium at ex sed euismod. Aliquam rutrum augue leo, nec scelerisque ex sagittis vel. Vivamus sed mollis nisl. Pellentesque viverra finibus diam, quis porttitor dolor porttitor ac. Maecenas at risus in odio iaculis ultricies ac vel turpis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aliquam at dui odio. In tristique pretium velit, quis sollicitudin ante tristique sit amet. Aenean cursus, quam vel laoreet luctus, orci nunc tristique tortor, tristique congue tortor erat molestie dolor. Maecenas id cursus sapien. Curabitur vulputate massa eget velit imperdiet ornare.
+
+Nulla a eros turpis. Curabitur rutrum lectus venenatis tellus sodales, fermentum mollis dolor venenatis. Proin hendrerit tempus ex, commodo euismod leo. Quisque quam erat, tempor ac hendrerit vehicula, eleifend vitae justo. Nulla facilisi. Nam tincidunt nunc sollicitudin nisi rutrum imperdiet. Nullam congue tincidunt viverra. Vivamus nisl quam, vulputate a eros eget, volutpat accumsan lacus. Praesent sagittis ornare velit, elementum elementum lorem tincidunt eget. Vivamus blandit tortor blandit fringilla faucibus.
+
+Proin id purus a nisl volutpat faucibus at commodo est. Curabitur dapibus, justo ac pellentesque blandit, ligula risus aliquet lorem, et iaculis orci justo sed arcu. Cras tristique purus iaculis metus semper finibus et at magna. Phasellus malesuada sapien dui, et bibendum est viverra nec. Integer condimentum efficitur mauris ut interdum. Integer tortor nunc, faucibus quis urna in, faucibus congue arcu. Curabitur et elit tellus. Aenean in arcu lacinia, rutrum quam quis, rhoncus enim. Sed ultrices iaculis elit, ac luctus lectus volutpat sit amet. Quisque ac quam lectus. Duis nec est facilisis, sodales odio eu, scelerisque felis.
+
+Sed tincidunt at dui non sollicitudin. Morbi ligula erat, porta sit amet tempus sed, fermentum sed nisl. Quisque sodales hendrerit urna, id malesuada diam facilisis in. Pellentesque sapien tortor, euismod nec ipsum rhoncus, condimentum consectetur mi. Nam mollis sit amet tellus a cursus. Mauris sit amet pellentesque nibh, eu mattis metus. In efficitur purus mi, vel pulvinar sem tempus at. Phasellus bibendum a ante in venenatis. Nulla sagittis mauris at diam egestas, vitae aliquam mauris sollicitudin. Aenean molestie lacus imperdiet lorem mollis, ut volutpat nunc tincidunt. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam mattis felis ut commodo interdum. Nulla posuere nunc odio, sit amet semper nisl varius quis. Nulla nisi mauris, condimentum in augue eget, rhoncus ornare metus.
+
+Aliquam erat volutpat. Cras et purus a est imperdiet consequat ac at felis. Maecenas dictum turpis nec pretium maximus. Aliquam erat volutpat. Sed imperdiet urna at ipsum porta sodales. Nullam dictum, ante in mattis tincidunt, leo nisl rhoncus sapien, sit amet venenatis ante lacus sit amet ligula. Nam lorem velit, lobortis sit amet pulvinar vel, molestie vel mi. Morbi pretium nibh eu dolor gravida, in rutrum risus lacinia. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nam a est eleifend elit fringilla fringilla ut mollis elit. Morbi mattis in massa sed scelerisque. Etiam euismod pretium risus, ut hendrerit mi aliquam ultrices. Aenean egestas risus quam, vitae imperdiet orci rutrum nec. Nam sed nunc posuere, tincidunt ipsum eget, mollis augue.
+
+Nullam hendrerit leo sit amet libero facilisis pulvinar. Mauris tellus est, lacinia nec dignissim dignissim, commodo nec purus. Nulla tempus metus non dolor vehicula, ac rhoncus odio tristique. Duis a aliquam lorem. Curabitur sagittis tempus est vel tempor. Sed in mollis dui. Integer nec ante ac ligula porttitor cursus a ut risus. Etiam consequat ipsum eu metus aliquam, a mattis leo lacinia. Maecenas tempor orci ac lacinia sollicitudin. Donec neque nisi, sagittis quis elit nec, lacinia mattis ante. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam eget magna bibendum, rhoncus dui eget, hendrerit purus. Donec dignissim sagittis lectus, a faucibus tortor posuere at. Quisque euismod mi et magna luctus, vel viverra diam lacinia. Donec euismod fringilla urna a consectetur. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
+
+Proin lacus purus, viverra a lacinia eget, faucibus in enim. Praesent ut aliquet lectus, ac volutpat mauris. Ut mollis libero in sollicitudin porttitor. Duis tincidunt risus sit amet efficitur rhoncus. Nam tellus nulla, euismod in finibus vel, vestibulum sed dolor. Phasellus efficitur tortor vitae ipsum ultricies viverra. Vestibulum risus justo, dapibus non magna nec, elementum ultrices nunc. Sed non eros tortor. Nam ultricies nunc eu interdum dapibus. Donec non dapibus nisl, et ultrices massa. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Phasellus nec dolor ut mi venenatis congue in in augue.
+
+Suspendisse euismod vulputate tortor consectetur auctor. Donec sit amet consectetur ipsum. Phasellus imperdiet mi eu feugiat vehicula. Vestibulum ut justo elementum, tincidunt purus quis, convallis turpis. Donec non condimentum lorem. Donec et interdum felis, vitae fermentum tortor. Maecenas sit amet ipsum vel urna congue condimentum. Praesent eu finibus massa, a auctor augue. Praesent nunc nibh, euismod eget mauris eu, tempor dapibus ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
+
+Aliquam sed bibendum mi. Suspendisse hendrerit, ipsum ut euismod congue, erat augue volutpat sapien, a egestas neque purus sit amet arcu. Aliquam elementum nunc ipsum. Vivamus et lacus in lacus sollicitudin pharetra quis convallis quam. Cras gravida sodales commodo. Nullam viverra et risus et facilisis. Praesent gravida ligula ut ullamcorper eleifend. Duis elementum arcu sit amet risus efficitur malesuada at id nunc. Maecenas et laoreet massa. Vestibulum sagittis viverra urna eu gravida. Aenean lacinia nisl vitae augue bibendum feugiat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
+
+Proin a commodo quam. Duis sollicitudin leo nibh, sit amet consequat nulla tincidunt sed. Maecenas quis facilisis massa. Donec placerat, purus ac congue commodo, ex ante elementum ipsum, id congue justo sem a dui. Fusce imperdiet ex auctor, hendrerit augue eget, dapibus metus. Sed gravida finibus efficitur. Sed eu porta velit, sed mollis diam. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
+
+Donec nisl justo, efficitur a dictum vitae, elementum a nulla. Nam sit amet accumsan massa. Aliquam vitae lacus nibh. Nullam iaculis sapien non bibendum pharetra. Quisque eu hendrerit ante, non consequat sapien. Ut rutrum orci a urna imperdiet, ut malesuada turpis volutpat. Fusce quis scelerisque lectus, sed convallis quam. Curabitur erat libero, rutrum vitae nunc eu, cursus hendrerit tellus. Mauris suscipit eleifend leo, luctus maximus nisl cursus vel. Praesent finibus id neque rhoncus tempus. Pellentesque et accumsan quam. Sed nunc mi, lacinia ut lacus in, mattis fringilla ante. Aliquam volutpat vitae lorem ac aliquam.
+
+Aliquam id felis vitae enim convallis sodales. Nunc finibus consectetur metus. Integer laoreet libero justo, a viverra lectus vulputate ac. Fusce aliquam felis et viverra feugiat. Vivamus lobortis quam sed mauris interdum, a mollis mauris sagittis. Nam nec lacus sed nisi viverra varius. Suspendisse non massa ac arcu tempor commodo. Aliquam enim metus, egestas ac risus nec, pretium eleifend felis. Phasellus quis magna mi. Sed sollicitudin faucibus lacus ac commodo.
+
+Suspendisse iaculis lacus in quam porttitor, eu euismod metus maximus. Suspendisse sed turpis quis sapien accumsan suscipit ac eu turpis. Nam rutrum ligula dolor, id sollicitudin nisl semper eget. Aenean pharetra dapibus lacus vitae lobortis. Cras vitae nibh nisi. Aliquam vitae laoreet lectus. Nunc quis malesuada ligula, non mattis libero. Quisque volutpat porta ipsum imperdiet facilisis. Ut cursus quam eget mauris molestie ultricies. Quisque at risus quis metus euismod venenatis. Suspendisse eu libero gravida risus auctor semper. Sed in cursus tellus. Aenean suscipit eu est ac imperdiet. Mauris velit eros, sagittis vitae porta non, tristique vel urna.
