
Tenho encontrado um comportamento muito estranho com a ieeecolor.cls
classe document! Compilar um documento latex usando esta classe com o tikz
pacote aciona alguns avisos coloridos: Warning Incompatible color definition
, mas o pdf gerado parece ser o esperado (ou seja, veja MWE abaixo).
No entanto, coisas muito estranhas acontecem quando a seguinte seção é adicionada ao arquivo tex:
%%%% Inverse PDF page and text color
\definecolor{pagcol}{rgb}{0.1255,0.1255,0.1255}
\definecolor{txtcol}{rgb}{0.85,0.85,0.85}
\pagecolor{pagcol}
\color{txtcol}
Neste caso, o comportamento do látex é bastante inesperado e as cores já não são como deveriam. Isso parece vir de um conflito entre a nova ieeecolor
classe e alguns pacotes como o tikz
.
Alguém já encontrou esse problema antes? Alguém encontrou uma solução para isso?
A ieeecolor
aula pode ser encontrada no siteSite do Centro de Autores IEEE, requer os arquivos ieeecolor.cls
e 'generic.sty'.
Exemplo mínimo de trabalho com página e código de cores de texto comentado:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%2345678901234567890123456789012345678901234567890123456789012345678901234567890
% 1 2 3 4 5 6 7 8
%\documentclass[letterpaper,10pt,conference]{ieeeconf} % Comment this line out
% if you need a4paper
%\documentclass[a4paper, 10pt, conference]{ieeeconf} % Use this line for a4
% paper
\documentclass[journal,twoside,web]{ieeecolor} % %% NEW ieeecolor class %%
% \IEEEoverridecommandlockouts % This command is only
% needed if you want to
% use the \thanks command
% \overrideIEEEmargins
% See the \addtolength command later in the file to balance the column lengths
% on the last page of the document
% The following packages can be found on http:\\www.ctan.org
\usepackage{generic}
\usepackage{lipsum}
\usepackage{tikz}
\usepackage{pagecolor}
%%%%% Inverse PDF page and text color
%\definecolor{pagcol}{rgb}{0.1255,0.1255,0.1255}
%\definecolor{txtcol}{rgb}{0.85,0.85,0.85}
%\pagecolor{pagcol}
%\color{txtcol}
\title{My Dummy Article}
\author{Julius~Caesar~\IEEEmembership{Fellow~Member,~IEEE}
\thanks{J.~Caesar is with the Senate House, Rome}
}
\begin{document}
\maketitle
\thispagestyle{empty}
\pagestyle{empty}
\begin{abstract}
\lipsum[1]
\end{abstract}
\begin{IEEEkeywords}
Key word 1, Key word 2.
\end{IEEEkeywords}
\section{Dummy Section 1}
\lipsum
\section{Dummy Section 2}
\lipsum
\begin{figure}[!htbp]
\centering
\begin{tikzpicture}
\draw (0,0) -- (4,0) -- (4,4) -- (0,4) -- (0,0);
\end{tikzpicture}
\caption{A Dummy Square figure}
\end{figure}
\lipsum
\end{document}
genérico.sty
\def\logoname{LOGO-generic-web}
\definecolor{subsectioncolor}{rgb}{0,0.541,0.855}
\setlength{\firstpagerule}{39pc}
\setlength{\logowidth}{4pc}
\def\journalname{Generic Colorized Journal}
Responder1
ieeecolor.sty
é um pouco de dor nas costas. Aliás, alguém sabe quem pode ser contatado para postar patches?
Existem dois problemas técnicos aqui e uma coisa filosófica.
A questão filosófica é: vale a pena cuidar? Quando eles aceitarem seu artigo, eles irão reformatá-lo com algo que não seja LaTeX e, de qualquer maneira, querem figuras separadas, que são melhor construídas com standalone
. Mas se você quer que seu arquivo funcione para uso interno ou submissão para algum arquivo, então sim, talvez valha a pena se importar.
Os problemas técnicos são dois:
- o primeiro é bem grande:a cor vai vazar. A resposta vinculada fornece uma boa resposta para isso.
- O pacote carrega
color
, nãoxcolor
(em 2021!), e é por isso que você tem todos os problemas com TikZ, que requerxcolor
.
Soluções possíveis.
- correção
ieeecolor.cls
--- ieeecolor.cls.orig 2021-06-04 11:51:15.355826034 +0200
+++ ieeecolor.cls 2021-06-04 12:11:40.354385057 +0200
@@ -667,12 +667,13 @@
%
%
%
-%
+
\ProvidesClass{IEEEtran}[2002/11/18 revision V1.6b by Michael Shell]
\typeout{-- See the "IEEEtran_HOWTO" manual for usage information.}
\typeout{-- The source comments contain changelog notes.}
\NeedsTeXFormat{LaTeX2e}
-\RequirePackage{color}
+% \RequirePackage{color}
+\RequirePackage[table]{xcolor}
%%%%%%%%%%%
\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
@@ -2255,16 +2256,16 @@
\else
\@IEEEfigurecaptionsepspace% V1.6 was a hard coded 5pt
% 3/2001 use footnotesize, not small; use two nonbreaking spaces, not one
-\setbox\@tempboxa\hbox{\footnotesize #1.\color{black}\normalcolor~~\sf\boldmath #2}%
+\setbox\@tempboxa\hbox{{\footnotesize #1.\color{black}\normalcolor~~\sf\boldmath #2}}%
\ifdim \wd\@tempboxa >\hsize%
% if caption is longer than a line, let it wrap around
-\setbox\@tempboxa\hbox{\footnotesize #1.\color{black}\normalcolor~~ }%
+\setbox\@tempboxa\hbox{{\footnotesize #1.\color{black}\normalcolor~~ }}%
\parbox[t]{\hsize}{\footnotesize \noindent\unhbox\@tempboxa\sf\boldmath #2}%
% if caption is shorter than a line,
% allow user to control short figure caption justification (left or center)
\else%
-\ifcenterfigcaptions \hbox to\hsize{\footnotesize\hfil\box\@tempboxa\hfil}%
-\else \hbox to\hsize{\footnotesize\box\@tempboxa\hfil}%
+\ifcenterfigcaptions \hbox to\hsize{{\footnotesize\hfil\box\@tempboxa\hfil}}%
+\else \hbox to\hsize{{\footnotesize\box\@tempboxa\hfil}}%
\fi\fi\fi\color{black}}
Isso deve resolver os dois problemas, eu acho.
- Se você não quiser mexer na classe original, vamos tentar enganar
ieeecolor
carregandoxcolor
antes da classe; resolver o outro problemacom correção de Phelype Oleinik: basta alterar sua invocação de\documentclass
with (testado usando oieeecolor.cls
baixado esta manhã!):
\RequirePackage{xcolor}
\documentclass[journal,twoside,web]{ieeecolor} % %% NEW ieeecolor class %%
% \IEEEoverridecommandlockouts % This command is only
% needed if you want to
% Fix ieeecolor's \caption
\usepackage{etoolbox}
\makeatletter
\@ifundefined{color@begingroup}%
{\let\color@begingroup\relax
\let\color@endgroup\relax}{}%
\def\fix@ieeecolor@hbox#1{%
\hbox{\color@begingroup#1\color@endgroup}}
\patchcmd\@makecaption{\hbox}{\fix@ieeecolor@hbox}{}{\FAILED}
\patchcmd\@makecaption{\hbox}{\fix@ieeecolor@hbox}{}{\FAILED}
Ambos parecem funcionar para mim, mas não tive tempo de verificar profundamente.