¿Por qué se superponen los colores de las celdas de la tabla en mi tabla CSS?
Estoy usando CSS en un archivo .RMD para R y estoy generando un archivo HTML que produce tablas.
Luego convierto el archivo HTML a PDF.
La siguiente imagen muestra el problema que enfrento, los colores de las celdas se superponen:
La siguiente es la parte del código intermedio de la fuente de la página HTML:
<html>
<p><head></p>
<p><meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta http-equiv="X-UA-Compatible" content="IE=EDGE" /></p>
<p><title>Titulo del archivo</title></p>
<p><style type="text/css">code{white-space: pre;}</style>
<style type="text/css">
pre:not([class]) {
background-color: white;
}
</style>
<script type="text/javascript">
if (window.hljs) {
hljs.configure({languages: []});
hljs.initHighlightingOnLoad();
if (document.readyState && document.readyState === "complete") {
window.setTimeout(function() { hljs.initHighlighting(); }, 0);
}
}
</script></p>
<p><style type="text/css">
h1 {
font-size: 34px;
}
h1.title {
font-size: 38px;
}
h2 {
font-size: 30px;
}
h3 {
font-size: 24px;
}
h4 {
font-size: 18px;
}
h5 {
font-size: 16px;
}
h6 {
font-size: 12px;
}
.table th:not([align]) {
text-align: left;
}
</style></p>
<p><style type="text/css">
.main-container {
max-width: 940px;
margin-left: auto;
margin-right: auto;
}
code {
color: inherit;
background-color: rgba(0, 0, 0, 0.04);
}
img {
max-width:100%;
}
.tabbed-pane {
padding-top: 12px;
}
.html-widget {
margin-bottom: 20px;
}
button.code-folding-btn:focus {
outline: none;
}
summary {
display: list-item;
}
</style></p>
<p><!-- tabsets --></p>
<p><style type="text/css">
.tabset-dropdown > .nav-tabs {
display: inline-table;
max-height: 500px;
min-height: 44px;
overflow-y: auto;
background: white;
border: 1px solid #ddd;
border-radius: 4px;
}</p>
<p>.tabset-dropdown > .nav-tabs > li.active:before {
content: "";
font-family: 'Glyphicons Halflings';
display: inline-block;
padding: 10px;
border-right: 1px solid #ddd;
}</p>
<p>.tabset-dropdown > .nav-tabs.nav-tabs-open > li.active:before {
content: "";
border: none;
}</p>
<p>.tabset-dropdown > .nav-tabs.nav-tabs-open:before {
content: "";
font-family: 'Glyphicons Halflings';
display: inline-block;
padding: 10px;
border-right: 1px solid #ddd;
}</p>
<p>.tabset-dropdown > .nav-tabs > li.active {
display: block;
}</p>
<p>.tabset-dropdown > .nav-tabs > li > a,
.tabset-dropdown > .nav-tabs > li > a:focus,
.tabset-dropdown > .nav-tabs > li > a:hover {
border: none;
display: inline-block;
border-radius: 4px;
background-color: transparent;
}</p>
<p>.tabset-dropdown > .nav-tabs.nav-tabs-open > li {
display: block;
float: none;
}</p>
<p>.tabset-dropdown > .nav-tabs > li {
display: none;
}
</style></p>
<p><!-- code folding --></p>
<p></head></p>
<p><body></p>
<p><div class="container-fluid main-container"></p>
<p><div class="fluid-row" id="header"></p>
<p><h1 class="title toc-ignore">Titulo del archivo</h1>
<h3 class="subtitle"><div style="white-space: pre-line;"><strong>Salida de prueba</strong></p>
<p>2019/20</div></h3></p>
<p></div></p>
<p><style type="text/css"></p>
<p>@media screen {
body{ /* Normal <em>/
font-size: 15px;
font-family: "Arial", Helvetica, sans-serif;
}
table, td { /</em> Tabla <em>/
font-size: 13px;
font-family: "Arial", Helvetica, sans-serif;
table-layout: fixed;
width: 100%;
}
h1.title {
font-size: 38px;
color: #0070c0;
top: 25px;
font-family: "Arial", Helvetica, sans-serif;
}
h1 { /</em> Encabezado 1 <em>/
font-size: 28px;
color: #558ee7;
font-family: "Arial", Helvetica, sans-serif;
}
h2 { /</em> Encabezado 2 <em>/
font-size: 22px;
color: #0070c0;
font-family: "Arial", Helvetica, sans-serif;
}
h3 { /</em> Encabezado 3 <em>/
font-size: 18px;
color: #0070c0;
font-family: "Arial", Helvetica, sans-serif;
}
h4 { /</em> Declaración de calidad <em>/
font-size: 28px;
color: #558ee7;
font-family: "Arial", Helvetica, sans-serif;
}
h5 { /</em> subtítulo */
font-size: 13px;
color: #0070c0;
font-family: "Arial", Helvetica, sans-serif;
}
.main-container {
max-width: 100% !important;
}
}
@media print {
body{
-webkit-print-color-adjust: exact;
}
}</p>
<p><script></p>
<p>// add bootstrap table styles to pandoc tables
function bootstrapStylePandocTables() {
$('tr.header').parent('thead').parent('table').addClass('table table-condensed');
}
$(document).ready(function () {
bootstrapStylePandocTables();
});</p>
<p></script></p>
<p><!-- tabsets --></p>
<p><script>
$(document).ready(function () {
window.buildTabsets("TOC");
});</p>
<p>$(document).ready(function () {
$('.tabset-dropdown > .nav-tabs > li').click(function () {
$(this).parent().toggleClass('nav-tabs-open')
});
});
</script></p>
<p><!-- code folding --></p>
<p><!-- dynamically load mathjax for compatibility with self-contained -->
<script>
(function () {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
document.getElementsByTagName("head")[0].appendChild(script);
})();
</script></p>
<p></body>
</html>
No estoy seguro de qué parte del código debería modificar para evitar que esto ocurra. Además, sería genial si la salida también pudiera estar en horizontal.
davy.ai
El problema con la superposición de colores de celda probablemente se deba a que el CSS de la tabla no se ajusta para imprimir en PDF. Una solución sería agregar una consulta de medios específicamente para los estilos de impresión y ajustar las reglas CSS para la tabla en consecuencia. Por ejemplo:
Esto colapsará los bordes de la tabla al imprimir y eliminará el color de fondo para las celdas de la tabla.
Para cambiar la salida a horizontal, puede agregar un tamaño de página y orientación al encabezado YAML del archivo RMD. Por ejemplo:
Esto establecerá la orientación del PDF en horizontal y ajustará el margen y el tamaño de fuente. El argumento
keep_tex: true
también mantendrá el archivo LaTeX intermedio generado durante la conversión a PDF, lo que puede ser útil para solucionar problemas con la salida de PDF.