У меня, должно быть, были некоторые проблемы с устаревшей сервисной ссылкой или чем-то. Я возвратился и создал общую библиотеку, содержащую перечисление, и все хорошо работает. Я просто добавил ссылку использования на сервисный файл интерфейса.
using Common;
[ServiceContract]
[ServiceKnownType(typeof(MyEnum))]
public interface IMyService
{
[OperationContract]
ServiceMethod1( MyEnum e, string sUserId, string sSomeData);
}
и я отбросил следующее:
[DataContract]
public enum MyEnum{ [EnumMember] red, [EnumMember] green, [EnumMember] blue };
я предполагаю, так как на перечисление ссылаются через ServiceKnownType, оно не должно было быть повышено во внешней библиотеке с [DataContract] или [Перечислитель]
То есть, могу ли я передать латексу некоторые аргументы командной строки, чтобы я мог выбрать, какой стиль использовать на основе этого аргумента?
Да. Три варианта:
В исходном файле напишите
\providecommand{\comment}[1]{\emph{#1}}% fallback definition
, а затем скомпилируйте документ LaTeX ("myfile.tex") как
pdflatex (whatever options you need) "\newcommand\comment[1]{\textbf{#1}}\input{myfile}"
В качестве альтернативы,
pdflatex "\let\ifmyflag\iftrue\input{myfile}"
и затем добавьте в источник
\ifcsname ifmyflag\endcsname\else
\expandafter\let\csname ifmyflag\expandafter\endcsname
\csname iffalse\endcsname
\fi
...
\ifmyflag
\newcommand\comment[1]{\emph{#1}}
\else
\newcommand\comment[1]{\textbf{#1}}
\fi
Или даже
pdflatex "\def\myflag{}\input{myfile}"
с
\ifdefined\myflag
\newcommand\comment[1]{\emph{#1}}
\else
\newcommand\comment[1]{\textbf{#1}}
\fi
, что, вероятно, является самым коротким, хотя и немного хрупким, потому что вы никогда не знаете, когда пакет может определять \ myflag
за вашей спиной.
Чтобы представить мою диссертацию как в требуемом, уродливом, расточительном формате, так и в более компактной более красивой версии, я использовал if, затем
и кладж make
и sed
, которые немного переписали заголовок.
Я думаю Подходы Уилла все лучше.